@vuetify/nightly 3.7.5-master.2024-12-11 → 3.7.5-master.2024-12-12
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/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +4228 -3932
- package/dist/json/importMap-labs.json +20 -12
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +84 -0
- package/dist/json/web-types.json +8499 -7558
- package/dist/vuetify-labs.css +4391 -4318
- package/dist/vuetify-labs.d.ts +1314 -1
- package/dist/vuetify-labs.esm.js +325 -4
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +325 -4
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +3206 -3206
- package/dist/vuetify.d.ts +59 -57
- package/dist/vuetify.esm.js +10 -4
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +10 -4
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +5 -5
- package/dist/vuetify.min.js.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +59 -57
- package/lib/labs/VFileUpload/VFileUpload.css +74 -0
- package/lib/labs/VFileUpload/VFileUpload.mjs +241 -0
- package/lib/labs/VFileUpload/VFileUpload.mjs.map +1 -0
- package/lib/labs/VFileUpload/VFileUpload.sass +75 -0
- package/lib/labs/VFileUpload/VFileUploadItem.mjs +95 -0
- package/lib/labs/VFileUpload/VFileUploadItem.mjs.map +1 -0
- package/lib/labs/VFileUpload/_variables.scss +12 -0
- package/lib/labs/VFileUpload/index.d.mts +1365 -0
- package/lib/labs/VFileUpload/index.mjs +3 -0
- package/lib/labs/VFileUpload/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +1348 -37
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/af.mjs +5 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +5 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +5 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +5 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +5 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +5 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +5 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +5 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +5 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +5 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +5 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +5 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +5 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +5 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +5 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +5 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +5 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +5 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +5 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +215 -0
- package/lib/locale/it.mjs +5 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +5 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/km.mjs +5 -0
- package/lib/locale/km.mjs.map +1 -1
- package/lib/locale/ko.mjs +5 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +5 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +5 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +5 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +5 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +5 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +5 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +5 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +5 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +5 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +5 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +5 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +5 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +5 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +5 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +5 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +5 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +5 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +5 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/package.json +1 -1
package/lib/entry-bundler.mjs
CHANGED
@@ -16,7 +16,7 @@ export const createVuetify = function () {
|
|
16
16
|
...options
|
17
17
|
});
|
18
18
|
};
|
19
|
-
export const version = "3.7.5-master.2024-12-
|
19
|
+
export const version = "3.7.5-master.2024-12-12";
|
20
20
|
createVuetify.version = version;
|
21
21
|
export { blueprints, components, directives };
|
22
22
|
export * from "./composables/index.mjs";
|
package/lib/framework.mjs
CHANGED
package/lib/iconsets/mdi.mjs
CHANGED
@@ -45,7 +45,8 @@ const aliases = {
|
|
45
45
|
calendar: 'mdi-calendar',
|
46
46
|
treeviewCollapse: 'mdi-menu-down',
|
47
47
|
treeviewExpand: 'mdi-menu-right',
|
48
|
-
eyeDropper: 'mdi-eyedropper'
|
48
|
+
eyeDropper: 'mdi-eyedropper',
|
49
|
+
upload: 'mdi-cloud-upload'
|
49
50
|
};
|
50
51
|
const mdi = {
|
51
52
|
// Not using mergeProps here, functional components merge props by default (?)
|
package/lib/iconsets/mdi.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mdi.mjs","names":["VClassIcon","h","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","calendar","treeviewCollapse","treeviewExpand","eyeDropper","mdi","component","props","class"],"sources":["../../src/iconsets/mdi.ts"],"sourcesContent":["// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAAA,SACSA,UAAU,oCAEnB;AACA,SAASC,CAAC,QAAQ,KAAK;;AAEvB;;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,gBAAgB;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE,kBAAkB;EAC1BC,KAAK,EAAE,WAAW;EAClBC,MAAM,EAAE,kBAAkB;EAAE;EAC5BC,KAAK,EAAE,kBAAkB;EACzBC,OAAO,EAAE,kBAAkB;EAC3BC,IAAI,EAAE,iBAAiB;EACvBC,OAAO,EAAE,kBAAkB;EAC3BC,KAAK,EAAE,kBAAkB;EACzBC,IAAI,EAAE,kBAAkB;EACxBC,IAAI,EAAE,mBAAmB;EACzBC,UAAU,EAAE,qBAAqB;EACjCC,WAAW,EAAE,4BAA4B;EACzCC,qBAAqB,EAAE,eAAe;EACtCC,SAAS,EAAE,YAAY;EAAE;EACzBC,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,gBAAgB;EAC1BC,MAAM,EAAE,kBAAkB;EAC1BC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,eAAe;EACzBC,QAAQ,EAAE,eAAe;EACzBC,OAAO,EAAE,qBAAqB;EAC9BC,QAAQ,EAAE,oBAAoB;EAC9BC,IAAI,EAAE,YAAY;EAClBC,WAAW,EAAE,kBAAkB;EAC/BC,UAAU,EAAE,UAAU;EACtBC,UAAU,EAAE,oBAAoB;EAChCC,OAAO,EAAE,YAAY;EACrBC,KAAK,EAAE,gBAAgB;EACvBC,IAAI,EAAE,eAAe;EACrBC,MAAM,EAAE,4BAA4B;EACpCC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,UAAU;EAChBC,KAAK,EAAE,WAAW;EAClBC,QAAQ,EAAE,cAAc;EACxBC,gBAAgB,EAAE,eAAe;EACjCC,cAAc,EAAE,gBAAgB;EAChCC,UAAU,EAAE;
|
1
|
+
{"version":3,"file":"mdi.mjs","names":["VClassIcon","h","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","calendar","treeviewCollapse","treeviewExpand","eyeDropper","upload","mdi","component","props","class"],"sources":["../../src/iconsets/mdi.ts"],"sourcesContent":["// Composables\nimport { VClassIcon } from '@/composables/icons'\n\n// Utilities\nimport { h } from 'vue'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n eyeDropper: 'mdi-eyedropper',\n upload: 'mdi-cloud-upload',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAAA,SACSA,UAAU,oCAEnB;AACA,SAASC,CAAC,QAAQ,KAAK;;AAEvB;;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,gBAAgB;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE,kBAAkB;EAC1BC,KAAK,EAAE,WAAW;EAClBC,MAAM,EAAE,kBAAkB;EAAE;EAC5BC,KAAK,EAAE,kBAAkB;EACzBC,OAAO,EAAE,kBAAkB;EAC3BC,IAAI,EAAE,iBAAiB;EACvBC,OAAO,EAAE,kBAAkB;EAC3BC,KAAK,EAAE,kBAAkB;EACzBC,IAAI,EAAE,kBAAkB;EACxBC,IAAI,EAAE,mBAAmB;EACzBC,UAAU,EAAE,qBAAqB;EACjCC,WAAW,EAAE,4BAA4B;EACzCC,qBAAqB,EAAE,eAAe;EACtCC,SAAS,EAAE,YAAY;EAAE;EACzBC,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,gBAAgB;EAC1BC,MAAM,EAAE,kBAAkB;EAC1BC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,eAAe;EACzBC,QAAQ,EAAE,eAAe;EACzBC,OAAO,EAAE,qBAAqB;EAC9BC,QAAQ,EAAE,oBAAoB;EAC9BC,IAAI,EAAE,YAAY;EAClBC,WAAW,EAAE,kBAAkB;EAC/BC,UAAU,EAAE,UAAU;EACtBC,UAAU,EAAE,oBAAoB;EAChCC,OAAO,EAAE,YAAY;EACrBC,KAAK,EAAE,gBAAgB;EACvBC,IAAI,EAAE,eAAe;EACrBC,MAAM,EAAE,4BAA4B;EACpCC,IAAI,EAAE,eAAe;EACrBC,IAAI,EAAE,UAAU;EAChBC,KAAK,EAAE,WAAW;EAClBC,QAAQ,EAAE,cAAc;EACxBC,gBAAgB,EAAE,eAAe;EACjCC,cAAc,EAAE,gBAAgB;EAChCC,UAAU,EAAE,gBAAgB;EAC5BC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,GAAY,GAAG;EACnB;EACAC,SAAS,EAAGC,KAAU,IAAK5C,CAAC,CAACD,UAAU,EAAE;IAAE,GAAG6C,KAAK;IAAEC,KAAK,EAAE;EAAM,CAAC;AACrE,CAAC;AAED,SAAS5C,OAAO,EAAEyC,GAAG","ignoreList":[]}
|
package/lib/index.d.mts
CHANGED
@@ -487,39 +487,47 @@ declare module 'vue' {
|
|
487
487
|
}
|
488
488
|
export interface GlobalComponents {
|
489
489
|
VApp: typeof import('vuetify/components')['VApp']
|
490
|
-
VAvatar: typeof import('vuetify/components')['VAvatar']
|
491
490
|
VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
|
492
491
|
VAppBar: typeof import('vuetify/components')['VAppBar']
|
493
492
|
VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
|
494
493
|
VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
|
494
|
+
VAlert: typeof import('vuetify/components')['VAlert']
|
495
|
+
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
496
|
+
VBadge: typeof import('vuetify/components')['VBadge']
|
497
|
+
VAvatar: typeof import('vuetify/components')['VAvatar']
|
495
498
|
VBanner: typeof import('vuetify/components')['VBanner']
|
496
499
|
VBannerActions: typeof import('vuetify/components')['VBannerActions']
|
497
500
|
VBannerText: typeof import('vuetify/components')['VBannerText']
|
498
|
-
VBadge: typeof import('vuetify/components')['VBadge']
|
499
|
-
VAlert: typeof import('vuetify/components')['VAlert']
|
500
|
-
VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
|
501
|
-
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
502
501
|
VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
|
503
|
-
VBtn: typeof import('vuetify/components')['VBtn']
|
504
502
|
VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
|
505
503
|
VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
|
506
504
|
VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
|
507
|
-
|
505
|
+
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
506
|
+
VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
|
507
|
+
VBtn: typeof import('vuetify/components')['VBtn']
|
508
|
+
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
509
|
+
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
510
|
+
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
511
|
+
VCarousel: typeof import('vuetify/components')['VCarousel']
|
512
|
+
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
513
|
+
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
508
514
|
VCard: typeof import('vuetify/components')['VCard']
|
509
515
|
VCardActions: typeof import('vuetify/components')['VCardActions']
|
510
516
|
VCardItem: typeof import('vuetify/components')['VCardItem']
|
511
517
|
VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
|
512
518
|
VCardText: typeof import('vuetify/components')['VCardText']
|
513
519
|
VCardTitle: typeof import('vuetify/components')['VCardTitle']
|
514
|
-
VCheckbox: typeof import('vuetify/components')['VCheckbox']
|
515
|
-
VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
|
516
|
-
VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
|
517
|
-
VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
|
518
|
-
VCarousel: typeof import('vuetify/components')['VCarousel']
|
519
|
-
VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
|
520
520
|
VChip: typeof import('vuetify/components')['VChip']
|
521
|
-
|
521
|
+
VCombobox: typeof import('vuetify/components')['VCombobox']
|
522
522
|
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
523
|
+
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
524
|
+
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
525
|
+
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
526
|
+
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
527
|
+
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
528
|
+
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
529
|
+
VCode: typeof import('vuetify/components')['VCode']
|
530
|
+
VCounter: typeof import('vuetify/components')['VCounter']
|
523
531
|
VDataTable: typeof import('vuetify/components')['VDataTable']
|
524
532
|
VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
|
525
533
|
VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
|
@@ -527,38 +535,29 @@ declare module 'vue' {
|
|
527
535
|
VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
|
528
536
|
VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
|
529
537
|
VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
|
530
|
-
|
531
|
-
VCounter: typeof import('vuetify/components')['VCounter']
|
532
|
-
VDivider: typeof import('vuetify/components')['VDivider']
|
533
|
-
VFab: typeof import('vuetify/components')['VFab']
|
534
|
-
VDatePicker: typeof import('vuetify/components')['VDatePicker']
|
535
|
-
VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
|
536
|
-
VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
|
537
|
-
VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
|
538
|
-
VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
|
539
|
-
VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
|
538
|
+
VDialog: typeof import('vuetify/components')['VDialog']
|
540
539
|
VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
|
541
540
|
VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
|
542
541
|
VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
|
543
542
|
VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
|
544
|
-
|
543
|
+
VDivider: typeof import('vuetify/components')['VDivider']
|
544
|
+
VEmptyState: typeof import('vuetify/components')['VEmptyState']
|
545
545
|
VField: typeof import('vuetify/components')['VField']
|
546
546
|
VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
|
547
|
+
VFab: typeof import('vuetify/components')['VFab']
|
547
548
|
VFooter: typeof import('vuetify/components')['VFooter']
|
548
|
-
|
549
|
-
|
549
|
+
VImg: typeof import('vuetify/components')['VImg']
|
550
|
+
VFileInput: typeof import('vuetify/components')['VFileInput']
|
551
|
+
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
550
552
|
VIcon: typeof import('vuetify/components')['VIcon']
|
551
553
|
VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
|
552
554
|
VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
|
553
555
|
VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
|
554
556
|
VClassIcon: typeof import('vuetify/components')['VClassIcon']
|
555
|
-
|
556
|
-
VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
|
557
|
-
VKbd: typeof import('vuetify/components')['VKbd']
|
557
|
+
VInput: typeof import('vuetify/components')['VInput']
|
558
558
|
VItemGroup: typeof import('vuetify/components')['VItemGroup']
|
559
559
|
VItem: typeof import('vuetify/components')['VItem']
|
560
|
-
|
561
|
-
VInput: typeof import('vuetify/components')['VInput']
|
560
|
+
VKbd: typeof import('vuetify/components')['VKbd']
|
562
561
|
VList: typeof import('vuetify/components')['VList']
|
563
562
|
VListGroup: typeof import('vuetify/components')['VListGroup']
|
564
563
|
VListImg: typeof import('vuetify/components')['VListImg']
|
@@ -568,72 +567,73 @@ declare module 'vue' {
|
|
568
567
|
VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
|
569
568
|
VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
|
570
569
|
VListSubheader: typeof import('vuetify/components')['VListSubheader']
|
570
|
+
VMain: typeof import('vuetify/components')['VMain']
|
571
|
+
VLabel: typeof import('vuetify/components')['VLabel']
|
572
|
+
VMessages: typeof import('vuetify/components')['VMessages']
|
571
573
|
VMenu: typeof import('vuetify/components')['VMenu']
|
572
574
|
VOtpInput: typeof import('vuetify/components')['VOtpInput']
|
573
|
-
VMain: typeof import('vuetify/components')['VMain']
|
574
575
|
VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
|
575
|
-
VMessages: typeof import('vuetify/components')['VMessages']
|
576
576
|
VPagination: typeof import('vuetify/components')['VPagination']
|
577
|
-
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
578
|
-
VOverlay: typeof import('vuetify/components')['VOverlay']
|
579
577
|
VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
|
580
|
-
VRating: typeof import('vuetify/components')['VRating']
|
581
578
|
VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
|
579
|
+
VOverlay: typeof import('vuetify/components')['VOverlay']
|
580
|
+
VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
|
581
|
+
VSheet: typeof import('vuetify/components')['VSheet']
|
582
|
+
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
583
|
+
VRating: typeof import('vuetify/components')['VRating']
|
582
584
|
VSelect: typeof import('vuetify/components')['VSelect']
|
583
585
|
VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
|
584
|
-
VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
|
585
586
|
VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
|
586
587
|
VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
|
587
|
-
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
588
588
|
VSnackbar: typeof import('vuetify/components')['VSnackbar']
|
589
|
-
|
589
|
+
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
590
|
+
VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
|
591
|
+
VSlider: typeof import('vuetify/components')['VSlider']
|
592
|
+
VSwitch: typeof import('vuetify/components')['VSwitch']
|
590
593
|
VStepper: typeof import('vuetify/components')['VStepper']
|
591
594
|
VStepperActions: typeof import('vuetify/components')['VStepperActions']
|
592
595
|
VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
|
593
596
|
VStepperItem: typeof import('vuetify/components')['VStepperItem']
|
594
597
|
VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
|
595
598
|
VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
|
596
|
-
|
599
|
+
VTable: typeof import('vuetify/components')['VTable']
|
600
|
+
VTextField: typeof import('vuetify/components')['VTextField']
|
601
|
+
VToolbar: typeof import('vuetify/components')['VToolbar']
|
602
|
+
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
603
|
+
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
604
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
597
605
|
VTab: typeof import('vuetify/components')['VTab']
|
598
606
|
VTabs: typeof import('vuetify/components')['VTabs']
|
599
607
|
VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
|
600
608
|
VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
|
601
|
-
VSystemBar: typeof import('vuetify/components')['VSystemBar']
|
602
|
-
VSwitch: typeof import('vuetify/components')['VSwitch']
|
603
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
604
|
-
VTable: typeof import('vuetify/components')['VTable']
|
605
609
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
606
610
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
607
|
-
|
608
|
-
VToolbar: typeof import('vuetify/components')['VToolbar']
|
609
|
-
VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
|
610
|
-
VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
|
611
|
+
VTooltip: typeof import('vuetify/components')['VTooltip']
|
611
612
|
VWindow: typeof import('vuetify/components')['VWindow']
|
612
613
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
613
|
-
VTooltip: typeof import('vuetify/components')['VTooltip']
|
614
614
|
VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
|
615
615
|
VDataIterator: typeof import('vuetify/components')['VDataIterator']
|
616
616
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
617
|
+
VForm: typeof import('vuetify/components')['VForm']
|
618
|
+
VHover: typeof import('vuetify/components')['VHover']
|
617
619
|
VContainer: typeof import('vuetify/components')['VContainer']
|
618
620
|
VCol: typeof import('vuetify/components')['VCol']
|
619
621
|
VRow: typeof import('vuetify/components')['VRow']
|
620
622
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
621
|
-
VForm: typeof import('vuetify/components')['VForm']
|
622
|
-
VHover: typeof import('vuetify/components')['VHover']
|
623
623
|
VLazy: typeof import('vuetify/components')['VLazy']
|
624
624
|
VLayout: typeof import('vuetify/components')['VLayout']
|
625
625
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
626
626
|
VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
|
627
627
|
VNoSsr: typeof import('vuetify/components')['VNoSsr']
|
628
628
|
VParallax: typeof import('vuetify/components')['VParallax']
|
629
|
-
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
630
629
|
VRadio: typeof import('vuetify/components')['VRadio']
|
631
630
|
VResponsive: typeof import('vuetify/components')['VResponsive']
|
631
|
+
VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
|
632
632
|
VSparkline: typeof import('vuetify/components')['VSparkline']
|
633
633
|
VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
|
634
634
|
VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
|
635
|
-
VValidation: typeof import('vuetify/components')['VValidation']
|
636
635
|
VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
|
636
|
+
VValidation: typeof import('vuetify/components')['VValidation']
|
637
637
|
VFabTransition: typeof import('vuetify/components')['VFabTransition']
|
638
638
|
VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
|
639
639
|
VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
|
@@ -650,21 +650,23 @@ declare module 'vue' {
|
|
650
650
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
651
651
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
652
652
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
653
|
-
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
654
|
-
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
655
|
-
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
656
653
|
VCalendar: typeof import('vuetify/labs/components')['VCalendar']
|
657
654
|
VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
|
658
655
|
VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
|
659
656
|
VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
|
660
657
|
VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
|
661
658
|
VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
|
659
|
+
VPicker: typeof import('vuetify/labs/components')['VPicker']
|
660
|
+
VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
|
662
661
|
VTreeview: typeof import('vuetify/labs/components')['VTreeview']
|
663
662
|
VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
|
664
663
|
VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
|
664
|
+
VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
|
665
665
|
VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
|
666
666
|
VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
|
667
667
|
VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
|
668
|
+
VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
|
669
|
+
VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
|
668
670
|
VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
|
669
671
|
VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
|
670
672
|
VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
|
@@ -0,0 +1,74 @@
|
|
1
|
+
.v-file-upload {
|
2
|
+
padding: 64px 0;
|
3
|
+
flex-direction: column;
|
4
|
+
justify-content: center;
|
5
|
+
align-items: center;
|
6
|
+
position: relative;
|
7
|
+
}
|
8
|
+
.v-file-upload.v-sheet {
|
9
|
+
display: flex;
|
10
|
+
border-radius: 4px;
|
11
|
+
border-style: dashed;
|
12
|
+
border-width: 2px;
|
13
|
+
}
|
14
|
+
.v-file-upload.v-file-upload--density-compact {
|
15
|
+
padding: 32px 0;
|
16
|
+
flex-direction: row;
|
17
|
+
gap: 1rem;
|
18
|
+
}
|
19
|
+
.v-file-upload .v-overlay__scrim {
|
20
|
+
pointer-events: none;
|
21
|
+
}
|
22
|
+
.v-file-upload--disabled {
|
23
|
+
pointer-events: none;
|
24
|
+
opacity: var(--v-disabled-opacity);
|
25
|
+
}
|
26
|
+
.v-file-upload--dragging > * {
|
27
|
+
pointer-events: none;
|
28
|
+
}
|
29
|
+
.v-file-upload--clickable {
|
30
|
+
cursor: pointer;
|
31
|
+
}
|
32
|
+
.v-file-upload input[type=file] {
|
33
|
+
left: 0;
|
34
|
+
opacity: 0;
|
35
|
+
position: absolute;
|
36
|
+
cursor: pointer;
|
37
|
+
top: 0;
|
38
|
+
z-index: -1;
|
39
|
+
}
|
40
|
+
|
41
|
+
.v-file-upload-title {
|
42
|
+
font-size: 1.5rem;
|
43
|
+
font-weight: 600;
|
44
|
+
}
|
45
|
+
|
46
|
+
.v-file-upload-icon {
|
47
|
+
opacity: var(--v-medium-emphasis-opacity);
|
48
|
+
font-size: 3rem;
|
49
|
+
margin-bottom: 1rem;
|
50
|
+
}
|
51
|
+
.v-file-upload--density-comfortable .v-file-upload-icon {
|
52
|
+
font-size: 2.5rem;
|
53
|
+
margin-bottom: 0.5rem;
|
54
|
+
}
|
55
|
+
.v-file-upload--density-compact .v-file-upload-icon {
|
56
|
+
font-size: 2rem;
|
57
|
+
margin-bottom: 0rem;
|
58
|
+
}
|
59
|
+
|
60
|
+
.v-file-upload-divider {
|
61
|
+
align-items: center;
|
62
|
+
display: flex;
|
63
|
+
margin: 32px 0;
|
64
|
+
justify-content: center;
|
65
|
+
width: 100%;
|
66
|
+
}
|
67
|
+
|
68
|
+
.v-file-upload-items {
|
69
|
+
margin: 16px 0;
|
70
|
+
}
|
71
|
+
|
72
|
+
.v-file-upload-item:not(:first-child) {
|
73
|
+
margin-top: 8px;
|
74
|
+
}
|
@@ -0,0 +1,241 @@
|
|
1
|
+
import { resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
|
2
|
+
// Styles
|
3
|
+
import "./VFileUpload.css";
|
4
|
+
|
5
|
+
// Components
|
6
|
+
import { VFileUploadItem } from "./VFileUploadItem.mjs";
|
7
|
+
import { VBtn } from "../../components/VBtn/VBtn.mjs";
|
8
|
+
import { VDefaultsProvider } from "../../components/VDefaultsProvider/VDefaultsProvider.mjs";
|
9
|
+
import { makeVDividerProps, VDivider } from "../../components/VDivider/VDivider.mjs";
|
10
|
+
import { VIcon } from "../../components/VIcon/VIcon.mjs";
|
11
|
+
import { VOverlay } from "../../components/VOverlay/VOverlay.mjs";
|
12
|
+
import { makeVSheetProps, VSheet } from "../../components/VSheet/VSheet.mjs"; // Composables
|
13
|
+
import { makeDelayProps } from "../../composables/delay.mjs";
|
14
|
+
import { makeDensityProps, useDensity } from "../../composables/density.mjs";
|
15
|
+
import { IconValue } from "../../composables/icons.mjs";
|
16
|
+
import { useLocale } from "../../composables/locale.mjs";
|
17
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
18
|
+
import { onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
19
|
+
import { filterInputAttrs, genericComponent, only, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
|
20
|
+
export const makeVFileUploadProps = propsFactory({
|
21
|
+
browseText: {
|
22
|
+
type: String,
|
23
|
+
default: '$vuetify.fileUpload.browse'
|
24
|
+
},
|
25
|
+
dividerText: {
|
26
|
+
type: String,
|
27
|
+
default: '$vuetify.fileUpload.divider'
|
28
|
+
},
|
29
|
+
title: {
|
30
|
+
type: String,
|
31
|
+
default: '$vuetify.fileUpload.title'
|
32
|
+
},
|
33
|
+
subtitle: String,
|
34
|
+
icon: {
|
35
|
+
type: IconValue,
|
36
|
+
default: '$upload'
|
37
|
+
},
|
38
|
+
modelValue: {
|
39
|
+
type: [Array, Object],
|
40
|
+
default: null,
|
41
|
+
validator: val => {
|
42
|
+
return wrapInArray(val).every(v => v != null && typeof v === 'object');
|
43
|
+
}
|
44
|
+
},
|
45
|
+
clearable: Boolean,
|
46
|
+
disabled: Boolean,
|
47
|
+
hideBrowse: Boolean,
|
48
|
+
multiple: Boolean,
|
49
|
+
scrim: {
|
50
|
+
type: [Boolean, String],
|
51
|
+
default: true
|
52
|
+
},
|
53
|
+
showSize: Boolean,
|
54
|
+
name: String,
|
55
|
+
...makeDelayProps(),
|
56
|
+
...makeDensityProps(),
|
57
|
+
...only(makeVDividerProps({
|
58
|
+
length: 150
|
59
|
+
}), ['length', 'thickness', 'opacity']),
|
60
|
+
...makeVSheetProps()
|
61
|
+
}, 'VFileUpload');
|
62
|
+
export const VFileUpload = genericComponent()({
|
63
|
+
name: 'VFileUpload',
|
64
|
+
inheritAttrs: false,
|
65
|
+
props: makeVFileUploadProps(),
|
66
|
+
emits: {
|
67
|
+
'update:modelValue': files => true
|
68
|
+
},
|
69
|
+
setup(props, _ref) {
|
70
|
+
let {
|
71
|
+
attrs,
|
72
|
+
slots
|
73
|
+
} = _ref;
|
74
|
+
const {
|
75
|
+
t
|
76
|
+
} = useLocale();
|
77
|
+
const {
|
78
|
+
densityClasses
|
79
|
+
} = useDensity(props);
|
80
|
+
const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
|
81
|
+
const dragOver = shallowRef(false);
|
82
|
+
const vSheetRef = ref(null);
|
83
|
+
const inputRef = ref(null);
|
84
|
+
onMounted(() => {
|
85
|
+
vSheetRef.value?.$el.addEventListener('dragover', onDragOver);
|
86
|
+
vSheetRef.value?.$el.addEventListener('drop', onDrop);
|
87
|
+
});
|
88
|
+
onUnmounted(() => {
|
89
|
+
vSheetRef.value?.$el.removeEventListener('dragover', onDragOver);
|
90
|
+
vSheetRef.value?.$el.removeEventListener('drop', onDrop);
|
91
|
+
});
|
92
|
+
function onDragOver(e) {
|
93
|
+
e.preventDefault();
|
94
|
+
e.stopImmediatePropagation();
|
95
|
+
dragOver.value = true;
|
96
|
+
}
|
97
|
+
function onDragLeave(e) {
|
98
|
+
e.preventDefault();
|
99
|
+
dragOver.value = false;
|
100
|
+
}
|
101
|
+
function onDrop(e) {
|
102
|
+
e.preventDefault();
|
103
|
+
e.stopImmediatePropagation();
|
104
|
+
dragOver.value = false;
|
105
|
+
const files = Array.from(e.dataTransfer?.files ?? []);
|
106
|
+
if (!files.length) return;
|
107
|
+
if (!props.multiple) {
|
108
|
+
model.value = [files[0]];
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
const array = model.value.slice();
|
112
|
+
for (const file of files) {
|
113
|
+
if (!array.some(f => f.name === file.name)) {
|
114
|
+
array.push(file);
|
115
|
+
}
|
116
|
+
}
|
117
|
+
model.value = array;
|
118
|
+
}
|
119
|
+
function onClick() {
|
120
|
+
inputRef.value?.click();
|
121
|
+
}
|
122
|
+
function onClickRemove(index) {
|
123
|
+
model.value = model.value.filter((_, i) => i !== index);
|
124
|
+
if (model.value.length > 0 || !inputRef.value) return;
|
125
|
+
inputRef.value.value = '';
|
126
|
+
}
|
127
|
+
useRender(() => {
|
128
|
+
const hasTitle = !!(slots.title || props.title);
|
129
|
+
const hasIcon = !!(slots.icon || props.icon);
|
130
|
+
const hasBrowse = !!(!props.hideBrowse && (slots.browse || props.density === 'default'));
|
131
|
+
const cardProps = VSheet.filterProps(props);
|
132
|
+
const dividerProps = VDivider.filterProps(props);
|
133
|
+
const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
|
134
|
+
const inputNode = _createVNode("input", _mergeProps({
|
135
|
+
"ref": inputRef,
|
136
|
+
"type": "file",
|
137
|
+
"disabled": props.disabled,
|
138
|
+
"multiple": props.multiple,
|
139
|
+
"name": props.name,
|
140
|
+
"onChange": e => {
|
141
|
+
if (!e.target) return;
|
142
|
+
const target = e.target;
|
143
|
+
model.value = [...(target.files ?? [])];
|
144
|
+
}
|
145
|
+
}, inputAttrs), null);
|
146
|
+
return _createVNode(_Fragment, null, [_createVNode(VSheet, _mergeProps({
|
147
|
+
"ref": vSheetRef
|
148
|
+
}, cardProps, {
|
149
|
+
"class": ['v-file-upload', {
|
150
|
+
'v-file-upload--clickable': !hasBrowse,
|
151
|
+
'v-file-upload--disabled': props.disabled,
|
152
|
+
'v-file-upload--dragging': dragOver.value
|
153
|
+
}, densityClasses.value],
|
154
|
+
"onDragleave": onDragLeave,
|
155
|
+
"onDragover": onDragOver,
|
156
|
+
"onDrop": onDrop,
|
157
|
+
"onClick": !hasBrowse ? onClick : undefined
|
158
|
+
}, rootAttrs), {
|
159
|
+
default: () => [hasIcon && _createVNode("div", {
|
160
|
+
"key": "icon",
|
161
|
+
"class": "v-file-upload-icon"
|
162
|
+
}, [!slots.icon ? _createVNode(VIcon, {
|
163
|
+
"key": "icon-icon",
|
164
|
+
"icon": props.icon
|
165
|
+
}, null) : _createVNode(VDefaultsProvider, {
|
166
|
+
"key": "icon-defaults",
|
167
|
+
"defaults": {
|
168
|
+
VIcon: {
|
169
|
+
icon: props.icon
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}, {
|
173
|
+
default: () => [slots.icon()]
|
174
|
+
})]), hasTitle && _createVNode("div", {
|
175
|
+
"key": "title",
|
176
|
+
"class": "v-file-upload-title"
|
177
|
+
}, [slots.title?.() ?? t(props.title)]), props.density === 'default' && _createVNode(_Fragment, null, [_createVNode("div", {
|
178
|
+
"key": "upload-divider",
|
179
|
+
"class": "v-file-upload-divider"
|
180
|
+
}, [slots.divider?.() ?? _createVNode(VDivider, dividerProps, {
|
181
|
+
default: () => [t(props.dividerText)]
|
182
|
+
})]), hasBrowse && _createVNode(_Fragment, null, [!slots.browse ? _createVNode(VBtn, {
|
183
|
+
"readonly": props.disabled,
|
184
|
+
"size": "large",
|
185
|
+
"text": t(props.browseText),
|
186
|
+
"variant": "tonal",
|
187
|
+
"onClick": onClick
|
188
|
+
}, null) : _createVNode(VDefaultsProvider, {
|
189
|
+
"defaults": {
|
190
|
+
VBtn: {
|
191
|
+
readonly: props.disabled,
|
192
|
+
size: 'large',
|
193
|
+
text: t(props.browseText),
|
194
|
+
variant: 'tonal'
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}, {
|
198
|
+
default: () => [slots.browse({
|
199
|
+
props: {
|
200
|
+
onClick
|
201
|
+
}
|
202
|
+
})]
|
203
|
+
})]), props.subtitle && _createVNode("div", {
|
204
|
+
"class": "v-file-upload-subtitle"
|
205
|
+
}, [props.subtitle])]), _createVNode(VOverlay, {
|
206
|
+
"model-value": dragOver.value,
|
207
|
+
"contained": true,
|
208
|
+
"scrim": props.scrim
|
209
|
+
}, null), slots.input?.({
|
210
|
+
inputNode
|
211
|
+
}) ?? inputNode]
|
212
|
+
}), model.value.length > 0 && _createVNode("div", {
|
213
|
+
"class": "v-file-upload-items"
|
214
|
+
}, [model.value.map((file, i) => {
|
215
|
+
const slotProps = {
|
216
|
+
file,
|
217
|
+
props: {
|
218
|
+
'onClick:remove': () => onClickRemove(i)
|
219
|
+
}
|
220
|
+
};
|
221
|
+
return _createVNode(VDefaultsProvider, {
|
222
|
+
"key": i,
|
223
|
+
"defaults": {
|
224
|
+
VFileUploadItem: {
|
225
|
+
file,
|
226
|
+
clearable: props.clearable,
|
227
|
+
disabled: props.disabled,
|
228
|
+
showSize: props.showSize
|
229
|
+
}
|
230
|
+
}
|
231
|
+
}, {
|
232
|
+
default: () => [slots.item?.(slotProps) ?? _createVNode(VFileUploadItem, {
|
233
|
+
"key": i,
|
234
|
+
"onClick:remove": () => onClickRemove(i)
|
235
|
+
}, slots)]
|
236
|
+
});
|
237
|
+
})])]);
|
238
|
+
});
|
239
|
+
}
|
240
|
+
});
|
241
|
+
//# sourceMappingURL=VFileUpload.mjs.map
|