@vuetify/nightly 3.6.4-master.2024-05-10 → 3.6.5-master.2024-05-12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -9
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +268 -4
- package/dist/json/importMap-labs.json +18 -6
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +81 -0
- package/dist/json/web-types.json +1253 -6
- package/dist/vuetify-labs.css +2350 -2542
- 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 +3 -3
- package/dist/vuetify.css +4466 -4726
- package/dist/vuetify.d.ts +94 -70
- 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 +3 -3
- 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 +46 -43
- 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/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +0 -260
- 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-12";
|
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,49 +493,42 @@ declare module '@vue/runtime-core' {
|
|
493
493
|
}
|
494
494
|
|
495
495
|
export interface GlobalComponents {
|
496
|
+
VApp: typeof import('vuetify/components')['VApp']
|
497
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
498
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
499
|
+
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
496
500
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
497
501
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
498
502
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
499
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
500
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
501
503
|
VAvatar: typeof import('vuetify/components')['VAvatar']
|
502
|
-
VApp: typeof import('vuetify/components')['VApp']
|
503
|
-
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
504
504
|
VBadge: typeof import('vuetify/components')['VBadge']
|
505
|
+
VBanner: typeof import('vuetify/components')['VBanner']
|
506
|
+
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
507
|
+
VBannerText: typeof import('vuetify/components')['VBannerText']
|
508
|
+
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
505
509
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
506
510
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
507
511
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
508
512
|
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
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
515
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
516
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
517
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
515
518
|
VCard: typeof import('vuetify/components')['VCard']
|
516
519
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
517
520
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
518
521
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
519
522
|
VCardText: typeof import('vuetify/components')['VCardText']
|
520
523
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
521
|
-
|
522
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
523
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
524
|
+
VCode: typeof import('vuetify/components')['VCode']
|
524
525
|
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
525
526
|
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
526
|
-
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
527
527
|
VChip: typeof import('vuetify/components')['VChip']
|
528
|
-
VCode: typeof import('vuetify/components')['VCode']
|
529
528
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
529
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
530
530
|
VCounter: typeof import('vuetify/components')['VCounter']
|
531
|
-
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
532
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
533
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
534
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
535
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
536
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
537
531
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
538
|
-
VDialog: typeof import('vuetify/components')['VDialog']
|
539
532
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
540
533
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
541
534
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -543,7 +536,14 @@ declare module '@vue/runtime-core' {
|
|
543
536
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
544
537
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
545
538
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
539
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
540
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
541
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
542
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
543
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
544
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
546
545
|
VDivider: typeof import('vuetify/components')['VDivider']
|
546
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
547
547
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
548
548
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
549
549
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
@@ -552,17 +552,16 @@ declare module '@vue/runtime-core' {
|
|
552
552
|
VField: typeof import('vuetify/components')['VField']
|
553
553
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
554
554
|
VFab: typeof import('vuetify/components')['VFab']
|
555
|
-
VFooter: typeof import('vuetify/components')['VFooter']
|
556
555
|
VFileInput: typeof import('vuetify/components')['VFileInput']
|
557
|
-
|
556
|
+
VFooter: typeof import('vuetify/components')['VFooter']
|
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']
|
568
567
|
VKbd: typeof import('vuetify/components')['VKbd']
|
@@ -575,43 +574,44 @@ declare module '@vue/runtime-core' {
|
|
575
574
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
576
575
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
577
576
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
577
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
578
578
|
VMenu: typeof import('vuetify/components')['VMenu']
|
579
|
-
VMain: typeof import('vuetify/components')['VMain']
|
580
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
581
579
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
580
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
581
|
+
VMain: typeof import('vuetify/components')['VMain']
|
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
|
-
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
588
587
|
VRating: typeof import('vuetify/components')['VRating']
|
589
588
|
VSelect: typeof import('vuetify/components')['VSelect']
|
590
|
-
|
589
|
+
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
591
590
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
592
|
-
VSheet: typeof import('vuetify/components')['VSheet']
|
593
|
-
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
594
591
|
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
595
592
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
596
593
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
594
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
595
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
596
|
+
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
597
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
597
598
|
VStepper: typeof import('vuetify/components')['VStepper']
|
598
599
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
599
600
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
600
601
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
601
602
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
602
603
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
603
|
-
VSlider: typeof import('vuetify/components')['VSlider']
|
604
604
|
VSwitch: typeof import('vuetify/components')['VSwitch']
|
605
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
606
|
+
VTable: typeof import('vuetify/components')['VTable']
|
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
|
-
VTable: typeof import('vuetify/components')['VTable']
|
611
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
612
|
-
VTextField: typeof import('vuetify/components')['VTextField']
|
613
611
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
614
612
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
613
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
614
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
615
615
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
616
616
|
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
617
617
|
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
@@ -621,26 +621,26 @@ declare module '@vue/runtime-core' {
|
|
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
630
|
VLayout: typeof import('vuetify/components')['VLayout']
|
631
631
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
632
632
|
VLazy: typeof import('vuetify/components')['VLazy']
|
633
633
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
634
634
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
635
|
-
VParallax: typeof import('vuetify/components')['VParallax']
|
636
635
|
VRadio: typeof import('vuetify/components')['VRadio']
|
636
|
+
VParallax: typeof import('vuetify/components')['VParallax']
|
637
637
|
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
638
638
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
639
639
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
640
640
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
641
641
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
642
|
-
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
643
642
|
VValidation: typeof import('vuetify/components')['VValidation']
|
643
|
+
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
644
644
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
645
645
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
646
646
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -663,17 +663,20 @@ declare module '@vue/runtime-core' {
|
|
663
663
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
664
664
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
665
665
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
666
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
666
667
|
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
667
668
|
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
668
|
-
|
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
|
}
|
@@ -0,0 +1,106 @@
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
2
|
+
// Components
|
3
|
+
import { VStepperVerticalItem } from "./VStepperVerticalItem.mjs";
|
4
|
+
import { makeVExpansionPanelsProps, VExpansionPanels } from "../../components/VExpansionPanel/VExpansionPanels.mjs";
|
5
|
+
import { makeStepperProps } from "../../components/VStepper/VStepper.mjs"; // Composables
|
6
|
+
import { provideDefaults } from "../../composables/defaults.mjs";
|
7
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
8
|
+
import { computed, ref, toRefs } from 'vue';
|
9
|
+
import { genericComponent, getPropertyFromItem, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
10
|
+
export const makeVStepperVerticalProps = propsFactory({
|
11
|
+
prevText: {
|
12
|
+
type: String,
|
13
|
+
default: '$vuetify.stepper.prev'
|
14
|
+
},
|
15
|
+
nextText: {
|
16
|
+
type: String,
|
17
|
+
default: '$vuetify.stepper.next'
|
18
|
+
},
|
19
|
+
...makeStepperProps(),
|
20
|
+
...omit(makeVExpansionPanelsProps({
|
21
|
+
mandatory: 'force',
|
22
|
+
variant: 'accordion'
|
23
|
+
}), ['static'])
|
24
|
+
}, 'VStepperVertical');
|
25
|
+
export const VStepperVertical = genericComponent()({
|
26
|
+
name: 'VStepperVertical',
|
27
|
+
props: makeVStepperVerticalProps(),
|
28
|
+
emits: {
|
29
|
+
'update:modelValue': val => true
|
30
|
+
},
|
31
|
+
setup(props, _ref) {
|
32
|
+
let {
|
33
|
+
slots
|
34
|
+
} = _ref;
|
35
|
+
const vExpansionPanelsRef = ref();
|
36
|
+
const {
|
37
|
+
color,
|
38
|
+
editable,
|
39
|
+
prevText,
|
40
|
+
nextText,
|
41
|
+
hideActions
|
42
|
+
} = toRefs(props);
|
43
|
+
const model = useProxiedModel(props, 'modelValue');
|
44
|
+
const items = computed(() => props.items.map((item, index) => {
|
45
|
+
const title = getPropertyFromItem(item, props.itemTitle, item);
|
46
|
+
const value = getPropertyFromItem(item, props.itemValue, index + 1);
|
47
|
+
return {
|
48
|
+
title,
|
49
|
+
value,
|
50
|
+
raw: item
|
51
|
+
};
|
52
|
+
}));
|
53
|
+
provideDefaults({
|
54
|
+
VStepperVerticalItem: {
|
55
|
+
color,
|
56
|
+
editable,
|
57
|
+
prevText,
|
58
|
+
nextText,
|
59
|
+
hideActions,
|
60
|
+
static: true
|
61
|
+
},
|
62
|
+
VStepperActions: {
|
63
|
+
color
|
64
|
+
}
|
65
|
+
});
|
66
|
+
useRender(() => {
|
67
|
+
const expansionPanelProps = VExpansionPanels.filterProps(props);
|
68
|
+
return _createVNode(VExpansionPanels, _mergeProps(expansionPanelProps, {
|
69
|
+
"modelValue": model.value,
|
70
|
+
"onUpdate:modelValue": $event => model.value = $event,
|
71
|
+
"ref": vExpansionPanelsRef,
|
72
|
+
"class": ['v-stepper', {
|
73
|
+
'v-stepper--alt-labels': props.altLabels,
|
74
|
+
'v-stepper--flat': props.flat,
|
75
|
+
'v-stepper--non-linear': props.nonLinear,
|
76
|
+
'v-stepper--mobile': props.mobile
|
77
|
+
}, props.class],
|
78
|
+
"style": props.style
|
79
|
+
}), {
|
80
|
+
...slots,
|
81
|
+
default: _ref2 => {
|
82
|
+
let {
|
83
|
+
prev,
|
84
|
+
next
|
85
|
+
} = _ref2;
|
86
|
+
return _createVNode(_Fragment, null, [items.value.map(_ref3 => {
|
87
|
+
let {
|
88
|
+
raw,
|
89
|
+
...item
|
90
|
+
} = _ref3;
|
91
|
+
return _createVNode(VStepperVerticalItem, item, {
|
92
|
+
...slots,
|
93
|
+
default: slots[`item.${item.value}`]
|
94
|
+
});
|
95
|
+
}), slots.default?.({
|
96
|
+
prev,
|
97
|
+
next,
|
98
|
+
step: model.value
|
99
|
+
})]);
|
100
|
+
}
|
101
|
+
});
|
102
|
+
});
|
103
|
+
return {};
|
104
|
+
}
|
105
|
+
});
|
106
|
+
//# sourceMappingURL=VStepperVertical.mjs.map
|