Skip to content

Instantly share code, notes, and snippets.

@ef4
Created February 9, 2016 03:26
Show Gist options
  • Select an option

  • Save ef4/2e02562382835e3dbaf1 to your computer and use it in GitHub Desktop.

Select an option

Save ef4/2e02562382835e3dbaf1 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
export default Ember.Controller.extend({
dataPoints: [
{ id: 0, start: 1, end: 10 },
{ id: 1, start: 8, end: 20 },
{ id: 2, start: 25, end: 30 }
],
lowerLimit: Ember.computed('dataPoints.[]', function() {
return Math.min(...this.get('dataPoints').mapBy('start'));
}),
upperLimit: Ember.computed('dataPoints.[]', function() {
return Math.max(...this.get('dataPoints').mapBy('end'));
}),
colors: [
'red',
'green',
'blue'
]
});
<style type="text/css">
rect:hover {
stroke-width: 4px;
}
</style>
<svg style="width: 100%; padding: 5px;" >
{{#each dataPoints as |point|}}
<rect x="{{scale point.start lowerLimit upperLimit}}%" height="20px" width="{{scale (subtract point.end point.start) lowerLimit upperLimit}}%" stroke="black" fill={{pick-from colors point.id}} fill-opacity=0.5 />
{{/each}}
</svg>
import Ember from 'ember';
export function pickFrom([list, index]/*, hash*/) {
return list[index % list.length];
}
export default Ember.Helper.helper(pickFrom);
import Ember from 'ember';
export function scale([value, lowLimit, highLimit]/*, hash*/) {
return 100 * (value - lowLimit) / (highLimit - lowLimit);
}
export default Ember.Helper.helper(scale);
import Ember from 'ember';
export function subtract([a,b]/*, hash*/) {
return a-b;
}
export default Ember.Helper.helper(subtract);
{
"version": "0.5.0",
"EmberENV": {
"FEATURES": {}
},
"options": {
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.2.0/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment