primevue 3.17.0 → 3.18.1

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 (381) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +5 -2
  3. package/accordion/Accordion.vue +4 -4
  4. package/accordion/accordion.cjs.js +4 -4
  5. package/accordion/accordion.cjs.min.js +1 -1
  6. package/accordion/accordion.esm.js +4 -4
  7. package/accordion/accordion.esm.min.js +1 -1
  8. package/accordion/accordion.js +5 -5
  9. package/accordion/accordion.min.js +1 -1
  10. package/api/api.cjs.js +24 -2
  11. package/api/api.cjs.min.js +1 -1
  12. package/api/api.esm.js +24 -2
  13. package/api/api.esm.min.js +1 -1
  14. package/api/api.js +24 -2
  15. package/api/api.min.js +1 -1
  16. package/autocomplete/AutoComplete.d.ts +10 -0
  17. package/autocomplete/AutoComplete.vue +29 -8
  18. package/autocomplete/autocomplete.cjs.js +33 -12
  19. package/autocomplete/autocomplete.cjs.min.js +1 -1
  20. package/autocomplete/autocomplete.esm.js +31 -10
  21. package/autocomplete/autocomplete.esm.min.js +1 -1
  22. package/autocomplete/autocomplete.js +32 -11
  23. package/autocomplete/autocomplete.min.js +1 -1
  24. package/breadcrumb/Breadcrumb.d.ts +9 -1
  25. package/breadcrumb/Breadcrumb.vue +14 -5
  26. package/breadcrumb/BreadcrumbItem.vue +13 -7
  27. package/breadcrumb/breadcrumb.cjs.js +29 -18
  28. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  29. package/breadcrumb/breadcrumb.esm.js +29 -18
  30. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  31. package/breadcrumb/breadcrumb.js +29 -18
  32. package/breadcrumb/breadcrumb.min.js +1 -1
  33. package/button/Button.vue +6 -3
  34. package/button/button.cjs.js +6 -3
  35. package/button/button.cjs.min.js +1 -1
  36. package/button/button.esm.js +6 -3
  37. package/button/button.esm.min.js +1 -1
  38. package/button/button.js +6 -3
  39. package/button/button.min.js +1 -1
  40. package/calendar/Calendar.d.ts +20 -0
  41. package/calendar/Calendar.vue +101 -38
  42. package/calendar/calendar.cjs.js +277 -214
  43. package/calendar/calendar.cjs.min.js +1 -1
  44. package/calendar/calendar.esm.js +275 -212
  45. package/calendar/calendar.esm.min.js +1 -1
  46. package/calendar/calendar.js +276 -213
  47. package/calendar/calendar.min.js +1 -1
  48. package/cascadeselect/CascadeSelect.d.ts +10 -0
  49. package/cascadeselect/CascadeSelect.vue +13 -4
  50. package/cascadeselect/CascadeSelectSub.vue +18 -13
  51. package/cascadeselect/cascadeselect.cjs.js +39 -26
  52. package/cascadeselect/cascadeselect.cjs.min.js +1 -1
  53. package/cascadeselect/cascadeselect.esm.js +38 -25
  54. package/cascadeselect/cascadeselect.esm.min.js +1 -1
  55. package/cascadeselect/cascadeselect.js +39 -26
  56. package/cascadeselect/cascadeselect.min.js +1 -1
  57. package/chips/Chips.d.ts +5 -0
  58. package/chips/Chips.vue +5 -1
  59. package/chips/chips.cjs.js +6 -2
  60. package/chips/chips.cjs.min.js +1 -1
  61. package/chips/chips.esm.js +6 -2
  62. package/chips/chips.esm.min.js +1 -1
  63. package/chips/chips.js +6 -2
  64. package/chips/chips.min.js +1 -1
  65. package/config/PrimeVue.d.ts +4 -1
  66. package/config/config.cjs.js +5 -2
  67. package/config/config.cjs.min.js +1 -1
  68. package/config/config.esm.js +5 -2
  69. package/config/config.esm.min.js +1 -1
  70. package/config/config.js +6 -3
  71. package/config/config.min.js +1 -1
  72. package/contextmenu/ContextMenu.d.ts +41 -2
  73. package/contextmenu/ContextMenu.vue +440 -35
  74. package/contextmenu/ContextMenuSub.vue +119 -98
  75. package/contextmenu/contextmenu.cjs.js +619 -196
  76. package/contextmenu/contextmenu.cjs.min.js +1 -1
  77. package/contextmenu/contextmenu.esm.js +620 -197
  78. package/contextmenu/contextmenu.esm.min.js +1 -1
  79. package/contextmenu/contextmenu.js +620 -197
  80. package/contextmenu/contextmenu.min.js +1 -1
  81. package/core/core.js +1557 -758
  82. package/core/core.min.js +15 -13
  83. package/datatable/DataTable.d.ts +1 -2
  84. package/datatable/DataTable.vue +3 -3
  85. package/datatable/datatable.cjs.js +2334 -2334
  86. package/datatable/datatable.cjs.min.js +1 -1
  87. package/datatable/datatable.esm.js +2319 -2319
  88. package/datatable/datatable.esm.min.js +1 -1
  89. package/datatable/datatable.js +2319 -2319
  90. package/datatable/datatable.min.js +1 -1
  91. package/dialog/Dialog.d.ts +15 -0
  92. package/dialog/Dialog.vue +19 -7
  93. package/dialog/dialog.cjs.js +26 -14
  94. package/dialog/dialog.cjs.min.js +1 -1
  95. package/dialog/dialog.esm.js +25 -13
  96. package/dialog/dialog.esm.min.js +1 -1
  97. package/dialog/dialog.js +25 -13
  98. package/dialog/dialog.min.js +1 -1
  99. package/dock/Dock.d.ts +33 -2
  100. package/dock/Dock.vue +18 -2
  101. package/dock/DockSub.vue +206 -53
  102. package/dock/dock.cjs.js +261 -90
  103. package/dock/dock.cjs.min.js +1 -1
  104. package/dock/dock.esm.js +261 -90
  105. package/dock/dock.esm.min.js +1 -1
  106. package/dock/dock.js +262 -92
  107. package/dock/dock.min.js +1 -1
  108. package/dropdown/Dropdown.d.ts +15 -0
  109. package/dropdown/Dropdown.vue +39 -8
  110. package/dropdown/dropdown.cjs.js +57 -25
  111. package/dropdown/dropdown.cjs.min.js +1 -1
  112. package/dropdown/dropdown.esm.js +56 -24
  113. package/dropdown/dropdown.esm.min.js +1 -1
  114. package/dropdown/dropdown.js +56 -24
  115. package/dropdown/dropdown.min.js +1 -1
  116. package/fileupload/FileContent.vue +58 -0
  117. package/fileupload/FileUpload.d.ts +21 -1
  118. package/fileupload/FileUpload.vue +62 -48
  119. package/fileupload/fileupload.cjs.js +220 -115
  120. package/fileupload/fileupload.cjs.min.js +1 -1
  121. package/fileupload/fileupload.esm.js +219 -115
  122. package/fileupload/fileupload.esm.min.js +1 -1
  123. package/fileupload/fileupload.js +219 -115
  124. package/fileupload/fileupload.min.js +1 -1
  125. package/galleria/GalleriaThumbnails.vue +2 -2
  126. package/galleria/galleria.cjs.js +1 -1
  127. package/galleria/galleria.cjs.min.js +1 -1
  128. package/galleria/galleria.esm.js +1 -1
  129. package/galleria/galleria.esm.min.js +1 -1
  130. package/galleria/galleria.js +1 -1
  131. package/galleria/galleria.min.js +1 -1
  132. package/inlinemessage/inlinemessage.cjs.js +1 -2
  133. package/inlinemessage/inlinemessage.cjs.min.js +1 -1
  134. package/inlinemessage/inlinemessage.esm.js +1 -2
  135. package/inlinemessage/inlinemessage.esm.min.js +1 -1
  136. package/inlinemessage/inlinemessage.js +1 -2
  137. package/inlinemessage/inlinemessage.min.js +1 -1
  138. package/inplace/Inplace.d.ts +5 -0
  139. package/inplace/Inplace.vue +5 -1
  140. package/inplace/inplace.cjs.js +6 -2
  141. package/inplace/inplace.cjs.min.js +1 -1
  142. package/inplace/inplace.esm.js +6 -2
  143. package/inplace/inplace.esm.min.js +1 -1
  144. package/inplace/inplace.js +6 -2
  145. package/inplace/inplace.min.js +1 -1
  146. package/inputnumber/InputNumber.d.ts +5 -0
  147. package/inputnumber/InputNumber.vue +20 -4
  148. package/inputnumber/inputnumber.cjs.js +21 -5
  149. package/inputnumber/inputnumber.cjs.min.js +1 -1
  150. package/inputnumber/inputnumber.esm.js +20 -4
  151. package/inputnumber/inputnumber.esm.min.js +1 -1
  152. package/inputnumber/inputnumber.js +21 -6
  153. package/inputnumber/inputnumber.min.js +1 -1
  154. package/listbox/Listbox.d.ts +5 -0
  155. package/listbox/Listbox.vue +5 -1
  156. package/listbox/listbox.cjs.js +25 -20
  157. package/listbox/listbox.cjs.min.js +1 -1
  158. package/listbox/listbox.esm.js +25 -20
  159. package/listbox/listbox.esm.min.js +1 -1
  160. package/listbox/listbox.js +25 -20
  161. package/listbox/listbox.min.js +1 -1
  162. package/megamenu/MegaMenu.d.ts +29 -2
  163. package/megamenu/MegaMenu.vue +486 -228
  164. package/megamenu/MegaMenuSub.vue +231 -0
  165. package/megamenu/megamenu.cjs.js +818 -377
  166. package/megamenu/megamenu.cjs.min.js +1 -1
  167. package/megamenu/megamenu.esm.js +820 -379
  168. package/megamenu/megamenu.esm.min.js +1 -1
  169. package/megamenu/megamenu.js +818 -377
  170. package/megamenu/megamenu.min.js +1 -1
  171. package/menu/Menu.d.ts +25 -2
  172. package/menu/Menu.vue +184 -20
  173. package/menu/Menuitem.vue +35 -28
  174. package/menu/menu.cjs.js +295 -116
  175. package/menu/menu.cjs.min.js +1 -1
  176. package/menu/menu.esm.js +295 -116
  177. package/menu/menu.esm.min.js +1 -1
  178. package/menu/menu.js +295 -116
  179. package/menu/menu.min.js +1 -1
  180. package/menubar/Menubar.d.ts +14 -2
  181. package/menubar/Menubar.vue +528 -16
  182. package/menubar/MenubarSub.vue +105 -238
  183. package/menubar/menubar.cjs.js +693 -317
  184. package/menubar/menubar.cjs.min.js +1 -1
  185. package/menubar/menubar.esm.js +695 -319
  186. package/menubar/menubar.esm.min.js +1 -1
  187. package/menubar/menubar.js +693 -317
  188. package/menubar/menubar.min.js +1 -1
  189. package/message/Message.d.ts +5 -0
  190. package/message/Message.vue +5 -1
  191. package/message/message.cjs.js +9 -5
  192. package/message/message.cjs.min.js +1 -1
  193. package/message/message.esm.js +9 -5
  194. package/message/message.esm.min.js +1 -1
  195. package/message/message.js +9 -5
  196. package/message/message.min.js +1 -1
  197. package/multiselect/MultiSelect.d.ts +25 -0
  198. package/multiselect/MultiSelect.vue +55 -14
  199. package/multiselect/multiselect.cjs.js +82 -40
  200. package/multiselect/multiselect.cjs.min.js +1 -1
  201. package/multiselect/multiselect.esm.js +81 -39
  202. package/multiselect/multiselect.esm.min.js +1 -1
  203. package/multiselect/multiselect.js +81 -39
  204. package/multiselect/multiselect.min.js +1 -1
  205. package/overlaypanel/OverlayPanel.d.ts +2 -1
  206. package/package.json +3 -3
  207. package/paginator/Paginator.d.ts +2 -2
  208. package/paginator/Paginator.vue +120 -23
  209. package/paginator/paginator.cjs.js +279 -182
  210. package/paginator/paginator.cjs.min.js +1 -1
  211. package/paginator/paginator.esm.js +280 -183
  212. package/paginator/paginator.esm.min.js +1 -1
  213. package/paginator/paginator.js +280 -184
  214. package/paginator/paginator.min.js +1 -1
  215. package/panelmenu/PanelMenu.d.ts +32 -1
  216. package/panelmenu/PanelMenu.vue +189 -83
  217. package/panelmenu/PanelMenuList.vue +334 -0
  218. package/panelmenu/PanelMenuSub.vue +124 -85
  219. package/panelmenu/panelmenu.cjs.js +751 -271
  220. package/panelmenu/panelmenu.cjs.min.js +1 -1
  221. package/panelmenu/panelmenu.esm.js +748 -272
  222. package/panelmenu/panelmenu.esm.min.js +1 -1
  223. package/panelmenu/panelmenu.js +751 -272
  224. package/panelmenu/panelmenu.min.js +1 -1
  225. package/password/Password.vue +5 -4
  226. package/password/password.cjs.js +6 -5
  227. package/password/password.cjs.min.js +1 -1
  228. package/password/password.esm.js +5 -4
  229. package/password/password.esm.min.js +1 -1
  230. package/password/password.js +6 -5
  231. package/password/password.min.js +1 -1
  232. package/resources/primevue.css +21 -2
  233. package/resources/primevue.min.css +1 -1
  234. package/resources/themes/arya-blue/theme.css +317 -270
  235. package/resources/themes/arya-green/theme.css +317 -270
  236. package/resources/themes/arya-orange/theme.css +317 -270
  237. package/resources/themes/arya-purple/theme.css +317 -270
  238. package/resources/themes/bootstrap4-dark-blue/theme.css +332 -285
  239. package/resources/themes/bootstrap4-dark-purple/theme.css +332 -285
  240. package/resources/themes/bootstrap4-light-blue/theme.css +345 -298
  241. package/resources/themes/bootstrap4-light-purple/theme.css +345 -298
  242. package/resources/themes/fluent-light/theme.css +327 -280
  243. package/resources/themes/lara-dark-blue/theme.css +320 -273
  244. package/resources/themes/lara-dark-indigo/theme.css +320 -273
  245. package/resources/themes/lara-dark-purple/theme.css +320 -273
  246. package/resources/themes/lara-dark-teal/theme.css +320 -273
  247. package/resources/themes/lara-light-blue/theme.css +344 -297
  248. package/resources/themes/lara-light-indigo/theme.css +344 -297
  249. package/resources/themes/lara-light-purple/theme.css +344 -297
  250. package/resources/themes/lara-light-teal/theme.css +344 -297
  251. package/resources/themes/luna-amber/theme.css +348 -301
  252. package/resources/themes/luna-blue/theme.css +348 -301
  253. package/resources/themes/luna-green/theme.css +348 -301
  254. package/resources/themes/luna-pink/theme.css +348 -301
  255. package/resources/themes/md-dark-deeppurple/theme.css +367 -298
  256. package/resources/themes/md-dark-indigo/theme.css +367 -298
  257. package/resources/themes/md-light-deeppurple/theme.css +367 -298
  258. package/resources/themes/md-light-indigo/theme.css +367 -298
  259. package/resources/themes/mdc-dark-deeppurple/theme.css +367 -298
  260. package/resources/themes/mdc-dark-indigo/theme.css +367 -298
  261. package/resources/themes/mdc-light-deeppurple/theme.css +367 -298
  262. package/resources/themes/mdc-light-indigo/theme.css +367 -298
  263. package/resources/themes/nova/theme.css +312 -265
  264. package/resources/themes/nova-accent/theme.css +312 -265
  265. package/resources/themes/nova-alt/theme.css +312 -265
  266. package/resources/themes/nova-vue/theme.css +312 -265
  267. package/resources/themes/rhea/theme.css +312 -265
  268. package/resources/themes/saga-blue/theme.css +324 -277
  269. package/resources/themes/saga-green/theme.css +324 -277
  270. package/resources/themes/saga-orange/theme.css +324 -277
  271. package/resources/themes/saga-purple/theme.css +324 -277
  272. package/resources/themes/tailwind-light/theme.css +336 -289
  273. package/resources/themes/vela-blue/theme.css +324 -277
  274. package/resources/themes/vela-green/theme.css +324 -277
  275. package/resources/themes/vela-orange/theme.css +324 -277
  276. package/resources/themes/vela-purple/theme.css +324 -277
  277. package/ripple/ripple.cjs.js +12 -0
  278. package/ripple/ripple.cjs.min.js +1 -1
  279. package/ripple/ripple.esm.js +12 -0
  280. package/ripple/ripple.esm.min.js +1 -1
  281. package/ripple/ripple.js +12 -0
  282. package/ripple/ripple.min.js +1 -1
  283. package/scrollpanel/ScrollPanel.vue +5 -0
  284. package/scrollpanel/scrollpanel.cjs.js +1 -1
  285. package/scrollpanel/scrollpanel.cjs.min.js +1 -1
  286. package/scrollpanel/scrollpanel.esm.js +1 -1
  287. package/scrollpanel/scrollpanel.esm.min.js +1 -1
  288. package/scrollpanel/scrollpanel.js +1 -1
  289. package/scrollpanel/scrollpanel.min.js +1 -1
  290. package/sidebar/Sidebar.d.ts +5 -0
  291. package/sidebar/Sidebar.vue +7 -3
  292. package/sidebar/sidebar.cjs.js +14 -10
  293. package/sidebar/sidebar.cjs.min.js +1 -1
  294. package/sidebar/sidebar.esm.js +14 -10
  295. package/sidebar/sidebar.esm.min.js +1 -1
  296. package/sidebar/sidebar.js +14 -10
  297. package/sidebar/sidebar.min.js +1 -1
  298. package/slider/Slider.vue +21 -12
  299. package/slider/slider.cjs.js +21 -12
  300. package/slider/slider.cjs.min.js +1 -1
  301. package/slider/slider.esm.js +21 -12
  302. package/slider/slider.esm.min.js +1 -1
  303. package/slider/slider.js +21 -12
  304. package/slider/slider.min.js +1 -1
  305. package/speeddial/SpeedDial.vue +21 -16
  306. package/speeddial/speeddial.cjs.js +34 -27
  307. package/speeddial/speeddial.cjs.min.js +1 -1
  308. package/speeddial/speeddial.esm.js +34 -27
  309. package/speeddial/speeddial.esm.min.js +1 -1
  310. package/speeddial/speeddial.js +34 -27
  311. package/speeddial/speeddial.min.js +1 -1
  312. package/steps/Steps.vue +108 -9
  313. package/steps/steps.cjs.js +111 -20
  314. package/steps/steps.cjs.min.js +1 -1
  315. package/steps/steps.esm.js +112 -21
  316. package/steps/steps.esm.min.js +1 -1
  317. package/steps/steps.js +111 -20
  318. package/steps/steps.min.js +1 -1
  319. package/styleclass/styleclass.cjs.js +1 -1
  320. package/styleclass/styleclass.cjs.min.js +1 -1
  321. package/styleclass/styleclass.esm.js +1 -1
  322. package/styleclass/styleclass.esm.min.js +1 -1
  323. package/styleclass/styleclass.js +1 -1
  324. package/styleclass/styleclass.min.js +1 -1
  325. package/tabmenu/TabMenu.d.ts +9 -1
  326. package/tabmenu/TabMenu.vue +135 -6
  327. package/tabmenu/tabmenu.cjs.js +137 -17
  328. package/tabmenu/tabmenu.cjs.min.js +1 -1
  329. package/tabmenu/tabmenu.esm.js +137 -17
  330. package/tabmenu/tabmenu.esm.min.js +1 -1
  331. package/tabmenu/tabmenu.js +138 -18
  332. package/tabmenu/tabmenu.min.js +1 -1
  333. package/tabview/TabView.vue +2 -2
  334. package/tabview/tabview.cjs.js +2 -2
  335. package/tabview/tabview.cjs.min.js +1 -1
  336. package/tabview/tabview.esm.js +2 -2
  337. package/tabview/tabview.esm.min.js +1 -1
  338. package/tabview/tabview.js +3 -3
  339. package/tabview/tabview.min.js +1 -1
  340. package/tieredmenu/TieredMenu.d.ts +46 -3
  341. package/tieredmenu/TieredMenu.vue +482 -48
  342. package/tieredmenu/TieredMenuSub.vue +111 -204
  343. package/tieredmenu/tieredmenu.cjs.js +656 -320
  344. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  345. package/tieredmenu/tieredmenu.esm.js +657 -321
  346. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  347. package/tieredmenu/tieredmenu.js +657 -321
  348. package/tieredmenu/tieredmenu.min.js +1 -1
  349. package/toast/Toast.d.ts +25 -0
  350. package/toast/Toast.vue +37 -4
  351. package/toast/ToastMessage.vue +16 -9
  352. package/toast/toast.cjs.js +59 -25
  353. package/toast/toast.cjs.min.js +1 -1
  354. package/toast/toast.esm.js +58 -24
  355. package/toast/toast.esm.min.js +1 -1
  356. package/toast/toast.js +59 -25
  357. package/toast/toast.min.js +1 -1
  358. package/togglebutton/ToggleButton.vue +42 -7
  359. package/togglebutton/togglebutton.cjs.js +42 -6
  360. package/togglebutton/togglebutton.cjs.min.js +1 -1
  361. package/togglebutton/togglebutton.esm.js +42 -6
  362. package/togglebutton/togglebutton.esm.min.js +1 -1
  363. package/togglebutton/togglebutton.js +42 -6
  364. package/togglebutton/togglebutton.min.js +1 -1
  365. package/tooltip/tooltip.cjs.js +14 -4
  366. package/tooltip/tooltip.cjs.min.js +1 -1
  367. package/tooltip/tooltip.esm.js +14 -4
  368. package/tooltip/tooltip.esm.min.js +1 -1
  369. package/tooltip/tooltip.js +14 -4
  370. package/tooltip/tooltip.min.js +1 -1
  371. package/tree/Tree.d.ts +8 -0
  372. package/utils/Utils.d.ts +3 -0
  373. package/utils/utils.cjs.js +26 -0
  374. package/utils/utils.cjs.min.js +1 -1
  375. package/utils/utils.esm.js +26 -0
  376. package/utils/utils.esm.min.js +1 -1
  377. package/utils/utils.js +26 -0
  378. package/utils/utils.min.js +1 -1
  379. package/vetur-attributes.json +244 -4
  380. package/vetur-tags.json +77 -16
  381. package/web-types.json +811 -7
@@ -1,30 +1,24 @@
1
1
  <template>
2
2
  <div v-if="isAdvanced" class="p-fileupload p-fileupload-advanced p-component">
3
+ <input ref="fileInput" type="file" @change="onFileSelect" :multiple="multiple" :accept="accept" :disabled="chooseDisabled" />
3
4
  <div class="p-fileupload-buttonbar">
4
- <span v-ripple :class="advancedChooseButtonClass" :style="style" @click="choose" @keydown.enter="choose" @focus="onFocus" @blur="onBlur" tabindex="0">
5
- <input ref="fileInput" type="file" @change="onFileSelect" :multiple="multiple" :accept="accept" :disabled="chooseDisabled" />
6
- <span :class="advancedChooseIconClass"></span>
7
- <span class="p-button-label">{{ chooseButtonLabel }}</span>
8
- </span>
9
- <FileUploadButton v-if="showUploadButton" :label="uploadButtonLabel" :icon="uploadIcon" @click="upload" :disabled="uploadDisabled" />
10
- <FileUploadButton v-if="showCancelButton" :label="cancelButtonLabel" :icon="cancelIcon" @click="clear" :disabled="cancelDisabled" />
5
+ <slot name="header" :files="files" :uploadedFiles="uploadedFiles" :chooseCallback="choose" :uploadCallback="upload" :clearCallback="clear">
6
+ <span v-ripple :class="advancedChooseButtonClass" :style="style" @click="choose" @keydown.enter="choose" @focus="onFocus" @blur="onBlur" tabindex="0">
7
+ <span :class="advancedChooseIconClass"></span>
8
+ <span class="p-button-label">{{ chooseButtonLabel }}</span>
9
+ </span>
10
+ <FileUploadButton v-if="showUploadButton" :label="uploadButtonLabel" :icon="uploadIcon" @click="upload" :disabled="uploadDisabled" />
11
+ <FileUploadButton v-if="showCancelButton" :label="cancelButtonLabel" :icon="cancelIcon" @click="clear" :disabled="cancelDisabled" />
12
+ </slot>
11
13
  </div>
