46 lines
848 B
JavaScript
46 lines
848 B
JavaScript
import Ember from 'ember';
|
|
|
|
let {
|
|
set,
|
|
computed,
|
|
Component,
|
|
getProperties,
|
|
} = Ember;
|
|
|
|
export default Component.extend({
|
|
unit: '',
|
|
tagName: 'g',
|
|
labelSize: 12,
|
|
linesOffset: 0,
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
|
|
Ember.run.scheduleOnce('afterRender', () => {
|
|
const labelsBox = this.$().find('.ruler-labels')[0].getBBox();
|
|
|
|
set(this, 'linesOffset', labelsBox.x + labelsBox.width);
|
|
});
|
|
},
|
|
|
|
rulers: computed('yRulers', function() {
|
|
const {
|
|
unit,
|
|
yScale,
|
|
labelSize,
|
|
yRulers,
|
|
} = getProperties(this, 'unit', 'yScale', 'labelSize', 'yRulers');
|
|
|
|
return (yRulers || [])
|
|
.map(item => {
|
|
const lineY = yScale(item);
|
|
|
|
return {
|
|
lineY,
|
|
label: `${item}${unit}`,
|
|
labelY: lineY + labelSize / 2 - 2,
|
|
};
|
|
});
|
|
}),
|
|
});
|