@vuetify/nightly 3.8.3-master.2025-05-05 → 3.8.4-master.2025-05-07
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -35
- package/dist/json/attributes.json +3324 -3324
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +162 -162
- package/dist/json/web-types.json +6199 -6199
- package/dist/vuetify-labs.cjs +54 -44
- package/dist/vuetify-labs.css +3363 -3359
- package/dist/vuetify-labs.d.ts +98 -98
- package/dist/vuetify-labs.esm.js +54 -44
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +54 -44
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +33 -11
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4003 -3999
- package/dist/vuetify.d.ts +127 -127
- package/dist/vuetify.esm.js +33 -11
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +33 -11
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +17 -14
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +3 -3
- package/lib/components/VAutocomplete/VAutocomplete.js +5 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +6 -6
- package/lib/components/VCombobox/VCombobox.d.ts +3 -3
- 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 +55 -55
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +55 -55
- package/lib/components/VDataTable/composables/headers.d.ts +75 -75
- package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +6 -6
- 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/VNumberInput/VNumberInput.d.ts +3 -3
- package/lib/components/VOverlay/locationStrategies.js +1 -1
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +3 -3
- package/lib/components/VTabs/VTabs.d.ts +6 -6
- package/lib/components/transitions/dialog-transition.js +3 -3
- package/lib/components/transitions/dialog-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 +57 -57
- 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 +9 -9
- 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 +6 -6
@@ -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>>;
|
@@ -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;
|
@@ -12,7 +12,7 @@ import { useFocus } from "../../composables/focus.js";
|
|
12
12
|
import { forwardRefs } from "../../composables/forwardRefs.js";
|
13
13
|
import { useLocale } from "../../composables/locale.js";
|
14
14
|
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
15
|
-
import { computed, nextTick, ref, toRef, watch } from 'vue';
|
15
|
+
import { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue';
|
16
16
|
import { callEvent, filterInputAttrs, genericComponent, humanReadableFileSize, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
17
17
|
export const makeVFileInputProps = propsFactory({
|
18
18
|
chips: Boolean,
|
@@ -97,6 +97,7 @@ export const VFileInput = genericComponent()({
|
|
97
97
|
const inputRef = ref();
|
98
98
|
const isActive = toRef(() => isFocused.value || props.active);
|
99
99
|
const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant));
|
100
|
+
const isDragging = shallowRef(false);
|
100
101
|
function onFocus() {
|
101
102
|
if (inputRef.value !== document.activeElement) {
|
102
103
|
inputRef.value?.focus();
|
@@ -123,11 +124,26 @@ export const VFileInput = genericComponent()({
|
|
123
124
|
}
|
124
125
|
function onDragover(e) {
|
125
126
|
e.preventDefault();
|
127
|
+
e.stopImmediatePropagation();
|
128
|
+
isDragging.value = true;
|
129
|
+
}
|
130
|
+
function onDragleave(e) {
|
131
|
+
e.preventDefault();
|
132
|
+
isDragging.value = false;
|
126
133
|
}
|
127
134
|
function onDrop(e) {
|
128
135
|
e.preventDefault();
|
129
|
-
|
130
|
-
|
136
|
+
e.stopImmediatePropagation();
|
137
|
+
isDragging.value = false;
|
138
|
+
if (!e.dataTransfer?.files?.length || !inputRef.value) return;
|
139
|
+
const dataTransfer = new DataTransfer();
|
140
|
+
for (const file of e.dataTransfer.files) {
|
141
|
+
dataTransfer.items.add(file);
|
142
|
+
}
|
143
|
+
inputRef.value.files = dataTransfer.files;
|
144
|
+
inputRef.value.dispatchEvent(new Event('change', {
|
145
|
+
bubbles: true
|
146
|
+
}));
|
131
147
|
}
|
132
148
|
watch(model, newValue => {
|
133
149
|
const hasModelReset = !Array.isArray(newValue) || !newValue.length;
|
@@ -149,6 +165,7 @@ export const VFileInput = genericComponent()({
|
|
149
165
|
"modelValue": props.multiple ? model.value : model.value[0],
|
150
166
|
"class": ['v-file-input', {
|
151
167
|
'v-file-input--chips': !!props.chips,
|
168
|
+
'v-file-input--dragging': isDragging.value,
|
152
169
|
'v-file-input--hide': props.hideInput,
|
153
170
|
'v-input--plain-underlined': isPlainOrUnderlined.value
|
154
171
|
}, props.class],
|
@@ -210,6 +227,7 @@ export const VFileInput = genericComponent()({
|
|
210
227
|
const target = e.target;
|
211
228
|
model.value = [...(target.files ?? [])];
|
212
229
|
},
|
230
|
+
"onDragleave": onDragleave,
|
213
231
|
"onFocus": onFocus,
|
214
232
|
"onBlur": blur
|
215
233
|
}, slotProps, inputAttrs), null), _createVNode("div", {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","onDrop","dataTransfer","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","target","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n }\n function onDrop (e: DragEvent) {\n e.preventDefault()\n\n if (!e.dataTransfer) return\n\n model.value = [...e.dataTransfer.files ?? []]\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VFileInput.js","names":["VChip","VCounter","VField","makeVFieldProps","makeVInputProps","VInput","useFocus","forwardRefs","useLocale","useProxiedModel","computed","nextTick","ref","shallowRef","toRef","watch","callEvent","filterInputAttrs","genericComponent","humanReadableFileSize","propsFactory","useRender","wrapInArray","makeVFileInputProps","chips","Boolean","counter","counterSizeString","type","String","default","counterString","hideInput","multiple","showSize","Number","validator","v","includes","prependIcon","modelValue","Array","Object","props","val","every","clearable","VFileInput","name","inheritAttrs","emits","e","focused","files","setup","_ref","attrs","emit","slots","t","model","isArray","isFocused","focus","blur","base","undefined","totalBytes","value","reduce","bytes","_ref2","size","totalBytesReadable","fileNames","map","file","counterValue","fileCount","length","vInputRef","vFieldRef","inputRef","isActive","active","isPlainOrUnderlined","variant","isDragging","onFocus","document","activeElement","onClickPrepend","click","onControlMousedown","onControlClick","onClear","stopPropagation","onDragover","preventDefault","stopImmediatePropagation","onDragleave","onDrop","dataTransfer","DataTransfer","items","add","dispatchEvent","Event","bubbles","newValue","hasModelReset","hasCounter","hasDetails","details","rootAttrs","inputAttrs","_","inputProps","filterProps","fieldProps","_createVNode","_mergeProps","class","style","_ref3","id","isDisabled","isDirty","isReadonly","isValid","dirty","_ref4","fieldClass","slotProps","_Fragment","target","selection","text","join","disabled"],"sources":["../../../src/components/VFileInput/VFileInput.tsx"],"sourcesContent":["// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\nimport { makeVFieldProps } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref, shallowRef, toRef, watch } from 'vue'\nimport {\n callEvent,\n filterInputAttrs,\n genericComponent,\n humanReadableFileSize,\n propsFactory,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\nexport type VFileInputSlots = VInputSlots & VFieldSlots & {\n counter: never\n selection: {\n fileNames: string[]\n totalBytes: number\n totalBytesReadable: string\n }\n}\n\nexport const makeVFileInputProps = propsFactory({\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n hideInput: Boolean,\n multiple: Boolean,\n showSize: {\n type: [Boolean, Number, String] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(Number(v))\n )\n },\n },\n\n ...makeVInputProps({ prependIcon: '$file' }),\n\n modelValue: {\n type: [Array, Object] as PropType<File[] | File | null>,\n default: (props: any) => props.multiple ? [] : null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n}, 'VFileInput')\n\nexport const VFileInput = genericComponent<VFileInputSlots>()({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: makeVFileInputProps(),\n\n emits: {\n 'click:control': (e: MouseEvent) => true,\n 'mousedown:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (files: File | File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (!props.multiple && Array.isArray(val)) ? val[0] : val,\n )\n const { isFocused, focus, blur } = useFocus(props)\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const inputRef = ref<HTMLInputElement>()\n const isActive = toRef(() => isFocused.value || props.active)\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n const isDragging = shallowRef(false)\n\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) focus()\n }\n function onClickPrepend (e: MouseEvent) {\n inputRef.value?.click()\n }\n function onControlMousedown (e: MouseEvent) {\n emit('mousedown:control', e)\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n callEvent(props['onClick:clear'], e)\n })\n }\n function onDragover (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = true\n }\n function onDragleave (e: DragEvent) {\n e.preventDefault()\n isDragging.value = false\n }\n function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n isDragging.value = false\n\n if (!e.dataTransfer?.files?.length || !inputRef.value) return\n\n const dataTransfer = new DataTransfer()\n\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file)\n }\n\n inputRef.value.files = dataTransfer.files\n inputRef.value.dispatchEvent(new Event('change', { bubbles: true }))\n }\n\n watch(model, newValue => {\n const hasModelReset = !Array.isArray(newValue) || !newValue.length\n\n if (hasModelReset && inputRef.value) {\n inputRef.value.value = ''\n }\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const hasDetails = !!(hasCounter || slots.details)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n const fieldProps = VField.filterProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n modelValue={ props.multiple ? model.value : model.value[0] }\n class={[\n 'v-file-input',\n {\n 'v-file-input--chips': !!props.chips,\n 'v-file-input--dragging': isDragging.value,\n 'v-file-input--hide': props.hideInput,\n 'v-input--plain-underlined': isPlainOrUnderlined.value,\n },\n props.class,\n ]}\n style={ props.style }\n onClick:prepend={ onClickPrepend }\n { ...rootAttrs }\n { ...inputProps }\n centerAffix={ !isPlainOrUnderlined.value }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onMousedown={ onControlMousedown }\n onClick={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ props['onClick:prependInner'] }\n onClick:appendInner={ props['onClick:appendInner'] }\n { ...fieldProps }\n id={ id.value }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n disabled={ isDisabled.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n onDragover={ onDragover }\n onDrop={ onDrop }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n if (isReadonly.value) e.preventDefault()\n\n onFocus()\n }}\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n onDragleave={ onDragleave }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n <div class={ fieldClass }>\n { !!model.value?.length && !props.hideInput && (\n slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n text={ text }\n />\n ))\n : fileNames.value.join(', ')\n )}\n </div>\n </>\n ),\n }}\n </VField>\n ),\n details: hasDetails ? slotProps => (\n <>\n { slots.details?.(slotProps) }\n\n { hasCounter && (\n <>\n <span />\n\n <VCounter\n active={ !!model.value?.length }\n value={ counterValue.value }\n disabled={ props.disabled }\n v-slots:default={ slots.counter }\n />\n </>\n )}\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return forwardRefs({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n"],"mappings":"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","ignoreList":[]}
|