fix : corrections de tous les retours
All checks were successful
Auto Tag Develop / tag (push) Successful in 4s
All checks were successful
Auto Tag Develop / tag (push) Successful in 4s
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<label
|
||||
v-if="label"
|
||||
:for="id"
|
||||
class="text-xl flex items-center"
|
||||
class="text-xl flex items-center gap-2"
|
||||
:class="labelClass"
|
||||
>
|
||||
<span
|
||||
@@ -74,14 +74,41 @@ const emit = defineEmits<{
|
||||
const attrs = useAttrs()
|
||||
const isEmpty = computed(() => props.modelValue === null || props.modelValue === undefined || props.modelValue === '')
|
||||
|
||||
const toNumberOrNull = (value: number | string | undefined) => {
|
||||
if (value === undefined || value === '') {
|
||||
return null
|
||||
}
|
||||
const parsed = Number(value)
|
||||
return Number.isFinite(parsed) ? parsed : null
|
||||
}
|
||||
|
||||
const onInput = (event: Event) => {
|
||||
const target = event.target as HTMLInputElement
|
||||
if (target.value === '') {
|
||||
emit('update:modelValue', null)
|
||||
return
|
||||
}
|
||||
const numeric = Math.max(0, Number(target.value))
|
||||
emit('update:modelValue', Number.isNaN(numeric) ? null : numeric)
|
||||
const parsed = Number(target.value)
|
||||
if (!Number.isFinite(parsed)) {
|
||||
emit('update:modelValue', null)
|
||||
return
|
||||
}
|
||||
|
||||
const min = toNumberOrNull(props.min)
|
||||
const max = toNumberOrNull(props.max)
|
||||
|
||||
let numeric = parsed
|
||||
if (min !== null) {
|
||||
numeric = Math.max(min, numeric)
|
||||
} else {
|
||||
numeric = Math.max(0, numeric)
|
||||
}
|
||||
if (max !== null) {
|
||||
numeric = Math.min(max, numeric)
|
||||
}
|
||||
|
||||
target.value = String(numeric)
|
||||
emit('update:modelValue', numeric)
|
||||
}
|
||||
|
||||
const onKeydown = (event: KeyboardEvent) => {
|
||||
|
||||
Reference in New Issue
Block a user