primeng 0.0.0-watch

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 (507) hide show
  1. package/LICENSE.md +77 -0
  2. package/README.md +11 -0
  3. package/accordion/index.d.ts +255 -0
  4. package/animateonscroll/index.d.ts +71 -0
  5. package/api/index.d.ts +1820 -0
  6. package/autocomplete/index.d.ts +925 -0
  7. package/autofocus/index.d.ts +31 -0
  8. package/avatar/index.d.ts +115 -0
  9. package/avatargroup/index.d.ts +60 -0
  10. package/badge/index.d.ts +156 -0
  11. package/base/index.d.ts +63 -0
  12. package/basecomponent/index.d.ts +54 -0
  13. package/baseeditableholder/index.d.ts +45 -0
  14. package/baseinput/index.d.ts +73 -0
  15. package/basemodelholder/index.d.ts +12 -0
  16. package/blockui/index.d.ts +114 -0
  17. package/breadcrumb/index.d.ts +179 -0
  18. package/button/index.d.ts +478 -0
  19. package/buttongroup/index.d.ts +43 -0
  20. package/card/index.d.ts +154 -0
  21. package/carousel/index.d.ts +443 -0
  22. package/cascadeselect/index.d.ts +729 -0
  23. package/chart/index.d.ts +128 -0
  24. package/checkbox/index.d.ts +248 -0
  25. package/chip/index.d.ts +165 -0
  26. package/colorpicker/index.d.ts +329 -0
  27. package/config/index.d.ts +89 -0
  28. package/confirmdialog/index.d.ts +358 -0
  29. package/confirmpopup/index.d.ts +218 -0
  30. package/contextmenu/index.d.ts +356 -0
  31. package/dataview/index.d.ts +539 -0
  32. package/datepicker/index.d.ts +1191 -0
  33. package/dialog/index.d.ts +531 -0
  34. package/divider/index.d.ts +114 -0
  35. package/dock/index.d.ts +201 -0
  36. package/dom/index.d.ts +109 -0
  37. package/dragdrop/index.d.ts +121 -0
  38. package/drawer/index.d.ts +309 -0
  39. package/dynamicdialog/index.d.ts +544 -0
  40. package/editor/index.d.ts +306 -0
  41. package/fesm2022/primeng-accordion.mjs +593 -0
  42. package/fesm2022/primeng-accordion.mjs.map +1 -0
  43. package/fesm2022/primeng-animateonscroll.mjs +178 -0
  44. package/fesm2022/primeng-animateonscroll.mjs.map +1 -0
  45. package/fesm2022/primeng-api.mjs +836 -0
  46. package/fesm2022/primeng-api.mjs.map +1 -0
  47. package/fesm2022/primeng-autocomplete.mjs +2073 -0
  48. package/fesm2022/primeng-autocomplete.mjs.map +1 -0
  49. package/fesm2022/primeng-autofocus.mjs +83 -0
  50. package/fesm2022/primeng-autofocus.mjs.map +1 -0
  51. package/fesm2022/primeng-avatar.mjs +181 -0
  52. package/fesm2022/primeng-avatar.mjs.map +1 -0
  53. package/fesm2022/primeng-avatargroup.mjs +103 -0
  54. package/fesm2022/primeng-avatargroup.mjs.map +1 -0
  55. package/fesm2022/primeng-badge.mjs +366 -0
  56. package/fesm2022/primeng-badge.mjs.map +1 -0
  57. package/fesm2022/primeng-base.mjs +127 -0
  58. package/fesm2022/primeng-base.mjs.map +1 -0
  59. package/fesm2022/primeng-basecomponent.mjs +173 -0
  60. package/fesm2022/primeng-basecomponent.mjs.map +1 -0
  61. package/fesm2022/primeng-baseeditableholder.mjs +67 -0
  62. package/fesm2022/primeng-baseeditableholder.mjs.map +1 -0
  63. package/fesm2022/primeng-baseinput.mjs +85 -0
  64. package/fesm2022/primeng-baseinput.mjs.map +1 -0
  65. package/fesm2022/primeng-basemodelholder.mjs +25 -0
  66. package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
  67. package/fesm2022/primeng-blockui.mjs +237 -0
  68. package/fesm2022/primeng-blockui.mjs.map +1 -0
  69. package/fesm2022/primeng-breadcrumb.mjs +457 -0
  70. package/fesm2022/primeng-breadcrumb.mjs.map +1 -0
  71. package/fesm2022/primeng-button.mjs +864 -0
  72. package/fesm2022/primeng-button.mjs.map +1 -0
  73. package/fesm2022/primeng-buttongroup.mjs +109 -0
  74. package/fesm2022/primeng-buttongroup.mjs.map +1 -0
  75. package/fesm2022/primeng-card.mjs +271 -0
  76. package/fesm2022/primeng-card.mjs.map +1 -0
  77. package/fesm2022/primeng-carousel.mjs +1101 -0
  78. package/fesm2022/primeng-carousel.mjs.map +1 -0
  79. package/fesm2022/primeng-cascadeselect.mjs +1778 -0
  80. package/fesm2022/primeng-cascadeselect.mjs.map +1 -0
  81. package/fesm2022/primeng-chart.mjs +246 -0
  82. package/fesm2022/primeng-chart.mjs.map +1 -0
  83. package/fesm2022/primeng-checkbox.mjs +441 -0
  84. package/fesm2022/primeng-checkbox.mjs.map +1 -0
  85. package/fesm2022/primeng-chip.mjs +323 -0
  86. package/fesm2022/primeng-chip.mjs.map +1 -0
  87. package/fesm2022/primeng-colorpicker.mjs +865 -0
  88. package/fesm2022/primeng-colorpicker.mjs.map +1 -0
  89. package/fesm2022/primeng-config.mjs +289 -0
  90. package/fesm2022/primeng-config.mjs.map +1 -0
  91. package/fesm2022/primeng-confirmdialog.mjs +823 -0
  92. package/fesm2022/primeng-confirmdialog.mjs.map +1 -0
  93. package/fesm2022/primeng-confirmpopup.mjs +630 -0
  94. package/fesm2022/primeng-confirmpopup.mjs.map +1 -0
  95. package/fesm2022/primeng-contextmenu.mjs +1410 -0
  96. package/fesm2022/primeng-contextmenu.mjs.map +1 -0
  97. package/fesm2022/primeng-dataview.mjs +812 -0
  98. package/fesm2022/primeng-dataview.mjs.map +1 -0
  99. package/fesm2022/primeng-datepicker.mjs +4373 -0
  100. package/fesm2022/primeng-datepicker.mjs.map +1 -0
  101. package/fesm2022/primeng-dialog.mjs +1278 -0
  102. package/fesm2022/primeng-dialog.mjs.map +1 -0
  103. package/fesm2022/primeng-divider.mjs +145 -0
  104. package/fesm2022/primeng-divider.mjs.map +1 -0
  105. package/fesm2022/primeng-dock.mjs +540 -0
  106. package/fesm2022/primeng-dock.mjs.map +1 -0
  107. package/fesm2022/primeng-dom.mjs +775 -0
  108. package/fesm2022/primeng-dom.mjs.map +1 -0
  109. package/fesm2022/primeng-dragdrop.mjs +336 -0
  110. package/fesm2022/primeng-dragdrop.mjs.map +1 -0
  111. package/fesm2022/primeng-drawer.mjs +738 -0
  112. package/fesm2022/primeng-drawer.mjs.map +1 -0
  113. package/fesm2022/primeng-dynamicdialog.mjs +1242 -0
  114. package/fesm2022/primeng-dynamicdialog.mjs.map +1 -0
  115. package/fesm2022/primeng-editor.mjs +511 -0
  116. package/fesm2022/primeng-editor.mjs.map +1 -0
  117. package/fesm2022/primeng-fieldset.mjs +417 -0
  118. package/fesm2022/primeng-fieldset.mjs.map +1 -0
  119. package/fesm2022/primeng-fileupload.mjs +1561 -0
  120. package/fesm2022/primeng-fileupload.mjs.map +1 -0
  121. package/fesm2022/primeng-floatlabel.mjs +103 -0
  122. package/fesm2022/primeng-floatlabel.mjs.map +1 -0
  123. package/fesm2022/primeng-fluid.mjs +80 -0
  124. package/fesm2022/primeng-fluid.mjs.map +1 -0
  125. package/fesm2022/primeng-focustrap.mjs +110 -0
  126. package/fesm2022/primeng-focustrap.mjs.map +1 -0
  127. package/fesm2022/primeng-galleria.mjs +1874 -0
  128. package/fesm2022/primeng-galleria.mjs.map +1 -0
  129. package/fesm2022/primeng-iconfield.mjs +101 -0
  130. package/fesm2022/primeng-iconfield.mjs.map +1 -0
  131. package/fesm2022/primeng-icons-angledoubledown.mjs +37 -0
  132. package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -0
  133. package/fesm2022/primeng-icons-angledoubleleft.mjs +37 -0
  134. package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -0
  135. package/fesm2022/primeng-icons-angledoubleright.mjs +37 -0
  136. package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -0
  137. package/fesm2022/primeng-icons-angledoubleup.mjs +37 -0
  138. package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -0
  139. package/fesm2022/primeng-icons-angledown.mjs +33 -0
  140. package/fesm2022/primeng-icons-angledown.mjs.map +1 -0
  141. package/fesm2022/primeng-icons-angleleft.mjs +33 -0
  142. package/fesm2022/primeng-icons-angleleft.mjs.map +1 -0
  143. package/fesm2022/primeng-icons-angleright.mjs +33 -0
  144. package/fesm2022/primeng-icons-angleright.mjs.map +1 -0
  145. package/fesm2022/primeng-icons-angleup.mjs +33 -0
  146. package/fesm2022/primeng-icons-angleup.mjs.map +1 -0
  147. package/fesm2022/primeng-icons-arrowdown.mjs +57 -0
  148. package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -0
  149. package/fesm2022/primeng-icons-arrowdownleft.mjs +33 -0
  150. package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -0
  151. package/fesm2022/primeng-icons-arrowdownright.mjs +33 -0
  152. package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -0
  153. package/fesm2022/primeng-icons-arrowleft.mjs +57 -0
  154. package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -0
  155. package/fesm2022/primeng-icons-arrowright.mjs +37 -0
  156. package/fesm2022/primeng-icons-arrowright.mjs.map +1 -0
  157. package/fesm2022/primeng-icons-arrowup.mjs +57 -0
  158. package/fesm2022/primeng-icons-arrowup.mjs.map +1 -0
  159. package/fesm2022/primeng-icons-ban.mjs +53 -0
  160. package/fesm2022/primeng-icons-ban.mjs.map +1 -0
  161. package/fesm2022/primeng-icons-bars.mjs +37 -0
  162. package/fesm2022/primeng-icons-bars.mjs.map +1 -0
  163. package/fesm2022/primeng-icons-baseicon.mjs +102 -0
  164. package/fesm2022/primeng-icons-baseicon.mjs.map +1 -0
  165. package/fesm2022/primeng-icons-blank.mjs +23 -0
  166. package/fesm2022/primeng-icons-blank.mjs.map +1 -0
  167. package/fesm2022/primeng-icons-calendar.mjs +33 -0
  168. package/fesm2022/primeng-icons-calendar.mjs.map +1 -0
  169. package/fesm2022/primeng-icons-caretleft.mjs +33 -0
  170. package/fesm2022/primeng-icons-caretleft.mjs.map +1 -0
  171. package/fesm2022/primeng-icons-caretright.mjs +33 -0
  172. package/fesm2022/primeng-icons-caretright.mjs.map +1 -0
  173. package/fesm2022/primeng-icons-check.mjs +33 -0
  174. package/fesm2022/primeng-icons-check.mjs.map +1 -0
  175. package/fesm2022/primeng-icons-chevrondown.mjs +33 -0
  176. package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -0
  177. package/fesm2022/primeng-icons-chevronleft.mjs +33 -0
  178. package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -0
  179. package/fesm2022/primeng-icons-chevronright.mjs +33 -0
  180. package/fesm2022/primeng-icons-chevronright.mjs.map +1 -0
  181. package/fesm2022/primeng-icons-chevronup.mjs +33 -0
  182. package/fesm2022/primeng-icons-chevronup.mjs.map +1 -0
  183. package/fesm2022/primeng-icons-exclamationtriangle.mjs +69 -0
  184. package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -0
  185. package/fesm2022/primeng-icons-eye.mjs +37 -0
  186. package/fesm2022/primeng-icons-eye.mjs.map +1 -0
  187. package/fesm2022/primeng-icons-eyeslash.mjs +57 -0
  188. package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -0
  189. package/fesm2022/primeng-icons-filter.mjs +53 -0
  190. package/fesm2022/primeng-icons-filter.mjs.map +1 -0
  191. package/fesm2022/primeng-icons-filterfill.mjs +33 -0
  192. package/fesm2022/primeng-icons-filterfill.mjs.map +1 -0
  193. package/fesm2022/primeng-icons-filterslash.mjs +57 -0
  194. package/fesm2022/primeng-icons-filterslash.mjs.map +1 -0
  195. package/fesm2022/primeng-icons-home.mjs +57 -0
  196. package/fesm2022/primeng-icons-home.mjs.map +1 -0
  197. package/fesm2022/primeng-icons-infocircle.mjs +57 -0
  198. package/fesm2022/primeng-icons-infocircle.mjs.map +1 -0
  199. package/fesm2022/primeng-icons-minus.mjs +33 -0
  200. package/fesm2022/primeng-icons-minus.mjs.map +1 -0
  201. package/fesm2022/primeng-icons-pencil.mjs +53 -0
  202. package/fesm2022/primeng-icons-pencil.mjs.map +1 -0
  203. package/fesm2022/primeng-icons-plus.mjs +53 -0
  204. package/fesm2022/primeng-icons-plus.mjs.map +1 -0
  205. package/fesm2022/primeng-icons-refresh.mjs +57 -0
  206. package/fesm2022/primeng-icons-refresh.mjs.map +1 -0
  207. package/fesm2022/primeng-icons-search.mjs +57 -0
  208. package/fesm2022/primeng-icons-search.mjs.map +1 -0
  209. package/fesm2022/primeng-icons-searchminus.mjs +57 -0
  210. package/fesm2022/primeng-icons-searchminus.mjs.map +1 -0
  211. package/fesm2022/primeng-icons-searchplus.mjs +57 -0
  212. package/fesm2022/primeng-icons-searchplus.mjs.map +1 -0
  213. package/fesm2022/primeng-icons-sortalt.mjs +65 -0
  214. package/fesm2022/primeng-icons-sortalt.mjs.map +1 -0
  215. package/fesm2022/primeng-icons-sortamountdown.mjs +53 -0
  216. package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -0
  217. package/fesm2022/primeng-icons-sortamountupalt.mjs +53 -0
  218. package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -0
  219. package/fesm2022/primeng-icons-spinner.mjs +53 -0
  220. package/fesm2022/primeng-icons-spinner.mjs.map +1 -0
  221. package/fesm2022/primeng-icons-star.mjs +53 -0
  222. package/fesm2022/primeng-icons-star.mjs.map +1 -0
  223. package/fesm2022/primeng-icons-starfill.mjs +53 -0
  224. package/fesm2022/primeng-icons-starfill.mjs.map +1 -0
  225. package/fesm2022/primeng-icons-thlarge.mjs +57 -0
  226. package/fesm2022/primeng-icons-thlarge.mjs.map +1 -0
  227. package/fesm2022/primeng-icons-times.mjs +33 -0
  228. package/fesm2022/primeng-icons-times.mjs.map +1 -0
  229. package/fesm2022/primeng-icons-timescircle.mjs +57 -0
  230. package/fesm2022/primeng-icons-timescircle.mjs.map +1 -0
  231. package/fesm2022/primeng-icons-trash.mjs +57 -0
  232. package/fesm2022/primeng-icons-trash.mjs.map +1 -0
  233. package/fesm2022/primeng-icons-undo.mjs +57 -0
  234. package/fesm2022/primeng-icons-undo.mjs.map +1 -0
  235. package/fesm2022/primeng-icons-upload.mjs +57 -0
  236. package/fesm2022/primeng-icons-upload.mjs.map +1 -0
  237. package/fesm2022/primeng-icons-windowmaximize.mjs +57 -0
  238. package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -0
  239. package/fesm2022/primeng-icons-windowminimize.mjs +57 -0
  240. package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -0
  241. package/fesm2022/primeng-icons.mjs +63 -0
  242. package/fesm2022/primeng-icons.mjs.map +1 -0
  243. package/fesm2022/primeng-iftalabel.mjs +89 -0
  244. package/fesm2022/primeng-iftalabel.mjs.map +1 -0
  245. package/fesm2022/primeng-image.mjs +705 -0
  246. package/fesm2022/primeng-image.mjs.map +1 -0
  247. package/fesm2022/primeng-imagecompare.mjs +192 -0
  248. package/fesm2022/primeng-imagecompare.mjs.map +1 -0
  249. package/fesm2022/primeng-inplace.mjs +319 -0
  250. package/fesm2022/primeng-inplace.mjs.map +1 -0
  251. package/fesm2022/primeng-inputgroup.mjs +128 -0
  252. package/fesm2022/primeng-inputgroup.mjs.map +1 -0
  253. package/fesm2022/primeng-inputgroupaddon.mjs +83 -0
  254. package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -0
  255. package/fesm2022/primeng-inputicon.mjs +71 -0
  256. package/fesm2022/primeng-inputicon.mjs.map +1 -0
  257. package/fesm2022/primeng-inputmask.mjs +926 -0
  258. package/fesm2022/primeng-inputmask.mjs.map +1 -0
  259. package/fesm2022/primeng-inputnumber.mjs +1621 -0
  260. package/fesm2022/primeng-inputnumber.mjs.map +1 -0
  261. package/fesm2022/primeng-inputotp.mjs +443 -0
  262. package/fesm2022/primeng-inputotp.mjs.map +1 -0
  263. package/fesm2022/primeng-inputtext.mjs +145 -0
  264. package/fesm2022/primeng-inputtext.mjs.map +1 -0
  265. package/fesm2022/primeng-keyfilter.mjs +267 -0
  266. package/fesm2022/primeng-keyfilter.mjs.map +1 -0
  267. package/fesm2022/primeng-knob.mjs +491 -0
  268. package/fesm2022/primeng-knob.mjs.map +1 -0
  269. package/fesm2022/primeng-listbox.mjs +1925 -0
  270. package/fesm2022/primeng-listbox.mjs.map +1 -0
  271. package/fesm2022/primeng-megamenu.mjs +1493 -0
  272. package/fesm2022/primeng-megamenu.mjs.map +1 -0
  273. package/fesm2022/primeng-menu.mjs +1069 -0
  274. package/fesm2022/primeng-menu.mjs.map +1 -0
  275. package/fesm2022/primeng-menubar.mjs +1391 -0
  276. package/fesm2022/primeng-menubar.mjs.map +1 -0
  277. package/fesm2022/primeng-message.mjs +420 -0
  278. package/fesm2022/primeng-message.mjs.map +1 -0
  279. package/fesm2022/primeng-metergroup.mjs +393 -0
  280. package/fesm2022/primeng-metergroup.mjs.map +1 -0
  281. package/fesm2022/primeng-multiselect.mjs +2519 -0
  282. package/fesm2022/primeng-multiselect.mjs.map +1 -0
  283. package/fesm2022/primeng-orderlist.mjs +890 -0
  284. package/fesm2022/primeng-orderlist.mjs.map +1 -0
  285. package/fesm2022/primeng-organizationchart.mjs +520 -0
  286. package/fesm2022/primeng-organizationchart.mjs.map +1 -0
  287. package/fesm2022/primeng-overlay.mjs +776 -0
  288. package/fesm2022/primeng-overlay.mjs.map +1 -0
  289. package/fesm2022/primeng-overlaybadge.mjs +151 -0
  290. package/fesm2022/primeng-overlaybadge.mjs.map +1 -0
  291. package/fesm2022/primeng-paginator.mjs +802 -0
  292. package/fesm2022/primeng-paginator.mjs.map +1 -0
  293. package/fesm2022/primeng-panel.mjs +595 -0
  294. package/fesm2022/primeng-panel.mjs.map +1 -0
  295. package/fesm2022/primeng-panelmenu.mjs +1442 -0
  296. package/fesm2022/primeng-panelmenu.mjs.map +1 -0
  297. package/fesm2022/primeng-password.mjs +1156 -0
  298. package/fesm2022/primeng-password.mjs.map +1 -0
  299. package/fesm2022/primeng-picklist.mjs +2057 -0
  300. package/fesm2022/primeng-picklist.mjs.map +1 -0
  301. package/fesm2022/primeng-popover.mjs +611 -0
  302. package/fesm2022/primeng-popover.mjs.map +1 -0
  303. package/fesm2022/primeng-progressbar.mjs +196 -0
  304. package/fesm2022/primeng-progressbar.mjs.map +1 -0
  305. package/fesm2022/primeng-progressspinner.mjs +140 -0
  306. package/fesm2022/primeng-progressspinner.mjs.map +1 -0
  307. package/fesm2022/primeng-radiobutton.mjs +358 -0
  308. package/fesm2022/primeng-radiobutton.mjs.map +1 -0
  309. package/fesm2022/primeng-rating.mjs +388 -0
  310. package/fesm2022/primeng-rating.mjs.map +1 -0
  311. package/fesm2022/primeng-ripple.mjs +190 -0
  312. package/fesm2022/primeng-ripple.mjs.map +1 -0
  313. package/fesm2022/primeng-scroller.mjs +1306 -0
  314. package/fesm2022/primeng-scroller.mjs.map +1 -0
  315. package/fesm2022/primeng-scrollpanel.mjs +560 -0
  316. package/fesm2022/primeng-scrollpanel.mjs.map +1 -0
  317. package/fesm2022/primeng-scrolltop.mjs +339 -0
  318. package/fesm2022/primeng-scrolltop.mjs.map +1 -0
  319. package/fesm2022/primeng-select.mjs +2250 -0
  320. package/fesm2022/primeng-select.mjs.map +1 -0
  321. package/fesm2022/primeng-selectbutton.mjs +413 -0
  322. package/fesm2022/primeng-selectbutton.mjs.map +1 -0
  323. package/fesm2022/primeng-skeleton.mjs +154 -0
  324. package/fesm2022/primeng-skeleton.mjs.map +1 -0
  325. package/fesm2022/primeng-slider.mjs +843 -0
  326. package/fesm2022/primeng-slider.mjs.map +1 -0
  327. package/fesm2022/primeng-speeddial.mjs +901 -0
  328. package/fesm2022/primeng-speeddial.mjs.map +1 -0
  329. package/fesm2022/primeng-splitbutton.mjs +598 -0
  330. package/fesm2022/primeng-splitbutton.mjs.map +1 -0
  331. package/fesm2022/primeng-splitter.mjs +587 -0
  332. package/fesm2022/primeng-splitter.mjs.map +1 -0
  333. package/fesm2022/primeng-stepper.mjs +683 -0
  334. package/fesm2022/primeng-stepper.mjs.map +1 -0
  335. package/fesm2022/primeng-steps.mjs +424 -0
  336. package/fesm2022/primeng-steps.mjs.map +1 -0
  337. package/fesm2022/primeng-styleclass.mjs +354 -0
  338. package/fesm2022/primeng-styleclass.mjs.map +1 -0
  339. package/fesm2022/primeng-table.mjs +7540 -0
  340. package/fesm2022/primeng-table.mjs.map +1 -0
  341. package/fesm2022/primeng-tabs.mjs +794 -0
  342. package/fesm2022/primeng-tabs.mjs.map +1 -0
  343. package/fesm2022/primeng-tag.mjs +176 -0
  344. package/fesm2022/primeng-tag.mjs.map +1 -0
  345. package/fesm2022/primeng-terminal.mjs +254 -0
  346. package/fesm2022/primeng-terminal.mjs.map +1 -0
  347. package/fesm2022/primeng-textarea.mjs +197 -0
  348. package/fesm2022/primeng-textarea.mjs.map +1 -0
  349. package/fesm2022/primeng-tieredmenu.mjs +1457 -0
  350. package/fesm2022/primeng-tieredmenu.mjs.map +1 -0
  351. package/fesm2022/primeng-timeline.mjs +228 -0
  352. package/fesm2022/primeng-timeline.mjs.map +1 -0
  353. package/fesm2022/primeng-toast.mjs +751 -0
  354. package/fesm2022/primeng-toast.mjs.map +1 -0
  355. package/fesm2022/primeng-togglebutton.mjs +361 -0
  356. package/fesm2022/primeng-togglebutton.mjs.map +1 -0
  357. package/fesm2022/primeng-toggleswitch.mjs +330 -0
  358. package/fesm2022/primeng-toggleswitch.mjs.map +1 -0
  359. package/fesm2022/primeng-toolbar.mjs +189 -0
  360. package/fesm2022/primeng-toolbar.mjs.map +1 -0
  361. package/fesm2022/primeng-tooltip.mjs +757 -0
  362. package/fesm2022/primeng-tooltip.mjs.map +1 -0
  363. package/fesm2022/primeng-tree.mjs +2188 -0
  364. package/fesm2022/primeng-tree.mjs.map +1 -0
  365. package/fesm2022/primeng-treeselect.mjs +1328 -0
  366. package/fesm2022/primeng-treeselect.mjs.map +1 -0
  367. package/fesm2022/primeng-treetable.mjs +5080 -0
  368. package/fesm2022/primeng-treetable.mjs.map +1 -0
  369. package/fesm2022/primeng-ts-helpers.mjs +4 -0
  370. package/fesm2022/primeng-ts-helpers.mjs.map +1 -0
  371. package/fesm2022/primeng-usestyle.mjs +52 -0
  372. package/fesm2022/primeng-usestyle.mjs.map +1 -0
  373. package/fesm2022/primeng-utils.mjs +332 -0
  374. package/fesm2022/primeng-utils.mjs.map +1 -0
  375. package/fesm2022/primeng.mjs +6 -0
  376. package/fesm2022/primeng.mjs.map +1 -0
  377. package/fieldset/index.d.ts +217 -0
  378. package/fileupload/index.d.ts +786 -0
  379. package/floatlabel/index.d.ts +59 -0
  380. package/fluid/index.d.ts +48 -0
  381. package/focustrap/index.d.ts +36 -0
  382. package/galleria/index.d.ts +710 -0
  383. package/iconfield/index.d.ts +64 -0
  384. package/icons/angledoubledown/index.d.ts +9 -0
  385. package/icons/angledoubleleft/index.d.ts +9 -0
  386. package/icons/angledoubleright/index.d.ts +9 -0
  387. package/icons/angledoubleup/index.d.ts +9 -0
  388. package/icons/angledown/index.d.ts +9 -0
  389. package/icons/angleleft/index.d.ts +9 -0
  390. package/icons/angleright/index.d.ts +9 -0
  391. package/icons/angleup/index.d.ts +9 -0
  392. package/icons/arrowdown/index.d.ts +12 -0
  393. package/icons/arrowdownleft/index.d.ts +9 -0
  394. package/icons/arrowdownright/index.d.ts +9 -0
  395. package/icons/arrowleft/index.d.ts +11 -0
  396. package/icons/arrowright/index.d.ts +9 -0
  397. package/icons/arrowup/index.d.ts +11 -0
  398. package/icons/ban/index.d.ts +11 -0
  399. package/icons/bars/index.d.ts +9 -0
  400. package/icons/baseicon/index.d.ts +33 -0
  401. package/icons/blank/index.d.ts +9 -0
  402. package/icons/calendar/index.d.ts +9 -0
  403. package/icons/caretleft/index.d.ts +9 -0
  404. package/icons/caretright/index.d.ts +9 -0
  405. package/icons/check/index.d.ts +9 -0
  406. package/icons/chevrondown/index.d.ts +9 -0
  407. package/icons/chevronleft/index.d.ts +9 -0
  408. package/icons/chevronright/index.d.ts +9 -0
  409. package/icons/chevronup/index.d.ts +9 -0
  410. package/icons/exclamationtriangle/index.d.ts +12 -0
  411. package/icons/eye/index.d.ts +9 -0
  412. package/icons/eyeslash/index.d.ts +11 -0
  413. package/icons/filter/index.d.ts +11 -0
  414. package/icons/filterfill/index.d.ts +9 -0
  415. package/icons/filterslash/index.d.ts +11 -0
  416. package/icons/home/index.d.ts +11 -0
  417. package/icons/index.d.ts +53 -0
  418. package/icons/infocircle/index.d.ts +11 -0
  419. package/icons/minus/index.d.ts +9 -0
  420. package/icons/pencil/index.d.ts +11 -0
  421. package/icons/plus/index.d.ts +11 -0
  422. package/icons/refresh/index.d.ts +11 -0
  423. package/icons/search/index.d.ts +11 -0
  424. package/icons/searchminus/index.d.ts +11 -0
  425. package/icons/searchplus/index.d.ts +11 -0
  426. package/icons/sortalt/index.d.ts +11 -0
  427. package/icons/sortamountdown/index.d.ts +11 -0
  428. package/icons/sortamountupalt/index.d.ts +11 -0
  429. package/icons/spinner/index.d.ts +11 -0
  430. package/icons/star/index.d.ts +11 -0
  431. package/icons/starfill/index.d.ts +11 -0
  432. package/icons/thlarge/index.d.ts +11 -0
  433. package/icons/times/index.d.ts +9 -0
  434. package/icons/timescircle/index.d.ts +11 -0
  435. package/icons/trash/index.d.ts +11 -0
  436. package/icons/undo/index.d.ts +11 -0
  437. package/icons/upload/index.d.ts +11 -0
  438. package/icons/windowmaximize/index.d.ts +11 -0
  439. package/icons/windowminimize/index.d.ts +11 -0
  440. package/iftalabel/index.d.ts +50 -0
  441. package/image/index.d.ts +376 -0
  442. package/imagecompare/index.d.ts +93 -0
  443. package/index.d.ts +2 -0
  444. package/inplace/index.d.ts +183 -0
  445. package/inputgroup/index.d.ts +58 -0
  446. package/inputgroupaddon/index.d.ts +45 -0
  447. package/inputicon/index.d.ts +36 -0
  448. package/inputmask/index.d.ts +282 -0
  449. package/inputnumber/index.d.ts +466 -0
  450. package/inputotp/index.d.ts +209 -0
  451. package/inputtext/index.d.ts +89 -0
  452. package/keyfilter/index.d.ts +66 -0
  453. package/knob/index.d.ts +206 -0
  454. package/listbox/index.d.ts +802 -0
  455. package/megamenu/index.d.ts +408 -0
  456. package/menu/index.d.ts +341 -0
  457. package/menubar/index.d.ts +418 -0
  458. package/message/index.d.ts +195 -0
  459. package/metergroup/index.d.ts +291 -0
  460. package/multiselect/index.d.ts +1060 -0
  461. package/orderlist/index.d.ts +464 -0
  462. package/organizationchart/index.d.ts +285 -0
  463. package/overlay/index.d.ts +255 -0
  464. package/overlaybadge/index.d.ts +73 -0
  465. package/package.json +725 -0
  466. package/paginator/index.d.ts +393 -0
  467. package/panel/index.d.ts +266 -0
  468. package/panelmenu/index.d.ts +380 -0
  469. package/password/index.d.ts +436 -0
  470. package/picklist/index.d.ts +906 -0
  471. package/popover/index.d.ts +176 -0
  472. package/progressbar/index.d.ts +112 -0
  473. package/progressspinner/index.d.ts +85 -0
  474. package/radiobutton/index.d.ts +201 -0
  475. package/rating/index.d.ts +218 -0
  476. package/ripple/index.d.ts +62 -0
  477. package/scroller/index.d.ts +614 -0
  478. package/scrollpanel/index.d.ts +161 -0
  479. package/scrolltop/index.d.ts +158 -0
  480. package/select/index.d.ts +923 -0
  481. package/selectbutton/index.d.ts +221 -0
  482. package/skeleton/index.d.ts +96 -0
  483. package/slider/index.d.ts +255 -0
  484. package/speeddial/index.d.ts +454 -0
  485. package/splitbutton/index.d.ts +306 -0
  486. package/splitter/index.d.ts +239 -0
  487. package/stepper/index.d.ts +297 -0
  488. package/steps/index.d.ts +152 -0
  489. package/styleclass/index.d.ts +115 -0
  490. package/table/index.d.ts +2700 -0
  491. package/tabs/index.d.ts +321 -0
  492. package/tag/index.d.ts +114 -0
  493. package/terminal/index.d.ts +134 -0
  494. package/textarea/index.d.ts +108 -0
  495. package/tieredmenu/index.d.ts +430 -0
  496. package/timeline/index.d.ts +170 -0
  497. package/toast/index.d.ts +320 -0
  498. package/togglebutton/index.d.ts +243 -0
  499. package/toggleswitch/index.d.ts +188 -0
  500. package/toolbar/index.d.ts +118 -0
  501. package/tooltip/index.d.ts +247 -0
  502. package/tree/index.d.ts +847 -0
  503. package/treeselect/index.d.ts +655 -0
  504. package/treetable/index.d.ts +1727 -0
  505. package/ts-helpers/index.d.ts +6 -0
  506. package/usestyle/index.d.ts +15 -0
  507. package/utils/index.d.ts +43 -0
