Remove rangeToProps & fix clampValue functions

This commit is contained in:
Rob Garrison 2018-09-16 18:23:50 -05:00
parent 1881552348
commit 1ba0173422

View File

@ -201,20 +201,6 @@ function configDialog(style) {
return va.value === null || va.value === undefined || va.value === va.default; return va.value === null || va.value === undefined || va.value === va.default;
} }
function rangeToProps(range = []) {
const dataset = {};
if (range.length > 0) {
dataset.min = range[0];
}
if (range.length > 1) {
dataset.max = range[1];
}
if (range[2]) {
dataset.step = range[2];
}
return dataset;
}
function buildConfigForm() { function buildConfigForm() {
let resetter = let resetter =
$create('a.config-reset-icon', {href: '#'}, [ $create('a.config-reset-icon', {href: '#'}, [
@ -280,7 +266,9 @@ function configDialog(style) {
va, va,
type: va.type, type: va.type,
value: va.default, value: va.default,
...rangeToProps(va.range), min: va.min,
max: va.max,
step: va.step,
onchange: updateVarOnChange onchange: updateVarOnChange
}) })
]; ];
@ -318,7 +306,7 @@ function configDialog(style) {
function updateVarOnChange() { function updateVarOnChange() {
if (this.type === 'number') { if (this.type === 'number') {
this.value = this.va.value = clampValue(this.value, this.va.range); this.value = this.va.value = clampValue(this.value, this.va);
} else if (this.type === 'range') { } else if (this.type === 'range') {
this.va.value = parseFloat(this.value); this.va.value = parseFloat(this.value);
$('.current-value', this.closest('.config-range')).textContent = this.va.value + (this.va.units || ''); $('.current-value', this.closest('.config-range')).textContent = this.va.value + (this.va.units || '');
@ -328,16 +316,16 @@ function configDialog(style) {
} }
// Clamp input[type=number] to a valid range // Clamp input[type=number] to a valid range
function clampValue(value, [min = 0, max = 100, step]) { function clampValue(value, va) {
if (value < min) { if (value < (va.min || 0)) {
return min; return va.min;
} }
if (value > max) { if (value > (va.max || 100)) {
return max; return va.max;
} }
const inv = 1 / (step || 1); const inv = 1 / (va.step || 1);
// Don't restrict to integer values if step is undefined. // Don't restrict to integer values if step is undefined.
return typeof step !== 'undefined' ? Math.floor(inv * value) / inv : value; return typeof va.step !== 'undefined' ? Math.floor(inv * value) / inv : value;
} }
function updateVarOnInput(event, debounced = false) { function updateVarOnInput(event, debounced = false) {