@vuetify/nightly 3.8.9-master.2025-06-14 → 3.8.10-dev.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 +46 -14
- package/dist/json/attributes.json +3541 -3137
- package/dist/json/importMap-labs.json +30 -26
- package/dist/json/importMap.json +174 -174
- package/dist/json/tags.json +108 -2
- package/dist/json/web-types.json +7295 -5648
- package/dist/vuetify-labs.cjs +795 -198
- package/dist/vuetify-labs.css +4855 -4806
- package/dist/vuetify-labs.d.ts +10430 -3099
- package/dist/vuetify-labs.esm.js +796 -199
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +795 -198
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +520 -183
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2398 -2349
- package/dist/vuetify.d.ts +2798 -2091
- package/dist/vuetify.esm.js +521 -184
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +520 -183
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1257 -1234
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +6 -1
- package/lib/components/VAlert/VAlert.d.ts +35 -0
- package/lib/components/VAlert/VAlert.js +15 -10
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +7 -1
- package/lib/components/VAppBar/VAppBar.d.ts +15 -3
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +175 -110
- package/lib/components/VAutocomplete/VAutocomplete.js +21 -3
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.d.ts +60 -0
- package/lib/components/VBadge/VBadge.js +7 -2
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.d.ts +20 -10
- package/lib/components/VBtn/VBtn.sass +3 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +32 -8
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
- package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +46 -18
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
- package/lib/components/VCard/VCard.d.ts +20 -10
- package/lib/components/VCheckbox/VCheckbox.d.ts +23 -13
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
- package/lib/components/VChip/VChip.d.ts +20 -10
- package/lib/components/VChipGroup/VChipGroup.d.ts +10 -0
- package/lib/components/VCombobox/VCombobox.d.ts +175 -110
- package/lib/components/VCombobox/VCombobox.js +22 -3
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +60 -0
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +13 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +4 -2
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +42 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +42 -0
- package/lib/components/VDatePicker/VDatePicker.d.ts +80 -5
- package/lib/components/VDatePicker/VDatePicker.js +10 -4
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
- package/lib/components/VFab/VFab.d.ts +20 -10
- 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 +9 -3
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js +29 -0
- package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
- package/lib/components/VInput/VInput.d.ts +4 -4
- package/lib/components/VKbd/VKbd.css +13 -2
- package/lib/components/VKbd/VKbd.d.ts +221 -0
- package/lib/components/VKbd/VKbd.js +55 -0
- package/lib/components/VKbd/VKbd.js.map +1 -0
- package/lib/components/VKbd/VKbd.sass +2 -1
- package/lib/components/VKbd/_variables.scss +12 -1
- package/lib/components/VKbd/index.d.ts +1 -95
- package/lib/components/VKbd/index.js +1 -4
- package/lib/components/VKbd/index.js.map +1 -1
- package/lib/components/VList/VList.d.ts +13 -0
- package/lib/components/VList/VList.js +4 -1
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListChildren.js +4 -3
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VList/VListGroup.d.ts +10 -0
- package/lib/components/VList/VListGroup.js +2 -2
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +28 -10
- package/lib/components/VList/VListItem.js +7 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/list.d.ts +9 -2
- package/lib/components/VList/list.js +7 -0
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VMenu/VMenu.d.ts +13 -0
- package/lib/components/VMenu/VMenu.js +2 -1
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +114 -89
- package/lib/components/VNumberInput/VNumberInput.js +43 -20
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +19 -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 +20 -10
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +23 -13
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +204 -118
- package/lib/components/VSelect/VSelect.js +21 -3
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +10 -0
- package/lib/components/VSlideGroup/VSlideGroup.js +2 -1
- 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 +20 -10
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +13 -0
- package/lib/components/VStepper/VStepperItem.d.ts +28 -14
- package/lib/components/VSwitch/VSwitch.d.ts +23 -13
- package/lib/components/VTable/VTable.css +6 -0
- package/lib/components/VTable/VTable.d.ts +55 -24
- package/lib/components/VTable/VTable.js +9 -2
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +14 -0
- package/lib/components/VTable/_variables.scss +1 -0
- package/lib/components/VTabs/VTab.d.ts +56 -28
- package/lib/components/VTabs/VTabs.d.ts +10 -0
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextField/VTextField.js +4 -4
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/components/VTextarea/VTextarea.js +4 -4
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VToolbar/VToolbar.d.ts +15 -3
- package/lib/components/VToolbar/VToolbar.js +6 -3
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/autofocus.d.ts +7 -0
- package/lib/composables/autofocus.js +10 -0
- package/lib/composables/autofocus.js.map +1 -0
- package/lib/composables/calendar.d.ts +5 -0
- package/lib/composables/calendar.js +2 -1
- 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/string.d.ts +54 -0
- package/lib/composables/date/adapters/string.js +153 -0
- package/lib/composables/date/adapters/string.js.map +1 -0
- 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 +1 -0
- package/lib/composables/date/index.js +1 -0
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/filter.js +3 -0
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/group.js +1 -0
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/iconSizes.d.ts +28 -0
- package/lib/composables/iconSizes.js +23 -0
- package/lib/composables/iconSizes.js.map +1 -0
- package/lib/composables/intersectionObserver.js +2 -2
- package/lib/composables/intersectionObserver.js.map +1 -1
- package/lib/composables/locale.d.ts +5 -1
- package/lib/composables/locale.js.map +1 -1
- package/lib/composables/mask.d.ts +38 -0
- package/lib/composables/mask.js +183 -0
- package/lib/composables/mask.js.map +1 -0
- package/lib/composables/selectLink.js +2 -2
- package/lib/composables/selectLink.js.map +1 -1
- package/lib/composables/theme.d.ts +6 -1
- package/lib/composables/theme.js +97 -29
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +6 -1
- package/lib/composables/virtual.js.map +1 -1
- package/lib/directives/ripple/index.d.ts +2 -1
- package/lib/directives/ripple/index.js +12 -7
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.d.ts +4 -3
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +92 -73
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +10 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +97 -87
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
- package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
- package/lib/labs/VIconBtn/VIconBtn.js +7 -11
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VMaskInput/VMaskInput.d.ts +6993 -0
- package/lib/labs/VMaskInput/VMaskInput.js +67 -0
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -0
- package/lib/labs/VMaskInput/index.d.ts +1 -0
- package/lib/labs/VMaskInput/index.js +2 -0
- package/lib/labs/VMaskInput/index.js.map +1 -0
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
- package/lib/labs/VTreeview/VTreeview.d.ts +51 -38
- package/lib/labs/VTreeview/VTreeview.js +1 -1
- package/lib/labs/VTreeview/VTreeview.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.d.ts +35 -0
- package/lib/labs/VTreeview/VTreeviewChildren.js +21 -3
- package/lib/labs/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/labs/VTreeview/VTreeviewGroup.d.ts +10 -0
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
- package/lib/labs/VTreeview/VTreeviewItem.js +1 -0
- package/lib/labs/VTreeview/VTreeviewItem.js.map +1 -1
- package/lib/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/labs/entry-bundler.d.ts +4 -3
- package/lib/locale/adapters/vue-i18n.js +6 -1
- package/lib/locale/adapters/vue-i18n.js.map +1 -1
- package/lib/locale/adapters/vuetify.js +7 -1
- package/lib/locale/adapters/vuetify.js.map +1 -1
- package/lib/util/globals.d.ts +1 -0
- package/lib/util/globals.js +1 -0
- package/lib/util/globals.js.map +1 -1
- package/lib/util/helpers.d.ts +2 -1
- package/lib/util/helpers.js +12 -7
- package/lib/util/helpers.js.map +1 -1
- package/package.json +9 -7
@@ -31,6 +31,8 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
|
|
31
31
|
selectable?: unknown;
|
32
32
|
selectedColor?: unknown;
|
33
33
|
selectStrategy?: unknown;
|
34
|
+
index?: unknown;
|
35
|
+
path?: unknown;
|
34
36
|
} = {}>(defaults?: Defaults | undefined) => {
|
35
37
|
density: unknown extends Defaults["density"] ? {
|
36
38
|
type: PropType<import("../../composables/density.js").Density>;
|
@@ -110,9 +112,24 @@ export declare const makeVTreeviewChildrenProps: <Defaults extends {
|
|
110
112
|
type: PropType<unknown extends Defaults["selectStrategy"] ? SelectStrategyProp : SelectStrategyProp | Defaults["selectStrategy"]>;
|
111
113
|
default: unknown extends Defaults["selectStrategy"] ? SelectStrategyProp : NonNullable<SelectStrategyProp> | Defaults["selectStrategy"];
|
112
114
|
};
|
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
|
+
};
|
113
129
|
};
|
114
130
|
export declare const VTreeviewChildren: {
|
115
131
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
132
|
+
path: Number[];
|
116
133
|
disabled: boolean;
|
117
134
|
returnObject: boolean;
|
118
135
|
density: import("../../composables/density.js").Density;
|
@@ -120,6 +137,7 @@ export declare const VTreeviewChildren: {
|
|
120
137
|
selectable: boolean;
|
121
138
|
loadingIcon: string;
|
122
139
|
} & {
|
140
|
+
index?: number | undefined;
|
123
141
|
selectStrategy?: SelectStrategyProp | undefined;
|
124
142
|
openOnClick?: boolean | undefined;
|
125
143
|
falseIcon?: IconValue | undefined;
|
@@ -129,6 +147,7 @@ export declare const VTreeviewChildren: {
|
|
129
147
|
}, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
130
148
|
[key: string]: any;
|
131
149
|
}>[] | 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[];
|
132
151
|
disabled: boolean;
|
133
152
|
returnObject: boolean;
|
134
153
|
density: import("../../composables/density.js").Density;
|
@@ -167,6 +186,7 @@ export declare const VTreeviewChildren: {
|
|
167
186
|
M: {};
|
168
187
|
Defaults: {};
|
169
188
|
}, {
|
189
|
+
path: Number[];
|
170
190
|
disabled: boolean;
|
171
191
|
returnObject: boolean;
|
172
192
|
density: import("../../composables/density.js").Density;
|
@@ -174,6 +194,7 @@ export declare const VTreeviewChildren: {
|
|
174
194
|
selectable: boolean;
|
175
195
|
loadingIcon: string;
|
176
196
|
} & {
|
197
|
+
index?: number | undefined;
|
177
198
|
selectStrategy?: SelectStrategyProp | undefined;
|
178
199
|
openOnClick?: boolean | undefined;
|
179
200
|
falseIcon?: IconValue | undefined;
|
@@ -183,6 +204,7 @@ export declare const VTreeviewChildren: {
|
|
183
204
|
}, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
184
205
|
[key: string]: any;
|
185
206
|
}>[] | JSX.Element)[] | undefined, {}, {}, {}, {
|
207
|
+
path: Number[];
|
186
208
|
disabled: boolean;
|
187
209
|
returnObject: boolean;
|
188
210
|
density: import("../../composables/density.js").Density;
|
@@ -195,6 +217,7 @@ export declare const VTreeviewChildren: {
|
|
195
217
|
__isTeleport?: never;
|
196
218
|
__isSuspense?: never;
|
197
219
|
} & import("vue").ComponentOptionsBase<{
|
220
|
+
path: Number[];
|
198
221
|
disabled: boolean;
|
199
222
|
returnObject: boolean;
|
200
223
|
density: import("../../composables/density.js").Density;
|
@@ -202,6 +225,7 @@ export declare const VTreeviewChildren: {
|
|
202
225
|
selectable: boolean;
|
203
226
|
loadingIcon: string;
|
204
227
|
} & {
|
228
|
+
index?: number | undefined;
|
205
229
|
selectStrategy?: SelectStrategyProp | undefined;
|
206
230
|
openOnClick?: boolean | undefined;
|
207
231
|
falseIcon?: IconValue | undefined;
|
@@ -211,6 +235,7 @@ export declare const VTreeviewChildren: {
|
|
211
235
|
}, () => (import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
212
236
|
[key: string]: any;
|
213
237
|
}>[] | 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[];
|
214
239
|
disabled: boolean;
|
215
240
|
returnObject: boolean;
|
216
241
|
density: import("../../composables/density.js").Density;
|
@@ -270,6 +295,11 @@ export declare const VTreeviewChildren: {
|
|
270
295
|
selectable: BooleanConstructor;
|
271
296
|
selectedColor: StringConstructor;
|
272
297
|
selectStrategy: PropType<SelectStrategyProp>;
|
298
|
+
index: NumberConstructor;
|
299
|
+
path: {
|
300
|
+
type: PropType<Number[]>;
|
301
|
+
default: () => never[];
|
302
|
+
};
|
273
303
|
}, import("vue").ExtractPropTypes<{
|
274
304
|
density: {
|
275
305
|
type: PropType<import("../../composables/density.js").Density>;
|
@@ -297,4 +327,9 @@ export declare const VTreeviewChildren: {
|
|
297
327
|
selectable: BooleanConstructor;
|
298
328
|
selectedColor: StringConstructor;
|
299
329
|
selectStrategy: PropType<SelectStrategyProp>;
|
330
|
+
index: NumberConstructor;
|
331
|
+
path: {
|
332
|
+
type: PropType<Number[]>;
|
333
|
+
default: () => never[];
|
334
|
+
};
|
300
335
|
}>>;
|
@@ -29,6 +29,11 @@ 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
|
+
},
|
32
37
|
...makeDensityProps()
|
33
38
|
}, 'VTreeviewChildren');
|
34
39
|
export const VTreeviewChildren = genericComponent()({
|
@@ -56,12 +61,19 @@ export const VTreeviewChildren = genericComponent()({
|
|
56
61
|
select(!isSelected);
|
57
62
|
}
|
58
63
|
}
|
59
|
-
return () => slots.default?.() ?? props.items?.map(item => {
|
64
|
+
return () => slots.default?.() ?? props.items?.map((item, index) => {
|
60
65
|
const {
|
61
66
|
children,
|
62
67
|
props: itemProps
|
63
68
|
} = item;
|
64
69
|
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
|
+
};
|
65
77
|
const slotsWithItem = {
|
66
78
|
prepend: slotProps => _createElementVNode(_Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && _createElementVNode("div", null, [_createVNode(VCheckboxBtn, {
|
67
79
|
"key": item.value,
|
@@ -82,11 +94,13 @@ export const VTreeviewChildren = genericComponent()({
|
|
82
94
|
}
|
83
95
|
}, null)]), slots.prepend?.({
|
84
96
|
...slotProps,
|
97
|
+
...treeItemProps,
|
85
98
|
item: item.raw,
|
86
99
|
internalItem: item
|
87
100
|
})]),
|
88
101
|
append: slots.append ? slotProps => slots.append?.({
|
89
102
|
...slotProps,
|
103
|
+
...treeItemProps,
|
90
104
|
item: item.raw,
|
91
105
|
internalItem: item
|
92
106
|
}) : undefined,
|
@@ -102,9 +116,13 @@ export const VTreeviewChildren = genericComponent()({
|
|
102
116
|
}) : undefined
|
103
117
|
};
|
104
118
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
105
|
-
const treeviewChildrenProps = VTreeviewChildren.filterProps(
|
119
|
+
const treeviewChildrenProps = VTreeviewChildren.filterProps({
|
120
|
+
...props,
|
121
|
+
...treeItemProps
|
122
|
+
});
|
106
123
|
return children ? _createVNode(VTreeviewGroup, _mergeProps(treeviewGroupProps, {
|
107
|
-
"value": props.returnObject ? item.raw : treeviewGroupProps?.value
|
124
|
+
"value": props.returnObject ? item.raw : treeviewGroupProps?.value,
|
125
|
+
"rawId": treeviewGroupProps?.value
|
108
126
|
}), {
|
109
127
|
activator: _ref2 => {
|
110
128
|
let {
|
@@ -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","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 >\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","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":[]}
|
@@ -11,6 +11,7 @@ export declare const makeVTreeviewGroupProps: <Defaults extends {
|
|
11
11
|
appendIcon?: unknown;
|
12
12
|
collapseIcon?: unknown;
|
13
13
|
expandIcon?: unknown;
|
14
|
+
rawId?: unknown;
|
14
15
|
fluid?: unknown;
|
15
16
|
} = {}>(defaults?: Defaults | undefined) => {
|
16
17
|
color: unknown extends Defaults["color"] ? StringConstructor : {
|
@@ -97,6 +98,10 @@ export declare const makeVTreeviewGroupProps: <Defaults extends {
|
|
97
98
|
type: import("vue").PropType<unknown extends Defaults["expandIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["expandIcon"]>;
|
98
99
|
default: unknown extends Defaults["expandIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["expandIcon"];
|
99
100
|
};
|
101
|
+
rawId: unknown extends Defaults["rawId"] ? (StringConstructor | NumberConstructor)[] : {
|
102
|
+
type: import("vue").PropType<unknown extends Defaults["rawId"] ? string | number : string | number | Defaults["rawId"]>;
|
103
|
+
default: unknown extends Defaults["rawId"] ? string | number : NonNullable<string | number> | Defaults["rawId"];
|
104
|
+
};
|
100
105
|
fluid: unknown extends Defaults["fluid"] ? BooleanConstructor : {
|
101
106
|
type: import("vue").PropType<unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"]>;
|
102
107
|
default: unknown extends Defaults["fluid"] ? boolean : boolean | Defaults["fluid"];
|
@@ -118,6 +123,7 @@ export declare const VTreeviewGroup: {
|
|
118
123
|
activeColor?: string | undefined;
|
119
124
|
prependIcon?: import("../../composables/icons.js").IconValue | undefined;
|
120
125
|
appendIcon?: import("../../composables/icons.js").IconValue | undefined;
|
126
|
+
rawId?: string | number | undefined;
|
121
127
|
} & {
|
122
128
|
$children?: import("vue").VNodeChild | (() => import("vue").VNodeChild) | {
|
123
129
|
default?: (() => import("vue").VNodeChild) | undefined;
|
@@ -173,6 +179,7 @@ export declare const VTreeviewGroup: {
|
|
173
179
|
activeColor?: string | undefined;
|
174
180
|
prependIcon?: import("../../composables/icons.js").IconValue | undefined;
|
175
181
|
appendIcon?: import("../../composables/icons.js").IconValue | undefined;
|
182
|
+
rawId?: string | number | undefined;
|
176
183
|
} & {
|
177
184
|
$children?: import("vue").VNodeChild | (() => import("vue").VNodeChild) | {
|
178
185
|
default?: (() => import("vue").VNodeChild) | undefined;
|
@@ -219,6 +226,7 @@ export declare const VTreeviewGroup: {
|
|
219
226
|
activeColor?: string | undefined;
|
220
227
|
prependIcon?: import("../../composables/icons.js").IconValue | undefined;
|
221
228
|
appendIcon?: import("../../composables/icons.js").IconValue | undefined;
|
229
|
+
rawId?: string | number | undefined;
|
222
230
|
} & {
|
223
231
|
$children?: import("vue").VNodeChild | (() => import("vue").VNodeChild) | {
|
224
232
|
default?: (() => import("vue").VNodeChild) | undefined;
|
@@ -283,6 +291,7 @@ export declare const VTreeviewGroup: {
|
|
283
291
|
type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
284
292
|
default: NonNullable<import("../../composables/icons.js").IconValue>;
|
285
293
|
};
|
294
|
+
rawId: (StringConstructor | NumberConstructor)[];
|
286
295
|
fluid: BooleanConstructor;
|
287
296
|
}, import("vue").ExtractPropTypes<{
|
288
297
|
color: StringConstructor;
|
@@ -315,6 +324,7 @@ export declare const VTreeviewGroup: {
|
|
315
324
|
type: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
316
325
|
default: NonNullable<import("../../composables/icons.js").IconValue>;
|
317
326
|
};
|
327
|
+
rawId: (StringConstructor | NumberConstructor)[];
|
318
328
|
fluid: BooleanConstructor;
|
319
329
|
}>>;
|
320
330
|
export type VTreeviewGroup = InstanceType<typeof VTreeviewGroup>;
|
@@ -241,14 +241,18 @@ 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
|
244
|
+
class?: string;
|
245
|
+
keys?: number[];
|
245
246
|
} | undefined : boolean | {
|
246
|
-
class
|
247
|
+
class?: string;
|
248
|
+
keys?: number[];
|
247
249
|
} | Defaults["ripple"] | undefined>;
|
248
250
|
default: unknown extends Defaults["ripple"] ? boolean | {
|
249
|
-
class
|
251
|
+
class?: string;
|
252
|
+
keys?: number[];
|
250
253
|
} | undefined : NonNullable<boolean | {
|
251
|
-
class
|
254
|
+
class?: string;
|
255
|
+
keys?: number[];
|
252
256
|
} | undefined> | Defaults["ripple"];
|
253
257
|
};
|
254
258
|
slim: unknown extends Defaults["slim"] ? {
|
@@ -316,7 +320,8 @@ export declare const VTreeviewItem: {
|
|
316
320
|
tile: boolean;
|
317
321
|
slim: boolean;
|
318
322
|
ripple: boolean | {
|
319
|
-
class
|
323
|
+
class?: string;
|
324
|
+
keys?: number[];
|
320
325
|
} | undefined;
|
321
326
|
} & {
|
322
327
|
link?: boolean | undefined;
|
@@ -391,7 +396,8 @@ export declare const VTreeviewItem: {
|
|
391
396
|
tile: boolean;
|
392
397
|
slim: boolean;
|
393
398
|
ripple: boolean | {
|
394
|
-
class
|
399
|
+
class?: string;
|
400
|
+
keys?: number[];
|
395
401
|
} | undefined;
|
396
402
|
subtitle: string | number | boolean;
|
397
403
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -420,7 +426,8 @@ export declare const VTreeviewItem: {
|
|
420
426
|
tile: boolean;
|
421
427
|
slim: boolean;
|
422
428
|
ripple: boolean | {
|
423
|
-
class
|
429
|
+
class?: string;
|
430
|
+
keys?: number[];
|
424
431
|
} | undefined;
|
425
432
|
} & {
|
426
433
|
link?: boolean | undefined;
|
@@ -493,7 +500,8 @@ export declare const VTreeviewItem: {
|
|
493
500
|
tile: boolean;
|
494
501
|
slim: boolean;
|
495
502
|
ripple: boolean | {
|
496
|
-
class
|
503
|
+
class?: string;
|
504
|
+
keys?: number[];
|
497
505
|
} | undefined;
|
498
506
|
subtitle: string | number | boolean;
|
499
507
|
}>;
|
@@ -513,7 +521,8 @@ export declare const VTreeviewItem: {
|
|
513
521
|
tile: boolean;
|
514
522
|
slim: boolean;
|
515
523
|
ripple: boolean | {
|
516
|
-
class
|
524
|
+
class?: string;
|
525
|
+
keys?: number[];
|
517
526
|
} | undefined;
|
518
527
|
} & {
|
519
528
|
link?: boolean | undefined;
|
@@ -588,7 +597,8 @@ export declare const VTreeviewItem: {
|
|
588
597
|
tile: boolean;
|
589
598
|
slim: boolean;
|
590
599
|
ripple: boolean | {
|
591
|
-
class
|
600
|
+
class?: string;
|
601
|
+
keys?: number[];
|
592
602
|
} | undefined;
|
593
603
|
subtitle: string | number | boolean;
|
594
604
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VTreeviewItem.js","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","IconValue","computed","inject","ref","toRaw","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","toggleIcon","slim","VTreeviewItem","name","props","emits","toggleExpand","value","setup","_ref","slots","emit","visibleIds","vListItemRef","isActivatableGroupActivator","root","activatable","isGroupActivator","vListItemRefIsClickable","link","isClickable","list","disabled","isFiltered","has","id","activateGroupActivator","e","activate","isActivated","onClickAction","preventDefault","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","class","onClick","slotProps","_createElementVNode","_Fragment","default","loader","undefined"],"sources":["../../../src/labs/VTreeview/VTreeviewItem.tsx"],"sourcesContent":["// Styles\nimport './VTreeviewItem.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VListItemAction } from '@/components/VList'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, inject, ref, toRaw } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport const makeVTreeviewItemProps = propsFactory({\n loading: Boolean,\n toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent<VListItemSlots>()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n emits: {\n toggleExpand: (value: PointerEvent) => true,\n },\n\n setup (props, { slots, emit }) {\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n const vListItemRef = ref<VListItem>()\n\n const isActivatableGroupActivator = computed(() =>\n (vListItemRef.value?.root.activatable.value) &&\n vListItemRef.value?.isGroupActivator\n )\n const vListItemRefIsClickable = computed(() => (\n vListItemRef.value?.link.isClickable.value ||\n (props.value != null && !!vListItemRef.value?.list)\n ))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || vListItemRefIsClickable.value || isActivatableGroupActivator.value)\n )\n const isFiltered = computed(() => visibleIds.value && !visibleIds.value.has(toRaw(vListItemRef.value?.id)))\n\n function activateGroupActivator (e: MouseEvent | KeyboardEvent) {\n if (isClickable.value && isActivatableGroupActivator.value) {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n\n function onClickAction (e: PointerEvent) {\n e.preventDefault()\n emit('toggleExpand', e)\n }\n\n useRender(() => {\n const listItemProps = omit(VListItem.filterProps(props), ['onClick'])\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return (\n <VListItem\n ref={ vListItemRef }\n { ...listItemProps }\n active={ vListItemRef.value?.isActivated }\n class={[\n 'v-treeview-item',\n {\n 'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,\n 'v-treeview-item--filtered': isFiltered.value,\n },\n props.class,\n ]}\n ripple={ false }\n onClick={ props.onClick ?? activateGroupActivator }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n <VListItemAction start={ false }>\n { props.toggleIcon ? (\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n onClick={ onClickAction }\n >\n {{\n loader () {\n return (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n )\n },\n }}\n </VBtn>\n ) : (\n <div class=\"v-treeview-item__level\" />\n )}\n </VListItemAction>\n\n { slots.prepend?.(slotProps) }\n </>\n )\n } : undefined,\n }}\n </VListItem>\n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewItem = InstanceType<typeof VTreeviewItem>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,eAAe;AAAA,SACfC,kBAAkB,EAAEC,SAAS;AAAA,SAC7BC,iBAAiB,uDAE1B;AAAA,SACSC,SAAS,sCAElB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACzCC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAExD;AAAA,SACSC,eAAe;AAGxB,OAAO,MAAMC,sBAAsB,GAAGH,YAAY,CAAC;EACjDI,OAAO,EAAEC,OAAO;EAChBC,UAAU,EAAEb,SAAS;EAErB,GAAGH,kBAAkB,CAAC;IAAEiB,IAAI,EAAE;EAAK,CAAC;AACtC,CAAC,EAAE,eAAe,CAAC;AAEnB,OAAO,MAAMC,aAAa,GAAGV,gBAAgB,CAAiB,CAAC,CAAC;EAC9DW,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAEP,sBAAsB,CAAC,CAAC;EAE/BQ,KAAK,EAAE;IACLC,YAAY,EAAGC,KAAmB,IAAK;EACzC,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAMG,UAAU,GAAGvB,MAAM,CAACO,eAAe,EAAE;MAAEgB,UAAU,EAAEtB,GAAG,CAAC;IAAE,CAAC,CAAC,CAACsB,UAAU;IAE5E,MAAMC,YAAY,GAAGvB,GAAG,CAAY,CAAC;IAErC,MAAMwB,2BAA2B,GAAG1B,QAAQ,CAAC,MAC1CyB,YAAY,CAACN,KAAK,EAAEQ,IAAI,CAACC,WAAW,CAACT,KAAK,IAC3CM,YAAY,CAACN,KAAK,EAAEU,gBACtB,CAAC;IACD,MAAMC,uBAAuB,GAAG9B,QAAQ,CAAC,MACvCyB,YAAY,CAACN,KAAK,EAAEY,IAAI,CAACC,WAAW,CAACb,KAAK,IACzCH,KAAK,CAACG,KAAK,IAAI,IAAI,IAAI,CAAC,CAACM,YAAY,CAACN,KAAK,EAAEc,IAC/C,CAAC;IACF,MAAMD,WAAW,GAAGhC,QAAQ,CAAC,MAC3B,CAACgB,KAAK,CAACkB,QAAQ,IACflB,KAAK,CAACe,IAAI,KAAK,KAAK,KACnBf,KAAK,CAACe,IAAI,IAAID,uBAAuB,CAACX,KAAK,IAAIO,2BAA2B,CAACP,KAAK,CACnF,CAAC;IACD,MAAMgB,UAAU,GAAGnC,QAAQ,CAAC,MAAMwB,UAAU,CAACL,KAAK,IAAI,CAACK,UAAU,CAACL,KAAK,CAACiB,GAAG,CAACjC,KAAK,CAACsB,YAAY,CAACN,KAAK,EAAEkB,EAAE,CAAC,CAAC,CAAC;IAE3G,SAASC,sBAAsBA,CAAEC,CAA6B,EAAE;MAC9D,IAAIP,WAAW,CAACb,KAAK,IAAIO,2BAA2B,CAACP,KAAK,EAAE;QAC1DM,YAAY,CAACN,KAAK,EAAEqB,QAAQ,CAAC,CAACf,YAAY,CAACN,KAAK,EAAEsB,WAAW,EAAEF,CAAC,CAAC;MACnE;IACF;IAEA,SAASG,aAAaA,CAAEH,CAAe,EAAE;MACvCA,CAAC,CAACI,cAAc,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"VTreeviewItem.js","names":["VBtn","VListItemAction","makeVListItemProps","VListItem","VProgressCircular","IconValue","computed","inject","ref","toRaw","genericComponent","omit","propsFactory","useRender","VTreeviewSymbol","makeVTreeviewItemProps","loading","Boolean","toggleIcon","slim","VTreeviewItem","name","props","emits","toggleExpand","value","setup","_ref","slots","emit","visibleIds","vListItemRef","isActivatableGroupActivator","root","activatable","isGroupActivator","vListItemRefIsClickable","link","isClickable","list","disabled","isFiltered","has","id","activateGroupActivator","e","activate","isActivated","onClickAction","preventDefault","stopPropagation","listItemProps","filterProps","hasPrepend","prepend","_createVNode","_mergeProps","class","onClick","slotProps","_createElementVNode","_Fragment","default","loader","undefined"],"sources":["../../../src/labs/VTreeview/VTreeviewItem.tsx"],"sourcesContent":["// Styles\nimport './VTreeviewItem.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VListItemAction } from '@/components/VList'\nimport { makeVListItemProps, VListItem } from '@/components/VList/VListItem'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, inject, ref, toRaw } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport { VTreeviewSymbol } from './shared'\nimport type { VListItemSlots } from '@/components/VList/VListItem'\n\nexport const makeVTreeviewItemProps = propsFactory({\n loading: Boolean,\n toggleIcon: IconValue,\n\n ...makeVListItemProps({ slim: true }),\n}, 'VTreeviewItem')\n\nexport const VTreeviewItem = genericComponent<VListItemSlots>()({\n name: 'VTreeviewItem',\n\n props: makeVTreeviewItemProps(),\n\n emits: {\n toggleExpand: (value: PointerEvent) => true,\n },\n\n setup (props, { slots, emit }) {\n const visibleIds = inject(VTreeviewSymbol, { visibleIds: ref() }).visibleIds\n\n const vListItemRef = ref<VListItem>()\n\n const isActivatableGroupActivator = computed(() =>\n (vListItemRef.value?.root.activatable.value) &&\n vListItemRef.value?.isGroupActivator\n )\n const vListItemRefIsClickable = computed(() => (\n vListItemRef.value?.link.isClickable.value ||\n (props.value != null && !!vListItemRef.value?.list)\n ))\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || vListItemRefIsClickable.value || isActivatableGroupActivator.value)\n )\n const isFiltered = computed(() => visibleIds.value && !visibleIds.value.has(toRaw(vListItemRef.value?.id)))\n\n function activateGroupActivator (e: MouseEvent | KeyboardEvent) {\n if (isClickable.value && isActivatableGroupActivator.value) {\n vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e)\n }\n }\n\n function onClickAction (e: PointerEvent) {\n e.preventDefault()\n e.stopPropagation()\n emit('toggleExpand', e)\n }\n\n useRender(() => {\n const listItemProps = omit(VListItem.filterProps(props), ['onClick'])\n const hasPrepend = slots.prepend || props.toggleIcon\n\n return (\n <VListItem\n ref={ vListItemRef }\n { ...listItemProps }\n active={ vListItemRef.value?.isActivated }\n class={[\n 'v-treeview-item',\n {\n 'v-treeview-item--activatable-group-activator': isActivatableGroupActivator.value,\n 'v-treeview-item--filtered': isFiltered.value,\n },\n props.class,\n ]}\n ripple={ false }\n onClick={ props.onClick ?? activateGroupActivator }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => {\n return (\n <>\n <VListItemAction start={ false }>\n { props.toggleIcon ? (\n <VBtn\n density=\"compact\"\n icon={ props.toggleIcon }\n loading={ props.loading }\n variant=\"text\"\n onClick={ onClickAction }\n >\n {{\n loader () {\n return (\n <VProgressCircular\n indeterminate=\"disable-shrink\"\n size=\"20\"\n width=\"2\"\n />\n )\n },\n }}\n </VBtn>\n ) : (\n <div class=\"v-treeview-item__level\" />\n )}\n </VListItemAction>\n\n { slots.prepend?.(slotProps) }\n </>\n )\n } : undefined,\n }}\n </VListItem>\n )\n })\n\n return {}\n },\n})\n\nexport type VTreeviewItem = InstanceType<typeof VTreeviewItem>\n"],"mappings":"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","ignoreList":[]}
|
package/lib/labs/components.d.ts
CHANGED
@@ -3,6 +3,7 @@ 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';
|
6
7
|
export * from './VPicker/index.js';
|
7
8
|
export * from './VStepperVertical/index.js';
|
8
9
|
export * from './VPullToRefresh/index.js';
|
package/lib/labs/components.js
CHANGED
@@ -3,6 +3,7 @@ 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";
|
6
7
|
export * from "./VPicker/index.js";
|
7
8
|
export * from "./VStepperVertical/index.js";
|
8
9
|
export * from "./VPullToRefresh/index.js";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"components.js","names":[],"sources":["../../src/labs/components.ts"],"sourcesContent":["export * from './VCalendar'\nexport * from './VColorInput'\nexport * from './VDateInput'\nexport * from './VFileUpload'\nexport * from './VIconBtn'\nexport * from './VPicker'\nexport * from './VStepperVertical'\nexport * from './VPullToRefresh'\nexport * from './VTimePicker'\nexport * from './VTreeview'\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"file":"components.js","names":[],"sources":["../../src/labs/components.ts"],"sourcesContent":["export * from './VCalendar'\nexport * from './VColorInput'\nexport * from './VDateInput'\nexport * from './VFileUpload'\nexport * from './VIconBtn'\nexport * from './VMaskInput'\nexport * from './VPicker'\nexport * from './VStepperVertical'\nexport * from './VPullToRefresh'\nexport * from './VTimePicker'\nexport * from './VTreeview'\n"],"mappings":"","ignoreList":[]}
|
@@ -16,6 +16,7 @@ export declare const createVuetify: (options?: VuetifyOptions) => {
|
|
16
16
|
rtl: import("vue").Ref<Record<string, boolean>>;
|
17
17
|
rtlClasses: import("vue").Ref<string>;
|
18
18
|
name: string;
|
19
|
+
decimalSeparator: import("vue").ShallowRef<string>;
|
19
20
|
messages: import("vue").Ref<import("../framework.js").LocaleMessages>;
|
20
21
|
current: import("vue").Ref<string>;
|
21
22
|
fallback: import("vue").Ref<string>;
|
@@ -41,10 +42,10 @@ export declare const createVuetify: (options?: VuetifyOptions) => {
|
|
41
42
|
startOfYear: (date: unknown) => unknown;
|
42
43
|
endOfYear: (date: unknown) => unknown;
|
43
44
|
isAfter: (date: unknown, comparing: unknown) => boolean;
|
44
|
-
isAfterDay: (
|
45
|
+
isAfterDay: (date: unknown, comparing: unknown) => boolean;
|
45
46
|
isSameDay: (date: unknown, comparing: unknown) => boolean;
|
46
47
|
isSameMonth: (date: unknown, comparing: unknown) => boolean;
|
47
|
-
isSameYear: (
|
48
|
+
isSameYear: (date: unknown, comparing: unknown) => boolean;
|
48
49
|
isBefore: (date: unknown, comparing: unknown) => boolean;
|
49
50
|
isEqual: (date: unknown, comparing: unknown) => boolean;
|
50
51
|
isValid: (date: any) => boolean;
|
@@ -58,7 +59,7 @@ export declare const createVuetify: (options?: VuetifyOptions) => {
|
|
58
59
|
setYear: (date: unknown, year: number) => unknown;
|
59
60
|
getDiff: (date: unknown, comparing: unknown, unit?: string) => number;
|
60
61
|
getWeekArray: (date: unknown, firstDayOfWeek?: number | string) => unknown[][];
|
61
|
-
getWeekdays: (firstDayOfWeek?: number | string) => string[];
|
62
|
+
getWeekdays: (firstDayOfWeek?: number | string, weekdayFormat?: "long" | "short" | "narrow") => string[];
|
62
63
|
getWeek: (date: unknown, firstDayOfWeek?: number | string, firstWeekMinSize?: number) => number;
|
63
64
|
getMonth: (date: unknown) => number;
|
64
65
|
setMonth: (date: unknown, month: number) => unknown;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Composables
|
2
2
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
3
|
-
import { watch } from 'vue';
|
3
|
+
import { toRef, watch } from 'vue';
|
4
4
|
|
5
5
|
// Types
|
6
6
|
|
@@ -14,6 +14,9 @@ function useProvided(props, prop, provided) {
|
|
14
14
|
});
|
15
15
|
return internal;
|
16
16
|
}
|
17
|
+
function inferDecimalSeparator(format) {
|
18
|
+
return format(0.1).includes(',') ? ',' : '.';
|
19
|
+
}
|
17
20
|
function createProvideFunction(data) {
|
18
21
|
return props => {
|
19
22
|
const current = useProvided(props, 'locale', data.current);
|
@@ -35,6 +38,7 @@ function createProvideFunction(data) {
|
|
35
38
|
current,
|
36
39
|
fallback,
|
37
40
|
messages,
|
41
|
+
decimalSeparator: toRef(() => props.decimalSeparator ?? inferDecimalSeparator(i18n.n)),
|
38
42
|
t: function (key) {
|
39
43
|
for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
40
44
|
params[_key - 1] = arguments[_key];
|
@@ -64,6 +68,7 @@ export function createVueI18nAdapter(_ref) {
|
|
64
68
|
current,
|
65
69
|
fallback,
|
66
70
|
messages,
|
71
|
+
decimalSeparator: toRef(() => inferDecimalSeparator(i18n.global.n)),
|
67
72
|
t: function (key) {
|
68
73
|
for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
69
74
|
params[_key2 - 1] = arguments[_key2];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"vue-i18n.js","names":["useProxiedModel","watch","useProvided","props","prop","provided","internal","value","v","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","t","key","_len","arguments","length","params","Array","_key","
|
1
|
+
{"version":3,"file":"vue-i18n.js","names":["useProxiedModel","toRef","watch","useProvided","props","prop","provided","internal","value","v","inferDecimalSeparator","format","includes","createProvideFunction","data","current","fallback","messages","i18n","useI18n","locale","fallbackLocale","useScope","legacy","inheritLocale","name","decimalSeparator","n","t","key","_len","arguments","length","params","Array","_key","provide","createVueI18nAdapter","_ref","global","_len2","_key2"],"sources":["../../../src/locale/adapters/vue-i18n.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { toRef, watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { I18n, useI18n } from 'vue-i18n'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\ntype VueI18nAdapterParams = {\n i18n: I18n<any, {}, {}, string, false>\n useI18n: typeof useI18n\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop)\n\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = v\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction inferDecimalSeparator (format: (v: number) => string) {\n return format(0.1).includes(',') ? ',' : '.'\n}\n\nfunction createProvideFunction (data: {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n useI18n: typeof useI18n\n}) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', data.current)\n const fallback = useProvided(props, 'fallback', data.fallback)\n const messages = useProvided(props, 'messages', data.messages)\n\n const i18n = data.useI18n({\n locale: current.value,\n fallbackLocale: fallback.value,\n messages: messages.value as any,\n useScope: 'local',\n legacy: false,\n inheritLocale: false,\n })\n\n watch(current, v => {\n i18n.locale.value = v\n })\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n decimalSeparator: toRef(() => props.decimalSeparator ?? inferDecimalSeparator(i18n.n)),\n t: (key: string, ...params: unknown[]) => i18n.t(key, params),\n n: i18n.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n: data.useI18n }),\n }\n }\n}\n\nexport function createVueI18nAdapter ({ i18n, useI18n }: VueI18nAdapterParams): LocaleInstance {\n const current = i18n.global.locale\n const fallback = i18n.global.fallbackLocale as Ref<any>\n const messages = i18n.global.messages\n\n return {\n name: 'vue-i18n',\n current,\n fallback,\n messages,\n decimalSeparator: toRef(() => inferDecimalSeparator(i18n.global.n)),\n t: (key: string, ...params: unknown[]) => i18n.global.t(key, params),\n n: i18n.global.n,\n provide: createProvideFunction({ current, fallback, messages, useI18n }),\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Composables
|
2
2
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
3
|
-
import { ref, shallowRef, watch } from 'vue';
|
3
|
+
import { ref, shallowRef, toRef, watch } from 'vue';
|
4
4
|
import { consoleError, consoleWarn, getObjectValueByPath } from "../../util/index.js"; // Locales
|
5
5
|
import en from "../en.js"; // Types
|
6
6
|
const LANG_PREFIX = '$vuetify.';
|
@@ -42,6 +42,10 @@ function createNumberFunction(current, fallback) {
|
|
42
42
|
return numberFormat.format(value);
|
43
43
|
};
|
44
44
|
}
|
45
|
+
function inferDecimalSeparator(current, fallback) {
|
46
|
+
const format = createNumberFunction(current, fallback);
|
47
|
+
return format(0.1).includes(',') ? ',' : '.';
|
48
|
+
}
|
45
49
|
function useProvided(props, prop, provided) {
|
46
50
|
const internal = useProxiedModel(props, prop, props[prop] ?? provided.value);
|
47
51
|
|
@@ -64,6 +68,7 @@ function createProvideFunction(state) {
|
|
64
68
|
current,
|
65
69
|
fallback,
|
66
70
|
messages,
|
71
|
+
decimalSeparator: toRef(() => inferDecimalSeparator(current, fallback)),
|
67
72
|
t: createTranslateFunction(current, fallback, messages),
|
68
73
|
n: createNumberFunction(current, fallback),
|
69
74
|
provide: createProvideFunction({
|
@@ -86,6 +91,7 @@ export function createVuetifyAdapter(options) {
|
|
86
91
|
current,
|
87
92
|
fallback,
|
88
93
|
messages,
|
94
|
+
decimalSeparator: toRef(() => options?.decimalSeparator ?? inferDecimalSeparator(current, fallback)),
|
89
95
|
t: createTranslateFunction(current, fallback, messages),
|
90
96
|
n: createNumberFunction(current, fallback),
|
91
97
|
provide: createProvideFunction({
|