@vuetify/nightly 3.8.10-dev.2025-06-18 → 3.8.10-master.2025-06-18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -54
- package/dist/json/attributes.json +1259 -1655
- package/dist/json/importMap-labs.json +22 -26
- package/dist/json/importMap.json +160 -160
- package/dist/json/tags.json +2 -106
- package/dist/json/web-types.json +2705 -4334
- package/dist/vuetify-labs.cjs +180 -750
- package/dist/vuetify-labs.css +4655 -4700
- package/dist/vuetify-labs.d.ts +3083 -10404
- package/dist/vuetify-labs.esm.js +181 -751
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +180 -750
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +166 -478
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3324 -3369
- package/dist/vuetify.d.ts +2088 -2790
- package/dist/vuetify.esm.js +167 -479
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +166 -478
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1232 -1254
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +1 -6
- package/lib/components/VAlert/VAlert.d.ts +0 -35
- package/lib/components/VAlert/VAlert.js +10 -15
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +1 -7
- package/lib/components/VAppBar/VAppBar.d.ts +3 -15
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +10 -20
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +110 -175
- package/lib/components/VAutocomplete/VAutocomplete.js +3 -21
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.d.ts +0 -60
- package/lib/components/VBadge/VBadge.js +2 -7
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBtn/VBtn.d.ts +10 -20
- package/lib/components/VBtnGroup/VBtnGroup.css +7 -30
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +32 -58
- package/lib/components/VBtnGroup/VBtnGroup.js +3 -7
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +17 -44
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +0 -25
- package/lib/components/VCard/VCard.d.ts +10 -20
- package/lib/components/VCheckbox/VCheckbox.d.ts +13 -23
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +10 -20
- package/lib/components/VChip/VChip.d.ts +10 -20
- package/lib/components/VChipGroup/VChipGroup.d.ts +0 -10
- package/lib/components/VCombobox/VCombobox.d.ts +110 -175
- package/lib/components/VCombobox/VCombobox.js +3 -22
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +0 -60
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +0 -13
- package/lib/components/VDataTable/VDataTableHeaders.js +2 -4
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +0 -42
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +0 -42
- package/lib/components/VDatePicker/VDatePicker.d.ts +5 -80
- package/lib/components/VDatePicker/VDatePicker.js +4 -10
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +0 -10
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +10 -20
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +10 -20
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +10 -20
- package/lib/components/VFab/VFab.d.ts +10 -20
- package/lib/components/VField/VField.d.ts +3 -3
- package/lib/components/VFileInput/VFileInput.d.ts +15 -15
- package/lib/components/VInfiniteScroll/VInfiniteScroll.d.ts +3 -9
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +0 -29
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VInput/VInput.d.ts +4 -4
- package/lib/components/VKbd/VKbd.css +2 -13
- package/lib/components/VKbd/VKbd.sass +1 -2
- package/lib/components/VKbd/_variables.scss +1 -12
- package/lib/components/VKbd/index.d.ts +95 -1
- package/lib/components/VKbd/index.js +4 -1
- package/lib/components/VKbd/index.js.map +1 -1
- package/lib/components/VList/VList.d.ts +0 -13
- package/lib/components/VList/VList.js +1 -4
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +10 -28
- package/lib/components/VList/VListItem.js +3 -7
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/list.d.ts +2 -9
- package/lib/components/VList/list.js +0 -7
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VMenu/VMenu.d.ts +0 -13
- package/lib/components/VMenu/VMenu.js +1 -2
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +89 -114
- package/lib/components/VNumberInput/VNumberInput.js +20 -43
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +1 -2
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VRadio/VRadio.d.ts +10 -20
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +13 -23
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +118 -204
- package/lib/components/VSelect/VSelect.js +3 -21
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +10 -20
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +14 -28
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +0 -10
- package/lib/components/VSlideGroup/VSlideGroup.js +1 -2
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.d.ts +3 -3
- package/lib/components/VSlider/VSliderThumb.d.ts +10 -20
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +0 -13
- package/lib/components/VStepper/VStepperItem.d.ts +14 -28
- package/lib/components/VSwitch/VSwitch.d.ts +13 -23
- package/lib/components/VTable/VTable.css +0 -6
- package/lib/components/VTable/VTable.d.ts +24 -55
- package/lib/components/VTable/VTable.js +2 -9
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +0 -14
- package/lib/components/VTable/_variables.scss +0 -1
- package/lib/components/VTabs/VTab.d.ts +28 -56
- package/lib/components/VTabs/VTabs.d.ts +0 -10
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/components/VToolbar/VToolbar.d.ts +3 -15
- package/lib/components/VToolbar/VToolbar.js +3 -6
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/calendar.d.ts +0 -5
- package/lib/composables/calendar.js +1 -2
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +3 -3
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -1
- package/lib/composables/date/adapters/vuetify.js +4 -4
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +3 -3
- package/lib/composables/date/index.d.ts +0 -1
- package/lib/composables/date/index.js +0 -1
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/filter.js +0 -3
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/locale.d.ts +1 -5
- package/lib/composables/locale.js.map +1 -1
- package/lib/composables/theme.d.ts +1 -6
- package/lib/composables/theme.js +29 -97
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +1 -6
- package/lib/composables/virtual.js.map +1 -1
- package/lib/directives/ripple/index.d.ts +1 -2
- package/lib/directives/ripple/index.js +7 -12
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.d.ts +3 -4
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +67 -86
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +0 -10
- package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +87 -97
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +10 -20
- package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
- package/lib/labs/VIconBtn/VIconBtn.js +11 -7
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +10 -20
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +10 -20
- package/lib/labs/VTreeview/VTreeview.d.ts +38 -51
- package/lib/labs/VTreeview/VTreeview.js +1 -1
- package/lib/labs/VTreeview/VTreeview.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.d.ts +0 -35
- package/lib/labs/VTreeview/VTreeviewChildren.js +2 -19
- package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +10 -20
- package/lib/labs/components.d.ts +0 -1
- package/lib/labs/components.js +0 -1
- package/lib/labs/components.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +3 -4
- package/lib/locale/adapters/vue-i18n.js +1 -6
- package/lib/locale/adapters/vue-i18n.js.map +1 -1
- package/lib/locale/adapters/vuetify.js +1 -7
- package/lib/locale/adapters/vuetify.js.map +1 -1
- package/lib/util/globals.d.ts +0 -1
- package/lib/util/globals.js +0 -1
- package/lib/util/globals.js.map +1 -1
- package/lib/util/helpers.d.ts +1 -2
- package/lib/util/helpers.js +7 -12
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -3
- package/lib/components/VKbd/VKbd.d.ts +0 -221
- package/lib/components/VKbd/VKbd.js +0 -55
- package/lib/components/VKbd/VKbd.js.map +0 -1
- package/lib/composables/date/adapters/string.d.ts +0 -54
- package/lib/composables/date/adapters/string.js +0 -153
- package/lib/composables/date/adapters/string.js.map +0 -1
- package/lib/composables/iconSizes.d.ts +0 -28
- package/lib/composables/iconSizes.js +0 -23
- package/lib/composables/iconSizes.js.map +0 -1
- package/lib/composables/mask.d.ts +0 -38
- package/lib/composables/mask.js +0 -183
- package/lib/composables/mask.js.map +0 -1
- package/lib/labs/VMaskInput/VMaskInput.d.ts +0 -6993
- package/lib/labs/VMaskInput/VMaskInput.js +0 -67
- package/lib/labs/VMaskInput/VMaskInput.js.map +0 -1
- package/lib/labs/VMaskInput/index.d.ts +0 -1
- package/lib/labs/VMaskInput/index.js +0 -2
- package/lib/labs/VMaskInput/index.js.map +0 -1
@@ -36,7 +36,6 @@ export declare const makeVTreeviewProps: <Defaults extends {
|
|
36
36
|
activeColor?: unknown;
|
37
37
|
slim?: unknown;
|
38
38
|
activeClass?: unknown;
|
39
|
-
filterable?: unknown;
|
40
39
|
activatable?: unknown;
|
41
40
|
selectable?: unknown;
|
42
41
|
activeStrategy?: unknown;
|
@@ -48,13 +47,13 @@ export declare const makeVTreeviewProps: <Defaults extends {
|
|
48
47
|
itemProps?: unknown;
|
49
48
|
'onClick:open'?: unknown;
|
50
49
|
'onClick:select'?: unknown;
|
50
|
+
loadChildren?: unknown;
|
51
|
+
loadingIcon?: unknown;
|
51
52
|
openOnClick?: unknown;
|
53
|
+
indeterminateIcon?: unknown;
|
52
54
|
falseIcon?: unknown;
|
53
55
|
trueIcon?: unknown;
|
54
|
-
indeterminateIcon?: unknown;
|
55
|
-
loadingIcon?: unknown;
|
56
56
|
selectedColor?: unknown;
|
57
|
-
loadChildren?: unknown;
|
58
57
|
customFilter?: unknown;
|
59
58
|
customKeyFilter?: unknown;
|
60
59
|
filterKeys?: unknown;
|
@@ -282,10 +281,6 @@ export declare const makeVTreeviewProps: <Defaults extends {
|
|
282
281
|
type: import("vue").PropType<unknown extends Defaults["activeClass"] ? string : string | Defaults["activeClass"]>;
|
283
282
|
default: unknown extends Defaults["activeClass"] ? string : string | Defaults["activeClass"];
|
284
283
|
};
|
285
|
-
filterable: unknown extends Defaults["filterable"] ? BooleanConstructor : {
|
286
|
-
type: import("vue").PropType<unknown extends Defaults["filterable"] ? boolean : boolean | Defaults["filterable"]>;
|
287
|
-
default: unknown extends Defaults["filterable"] ? boolean : boolean | Defaults["filterable"];
|
288
|
-
};
|
289
284
|
activatable: unknown extends Defaults["activatable"] ? BooleanConstructor : {
|
290
285
|
type: import("vue").PropType<unknown extends Defaults["activatable"] ? boolean : boolean | Defaults["activatable"]>;
|
291
286
|
default: unknown extends Defaults["activatable"] ? boolean : boolean | Defaults["activatable"];
|
@@ -400,6 +395,20 @@ export declare const makeVTreeviewProps: <Defaults extends {
|
|
400
395
|
path: unknown[];
|
401
396
|
}) => void) | Defaults["onClick:select"];
|
402
397
|
};
|
398
|
+
loadChildren: unknown extends Defaults["loadChildren"] ? import("vue").PropType<(item: unknown) => Promise<void>> : {
|
399
|
+
type: import("vue").PropType<unknown extends Defaults["loadChildren"] ? (item: unknown) => Promise<void> : ((item: unknown) => Promise<void>) | Defaults["loadChildren"]>;
|
400
|
+
default: unknown extends Defaults["loadChildren"] ? (item: unknown) => Promise<void> : ((item: unknown) => Promise<void>) | Defaults["loadChildren"];
|
401
|
+
};
|
402
|
+
loadingIcon: unknown extends Defaults["loadingIcon"] ? {
|
403
|
+
type: StringConstructor;
|
404
|
+
default: string;
|
405
|
+
} : Omit<{
|
406
|
+
type: StringConstructor;
|
407
|
+
default: string;
|
408
|
+
}, "type" | "default"> & {
|
409
|
+
type: import("vue").PropType<unknown extends Defaults["loadingIcon"] ? string : string | Defaults["loadingIcon"]>;
|
410
|
+
default: unknown extends Defaults["loadingIcon"] ? string : string | Defaults["loadingIcon"];
|
411
|
+
};
|
403
412
|
openOnClick: unknown extends Defaults["openOnClick"] ? {
|
404
413
|
type: BooleanConstructor;
|
405
414
|
default: undefined;
|
@@ -410,14 +419,6 @@ export declare const makeVTreeviewProps: <Defaults extends {
|
|
410
419
|
type: import("vue").PropType<unknown extends Defaults["openOnClick"] ? boolean : boolean | Defaults["openOnClick"]>;
|
411
420
|
default: unknown extends Defaults["openOnClick"] ? boolean : boolean | Defaults["openOnClick"];
|
412
421
|
};
|
413
|
-
falseIcon: unknown extends Defaults["falseIcon"] ? import("vue").PropType<import("../../composables/icons.js").IconValue> : {
|
414
|
-
type: import("vue").PropType<unknown extends Defaults["falseIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["falseIcon"]>;
|
415
|
-
default: unknown extends Defaults["falseIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["falseIcon"];
|
416
|
-
};
|
417
|
-
trueIcon: unknown extends Defaults["trueIcon"] ? import("vue").PropType<import("../../composables/icons.js").IconValue> : {
|
418
|
-
type: import("vue").PropType<unknown extends Defaults["trueIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["trueIcon"]>;
|
419
|
-
default: unknown extends Defaults["trueIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["trueIcon"];
|
420
|
-
};
|
421
422
|
indeterminateIcon: unknown extends Defaults["indeterminateIcon"] ? {
|
422
423
|
type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
423
424
|
default: string;
|
@@ -428,24 +429,18 @@ export declare const makeVTreeviewProps: <Defaults extends {
|
|
428
429
|
type: import("vue").PropType<unknown extends Defaults["indeterminateIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["indeterminateIcon"]>;
|
429
430
|
default: unknown extends Defaults["indeterminateIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["indeterminateIcon"];
|
430
431
|
};
|
431
|
-
|
432
|
-
type:
|
433
|
-
default:
|
434
|
-
}
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
type: import("vue").PropType<unknown extends Defaults["loadingIcon"] ? string : string | Defaults["loadingIcon"]>;
|
439
|
-
default: unknown extends Defaults["loadingIcon"] ? string : string | Defaults["loadingIcon"];
|
432
|
+
falseIcon: unknown extends Defaults["falseIcon"] ? import("vue").PropType<import("../../composables/icons.js").IconValue> : {
|
433
|
+
type: import("vue").PropType<unknown extends Defaults["falseIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["falseIcon"]>;
|
434
|
+
default: unknown extends Defaults["falseIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["falseIcon"];
|
435
|
+
};
|
436
|
+
trueIcon: unknown extends Defaults["trueIcon"] ? import("vue").PropType<import("../../composables/icons.js").IconValue> : {
|
437
|
+
type: import("vue").PropType<unknown extends Defaults["trueIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["trueIcon"]>;
|
438
|
+
default: unknown extends Defaults["trueIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["trueIcon"];
|
440
439
|
};
|
441
440
|
selectedColor: unknown extends Defaults["selectedColor"] ? StringConstructor : {
|
442
441
|
type: import("vue").PropType<unknown extends Defaults["selectedColor"] ? string : string | Defaults["selectedColor"]>;
|
443
442
|
default: unknown extends Defaults["selectedColor"] ? string : string | Defaults["selectedColor"];
|
444
443
|
};
|
445
|
-
loadChildren: unknown extends Defaults["loadChildren"] ? import("vue").PropType<(item: unknown) => Promise<void>> : {
|
446
|
-
type: import("vue").PropType<unknown extends Defaults["loadChildren"] ? (item: unknown) => Promise<void> : ((item: unknown) => Promise<void>) | Defaults["loadChildren"]>;
|
447
|
-
default: unknown extends Defaults["loadChildren"] ? (item: unknown) => Promise<void> : ((item: unknown) => Promise<void>) | Defaults["loadChildren"];
|
448
|
-
};
|
449
444
|
customFilter: unknown extends Defaults["customFilter"] ? import("vue").PropType<import("../../composables/filter.js").FilterFunction> : {
|
450
445
|
type: import("vue").PropType<unknown extends Defaults["customFilter"] ? import("../../composables/filter.js").FilterFunction : import("../../composables/filter.js").FilterFunction | Defaults["customFilter"]>;
|
451
446
|
default: unknown extends Defaults["customFilter"] ? import("../../composables/filter.js").FilterFunction : import("../../composables/filter.js").FilterFunction | Defaults["customFilter"];
|
@@ -510,7 +505,6 @@ export declare const VTreeview: {
|
|
510
505
|
tile: boolean;
|
511
506
|
slim: boolean;
|
512
507
|
indeterminateIcon: import("../../composables/icons.js").IconValue;
|
513
|
-
filterable: boolean;
|
514
508
|
activatable: boolean;
|
515
509
|
selectable: boolean;
|
516
510
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
@@ -612,7 +606,6 @@ export declare const VTreeview: {
|
|
612
606
|
slim: boolean;
|
613
607
|
openOnClick: boolean;
|
614
608
|
indeterminateIcon: import("../../composables/icons.js").IconValue;
|
615
|
-
filterable: boolean;
|
616
609
|
activatable: boolean;
|
617
610
|
selectable: boolean;
|
618
611
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
@@ -674,7 +667,6 @@ export declare const VTreeview: {
|
|
674
667
|
tile: boolean;
|
675
668
|
slim: boolean;
|
676
669
|
indeterminateIcon: import("../../composables/icons.js").IconValue;
|
677
|
-
filterable: boolean;
|
678
670
|
activatable: boolean;
|
679
671
|
selectable: boolean;
|
680
672
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
@@ -761,7 +753,6 @@ export declare const VTreeview: {
|
|
761
753
|
slim: boolean;
|
762
754
|
openOnClick: boolean;
|
763
755
|
indeterminateIcon: import("../../composables/icons.js").IconValue;
|
764
|
-
filterable: boolean;
|
765
756
|
activatable: boolean;
|
766
757
|
selectable: boolean;
|
767
758
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
@@ -794,7 +785,6 @@ export declare const VTreeview: {
|
|
794
785
|
tile: boolean;
|
795
786
|
slim: boolean;
|
796
787
|
indeterminateIcon: import("../../composables/icons.js").IconValue;
|
797
|
-
filterable: boolean;
|
798
788
|
activatable: boolean;
|
799
789
|
selectable: boolean;
|
800
790
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
@@ -896,7 +886,6 @@ export declare const VTreeview: {
|
|
896
886
|
slim: boolean;
|
897
887
|
openOnClick: boolean;
|
898
888
|
indeterminateIcon: import("../../composables/icons.js").IconValue;
|
899
|
-
filterable: boolean;
|
900
889
|
activatable: boolean;
|
901
890
|
selectable: boolean;
|
902
891
|
collapseIcon: import("../../composables/icons.js").IconValue;
|
@@ -1011,7 +1000,6 @@ export declare const VTreeview: {
|
|
1011
1000
|
default: boolean;
|
1012
1001
|
};
|
1013
1002
|
activeClass: StringConstructor;
|
1014
|
-
filterable: BooleanConstructor;
|
1015
1003
|
activatable: BooleanConstructor;
|
1016
1004
|
selectable: BooleanConstructor;
|
1017
1005
|
activeStrategy: import("vue").PropType<import("../../composables/nested/nested.js").ActiveStrategyProp>;
|
@@ -1046,22 +1034,22 @@ export declare const VTreeview: {
|
|
1046
1034
|
value: boolean;
|
1047
1035
|
path: unknown[];
|
1048
1036
|
}) => void>;
|
1037
|
+
loadChildren: import("vue").PropType<(item: unknown) => Promise<void>>;
|
1038
|
+
loadingIcon: {
|
1039
|
+
type: StringConstructor;
|
1040
|
+
default: string;
|
1041
|
+
};
|
1049
1042
|
openOnClick: {
|
1050
1043
|
type: BooleanConstructor;
|
1051
1044
|
default: undefined;
|
1052
1045
|
};
|
1053
|
-
falseIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1054
|
-
trueIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1055
1046
|
indeterminateIcon: {
|
1056
1047
|
type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1057
1048
|
default: string;
|
1058
1049
|
};
|
1059
|
-
|
1060
|
-
|
1061
|
-
default: string;
|
1062
|
-
};
|
1050
|
+
falseIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1051
|
+
trueIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1063
1052
|
selectedColor: StringConstructor;
|
1064
|
-
loadChildren: import("vue").PropType<(item: unknown) => Promise<void>>;
|
1065
1053
|
customFilter: import("vue").PropType<import("../../composables/filter.js").FilterFunction>;
|
1066
1054
|
customKeyFilter: import("vue").PropType<import("../../composables/filter.js").FilterKeyFunctions>;
|
1067
1055
|
filterKeys: {
|
@@ -1152,7 +1140,6 @@ export declare const VTreeview: {
|
|
1152
1140
|
default: boolean;
|
1153
1141
|
};
|
1154
1142
|
activeClass: StringConstructor;
|
1155
|
-
filterable: BooleanConstructor;
|
1156
1143
|
activatable: BooleanConstructor;
|
1157
1144
|
selectable: BooleanConstructor;
|
1158
1145
|
activeStrategy: import("vue").PropType<import("../../composables/nested/nested.js").ActiveStrategyProp>;
|
@@ -1187,22 +1174,22 @@ export declare const VTreeview: {
|
|
1187
1174
|
value: boolean;
|
1188
1175
|
path: unknown[];
|
1189
1176
|
}) => void>;
|
1177
|
+
loadChildren: import("vue").PropType<(item: unknown) => Promise<void>>;
|
1178
|
+
loadingIcon: {
|
1179
|
+
type: StringConstructor;
|
1180
|
+
default: string;
|
1181
|
+
};
|
1190
1182
|
openOnClick: {
|
1191
1183
|
type: BooleanConstructor;
|
1192
1184
|
default: undefined;
|
1193
1185
|
};
|
1194
|
-
falseIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1195
|
-
trueIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1196
1186
|
indeterminateIcon: {
|
1197
1187
|
type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1198
1188
|
default: string;
|
1199
1189
|
};
|
1200
|
-
|
1201
|
-
|
1202
|
-
default: string;
|
1203
|
-
};
|
1190
|
+
falseIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1191
|
+
trueIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
1204
1192
|
selectedColor: StringConstructor;
|
1205
|
-
loadChildren: import("vue").PropType<(item: unknown) => Promise<void>>;
|
1206
1193
|
customFilter: import("vue").PropType<import("../../composables/filter.js").FilterFunction>;
|
1207
1194
|
customKeyFilter: import("vue").PropType<import("../../composables/filter.js").FilterKeyFunctions>;
|
1208
1195
|
filterKeys: {
|
@@ -23,7 +23,7 @@ export const makeVTreeviewProps = propsFactory({
|
|
23
23
|
...makeFilterProps({
|
24
24
|
filterKeys: ['title']
|
25
25
|
}),
|
26
|
-
...
|
26
|
+
...makeVTreeviewChildrenProps(),
|
27
27
|
...omit(makeVListProps({
|
28
28
|
collapseIcon: '$treeviewCollapse',
|
29
29
|
expandIcon: '$treeviewExpand',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VTreeview.js","names":["makeVTreeviewChildrenProps","VTreeviewChildren","makeVListProps","useListItems","VList","provideDefaults","makeFilterProps","useFilter","useProxiedModel","computed","provide","ref","toRaw","toRef","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","flatten","items","flat","arguments","length","undefined","item","push","children","makeVTreeviewProps","fluid","Boolean","openAll","search","String","filterKeys","collapseIcon","expandIcon","slim","modelValue","type","Array","default","VTreeview","name","props","emits","val","value","setup","_ref","slots","activeColor","baseColor","color","activated","model","_selected","selected","get","set","vListRef","opened","flatItems","filteredItems","visibleIds","getPath","Set","flatMap","itemVal","returnObject","raw","getChildren","map","id","arr","queue","slice","child","shift","ids","i","concat","VTreeviewGroup","VTreeviewItem","activeClass","density","disabled","lines","variant","listProps","filterProps","treeviewChildrenProps","_createVNode","_mergeProps","class","style","$event"],"sources":["../../../src/labs/VTreeview/VTreeview.tsx"],"sourcesContent":["// Components\nimport { makeVTreeviewChildrenProps, VTreeviewChildren } from './VTreeviewChildren'\nimport { makeVListProps, useListItems, VList } from '@/components/VList/VList'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, ref, toRaw, toRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListChildrenSlots } from '@/components/VList/VListChildren'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction flatten (items: ListItem[], flat: ListItem[] = []) {\n for (const item of items) {\n flat.push(item)\n if (item.children) flatten(item.children, flat)\n }\n return flat\n}\n\nexport const makeVTreeviewProps = propsFactory({\n fluid: Boolean,\n openAll: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...omit(makeVTreeviewChildrenProps(), ['index', 'path']),\n ...omit(makeVListProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n slim: true,\n }), ['itemType', 'nav', 'openStrategy']),\n modelValue: {\n type: Array,\n default: () => ([]),\n },\n}, 'VTreeview')\n\nexport const VTreeview = genericComponent<new <T>(\n props: {\n items?: T[]\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeview',\n\n props: makeVTreeviewProps(),\n\n emits: {\n 'update:opened': (val: unknown) => true,\n 'update:activated': (val: unknown) => true,\n 'update:selected': (val: unknown) => true,\n 'update:modelValue': (val: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const activated = useProxiedModel(props, 'activated')\n const model = useProxiedModel(props, 'modelValue')\n const _selected = useProxiedModel(props, 'selected', props.modelValue)\n\n const selected = computed({\n get: () => _selected.value,\n set (val) {\n _selected.value = val\n model.value = val\n },\n })\n\n const vListRef = ref<VList>()\n\n const opened = computed(() => props.openAll ? openAll(items.value) : props.opened)\n const flatItems = computed(() => flatten(items.value))\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, flatItems, search)\n const visibleIds = computed(() => {\n if (!search.value) return null\n const getPath = vListRef.value?.getPath\n if (!getPath) return null\n return new Set(filteredItems.value.flatMap(item => {\n const itemVal = props.returnObject ? item.raw : item.props.value\n return [\n ...getPath(itemVal),\n ...getChildren(itemVal),\n ].map(toRaw)\n }))\n })\n\n function getChildren (id: unknown) {\n const arr: unknown[] = []\n const queue = ((vListRef.value?.children.get(id) ?? []).slice())\n while (queue.length) {\n const child = queue.shift()\n if (!child) continue\n arr.push(child)\n queue.push(...((vListRef.value?.children.get(child) ?? []).slice()))\n }\n return arr\n }\n\n function openAll (items: InternalListItem<any>[]) {\n let ids: any[] = []\n\n for (const i of items) {\n if (!i.children) continue\n\n ids.push(props.returnObject ? toRaw(i.raw) : i.value)\n\n if (i.children) {\n ids = ids.concat(openAll(i.children))\n }\n }\n\n return ids\n }\n\n provide(VTreeviewSymbol, { visibleIds })\n\n provideDefaults({\n VTreeviewGroup: {\n activeColor,\n baseColor,\n color,\n collapseIcon: toRef(() => props.collapseIcon),\n expandIcon: toRef(() => props.expandIcon),\n },\n VTreeviewItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n variant: toRef(() => props.variant),\n },\n })\n\n useRender(() => {\n const listProps = VList.filterProps(props)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return (\n <VList\n ref={ vListRef }\n { ...listProps }\n class={[\n 'v-treeview',\n {\n 'v-treeview--fluid': props.fluid,\n },\n props.class,\n ]}\n open-strategy=\"multiple\"\n style={ props.style }\n opened={ opened.value }\n v-model:activated={ activated.value }\n v-model:selected={ selected.value }\n >\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n density={ props.density }\n returnObject={ props.returnObject }\n items={ items.value }\n v-slots={ slots }\n ></VTreeviewChildren>\n </VList>\n )\n })\n\n return { }\n },\n})\n\nexport type VTreeview = InstanceType<typeof VTreeview>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VTreeview.js","names":["makeVTreeviewChildrenProps","VTreeviewChildren","makeVListProps","useListItems","VList","provideDefaults","makeFilterProps","useFilter","useProxiedModel","computed","provide","ref","toRaw","toRef","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","flatten","items","flat","arguments","length","undefined","item","push","children","makeVTreeviewProps","fluid","Boolean","openAll","search","String","filterKeys","collapseIcon","expandIcon","slim","modelValue","type","Array","default","VTreeview","name","props","emits","val","value","setup","_ref","slots","activeColor","baseColor","color","activated","model","_selected","selected","get","set","vListRef","opened","flatItems","filteredItems","visibleIds","getPath","Set","flatMap","itemVal","returnObject","raw","getChildren","map","id","arr","queue","slice","child","shift","ids","i","concat","VTreeviewGroup","VTreeviewItem","activeClass","density","disabled","lines","variant","listProps","filterProps","treeviewChildrenProps","_createVNode","_mergeProps","class","style","$event"],"sources":["../../../src/labs/VTreeview/VTreeview.tsx"],"sourcesContent":["// Components\nimport { makeVTreeviewChildrenProps, VTreeviewChildren } from './VTreeviewChildren'\nimport { makeVListProps, useListItems, VList } from '@/components/VList/VList'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, ref, toRaw, toRef } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListChildrenSlots } from '@/components/VList/VListChildren'\nimport type { ListItem } from '@/composables/list-items'\nimport type { GenericProps } from '@/util'\n\nfunction flatten (items: ListItem[], flat: ListItem[] = []) {\n for (const item of items) {\n flat.push(item)\n if (item.children) flatten(item.children, flat)\n }\n return flat\n}\n\nexport const makeVTreeviewProps = propsFactory({\n fluid: Boolean,\n openAll: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeVTreeviewChildrenProps(),\n ...omit(makeVListProps({\n collapseIcon: '$treeviewCollapse',\n expandIcon: '$treeviewExpand',\n slim: true,\n }), ['itemType', 'nav', 'openStrategy']),\n modelValue: {\n type: Array,\n default: () => ([]),\n },\n}, 'VTreeview')\n\nexport const VTreeview = genericComponent<new <T>(\n props: {\n items?: T[]\n },\n slots: VListChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeview',\n\n props: makeVTreeviewProps(),\n\n emits: {\n 'update:opened': (val: unknown) => true,\n 'update:activated': (val: unknown) => true,\n 'update:selected': (val: unknown) => true,\n 'update:modelValue': (val: unknown) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { slots }) {\n const { items } = useListItems(props)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const activated = useProxiedModel(props, 'activated')\n const model = useProxiedModel(props, 'modelValue')\n const _selected = useProxiedModel(props, 'selected', props.modelValue)\n\n const selected = computed({\n get: () => _selected.value,\n set (val) {\n _selected.value = val\n model.value = val\n },\n })\n\n const vListRef = ref<VList>()\n\n const opened = computed(() => props.openAll ? openAll(items.value) : props.opened)\n const flatItems = computed(() => flatten(items.value))\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, flatItems, search)\n const visibleIds = computed(() => {\n if (!search.value) return null\n const getPath = vListRef.value?.getPath\n if (!getPath) return null\n return new Set(filteredItems.value.flatMap(item => {\n const itemVal = props.returnObject ? item.raw : item.props.value\n return [\n ...getPath(itemVal),\n ...getChildren(itemVal),\n ].map(toRaw)\n }))\n })\n\n function getChildren (id: unknown) {\n const arr: unknown[] = []\n const queue = ((vListRef.value?.children.get(id) ?? []).slice())\n while (queue.length) {\n const child = queue.shift()\n if (!child) continue\n arr.push(child)\n queue.push(...((vListRef.value?.children.get(child) ?? []).slice()))\n }\n return arr\n }\n\n function openAll (items: InternalListItem<any>[]) {\n let ids: any[] = []\n\n for (const i of items) {\n if (!i.children) continue\n\n ids.push(props.returnObject ? toRaw(i.raw) : i.value)\n\n if (i.children) {\n ids = ids.concat(openAll(i.children))\n }\n }\n\n return ids\n }\n\n provide(VTreeviewSymbol, { visibleIds })\n\n provideDefaults({\n VTreeviewGroup: {\n activeColor,\n baseColor,\n color,\n collapseIcon: toRef(() => props.collapseIcon),\n expandIcon: toRef(() => props.expandIcon),\n },\n VTreeviewItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n variant: toRef(() => props.variant),\n },\n })\n\n useRender(() => {\n const listProps = VList.filterProps(props)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return (\n <VList\n ref={ vListRef }\n { ...listProps }\n class={[\n 'v-treeview',\n {\n 'v-treeview--fluid': props.fluid,\n },\n props.class,\n ]}\n open-strategy=\"multiple\"\n style={ props.style }\n opened={ opened.value }\n v-model:activated={ activated.value }\n v-model:selected={ selected.value }\n >\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n density={ props.density }\n returnObject={ props.returnObject }\n items={ items.value }\n v-slots={ slots }\n ></VTreeviewChildren>\n </VList>\n )\n })\n\n return { }\n },\n})\n\nexport type VTreeview = InstanceType<typeof VTreeview>\n"],"mappings":"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","ignoreList":[]}
|
@@ -31,8 +31,6 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
|
|
31
31
|
selectable?: unknown;
|
32
32
|
selectedColor?: unknown;
|
33
33
|
selectStrategy?: unknown;
|
34
|
-
index?: unknown;
|
35
|
-
path?: unknown;
|
36
34
|
} = {}>(defaults?: Defaults | undefined) => {
|
37
35
|
density: unknown extends Defaults["density"] ? {
|
38
36
|
type: PropType<import("../../composables/density.js").Density>;
|
@@ -112,24 +110,9 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
|
|
112
110
|
type: PropType<unknown extends Defaults["selectStrategy"] ? SelectStrategyProp : SelectStrategyProp | Defaults["selectStrategy"]>;
|
113
111
|
default: unknown extends Defaults["selectStrategy"] ? SelectStrategyProp : NonNullable<SelectStrategyProp> | Defaults["selectStrategy"];
|
114
112
|
};
|
115
|
-
index: unknown extends Defaults["index"] ? NumberConstructor : {
|
116
|
-
type: PropType<unknown extends Defaults["index"] ? number : number | Defaults["index"]>;
|
117
|
-
default: unknown extends Defaults["index"] ? number : number | Defaults["index"];
|
118
|
-
};
|
119
|
-
path: unknown extends Defaults["path"] ? {
|
120
|
-
type: PropType<Number[]>;
|
121
|
-
default: () => never[];
|
122
|
-
} : Omit<{
|
123
|
-
type: PropType<Number[]>;
|
124
|
-
default: () => never[];
|
125
|
-
}, "type" | "default"> & {
|
126
|
-
type: PropType<unknown extends Defaults["path"] ? Number[] : Number[] | Defaults["path"]>;
|
127
|
-
default: unknown extends Defaults["path"] ? Number[] : Number[] | Defaults["path"];
|
128
|
-
};
|
129
113
|
};
|
130
114
|
export declare const VTreeviewChildren: {
|
131
115
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
132
|
-
path: Number[];
|
133
116
|
disabled: boolean;
|
134
117
|
returnObject: boolean;
|
135
118
|
density: import("../../composables/density.js").Density;
|
@@ -137,7 +120,6 @@ export declare const VTreeviewChildren: {
|
|
137
120
|
selectable: boolean;
|
138
121
|
loadingIcon: string;
|
139
122
|
} & {
|
140
|
-
index?: number | undefined;
|
141
123
|
selectStrategy?: SelectStrategyProp | undefined;
|
142
124
|
openOnClick?: boolean | undefined;
|
143
125
|
falseIcon?: IconValue | undefined;
|
@@ -147,7 +129,6 @@ export declare const VTreeviewChildren: {
|
|
147
129
|
}, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
148
130
|
[key: string]: any;
|
149
131
|
}>[] | JSX.Element)[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slots" | "v-slot:default" | "items" | "v-slot:prepend" | "v-slot:append" | "v-slot:title" | "v-slot:subtitle" | "v-slot:item">, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
150
|
-
path: Number[];
|
151
132
|
disabled: boolean;
|
152
133
|
returnObject: boolean;
|
153
134
|
density: import("../../composables/density.js").Density;
|
@@ -186,7 +167,6 @@ export declare const VTreeviewChildren: {
|
|
186
167
|
M: {};
|
187
168
|
Defaults: {};
|
188
169
|
}, {
|
189
|
-
path: Number[];
|
190
170
|
disabled: boolean;
|
191
171
|
returnObject: boolean;
|
192
172
|
density: import("../../composables/density.js").Density;
|
@@ -194,7 +174,6 @@ export declare const VTreeviewChildren: {
|
|
194
174
|
selectable: boolean;
|
195
175
|
loadingIcon: string;
|
196
176
|
} & {
|
197
|
-
index?: number | undefined;
|
198
177
|
selectStrategy?: SelectStrategyProp | undefined;
|
199
178
|
openOnClick?: boolean | undefined;
|
200
179
|
falseIcon?: IconValue | undefined;
|
@@ -204,7 +183,6 @@ export declare const VTreeviewChildren: {
|
|
204
183
|
}, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
205
184
|
[key: string]: any;
|
206
185
|
}>[] | JSX.Element)[] | undefined, {}, {}, {}, {
|
207
|
-
path: Number[];
|
208
186
|
disabled: boolean;
|
209
187
|
returnObject: boolean;
|
210
188
|
density: import("../../composables/density.js").Density;
|
@@ -217,7 +195,6 @@ export declare const VTreeviewChildren: {
|
|
217
195
|
__isTeleport?: never;
|
218
196
|
__isSuspense?: never;
|
219
197
|
} & import("vue").ComponentOptionsBase<{
|
220
|
-
path: Number[];
|
221
198
|
disabled: boolean;
|
222
199
|
returnObject: boolean;
|
223
200
|
density: import("../../composables/density.js").Density;
|
@@ -225,7 +202,6 @@ export declare const VTreeviewChildren: {
|
|
225
202
|
selectable: boolean;
|
226
203
|
loadingIcon: string;
|
227
204
|
} & {
|
228
|
-
index?: number | undefined;
|
229
205
|
selectStrategy?: SelectStrategyProp | undefined;
|
230
206
|
openOnClick?: boolean | undefined;
|
231
207
|
falseIcon?: IconValue | undefined;
|
@@ -235,7 +211,6 @@ export declare const VTreeviewChildren: {
|
|
235
211
|
}, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
236
212
|
[key: string]: any;
|
237
213
|
}>[] | JSX.Element)[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "v-slots" | "v-slot:default" | "items" | "v-slot:prepend" | "v-slot:append" | "v-slot:title" | "v-slot:subtitle" | "v-slot:item">, string, {
|
238
|
-
path: Number[];
|
239
214
|
disabled: boolean;
|
240
215
|
returnObject: boolean;
|
241
216
|
density: import("../../composables/density.js").Density;
|
@@ -295,11 +270,6 @@ export declare const VTreeviewChildren: {
|
|
295
270
|
selectable: BooleanConstructor;
|
296
271
|
selectedColor: StringConstructor;
|
297
272
|
selectStrategy: PropType<SelectStrategyProp>;
|
298
|
-
index: NumberConstructor;
|
299
|
-
path: {
|
300
|
-
type: PropType<Number[]>;
|
301
|
-
default: () => never[];
|
302
|
-
};
|
303
273
|
}, import("vue").ExtractPropTypes<{
|
304
274
|
density: {
|
305
275
|
type: PropType<import("../../composables/density.js").Density>;
|
@@ -327,9 +297,4 @@ export declare const VTreeviewChildren: {
|
|
327
297
|
selectable: BooleanConstructor;
|
328
298
|
selectedColor: StringConstructor;
|
329
299
|
selectStrategy: PropType<SelectStrategyProp>;
|
330
|
-
index: NumberConstructor;
|
331
|
-
path: {
|
332
|
-
type: PropType<Number[]>;
|
333
|
-
default: () => never[];
|
334
|
-
};
|
335
300
|
}>>;
|
@@ -29,11 +29,6 @@ export const makeVTreeviewChildrenProps = propsFactory({
|
|
29
29
|
selectable: Boolean,
|
30
30
|
selectedColor: String,
|
31
31
|
selectStrategy: [String, Function, Object],
|
32
|
-
index: Number,
|
33
|
-
path: {
|
34
|
-
type: Array,
|
35
|
-
default: () => []
|
36
|
-
},
|
37
32
|
...makeDensityProps()
|
38
33
|
}, 'VTreeviewChildren');
|
39
34
|
export const VTreeviewChildren = genericComponent()({
|
@@ -61,19 +56,12 @@ export const VTreeviewChildren = genericComponent()({
|
|
61
56
|
select(!isSelected);
|
62
57
|
}
|
63
58
|
}
|
64
|
-
return () => slots.default?.() ?? props.items?.map(
|
59
|
+
return () => slots.default?.() ?? props.items?.map(item => {
|
65
60
|
const {
|
66
61
|
children,
|
67
62
|
props: itemProps
|
68
63
|
} = item;
|
69
64
|
const loading = isLoading.has(item.value);
|
70
|
-
const treeItemProps = {
|
71
|
-
index,
|
72
|
-
depth: props.path?.length ?? 0,
|
73
|
-
isFirst: index === 0,
|
74
|
-
isLast: props.items ? props.items.length - 1 === index : false,
|
75
|
-
path: [...props.path, index]
|
76
|
-
};
|
77
65
|
const slotsWithItem = {
|
78
66
|
prepend: slotProps => _createElementVNode(_Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && _createElementVNode("div", null, [_createVNode(VCheckboxBtn, {
|
79
67
|
"key": item.value,
|
@@ -94,13 +82,11 @@ export const VTreeviewChildren = genericComponent()({
|
|
94
82
|
}
|
95
83
|
}, null)]), slots.prepend?.({
|
96
84
|
...slotProps,
|
97
|
-
...treeItemProps,
|
98
85
|
item: item.raw,
|
99
86
|
internalItem: item
|
100
87
|
})]),
|
101
88
|
append: slots.append ? slotProps => slots.append?.({
|
102
89
|
...slotProps,
|
103
|
-
...treeItemProps,
|
104
90
|
item: item.raw,
|
105
91
|
internalItem: item
|
106
92
|
}) : undefined,
|
@@ -116,10 +102,7 @@ export const VTreeviewChildren = genericComponent()({
|
|
116
102
|
}) : undefined
|
117
103
|
};
|
118
104
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
119
|
-
const treeviewChildrenProps = VTreeviewChildren.filterProps(
|
120
|
-
...props,
|
121
|
-
...treeItemProps
|
122
|
-
});
|
105
|
+
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
123
106
|
return children ? _createVNode(VTreeviewGroup, _mergeProps(treeviewGroupProps, {
|
124
107
|
"value": props.returnObject ? item.raw : treeviewGroupProps?.value,
|
125
108
|
"rawId": treeviewGroupProps?.value
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","makeDensityProps","IconValue","computed","reactive","toRaw","withModifiers","genericComponent","propsFactory","makeVTreeviewChildrenProps","disabled","Boolean","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","selectable","selectedColor","selectStrategy","Object","index","Number","path","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","treeItemProps","depth","isFirst","isLast","slotsWithItem","prepend","slotProps","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","e","key","stopPropagation","internalItem","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick"],"sources":["../../../src/labs/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, toRaw, withModifiers } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n disabled: Boolean,\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n index: Number,\n path: {\n type: Array as PropType<Number[]>,\n default: () => [],\n },\n ...makeDensityProps(),\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n\n const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\n }\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(!isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map((item, index) => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n\n const treeItemProps = {\n index,\n depth: props.path?.length ?? 0,\n isFirst: index === 0,\n isLast: props.items ? props.items.length - 1 === index : false,\n path: [...props.path, index],\n }\n\n const slotsWithItem = {\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <div>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onClick={ withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']) }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </div>\n )}\n\n { slots.prepend?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append\n ? slotProps => slots.append?.({ ...slotProps, ...treeItemProps, item: item.raw, internalItem: item })\n : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps({ ...props, ...treeItemProps })\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n rawId={ treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] as any : undefined,\n }\n\n return (\n <VTreeviewItem\n { ...listItemProps }\n value={ props.returnObject ? item.raw : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : (\n slots.item?.({ props: itemProps, item: item.raw, internalItem: item }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VTreeviewChildren.js","names":["VTreeviewGroup","VTreeviewItem","VCheckboxBtn","makeDensityProps","IconValue","computed","reactive","toRaw","withModifiers","genericComponent","propsFactory","makeVTreeviewChildrenProps","disabled","Boolean","loadChildren","Function","loadingIcon","type","String","default","items","Array","openOnClick","undefined","indeterminateIcon","falseIcon","trueIcon","returnObject","selectable","selectedColor","selectStrategy","Object","VTreeviewChildren","name","props","setup","_ref","slots","isLoading","Set","isClickOnOpen","checkChildren","item","length","children","add","value","raw","delete","selectItem","select","isSelected","map","itemProps","loading","has","slotsWithItem","prepend","slotProps","_createElementVNode","_Fragment","includes","_createVNode","density","isIndeterminate","e","key","stopPropagation","internalItem","append","title","subtitle","treeviewGroupProps","filterProps","treeviewChildrenProps","_mergeProps","activator","_ref2","activatorProps","listItemProps","onToggleExpand","onClick"],"sources":["../../../src/labs/VTreeview/VTreeviewChildren.tsx"],"sourcesContent":["// Components\nimport { VTreeviewGroup } from './VTreeviewGroup'\nimport { VTreeviewItem } from './VTreeviewItem'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, reactive, toRaw, withModifiers } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalListItem } from '@/components/VList/VList'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\nimport type { SelectStrategyProp } from '@/composables/nested/nested'\nimport type { GenericProps } from '@/util'\n\nexport type VTreeviewChildrenSlots<T> = {\n [K in keyof Omit<VListItemSlots, 'default'>]: VListItemSlots[K] & {\n item: T\n internalItem: InternalListItem<T>\n }\n} & {\n default: never\n item: {\n props: InternalListItem['props']\n item: T\n internalItem: InternalListItem<T>\n }\n}\n\nexport const makeVTreeviewChildrenProps = propsFactory({\n disabled: Boolean,\n loadChildren: Function as PropType<(item: unknown) => Promise<void>>,\n loadingIcon: {\n type: String,\n default: '$loading',\n },\n items: Array as PropType<readonly InternalListItem[]>,\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n indeterminateIcon: {\n type: IconValue,\n default: '$checkboxIndeterminate',\n },\n falseIcon: IconValue,\n trueIcon: IconValue,\n returnObject: Boolean,\n selectable: Boolean,\n selectedColor: String,\n selectStrategy: [String, Function, Object] as PropType<SelectStrategyProp>,\n\n ...makeDensityProps(),\n}, 'VTreeviewChildren')\n\nexport const VTreeviewChildren = genericComponent<new <T extends InternalListItem>(\n props: {\n items?: readonly T[]\n },\n slots: VTreeviewChildrenSlots<T>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VTreeviewChildren',\n\n props: makeVTreeviewChildrenProps(),\n\n setup (props, { slots }) {\n const isLoading = reactive(new Set<unknown>())\n\n const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable))\n\n async function checkChildren (item: InternalListItem) {\n try {\n if (!props.items?.length || !props.loadChildren) return\n\n if (item?.children?.length === 0) {\n isLoading.add(item.value)\n await props.loadChildren(item.raw)\n }\n } finally {\n isLoading.delete(item.value)\n }\n }\n\n function selectItem (select: (value: boolean) => void, isSelected: boolean) {\n if (props.selectable) {\n select(!isSelected)\n }\n }\n\n return () => slots.default?.() ?? props.items?.map(item => {\n const { children, props: itemProps } = item\n const loading = isLoading.has(item.value)\n const slotsWithItem = {\n prepend: slotProps => (\n <>\n { props.selectable && (!children || (children && !['leaf', 'single-leaf'].includes(props.selectStrategy as string))) && (\n <div>\n <VCheckboxBtn\n key={ item.value }\n modelValue={ slotProps.isSelected }\n disabled={ props.disabled }\n loading={ loading }\n color={ props.selectedColor }\n density={ props.density }\n indeterminate={ slotProps.isIndeterminate }\n indeterminateIcon={ props.indeterminateIcon }\n falseIcon={ props.falseIcon }\n trueIcon={ props.trueIcon }\n onClick={ withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']) }\n onKeydown={ (e: KeyboardEvent) => {\n if (!['Enter', 'Space'].includes(e.key)) return\n e.stopPropagation()\n selectItem(slotProps.select, slotProps.isSelected)\n }}\n />\n </div>\n )}\n\n { slots.prepend?.({ ...slotProps, item: item.raw, internalItem: item }) }\n </>\n ),\n append: slots.append ? slotProps => slots.append?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n title: slots.title ? slotProps => slots.title?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n subtitle: slots.subtitle ? slotProps => slots.subtitle?.({ ...slotProps, item: item.raw, internalItem: item }) : undefined,\n } satisfies VTreeviewItem['$props']['$children']\n\n const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps)\n const treeviewChildrenProps = VTreeviewChildren.filterProps(props)\n\n return children ? (\n <VTreeviewGroup\n { ...treeviewGroupProps }\n value={ props.returnObject ? item.raw : treeviewGroupProps?.value }\n rawId={ treeviewGroupProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => {\n const listItemProps = {\n ...itemProps,\n ...activatorProps,\n value: itemProps?.value,\n onToggleExpand: [() => checkChildren(item), activatorProps.onClick] as any,\n onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] as any : undefined,\n }\n\n return (\n <VTreeviewItem\n { ...listItemProps }\n value={ props.returnObject ? item.raw : itemProps.value }\n loading={ loading }\n v-slots={ slotsWithItem }\n />\n )\n },\n default: () => (\n <VTreeviewChildren\n { ...treeviewChildrenProps }\n items={ children }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n ),\n }}\n </VTreeviewGroup>\n ) : (\n slots.item?.({ props: itemProps, item: item.raw, internalItem: item }) ?? (\n <VTreeviewItem\n { ...itemProps }\n value={ props.returnObject ? toRaw(item.raw) : itemProps.value }\n v-slots={ slotsWithItem }\n />\n ))\n })\n },\n})\n"],"mappings":"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","ignoreList":[]}
|
@@ -241,18 +241,14 @@ export declare const makeVTreeviewItemProps: <Defaults extends {
|
|
241
241
|
default: boolean;
|
242
242
|
}, "type" | "default"> & {
|
243
243
|
type: import("vue").PropType<unknown extends Defaults["ripple"] ? boolean | {
|
244
|
-
class
|
245
|
-
keys?: number[];
|
244
|
+
class: string;
|
246
245
|
} | undefined : boolean | {
|
247
|
-
class
|
248
|
-
keys?: number[];
|
246
|
+
class: string;
|
249
247
|
} | Defaults["ripple"] | undefined>;
|
250
248
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
251
|
-
class
|
252
|
-
keys?: number[];
|
249
|
+
class: string;
|
253
250
|
} | undefined : NonNullable<boolean | {
|
254
|
-
class
|
255
|
-
keys?: number[];
|
251
|
+
class: string;
|
256
252
|
} | undefined> | Defaults["ripple"];
|
257
253
|
};
|
258
254
|
slim: unknown extends Defaults["slim"] ? {
|
@@ -320,8 +316,7 @@ export declare const VTreeviewItem: {
|
|
320
316
|
tile: boolean;
|
321
317
|
slim: boolean;
|
322
318
|
ripple: boolean | {
|
323
|
-
class
|
324
|
-
keys?: number[];
|
319
|
+
class: string;
|
325
320
|
} | undefined;
|
326
321
|
} & {
|
327
322
|
link?: boolean | undefined;
|
@@ -396,8 +391,7 @@ export declare const VTreeviewItem: {
|
|
396
391
|
tile: boolean;
|
397
392
|
slim: boolean;
|
398
393
|
ripple: boolean | {
|
399
|
-
class
|
400
|
-
keys?: number[];
|
394
|
+
class: string;
|
401
395
|
} | undefined;
|
402
396
|
subtitle: string | number | boolean;
|
403
397
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -426,8 +420,7 @@ export declare const VTreeviewItem: {
|
|
426
420
|
tile: boolean;
|
427
421
|
slim: boolean;
|
428
422
|
ripple: boolean | {
|
429
|
-
class
|
430
|
-
keys?: number[];
|
423
|
+
class: string;
|
431
424
|
} | undefined;
|
432
425
|
} & {
|
433
426
|
link?: boolean | undefined;
|
@@ -500,8 +493,7 @@ export declare const VTreeviewItem: {
|
|
500
493
|
tile: boolean;
|
501
494
|
slim: boolean;
|
502
495
|
ripple: boolean | {
|
503
|
-
class
|
504
|
-
keys?: number[];
|
496
|
+
class: string;
|
505
497
|
} | undefined;
|
506
498
|
subtitle: string | number | boolean;
|
507
499
|
}>;
|
@@ -521,8 +513,7 @@ export declare const VTreeviewItem: {
|
|
521
513
|
tile: boolean;
|
522
514
|
slim: boolean;
|
523
515
|
ripple: boolean | {
|
524
|
-
class
|
525
|
-
keys?: number[];
|
516
|
+
class: string;
|
526
517
|
} | undefined;
|
527
518
|
} & {
|
528
519
|
link?: boolean | undefined;
|
@@ -597,8 +588,7 @@ export declare const VTreeviewItem: {
|
|
597
588
|
tile: boolean;
|
598
589
|
slim: boolean;
|
599
590
|
ripple: boolean | {
|
600
|
-
class
|
601
|
-
keys?: number[];
|
591
|
+
class: string;
|
602
592
|
} | undefined;
|
603
593
|
subtitle: string | number | boolean;
|
604
594
|
}, {}, string, import("vue").SlotsType<Partial<{
|
package/lib/labs/components.d.ts
CHANGED
@@ -3,7 +3,6 @@ export * from './VColorInput/index.js';
|
|
3
3
|
export * from './VDateInput/index.js';
|
4
4
|
export * from './VFileUpload/index.js';
|
5
5
|
export * from './VIconBtn/index.js';
|
6
|
-
export * from './VMaskInput/index.js';
|
7
6
|
export * from './VPicker/index.js';
|
8
7
|
export * from './VStepperVertical/index.js';
|
9
8
|
export * from './VPullToRefresh/index.js';
|
package/lib/labs/components.js
CHANGED
@@ -3,7 +3,6 @@ export * from "./VColorInput/index.js";
|
|
3
3
|
export * from "./VDateInput/index.js";
|
4
4
|
export * from "./VFileUpload/index.js";
|
5
5
|
export * from "./VIconBtn/index.js";
|
6
|
-
export * from "./VMaskInput/index.js";
|
7
6
|
export * from "./VPicker/index.js";
|
8
7
|
export * from "./VStepperVertical/index.js";
|
9
8
|
export * from "./VPullToRefresh/index.js";
|