12
14
  <div ref="content" class="p-fileupload-content" @dragenter="onDragEnter" @dragover="onDragOver" @dragleave="onDragLeave" @drop="onDrop">
13
- <FileUploadProgressBar v-if="hasFiles" :value="progress" />
14
- <FileUploadMessage v-for="msg of messages" :key="msg" severity="error" @close="onMessageClose">{{ msg }}</FileUploadMessage>
15
- <div v-if="hasFiles" class="p-fileupload-files">
16
- <div v-for="(file, index) of files" :key="file.name + file.type + file.size" class="p-fileupload-row">
17
- <div>
18
- <img v-if="isImage(file)" role="presentation" :alt="file.name" :src="file.objectURL" :width="previewWidth" />
19
- </div>
20
- <div class="p-fileupload-filename">{{ file.name }}</div>
21
- <div>{{ formatSize(file.size) }}</div>
22
- <div>
23
- <FileUploadButton type="button" icon="pi pi-times" @click="remove(index)" />
24
- </div>
25
- </div>
26
- </div>
27
- <div v-if="$slots.empty && !hasFiles" class="p-fileupload-empty">
15
+ <slot name="content" :files="files" :uploadedFiles="uploadedFiles" :removeUploadedFileCallback="removeUploadedFile" :removeFileCallback="remove" :progress="progress" :messages="messages">
16
+ <FileUploadProgressBar v-if="hasFiles" :value="progress" :showValue="false" />
17
+ <FileUploadMessage v-for="msg of messages" :key="msg" severity="error" @close="onMessageClose">{{ msg }}</FileUploadMessage>
18
+ <FileContent v-if="hasFiles" :files="files" @remove="remove" :badgeValue="pendingLabel" :previewWidth="previewWidth" />
19
+ <FileContent :files="uploadedFiles" @remove="removeUploadedFile" :badgeValue="completedLabel" badgeSeverity="success" :previewWidth="previewWidth" />
20
+ </slot>
21
+ <div v-if="$slots.empty && !hasFiles && !hasUploadedFiles" class="p-fileupload-empty">
28
22
  <slot name="empty"></slot>
