Fix handling of semicolon delimited values in numeric field

(closes #5438)
This commit is contained in:
Bryan Housel
2018-12-12 01:11:34 -05:00
parent fc1f7e4d46
commit c635389c1a
+12 -8
View File
@@ -98,7 +98,12 @@ export function uiFieldText(field, context) {
.merge(buttons)
.on('click', function(d) {
d3_event.preventDefault();
input.node().value = parsed(input.node().value) + d;
var vals = input.node().value.split(';');
vals = vals.map(function(v) {
var num = parseFloat(v.trim(), 10);
return isFinite(num) ? clamped(num + d) : v.trim();
});
input.node().value = vals.join(';');
change()();
});
@@ -117,12 +122,6 @@ export function uiFieldText(field, context) {
}
// parse as a number
function parsed(val) {
return parseFloat(val || 0, 10) || 0;
}
// clamp number to min/max
function clamped(num) {
if (field.minValue !== undefined) {
@@ -142,7 +141,12 @@ export function uiFieldText(field, context) {
if (!onInput) {
if (field.type === 'number' && val !== undefined) {
val = clamped(parsed(val)) + '';
var vals = val.split(';');
vals = vals.map(function(v) {
var num = parseFloat(v.trim(), 10);
return isFinite(num) ? clamped(num) : v.trim();
});
val = vals.join(';');
}
utilGetSetValue(input, val || '');
}