@@ -0,0 +1,1561 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
3
+ import { HttpClient, HttpEventType } from '@angular/common/http';
4
+ import * as i0 from '@angular/core';
5
+ import { Injectable, inject, output, input, ChangeDetectionStrategy, Component, EventEmitter, NgZone, numberAttribute, booleanAttribute, ContentChildren, Input, ViewChild, ContentChild, Output, ViewEncapsulation, NgModule } from '@angular/core';
6
+ import { DomSanitizer } from '@angular/platform-browser';
7
+ import { addClass, removeClass } from '@primeuix/utils';
8
+ import { TranslationKeys, SharedModule, PrimeTemplate } from 'primeng/api';
9
+ import { Badge } from 'primeng/badge';
10
+ import { BaseComponent } from 'primeng/basecomponent';
11
+ import { Button } from 'primeng/button';
12
+ import { TimesIcon, PlusIcon, UploadIcon } from 'primeng/icons';
13
+ import { Message } from 'primeng/message';
14
+ import { ProgressBar } from 'primeng/progressbar';
15
+ import { style } from '@primeuix/styles/fileupload';
16
+ import { BaseStyle } from 'primeng/base';
17
+
18
+ const classes = {
19
+ root: ({ instance }) => `p-fileupload p-fileupload-${instance.mode} p-component`,
20
+ header: 'p-fileupload-header',
21
+ pcChooseButton: 'p-fileupload-choose-button',
22
+ pcUploadButton: 'p-fileupload-upload-button',
23
+ pcCancelButton: 'p-fileupload-cancel-button',
24
+ content: 'p-fileupload-content',
25
+ fileList: 'p-fileupload-file-list',
26
+ file: 'p-fileupload-file',
27
+ fileThumbnail: 'p-fileupload-file-thumbnail',
28
+ fileInfo: 'p-fileupload-file-info',
29
+ fileName: 'p-fileupload-file-name',
30
+ fileSize: 'p-fileupload-file-size',
31
+ pcFileBadge: 'p-fileupload-file-badge',
32
+ fileActions: 'p-fileupload-file-actions',
33
+ pcFileRemoveButton: 'p-fileupload-file-remove-button',
34
+ basicContent: 'p-fileupload-basic-content'
35
+ };
36
+ class FileUploadStyle extends BaseStyle {
37
+ name = 'fileupload';
38
+ theme = style;
39
+ classes = classes;
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadStyle, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
41
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadStyle });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadStyle, decorators: [{
44
+ type: Injectable
45
+ }] });
46
+ /**
47
+ *
48
+ * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.
49
+ *
50
+ * [Live Demo](https://www.primeng.org/fileupload/)
51
+ *
52
+ * @module fileuploadstyle
53
+ *
54
+ */
55
+ var FileUploadClasses;
56
+ (function (FileUploadClasses) {
57
+ /**
58
+ * Class name of the root element
59
+ */
60
+ FileUploadClasses["root"] = "p-fileupload";
61
+ /**
62
+ * Class name of the header element
63
+ */
64
+ FileUploadClasses["header"] = "p-fileupload-header";
65
+ /**
66
+ * Class name of the choose button element
67
+ */
68
+ FileUploadClasses["pcChooseButton"] = "p-fileupload-choose-button";
69
+ /**
70
+ * Class name of the upload button element
71
+ */
72
+ FileUploadClasses["pcUploadButton"] = "p-fileupload-upload-button";
73
+ /**
74
+ * Class name of the cancel button element
75
+ */
76
+ FileUploadClasses["pcCancelButton"] = "p-fileupload-cancel-button";
77
+ /**
78
+ * Class name of the content element
79
+ */
80
+ FileUploadClasses["content"] = "p-fileupload-content";
81
+ /**
82
+ * Class name of the file list element
83
+ */
84
+ FileUploadClasses["fileList"] = "p-fileupload-file-list";
85
+ /**
86
+ * Class name of the file element
87
+ */
88
+ FileUploadClasses["file"] = "p-fileupload-file";
89
+ /**
90
+ * Class name of the file thumbnail element
91
+ */
92
+ FileUploadClasses["fileThumbnail"] = "p-fileupload-file-thumbnail";
93
+ /**
94
+ * Class name of the file info element
95
+ */
96
+ FileUploadClasses["fileInfo"] = "p-fileupload-file-info";
97
+ /**
98
+ * Class name of the file name element
99
+ */
100
+ FileUploadClasses["fileName"] = "p-fileupload-file-name";
101
+ /**
102
+ * Class name of the file size element
103
+ */
104
+ FileUploadClasses["fileSize"] = "p-fileupload-file-size";
105
+ /**
106
+ * Class name of the file badge element
107
+ */
108
+ FileUploadClasses["pcFileBadge"] = "p-fileupload-file-badge";
109
+ /**
110
+ * Class name of the file actions element
111
+ */
112
+ FileUploadClasses["fileActions"] = "p-fileupload-file-actions";
113
+ /**
114
+ * Class name of the file remove button element
115
+ */
116
+ FileUploadClasses["pcFileRemoveButton"] = "p-fileupload-file-remove-button";
117
+ /**
118
+ * Class name of the content in basic mode
119
+ */
120
+ FileUploadClasses["basicContent"] = "p-fileupload-basic-content";
121
+ })(FileUploadClasses || (FileUploadClasses = {}));
122
+
123
+ class FileContent extends BaseComponent {
124
+ _componentStyle = inject(FileUploadStyle);
125
+ onRemove = output();
126
+ files = input(...(ngDevMode ? [undefined, { debugName: "files" }] : []));
127
+ badgeSeverity = input('warn', ...(ngDevMode ? [{ debugName: "badgeSeverity" }] : []));
128
+ badgeValue = input(...(ngDevMode ? [undefined, { debugName: "badgeValue" }] : []));
129
+ previewWidth = input(50, ...(ngDevMode ? [{ debugName: "previewWidth" }] : []));
130
+ fileRemoveIconTemplate = input(...(ngDevMode ? [undefined, { debugName: "fileRemoveIconTemplate" }] : []));
131
+ onRemoveClick(event, index) {
132
+ this.onRemove.emit({ event, index });
133
+ }
134
+ formatSize(bytes) {
135
+ const k = 1024;
136
+ const dm = 3;
137
+ const sizes = this.config.getTranslation(TranslationKeys.FILE_SIZE_TYPES);
138
+ if (bytes === 0) {
139
+ return `0 ${sizes[0]}`;
140
+ }
141
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
142
+ const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);
143
+ return `${formattedSize} ${sizes[i]}`;
144
+ }
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileContent, deps: null, target: i0.ɵɵFactoryTarget.Component });
146
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: FileContent, isStandalone: true, selector: "[pFileContent]", inputs: { files: { classPropertyName: "files", publicName: "files", isSignal: true, isRequired: false, transformFunction: null }, badgeSeverity: { classPropertyName: "badgeSeverity", publicName: "badgeSeverity", isSignal: true, isRequired: false, transformFunction: null }, badgeValue: { classPropertyName: "badgeValue", publicName: "badgeValue", isSignal: true, isRequired: false, transformFunction: null }, previewWidth: { classPropertyName: "previewWidth", publicName: "previewWidth", isSignal: true, isRequired: false, transformFunction: null }, fileRemoveIconTemplate: { classPropertyName: "fileRemoveIconTemplate", publicName: "fileRemoveIconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onRemove: "onRemove" }, providers: [FileUploadStyle], usesInheritance: true, ngImport: i0, template: `@for (file of files(); track file?.name + '-' + $index; let index = $index) {
147
+ <div [class]="cx('file')">
148
+ <img role="presentation" [class]="cx('fileThumbnail')" [attr.alt]="file.name" [src]="file.objectURL" [width]="previewWidth()" />
149
+ <div [class]="cx('fileInfo')">
150
+ <div [class]="cx('fileName')">{{ file.name }}</div>
151
+ <span [class]="cx('fileSize')">{{ formatSize(file.size) }}</span>
152
+ </div>
153
+ <p-badge [value]="badgeValue()" [severity]="badgeSeverity()" [class]="cx('pcFileBadge')" />
154
+ <div [class]="cx('fileActions')">
155
+ <p-button (onClick)="onRemoveClick($event, index)" [styleClass]="cx('pcFileRemoveButton')" text rounded severity="danger">
156
+ <ng-template #icon let-iconClass="class">
157
+ @if (fileRemoveIconTemplate()) {
158
+ <ng-template *ngTemplateOutlet="fileRemoveIconTemplate(); context: { class: iconClass, file: file, index: index }"></ng-template>
159
+ } @else {
160
+ <svg data-p-icon="times" [class]="iconClass" [attr.aria-hidden]="true" />
161
+ }
162
+ </ng-template>
163
+ </p-button>
164
+ </div>
165
+ </div>
166
+ }`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: Badge, selector: "p-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
167
+ }
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileContent, decorators: [{
169
+ type: Component,
170
+ args: [{
171
+ selector: '[pFileContent]',
172
+ standalone: true,
173
+ template: `@for (file of files(); track file?.name + '-' + $index; let index = $index) {
174
+ <div [class]="cx('file')">
175
+ <img role="presentation" [class]="cx('fileThumbnail')" [attr.alt]="file.name" [src]="file.objectURL" [width]="previewWidth()" />
176
+ <div [class]="cx('fileInfo')">
177
+ <div [class]="cx('fileName')">{{ file.name }}</div>
178
+ <span [class]="cx('fileSize')">{{ formatSize(file.size) }}</span>
179
+ </div>
180
+ <p-badge [value]="badgeValue()" [severity]="badgeSeverity()" [class]="cx('pcFileBadge')" />
181
+ <div [class]="cx('fileActions')">
182
+ <p-button (onClick)="onRemoveClick($event, index)" [styleClass]="cx('pcFileRemoveButton')" text rounded severity="danger">
183
+ <ng-template #icon let-iconClass="class">
184
+ @if (fileRemoveIconTemplate()) {
185
+ <ng-template *ngTemplateOutlet="fileRemoveIconTemplate(); context: { class: iconClass, file: file, index: index }"></ng-template>
186
+ } @else {
187
+ <svg data-p-icon="times" [class]="iconClass" [attr.aria-hidden]="true" />
188
+ }
189
+ </ng-template>
190
+ </p-button>
191
+ </div>
192
+ </div>
193
+ }`,
194
+ changeDetection: ChangeDetectionStrategy.OnPush,
195
+ providers: [FileUploadStyle],
196
+ imports: [CommonModule, Badge, Button, TimesIcon]
197
+ }]
198
+ }] });
199
+ /**
200
+ * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.
201
+ * @group Components
202
+ */
203
+ class FileUpload extends BaseComponent {
204
+ /**
205
+ * Name of the request parameter to identify the files at backend.
206
+ * @group Props
207
+ */
208
+ name;
209
+ /**
210
+ * Remote url to upload the files.
211
+ * @group Props
212
+ */
213
+ url;
214
+ /**
215
+ * HTTP method to send the files to the url such as "post" and "put".
216
+ * @group Props
217
+ */
218
+ method = 'post';
219
+ /**
220
+ * Used to select multiple files at once from file dialog.
221
+ * @group Props
222
+ */
223
+ multiple;
224
+ /**
225
+ * Comma-separated list of pattern to restrict the allowed file types. Can be any combination of either the MIME types (such as "image/*") or the file extensions (such as ".jpg").
226
+ * @group Props
227
+ */
228
+ accept;
229
+ /**
230
+ * Disables the upload functionality.
231
+ * @group Props
232
+ */
233
+ disabled;
234
+ /**
235
+ * When enabled, upload begins automatically after selection is completed.
236
+ * @group Props
237
+ */
238
+ auto;
239
+ /**
240
+ * Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.
241
+ * @group Props
242
+ */
243
+ withCredentials;
244
+ /**
245
+ * Maximum file size allowed in bytes.
246
+ * @group Props
247
+ */
248
+ maxFileSize;
249
+ /**
250
+ * Summary message of the invalid file size.
251
+ * @group Props
252
+ */
253
+ invalidFileSizeMessageSummary = '{0}: Invalid file size, ';
254
+ /**
255
+ * Detail message of the invalid file size.
256
+ * @group Props
257
+ */
258
+ invalidFileSizeMessageDetail = 'maximum upload size is {0}.';
259
+ /**
260
+ * Summary message of the invalid file type.
261
+ * @group Props
262
+ */
263
+ invalidFileTypeMessageSummary = '{0}: Invalid file type, ';
264
+ /**
265
+ * Detail message of the invalid file type.
266
+ * @group Props
267
+ */
268
+ invalidFileTypeMessageDetail = 'allowed file types: {0}.';
269
+ /**
270
+ * Detail message of the invalid file type.
271
+ * @group Props
272
+ */
273
+ invalidFileLimitMessageDetail = 'limit is {0} at most.';
274
+ /**
275
+ * Summary message of the invalid file type.
276
+ * @group Props
277
+ */
278
+ invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';
279
+ /**
280
+ * Inline style of the element.
281
+ * @group Props
282
+ */
283
+ style;
284
+ /**
285
+ * Class of the element.
286
+ * @group Props
287
+ */
288
+ styleClass;
289
+ /**
290
+ * Width of the image thumbnail in pixels.
291
+ * @group Props
292
+ */
293
+ previewWidth = 50;
294
+ /**
295
+ * Label of the choose button. Defaults to PrimeNG Locale configuration.
296
+ * @group Props
297
+ */
298
+ chooseLabel;
299
+ /**
300
+ * Label of the upload button. Defaults to PrimeNG Locale configuration.
301
+ * @group Props
302
+ */
303
+ uploadLabel;
304
+ /**
305
+ * Label of the cancel button. Defaults to PrimeNG Locale configuration.
306
+ * @group Props
307
+ */
308
+ cancelLabel;
309
+ /**
310
+ * Icon of the choose button.
311
+ * @group Props
312
+ */
313
+ chooseIcon;
314
+ /**
315
+ * Icon of the upload button.
316
+ * @group Props
317
+ */
318
+ uploadIcon;
319
+ /**
320
+ * Icon of the cancel button.
321
+ * @group Props
322
+ */
323
+ cancelIcon;
324
+ /**
325
+ * Whether to show the upload button.
326
+ * @group Props
327
+ */
328
+ showUploadButton = true;
329
+ /**
330
+ * Whether to show the cancel button.
331
+ * @group Props
332
+ */
333
+ showCancelButton = true;
334
+ /**
335
+ * Defines the UI of the component.
336
+ * @group Props
337
+ */
338
+ mode = 'advanced';
339
+ /**
340
+ * HttpHeaders class represents the header configuration options for an HTTP request.
341
+ * @group Props
342
+ */
343
+ headers;
344
+ /**
345
+ * Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to PrimeNG Locale configuration.
346
+ * @group Props
347
+ */
348
+ customUpload;
349
+ /**
350
+ * Maximum number of files that can be uploaded.
351
+ * @group Props
352
+ */
353
+ fileLimit;
354
+ /**
355
+ * Style class of the upload button.
356
+ * @group Props
357
+ */
358
+ uploadStyleClass;
359
+ /**
360
+ * Style class of the cancel button.
361
+ * @group Props
362
+ */
363
+ cancelStyleClass;
364
+ /**
365
+ * Style class of the remove button.
366
+ * @group Props
367
+ */
368
+ removeStyleClass;
369
+ /**
370
+ * Style class of the choose button.
371
+ * @group Props
372
+ */
373
+ chooseStyleClass;
374
+ /**
375
+ * Used to pass all properties of the ButtonProps to the choose button inside the component.
376
+ * @group Props
377
+ */
378
+ chooseButtonProps;
379
+ /**
380
+ * Used to pass all properties of the ButtonProps to the upload button inside the component.
381
+ * @group Props
382
+ */
383
+ uploadButtonProps = { severity: 'secondary' };
384
+ /**
385
+ * Used to pass all properties of the ButtonProps to the cancel button inside the component.
386
+ * @group Props
387
+ */
388
+ cancelButtonProps = { severity: 'secondary' };
389
+ /**
390
+ * Callback to invoke before file upload is initialized.
391
+ * @param {FileBeforeUploadEvent} event - Custom upload event.
392
+ * @group Emits
393
+ */
394
+ onBeforeUpload = new EventEmitter();
395
+ /**
396
+ * An event indicating that the request was sent to the server. Useful when a request may be retried multiple times, to distinguish between retries on the final event stream.
397
+ * @param {FileSendEvent} event - Custom send event.
398
+ * @group Emits
399
+ */
400
+ onSend = new EventEmitter();
401
+ /**
402
+ * Callback to invoke when file upload is complete.
403
+ * @param {FileUploadEvent} event - Custom upload event.
404
+ * @group Emits
405
+ */
406
+ onUpload = new EventEmitter();
407
+ /**
408
+ * Callback to invoke if file upload fails.
409
+ * @param {FileUploadErrorEvent} event - Custom error event.
410
+ * @group Emits
411
+ */
412
+ onError = new EventEmitter();
413
+ /**
414
+ * Callback to invoke when files in queue are removed without uploading using clear all button.
415
+ * @param {Event} event - Browser event.
416
+ * @group Emits
417
+ */
418
+ onClear = new EventEmitter();
419
+ /**
420
+ * Callback to invoke when a file is removed without uploading using clear button of a file.
421
+ * @param {FileRemoveEvent} event - Remove event.
422
+ * @group Emits
423
+ */
424
+ onRemove = new EventEmitter();
425
+ /**
426
+ * Callback to invoke when files are selected.
427
+ * @param {FileSelectEvent} event - Select event.
428
+ * @group Emits
429
+ */
430
+ onSelect = new EventEmitter();
431
+ /**
432
+ * Callback to invoke when files are being uploaded.
433
+ * @param {FileProgressEvent} event - Progress event.
434
+ * @group Emits
435
+ */
436
+ onProgress = new EventEmitter();
437
+ /**
438
+ * Callback to invoke in custom upload mode to upload the files manually.
439
+ * @param {FileUploadHandlerEvent} event - Upload handler event.
440
+ * @group Emits
441
+ */
442
+ uploadHandler = new EventEmitter();
443
+ /**
444
+ * This event is triggered if an error occurs while loading an image file.
445
+ * @param {Event} event - Browser event.
446
+ * @group Emits
447
+ */
448
+ onImageError = new EventEmitter();
449
+ /**
450
+ * This event is triggered if an error occurs while loading an image file.
451
+ * @param {RemoveUploadedFileEvent} event - Remove event.
452
+ * @group Emits
453
+ */
454
+ onRemoveUploadedFile = new EventEmitter();
455
+ /**
456
+ * Template for file.
457
+ * @group Templates
458
+ */
459
+ fileTemplate;
460
+ /**
461
+ * Template for header.
462
+ * @group Templates
463
+ */
464
+ headerTemplate;
465
+ /**
466
+ * Template for content.
467
+ * @group Templates
468
+ */
469
+ contentTemplate;
470
+ /**
471
+ * Template for toolbar.
472
+ * @group Templates
473
+ */
474
+ toolbarTemplate;
475
+ /**
476
+ * Template for choose icon.
477
+ * @group Templates
478
+ */
479
+ chooseIconTemplate;
480
+ /**
481
+ * Template for file label.
482
+ * @group Templates
483
+ */
484
+ fileLabelTemplate;
485
+ /**
486
+ * Template for upload icon.
487
+ * @group Templates
488
+ */
489
+ uploadIconTemplate;
490
+ /**
491
+ * Template for cancel icon.
492
+ * @group Templates
493
+ */
494
+ cancelIconTemplate;
495
+ /**
496
+ * Template for empty state.
497
+ * @group Templates
498
+ */
499
+ emptyTemplate;
500
+ advancedFileInput;
501
+ basicFileInput;
502
+ content;
503
+ set files(files) {
504
+ this._files = [];
505
+ for (let i = 0; i < files.length; i++) {
506
+ let file = files[i];
507
+ if (this.validate(file)) {
508
+ if (this.isImage(file)) {
509
+ file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
510
+ }
511
+ this._files.push(files[i]);
512
+ }
513
+ }
514
+ }
515
+ get files() {
516
+ return this._files;
517
+ }
518
+ get basicButtonLabel() {
519
+ if (this.auto || !this.hasFiles()) {
520
+ return this.chooseLabel;
521
+ }
522
+ return this.uploadLabel ?? this.files[0].name;
523
+ }
524
+ _files = [];
525
+ progress = 0;
526
+ dragHighlight;
527
+ msgs;
528
+ uploadedFileCount = 0;
529
+ focus;
530
+ uploading;
531
+ duplicateIEEvent; // flag to recognize duplicate onchange event for file input
532
+ translationSubscription;
533
+ dragOverListener;
534
+ uploadedFiles = [];
535
+ sanitizer = inject(DomSanitizer);
536
+ zone = inject(NgZone);
537
+ http = inject(HttpClient);
538
+ _componentStyle = inject(FileUploadStyle);
539
+ ngOnInit() {
540
+ super.ngOnInit();
541
+ this.translationSubscription = this.config.translationObserver.subscribe(() => {
542
+ this.cd.markForCheck();
543
+ });
544
+ }
545
+ ngAfterViewInit() {
546
+ super.ngAfterViewInit();
547
+ if (isPlatformBrowser(this.platformId)) {
548
+ if (this.mode === 'advanced') {
549
+ this.zone.runOutsideAngular(() => {
550
+ if (this.content) {
551
+ this.dragOverListener = this.renderer.listen(this.content.nativeElement, 'dragover', this.onDragOver.bind(this));
552
+ }
553
+ });
554
+ }
555
+ }
556
+ }
557
+ _headerTemplate;
558
+ _contentTemplate;
559
+ _toolbarTemplate;
560
+ _chooseIconTemplate;
561
+ _uploadIconTemplate;
562
+ _cancelIconTemplate;
563
+ _emptyTemplate;
564
+ _fileTemplate;
565
+ _fileLabelTemplate;
566
+ templates;
567
+ ngAfterContentInit() {
568
+ this.templates?.forEach((item) => {
569
+ switch (item.getType()) {
570
+ case 'header':
571
+ this._headerTemplate = item.template;
572
+ break;
573
+ case 'file':
574
+ this._fileTemplate = item.template;
575
+ break;
576
+ case 'content':
577
+ this._contentTemplate = item.template;
578
+ break;
579
+ case 'toolbar':
580
+ this._toolbarTemplate = item.template;
581
+ break;
582
+ case 'chooseicon':
583
+ this._chooseIconTemplate = item.template;
584
+ break;
585
+ case 'uploadicon':
586
+ this._uploadIconTemplate = item.template;
587
+ break;
588
+ case 'cancelicon':
589
+ this._cancelIconTemplate = item.template;
590
+ break;
591
+ case 'empty':
592
+ this._emptyTemplate = item.template;
593
+ break;
594
+ case 'filelabel':
595
+ this._fileLabelTemplate = item.template;
596
+ break;
597
+ default:
598
+ this._fileTemplate = item.template;
599
+ break;
600
+ }
601
+ });
602
+ }
603
+ basicFileChosenLabel() {
604
+ if (this.auto)
605
+ return this.chooseButtonLabel;
606
+ else if (this.hasFiles()) {
607
+ if (this.files && this.files.length === 1)
608
+ return this.files[0].name;
609
+ return this.config.getTranslation('fileChosenMessage')?.replace('{0}', this.files.length);
610
+ }
611
+ return this.config.getTranslation('noFileChosenMessage') || '';
612
+ }
613
+ completedLabel() {
614
+ return this.config.getTranslation('completed') || '';
615
+ }
616
+ getTranslation(option) {
617
+ return this.config.getTranslation(option);
618
+ }
619
+ choose() {
620
+ this.advancedFileInput?.nativeElement.click();
621
+ }
622
+ onFileSelect(event) {
623
+ if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {
624
+ this.duplicateIEEvent = false;
625
+ return;
626
+ }
627
+ if (!this.multiple) {
628
+ this.files = [];
629
+ }
630
+ this.msgs = [];
631
+ this.files = this.files || [];
632
+ let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
633
+ for (let i = 0; i < files.length; i++) {
634
+ let file = files[i];
635
+ if (!this.isFileSelected(file)) {
636
+ if (this.validate(file)) {
637
+ if (this.isImage(file)) {
638
+ file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
639
+ }
640
+ this.files.push(files[i]);
641
+ }
642
+ }
643
+ }
644
+ this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });
645
+ // this will check the fileLimit with the uploaded files
646
+ this.checkFileLimit(files);
647
+ if (this.hasFiles() && this.auto && (this.mode !== 'advanced' || !this.isFileLimitExceeded())) {
648
+ this.upload();
649
+ }
650
+ if (event.type !== 'drop' && this.isIE11()) {
651
+ this.clearIEInput();
652
+ }
653
+ else {
654
+ this.clearInputElement();
655
+ }
656
+ }
657
+ isFileSelected(file) {
658
+ for (let sFile of this.files) {
659
+ if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {
660
+ return true;
661
+ }
662
+ }
663
+ return false;
664
+ }
665
+ isIE11() {
666
+ if (isPlatformBrowser(this.platformId)) {
667
+ return !!this.document.defaultView['MSInputMethodContext'] && !!this.document['documentMode'];
668
+ }
669
+ }
670
+ validate(file) {
671
+ this.msgs = this.msgs || [];
672
+ if (this.accept && !this.isFileTypeValid(file)) {
673
+ const text = `${this.invalidFileTypeMessageSummary.replace('{0}', file.name)} ${this.invalidFileTypeMessageDetail.replace('{0}', this.accept)}`;
674
+ this.msgs.push({
675
+ severity: 'error',
676
+ text: text
677
+ });
678
+ return false;
679
+ }
680
+ if (this.maxFileSize && file.size > this.maxFileSize) {
681
+ const text = `${this.invalidFileSizeMessageSummary.replace('{0}', file.name)} ${this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))}`;
682
+ this.msgs.push({
683
+ severity: 'error',
684
+ text: text
685
+ });
686
+ return false;
687
+ }
688
+ return true;
689
+ }
690
+ isFileTypeValid(file) {
691
+ let acceptableTypes = this.accept?.split(',').map((type) => type.trim());
692
+ for (let type of acceptableTypes) {
693
+ let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();
694
+ if (acceptable) {
695
+ return true;
696
+ }
697
+ }
698
+ return false;
699
+ }
700
+ getTypeClass(fileType) {
701
+ return fileType.substring(0, fileType.indexOf('/'));
702
+ }
703
+ isWildcard(fileType) {
704
+ return fileType.indexOf('*') !== -1;
705
+ }
706
+ getFileExtension(file) {
707
+ return '.' + file.name.split('.').pop();
708
+ }
709
+ isImage(file) {
710
+ return /^image\//.test(file.type);
711
+ }
712
+ onImageLoad(img) {
713
+ window.URL.revokeObjectURL(img.src);
714
+ }
715
+ /**
716
+ * Uploads the selected files.
717
+ * @group Method
718
+ */
719
+ uploader() {
720
+ if (this.customUpload) {
721
+ if (this.fileLimit) {
722
+ this.uploadedFileCount += this.files.length;
723
+ }
724
+ this.uploadHandler.emit({
725
+ files: this.files
726
+ });
727
+ this.cd.markForCheck();
728
+ }
729
+ else {
730
+ this.uploading = true;
731
+ this.msgs = [];
732
+ let formData = new FormData();
733
+ this.onBeforeUpload.emit({
734
+ formData: formData
735
+ });
736
+ for (let i = 0; i < this.files.length; i++) {
737
+ formData.append(this.name, this.files[i], this.files[i].name);
738
+ }
739
+ this.http
740
+ .request(this.method, this.url, {
741
+ body: formData,
742
+ headers: this.headers,
743
+ reportProgress: true,
744
+ observe: 'events',
745
+ withCredentials: this.withCredentials
746
+ })
747
+ .subscribe((event) => {
748
+ switch (event.type) {
749
+ case HttpEventType.Sent:
750
+ this.onSend.emit({
751
+ originalEvent: event,
752
+ formData: formData
753
+ });
754
+ break;
755
+ case HttpEventType.Response:
756
+ this.uploading = false;
757
+ this.progress = 0;
758
+ if (event['status'] >= 200 && event['status'] < 300) {
759
+ if (this.fileLimit) {
760
+ this.uploadedFileCount += this.files.length;
761
+ }
762
+ this.onUpload.emit({ originalEvent: event, files: this.files });
763
+ }
764
+ else {
765
+ this.onError.emit({ files: this.files });
766
+ }
767
+ this.uploadedFiles = [...this.uploadedFiles, ...this.files];
768
+ this.clear();
769
+ break;
770
+ case HttpEventType.UploadProgress: {
771
+ if (event['loaded']) {
772
+ this.progress = Math.round((event['loaded'] * 100) / event['total']);
773
+ }
774
+ this.onProgress.emit({ originalEvent: event, progress: this.progress });
775
+ break;
776
+ }
777
+ }
778
+ this.cd.markForCheck();
779
+ }, (error) => {
780
+ this.uploading = false;
781
+ this.onError.emit({ files: this.files, error: error });
782
+ });
783
+ }
784
+ }
785
+ onRemoveClick(e) {
786
+ const { event, index } = e;
787
+ if (this.hasFiles()) {
788
+ this.remove(event, index);
789
+ }
790
+ }
791
+ onRemoveUploadedFileClick(e) {
792
+ const { event, index } = e;
793
+ if (this.hasUploadedFiles()) {
794
+ this.removeUploadedFile(index);
795
+ }
796
+ }
797
+ /**
798
+ * Clears the files list.
799
+ * @group Method
800
+ */
801
+ clear() {
802
+ this.files = [];
803
+ this.onClear.emit();
804
+ this.clearInputElement();
805
+ this.msgs = [];
806
+ this.cd.markForCheck();
807
+ }
808
+ /**
809
+ * Removes a single file.
810
+ * @param {Event} event - Browser event.
811
+ * @param {Number} index - Index of the file.
812
+ * @group Method
813
+ */
814
+ remove(event, index) {
815
+ this.clearInputElement();
816
+ this.onRemove.emit({ originalEvent: event, file: this.files[index] });
817
+ this.files.splice(index, 1);
818
+ this.checkFileLimit(this.files);
819
+ }
820
+ /**
821
+ * Removes uploaded file.
822
+ * @param {Number} index - Index of the file to be removed.
823
+ * @group Method
824
+ */
825
+ removeUploadedFile(index) {
826
+ let removedFile = this.uploadedFiles.splice(index, 1)[0];
827
+ this.uploadedFiles = [...this.uploadedFiles];
828
+ this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles });
829
+ }
830
+ isFileLimitExceeded() {
831
+ const isAutoMode = this.auto;
832
+ const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;
833
+ if (this.fileLimit && this.fileLimit <= totalFileCount && this.focus) {
834
+ this.focus = false;
835
+ }
836
+ return this.fileLimit && this.fileLimit < totalFileCount;
837
+ }
838
+ isChooseDisabled() {
839
+ if (this.auto) {
840
+ return this.fileLimit && this.fileLimit <= this.files.length;
841
+ }
842
+ else {
843
+ return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;
844
+ }
845
+ }
846
+ checkFileLimit(files) {
847
+ this.msgs ??= [];
848
+ const hasExistingValidationMessages = this.msgs.length > 0 && this.fileLimit && this.fileLimit < files.length;
849
+ if (this.isFileLimitExceeded() || hasExistingValidationMessages) {
850
+ const text = `${this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString())} ${this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())}`;
851
+ this.msgs.push({
852
+ severity: 'error',
853
+ text: text
854
+ });
855
+ }
856
+ else {
857
+ this.msgs = this.msgs.filter((msg) => !msg.text.includes(this.invalidFileLimitMessageSummary));
858
+ }
859
+ }
860
+ clearInputElement() {
861
+ if (this.advancedFileInput && this.advancedFileInput.nativeElement) {
862
+ this.advancedFileInput.nativeElement.value = '';
863
+ }
864
+ if (this.basicFileInput && this.basicFileInput.nativeElement) {
865
+ this.basicFileInput.nativeElement.value = '';
866
+ }
867
+ }
868
+ clearIEInput() {
869
+ if (this.advancedFileInput && this.advancedFileInput.nativeElement) {
870
+ this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again
871
+ this.advancedFileInput.nativeElement.value = '';
872
+ }
873
+ }
874
+ hasFiles() {
875
+ return this.files && this.files.length > 0;
876
+ }
877
+ hasUploadedFiles() {
878
+ return this.uploadedFiles && this.uploadedFiles.length > 0;
879
+ }
880
+ onDragEnter(e) {
881
+ if (!this.disabled) {
882
+ e.stopPropagation();
883
+ e.preventDefault();
884
+ }
885
+ }
886
+ onDragOver(e) {
887
+ if (!this.disabled) {
888
+ addClass(this.content?.nativeElement, 'p-fileupload-highlight');
889
+ this.dragHighlight = true;
890
+ e.stopPropagation();
891
+ e.preventDefault();
892
+ }
893
+ }
894
+ onDragLeave(event) {
895
+ if (!this.disabled) {
896
+ removeClass(this.content?.nativeElement, 'p-fileupload-highlight');
897
+ }
898
+ }
899
+ onDrop(event) {
900
+ if (!this.disabled) {
901
+ removeClass(this.content?.nativeElement, 'p-fileupload-highlight');
902
+ event.stopPropagation();
903
+ event.preventDefault();
904
+ let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
905
+ let allowDrop = this.multiple || (files && files.length === 1);
906
+ if (allowDrop) {
907
+ this.onFileSelect(event);
908
+ }
909
+ }
910
+ }
911
+ onFocus() {
912
+ this.focus = true;
913
+ }
914
+ onBlur() {
915
+ this.focus = false;
916
+ }
917
+ formatSize(bytes) {
918
+ const k = 1024;
919
+ const dm = 3;
920
+ const sizes = this.getTranslation(TranslationKeys.FILE_SIZE_TYPES);
921
+ if (bytes === 0) {
922
+ return `0 ${sizes[0]}`;
923
+ }
924
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
925
+ const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);
926
+ return `${formattedSize} ${sizes[i]}`;
927
+ }
928
+ upload() {
929
+ if (this.hasFiles())
930
+ this.uploader();
931
+ }
932
+ onBasicUploaderClick() {
933
+ this.basicFileInput?.nativeElement.click();
934
+ }
935
+ onBasicKeydown(event) {
936
+ switch (event.code) {
937
+ case 'Space':
938
+ case 'Enter':
939
+ this.onBasicUploaderClick();
940
+ event.preventDefault();
941
+ break;
942
+ }
943
+ }
944
+ imageError(event) {
945
+ this.onImageError.emit(event);
946
+ }
947
+ getBlockableElement() {
948
+ return this.el.nativeElement.children[0];
949
+ }
950
+ get chooseButtonLabel() {
951
+ return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);
952
+ }
953
+ get uploadButtonLabel() {
954
+ return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);
955
+ }
956
+ get cancelButtonLabel() {
957
+ return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);
958
+ }
959
+ get browseFilesLabel() {
960
+ return this.config.getTranslation(TranslationKeys.ARIA)[TranslationKeys.BROWSE_FILES];
961
+ }
962
+ get pendingLabel() {
963
+ return this.config.getTranslation(TranslationKeys.PENDING);
964
+ }
965
+ ngOnDestroy() {
966
+ if (this.content && this.content.nativeElement) {
967
+ if (this.dragOverListener) {
968
+ this.dragOverListener();
969
+ this.dragOverListener = null;
970
+ }
971
+ }
972
+ if (this.translationSubscription) {
973
+ this.translationSubscription.unsubscribe();
974
+ }
975
+ super.ngOnDestroy();
976
+ }
977
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUpload, deps: null, target: i0.ɵɵFactoryTarget.Component });
978
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.4", type: FileUpload, isStandalone: true, selector: "p-fileupload, p-fileUpload", inputs: { name: "name", url: "url", method: "method", multiple: ["multiple", "multiple", booleanAttribute], accept: "accept", disabled: ["disabled", "disabled", booleanAttribute], auto: ["auto", "auto", booleanAttribute], withCredentials: ["withCredentials", "withCredentials", booleanAttribute], maxFileSize: ["maxFileSize", "maxFileSize", numberAttribute], invalidFileSizeMessageSummary: "invalidFileSizeMessageSummary", invalidFileSizeMessageDetail: "invalidFileSizeMessageDetail", invalidFileTypeMessageSummary: "invalidFileTypeMessageSummary", invalidFileTypeMessageDetail: "invalidFileTypeMessageDetail", invalidFileLimitMessageDetail: "invalidFileLimitMessageDetail", invalidFileLimitMessageSummary: "invalidFileLimitMessageSummary", style: "style", styleClass: "styleClass", previewWidth: ["previewWidth", "previewWidth", numberAttribute], chooseLabel: "chooseLabel", uploadLabel: "uploadLabel", cancelLabel: "cancelLabel", chooseIcon: "chooseIcon", uploadIcon: "uploadIcon", cancelIcon: "cancelIcon", showUploadButton: ["showUploadButton", "showUploadButton", booleanAttribute], showCancelButton: ["showCancelButton", "showCancelButton", booleanAttribute], mode: "mode", headers: "headers", customUpload: ["customUpload", "customUpload", booleanAttribute], fileLimit: ["fileLimit", "fileLimit", (value) => numberAttribute(value, null)], uploadStyleClass: "uploadStyleClass", cancelStyleClass: "cancelStyleClass", removeStyleClass: "removeStyleClass", chooseStyleClass: "chooseStyleClass", chooseButtonProps: "chooseButtonProps", uploadButtonProps: "uploadButtonProps", cancelButtonProps: "cancelButtonProps", files: "files" }, outputs: { onBeforeUpload: "onBeforeUpload", onSend: "onSend", onUpload: "onUpload", onError: "onError", onClear: "onClear", onRemove: "onRemove", onSelect: "onSelect", onProgress: "onProgress", uploadHandler: "uploadHandler", onImageError: "onImageError", onRemoveUploadedFile: "onRemoveUploadedFile" }, providers: [FileUploadStyle], queries: [{ propertyName: "fileTemplate", first: true, predicate: ["file"] }, { propertyName: "headerTemplate", first: true, predicate: ["header"] }, { propertyName: "contentTemplate", first: true, predicate: ["content"] }, { propertyName: "toolbarTemplate", first: true, predicate: ["toolbar"] }, { propertyName: "chooseIconTemplate", first: true, predicate: ["chooseicon"] }, { propertyName: "fileLabelTemplate", first: true, predicate: ["filelabel"] }, { propertyName: "uploadIconTemplate", first: true, predicate: ["uploadicon"] }, { propertyName: "cancelIconTemplate", first: true, predicate: ["cancelicon"] }, { propertyName: "emptyTemplate", first: true, predicate: ["empty"] }, { propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "advancedFileInput", first: true, predicate: ["advancedfileinput"], descendants: true }, { propertyName: "basicFileInput", first: true, predicate: ["basicfileinput"], descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
979
+ <div [class]="cn(cx('root'), styleClass)" [ngStyle]="style" *ngIf="mode === 'advanced'" [attr.data-pc-name]="'fileupload'" [attr.data-pc-section]="'root'">
980
+ <input
981
+ [attr.aria-label]="browseFilesLabel"
982
+ #advancedfileinput
983
+ type="file"
984
+ (change)="onFileSelect($event)"
985
+ [multiple]="multiple"
986
+ [accept]="accept"
987
+ [disabled]="disabled || isChooseDisabled()"
988
+ [attr.title]="''"
989
+ [attr.data-pc-section]="'input'"
990
+ [style.display]="'none'"
991
+ />
992
+ <div [class]="cx('header')">
993
+ <ng-container *ngIf="!headerTemplate && !_headerTemplate">
994
+ <p-button
995
+ [styleClass]="cn(cx('pcChooseButton'), chooseStyleClass)"
996
+ [disabled]="disabled || isChooseDisabled()"
997
+ (focus)="onFocus()"
998
+ [label]="chooseButtonLabel"
999
+ (blur)="onBlur()"
1000
+ (onClick)="choose()"
1001
+ (keydown.enter)="choose()"
1002
+ [attr.data-pc-section]="'choosebutton'"
1003
+ [buttonProps]="chooseButtonProps"
1004
+ >
1005
+ <input
1006
+ [attr.aria-label]="browseFilesLabel"
1007
+ #advancedfileinput
1008
+ type="file"
1009
+ (change)="onFileSelect($event)"
1010
+ [multiple]="multiple"
1011
+ [accept]="accept"
1012
+ [disabled]="disabled || isChooseDisabled()"
1013
+ [attr.title]="''"
1014
+ [attr.data-pc-section]="'input'"
1015
+ />
1016
+ <ng-template #icon>
1017
+ <span *ngIf="chooseIcon" [class]="chooseIcon" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'"></span>
1018
+ <ng-container *ngIf="!chooseIcon">
1019
+ <svg data-p-icon="plus" *ngIf="!chooseIconTemplate && !_chooseIconTemplate" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'" />
1020
+ <span *ngIf="chooseIconTemplate || _chooseIconTemplate" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'">
1021
+ <ng-template *ngTemplateOutlet="chooseIconTemplate || _chooseIconTemplate"></ng-template>
1022
+ </span>
1023
+ </ng-container>
1024
+ </ng-template>
1025
+ </p-button>
1026
+
1027
+ <p-button
1028
+ *ngIf="!auto && showUploadButton"
1029
+ [label]="uploadButtonLabel"
1030
+ (onClick)="upload()"
1031
+ [disabled]="!hasFiles() || isFileLimitExceeded()"
1032
+ [styleClass]="cn(cx('pcUploadButton'), uploadStyleClass)"
1033
+ [buttonProps]="uploadButtonProps"
1034
+ >
1035
+ <ng-template #icon>
1036
+ <span *ngIf="uploadIcon" [ngClass]="uploadIcon" [attr.aria-hidden]="true"></span>
1037
+ <ng-container *ngIf="!uploadIcon">
1038
+ <svg data-p-icon="upload" *ngIf="!uploadIconTemplate && !_uploadIconTemplate" />
1039
+ <span *ngIf="uploadIconTemplate || _uploadIconTemplate" [attr.aria-hidden]="true">
1040
+ <ng-template *ngTemplateOutlet="uploadIconTemplate || _uploadIconTemplate"></ng-template>
1041
+ </span>
1042
+ </ng-container>
1043
+ </ng-template>
1044
+ </p-button>
1045
+ <p-button *ngIf="!auto && showCancelButton" [label]="cancelButtonLabel" (onClick)="clear()" [disabled]="!hasFiles() || uploading" [styleClass]="cn(cx('pcCancelButton'), cancelStyleClass)" [buttonProps]="cancelButtonProps">
1046
+ <ng-template #icon>
1047
+ <span *ngIf="cancelIcon" [ngClass]="cancelIcon"></span>
1048
+ <ng-container *ngIf="!cancelIcon">
1049
+ <svg data-p-icon="times" *ngIf="!cancelIconTemplate && !_cancelIconTemplate" [attr.aria-hidden]="true" />
1050
+ <span *ngIf="cancelIconTemplate || _cancelIconTemplate" [attr.aria-hidden]="true">
1051
+ <ng-template *ngTemplateOutlet="cancelIconTemplate || _cancelIconTemplate"></ng-template>
1052
+ </span>
1053
+ </ng-container>
1054
+ </ng-template>
1055
+ </p-button>
1056
+ </ng-container>
1057
+ <ng-container
1058
+ *ngTemplateOutlet="
1059
+ headerTemplate || _headerTemplate;
1060
+ context: {
1061
+ $implicit: files,
1062
+ uploadedFiles: uploadedFiles,
1063
+ chooseCallback: choose.bind(this),
1064
+ clearCallback: clear.bind(this),
1065
+ uploadCallback: upload.bind(this)
1066
+ }
1067
+ "
1068
+ ></ng-container>
1069
+ <ng-container *ngTemplateOutlet="toolbarTemplate || _toolbarTemplate"></ng-container>
1070
+ </div>
1071
+ <div #content [class]="cx('content')" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)" [attr.data-pc-section]="'content'">
1072
+ @if (contentTemplate || _contentTemplate) {
1073
+ <ng-container
1074
+ *ngTemplateOutlet="
1075
+ contentTemplate || _contentTemplate;
1076
+ context: {
1077
+ $implicit: files,
1078
+ uploadedFiles: uploadedFiles,
1079
+ chooseCallback: choose.bind(this),
1080
+ clearCallback: clear.bind(this),
1081
+ removeUploadedFileCallback: removeUploadedFile.bind(this),
1082
+ removeFileCallback: remove.bind(this),
1083
+ progress: progress,
1084
+ messages: msgs
1085
+ }
1086
+ "
1087
+ ></ng-container>
1088
+ } @else {
1089
+ <p-progressbar [value]="progress" [showValue]="false" *ngIf="hasFiles()"></p-progressbar>
1090
+ @for (message of msgs; track message) {
1091
+ <p-message [severity]="message.severity" [text]="message.text"></p-message>
1092
+ }
1093
+
1094
+ @if (hasFiles()) {
1095
+ <div [class]="cx('fileList')">
1096
+ <ng-template ngFor [ngForOf]="files" [ngForTemplate]="fileTemplate || _fileTemplate"></ng-template>
1097
+ @if (!fileTemplate && !_fileTemplate) {
1098
+ <div pFileContent [files]="files" (onRemove)="onRemoveClick($event)" [badgeValue]="pendingLabel" [previewWidth]="previewWidth" [fileRemoveIconTemplate]="cancelIconTemplate || _cancelIconTemplate"></div>
1099
+ }
1100
+ </div>
1101
+ }
1102
+ @if (hasUploadedFiles()) {
1103
+ <div [class]="cx('fileList')">
1104
+ <ng-template ngFor [ngForOf]="uploadedFiles" [ngForTemplate]="fileTemplate || _fileTemplate"></ng-template>
1105
+ @if (!fileTemplate && !_fileTemplate) {
1106
+ <div
1107
+ pFileContent
1108
+ [files]="uploadedFiles"
1109
+ (onRemove)="onRemoveUploadedFileClick($event)"
1110
+ [badgeValue]="completedLabel()"
1111
+ badgeSeverity="success"
1112
+ [previewWidth]="previewWidth"
1113
+ [fileRemoveIconTemplate]="cancelIconTemplate || _cancelIconTemplate"
1114
+ ></div>
1115
+ }
1116
+ </div>
1117
+ }
1118
+ }
1119
+ @if ((emptyTemplate || _emptyTemplate) && !hasFiles() && !hasUploadedFiles()) {
1120
+ <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1121
+ }
1122
+ </div>
1123
+ </div>
1124
+ <div [class]="cn(cx('root'), styleClass)" *ngIf="mode === 'basic'" [attr.data-pc-name]="'fileupload'">
1125
+ @for (message of msgs; track message) {
1126
+ <p-message [severity]="message.severity" [text]="message.text"></p-message>
1127
+ }
1128
+
1129
+ <div [class]="cx('basicContent')">
1130
+ <p-button
1131
+ [styleClass]="cn(cx('pcChooseButton'), chooseStyleClass)"
1132
+ [disabled]="disabled"
1133
+ [label]="chooseButtonLabel"
1134
+ [style]="style"
1135
+ (onClick)="onBasicUploaderClick()"
1136
+ (keydown)="onBasicKeydown($event)"
1137
+ [buttonProps]="chooseButtonProps"
1138
+ >
1139
+ <ng-template #icon>
1140
+ @if (hasFiles() && !auto) {
1141
+ <span *ngIf="uploadIcon" class="p-button-icon p-button-icon-left" [ngClass]="uploadIcon"></span>
1142
+ <ng-container *ngIf="!uploadIcon">
1143
+ <svg data-p-icon="upload" *ngIf="!uploadIconTemplate && !_uploadIconTemplate" [class]="'p-button-icon p-button-icon-left'" />
1144
+ <span *ngIf="_uploadIconTemplate || uploadIconTemplate" class="p-button-icon p-button-icon-left">
1145
+ <ng-template *ngTemplateOutlet="_uploadIconTemplate || uploadIconTemplate"></ng-template>
1146
+ </span>
1147
+ </ng-container>
1148
+ } @else {
1149
+ <span *ngIf="chooseIcon" class="p-button-icon p-button-icon-left pi" [ngClass]="chooseIcon"></span>
1150
+ <ng-container *ngIf="!chooseIcon">
1151
+ <svg data-p-icon="plus" *ngIf="!chooseIconTemplate && !_chooseIconTemplate" [attr.data-pc-section]="'uploadicon'" />
1152
+ <ng-template *ngTemplateOutlet="chooseIconTemplate || _chooseIconTemplate"></ng-template>
1153
+ </ng-container>
1154
+ }
1155
+ </ng-template>
1156
+ <input
1157
+ [attr.aria-label]="browseFilesLabel"
1158
+ #basicfileinput
1159
+ type="file"
1160
+ [accept]="accept"
1161
+ [multiple]="multiple"
1162
+ [disabled]="disabled"
1163
+ (change)="onFileSelect($event)"
1164
+ (focus)="onFocus()"
1165
+ (blur)="onBlur()"
1166
+ [attr.data-pc-section]="'input'"
1167
+ />
1168
+ </p-button>
1169
+ @if (!auto) {
1170
+ @if (!fileLabelTemplate && !_fileLabelTemplate) {
1171
+ <span>
1172
+ {{ basicFileChosenLabel() }}
1173
+ </span>
1174
+ } @else {
1175
+ <ng-container *ngTemplateOutlet="fileLabelTemplate || _fileLabelTemplate; context: { $implicit: files }"></ng-container>
1176
+ }
1177
+ }
1178
+ </div>
1179
+ </div>
1180
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: ProgressBar, selector: "p-progressBar, p-progressbar, p-progress-bar", inputs: ["value", "showValue", "styleClass", "valueStyleClass", "unit", "mode", "color"] }, { kind: "component", type: Message, selector: "p-message", inputs: ["severity", "text", "escape", "style", "styleClass", "closable", "icon", "closeIcon", "life", "showTransitionOptions", "hideTransitionOptions", "size", "variant"], outputs: ["onClose"] }, { kind: "component", type: PlusIcon, selector: "[data-p-icon=\"plus\"]" }, { kind: "component", type: UploadIcon, selector: "[data-p-icon=\"upload\"]" }, { kind: "component", type: TimesIcon, selector: "[data-p-icon=\"times\"]" }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: FileContent, selector: "[pFileContent]", inputs: ["files", "badgeSeverity", "badgeValue", "previewWidth", "fileRemoveIconTemplate"], outputs: ["onRemove"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1181
+ }
1182
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUpload, decorators: [{
1183
+ type: Component,
1184
+ args: [{
1185
+ selector: 'p-fileupload, p-fileUpload',
1186
+ standalone: true,
1187
+ imports: [CommonModule, Button, ProgressBar, Message, PlusIcon, UploadIcon, TimesIcon, SharedModule, FileContent],
1188
+ template: `
1189
+ <div [class]="cn(cx('root'), styleClass)" [ngStyle]="style" *ngIf="mode === 'advanced'" [attr.data-pc-name]="'fileupload'" [attr.data-pc-section]="'root'">
1190
+ <input
1191
+ [attr.aria-label]="browseFilesLabel"
1192
+ #advancedfileinput
1193
+ type="file"
1194
+ (change)="onFileSelect($event)"
1195
+ [multiple]="multiple"
1196
+ [accept]="accept"
1197
+ [disabled]="disabled || isChooseDisabled()"
1198
+ [attr.title]="''"
1199
+ [attr.data-pc-section]="'input'"
1200
+ [style.display]="'none'"
1201
+ />
1202
+ <div [class]="cx('header')">
1203
+ <ng-container *ngIf="!headerTemplate && !_headerTemplate">
1204
+ <p-button
1205
+ [styleClass]="cn(cx('pcChooseButton'), chooseStyleClass)"
1206
+ [disabled]="disabled || isChooseDisabled()"
1207
+ (focus)="onFocus()"
1208
+ [label]="chooseButtonLabel"
1209
+ (blur)="onBlur()"
1210
+ (onClick)="choose()"
1211
+ (keydown.enter)="choose()"
1212
+ [attr.data-pc-section]="'choosebutton'"
1213
+ [buttonProps]="chooseButtonProps"
1214
+ >
1215
+ <input
1216
+ [attr.aria-label]="browseFilesLabel"
1217
+ #advancedfileinput
1218
+ type="file"
1219
+ (change)="onFileSelect($event)"
1220
+ [multiple]="multiple"
1221
+ [accept]="accept"
1222
+ [disabled]="disabled || isChooseDisabled()"
1223
+ [attr.title]="''"
1224
+ [attr.data-pc-section]="'input'"
1225
+ />
1226
+ <ng-template #icon>
1227
+ <span *ngIf="chooseIcon" [class]="chooseIcon" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'"></span>
1228
+ <ng-container *ngIf="!chooseIcon">
1229
+ <svg data-p-icon="plus" *ngIf="!chooseIconTemplate && !_chooseIconTemplate" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'" />
1230
+ <span *ngIf="chooseIconTemplate || _chooseIconTemplate" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'">
1231
+ <ng-template *ngTemplateOutlet="chooseIconTemplate || _chooseIconTemplate"></ng-template>
1232
+ </span>
1233
+ </ng-container>
1234
+ </ng-template>
1235
+ </p-button>
1236
+
1237
+ <p-button
1238
+ *ngIf="!auto && showUploadButton"
1239
+ [label]="uploadButtonLabel"
1240
+ (onClick)="upload()"
1241
+ [disabled]="!hasFiles() || isFileLimitExceeded()"
1242
+ [styleClass]="cn(cx('pcUploadButton'), uploadStyleClass)"
1243
+ [buttonProps]="uploadButtonProps"
1244
+ >
1245
+ <ng-template #icon>
1246
+ <span *ngIf="uploadIcon" [ngClass]="uploadIcon" [attr.aria-hidden]="true"></span>
1247
+ <ng-container *ngIf="!uploadIcon">
1248
+ <svg data-p-icon="upload" *ngIf="!uploadIconTemplate && !_uploadIconTemplate" />
1249
+ <span *ngIf="uploadIconTemplate || _uploadIconTemplate" [attr.aria-hidden]="true">
1250
+ <ng-template *ngTemplateOutlet="uploadIconTemplate || _uploadIconTemplate"></ng-template>
1251
+ </span>
1252
+ </ng-container>
1253
+ </ng-template>
1254
+ </p-button>
1255
+ <p-button *ngIf="!auto && showCancelButton" [label]="cancelButtonLabel" (onClick)="clear()" [disabled]="!hasFiles() || uploading" [styleClass]="cn(cx('pcCancelButton'), cancelStyleClass)" [buttonProps]="cancelButtonProps">
1256
+ <ng-template #icon>
1257
+ <span *ngIf="cancelIcon" [ngClass]="cancelIcon"></span>
1258
+ <ng-container *ngIf="!cancelIcon">
1259
+ <svg data-p-icon="times" *ngIf="!cancelIconTemplate && !_cancelIconTemplate" [attr.aria-hidden]="true" />
1260
+ <span *ngIf="cancelIconTemplate || _cancelIconTemplate" [attr.aria-hidden]="true">
1261
+ <ng-template *ngTemplateOutlet="cancelIconTemplate || _cancelIconTemplate"></ng-template>
1262
+ </span>
1263
+ </ng-container>
1264
+ </ng-template>
1265
+ </p-button>
1266
+ </ng-container>
1267
+ <ng-container
1268
+ *ngTemplateOutlet="
1269
+ headerTemplate || _headerTemplate;
1270
+ context: {
1271
+ $implicit: files,
1272
+ uploadedFiles: uploadedFiles,
1273
+ chooseCallback: choose.bind(this),
1274
+ clearCallback: clear.bind(this),
1275
+ uploadCallback: upload.bind(this)
1276
+ }
1277
+ "
1278
+ ></ng-container>
1279
+ <ng-container *ngTemplateOutlet="toolbarTemplate || _toolbarTemplate"></ng-container>
1280
+ </div>
1281
+ <div #content [class]="cx('content')" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)" [attr.data-pc-section]="'content'">
1282
+ @if (contentTemplate || _contentTemplate) {
1283
+ <ng-container
1284
+ *ngTemplateOutlet="
1285
+ contentTemplate || _contentTemplate;
1286
+ context: {
1287
+ $implicit: files,
1288
+ uploadedFiles: uploadedFiles,
1289
+ chooseCallback: choose.bind(this),
1290
+ clearCallback: clear.bind(this),
1291
+ removeUploadedFileCallback: removeUploadedFile.bind(this),
1292
+ removeFileCallback: remove.bind(this),
1293
+ progress: progress,
1294
+ messages: msgs
1295
+ }
1296
+ "
1297
+ ></ng-container>
1298
+ } @else {
1299
+ <p-progressbar [value]="progress" [showValue]="false" *ngIf="hasFiles()"></p-progressbar>
1300
+ @for (message of msgs; track message) {
1301
+ <p-message [severity]="message.severity" [text]="message.text"></p-message>
1302
+ }
1303
+
1304
+ @if (hasFiles()) {
1305
+ <div [class]="cx('fileList')">
1306
+ <ng-template ngFor [ngForOf]="files" [ngForTemplate]="fileTemplate || _fileTemplate"></ng-template>
1307
+ @if (!fileTemplate && !_fileTemplate) {
1308
+ <div pFileContent [files]="files" (onRemove)="onRemoveClick($event)" [badgeValue]="pendingLabel" [previewWidth]="previewWidth" [fileRemoveIconTemplate]="cancelIconTemplate || _cancelIconTemplate"></div>
1309
+ }
1310
+ </div>
1311
+ }
1312
+ @if (hasUploadedFiles()) {
1313
+ <div [class]="cx('fileList')">
1314
+ <ng-template ngFor [ngForOf]="uploadedFiles" [ngForTemplate]="fileTemplate || _fileTemplate"></ng-template>
1315
+ @if (!fileTemplate && !_fileTemplate) {
1316
+ <div
1317
+ pFileContent
1318
+ [files]="uploadedFiles"
1319
+ (onRemove)="onRemoveUploadedFileClick($event)"
1320
+ [badgeValue]="completedLabel()"
1321
+ badgeSeverity="success"
1322
+ [previewWidth]="previewWidth"
1323
+ [fileRemoveIconTemplate]="cancelIconTemplate || _cancelIconTemplate"
1324
+ ></div>
1325
+ }
1326
+ </div>
1327
+ }
1328
+ }
1329
+ @if ((emptyTemplate || _emptyTemplate) && !hasFiles() && !hasUploadedFiles()) {
1330
+ <ng-container *ngTemplateOutlet="emptyTemplate || _emptyTemplate"></ng-container>
1331
+ }
1332
+ </div>
1333
+ </div>
1334
+ <div [class]="cn(cx('root'), styleClass)" *ngIf="mode === 'basic'" [attr.data-pc-name]="'fileupload'">
1335
+ @for (message of msgs; track message) {
1336
+ <p-message [severity]="message.severity" [text]="message.text"></p-message>
1337
+ }
1338
+
1339
+ <div [class]="cx('basicContent')">
1340
+ <p-button
1341
+ [styleClass]="cn(cx('pcChooseButton'), chooseStyleClass)"
1342
+ [disabled]="disabled"
1343
+ [label]="chooseButtonLabel"
1344
+ [style]="style"
1345
+ (onClick)="onBasicUploaderClick()"
1346
+ (keydown)="onBasicKeydown($event)"
1347
+ [buttonProps]="chooseButtonProps"
1348
+ >
1349
+ <ng-template #icon>
1350
+ @if (hasFiles() && !auto) {
1351
+ <span *ngIf="uploadIcon" class="p-button-icon p-button-icon-left" [ngClass]="uploadIcon"></span>
1352
+ <ng-container *ngIf="!uploadIcon">
1353
+ <svg data-p-icon="upload" *ngIf="!uploadIconTemplate && !_uploadIconTemplate" [class]="'p-button-icon p-button-icon-left'" />
1354
+ <span *ngIf="_uploadIconTemplate || uploadIconTemplate" class="p-button-icon p-button-icon-left">
1355
+ <ng-template *ngTemplateOutlet="_uploadIconTemplate || uploadIconTemplate"></ng-template>
1356
+ </span>
1357
+ </ng-container>
1358
+ } @else {
1359
+ <span *ngIf="chooseIcon" class="p-button-icon p-button-icon-left pi" [ngClass]="chooseIcon"></span>
1360
+ <ng-container *ngIf="!chooseIcon">
1361
+ <svg data-p-icon="plus" *ngIf="!chooseIconTemplate && !_chooseIconTemplate" [attr.data-pc-section]="'uploadicon'" />
1362
+ <ng-template *ngTemplateOutlet="chooseIconTemplate || _chooseIconTemplate"></ng-template>
1363
+ </ng-container>
1364
+ }
1365
+ </ng-template>
1366
+ <input
1367
+ [attr.aria-label]="browseFilesLabel"
1368
+ #basicfileinput
1369
+ type="file"
1370
+ [accept]="accept"
1371
+ [multiple]="multiple"
1372
+ [disabled]="disabled"
1373
+ (change)="onFileSelect($event)"
1374
+ (focus)="onFocus()"
1375
+ (blur)="onBlur()"
1376
+ [attr.data-pc-section]="'input'"
1377
+ />
1378
+ </p-button>
1379
+ @if (!auto) {
1380
+ @if (!fileLabelTemplate && !_fileLabelTemplate) {
1381
+ <span>
1382
+ {{ basicFileChosenLabel() }}
1383
+ </span>
1384
+ } @else {
1385
+ <ng-container *ngTemplateOutlet="fileLabelTemplate || _fileLabelTemplate; context: { $implicit: files }"></ng-container>
1386
+ }
1387
+ }
1388
+ </div>
1389
+ </div>
1390
+ `,
1391
+ changeDetection: ChangeDetectionStrategy.OnPush,
1392
+ encapsulation: ViewEncapsulation.None,
1393
+ providers: [FileUploadStyle]
1394
+ }]
1395
+ }], propDecorators: { name: [{
1396
+ type: Input
1397
+ }], url: [{
1398
+ type: Input
1399
+ }], method: [{
1400
+ type: Input
1401
+ }], multiple: [{
1402
+ type: Input,
1403
+ args: [{ transform: booleanAttribute }]
1404
+ }], accept: [{
1405
+ type: Input
1406
+ }], disabled: [{
1407
+ type: Input,
1408
+ args: [{ transform: booleanAttribute }]
1409
+ }], auto: [{
1410
+ type: Input,
1411
+ args: [{ transform: booleanAttribute }]
1412
+ }], withCredentials: [{
1413
+ type: Input,
1414
+ args: [{ transform: booleanAttribute }]
1415
+ }], maxFileSize: [{
1416
+ type: Input,
1417
+ args: [{ transform: numberAttribute }]
1418
+ }], invalidFileSizeMessageSummary: [{
1419
+ type: Input
1420
+ }], invalidFileSizeMessageDetail: [{
1421
+ type: Input
1422
+ }], invalidFileTypeMessageSummary: [{
1423
+ type: Input
1424
+ }], invalidFileTypeMessageDetail: [{
1425
+ type: Input
1426
+ }], invalidFileLimitMessageDetail: [{
1427
+ type: Input
1428
+ }], invalidFileLimitMessageSummary: [{
1429
+ type: Input
1430
+ }], style: [{
1431
+ type: Input
1432
+ }], styleClass: [{
1433
+ type: Input
1434
+ }], previewWidth: [{
1435
+ type: Input,
1436
+ args: [{ transform: numberAttribute }]
1437
+ }], chooseLabel: [{
1438
+ type: Input
1439
+ }], uploadLabel: [{
1440
+ type: Input
1441
+ }], cancelLabel: [{
1442
+ type: Input
1443
+ }], chooseIcon: [{
1444
+ type: Input
1445
+ }], uploadIcon: [{
1446
+ type: Input
1447
+ }], cancelIcon: [{
1448
+ type: Input
1449
+ }], showUploadButton: [{
1450
+ type: Input,
1451
+ args: [{ transform: booleanAttribute }]
1452
+ }], showCancelButton: [{
1453
+ type: Input,
1454
+ args: [{ transform: booleanAttribute }]
1455
+ }], mode: [{
1456
+ type: Input
1457
+ }], headers: [{
1458
+ type: Input
1459
+ }], customUpload: [{
1460
+ type: Input,
1461
+ args: [{ transform: booleanAttribute }]
1462
+ }], fileLimit: [{
1463
+ type: Input,
1464
+ args: [{ transform: (value) => numberAttribute(value, null) }]
1465
+ }], uploadStyleClass: [{
1466
+ type: Input
1467
+ }], cancelStyleClass: [{
1468
+ type: Input
1469
+ }], removeStyleClass: [{
1470
+ type: Input
1471
+ }], chooseStyleClass: [{
1472
+ type: Input
1473
+ }], chooseButtonProps: [{
1474
+ type: Input
1475
+ }], uploadButtonProps: [{
1476
+ type: Input
1477
+ }], cancelButtonProps: [{
1478
+ type: Input
1479
+ }], onBeforeUpload: [{
1480
+ type: Output
1481
+ }], onSend: [{
1482
+ type: Output
1483
+ }], onUpload: [{
1484
+ type: Output
1485
+ }], onError: [{
1486
+ type: Output
1487
+ }], onClear: [{
1488
+ type: Output
1489
+ }], onRemove: [{
1490
+ type: Output
1491
+ }], onSelect: [{
1492
+ type: Output
1493
+ }], onProgress: [{
1494
+ type: Output
1495
+ }], uploadHandler: [{
1496
+ type: Output
1497
+ }], onImageError: [{
1498
+ type: Output
1499
+ }], onRemoveUploadedFile: [{
1500
+ type: Output
1501
+ }], fileTemplate: [{
1502
+ type: ContentChild,
1503
+ args: ['file', { descendants: false }]
1504
+ }], headerTemplate: [{
1505
+ type: ContentChild,
1506
+ args: ['header', { descendants: false }]
1507
+ }], contentTemplate: [{
1508
+ type: ContentChild,
1509
+ args: ['content', { descendants: false }]
1510
+ }], toolbarTemplate: [{
1511
+ type: ContentChild,
1512
+ args: ['toolbar', { descendants: false }]
1513
+ }], chooseIconTemplate: [{
1514
+ type: ContentChild,
1515
+ args: ['chooseicon', { descendants: false }]
1516
+ }], fileLabelTemplate: [{
1517
+ type: ContentChild,
1518
+ args: ['filelabel', { descendants: false }]
1519
+ }], uploadIconTemplate: [{
1520
+ type: ContentChild,
1521
+ args: ['uploadicon', { descendants: false }]
1522
+ }], cancelIconTemplate: [{
1523
+ type: ContentChild,
1524
+ args: ['cancelicon', { descendants: false }]
1525
+ }], emptyTemplate: [{
1526
+ type: ContentChild,
1527
+ args: ['empty', { descendants: false }]
1528
+ }], advancedFileInput: [{
1529
+ type: ViewChild,
1530
+ args: ['advancedfileinput']
1531
+ }], basicFileInput: [{
1532
+ type: ViewChild,
1533
+ args: ['basicfileinput']
1534
+ }], content: [{
1535
+ type: ViewChild,
1536
+ args: ['content']
1537
+ }], files: [{
1538
+ type: Input
1539
+ }], templates: [{
1540
+ type: ContentChildren,
1541
+ args: [PrimeTemplate]
1542
+ }] } });
1543
+ class FileUploadModule {
1544
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1545
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.4", ngImport: i0, type: FileUploadModule, imports: [FileUpload, SharedModule], exports: [FileUpload, SharedModule] });
1546
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadModule, imports: [FileUpload, SharedModule, SharedModule] });
1547
+ }
1548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.4", ngImport: i0, type: FileUploadModule, decorators: [{
1549
+ type: NgModule,
1550
+ args: [{
1551
+ imports: [FileUpload, SharedModule],
1552
+ exports: [FileUpload, SharedModule]
1553
+ }]
1554
+ }] });
1555
+
1556
+ /**
1557
+ * Generated bundle index. Do not edit.
1558
+ */
1559
+
1560
+ export { FileContent, FileUpload, FileUploadClasses, FileUploadModule, FileUploadStyle };
1561
+ //# sourceMappingURL=primeng-fileupload.mjs.map