vuetify 3.5.0 → 3.5.2
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/json/attributes.json +15 -27
- package/dist/json/importMap-labs.json +8 -8
- package/dist/json/importMap.json +156 -156
- package/dist/json/tags.json +0 -3
- package/dist/json/web-types.json +47 -65
- package/dist/vuetify-labs.css +1945 -1958
- package/dist/vuetify-labs.d.ts +59 -80
- package/dist/vuetify-labs.esm.js +28 -26
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +28 -26
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1257 -1270
- package/dist/vuetify.d.ts +99 -120
- package/dist/vuetify.esm.js +28 -26
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +28 -26
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +22 -23
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -2
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs +1 -1
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -3
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +45 -63
- package/lib/components/VLabel/VLabel.mjs +5 -4
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/index.d.mts +6 -9
- package/lib/components/VMenu/VMenu.mjs +1 -0
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +4 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +15 -28
- package/lib/components/VTable/VTable.sass +6 -13
- package/lib/components/VTable/_variables.scss +1 -1
- package/lib/components/VWindow/VWindow.css +1 -1
- package/lib/components/VWindow/VWindow.sass +1 -1
- package/lib/components/index.d.mts +51 -72
- package/lib/composables/calendar.mjs +1 -1
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +2 -8
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/group.mjs +4 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +48 -48
- package/lib/labs/VCalendar/index.d.mts +8 -8
- package/lib/labs/components.d.mts +8 -8
- package/package.json +2 -2
|
@@ -55,7 +55,6 @@ declare const VDatePicker: {
|
|
|
55
55
|
style: vue.StyleValue;
|
|
56
56
|
title: string;
|
|
57
57
|
disabled: boolean;
|
|
58
|
-
range: boolean;
|
|
59
58
|
tag: string;
|
|
60
59
|
landscape: boolean;
|
|
61
60
|
nextIcon: string;
|
|
@@ -89,7 +88,7 @@ declare const VDatePicker: {
|
|
|
89
88
|
theme?: string | undefined;
|
|
90
89
|
rounded?: string | number | boolean | undefined;
|
|
91
90
|
bgColor?: string | undefined;
|
|
92
|
-
allowedDates?:
|
|
91
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
93
92
|
displayValue?: unknown;
|
|
94
93
|
} & {
|
|
95
94
|
"onUpdate:month"?: ((date: any) => any) | undefined;
|
|
@@ -105,7 +104,6 @@ declare const VDatePicker: {
|
|
|
105
104
|
style: vue.StyleValue;
|
|
106
105
|
title: string;
|
|
107
106
|
disabled: boolean;
|
|
108
|
-
range: boolean;
|
|
109
107
|
tag: string;
|
|
110
108
|
landscape: boolean;
|
|
111
109
|
nextIcon: string;
|
|
@@ -139,7 +137,7 @@ declare const VDatePicker: {
|
|
|
139
137
|
theme?: string | undefined;
|
|
140
138
|
rounded?: string | number | boolean | undefined;
|
|
141
139
|
bgColor?: string | undefined;
|
|
142
|
-
allowedDates?:
|
|
140
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
143
141
|
displayValue?: unknown;
|
|
144
142
|
} & {
|
|
145
143
|
"onUpdate:month"?: ((date: any) => any) | undefined;
|
|
@@ -151,7 +149,6 @@ declare const VDatePicker: {
|
|
|
151
149
|
style: vue.StyleValue;
|
|
152
150
|
title: string;
|
|
153
151
|
disabled: boolean;
|
|
154
|
-
range: boolean;
|
|
155
152
|
tag: string;
|
|
156
153
|
landscape: boolean;
|
|
157
154
|
rounded: string | number | boolean;
|
|
@@ -192,7 +189,6 @@ declare const VDatePicker: {
|
|
|
192
189
|
style: vue.StyleValue;
|
|
193
190
|
title: string;
|
|
194
191
|
disabled: boolean;
|
|
195
|
-
range: boolean;
|
|
196
192
|
tag: string;
|
|
197
193
|
landscape: boolean;
|
|
198
194
|
nextIcon: string;
|
|
@@ -226,7 +222,7 @@ declare const VDatePicker: {
|
|
|
226
222
|
theme?: string | undefined;
|
|
227
223
|
rounded?: string | number | boolean | undefined;
|
|
228
224
|
bgColor?: string | undefined;
|
|
229
|
-
allowedDates?:
|
|
225
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
230
226
|
displayValue?: unknown;
|
|
231
227
|
} & {
|
|
232
228
|
"onUpdate:month"?: ((date: any) => any) | undefined;
|
|
@@ -238,7 +234,6 @@ declare const VDatePicker: {
|
|
|
238
234
|
style: vue.StyleValue;
|
|
239
235
|
title: string;
|
|
240
236
|
disabled: boolean;
|
|
241
|
-
range: boolean;
|
|
242
237
|
tag: string;
|
|
243
238
|
landscape: boolean;
|
|
244
239
|
rounded: string | number | boolean;
|
|
@@ -260,7 +255,6 @@ declare const VDatePicker: {
|
|
|
260
255
|
style: vue.StyleValue;
|
|
261
256
|
title: string;
|
|
262
257
|
disabled: boolean;
|
|
263
|
-
range: boolean;
|
|
264
258
|
tag: string;
|
|
265
259
|
landscape: boolean;
|
|
266
260
|
nextIcon: string;
|
|
@@ -294,7 +288,7 @@ declare const VDatePicker: {
|
|
|
294
288
|
theme?: string | undefined;
|
|
295
289
|
rounded?: string | number | boolean | undefined;
|
|
296
290
|
bgColor?: string | undefined;
|
|
297
|
-
allowedDates?:
|
|
291
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
298
292
|
displayValue?: unknown;
|
|
299
293
|
} & {
|
|
300
294
|
"onUpdate:month"?: ((date: any) => any) | undefined;
|
|
@@ -311,7 +305,6 @@ declare const VDatePicker: {
|
|
|
311
305
|
style: vue.StyleValue;
|
|
312
306
|
title: string;
|
|
313
307
|
disabled: boolean;
|
|
314
|
-
range: boolean;
|
|
315
308
|
tag: string;
|
|
316
309
|
landscape: boolean;
|
|
317
310
|
rounded: string | number | boolean;
|
|
@@ -340,13 +333,13 @@ declare const VDatePicker: {
|
|
|
340
333
|
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
341
334
|
[key: string]: any;
|
|
342
335
|
}>[];
|
|
343
|
-
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T, Multiple extends boolean = false>(props: {
|
|
344
|
-
modelValue?:
|
|
345
|
-
'onUpdate:modelValue'?: ((value:
|
|
336
|
+
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T, Multiple extends number | boolean | "range" | (string & {}) = false, TModel = Multiple extends string | number | true ? T[] : T>(props: {
|
|
337
|
+
modelValue?: TModel | undefined;
|
|
338
|
+
'onUpdate:modelValue'?: ((value: TModel) => void) | undefined;
|
|
346
339
|
multiple?: Multiple | undefined;
|
|
347
340
|
}, slots: VDatePickerSlots) => GenericProps<{
|
|
348
|
-
modelValue?:
|
|
349
|
-
'onUpdate:modelValue'?: ((value:
|
|
341
|
+
modelValue?: TModel | undefined;
|
|
342
|
+
'onUpdate:modelValue'?: ((value: TModel) => void) | undefined;
|
|
350
343
|
multiple?: Multiple | undefined;
|
|
351
344
|
}, VDatePickerSlots>) & FilterPropsOptions<{
|
|
352
345
|
modelValue: null;
|
|
@@ -390,7 +383,7 @@ declare const VDatePicker: {
|
|
|
390
383
|
hideHeader: BooleanConstructor;
|
|
391
384
|
max: vue.PropType<unknown>;
|
|
392
385
|
min: vue.PropType<unknown>;
|
|
393
|
-
allowedDates:
|
|
386
|
+
allowedDates: vue.PropType<unknown[] | ((date: unknown) => boolean)>;
|
|
394
387
|
disabled: BooleanConstructor;
|
|
395
388
|
displayValue: vue.PropType<unknown>;
|
|
396
389
|
month: (StringConstructor | NumberConstructor)[];
|
|
@@ -414,8 +407,7 @@ declare const VDatePicker: {
|
|
|
414
407
|
default: () => number[];
|
|
415
408
|
};
|
|
416
409
|
hideWeekdays: BooleanConstructor;
|
|
417
|
-
multiple: vue.PropType<
|
|
418
|
-
range: BooleanConstructor;
|
|
410
|
+
multiple: vue.PropType<number | boolean | "range" | (string & {})>;
|
|
419
411
|
showWeek: BooleanConstructor;
|
|
420
412
|
active: {
|
|
421
413
|
type: vue.PropType<string | string[]>;
|
|
@@ -484,7 +476,7 @@ declare const VDatePicker: {
|
|
|
484
476
|
hideHeader: BooleanConstructor;
|
|
485
477
|
max: vue.PropType<unknown>;
|
|
486
478
|
min: vue.PropType<unknown>;
|
|
487
|
-
allowedDates:
|
|
479
|
+
allowedDates: vue.PropType<unknown[] | ((date: unknown) => boolean)>;
|
|
488
480
|
disabled: BooleanConstructor;
|
|
489
481
|
displayValue: vue.PropType<unknown>;
|
|
490
482
|
month: (StringConstructor | NumberConstructor)[];
|
|
@@ -508,8 +500,7 @@ declare const VDatePicker: {
|
|
|
508
500
|
default: () => number[];
|
|
509
501
|
};
|
|
510
502
|
hideWeekdays: BooleanConstructor;
|
|
511
|
-
multiple: vue.PropType<
|
|
512
|
-
range: BooleanConstructor;
|
|
503
|
+
multiple: vue.PropType<number | boolean | "range" | (string & {})>;
|
|
513
504
|
showWeek: BooleanConstructor;
|
|
514
505
|
active: {
|
|
515
506
|
type: vue.PropType<string | string[]>;
|
|
@@ -895,7 +886,6 @@ type VDatePickerHeader = InstanceType<typeof VDatePickerHeader>;
|
|
|
895
886
|
declare const VDatePickerMonth: {
|
|
896
887
|
new (...args: any[]): vue.CreateComponentPublicInstance<{
|
|
897
888
|
disabled: boolean;
|
|
898
|
-
range: boolean;
|
|
899
889
|
showAdjacentMonths: boolean;
|
|
900
890
|
weekdays: number[];
|
|
901
891
|
hideWeekdays: boolean;
|
|
@@ -904,11 +894,11 @@ declare const VDatePickerMonth: {
|
|
|
904
894
|
max?: unknown;
|
|
905
895
|
min?: unknown;
|
|
906
896
|
color?: string | undefined;
|
|
907
|
-
multiple?:
|
|
897
|
+
multiple?: number | boolean | "range" | (string & {}) | undefined;
|
|
908
898
|
month?: string | number | undefined;
|
|
909
899
|
year?: string | number | undefined;
|
|
910
900
|
modelValue?: unknown[] | undefined;
|
|
911
|
-
allowedDates?:
|
|
901
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
912
902
|
displayValue?: unknown;
|
|
913
903
|
} & {
|
|
914
904
|
$children?: {} | vue.VNodeChild | {
|
|
@@ -938,16 +928,15 @@ declare const VDatePickerMonth: {
|
|
|
938
928
|
i: number;
|
|
939
929
|
}) => vue.VNodeChild) | undefined;
|
|
940
930
|
} & {
|
|
941
|
-
"onUpdate:modelValue"?: ((date:
|
|
942
|
-
"onUpdate:month"?: ((date:
|
|
943
|
-
"onUpdate:year"?: ((date:
|
|
931
|
+
"onUpdate:modelValue"?: ((date: unknown) => any) | undefined;
|
|
932
|
+
"onUpdate:month"?: ((date: number) => any) | undefined;
|
|
933
|
+
"onUpdate:year"?: ((date: number) => any) | undefined;
|
|
944
934
|
}, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
945
|
-
'update:modelValue': (date:
|
|
946
|
-
'update:month': (date:
|
|
947
|
-
'update:year': (date:
|
|
935
|
+
'update:modelValue': (date: unknown) => true;
|
|
936
|
+
'update:month': (date: number) => true;
|
|
937
|
+
'update:year': (date: number) => true;
|
|
948
938
|
}, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
949
939
|
disabled: boolean;
|
|
950
|
-
range: boolean;
|
|
951
940
|
showAdjacentMonths: boolean;
|
|
952
941
|
weekdays: number[];
|
|
953
942
|
hideWeekdays: boolean;
|
|
@@ -956,11 +945,11 @@ declare const VDatePickerMonth: {
|
|
|
956
945
|
max?: unknown;
|
|
957
946
|
min?: unknown;
|
|
958
947
|
color?: string | undefined;
|
|
959
|
-
multiple?:
|
|
948
|
+
multiple?: number | boolean | "range" | (string & {}) | undefined;
|
|
960
949
|
month?: string | number | undefined;
|
|
961
950
|
year?: string | number | undefined;
|
|
962
951
|
modelValue?: unknown[] | undefined;
|
|
963
|
-
allowedDates?:
|
|
952
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
964
953
|
displayValue?: unknown;
|
|
965
954
|
} & {
|
|
966
955
|
$children?: {} | vue.VNodeChild | {
|
|
@@ -990,12 +979,11 @@ declare const VDatePickerMonth: {
|
|
|
990
979
|
i: number;
|
|
991
980
|
}) => vue.VNodeChild) | undefined;
|
|
992
981
|
} & {
|
|
993
|
-
"onUpdate:modelValue"?: ((date:
|
|
994
|
-
"onUpdate:month"?: ((date:
|
|
995
|
-
"onUpdate:year"?: ((date:
|
|
982
|
+
"onUpdate:modelValue"?: ((date: unknown) => any) | undefined;
|
|
983
|
+
"onUpdate:month"?: ((date: number) => any) | undefined;
|
|
984
|
+
"onUpdate:year"?: ((date: number) => any) | undefined;
|
|
996
985
|
}, {
|
|
997
986
|
disabled: boolean;
|
|
998
|
-
range: boolean;
|
|
999
987
|
showAdjacentMonths: boolean;
|
|
1000
988
|
weekdays: number[];
|
|
1001
989
|
hideWeekdays: boolean;
|
|
@@ -1019,7 +1007,6 @@ declare const VDatePickerMonth: {
|
|
|
1019
1007
|
Defaults: {};
|
|
1020
1008
|
}, {
|
|
1021
1009
|
disabled: boolean;
|
|
1022
|
-
range: boolean;
|
|
1023
1010
|
showAdjacentMonths: boolean;
|
|
1024
1011
|
weekdays: number[];
|
|
1025
1012
|
hideWeekdays: boolean;
|
|
@@ -1028,11 +1015,11 @@ declare const VDatePickerMonth: {
|
|
|
1028
1015
|
max?: unknown;
|
|
1029
1016
|
min?: unknown;
|
|
1030
1017
|
color?: string | undefined;
|
|
1031
|
-
multiple?:
|
|
1018
|
+
multiple?: number | boolean | "range" | (string & {}) | undefined;
|
|
1032
1019
|
month?: string | number | undefined;
|
|
1033
1020
|
year?: string | number | undefined;
|
|
1034
1021
|
modelValue?: unknown[] | undefined;
|
|
1035
|
-
allowedDates?:
|
|
1022
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
1036
1023
|
displayValue?: unknown;
|
|
1037
1024
|
} & {
|
|
1038
1025
|
$children?: {} | vue.VNodeChild | {
|
|
@@ -1062,12 +1049,11 @@ declare const VDatePickerMonth: {
|
|
|
1062
1049
|
i: number;
|
|
1063
1050
|
}) => vue.VNodeChild) | undefined;
|
|
1064
1051
|
} & {
|
|
1065
|
-
"onUpdate:modelValue"?: ((date:
|
|
1066
|
-
"onUpdate:month"?: ((date:
|
|
1067
|
-
"onUpdate:year"?: ((date:
|
|
1052
|
+
"onUpdate:modelValue"?: ((date: unknown) => any) | undefined;
|
|
1053
|
+
"onUpdate:month"?: ((date: number) => any) | undefined;
|
|
1054
|
+
"onUpdate:year"?: ((date: number) => any) | undefined;
|
|
1068
1055
|
}, () => JSX.Element, {}, {}, {}, {
|
|
1069
1056
|
disabled: boolean;
|
|
1070
|
-
range: boolean;
|
|
1071
1057
|
showAdjacentMonths: boolean;
|
|
1072
1058
|
weekdays: number[];
|
|
1073
1059
|
hideWeekdays: boolean;
|
|
@@ -1078,7 +1064,6 @@ declare const VDatePickerMonth: {
|
|
|
1078
1064
|
__isSuspense?: undefined;
|
|
1079
1065
|
} & vue.ComponentOptionsBase<{
|
|
1080
1066
|
disabled: boolean;
|
|
1081
|
-
range: boolean;
|
|
1082
1067
|
showAdjacentMonths: boolean;
|
|
1083
1068
|
weekdays: number[];
|
|
1084
1069
|
hideWeekdays: boolean;
|
|
@@ -1087,11 +1072,11 @@ declare const VDatePickerMonth: {
|
|
|
1087
1072
|
max?: unknown;
|
|
1088
1073
|
min?: unknown;
|
|
1089
1074
|
color?: string | undefined;
|
|
1090
|
-
multiple?:
|
|
1075
|
+
multiple?: number | boolean | "range" | (string & {}) | undefined;
|
|
1091
1076
|
month?: string | number | undefined;
|
|
1092
1077
|
year?: string | number | undefined;
|
|
1093
1078
|
modelValue?: unknown[] | undefined;
|
|
1094
|
-
allowedDates?:
|
|
1079
|
+
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
|
1095
1080
|
displayValue?: unknown;
|
|
1096
1081
|
} & {
|
|
1097
1082
|
$children?: {} | vue.VNodeChild | {
|
|
@@ -1121,16 +1106,15 @@ declare const VDatePickerMonth: {
|
|
|
1121
1106
|
i: number;
|
|
1122
1107
|
}) => vue.VNodeChild) | undefined;
|
|
1123
1108
|
} & {
|
|
1124
|
-
"onUpdate:modelValue"?: ((date:
|
|
1125
|
-
"onUpdate:month"?: ((date:
|
|
1126
|
-
"onUpdate:year"?: ((date:
|
|
1109
|
+
"onUpdate:modelValue"?: ((date: unknown) => any) | undefined;
|
|
1110
|
+
"onUpdate:month"?: ((date: number) => any) | undefined;
|
|
1111
|
+
"onUpdate:year"?: ((date: number) => any) | undefined;
|
|
1127
1112
|
}, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
1128
|
-
'update:modelValue': (date:
|
|
1129
|
-
'update:month': (date:
|
|
1130
|
-
'update:year': (date:
|
|
1113
|
+
'update:modelValue': (date: unknown) => true;
|
|
1114
|
+
'update:month': (date: number) => true;
|
|
1115
|
+
'update:year': (date: number) => true;
|
|
1131
1116
|
}, string, {
|
|
1132
1117
|
disabled: boolean;
|
|
1133
|
-
range: boolean;
|
|
1134
1118
|
showAdjacentMonths: boolean;
|
|
1135
1119
|
weekdays: number[];
|
|
1136
1120
|
hideWeekdays: boolean;
|
|
@@ -1146,10 +1130,10 @@ declare const VDatePickerMonth: {
|
|
|
1146
1130
|
[key: string]: any;
|
|
1147
1131
|
}>[];
|
|
1148
1132
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
1149
|
-
allowedDates:
|
|
1133
|
+
allowedDates: PropType<unknown[] | ((date: unknown) => boolean)>;
|
|
1150
1134
|
disabled: BooleanConstructor;
|
|
1151
1135
|
displayValue: PropType<unknown>;
|
|
1152
|
-
modelValue: PropType<unknown[]
|
|
1136
|
+
modelValue: PropType<unknown[]>;
|
|
1153
1137
|
month: (StringConstructor | NumberConstructor)[];
|
|
1154
1138
|
max: PropType<unknown>;
|
|
1155
1139
|
min: PropType<unknown>;
|
|
@@ -1174,14 +1158,13 @@ declare const VDatePickerMonth: {
|
|
|
1174
1158
|
};
|
|
1175
1159
|
color: StringConstructor;
|
|
1176
1160
|
hideWeekdays: BooleanConstructor;
|
|
1177
|
-
multiple: PropType<
|
|
1178
|
-
range: BooleanConstructor;
|
|
1161
|
+
multiple: PropType<number | boolean | "range" | (string & {})>;
|
|
1179
1162
|
showWeek: BooleanConstructor;
|
|
1180
1163
|
}, vue.ExtractPropTypes<{
|
|
1181
|
-
allowedDates:
|
|
1164
|
+
allowedDates: PropType<unknown[] | ((date: unknown) => boolean)>;
|
|
1182
1165
|
disabled: BooleanConstructor;
|
|
1183
1166
|
displayValue: PropType<unknown>;
|
|
1184
|
-
modelValue: PropType<unknown[]
|
|
1167
|
+
modelValue: PropType<unknown[]>;
|
|
1185
1168
|
month: (StringConstructor | NumberConstructor)[];
|
|
1186
1169
|
max: PropType<unknown>;
|
|
1187
1170
|
min: PropType<unknown>;
|
|
@@ -1206,8 +1189,7 @@ declare const VDatePickerMonth: {
|
|
|
1206
1189
|
};
|
|
1207
1190
|
color: StringConstructor;
|
|
1208
1191
|
hideWeekdays: BooleanConstructor;
|
|
1209
|
-
multiple: PropType<
|
|
1210
|
-
range: BooleanConstructor;
|
|
1192
|
+
multiple: PropType<number | boolean | "range" | (string & {})>;
|
|
1211
1193
|
showWeek: BooleanConstructor;
|
|
1212
1194
|
}>>;
|
|
1213
1195
|
type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>;
|
|
@@ -5,10 +5,10 @@ import "./VLabel.css";
|
|
|
5
5
|
// Composables
|
|
6
6
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
7
7
|
import { makeThemeProps } from "../../composables/theme.mjs"; // Utilities
|
|
8
|
-
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
8
|
+
import { EventProp, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
9
9
|
export const makeVLabelProps = propsFactory({
|
|
10
10
|
text: String,
|
|
11
|
-
|
|
11
|
+
onClick: EventProp(),
|
|
12
12
|
...makeComponentProps(),
|
|
13
13
|
...makeThemeProps()
|
|
14
14
|
}, 'VLabel');
|
|
@@ -21,9 +21,10 @@ export const VLabel = genericComponent()({
|
|
|
21
21
|
} = _ref;
|
|
22
22
|
useRender(() => _createVNode("label", {
|
|
23
23
|
"class": ['v-label', {
|
|
24
|
-
'v-label--clickable': props.
|
|
24
|
+
'v-label--clickable': !!props.onClick
|
|
25
25
|
}, props.class],
|
|
26
|
-
"style": props.style
|
|
26
|
+
"style": props.style,
|
|
27
|
+
"onClick": props.onClick
|
|
27
28
|
}, [props.text, slots.default?.()]));
|
|
28
29
|
return {};
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VLabel.mjs","names":["makeComponentProps","makeThemeProps","genericComponent","propsFactory","useRender","makeVLabelProps","text","String","
|
|
1
|
+
{"version":3,"file":"VLabel.mjs","names":["makeComponentProps","makeThemeProps","EventProp","genericComponent","propsFactory","useRender","makeVLabelProps","text","String","onClick","VLabel","name","props","setup","_ref","slots","_createVNode","class","style","default"],"sources":["../../../src/components/VLabel/VLabel.tsx"],"sourcesContent":["// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVLabelProps = propsFactory({\n text: String,\n\n onClick: EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VLabel')\n\nexport const VLabel = genericComponent()({\n name: 'VLabel',\n\n props: makeVLabelProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n <label\n class={[\n 'v-label',\n {\n 'v-label--clickable': !!props.onClick,\n },\n props.class,\n ]}\n style={ props.style }\n onClick={ props.onClick }\n >\n { props.text }\n\n { slots.default?.() }\n </label>\n ))\n\n return {}\n },\n})\n\nexport type VLabel = InstanceType<typeof VLabel>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,cAAc,uCAEvB;AAAA,SACSC,SAAS,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAE7D,OAAO,MAAMC,eAAe,GAAGF,YAAY,CAAC;EAC1CG,IAAI,EAAEC,MAAM;EAEZC,OAAO,EAAEP,SAAS,CAAe,CAAC;EAElC,GAAGF,kBAAkB,CAAC,CAAC;EACvB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,MAAMS,MAAM,GAAGP,gBAAgB,CAAC,CAAC,CAAC;EACvCQ,IAAI,EAAE,QAAQ;EAEdC,KAAK,EAAEN,eAAe,CAAC,CAAC;EAExBO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBT,SAAS,CAAC,MAAAW,YAAA;MAAA,SAEC,CACL,SAAS,EACT;QACE,oBAAoB,EAAE,CAAC,CAACJ,KAAK,CAACH;MAChC,CAAC,EACDG,KAAK,CAACK,KAAK,CACZ;MAAA,SACOL,KAAK,CAACM,KAAK;MAAA,WACTN,KAAK,CAACH;IAAO,IAErBG,KAAK,CAACL,IAAI,EAEVQ,KAAK,CAACI,OAAO,GAAG,CAAC,EAEtB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -8,10 +8,10 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
|
8
8
|
declare const VLabel: {
|
|
9
9
|
new (...args: any[]): vue.CreateComponentPublicInstance<{
|
|
10
10
|
style: vue.StyleValue;
|
|
11
|
-
clickable: boolean;
|
|
12
11
|
} & {
|
|
13
12
|
text?: string | undefined;
|
|
14
13
|
class?: any;
|
|
14
|
+
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
15
15
|
theme?: string | undefined;
|
|
16
16
|
} & {
|
|
17
17
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -24,10 +24,10 @@ declare const VLabel: {
|
|
|
24
24
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
25
25
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
26
26
|
style: vue.StyleValue;
|
|
27
|
-
clickable: boolean;
|
|
28
27
|
} & {
|
|
29
28
|
text?: string | undefined;
|
|
30
29
|
class?: any;
|
|
30
|
+
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
31
31
|
theme?: string | undefined;
|
|
32
32
|
} & {
|
|
33
33
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -40,7 +40,6 @@ declare const VLabel: {
|
|
|
40
40
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
41
41
|
}, {
|
|
42
42
|
style: vue.StyleValue;
|
|
43
|
-
clickable: boolean;
|
|
44
43
|
}, true, {}, vue.SlotsType<Partial<{
|
|
45
44
|
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
46
45
|
[key: string]: any;
|
|
@@ -54,10 +53,10 @@ declare const VLabel: {
|
|
|
54
53
|
Defaults: {};
|
|
55
54
|
}, {
|
|
56
55
|
style: vue.StyleValue;
|
|
57
|
-
clickable: boolean;
|
|
58
56
|
} & {
|
|
59
57
|
text?: string | undefined;
|
|
60
58
|
class?: any;
|
|
59
|
+
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
61
60
|
theme?: string | undefined;
|
|
62
61
|
} & {
|
|
63
62
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -70,17 +69,16 @@ declare const VLabel: {
|
|
|
70
69
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
71
70
|
}, {}, {}, {}, {}, {
|
|
72
71
|
style: vue.StyleValue;
|
|
73
|
-
clickable: boolean;
|
|
74
72
|
}>;
|
|
75
73
|
__isFragment?: undefined;
|
|
76
74
|
__isTeleport?: undefined;
|
|
77
75
|
__isSuspense?: undefined;
|
|
78
76
|
} & vue.ComponentOptionsBase<{
|
|
79
77
|
style: vue.StyleValue;
|
|
80
|
-
clickable: boolean;
|
|
81
78
|
} & {
|
|
82
79
|
text?: string | undefined;
|
|
83
80
|
class?: any;
|
|
81
|
+
onClick?: ((args_0: MouseEvent) => void) | undefined;
|
|
84
82
|
theme?: string | undefined;
|
|
85
83
|
} & {
|
|
86
84
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
@@ -93,7 +91,6 @@ declare const VLabel: {
|
|
|
93
91
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
94
92
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
95
93
|
style: vue.StyleValue;
|
|
96
|
-
clickable: boolean;
|
|
97
94
|
}, {}, string, vue.SlotsType<Partial<{
|
|
98
95
|
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
99
96
|
[key: string]: any;
|
|
@@ -106,7 +103,7 @@ declare const VLabel: {
|
|
|
106
103
|
default: null;
|
|
107
104
|
};
|
|
108
105
|
text: StringConstructor;
|
|
109
|
-
|
|
106
|
+
onClick: vue.PropType<(args_0: MouseEvent) => void>;
|
|
110
107
|
}, vue.ExtractPropTypes<{
|
|
111
108
|
theme: StringConstructor;
|
|
112
109
|
class: vue.PropType<any>;
|
|
@@ -115,7 +112,7 @@ declare const VLabel: {
|
|
|
115
112
|
default: null;
|
|
116
113
|
};
|
|
117
114
|
text: StringConstructor;
|
|
118
|
-
|
|
115
|
+
onClick: vue.PropType<(args_0: MouseEvent) => void>;
|
|
119
116
|
}>>;
|
|
120
117
|
type VLabel = InstanceType<typeof VLabel>;
|
|
121
118
|
|
|
@@ -130,6 +130,7 @@ export const VMenu = genericComponent()({
|
|
|
130
130
|
const overlayProps = VOverlay.filterProps(props);
|
|
131
131
|
return _createVNode(VOverlay, _mergeProps({
|
|
132
132
|
"ref": overlay,
|
|
133
|
+
"id": id.value,
|
|
133
134
|
"class": ['v-menu', props.class],
|
|
134
135
|
"style": props.style
|
|
135
136
|
}, overlayProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","omit","propsFactory","useRender","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","onFocusIn","e","before","relatedTarget","after","target","contentEl","globalTop","document","includes","contains","focusable","focus","val","addEventListener","once","removeEventListener","onClickOutside","onKeydown","disabled","key","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","preventDefault","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, provide, ref, shallowRef, watch } from 'vue'\nimport { VMenuSymbol } from './shared'\nimport { focusableChildren, focusChild, genericComponent, getNextElement, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren.value) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab') {\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n focusChild(el, 'prev')\n }\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","omit","propsFactory","useRender","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","onFocusIn","e","before","relatedTarget","after","target","contentEl","globalTop","document","includes","contains","focusable","focus","val","addEventListener","once","removeEventListener","onClickOutside","onKeydown","disabled","key","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","preventDefault","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, provide, ref, shallowRef, watch } from 'vue'\nimport { VMenuSymbol } from './shared'\nimport { focusableChildren, focusChild, genericComponent, getNextElement, getUid, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren.value) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab') {\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n focusChild(el, 'prev')\n }\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
|
|
@@ -61,12 +61,15 @@ function blockScrollStrategy(data, props) {
|
|
|
61
61
|
scrollElements.forEach((el, i) => {
|
|
62
62
|
const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));
|
|
63
63
|
const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));
|
|
64
|
+
const scrollBehavior = el.style.scrollBehavior;
|
|
65
|
+
el.style.scrollBehavior = 'auto';
|
|
64
66
|
el.style.removeProperty('--v-body-scroll-x');
|
|
65
67
|
el.style.removeProperty('--v-body-scroll-y');
|
|
66
68
|
el.style.removeProperty('--v-scrollbar-offset');
|
|
67
69
|
el.classList.remove('v-overlay-scroll-blocked');
|
|
68
70
|
el.scrollLeft = -x;
|
|
69
71
|
el.scrollTop = -y;
|
|
72
|
+
el.style.scrollBehavior = scrollBehavior;
|
|
70
73
|
});
|
|
71
74
|
if (scrollableParent) {
|
|
72
75
|
data.root.value.classList.remove('v-overlay--scroll-blocked');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollStrategies.mjs","names":["effectScope","nextTick","onScopeDispose","watchEffect","requestNewFrame","convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","active","run","onScroll","e","bindScroll","targetEl","contentEl","offsetParent","root","scrollElements","Set","contained","undefined","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","removeProperty","remove","slow","raf","ric","update","start","performance","now","updateLocation","time","requestIdleCallback","cb","cancelAnimationFrame","requestAnimationFrame","cancelIdleCallback","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n targetEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\ntype ScrollStrategyFn = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFn\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scrollStrategies.mjs","names":["effectScope","nextTick","onScopeDispose","watchEffect","requestNewFrame","convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","active","run","onScroll","e","bindScroll","targetEl","contentEl","offsetParent","root","scrollElements","Set","contained","undefined","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","scrollBehavior","removeProperty","remove","slow","raf","ric","update","start","performance","now","updateLocation","time","requestIdleCallback","cb","cancelAnimationFrame","requestAnimationFrame","cancelIdleCallback","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n targetEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\ntype ScrollStrategyFn = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFn\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n}, 'VOverlay-scroll-strategies')\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.active && scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props, scope!)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props, scope!)\n }\n })\n })\n\n onScopeDispose(() => {\n scope?.stop()\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.targetEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.targetEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n\n if (el !== document.documentElement) {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n }\n\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n const scrollBehavior = el.style.scrollBehavior\n\n el.style.scrollBehavior = 'auto'\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n\n el.style.scrollBehavior = scrollBehavior\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) {\n let slow = false\n let raf = -1\n let ric = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n ric = (typeof requestIdleCallback === 'undefined' ? (cb: Function) => cb() : requestIdleCallback)(() => {\n scope.run(() => {\n bindScroll(data.targetEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n })\n })\n\n onScopeDispose(() => {\n typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(ric)\n cancelAnimationFrame(raf)\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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"}
|
|
@@ -125,6 +125,9 @@ export const VSelectionControl = genericComponent()({
|
|
|
125
125
|
isFocused.value = false;
|
|
126
126
|
isFocusVisible.value = false;
|
|
127
127
|
}
|
|
128
|
+
function onClickLabel(e) {
|
|
129
|
+
e.stopPropagation();
|
|
130
|
+
}
|
|
128
131
|
function onInput(e) {
|
|
129
132
|
if (!isInteractive.value) return;
|
|
130
133
|
if (props.readonly && group) {
|
|
@@ -191,8 +194,7 @@ export const VSelectionControl = genericComponent()({
|
|
|
191
194
|
"icon": icon.value
|
|
192
195
|
}, null), inputNode])]), [[_resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && _createVNode(VLabel, {
|
|
193
196
|
"for": id.value,
|
|
194
|
-
"
|
|
195
|
-
"onClick": e => e.stopPropagation()
|
|
197
|
+
"onClick": onClickLabel
|
|
196
198
|
}, {
|
|
197
199
|
default: () => [label]
|
|
198
200
|
})]);
|