@vuetify/nightly 3.9.2-master.2025-07-26 → 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 +10 -3
- package/dist/json/attributes.json +2551 -2551
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +158 -158
- package/dist/json/web-types.json +4649 -4637
- package/dist/vuetify-labs.cjs +15 -8
- package/dist/vuetify-labs.css +5178 -5178
- package/dist/vuetify-labs.d.ts +100 -59
- package/dist/vuetify-labs.esm.js +15 -8
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +15 -8
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +6 -4
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5833 -5833
- package/dist/vuetify.d.ts +59 -59
- package/dist/vuetify.esm.js +6 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +7 -5
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +3 -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/lib/labs/VPie/VPie.css +1 -1
- package/lib/labs/VPie/VPie.d.ts +50 -0
- package/lib/labs/VPie/VPie.js +9 -4
- package/lib/labs/VPie/VPie.js.map +1 -1
- package/lib/labs/VPie/VPie.sass +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));
|
@@ -200,6 +200,8 @@ export const VNumberInput = genericComponent()({
|
|
200
200
|
if (potentialNewInputVal.split(decimalSeparator.value)[1]?.length > props.precision) {
|
201
201
|
e.preventDefault();
|
202
202
|
inputElement.value = potentialNewNumber;
|
203
|
+
const cursorPosition = (selectionStart ?? 0) + e.data.length;
|
204
|
+
inputElement.setSelectionRange(cursorPosition, cursorPosition);
|
203
205
|
}
|
204
206
|
// Ignore decimal separator when precision = 0
|
205
207
|
if (props.precision === 0 && potentialNewInputVal.includes(decimalSeparator.value)) {
|
@@ -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","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 // 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
@@ -2608,38 +2608,37 @@ declare module 'vue' {
|
|
2608
2608
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2609
2609
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2610
2610
|
VApp: typeof import('vuetify/components')['VApp']
|
2611
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2612
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2611
2613
|
VAlert: typeof import('vuetify/components')['VAlert']
|
2612
2614
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2613
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2614
2615
|
VBanner: typeof import('vuetify/components')['VBanner']
|
2615
2616
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2616
2617
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2617
|
-
|
2618
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2619
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2618
2620
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2619
2621
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2620
2622
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2621
2623
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2622
2624
|
VBtn: typeof import('vuetify/components')['VBtn']
|
2623
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2624
2625
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2625
|
-
|
2626
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2627
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2628
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2629
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2626
2630
|
VCard: typeof import('vuetify/components')['VCard']
|
2627
2631
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2628
2632
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2629
2633
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2630
2634
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2631
2635
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2632
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2633
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2634
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2635
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2636
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2637
2636
|
VChip: typeof import('vuetify/components')['VChip']
|
2638
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2639
2637
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2638
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2639
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2640
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2640
2641
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2641
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2642
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2643
2642
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2644
2643
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2645
2644
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2647,35 +2646,35 @@ declare module 'vue' {
|
|
2647
2646
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2648
2647
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2649
2648
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2650
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
2651
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
2652
|
-
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2653
2649
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2654
2650
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2655
2651
|
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2656
2652
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2657
2653
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2658
2654
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2655
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2656
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2657
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
2659
2658
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2660
2659
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2661
2660
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2662
2661
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2663
|
-
|
2662
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
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
|
-
VImg: typeof import('vuetify/components')['VImg']
|
2676
|
-
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2677
|
-
VItem: typeof import('vuetify/components')['VItem']
|
2675
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2678
2676
|
VLabel: typeof import('vuetify/components')['VLabel']
|
2677
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2679
2678
|
VKbd: typeof import('vuetify/components')['VKbd']
|
2680
2679
|
VList: typeof import('vuetify/components')['VList']
|
2681
2680
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
@@ -2686,76 +2685,81 @@ declare module 'vue' {
|
|
2686
2685
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2687
2686
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2688
2687
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2688
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
2689
2689
|
VMain: typeof import('vuetify/components')['VMain']
|
2690
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2690
2691
|
VMessages: typeof import('vuetify/components')['VMessages']
|
2691
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
2692
2692
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2693
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2694
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2693
2695
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2694
2696
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2695
|
-
|
2696
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2697
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2697
2698
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2699
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2700
|
+
VRating: typeof import('vuetify/components')['VRating']
|
2698
2701
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2699
2702
|
VSelect: typeof import('vuetify/components')['VSelect']
|
2700
|
-
VRating: typeof import('vuetify/components')['VRating']
|
2701
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
2702
2703
|
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2703
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
2704
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2705
2704
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2706
2705
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2707
|
-
|
2708
|
-
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2706
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2709
2707
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2710
|
-
|
2708
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
2709
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
2711
2710
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2712
2711
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2713
2712
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2714
2713
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2715
2714
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2716
2715
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2717
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2718
|
-
VTable: typeof import('vuetify/components')['VTable']
|
2719
2716
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2717
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2718
|
+
VTable: typeof import('vuetify/components')['VTable']
|
2720
2719
|
VTextField: typeof import('vuetify/components')['VTextField']
|
2721
2720
|
VTab: typeof import('vuetify/components')['VTab']
|
2722
2721
|
VTabs: typeof import('vuetify/components')['VTabs']
|
2723
2722
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2724
2723
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2725
|
-
|
2726
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2727
|
-
VTimePicker: typeof import('vuetify/components')['VTimePicker']
|
2728
|
-
VTimePickerClock: typeof import('vuetify/components')['VTimePickerClock']
|
2729
|
-
VTimePickerControls: typeof import('vuetify/components')['VTimePickerControls']
|
2730
|
-
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2731
|
-
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2732
|
-
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2724
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2733
2725
|
VTreeview: typeof import('vuetify/components')['VTreeview']
|
2734
2726
|
VTreeviewItem: typeof import('vuetify/components')['VTreeviewItem']
|
2735
2727
|
VTreeviewGroup: typeof import('vuetify/components')['VTreeviewGroup']
|
2736
|
-
|
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
|
+
VWindow: typeof import('vuetify/components')['VWindow']
|
2737
|
+
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2737
2738
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2738
|
-
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2739
2739
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2740
|
+
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2740
2741
|
VForm: typeof import('vuetify/components')['VForm']
|
2741
|
-
VHover: typeof import('vuetify/components')['VHover']
|
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
2746
|
VLazy: typeof import('vuetify/components')['VLazy']
|
2747
|
-
|
2747
|
+
VLayout: typeof import('vuetify/components')['VLayout']
|
2748
|
+
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2749
|
+
VHover: typeof import('vuetify/components')['VHover']
|
2748
2750
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2749
2751
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2750
2752
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2751
2753
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2752
2754
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2753
2755
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2754
|
-
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2755
2756
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2757
|
+
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2758
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2756
2759
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2757
|
-
VValidation: typeof import('vuetify/components')['VValidation']
|
2758
2760
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2761
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
2762
|
+
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2759
2763
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2760
2764
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2761
2765
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2772,10 +2776,7 @@ declare module 'vue' {
|
|
2772
2776
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2773
2777
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2774
2778
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2775
|
-
|
2776
|
-
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2777
|
-
VLayout: typeof import('vuetify/components')['VLayout']
|
2778
|
-
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
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']
|
@@ -2786,18 +2787,17 @@ declare module 'vue' {
|
|
2786
2787
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2787
2788
|
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2788
2789
|
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2790
|
+
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
2791
|
+
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
2792
|
+
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
2789
2793
|
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2790
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2791
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2792
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2793
2794
|
VPie: typeof import('vuetify/labs/components')['VPie']
|
2794
2795
|
VPieSegment: typeof import('vuetify/labs/components')['VPieSegment']
|
2795
2796
|
VPieTooltip: typeof import('vuetify/labs/components')['VPieTooltip']
|
2797
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2798
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2799
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2796
2800
|
VHotkey: typeof import('vuetify/labs/components')['VHotkey']
|
2797
|
-
VColorInput: typeof import('vuetify/labs/components')['VColorInput']
|
2798
|
-
VVideo: typeof import('vuetify/labs/components')['VVideo']
|
2799
|
-
VVideoControls: typeof import('vuetify/labs/components')['VVideoControls']
|
2800
|
-
VVideoVolume: typeof import('vuetify/labs/components')['VVideoVolume']
|
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
package/lib/labs/VPie/VPie.css
CHANGED