vuetify 3.8.3 → 3.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +3888 -3884
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +142 -142
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +6709 -6699
- package/dist/vuetify-labs.cjs +107 -71
- package/dist/vuetify-labs.css +5358 -5358
- package/dist/vuetify-labs.d.ts +4100 -1172
- package/dist/vuetify-labs.esm.js +107 -71
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +107 -71
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +56 -29
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3018 -3018
- package/dist/vuetify.d.ts +4107 -1199
- package/dist/vuetify.esm.js +56 -29
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +56 -29
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +30 -27
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +795 -77
- package/lib/components/VAutocomplete/VAutocomplete.js +5 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.d.ts +22 -46
- package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +1434 -80
- package/lib/components/VCombobox/VCombobox.d.ts +795 -77
- package/lib/components/VCounter/VCounter.d.ts +22 -46
- package/lib/components/VDataIterator/VDataIterator.d.ts +22 -46
- package/lib/components/VDataTable/VDataTable.d.ts +110 -110
- package/lib/components/VDataTable/VDataTableHeaders.js +1 -2
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +62 -189
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +62 -189
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/composables/headers.d.ts +75 -75
- package/lib/components/VDataTable/composables/select.js +1 -1
- package/lib/components/VDataTable/composables/select.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
- package/lib/components/VDialog/VDialog.d.ts +1048 -146
- package/lib/components/VDialog/VDialog.js +1 -1
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VFab/VFab.d.ts +22 -46
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.js +21 -3
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +4 -0
- package/lib/components/VImg/VImg.d.ts +22 -49
- package/lib/components/VLazy/VLazy.d.ts +22 -46
- package/lib/components/VMenu/VMenu.d.ts +1048 -146
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.d.ts +22 -46
- package/lib/components/VNumberInput/VNumberInput.d.ts +3 -3
- package/lib/components/VOverlay/VOverlay.d.ts +22 -49
- package/lib/components/VOverlay/locationStrategies.js +1 -1
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +1235 -93
- package/lib/components/VSnackbar/VSnackbar.d.ts +58 -109
- package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +22 -46
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +1434 -80
- package/lib/components/VTable/VTable.css +2 -6
- package/lib/components/VTable/VTable.sass +4 -22
- package/lib/components/VTabs/VTabs.d.ts +6 -6
- package/lib/components/VTextField/VTextField.js +5 -3
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.d.ts +58 -109
- package/lib/components/VTooltip/VTooltip.js +2 -2
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/transitions/dialog-transition.js +3 -3
- package/lib/components/transitions/dialog-transition.js.map +1 -1
- package/lib/composables/transition.d.ts +10 -20
- package/lib/composables/transition.js +15 -12
- package/lib/composables/transition.js.map +1 -1
- package/lib/entry-bundler.d.ts +6 -6
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +99 -138
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarDay.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarInterval.d.ts +3 -3
- package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +50 -13
- package/lib/labs/VDateInput/VDateInput.js +30 -9
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +19 -31
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VTimePicker/VTimePickerClock.js +2 -2
- package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +7 -7
|
@@ -6,14 +6,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
6
6
|
headers?: unknown;
|
|
7
7
|
} = {}>(defaults?: Defaults | undefined) => {
|
|
8
8
|
headers: unknown extends Defaults["headers"] ? PropType<readonly {
|
|
9
|
-
readonly key?:
|
|
9
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
10
10
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
11
11
|
readonly title?: string | undefined;
|
|
12
12
|
readonly fixed?: boolean | undefined;
|
|
13
|
-
readonly align?:
|
|
14
|
-
readonly width?:
|
|
15
|
-
readonly minWidth?:
|
|
16
|
-
readonly maxWidth?:
|
|
13
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
14
|
+
readonly width?: number | string | undefined;
|
|
15
|
+
readonly minWidth?: number | string | undefined;
|
|
16
|
+
readonly maxWidth?: number | string | undefined;
|
|
17
17
|
readonly nowrap?: boolean | undefined;
|
|
18
18
|
readonly headerProps?: {
|
|
19
19
|
readonly [x: string]: any;
|
|
@@ -26,14 +26,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
26
26
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
27
27
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
28
28
|
readonly children?: readonly {
|
|
29
|
-
readonly key?:
|
|
29
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
30
30
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
31
31
|
readonly title?: string | undefined;
|
|
32
32
|
readonly fixed?: boolean | undefined;
|
|
33
|
-
readonly align?:
|
|
34
|
-
readonly width?:
|
|
35
|
-
readonly minWidth?:
|
|
36
|
-
readonly maxWidth?:
|
|
33
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
34
|
+
readonly width?: number | string | undefined;
|
|
35
|
+
readonly minWidth?: number | string | undefined;
|
|
36
|
+
readonly maxWidth?: number | string | undefined;
|
|
37
37
|
readonly nowrap?: boolean | undefined;
|
|
38
38
|
readonly headerProps?: {
|
|
39
39
|
readonly [x: string]: any;
|
|
@@ -45,18 +45,18 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
45
45
|
readonly sort?: DataTableCompareFunction | undefined;
|
|
46
46
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
47
47
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
48
|
-
readonly children?: readonly any[] | undefined;
|
|
48
|
+
readonly children?: readonly /*elided*/ any[] | undefined;
|
|
49
49
|
}[] | undefined;
|
|
50
50
|
}[]> : {
|
|
51
51
|
type: PropType<unknown extends Defaults["headers"] ? readonly {
|
|
52
|
-
readonly key?:
|
|
52
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
53
53
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
54
54
|
readonly title?: string | undefined;
|
|
55
55
|
readonly fixed?: boolean | undefined;
|
|
56
|
-
readonly align?:
|
|
57
|
-
readonly width?:
|
|
58
|
-
readonly minWidth?:
|
|
59
|
-
readonly maxWidth?:
|
|
56
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
57
|
+
readonly width?: number | string | undefined;
|
|
58
|
+
readonly minWidth?: number | string | undefined;
|
|
59
|
+
readonly maxWidth?: number | string | undefined;
|
|
60
60
|
readonly nowrap?: boolean | undefined;
|
|
61
61
|
readonly headerProps?: {
|
|
62
62
|
readonly [x: string]: any;
|
|
@@ -69,14 +69,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
69
69
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
70
70
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
71
71
|
readonly children?: readonly {
|
|
72
|
-
readonly key?:
|
|
72
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
73
73
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
74
74
|
readonly title?: string | undefined;
|
|
75
75
|
readonly fixed?: boolean | undefined;
|
|
76
|
-
readonly align?:
|
|
77
|
-
readonly width?:
|
|
78
|
-
readonly minWidth?:
|
|
79
|
-
readonly maxWidth?:
|
|
76
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
77
|
+
readonly width?: number | string | undefined;
|
|
78
|
+
readonly minWidth?: number | string | undefined;
|
|
79
|
+
readonly maxWidth?: number | string | undefined;
|
|
80
80
|
readonly nowrap?: boolean | undefined;
|
|
81
81
|
readonly headerProps?: {
|
|
82
82
|
readonly [x: string]: any;
|
|
@@ -88,17 +88,17 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
88
88
|
readonly sort?: DataTableCompareFunction | undefined;
|
|
89
89
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
90
90
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
91
|
-
readonly children?: readonly any[] | undefined;
|
|
91
|
+
readonly children?: readonly /*elided*/ any[] | undefined;
|
|
92
92
|
}[] | undefined;
|
|
93
93
|
}[] : readonly {
|
|
94
|
-
readonly key?:
|
|
94
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
95
95
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
96
96
|
readonly title?: string | undefined;
|
|
97
97
|
readonly fixed?: boolean | undefined;
|
|
98
|
-
readonly align?:
|
|
99
|
-
readonly width?:
|
|
100
|
-
readonly minWidth?:
|
|
101
|
-
readonly maxWidth?:
|
|
98
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
99
|
+
readonly width?: number | string | undefined;
|
|
100
|
+
readonly minWidth?: number | string | undefined;
|
|
101
|
+
readonly maxWidth?: number | string | undefined;
|
|
102
102
|
readonly nowrap?: boolean | undefined;
|
|
103
103
|
readonly headerProps?: {
|
|
104
104
|
readonly [x: string]: any;
|
|
@@ -111,14 +111,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
111
111
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
112
112
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
113
113
|
readonly children?: readonly {
|
|
114
|
-
readonly key?:
|
|
114
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
115
115
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
116
116
|
readonly title?: string | undefined;
|
|
117
117
|
readonly fixed?: boolean | undefined;
|
|
118
|
-
readonly align?:
|
|
119
|
-
readonly width?:
|
|
120
|
-
readonly minWidth?:
|
|
121
|
-
readonly maxWidth?:
|
|
118
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
119
|
+
readonly width?: number | string | undefined;
|
|
120
|
+
readonly minWidth?: number | string | undefined;
|
|
121
|
+
readonly maxWidth?: number | string | undefined;
|
|
122
122
|
readonly nowrap?: boolean | undefined;
|
|
123
123
|
readonly headerProps?: {
|
|
124
124
|
readonly [x: string]: any;
|
|
@@ -130,18 +130,18 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
130
130
|
readonly sort?: DataTableCompareFunction | undefined;
|
|
131
131
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
132
132
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
133
|
-
readonly children?: readonly any[] | undefined;
|
|
133
|
+
readonly children?: readonly /*elided*/ any[] | undefined;
|
|
134
134
|
}[] | undefined;
|
|
135
135
|
}[] | Defaults["headers"]>;
|
|
136
136
|
default: unknown extends Defaults["headers"] ? readonly {
|
|
137
|
-
readonly key?:
|
|
137
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
138
138
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
139
139
|
readonly title?: string | undefined;
|
|
140
140
|
readonly fixed?: boolean | undefined;
|
|
141
|
-
readonly align?:
|
|
142
|
-
readonly width?:
|
|
143
|
-
readonly minWidth?:
|
|
144
|
-
readonly maxWidth?:
|
|
141
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
142
|
+
readonly width?: number | string | undefined;
|
|
143
|
+
readonly minWidth?: number | string | undefined;
|
|
144
|
+
readonly maxWidth?: number | string | undefined;
|
|
145
145
|
readonly nowrap?: boolean | undefined;
|
|
146
146
|
readonly headerProps?: {
|
|
147
147
|
readonly [x: string]: any;
|
|
@@ -154,14 +154,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
154
154
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
155
155
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
156
156
|
readonly children?: readonly {
|
|
157
|
-
readonly key?:
|
|
157
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
158
158
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
159
159
|
readonly title?: string | undefined;
|
|
160
160
|
readonly fixed?: boolean | undefined;
|
|
161
|
-
readonly align?:
|
|
162
|
-
readonly width?:
|
|
163
|
-
readonly minWidth?:
|
|
164
|
-
readonly maxWidth?:
|
|
161
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
162
|
+
readonly width?: number | string | undefined;
|
|
163
|
+
readonly minWidth?: number | string | undefined;
|
|
164
|
+
readonly maxWidth?: number | string | undefined;
|
|
165
165
|
readonly nowrap?: boolean | undefined;
|
|
166
166
|
readonly headerProps?: {
|
|
167
167
|
readonly [x: string]: any;
|
|
@@ -173,17 +173,17 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
173
173
|
readonly sort?: DataTableCompareFunction | undefined;
|
|
174
174
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
175
175
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
176
|
-
readonly children?: readonly any[] | undefined;
|
|
176
|
+
readonly children?: readonly /*elided*/ any[] | undefined;
|
|
177
177
|
}[] | undefined;
|
|
178
178
|
}[] : readonly {
|
|
179
|
-
readonly key?:
|
|
179
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
180
180
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
181
181
|
readonly title?: string | undefined;
|
|
182
182
|
readonly fixed?: boolean | undefined;
|
|
183
|
-
readonly align?:
|
|
184
|
-
readonly width?:
|
|
185
|
-
readonly minWidth?:
|
|
186
|
-
readonly maxWidth?:
|
|
183
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
184
|
+
readonly width?: number | string | undefined;
|
|
185
|
+
readonly minWidth?: number | string | undefined;
|
|
186
|
+
readonly maxWidth?: number | string | undefined;
|
|
187
187
|
readonly nowrap?: boolean | undefined;
|
|
188
188
|
readonly headerProps?: {
|
|
189
189
|
readonly [x: string]: any;
|
|
@@ -196,14 +196,14 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
196
196
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
197
197
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
198
198
|
readonly children?: readonly {
|
|
199
|
-
readonly key?:
|
|
199
|
+
readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
|
|
200
200
|
readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
|
|
201
201
|
readonly title?: string | undefined;
|
|
202
202
|
readonly fixed?: boolean | undefined;
|
|
203
|
-
readonly align?:
|
|
204
|
-
readonly width?:
|
|
205
|
-
readonly minWidth?:
|
|
206
|
-
readonly maxWidth?:
|
|
203
|
+
readonly align?: "start" | "end" | "center" | undefined;
|
|
204
|
+
readonly width?: number | string | undefined;
|
|
205
|
+
readonly minWidth?: number | string | undefined;
|
|
206
|
+
readonly maxWidth?: number | string | undefined;
|
|
207
207
|
readonly nowrap?: boolean | undefined;
|
|
208
208
|
readonly headerProps?: {
|
|
209
209
|
readonly [x: string]: any;
|
|
@@ -215,7 +215,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
|
|
|
215
215
|
readonly sort?: DataTableCompareFunction | undefined;
|
|
216
216
|
readonly sortRaw?: DataTableCompareFunction | undefined;
|
|
217
217
|
readonly filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
218
|
-
readonly children?: readonly any[] | undefined;
|
|
218
|
+
readonly children?: readonly /*elided*/ any[] | undefined;
|
|
219
219
|
}[] | undefined;
|
|
220
220
|
}[] | Defaults["headers"];
|
|
221
221
|
};
|
|
@@ -237,12 +237,12 @@ export declare function createHeaders(props: HeaderProps, options?: {
|
|
|
237
237
|
fixed?: boolean | undefined;
|
|
238
238
|
filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
239
239
|
sort?: DataTableCompareFunction | undefined;
|
|
240
|
-
width?:
|
|
241
|
-
maxWidth?:
|
|
242
|
-
minWidth?:
|
|
240
|
+
width?: number | string | undefined;
|
|
241
|
+
maxWidth?: number | string | undefined;
|
|
242
|
+
minWidth?: number | string | undefined;
|
|
243
243
|
title?: string | undefined;
|
|
244
244
|
nowrap?: boolean | undefined;
|
|
245
|
-
align?:
|
|
245
|
+
align?: "start" | "end" | "center" | undefined;
|
|
246
246
|
headerProps?: Record<string, any> | undefined;
|
|
247
247
|
cellProps?: import("../types.js").HeaderCellProps | undefined;
|
|
248
248
|
sortable: boolean;
|
|
@@ -253,17 +253,17 @@ export declare function createHeaders(props: HeaderProps, options?: {
|
|
|
253
253
|
lastFixed?: boolean | undefined;
|
|
254
254
|
colspan?: number | undefined;
|
|
255
255
|
rowspan?: number | undefined;
|
|
256
|
-
children?: any[] | undefined;
|
|
256
|
+
children?: /*elided*/ any[] | undefined;
|
|
257
257
|
}[][], InternalDataTableHeader[][] | {
|
|
258
258
|
fixed?: boolean | undefined;
|
|
259
259
|
filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
260
260
|
sort?: DataTableCompareFunction | undefined;
|
|
261
|
-
width?:
|
|
262
|
-
maxWidth?:
|
|
263
|
-
minWidth?:
|
|
261
|
+
width?: number | string | undefined;
|
|
262
|
+
maxWidth?: number | string | undefined;
|
|
263
|
+
minWidth?: number | string | undefined;
|
|
264
264
|
title?: string | undefined;
|
|
265
265
|
nowrap?: boolean | undefined;
|
|
266
|
-
align?:
|
|
266
|
+
align?: "start" | "end" | "center" | undefined;
|
|
267
267
|
headerProps?: Record<string, any> | undefined;
|
|
268
268
|
cellProps?: import("../types.js").HeaderCellProps | undefined;
|
|
269
269
|
sortable: boolean;
|
|
@@ -274,18 +274,18 @@ export declare function createHeaders(props: HeaderProps, options?: {
|
|
|
274
274
|
lastFixed?: boolean | undefined;
|
|
275
275
|
colspan?: number | undefined;
|
|
276
276
|
rowspan?: number | undefined;
|
|
277
|
-
children?: any[] | undefined;
|
|
277
|
+
children?: /*elided*/ any[] | undefined;
|
|
278
278
|
}[][]>;
|
|
279
279
|
columns: Ref<{
|
|
280
280
|
fixed?: boolean | undefined;
|
|
281
281
|
filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
282
282
|
sort?: DataTableCompareFunction | undefined;
|
|
283
|
-
width?:
|
|
284
|
-
maxWidth?:
|
|
285
|
-
minWidth?:
|
|
283
|
+
width?: number | string | undefined;
|
|
284
|
+
maxWidth?: number | string | undefined;
|
|
285
|
+
minWidth?: number | string | undefined;
|
|
286
286
|
title?: string | undefined;
|
|
287
287
|
nowrap?: boolean | undefined;
|
|
288
|
-
align?:
|
|
288
|
+
align?: "start" | "end" | "center" | undefined;
|
|
289
289
|
headerProps?: Record<string, any> | undefined;
|
|
290
290
|
cellProps?: import("../types.js").HeaderCellProps | undefined;
|
|
291
291
|
sortable: boolean;
|
|
@@ -296,17 +296,17 @@ export declare function createHeaders(props: HeaderProps, options?: {
|
|
|
296
296
|
lastFixed?: boolean | undefined;
|
|
297
297
|
colspan?: number | undefined;
|
|
298
298
|
rowspan?: number | undefined;
|
|
299
|
-
children?: any[] | undefined;
|
|
299
|
+
children?: /*elided*/ any[] | undefined;
|
|
300
300
|
}[], InternalDataTableHeader[] | {
|
|
301
301
|
fixed?: boolean | undefined;
|
|
302
302
|
filter?: import("../../../composables/filter.js").FilterFunction | undefined;
|
|
303
303
|
sort?: DataTableCompareFunction | undefined;
|
|
304
|
-
width?:
|
|
305
|
-
maxWidth?:
|
|
306
|
-
minWidth?:
|
|
304
|
+
width?: number | string | undefined;
|
|
305
|
+
maxWidth?: number | string | undefined;
|
|
306
|
+
minWidth?: number | string | undefined;
|
|
307
307
|
title?: string | undefined;
|
|
308
308
|
nowrap?: boolean | undefined;
|
|
309
|
-
align?:
|
|
309
|
+
align?: "start" | "end" | "center" | undefined;
|
|
310
310
|
headerProps?: Record<string, any> | undefined;
|
|
311
311
|
cellProps?: import("../types.js").HeaderCellProps | undefined;
|
|
312
312
|
sortable: boolean;
|
|
@@ -317,7 +317,7 @@ export declare function createHeaders(props: HeaderProps, options?: {
|
|
|
317
317
|
lastFixed?: boolean | undefined;
|
|
318
318
|
colspan?: number | undefined;
|
|
319
319
|
rowspan?: number | undefined;
|
|
320
|
-
children?: any[] | undefined;
|
|
320
|
+
children?: /*elided*/ any[] | undefined;
|
|
321
321
|
}[]>;
|
|
322
322
|
sortFunctions: Ref<Record<string, DataTableCompareFunction>, Record<string, DataTableCompareFunction>>;
|
|
323
323
|
sortRawFunctions: Ref<Record<string, DataTableCompareFunction>, Record<string, DataTableCompareFunction>>;
|
|
@@ -145,7 +145,7 @@ export function provideSelection(props, _ref9) {
|
|
|
145
145
|
index = index ?? currentPage.value.findIndex(i => i.value === item.value);
|
|
146
146
|
if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {
|
|
147
147
|
const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b);
|
|
148
|
-
items.push(...currentPage.value.slice(start, end + 1));
|
|
148
|
+
items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable));
|
|
149
149
|
} else {
|
|
150
150
|
items.push(item);
|
|
151
151
|
lastSelectedIndex.value = index;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","names":["useProxiedModel","computed","inject","provide","shallowRef","toRef","deepEqual","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","value","Set","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","valueComparator","Function","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","map","find","values","allSelectable","filter","selectable","currentPageSelectable","lastSelectedIndex","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","index","event","findIndex","i","shiftKey","start","end","sort","a","b","push","slice","someSelected","size","length","data","useSelection","Error"],"sources":["../../../../src/components/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, shallowRef, toRef } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n const lastSelectedIndex = shallowRef<number | null>(null)\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem, index?: number, event?: MouseEvent) {\n const items = []\n index = index ?? currentPage.value.findIndex(i => i.value === item.value)\n\n if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {\n const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b)\n\n items.push(...currentPage.value.slice(start, end + 1))\n } else {\n items.push(item)\n lastSelectedIndex.value = index\n }\n\n select(items, !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n const showSelectAll = toRef(() => selectStrategy.value.showSelectAll)\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n lastSelectedIndex,\n selectStrategy,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,gDAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACzDC,SAAS,EAAEC,YAAY,EAAEC,WAAW,kCAE7C;AAoCA,MAAMC,oBAA6C,GAAG;EACpDC,aAAa,EAAE,KAAK;EACpBC,WAAW,EAAEA,CAAA,KAAM,EAAE;EACrBC,MAAM,EAAEC,IAAA,IAAsB;IAAA,IAArB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IACvB,OAAO,IAAIG,GAAG,CAACD,KAAK,GAAG,CAACD,KAAK,CAAC,CAAC,CAAC,EAAEC,KAAK,CAAC,GAAG,EAAE,CAAC;EAChD,CAAC;EACDE,SAAS,EAAEC,KAAA;IAAA,IAAC;MAAEC;IAAS,CAAC,GAAAD,KAAA;IAAA,OAAKC,QAAQ;EAAA;AACvC,CAAC;AAED,MAAMC,kBAA2C,GAAG;EAClDV,aAAa,EAAE,IAAI;EACnBC,WAAW,EAAEU,KAAA;IAAA,IAAC;MAAEC;IAAY,CAAC,GAAAD,KAAA;IAAA,OAAKC,WAAW;EAAA;EAC7CV,MAAM,EAAEW,KAAA,IAAgC;IAAA,IAA/B;MAAET,KAAK;MAAEC,KAAK;MAAEI;IAAS,CAAC,GAAAI,KAAA;IACjC,KAAK,MAAMC,IAAI,IAAIV,KAAK,EAAE;MACxB,IAAIC,KAAK,EAAEI,QAAQ,CAACM,GAAG,CAACD,IAAI,CAACT,KAAK,CAAC,MAC9BI,QAAQ,CAACO,MAAM,CAACF,IAAI,CAACT,KAAK,CAAC;IAClC;IAEA,OAAOI,QAAQ;EACjB,CAAC;EACDF,SAAS,EAAEU,KAAA;IAAA,IAAC;MAAEZ,KAAK;MAAEO,WAAW;MAAEH;IAAS,CAAC,GAAAQ,KAAA;IAAA,OAAKP,kBAAkB,CAACR,MAAM,CAAC;MAAEE,KAAK,EAAEQ,WAAW;MAAEP,KAAK;MAAEI;IAAS,CAAC,CAAC;EAAA;AACrH,CAAC;AAED,MAAMS,iBAA0C,GAAG;EACjDlB,aAAa,EAAE,IAAI;EACnBC,WAAW,EAAEkB,KAAA;IAAA,IAAC;MAAEC;IAAS,CAAC,GAAAD,KAAA;IAAA,OAAKC,QAAQ;EAAA;EACvClB,MAAM,EAAEmB,KAAA,IAAgC;IAAA,IAA/B;MAAEjB,KAAK;MAAEC,KAAK;MAAEI;IAAS,CAAC,GAAAY,KAAA;IACjC,KAAK,MAAMP,IAAI,IAAIV,KAAK,EAAE;MACxB,IAAIC,KAAK,EAAEI,QAAQ,CAACM,GAAG,CAACD,IAAI,CAACT,KAAK,CAAC,MAC9BI,QAAQ,CAACO,MAAM,CAACF,IAAI,CAACT,KAAK,CAAC;IAClC;IAEA,OAAOI,QAAQ;EACjB,CAAC;EACDF,SAAS,EAAEe,KAAA;IAAA,IAAC;MAAEjB,KAAK;MAAEe,QAAQ;MAAEX;IAAS,CAAC,GAAAa,KAAA;IAAA,OAAKJ,iBAAiB,CAAChB,MAAM,CAAC;MAAEE,KAAK,EAAEgB,QAAQ;MAAEf,KAAK;MAAEI;IAAS,CAAC,CAAC;EAAA;AAC9G,CAAC;AAED,OAAO,MAAMc,wBAAwB,GAAG1B,YAAY,CAAC;EACnD2B,UAAU,EAAEC,OAAO;EACnBC,cAAc,EAAE;IACdC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAwC;IAC7DC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVJ,IAAI,EAAEK,KAAiC;IACvCF,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDG,eAAe,EAAE;IACfN,IAAI,EAAEO,QAAsC;IAC5CJ,OAAO,EAAElC;EACX;AACF,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMuC,yBAA4E,GAAGC,MAAM,CAACC,GAAG,CAAC,8BAA8B,CAAC;AAEtI,OAAO,SAASC,gBAAgBA,CAC9BC,KAAqB,EAAAC,KAAA,EAErB;EAAA,IADA;IAAEpB,QAAQ;IAAER;EAAqF,CAAC,GAAA4B,KAAA;EAElG,MAAM/B,QAAQ,GAAGnB,eAAe,CAACiD,KAAK,EAAE,YAAY,EAAEA,KAAK,CAACR,UAAU,EAAEU,CAAC,IAAI;IAC3E,OAAO,IAAInC,GAAG,CAACR,WAAW,CAAC2C,CAAC,CAAC,CAACC,GAAG,CAACD,CAAC,IAAI;MACrC,OAAOrB,QAAQ,CAACf,KAAK,CAACsC,IAAI,CAAC7B,IAAI,IAAIyB,KAAK,CAACN,eAAe,CAACQ,CAAC,EAAE3B,IAAI,CAACT,KAAK,CAAC,CAAC,EAAEA,KAAK,IAAIoC,CAAC;IACtF,CAAC,CAAC,CAAC;EACL,CAAC,EAAEA,CAAC,IAAI;IACN,OAAO,CAAC,GAAGA,CAAC,CAACG,MAAM,CAAC,CAAC,CAAC;EACxB,CAAC,CAAC;EAEF,MAAMC,aAAa,GAAGtD,QAAQ,CAAC,MAAM6B,QAAQ,CAACf,KAAK,CAACyC,MAAM,CAAChC,IAAI,IAAIA,IAAI,CAACiC,UAAU,CAAC,CAAC;EACpF,MAAMC,qBAAqB,GAAGzD,QAAQ,CAAC,MAAMqB,WAAW,CAACP,KAAK,CAACyC,MAAM,CAAChC,IAAI,IAAIA,IAAI,CAACiC,UAAU,CAAC,CAAC;EAE/F,MAAMrB,cAAc,GAAGnC,QAAQ,CAAC,MAAM;IACpC,IAAI,OAAOgD,KAAK,CAACb,cAAc,KAAK,QAAQ,EAAE,OAAOa,KAAK,CAACb,cAAc;IAEzE,QAAQa,KAAK,CAACb,cAAc;MAC1B,KAAK,QAAQ;QAAE,OAAO3B,oBAAoB;MAC1C,KAAK,KAAK;QAAE,OAAOmB,iBAAiB;MACpC,KAAK,MAAM;MACX;QAAS,OAAOR,kBAAkB;IACpC;EACF,CAAC,CAAC;EAEF,MAAMuC,iBAAiB,GAAGvD,UAAU,CAAgB,IAAI,CAAC;EAEzD,SAASwD,UAAUA,CAAE9C,KAAwC,EAAE;IAC7D,OAAON,WAAW,CAACM,KAAK,CAAC,CAAC+C,KAAK,CAACrC,IAAI,IAAIL,QAAQ,CAACJ,KAAK,CAAC+C,GAAG,CAACtC,IAAI,CAACT,KAAK,CAAC,CAAC;EACzE;EAEA,SAASgD,cAAcA,CAAEjD,KAAwC,EAAE;IACjE,OAAON,WAAW,CAACM,KAAK,CAAC,CAACkD,IAAI,CAACxC,IAAI,IAAIL,QAAQ,CAACJ,KAAK,CAAC+C,GAAG,CAACtC,IAAI,CAACT,KAAK,CAAC,CAAC;EACxE;EAEA,SAASH,MAAMA,CAAEE,KAAuB,EAAEC,KAAc,EAAE;IACxD,MAAMkD,WAAW,GAAG7B,cAAc,CAACrB,KAAK,CAACH,MAAM,CAAC;MAC9CE,KAAK;MACLC,KAAK;MACLI,QAAQ,EAAE,IAAIH,GAAG,CAACG,QAAQ,CAACJ,KAAK;IAClC,CAAC,CAAC;IAEFI,QAAQ,CAACJ,KAAK,GAAGkD,WAAW;EAC9B;EAEA,SAASC,YAAYA,CAAE1C,IAAoB,EAAE2C,KAAc,EAAEC,KAAkB,EAAE;IAC/E,MAAMtD,KAAK,GAAG,EAAE;IAChBqD,KAAK,GAAGA,KAAK,IAAI7C,WAAW,CAACP,KAAK,CAACsD,SAAS,CAACC,CAAC,IAAIA,CAAC,CAACvD,KAAK,KAAKS,IAAI,CAACT,KAAK,CAAC;IAEzE,IAAIkC,KAAK,CAACb,cAAc,KAAK,QAAQ,IAAIgC,KAAK,EAAEG,QAAQ,IAAIZ,iBAAiB,CAAC5C,KAAK,KAAK,IAAI,EAAE;MAC5F,MAAM,CAACyD,KAAK,EAAEC,GAAG,CAAC,GAAG,CAACd,iBAAiB,CAAC5C,KAAK,EAAEoD,KAAK,CAAC,CAACO,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;MAE3E9D,KAAK,CAAC+D,IAAI,CAAC,GAAGvD,WAAW,CAACP,KAAK,CAAC+D,KAAK,CAACN,KAAK,EAAEC,GAAG,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC,MAAM;MACL3D,KAAK,CAAC+D,IAAI,CAACrD,IAAI,CAAC;MAChBmC,iBAAiB,CAAC5C,KAAK,GAAGoD,KAAK;IACjC;IAEAvD,MAAM,CAACE,KAAK,EAAE,CAAC8C,UAAU,CAAC,CAACpC,IAAI,CAAC,CAAC,CAAC;EACpC;EAEA,SAASP,SAASA,CAAEF,KAAc,EAAE;IAClC,MAAMkD,WAAW,GAAG7B,cAAc,CAACrB,KAAK,CAACE,SAAS,CAAC;MACjDF,KAAK;MACLe,QAAQ,EAAEyB,aAAa,CAACxC,KAAK;MAC7BO,WAAW,EAAEoC,qBAAqB,CAAC3C,KAAK;MACxCI,QAAQ,EAAE,IAAIH,GAAG,CAACG,QAAQ,CAACJ,KAAK;IAClC,CAAC,CAAC;IAEFI,QAAQ,CAACJ,KAAK,GAAGkD,WAAW;EAC9B;EAEA,MAAMc,YAAY,GAAG9E,QAAQ,CAAC,MAAMkB,QAAQ,CAACJ,KAAK,CAACiE,IAAI,GAAG,CAAC,CAAC;EAC5D,MAAMrE,WAAW,GAAGV,QAAQ,CAAC,MAAM;IACjC,MAAMa,KAAK,GAAGsB,cAAc,CAACrB,KAAK,CAACJ,WAAW,CAAC;MAC7CmB,QAAQ,EAAEyB,aAAa,CAACxC,KAAK;MAC7BO,WAAW,EAAEoC,qBAAqB,CAAC3C;IACrC,CAAC,CAAC;IACF,OAAO,CAAC,CAACD,KAAK,CAACmE,MAAM,IAAIrB,UAAU,CAAC9C,KAAK,CAAC;EAC5C,CAAC,CAAC;EACF,MAAMJ,aAAa,GAAGL,KAAK,CAAC,MAAM+B,cAAc,CAACrB,KAAK,CAACL,aAAa,CAAC;EAErE,MAAMwE,IAAI,GAAG;IACXhB,YAAY;IACZtD,MAAM;IACNK,SAAS;IACT2C,UAAU;IACVG,cAAc;IACdgB,YAAY;IACZpE,WAAW;IACXD,aAAa;IACbiD,iBAAiB;IACjBvB;EACF,CAAC;EAEDjC,OAAO,CAAC0C,yBAAyB,EAAEqC,IAAI,CAAC;EAExC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,YAAYA,CAAA,EAAI;EAC9B,MAAMD,IAAI,GAAGhF,MAAM,CAAC2C,yBAAyB,CAAC;EAE9C,IAAI,CAACqC,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,oBAAoB,CAAC;EAEhD,OAAOF,IAAI;AACb","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"select.js","names":["useProxiedModel","computed","inject","provide","shallowRef","toRef","deepEqual","propsFactory","wrapInArray","singleSelectStrategy","showSelectAll","allSelected","select","_ref","items","value","Set","selectAll","_ref2","selected","pageSelectStrategy","_ref3","currentPage","_ref4","item","add","delete","_ref5","allSelectStrategy","_ref6","allItems","_ref7","_ref8","makeDataTableSelectProps","showSelect","Boolean","selectStrategy","type","String","Object","default","modelValue","Array","valueComparator","Function","VDataTableSelectionSymbol","Symbol","for","provideSelection","props","_ref9","v","map","find","values","allSelectable","filter","selectable","currentPageSelectable","lastSelectedIndex","isSelected","every","has","isSomeSelected","some","newSelected","toggleSelect","index","event","findIndex","i","shiftKey","start","end","sort","a","b","push","slice","someSelected","size","length","data","useSelection","Error"],"sources":["../../../../src/components/VDataTable/composables/select.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, shallowRef, toRef } from 'vue'\nimport { deepEqual, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { DataTableItemProps } from './items'\nimport type { EventProp } from '@/util'\n\nexport interface SelectableItem {\n value: any\n selectable: boolean\n}\n\nexport interface DataTableSelectStrategy {\n showSelectAll: boolean\n allSelected: (data: {\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n }) => SelectableItem[]\n select: (data: {\n items: SelectableItem[]\n value: boolean\n selected: Set<unknown>\n }) => Set<unknown>\n selectAll: (data: {\n value: boolean\n allItems: SelectableItem[]\n currentPage: SelectableItem[]\n selected: Set<unknown>\n }) => Set<unknown>\n}\n\ntype SelectionProps = Pick<DataTableItemProps, 'itemValue'> & {\n modelValue: readonly any[]\n selectStrategy: 'single' | 'page' | 'all'\n valueComparator: typeof deepEqual\n 'onUpdate:modelValue': EventProp<[any[]]> | undefined\n}\n\nconst singleSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: false,\n allSelected: () => [],\n select: ({ items, value }) => {\n return new Set(value ? [items[0]?.value] : [])\n },\n selectAll: ({ selected }) => selected,\n}\n\nconst pageSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ currentPage }) => currentPage,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, currentPage, selected }) => pageSelectStrategy.select({ items: currentPage, value, selected }),\n}\n\nconst allSelectStrategy: DataTableSelectStrategy = {\n showSelectAll: true,\n allSelected: ({ allItems }) => allItems,\n select: ({ items, value, selected }) => {\n for (const item of items) {\n if (value) selected.add(item.value)\n else selected.delete(item.value)\n }\n\n return selected\n },\n selectAll: ({ value, allItems, selected }) => allSelectStrategy.select({ items: allItems, value, selected }),\n}\n\nexport const makeDataTableSelectProps = propsFactory({\n showSelect: Boolean,\n selectStrategy: {\n type: [String, Object] as PropType<'single' | 'page' | 'all'>,\n default: 'page',\n },\n modelValue: {\n type: Array as PropType<readonly any[]>,\n default: () => ([]),\n },\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n}, 'DataTable-select')\n\nexport const VDataTableSelectionSymbol: InjectionKey<ReturnType<typeof provideSelection>> = Symbol.for('vuetify:data-table-selection')\n\nexport function provideSelection (\n props: SelectionProps,\n { allItems, currentPage }: { allItems: Ref<SelectableItem[]>, currentPage: Ref<SelectableItem[]> }\n) {\n const selected = useProxiedModel(props, 'modelValue', props.modelValue, v => {\n return new Set(wrapInArray(v).map(v => {\n return allItems.value.find(item => props.valueComparator(v, item.value))?.value ?? v\n }))\n }, v => {\n return [...v.values()]\n })\n\n const allSelectable = computed(() => allItems.value.filter(item => item.selectable))\n const currentPageSelectable = computed(() => currentPage.value.filter(item => item.selectable))\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single': return singleSelectStrategy\n case 'all': return allSelectStrategy\n case 'page':\n default: return pageSelectStrategy\n }\n })\n\n const lastSelectedIndex = shallowRef<number | null>(null)\n\n function isSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).every(item => selected.value.has(item.value))\n }\n\n function isSomeSelected (items: SelectableItem | SelectableItem[]) {\n return wrapInArray(items).some(item => selected.value.has(item.value))\n }\n\n function select (items: SelectableItem[], value: boolean) {\n const newSelected = selectStrategy.value.select({\n items,\n value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n function toggleSelect (item: SelectableItem, index?: number, event?: MouseEvent) {\n const items = []\n index = index ?? currentPage.value.findIndex(i => i.value === item.value)\n\n if (props.selectStrategy !== 'single' && event?.shiftKey && lastSelectedIndex.value !== null) {\n const [start, end] = [lastSelectedIndex.value, index].sort((a, b) => a - b)\n\n items.push(...currentPage.value.slice(start, end + 1).filter(item => item.selectable))\n } else {\n items.push(item)\n lastSelectedIndex.value = index\n }\n\n select(items, !isSelected([item]))\n }\n\n function selectAll (value: boolean) {\n const newSelected = selectStrategy.value.selectAll({\n value,\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n selected: new Set(selected.value),\n })\n\n selected.value = newSelected\n }\n\n const someSelected = computed(() => selected.value.size > 0)\n const allSelected = computed(() => {\n const items = selectStrategy.value.allSelected({\n allItems: allSelectable.value,\n currentPage: currentPageSelectable.value,\n })\n return !!items.length && isSelected(items)\n })\n const showSelectAll = toRef(() => selectStrategy.value.showSelectAll)\n\n const data = {\n toggleSelect,\n select,\n selectAll,\n isSelected,\n isSomeSelected,\n someSelected,\n allSelected,\n showSelectAll,\n lastSelectedIndex,\n selectStrategy,\n }\n\n provide(VDataTableSelectionSymbol, data)\n\n return data\n}\n\nexport function useSelection () {\n const data = inject(VDataTableSelectionSymbol)\n\n if (!data) throw new Error('Missing selection!')\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -257,9 +257,9 @@ export declare const makeVDatePickerProps: <Defaults extends {
|
|
|
257
257
|
type: import("vue").PropType<unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"]>;
|
|
258
258
|
default: unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"];
|
|
259
259
|
};
|
|
260
|
-
multiple: unknown extends Defaults["multiple"] ? import("vue").PropType<number | boolean |
|
|
261
|
-
type: import("vue").PropType<unknown extends Defaults["multiple"] ? number | boolean |
|
|
262
|
-
default: unknown extends Defaults["multiple"] ? number | boolean |
|
|
260
|
+
multiple: unknown extends Defaults["multiple"] ? import("vue").PropType<number | boolean | (string & {}) | "range"> : {
|
|
261
|
+
type: import("vue").PropType<unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : number | boolean | (string & {}) | "range" | Defaults["multiple"]>;
|
|
262
|
+
default: unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : NonNullable<number | boolean | (string & {}) | "range"> | Defaults["multiple"];
|
|
263
263
|
};
|
|
264
264
|
showWeek: unknown extends Defaults["showWeek"] ? BooleanConstructor : {
|
|
265
265
|
type: import("vue").PropType<unknown extends Defaults["showWeek"] ? boolean : boolean | Defaults["showWeek"]>;
|
|
@@ -103,9 +103,9 @@ export declare const makeVDatePickerMonthProps: <Defaults extends {
|
|
|
103
103
|
type: PropType<unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"]>;
|
|
104
104
|
default: unknown extends Defaults["hideWeekdays"] ? boolean : boolean | Defaults["hideWeekdays"];
|
|
105
105
|
};
|
|
106
|
-
multiple: unknown extends Defaults["multiple"] ? PropType<number | boolean |
|
|
107
|
-
type: PropType<unknown extends Defaults["multiple"] ? number | boolean |
|
|
108
|
-
default: unknown extends Defaults["multiple"] ? number | boolean |
|
|
106
|
+
multiple: unknown extends Defaults["multiple"] ? PropType<number | boolean | (string & {}) | "range"> : {
|
|
107
|
+
type: PropType<unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : number | boolean | (string & {}) | "range" | Defaults["multiple"]>;
|
|
108
|
+
default: unknown extends Defaults["multiple"] ? number | boolean | (string & {}) | "range" : Defaults["multiple"] | NonNullable<number | boolean | (string & {}) | "range">;
|
|
109
109
|
};
|
|
110
110
|
showWeek: unknown extends Defaults["showWeek"] ? BooleanConstructor : {
|
|
111
111
|
type: PropType<unknown extends Defaults["showWeek"] ? boolean : boolean | Defaults["showWeek"]>;
|
|
@@ -146,7 +146,7 @@ export declare const VDatePickerMonth: {
|
|
|
146
146
|
max?: unknown;
|
|
147
147
|
min?: unknown;
|
|
148
148
|
color?: string | undefined;
|
|
149
|
-
multiple?: number | boolean |
|
|
149
|
+
multiple?: number | boolean | (string & {}) | "range" | undefined;
|
|
150
150
|
month?: string | number | undefined;
|
|
151
151
|
year?: string | number | undefined;
|
|
152
152
|
modelValue?: unknown[] | undefined;
|
|
@@ -225,7 +225,7 @@ export declare const VDatePickerMonth: {
|
|
|
225
225
|
max?: unknown;
|
|
226
226
|
min?: unknown;
|
|
227
227
|
color?: string | undefined;
|
|
228
|
-
multiple?: number | boolean |
|
|
228
|
+
multiple?: number | boolean | (string & {}) | "range" | undefined;
|
|
229
229
|
month?: string | number | undefined;
|
|
230
230
|
year?: string | number | undefined;
|
|
231
231
|
modelValue?: unknown[] | undefined;
|
|
@@ -289,7 +289,7 @@ export declare const VDatePickerMonth: {
|
|
|
289
289
|
max?: unknown;
|
|
290
290
|
min?: unknown;
|
|
291
291
|
color?: string | undefined;
|
|
292
|
-
multiple?: number | boolean |
|
|
292
|
+
multiple?: number | boolean | (string & {}) | "range" | undefined;
|
|
293
293
|
month?: string | number | undefined;
|
|
294
294
|
year?: string | number | undefined;
|
|
295
295
|
modelValue?: unknown[] | undefined;
|