Skip to content

Commit c288e70

Browse files
committed
Fix - VueUiXy - Fix regression on range inputs in non-minimap mode
1 parent e593636 commit c288e70

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/atoms/SlicerPreview.vue

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -609,30 +609,45 @@ const miniToAbs = (i) => Math.round(props.min + i);
609609
610610
const startForInput = computed({
611611
get() {
612-
return useMini.value ? startMini.value : start.value;
612+
return useMini.value ? startMini.value : Number(start.value);
613613
},
614614
set(v) {
615615
if (useMini.value) {
616-
setStartValue(miniToAbs(v));
616+
const n = Math.round(+v || 0);
617+
setStartValue(miniToAbs(n));
617618
} else {
618-
setStartValue(v);
619+
let proposed = Math.round(+v || 0);
620+
const maxAllowed = Number(endValue.value) - 1;
621+
const clamped = Math.min(Math.max(props.min, proposed), maxAllowed);
622+
if (rangeStart.value) {
623+
rangeStart.value.valueAsNumber = clamped
624+
};
625+
setStartValue(clamped);
619626
}
620627
}
621628
});
622629
623630
const endForInput = computed({
624631
get() {
625-
return useMini.value ? Math.max(startMini.value, endMini.value - 1) : end.value;
632+
return useMini.value ? Math.max(startMini.value, endMini.value - 1) : Number(end.value);
626633
},
627634
set(v) {
628635
if (useMini.value) {
629-
setEndValue(miniToAbs(v + 1));
636+
const n = Math.round(+v || 0);
637+
setEndValue(miniToAbs(n + 1));
630638
} else {
631-
setEndValue(v);
639+
let proposed = Math.round(+v || 0);
640+
const minAllowed = Number(startValue.value) + 1;
641+
const clamped = Math.max(minAllowed, Math.min(proposed, props.max));
642+
if (rangeEnd.value) {
643+
rangeEnd.value.valueAsNumber = clamped;
644+
}
645+
setEndValue(clamped);
632646
}
633647
}
634648
});
635649
650+
636651
function setSelectedTrap(v) {
637652
selectedTrap.value = absToMiniStart(props.valueStart) + v;
638653
}

0 commit comments

Comments
 (0)