@vuetify/nightly 3.9.2-master.2025-07-27 → 3.9.2-master.2025-07-28
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 +4 -3
- package/dist/json/attributes.json +3384 -3384
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +144 -144
- package/dist/json/web-types.json +6337 -6337
- package/dist/vuetify-labs.cjs +4 -4
- package/dist/vuetify-labs.css +6030 -6030
- package/dist/vuetify-labs.d.ts +59 -59
- package/dist/vuetify-labs.esm.js +4 -4
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +4 -4
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +4 -4
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4289 -4289
- package/dist/vuetify.d.ts +59 -59
- package/dist/vuetify.esm.js +4 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +4 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +4 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +1 -1
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +59 -59
- package/lib/framework.js +1 -1
- package/package.json +1 -1
@@ -90,7 +90,7 @@ export const VNumberInput = genericComponent()({
|
|
90
90
|
return fixed.replace('.', decimalSeparator.value);
|
91
91
|
}
|
92
92
|
let [baseDigits, fractionDigits] = fixed.split('.');
|
93
|
-
fractionDigits = (fractionDigits ?? '').padEnd(props.minFractionDigits, '0').replace(new RegExp(`(?<=\\d{${props.minFractionDigits}})0
|
93
|
+
fractionDigits = (fractionDigits ?? '').padEnd(props.minFractionDigits, '0').replace(new RegExp(`(?<=\\d{${props.minFractionDigits}})0+$`, 'g'), '');
|
94
94
|
return [baseDigits, fractionDigits].filter(Boolean).join(decimalSeparator.value);
|
95
95
|
}
|
96
96
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VNumberInput.js","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useHold","useForm","forwardRefs","useLocale","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","toRef","watch","watchEffect","clamp","escapeForRegex","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","minFractionDigits","decimalSeparator","validator","v","length","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","holdStart","holdStop","toggleUpDown","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","focused","decimalSeparatorFromLocale","correctPrecision","arguments","undefined","trim","fixed","toFixed","toString","replace","baseDigits","fractionDigits","split","padEnd","RegExp","filter","join","model","_inputText","isNaN","inputText","get","set","parsedValue","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","onClick","onControlClick","onPointerup","onControlMouseup","onPointerdown","onUpControlMousedown","onPointercancel","decrementSlotProps","onDownControlMousedown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","increment","inferredPrecision","Math","onBeforeinput","e","data","inputElement","target","existingTxt","selectionStart","selectionEnd","potentialNewInputVal","slice","potentialNewNumber","test","preventDefault","cursorPosition","setSelectionRange","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","_createElementVNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","style","_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 { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue'\nimport { clamp, escapeForRegex, 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 minFractionDigits: {\n type: Number as PropType<number | null>,\n default: null,\n },\n decimalSeparator: {\n type: String,\n validator: (v: any) => !v || v.length === 1,\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:focused': (val: boolean) => true,\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 = shallowRef(props.focused)\n\n const { decimalSeparator: decimalSeparatorFromLocale } = useLocale()\n const decimalSeparator = computed(() => props.decimalSeparator?.[0] || decimalSeparatorFromLocale.value)\n\n function correctPrecision (val: number, precision = props.precision, trim = true) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n\n if (isFocused.value && trim) {\n return Number(fixed).toString() // trim zeros\n .replace('.', decimalSeparator.value)\n }\n\n if (props.minFractionDigits === null || (precision !== null && precision < props.minFractionDigits)) {\n return fixed.replace('.', decimalSeparator.value)\n }\n\n let [baseDigits, fractionDigits] = fixed.split('.')\n\n fractionDigits = (fractionDigits ?? '').padEnd(props.minFractionDigits, '0')\n .replace(new RegExp(`(?<=\\\\d{${props.minFractionDigits}})0`, 'g'), '')\n\n return [\n baseDigits,\n fractionDigits,\n ].filter(Boolean).join(decimalSeparator.value)\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 return\n }\n const parsedValue = Number(val.replace(decimalSeparator.value, '.'))\n if (!isNaN(parsedValue) && parsedValue <= props.max && parsedValue >= props.min) {\n model.value = parsedValue\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 onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onUpControlMousedown,\n onPointercancel: onControlMouseup,\n },\n }\n const decrementSlotProps = {\n props: {\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onDownControlMousedown,\n onPointercancel: onControlMouseup,\n },\n }\n\n watch(() => props.precision, () => formatInputValue())\n watch(() => props.minFractionDigits, () => 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, decimalSeparator.value)\n\n // Allow only numbers, \"-\" and {decimal separator}\n // Allow \"-\" and {decimal separator} only once\n // Allow \"-\" only at the start\n if (!new RegExp(`^-?\\\\d*${escapeForRegex(decimalSeparator.value)}?\\\\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(decimalSeparator.value)[1]?.length > props.precision) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n\n const cursorPosition = (selectionStart ?? 0) + e.data.length\n inputElement!.setSelectionRange(cursorPosition, cursorPosition)\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes(decimalSeparator.value)) {\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 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 const parsedValue = Number(actualText.replace(decimalSeparator.value, '.'))\n if (actualText && !isNaN(parsedValue)) {\n inputText.value = correctPrecision(clamp(parsedValue, props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n inputText.value = model.value !== null && !isNaN(model.value)\n ? correctPrecision(model.value, props.precision, false)\n : null\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 .replace('.', decimalSeparator.value)\n }\n\n function onFocus () {\n trimDecimalZeros()\n }\n\n function onBlur () {\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 onPointercancel={ onControlMouseup }\n size={ controlNodeSize.value }\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 onPointercancel={ onControlMouseup }\n size={ controlNodeSize.value }\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 { ...textFieldProps }\n v-model={ inputText.value }\n v-model:focused={ isFocused.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 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","useForm","forwardRefs","useLocale","useProxiedModel","computed","nextTick","onMounted","ref","shallowRef","toRef","watch","watchEffect","clamp","escapeForRegex","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","minFractionDigits","decimalSeparator","validator","v","length","VNumberInput","name","props","emits","val","setup","_ref","slots","vTextFieldRef","holdStart","holdStop","toggleUpDown","form","controlsDisabled","isDisabled","value","isReadonly","isFocused","focused","decimalSeparatorFromLocale","correctPrecision","arguments","undefined","trim","fixed","toFixed","toString","replace","baseDigits","fractionDigits","split","padEnd","RegExp","filter","join","model","_inputText","isNaN","inputText","get","set","parsedValue","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","onClick","onControlClick","onPointerup","onControlMouseup","onPointerdown","onUpControlMousedown","onPointercancel","decrementSlotProps","onDownControlMousedown","formatInputValue","clampModel","inferPrecision","str","idx","indexOf","increment","inferredPrecision","Math","onBeforeinput","e","data","inputElement","target","existingTxt","selectionStart","selectionEnd","potentialNewInputVal","slice","potentialNewNumber","test","preventDefault","cursorPosition","setSelectionRange","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","_createElementVNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","class","style","_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 { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, shallowRef, toRef, watch, watchEffect } from 'vue'\nimport { clamp, escapeForRegex, 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 minFractionDigits: {\n type: Number as PropType<number | null>,\n default: null,\n },\n decimalSeparator: {\n type: String,\n validator: (v: any) => !v || v.length === 1,\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:focused': (val: boolean) => true,\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 = shallowRef(props.focused)\n\n const { decimalSeparator: decimalSeparatorFromLocale } = useLocale()\n const decimalSeparator = computed(() => props.decimalSeparator?.[0] || decimalSeparatorFromLocale.value)\n\n function correctPrecision (val: number, precision = props.precision, trim = true) {\n const fixed = precision == null\n ? String(val)\n : val.toFixed(precision)\n\n if (isFocused.value && trim) {\n return Number(fixed).toString() // trim zeros\n .replace('.', decimalSeparator.value)\n }\n\n if (props.minFractionDigits === null || (precision !== null && precision < props.minFractionDigits)) {\n return fixed.replace('.', decimalSeparator.value)\n }\n\n let [baseDigits, fractionDigits] = fixed.split('.')\n\n fractionDigits = (fractionDigits ?? '').padEnd(props.minFractionDigits, '0')\n .replace(new RegExp(`(?<=\\\\d{${props.minFractionDigits}})0+$`, 'g'), '')\n\n return [\n baseDigits,\n fractionDigits,\n ].filter(Boolean).join(decimalSeparator.value)\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 return\n }\n const parsedValue = Number(val.replace(decimalSeparator.value, '.'))\n if (!isNaN(parsedValue) && parsedValue <= props.max && parsedValue >= props.min) {\n model.value = parsedValue\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 onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onUpControlMousedown,\n onPointercancel: onControlMouseup,\n },\n }\n const decrementSlotProps = {\n props: {\n onClick: onControlClick,\n onPointerup: onControlMouseup,\n onPointerdown: onDownControlMousedown,\n onPointercancel: onControlMouseup,\n },\n }\n\n watch(() => props.precision, () => formatInputValue())\n watch(() => props.minFractionDigits, () => 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, decimalSeparator.value)\n\n // Allow only numbers, \"-\" and {decimal separator}\n // Allow \"-\" and {decimal separator} only once\n // Allow \"-\" only at the start\n if (!new RegExp(`^-?\\\\d*${escapeForRegex(decimalSeparator.value)}?\\\\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(decimalSeparator.value)[1]?.length > props.precision) {\n e.preventDefault()\n inputElement!.value = potentialNewNumber\n\n const cursorPosition = (selectionStart ?? 0) + e.data.length\n inputElement!.setSelectionRange(cursorPosition, cursorPosition)\n }\n // Ignore decimal separator when precision = 0\n if (props.precision === 0 && potentialNewInputVal.includes(decimalSeparator.value)) {\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 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 const parsedValue = Number(actualText.replace(decimalSeparator.value, '.'))\n if (actualText && !isNaN(parsedValue)) {\n inputText.value = correctPrecision(clamp(parsedValue, props.min, props.max))\n } else {\n inputText.value = null\n }\n }\n\n function formatInputValue () {\n if (controlsDisabled.value) return\n inputText.value = model.value !== null && !isNaN(model.value)\n ? correctPrecision(model.value, props.precision, false)\n : null\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 .replace('.', decimalSeparator.value)\n }\n\n function onFocus () {\n trimDecimalZeros()\n }\n\n function onBlur () {\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 onPointercancel={ onControlMouseup }\n size={ controlNodeSize.value }\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 onPointercancel={ onControlMouseup }\n size={ controlNodeSize.value }\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 { ...textFieldProps }\n v-model={ inputText.value }\n v-model:focused={ isFocused.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 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.9.2-master.2025-07-
|
19
|
+
export const version = "3.9.2-master.2025-07-28";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2604,39 +2604,39 @@ declare module 'vue' {
|
|
2604
2604
|
$children?: VNodeChild
|
2605
2605
|
}
|
2606
2606
|
export interface GlobalComponents {
|
2607
|
-
VApp: typeof import('vuetify/components')['VApp']
|
2608
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
2609
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2610
2607
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2611
2608
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2612
2609
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2610
|
+
VApp: typeof import('vuetify/components')['VApp']
|
2613
2611
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2614
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2615
|
-
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2616
|
-
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2617
|
-
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2618
2612
|
VBadge: typeof import('vuetify/components')['VBadge']
|
2619
|
-
|
2620
|
-
|
2613
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
2614
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2621
2615
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2622
2616
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2623
2617
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2624
|
-
|
2618
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2619
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2620
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2621
|
+
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2622
|
+
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2623
|
+
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2625
2624
|
VBtn: typeof import('vuetify/components')['VBtn']
|
2625
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2626
2626
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2627
2627
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2628
|
-
|
2628
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2629
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2629
2630
|
VCard: typeof import('vuetify/components')['VCard']
|
2630
2631
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2631
2632
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2632
2633
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2633
2634
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2634
2635
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2635
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2636
2636
|
VChip: typeof import('vuetify/components')['VChip']
|
2637
|
-
|
2638
|
-
|
2639
|
-
|
2637
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2638
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2639
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2640
2640
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2641
2641
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2642
2642
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
@@ -2652,7 +2652,7 @@ declare module 'vue' {
|
|
2652
2652
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2653
2653
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2654
2654
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2655
|
-
|
2655
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2656
2656
|
VDialog: typeof import('vuetify/components')['VDialog']
|
2657
2657
|
VDivider: typeof import('vuetify/components')['VDivider']
|
2658
2658
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
@@ -2660,22 +2660,22 @@ declare module 'vue' {
|
|
2660
2660
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2661
2661
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2662
2662
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2663
|
-
|
2663
|
+
VFab: typeof import('vuetify/components')['VFab']
|
2664
2664
|
VField: typeof import('vuetify/components')['VField']
|
2665
2665
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2666
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2666
2667
|
VFooter: typeof import('vuetify/components')['VFooter']
|
2667
|
-
|
2668
|
-
|
2668
|
+
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2669
|
+
VItem: typeof import('vuetify/components')['VItem']
|
2669
2670
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2670
2671
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2671
2672
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2672
2673
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2673
2674
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2674
2675
|
VInput: typeof import('vuetify/components')['VInput']
|
2675
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2676
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2677
|
-
VItem: typeof import('vuetify/components')['VItem']
|
2678
2676
|
VLabel: typeof import('vuetify/components')['VLabel']
|
2677
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2678
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
2679
2679
|
VList: typeof import('vuetify/components')['VList']
|
2680
2680
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2681
2681
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -2685,80 +2685,81 @@ declare module 'vue' {
|
|
2685
2685
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2686
2686
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2687
2687
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2688
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
2689
|
-
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2690
2688
|
VMenu: typeof import('vuetify/components')['VMenu']
|
2691
2689
|
VMain: typeof import('vuetify/components')['VMain']
|
2690
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2692
2691
|
VMessages: typeof import('vuetify/components')['VMessages']
|
2693
|
-
|
2692
|
+
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2694
2693
|
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2694
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2695
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2695
2696
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2697
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2696
2698
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2697
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2698
2699
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2699
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2700
|
-
VSelect: typeof import('vuetify/components')['VSelect']
|
2701
2700
|
VRating: typeof import('vuetify/components')['VRating']
|
2702
2701
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2702
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
2703
2703
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2704
|
+
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2705
|
+
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2704
2706
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2705
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
2706
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
2707
2707
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2708
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2709
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
2708
2710
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2709
2711
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2710
2712
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2711
2713
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2712
2714
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2713
2715
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2716
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2714
2717
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2715
|
-
|
2716
|
-
|
2718
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2719
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
2717
2720
|
VTab: typeof import('vuetify/components')['VTab']
|
2718
2721
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2719
2722
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2720
2723
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2721
|
-
|
2722
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2723
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2724
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
2725
|
-
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
2726
|
-
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
2727
|
-
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
2728
|
-
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2729
|
-
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2730
|
-
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2731
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2724
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2732
2725
|
VTreeview: typeof import('vuetify/components')['VTreeview']
|
2733
2726
|
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
2734
2727
|
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
2735
|
-
|
2728
|
+
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2729
|
+
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2730
|
+
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2731
|
+
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
2732
|
+
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
2733
|
+
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
2734
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2735
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2736
2736
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2737
2737
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2738
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2739
2738
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2740
|
-
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2741
2739
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2740
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2741
|
+
VForm: typeof import('vuetify/components')['VForm']
|
2742
2742
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2743
2743
|
VCol: typeof import('vuetify/components')['VCol']
|
2744
2744
|
VRow: typeof import('vuetify/components')['VRow']
|
2745
2745
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2746
|
-
VForm: typeof import('vuetify/components')['VForm']
|
2747
|
-
VHover: typeof import('vuetify/components')['VHover']
|
2748
2746
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2749
2747
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2750
2748
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2751
|
-
|
2749
|
+
VHover: typeof import('vuetify/components')['VHover']
|
2752
2750
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2753
2751
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2754
2752
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2755
2753
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2756
|
-
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2757
2754
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2758
2755
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2759
2756
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2757
|
+
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2758
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2760
2759
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2760
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2761
2761
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2762
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2762
2763
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2763
2764
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2764
2765
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2775,29 +2776,28 @@ declare module 'vue' {
|
|
2775
2776
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2776
2777
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2777
2778
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2778
|
-
|
2779
|
+
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2779
2780
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2780
2781
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2781
2782
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2782
2783
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2783
2784
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2784
2785
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2785
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2786
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2787
|
-
VPie: typeof import('vuetify/labs/components')['VPie']
|
2788
|
-
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
2789
|
-
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
2790
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2791
|
-
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2792
|
-
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
2793
2786
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2794
2787
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2788
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2789
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2795
2790
|
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
2796
2791
|
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
2797
2792
|
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
2793
|
+
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2794
|
+
VPie: typeof import('vuetify/labs/components')['VPie']
|
2795
|
+
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
2796
|
+
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
2798
2797
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2799
2798
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2800
2799
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2800
|
+
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
2801
2801
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
2802
2802
|
VMaskInput: typeof import('vuetify/labs/components')['VMaskInput']
|
2803
2803
|
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
package/lib/framework.js
CHANGED