@vuetify/nightly 3.8.6-master.2025-05-22 → 3.8.6-master.2025-05-23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -3
- package/dist/json/attributes.json +3406 -3406
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +182 -182
- package/dist/json/web-types.json +6419 -6419
- package/dist/vuetify-labs.cjs +29 -6
- package/dist/vuetify-labs.css +5757 -5757
- package/dist/vuetify-labs.d.ts +66 -66
- package/dist/vuetify-labs.esm.js +29 -6
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +29 -6
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +29 -6
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4837 -4837
- package/dist/vuetify.d.ts +66 -66
- package/dist/vuetify.esm.js +29 -6
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +29 -6
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +7 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +12 -4
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +66 -66
- package/lib/framework.js +1 -1
- package/lib/util/helpers.d.ts +1 -0
- package/lib/util/helpers.js +15 -0
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
@@ -13,7 +13,7 @@ import { useForm } from "../../composables/form.js";
|
|
13
13
|
import { forwardRefs } from "../../composables/forwardRefs.js";
|
14
14
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
15
15
|
import { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue';
|
16
|
-
import { clamp, genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
|
16
|
+
import { clamp, extractNumber, genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
|
17
17
|
const makeVNumberInputProps = propsFactory({
|
18
18
|
controlVariant: {
|
19
19
|
type: String,
|
@@ -160,25 +160,33 @@ export const VNumberInput = genericComponent()({
|
|
160
160
|
}
|
161
161
|
function onBeforeinput(e) {
|
162
162
|
if (!e.data) return;
|
163
|
-
const
|
164
|
-
const
|
165
|
-
|
163
|
+
const inputElement = e.target;
|
164
|
+
const {
|
165
|
+
value: existingTxt,
|
166
|
+
selectionStart,
|
167
|
+
selectionEnd
|
168
|
+
} = inputElement ?? {};
|
166
169
|
const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
|
170
|
+
const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
|
171
|
+
|
167
172
|
// Only numbers, "-", "." are allowed
|
168
173
|
// AND "-", "." are allowed only once
|
169
174
|
// AND "-" is only allowed at the start
|
170
175
|
if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
|
171
176
|
e.preventDefault();
|
177
|
+
inputElement.value = potentialNewNumber;
|
172
178
|
}
|
173
179
|
if (props.precision == null) return;
|
174
180
|
|
175
181
|
// Ignore decimal digits above precision limit
|
176
182
|
if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
|
177
183
|
e.preventDefault();
|
184
|
+
inputElement.value = potentialNewNumber;
|
178
185
|
}
|
179
186
|
// Ignore decimal separator when precision = 0
|
180
187
|
if (props.precision === 0 && potentialNewInputVal.includes('.')) {
|
181
188
|
e.preventDefault();
|
189
|
+
inputElement.value = potentialNewNumber;
|
182
190
|
}
|
183
191
|
}
|
184
192
|
async function onKeydown(e) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNumberInput.js","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useHold","useFocus","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","toRef","watch","watchEffect","clamp","genericComponent","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","precision","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","holdStart","holdStop","toggleUpDown","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","focus","blur","correctPrecision","arguments","length","undefined","fixed","toFixed","toString","model","_inputText","isNaN","inputText","get","set","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","style","touchAction","onClick","onControlClick","onPointerup","onControlMouseup","onPointerdown","onUpControlMousedown","decrementSlotProps","onDownControlMousedown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","increment","inferredPrecision","Math","onBeforeinput","e","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","split","includes","onKeydown","key","ctrlKey","stopPropagation","el","currentTarget","releasePointerCapture","pointerId","setPointerCapture","actualText","trimDecimalZeros","onFocus","onBlur","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/components/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useHold } from './hold'\nimport { useFocus } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue'\nimport { clamp, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n props: Record<string, unknown>\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split' | 'hidden'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n modelValue: {\n type: Number as PropType<number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n precision: {\n type: Number as PropType<number | null>,\n default: 0,\n },\n\n ...omit(makeVTextFieldProps(), ['modelValue', 'validationValue']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const vTextFieldRef = ref<VTextField>()\n\n const { holdStart, holdStop } = useHold({ toggleUpDown })\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const { isFocused, focus, blur } = useFocus(props)\n\n function correctPrecision (val: number, precision = props.precision) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n return isFocused.value\n ? Number(fixed).toString() // trim zeros\n : fixed\n }\n\n const model = useProxiedModel(props, 'modelValue', null,\n val => val ?? null,\n val => val == null\n ? val ?? null\n : clamp(Number(val), props.min, props.max)\n )\n\n const _inputText = shallowRef<string | null>(null)\n watchEffect(() => {\n if (isFocused.value && !controlsDisabled.value) {\n // ignore external changes\n } else if (model.value == null) {\n _inputText.value = null\n } else if (!isNaN(model.value)) {\n _inputText.value = correctPrecision(model.value)\n }\n })\n const inputText = computed<string | null>({\n get: () => _inputText.value,\n set (val) {\n if (val === null || val === '') {\n model.value = null\n _inputText.value = null\n } else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {\n model.value = Number(val)\n _inputText.value = val\n }\n },\n })\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = toRef(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = {\n props: {\n style: { touchAction: 'none' },\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onUpControlMousedown,\n },\n }\n const decrementSlotProps = {\n props: {\n style: { touchAction: 'none' },\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onDownControlMousedown,\n },\n }\n\n watch(() => props.precision, () => formatInputValue())\n\n onMounted(() => {\n clampModel()\n })\n\n function inferPrecision (value: number | null) {\n if (value == null) return 0\n const str = value.toString()\n const idx = str.indexOf('.')\n return ~idx ? str.length - idx : 0\n }\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n inputText.value = correctPrecision(clamp(0, props.min, props.max))\n return\n }\n\n let inferredPrecision = Math.max(inferPrecision(model.value), inferPrecision(props.step))\n if (props.precision != null) inferredPrecision = Math.max(inferredPrecision, props.precision)\n if (increment) {\n if (canIncrease.value) inputText.value = correctPrecision(model.value + props.step, inferredPrecision)\n } else {\n if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision)\n }\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const existingTxt = (e.target as HTMLInputElement)?.value\n const selectionStart = (e.target as HTMLInputElement)?.selectionStart\n const selectionEnd = (e.target as HTMLInputElement)?.selectionEnd\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n }\n\n if (props.precision == null) return\n\n // Ignore decimal digits above precision limit\n if (potentialNewInputVal.split('.')[1]?.length > props.precision) {\n e.preventDefault()\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes('.')) {\n e.preventDefault()\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlClick (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function onControlMouseup (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStop()\n }\n\n function onUpControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('up')\n }\n\n function onDownControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('down')\n }\n\n function clampModel () {\n if (controlsDisabled.value) return\n if (!vTextFieldRef.value) return\n const actualText = vTextFieldRef.value.value\n if (actualText && !isNaN(Number(actualText))) {\n inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = props.precision == null\n ? String(model.value)\n : model.value.toFixed(props.precision)\n }\n\n function trimDecimalZeros () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = model.value.toString()\n }\n\n function onFocus () {\n focus()\n trimDecimalZeros()\n }\n\n function onBlur () {\n blur()\n clampModel()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"increment\"\n disabled={ !canIncrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ incrementIcon.value }\n key=\"increment-btn\"\n onClick={ onControlClick }\n onPointerdown={ onUpControlMousedown }\n onPointerup={ onControlMouseup }\n size={ controlNodeSize.value }\n style=\"touch-action: none\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"decrement\"\n disabled={ !canDecrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ decrementIcon.value }\n key=\"decrement-btn\"\n onClick={ onControlClick }\n onPointerdown={ onDownControlMousedown }\n onPointerup={ onControlMouseup }\n size={ controlNodeSize.value }\n style=\"touch-action: none\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (props.reverse || controlVariant.value === 'hidden'\n ? undefined\n : <>{ dividerNode() }{ controlNode() }</>)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse && controlVariant.value !== 'hidden'\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ inputText.value }\n validationValue={ model.value }\n onBeforeinput={ onBeforeinput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VNumberInput.js","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useHold","useFocus","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","toRef","watch","watchEffect","clamp","extractNumber","genericComponent","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","precision","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","holdStart","holdStop","toggleUpDown","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","focus","blur","correctPrecision","arguments","length","undefined","fixed","toFixed","toString","model","_inputText","isNaN","inputText","get","set","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","style","touchAction","onClick","onControlClick","onPointerup","onControlMouseup","onPointerdown","onUpControlMousedown","decrementSlotProps","onDownControlMousedown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","increment","inferredPrecision","Math","onBeforeinput","e","data","inputElement","target","existingTxt","selectionStart","selectionEnd","potentialNewInputVal","slice","potentialNewNumber","test","preventDefault","split","includes","onKeydown","key","ctrlKey","stopPropagation","el","currentTarget","releasePointerCapture","pointerId","setPointerCapture","actualText","trimDecimalZeros","onFocus","onBlur","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/components/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useHold } from './hold'\nimport { useFocus } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue'\nimport { clamp, extractNumber, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n props: Record<string, unknown>\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split' | 'hidden'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n modelValue: {\n type: Number as PropType<number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n precision: {\n type: Number as PropType<number | null>,\n default: 0,\n },\n\n ...omit(makeVTextFieldProps(), ['modelValue', 'validationValue']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const vTextFieldRef = ref<VTextField>()\n\n const { holdStart, holdStop } = useHold({ toggleUpDown })\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const { isFocused, focus, blur } = useFocus(props)\n\n function correctPrecision (val: number, precision = props.precision) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n return isFocused.value\n ? Number(fixed).toString() // trim zeros\n : fixed\n }\n\n const model = useProxiedModel(props, 'modelValue', null,\n val => val ?? null,\n val => val == null\n ? val ?? null\n : clamp(Number(val), props.min, props.max)\n )\n\n const _inputText = shallowRef<string | null>(null)\n watchEffect(() => {\n if (isFocused.value && !controlsDisabled.value) {\n // ignore external changes\n } else if (model.value == null) {\n _inputText.value = null\n } else if (!isNaN(model.value)) {\n _inputText.value = correctPrecision(model.value)\n }\n })\n const inputText = computed<string | null>({\n get: () => _inputText.value,\n set (val) {\n if (val === null || val === '') {\n model.value = null\n _inputText.value = null\n } else if (!isNaN(Number(val)) && Number(val) <= props.max && Number(val) >= props.min) {\n model.value = Number(val)\n _inputText.value = val\n }\n },\n })\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = toRef(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = toRef(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = toRef(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = {\n props: {\n style: { touchAction: 'none' },\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onUpControlMousedown,\n },\n }\n const decrementSlotProps = {\n props: {\n style: { touchAction: 'none' },\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onDownControlMousedown,\n },\n }\n\n watch(() => props.precision, () => formatInputValue())\n\n onMounted(() => {\n clampModel()\n })\n\n function inferPrecision (value: number | null) {\n if (value == null) return 0\n const str = value.toString()\n const idx = str.indexOf('.')\n return ~idx ? str.length - idx : 0\n }\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n inputText.value = correctPrecision(clamp(0, props.min, props.max))\n return\n }\n\n let inferredPrecision = Math.max(inferPrecision(model.value), inferPrecision(props.step))\n if (props.precision != null) inferredPrecision = Math.max(inferredPrecision, props.precision)\n if (increment) {\n if (canIncrease.value) inputText.value = correctPrecision(model.value + props.step, inferredPrecision)\n } else {\n if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision)\n }\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const inputElement = e.target as HTMLInputElement\n const { value: existingTxt, selectionStart, selectionEnd } = inputElement ?? {}\n\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n\n const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision)\n\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n\n if (props.precision == null) return\n\n // Ignore decimal digits above precision limit\n if (potentialNewInputVal.split('.')[1]?.length > props.precision) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes('.')) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlClick (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function onControlMouseup (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.releasePointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStop()\n }\n\n function onUpControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('up')\n }\n\n function onDownControlMousedown (e: PointerEvent) {\n const el = e.currentTarget as HTMLElement\n el?.setPointerCapture(e.pointerId)\n e.preventDefault()\n e.stopPropagation()\n holdStart('down')\n }\n\n function clampModel () {\n if (controlsDisabled.value) return\n if (!vTextFieldRef.value) return\n const actualText = vTextFieldRef.value.value\n if (actualText && !isNaN(Number(actualText))) {\n inputText.value = correctPrecision(clamp(Number(actualText), props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = props.precision == null\n ? String(model.value)\n : model.value.toFixed(props.precision)\n }\n\n function trimDecimalZeros () {\n if (controlsDisabled.value) return\n if (model.value === null || isNaN(model.value)) {\n inputText.value = null\n return\n }\n inputText.value = model.value.toString()\n }\n\n function onFocus () {\n focus()\n trimDecimalZeros()\n }\n\n function onBlur () {\n blur()\n clampModel()\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"increment\"\n disabled={ !canIncrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ incrementIcon.value }\n key=\"increment-btn\"\n onClick={ onControlClick }\n onPointerdown={ onUpControlMousedown }\n onPointerup={ onControlMouseup }\n size={ controlNodeSize.value }\n style=\"touch-action: none\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n aria-hidden=\"true\"\n data-testid=\"decrement\"\n disabled={ !canDecrease.value }\n flat\n height={ controlNodeDefaultHeight.value }\n icon={ decrementIcon.value }\n key=\"decrement-btn\"\n onClick={ onControlClick }\n onPointerdown={ onDownControlMousedown }\n onPointerup={ onControlMouseup }\n size={ controlNodeSize.value }\n style=\"touch-action: none\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n { incrementControlNode() }\n </div>\n ) : (props.reverse || controlVariant.value === 'hidden'\n ? undefined\n : <>{ dividerNode() }{ controlNode() }</>)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider vertical />\n </div>\n ) : (props.reverse && controlVariant.value !== 'hidden'\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n v-model={ inputText.value }\n validationValue={ model.value }\n onBeforeinput={ onBeforeinput }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n inputmode=\"decimal\"\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.6-master.2025-05-
|
19
|
+
export const version = "3.8.6-master.2025-05-23";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2542,21 +2542,19 @@ declare module 'vue' {
|
|
2542
2542
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2543
2543
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2544
2544
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2545
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2546
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2547
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
2548
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2549
|
-
VApp: typeof import('vuetify/components')['VApp']
|
2550
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2551
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2552
2545
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2553
2546
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2554
2547
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2548
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2549
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
2550
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2551
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2552
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2555
2553
|
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2554
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2555
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2556
2556
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2557
|
-
|
2558
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2559
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2557
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
2560
2558
|
VCard: typeof import('vuetify/components')['VCard']
|
2561
2559
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2562
2560
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
@@ -2566,21 +2564,17 @@ declare module 'vue' {
|
|
2566
2564
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2567
2565
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2568
2566
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2569
|
-
|
2567
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2568
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2570
2569
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2571
2570
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2571
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2572
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2573
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2572
2574
|
VCode: typeof import('vuetify/components')['VCode']
|
2573
|
-
VChip: typeof import('vuetify/components')['VChip']
|
2574
2575
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2575
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2576
2576
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2577
|
-
|
2578
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2579
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2580
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2581
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2582
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2583
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2577
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2584
2578
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2585
2579
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2586
2580
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2588,27 +2582,30 @@ declare module 'vue' {
|
|
2588
2582
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2589
2583
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2590
2584
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2591
|
-
|
2585
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2586
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2587
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2588
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2589
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2590
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2591
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2592
2592
|
VDivider: typeof import('vuetify/components')['VDivider']
|
2593
|
-
VFab: typeof import('vuetify/components')['VFab']
|
2594
|
-
VField: typeof import('vuetify/components')['VField']
|
2595
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2596
2593
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2597
2594
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2598
2595
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2599
2596
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2597
|
+
VField: typeof import('vuetify/components')['VField']
|
2598
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2600
2599
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2601
|
-
|
2602
|
-
|
2603
|
-
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2604
|
-
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2605
|
-
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2606
|
-
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2600
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
2601
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2607
2602
|
VImg: typeof import('vuetify/components')['VImg']
|
2603
|
+
VFab: typeof import('vuetify/components')['VFab']
|
2608
2604
|
VInput: typeof import('vuetify/components')['VInput']
|
2609
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2610
2605
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2611
|
-
|
2606
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2607
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2608
|
+
VItem: typeof import('vuetify/components')['VItem']
|
2612
2609
|
VLabel: typeof import('vuetify/components')['VLabel']
|
2613
2610
|
VList: typeof import('vuetify/components')['VList']
|
2614
2611
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
@@ -2619,73 +2616,72 @@ declare module 'vue' {
|
|
2619
2616
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2620
2617
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2621
2618
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2622
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2623
|
-
VItem: typeof import('vuetify/components')['VItem']
|
2624
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
2625
2619
|
VMessages: typeof import('vuetify/components')['VMessages']
|
2620
|
+
VMain: typeof import('vuetify/components')['VMain']
|
2626
2621
|
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2622
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2627
2623
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2628
2624
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2629
2625
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2630
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2631
2626
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2632
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2633
2627
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2628
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2634
2629
|
VRating: typeof import('vuetify/components')['VRating']
|
2635
2630
|
VSelect: typeof import('vuetify/components')['VSelect']
|
2636
|
-
|
2631
|
+
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2637
2632
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2638
|
-
|
2639
|
-
|
2633
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2634
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
2635
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
2640
2636
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2641
2637
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2642
|
-
|
2638
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2639
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2643
2640
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2644
2641
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2645
2642
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2646
2643
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2647
2644
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2648
2645
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2649
|
-
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2650
2646
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2651
|
-
VTab: typeof import('vuetify/components')['VTab']
|
2652
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
2653
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2654
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2655
2647
|
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2656
|
-
VTable: typeof import('vuetify/components')['VTable']
|
2657
2648
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2658
2649
|
VTextField: typeof import('vuetify/components')['VTextField']
|
2659
|
-
|
2660
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2661
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2650
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2662
2651
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2663
2652
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2664
2653
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2654
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2655
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2656
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2657
|
+
VTab: typeof import('vuetify/components')['VTab']
|
2658
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
2659
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2660
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2665
2661
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2666
2662
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2667
2663
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2668
|
-
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2669
2664
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2670
|
-
VForm: typeof import('vuetify/components')['VForm']
|
2671
2665
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2672
2666
|
VCol: typeof import('vuetify/components')['VCol']
|
2673
2667
|
VRow: typeof import('vuetify/components')['VRow']
|
2674
2668
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2675
2669
|
VHover: typeof import('vuetify/components')['VHover']
|
2670
|
+
VForm: typeof import('vuetify/components')['VForm']
|
2671
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
2676
2672
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2677
2673
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2674
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2678
2675
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2679
2676
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2677
|
+
VRadio: typeof import('vuetify/components')['VRadio']
|
2680
2678
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2681
2679
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2682
|
-
VRadio: typeof import('vuetify/components')['VRadio']
|
2683
|
-
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2684
|
-
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2685
2680
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2681
|
+
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2686
2682
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2687
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2688
2683
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2684
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2689
2685
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2690
2686
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2691
2687
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2702,31 +2698,35 @@ declare module 'vue' {
|
|
2702
2698
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2703
2699
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2704
2700
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2705
|
-
|
2706
|
-
|
2707
|
-
|
2701
|
+
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2702
|
+
VIcon: typeof import('vuetify/components')['VIcon']
|
2703
|
+
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2704
|
+
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2705
|
+
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2706
|
+
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2707
|
+
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2708
2708
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2709
2709
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2710
2710
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2711
2711
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2712
2712
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2713
2713
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2714
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2714
2715
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2715
2716
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2716
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2717
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2718
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2719
2717
|
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2720
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2721
2718
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2722
2719
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2720
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2721
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2722
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2723
|
+
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2724
|
+
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2725
|
+
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2723
2726
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2724
2727
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2725
2728
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
2726
2729
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2727
|
-
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2728
|
-
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2729
|
-
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2730
2730
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
2731
2731
|
}
|
2732
2732
|
}
|
package/lib/framework.js
CHANGED
package/lib/util/helpers.d.ts
CHANGED
@@ -124,4 +124,5 @@ export declare function templateRef(): TemplateRef;
|
|
124
124
|
export declare function checkPrintable(e: KeyboardEvent): boolean;
|
125
125
|
export type Primitive = string | number | boolean | symbol | bigint;
|
126
126
|
export declare function isPrimitive(value: unknown): value is Primitive;
|
127
|
+
export declare function extractNumber(text: string, decimalDigitsLimit: number | null): string;
|
127
128
|
|
package/lib/util/helpers.js
CHANGED
@@ -533,4 +533,19 @@ export function checkPrintable(e) {
|
|
533
533
|
export function isPrimitive(value) {
|
534
534
|
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
535
535
|
}
|
536
|
+
export function extractNumber(text, decimalDigitsLimit) {
|
537
|
+
const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
|
538
|
+
// sign allowed at the start
|
539
|
+
x === '.' && i === all.indexOf('.') ||
|
540
|
+
// decimal separator allowed only once
|
541
|
+
/\d/.test(x)).join('');
|
542
|
+
if (decimalDigitsLimit === 0) {
|
543
|
+
return cleanText.split('.')[0];
|
544
|
+
}
|
545
|
+
if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
|
546
|
+
const parts = cleanText.split('.');
|
547
|
+
return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
|
548
|
+
}
|
549
|
+
return cleanText;
|
550
|
+
}
|
536
551
|
//# sourceMappingURL=helpers.js.map
|