@vuetify/nightly 3.6.4-master.2024-05-10 → 3.6.5-master.2024-05-11
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 +2 -12
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +268 -4
- package/dist/json/importMap-labs.json +22 -10
- package/dist/json/importMap.json +142 -142
- package/dist/json/tags.json +81 -0
- package/dist/json/web-types.json +1253 -6
- package/dist/vuetify-labs.css +1684 -1616
- package/dist/vuetify-labs.d.ts +1615 -28
- package/dist/vuetify-labs.esm.js +298 -11
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +298 -11
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1239 -1239
- package/dist/vuetify.d.ts +97 -73
- package/dist/vuetify.esm.js +38 -11
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +38 -11
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +47 -48
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBtn/index.d.mts +2 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -4
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +82 -27
- package/lib/components/VSlideGroup/index.d.mts +2 -0
- package/lib/components/VStepper/VStepper.mjs +5 -2
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.mjs +5 -2
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
- package/lib/components/VStepper/index.d.mts +1 -1
- package/lib/components/VTabs/index.d.mts +2 -0
- package/lib/components/VWindow/index.d.mts +2 -0
- package/lib/components/index.d.mts +48 -27
- package/lib/composables/group.mjs +8 -0
- package/lib/composables/group.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +49 -46
- package/lib/labs/VStepperVertical/VStepperVertical.mjs +106 -0
- package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +38 -0
- package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.css +69 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +134 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +74 -0
- package/lib/labs/VStepperVertical/_variables.scss +3 -0
- package/lib/labs/VStepperVertical/index.d.mts +1590 -0
- package/lib/labs/VStepperVertical/index.mjs +4 -0
- package/lib/labs/VStepperVertical/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +1599 -20
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/package.json +1 -1
@@ -1438,6 +1438,8 @@ interface GroupProvide {
|
|
1438
1438
|
interface GroupItemProvide {
|
1439
1439
|
id: number;
|
1440
1440
|
isSelected: Ref<boolean>;
|
1441
|
+
isFirst: Ref<boolean>;
|
1442
|
+
isLast: Ref<boolean>;
|
1441
1443
|
toggle: () => void;
|
1442
1444
|
select: (value: boolean) => void;
|
1443
1445
|
selectedClass: Ref<(string | undefined)[] | false>;
|
@@ -32238,6 +32240,10 @@ declare const VEmptyState: {
|
|
32238
32240
|
}>>;
|
32239
32241
|
type VEmptyState = InstanceType<typeof VEmptyState>;
|
32240
32242
|
|
32243
|
+
type VExpansionPanelSlot = {
|
32244
|
+
prev: () => void;
|
32245
|
+
next: () => void;
|
32246
|
+
};
|
32241
32247
|
declare const VExpansionPanels: {
|
32242
32248
|
new (...args: any[]): vue.CreateComponentPublicInstance<{
|
32243
32249
|
flat: boolean;
|
@@ -32273,16 +32279,19 @@ declare const VExpansionPanels: {
|
|
32273
32279
|
bgColor?: string | undefined;
|
32274
32280
|
} & {
|
32275
32281
|
$children?: vue.VNodeChild | {
|
32276
|
-
default?: (() => vue.VNodeChild) | undefined;
|
32277
|
-
} | (() => vue.VNodeChild);
|
32282
|
+
default?: ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32283
|
+
} | ((arg: VExpansionPanelSlot) => vue.VNodeChild);
|
32278
32284
|
'v-slots'?: {
|
32279
|
-
default?: false | (() => vue.VNodeChild) | undefined;
|
32285
|
+
default?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32280
32286
|
} | undefined;
|
32281
32287
|
} & {
|
32282
|
-
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
32288
|
+
"v-slot:default"?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32283
32289
|
} & {
|
32284
32290
|
"onUpdate:modelValue"?: ((val: unknown) => any) | undefined;
|
32285
|
-
}, {
|
32291
|
+
}, {
|
32292
|
+
next: () => void;
|
32293
|
+
prev: () => void;
|
32294
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
32286
32295
|
'update:modelValue': (val: unknown) => boolean;
|
32287
32296
|
}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
32288
32297
|
flat: boolean;
|
@@ -32318,13 +32327,13 @@ declare const VExpansionPanels: {
|
|
32318
32327
|
bgColor?: string | undefined;
|
32319
32328
|
} & {
|
32320
32329
|
$children?: vue.VNodeChild | {
|
32321
|
-
default?: (() => vue.VNodeChild) | undefined;
|
32322
|
-
} | (() => vue.VNodeChild);
|
32330
|
+
default?: ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32331
|
+
} | ((arg: VExpansionPanelSlot) => vue.VNodeChild);
|
32323
32332
|
'v-slots'?: {
|
32324
|
-
default?: false | (() => vue.VNodeChild) | undefined;
|
32333
|
+
default?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32325
32334
|
} | undefined;
|
32326
32335
|
} & {
|
32327
|
-
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
32336
|
+
"v-slot:default"?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32328
32337
|
} & {
|
32329
32338
|
"onUpdate:modelValue"?: ((val: unknown) => any) | undefined;
|
32330
32339
|
}, {
|
@@ -32348,7 +32357,7 @@ declare const VExpansionPanels: {
|
|
32348
32357
|
hideActions: boolean;
|
32349
32358
|
focusable: boolean;
|
32350
32359
|
}, true, {}, vue.SlotsType<Partial<{
|
32351
|
-
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
32360
|
+
default: (arg: VExpansionPanelSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
32352
32361
|
[key: string]: any;
|
32353
32362
|
}>[];
|
32354
32363
|
}>>, {
|
@@ -32392,16 +32401,19 @@ declare const VExpansionPanels: {
|
|
32392
32401
|
bgColor?: string | undefined;
|
32393
32402
|
} & {
|
32394
32403
|
$children?: vue.VNodeChild | {
|
32395
|
-
default?: (() => vue.VNodeChild) | undefined;
|
32396
|
-
} | (() => vue.VNodeChild);
|
32404
|
+
default?: ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32405
|
+
} | ((arg: VExpansionPanelSlot) => vue.VNodeChild);
|
32397
32406
|
'v-slots'?: {
|
32398
|
-
default?: false | (() => vue.VNodeChild) | undefined;
|
32407
|
+
default?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32399
32408
|
} | undefined;
|
32400
32409
|
} & {
|
32401
|
-
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
32410
|
+
"v-slot:default"?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32402
32411
|
} & {
|
32403
32412
|
"onUpdate:modelValue"?: ((val: unknown) => any) | undefined;
|
32404
|
-
}, {
|
32413
|
+
}, {
|
32414
|
+
next: () => void;
|
32415
|
+
prev: () => void;
|
32416
|
+
}, {}, {}, {}, {
|
32405
32417
|
flat: boolean;
|
32406
32418
|
style: vue.StyleValue;
|
32407
32419
|
disabled: boolean;
|
@@ -32459,16 +32471,19 @@ declare const VExpansionPanels: {
|
|
32459
32471
|
bgColor?: string | undefined;
|
32460
32472
|
} & {
|
32461
32473
|
$children?: vue.VNodeChild | {
|
32462
|
-
default?: (() => vue.VNodeChild) | undefined;
|
32463
|
-
} | (() => vue.VNodeChild);
|
32474
|
+
default?: ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32475
|
+
} | ((arg: VExpansionPanelSlot) => vue.VNodeChild);
|
32464
32476
|
'v-slots'?: {
|
32465
|
-
default?: false | (() => vue.VNodeChild) | undefined;
|
32477
|
+
default?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32466
32478
|
} | undefined;
|
32467
32479
|
} & {
|
32468
|
-
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
32480
|
+
"v-slot:default"?: false | ((arg: VExpansionPanelSlot) => vue.VNodeChild) | undefined;
|
32469
32481
|
} & {
|
32470
32482
|
"onUpdate:modelValue"?: ((val: unknown) => any) | undefined;
|
32471
|
-
}, {
|
32483
|
+
}, {
|
32484
|
+
next: () => void;
|
32485
|
+
prev: () => void;
|
32486
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
32472
32487
|
'update:modelValue': (val: unknown) => boolean;
|
32473
32488
|
}, string, {
|
32474
32489
|
flat: boolean;
|
@@ -32491,7 +32506,7 @@ declare const VExpansionPanels: {
|
|
32491
32506
|
hideActions: boolean;
|
32492
32507
|
focusable: boolean;
|
32493
32508
|
}, {}, string, vue.SlotsType<Partial<{
|
32494
|
-
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
32509
|
+
default: (arg: VExpansionPanelSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
32495
32510
|
[key: string]: any;
|
32496
32511
|
}>[];
|
32497
32512
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
@@ -32660,10 +32675,12 @@ declare const VExpansionPanel: {
|
|
32660
32675
|
"onGroup:selected"?: ((val: {
|
32661
32676
|
value: boolean;
|
32662
32677
|
}) => any) | undefined;
|
32663
|
-
}, {
|
32678
|
+
}, {
|
32679
|
+
groupItem: GroupItemProvide;
|
32680
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
32664
32681
|
'group:selected': (val: {
|
32665
32682
|
value: boolean;
|
32666
|
-
}) =>
|
32683
|
+
}) => true;
|
32667
32684
|
}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
32668
32685
|
style: vue.StyleValue;
|
32669
32686
|
disabled: boolean;
|
@@ -32785,7 +32802,9 @@ declare const VExpansionPanel: {
|
|
32785
32802
|
"onGroup:selected"?: ((val: {
|
32786
32803
|
value: boolean;
|
32787
32804
|
}) => any) | undefined;
|
32788
|
-
}, {
|
32805
|
+
}, {
|
32806
|
+
groupItem: GroupItemProvide;
|
32807
|
+
}, {}, {}, {}, {
|
32789
32808
|
style: vue.StyleValue;
|
32790
32809
|
disabled: boolean;
|
32791
32810
|
tag: string;
|
@@ -32849,10 +32868,12 @@ declare const VExpansionPanel: {
|
|
32849
32868
|
"onGroup:selected"?: ((val: {
|
32850
32869
|
value: boolean;
|
32851
32870
|
}) => any) | undefined;
|
32852
|
-
}, {
|
32871
|
+
}, {
|
32872
|
+
groupItem: GroupItemProvide;
|
32873
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
32853
32874
|
'group:selected': (val: {
|
32854
32875
|
value: boolean;
|
32855
|
-
}) =>
|
32876
|
+
}) => true;
|
32856
32877
|
}, string, {
|
32857
32878
|
style: vue.StyleValue;
|
32858
32879
|
disabled: boolean;
|
@@ -57728,6 +57749,7 @@ declare const VSpeedDial: {
|
|
57728
57749
|
}>>;
|
57729
57750
|
type VSpeedDial = InstanceType<typeof VSpeedDial>;
|
57730
57751
|
|
57752
|
+
type StepperItem = string | Record<string, any>;
|
57731
57753
|
type StepperItemSlot = {
|
57732
57754
|
canEdit: boolean;
|
57733
57755
|
hasError: boolean;
|
@@ -58052,7 +58074,6 @@ declare const VStepperItem: {
|
|
58052
58074
|
}>>;
|
58053
58075
|
type VStepperItem = InstanceType<typeof VStepperItem>;
|
58054
58076
|
|
58055
|
-
type StepperItem = string | Record<string, any>;
|
58056
58077
|
type VStepperSlot = {
|
58057
58078
|
prev: () => void;
|
58058
58079
|
next: () => void;
|
@@ -47,6 +47,12 @@ export function useGroupItem(props, injectKey) {
|
|
47
47
|
const isSelected = computed(() => {
|
48
48
|
return group.isSelected(id);
|
49
49
|
});
|
50
|
+
const isFirst = computed(() => {
|
51
|
+
return group.items.value[0].id === id;
|
52
|
+
});
|
53
|
+
const isLast = computed(() => {
|
54
|
+
return group.items.value[group.items.value.length - 1].id === id;
|
55
|
+
});
|
50
56
|
const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);
|
51
57
|
watch(isSelected, value => {
|
52
58
|
vm.emit('group:selected', {
|
@@ -58,6 +64,8 @@ export function useGroupItem(props, injectKey) {
|
|
58
64
|
return {
|
59
65
|
id,
|
60
66
|
isSelected,
|
67
|
+
isFirst,
|
68
|
+
isLast,
|
61
69
|
toggle: () => group.select(id, !isSelected.value),
|
62
70
|
select: value => group.select(id, value),
|
63
71
|
selectedClass,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","onUpdated","provide","reactive","toRef","unref","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","emit","flush","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","useIndexAsValue","splice","push","forceMandatoryValue","findIndex","find","i","internalValue","slice","includes","step","offset","currentId","currentIndex","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","onUpdated","provide","reactive","toRef","unref","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","arguments","length","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","isFirst","items","isLast","emit","flush","toggle","select","useGroup","isUnmounted","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","useIndexAsValue","splice","push","forceMandatoryValue","findIndex","find","i","internalValue","slice","includes","step","offset","currentId","currentIndex","newIndex","newItem","state","prev","next","getItemIndex","ids","forEach","itemByIndex","values","itemIndex"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, onUpdated, provide, reactive, toRef, unref, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\nimport type { EventProp } from '@/util'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n useIndexAsValue?: boolean\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': EventProp<[unknown]> | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n isFirst: Ref<boolean>\n isLast: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': EventProp<[{ value: boolean }]> | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => !!(group.disabled.value || props.disabled))\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n const isFirst = computed(() => {\n return group.items.value[0].id === id\n })\n const isLast = computed(() => {\n return group.items.value[group.items.value.length - 1].id === id\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n }, { flush: 'sync' })\n\n return {\n id,\n isSelected,\n isFirst,\n isLast,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (unref(unwrapped.value) == null) {\n unwrapped.value = index\n unwrapped.useIndexAsValue = true\n }\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n onUpdated(() => {\n // #19655 update the items that use the index as the value.\n for (let i = 0; i < items.length; i++) {\n if (items[i].useIndexAsValue) {\n items[i].value = i\n }\n }\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids: number[] = []\n\n modelValue.forEach(value => {\n const item = items.find(item => deepEqual(value, item.value))\n const itemByIndex = items[value]\n\n if (item?.value != null) {\n ids.push(item.id)\n } else if (itemByIndex != null) {\n ids.push(itemByIndex.id)\n }\n })\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values: unknown[] = []\n\n ids.forEach(id => {\n const itemIndex = items.findIndex(item => item.id === id)\n if (~itemIndex) {\n const item = items[itemIndex]\n values.push(item.value != null ? item.value : itemIndex)\n }\n })\n\n return values\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/entry-bundler.mjs
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.6.
|
19
|
+
export const version = "3.6.5-master.2024-05-11";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED
package/lib/index.d.mts
CHANGED
@@ -493,40 +493,48 @@ declare module '@vue/runtime-core' {
|
|
493
493
|
}
|
494
494
|
|
495
495
|
export interface GlobalComponents {
|
496
|
+
VApp: typeof import('vuetify/components')['VApp']
|
496
497
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
497
498
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
498
499
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
500
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
499
501
|
VAlert: typeof import('vuetify/components')['VAlert']
|
500
502
|
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
503
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
501
504
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
502
|
-
|
503
|
-
|
505
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
506
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
507
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
504
508
|
VBadge: typeof import('vuetify/components')['VBadge']
|
509
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
505
510
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
506
511
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
507
512
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
508
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
509
|
-
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
510
|
-
VBanner: typeof import('vuetify/components')['VBanner']
|
511
|
-
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
512
|
-
VBannerText: typeof import('vuetify/components')['VBannerText']
|
513
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
514
513
|
VBtn: typeof import('vuetify/components')['VBtn']
|
514
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
515
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
516
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
517
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
518
|
+
VChip: typeof import('vuetify/components')['VChip']
|
515
519
|
VCard: typeof import('vuetify/components')['VCard']
|
516
520
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
517
521
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
518
522
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
519
523
|
VCardText: typeof import('vuetify/components')['VCardText']
|
520
524
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
521
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
522
525
|
VCarousel: typeof import('vuetify/components')['VCarousel']
|
523
526
|
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
524
|
-
|
525
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
526
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
527
|
-
VChip: typeof import('vuetify/components')['VChip']
|
527
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
528
528
|
VCode: typeof import('vuetify/components')['VCode']
|
529
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
529
530
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
531
|
+
VDataTable: typeof import('vuetify/components')['VDataTable']
|
532
|
+
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
533
|
+
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
534
|
+
VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
|
535
|
+
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
536
|
+
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
537
|
+
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
530
538
|
VCounter: typeof import('vuetify/components')['VCounter']
|
531
539
|
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
532
540
|
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
@@ -534,37 +542,29 @@ declare module '@vue/runtime-core' {
|
|
534
542
|
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
535
543
|
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
536
544
|
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
537
|
-
VCombobox: typeof import('vuetify/components')['VCombobox']
|
538
545
|
VDialog: typeof import('vuetify/components')['VDialog']
|
539
|
-
VDataTable: typeof import('vuetify/components')['VDataTable']
|
540
|
-
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
541
|
-
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
542
|
-
VDataTableRows: typeof import('vuetify/components')['VDataTableRows']
|
543
|
-
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
544
|
-
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
545
|
-
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
546
546
|
VDivider: typeof import('vuetify/components')['VDivider']
|
547
|
-
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
548
|
-
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
549
|
-
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
550
|
-
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
551
547
|
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
552
548
|
VField: typeof import('vuetify/components')['VField']
|
553
549
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
550
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
554
551
|
VFab: typeof import('vuetify/components')['VFab']
|
555
552
|
VFooter: typeof import('vuetify/components')['VFooter']
|
556
|
-
|
557
|
-
|
553
|
+
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
554
|
+
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
555
|
+
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
556
|
+
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
558
557
|
VIcon: typeof import('vuetify/components')['VIcon']
|
559
558
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
560
559
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
561
560
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
562
561
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
563
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
564
562
|
VInput: typeof import('vuetify/components')['VInput']
|
565
|
-
|
563
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
564
|
+
VImg: typeof import('vuetify/components')['VImg']
|
566
565
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
567
566
|
VItem: typeof import('vuetify/components')['VItem']
|
567
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
568
568
|
VKbd: typeof import('vuetify/components')['VKbd']
|
569
569
|
VList: typeof import('vuetify/components')['VList']
|
570
570
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
@@ -575,61 +575,61 @@ declare module '@vue/runtime-core' {
|
|
575
575
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
576
576
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
577
577
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
578
|
-
VMenu: typeof import('vuetify/components')['VMenu']
|
579
578
|
VMain: typeof import('vuetify/components')['VMain']
|
579
|
+
VMenu: typeof import('vuetify/components')['VMenu']
|
580
580
|
VMessages: typeof import('vuetify/components')['VMessages']
|
581
581
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
582
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
582
583
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
583
584
|
VPagination: typeof import('vuetify/components')['VPagination']
|
584
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
585
585
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
586
586
|
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
587
587
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
588
588
|
VRating: typeof import('vuetify/components')['VRating']
|
589
589
|
VSelect: typeof import('vuetify/components')['VSelect']
|
590
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
591
590
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
592
|
-
|
593
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
591
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
594
592
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
595
593
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
596
594
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
595
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
596
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
597
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
598
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
599
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
597
600
|
VStepper: typeof import('vuetify/components')['VStepper']
|
598
601
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
599
602
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
600
603
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
601
604
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
602
605
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
603
|
-
|
604
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
606
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
605
607
|
VTab: typeof import('vuetify/components')['VTab']
|
606
608
|
VTabs: typeof import('vuetify/components')['VTabs']
|
607
609
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
608
610
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
609
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
610
611
|
VTable: typeof import('vuetify/components')['VTable']
|
611
612
|
VTextarea: typeof import('vuetify/components')['VTextarea']
|
612
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
613
|
-
VTimeline: typeof import('vuetify/components')['VTimeline']
|
614
|
-
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
615
613
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
616
614
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
617
615
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
618
616
|
VTooltip: typeof import('vuetify/components')['VTooltip']
|
619
617
|
VWindow: typeof import('vuetify/components')['VWindow']
|
620
618
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
619
|
+
VTimeline: typeof import('vuetify/components')['VTimeline']
|
620
|
+
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
621
621
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
622
622
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
623
623
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
624
|
-
VForm: typeof import('vuetify/components')['VForm']
|
625
|
-
VHover: typeof import('vuetify/components')['VHover']
|
626
624
|
VContainer: typeof import('vuetify/components')['VContainer']
|
627
625
|
VCol: typeof import('vuetify/components')['VCol']
|
628
626
|
VRow: typeof import('vuetify/components')['VRow']
|
629
627
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
628
|
+
VForm: typeof import('vuetify/components')['VForm']
|
629
|
+
VHover: typeof import('vuetify/components')['VHover']
|
630
|
+
VLazy: typeof import('vuetify/components')['VLazy']
|
630
631
|
VLayout: typeof import('vuetify/components')['VLayout']
|
631
632
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
632
|
-
VLazy: typeof import('vuetify/components')['VLazy']
|
633
633
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
634
634
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
635
635
|
VParallax: typeof import('vuetify/components')['VParallax']
|
@@ -657,23 +657,26 @@ declare module '@vue/runtime-core' {
|
|
657
657
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
658
658
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
659
659
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
660
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
661
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
660
662
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
661
663
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
662
664
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
663
665
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
664
666
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
665
667
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
666
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
667
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
668
668
|
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
669
|
+
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
670
|
+
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
671
|
+
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
669
672
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
670
673
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
671
674
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
672
675
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
673
676
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
674
677
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
675
|
-
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
676
678
|
VDateInput: typeof import('vuetify/labs/components')['VDateInput']
|
679
|
+
VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
|
677
680
|
VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
|
678
681
|
}
|
679
682
|
}
|