vuetify 3.3.9 → 3.3.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/dist/_component-variables-labs.sass +3 -1
- package/dist/json/attributes.json +221 -33
- package/dist/json/importMap-labs.json +28 -0
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +79 -0
- package/dist/json/web-types.json +693 -34
- package/dist/vuetify-labs.css +305 -138
- package/dist/vuetify-labs.d.ts +2804 -305
- package/dist/vuetify-labs.esm.js +755 -72
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +755 -72
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +48 -41
- package/dist/vuetify.d.ts +67 -31
- package/dist/vuetify.esm.js +173 -65
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +173 -65
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +959 -946
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/md1.mjs +5 -0
- package/lib/blueprints/md1.mjs.map +1 -1
- package/lib/blueprints/md2.mjs +5 -0
- package/lib/blueprints/md2.mjs.map +1 -1
- package/lib/blueprints/md3.mjs +5 -0
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +21 -9
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +6 -0
- package/lib/components/VCarousel/index.d.mts +12 -10
- package/lib/components/VChip/VChip.mjs +3 -3
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +10 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +6 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +8 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +1 -0
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +29 -4
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +2 -2
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +8 -8
- package/lib/components/VRating/VRating.mjs +4 -2
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +1 -0
- package/lib/components/VSelect/VSelect.mjs +23 -8
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +1 -0
- package/lib/components/VSelect/index.d.mts +6 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +2 -3
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +1 -0
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.css +3 -0
- package/lib/components/VSwitch/VSwitch.sass +3 -0
- package/lib/components/VSwitch/_variables.scss +1 -0
- package/lib/components/VTable/VTable.css +10 -4
- package/lib/components/VTable/VTable.sass +6 -4
- package/lib/components/VTextarea/VTextarea.css +0 -3
- package/lib/components/VTextarea/VTextarea.sass +0 -4
- package/lib/components/VTimeline/VTimeline.css +2 -2
- package/lib/components/VTimeline/VTimeline.sass +2 -2
- package/lib/components/VWindow/VWindow.mjs +1 -0
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -1
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +29 -11
- package/lib/components/index.d.mts +57 -29
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +14 -0
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/group.mjs +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/theme.mjs +12 -6
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +10 -2
- package/lib/labs/VDatePicker/VDatePicker.css +6 -5
- package/lib/labs/VDatePicker/VDatePicker.mjs +3 -3
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.sass +8 -9
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +2 -2
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +4 -5
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VOtpInput/VOtpInput.css +53 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs +213 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -0
- package/lib/labs/VOtpInput/VOtpInput.sass +55 -0
- package/lib/labs/VOtpInput/_variables.scss +2 -0
- package/lib/labs/VOtpInput/index.d.mts +459 -0
- package/lib/labs/VOtpInput/index.mjs +2 -0
- package/lib/labs/VOtpInput/index.mjs.map +1 -0
- package/lib/labs/VPicker/VPicker.mjs +1 -1
- package/lib/labs/VPicker/VPicker.mjs.map +1 -1
- package/lib/labs/VStepper/VStepper.css +42 -0
- package/lib/labs/VStepper/VStepper.mjs +147 -0
- package/lib/labs/VStepper/VStepper.mjs.map +1 -0
- package/lib/labs/VStepper/VStepper.sass +44 -0
- package/lib/labs/VStepper/VStepperActions.mjs +61 -0
- package/lib/labs/VStepper/VStepperActions.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperHeader.mjs +4 -0
- package/lib/labs/VStepper/VStepperHeader.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperItem.css +67 -0
- package/lib/labs/VStepper/VStepperItem.mjs +114 -0
- package/lib/labs/VStepper/VStepperItem.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperItem.sass +71 -0
- package/lib/labs/VStepper/VStepperWindow.mjs +50 -0
- package/lib/labs/VStepper/VStepperWindow.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperWindowItem.mjs +24 -0
- package/lib/labs/VStepper/VStepperWindowItem.mjs.map +1 -0
- package/lib/labs/VStepper/_variables.scss +4 -0
- package/lib/labs/VStepper/index.d.mts +2051 -0
- package/lib/labs/VStepper/index.mjs +7 -0
- package/lib/labs/VStepper/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +2751 -267
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.mjs +6 -7
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/locale/af.mjs +6 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +6 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +6 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +6 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +6 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +6 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +6 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +6 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +6 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +6 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +6 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +6 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +6 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +6 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +6 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +6 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +6 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +6 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +6 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +6 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +210 -0
- package/lib/locale/it.mjs +6 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +6 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +6 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +6 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +6 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +6 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +6 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +6 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +6 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +23 -18
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +6 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +6 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +6 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +6 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +6 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +6 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +6 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +6 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +6 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +6 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +6 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +6 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/util/globals.mjs +0 -1
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +32 -12
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +3 -2
|
@@ -5020,6 +5020,7 @@ declare const VAutocomplete: {
|
|
|
5020
5020
|
contentProps?: any;
|
|
5021
5021
|
attach?: string | boolean | Element | undefined;
|
|
5022
5022
|
} | undefined;
|
|
5023
|
+
itemColor?: string | undefined;
|
|
5023
5024
|
"onUpdate:menu"?: ((val: boolean) => any) | undefined;
|
|
5024
5025
|
customFilter?: FilterFunction | undefined;
|
|
5025
5026
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
@@ -5287,6 +5288,7 @@ declare const VAutocomplete: {
|
|
|
5287
5288
|
contentProps?: any;
|
|
5288
5289
|
attach?: string | boolean | Element | undefined;
|
|
5289
5290
|
} | undefined;
|
|
5291
|
+
itemColor?: string | undefined;
|
|
5290
5292
|
customFilter?: FilterFunction | undefined;
|
|
5291
5293
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
5292
5294
|
autoSelectFirst?: boolean | "exact" | undefined;
|
|
@@ -5617,6 +5619,7 @@ declare const VAutocomplete: {
|
|
|
5617
5619
|
contentProps?: any;
|
|
5618
5620
|
attach?: string | boolean | Element | undefined;
|
|
5619
5621
|
} | undefined;
|
|
5622
|
+
itemColor?: string | undefined;
|
|
5620
5623
|
customFilter?: FilterFunction | undefined;
|
|
5621
5624
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
5622
5625
|
autoSelectFirst?: boolean | "exact" | undefined;
|
|
@@ -5819,6 +5822,7 @@ declare const VAutocomplete: {
|
|
|
5819
5822
|
contentProps?: any;
|
|
5820
5823
|
attach?: string | boolean | Element | undefined;
|
|
5821
5824
|
} | undefined;
|
|
5825
|
+
itemColor?: string | undefined;
|
|
5822
5826
|
customFilter?: FilterFunction | undefined;
|
|
5823
5827
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
5824
5828
|
autoSelectFirst?: boolean | "exact" | undefined;
|
|
@@ -6264,6 +6268,7 @@ declare const VAutocomplete: {
|
|
|
6264
6268
|
type: PropType<typeof deepEqual>;
|
|
6265
6269
|
default: typeof deepEqual;
|
|
6266
6270
|
};
|
|
6271
|
+
itemColor: StringConstructor;
|
|
6267
6272
|
customFilter: PropType<FilterFunction>;
|
|
6268
6273
|
customKeyFilter: PropType<FilterKeyFunctions>;
|
|
6269
6274
|
filterKeys: {
|
|
@@ -6556,6 +6561,7 @@ declare const VAutocomplete: {
|
|
|
6556
6561
|
type: PropType<typeof deepEqual>;
|
|
6557
6562
|
default: typeof deepEqual;
|
|
6558
6563
|
};
|
|
6564
|
+
itemColor: StringConstructor;
|
|
6559
6565
|
customFilter: PropType<FilterFunction>;
|
|
6560
6566
|
customKeyFilter: PropType<FilterKeyFunctions>;
|
|
6561
6567
|
filterKeys: {
|
|
@@ -12000,7 +12006,7 @@ declare const VCarousel: {
|
|
|
12000
12006
|
style?: vue.StyleValue | undefined;
|
|
12001
12007
|
disabled?: boolean | undefined;
|
|
12002
12008
|
tag?: string | undefined;
|
|
12003
|
-
mandatory?: "force" | undefined;
|
|
12009
|
+
mandatory?: NonNullable<boolean | "force"> | undefined;
|
|
12004
12010
|
touch?: boolean | TouchHandlers | undefined;
|
|
12005
12011
|
selectedClass?: string | undefined;
|
|
12006
12012
|
continuous?: boolean | undefined;
|
|
@@ -12217,7 +12223,7 @@ declare const VCarousel: {
|
|
|
12217
12223
|
style: vue.StyleValue;
|
|
12218
12224
|
disabled: boolean;
|
|
12219
12225
|
tag: string;
|
|
12220
|
-
mandatory: "force"
|
|
12226
|
+
mandatory: NonNullable<boolean | "force">;
|
|
12221
12227
|
selectedClass: string;
|
|
12222
12228
|
continuous: boolean;
|
|
12223
12229
|
nextIcon: IconValue;
|
|
@@ -12345,7 +12351,7 @@ declare const VCarousel: {
|
|
|
12345
12351
|
style: vue.StyleValue;
|
|
12346
12352
|
disabled: boolean;
|
|
12347
12353
|
tag: string;
|
|
12348
|
-
mandatory: "force"
|
|
12354
|
+
mandatory: NonNullable<boolean | "force">;
|
|
12349
12355
|
touch: boolean | TouchHandlers;
|
|
12350
12356
|
selectedClass: string;
|
|
12351
12357
|
continuous: boolean;
|
|
@@ -12425,7 +12431,7 @@ declare const VCarousel: {
|
|
|
12425
12431
|
style: vue.StyleValue;
|
|
12426
12432
|
disabled: boolean;
|
|
12427
12433
|
tag: string;
|
|
12428
|
-
mandatory: "force"
|
|
12434
|
+
mandatory: NonNullable<boolean | "force">;
|
|
12429
12435
|
selectedClass: string;
|
|
12430
12436
|
continuous: boolean;
|
|
12431
12437
|
nextIcon: IconValue;
|
|
@@ -12555,7 +12561,7 @@ declare const VCarousel: {
|
|
|
12555
12561
|
style: vue.StyleValue;
|
|
12556
12562
|
disabled: boolean;
|
|
12557
12563
|
tag: string;
|
|
12558
|
-
mandatory: "force"
|
|
12564
|
+
mandatory: NonNullable<boolean | "force">;
|
|
12559
12565
|
selectedClass: string;
|
|
12560
12566
|
continuous: boolean;
|
|
12561
12567
|
nextIcon: IconValue;
|
|
@@ -12683,7 +12689,7 @@ declare const VCarousel: {
|
|
|
12683
12689
|
style: vue.StyleValue;
|
|
12684
12690
|
disabled: boolean;
|
|
12685
12691
|
tag: string;
|
|
12686
|
-
mandatory: "force"
|
|
12692
|
+
mandatory: NonNullable<boolean | "force">;
|
|
12687
12693
|
touch: boolean | TouchHandlers;
|
|
12688
12694
|
selectedClass: string;
|
|
12689
12695
|
continuous: boolean;
|
|
@@ -12781,10 +12787,11 @@ declare const VCarousel: {
|
|
|
12781
12787
|
default: string;
|
|
12782
12788
|
};
|
|
12783
12789
|
mandatory: Omit<{
|
|
12790
|
+
type: PropType<boolean | "force">;
|
|
12784
12791
|
default: "force";
|
|
12785
12792
|
}, "type" | "default"> & {
|
|
12786
|
-
type: PropType<"force"
|
|
12787
|
-
default: "force"
|
|
12793
|
+
type: PropType<NonNullable<boolean | "force">>;
|
|
12794
|
+
default: NonNullable<boolean | "force">;
|
|
12788
12795
|
};
|
|
12789
12796
|
color: StringConstructor;
|
|
12790
12797
|
cycle: BooleanConstructor;
|
|
@@ -12851,10 +12858,11 @@ declare const VCarousel: {
|
|
|
12851
12858
|
default: string;
|
|
12852
12859
|
};
|
|
12853
12860
|
mandatory: Omit<{
|
|
12861
|
+
type: PropType<boolean | "force">;
|
|
12854
12862
|
default: "force";
|
|
12855
12863
|
}, "type" | "default"> & {
|
|
12856
|
-
type: PropType<"force"
|
|
12857
|
-
default: "force"
|
|
12864
|
+
type: PropType<NonNullable<boolean | "force">>;
|
|
12865
|
+
default: NonNullable<boolean | "force">;
|
|
12858
12866
|
};
|
|
12859
12867
|
color: StringConstructor;
|
|
12860
12868
|
cycle: BooleanConstructor;
|
|
@@ -17847,6 +17855,7 @@ declare const VCombobox: {
|
|
|
17847
17855
|
contentProps?: any;
|
|
17848
17856
|
attach?: string | boolean | Element | undefined;
|
|
17849
17857
|
} | undefined;
|
|
17858
|
+
itemColor?: string | undefined;
|
|
17850
17859
|
"onUpdate:menu"?: ((val: boolean) => any) | undefined;
|
|
17851
17860
|
customFilter?: FilterFunction | undefined;
|
|
17852
17861
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
@@ -18114,6 +18123,7 @@ declare const VCombobox: {
|
|
|
18114
18123
|
contentProps?: any;
|
|
18115
18124
|
attach?: string | boolean | Element | undefined;
|
|
18116
18125
|
} | undefined;
|
|
18126
|
+
itemColor?: string | undefined;
|
|
18117
18127
|
customFilter?: FilterFunction | undefined;
|
|
18118
18128
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
18119
18129
|
autoSelectFirst?: boolean | "exact" | undefined;
|
|
@@ -18444,6 +18454,7 @@ declare const VCombobox: {
|
|
|
18444
18454
|
contentProps?: any;
|
|
18445
18455
|
attach?: string | boolean | Element | undefined;
|
|
18446
18456
|
} | undefined;
|
|
18457
|
+
itemColor?: string | undefined;
|
|
18447
18458
|
customFilter?: FilterFunction | undefined;
|
|
18448
18459
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
18449
18460
|
autoSelectFirst?: boolean | "exact" | undefined;
|
|
@@ -18646,6 +18657,7 @@ declare const VCombobox: {
|
|
|
18646
18657
|
contentProps?: any;
|
|
18647
18658
|
attach?: string | boolean | Element | undefined;
|
|
18648
18659
|
} | undefined;
|
|
18660
|
+
itemColor?: string | undefined;
|
|
18649
18661
|
customFilter?: FilterFunction | undefined;
|
|
18650
18662
|
customKeyFilter?: FilterKeyFunctions | undefined;
|
|
18651
18663
|
autoSelectFirst?: boolean | "exact" | undefined;
|
|
@@ -19097,6 +19109,7 @@ declare const VCombobox: {
|
|
|
19097
19109
|
type: PropType<typeof deepEqual>;
|
|
19098
19110
|
default: typeof deepEqual;
|
|
19099
19111
|
};
|
|
19112
|
+
itemColor: StringConstructor;
|
|
19100
19113
|
customFilter: PropType<FilterFunction>;
|
|
19101
19114
|
customKeyFilter: PropType<FilterKeyFunctions>;
|
|
19102
19115
|
filterKeys: {
|
|
@@ -19395,6 +19408,7 @@ declare const VCombobox: {
|
|
|
19395
19408
|
type: PropType<typeof deepEqual>;
|
|
19396
19409
|
default: typeof deepEqual;
|
|
19397
19410
|
};
|
|
19411
|
+
itemColor: StringConstructor;
|
|
19398
19412
|
customFilter: PropType<FilterFunction>;
|
|
19399
19413
|
customKeyFilter: PropType<FilterKeyFunctions>;
|
|
19400
19414
|
filterKeys: {
|
|
@@ -38481,7 +38495,7 @@ declare const VRangeSlider: {
|
|
|
38481
38495
|
messages?: string | readonly string[] | undefined;
|
|
38482
38496
|
rounded?: string | number | boolean | undefined;
|
|
38483
38497
|
density?: Density | undefined;
|
|
38484
|
-
modelValue?: readonly number[] | undefined;
|
|
38498
|
+
modelValue?: readonly (string | number)[] | undefined;
|
|
38485
38499
|
focused?: boolean | undefined;
|
|
38486
38500
|
errorMessages?: string | readonly string[] | undefined;
|
|
38487
38501
|
maxErrors?: string | number | undefined;
|
|
@@ -38635,7 +38649,7 @@ declare const VRangeSlider: {
|
|
|
38635
38649
|
elevation: NonNullable<string | number>;
|
|
38636
38650
|
messages: string | readonly string[];
|
|
38637
38651
|
density: Density;
|
|
38638
|
-
modelValue: readonly number[];
|
|
38652
|
+
modelValue: readonly (string | number)[];
|
|
38639
38653
|
focused: boolean;
|
|
38640
38654
|
errorMessages: string | readonly string[];
|
|
38641
38655
|
maxErrors: string | number;
|
|
@@ -38722,7 +38736,7 @@ declare const VRangeSlider: {
|
|
|
38722
38736
|
messages: string | readonly string[];
|
|
38723
38737
|
rounded: string | number | boolean;
|
|
38724
38738
|
density: Density;
|
|
38725
|
-
modelValue: readonly number[];
|
|
38739
|
+
modelValue: readonly (string | number)[];
|
|
38726
38740
|
focused: boolean;
|
|
38727
38741
|
errorMessages: string | readonly string[];
|
|
38728
38742
|
maxErrors: string | number;
|
|
@@ -38793,7 +38807,7 @@ declare const VRangeSlider: {
|
|
|
38793
38807
|
elevation: NonNullable<string | number>;
|
|
38794
38808
|
messages: string | readonly string[];
|
|
38795
38809
|
density: Density;
|
|
38796
|
-
modelValue: readonly number[];
|
|
38810
|
+
modelValue: readonly (string | number)[];
|
|
38797
38811
|
focused: boolean;
|
|
38798
38812
|
errorMessages: string | readonly string[];
|
|
38799
38813
|
maxErrors: string | number;
|
|
@@ -38878,7 +38892,7 @@ declare const VRangeSlider: {
|
|
|
38878
38892
|
elevation: NonNullable<string | number>;
|
|
38879
38893
|
messages: string | readonly string[];
|
|
38880
38894
|
density: Density;
|
|
38881
|
-
modelValue: readonly number[];
|
|
38895
|
+
modelValue: readonly (string | number)[];
|
|
38882
38896
|
focused: boolean;
|
|
38883
38897
|
errorMessages: string | readonly string[];
|
|
38884
38898
|
maxErrors: string | number;
|
|
@@ -38965,7 +38979,7 @@ declare const VRangeSlider: {
|
|
|
38965
38979
|
messages: string | readonly string[];
|
|
38966
38980
|
rounded: string | number | boolean;
|
|
38967
38981
|
density: Density;
|
|
38968
|
-
modelValue: readonly number[];
|
|
38982
|
+
modelValue: readonly (string | number)[];
|
|
38969
38983
|
focused: boolean;
|
|
38970
38984
|
errorMessages: string | readonly string[];
|
|
38971
38985
|
maxErrors: string | number;
|
|
@@ -39005,7 +39019,7 @@ declare const VRangeSlider: {
|
|
|
39005
39019
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
39006
39020
|
strict: BooleanConstructor;
|
|
39007
39021
|
modelValue: {
|
|
39008
|
-
type: PropType<readonly number[]>;
|
|
39022
|
+
type: PropType<readonly (string | number)[]>;
|
|
39009
39023
|
default: () => number[];
|
|
39010
39024
|
};
|
|
39011
39025
|
elevation: Omit<{
|
|
@@ -39122,7 +39136,7 @@ declare const VRangeSlider: {
|
|
|
39122
39136
|
}, vue.ExtractPropTypes<{
|
|
39123
39137
|
strict: BooleanConstructor;
|
|
39124
39138
|
modelValue: {
|
|
39125
|
-
type: PropType<readonly number[]>;
|
|
39139
|
+
type: PropType<readonly (string | number)[]>;
|
|
39126
39140
|
default: () => number[];
|
|
39127
39141
|
};
|
|
39128
39142
|
elevation: Omit<{
|
|
@@ -40132,6 +40146,7 @@ declare const VSelect: {
|
|
|
40132
40146
|
contentProps?: any;
|
|
40133
40147
|
attach?: string | boolean | Element | undefined;
|
|
40134
40148
|
} | undefined;
|
|
40149
|
+
itemColor?: string | undefined;
|
|
40135
40150
|
"onUpdate:menu"?: ((val: boolean) => any) | undefined;
|
|
40136
40151
|
};
|
|
40137
40152
|
$attrs: {
|
|
@@ -40393,6 +40408,7 @@ declare const VSelect: {
|
|
|
40393
40408
|
contentProps?: any;
|
|
40394
40409
|
attach?: string | boolean | Element | undefined;
|
|
40395
40410
|
} | undefined;
|
|
40411
|
+
itemColor?: string | undefined;
|
|
40396
40412
|
} & {
|
|
40397
40413
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
40398
40414
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -40715,6 +40731,7 @@ declare const VSelect: {
|
|
|
40715
40731
|
contentProps?: any;
|
|
40716
40732
|
attach?: string | boolean | Element | undefined;
|
|
40717
40733
|
} | undefined;
|
|
40734
|
+
itemColor?: string | undefined;
|
|
40718
40735
|
} & {
|
|
40719
40736
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
40720
40737
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -40911,6 +40928,7 @@ declare const VSelect: {
|
|
|
40911
40928
|
contentProps?: any;
|
|
40912
40929
|
attach?: string | boolean | Element | undefined;
|
|
40913
40930
|
} | undefined;
|
|
40931
|
+
itemColor?: string | undefined;
|
|
40914
40932
|
} & {
|
|
40915
40933
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
40916
40934
|
"onUpdate:focused"?: ((focused: boolean) => any) | undefined;
|
|
@@ -41354,6 +41372,7 @@ declare const VSelect: {
|
|
|
41354
41372
|
type: PropType<typeof deepEqual>;
|
|
41355
41373
|
default: typeof deepEqual;
|
|
41356
41374
|
};
|
|
41375
|
+
itemColor: StringConstructor;
|
|
41357
41376
|
}, vue.ExtractPropTypes<{
|
|
41358
41377
|
transition: Omit<{
|
|
41359
41378
|
type: PropType<string | boolean | (vue.TransitionProps & {
|
|
@@ -41635,6 +41654,7 @@ declare const VSelect: {
|
|
|
41635
41654
|
type: PropType<typeof deepEqual>;
|
|
41636
41655
|
default: typeof deepEqual;
|
|
41637
41656
|
};
|
|
41657
|
+
itemColor: StringConstructor;
|
|
41638
41658
|
}>>;
|
|
41639
41659
|
type VSelect = InstanceType<typeof VSelect>;
|
|
41640
41660
|
|
|
@@ -55432,7 +55452,7 @@ declare const VWindow: {
|
|
|
55432
55452
|
style?: vue.StyleValue | undefined;
|
|
55433
55453
|
disabled?: boolean | undefined;
|
|
55434
55454
|
tag?: string | undefined;
|
|
55435
|
-
mandatory?: "force" | undefined;
|
|
55455
|
+
mandatory?: boolean | "force" | undefined;
|
|
55436
55456
|
touch?: boolean | TouchHandlers | undefined;
|
|
55437
55457
|
selectedClass?: string | undefined;
|
|
55438
55458
|
continuous?: boolean | undefined;
|
|
@@ -55566,7 +55586,7 @@ declare const VWindow: {
|
|
|
55566
55586
|
style: vue.StyleValue;
|
|
55567
55587
|
disabled: boolean;
|
|
55568
55588
|
tag: string;
|
|
55569
|
-
mandatory: "force";
|
|
55589
|
+
mandatory: boolean | "force";
|
|
55570
55590
|
selectedClass: string;
|
|
55571
55591
|
continuous: boolean;
|
|
55572
55592
|
nextIcon: IconValue;
|
|
@@ -55633,7 +55653,7 @@ declare const VWindow: {
|
|
|
55633
55653
|
style: vue.StyleValue;
|
|
55634
55654
|
disabled: boolean;
|
|
55635
55655
|
tag: string;
|
|
55636
|
-
mandatory: "force";
|
|
55656
|
+
mandatory: boolean | "force";
|
|
55637
55657
|
touch: boolean | TouchHandlers;
|
|
55638
55658
|
selectedClass: string;
|
|
55639
55659
|
continuous: boolean;
|
|
@@ -55686,7 +55706,7 @@ declare const VWindow: {
|
|
|
55686
55706
|
style: vue.StyleValue;
|
|
55687
55707
|
disabled: boolean;
|
|
55688
55708
|
tag: string;
|
|
55689
|
-
mandatory: "force";
|
|
55709
|
+
mandatory: boolean | "force";
|
|
55690
55710
|
selectedClass: string;
|
|
55691
55711
|
continuous: boolean;
|
|
55692
55712
|
nextIcon: IconValue;
|
|
@@ -55755,7 +55775,7 @@ declare const VWindow: {
|
|
|
55755
55775
|
style: vue.StyleValue;
|
|
55756
55776
|
disabled: boolean;
|
|
55757
55777
|
tag: string;
|
|
55758
|
-
mandatory: "force";
|
|
55778
|
+
mandatory: boolean | "force";
|
|
55759
55779
|
selectedClass: string;
|
|
55760
55780
|
continuous: boolean;
|
|
55761
55781
|
nextIcon: IconValue;
|
|
@@ -55822,7 +55842,7 @@ declare const VWindow: {
|
|
|
55822
55842
|
style: vue.StyleValue;
|
|
55823
55843
|
disabled: boolean;
|
|
55824
55844
|
tag: string;
|
|
55825
|
-
mandatory: "force";
|
|
55845
|
+
mandatory: boolean | "force";
|
|
55826
55846
|
touch: boolean | TouchHandlers;
|
|
55827
55847
|
selectedClass: string;
|
|
55828
55848
|
continuous: boolean;
|
|
@@ -55889,6 +55909,7 @@ declare const VWindow: {
|
|
|
55889
55909
|
default: string;
|
|
55890
55910
|
};
|
|
55891
55911
|
mandatory: {
|
|
55912
|
+
type: PropType<boolean | "force">;
|
|
55892
55913
|
default: "force";
|
|
55893
55914
|
};
|
|
55894
55915
|
}, vue.ExtractPropTypes<{
|
|
@@ -55931,6 +55952,7 @@ declare const VWindow: {
|
|
|
55931
55952
|
default: string;
|
|
55932
55953
|
};
|
|
55933
55954
|
mandatory: {
|
|
55955
|
+
type: PropType<boolean | "force">;
|
|
55934
55956
|
default: "force";
|
|
55935
55957
|
};
|
|
55936
55958
|
}>>;
|
|
@@ -56042,10 +56064,12 @@ declare const VWindowItem: {
|
|
|
56042
56064
|
"onGroup:selected"?: ((val: {
|
|
56043
56065
|
value: boolean;
|
|
56044
56066
|
}) => any) | undefined;
|
|
56045
|
-
}, {
|
|
56067
|
+
}, {
|
|
56068
|
+
groupItem: GroupItemProvide;
|
|
56069
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
56046
56070
|
'group:selected': (val: {
|
|
56047
56071
|
value: boolean;
|
|
56048
|
-
}) =>
|
|
56072
|
+
}) => true;
|
|
56049
56073
|
}, string, {
|
|
56050
56074
|
transition: string | boolean;
|
|
56051
56075
|
style: vue.StyleValue;
|
|
@@ -56099,7 +56123,9 @@ declare const VWindowItem: {
|
|
|
56099
56123
|
"onGroup:selected"?: ((val: {
|
|
56100
56124
|
value: boolean;
|
|
56101
56125
|
}) => any) | undefined;
|
|
56102
|
-
} & vue.ShallowUnwrapRef<{
|
|
56126
|
+
} & vue.ShallowUnwrapRef<{
|
|
56127
|
+
groupItem: GroupItemProvide;
|
|
56128
|
+
}> & {} & vue.ComponentCustomProperties & {};
|
|
56103
56129
|
__isFragment?: undefined;
|
|
56104
56130
|
__isTeleport?: undefined;
|
|
56105
56131
|
__isSuspense?: undefined;
|
|
@@ -56126,10 +56152,12 @@ declare const VWindowItem: {
|
|
|
56126
56152
|
"onGroup:selected"?: ((val: {
|
|
56127
56153
|
value: boolean;
|
|
56128
56154
|
}) => any) | undefined;
|
|
56129
|
-
}, {
|
|
56155
|
+
}, {
|
|
56156
|
+
groupItem: GroupItemProvide;
|
|
56157
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
56130
56158
|
'group:selected': (val: {
|
|
56131
56159
|
value: boolean;
|
|
56132
|
-
}) =>
|
|
56160
|
+
}) => true;
|
|
56133
56161
|
}, string, {
|
|
56134
56162
|
transition: string | boolean;
|
|
56135
56163
|
style: vue.StyleValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.mjs","names":["useToggleScope","computed","inject","provide","ref","shallowRef","unref","watchEffect","getCurrentInstance","injectSelf","mergeDeep","toKebabCase","DefaultsSymbol","Symbol","for","createDefaults","options","injectDefaults","defaults","Error","provideDefaults","injectedDefaults","providedDefaults","newDefaults","disabled","value","scoped","reset","root","properties","prev","len","Number","Infinity","i","propIsDefined","vnode","prop","props","internalUseDefaults","arguments","length","undefined","name","vm","type","__name","componentDefaults","_as","_props","Proxy","get","target","propValue","Reflect","filter","v","global","_subcomponentDefaults","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","useDefaults"],"sources":["../../src/composables/defaults.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance, injectSelf, mergeDeep, toKebabCase } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record<string, unknown>\n global?: Record<string, unknown>\n}\n\nexport type DefaultsOptions = Partial<DefaultsInstance>\n\nexport const DefaultsSymbol: InjectionKey<Ref<DefaultsInstance>> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref<DefaultsInstance> {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef<DefaultsInstance | undefined>,\n options?: {\n disabled?: MaybeRef<boolean | undefined>\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | string | undefined>\n scoped?: MaybeRef<boolean | undefined>\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef<DefaultsInstance>\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record<string, any> = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents)\n }\n })\n\n function provideSubDefaults () {\n // If subcomponent defaults are provided, override any\n // subcomponents provided by the component's setup function.\n // This uses injectSelf so must be done after the original setup to work.\n useToggleScope(_subcomponentDefaults, () => {\n provideDefaults(mergeDeep(\n injectSelf(DefaultsSymbol)?.value ?? {},\n _subcomponentDefaults.value\n ))\n })\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults (\n props: Record<string, any> = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"defaults.mjs","names":["useToggleScope","computed","inject","provide","ref","shallowRef","unref","watchEffect","getCurrentInstance","injectSelf","mergeDeep","toKebabCase","DefaultsSymbol","Symbol","for","createDefaults","options","injectDefaults","defaults","Error","provideDefaults","injectedDefaults","providedDefaults","newDefaults","disabled","value","scoped","reset","root","properties","prev","len","Number","Infinity","i","propIsDefined","vnode","prop","props","internalUseDefaults","arguments","length","undefined","name","vm","type","__name","componentDefaults","_as","_props","Proxy","get","target","propValue","Reflect","filter","v","global","_subcomponentDefaults","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","useDefaults"],"sources":["../../src/composables/defaults.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue'\nimport { getCurrentInstance, injectSelf, mergeDeep, toKebabCase } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref, VNode } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type DefaultsInstance = undefined | {\n [key: string]: undefined | Record<string, unknown>\n global?: Record<string, unknown>\n}\n\nexport type DefaultsOptions = Partial<DefaultsInstance>\n\nexport const DefaultsSymbol: InjectionKey<Ref<DefaultsInstance>> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref<DefaultsInstance> {\n return ref(options)\n}\n\nexport function injectDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef<DefaultsInstance | undefined>,\n options?: {\n disabled?: MaybeRef<boolean | undefined>\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | string | undefined>\n scoped?: MaybeRef<boolean | undefined>\n }\n) {\n const injectedDefaults = injectDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const disabled = unref(options?.disabled)\n\n if (disabled) return injectedDefaults.value\n\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties || !('prev' in properties)) {\n break\n }\n\n properties = properties.prev\n }\n\n if (properties && typeof root === 'string' && root in properties) {\n properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root])\n }\n\n return properties\n }\n\n return properties.prev\n ? mergeDeep(properties.prev, properties)\n : properties\n }) as ComputedRef<DefaultsInstance>\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n}\n\nexport function internalUseDefaults (\n props: Record<string, any> = {},\n name?: string,\n defaults = injectDefaults()\n) {\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n throw new Error('[Vuetify] Could not determine component name')\n }\n\n const componentDefaults = computed(() => defaults.value?.[props._as ?? name])\n const _props = new Proxy(props, {\n get (target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter(v => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(([key]) => key.startsWith(key[0].toUpperCase()))\n if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents)\n }\n })\n\n function provideSubDefaults () {\n // If subcomponent defaults are provided, override any\n // subcomponents provided by the component's setup function.\n // This uses injectSelf so must be done after the original setup to work.\n useToggleScope(_subcomponentDefaults, () => {\n provideDefaults(mergeDeep(\n injectSelf(DefaultsSymbol)?.value ?? {},\n _subcomponentDefaults.value\n ))\n })\n }\n\n return { props: _props, provideSubDefaults }\n}\n\nexport function useDefaults<T extends Record<string, any>> (props: T, name?: string): T\nexport function useDefaults (props?: undefined, name?: string): Record<string, any>\nexport function useDefaults (\n props: Record<string, any> = {},\n name?: string,\n) {\n const { props: _props, provideSubDefaults } = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,6BAEvB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC3EC,kBAAkB,EAAEC,UAAU,EAAEC,SAAS,EAAEC,WAAW,6BAE/D;AAWA,OAAO,MAAMC,cAAmD,GAAGC,MAAM,CAACC,GAAG,CAAC,kBAAkB,CAAC;AAEjG,OAAO,SAASC,cAAcA,CAAEC,OAA0B,EAAyB;EACjF,OAAOZ,GAAG,CAACY,OAAO,CAAC;AACrB;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAI;EAChC,MAAMC,QAAQ,GAAGhB,MAAM,CAACU,cAAc,CAAC;EAEvC,IAAI,CAACM,QAAQ,EAAE,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAE5E,OAAOD,QAAQ;AACjB;AAEA,OAAO,SAASE,eAAeA,CAC7BF,QAAiD,EACjDF,OAKC,EACD;EACA,MAAMK,gBAAgB,GAAGJ,cAAc,EAAE;EACzC,MAAMK,gBAAgB,GAAGlB,GAAG,CAACc,QAAQ,CAAC;EAEtC,MAAMK,WAAW,GAAGtB,QAAQ,CAAC,MAAM;IACjC,MAAMuB,QAAQ,GAAGlB,KAAK,CAACU,OAAO,EAAEQ,QAAQ,CAAC;IAEzC,IAAIA,QAAQ,EAAE,OAAOH,gBAAgB,CAACI,KAAK;IAE3C,MAAMC,MAAM,GAAGpB,KAAK,CAACU,OAAO,EAAEU,MAAM,CAAC;IACrC,MAAMC,KAAK,GAAGrB,KAAK,CAACU,OAAO,EAAEW,KAAK,CAAC;IACnC,MAAMC,IAAI,GAAGtB,KAAK,CAACU,OAAO,EAAEY,IAAI,CAAC;IAEjC,IAAIC,UAAU,GAAGnB,SAAS,CAACY,gBAAgB,CAACG,KAAK,EAAE;MAAEK,IAAI,EAAET,gBAAgB,CAACI;IAAM,CAAC,CAAC;IAEpF,IAAIC,MAAM,EAAE,OAAOG,UAAU;IAE7B,IAAIF,KAAK,IAAIC,IAAI,EAAE;MACjB,MAAMG,GAAG,GAAGC,MAAM,CAACL,KAAK,IAAIM,QAAQ,CAAC;MAErC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIH,GAAG,EAAEG,CAAC,EAAE,EAAE;QAC7B,IAAI,CAACL,UAAU,IAAI,EAAE,MAAM,IAAIA,UAAU,CAAC,EAAE;UAC1C;QACF;QAEAA,UAAU,GAAGA,UAAU,CAACC,IAAI;MAC9B;MAEA,IAAID,UAAU,IAAI,OAAOD,IAAI,KAAK,QAAQ,IAAIA,IAAI,IAAIC,UAAU,EAAE;QAChEA,UAAU,GAAGnB,SAAS,CAACA,SAAS,CAACmB,UAAU,EAAE;UAAEC,IAAI,EAAED;QAAW,CAAC,CAAC,EAAEA,UAAU,CAACD,IAAI,CAAC,CAAC;MACvF;MAEA,OAAOC,UAAU;IACnB;IAEA,OAAOA,UAAU,CAACC,IAAI,GAClBpB,SAAS,CAACmB,UAAU,CAACC,IAAI,EAAED,UAAU,CAAC,GACtCA,UAAU;EAChB,CAAC,CAAkC;EAEnC1B,OAAO,CAACS,cAAc,EAAEW,WAAW,CAAC;EAEpC,OAAOA,WAAW;AACpB;AAEA,SAASY,aAAaA,CAAEC,KAAY,EAAEC,IAAY,EAAE;EAClD,OAAO,OAAOD,KAAK,CAACE,KAAK,GAAGD,IAAI,CAAC,KAAK,WAAW,IAC/C,OAAOD,KAAK,CAACE,KAAK,GAAG3B,WAAW,CAAC0B,IAAI,CAAC,CAAC,KAAK,WAAW;AAC3D;AAEA,OAAO,SAASE,mBAAmBA,CAAA,EAIjC;EAAA,IAHAD,KAA0B,GAAAE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAC/BG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IACbxB,QAAQ,GAAAsB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGvB,cAAc,EAAE;EAE3B,MAAM2B,EAAE,GAAGpC,kBAAkB,CAAC,aAAa,CAAC;EAE5CmC,IAAI,GAAGA,IAAI,IAAIC,EAAE,CAACC,IAAI,CAACF,IAAI,IAAIC,EAAE,CAACC,IAAI,CAACC,MAAM;EAC7C,IAAI,CAACH,IAAI,EAAE;IACT,MAAM,IAAIxB,KAAK,CAAC,8CAA8C,CAAC;EACjE;EAEA,MAAM4B,iBAAiB,GAAG9C,QAAQ,CAAC,MAAMiB,QAAQ,CAACO,KAAK,GAAGa,KAAK,CAACU,GAAG,IAAIL,IAAI,CAAC,CAAC;EAC7E,MAAMM,MAAM,GAAG,IAAIC,KAAK,CAACZ,KAAK,EAAE;IAC9Ba,GAAGA,CAAEC,MAAM,EAAEf,IAAI,EAAE;MACjB,MAAMgB,SAAS,GAAGC,OAAO,CAACH,GAAG,CAACC,MAAM,EAAEf,IAAI,CAAC;MAC3C,IAAIA,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,OAAO,EAAE;QACxC,OAAO,CAACU,iBAAiB,CAACtB,KAAK,GAAGY,IAAI,CAAC,EAAEgB,SAAS,CAAC,CAACE,MAAM,CAACC,CAAC,IAAIA,CAAC,IAAI,IAAI,CAAC;MAC5E,CAAC,MAAM,IAAI,OAAOnB,IAAI,KAAK,QAAQ,IAAI,CAACF,aAAa,CAACS,EAAE,CAACR,KAAK,EAAEC,IAAI,CAAC,EAAE;QACrE,OAAOU,iBAAiB,CAACtB,KAAK,GAAGY,IAAI,CAAC,IAAInB,QAAQ,CAACO,KAAK,EAAEgC,MAAM,GAAGpB,IAAI,CAAC,IAAIgB,SAAS;MACvF;MACA,OAAOA,SAAS;IAClB;EACF,CAAC,CAAC;EAEF,MAAMK,qBAAqB,GAAGrD,UAAU,EAAE;EAC1CE,WAAW,CAAC,MAAM;IAChB,IAAIwC,iBAAiB,CAACtB,KAAK,EAAE;MAC3B,MAAMkC,aAAa,GAAGC,MAAM,CAACC,OAAO,CAACd,iBAAiB,CAACtB,KAAK,CAAC,CAAC8B,MAAM,CAACO,IAAA;QAAA,IAAC,CAACC,GAAG,CAAC,GAAAD,IAAA;QAAA,OAAKC,GAAG,CAACC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAACE,WAAW,EAAE,CAAC;MAAA,EAAC;MACrH,IAAIN,aAAa,CAAClB,MAAM,EAAEiB,qBAAqB,CAACjC,KAAK,GAAGmC,MAAM,CAACM,WAAW,CAACP,aAAa,CAAC;IAC3F;EACF,CAAC,CAAC;EAEF,SAASQ,kBAAkBA,CAAA,EAAI;IAC7B;IACA;IACA;IACAnE,cAAc,CAAC0D,qBAAqB,EAAE,MAAM;MAC1CtC,eAAe,CAACV,SAAS,CACvBD,UAAU,CAACG,cAAc,CAAC,EAAEa,KAAK,IAAI,CAAC,CAAC,EACvCiC,qBAAqB,CAACjC,KAAK,CAC5B,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,OAAO;IAAEa,KAAK,EAAEW,MAAM;IAAEkB;EAAmB,CAAC;AAC9C;AAIA,OAAO,SAASC,WAAWA,CAAA,EAGzB;EAAA,IAFA9B,KAA0B,GAAAE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAC/BG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEb,MAAM;IAAEJ,KAAK,EAAEW,MAAM;IAAEkB;EAAmB,CAAC,GAAG5B,mBAAmB,CAACD,KAAK,EAAEK,IAAI,CAAC;EAC9EwB,kBAAkB,EAAE;EACpB,OAAOlB,MAAM;AACf"}
|
|
@@ -47,6 +47,20 @@ export function forwardRefs(target) {
|
|
|
47
47
|
}
|
|
48
48
|
return false;
|
|
49
49
|
},
|
|
50
|
+
set(target, key, value) {
|
|
51
|
+
if (Reflect.has(target, key)) {
|
|
52
|
+
return Reflect.set(target, key, value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Skip internal properties
|
|
56
|
+
if (typeof key === 'symbol' || key.startsWith('__')) return false;
|
|
57
|
+
for (const ref of refs) {
|
|
58
|
+
if (ref.value && Reflect.has(ref.value, key)) {
|
|
59
|
+
return Reflect.set(ref.value, key, value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return false;
|
|
63
|
+
},
|
|
50
64
|
getOwnPropertyDescriptor(target, key) {
|
|
51
65
|
const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
|
|
52
66
|
if (descriptor) return descriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","getDescriptor","obj","key","currentObj","descriptor","Reflect","getOwnPropertyDescriptor","Object","getPrototypeOf","undefined","forwardRefs","target","_len","arguments","length","refs","Array","_key","Proxy","get","has","startsWith","ref","value","val","bind","_","setupState","childRefs","queue","slice","shift","push"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["// Types\nimport type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = [Extract<keyof T, `${P}${any}`>] extends [never] ? T : Omit<T, `${P}${any}`>\n\ntype OmitProps<T> = T extends { $props: any } ? Omit<T, keyof T['$props']> : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs<T extends {}, U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit' | '$slots'> | undefined>[]> (\n target: T,\n ...refs: U\n): T & UnionToIntersection<{ [K in keyof U]: OmitPrefix<OmitProps<NonNullable<UnwrapRef<U[K]>>>, '$'> }[number]> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n"],"mappings":"AAAA;;AAIA,MAAMA,IAAI,GAAGC,MAAM,CAAC,gBAAgB,CAAC;;AAErC;;AAKA,SAASC,aAAaA,CAAEC,GAAQ,EAAEC,GAAgB,EAAE;EAClD,IAAIC,UAAU,GAAGF,GAAG;EACpB,OAAOE,UAAU,EAAE;IACjB,MAAMC,UAAU,GAAGC,OAAO,CAACC,wBAAwB,CAACH,UAAU,EAAED,GAAG,CAAC;IACpE,IAAIE,UAAU,EAAE,OAAOA,UAAU;IACjCD,UAAU,GAAGI,MAAM,CAACC,cAAc,CAACL,UAAU,CAAC;EAChD;EACA,OAAOM,SAAS;AAClB;AAEA,OAAO,SAASC,WAAWA,CACzBC,MAAS,EAEsG;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAD5GC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EAENN,MAAM,CAASb,IAAI,CAAC,GAAGiB,IAAI;EAE5B,OAAO,IAAIG,KAAK,CAACP,MAAM,EAAE;IACvBQ,GAAGA,CAAER,MAAM,EAAET,GAAG,EAAE;MAChB,IAAIG,OAAO,CAACe,GAAG,CAACT,MAAM,EAAET,GAAG,CAAC,EAAE;QAC5B,OAAOG,OAAO,CAACc,GAAG,CAACR,MAAM,EAAET,GAAG,CAAC;MACjC;;MAEA;MACA,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACmB,UAAU,CAAC,IAAI,CAAC,EAAE;MAErD,KAAK,MAAMC,GAAG,IAAIP,IAAI,EAAE;QACtB,IAAIO,GAAG,CAACC,KAAK,IAAIlB,OAAO,CAACe,GAAG,CAACE,GAAG,CAACC,KAAK,EAAErB,GAAG,CAAC,EAAE;UAC5C,MAAMsB,GAAG,GAAGnB,OAAO,CAACc,GAAG,CAACG,GAAG,CAACC,KAAK,EAAErB,GAAG,CAAC;UACvC,OAAO,OAAOsB,GAAG,KAAK,UAAU,GAC5BA,GAAG,CAACC,IAAI,CAACH,GAAG,CAACC,KAAK,CAAC,GACnBC,GAAG;QACT;MACF;IACF,CAAC;IACDJ,GAAGA,CAAET,MAAM,EAAET,GAAG,EAAE;MAChB,IAAIG,OAAO,CAACe,GAAG,CAACT,MAAM,EAAET,GAAG,CAAC,EAAE;QAC5B,OAAO,IAAI;MACb;;MAEA;MACA,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACmB,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;MAEjE,KAAK,MAAMC,GAAG,IAAIP,IAAI,EAAE;QACtB,IAAIO,GAAG,CAACC,KAAK,IAAIlB,OAAO,CAACe,GAAG,CAACE,GAAG,CAACC,KAAK,EAAErB,GAAG,CAAC,EAAE;UAC5C,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC;
|
|
1
|
+
{"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","getDescriptor","obj","key","currentObj","descriptor","Reflect","getOwnPropertyDescriptor","Object","getPrototypeOf","undefined","forwardRefs","target","_len","arguments","length","refs","Array","_key","Proxy","get","has","startsWith","ref","value","val","bind","set","_","setupState","childRefs","queue","slice","shift","push"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["// Types\nimport type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = [Extract<keyof T, `${P}${any}`>] extends [never] ? T : Omit<T, `${P}${any}`>\n\ntype OmitProps<T> = T extends { $props: any } ? Omit<T, keyof T['$props']> : T\n\nfunction getDescriptor (obj: any, key: PropertyKey) {\n let currentObj = obj\n while (currentObj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key)\n if (descriptor) return descriptor\n currentObj = Object.getPrototypeOf(currentObj)\n }\n return undefined\n}\n\nexport function forwardRefs<T extends {}, U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit' | '$slots'> | undefined>[]> (\n target: T,\n ...refs: U\n): T & UnionToIntersection<{ [K in keyof U]: OmitPrefix<OmitProps<NonNullable<UnwrapRef<U[K]>>>, '$'> }[number]> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n has (target, key) {\n if (Reflect.has(target, key)) {\n return true\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return true\n }\n }\n return false\n },\n set (target, key, value) {\n if (Reflect.has(target, key)) {\n return Reflect.set(target, key, value)\n }\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return false\n\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n return Reflect.set(ref.value, key, value)\n }\n }\n\n return false\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined)\n if (descriptor) return descriptor\n }\n\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = getDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n\n return undefined\n },\n }) as any\n}\n"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export function useGroupItem(props, injectKey) {
|
|
|
32
32
|
throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
|
|
33
33
|
}
|
|
34
34
|
const value = toRef(props, 'value');
|
|
35
|
-
const disabled = computed(() => group.disabled.value || props.disabled);
|
|
35
|
+
const disabled = computed(() => !!(group.disabled.value || props.disabled));
|
|
36
36
|
group.register({
|
|
37
37
|
id,
|
|
38
38
|
value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","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","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","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, provide, reactive, toRef, 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'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\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': ((val: unknown) => void) | 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': ((val: { value: boolean }) => void) | 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 })\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 (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 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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"}
|
|
1
|
+
{"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","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","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","internalValue","slice","includes","step","offset","currentId","currentIndex","i","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, provide, reactive, toRef, 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'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\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': ((val: unknown) => void) | 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': ((val: { value: boolean }) => void) | 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 })\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 (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 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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"}
|
|
@@ -191,9 +191,11 @@ export function createTheme(options) {
|
|
|
191
191
|
if (head) {
|
|
192
192
|
if (head.push) {
|
|
193
193
|
const entry = head.push(getHead);
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
if (IN_BROWSER) {
|
|
195
|
+
watch(styles, () => {
|
|
196
|
+
entry.patch(getHead);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
197
199
|
} else {
|
|
198
200
|
if (IN_BROWSER) {
|
|
199
201
|
head.addHeadObjs(computed(getHead));
|
|
@@ -204,9 +206,13 @@ export function createTheme(options) {
|
|
|
204
206
|
}
|
|
205
207
|
} else {
|
|
206
208
|
let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
209
|
+
if (IN_BROWSER) {
|
|
210
|
+
watch(styles, updateStyles, {
|
|
211
|
+
immediate: true
|
|
212
|
+
});
|
|
213
|
+
} else {
|
|
214
|
+
updateStyles();
|
|
215
|
+
}
|
|
210
216
|
function updateStyles() {
|
|
211
217
|
if (typeof document !== 'undefined' && !styleEl) {
|
|
212
218
|
const el = document.createElement('style');
|