29
23
  </div>
30
24
  </div>
@@ -41,14 +35,15 @@
41
35
 
42
36
  <script>
43
37
  import Button from 'primevue/button';
44
- import ProgressBar from 'primevue/progressbar';
45
38
  import Message from 'primevue/message';
46
- import { DomHandler } from 'primevue/utils';
39
+ import ProgressBar from 'primevue/progressbar';
47
40
  import Ripple from 'primevue/ripple';
41
+ import { DomHandler } from 'primevue/utils';
42
+ import FileContent from './FileContent.vue';
48
43
 
49
44
  export default {
50
45
  name: 'FileUpload',
51
- emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove'],
46
+ emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'removeUploadedFile'],
52
47
  props: {
53
48
  name: {
54
49
  type: String,
@@ -152,7 +147,8 @@ export default {
152
147
  files: [],
153
148
  messages: [],
154
149
  focused: false,
155
- progress: null
150
+ progress: null,
151
+ uploadedFiles: []
156
152
  };
157
153
  },
158
154
  methods: {
@@ -250,6 +246,7 @@ export default {
250
246
  });
251
247
  }
252
248
 
249
+ this.uploadedFiles.push(...this.files);
253
250
  this.clear();
254
251
  }
255
252
  };
@@ -379,6 +376,15 @@ export default {
379
376
  files: this.files
380
377
  });
