'use strict';
module.exports = {
name: 'slider',
template: require('../../templates/components/slider.tpl'),
style: require('../../styles/clay/components/slider.scss'),
manipulator: 'slider',
defaults: {
label: '',
description: '',
min: 0,
max: 100,
step: 1,
attributes: {}
},
initialize: function() {
var self = this;
var $value = self.$element.select('.value');
var $valuePad = self.$element.select('.value-pad');
var $slider = self.$manipulatorTarget;
/**
* Sets the value display
* @return {void}
*/
function setValueDisplay() {
var value = self.get().toFixed(self.precision);
$value.set('value', value);
$valuePad.set('innerHTML', value);
}
var step = $slider.get('step');
step = step.toString(10).split('.')[1];
self.precision = step ? step.length : 0;
self.on('change', setValueDisplay);
$slider.on('|input', setValueDisplay);
setValueDisplay();
$value.on('|input', function() {
$valuePad.set('innerHTML', this.get('value'));
});
$value.on('|change', function() {
self.set(this.get('value'));
setValueDisplay();
});
}
};