vuetify 3.3.4 → 3.3.6
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 +4 -12
- package/dist/json/importMap.json +20 -20
- package/dist/json/tags.json +0 -2
- package/dist/json/web-types.json +7 -27
- package/dist/vuetify-labs.css +49 -27
- package/dist/vuetify-labs.d.ts +36 -98
- package/dist/vuetify-labs.esm.js +85 -53
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +85 -53
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +66 -43
- package/dist/vuetify.d.ts +5 -5
- package/dist/vuetify.esm.js +43 -34
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +43 -34
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +21 -22
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +12 -9
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +12 -4
- package/lib/components/VAutocomplete/VAutocomplete.sass +17 -9
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +4 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +4 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +8 -7
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +1 -1
- package/lib/components/VBtn/VBtn.sass +1 -1
- package/lib/components/VCombobox/VCombobox.css +12 -4
- package/lib/components/VCombobox/VCombobox.sass +17 -9
- package/lib/components/VCombobox/_variables.scss +1 -0
- package/lib/components/VFooter/VFooter.mjs +4 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +1 -1
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +4 -3
- package/lib/components/VSelect/VSelect.sass +10 -12
- package/lib/components/VSlider/VSliderThumb.mjs +6 -2
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.css +2 -0
- package/lib/components/VTextField/VTextField.mjs +2 -4
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +3 -1
- package/lib/composables/validation.mjs +2 -2
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/virtual.mjs +7 -5
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/fa.mjs +2 -2
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -2
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/index.d.mts +5 -5
- package/lib/labs/VDataTable/composables/sort.mjs +4 -1
- package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.css +3 -5
- package/lib/labs/VDatePicker/VDatePicker.mjs +12 -10
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.sass +3 -5
- package/lib/labs/VDatePicker/VDatePickerControls.css +3 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerControls.sass +3 -3
- package/lib/labs/VDatePicker/VDatePickerMonth.css +0 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs +0 -5
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.sass +0 -1
- package/lib/labs/VDatePicker/VDatePickerTitle.sass +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
- package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
- package/lib/labs/VDatePicker/_variables.scss +0 -5
- package/lib/labs/VDatePicker/index.d.mts +36 -98
- package/lib/labs/VDateRangePicker/index.d.mts +34 -44
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +24 -4
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VPicker/VPicker.css +1 -1
- package/lib/labs/VPicker/VPicker.sass +1 -1
- package/lib/labs/VPicker/_variables.scss +2 -2
- package/lib/labs/components.d.mts +36 -98
- package/lib/util/helpers.mjs +3 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +1 -0
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
- package/lib/labs/VDatePicker/VDatePickerTable.sass +0 -84
- package/lib/labs/VDatePicker/mixins/date-picker-table.mjs +0 -210
- package/lib/labs/VDatePicker/mixins/date-picker-table.mjs.map +0 -1
|
@@ -21,7 +21,7 @@ declare const VDateRangeCard: {
|
|
|
21
21
|
})> | undefined;
|
|
22
22
|
inputMode?: "calendar" | "keyboard" | undefined;
|
|
23
23
|
multiple?: boolean | undefined;
|
|
24
|
-
range?:
|
|
24
|
+
range?: string | boolean | undefined;
|
|
25
25
|
modelValue?: any[] | undefined;
|
|
26
26
|
collapseIcon?: string | undefined;
|
|
27
27
|
expandIcon?: string | undefined;
|
|
@@ -130,11 +130,6 @@ declare const VDateRangeCard: {
|
|
|
130
130
|
showAdjacentMonths: BooleanConstructor;
|
|
131
131
|
hideWeekdays: BooleanConstructor;
|
|
132
132
|
showWeek: BooleanConstructor;
|
|
133
|
-
range: {
|
|
134
|
-
default: boolean;
|
|
135
|
-
type: vue.PropType<boolean | "end" | "start">;
|
|
136
|
-
validator: (v: any) => boolean;
|
|
137
|
-
};
|
|
138
133
|
hoverDate: null;
|
|
139
134
|
multiple: BooleanConstructor;
|
|
140
135
|
side: {
|
|
@@ -160,6 +155,11 @@ declare const VDateRangeCard: {
|
|
|
160
155
|
type: StringConstructor[];
|
|
161
156
|
default: string;
|
|
162
157
|
};
|
|
158
|
+
range: {
|
|
159
|
+
default: boolean;
|
|
160
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
161
|
+
validator: (v: any) => boolean;
|
|
162
|
+
};
|
|
163
163
|
inputMode: {
|
|
164
164
|
type: vue.PropType<"calendar" | "keyboard">;
|
|
165
165
|
default: string;
|
|
@@ -182,7 +182,7 @@ declare const VDateRangeCard: {
|
|
|
182
182
|
})>;
|
|
183
183
|
inputMode: "calendar" | "keyboard";
|
|
184
184
|
multiple: boolean;
|
|
185
|
-
range:
|
|
185
|
+
range: string | boolean;
|
|
186
186
|
modelValue: any[];
|
|
187
187
|
collapseIcon: string;
|
|
188
188
|
expandIcon: string;
|
|
@@ -240,11 +240,6 @@ declare const VDateRangeCard: {
|
|
|
240
240
|
showAdjacentMonths: BooleanConstructor;
|
|
241
241
|
hideWeekdays: BooleanConstructor;
|
|
242
242
|
showWeek: BooleanConstructor;
|
|
243
|
-
range: {
|
|
244
|
-
default: boolean;
|
|
245
|
-
type: vue.PropType<boolean | "end" | "start">;
|
|
246
|
-
validator: (v: any) => boolean;
|
|
247
|
-
};
|
|
248
243
|
hoverDate: null;
|
|
249
244
|
multiple: BooleanConstructor;
|
|
250
245
|
side: {
|
|
@@ -270,6 +265,11 @@ declare const VDateRangeCard: {
|
|
|
270
265
|
type: StringConstructor[];
|
|
271
266
|
default: string;
|
|
272
267
|
};
|
|
268
|
+
range: {
|
|
269
|
+
default: boolean;
|
|
270
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
271
|
+
validator: (v: any) => boolean;
|
|
272
|
+
};
|
|
273
273
|
inputMode: {
|
|
274
274
|
type: vue.PropType<"calendar" | "keyboard">;
|
|
275
275
|
default: string;
|
|
@@ -312,11 +312,6 @@ declare const VDateRangeCard: {
|
|
|
312
312
|
showAdjacentMonths: BooleanConstructor;
|
|
313
313
|
hideWeekdays: BooleanConstructor;
|
|
314
314
|
showWeek: BooleanConstructor;
|
|
315
|
-
range: {
|
|
316
|
-
default: boolean;
|
|
317
|
-
type: vue.PropType<boolean | "end" | "start">;
|
|
318
|
-
validator: (v: any) => boolean;
|
|
319
|
-
};
|
|
320
315
|
hoverDate: null;
|
|
321
316
|
multiple: BooleanConstructor;
|
|
322
317
|
side: {
|
|
@@ -342,6 +337,11 @@ declare const VDateRangeCard: {
|
|
|
342
337
|
type: StringConstructor[];
|
|
343
338
|
default: string;
|
|
344
339
|
};
|
|
340
|
+
range: {
|
|
341
|
+
default: boolean;
|
|
342
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
343
|
+
validator: (v: any) => boolean;
|
|
344
|
+
};
|
|
345
345
|
inputMode: {
|
|
346
346
|
type: vue.PropType<"calendar" | "keyboard">;
|
|
347
347
|
default: string;
|
|
@@ -364,7 +364,7 @@ declare const VDateRangeCard: {
|
|
|
364
364
|
})>;
|
|
365
365
|
inputMode: "calendar" | "keyboard";
|
|
366
366
|
multiple: boolean;
|
|
367
|
-
range:
|
|
367
|
+
range: string | boolean;
|
|
368
368
|
modelValue: any[];
|
|
369
369
|
collapseIcon: string;
|
|
370
370
|
expandIcon: string;
|
|
@@ -402,11 +402,6 @@ declare const VDateRangeCard: {
|
|
|
402
402
|
showAdjacentMonths: BooleanConstructor;
|
|
403
403
|
hideWeekdays: BooleanConstructor;
|
|
404
404
|
showWeek: BooleanConstructor;
|
|
405
|
-
range: {
|
|
406
|
-
default: boolean;
|
|
407
|
-
type: vue.PropType<boolean | "end" | "start">;
|
|
408
|
-
validator: (v: any) => boolean;
|
|
409
|
-
};
|
|
410
405
|
hoverDate: null;
|
|
411
406
|
multiple: BooleanConstructor;
|
|
412
407
|
side: {
|
|
@@ -432,6 +427,11 @@ declare const VDateRangeCard: {
|
|
|
432
427
|
type: StringConstructor[];
|
|
433
428
|
default: string;
|
|
434
429
|
};
|
|
430
|
+
range: {
|
|
431
|
+
default: boolean;
|
|
432
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
433
|
+
validator: (v: any) => boolean;
|
|
434
|
+
};
|
|
435
435
|
inputMode: {
|
|
436
436
|
type: vue.PropType<"calendar" | "keyboard">;
|
|
437
437
|
default: string;
|
|
@@ -464,11 +464,6 @@ declare const VDateRangeCard: {
|
|
|
464
464
|
showAdjacentMonths: BooleanConstructor;
|
|
465
465
|
hideWeekdays: BooleanConstructor;
|
|
466
466
|
showWeek: BooleanConstructor;
|
|
467
|
-
range: {
|
|
468
|
-
default: boolean;
|
|
469
|
-
type: vue.PropType<boolean | "end" | "start">;
|
|
470
|
-
validator: (v: any) => boolean;
|
|
471
|
-
};
|
|
472
467
|
hoverDate: null;
|
|
473
468
|
multiple: BooleanConstructor;
|
|
474
469
|
side: {
|
|
@@ -494,6 +489,11 @@ declare const VDateRangeCard: {
|
|
|
494
489
|
type: StringConstructor[];
|
|
495
490
|
default: string;
|
|
496
491
|
};
|
|
492
|
+
range: {
|
|
493
|
+
default: boolean;
|
|
494
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
495
|
+
validator: (v: any) => boolean;
|
|
496
|
+
};
|
|
497
497
|
inputMode: {
|
|
498
498
|
type: vue.PropType<"calendar" | "keyboard">;
|
|
499
499
|
default: string;
|
|
@@ -512,7 +512,6 @@ declare const VDateRangePicker: {
|
|
|
512
512
|
style?: vue.StyleValue | undefined;
|
|
513
513
|
multiple?: boolean | undefined;
|
|
514
514
|
landscape?: boolean | undefined;
|
|
515
|
-
range?: boolean | "end" | "start" | undefined;
|
|
516
515
|
tag?: string | undefined;
|
|
517
516
|
rounded?: string | number | boolean | undefined;
|
|
518
517
|
modelValue?: any[] | undefined;
|
|
@@ -540,6 +539,7 @@ declare const VDateRangePicker: {
|
|
|
540
539
|
title?: string | undefined;
|
|
541
540
|
inputMode?: string | undefined;
|
|
542
541
|
class?: any;
|
|
542
|
+
range?: any;
|
|
543
543
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
544
544
|
default?: (() => vue.VNodeChild) | undefined;
|
|
545
545
|
};
|
|
@@ -622,7 +622,6 @@ declare const VDateRangePicker: {
|
|
|
622
622
|
style: vue.StyleValue;
|
|
623
623
|
multiple: boolean;
|
|
624
624
|
landscape: boolean;
|
|
625
|
-
range: boolean | "end" | "start";
|
|
626
625
|
tag: string;
|
|
627
626
|
modelValue: any[];
|
|
628
627
|
closeIcon: string;
|
|
@@ -649,6 +648,7 @@ declare const VDateRangePicker: {
|
|
|
649
648
|
title?: string | undefined;
|
|
650
649
|
inputMode?: string | undefined;
|
|
651
650
|
class?: any;
|
|
651
|
+
range?: any;
|
|
652
652
|
elevation?: string | number | undefined;
|
|
653
653
|
format?: string | undefined;
|
|
654
654
|
side?: string | undefined;
|
|
@@ -685,7 +685,6 @@ declare const VDateRangePicker: {
|
|
|
685
685
|
style: vue.StyleValue;
|
|
686
686
|
multiple: boolean;
|
|
687
687
|
landscape: boolean;
|
|
688
|
-
range: boolean | "end" | "start";
|
|
689
688
|
tag: string;
|
|
690
689
|
rounded: string | number | boolean;
|
|
691
690
|
modelValue: any[];
|
|
@@ -729,7 +728,6 @@ declare const VDateRangePicker: {
|
|
|
729
728
|
style: vue.StyleValue;
|
|
730
729
|
multiple: boolean;
|
|
731
730
|
landscape: boolean;
|
|
732
|
-
range: boolean | "end" | "start";
|
|
733
731
|
tag: string;
|
|
734
732
|
modelValue: any[];
|
|
735
733
|
closeIcon: string;
|
|
@@ -756,6 +754,7 @@ declare const VDateRangePicker: {
|
|
|
756
754
|
title?: string | undefined;
|
|
757
755
|
inputMode?: string | undefined;
|
|
758
756
|
class?: any;
|
|
757
|
+
range?: any;
|
|
759
758
|
elevation?: string | number | undefined;
|
|
760
759
|
format?: string | undefined;
|
|
761
760
|
side?: string | undefined;
|
|
@@ -789,7 +788,6 @@ declare const VDateRangePicker: {
|
|
|
789
788
|
style: vue.StyleValue;
|
|
790
789
|
multiple: boolean;
|
|
791
790
|
landscape: boolean;
|
|
792
|
-
range: boolean | "end" | "start";
|
|
793
791
|
tag: string;
|
|
794
792
|
modelValue: any[];
|
|
795
793
|
closeIcon: string;
|
|
@@ -816,6 +814,7 @@ declare const VDateRangePicker: {
|
|
|
816
814
|
title?: string | undefined;
|
|
817
815
|
inputMode?: string | undefined;
|
|
818
816
|
class?: any;
|
|
817
|
+
range?: any;
|
|
819
818
|
elevation?: string | number | undefined;
|
|
820
819
|
format?: string | undefined;
|
|
821
820
|
side?: string | undefined;
|
|
@@ -852,7 +851,6 @@ declare const VDateRangePicker: {
|
|
|
852
851
|
style: vue.StyleValue;
|
|
853
852
|
multiple: boolean;
|
|
854
853
|
landscape: boolean;
|
|
855
|
-
range: boolean | "end" | "start";
|
|
856
854
|
tag: string;
|
|
857
855
|
rounded: string | number | boolean;
|
|
858
856
|
modelValue: any[];
|
|
@@ -900,11 +898,6 @@ declare const VDateRangePicker: {
|
|
|
900
898
|
default: boolean;
|
|
901
899
|
};
|
|
902
900
|
showWeek: BooleanConstructor;
|
|
903
|
-
range: {
|
|
904
|
-
default: boolean;
|
|
905
|
-
type: PropType<boolean | "end" | "start">;
|
|
906
|
-
validator: (v: any) => boolean;
|
|
907
|
-
};
|
|
908
901
|
hoverDate: null;
|
|
909
902
|
multiple: {
|
|
910
903
|
type: PropType<boolean>;
|
|
@@ -929,6 +922,7 @@ declare const VDateRangePicker: {
|
|
|
929
922
|
};
|
|
930
923
|
showInputSwitch: BooleanConstructor;
|
|
931
924
|
inputMode: StringConstructor;
|
|
925
|
+
range: null;
|
|
932
926
|
location: PropType<Anchor>;
|
|
933
927
|
height: (StringConstructor | NumberConstructor)[];
|
|
934
928
|
width: (StringConstructor | NumberConstructor)[];
|
|
@@ -995,11 +989,6 @@ declare const VDateRangePicker: {
|
|
|
995
989
|
default: boolean;
|
|
996
990
|
};
|
|
997
991
|
showWeek: BooleanConstructor;
|
|
998
|
-
range: {
|
|
999
|
-
default: boolean;
|
|
1000
|
-
type: PropType<boolean | "end" | "start">;
|
|
1001
|
-
validator: (v: any) => boolean;
|
|
1002
|
-
};
|
|
1003
992
|
hoverDate: null;
|
|
1004
993
|
multiple: {
|
|
1005
994
|
type: PropType<boolean>;
|
|
@@ -1024,6 +1013,7 @@ declare const VDateRangePicker: {
|
|
|
1024
1013
|
};
|
|
1025
1014
|
showInputSwitch: BooleanConstructor;
|
|
1026
1015
|
inputMode: StringConstructor;
|
|
1016
|
+
range: null;
|
|
1027
1017
|
location: PropType<Anchor>;
|
|
1028
1018
|
height: (StringConstructor | NumberConstructor)[];
|
|
1029
1019
|
width: (StringConstructor | NumberConstructor)[];
|
|
@@ -51,7 +51,7 @@ export const VInfiniteScrollIntersect = defineComponent({
|
|
|
51
51
|
rootMargin: String
|
|
52
52
|
},
|
|
53
53
|
emits: {
|
|
54
|
-
intersect: side => true
|
|
54
|
+
intersect: (side, isIntersecting) => true
|
|
55
55
|
},
|
|
56
56
|
setup(props, _ref) {
|
|
57
57
|
let {
|
|
@@ -65,7 +65,7 @@ export const VInfiniteScrollIntersect = defineComponent({
|
|
|
65
65
|
rootMargin: props.rootMargin
|
|
66
66
|
} : undefined);
|
|
67
67
|
watch(isIntersecting, async val => {
|
|
68
|
-
|
|
68
|
+
emit('intersect', props.side, val);
|
|
69
69
|
});
|
|
70
70
|
useRender(() => _createVNode("div", {
|
|
71
71
|
"class": "v-infinite-scroll-intersect",
|
|
@@ -89,6 +89,7 @@ export const VInfiniteScroll = genericComponent()({
|
|
|
89
89
|
const startStatus = ref('ok');
|
|
90
90
|
const endStatus = ref('ok');
|
|
91
91
|
const margin = computed(() => convertToUnit(props.margin));
|
|
92
|
+
const isIntersecting = ref(false);
|
|
92
93
|
function setScrollAmount(amount) {
|
|
93
94
|
if (!rootEl.value) return;
|
|
94
95
|
const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft';
|
|
@@ -128,7 +129,14 @@ export const VInfiniteScroll = genericComponent()({
|
|
|
128
129
|
return side === 'start' ? startStatus.value : endStatus.value;
|
|
129
130
|
}
|
|
130
131
|
let previousScrollSize = 0;
|
|
131
|
-
function handleIntersect(side) {
|
|
132
|
+
function handleIntersect(side, _isIntersecting) {
|
|
133
|
+
isIntersecting.value = _isIntersecting;
|
|
134
|
+
if (isIntersecting.value) {
|
|
135
|
+
intersecting(side);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function intersecting(side) {
|
|
139
|
+
if (props.mode !== 'manual' && !isIntersecting.value) return;
|
|
132
140
|
const status = getStatus(side);
|
|
133
141
|
if (!rootEl.value || status === 'loading') return;
|
|
134
142
|
previousScrollSize = getScrollSize();
|
|
@@ -136,9 +144,21 @@ export const VInfiniteScroll = genericComponent()({
|
|
|
136
144
|
function done(status) {
|
|
137
145
|
setStatus(side, status);
|
|
138
146
|
nextTick(() => {
|
|
147
|
+
if (status === 'empty' || status === 'error') return;
|
|
139
148
|
if (status === 'ok' && side === 'start') {
|
|
140
149
|
setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount());
|
|
141
150
|
}
|
|
151
|
+
if (props.mode !== 'manual') {
|
|
152
|
+
nextTick(() => {
|
|
153
|
+
window.requestAnimationFrame(() => {
|
|
154
|
+
window.requestAnimationFrame(() => {
|
|
155
|
+
window.requestAnimationFrame(() => {
|
|
156
|
+
intersecting(side);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
}
|
|
142
162
|
});
|
|
143
163
|
}
|
|
144
164
|
emit('load', {
|
|
@@ -151,7 +171,7 @@ export const VInfiniteScroll = genericComponent()({
|
|
|
151
171
|
} = useLocale();
|
|
152
172
|
function renderSide(side, status) {
|
|
153
173
|
if (props.side !== side && props.side !== 'both') return;
|
|
154
|
-
const onClick = () =>
|
|
174
|
+
const onClick = () => intersecting(side);
|
|
155
175
|
const slotProps = {
|
|
156
176
|
side,
|
|
157
177
|
props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VInfiniteScroll.mjs","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","makeTagProps","computed","nextTick","onMounted","ref","watch","convertToUnit","defineComponent","genericComponent","propsFactory","useRender","makeVInfiniteScrollProps","color","String","direction","type","default","validator","v","includes","side","mode","margin","Number","loadMoreText","emptyText","VInfiniteScrollIntersect","name","props","required","rootRef","rootMargin","emits","intersect","setup","_ref","emit","intersectionRef","isIntersecting","entries","root","undefined","val","_createVNode","_createTextVNode","VInfiniteScroll","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","done","t","renderSide","onClick","slotProps","error","empty","loading","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode"],"sources":["../../../src/labs/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record<string, any>\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootRef: null,\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver(entries => {\n }, props.rootMargin ? {\n root: props.rootRef,\n rootMargin: props.rootMargin,\n } : undefined)\n\n watch(isIntersecting, async val => {\n if (val) emit('intersect', props.side)\n })\n\n useRender(() => (\n <div class=\"v-infinite-scroll-intersect\" ref={ intersectionRef }> </div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = ref<InfiniteScrollStatus>('ok')\n const endStatus = ref<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide) {\n const status = getStatus(side)\n if (!rootEl.value || status === 'loading') return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => handleIntersect(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <Tag\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { rootEl.value && hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { rootEl.value && hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </Tag>\n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VInfiniteScroll.mjs","names":["VBtn","VProgressCircular","makeDimensionProps","useDimension","useIntersectionObserver","useLocale","makeTagProps","computed","nextTick","onMounted","ref","watch","convertToUnit","defineComponent","genericComponent","propsFactory","useRender","makeVInfiniteScrollProps","color","String","direction","type","default","validator","v","includes","side","mode","margin","Number","loadMoreText","emptyText","VInfiniteScrollIntersect","name","props","required","rootRef","rootMargin","emits","intersect","isIntersecting","setup","_ref","emit","intersectionRef","entries","root","undefined","val","_createVNode","_createTextVNode","VInfiniteScroll","load","options","_ref2","slots","rootEl","startStatus","endStatus","setScrollAmount","amount","value","property","getScrollAmount","getScrollSize","getContainerSize","setStatus","status","getStatus","previousScrollSize","handleIntersect","_isIntersecting","intersecting","done","window","requestAnimationFrame","t","renderSide","onClick","slotProps","error","empty","loading","dimensionStyles","Tag","tag","hasStartIntersect","hasEndIntersect","intersectMode"],"sources":["../../../src/labs/VInfiniteScroll/VInfiniteScroll.tsx"],"sourcesContent":["// Styles\nimport './VInfiniteScroll.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useLocale } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type InfiniteScrollSide = 'start' | 'end' | 'both'\nexport type InfiniteScrollStatus = 'ok' | 'empty' | 'loading' | 'error'\n\ntype InfiniteScrollSlot = {\n side: InfiniteScrollSide\n props: Record<string, any>\n}\n\ntype VInfiniteScrollSlots = {\n default: never\n loading: InfiniteScrollSlot\n error: InfiniteScrollSlot\n empty: InfiniteScrollSlot\n 'load-more': InfiniteScrollSlot\n}\n\nexport const makeVInfiniteScrollProps = propsFactory({\n color: String,\n direction: {\n type: String as PropType<'vertical' | 'horizontal'>,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n side: {\n type: String as PropType<InfiniteScrollSide>,\n default: 'end',\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n },\n mode: {\n type: String as PropType<'intersect' | 'manual'>,\n default: 'intersect',\n validator: (v: any) => ['intersect', 'manual'].includes(v),\n },\n margin: [Number, String],\n loadMoreText: {\n type: String,\n default: '$vuetify.infiniteScroll.loadMore',\n },\n emptyText: {\n type: String,\n default: '$vuetify.infiniteScroll.empty',\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n}, 'VInfiniteScroll')\n\nexport const VInfiniteScrollIntersect = defineComponent({\n name: 'VInfiniteScrollIntersect',\n\n props: {\n side: {\n type: String as PropType<InfiniteScrollSide>,\n required: true,\n },\n rootRef: null,\n rootMargin: String,\n },\n\n emits: {\n intersect: (side: InfiniteScrollSide, isIntersecting: boolean) => true,\n },\n\n setup (props, { emit }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver(entries => {\n }, props.rootMargin ? {\n root: props.rootRef,\n rootMargin: props.rootMargin,\n } : undefined)\n\n watch(isIntersecting, async val => {\n emit('intersect', props.side, val)\n })\n\n useRender(() => (\n <div class=\"v-infinite-scroll-intersect\" ref={ intersectionRef }> </div>\n ))\n\n return {}\n },\n})\n\nexport const VInfiniteScroll = genericComponent<VInfiniteScrollSlots>()({\n name: 'VInfiniteScroll',\n\n props: makeVInfiniteScrollProps(),\n\n emits: {\n load: (options: { side: InfiniteScrollSide, done: (status: InfiniteScrollStatus) => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n const rootEl = ref<HTMLDivElement>()\n const startStatus = ref<InfiniteScrollStatus>('ok')\n const endStatus = ref<InfiniteScrollStatus>('ok')\n const margin = computed(() => convertToUnit(props.margin))\n const isIntersecting = ref(false)\n\n function setScrollAmount (amount: number) {\n if (!rootEl.value) return\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n rootEl.value[property] = amount\n }\n\n function getScrollAmount () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollTop' : 'scrollLeft'\n return rootEl.value[property]\n }\n\n function getScrollSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'scrollHeight' : 'scrollWidth'\n return rootEl.value[property]\n }\n\n function getContainerSize () {\n if (!rootEl.value) return 0\n\n const property = props.direction === 'vertical' ? 'clientHeight' : 'clientWidth'\n return rootEl.value[property]\n }\n\n onMounted(() => {\n if (!rootEl.value) return\n\n if (props.side === 'start') {\n setScrollAmount(getScrollSize())\n } else if (props.side === 'both') {\n setScrollAmount(getScrollSize() / 2 - getContainerSize() / 2)\n }\n })\n\n function setStatus (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (side === 'start') {\n startStatus.value = status\n } else if (side === 'end') {\n endStatus.value = status\n }\n }\n\n function getStatus (side: string) {\n return side === 'start' ? startStatus.value : endStatus.value\n }\n\n let previousScrollSize = 0\n function handleIntersect (side: InfiniteScrollSide, _isIntersecting: boolean) {\n isIntersecting.value = _isIntersecting\n if (isIntersecting.value) {\n intersecting(side)\n }\n }\n\n function intersecting (side: InfiniteScrollSide) {\n if (props.mode !== 'manual' && !isIntersecting.value) return\n\n const status = getStatus(side)\n if (!rootEl.value || status === 'loading') return\n\n previousScrollSize = getScrollSize()\n setStatus(side, 'loading')\n\n function done (status: InfiniteScrollStatus) {\n setStatus(side, status)\n\n nextTick(() => {\n if (status === 'empty' || status === 'error') return\n\n if (status === 'ok' && side === 'start') {\n setScrollAmount(getScrollSize() - previousScrollSize + getScrollAmount())\n }\n if (props.mode !== 'manual') {\n nextTick(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n intersecting(side)\n })\n })\n })\n })\n }\n })\n }\n\n emit('load', { side, done })\n }\n\n const { t } = useLocale()\n\n function renderSide (side: InfiniteScrollSide, status: InfiniteScrollStatus) {\n if (props.side !== side && props.side !== 'both') return\n\n const onClick = () => intersecting(side)\n const slotProps = { side, props: { onClick, color: props.color } }\n\n if (status === 'error') return slots.error?.(slotProps)\n\n if (status === 'empty') return slots.empty?.(slotProps) ?? <div>{ t(props.emptyText) }</div>\n\n if (props.mode === 'manual') {\n if (status === 'loading') {\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n return slots['load-more']?.(slotProps) ?? (\n <VBtn variant=\"outlined\" color={ props.color } onClick={ onClick }>\n { t(props.loadMoreText) }\n </VBtn>\n )\n }\n\n return slots.loading?.(slotProps) ?? (\n <VProgressCircular indeterminate color={ props.color } />\n )\n }\n\n const { dimensionStyles } = useDimension(props)\n\n useRender(() => {\n const Tag = props.tag\n const hasStartIntersect = props.side === 'start' || props.side === 'both'\n const hasEndIntersect = props.side === 'end' || props.side === 'both'\n const intersectMode = props.mode === 'intersect'\n\n return (\n <Tag\n ref={ rootEl }\n class={[\n 'v-infinite-scroll',\n `v-infinite-scroll--${props.direction}`,\n {\n 'v-infinite-scroll--start': hasStartIntersect,\n 'v-infinite-scroll--end': hasEndIntersect,\n },\n ]}\n style={ dimensionStyles.value }\n >\n <div class=\"v-infinite-scroll__side\">\n { renderSide('start', startStatus.value) }\n </div>\n\n { rootEl.value && hasStartIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"start\"\n side=\"start\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n { slots.default?.() }\n\n { rootEl.value && hasEndIntersect && intersectMode && (\n <VInfiniteScrollIntersect\n key=\"end\"\n side=\"end\"\n onIntersect={ handleIntersect }\n rootRef={ rootEl.value }\n rootMargin={ margin.value }\n />\n )}\n\n <div class=\"v-infinite-scroll__side\">\n { renderSide('end', endStatus.value) }\n </div>\n </Tag>\n )\n })\n },\n})\n\nexport type VInfiniteScroll = InstanceType<typeof VInfiniteScroll>\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@
|
|
1
|
+
@use '../../styles/settings';
|
|
2
2
|
|
|
3
|
-
$picker-border-radius:
|
|
3
|
+
$picker-border-radius: settings.$border-radius-root !default;
|
|
4
4
|
$picker-title-padding: 16px !default;
|
|
5
5
|
$picker-inactive-btn-opacity: .6 !default;
|
|
6
6
|
$picker-active-btn-opacity: 1 !default;
|