381
378
  },
379
+ removeUploadedFile(index) {
380
+ let removedFile = this.uploadedFiles.splice(index, 1)[0];
381
+
382
+ this.uploadedFiles = [...this.uploadedFiles];
383
+ this.$emit('removeUploadedFile', {
384
+ file: removedFile,
385
+ files: this.uploadedFiles
386
+ });
387
+ },
382
388
  clearInputElement() {
383
389
  this.$refs.fileInput.value = '';
384
390
  },
@@ -456,6 +462,9 @@ export default {
456
462
  hasFiles() {
457
463
  return this.files && this.files.length > 0;
458
464
  },
465
+ hasUploadedFiles() {
466
+ return this.uploadedFiles && this.uploadedFiles.length > 0;
467
+ },
459
468
  chooseDisabled() {
460
469
  return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);
461
470
  },
@@ -473,12 +482,19 @@ export default {
473
482
  },
474
483
  cancelButtonLabel() {
475
484
  return this.cancelLabel || this.$primevue.config.locale.cancel;
485
+ },
486
+ completedLabel() {
487
+ return this.$primevue.config.locale.completed;
488
+ },
489
+ pendingLabel() {
490
+ return this.$primevue.config.locale.pending;
476
491
  }
477
492
  },
478
493
  components: {
479
494
  FileUploadButton: Button,
480
495
  FileUploadProgressBar: ProgressBar,
481
- FileUploadMessage: Message
496
+ FileUploadMessage: Message,
497
+ FileContent
482
498
  },
483
499
  directives: {
484
500
  ripple: Ripple
@@ -491,20 +507,6 @@ export default {
491
507
  position: relative;
492
508
  }
493
509
 
494
- .p-fileupload-row {
495
- display: flex;
496
- align-items: center;
497
- }
498
-
499
- .p-fileupload-row > div {
500
- flex: 1 1 auto;
501
- width: 25%;
502
- }
503
-
504
- .p-fileupload-row > div:last-child {
505
- text-align: right;
506
- }
507
-
508
510
  .p-fileupload-content .p-progressbar {
509
511
  width: 100%;
510
512
  position: absolute;
@@ -517,19 +519,31 @@ export default {
517
519
  overflow: hidden;
518
520
  }
519
521
 
520
- .p-button.p-fileupload-choose input[type='file'] {
521
- display: none;
522
+ .p-fileupload-buttonbar {
523
+ display: flex;
524
+ flex-wrap: wrap;
522
525
  }
523
526
 
524
- .p-fileupload-choose.p-fileupload-choose-selected input[type='file'] {
527
+ .p-fileupload > input[type='file'],
528
+ .p-fileupload-basic input[type='file'] {
525
529
  display: none;
526
530
  }
527
531
 
528
- .p-fileupload-filename {
529
- word-break: break-all;
530
- }
531
-
532
532
  .p-fluid .p-fileupload .p-button {
533
533
  width: auto;
534
534
  }
535
+
536
+ .p-fileupload-file {
537
+ display: flex;
538
+ flex-wrap: wrap;
539
+ align-items: center;
540
+ }
541
+
542
+ .p-fileupload-file-thumbnail {
543
+ flex-shrink: 0;
544
+ }
545
+
546
+ .p-fileupload-file-actions {
547
+ margin-left: auto;
548
+ }
535
549
  </style>
@@ -1,22 +1,108 @@
1
1
  'use strict';
2
2
 
3
3
  var Button = require('primevue/button');
4
- var ProgressBar = require('primevue/progressbar');
5
4
  var Message = require('primevue/message');
6
- var utils = require('primevue/utils');
5
+ var ProgressBar = require('primevue/progressbar');
7
6
  var Ripple = require('primevue/ripple');
7
+ var utils = require('primevue/utils');
8
+ var Badge = require('primevue/badge');
8
9
  var vue = require('vue');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
12
13
  var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
13
- var ProgressBar__default = /*#__PURE__*/_interopDefaultLegacy(ProgressBar);
14
14
  var Message__default = /*#__PURE__*/_interopDefaultLegacy(Message);
15
+ var ProgressBar__default = /*#__PURE__*/_interopDefaultLegacy(ProgressBar);
15
16
  var Ripple__default = /*#__PURE__*/_interopDefaultLegacy(Ripple);
17
+ var Badge__default = /*#__PURE__*/_interopDefaultLegacy(Badge);
18
+
19
+ var script$1 = {
20
+ emits: ['remove'],
21
+ props: {
22
+ files: {
23
+ type: Array,
24
+ default: () => []
25
+ },
26
+ badgeSeverity: {
27
+ type: String,
28
+ default: 'warning'
29
+ },
30
+ badgeValue: {
31
+ type: String,
32
+ default: null
33
+ },
34
+ previewWidth: {
35
+ type: Number,
36
+ default: 50
37
+ }
38
+ },
39
+ methods: {
40
+ formatSize(bytes) {
41
+ if (bytes === 0) {
42
+ return '0 B';
43
+ }
44
+
45
+ let k = 1000,
46
+ dm = 3,
47
+ sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
48
+ i = Math.floor(Math.log(bytes) / Math.log(k));
49
+
50
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
51
+ }
52
+ },
53
+ components: {
54
+ FileUploadButton: Button__default["default"],
55
+ FileUploadBadge: Badge__default["default"]
56
+ }
57
+ };
58
+
59
+ const _hoisted_1$1 = ["alt", "src", "width"];
60
+ const _hoisted_2$1 = { class: "p-fileupload-file-details" };
61
+ const _hoisted_3$1 = { class: "p-fileupload-file-name" };
62
+ const _hoisted_4$1 = { class: "p-fileupload-file-size" };
63
+ const _hoisted_5$1 = { class: "p-fileupload-file-actions" };
64
+
65
+ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
66
+ const _component_FileUploadBadge = vue.resolveComponent("FileUploadBadge");
67
+ const _component_FileUploadButton = vue.resolveComponent("FileUploadButton");
68
+
69
+ return (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($props.files, (file, index) => {
70
+ return (vue.openBlock(), vue.createElementBlock("div", {
71
+ key: file.name + file.type + file.size,
72
+ class: "p-fileupload-file"
73
+ }, [
74
+ vue.createElementVNode("img", {
75
+ role: "presentation",
76
+ class: "p-fileupload-file-thumbnail",
77
+ alt: file.name,
78
+ src: file.objectURL,
79
+ width: $props.previewWidth
80
+ }, null, 8, _hoisted_1$1),
81
+ vue.createElementVNode("div", _hoisted_2$1, [
82
+ vue.createElementVNode("div", _hoisted_3$1, vue.toDisplayString(file.name), 1),
83
+ vue.createElementVNode("span", _hoisted_4$1, vue.toDisplayString($options.formatSize(file.size)), 1),
84
+ vue.createVNode(_component_FileUploadBadge, {
85
+ value: $props.badgeValue,
86
+ class: "p-fileupload-file-badge",
87
+ severity: $props.badgeSeverity
88
+ }, null, 8, ["value", "severity"])
89
+ ]),
90
+ vue.createElementVNode("div", _hoisted_5$1, [
91
+ vue.createVNode(_component_FileUploadButton, {
92
+ icon: "pi pi-times",
93
+ onClick: $event => (_ctx.$emit('remove', index)),
94
+ class: "p-fileupload-file-remove p-button-text p-button-danger p-button-rounded"
95
+ }, null, 8, ["onClick"])
96
+ ])
97
+ ]))
98
+ }), 128))
99
+ }
100
+
101
+ script$1.render = render$1;
16
102
 
17
103
  var script = {
18
104
  name: 'FileUpload',
19
- emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove'],
105
+ emits: ['select', 'uploader', 'before-upload', 'progress', 'upload', 'error', 'before-send', 'clear', 'remove', 'removeUploadedFile'],
20
106
  props: {
21
107
  name: {
22
108
  type: String,
@@ -120,7 +206,8 @@ var script = {
120
206
  files: [],
121
207
  messages: [],
122
208
  focused: false,
123
- progress: null
209
+ progress: null,
210
+ uploadedFiles: []
124
211
  };
125
212
  },
126
213
  methods: {
@@ -218,6 +305,7 @@ var script = {
218
305
  });
219
306
  }
220
307
 
308
+ this.uploadedFiles.push(...this.files);
221
309
  this.clear();
222
310
  }
223
311
  };
@@ -347,6 +435,15 @@ var script = {
347
435
  files: this.files
348
436
  });
349
437
  },
438
+ removeUploadedFile(index) {
439
+ let removedFile = this.uploadedFiles.splice(index, 1)[0];
440
+
441
+ this.uploadedFiles = [...this.uploadedFiles];
442
+ this.$emit('removeUploadedFile', {
443
+ file: removedFile,
444
+ files: this.uploadedFiles
445
+ });
446
+ },
350
447
  clearInputElement() {
351
448
  this.$refs.fileInput.value = '';
352
449
  },
@@ -424,6 +521,9 @@ var script = {
424
521
  hasFiles() {
425
522
  return this.files && this.files.length > 0;
426
523
  },
524
+ hasUploadedFiles() {
525
+ return this.uploadedFiles && this.uploadedFiles.length > 0;
526
+ },
427
527
  chooseDisabled() {
428
528
  return this.disabled || (this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount);
429
529
  },
@@ -441,12 +541,19 @@ var script = {
441
541
  },
442
542
  cancelButtonLabel() {
443
543
  return this.cancelLabel || this.$primevue.config.locale.cancel;
544
+ },
545
+ completedLabel() {
546
+ return this.$primevue.config.locale.completed;
547
+ },
548
+ pendingLabel() {
549
+ return this.$primevue.config.locale.pending;
444
550
  }
445
551
  },
446
552
  components: {
447
553
  FileUploadButton: Button__default["default"],
448
554
  FileUploadProgressBar: ProgressBar__default["default"],
449
- FileUploadMessage: Message__default["default"]
555
+ FileUploadMessage: Message__default["default"],
556
+ FileContent: script$1
450
557
  },
451
558
  directives: {
452
559
  ripple: Ripple__default["default"]
@@ -457,77 +564,80 @@ const _hoisted_1 = {
457
564
  key: 0,
458
565
  class: "p-fileupload p-fileupload-advanced p-component"
459
566
  };
460
- const _hoisted_2 = { class: "p-fileupload-buttonbar" };
461
- const _hoisted_3 = ["multiple", "accept", "disabled"];
567
+ const _hoisted_2 = ["multiple", "accept", "disabled"];
568
+ const _hoisted_3 = { class: "p-fileupload-buttonbar" };
462
569
  const _hoisted_4 = { class: "p-button-label" };
463
570
  const _hoisted_5 = {
464
- key: 1,
465
- class: "p-fileupload-files"
466
- };
467
- const _hoisted_6 = ["alt", "src", "width"];
468
- const _hoisted_7 = { class: "p-fileupload-filename" };
469
- const _hoisted_8 = {
470
- key: 2,
571
+ key: 0,
471
572
  class: "p-fileupload-empty"
472
573
  };
473
- const _hoisted_9 = {
574
+ const _hoisted_6 = {
474
575
  key: 1,
475
576
  class: "p-fileupload p-fileupload-basic p-component"
476
577
  };
477
- const _hoisted_10 = { class: "p-button-label" };
478
- const _hoisted_11 = ["accept", "disabled", "multiple"];
578
+ const _hoisted_7 = { class: "p-button-label" };
579
+ const _hoisted_8 = ["accept", "disabled", "multiple"];
479
580
 
480
581
  function render(_ctx, _cache, $props, $setup, $data, $options) {
481
582
  const _component_FileUploadButton = vue.resolveComponent("FileUploadButton");
482
583
  const _component_FileUploadProgressBar = vue.resolveComponent("FileUploadProgressBar");
483
584
  const _component_FileUploadMessage = vue.resolveComponent("FileUploadMessage");
585
+ const _component_FileContent = vue.resolveComponent("FileContent");
484
586
  const _directive_ripple = vue.resolveDirective("ripple");
485
587
 
486
588
  return ($options.isAdvanced)
487
589
  ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
488
- vue.createElementVNode("div", _hoisted_2, [
489
- vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
490
- class: vue.normalizeClass($options.advancedChooseButtonClass),
491
- style: vue.normalizeStyle($props.style),
492
- onClick: _cache[1] || (_cache[1] = (...args) => ($options.choose && $options.choose(...args))),
493
- onKeydown: _cache[2] || (_cache[2] = vue.withKeys((...args) => ($options.choose && $options.choose(...args)), ["enter"])),
494
- onFocus: _cache[3] || (_cache[3] = (...args) => ($options.onFocus && $options.onFocus(...args))),
495
- onBlur: _cache[4] || (_cache[4] = (...args) => ($options.onBlur && $options.onBlur(...args))),
496
- tabindex: "0"
497
- }, [
498
- vue.createElementVNode("input", {
499
- ref: "fileInput",
500
- type: "file",
501
- onChange: _cache[0] || (_cache[0] = (...args) => ($options.onFileSelect && $options.onFileSelect(...args))),
502
- multiple: $props.multiple,
503
- accept: $props.accept,
504
- disabled: $options.chooseDisabled
505
- }, null, 40, _hoisted_3),
506
- vue.createElementVNode("span", {
507
- class: vue.normalizeClass($options.advancedChooseIconClass)
508
- }, null, 2),
509
- vue.createElementVNode("span", _hoisted_4, vue.toDisplayString($options.chooseButtonLabel), 1)
510
- ], 38)), [
511
- [_directive_ripple]
512
- ]),
513
- ($props.showUploadButton)
514
- ? (vue.openBlock(), vue.createBlock(_component_FileUploadButton, {
515
- key: 0,
516
- label: $options.uploadButtonLabel,
517
- icon: $props.uploadIcon,
518
- onClick: $options.upload,
519
- disabled: $options.uploadDisabled
520
- }, null, 8, ["label", "icon", "onClick", "disabled"]))
521
- : vue.createCommentVNode("", true),
522
- ($props.showCancelButton)
523
- ? (vue.openBlock(), vue.createBlock(_component_FileUploadButton, {
524
- key: 1,
525
- label: $options.cancelButtonLabel,
526
- icon: $props.cancelIcon,
527
- onClick: $options.clear,
528
- disabled: $options.cancelDisabled
529
- }, null, 8, ["label", "icon", "onClick", "disabled"]))
530
- : vue.createCommentVNode("", true)
590
+ vue.createElementVNode("input", {
591
+ ref: "fileInput",
592
+ type: "file",
593
+ onChange: _cache[0] || (_cache[0] = (...args) => ($options.onFileSelect && $options.onFileSelect(...args))),
594
+ multiple: $props.multiple,
595
+ accept: $props.accept,
596
+ disabled: $options.chooseDisabled
597
+ }, null, 40, _hoisted_2),
598
+ vue.createElementVNode("div", _hoisted_3, [
599
+ vue.renderSlot(_ctx.$slots, "header", {
600
+ files: $data.files,
601
+ uploadedFiles: $data.uploadedFiles,
602
+ chooseCallback: $options.choose,
603
+ uploadCallback: $options.upload,
604
+ clearCallback: $options.clear
605
+ }, () => [
606
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
607
+ class: vue.normalizeClass($options.advancedChooseButtonClass),
608
+ style: vue.normalizeStyle($props.style),
609
+ onClick: _cache[1] || (_cache[1] = (...args) => ($options.choose && $options.choose(...args))),
610
+ onKeydown: _cache[2] || (_cache[2] = vue.withKeys((...args) => ($options.choose && $options.choose(...args)), ["enter"])),
611
+ onFocus: _cache[3] || (_cache[3] = (...args) => ($options.onFocus && $options.onFocus(...args))),
612
+ onBlur: _cache[4] || (_cache[4] = (...args) => ($options.onBlur && $options.onBlur(...args))),
613
+ tabindex: "0"
614
+ }, [
615
+ vue.createElementVNode("span", {
616
+ class: vue.normalizeClass($options.advancedChooseIconClass)
617
+ }, null, 2),
618
+ vue.createElementVNode("span", _hoisted_4, vue.toDisplayString($options.chooseButtonLabel), 1)
619
+ ], 38)), [
620
+ [_directive_ripple]
621
+ ]),
622
+ ($props.showUploadButton)
623
+ ? (vue.openBlock(), vue.createBlock(_component_FileUploadButton, {
624
+ key: 0,
625
+ label: $options.uploadButtonLabel,
626
+ icon: $props.uploadIcon,
627
+ onClick: $options.upload,
628
+ disabled: $options.uploadDisabled
629
+ }, null, 8, ["label", "icon", "onClick", "disabled"]))
630
+ : vue.createCommentVNode("", true),
631
+ ($props.showCancelButton)
632
+ ? (vue.openBlock(), vue.createBlock(_component_FileUploadButton, {
633
+ key: 1,
634
+ label: $options.cancelButtonLabel,
635
+ icon: $props.cancelIcon,
636
+ onClick: $options.clear,
637
+ disabled: $options.cancelDisabled
638
+ }, null, 8, ["label", "icon", "onClick", "disabled"]))
639
+ : vue.createCommentVNode("", true)
640
+ ])
531
641
  ]),
532
642
  vue.createElementVNode("div", {
533
643
  ref: "content",
@@ -537,64 +647,59 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
537
647
  onDragleave: _cache[7] || (_cache[7] = (...args) => ($options.onDragLeave && $options.onDragLeave(...args))),
538
648
  onDrop: _cache[8] || (_cache[8] = (...args) => ($options.onDrop && $options.onDrop(...args)))
539
649
  }, [
540
- ($options.hasFiles)
541
- ? (vue.openBlock(), vue.createBlock(_component_FileUploadProgressBar, {
542
- key: 0,
543
- value: $data.progress
544
- }, null, 8, ["value"]))
545
- : vue.createCommentVNode("", true),
546
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.messages, (msg) => {
547
- return (vue.openBlock(), vue.createBlock(_component_FileUploadMessage, {
548
- key: msg,
549
- severity: "error",
550
- onClose: $options.onMessageClose
551
- }, {
552
- default: vue.withCtx(() => [
553
- vue.createTextVNode(vue.toDisplayString(msg), 1)
554
- ]),
555
- _: 2
556
- }, 1032, ["onClose"]))
557
- }), 128)),
558
- ($options.hasFiles)
650
+ vue.renderSlot(_ctx.$slots, "content", {
651
+ files: $data.files,
652
+ uploadedFiles: $data.uploadedFiles,
653
+ removeUploadedFileCallback: $options.removeUploadedFile,
654
+ removeFileCallback: $options.remove,
655
+ progress: $data.progress,
656
+ messages: $data.messages
657
+ }, () => [
658
+ ($options.hasFiles)
659
+ ? (vue.openBlock(), vue.createBlock(_component_FileUploadProgressBar, {
660
+ key: 0,
661
+ value: $data.progress,
662
+ showValue: false
663
+ }, null, 8, ["value"]))
664
+ : vue.createCommentVNode("", true),
665
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.messages, (msg) => {
666
+ return (vue.openBlock(), vue.createBlock(_component_FileUploadMessage, {
667
+ key: msg,
668
+ severity: "error",
669
+ onClose: $options.onMessageClose
670
+ }, {
671
+ default: vue.withCtx(() => [
672
+ vue.createTextVNode(vue.toDisplayString(msg), 1)
673
+ ]),
674
+ _: 2
675
+ }, 1032, ["onClose"]))
676
+ }), 128)),
677
+ ($options.hasFiles)
678
+ ? (vue.openBlock(), vue.createBlock(_component_FileContent, {
679
+ key: 1,
680
+ files: $data.files,
681
+ onRemove: $options.remove,
682
+ badgeValue: $options.pendingLabel,
683
+ previewWidth: $props.previewWidth
684
+ }, null, 8, ["files", "onRemove", "badgeValue", "previewWidth"]))
685
+ : vue.createCommentVNode("", true),
686
+ vue.createVNode(_component_FileContent, {
687
+ files: $data.uploadedFiles,
688
+ onRemove: $options.removeUploadedFile,
689
+ badgeValue: $options.completedLabel,
690
+ badgeSeverity: "success",
691
+ previewWidth: $props.previewWidth
692
+ }, null, 8, ["files", "onRemove", "badgeValue", "previewWidth"])
693
+ ]),
694
+ (_ctx.$slots.empty && !$options.hasFiles && !$options.hasUploadedFiles)
559
695
  ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
560
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.files, (file, index) => {
561
- return (vue.openBlock(), vue.createElementBlock("div", {
562
- key: file.name + file.type + file.size,
563
- class: "p-fileupload-row"
564
- }, [
565
- vue.createElementVNode("div", null, [
566
- ($options.isImage(file))
567
- ? (vue.openBlock(), vue.createElementBlock("img", {
568
- key: 0,
569
- role: "presentation",
570
- alt: file.name,
571
- src: file.objectURL,
572
- width: $props.previewWidth
573
- }, null, 8, _hoisted_6))
574
- : vue.createCommentVNode("", true)
575
- ]),
576
- vue.createElementVNode("div", _hoisted_7, vue.toDisplayString(file.name), 1),
577
- vue.createElementVNode("div", null, vue.toDisplayString($options.formatSize(file.size)), 1),
578
- vue.createElementVNode("div", null, [
579
- vue.createVNode(_component_FileUploadButton, {
580
- type: "button",
581
- icon: "pi pi-times",
582
- onClick: $event => ($options.remove(index))
583
- }, null, 8, ["onClick"])
584
- ])
585
- ]))
586
- }), 128))
587
- ]))
588
- : vue.createCommentVNode("", true),
589
- (_ctx.$slots.empty && !$options.hasFiles)
590
- ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
591
696
  vue.renderSlot(_ctx.$slots, "empty")
592
697
  ]))
593
698
  : vue.createCommentVNode("", true)
594
699
  ], 544)
595
700
  ]))
596
701
  : ($options.isBasic)
597
- ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
702
+ ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
598
703
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList($data.messages, (msg) => {
599
704
  return (vue.openBlock(), vue.createBlock(_component_FileUploadMessage, {
600
705
  key: msg,
@@ -619,7 +724,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
619
724
  vue.createElementVNode("span", {
620
725
  class: vue.normalizeClass($options.basicChooseButtonIconClass)
621
726
  }, null, 2),
622
- vue.createElementVNode("span", _hoisted_10, vue.toDisplayString($options.basicChooseButtonLabel), 1),
727
+ vue.createElementVNode("span", _hoisted_7, vue.toDisplayString($options.basicChooseButtonLabel), 1),
623
728
  (!$options.hasFiles)
624
729
  ? (vue.openBlock(), vue.createElementBlock("input", {
625
730
  key: 0,
@@ -631,7 +736,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
631
736
  onChange: _cache[9] || (_cache[9] = (...args) => ($options.onFileSelect && $options.onFileSelect(...args))),
632
737
  onFocus: _cache[10] || (_cache[10] = (...args) => ($options.onFocus && $options.onFocus(...args))),
633
738
  onBlur: _cache[11] || (_cache[11] = (...args) => ($options.onBlur && $options.onBlur(...args)))
634
- }, null, 40, _hoisted_11))
739
+ }, null, 40, _hoisted_8))
635
740
  : vue.createCommentVNode("", true)
636
741
  ], 38)), [
637
742
  [_directive_ripple]
@@ -667,7 +772,7 @@ function styleInject(css, ref) {
667
772
  }
668
773
  }
669
774
 
670
- var css_248z = "\n.p-fileupload-content {\n position: relative;\n}\n.p-fileupload-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.p-fileupload-row > div {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 25%;\n}\n.p-fileupload-row > div:last-child {\n text-align: right;\n}\n.p-fileupload-content .p-progressbar {\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n.p-button.p-fileupload-choose {\n position: relative;\n overflow: hidden;\n}\n.p-button.p-fileupload-choose input[type='file'] {\n display: none;\n}\n.p-fileupload-choose.p-fileupload-choose-selected input[type='file'] {\n display: none;\n}\n.p-fileupload-filename {\n word-break: break-all;\n}\n.p-fluid .p-fileupload .p-button {\n width: auto;\n}\n";
775
+ var css_248z = "\n.p-fileupload-content {\n position: relative;\n}\n.p-fileupload-content .p-progressbar {\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n}\n.p-button.p-fileupload-choose {\n position: relative;\n overflow: hidden;\n}\n.p-fileupload-buttonbar {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.p-fileupload > input[type='file'],\n.p-fileupload-basic input[type='file'] {\n display: none;\n}\n.p-fluid .p-fileupload .p-button {\n width: auto;\n}\n.p-fileupload-file {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.p-fileupload-file-thumbnail {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n.p-fileupload-file-actions {\n margin-left: auto;\n}\n";
671
776
  styleInject(css_248z);
672
777
 
673
778
  script.render = render;