primevue 4.3.1 → 4.3.3

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.
Files changed (254) hide show
  1. package/accordionheader/AccordionHeader.vue +8 -2
  2. package/accordionheader/index.mjs +8 -1
  3. package/accordionheader/index.mjs.map +1 -1
  4. package/autocomplete/AutoComplete.vue +72 -16
  5. package/autocomplete/index.d.ts +3 -3
  6. package/autocomplete/index.mjs +84 -37
  7. package/autocomplete/index.mjs.map +1 -1
  8. package/avatar/Avatar.vue +13 -4
  9. package/avatar/index.d.ts +3 -3
  10. package/avatar/index.mjs +26 -6
  11. package/avatar/index.mjs.map +1 -1
  12. package/badge/Badge.vue +13 -2
  13. package/badge/index.d.ts +1 -1
  14. package/badge/index.mjs +18 -3
  15. package/badge/index.mjs.map +1 -1
  16. package/blockui/BlockUI.vue +15 -4
  17. package/blockui/index.mjs +13 -4
  18. package/blockui/index.mjs.map +1 -1
  19. package/button/Button.vue +30 -3
  20. package/button/index.d.ts +3 -7
  21. package/button/index.mjs +28 -9
  22. package/button/index.mjs.map +1 -1
  23. package/cascadeselect/CascadeSelect.vue +1 -1
  24. package/cascadeselect/index.d.ts +2 -2
  25. package/cascadeselect/index.mjs +1 -2
  26. package/cascadeselect/index.mjs.map +1 -1
  27. package/checkbox/Checkbox.vue +15 -5
  28. package/checkbox/index.d.ts +2 -2
  29. package/checkbox/index.mjs +29 -7
  30. package/checkbox/index.mjs.map +1 -1
  31. package/chip/BaseChip.vue +1 -1
  32. package/chip/Chip.vue +9 -1
  33. package/chip/index.d.ts +1 -1
  34. package/chip/index.mjs +13 -3
  35. package/chip/index.mjs.map +1 -1
  36. package/colorpicker/ColorPicker.vue +10 -2
  37. package/colorpicker/index.d.ts +1 -1
  38. package/colorpicker/index.mjs +9 -2
  39. package/colorpicker/index.mjs.map +1 -1
  40. package/column/index.d.ts +3 -3
  41. package/columngroup/index.d.ts +2 -2
  42. package/confirmationoptions/index.d.ts +1 -1
  43. package/datatable/BodyCell.vue +4 -1
  44. package/datatable/BodyRow.vue +2 -0
  45. package/datatable/ColumnFilter.vue +1 -1
  46. package/datatable/DataTable.vue +103 -44
  47. package/datatable/HeaderCheckbox.vue +2 -2
  48. package/datatable/RowCheckbox.vue +1 -1
  49. package/datatable/TableBody.vue +12 -1
  50. package/datatable/TableFooter.vue +9 -1
  51. package/datatable/TableHeader.vue +9 -2
  52. package/datatable/index.d.ts +45 -37
  53. package/datatable/index.mjs +170 -101
  54. package/datatable/index.mjs.map +1 -1
  55. package/dataview/DataView.vue +4 -0
  56. package/dataview/index.d.ts +61 -4
  57. package/dataview/index.mjs +6 -2
  58. package/dataview/index.mjs.map +1 -1
  59. package/datepicker/DatePicker.vue +370 -234
  60. package/datepicker/index.d.ts +162 -6
  61. package/datepicker/index.mjs +644 -384
  62. package/datepicker/index.mjs.map +1 -1
  63. package/dialog/Dialog.vue +48 -39
  64. package/dialog/index.d.ts +26 -1
  65. package/dialog/index.mjs +73 -50
  66. package/dialog/index.mjs.map +1 -1
  67. package/divider/Divider.vue +13 -3
  68. package/divider/index.d.ts +4 -4
  69. package/divider/index.mjs +18 -5
  70. package/divider/index.mjs.map +1 -1
  71. package/dock/index.d.ts +4 -4
  72. package/drawer/Drawer.vue +30 -20
  73. package/drawer/index.d.ts +12 -2
  74. package/drawer/index.mjs +42 -25
  75. package/drawer/index.mjs.map +1 -1
  76. package/fieldset/Fieldset.vue +8 -2
  77. package/fieldset/index.mjs +20 -10
  78. package/fieldset/index.mjs.map +1 -1
  79. package/fileupload/FileUpload.vue +1 -1
  80. package/fileupload/index.d.ts +2 -2
  81. package/fileupload/index.mjs +2 -2
  82. package/fileupload/index.mjs.map +1 -1
  83. package/floatlabel/index.d.ts +2 -2
  84. package/galleria/Galleria.vue +39 -3
  85. package/galleria/GalleriaItem.vue +8 -9
  86. package/galleria/index.d.ts +3 -3
  87. package/galleria/index.mjs +48 -11
  88. package/galleria/index.mjs.map +1 -1
  89. package/inplace/Inplace.vue +1 -1
  90. package/inplace/index.mjs +3 -2
  91. package/inplace/index.mjs.map +1 -1
  92. package/inputchips/index.d.ts +2 -2
  93. package/inputmask/InputMask.vue +15 -1
  94. package/inputmask/index.d.ts +3 -3
  95. package/inputmask/index.mjs +12 -1
  96. package/inputmask/index.mjs.map +1 -1
  97. package/inputnumber/BaseInputNumber.vue +4 -0
  98. package/inputnumber/InputNumber.vue +29 -14
  99. package/inputnumber/index.d.ts +6 -6
  100. package/inputnumber/index.mjs +47 -25
  101. package/inputnumber/index.mjs.map +1 -1
  102. package/inputotp/index.d.ts +3 -3
  103. package/inputtext/InputText.vue +10 -1
  104. package/inputtext/index.d.ts +4 -5
  105. package/inputtext/index.mjs +14 -1
  106. package/inputtext/index.mjs.map +1 -1
  107. package/keyfilter/index.mjs +12 -19
  108. package/keyfilter/index.mjs.map +1 -1
  109. package/knob/Knob.vue +1 -1
  110. package/knob/index.mjs +1 -1
  111. package/knob/index.mjs.map +1 -1
  112. package/listbox/Listbox.vue +9 -2
  113. package/listbox/index.mjs +11 -3
  114. package/listbox/index.mjs.map +1 -1
  115. package/megamenu/index.d.ts +2 -2
  116. package/menu/Menu.vue +8 -2
  117. package/menu/Menuitem.vue +14 -4
  118. package/menu/index.mjs +36 -16
  119. package/menu/index.mjs.map +1 -1
  120. package/message/Message.vue +16 -7
  121. package/message/index.d.ts +2 -2
  122. package/message/index.mjs +35 -13
  123. package/message/index.mjs.map +1 -1
  124. package/metergroup/MeterGroup.vue +9 -3
  125. package/metergroup/MeterGroupLabel.vue +10 -1
  126. package/metergroup/index.mjs +32 -7
  127. package/metergroup/index.mjs.map +1 -1
  128. package/multiselect/MultiSelect.vue +41 -6
  129. package/multiselect/index.d.ts +3 -3
  130. package/multiselect/index.mjs +53 -21
  131. package/multiselect/index.mjs.map +1 -1
  132. package/organizationchart/index.d.ts +2 -2
  133. package/overlaybadge/index.d.ts +1 -1
  134. package/package.json +3 -3
  135. package/paginator/Paginator.vue +2 -0
  136. package/paginator/index.d.ts +8 -0
  137. package/paginator/index.mjs +3 -1
  138. package/paginator/index.mjs.map +1 -1
  139. package/panel/Panel.vue +29 -22
  140. package/panel/index.d.ts +22 -2
  141. package/panel/index.mjs +55 -31
  142. package/panel/index.mjs.map +1 -1
  143. package/panelmenu/PanelMenuList.vue +1 -1
  144. package/panelmenu/index.mjs +1 -1
  145. package/panelmenu/index.mjs.map +1 -1
  146. package/password/Password.vue +21 -3
  147. package/password/index.d.ts +3 -3
  148. package/password/index.mjs +32 -10
  149. package/password/index.mjs.map +1 -1
  150. package/popover/Popover.vue +3 -3
  151. package/popover/index.mjs +3 -4
  152. package/popover/index.mjs.map +1 -1
  153. package/progressbar/ProgressBar.vue +11 -4
  154. package/progressbar/index.mjs +21 -7
  155. package/progressbar/index.mjs.map +1 -1
  156. package/radiobutton/RadioButton.vue +13 -3
  157. package/radiobutton/index.d.ts +3 -3
  158. package/radiobutton/index.mjs +24 -4
  159. package/radiobutton/index.mjs.map +1 -1
  160. package/rating/Rating.vue +19 -2
  161. package/rating/index.mjs +28 -7
  162. package/rating/index.mjs.map +1 -1
  163. package/scrolltop/ScrollTop.vue +2 -2
  164. package/scrolltop/index.d.ts +2 -2
  165. package/scrolltop/index.mjs +4 -2
  166. package/scrolltop/index.mjs.map +1 -1
  167. package/select/Select.vue +56 -16
  168. package/select/index.d.ts +2 -2
  169. package/select/index.mjs +111 -74
  170. package/select/index.mjs.map +1 -1
  171. package/selectbutton/SelectButton.vue +26 -9
  172. package/selectbutton/index.d.ts +2 -2
  173. package/selectbutton/index.mjs +30 -10
  174. package/selectbutton/index.mjs.map +1 -1
  175. package/skeleton/Skeleton.vue +7 -1
  176. package/skeleton/index.d.ts +3 -3
  177. package/skeleton/index.mjs +12 -1
  178. package/skeleton/index.mjs.map +1 -1
  179. package/slider/Slider.vue +11 -2
  180. package/slider/index.d.ts +2 -2
  181. package/slider/index.mjs +27 -8
  182. package/slider/index.mjs.map +1 -1
  183. package/speeddial/index.d.ts +5 -5
  184. package/splitbutton/index.d.ts +1 -1
  185. package/splitter/Splitter.vue +10 -2
  186. package/splitter/index.d.ts +3 -3
  187. package/splitter/index.mjs +19 -6
  188. package/splitter/index.mjs.map +1 -1
  189. package/step/Step.vue +25 -7
  190. package/step/index.mjs +44 -14
  191. package/step/index.mjs.map +1 -1
  192. package/steppanel/StepPanel.vue +9 -3
  193. package/steppanel/index.d.ts +8 -0
  194. package/steppanel/index.mjs +23 -8
  195. package/steppanel/index.mjs.map +1 -1
  196. package/stepper/StepperSeparator.vue +5 -2
  197. package/stepper/index.d.ts +4 -0
  198. package/tab/Tab.vue +12 -6
  199. package/tab/index.mjs +13 -5
  200. package/tab/index.mjs.map +1 -1
  201. package/tablist/TabList.vue +13 -2
  202. package/tablist/index.mjs +21 -8
  203. package/tablist/index.mjs.map +1 -1
  204. package/tabpanel/TabPanel.vue +2 -2
  205. package/tabpanel/index.mjs +2 -2
  206. package/tabpanel/index.mjs.map +1 -1
  207. package/tag/Tag.vue +11 -2
  208. package/tag/index.mjs +17 -3
  209. package/tag/index.mjs.map +1 -1
  210. package/textarea/Textarea.vue +10 -1
  211. package/textarea/index.d.ts +4 -5
  212. package/textarea/index.mjs +14 -1
  213. package/textarea/index.mjs.map +1 -1
  214. package/tieredmenu/TieredMenu.vue +1 -1
  215. package/tieredmenu/index.mjs +1 -2
  216. package/tieredmenu/index.mjs.map +1 -1
  217. package/timeline/Timeline.vue +16 -7
  218. package/timeline/index.d.ts +3 -3
  219. package/timeline/index.mjs +42 -11
  220. package/timeline/index.mjs.map +1 -1
  221. package/toast/Toast.vue +10 -1
  222. package/toast/ToastMessage.vue +29 -19
  223. package/toast/index.d.ts +2 -2
  224. package/toast/index.mjs +77 -38
  225. package/toast/index.mjs.map +1 -1
  226. package/togglebutton/ToggleButton.vue +10 -1
  227. package/togglebutton/index.d.ts +3 -3
  228. package/togglebutton/index.mjs +19 -4
  229. package/togglebutton/index.mjs.map +1 -1
  230. package/toggleswitch/ToggleSwitch.vue +11 -3
  231. package/toggleswitch/index.mjs +20 -5
  232. package/toggleswitch/index.mjs.map +1 -1
  233. package/tooltip/index.mjs +22 -22
  234. package/tooltip/index.mjs.map +1 -1
  235. package/tree/Tree.vue +14 -2
  236. package/tree/TreeNode.vue +2 -2
  237. package/tree/index.d.ts +3 -3
  238. package/tree/index.mjs +28 -10
  239. package/tree/index.mjs.map +1 -1
  240. package/treeselect/TreeSelect.vue +1 -1
  241. package/treeselect/index.d.ts +6 -6
  242. package/treeselect/index.mjs +1 -2
  243. package/treeselect/index.mjs.map +1 -1
  244. package/treetable/index.d.ts +7 -7
  245. package/treetable/style/index.mjs +2 -3
  246. package/treetable/style/index.mjs.map +1 -1
  247. package/umd/primevue.min.js +1 -1
  248. package/virtualscroller/VirtualScroller.vue +13 -2
  249. package/virtualscroller/index.d.ts +2 -2
  250. package/virtualscroller/index.mjs +14 -4
  251. package/virtualscroller/index.mjs.map +1 -1
  252. package/virtualscroller/style/index.mjs +1 -1
  253. package/virtualscroller/style/index.mjs.map +1 -1
  254. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/fileupload/BaseFileUpload.vue","../../src/fileupload/FileContent.vue","../../src/fileupload/FileContent.vue?vue&type=template&id=4b9f1ffb&lang.js","../../src/fileupload/FileUpload.vue","../../src/fileupload/FileUpload.vue?vue&type=template&id=6ad35406&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport FileUploadStyle from 'primevue/fileupload/style';\n\nexport default {\n name: 'BaseFileUpload',\n extends: BaseComponent,\n props: {\n name: {\n type: String,\n default: null\n },\n url: {\n type: String,\n default: null\n },\n mode: {\n type: String,\n default: 'advanced'\n },\n multiple: {\n type: Boolean,\n default: false\n },\n accept: {\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n auto: {\n type: Boolean,\n default: false\n },\n maxFileSize: {\n type: Number,\n default: null\n },\n invalidFileSizeMessage: {\n type: String,\n default: '{0}: Invalid file size, file size should be smaller than {1}.'\n },\n invalidFileTypeMessage: {\n type: String,\n default: '{0}: Invalid file type, allowed file types: {1}.'\n },\n fileLimit: {\n type: Number,\n default: null\n },\n invalidFileLimitMessage: {\n type: String,\n default: 'Maximum number of files exceeded, limit is {0} at most.'\n },\n withCredentials: {\n type: Boolean,\n default: false\n },\n previewWidth: {\n type: Number,\n default: 50\n },\n chooseLabel: {\n type: String,\n default: null\n },\n uploadLabel: {\n type: String,\n default: null\n },\n cancelLabel: {\n type: String,\n default: null\n },\n customUpload: {\n type: Boolean,\n default: false\n },\n showUploadButton: {\n type: Boolean,\n default: true\n },\n showCancelButton: {\n type: Boolean,\n default: true\n },\n chooseIcon: {\n type: String,\n default: undefined\n },\n uploadIcon: {\n type: String,\n default: undefined\n },\n cancelIcon: {\n type: String,\n default: undefined\n },\n style: null,\n class: null,\n chooseButtonProps: {\n type: null,\n default: null\n },\n uploadButtonProps: {\n type: Object,\n default() {\n return { severity: 'secondary' };\n }\n },\n cancelButtonProps: {\n type: Object,\n default() {\n return { severity: 'secondary' };\n }\n }\n },\n style: FileUploadStyle,\n provide() {\n return {\n $pcFileUpload: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div v-for=\"(file, index) of files\" :key=\"file.name + file.type + file.size\" :class=\"cx('file')\" v-bind=\"ptm('file')\">\n <img role=\"presentation\" :class=\"cx('fileThumbnail')\" :alt=\"file.name\" :src=\"file.objectURL\" :width=\"previewWidth\" v-bind=\"ptm('fileThumbnail')\" />\n <div :class=\"cx('fileInfo')\" v-bind=\"ptm('fileInfo')\">\n <div :class=\"cx('fileName')\" v-bind=\"ptm('fileName')\">{{ file.name }}</div>\n <span :class=\"cx('fileSize')\" v-bind=\"ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n </div>\n <Badge :value=\"badgeValue\" :class=\"cx('pcFileBadge')\" :severity=\"badgeSeverity\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileBadge')\" />\n <div :class=\"cx('fileActions')\" v-bind=\"ptm('fileActions')\">\n <Button @click=\"$emit('remove', index)\" text rounded severity=\"danger\" :class=\"cx('pcFileRemoveButton')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileRemoveButton')\">\n <template #icon=\"iconProps\">\n <component v-if=\"templates.fileremoveicon\" :is=\"templates.fileremoveicon\" :class=\"iconProps.class\" :file=\"file\" :index=\"index\" />\n <TimesIcon v-else :class=\"iconProps.class\" aria-hidden=\"true\" v-bind=\"ptm('pcFileRemoveButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TimesIcon from '@primevue/icons/times';\nimport Badge from 'primevue/badge';\nimport Button from 'primevue/button';\n\nexport default {\n name: 'FileContent',\n hostName: 'FileUpload',\n extends: BaseComponent,\n emits: ['remove'],\n props: {\n files: {\n type: Array,\n default: () => []\n },\n badgeSeverity: {\n type: String,\n default: 'warn'\n },\n badgeValue: {\n type: String,\n default: null\n },\n previewWidth: {\n type: Number,\n default: 50\n },\n templates: {\n type: null,\n default: null\n }\n },\n methods: {\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n }\n },\n components: {\n Button,\n Badge,\n TimesIcon\n }\n};\n</script>\n","<template>\n <div v-for=\"(file, index) of files\" :key=\"file.name + file.type + file.size\" :class=\"cx('file')\" v-bind=\"ptm('file')\">\n <img role=\"presentation\" :class=\"cx('fileThumbnail')\" :alt=\"file.name\" :src=\"file.objectURL\" :width=\"previewWidth\" v-bind=\"ptm('fileThumbnail')\" />\n <div :class=\"cx('fileInfo')\" v-bind=\"ptm('fileInfo')\">\n <div :class=\"cx('fileName')\" v-bind=\"ptm('fileName')\">{{ file.name }}</div>\n <span :class=\"cx('fileSize')\" v-bind=\"ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n </div>\n <Badge :value=\"badgeValue\" :class=\"cx('pcFileBadge')\" :severity=\"badgeSeverity\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileBadge')\" />\n <div :class=\"cx('fileActions')\" v-bind=\"ptm('fileActions')\">\n <Button @click=\"$emit('remove', index)\" text rounded severity=\"danger\" :class=\"cx('pcFileRemoveButton')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileRemoveButton')\">\n <template #icon=\"iconProps\">\n <component v-if=\"templates.fileremoveicon\" :is=\"templates.fileremoveicon\" :class=\"iconProps.class\" :file=\"file\" :index=\"index\" />\n <TimesIcon v-else :class=\"iconProps.class\" aria-hidden=\"true\" v-bind=\"ptm('pcFileRemoveButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TimesIcon from '@primevue/icons/times';\nimport Badge from 'primevue/badge';\nimport Button from 'primevue/button';\n\nexport default {\n name: 'FileContent',\n hostName: 'FileUpload',\n extends: BaseComponent,\n emits: ['remove'],\n props: {\n files: {\n type: Array,\n default: () => []\n },\n badgeSeverity: {\n type: String,\n default: 'warn'\n },\n badgeValue: {\n type: String,\n default: null\n },\n previewWidth: {\n type: Number,\n default: 50\n },\n templates: {\n type: null,\n default: null\n }\n },\n methods: {\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n }\n },\n components: {\n Button,\n Badge,\n TimesIcon\n }\n};\n</script>\n","<template>\n <div v-if=\"isAdvanced\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <input ref=\"fileInput\" type=\"file\" @change=\"onFileSelect\" :multiple=\"multiple\" :accept=\"accept\" :disabled=\"chooseDisabled\" v-bind=\"ptm('input')\" />\n <div :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :chooseCallback=\"choose\" :uploadCallback=\"uploader\" :clearCallback=\"clear\">\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @click=\"choose\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showUploadButton\" :class=\"cx('pcUploadButton')\" :label=\"uploadButtonLabel\" @click=\"uploader\" :disabled=\"uploadDisabled\" :unstyled=\"unstyled\" v-bind=\"uploadButtonProps\" :pt=\"ptm('pcUploadButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"uploadicon\">\n <component :is=\"uploadIcon ? 'span' : 'UploadIcon'\" :class=\"[iconProps.class, uploadIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcUploadButton')['icon']\" data-pc-section=\"uploadbuttonicon\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showCancelButton\" :class=\"cx('pcCancelButton')\" :label=\"cancelButtonLabel\" @click=\"clear\" :disabled=\"cancelDisabled\" :unstyled=\"unstyled\" v-bind=\"cancelButtonProps\" :pt=\"ptm('pcCancelButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"cancelicon\">\n <component :is=\"cancelIcon ? 'span' : 'TimesIcon'\" :class=\"[iconProps.class, cancelIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcCancelButton')['icon']\" data-pc-section=\"cancelbuttonicon\" />\n </slot>\n </template>\n </Button>\n </slot>\n </div>\n <div ref=\"content\" :class=\"cx('content')\" @dragenter=\"onDragEnter\" @dragover=\"onDragOver\" @dragleave=\"onDragLeave\" @drop=\"onDrop\" v-bind=\"ptm('content')\" :data-p-highlight=\"false\">\n <slot name=\"content\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :removeUploadedFileCallback=\"removeUploadedFile\" :removeFileCallback=\"remove\" :progress=\"progress\" :messages=\"messages\">\n <ProgressBar v-if=\"hasFiles\" :value=\"progress\" :showValue=\"false\" :unstyled=\"unstyled\" :pt=\"ptm('pcProgressbar')\" />\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <div v-if=\"hasFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"files\" @remove=\"remove\" :badgeValue=\"pendingLabel\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n <div v-if=\"hasUploadedFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"uploadedFiles\" @remove=\"removeUploadedFile\" :badgeValue=\"completedLabel\" badgeSeverity=\"success\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n </slot>\n <div v-if=\"$slots.empty && !hasFiles && !hasUploadedFiles\" v-bind=\"ptm('empty')\">\n <slot name=\"empty\"></slot>\n </div>\n </div>\n </div>\n <div v-else-if=\"isBasic\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @mouseup=\"onBasicUploaderClick\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <slot v-if=\"!auto\" name=\"filelabel\" :class=\"cx('filelabel')\">\n <span :class=\"cx('filelabel')\" :files=\"files\">\n {{ basicFileChosenLabel }}\n </span>\n </slot>\n <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :disabled=\"disabled\" :multiple=\"multiple\" @change=\"onFileSelect\" @focus=\"onFocus\" @blur=\"onBlur\" v-bind=\"ptm('input')\" />\n </div>\n</template>\n\n<script>\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport PlusIcon from '@primevue/icons/plus';\nimport TimesIcon from '@primevue/icons/times';\nimport UploadIcon from '@primevue/icons/upload';\nimport Button from 'primevue/button';\nimport Message from 'primevue/message';\nimport ProgressBar from 'primevue/progressbar';\nimport Ripple from 'primevue/ripple';\nimport BaseFileUpload from './BaseFileUpload.vue';\nimport FileContent from './FileContent.vue';\n\nexport default {\n name: 'FileUpload',\n extends: BaseFileUpload,\n inheritAttrs: false,\n emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'remove-uploaded-file'],\n duplicateIEEvent: false,\n data() {\n return {\n uploadedFileCount: 0,\n files: [],\n messages: [],\n focused: false,\n progress: null,\n uploadedFiles: []\n };\n },\n methods: {\n upload() {\n if (this.hasFiles) this.uploader();\n },\n onBasicUploaderClick(event) {\n if (event.button === 0) this.$refs.fileInput.click();\n },\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n\n return;\n }\n\n if (this.isBasic && this.hasFiles) {\n this.files = [];\n }\n\n this.messages = [];\n this.files = this.files || [];\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (let file of files) {\n if (!this.isFileSelected(file) && !this.isFileLimitExceeded()) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.$emit('select', { originalEvent: event, files: this.files });\n\n if (this.fileLimit) {\n this.checkFileLimit();\n }\n\n if (this.auto && this.hasFiles && !this.isFileLimitExceeded()) {\n this.uploader();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n },\n choose() {\n this.$refs.fileInput.click();\n },\n uploader() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('uploader', { files: this.files });\n this.clear();\n } else {\n let xhr = new XMLHttpRequest();\n let formData = new FormData();\n\n this.$emit('before-upload', {\n xhr: xhr,\n formData: formData\n });\n\n for (let file of this.files) {\n formData.append(this.name, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n this.progress = Math.round((event.loaded * 100) / event.total);\n }\n\n this.$emit('progress', {\n originalEvent: event,\n progress: this.progress\n });\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n this.progress = 0;\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('upload', {\n xhr: xhr,\n files: this.files\n });\n } else {\n this.$emit('error', {\n xhr: xhr,\n files: this.files\n });\n }\n\n this.uploadedFiles.push(...this.files);\n this.clear();\n }\n };\n\n if (this.url) {\n xhr.open('POST', this.url, true);\n\n this.$emit('before-send', {\n xhr: xhr,\n formData: formData\n });\n\n xhr.withCredentials = this.withCredentials;\n\n xhr.send(formData);\n }\n }\n },\n clear() {\n this.files = [];\n this.messages = null;\n this.$emit('clear');\n\n if (this.isAdvanced) {\n this.clearInputElement();\n }\n },\n onFocus() {\n this.focused = true;\n },\n onBlur() {\n this.focused = false;\n },\n isFileSelected(file) {\n if (this.files && this.files.length) {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n },\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n },\n validate(file) {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.messages.push(this.invalidFileTypeMessage.replace('{0}', file.name).replace('{1}', this.accept));\n\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.messages.push(this.invalidFileSizeMessage.replace('{0}', file.name).replace('{1}', this.formatSize(this.maxFileSize)));\n\n return false;\n }\n\n return true;\n },\n isFileTypeValid(file) {\n let acceptableTypes = this.accept.split(',').map((type) => type.trim());\n\n for (let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n },\n getTypeClass(fileType) {\n return fileType.substring(0, fileType.indexOf('/'));\n },\n isWildcard(fileType) {\n return fileType.indexOf('*') !== -1;\n },\n getFileExtension(file) {\n return '.' + file.name.split('.').pop();\n },\n isImage(file) {\n return /^image\\//.test(file.type);\n },\n onDragEnter(event) {\n if (!this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragOver(event) {\n if (!this.disabled) {\n !this.isUnstyled && addClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', true);\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragLeave() {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n }\n },\n onDrop(event) {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n const allowDrop = this.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n },\n remove(index) {\n this.clearInputElement();\n let removedFile = this.files.splice(index, 1)[0];\n\n this.files = [...this.files];\n this.$emit('remove', {\n file: removedFile,\n files: this.files\n });\n },\n removeUploadedFile(index) {\n let removedFile = this.uploadedFiles.splice(index, 1)[0];\n\n this.uploadedFiles = [...this.uploadedFiles];\n this.$emit('remove-uploaded-file', {\n file: removedFile,\n files: this.uploadedFiles\n });\n },\n clearInputElement() {\n this.$refs.fileInput.value = '';\n },\n clearIEInput() {\n if (this.$refs.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.$refs.fileInput.value = '';\n }\n },\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n },\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focused) {\n this.focused = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n },\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.messages.push(this.invalidFileLimitMessage.replace('{0}', this.fileLimit.toString()));\n }\n },\n onMessageClose() {\n this.messages = null;\n }\n },\n computed: {\n isAdvanced() {\n return this.mode === 'advanced';\n },\n isBasic() {\n return this.mode === 'basic';\n },\n chooseButtonClass() {\n return [this.cx('pcChooseButton'), this.class];\n },\n basicFileChosenLabel() {\n if (this.auto) return this.chooseButtonLabel;\n else if (this.hasFiles) {\n if (this.files && this.files.length === 1) return this.files[0].name;\n\n return this.$primevue.config.locale?.fileChosenMessage?.replace('{0}', this.files.length);\n }\n\n return this.$primevue.config.locale?.noFileChosenMessage || '';\n },\n hasFiles() {\n return this.files && this.files.length > 0;\n },\n hasUploadedFiles() {\n return this.uploadedFiles && this.uploadedFiles.length > 0;\n },\n chooseDisabled() {\n return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);\n },\n uploadDisabled() {\n return this.disabled || !this.hasFiles || (this.fileLimit && this.fileLimit < this.files.length);\n },\n cancelDisabled() {\n return this.disabled || !this.hasFiles;\n },\n chooseButtonLabel() {\n return this.chooseLabel || this.$primevue.config.locale.choose;\n },\n uploadButtonLabel() {\n return this.uploadLabel || this.$primevue.config.locale.upload;\n },\n cancelButtonLabel() {\n return this.cancelLabel || this.$primevue.config.locale.cancel;\n },\n completedLabel() {\n return this.$primevue.config.locale.completed;\n },\n pendingLabel() {\n return this.$primevue.config.locale.pending;\n }\n },\n components: {\n Button,\n ProgressBar,\n Message,\n FileContent,\n PlusIcon,\n UploadIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div v-if=\"isAdvanced\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <input ref=\"fileInput\" type=\"file\" @change=\"onFileSelect\" :multiple=\"multiple\" :accept=\"accept\" :disabled=\"chooseDisabled\" v-bind=\"ptm('input')\" />\n <div :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :chooseCallback=\"choose\" :uploadCallback=\"uploader\" :clearCallback=\"clear\">\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @click=\"choose\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showUploadButton\" :class=\"cx('pcUploadButton')\" :label=\"uploadButtonLabel\" @click=\"uploader\" :disabled=\"uploadDisabled\" :unstyled=\"unstyled\" v-bind=\"uploadButtonProps\" :pt=\"ptm('pcUploadButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"uploadicon\">\n <component :is=\"uploadIcon ? 'span' : 'UploadIcon'\" :class=\"[iconProps.class, uploadIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcUploadButton')['icon']\" data-pc-section=\"uploadbuttonicon\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showCancelButton\" :class=\"cx('pcCancelButton')\" :label=\"cancelButtonLabel\" @click=\"clear\" :disabled=\"cancelDisabled\" :unstyled=\"unstyled\" v-bind=\"cancelButtonProps\" :pt=\"ptm('pcCancelButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"cancelicon\">\n <component :is=\"cancelIcon ? 'span' : 'TimesIcon'\" :class=\"[iconProps.class, cancelIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcCancelButton')['icon']\" data-pc-section=\"cancelbuttonicon\" />\n </slot>\n </template>\n </Button>\n </slot>\n </div>\n <div ref=\"content\" :class=\"cx('content')\" @dragenter=\"onDragEnter\" @dragover=\"onDragOver\" @dragleave=\"onDragLeave\" @drop=\"onDrop\" v-bind=\"ptm('content')\" :data-p-highlight=\"false\">\n <slot name=\"content\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :removeUploadedFileCallback=\"removeUploadedFile\" :removeFileCallback=\"remove\" :progress=\"progress\" :messages=\"messages\">\n <ProgressBar v-if=\"hasFiles\" :value=\"progress\" :showValue=\"false\" :unstyled=\"unstyled\" :pt=\"ptm('pcProgressbar')\" />\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <div v-if=\"hasFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"files\" @remove=\"remove\" :badgeValue=\"pendingLabel\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n <div v-if=\"hasUploadedFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"uploadedFiles\" @remove=\"removeUploadedFile\" :badgeValue=\"completedLabel\" badgeSeverity=\"success\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n </slot>\n <div v-if=\"$slots.empty && !hasFiles && !hasUploadedFiles\" v-bind=\"ptm('empty')\">\n <slot name=\"empty\"></slot>\n </div>\n </div>\n </div>\n <div v-else-if=\"isBasic\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @mouseup=\"onBasicUploaderClick\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <slot v-if=\"!auto\" name=\"filelabel\" :class=\"cx('filelabel')\">\n <span :class=\"cx('filelabel')\" :files=\"files\">\n {{ basicFileChosenLabel }}\n </span>\n </slot>\n <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :disabled=\"disabled\" :multiple=\"multiple\" @change=\"onFileSelect\" @focus=\"onFocus\" @blur=\"onBlur\" v-bind=\"ptm('input')\" />\n </div>\n</template>\n\n<script>\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport PlusIcon from '@primevue/icons/plus';\nimport TimesIcon from '@primevue/icons/times';\nimport UploadIcon from '@primevue/icons/upload';\nimport Button from 'primevue/button';\nimport Message from 'primevue/message';\nimport ProgressBar from 'primevue/progressbar';\nimport Ripple from 'primevue/ripple';\nimport BaseFileUpload from './BaseFileUpload.vue';\nimport FileContent from './FileContent.vue';\n\nexport default {\n name: 'FileUpload',\n extends: BaseFileUpload,\n inheritAttrs: false,\n emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'remove-uploaded-file'],\n duplicateIEEvent: false,\n data() {\n return {\n uploadedFileCount: 0,\n files: [],\n messages: [],\n focused: false,\n progress: null,\n uploadedFiles: []\n };\n },\n methods: {\n upload() {\n if (this.hasFiles) this.uploader();\n },\n onBasicUploaderClick(event) {\n if (event.button === 0) this.$refs.fileInput.click();\n },\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n\n return;\n }\n\n if (this.isBasic && this.hasFiles) {\n this.files = [];\n }\n\n this.messages = [];\n this.files = this.files || [];\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (let file of files) {\n if (!this.isFileSelected(file) && !this.isFileLimitExceeded()) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.$emit('select', { originalEvent: event, files: this.files });\n\n if (this.fileLimit) {\n this.checkFileLimit();\n }\n\n if (this.auto && this.hasFiles && !this.isFileLimitExceeded()) {\n this.uploader();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n },\n choose() {\n this.$refs.fileInput.click();\n },\n uploader() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('uploader', { files: this.files });\n this.clear();\n } else {\n let xhr = new XMLHttpRequest();\n let formData = new FormData();\n\n this.$emit('before-upload', {\n xhr: xhr,\n formData: formData\n });\n\n for (let file of this.files) {\n formData.append(this.name, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n this.progress = Math.round((event.loaded * 100) / event.total);\n }\n\n this.$emit('progress', {\n originalEvent: event,\n progress: this.progress\n });\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n this.progress = 0;\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('upload', {\n xhr: xhr,\n files: this.files\n });\n } else {\n this.$emit('error', {\n xhr: xhr,\n files: this.files\n });\n }\n\n this.uploadedFiles.push(...this.files);\n this.clear();\n }\n };\n\n if (this.url) {\n xhr.open('POST', this.url, true);\n\n this.$emit('before-send', {\n xhr: xhr,\n formData: formData\n });\n\n xhr.withCredentials = this.withCredentials;\n\n xhr.send(formData);\n }\n }\n },\n clear() {\n this.files = [];\n this.messages = null;\n this.$emit('clear');\n\n if (this.isAdvanced) {\n this.clearInputElement();\n }\n },\n onFocus() {\n this.focused = true;\n },\n onBlur() {\n this.focused = false;\n },\n isFileSelected(file) {\n if (this.files && this.files.length) {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n },\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n },\n validate(file) {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.messages.push(this.invalidFileTypeMessage.replace('{0}', file.name).replace('{1}', this.accept));\n\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.messages.push(this.invalidFileSizeMessage.replace('{0}', file.name).replace('{1}', this.formatSize(this.maxFileSize)));\n\n return false;\n }\n\n return true;\n },\n isFileTypeValid(file) {\n let acceptableTypes = this.accept.split(',').map((type) => type.trim());\n\n for (let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n },\n getTypeClass(fileType) {\n return fileType.substring(0, fileType.indexOf('/'));\n },\n isWildcard(fileType) {\n return fileType.indexOf('*') !== -1;\n },\n getFileExtension(file) {\n return '.' + file.name.split('.').pop();\n },\n isImage(file) {\n return /^image\\//.test(file.type);\n },\n onDragEnter(event) {\n if (!this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragOver(event) {\n if (!this.disabled) {\n !this.isUnstyled && addClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', true);\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragLeave() {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n }\n },\n onDrop(event) {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n const allowDrop = this.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n },\n remove(index) {\n this.clearInputElement();\n let removedFile = this.files.splice(index, 1)[0];\n\n this.files = [...this.files];\n this.$emit('remove', {\n file: removedFile,\n files: this.files\n });\n },\n removeUploadedFile(index) {\n let removedFile = this.uploadedFiles.splice(index, 1)[0];\n\n this.uploadedFiles = [...this.uploadedFiles];\n this.$emit('remove-uploaded-file', {\n file: removedFile,\n files: this.uploadedFiles\n });\n },\n clearInputElement() {\n this.$refs.fileInput.value = '';\n },\n clearIEInput() {\n if (this.$refs.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.$refs.fileInput.value = '';\n }\n },\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n },\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focused) {\n this.focused = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n },\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.messages.push(this.invalidFileLimitMessage.replace('{0}', this.fileLimit.toString()));\n }\n },\n onMessageClose() {\n this.messages = null;\n }\n },\n computed: {\n isAdvanced() {\n return this.mode === 'advanced';\n },\n isBasic() {\n return this.mode === 'basic';\n },\n chooseButtonClass() {\n return [this.cx('pcChooseButton'), this.class];\n },\n basicFileChosenLabel() {\n if (this.auto) return this.chooseButtonLabel;\n else if (this.hasFiles) {\n if (this.files && this.files.length === 1) return this.files[0].name;\n\n return this.$primevue.config.locale?.fileChosenMessage?.replace('{0}', this.files.length);\n }\n\n return this.$primevue.config.locale?.noFileChosenMessage || '';\n },\n hasFiles() {\n return this.files && this.files.length > 0;\n },\n hasUploadedFiles() {\n return this.uploadedFiles && this.uploadedFiles.length > 0;\n },\n chooseDisabled() {\n return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);\n },\n uploadDisabled() {\n return this.disabled || !this.hasFiles || (this.fileLimit && this.fileLimit < this.files.length);\n },\n cancelDisabled() {\n return this.disabled || !this.hasFiles;\n },\n chooseButtonLabel() {\n return this.chooseLabel || this.$primevue.config.locale.choose;\n },\n uploadButtonLabel() {\n return this.uploadLabel || this.$primevue.config.locale.upload;\n },\n cancelButtonLabel() {\n return this.cancelLabel || this.$primevue.config.locale.cancel;\n },\n completedLabel() {\n return this.$primevue.config.locale.completed;\n },\n pendingLabel() {\n return this.$primevue.config.locale.pending;\n }\n },\n components: {\n Button,\n ProgressBar,\n Message,\n FileContent,\n PlusIcon,\n UploadIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","type","String","url","mode","multiple","Boolean","accept","disabled","auto","maxFileSize","Number","invalidFileSizeMessage","invalidFileTypeMessage","fileLimit","invalidFileLimitMessage","withCredentials","previewWidth","chooseLabel","uploadLabel","cancelLabel","customUpload","showUploadButton","showCancelButton","chooseIcon","undefined","uploadIcon","cancelIcon","style","chooseButtonProps","uploadButtonProps","Object","default","severity","cancelButtonProps","FileUploadStyle","provide","$pcFileUpload","$parentInstance","hostName","emits","files","Array","badgeSeverity","badgeValue","templates","methods","formatSize","bytes","_this$$primevue$confi","k","dm","sizes","$primevue","config","locale","fileSizeTypes","concat","i","Math","floor","log","formattedSize","parseFloat","pow","toFixed","components","Button","Badge","TimesIcon","_openBlock","_createElementBlock","_Fragment","_renderList","$props","file","index","_mergeProps","key","size","_ctx","cx","ptm","_createElementVNode","role","alt","src","objectURL","width","_hoisted_1","_toDisplayString","$options","_createVNode","_component_Badge","value","unstyled","pt","_component_Button","onClick","$event","$emit","text","rounded","icon","_withCtx","iconProps","fileremoveicon","_createBlock","_resolveDynamicComponent","_normalizeClass","_component_TimesIcon","BaseFileUpload","inheritAttrs","duplicateIEEvent","data","uploadedFileCount","messages","focused","progress","uploadedFiles","upload","hasFiles","uploader","onBasicUploaderClick","event","button","$refs","fileInput","click","onFileSelect","isIE11","isBasic","dataTransfer","target","_iterator","_createForOfIteratorHelper","_step","s","n","done","isFileSelected","isFileLimitExceeded","validate","isImage","window","URL","createObjectURL","push","err","e","f","originalEvent","checkFileLimit","clearIEInput","clearInputElement","choose","_this","length","clear","xhr","XMLHttpRequest","formData","FormData","_iterator2","_step2","append","addEventListener","lengthComputable","round","loaded","total","onreadystatechange","readyState","_this$uploadedFiles","status","apply","_toConsumableArray","open","send","isAdvanced","onFocus","onBlur","_iterator3","_step3","sFile","document","isFileTypeValid","replace","acceptableTypes","split","map","trim","_iterator4","_step4","acceptable","isWildcard","getTypeClass","getFileExtension","toLowerCase","fileType","substring","indexOf","pop","test","onDragEnter","stopPropagation","preventDefault","onDragOver","isUnstyled","addClass","content","setAttribute","onDragLeave","removeClass","onDrop","allowDrop","remove","removedFile","splice","removeUploadedFile","toString","onMessageClose","computed","chooseButtonClass","basicFileChosenLabel","_this$$primevue$confi3","chooseButtonLabel","_this$$primevue$confi2","fileChosenMessage","noFileChosenMessage","hasUploadedFiles","chooseDisabled","uploadDisabled","cancelDisabled","uploadButtonLabel","cancelButtonLabel","cancel","completedLabel","completed","pendingLabel","pending","ProgressBar","Message","FileContent","PlusIcon","UploadIcon","directives","ripple","Ripple","ptmi","ref","onChange","arguments","_renderSlot","$slots","$data","chooseCallback","uploadCallback","clearCallback","label","onKeydown","onDragenter","onDragover","onDragleave","removeUploadedFileCallback","removeFileCallback","_component_ProgressBar","showValue","msg","_component_Message","onClose","_component_FileContent","onRemove","empty","onMouseup","_hoisted_2","_hoisted_3"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/fileupload/BaseFileUpload.vue","../../src/fileupload/FileContent.vue","../../src/fileupload/FileContent.vue?vue&type=template&id=4b9f1ffb&lang.js","../../src/fileupload/FileUpload.vue","../../src/fileupload/FileUpload.vue?vue&type=template&id=4070c2f4&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport FileUploadStyle from 'primevue/fileupload/style';\n\nexport default {\n name: 'BaseFileUpload',\n extends: BaseComponent,\n props: {\n name: {\n type: String,\n default: null\n },\n url: {\n type: String,\n default: null\n },\n mode: {\n type: String,\n default: 'advanced'\n },\n multiple: {\n type: Boolean,\n default: false\n },\n accept: {\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n auto: {\n type: Boolean,\n default: false\n },\n maxFileSize: {\n type: Number,\n default: null\n },\n invalidFileSizeMessage: {\n type: String,\n default: '{0}: Invalid file size, file size should be smaller than {1}.'\n },\n invalidFileTypeMessage: {\n type: String,\n default: '{0}: Invalid file type, allowed file types: {1}.'\n },\n fileLimit: {\n type: Number,\n default: null\n },\n invalidFileLimitMessage: {\n type: String,\n default: 'Maximum number of files exceeded, limit is {0} at most.'\n },\n withCredentials: {\n type: Boolean,\n default: false\n },\n previewWidth: {\n type: Number,\n default: 50\n },\n chooseLabel: {\n type: String,\n default: null\n },\n uploadLabel: {\n type: String,\n default: null\n },\n cancelLabel: {\n type: String,\n default: null\n },\n customUpload: {\n type: Boolean,\n default: false\n },\n showUploadButton: {\n type: Boolean,\n default: true\n },\n showCancelButton: {\n type: Boolean,\n default: true\n },\n chooseIcon: {\n type: String,\n default: undefined\n },\n uploadIcon: {\n type: String,\n default: undefined\n },\n cancelIcon: {\n type: String,\n default: undefined\n },\n style: null,\n class: null,\n chooseButtonProps: {\n type: null,\n default: null\n },\n uploadButtonProps: {\n type: Object,\n default() {\n return { severity: 'secondary' };\n }\n },\n cancelButtonProps: {\n type: Object,\n default() {\n return { severity: 'secondary' };\n }\n }\n },\n style: FileUploadStyle,\n provide() {\n return {\n $pcFileUpload: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div v-for=\"(file, index) of files\" :key=\"file.name + file.type + file.size\" :class=\"cx('file')\" v-bind=\"ptm('file')\">\n <img role=\"presentation\" :class=\"cx('fileThumbnail')\" :alt=\"file.name\" :src=\"file.objectURL\" :width=\"previewWidth\" v-bind=\"ptm('fileThumbnail')\" />\n <div :class=\"cx('fileInfo')\" v-bind=\"ptm('fileInfo')\">\n <div :class=\"cx('fileName')\" v-bind=\"ptm('fileName')\">{{ file.name }}</div>\n <span :class=\"cx('fileSize')\" v-bind=\"ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n </div>\n <Badge :value=\"badgeValue\" :class=\"cx('pcFileBadge')\" :severity=\"badgeSeverity\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileBadge')\" />\n <div :class=\"cx('fileActions')\" v-bind=\"ptm('fileActions')\">\n <Button @click=\"$emit('remove', index)\" text rounded severity=\"danger\" :class=\"cx('pcFileRemoveButton')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileRemoveButton')\">\n <template #icon=\"iconProps\">\n <component v-if=\"templates.fileremoveicon\" :is=\"templates.fileremoveicon\" :class=\"iconProps.class\" :file=\"file\" :index=\"index\" />\n <TimesIcon v-else :class=\"iconProps.class\" aria-hidden=\"true\" v-bind=\"ptm('pcFileRemoveButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TimesIcon from '@primevue/icons/times';\nimport Badge from 'primevue/badge';\nimport Button from 'primevue/button';\n\nexport default {\n name: 'FileContent',\n hostName: 'FileUpload',\n extends: BaseComponent,\n emits: ['remove'],\n props: {\n files: {\n type: Array,\n default: () => []\n },\n badgeSeverity: {\n type: String,\n default: 'warn'\n },\n badgeValue: {\n type: String,\n default: null\n },\n previewWidth: {\n type: Number,\n default: 50\n },\n templates: {\n type: null,\n default: null\n }\n },\n methods: {\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n }\n },\n components: {\n Button,\n Badge,\n TimesIcon\n }\n};\n</script>\n","<template>\n <div v-for=\"(file, index) of files\" :key=\"file.name + file.type + file.size\" :class=\"cx('file')\" v-bind=\"ptm('file')\">\n <img role=\"presentation\" :class=\"cx('fileThumbnail')\" :alt=\"file.name\" :src=\"file.objectURL\" :width=\"previewWidth\" v-bind=\"ptm('fileThumbnail')\" />\n <div :class=\"cx('fileInfo')\" v-bind=\"ptm('fileInfo')\">\n <div :class=\"cx('fileName')\" v-bind=\"ptm('fileName')\">{{ file.name }}</div>\n <span :class=\"cx('fileSize')\" v-bind=\"ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n </div>\n <Badge :value=\"badgeValue\" :class=\"cx('pcFileBadge')\" :severity=\"badgeSeverity\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileBadge')\" />\n <div :class=\"cx('fileActions')\" v-bind=\"ptm('fileActions')\">\n <Button @click=\"$emit('remove', index)\" text rounded severity=\"danger\" :class=\"cx('pcFileRemoveButton')\" :unstyled=\"unstyled\" :pt=\"ptm('pcFileRemoveButton')\">\n <template #icon=\"iconProps\">\n <component v-if=\"templates.fileremoveicon\" :is=\"templates.fileremoveicon\" :class=\"iconProps.class\" :file=\"file\" :index=\"index\" />\n <TimesIcon v-else :class=\"iconProps.class\" aria-hidden=\"true\" v-bind=\"ptm('pcFileRemoveButton')['icon']\" />\n </template>\n </Button>\n </div>\n </div>\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TimesIcon from '@primevue/icons/times';\nimport Badge from 'primevue/badge';\nimport Button from 'primevue/button';\n\nexport default {\n name: 'FileContent',\n hostName: 'FileUpload',\n extends: BaseComponent,\n emits: ['remove'],\n props: {\n files: {\n type: Array,\n default: () => []\n },\n badgeSeverity: {\n type: String,\n default: 'warn'\n },\n badgeValue: {\n type: String,\n default: null\n },\n previewWidth: {\n type: Number,\n default: 50\n },\n templates: {\n type: null,\n default: null\n }\n },\n methods: {\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n }\n },\n components: {\n Button,\n Badge,\n TimesIcon\n }\n};\n</script>\n","<template>\n <div v-if=\"isAdvanced\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <input ref=\"fileInput\" type=\"file\" @change=\"onFileSelect\" :multiple=\"multiple\" :accept=\"accept\" :disabled=\"chooseDisabled\" v-bind=\"ptm('input')\" />\n <div :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :chooseCallback=\"choose\" :uploadCallback=\"uploader\" :clearCallback=\"clear\">\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @click=\"choose\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showUploadButton\" :class=\"cx('pcUploadButton')\" :label=\"uploadButtonLabel\" @click=\"uploader\" :disabled=\"uploadDisabled\" :unstyled=\"unstyled\" v-bind=\"uploadButtonProps\" :pt=\"ptm('pcUploadButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"uploadicon\">\n <component :is=\"uploadIcon ? 'span' : 'UploadIcon'\" :class=\"[iconProps.class, uploadIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcUploadButton')['icon']\" data-pc-section=\"uploadbuttonicon\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showCancelButton\" :class=\"cx('pcCancelButton')\" :label=\"cancelButtonLabel\" @click=\"clear\" :disabled=\"cancelDisabled\" :unstyled=\"unstyled\" v-bind=\"cancelButtonProps\" :pt=\"ptm('pcCancelButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"cancelicon\">\n <component :is=\"cancelIcon ? 'span' : 'TimesIcon'\" :class=\"[iconProps.class, cancelIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcCancelButton')['icon']\" data-pc-section=\"cancelbuttonicon\" />\n </slot>\n </template>\n </Button>\n </slot>\n </div>\n <div ref=\"content\" :class=\"cx('content')\" @dragenter=\"onDragEnter\" @dragover=\"onDragOver\" @dragleave=\"onDragLeave\" @drop=\"onDrop\" v-bind=\"ptm('content')\" :data-p-highlight=\"false\">\n <slot name=\"content\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :removeUploadedFileCallback=\"removeUploadedFile\" :removeFileCallback=\"remove\" :progress=\"progress\" :messages=\"messages\">\n <ProgressBar v-if=\"hasFiles\" :value=\"progress\" :showValue=\"false\" :unstyled=\"unstyled\" :pt=\"ptm('pcProgressbar')\" />\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <div v-if=\"hasFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"files\" @remove=\"remove\" :badgeValue=\"pendingLabel\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n <div v-if=\"hasUploadedFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"uploadedFiles\" @remove=\"removeUploadedFile\" :badgeValue=\"completedLabel\" badgeSeverity=\"success\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n </slot>\n <div v-if=\"$slots.empty && !hasFiles && !hasUploadedFiles\" v-bind=\"ptm('empty')\">\n <slot name=\"empty\"></slot>\n </div>\n </div>\n </div>\n <div v-else-if=\"isBasic\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @mouseup=\"onBasicUploaderClick\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <slot v-if=\"!auto\" name=\"filelabel\" :class=\"cx('filelabel')\">\n <span :class=\"cx('filelabel')\" :files=\"files\">\n {{ basicFileChosenLabel }}\n </span>\n </slot>\n <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :disabled=\"disabled\" :multiple=\"multiple\" @change=\"onFileSelect\" @focus=\"onFocus\" @blur=\"onBlur\" v-bind=\"ptm('input')\" />\n </div>\n</template>\n\n<script>\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport PlusIcon from '@primevue/icons/plus';\nimport TimesIcon from '@primevue/icons/times';\nimport UploadIcon from '@primevue/icons/upload';\nimport Button from 'primevue/button';\nimport Message from 'primevue/message';\nimport ProgressBar from 'primevue/progressbar';\nimport Ripple from 'primevue/ripple';\nimport BaseFileUpload from './BaseFileUpload.vue';\nimport FileContent from './FileContent.vue';\n\nexport default {\n name: 'FileUpload',\n extends: BaseFileUpload,\n inheritAttrs: false,\n emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'remove-uploaded-file'],\n duplicateIEEvent: false,\n data() {\n return {\n uploadedFileCount: 0,\n files: [],\n messages: [],\n focused: false,\n progress: null,\n uploadedFiles: []\n };\n },\n methods: {\n upload() {\n if (this.hasFiles) this.uploader();\n },\n onBasicUploaderClick(event) {\n if (event.button === 0) this.$refs.fileInput.click();\n },\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n\n return;\n }\n\n if (this.isBasic && this.hasFiles) {\n this.files = [];\n }\n\n this.messages = [];\n this.files = this.files || [];\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (let file of files) {\n if (!this.isFileSelected(file) && !this.isFileLimitExceeded()) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.$emit('select', { originalEvent: event, files: this.files });\n\n if (this.fileLimit) {\n this.checkFileLimit();\n }\n\n if (this.auto && this.hasFiles && !this.isFileLimitExceeded()) {\n this.uploader();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n },\n choose() {\n this.$refs.fileInput.click();\n },\n uploader() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('uploader', { files: this.files });\n this.clear();\n } else {\n let xhr = new XMLHttpRequest();\n let formData = new FormData();\n\n this.$emit('before-upload', {\n xhr: xhr,\n formData: formData\n });\n\n for (let file of this.files) {\n formData.append(this.name, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n this.progress = Math.round((event.loaded * 100) / event.total);\n }\n\n this.$emit('progress', {\n originalEvent: event,\n progress: this.progress\n });\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n this.progress = 0;\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('upload', {\n xhr: xhr,\n files: this.files\n });\n this.uploadedFiles.push(...this.files);\n } else {\n this.$emit('error', {\n xhr: xhr,\n files: this.files\n });\n }\n\n this.clear();\n }\n };\n\n if (this.url) {\n xhr.open('POST', this.url, true);\n\n this.$emit('before-send', {\n xhr: xhr,\n formData: formData\n });\n\n xhr.withCredentials = this.withCredentials;\n\n xhr.send(formData);\n }\n }\n },\n clear() {\n this.files = [];\n this.messages = null;\n this.$emit('clear');\n\n if (this.isAdvanced) {\n this.clearInputElement();\n }\n },\n onFocus() {\n this.focused = true;\n },\n onBlur() {\n this.focused = false;\n },\n isFileSelected(file) {\n if (this.files && this.files.length) {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n },\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n },\n validate(file) {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.messages.push(this.invalidFileTypeMessage.replace('{0}', file.name).replace('{1}', this.accept));\n\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.messages.push(this.invalidFileSizeMessage.replace('{0}', file.name).replace('{1}', this.formatSize(this.maxFileSize)));\n\n return false;\n }\n\n return true;\n },\n isFileTypeValid(file) {\n let acceptableTypes = this.accept.split(',').map((type) => type.trim());\n\n for (let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n },\n getTypeClass(fileType) {\n return fileType.substring(0, fileType.indexOf('/'));\n },\n isWildcard(fileType) {\n return fileType.indexOf('*') !== -1;\n },\n getFileExtension(file) {\n return '.' + file.name.split('.').pop();\n },\n isImage(file) {\n return /^image\\//.test(file.type);\n },\n onDragEnter(event) {\n if (!this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragOver(event) {\n if (!this.disabled) {\n !this.isUnstyled && addClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', true);\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragLeave() {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n }\n },\n onDrop(event) {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n const allowDrop = this.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n },\n remove(index) {\n this.clearInputElement();\n let removedFile = this.files.splice(index, 1)[0];\n\n this.files = [...this.files];\n this.$emit('remove', {\n file: removedFile,\n files: this.files\n });\n },\n removeUploadedFile(index) {\n let removedFile = this.uploadedFiles.splice(index, 1)[0];\n\n this.uploadedFiles = [...this.uploadedFiles];\n this.$emit('remove-uploaded-file', {\n file: removedFile,\n files: this.uploadedFiles\n });\n },\n clearInputElement() {\n this.$refs.fileInput.value = '';\n },\n clearIEInput() {\n if (this.$refs.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.$refs.fileInput.value = '';\n }\n },\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n },\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focused) {\n this.focused = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n },\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.messages.push(this.invalidFileLimitMessage.replace('{0}', this.fileLimit.toString()));\n }\n },\n onMessageClose() {\n this.messages = null;\n }\n },\n computed: {\n isAdvanced() {\n return this.mode === 'advanced';\n },\n isBasic() {\n return this.mode === 'basic';\n },\n chooseButtonClass() {\n return [this.cx('pcChooseButton'), this.class];\n },\n basicFileChosenLabel() {\n if (this.auto) return this.chooseButtonLabel;\n else if (this.hasFiles) {\n if (this.files && this.files.length === 1) return this.files[0].name;\n\n return this.$primevue.config.locale?.fileChosenMessage?.replace('{0}', this.files.length);\n }\n\n return this.$primevue.config.locale?.noFileChosenMessage || '';\n },\n hasFiles() {\n return this.files && this.files.length > 0;\n },\n hasUploadedFiles() {\n return this.uploadedFiles && this.uploadedFiles.length > 0;\n },\n chooseDisabled() {\n return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);\n },\n uploadDisabled() {\n return this.disabled || !this.hasFiles || (this.fileLimit && this.fileLimit < this.files.length);\n },\n cancelDisabled() {\n return this.disabled || !this.hasFiles;\n },\n chooseButtonLabel() {\n return this.chooseLabel || this.$primevue.config.locale.choose;\n },\n uploadButtonLabel() {\n return this.uploadLabel || this.$primevue.config.locale.upload;\n },\n cancelButtonLabel() {\n return this.cancelLabel || this.$primevue.config.locale.cancel;\n },\n completedLabel() {\n return this.$primevue.config.locale.completed;\n },\n pendingLabel() {\n return this.$primevue.config.locale.pending;\n }\n },\n components: {\n Button,\n ProgressBar,\n Message,\n FileContent,\n PlusIcon,\n UploadIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div v-if=\"isAdvanced\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <input ref=\"fileInput\" type=\"file\" @change=\"onFileSelect\" :multiple=\"multiple\" :accept=\"accept\" :disabled=\"chooseDisabled\" v-bind=\"ptm('input')\" />\n <div :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :chooseCallback=\"choose\" :uploadCallback=\"uploader\" :clearCallback=\"clear\">\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @click=\"choose\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showUploadButton\" :class=\"cx('pcUploadButton')\" :label=\"uploadButtonLabel\" @click=\"uploader\" :disabled=\"uploadDisabled\" :unstyled=\"unstyled\" v-bind=\"uploadButtonProps\" :pt=\"ptm('pcUploadButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"uploadicon\">\n <component :is=\"uploadIcon ? 'span' : 'UploadIcon'\" :class=\"[iconProps.class, uploadIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcUploadButton')['icon']\" data-pc-section=\"uploadbuttonicon\" />\n </slot>\n </template>\n </Button>\n <Button v-if=\"showCancelButton\" :class=\"cx('pcCancelButton')\" :label=\"cancelButtonLabel\" @click=\"clear\" :disabled=\"cancelDisabled\" :unstyled=\"unstyled\" v-bind=\"cancelButtonProps\" :pt=\"ptm('pcCancelButton')\">\n <template #icon=\"iconProps\">\n <slot name=\"cancelicon\">\n <component :is=\"cancelIcon ? 'span' : 'TimesIcon'\" :class=\"[iconProps.class, cancelIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcCancelButton')['icon']\" data-pc-section=\"cancelbuttonicon\" />\n </slot>\n </template>\n </Button>\n </slot>\n </div>\n <div ref=\"content\" :class=\"cx('content')\" @dragenter=\"onDragEnter\" @dragover=\"onDragOver\" @dragleave=\"onDragLeave\" @drop=\"onDrop\" v-bind=\"ptm('content')\" :data-p-highlight=\"false\">\n <slot name=\"content\" :files=\"files\" :uploadedFiles=\"uploadedFiles\" :removeUploadedFileCallback=\"removeUploadedFile\" :removeFileCallback=\"remove\" :progress=\"progress\" :messages=\"messages\">\n <ProgressBar v-if=\"hasFiles\" :value=\"progress\" :showValue=\"false\" :unstyled=\"unstyled\" :pt=\"ptm('pcProgressbar')\" />\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <div v-if=\"hasFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"files\" @remove=\"remove\" :badgeValue=\"pendingLabel\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n <div v-if=\"hasUploadedFiles\" :class=\"cx('fileList')\">\n <FileContent :files=\"uploadedFiles\" @remove=\"removeUploadedFile\" :badgeValue=\"completedLabel\" badgeSeverity=\"success\" :previewWidth=\"previewWidth\" :templates=\"$slots\" :unstyled=\"unstyled\" :pt=\"pt\" />\n </div>\n </slot>\n <div v-if=\"$slots.empty && !hasFiles && !hasUploadedFiles\" v-bind=\"ptm('empty')\">\n <slot name=\"empty\"></slot>\n </div>\n </div>\n </div>\n <div v-else-if=\"isBasic\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <Message v-for=\"msg of messages\" :key=\"msg\" severity=\"error\" @close=\"onMessageClose\" :unstyled=\"unstyled\" :pt=\"ptm('pcMessage')\">{{ msg }}</Message>\n <Button\n :label=\"chooseButtonLabel\"\n :class=\"chooseButtonClass\"\n :style=\"style\"\n :disabled=\"disabled\"\n :unstyled=\"unstyled\"\n @mouseup=\"onBasicUploaderClick\"\n @keydown.enter=\"choose\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n v-bind=\"chooseButtonProps\"\n :pt=\"ptm('pcChooseButton')\"\n >\n <template #icon=\"iconProps\">\n <slot name=\"chooseicon\">\n <component :is=\"chooseIcon ? 'span' : 'PlusIcon'\" :class=\"[iconProps.class, chooseIcon]\" aria-hidden=\"true\" v-bind=\"ptm('pcChooseButton')['icon']\" />\n </slot>\n </template>\n </Button>\n <slot v-if=\"!auto\" name=\"filelabel\" :class=\"cx('filelabel')\">\n <span :class=\"cx('filelabel')\" :files=\"files\">\n {{ basicFileChosenLabel }}\n </span>\n </slot>\n <input ref=\"fileInput\" type=\"file\" :accept=\"accept\" :disabled=\"disabled\" :multiple=\"multiple\" @change=\"onFileSelect\" @focus=\"onFocus\" @blur=\"onBlur\" v-bind=\"ptm('input')\" />\n </div>\n</template>\n\n<script>\nimport { addClass, removeClass } from '@primeuix/utils/dom';\nimport PlusIcon from '@primevue/icons/plus';\nimport TimesIcon from '@primevue/icons/times';\nimport UploadIcon from '@primevue/icons/upload';\nimport Button from 'primevue/button';\nimport Message from 'primevue/message';\nimport ProgressBar from 'primevue/progressbar';\nimport Ripple from 'primevue/ripple';\nimport BaseFileUpload from './BaseFileUpload.vue';\nimport FileContent from './FileContent.vue';\n\nexport default {\n name: 'FileUpload',\n extends: BaseFileUpload,\n inheritAttrs: false,\n emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'remove-uploaded-file'],\n duplicateIEEvent: false,\n data() {\n return {\n uploadedFileCount: 0,\n files: [],\n messages: [],\n focused: false,\n progress: null,\n uploadedFiles: []\n };\n },\n methods: {\n upload() {\n if (this.hasFiles) this.uploader();\n },\n onBasicUploaderClick(event) {\n if (event.button === 0) this.$refs.fileInput.click();\n },\n onFileSelect(event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n\n return;\n }\n\n if (this.isBasic && this.hasFiles) {\n this.files = [];\n }\n\n this.messages = [];\n this.files = this.files || [];\n let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n\n for (let file of files) {\n if (!this.isFileSelected(file) && !this.isFileLimitExceeded()) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n file.objectURL = window.URL.createObjectURL(file);\n }\n\n this.files.push(file);\n }\n }\n }\n\n this.$emit('select', { originalEvent: event, files: this.files });\n\n if (this.fileLimit) {\n this.checkFileLimit();\n }\n\n if (this.auto && this.hasFiles && !this.isFileLimitExceeded()) {\n this.uploader();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n },\n choose() {\n this.$refs.fileInput.click();\n },\n uploader() {\n if (this.customUpload) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('uploader', { files: this.files });\n this.clear();\n } else {\n let xhr = new XMLHttpRequest();\n let formData = new FormData();\n\n this.$emit('before-upload', {\n xhr: xhr,\n formData: formData\n });\n\n for (let file of this.files) {\n formData.append(this.name, file, file.name);\n }\n\n xhr.upload.addEventListener('progress', (event) => {\n if (event.lengthComputable) {\n this.progress = Math.round((event.loaded * 100) / event.total);\n }\n\n this.$emit('progress', {\n originalEvent: event,\n progress: this.progress\n });\n });\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n this.progress = 0;\n\n if (xhr.status >= 200 && xhr.status < 300) {\n if (this.fileLimit) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.$emit('upload', {\n xhr: xhr,\n files: this.files\n });\n this.uploadedFiles.push(...this.files);\n } else {\n this.$emit('error', {\n xhr: xhr,\n files: this.files\n });\n }\n\n this.clear();\n }\n };\n\n if (this.url) {\n xhr.open('POST', this.url, true);\n\n this.$emit('before-send', {\n xhr: xhr,\n formData: formData\n });\n\n xhr.withCredentials = this.withCredentials;\n\n xhr.send(formData);\n }\n }\n },\n clear() {\n this.files = [];\n this.messages = null;\n this.$emit('clear');\n\n if (this.isAdvanced) {\n this.clearInputElement();\n }\n },\n onFocus() {\n this.focused = true;\n },\n onBlur() {\n this.focused = false;\n },\n isFileSelected(file) {\n if (this.files && this.files.length) {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) return true;\n }\n }\n\n return false;\n },\n isIE11() {\n return !!window['MSInputMethodContext'] && !!document['documentMode'];\n },\n validate(file) {\n if (this.accept && !this.isFileTypeValid(file)) {\n this.messages.push(this.invalidFileTypeMessage.replace('{0}', file.name).replace('{1}', this.accept));\n\n return false;\n }\n\n if (this.maxFileSize && file.size > this.maxFileSize) {\n this.messages.push(this.invalidFileSizeMessage.replace('{0}', file.name).replace('{1}', this.formatSize(this.maxFileSize)));\n\n return false;\n }\n\n return true;\n },\n isFileTypeValid(file) {\n let acceptableTypes = this.accept.split(',').map((type) => type.trim());\n\n for (let type of acceptableTypes) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n },\n getTypeClass(fileType) {\n return fileType.substring(0, fileType.indexOf('/'));\n },\n isWildcard(fileType) {\n return fileType.indexOf('*') !== -1;\n },\n getFileExtension(file) {\n return '.' + file.name.split('.').pop();\n },\n isImage(file) {\n return /^image\\//.test(file.type);\n },\n onDragEnter(event) {\n if (!this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragOver(event) {\n if (!this.disabled) {\n !this.isUnstyled && addClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', true);\n event.stopPropagation();\n event.preventDefault();\n }\n },\n onDragLeave() {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n }\n },\n onDrop(event) {\n if (!this.disabled) {\n !this.isUnstyled && removeClass(this.$refs.content, 'p-fileupload-highlight');\n this.$refs.content.setAttribute('data-p-highlight', false);\n event.stopPropagation();\n event.preventDefault();\n\n const files = event.dataTransfer ? event.dataTransfer.files : event.target.files;\n const allowDrop = this.multiple || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n },\n remove(index) {\n this.clearInputElement();\n let removedFile = this.files.splice(index, 1)[0];\n\n this.files = [...this.files];\n this.$emit('remove', {\n file: removedFile,\n files: this.files\n });\n },\n removeUploadedFile(index) {\n let removedFile = this.uploadedFiles.splice(index, 1)[0];\n\n this.uploadedFiles = [...this.uploadedFiles];\n this.$emit('remove-uploaded-file', {\n file: removedFile,\n files: this.uploadedFiles\n });\n },\n clearInputElement() {\n this.$refs.fileInput.value = '';\n },\n clearIEInput() {\n if (this.$refs.fileInput) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n this.$refs.fileInput.value = '';\n }\n },\n formatSize(bytes) {\n const k = 1024;\n const dm = 3;\n const sizes = this.$primevue.config.locale?.fileSizeTypes || ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = parseFloat((bytes / Math.pow(k, i)).toFixed(dm));\n\n return `${formattedSize} ${sizes[i]}`;\n },\n isFileLimitExceeded() {\n if (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount && this.focused) {\n this.focused = false;\n }\n\n return this.fileLimit && this.fileLimit < this.files.length + this.uploadedFileCount;\n },\n checkFileLimit() {\n if (this.isFileLimitExceeded()) {\n this.messages.push(this.invalidFileLimitMessage.replace('{0}', this.fileLimit.toString()));\n }\n },\n onMessageClose() {\n this.messages = null;\n }\n },\n computed: {\n isAdvanced() {\n return this.mode === 'advanced';\n },\n isBasic() {\n return this.mode === 'basic';\n },\n chooseButtonClass() {\n return [this.cx('pcChooseButton'), this.class];\n },\n basicFileChosenLabel() {\n if (this.auto) return this.chooseButtonLabel;\n else if (this.hasFiles) {\n if (this.files && this.files.length === 1) return this.files[0].name;\n\n return this.$primevue.config.locale?.fileChosenMessage?.replace('{0}', this.files.length);\n }\n\n return this.$primevue.config.locale?.noFileChosenMessage || '';\n },\n hasFiles() {\n return this.files && this.files.length > 0;\n },\n hasUploadedFiles() {\n return this.uploadedFiles && this.uploadedFiles.length > 0;\n },\n chooseDisabled() {\n return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);\n },\n uploadDisabled() {\n return this.disabled || !this.hasFiles || (this.fileLimit && this.fileLimit < this.files.length);\n },\n cancelDisabled() {\n return this.disabled || !this.hasFiles;\n },\n chooseButtonLabel() {\n return this.chooseLabel || this.$primevue.config.locale.choose;\n },\n uploadButtonLabel() {\n return this.uploadLabel || this.$primevue.config.locale.upload;\n },\n cancelButtonLabel() {\n return this.cancelLabel || this.$primevue.config.locale.cancel;\n },\n completedLabel() {\n return this.$primevue.config.locale.completed;\n },\n pendingLabel() {\n return this.$primevue.config.locale.pending;\n }\n },\n components: {\n Button,\n ProgressBar,\n Message,\n FileContent,\n PlusIcon,\n UploadIcon,\n TimesIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","type","String","url","mode","multiple","Boolean","accept","disabled","auto","maxFileSize","Number","invalidFileSizeMessage","invalidFileTypeMessage","fileLimit","invalidFileLimitMessage","withCredentials","previewWidth","chooseLabel","uploadLabel","cancelLabel","customUpload","showUploadButton","showCancelButton","chooseIcon","undefined","uploadIcon","cancelIcon","style","chooseButtonProps","uploadButtonProps","Object","default","severity","cancelButtonProps","FileUploadStyle","provide","$pcFileUpload","$parentInstance","hostName","emits","files","Array","badgeSeverity","badgeValue","templates","methods","formatSize","bytes","_this$$primevue$confi","k","dm","sizes","$primevue","config","locale","fileSizeTypes","concat","i","Math","floor","log","formattedSize","parseFloat","pow","toFixed","components","Button","Badge","TimesIcon","_openBlock","_createElementBlock","_Fragment","_renderList","$props","file","index","_mergeProps","key","size","_ctx","cx","ptm","_createElementVNode","role","alt","src","objectURL","width","_hoisted_1","_toDisplayString","$options","_createVNode","_component_Badge","value","unstyled","pt","_component_Button","onClick","$event","$emit","text","rounded","icon","_withCtx","iconProps","fileremoveicon","_createBlock","_resolveDynamicComponent","_normalizeClass","_component_TimesIcon","BaseFileUpload","inheritAttrs","duplicateIEEvent","data","uploadedFileCount","messages","focused","progress","uploadedFiles","upload","hasFiles","uploader","onBasicUploaderClick","event","button","$refs","fileInput","click","onFileSelect","isIE11","isBasic","dataTransfer","target","_iterator","_createForOfIteratorHelper","_step","s","n","done","isFileSelected","isFileLimitExceeded","validate","isImage","window","URL","createObjectURL","push","err","e","f","originalEvent","checkFileLimit","clearIEInput","clearInputElement","choose","_this","length","clear","xhr","XMLHttpRequest","formData","FormData","_iterator2","_step2","append","addEventListener","lengthComputable","round","loaded","total","onreadystatechange","readyState","status","_this$uploadedFiles","apply","_toConsumableArray","open","send","isAdvanced","onFocus","onBlur","_iterator3","_step3","sFile","document","isFileTypeValid","replace","acceptableTypes","split","map","trim","_iterator4","_step4","acceptable","isWildcard","getTypeClass","getFileExtension","toLowerCase","fileType","substring","indexOf","pop","test","onDragEnter","stopPropagation","preventDefault","onDragOver","isUnstyled","addClass","content","setAttribute","onDragLeave","removeClass","onDrop","allowDrop","remove","removedFile","splice","removeUploadedFile","toString","onMessageClose","computed","chooseButtonClass","basicFileChosenLabel","_this$$primevue$confi3","chooseButtonLabel","_this$$primevue$confi2","fileChosenMessage","noFileChosenMessage","hasUploadedFiles","chooseDisabled","uploadDisabled","cancelDisabled","uploadButtonLabel","cancelButtonLabel","cancel","completedLabel","completed","pendingLabel","pending","ProgressBar","Message","FileContent","PlusIcon","UploadIcon","directives","ripple","Ripple","ptmi","ref","onChange","arguments","_renderSlot","$slots","$data","chooseCallback","uploadCallback","clearCallback","label","onKeydown","onDragenter","onDragover","onDragleave","removeUploadedFileCallback","removeFileCallback","_component_ProgressBar","showValue","msg","_component_Message","onClose","_component_FileContent","onRemove","empty","onMouseup","_hoisted_2","_hoisted_3"],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * @module floatlabel
8
8
  *
9
9
  */
10
- import type { DefineComponent, DesignToken, EmitFn, PassThrough } from '@primevue/core';
10
+ import type { DefineComponent, DesignToken, EmitFn, HintedString, PassThrough } from '@primevue/core';
11
11
  import type { ComponentHooks } from '@primevue/core/basecomponent';
12
12
  import type { PassThroughOptions } from 'primevue/passthrough';
13
13
  import { TransitionProps, VNode } from 'vue';
@@ -92,7 +92,7 @@ export interface FloatLabelProps {
92
92
  * Defines the positioning of the label relative to the input.
93
93
  * @defaultValue false
94
94
  */
95
- variant?: 'over' | 'in' | 'on' | undefined;
95
+ variant?: HintedString<'over' | 'in' | 'on'> | undefined;
96
96
  }
97
97
 
98
98
  /**
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <Portal v-if="fullScreen">
3
3
  <div v-if="containerVisible" :ref="maskRef" :class="[cx('mask'), maskClass]" role="dialog" :aria-modal="fullScreen ? 'true' : undefined" v-bind="ptm('mask')">
4
- <transition name="p-galleria" @before-enter="onBeforeEnter" @enter="onEnter" @before-leave="onBeforeLeave" @after-leave="onAfterLeave" appear v-bind="ptm('transition')">
4
+ <transition name="p-galleria" @before-enter="onBeforeEnter" @enter="onEnter" @before-leave="onBeforeLeave" @leave="onLeave" @after-leave="onAfterLeave" appear v-bind="ptm('transition')">
5
5
  <GalleriaContent v-if="visible" :ref="containerRef" v-focustrap @mask-hide="maskHide" :templates="$slots" @activeitem-change="onActiveItemChange" :pt="pt" :unstyled="unstyled" v-bind="$props" />
6
6
  </transition>
7
7
  </div>
@@ -10,7 +10,7 @@
10
10
  </template>
11
11
 
12
12
  <script>
13
- import { addClass } from '@primeuix/utils/dom';
13
+ import { addClass, focus } from '@primeuix/utils/dom';
14
14
  import { ZIndex } from '@primeuix/utils/zindex';
15
15
  import FocusTrap from 'primevue/focustrap';
16
16
  import Portal from 'primevue/portal';
@@ -25,9 +25,11 @@ export default {
25
25
  emits: ['update:activeIndex', 'update:visible'],
26
26
  container: null,
27
27
  mask: null,
28
+ documentKeydownListener: null,
28
29
  data() {
29
30
  return {
30
- containerVisible: this.visible
31
+ containerVisible: this.visible,
32
+ target: null
31
33
  };
32
34
  },
33
35
  updated() {
@@ -52,17 +54,24 @@ export default {
52
54
  ZIndex.set('modal', el, this.baseZIndex || this.$primevue.config.zIndex.modal);
53
55
  },
54
56
  onEnter(el) {
57
+ this.target = document.activeElement;
55
58
  this.mask.style.zIndex = String(parseInt(el.style.zIndex, 10) - 1);
56
59
  blockBodyScroll();
57
60
  this.focus();
61
+ this.bindGlobalListeners();
58
62
  },
59
63
  onBeforeLeave() {
60
64
  !this.isUnstyled && addClass(this.mask, 'p-overlay-mask-leave');
61
65
  },
66
+ onLeave() {
67
+ focus(this.target);
68
+ this.target = null;
69
+ },
62
70
  onAfterLeave(el) {
63
71
  ZIndex.clear(el);
64
72
  this.containerVisible = false;
65
73
  unblockBodyScroll();
74
+ this.unbindGlobalListeners();
66
75
  },
67
76
  onActiveItemChange(index) {
68
77
  if (this.activeIndex !== index) {
@@ -78,6 +87,33 @@ export default {
78
87
  maskRef(el) {
79
88
  this.mask = el;
80
89
  },
90
+ onKeyDown(event) {
91
+ if (event.code === 'Escape') {
92
+ this.maskHide();
93
+ }
94
+ },
95
+ bindDocumentKeyDownListener() {
96
+ if (!this.documentKeydownListener) {
97
+ this.documentKeydownListener = this.onKeyDown.bind(this);
98
+ window.document.addEventListener('keydown', this.documentKeydownListener);
99
+ }
100
+ },
101
+ unbindDocumentKeyDownListener() {
102
+ if (this.documentKeydownListener) {
103
+ window.document.removeEventListener('keydown', this.documentKeydownListener);
104
+ this.documentKeydownListener = null;
105
+ }
106
+ },
107
+ bindGlobalListeners() {
108
+ if (this.fullScreen) {
109
+ this.bindDocumentKeyDownListener();
110
+ }
111
+ },
112
+ unbindGlobalListeners() {
113
+ if (this.fullScreen) {
114
+ this.unbindDocumentKeyDownListener();
115
+ }
116
+ },
81
117
  focus() {
82
118
  let focusTarget = this.container.$el.querySelector('[autofocus]');
83
119
 
@@ -1,13 +1,13 @@
1
1
  <template>
2
2
  <div :class="cx('itemsContainer')" v-bind="ptm('itemsContainer')">
3
3
  <div :class="cx('items')" v-bind="ptm('items')">
4
- <button v-if="showItemNavigators" v-ripple type="button" :class="cx('prevButton')" @click="navBackward($event)" :disabled="isNavBackwardDisabled()" v-bind="ptm('prevButton')" data-pc-group-section="itemnavigator">
4
+ <button v-if="showItemNavigators" v-ripple type="button" :class="cx('prevButton')" @click="navBackward($event)" :disabled="isNavBackwardDisabled" v-bind="ptm('prevButton')" data-pc-group-section="itemnavigator">
5
5
  <component :is="templates.previousitemicon || 'ChevronLeftIcon'" :class="cx('prevIcon')" v-bind="ptm('prevIcon')" />
6
6
  </button>
7
7
  <div :id="id + '_item_' + activeIndex" :class="cx('item')" role="group" :aria-label="ariaSlideNumber(activeIndex + 1)" :aria-roledescription="ariaSlideLabel" v-bind="ptm('item')">
8
8
  <component v-if="templates.item" :is="templates.item" :item="activeItem" />
9
9
  </div>
10
- <button v-if="showItemNavigators" v-ripple type="button" :class="cx('nextButton')" @click="navForward($event)" :disabled="isNavForwardDisabled()" v-bind="ptm('nextButton')" data-pc-group-section="itemnavigator">
10
+ <button v-if="showItemNavigators" v-ripple type="button" :class="cx('nextButton')" @click="navForward($event)" :disabled="isNavForwardDisabled" v-bind="ptm('nextButton')" data-pc-group-section="itemnavigator">
11
11
  <component :is="templates.nextitemicon || 'ChevronRightIcon'" :class="cx('nextIcon')" v-bind="ptm('nextIcon')" />
12
12
  </button>
13
13
  <div v-if="templates['caption']" :class="cx('caption')" v-bind="ptm('caption')">
@@ -238,12 +238,6 @@ export default {
238
238
  isIndicatorItemActive(index) {
239
239
  return this.activeIndex === index;
240
240
  },
241
- isNavBackwardDisabled() {
242
- return !this.circular && this.activeIndex === 0;
243
- },
244
- isNavForwardDisabled() {
245
- return !this.circular && this.activeIndex === this.value.length - 1;
246
- },
247
241
  ariaSlideNumber(value) {
248
242
  return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;
249
243
  },
@@ -255,9 +249,14 @@ export default {
255
249
  activeItem() {
256
250
  return this.value[this.activeIndex];
257
251
  },
258
-
259
252
  ariaSlideLabel() {
260
253
  return this.$primevue.config.locale.aria ? this.$primevue.config.locale.aria.slide : undefined;
254
+ },
255
+ isNavBackwardDisabled() {
256
+ return !this.circular && this.activeIndex === 0;
257
+ },
258
+ isNavForwardDisabled() {
259
+ return !this.circular && this.activeIndex === this.value.length - 1;
261
260
  }
262
261
  },
263
262
  components: {
@@ -7,7 +7,7 @@
7
7
  * @module galleria
8
8
  *
9
9
  */
10
- import type { DefineComponent, DesignToken, EmitFn, PassThrough } from '@primevue/core';
10
+ import type { DefineComponent, DesignToken, EmitFn, HintedString, PassThrough } from '@primevue/core';
11
11
  import type { ComponentHooks } from '@primevue/core/basecomponent';
12
12
  import type { PassThroughOptions } from 'primevue/passthrough';
13
13
  import { ButtonHTMLAttributes, HTMLAttributes, TransitionProps, VNode } from 'vue';
@@ -348,7 +348,7 @@ export interface GalleriaProps {
348
348
  * Position of thumbnails.
349
349
  * @defaultValue bottom
350
350
  */
351
- thumbnailsPosition?: 'bottom' | 'top' | 'left' | 'right' | undefined;
351
+ thumbnailsPosition?: HintedString<'bottom' | 'top' | 'left' | 'right'> | undefined;
352
352
  /**
353
353
  * Height of the viewport in vertical thumbnail.
354
354
  * @defaultValue 300px
@@ -368,7 +368,7 @@ export interface GalleriaProps {
368
368
  * Position of indicators.
369
369
  * @defaultValue bottom
370
370
  */
371
- indicatorsPosition?: 'bottom' | 'top' | 'left' | 'right' | undefined;
371
+ indicatorsPosition?: HintedString<'bottom' | 'top' | 'left' | 'right'> | undefined;
372
372
  /**
373
373
  * Base zIndex value to use in layering.
374
374
  * @defaultValue 0