@@ -609,30 +609,45 @@ const miniToAbs = (i) => Math.round(props.min + i);
609
609
610
610
const startForInput = computed ({
611
611
get () {
612
- return useMini .value ? startMini .value : start .value ;
612
+ return useMini .value ? startMini .value : Number ( start .value ) ;
613
613
},
614
614
set (v ) {
615
615
if (useMini .value ) {
616
- setStartValue (miniToAbs (v));
616
+ const n = Math .round (+ v || 0 );
617
+ setStartValue (miniToAbs (n));
617
618
} 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);
619
626
}
620
627
}
621
628
});
622
629
623
630
const endForInput = computed ({
624
631
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 ) ;
626
633
},
627
634
set (v ) {
628
635
if (useMini .value ) {
629
- setEndValue (miniToAbs (v + 1 ));
636
+ const n = Math .round (+ v || 0 );
637
+ setEndValue (miniToAbs (n + 1 ));
630
638
} 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);
632
646
}
633
647
}
634
648
});
635
649
650
+
636
651
function setSelectedTrap (v ) {
637
652
selectedTrap .value = absToMiniStart (props .valueStart ) + v;
638
653
}
0 commit comments