Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<script setup lang="ts">
import { ref } from "vue";
const props = defineProps({
parameter: {
type: Object,
required: true,
validator(value: Record<string, never>) {
return "number" === value["type"] || "integer" === value["type"];
},
},
required: Boolean,
parameterName: {
type: String,
required: true,
},
modelValue: {
type: Number,
},
helpId: {
type: String,
},
});
const emit = defineEmits<{
(e: "update:modelValue", value: number | undefined): void;
}>();
const numberInput = ref<HTMLInputElement | undefined>(undefined);
function updateValue() {
emit("update:modelValue", Number(numberInput.value?.value));
}
</script>
<template>
<input
class="form-control"
type="number"
ref="numberInput"
:max="props.parameter['maximum']"
:min="props.parameter['minimum']"
:value="props.modelValue"
:required="props.required"
:aria-describedby="props.helpId"
@input="updateValue"
/>
</template>
<style scoped></style>