Greetings Front-end hopeful.
We would like you to spend no more than 4 hours of happy fun time turning a payload like this:
{
"value": 34,
"min": 0,
"max": 200,
"format": "currency",| function clamp(val, min, max) { | |
| return Math.max(min, Math.min(max, val)); | |
| } | |
| function colorShift(hex, amount) { | |
| const colour = parseInt(hex.slice(1), 16); | |
| let r = (colour >> 16) + amount; | |
| let g = (colour & 0x0000FF) + amount; | |
| let b = ((colour >> 8) & 0x00FF) + amount; | |
| r = clamp(r, 0, 255); |
Greetings Front-end hopeful.
We would like you to spend no more than 4 hours of happy fun time turning a payload like this:
{
"value": 34,
"min": 0,
"max": 200,
"format": "currency",| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |
| <svg width="125px" height="58px" viewBox="0 0 125 58" version="1.1" xmlns="http://www.w3.org/2000/svg"> | |
| <defs> | |
| <clipPath id="goal"> | |
| <rect fill="#000" width="125" height="100" transform="translate(0, -42) rotate(45, 62.5, 100)"></rect> | |
| </clipPath> | |
| </defs> | |
| <path d="M125,57 C124.566028,25.4163617 97.1359808,0 63.5,0 C29.6818981,0 2.13711516,25.6923392 1.03431465,57.7846048 L8.04760666,57.7846154 C9.26371578,29.5409323 33.6253316,7 63.5,7 C93.2118368,7 117.470555,29.2958837 118.930447,57 L125,57 Z" fill="rgb(0,255,0)"></path> | |
| <path d="M125,57 C124.566028,25.4163617 97.1359808,0 63.5,0 C29.6818981,0 2.13711516,25.6923392 1.03431465,57.7846048 L8.04760666,57.7846154 C9.26371578,29.5409323 33.6253316,7 63.5,7 C93.2118368,7 117.470555,29.2958837 118.930447,57 L125,57 Z" fill="rgb(255,0,0)" clip-path="url(#goal)"></path> | |
| </svg> |
| function WidgetConfig() {} | |
| WidgetConfig.prototype.__fields__ = []; | |
| WidgetConfig.addFields = function (newFields) { | |
| var Super = this; | |
| function Child() { | |
| return Super.apply(this, arguments); | |
| } | |
| _.extend(Child, Super); | |
| Child.prototype = Object.create(Super.prototype); | |
| Child.prototype.__fields__ = Super.prototype.__fields__.concat(newFields) |
| [ | |
| { | |
| "label": "Account", | |
| "type": "select", | |
| "name": "account", | |
| }, | |
| { | |
| "label": "Website", | |
| "type": "select", | |
| "dependsOn": "account", |
| // Renders a React component within rootEl | |
| var handlers = []; | |
| Fave.render = function (React, NS, rootEl, module) { | |
| var component = NS[module](_.extend({}, Fave.broker, { | |
| on: function (name, fn) { | |
| handlers.push({ name: name, fn: fn }); | |
| return Fave.broker.on(name, fn); | |
| } | |
| }) | |
| return Fave.broker |
| angular.module('guestApp', []).controller('guestCtrl', function($scope) { | |
| $scope.bar = "I'm a guest app, please be nice."; | |
| }); | |
| var el = document.createElement('x-editor'); | |
| var shadowEl = el.webkitCreateShadowRoot(); | |
| document.documentElement.appendChild(el); | |
| shadowEl.innerHTML = '<div id="guest" ng-controller="guestCtrl">{{ bar }}</div>'; | |
| angular.bootstrap(shadowEl, ['guestApp']); |
| # /client/js/lang/d627ef21fbcfc0e9def32c187b37ffa9e5034019/en/date.json | |
| RewriteCond %{REQUEST_URI} ^/client/js/lang | |
| RewriteRule ^(client/js/lang)/([a-z0-9]+/)(.+)$ /$1/$3 [L] | |
| # Desired: | |
| # /client/js/lang/en/date.json | |
| # Actual | |
| # /client/js/lang/date.json |
| a { | |
| font-family: 'icon-webfont'; | |
| text-indent: -999em; | |
| overflow: hidden; | |
| display: block; | |
| position: relative; | |
| } | |
| a:before { | |
| position: absolute; |
| @import 'bourbon'; | |
| $visual-grid: true; // Turn on the visual grid overlay | |
| $max-width: 960px; | |
| $grid-columns: 8; | |
| $mobile-size: 480px; | |
| $tablet-size: 768px; | |
| $desktop-size: 960px; |