@vuetify/nightly 3.8.2-master.2025-04-22 → 3.8.2-master.2025-04-24
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 +9 -3
- package/dist/json/attributes.json +2983 -2983
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +172 -172
- package/dist/json/web-types.json +5495 -5495
- package/dist/vuetify-labs.cjs +3 -8
- package/dist/vuetify-labs.css +4534 -4534
- package/dist/vuetify-labs.d.ts +58 -58
- package/dist/vuetify-labs.esm.js +3 -8
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +3 -8
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +3 -8
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4747 -4747
- package/dist/vuetify.d.ts +58 -58
- package/dist/vuetify.esm.js +3 -8
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +3 -8
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +3 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/composables/validation.js +0 -5
- package/lib/composables/validation.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +58 -58
- package/lib/framework.js +1 -1
- package/package.json +1 -1
@@ -159,11 +159,6 @@ export function useValidation(props) {
|
|
159
159
|
}
|
160
160
|
async function validate() {
|
161
161
|
let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
162
|
-
if (props.disabled || props.readonly) {
|
163
|
-
internalErrorMessages.value = [];
|
164
|
-
isValidating.value = false;
|
165
|
-
return internalErrorMessages.value;
|
166
|
-
}
|
167
162
|
const results = [];
|
168
163
|
isValidating.value = true;
|
169
164
|
for (const rule of props.rules) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"validation.js","names":["makeFocusProps","useForm","useProxiedModel","useToggleScope","computed","nextTick","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","useId","watch","getCurrentInstance","getCurrentInstanceName","propsFactory","wrapInArray","makeValidationProps","disabled","type","Boolean","default","error","errorMessages","Array","String","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","concat","slice","Math","max","set","Set","split","input","has","blur","invalidInput","lazy","eager","isValid","isValidating","validationClasses","isDisabled","isReadonly","vm","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","silent","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n// import { useRules } from '@/labs/rules'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, useId, watch } from 'vue'\nimport { getCurrentInstance, getCurrentInstanceName, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'\ntype ValidateOn =\n | ValidateOnValue\n | `${ValidateOnValue} lazy`\n | `${ValidateOnValue} eager`\n | `lazy ${ValidateOnValue}`\n | `eager ${ValidateOnValue}`\n | 'lazy'\n | 'eager'\n\n// type ValidationRuleParams = [any, string?]\n// type ValidationAlias = string | [string, ...ValidationRuleParams]\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n // rules: readonly (ValidationRule | ValidationAlias)[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOn\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n // type: Array as PropType<readonly (ValidationRule | ValidationAlias)[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = useId(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm(props)\n // const rules = useRules()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors)))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form.validateOn?.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n if (value === 'eager') value = 'input eager'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: form.isDisabled.value,\n [`${name}--readonly`]: form.isReadonly.value,\n }\n })\n\n const vm = getCurrentInstance('validation')\n const uid = computed(() => props.name ?? unref(id))\n\n // const resolvedRules = computed(() => props.rules.map(rule => {\n // let ruleName: string | null = null\n // let ruleParams: ValidationRuleParams = [undefined]\n // if (Array.isArray(rule)) {\n // ruleName = rule[0]\n // ruleParams = rule.slice(1) as ValidationRuleParams\n // } else if (typeof rule === 'string') {\n // ruleName = rule\n // }\n\n // if (ruleName !== null) {\n // if (ruleName.startsWith('$')) {\n // ruleName = ruleName.slice(1)\n // }\n\n // return rules?.[ruleName]?.(...ruleParams)\n // } else {\n // return rule\n // }\n // }))\n\n onBeforeMount(() => {\n form.register?.({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form.unregister?.(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n }\n form.update?.(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input || (validateOn.value.invalidInput && isValid.value === false), () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form.update?.(uid.value, isValid.value, errorMessages.value)\n })\n\n async function reset () {\n model.value = null\n await nextTick()\n await resetValidation()\n }\n\n async function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n if (props.disabled || props.readonly) {\n internalErrorMessages.value = []\n isValidating.value = false\n return internalErrorMessages.value\n }\n\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= Number(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled: form.isDisabled,\n isReadonly: form.isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"validation.js","names":["makeFocusProps","useForm","useProxiedModel","useToggleScope","computed","nextTick","onBeforeMount","onBeforeUnmount","onMounted","ref","shallowRef","unref","useId","watch","getCurrentInstance","getCurrentInstanceName","propsFactory","wrapInArray","makeValidationProps","disabled","type","Boolean","default","error","errorMessages","Array","String","maxErrors","Number","name","label","readonly","rules","modelValue","validateOn","validationValue","useValidation","props","arguments","length","undefined","id","model","validationModel","value","form","internalErrorMessages","isPristine","isDirty","concat","slice","Math","max","set","Set","split","input","has","blur","invalidInput","lazy","eager","isValid","isValidating","validationClasses","isDisabled","isReadonly","vm","uid","register","validate","reset","resetValidation","unregister","update","focused","unwatch","val","silent","results","rule","handler","result","console","warn","push"],"sources":["../../src/composables/validation.ts"],"sourcesContent":["// Composables\nimport { makeFocusProps } from '@/composables/focus'\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useToggleScope } from '@/composables/toggleScope'\n// import { useRules } from '@/labs/rules'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, onBeforeUnmount, onMounted, ref, shallowRef, unref, useId, watch } from 'vue'\nimport { getCurrentInstance, getCurrentInstanceName, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { EventProp, MaybeRef } from '@/util'\n\nexport type ValidationResult = string | boolean\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\ntype ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input'\ntype ValidateOn =\n | ValidateOnValue\n | `${ValidateOnValue} lazy`\n | `${ValidateOnValue} eager`\n | `lazy ${ValidateOnValue}`\n | `eager ${ValidateOnValue}`\n | 'lazy'\n | 'eager'\n\n// type ValidationRuleParams = [any, string?]\n// type ValidationAlias = string | [string, ...ValidationRuleParams]\n\nexport interface ValidationProps {\n disabled: boolean | null\n error: boolean\n errorMessages: string | readonly string[] | null\n focused: boolean\n maxErrors: string | number\n name: string | undefined\n label: string | undefined\n readonly: boolean | null\n rules: readonly ValidationRule[]\n // rules: readonly (ValidationRule | ValidationAlias)[]\n modelValue: any\n 'onUpdate:modelValue': EventProp | undefined\n validateOn?: ValidateOn\n validationValue: any\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | readonly string[] | null>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n label: String,\n readonly: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n // type: Array as PropType<readonly (ValidationRule | ValidationAlias)[]>,\n default: () => ([]),\n },\n modelValue: null,\n validateOn: String as PropType<ValidationProps['validateOn']>,\n validationValue: null,\n\n ...makeFocusProps(),\n}, 'validation')\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n id: MaybeRef<string | number> = useId(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue)\n const form = useForm(props)\n // const rules = useRules()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = shallowRef(true)\n const isDirty = computed(() => !!(\n wrapInArray(model.value === '' ? null : model.value).length ||\n wrapInArray(validationModel.value === '' ? null : validationModel.value).length\n ))\n const errorMessages = computed(() => {\n return props.errorMessages?.length\n ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, Number(props.maxErrors)))\n : internalErrorMessages.value\n })\n const validateOn = computed(() => {\n let value = (props.validateOn ?? form.validateOn?.value) || 'input'\n if (value === 'lazy') value = 'input lazy'\n if (value === 'eager') value = 'input eager'\n const set = new Set(value?.split(' ') ?? [])\n\n return {\n input: set.has('input'),\n blur: set.has('blur') || set.has('input') || set.has('invalid-input'),\n invalidInput: set.has('invalid-input'),\n lazy: set.has('lazy'),\n eager: set.has('eager'),\n }\n })\n const isValid = computed(() => {\n if (props.error || props.errorMessages?.length) return false\n if (!props.rules.length) return true\n if (isPristine.value) {\n return internalErrorMessages.value.length || validateOn.value.lazy ? null : true\n } else {\n return !internalErrorMessages.value.length\n }\n })\n const isValidating = shallowRef(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: form.isDisabled.value,\n [`${name}--readonly`]: form.isReadonly.value,\n }\n })\n\n const vm = getCurrentInstance('validation')\n const uid = computed(() => props.name ?? unref(id))\n\n // const resolvedRules = computed(() => props.rules.map(rule => {\n // let ruleName: string | null = null\n // let ruleParams: ValidationRuleParams = [undefined]\n // if (Array.isArray(rule)) {\n // ruleName = rule[0]\n // ruleParams = rule.slice(1) as ValidationRuleParams\n // } else if (typeof rule === 'string') {\n // ruleName = rule\n // }\n\n // if (ruleName !== null) {\n // if (ruleName.startsWith('$')) {\n // ruleName = ruleName.slice(1)\n // }\n\n // return rules?.[ruleName]?.(...ruleParams)\n // } else {\n // return rule\n // }\n // }))\n\n onBeforeMount(() => {\n form.register?.({\n id: uid.value,\n vm,\n validate,\n reset,\n resetValidation,\n })\n })\n\n onBeforeUnmount(() => {\n form.unregister?.(uid.value)\n })\n\n onMounted(async () => {\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n }\n form.update?.(uid.value, isValid.value, errorMessages.value)\n })\n\n useToggleScope(() => validateOn.value.input || (validateOn.value.invalidInput && isValid.value === false), () => {\n watch(validationModel, () => {\n if (validationModel.value != null) {\n validate()\n } else if (props.focused) {\n const unwatch = watch(() => props.focused, val => {\n if (!val) validate()\n\n unwatch()\n })\n }\n })\n })\n\n useToggleScope(() => validateOn.value.blur, () => {\n watch(() => props.focused, val => {\n if (!val) validate()\n })\n })\n\n watch([isValid, errorMessages], () => {\n form.update?.(uid.value, isValid.value, errorMessages.value)\n })\n\n async function reset () {\n model.value = null\n await nextTick()\n await resetValidation()\n }\n\n async function resetValidation () {\n isPristine.value = true\n if (!validateOn.value.lazy) {\n await validate(!validateOn.value.eager)\n } else {\n internalErrorMessages.value = []\n }\n }\n\n async function validate (silent = false) {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= Number(props.maxErrors ?? 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(validationModel.value)\n\n if (result === true) continue\n\n if (result !== false && typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result || '')\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = silent\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled: form.isDisabled,\n isReadonly: form.isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.js
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.8.2-master.2025-04-
|
19
|
+
export const version = "3.8.2-master.2025-04-24";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.js";
|
package/lib/framework.d.ts
CHANGED
@@ -2573,40 +2573,46 @@ declare module 'vue' {
|
|
2573
2573
|
}
|
2574
2574
|
export interface GlobalComponents {
|
2575
2575
|
VApp: typeof import('vuetify/components')['VApp']
|
2576
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2577
2576
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
2578
2577
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
2579
2578
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
2580
2579
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
2581
2580
|
VAlert: typeof import('vuetify/components')['VAlert']
|
2582
2581
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
2583
|
-
|
2584
|
-
VBanner: typeof import('vuetify/components')['VBanner']
|
2585
|
-
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2586
|
-
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2587
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2588
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
2589
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
2582
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
2590
2583
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
2591
2584
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
2592
2585
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
2586
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
2587
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
2588
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
2593
2589
|
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
2594
2590
|
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
2595
|
-
|
2596
|
-
|
2597
|
-
|
2591
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
2592
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
2593
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
2598
2594
|
VCard: typeof import('vuetify/components')['VCard']
|
2599
2595
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
2600
2596
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
2601
2597
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
2602
2598
|
VCardText: typeof import('vuetify/components')['VCardText']
|
2603
2599
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
2604
|
-
VCode: typeof import('vuetify/components')['VCode']
|
2605
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2606
2600
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
2607
2601
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
2602
|
+
VChip: typeof import('vuetify/components')['VChip']
|
2603
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
2604
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
2605
|
+
VCode: typeof import('vuetify/components')['VCode']
|
2606
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
2608
2607
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
2609
2608
|
VCounter: typeof import('vuetify/components')['VCounter']
|
2609
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2610
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
2611
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2612
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2613
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2614
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2615
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2610
2616
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
2611
2617
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
2612
2618
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -2614,36 +2620,29 @@ declare module 'vue' {
|
|
2614
2620
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
2615
2621
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
2616
2622
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
2617
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
2618
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
2619
2623
|
VDivider: typeof import('vuetify/components')['VDivider']
|
2620
|
-
|
2621
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
2622
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
2623
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
2624
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
2625
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
2624
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
2626
2625
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
2627
2626
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
2628
2627
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
2629
2628
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
2630
|
-
VField: typeof import('vuetify/components')['VField']
|
2631
|
-
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2632
2629
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
2633
2630
|
VFab: typeof import('vuetify/components')['VFab']
|
2634
2631
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
2635
2632
|
VFooter: typeof import('vuetify/components')['VFooter']
|
2636
|
-
|
2637
|
-
|
2633
|
+
VField: typeof import('vuetify/components')['VField']
|
2634
|
+
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
2638
2635
|
VIcon: typeof import('vuetify/components')['VIcon']
|
2639
2636
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
2640
2637
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
2641
2638
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
2642
2639
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
2640
|
+
VImg: typeof import('vuetify/components')['VImg']
|
2641
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2642
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
2643
|
+
VInput: typeof import('vuetify/components')['VInput']
|
2643
2644
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
2644
2645
|
VItem: typeof import('vuetify/components')['VItem']
|
2645
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
2646
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
2647
2646
|
VList: typeof import('vuetify/components')['VList']
|
2648
2647
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
2649
2648
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -2653,74 +2652,76 @@ declare module 'vue' {
|
|
2653
2652
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
2654
2653
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
2655
2654
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
2656
|
-
VLabel: typeof import('vuetify/components')['VLabel']
|
2657
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
2658
2655
|
VMain: typeof import('vuetify/components')['VMain']
|
2659
|
-
|
2660
|
-
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2656
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
2661
2657
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
2658
|
+
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2659
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
2662
2660
|
VOverlay: typeof import('vuetify/components')['VOverlay']
|
2661
|
+
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
2662
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2663
2663
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
2664
2664
|
VPagination: typeof import('vuetify/components')['VPagination']
|
2665
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
2666
2665
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
2667
2666
|
VRating: typeof import('vuetify/components')['VRating']
|
2667
|
+
VSelect: typeof import('vuetify/components')['VSelect']
|
2668
2668
|
VSheet: typeof import('vuetify/components')['VSheet']
|
2669
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2670
2669
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
2671
|
-
|
2672
|
-
|
2670
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
2671
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2673
2672
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
2674
2673
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
2675
2674
|
VSlider: typeof import('vuetify/components')['VSlider']
|
2676
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
2677
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2678
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2679
|
-
VTab: typeof import('vuetify/components')['VTab']
|
2680
|
-
VTabs: typeof import('vuetify/components')['VTabs']
|
2681
|
-
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2682
|
-
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2683
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2684
2675
|
VStepper: typeof import('vuetify/components')['VStepper']
|
2685
2676
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
2686
2677
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
2687
2678
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
2688
2679
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
2689
2680
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
2681
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
2682
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
2683
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
2684
|
+
VTab: typeof import('vuetify/components')['VTab']
|
2685
|
+
VTabs: typeof import('vuetify/components')['VTabs']
|
2686
|
+
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
2687
|
+
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
2690
2688
|
VTable: typeof import('vuetify/components')['VTable']
|
2689
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
2691
2690
|
VTextField: typeof import('vuetify/components')['VTextField']
|
2692
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2693
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2694
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2695
2691
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
2696
2692
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
2697
2693
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
2694
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
2695
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
2696
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
2698
2697
|
VWindow: typeof import('vuetify/components')['VWindow']
|
2699
2698
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
2700
|
-
|
2699
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
2700
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
2701
2701
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
2702
|
-
|
2702
|
+
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
2703
2703
|
VForm: typeof import('vuetify/components')['VForm']
|
2704
|
-
|
2704
|
+
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
2705
2705
|
VContainer: typeof import('vuetify/components')['VContainer']
|
2706
2706
|
VCol: typeof import('vuetify/components')['VCol']
|
2707
2707
|
VRow: typeof import('vuetify/components')['VRow']
|
2708
2708
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
2709
|
-
|
2709
|
+
VHover: typeof import('vuetify/components')['VHover']
|
2710
2710
|
VLayout: typeof import('vuetify/components')['VLayout']
|
2711
2711
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
2712
2712
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
2713
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
2713
2714
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
2714
2715
|
VParallax: typeof import('vuetify/components')['VParallax']
|
2715
2716
|
VRadio: typeof import('vuetify/components')['VRadio']
|
2716
2717
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
2717
2718
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
2719
|
+
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2718
2720
|
VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
|
2719
2721
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
2720
|
-
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
2721
2722
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
2722
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2723
2723
|
VValidation: typeof import('vuetify/components')['VValidation']
|
2724
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
2724
2725
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
2725
2726
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
2726
2727
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -2737,24 +2738,23 @@ declare module 'vue' {
|
|
2737
2738
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
2738
2739
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
2739
2740
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
2740
|
-
VNumberInput: typeof import('vuetify/components')['VNumberInput']
|
2741
2741
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
2742
2742
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
2743
2743
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
2744
2744
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
2745
2745
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
2746
2746
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
2747
|
-
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2748
|
-
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2749
2747
|
VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
|
2750
|
-
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2751
|
-
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2752
|
-
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2753
2748
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
2754
2749
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
2755
2750
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
2756
2751
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
2757
2752
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
2753
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
2754
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
2755
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
2756
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
2757
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
2758
2758
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
2759
2759
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
2760
2760
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
package/lib/framework.js
CHANGED