primeng 22.1.0 → 22.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/primeng-accordion.mjs +998 -578
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +266 -165
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +888 -847
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +2534 -1592
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +114 -77
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +330 -189
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +178 -95
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +290 -156
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +95 -101
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +528 -489
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-baseeditableholder.mjs +131 -69
- package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
- package/fesm2022/primeng-baseinput.mjs +214 -99
- package/fesm2022/primeng-baseinput.mjs.map +1 -1
- package/fesm2022/primeng-basemodelholder.mjs +39 -26
- package/fesm2022/primeng-basemodelholder.mjs.map +1 -1
- package/fesm2022/primeng-bind.mjs +156 -96
- package/fesm2022/primeng-bind.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +360 -228
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +458 -220
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +1568 -703
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +125 -73
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +389 -178
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +2393 -1773
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +2373 -1364
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +402 -231
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +650 -353
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +411 -224
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-classnames.mjs +95 -48
- package/fesm2022/primeng-classnames.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +890 -635
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-commandmenu.mjs +568 -315
- package/fesm2022/primeng-commandmenu.mjs.map +1 -1
- package/fesm2022/primeng-compare.mjs +843 -480
- package/fesm2022/primeng-compare.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +415 -321
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +1188 -540
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +810 -531
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +1862 -1051
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +1130 -549
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +3750 -3354
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +1635 -968
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +272 -148
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +609 -385
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +599 -761
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +323 -311
- package/fesm2022/primeng-dragdrop.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +913 -482
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +828 -928
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +547 -390
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +559 -274
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +1836 -1047
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +187 -102
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +156 -85
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +150 -112
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +2589 -1406
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-gallery.mjs +2768 -1798
- package/fesm2022/primeng-gallery.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +192 -93
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +41 -23
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +41 -23
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +41 -23
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +41 -23
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +41 -23
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +46 -28
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +41 -23
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +41 -23
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +46 -28
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +41 -23
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +46 -28
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +46 -28
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +41 -23
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +111 -67
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +40 -22
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +41 -23
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +41 -23
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +41 -23
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +41 -23
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +41 -23
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +41 -23
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +41 -23
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +41 -23
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +46 -28
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +41 -23
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +46 -28
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +46 -28
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterfill.mjs +41 -23
- package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +46 -28
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +46 -28
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +46 -28
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +41 -23
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +46 -28
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +46 -28
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +46 -28
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +46 -28
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +46 -28
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +46 -28
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +46 -28
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +46 -28
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +46 -28
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +46 -28
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +46 -28
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +46 -28
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +46 -28
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +41 -23
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +46 -28
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +46 -28
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +46 -28
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +46 -28
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +46 -28
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +46 -28
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-icons.mjs +53 -63
- package/fesm2022/primeng-iftalabel.mjs +153 -86
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +1006 -534
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +325 -165
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +401 -199
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputcolor.mjs +2631 -2180
- package/fesm2022/primeng-inputcolor.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +159 -91
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +153 -68
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +173 -72
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +1607 -1379
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +1646 -1305
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +571 -375
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputpassword.mjs +179 -98
- package/fesm2022/primeng-inputpassword.mjs.map +1 -1
- package/fesm2022/primeng-inputtags.mjs +1212 -588
- package/fesm2022/primeng-inputtags.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +325 -170
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +268 -243
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +627 -403
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-label.mjs +143 -81
- package/fesm2022/primeng-label.mjs.map +1 -1
- package/fesm2022/primeng-license.mjs +10 -36
- package/fesm2022/primeng-license.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +2409 -1593
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +2006 -1117
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +1437 -845
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +1832 -972
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +474 -243
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +663 -331
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-motion.mjs +1179 -690
- package/fesm2022/primeng-motion.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +3406 -1898
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +1308 -678
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +912 -597
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +929 -610
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +291 -107
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +961 -505
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +668 -347
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +1842 -966
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-passthrough.mjs +10 -20
- package/fesm2022/primeng-passthrough.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +1518 -858
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +2270 -1253
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +656 -434
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +346 -168
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +338 -188
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +499 -294
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +583 -352
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +194 -170
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scrollarea.mjs +1018 -721
- package/fesm2022/primeng-scrollarea.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +1386 -1047
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +568 -454
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +509 -261
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +2948 -1714
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +629 -339
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +2561 -1413
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +300 -157
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +841 -604
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +1115 -704
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +889 -340
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +997 -762
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +1355 -645
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +523 -407
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +446 -330
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +9765 -5849
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +1357 -815
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +305 -151
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +368 -216
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +345 -204
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +1917 -1094
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +304 -165
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +1369 -928
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +563 -309
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +464 -237
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +299 -129
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +1018 -765
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +2681 -1888
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +1678 -927
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +5849 -3742
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-ts-helpers.mjs +0 -4
- package/fesm2022/primeng-types-accordion.mjs +0 -4
- package/fesm2022/primeng-types-autocomplete.mjs +0 -4
- package/fesm2022/primeng-types-avatar.mjs +0 -4
- package/fesm2022/primeng-types-avatargroup.mjs +0 -4
- package/fesm2022/primeng-types-badge.mjs +0 -4
- package/fesm2022/primeng-types-blockui.mjs +0 -4
- package/fesm2022/primeng-types-breadcrumb.mjs +0 -4
- package/fesm2022/primeng-types-button.mjs +0 -4
- package/fesm2022/primeng-types-card.mjs +0 -4
- package/fesm2022/primeng-types-carousel.mjs +0 -4
- package/fesm2022/primeng-types-cascadeselect.mjs +0 -4
- package/fesm2022/primeng-types-chart.mjs +0 -4
- package/fesm2022/primeng-types-checkbox.mjs +0 -4
- package/fesm2022/primeng-types-chip.mjs +0 -4
- package/fesm2022/primeng-types-colorpicker.mjs +0 -4
- package/fesm2022/primeng-types-commandmenu.mjs +0 -4
- package/fesm2022/primeng-types-compare.mjs +0 -4
- package/fesm2022/primeng-types-confirmdialog.mjs +0 -4
- package/fesm2022/primeng-types-confirmpopup.mjs +0 -4
- package/fesm2022/primeng-types-contextmenu.mjs +0 -4
- package/fesm2022/primeng-types-dataview.mjs +0 -4
- package/fesm2022/primeng-types-datepicker.mjs +0 -4
- package/fesm2022/primeng-types-dialog.mjs +0 -4
- package/fesm2022/primeng-types-divider.mjs +0 -4
- package/fesm2022/primeng-types-dock.mjs +0 -4
- package/fesm2022/primeng-types-drawer.mjs +0 -4
- package/fesm2022/primeng-types-editor.mjs +0 -4
- package/fesm2022/primeng-types-fieldset.mjs +0 -4
- package/fesm2022/primeng-types-fileupload.mjs +0 -4
- package/fesm2022/primeng-types-floatlabel.mjs +0 -4
- package/fesm2022/primeng-types-fluid.mjs +0 -4
- package/fesm2022/primeng-types-galleria.mjs +0 -4
- package/fesm2022/primeng-types-gallery.mjs +0 -4
- package/fesm2022/primeng-types-iconfield.mjs +0 -4
- package/fesm2022/primeng-types-iftalabel.mjs +0 -4
- package/fesm2022/primeng-types-image.mjs +0 -4
- package/fesm2022/primeng-types-imagecompare.mjs +0 -4
- package/fesm2022/primeng-types-inplace.mjs +0 -4
- package/fesm2022/primeng-types-inputcolor.mjs +0 -4
- package/fesm2022/primeng-types-inputgroup.mjs +0 -4
- package/fesm2022/primeng-types-inputgroupaddon.mjs +0 -4
- package/fesm2022/primeng-types-inputicon.mjs +0 -4
- package/fesm2022/primeng-types-inputmask.mjs +0 -4
- package/fesm2022/primeng-types-inputnumber.mjs +0 -4
- package/fesm2022/primeng-types-inputotp.mjs +0 -4
- package/fesm2022/primeng-types-inputpassword.mjs +0 -4
- package/fesm2022/primeng-types-inputtags.mjs +0 -4
- package/fesm2022/primeng-types-inputtext.mjs +0 -4
- package/fesm2022/primeng-types-knob.mjs +0 -4
- package/fesm2022/primeng-types-label.mjs +0 -4
- package/fesm2022/primeng-types-listbox.mjs +0 -4
- package/fesm2022/primeng-types-megamenu.mjs +0 -4
- package/fesm2022/primeng-types-menu.mjs +0 -4
- package/fesm2022/primeng-types-menubar.mjs +0 -4
- package/fesm2022/primeng-types-message.mjs +0 -4
- package/fesm2022/primeng-types-metergroup.mjs +0 -4
- package/fesm2022/primeng-types-motion.mjs +0 -4
- package/fesm2022/primeng-types-multiselect.mjs +0 -4
- package/fesm2022/primeng-types-orderlist.mjs +0 -4
- package/fesm2022/primeng-types-organizationchart.mjs +0 -4
- package/fesm2022/primeng-types-overlay.mjs +0 -4
- package/fesm2022/primeng-types-overlaybadge.mjs +0 -4
- package/fesm2022/primeng-types-paginator.mjs +0 -4
- package/fesm2022/primeng-types-panel.mjs +0 -4
- package/fesm2022/primeng-types-panelmenu.mjs +0 -4
- package/fesm2022/primeng-types-password.mjs +0 -4
- package/fesm2022/primeng-types-picklist.mjs +0 -4
- package/fesm2022/primeng-types-popover.mjs +0 -4
- package/fesm2022/primeng-types-progressbar.mjs +0 -4
- package/fesm2022/primeng-types-progressspinner.mjs +0 -4
- package/fesm2022/primeng-types-radiobutton.mjs +0 -4
- package/fesm2022/primeng-types-rating.mjs +0 -4
- package/fesm2022/primeng-types-scrollarea.mjs +0 -4
- package/fesm2022/primeng-types-scroller.mjs +0 -4
- package/fesm2022/primeng-types-scrollpanel.mjs +0 -4
- package/fesm2022/primeng-types-scrolltop.mjs +0 -4
- package/fesm2022/primeng-types-select.mjs +0 -4
- package/fesm2022/primeng-types-selectbutton.mjs +0 -4
- package/fesm2022/primeng-types-shared.mjs +0 -4
- package/fesm2022/primeng-types-sidebar.mjs +0 -4
- package/fesm2022/primeng-types-skeleton.mjs +0 -4
- package/fesm2022/primeng-types-slider.mjs +0 -4
- package/fesm2022/primeng-types-speeddial.mjs +0 -4
- package/fesm2022/primeng-types-splitbutton.mjs +0 -4
- package/fesm2022/primeng-types-splitter.mjs +0 -4
- package/fesm2022/primeng-types-stepper.mjs +0 -4
- package/fesm2022/primeng-types-table.mjs +0 -4
- package/fesm2022/primeng-types-tabs.mjs +0 -4
- package/fesm2022/primeng-types-tag.mjs +0 -4
- package/fesm2022/primeng-types-terminal.mjs +0 -4
- package/fesm2022/primeng-types-textarea.mjs +0 -4
- package/fesm2022/primeng-types-tieredmenu.mjs +0 -4
- package/fesm2022/primeng-types-timeline.mjs +0 -4
- package/fesm2022/primeng-types-toast.mjs +0 -4
- package/fesm2022/primeng-types-togglebutton.mjs +0 -4
- package/fesm2022/primeng-types-toggleswitch.mjs +0 -4
- package/fesm2022/primeng-types-toolbar.mjs +0 -4
- package/fesm2022/primeng-types-tooltip.mjs +0 -4
- package/fesm2022/primeng-types-tree.mjs +0 -4
- package/fesm2022/primeng-types-treeselect.mjs +0 -4
- package/fesm2022/primeng-types-treetable.mjs +0 -4
- package/fesm2022/primeng-usestyle.mjs +105 -109
- package/fesm2022/primeng-usestyle.mjs.map +1 -1
- package/fesm2022/primeng-utils.mjs +238 -328
- package/fesm2022/primeng-utils.mjs.map +1 -1
- package/fesm2022/primeng.mjs +1 -5
- package/fesm2022/primeng.mjs.map +1 -1
- package/package.json +7 -2
- package/types/primeng-accordion.d.ts +289 -221
- package/types/primeng-animateonscroll.d.ts +89 -61
- package/types/primeng-api.d.ts +1760 -1790
- package/types/primeng-autocomplete.d.ts +1054 -757
- package/types/primeng-autofocus.d.ts +27 -24
- package/types/primeng-avatar.d.ts +153 -117
- package/types/primeng-avatargroup.d.ts +46 -43
- package/types/primeng-badge.d.ts +105 -81
- package/types/primeng-base.d.ts +49 -52
- package/types/primeng-basecomponent.d.ts +191 -174
- package/types/primeng-baseeditableholder.d.ts +63 -45
- package/types/primeng-baseinput.d.ts +122 -74
- package/types/primeng-basemodelholder.d.ts +9 -12
- package/types/primeng-bind.d.ts +36 -32
- package/types/primeng-blockui.d.ts +99 -80
- package/types/primeng-breadcrumb.d.ts +159 -133
- package/types/primeng-button.d.ts +690 -427
- package/types/primeng-buttongroup.d.ts +27 -33
- package/types/primeng-card.d.ts +131 -122
- package/types/primeng-carousel.d.ts +800 -632
- package/types/primeng-cascadeselect.d.ts +754 -565
- package/types/primeng-chart.d.ts +160 -116
- package/types/primeng-checkbox.d.ts +299 -211
- package/types/primeng-chip.d.ts +189 -147
- package/types/primeng-classnames.d.ts +23 -21
- package/types/primeng-colorpicker.d.ts +325 -272
- package/types/primeng-commandmenu.d.ts +213 -165
- package/types/primeng-compare.d.ts +267 -191
- package/types/primeng-config.d.ts +294 -304
- package/types/primeng-confirmdialog.d.ts +505 -328
- package/types/primeng-confirmpopup.d.ts +254 -214
- package/types/primeng-contextmenu.d.ts +522 -368
- package/types/primeng-dataview.d.ts +498 -345
- package/types/primeng-datepicker.d.ts +1269 -972
- package/types/primeng-dialog.d.ts +668 -465
- package/types/primeng-divider.d.ts +114 -100
- package/types/primeng-dock.d.ts +207 -175
- package/types/primeng-dom.d.ts +97 -100
- package/types/primeng-dragdrop.d.ts +142 -107
- package/types/primeng-drawer.d.ts +355 -257
- package/types/primeng-dynamicdialog.d.ts +528 -540
- package/types/primeng-editor.d.ts +211 -165
- package/types/primeng-fieldset.d.ts +199 -166
- package/types/primeng-fileupload.d.ts +727 -526
- package/types/primeng-floatlabel.d.ts +55 -51
- package/types/primeng-fluid.d.ts +37 -39
- package/types/primeng-focustrap.d.ts +30 -27
- package/types/primeng-galleria.d.ts +570 -433
- package/types/primeng-gallery.d.ts +754 -552
- package/types/primeng-iconfield.d.ts +54 -45
- package/types/primeng-icons-angledoubledown.d.ts +6 -9
- package/types/primeng-icons-angledoubleleft.d.ts +6 -9
- package/types/primeng-icons-angledoubleright.d.ts +6 -9
- package/types/primeng-icons-angledoubleup.d.ts +6 -9
- package/types/primeng-icons-angledown.d.ts +6 -9
- package/types/primeng-icons-angleleft.d.ts +6 -9
- package/types/primeng-icons-angleright.d.ts +6 -9
- package/types/primeng-icons-angleup.d.ts +6 -9
- package/types/primeng-icons-arrowdown.d.ts +8 -11
- package/types/primeng-icons-arrowdownleft.d.ts +6 -9
- package/types/primeng-icons-arrowdownright.d.ts +6 -9
- package/types/primeng-icons-arrowleft.d.ts +8 -11
- package/types/primeng-icons-arrowright.d.ts +6 -9
- package/types/primeng-icons-arrowup.d.ts +8 -11
- package/types/primeng-icons-ban.d.ts +8 -11
- package/types/primeng-icons-bars.d.ts +6 -9
- package/types/primeng-icons-baseicon.d.ts +24 -25
- package/types/primeng-icons-blank.d.ts +6 -9
- package/types/primeng-icons-calendar.d.ts +6 -9
- package/types/primeng-icons-caretleft.d.ts +6 -9
- package/types/primeng-icons-caretright.d.ts +6 -9
- package/types/primeng-icons-check.d.ts +6 -9
- package/types/primeng-icons-chevrondown.d.ts +6 -9
- package/types/primeng-icons-chevronleft.d.ts +6 -9
- package/types/primeng-icons-chevronright.d.ts +6 -9
- package/types/primeng-icons-chevronup.d.ts +6 -9
- package/types/primeng-icons-exclamationtriangle.d.ts +8 -11
- package/types/primeng-icons-eye.d.ts +6 -9
- package/types/primeng-icons-eyeslash.d.ts +8 -11
- package/types/primeng-icons-filter.d.ts +8 -11
- package/types/primeng-icons-filterfill.d.ts +6 -9
- package/types/primeng-icons-filterslash.d.ts +8 -11
- package/types/primeng-icons-home.d.ts +8 -11
- package/types/primeng-icons-infocircle.d.ts +8 -11
- package/types/primeng-icons-minus.d.ts +6 -9
- package/types/primeng-icons-pencil.d.ts +8 -11
- package/types/primeng-icons-plus.d.ts +8 -11
- package/types/primeng-icons-refresh.d.ts +8 -11
- package/types/primeng-icons-search.d.ts +8 -11
- package/types/primeng-icons-searchminus.d.ts +8 -11
- package/types/primeng-icons-searchplus.d.ts +8 -11
- package/types/primeng-icons-sortalt.d.ts +8 -11
- package/types/primeng-icons-sortamountdown.d.ts +8 -11
- package/types/primeng-icons-sortamountupalt.d.ts +8 -11
- package/types/primeng-icons-spinner.d.ts +8 -11
- package/types/primeng-icons-star.d.ts +8 -11
- package/types/primeng-icons-starfill.d.ts +8 -11
- package/types/primeng-icons-thlarge.d.ts +8 -11
- package/types/primeng-icons-times.d.ts +6 -9
- package/types/primeng-icons-timescircle.d.ts +8 -11
- package/types/primeng-icons-trash.d.ts +8 -11
- package/types/primeng-icons-undo.d.ts +8 -11
- package/types/primeng-icons-upload.d.ts +8 -11
- package/types/primeng-icons-windowmaximize.d.ts +8 -11
- package/types/primeng-icons-windowminimize.d.ts +8 -11
- package/types/primeng-icons.d.ts +53 -53
- package/types/primeng-iftalabel.d.ts +38 -40
- package/types/primeng-image.d.ts +404 -311
- package/types/primeng-imagecompare.d.ts +94 -80
- package/types/primeng-inplace.d.ts +126 -114
- package/types/primeng-inputcolor.d.ts +645 -508
- package/types/primeng-inputgroup.d.ts +42 -44
- package/types/primeng-inputgroupaddon.d.ts +31 -31
- package/types/primeng-inputicon.d.ts +38 -32
- package/types/primeng-inputmask.d.ts +520 -365
- package/types/primeng-inputnumber.d.ts +573 -408
- package/types/primeng-inputotp.d.ts +206 -159
- package/types/primeng-inputpassword.d.ts +60 -47
- package/types/primeng-inputtags.d.ts +453 -301
- package/types/primeng-inputtext.d.ts +130 -96
- package/types/primeng-keyfilter.d.ts +62 -53
- package/types/primeng-knob.d.ts +257 -186
- package/types/primeng-label.d.ts +37 -39
- package/types/primeng-license.d.ts +1 -3
- package/types/primeng-listbox.d.ts +1040 -786
- package/types/primeng-megamenu.d.ts +536 -386
- package/types/primeng-menu.d.ts +478 -363
- package/types/primeng-menubar.d.ts +495 -354
- package/types/primeng-message.d.ts +192 -151
- package/types/primeng-metergroup.d.ts +249 -189
- package/types/primeng-motion.d.ts +601 -385
- package/types/primeng-multiselect.d.ts +1193 -861
- package/types/primeng-orderlist.d.ts +539 -393
- package/types/primeng-organizationchart.d.ts +236 -195
- package/types/primeng-overlay.d.ts +394 -294
- package/types/primeng-overlaybadge.d.ts +95 -64
- package/types/primeng-paginator.d.ts +410 -314
- package/types/primeng-panel.d.ts +267 -217
- package/types/primeng-panelmenu.d.ts +255 -231
- package/types/primeng-passthrough.d.ts +5 -7
- package/types/primeng-password.d.ts +606 -433
- package/types/primeng-picklist.d.ts +1042 -759
- package/types/primeng-popover.d.ts +235 -176
- package/types/primeng-progressbar.d.ts +131 -102
- package/types/primeng-progressspinner.d.ts +145 -111
- package/types/primeng-radiobutton.d.ts +219 -171
- package/types/primeng-rating.d.ts +240 -192
- package/types/primeng-ripple.d.ts +39 -45
- package/types/primeng-scrollarea.d.ts +292 -243
- package/types/primeng-scroller.d.ts +523 -390
- package/types/primeng-scrollpanel.d.ts +135 -131
- package/types/primeng-scrolltop.d.ts +170 -126
- package/types/primeng-select.d.ts +1014 -741
- package/types/primeng-selectbutton.d.ts +239 -167
- package/types/primeng-sidebar.d.ts +793 -562
- package/types/primeng-skeleton.d.ts +116 -87
- package/types/primeng-slider.d.ts +378 -311
- package/types/primeng-speeddial.d.ts +495 -375
- package/types/primeng-splitbutton.d.ts +382 -243
- package/types/primeng-splitter.d.ts +392 -301
- package/types/primeng-stepper.d.ts +417 -257
- package/types/primeng-steps.d.ts +158 -137
- package/types/primeng-styleclass.d.ts +163 -105
- package/types/primeng-table.d.ts +2898 -1912
- package/types/primeng-tabs.d.ts +463 -307
- package/types/primeng-tag.d.ts +107 -88
- package/types/primeng-terminal.d.ts +132 -120
- package/types/primeng-textarea.d.ts +146 -110
- package/types/primeng-tieredmenu.d.ts +573 -401
- package/types/primeng-timeline.d.ts +126 -112
- package/types/primeng-toast.d.ts +313 -252
- package/types/primeng-togglebutton.d.ts +255 -185
- package/types/primeng-toggleswitch.d.ts +190 -144
- package/types/primeng-toolbar.d.ts +83 -79
- package/types/primeng-tooltip.d.ts +335 -235
- package/types/primeng-tree.d.ts +763 -562
- package/types/primeng-treeselect.d.ts +750 -544
- package/types/primeng-treetable.d.ts +1839 -1315
- package/types/primeng-ts-helpers.d.ts +4 -6
- package/types/primeng-types-accordion.d.ts +58 -62
- package/types/primeng-types-autocomplete.d.ts +230 -233
- package/types/primeng-types-avatar.d.ts +25 -28
- package/types/primeng-types-avatargroup.d.ts +11 -14
- package/types/primeng-types-badge.d.ts +13 -16
- package/types/primeng-types-blockui.d.ts +18 -21
- package/types/primeng-types-breadcrumb.d.ts +65 -68
- package/types/primeng-types-button.d.ts +106 -109
- package/types/primeng-types-card.d.ts +54 -57
- package/types/primeng-types-carousel.d.ts +143 -146
- package/types/primeng-types-cascadeselect.d.ts +186 -192
- package/types/primeng-types-chart.d.ts +34 -39
- package/types/primeng-types-checkbox.d.ts +52 -55
- package/types/primeng-types-chip.d.ts +48 -51
- package/types/primeng-types-colorpicker.d.ts +59 -62
- package/types/primeng-types-commandmenu.d.ts +98 -101
- package/types/primeng-types-compare.d.ts +33 -36
- package/types/primeng-types-confirmdialog.d.ts +124 -127
- package/types/primeng-types-confirmpopup.d.ts +75 -78
- package/types/primeng-types-contextmenu.d.ts +100 -103
- package/types/primeng-types-dataview.d.ts +180 -183
- package/types/primeng-types-datepicker.d.ts +442 -445
- package/types/primeng-types-dialog.d.ts +93 -96
- package/types/primeng-types-divider.d.ts +14 -17
- package/types/primeng-types-dock.d.ts +45 -48
- package/types/primeng-types-drawer.d.ts +62 -65
- package/types/primeng-types-editor.d.ts +143 -146
- package/types/primeng-types-fieldset.d.ts +83 -87
- package/types/primeng-types-fileupload.d.ts +296 -301
- package/types/primeng-types-floatlabel.d.ts +12 -15
- package/types/primeng-types-fluid.d.ts +11 -14
- package/types/primeng-types-galleria.d.ts +209 -212
- package/types/primeng-types-gallery.d.ts +195 -198
- package/types/primeng-types-iconfield.d.ts +12 -15
- package/types/primeng-types-iftalabel.d.ts +11 -14
- package/types/primeng-types-image.d.ts +118 -121
- package/types/primeng-types-imagecompare.d.ts +22 -25
- package/types/primeng-types-inplace.d.ts +46 -49
- package/types/primeng-types-inputcolor.d.ts +86 -89
- package/types/primeng-types-inputgroup.d.ts +11 -14
- package/types/primeng-types-inputgroupaddon.d.ts +11 -14
- package/types/primeng-types-inputicon.d.ts +11 -14
- package/types/primeng-types-inputmask.d.ts +30 -33
- package/types/primeng-types-inputnumber.d.ts +72 -75
- package/types/primeng-types-inputotp.d.ts +67 -70
- package/types/primeng-types-inputpassword.d.ts +7 -10
- package/types/primeng-types-inputtags.d.ts +122 -125
- package/types/primeng-types-inputtext.d.ts +7 -10
- package/types/primeng-types-knob.d.ts +23 -26
- package/types/primeng-types-label.d.ts +7 -10
- package/types/primeng-types-listbox.d.ts +262 -266
- package/types/primeng-types-megamenu.d.ts +135 -138
- package/types/primeng-types-menu.d.ts +98 -101
- package/types/primeng-types-menubar.d.ts +122 -125
- package/types/primeng-types-message.d.ts +69 -72
- package/types/primeng-types-metergroup.d.ts +137 -140
- package/types/primeng-types-motion.d.ts +11 -14
- package/types/primeng-types-multiselect.d.ts +329 -333
- package/types/primeng-types-orderlist.d.ts +126 -129
- package/types/primeng-types-organizationchart.d.ts +147 -153
- package/types/primeng-types-overlay.d.ts +31 -34
- package/types/primeng-types-overlaybadge.d.ts +17 -20
- package/types/primeng-types-paginator.d.ts +131 -134
- package/types/primeng-types-panel.d.ts +91 -95
- package/types/primeng-types-panelmenu.d.ts +150 -153
- package/types/primeng-types-password.d.ts +94 -97
- package/types/primeng-types-picklist.d.ts +250 -260
- package/types/primeng-types-popover.d.ts +33 -36
- package/types/primeng-types-progressbar.d.ts +33 -36
- package/types/primeng-types-progressspinner.d.ts +27 -30
- package/types/primeng-types-radiobutton.d.ts +29 -32
- package/types/primeng-types-rating.d.ts +62 -65
- package/types/primeng-types-scrollarea.d.ts +35 -38
- package/types/primeng-types-scroller.d.ts +142 -146
- package/types/primeng-types-scrollpanel.d.ts +31 -34
- package/types/primeng-types-scrolltop.d.ts +37 -40
- package/types/primeng-types-select.d.ts +251 -254
- package/types/primeng-types-selectbutton.d.ts +56 -59
- package/types/primeng-types-shared.d.ts +6 -9
- package/types/primeng-types-sidebar.d.ts +105 -108
- package/types/primeng-types-skeleton.d.ts +11 -14
- package/types/primeng-types-slider.d.ts +59 -62
- package/types/primeng-types-speeddial.d.ts +71 -74
- package/types/primeng-types-splitbutton.d.ts +35 -38
- package/types/primeng-types-splitter.d.ts +58 -63
- package/types/primeng-types-stepper.d.ts +77 -80
- package/types/primeng-types-table.d.ts +743 -749
- package/types/primeng-types-tabs.d.ts +48 -51
- package/types/primeng-types-tag.d.ts +27 -30
- package/types/primeng-types-terminal.d.ts +43 -46
- package/types/primeng-types-textarea.d.ts +11 -14
- package/types/primeng-types-tieredmenu.d.ts +154 -157
- package/types/primeng-types-timeline.d.ts +60 -63
- package/types/primeng-types-toast.d.ts +92 -95
- package/types/primeng-types-togglebutton.d.ts +52 -55
- package/types/primeng-types-toggleswitch.d.ts +41 -44
- package/types/primeng-types-toolbar.d.ts +34 -37
- package/types/primeng-types-tooltip.d.ts +17 -20
- package/types/primeng-types-tree.d.ts +237 -246
- package/types/primeng-types-treeselect.d.ts +198 -202
- package/types/primeng-types-treetable.d.ts +492 -497
- package/types/primeng-usestyle.d.ts +28 -31
- package/types/primeng-utils.d.ts +37 -40
- package/types/primeng.d.ts +2 -2
- package/fesm2022/primeng-icons.mjs.map +0 -1
- package/fesm2022/primeng-ts-helpers.mjs.map +0 -1
- package/fesm2022/primeng-types-accordion.mjs.map +0 -1
- package/fesm2022/primeng-types-autocomplete.mjs.map +0 -1
- package/fesm2022/primeng-types-avatar.mjs.map +0 -1
- package/fesm2022/primeng-types-avatargroup.mjs.map +0 -1
- package/fesm2022/primeng-types-badge.mjs.map +0 -1
- package/fesm2022/primeng-types-blockui.mjs.map +0 -1
- package/fesm2022/primeng-types-breadcrumb.mjs.map +0 -1
- package/fesm2022/primeng-types-button.mjs.map +0 -1
- package/fesm2022/primeng-types-card.mjs.map +0 -1
- package/fesm2022/primeng-types-carousel.mjs.map +0 -1
- package/fesm2022/primeng-types-cascadeselect.mjs.map +0 -1
- package/fesm2022/primeng-types-chart.mjs.map +0 -1
- package/fesm2022/primeng-types-checkbox.mjs.map +0 -1
- package/fesm2022/primeng-types-chip.mjs.map +0 -1
- package/fesm2022/primeng-types-colorpicker.mjs.map +0 -1
- package/fesm2022/primeng-types-commandmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-compare.mjs.map +0 -1
- package/fesm2022/primeng-types-confirmdialog.mjs.map +0 -1
- package/fesm2022/primeng-types-confirmpopup.mjs.map +0 -1
- package/fesm2022/primeng-types-contextmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-dataview.mjs.map +0 -1
- package/fesm2022/primeng-types-datepicker.mjs.map +0 -1
- package/fesm2022/primeng-types-dialog.mjs.map +0 -1
- package/fesm2022/primeng-types-divider.mjs.map +0 -1
- package/fesm2022/primeng-types-dock.mjs.map +0 -1
- package/fesm2022/primeng-types-drawer.mjs.map +0 -1
- package/fesm2022/primeng-types-editor.mjs.map +0 -1
- package/fesm2022/primeng-types-fieldset.mjs.map +0 -1
- package/fesm2022/primeng-types-fileupload.mjs.map +0 -1
- package/fesm2022/primeng-types-floatlabel.mjs.map +0 -1
- package/fesm2022/primeng-types-fluid.mjs.map +0 -1
- package/fesm2022/primeng-types-galleria.mjs.map +0 -1
- package/fesm2022/primeng-types-gallery.mjs.map +0 -1
- package/fesm2022/primeng-types-iconfield.mjs.map +0 -1
- package/fesm2022/primeng-types-iftalabel.mjs.map +0 -1
- package/fesm2022/primeng-types-image.mjs.map +0 -1
- package/fesm2022/primeng-types-imagecompare.mjs.map +0 -1
- package/fesm2022/primeng-types-inplace.mjs.map +0 -1
- package/fesm2022/primeng-types-inputcolor.mjs.map +0 -1
- package/fesm2022/primeng-types-inputgroup.mjs.map +0 -1
- package/fesm2022/primeng-types-inputgroupaddon.mjs.map +0 -1
- package/fesm2022/primeng-types-inputicon.mjs.map +0 -1
- package/fesm2022/primeng-types-inputmask.mjs.map +0 -1
- package/fesm2022/primeng-types-inputnumber.mjs.map +0 -1
- package/fesm2022/primeng-types-inputotp.mjs.map +0 -1
- package/fesm2022/primeng-types-inputpassword.mjs.map +0 -1
- package/fesm2022/primeng-types-inputtags.mjs.map +0 -1
- package/fesm2022/primeng-types-inputtext.mjs.map +0 -1
- package/fesm2022/primeng-types-knob.mjs.map +0 -1
- package/fesm2022/primeng-types-label.mjs.map +0 -1
- package/fesm2022/primeng-types-listbox.mjs.map +0 -1
- package/fesm2022/primeng-types-megamenu.mjs.map +0 -1
- package/fesm2022/primeng-types-menu.mjs.map +0 -1
- package/fesm2022/primeng-types-menubar.mjs.map +0 -1
- package/fesm2022/primeng-types-message.mjs.map +0 -1
- package/fesm2022/primeng-types-metergroup.mjs.map +0 -1
- package/fesm2022/primeng-types-motion.mjs.map +0 -1
- package/fesm2022/primeng-types-multiselect.mjs.map +0 -1
- package/fesm2022/primeng-types-orderlist.mjs.map +0 -1
- package/fesm2022/primeng-types-organizationchart.mjs.map +0 -1
- package/fesm2022/primeng-types-overlay.mjs.map +0 -1
- package/fesm2022/primeng-types-overlaybadge.mjs.map +0 -1
- package/fesm2022/primeng-types-paginator.mjs.map +0 -1
- package/fesm2022/primeng-types-panel.mjs.map +0 -1
- package/fesm2022/primeng-types-panelmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-password.mjs.map +0 -1
- package/fesm2022/primeng-types-picklist.mjs.map +0 -1
- package/fesm2022/primeng-types-popover.mjs.map +0 -1
- package/fesm2022/primeng-types-progressbar.mjs.map +0 -1
- package/fesm2022/primeng-types-progressspinner.mjs.map +0 -1
- package/fesm2022/primeng-types-radiobutton.mjs.map +0 -1
- package/fesm2022/primeng-types-rating.mjs.map +0 -1
- package/fesm2022/primeng-types-scrollarea.mjs.map +0 -1
- package/fesm2022/primeng-types-scroller.mjs.map +0 -1
- package/fesm2022/primeng-types-scrollpanel.mjs.map +0 -1
- package/fesm2022/primeng-types-scrolltop.mjs.map +0 -1
- package/fesm2022/primeng-types-select.mjs.map +0 -1
- package/fesm2022/primeng-types-selectbutton.mjs.map +0 -1
- package/fesm2022/primeng-types-shared.mjs.map +0 -1
- package/fesm2022/primeng-types-sidebar.mjs.map +0 -1
- package/fesm2022/primeng-types-skeleton.mjs.map +0 -1
- package/fesm2022/primeng-types-slider.mjs.map +0 -1
- package/fesm2022/primeng-types-speeddial.mjs.map +0 -1
- package/fesm2022/primeng-types-splitbutton.mjs.map +0 -1
- package/fesm2022/primeng-types-splitter.mjs.map +0 -1
- package/fesm2022/primeng-types-stepper.mjs.map +0 -1
- package/fesm2022/primeng-types-table.mjs.map +0 -1
- package/fesm2022/primeng-types-tabs.mjs.map +0 -1
- package/fesm2022/primeng-types-tag.mjs.map +0 -1
- package/fesm2022/primeng-types-terminal.mjs.map +0 -1
- package/fesm2022/primeng-types-textarea.mjs.map +0 -1
- package/fesm2022/primeng-types-tieredmenu.mjs.map +0 -1
- package/fesm2022/primeng-types-timeline.mjs.map +0 -1
- package/fesm2022/primeng-types-toast.mjs.map +0 -1
- package/fesm2022/primeng-types-togglebutton.mjs.map +0 -1
- package/fesm2022/primeng-types-toggleswitch.mjs.map +0 -1
- package/fesm2022/primeng-types-toolbar.mjs.map +0 -1
- package/fesm2022/primeng-types-tooltip.mjs.map +0 -1
- package/fesm2022/primeng-types-tree.mjs.map +0 -1
- package/fesm2022/primeng-types-treeselect.mjs.map +0 -1
- package/fesm2022/primeng-types-treetable.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-fileupload.mjs","sources":["../../src/fileupload/fileupload-token.ts","../../src/fileupload/style/fileuploadstyle.ts","../../src/fileupload/file-content.ts","../../src/fileupload/fileupload.ts","../../src/fileupload/primeng-fileupload.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FILEUPLOAD_INSTANCE = new InjectionToken<any>('FILEUPLOAD_INSTANCE');\n","import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/fileupload';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => `p-fileupload p-fileupload-${instance.mode()} p-component`,\n header: 'p-fileupload-header',\n pcChooseButton: 'p-fileupload-choose-button',\n pcUploadButton: 'p-fileupload-upload-button',\n pcCancelButton: 'p-fileupload-cancel-button',\n content: 'p-fileupload-content',\n fileList: 'p-fileupload-file-list',\n file: 'p-fileupload-file',\n fileThumbnail: 'p-fileupload-file-thumbnail',\n fileInfo: 'p-fileupload-file-info',\n fileName: 'p-fileupload-file-name',\n fileSize: 'p-fileupload-file-size',\n pcFileBadge: 'p-fileupload-file-badge',\n fileActions: 'p-fileupload-file-actions',\n pcFileRemoveButton: 'p-fileupload-file-remove-button',\n basicContent: 'p-fileupload-basic-content'\n};\n\n@Injectable()\nexport class FileUploadStyle extends BaseStyle {\n name = 'fileupload';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.\n *\n * [Live Demo](https://www.primeng.org/fileupload/)\n *\n * @module fileuploadstyle\n *\n */\n\nexport enum FileUploadClasses {\n /**\n * Class name of the root element\n */\n root = 'p-fileupload',\n /**\n * Class name of the header element\n */\n header = 'p-fileupload-header',\n /**\n * Class name of the choose button element\n */\n pcChooseButton = 'p-fileupload-choose-button',\n /**\n * Class name of the upload button element\n */\n pcUploadButton = 'p-fileupload-upload-button',\n /**\n * Class name of the cancel button element\n */\n pcCancelButton = 'p-fileupload-cancel-button',\n /**\n * Class name of the content element\n */\n content = 'p-fileupload-content',\n /**\n * Class name of the file list element\n */\n fileList = 'p-fileupload-file-list',\n /**\n * Class name of the file element\n */\n file = 'p-fileupload-file',\n /**\n * Class name of the file thumbnail element\n */\n fileThumbnail = 'p-fileupload-file-thumbnail',\n /**\n * Class name of the file info element\n */\n fileInfo = 'p-fileupload-file-info',\n /**\n * Class name of the file name element\n */\n fileName = 'p-fileupload-file-name',\n /**\n * Class name of the file size element\n */\n fileSize = 'p-fileupload-file-size',\n /**\n * Class name of the file badge element\n */\n pcFileBadge = 'p-fileupload-file-badge',\n /**\n * Class name of the file actions element\n */\n fileActions = 'p-fileupload-file-actions',\n /**\n * Class name of the file remove button element\n */\n pcFileRemoveButton = 'p-fileupload-file-remove-button',\n /**\n * Class name of the content in basic mode\n */\n basicContent = 'p-fileupload-basic-content'\n}\n\nexport interface FileUploadStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, output, TemplateRef } from '@angular/core';\nimport { TranslationKeys } from 'primeng/api';\nimport { Badge } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport { Times as TimesIcon } from '@primeicons/angular/times';\nimport { FileContentRemoveEvent, FileRemoveIconTemplateContext } from 'primeng/types/fileupload';\nimport type { FileUpload } from './fileupload';\nimport { FILEUPLOAD_INSTANCE } from './fileupload-token';\nimport { FileUploadStyle } from './style/fileuploadstyle';\nimport { BadgeSeverity } from 'primeng/types/badge';\nimport type { SafeUrl } from '@angular/platform-browser';\n\ntype FileWithObjectURL = File & { objectURL?: SafeUrl };\n\n@Component({\n selector: '[pFileContent]',\n standalone: true,\n template: `@for (file of files(); track file?.name + '-' + $index; let index = $index) {\n <div [class]=\"cx('file')\" [pBind]=\"$pcFileUpload.ptm('file')\">\n <img role=\"presentation\" [class]=\"cx('fileThumbnail')\" [attr.alt]=\"file.name\" [src]=\"file.objectURL\" [width]=\"previewWidth()\" [pBind]=\"$pcFileUpload.ptm('fileThumbnail')\" />\n <div [class]=\"cx('fileInfo')\" [pBind]=\"$pcFileUpload.ptm('fileInfo')\">\n <div [class]=\"cx('fileName')\" [pBind]=\"$pcFileUpload.ptm('fileName')\">{{ file.name }}</div>\n <span [class]=\"cx('fileSize')\" [pBind]=\"$pcFileUpload.ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n </div>\n <p-badge [value]=\"badgeValue()\" [severity]=\"badgeSeverity()\" [class]=\"cx('pcFileBadge')\" [pt]=\"$pcFileUpload.ptm('pcFileBadge')\" [unstyled]=\"unstyled()\" />\n <div [class]=\"cx('fileActions')\" [pBind]=\"$pcFileUpload.ptm('fileActions')\">\n <button type=\"button\" iconOnly pButton text rounded severity=\"danger\" [class]=\"cx('pcFileRemoveButton')\" [pButtonPT]=\"$pcFileUpload.ptm('pcFileRemoveButton')\" [pButtonUnstyled]=\"unstyled()\" (click)=\"onRemoveClick($event, index)\">\n @if (fileRemoveIconTemplate()) {\n <ng-template *ngTemplateOutlet=\"fileRemoveIconTemplate(); context: getRemoveIconContext('', file, index)\"></ng-template>\n } @else {\n <svg data-p-icon=\"times\" [attr.aria-hidden]=\"true\" />\n }\n </button>\n </div>\n </div>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [FileUploadStyle],\n imports: [NgTemplateOutlet, Badge, ButtonDirective, TimesIcon, Bind]\n})\nexport class FileContent extends BaseComponent {\n _componentStyle = inject(FileUploadStyle);\n\n $pcFileUpload = inject<FileUpload>(FILEUPLOAD_INSTANCE);\n\n onRemove = output<FileContentRemoveEvent>();\n\n files = input<FileWithObjectURL[]>();\n\n badgeSeverity = input<BadgeSeverity>('warn');\n\n badgeValue = input<string>();\n\n previewWidth = input<number>(50);\n\n fileRemoveIconTemplate = input<TemplateRef<unknown>>();\n\n onRemoveClick(event: Event, index: number) {\n this.onRemove.emit({ event, index });\n }\n\n getRemoveIconContext(iconClass: string, file: File, index: number): FileRemoveIconTemplateContext {\n return { class: iconClass, file, index };\n }\n\n formatSize(bytes: number) {\n const k = 1024;\n const dm = 3;\n const sizes = this.translate(TranslationKeys.FILE_SIZE_TYPES);\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);\n\n return `${formattedSize} ${sizes[i]}`;\n }\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { HttpClient, HttpEvent, HttpEventType, HttpHeaders } from '@angular/common/http';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, input, NgModule, numberAttribute, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { addClass, removeClass } from '@primeuix/utils';\nimport { BlockableUI, SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport type { ButtonDirectiveOptions } from 'primeng/types/button';\nimport { Plus as PlusIcon } from '@primeicons/angular/plus';\nimport { Times as TimesIcon } from '@primeicons/angular/times';\nimport { Upload as UploadIcon } from '@primeicons/angular/upload';\nimport { Message } from 'primeng/message';\nimport { ProgressBar } from 'primeng/progressbar';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport {\n FileBeforeUploadEvent,\n FileContentRemoveEvent,\n FileProgressEvent,\n FileRemoveEvent,\n FileSelectEvent,\n FileSendEvent,\n FileUploadContentTemplateContext,\n FileUploadErrorEvent,\n FileUploadEvent,\n FileUploadFileLabelTemplateContext,\n FileUploadFileTemplateContext,\n FileUploadHandlerEvent,\n FileUploadHeaderTemplateContext,\n FileUploadMessage,\n FileUploadPassThrough,\n RemoveUploadedFileEvent\n} from 'primeng/types/fileupload';\nimport { Subscription } from 'rxjs';\nimport { FileContent } from './file-content';\nimport { FILEUPLOAD_INSTANCE } from './fileupload-token';\nimport { FileUploadStyle } from './style/fileuploadstyle';\n\n/**\n * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.\n * @group Components\n */\n@Component({\n selector: 'p-fileupload',\n standalone: true,\n imports: [NgTemplateOutlet, ButtonDirective, ProgressBar, Message, PlusIcon, UploadIcon, TimesIcon, SharedModule, FileContent, Bind],\n template: `\n @if (isAdvancedMode()) {\n <div [class]=\"cn(cx('root'), styleClass())\" [style]=\"style()\" [pBind]=\"ptm('root')\">\n <input [attr.aria-label]=\"browseFilesLabel\" #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple()\" [accept]=\"accept()\" [disabled]=\"chooseButtonDisabled()\" [attr.title]=\"''\" [pBind]=\"ptm('input')\" />\n <div [class]=\"cx('header')\" [pBind]=\"ptm('header')\">\n @if (!headerTemplate()) {\n <button\n type=\"button\"\n [pButton]=\"chooseButtonProps()\"\n [disabled]=\"chooseButtonDisabled()\"\n [class]=\"cn(cx('pcChooseButton'), chooseStyleClass())\"\n [pButtonPT]=\"ptm('pcChooseButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (click)=\"choose()\"\n (keydown.enter)=\"choose()\"\n >\n @if (chooseIcon()) {\n <span [class]=\"chooseIcon()\" [attr.aria-label]=\"true\" [pBind]=\"ptm('pcChooseButton')?.icon\"></span>\n } @else {\n @if (!chooseIconTemplate()) {\n <svg data-p-icon=\"plus\" [attr.aria-label]=\"true\" [pBind]=\"ptm('pcChooseButton')?.icon\" />\n } @else {\n <span [attr.aria-label]=\"true\" [pBind]=\"ptm('pcChooseButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"chooseIconTemplate()\"></ng-container>\n </span>\n }\n }\n {{ chooseButtonLabel }}\n </button>\n\n @if (showUploadBtn()) {\n <button\n type=\"button\"\n [pButton]=\"uploadButtonProps()\"\n [disabled]=\"uploadButtonDisabled()\"\n [class]=\"cn(cx('pcUploadButton'), uploadStyleClass())\"\n [pButtonPT]=\"ptm('pcUploadButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"upload()\"\n >\n @if (uploadIcon()) {\n <span [class]=\"uploadIcon()\" [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcUploadButton')?.icon\"></span>\n } @else {\n @if (!uploadIconTemplate()) {\n <svg data-p-icon=\"upload\" [pBind]=\"ptm('pcUploadButton')?.icon\" />\n } @else {\n <span [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcUploadButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"uploadIconTemplate()\"></ng-container>\n </span>\n }\n }\n {{ uploadButtonLabel }}\n </button>\n }\n @if (showCancelBtn()) {\n <button\n type=\"button\"\n [pButton]=\"cancelButtonProps()\"\n [disabled]=\"cancelButtonDisabled()\"\n [class]=\"cn(cx('pcCancelButton'), cancelStyleClass())\"\n [pButtonPT]=\"ptm('pcCancelButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"clear()\"\n >\n @if (cancelIcon()) {\n <span [class]=\"cancelIcon()\" [pBind]=\"ptm('pcCancelButton')?.icon\"></span>\n } @else {\n @if (!cancelIconTemplate()) {\n <svg data-p-icon=\"times\" [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcCancelButton')?.icon\" />\n } @else {\n <span [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcCancelButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"cancelIconTemplate()\"></ng-container>\n </span>\n }\n }\n {{ cancelButtonLabel }}\n </button>\n }\n }\n <ng-container *ngTemplateOutlet=\"headerTemplate(); context: headerTemplateContext\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarTemplate()\"></ng-container>\n </div>\n <div #content [class]=\"cx('content')\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\" [pBind]=\"ptm('content')\">\n @if (contentTemplate()) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: contentTemplateContext\"></ng-container>\n } @else {\n @if (hasFiles()) {\n <p-progressbar [value]=\"progress()\" [showValue]=\"false\" [pt]=\"ptm('pcProgressBar')\"></p-progressbar>\n }\n @for (message of msgs(); track $index) {\n <p-message [severity]=\"message.severity\" [pt]=\"ptm('pcMessage')\" [unstyled]=\"unstyled()\">{{ message.text }}</p-message>\n }\n\n @if (hasFiles()) {\n <div [class]=\"cx('fileList')\" [pBind]=\"ptm('fileList')\">\n @if (fileTemplate()) {\n @for (file of files; track file.name) {\n <ng-container *ngTemplateOutlet=\"fileTemplate(); context: getFileTemplateContext(file)\"></ng-container>\n }\n } @else {\n <div pFileContent [unstyled]=\"unstyled()\" [files]=\"files\" (onRemove)=\"onRemoveClick($event)\" [badgeValue]=\"pendingLabel\" [previewWidth]=\"previewWidth()\" [fileRemoveIconTemplate]=\"cancelIconTemplate()\"></div>\n }\n </div>\n }\n @if (hasUploadedFiles()) {\n <div [class]=\"cx('fileList')\" [pBind]=\"ptm('fileList')\">\n @if (fileTemplate()) {\n @for (file of uploadedFiles(); track file.name) {\n <ng-container *ngTemplateOutlet=\"fileTemplate(); context: getFileTemplateContext(file)\"></ng-container>\n }\n } @else {\n <div\n pFileContent\n [unstyled]=\"unstyled()\"\n [files]=\"uploadedFiles()\"\n (onRemove)=\"onRemoveUploadedFileClick($event)\"\n [badgeValue]=\"completedLabel()\"\n badgeSeverity=\"success\"\n [previewWidth]=\"previewWidth()\"\n [fileRemoveIconTemplate]=\"cancelIconTemplate()\"\n ></div>\n }\n </div>\n }\n }\n @if (showEmpty()) {\n <ng-container *ngTemplateOutlet=\"emptyTemplate()\" [pBind]=\"ptm('empty')\"></ng-container>\n }\n </div>\n </div>\n }\n @if (isBasicMode()) {\n <div [class]=\"cn(cx('root'), styleClass())\" [pBind]=\"ptm('root')\">\n @for (message of msgs(); track $index) {\n <p-message [severity]=\"message.severity\" [pt]=\"ptm('pcMessage')\" [unstyled]=\"unstyled()\">{{ message.text }}</p-message>\n }\n\n <div [class]=\"cx('basicContent')\" [pBind]=\"ptm('basicContent')\">\n <button\n type=\"button\"\n [pButton]=\"chooseButtonProps()\"\n [disabled]=\"disabled()\"\n [class]=\"cn(cx('pcChooseButton'), chooseStyleClass())\"\n [style]=\"style()\"\n [pButtonPT]=\"ptm('pcChooseButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"onBasicUploaderClick()\"\n (keydown)=\"onBasicKeydown($event)\"\n >\n @if (hasFiles() && !auto()) {\n @if (uploadIcon()) {\n <span [class]=\"cn('p-button-icon p-button-icon-left', uploadIcon())\" [pBind]=\"ptm('pcChooseButton')?.icon\"></span>\n } @else {\n @if (!uploadIconTemplate()) {\n <svg data-p-icon=\"upload\" [class]=\"'p-button-icon p-button-icon-left'\" [pBind]=\"ptm('pcChooseButton')?.icon\" />\n } @else {\n <span class=\"p-button-icon p-button-icon-left\" [pBind]=\"ptm('pcChooseButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"uploadIconTemplate()\"></ng-container>\n </span>\n }\n }\n } @else {\n @if (chooseIcon()) {\n <span [class]=\"cn('p-button-icon p-button-icon-left pi', chooseIcon())\" [pBind]=\"ptm('pcChooseButton')?.icon\"></span>\n } @else {\n @if (!chooseIconTemplate()) {\n <svg data-p-icon=\"plus\" [pBind]=\"ptm('pcChooseButton')?.icon\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"chooseIconTemplate()\"></ng-container>\n }\n }\n }\n {{ chooseButtonLabel }}\n </button>\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #basicfileinput\n type=\"file\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"disabled()\"\n (change)=\"onFileSelect($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [pBind]=\"ptm('input')\"\n />\n @if (!auto()) {\n @if (!fileLabelTemplate()) {\n <span>\n {{ basicFileChosenLabel() }}\n </span>\n } @else {\n <ng-container *ngTemplateOutlet=\"fileLabelTemplate(); context: fileLabelTemplateContext\"></ng-container>\n }\n }\n </div>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [FileUploadStyle, { provide: FILEUPLOAD_INSTANCE, useExisting: FileUpload }, { provide: PARENT_INSTANCE, useExisting: FileUpload }],\n hostDirectives: [Bind]\n})\nexport class FileUpload extends BaseComponent<FileUploadPassThrough> implements BlockableUI {\n componentName = 'FileUpload';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n }\n\n /**\n * Name of the request parameter to identify the files at backend.\n * @group Props\n */\n name = input<string>();\n /**\n * Remote url to upload the files.\n * @group Props\n */\n url = input<string>();\n /**\n * HTTP method to send the files to the url such as \"post\" and \"put\".\n * @group Props\n */\n method = input<'post' | 'put'>('post');\n /**\n * Used to select multiple files at once from file dialog.\n * @group Props\n */\n multiple = input(false, { transform: booleanAttribute });\n /**\n * 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\").\n * @group Props\n */\n accept = input<string>();\n /**\n * Disables the upload functionality.\n * @group Props\n */\n disabled = input(false, { transform: booleanAttribute });\n /**\n * When enabled, upload begins automatically after selection is completed.\n * @group Props\n */\n auto = input(false, { transform: booleanAttribute });\n /**\n * Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.\n * @group Props\n */\n withCredentials = input(false, { transform: booleanAttribute });\n /**\n * Maximum file size allowed in bytes.\n * @group Props\n */\n maxFileSize = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Summary message of the invalid file size.\n * @group Props\n */\n invalidFileSizeMessageSummary = input('{0}: Invalid file size, ');\n /**\n * Detail message of the invalid file size.\n * @group Props\n */\n invalidFileSizeMessageDetail = input('maximum upload size is {0}.');\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n invalidFileTypeMessageSummary = input('{0}: Invalid file type, ');\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n invalidFileTypeMessageDetail = input('allowed file types: {0}.');\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n invalidFileLimitMessageDetail = input('limit is {0} at most.');\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n invalidFileLimitMessageSummary = input('Maximum number of files exceeded, ');\n /**\n * Inline style of the element.\n * @group Props\n */\n style = input<CSSProperties>();\n /**\n * Class of the element.\n * @group Props\n */\n styleClass = input<string>();\n /**\n * Width of the image thumbnail in pixels.\n * @group Props\n */\n previewWidth = input(50, { transform: numberAttribute });\n /**\n * Label of the choose button. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n chooseLabel = input<string>();\n /**\n * Label of the upload button. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n uploadLabel = input<string>();\n /**\n * Label of the cancel button. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n cancelLabel = input<string>();\n /**\n * Icon of the choose button.\n * @group Props\n */\n chooseIcon = input<string>();\n /**\n * Icon of the upload button.\n * @group Props\n */\n uploadIcon = input<string>();\n /**\n * Icon of the cancel button.\n * @group Props\n */\n cancelIcon = input<string>();\n /**\n * Whether to show the upload button.\n * @group Props\n */\n showUploadButton = input(true, { transform: booleanAttribute });\n /**\n * Whether to show the cancel button.\n * @group Props\n */\n showCancelButton = input(true, { transform: booleanAttribute });\n /**\n * Defines the UI of the component.\n * @group Props\n */\n mode = input<'advanced' | 'basic'>('advanced');\n /**\n * HttpHeaders class represents the header configuration options for an HTTP request.\n * @group Props\n */\n headers = input<HttpHeaders>();\n /**\n * Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n customUpload = input(false, { transform: booleanAttribute });\n /**\n * Maximum number of files that can be uploaded.\n * @group Props\n */\n fileLimit = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Style class of the upload button.\n * @group Props\n */\n uploadStyleClass = input<string>();\n /**\n * Style class of the cancel button.\n * @group Props\n */\n cancelStyleClass = input<string>();\n /**\n * Style class of the remove button.\n * @group Props\n */\n removeStyleClass = input<string>();\n /**\n * Style class of the choose button.\n * @group Props\n */\n chooseStyleClass = input<string>();\n /**\n * Configuration object forwarded to the choose button.\n * @group Props\n */\n chooseButtonProps = input<ButtonDirectiveOptions>();\n /**\n * Configuration object forwarded to the upload button.\n * @group Props\n */\n uploadButtonProps = input<ButtonDirectiveOptions>({ severity: 'secondary' });\n /**\n * Configuration object forwarded to the cancel button.\n * @group Props\n */\n cancelButtonProps = input<ButtonDirectiveOptions>({ severity: 'secondary' });\n /**\n * Callback to invoke before file upload is initialized.\n * @param {FileBeforeUploadEvent} event - Custom upload event.\n * @group Emits\n */\n onBeforeUpload = output<FileBeforeUploadEvent>();\n /**\n * 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.\n * @param {FileSendEvent} event - Custom send event.\n * @group Emits\n */\n onSend = output<FileSendEvent>();\n /**\n * Callback to invoke when file upload is complete.\n * @param {FileUploadEvent} event - Custom upload event.\n * @group Emits\n */\n onUpload = output<FileUploadEvent>();\n /**\n * Callback to invoke if file upload fails.\n * @param {FileUploadErrorEvent} event - Custom error event.\n * @group Emits\n */\n onError = output<FileUploadErrorEvent>();\n /**\n * Callback to invoke when files in queue are removed without uploading using clear all button.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onClear = output<void>();\n /**\n * Callback to invoke when a file is removed without uploading using clear button of a file.\n * @param {FileRemoveEvent} event - Remove event.\n * @group Emits\n */\n onRemove = output<FileRemoveEvent>();\n /**\n * Callback to invoke when files are selected.\n * @param {FileSelectEvent} event - Select event.\n * @group Emits\n */\n onSelect = output<FileSelectEvent>();\n /**\n * Callback to invoke when files are being uploaded.\n * @param {FileProgressEvent} event - Progress event.\n * @group Emits\n */\n onProgress = output<FileProgressEvent>();\n /**\n * Callback to invoke in custom upload mode to upload the files manually.\n * @param {FileUploadHandlerEvent} event - Upload handler event.\n * @group Emits\n */\n uploadHandler = output<FileUploadHandlerEvent>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onImageError = output<Event>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {RemoveUploadedFileEvent} event - Remove event.\n * @group Emits\n */\n onRemoveUploadedFile = output<RemoveUploadedFileEvent>();\n\n /**\n * Custom file template.\n * @group Templates\n */\n fileTemplate = contentChild<TemplateRef<FileUploadFileTemplateContext>>('file', { descendants: false });\n\n /**\n * Custom header template.\n * @param {FileUploadHeaderTemplateContext} context - header template context.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<FileUploadHeaderTemplateContext>>('header', { descendants: false });\n\n /**\n * Custom content template.\n * @param {FileUploadContentTemplateContext} context - content template context.\n * @group Templates\n */\n contentTemplate = contentChild<TemplateRef<FileUploadContentTemplateContext>>('content', { descendants: false });\n\n /**\n * Custom toolbar template.\n * @group Templates\n */\n toolbarTemplate = contentChild<TemplateRef<void>>('toolbar', { descendants: false });\n\n /**\n * Custom choose icon template.\n * @group Templates\n */\n chooseIconTemplate = contentChild<TemplateRef<void>>('chooseicon', { descendants: false });\n\n /**\n * Custom file label template.\n * @param {FileUploadFileLabelTemplateContext} context - file label template context.\n * @group Templates\n */\n fileLabelTemplate = contentChild<TemplateRef<FileUploadFileLabelTemplateContext>>('filelabel', { descendants: false });\n\n /**\n * Custom upload icon template.\n * @group Templates\n */\n uploadIconTemplate = contentChild<TemplateRef<void>>('uploadicon', { descendants: false });\n\n /**\n * Custom cancel icon template.\n * @group Templates\n */\n cancelIconTemplate = contentChild<TemplateRef<void>>('cancelicon', { descendants: false });\n\n /**\n * Custom empty state template.\n * @group Templates\n */\n emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n\n isAdvancedMode = computed(() => this.mode() === 'advanced');\n\n isBasicMode = computed(() => this.mode() === 'basic');\n\n showUploadBtn = computed(() => !this.auto() && this.showUploadButton());\n\n showCancelBtn = computed(() => !this.auto() && this.showCancelButton());\n\n chooseButtonDisabled = computed(() => this.disabled() || this.isChooseDisabled());\n\n uploadButtonDisabled = computed(() => !this.hasFiles() || this.isFileLimitExceeded());\n\n cancelButtonDisabled = computed(() => !this.hasFiles() || this.uploading());\n\n showEmpty = computed(() => !!this.emptyTemplate() && !this.hasFiles() && !this.hasUploadedFiles());\n\n get headerTemplateContext(): FileUploadHeaderTemplateContext {\n return {\n $implicit: this.files,\n uploadedFiles: this.uploadedFiles(),\n chooseCallback: this.choose.bind(this),\n clearCallback: this.clear.bind(this),\n uploadCallback: this.upload.bind(this)\n };\n }\n\n get contentTemplateContext(): FileUploadContentTemplateContext {\n return {\n $implicit: this.files,\n uploadedFiles: this.uploadedFiles(),\n chooseCallback: this.choose.bind(this),\n clearCallback: this.clear.bind(this),\n removeUploadedFileCallback: this.removeUploadedFile.bind(this),\n removeFileCallback: this.remove.bind(this),\n progress: this.progress(),\n messages: this.msgs()\n };\n }\n\n get fileLabelTemplateContext(): FileUploadFileLabelTemplateContext {\n return {\n $implicit: this.files\n };\n }\n\n advancedFileInput = viewChild<ElementRef>('advancedfileinput');\n\n basicFileInput = viewChild<ElementRef>('basicfileinput');\n\n contentEl = viewChild<ElementRef>('content');\n\n /**\n * Files input.\n * @group Props\n */\n filesInput = input<File[]>([], { alias: 'files' });\n\n get files(): File[] {\n return this._files();\n }\n\n set files(value: File[]) {\n this._files.set(value);\n }\n\n public get basicButtonLabel(): string {\n if (this.auto() || !this.hasFiles()) {\n return this.chooseLabel() as string;\n }\n\n return this.uploadLabel() ?? this.files[0].name;\n }\n\n public _files = signal<File[]>([]);\n\n public progress = signal(0);\n\n public dragHighlight = signal(false);\n\n public msgs = signal<FileUploadMessage[]>([]);\n\n public uploadedFileCount: number = 0;\n\n focus = signal(false);\n\n uploading = signal(false);\n\n duplicateIEEvent: boolean | undefined; // flag to recognize duplicate onchange event for file input\n\n translationSubscription: Subscription | undefined;\n\n dragOverListener: VoidListener;\n\n public uploadedFiles = signal<File[]>([]);\n\n sanitizer = inject(DomSanitizer);\n\n http = inject(HttpClient);\n\n _componentStyle = inject(FileUploadStyle);\n\n constructor() {\n super();\n\n effect(() => {\n const inputFiles = this.filesInput();\n if (inputFiles && inputFiles.length > 0) {\n const newFiles: File[] = [];\n for (let i = 0; i < inputFiles.length; i++) {\n let file = inputFiles[i];\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (file as any).objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(inputFiles[i]));\n }\n newFiles.push(inputFiles[i]);\n }\n }\n this._files.set(newFiles);\n }\n });\n }\n\n onInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mode() === 'advanced') {\n const contentEl = this.contentEl();\n if (contentEl) {\n this.dragOverListener = this.renderer.listen(contentEl.nativeElement, 'dragover', this.onDragOver.bind(this));\n }\n }\n }\n }\n\n basicFileChosenLabel() {\n if (this.auto()) return this.chooseButtonLabel;\n else if (this.hasFiles()) {\n if (this.files && this.files.length === 1) return this.files[0].name;\n\n return this.translate('fileChosenMessage')?.replace('{0}', this.files.length.toString());\n }\n\n return this.translate('noFileChosenMessage') || '';\n }\n\n completedLabel() {\n return this.translate('completed') || '';\n }\n\n choose() {\n this.advancedFileInput()?.nativeElement.click();\n }\n\n onFileSelect(event: Event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n return;\n }\n\n if (!this.multiple()) {\n this.files = [];\n }\n\n this.msgs.set([]);\n this.files = this.files || [];\n let files = (event as DragEvent).dataTransfer ? (event as DragEvent).dataTransfer!.files : (event.target as HTMLInputElement).files!;\n\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (file as any).objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.files = [...this.files];\n this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });\n\n // this will check the fileLimit with the uploaded files\n this.checkFileLimit(files);\n\n if (this.hasFiles() && this.auto() && (this.mode() !== 'advanced' || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file: File): boolean {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n if (isPlatformBrowser(this.platformId)) {\n return !!(this.document.defaultView as any)['MSInputMethodContext'] && !!(this.document as any)['documentMode'];\n }\n }\n\n validate(file: File): boolean {\n const acceptVal = this.accept();\n if (acceptVal && !this.isFileTypeValid(file)) {\n const text = `${this.invalidFileTypeMessageSummary().replace('{0}', file.name)} ${this.invalidFileTypeMessageDetail().replace('{0}', acceptVal)}`;\n this.msgs.update((msgs) => [...msgs, { severity: 'error', text }]);\n return false;\n }\n\n const maxFileSizeVal = this.maxFileSize();\n if (maxFileSizeVal && file.size > maxFileSizeVal) {\n const text = `${this.invalidFileSizeMessageSummary().replace('{0}', file.name)} ${this.invalidFileSizeMessageDetail().replace('{0}', this.formatSize(maxFileSizeVal))}`;\n this.msgs.update((msgs) => [...msgs, { severity: 'error', text }]);\n return false;\n }\n\n return true;\n }\n\n private isFileTypeValid(file: File): boolean {\n const acceptVal = this.accept();\n let acceptableTypes = acceptVal?.split(',').map((type) => type.trim());\n for (let type of acceptableTypes!) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType: string): string {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType: string): boolean {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file: File): string {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img: HTMLImageElement) {\n window.URL.revokeObjectURL(img.src);\n }\n /**\n * Uploads the selected files.\n * @group Method\n */\n uploader() {\n if (this.customUpload()) {\n const fileLimitVal = this.fileLimit();\n if (fileLimitVal) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.uploadHandler.emit({\n files: this.files\n });\n } else {\n this.uploading.set(true);\n this.msgs.set([]);\n let formData = new FormData();\n\n this.onBeforeUpload.emit({\n formData: formData\n });\n\n const nameVal = this.name();\n for (let i = 0; i < this.files.length; i++) {\n formData.append(nameVal!, this.files[i], this.files[i].name);\n }\n\n this.http\n .request(this.method(), this.url() as string, {\n body: formData,\n headers: this.headers(),\n reportProgress: true,\n observe: 'events',\n withCredentials: this.withCredentials()\n })\n .subscribe({\n next: (event: HttpEvent<any>) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n formData: formData\n });\n break;\n case HttpEventType.Response:\n this.uploading.set(false);\n this.progress.set(0);\n\n if (event['status'] >= 200 && event['status'] < 300) {\n const fileLimitVal = this.fileLimit();\n if (fileLimitVal) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.onUpload.emit({ originalEvent: event, files: this.files });\n } else {\n this.onError.emit({ files: this.files });\n }\n this.uploadedFiles.update((files) => [...files, ...this.files]);\n this.clear();\n break;\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress.set(Math.round((event['loaded'] * 100) / event['total']!));\n }\n\n this.onProgress.emit({ originalEvent: event, progress: this.progress() });\n break;\n }\n }\n },\n error: (error: ErrorEvent) => {\n this.uploading.set(false);\n this.onError.emit({ files: this.files, error: error });\n }\n });\n }\n }\n onRemoveClick(e: FileContentRemoveEvent) {\n const { event, index } = e;\n if (this.hasFiles()) {\n this.remove(event, index);\n }\n }\n onRemoveUploadedFileClick(e: Pick<FileContentRemoveEvent, 'index'>) {\n const { index } = e;\n if (this.hasUploadedFiles()) {\n this.removeUploadedFile(index);\n }\n }\n /**\n * Clears the files list.\n * @group Method\n */\n clear() {\n this.files = [];\n this.onClear.emit();\n this.clearInputElement();\n this.msgs.set([]);\n }\n /**\n * Removes a single file.\n * @param {Event} event - Browser event.\n * @param {Number} index - Index of the file.\n * @group Method\n */\n remove(event: Event, index: number) {\n this.clearInputElement();\n this.onRemove.emit({ originalEvent: event, file: this.files[index] });\n this.files.splice(index, 1);\n this.files = [...this.files];\n this.checkFileLimit(this.files);\n }\n /**\n * Removes uploaded file.\n * @param {Number} index - Index of the file to be removed.\n * @group Method\n */\n removeUploadedFile(index: number) {\n const currentFiles = this.uploadedFiles();\n const removedFile = currentFiles[index];\n this.uploadedFiles.set(currentFiles.filter((_, i) => i !== index));\n this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles() });\n }\n\n isFileLimitExceeded() {\n const isAutoMode = this.auto();\n const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;\n const fileLimitVal = this.fileLimit();\n\n if (fileLimitVal && fileLimitVal <= totalFileCount && this.focus()) {\n this.focus.set(false);\n }\n\n return fileLimitVal && fileLimitVal < totalFileCount;\n }\n\n isChooseDisabled() {\n const fileLimitVal = this.fileLimit();\n if (this.auto()) {\n return fileLimitVal && fileLimitVal <= this.files.length;\n } else {\n return fileLimitVal && fileLimitVal <= this.files.length + this.uploadedFileCount;\n }\n }\n\n checkFileLimit(files: FileList | File[]) {\n const fileLimitVal = this.fileLimit();\n const currentMsgs = this.msgs();\n const hasExistingValidationMessages = currentMsgs.length > 0 && fileLimitVal && fileLimitVal < files.length;\n\n if (this.isFileLimitExceeded() || hasExistingValidationMessages) {\n const text = `${this.invalidFileLimitMessageSummary().replace('{0}', (fileLimitVal as number).toString())} ${this.invalidFileLimitMessageDetail().replace('{0}', (fileLimitVal as number).toString())}`;\n this.msgs.update((msgs) => [...msgs, { severity: 'error', text }]);\n } else {\n this.msgs.update((msgs) => msgs.filter((msg) => !msg.text.includes(this.invalidFileLimitMessageSummary())));\n }\n }\n\n clearInputElement() {\n const advancedInput = this.advancedFileInput();\n if (advancedInput && advancedInput.nativeElement) {\n advancedInput.nativeElement.value = '';\n }\n\n const basicInput = this.basicFileInput();\n if (basicInput && basicInput.nativeElement) {\n basicInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n const advancedInput = this.advancedFileInput();\n if (advancedInput && advancedInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n advancedInput.nativeElement.value = '';\n }\n }\n\n hasFiles(): boolean {\n return this.files && this.files.length > 0;\n }\n\n hasUploadedFiles() {\n return this.uploadedFiles().length > 0;\n }\n\n getFileTemplateContext(file: File): FileUploadFileTemplateContext {\n return { $implicit: file };\n }\n\n onDragEnter(e: DragEvent) {\n if (!this.disabled()) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e: DragEvent) {\n if (!this.disabled()) {\n const contentEl = this.contentEl();\n !this.$unstyled() && addClass(contentEl?.nativeElement, 'p-fileupload-highlight');\n contentEl?.nativeElement.setAttribute('data-p-highlight', true);\n this.dragHighlight.set(true);\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(_event: DragEvent) {\n if (!this.disabled()) {\n const contentEl = this.contentEl();\n !this.$unstyled() && removeClass(contentEl?.nativeElement, 'p-fileupload-highlight');\n contentEl?.nativeElement.setAttribute('data-p-highlight', false);\n }\n }\n\n onDrop(event: DragEvent) {\n if (!this.disabled()) {\n const contentEl = this.contentEl();\n !this.$unstyled() && removeClass(contentEl?.nativeElement, 'p-fileupload-highlight');\n contentEl?.nativeElement.setAttribute('data-p-highlight', false);\n event.stopPropagation();\n event.preventDefault();\n\n let files = event.dataTransfer ? event.dataTransfer.files : (event.target as HTMLInputElement).files;\n let allowDrop = this.multiple() || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus.set(true);\n }\n\n onBlur() {\n this.focus.set(false);\n }\n\n formatSize(bytes: number) {\n const k = 1024;\n const dm = 3;\n const sizes = this.translate(TranslationKeys.FILE_SIZE_TYPES);\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);\n\n return `${formattedSize} ${sizes[i]}`;\n }\n\n upload() {\n if (this.hasFiles()) this.uploader();\n }\n\n onBasicUploaderClick() {\n this.basicFileInput()?.nativeElement.click();\n }\n\n onBasicKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n this.onBasicUploaderClick();\n\n event.preventDefault();\n break;\n }\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel(): string {\n return this.chooseLabel() || this.translate(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel(): string {\n return this.uploadLabel() || this.translate(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel(): string {\n return this.cancelLabel() || this.translate(TranslationKeys.CANCEL);\n }\n\n get browseFilesLabel(): string {\n return this.translate(TranslationKeys.ARIA, TranslationKeys.BROWSE_FILES);\n }\n\n get pendingLabel() {\n return this.translate(TranslationKeys.PENDING);\n }\n\n onDestroy() {\n const contentEl = this.contentEl();\n if (contentEl && contentEl.nativeElement) {\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [FileUpload, SharedModule],\n exports: [FileUpload, SharedModule]\n})\nexport class FileUploadModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["TimesIcon","PlusIcon","UploadIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primeng-fileupload.mjs","names":["TimesIcon","PlusIcon","UploadIcon","TimesIcon"],"sources":["../../src/fileupload/fileupload-token.ts","../../src/fileupload/style/fileuploadstyle.ts","../../src/fileupload/file-content.ts","../../src/fileupload/fileupload.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FILEUPLOAD_INSTANCE = new InjectionToken<any>('FILEUPLOAD_INSTANCE');\n","import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/fileupload';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => `p-fileupload p-fileupload-${instance.mode()} p-component`,\n header: 'p-fileupload-header',\n pcChooseButton: 'p-fileupload-choose-button',\n pcUploadButton: 'p-fileupload-upload-button',\n pcCancelButton: 'p-fileupload-cancel-button',\n content: 'p-fileupload-content',\n fileList: 'p-fileupload-file-list',\n file: 'p-fileupload-file',\n fileThumbnail: 'p-fileupload-file-thumbnail',\n fileInfo: 'p-fileupload-file-info',\n fileName: 'p-fileupload-file-name',\n fileSize: 'p-fileupload-file-size',\n pcFileBadge: 'p-fileupload-file-badge',\n fileActions: 'p-fileupload-file-actions',\n pcFileRemoveButton: 'p-fileupload-file-remove-button',\n basicContent: 'p-fileupload-basic-content'\n};\n\n@Injectable()\nexport class FileUploadStyle extends BaseStyle {\n name = 'fileupload';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.\n *\n * [Live Demo](https://www.primeng.org/fileupload/)\n *\n * @module fileuploadstyle\n *\n */\n\nexport enum FileUploadClasses {\n /**\n * Class name of the root element\n */\n root = 'p-fileupload',\n /**\n * Class name of the header element\n */\n header = 'p-fileupload-header',\n /**\n * Class name of the choose button element\n */\n pcChooseButton = 'p-fileupload-choose-button',\n /**\n * Class name of the upload button element\n */\n pcUploadButton = 'p-fileupload-upload-button',\n /**\n * Class name of the cancel button element\n */\n pcCancelButton = 'p-fileupload-cancel-button',\n /**\n * Class name of the content element\n */\n content = 'p-fileupload-content',\n /**\n * Class name of the file list element\n */\n fileList = 'p-fileupload-file-list',\n /**\n * Class name of the file element\n */\n file = 'p-fileupload-file',\n /**\n * Class name of the file thumbnail element\n */\n fileThumbnail = 'p-fileupload-file-thumbnail',\n /**\n * Class name of the file info element\n */\n fileInfo = 'p-fileupload-file-info',\n /**\n * Class name of the file name element\n */\n fileName = 'p-fileupload-file-name',\n /**\n * Class name of the file size element\n */\n fileSize = 'p-fileupload-file-size',\n /**\n * Class name of the file badge element\n */\n pcFileBadge = 'p-fileupload-file-badge',\n /**\n * Class name of the file actions element\n */\n fileActions = 'p-fileupload-file-actions',\n /**\n * Class name of the file remove button element\n */\n pcFileRemoveButton = 'p-fileupload-file-remove-button',\n /**\n * Class name of the content in basic mode\n */\n basicContent = 'p-fileupload-basic-content'\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, output, TemplateRef } from '@angular/core';\nimport { TranslationKeys } from 'primeng/api';\nimport { Badge } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport { Times as TimesIcon } from '@primeicons/angular/times';\nimport { FileContentRemoveEvent, FileRemoveIconTemplateContext } from 'primeng/types/fileupload';\nimport type { FileUpload } from './fileupload';\nimport { FILEUPLOAD_INSTANCE } from './fileupload-token';\nimport { FileUploadStyle } from './style/fileuploadstyle';\nimport { BadgeSeverity } from 'primeng/types/badge';\nimport type { SafeUrl } from '@angular/platform-browser';\n\ntype FileWithObjectURL = File & { objectURL?: SafeUrl };\n\n@Component({\n selector: '[pFileContent]',\n standalone: true,\n template: `@for (file of files(); track file?.name + '-' + $index; let index = $index) {\n <div [class]=\"cx('file')\" [pBind]=\"$pcFileUpload.ptm('file')\">\n <img role=\"presentation\" [class]=\"cx('fileThumbnail')\" [attr.alt]=\"file.name\" [src]=\"file.objectURL\" [width]=\"previewWidth()\" [pBind]=\"$pcFileUpload.ptm('fileThumbnail')\" />\n <div [class]=\"cx('fileInfo')\" [pBind]=\"$pcFileUpload.ptm('fileInfo')\">\n <div [class]=\"cx('fileName')\" [pBind]=\"$pcFileUpload.ptm('fileName')\">{{ file.name }}</div>\n <span [class]=\"cx('fileSize')\" [pBind]=\"$pcFileUpload.ptm('fileSize')\">{{ formatSize(file.size) }}</span>\n </div>\n <p-badge [value]=\"badgeValue()\" [severity]=\"badgeSeverity()\" [class]=\"cx('pcFileBadge')\" [pt]=\"$pcFileUpload.ptm('pcFileBadge')\" [unstyled]=\"unstyled()\" />\n <div [class]=\"cx('fileActions')\" [pBind]=\"$pcFileUpload.ptm('fileActions')\">\n <button type=\"button\" iconOnly pButton text rounded severity=\"danger\" [class]=\"cx('pcFileRemoveButton')\" [pButtonPT]=\"$pcFileUpload.ptm('pcFileRemoveButton')\" [pButtonUnstyled]=\"unstyled()\" (click)=\"onRemoveClick($event, index)\">\n @if (fileRemoveIconTemplate()) {\n <ng-template *ngTemplateOutlet=\"fileRemoveIconTemplate(); context: getRemoveIconContext('', file, index)\"></ng-template>\n } @else {\n <svg data-p-icon=\"times\" [attr.aria-hidden]=\"true\" />\n }\n </button>\n </div>\n </div>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [FileUploadStyle],\n imports: [NgTemplateOutlet, Badge, ButtonDirective, TimesIcon, Bind]\n})\nexport class FileContent extends BaseComponent {\n _componentStyle = inject(FileUploadStyle);\n\n $pcFileUpload = inject<FileUpload>(FILEUPLOAD_INSTANCE);\n\n onRemove = output<FileContentRemoveEvent>();\n\n files = input<FileWithObjectURL[]>();\n\n badgeSeverity = input<BadgeSeverity>('warn');\n\n badgeValue = input<string>();\n\n previewWidth = input<number>(50);\n\n fileRemoveIconTemplate = input<TemplateRef<unknown>>();\n\n onRemoveClick(event: Event, index: number) {\n this.onRemove.emit({ event, index });\n }\n\n getRemoveIconContext(iconClass: string, file: File, index: number): FileRemoveIconTemplateContext {\n return { class: iconClass, file, index };\n }\n\n formatSize(bytes: number) {\n const k = 1024;\n const dm = 3;\n const sizes = this.translate(TranslationKeys.FILE_SIZE_TYPES);\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);\n\n return `${formattedSize} ${sizes[i]}`;\n }\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { HttpClient, HttpEvent, HttpEventType, HttpHeaders } from '@angular/common/http';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, ElementRef, inject, input, NgModule, numberAttribute, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { addClass, removeClass } from '@primeuix/utils';\nimport { BlockableUI, SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { ButtonDirective } from 'primeng/button';\nimport type { ButtonDirectiveOptions } from 'primeng/types/button';\nimport { Plus as PlusIcon } from '@primeicons/angular/plus';\nimport { Times as TimesIcon } from '@primeicons/angular/times';\nimport { Upload as UploadIcon } from '@primeicons/angular/upload';\nimport { Message } from 'primeng/message';\nimport { ProgressBar } from 'primeng/progressbar';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport {\n FileBeforeUploadEvent,\n FileContentRemoveEvent,\n FileProgressEvent,\n FileRemoveEvent,\n FileSelectEvent,\n FileSendEvent,\n FileUploadContentTemplateContext,\n FileUploadErrorEvent,\n FileUploadEvent,\n FileUploadFileLabelTemplateContext,\n FileUploadFileTemplateContext,\n FileUploadHandlerEvent,\n FileUploadHeaderTemplateContext,\n FileUploadMessage,\n FileUploadPassThrough,\n RemoveUploadedFileEvent\n} from 'primeng/types/fileupload';\nimport { Subscription } from 'rxjs';\nimport { FileContent } from './file-content';\nimport { FILEUPLOAD_INSTANCE } from './fileupload-token';\nimport { FileUploadStyle } from './style/fileuploadstyle';\n\n/**\n * FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.\n * @group Components\n */\n@Component({\n selector: 'p-fileupload',\n standalone: true,\n imports: [NgTemplateOutlet, ButtonDirective, ProgressBar, Message, PlusIcon, UploadIcon, TimesIcon, SharedModule, FileContent, Bind],\n template: `\n @if (isAdvancedMode()) {\n <div [class]=\"cn(cx('root'), styleClass())\" [style]=\"style()\" [pBind]=\"ptm('root')\">\n <input [attr.aria-label]=\"browseFilesLabel\" #advancedfileinput type=\"file\" (change)=\"onFileSelect($event)\" [multiple]=\"multiple()\" [accept]=\"accept()\" [disabled]=\"chooseButtonDisabled()\" [attr.title]=\"''\" [pBind]=\"ptm('input')\" />\n <div [class]=\"cx('header')\" [pBind]=\"ptm('header')\">\n @if (!headerTemplate()) {\n <button\n type=\"button\"\n [pButton]=\"chooseButtonProps()\"\n [disabled]=\"chooseButtonDisabled()\"\n [class]=\"cn(cx('pcChooseButton'), chooseStyleClass())\"\n [pButtonPT]=\"ptm('pcChooseButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (click)=\"choose()\"\n (keydown.enter)=\"choose()\"\n >\n @if (chooseIcon()) {\n <span [class]=\"chooseIcon()\" [attr.aria-label]=\"true\" [pBind]=\"ptm('pcChooseButton')?.icon\"></span>\n } @else {\n @if (!chooseIconTemplate()) {\n <svg data-p-icon=\"plus\" [attr.aria-label]=\"true\" [pBind]=\"ptm('pcChooseButton')?.icon\" />\n } @else {\n <span [attr.aria-label]=\"true\" [pBind]=\"ptm('pcChooseButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"chooseIconTemplate()\"></ng-container>\n </span>\n }\n }\n {{ chooseButtonLabel }}\n </button>\n\n @if (showUploadBtn()) {\n <button\n type=\"button\"\n [pButton]=\"uploadButtonProps()\"\n [disabled]=\"uploadButtonDisabled()\"\n [class]=\"cn(cx('pcUploadButton'), uploadStyleClass())\"\n [pButtonPT]=\"ptm('pcUploadButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"upload()\"\n >\n @if (uploadIcon()) {\n <span [class]=\"uploadIcon()\" [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcUploadButton')?.icon\"></span>\n } @else {\n @if (!uploadIconTemplate()) {\n <svg data-p-icon=\"upload\" [pBind]=\"ptm('pcUploadButton')?.icon\" />\n } @else {\n <span [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcUploadButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"uploadIconTemplate()\"></ng-container>\n </span>\n }\n }\n {{ uploadButtonLabel }}\n </button>\n }\n @if (showCancelBtn()) {\n <button\n type=\"button\"\n [pButton]=\"cancelButtonProps()\"\n [disabled]=\"cancelButtonDisabled()\"\n [class]=\"cn(cx('pcCancelButton'), cancelStyleClass())\"\n [pButtonPT]=\"ptm('pcCancelButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"clear()\"\n >\n @if (cancelIcon()) {\n <span [class]=\"cancelIcon()\" [pBind]=\"ptm('pcCancelButton')?.icon\"></span>\n } @else {\n @if (!cancelIconTemplate()) {\n <svg data-p-icon=\"times\" [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcCancelButton')?.icon\" />\n } @else {\n <span [attr.aria-hidden]=\"true\" [pBind]=\"ptm('pcCancelButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"cancelIconTemplate()\"></ng-container>\n </span>\n }\n }\n {{ cancelButtonLabel }}\n </button>\n }\n }\n <ng-container *ngTemplateOutlet=\"headerTemplate(); context: headerTemplateContext\"></ng-container>\n <ng-container *ngTemplateOutlet=\"toolbarTemplate()\"></ng-container>\n </div>\n <div #content [class]=\"cx('content')\" (dragenter)=\"onDragEnter($event)\" (dragleave)=\"onDragLeave($event)\" (drop)=\"onDrop($event)\" [pBind]=\"ptm('content')\">\n @if (contentTemplate()) {\n <ng-container *ngTemplateOutlet=\"contentTemplate(); context: contentTemplateContext\"></ng-container>\n } @else {\n @if (hasFiles()) {\n <p-progressbar [value]=\"progress()\" [showValue]=\"false\" [pt]=\"ptm('pcProgressBar')\"></p-progressbar>\n }\n @for (message of msgs(); track $index) {\n <p-message [severity]=\"message.severity\" [pt]=\"ptm('pcMessage')\" [unstyled]=\"unstyled()\">{{ message.text }}</p-message>\n }\n\n @if (hasFiles()) {\n <div [class]=\"cx('fileList')\" [pBind]=\"ptm('fileList')\">\n @if (fileTemplate()) {\n @for (file of files; track file.name) {\n <ng-container *ngTemplateOutlet=\"fileTemplate(); context: getFileTemplateContext(file)\"></ng-container>\n }\n } @else {\n <div pFileContent [unstyled]=\"unstyled()\" [files]=\"files\" (onRemove)=\"onRemoveClick($event)\" [badgeValue]=\"pendingLabel\" [previewWidth]=\"previewWidth()\" [fileRemoveIconTemplate]=\"cancelIconTemplate()\"></div>\n }\n </div>\n }\n @if (hasUploadedFiles()) {\n <div [class]=\"cx('fileList')\" [pBind]=\"ptm('fileList')\">\n @if (fileTemplate()) {\n @for (file of uploadedFiles(); track file.name) {\n <ng-container *ngTemplateOutlet=\"fileTemplate(); context: getFileTemplateContext(file)\"></ng-container>\n }\n } @else {\n <div\n pFileContent\n [unstyled]=\"unstyled()\"\n [files]=\"uploadedFiles()\"\n (onRemove)=\"onRemoveUploadedFileClick($event)\"\n [badgeValue]=\"completedLabel()\"\n badgeSeverity=\"success\"\n [previewWidth]=\"previewWidth()\"\n [fileRemoveIconTemplate]=\"cancelIconTemplate()\"\n ></div>\n }\n </div>\n }\n }\n @if (showEmpty()) {\n <ng-container *ngTemplateOutlet=\"emptyTemplate()\" [pBind]=\"ptm('empty')\"></ng-container>\n }\n </div>\n </div>\n }\n @if (isBasicMode()) {\n <div [class]=\"cn(cx('root'), styleClass())\" [pBind]=\"ptm('root')\">\n @for (message of msgs(); track $index) {\n <p-message [severity]=\"message.severity\" [pt]=\"ptm('pcMessage')\" [unstyled]=\"unstyled()\">{{ message.text }}</p-message>\n }\n\n <div [class]=\"cx('basicContent')\" [pBind]=\"ptm('basicContent')\">\n <button\n type=\"button\"\n [pButton]=\"chooseButtonProps()\"\n [disabled]=\"disabled()\"\n [class]=\"cn(cx('pcChooseButton'), chooseStyleClass())\"\n [style]=\"style()\"\n [pButtonPT]=\"ptm('pcChooseButton')\"\n [pButtonUnstyled]=\"unstyled()\"\n (click)=\"onBasicUploaderClick()\"\n (keydown)=\"onBasicKeydown($event)\"\n >\n @if (hasFiles() && !auto()) {\n @if (uploadIcon()) {\n <span [class]=\"cn('p-button-icon p-button-icon-left', uploadIcon())\" [pBind]=\"ptm('pcChooseButton')?.icon\"></span>\n } @else {\n @if (!uploadIconTemplate()) {\n <svg data-p-icon=\"upload\" [class]=\"'p-button-icon p-button-icon-left'\" [pBind]=\"ptm('pcChooseButton')?.icon\" />\n } @else {\n <span class=\"p-button-icon p-button-icon-left\" [pBind]=\"ptm('pcChooseButton')?.icon\">\n <ng-container *ngTemplateOutlet=\"uploadIconTemplate()\"></ng-container>\n </span>\n }\n }\n } @else {\n @if (chooseIcon()) {\n <span [class]=\"cn('p-button-icon p-button-icon-left pi', chooseIcon())\" [pBind]=\"ptm('pcChooseButton')?.icon\"></span>\n } @else {\n @if (!chooseIconTemplate()) {\n <svg data-p-icon=\"plus\" [pBind]=\"ptm('pcChooseButton')?.icon\" />\n } @else {\n <ng-container *ngTemplateOutlet=\"chooseIconTemplate()\"></ng-container>\n }\n }\n }\n {{ chooseButtonLabel }}\n </button>\n <input\n [attr.aria-label]=\"browseFilesLabel\"\n #basicfileinput\n type=\"file\"\n [accept]=\"accept()\"\n [multiple]=\"multiple()\"\n [disabled]=\"disabled()\"\n (change)=\"onFileSelect($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [pBind]=\"ptm('input')\"\n />\n @if (!auto()) {\n @if (!fileLabelTemplate()) {\n <span>\n {{ basicFileChosenLabel() }}\n </span>\n } @else {\n <ng-container *ngTemplateOutlet=\"fileLabelTemplate(); context: fileLabelTemplateContext\"></ng-container>\n }\n }\n </div>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [FileUploadStyle, { provide: FILEUPLOAD_INSTANCE, useExisting: FileUpload }, { provide: PARENT_INSTANCE, useExisting: FileUpload }],\n hostDirectives: [Bind]\n})\nexport class FileUpload extends BaseComponent<FileUploadPassThrough> implements BlockableUI {\n componentName = 'FileUpload';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Name of the request parameter to identify the files at backend.\n * @group Props\n */\n name = input<string>();\n /**\n * Remote url to upload the files.\n * @group Props\n */\n url = input<string>();\n /**\n * HTTP method to send the files to the url such as \"post\" and \"put\".\n * @group Props\n */\n method = input<'post' | 'put'>('post');\n /**\n * Used to select multiple files at once from file dialog.\n * @group Props\n */\n multiple = input(false, { transform: booleanAttribute });\n /**\n * 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\").\n * @group Props\n */\n accept = input<string>();\n /**\n * Disables the upload functionality.\n * @group Props\n */\n disabled = input(false, { transform: booleanAttribute });\n /**\n * When enabled, upload begins automatically after selection is completed.\n * @group Props\n */\n auto = input(false, { transform: booleanAttribute });\n /**\n * Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.\n * @group Props\n */\n withCredentials = input(false, { transform: booleanAttribute });\n /**\n * Maximum file size allowed in bytes.\n * @group Props\n */\n maxFileSize = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Summary message of the invalid file size.\n * @group Props\n */\n invalidFileSizeMessageSummary = input('{0}: Invalid file size, ');\n /**\n * Detail message of the invalid file size.\n * @group Props\n */\n invalidFileSizeMessageDetail = input('maximum upload size is {0}.');\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n invalidFileTypeMessageSummary = input('{0}: Invalid file type, ');\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n invalidFileTypeMessageDetail = input('allowed file types: {0}.');\n /**\n * Detail message of the invalid file type.\n * @group Props\n */\n invalidFileLimitMessageDetail = input('limit is {0} at most.');\n /**\n * Summary message of the invalid file type.\n * @group Props\n */\n invalidFileLimitMessageSummary = input('Maximum number of files exceeded, ');\n /**\n * Inline style of the element.\n * @group Props\n */\n style = input<CSSProperties>();\n /**\n * Class of the element.\n * @group Props\n */\n styleClass = input<string>();\n /**\n * Width of the image thumbnail in pixels.\n * @group Props\n */\n previewWidth = input(50, { transform: numberAttribute });\n /**\n * Label of the choose button. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n chooseLabel = input<string>();\n /**\n * Label of the upload button. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n uploadLabel = input<string>();\n /**\n * Label of the cancel button. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n cancelLabel = input<string>();\n /**\n * Icon of the choose button.\n * @group Props\n */\n chooseIcon = input<string>();\n /**\n * Icon of the upload button.\n * @group Props\n */\n uploadIcon = input<string>();\n /**\n * Icon of the cancel button.\n * @group Props\n */\n cancelIcon = input<string>();\n /**\n * Whether to show the upload button.\n * @group Props\n */\n showUploadButton = input(true, { transform: booleanAttribute });\n /**\n * Whether to show the cancel button.\n * @group Props\n */\n showCancelButton = input(true, { transform: booleanAttribute });\n /**\n * Defines the UI of the component.\n * @group Props\n */\n mode = input<'advanced' | 'basic'>('advanced');\n /**\n * HttpHeaders class represents the header configuration options for an HTTP request.\n * @group Props\n */\n headers = input<HttpHeaders>();\n /**\n * Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to PrimeNG Locale configuration.\n * @group Props\n */\n customUpload = input(false, { transform: booleanAttribute });\n /**\n * Maximum number of files that can be uploaded.\n * @group Props\n */\n fileLimit = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * Style class of the upload button.\n * @group Props\n */\n uploadStyleClass = input<string>();\n /**\n * Style class of the cancel button.\n * @group Props\n */\n cancelStyleClass = input<string>();\n /**\n * Style class of the remove button.\n * @group Props\n */\n removeStyleClass = input<string>();\n /**\n * Style class of the choose button.\n * @group Props\n */\n chooseStyleClass = input<string>();\n /**\n * Configuration object forwarded to the choose button.\n * @group Props\n */\n chooseButtonProps = input<ButtonDirectiveOptions>();\n /**\n * Configuration object forwarded to the upload button.\n * @group Props\n */\n uploadButtonProps = input<ButtonDirectiveOptions>({ severity: 'secondary' });\n /**\n * Configuration object forwarded to the cancel button.\n * @group Props\n */\n cancelButtonProps = input<ButtonDirectiveOptions>({ severity: 'secondary' });\n /**\n * Callback to invoke before file upload is initialized.\n * @param {FileBeforeUploadEvent} event - Custom upload event.\n * @group Emits\n */\n onBeforeUpload = output<FileBeforeUploadEvent>();\n /**\n * 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.\n * @param {FileSendEvent} event - Custom send event.\n * @group Emits\n */\n onSend = output<FileSendEvent>();\n /**\n * Callback to invoke when file upload is complete.\n * @param {FileUploadEvent} event - Custom upload event.\n * @group Emits\n */\n onUpload = output<FileUploadEvent>();\n /**\n * Callback to invoke if file upload fails.\n * @param {FileUploadErrorEvent} event - Custom error event.\n * @group Emits\n */\n onError = output<FileUploadErrorEvent>();\n /**\n * Callback to invoke when files in queue are removed without uploading using clear all button.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onClear = output<void>();\n /**\n * Callback to invoke when a file is removed without uploading using clear button of a file.\n * @param {FileRemoveEvent} event - Remove event.\n * @group Emits\n */\n onRemove = output<FileRemoveEvent>();\n /**\n * Callback to invoke when files are selected.\n * @param {FileSelectEvent} event - Select event.\n * @group Emits\n */\n onSelect = output<FileSelectEvent>();\n /**\n * Callback to invoke when files are being uploaded.\n * @param {FileProgressEvent} event - Progress event.\n * @group Emits\n */\n onProgress = output<FileProgressEvent>();\n /**\n * Callback to invoke in custom upload mode to upload the files manually.\n * @param {FileUploadHandlerEvent} event - Upload handler event.\n * @group Emits\n */\n uploadHandler = output<FileUploadHandlerEvent>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onImageError = output<Event>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {RemoveUploadedFileEvent} event - Remove event.\n * @group Emits\n */\n onRemoveUploadedFile = output<RemoveUploadedFileEvent>();\n\n /**\n * Custom file template.\n * @group Templates\n */\n fileTemplate = contentChild<TemplateRef<FileUploadFileTemplateContext>>('file', { descendants: false });\n\n /**\n * Custom header template.\n * @param {FileUploadHeaderTemplateContext} context - header template context.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<FileUploadHeaderTemplateContext>>('header', { descendants: false });\n\n /**\n * Custom content template.\n * @param {FileUploadContentTemplateContext} context - content template context.\n * @group Templates\n */\n contentTemplate = contentChild<TemplateRef<FileUploadContentTemplateContext>>('content', { descendants: false });\n\n /**\n * Custom toolbar template.\n * @group Templates\n */\n toolbarTemplate = contentChild<TemplateRef<void>>('toolbar', { descendants: false });\n\n /**\n * Custom choose icon template.\n * @group Templates\n */\n chooseIconTemplate = contentChild<TemplateRef<void>>('chooseicon', { descendants: false });\n\n /**\n * Custom file label template.\n * @param {FileUploadFileLabelTemplateContext} context - file label template context.\n * @group Templates\n */\n fileLabelTemplate = contentChild<TemplateRef<FileUploadFileLabelTemplateContext>>('filelabel', { descendants: false });\n\n /**\n * Custom upload icon template.\n * @group Templates\n */\n uploadIconTemplate = contentChild<TemplateRef<void>>('uploadicon', { descendants: false });\n\n /**\n * Custom cancel icon template.\n * @group Templates\n */\n cancelIconTemplate = contentChild<TemplateRef<void>>('cancelicon', { descendants: false });\n\n /**\n * Custom empty state template.\n * @group Templates\n */\n emptyTemplate = contentChild<TemplateRef<void>>('empty', { descendants: false });\n\n isAdvancedMode = computed(() => this.mode() === 'advanced');\n\n isBasicMode = computed(() => this.mode() === 'basic');\n\n showUploadBtn = computed(() => !this.auto() && this.showUploadButton());\n\n showCancelBtn = computed(() => !this.auto() && this.showCancelButton());\n\n chooseButtonDisabled = computed(() => this.disabled() || this.isChooseDisabled());\n\n uploadButtonDisabled = computed(() => !this.hasFiles() || this.isFileLimitExceeded());\n\n cancelButtonDisabled = computed(() => !this.hasFiles() || this.uploading());\n\n showEmpty = computed(() => !!this.emptyTemplate() && !this.hasFiles() && !this.hasUploadedFiles());\n\n get headerTemplateContext(): FileUploadHeaderTemplateContext {\n return {\n $implicit: this.files,\n uploadedFiles: this.uploadedFiles(),\n chooseCallback: this.choose.bind(this),\n clearCallback: this.clear.bind(this),\n uploadCallback: this.upload.bind(this)\n };\n }\n\n get contentTemplateContext(): FileUploadContentTemplateContext {\n return {\n $implicit: this.files,\n uploadedFiles: this.uploadedFiles(),\n chooseCallback: this.choose.bind(this),\n clearCallback: this.clear.bind(this),\n removeUploadedFileCallback: this.removeUploadedFile.bind(this),\n removeFileCallback: this.remove.bind(this),\n progress: this.progress(),\n messages: this.msgs()\n };\n }\n\n get fileLabelTemplateContext(): FileUploadFileLabelTemplateContext {\n return {\n $implicit: this.files\n };\n }\n\n advancedFileInput = viewChild<ElementRef>('advancedfileinput');\n\n basicFileInput = viewChild<ElementRef>('basicfileinput');\n\n contentEl = viewChild<ElementRef>('content');\n\n /**\n * Files input.\n * @group Props\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n filesInput = input<File[]>([], { alias: 'files' });\n\n get files(): File[] {\n return this._files();\n }\n\n set files(value: File[]) {\n this._files.set(value);\n }\n\n public get basicButtonLabel(): string {\n if (this.auto() || !this.hasFiles()) {\n return this.chooseLabel() as string;\n }\n\n return this.uploadLabel() ?? this.files[0].name;\n }\n\n public _files = signal<File[]>([]);\n\n public progress = signal(0);\n\n public dragHighlight = signal(false);\n\n public msgs = signal<FileUploadMessage[]>([]);\n\n public uploadedFileCount: number = 0;\n\n focus = signal(false);\n\n uploading = signal(false);\n\n duplicateIEEvent: boolean | undefined; // flag to recognize duplicate onchange event for file input\n\n translationSubscription: Subscription | undefined;\n\n dragOverListener: VoidListener;\n\n public uploadedFiles = signal<File[]>([]);\n\n sanitizer = inject(DomSanitizer);\n\n http = inject(HttpClient);\n\n _componentStyle = inject(FileUploadStyle);\n\n constructor() {\n super();\n\n effect(() => {\n const inputFiles = this.filesInput();\n\n if (inputFiles && inputFiles.length > 0) {\n const newFiles: File[] = [];\n\n for (let i = 0; i < inputFiles.length; i++) {\n let file = inputFiles[i];\n\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (file as any).objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(inputFiles[i]));\n }\n\n newFiles.push(inputFiles[i]);\n }\n }\n\n this._files.set(newFiles);\n }\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n }\n\n onInit() {\n this.translationSubscription = this.config.translationObserver.subscribe(() => {\n this.cd.markForCheck();\n });\n }\n\n onAfterViewInit() {\n if (isPlatformBrowser(this.platformId)) {\n if (this.mode() === 'advanced') {\n const contentEl = this.contentEl();\n\n if (contentEl) {\n this.dragOverListener = this.renderer.listen(contentEl.nativeElement, 'dragover', this.onDragOver.bind(this));\n }\n }\n }\n }\n\n basicFileChosenLabel() {\n if (this.auto()) return this.chooseButtonLabel;\n else if (this.hasFiles()) {\n if (this.files && this.files.length === 1) return this.files[0].name;\n\n return this.translate('fileChosenMessage')?.replace('{0}', this.files.length.toString());\n }\n\n return this.translate('noFileChosenMessage') || '';\n }\n\n completedLabel() {\n return this.translate('completed') || '';\n }\n\n choose() {\n this.advancedFileInput()?.nativeElement.click();\n }\n\n onFileSelect(event: Event) {\n if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {\n this.duplicateIEEvent = false;\n\n return;\n }\n\n if (!this.multiple()) {\n this.files = [];\n }\n\n this.msgs.set([]);\n this.files = this.files || [];\n let files = (event as DragEvent).dataTransfer ? (event as DragEvent).dataTransfer!.files : (event.target as HTMLInputElement).files!;\n\n for (let i = 0; i < files.length; i++) {\n let file = files[i];\n\n if (!this.isFileSelected(file)) {\n if (this.validate(file)) {\n if (this.isImage(file)) {\n (file as any).objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));\n }\n\n this.files.push(files[i]);\n }\n }\n }\n\n this.files = [...this.files];\n this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });\n\n // this will check the fileLimit with the uploaded files\n this.checkFileLimit(files);\n\n if (this.hasFiles() && this.auto() && (this.mode() !== 'advanced' || !this.isFileLimitExceeded())) {\n this.upload();\n }\n\n if (event.type !== 'drop' && this.isIE11()) {\n this.clearIEInput();\n } else {\n this.clearInputElement();\n }\n }\n\n isFileSelected(file: File): boolean {\n for (let sFile of this.files) {\n if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {\n return true;\n }\n }\n\n return false;\n }\n\n isIE11() {\n if (isPlatformBrowser(this.platformId)) {\n return !!(this.document.defaultView as any)['MSInputMethodContext'] && !!(this.document as any)['documentMode'];\n }\n }\n\n validate(file: File): boolean {\n const acceptVal = this.accept();\n\n if (acceptVal && !this.isFileTypeValid(file)) {\n const text = `${this.invalidFileTypeMessageSummary().replace('{0}', file.name)} ${this.invalidFileTypeMessageDetail().replace('{0}', acceptVal)}`;\n\n this.msgs.update((msgs) => [...msgs, { severity: 'error', text }]);\n\n return false;\n }\n\n const maxFileSizeVal = this.maxFileSize();\n\n if (maxFileSizeVal && file.size > maxFileSizeVal) {\n const text = `${this.invalidFileSizeMessageSummary().replace('{0}', file.name)} ${this.invalidFileSizeMessageDetail().replace('{0}', this.formatSize(maxFileSizeVal))}`;\n\n this.msgs.update((msgs) => [...msgs, { severity: 'error', text }]);\n\n return false;\n }\n\n return true;\n }\n\n private isFileTypeValid(file: File): boolean {\n const acceptVal = this.accept();\n let acceptableTypes = acceptVal?.split(',').map((type) => type.trim());\n\n for (let type of acceptableTypes!) {\n let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();\n\n if (acceptable) {\n return true;\n }\n }\n\n return false;\n }\n\n getTypeClass(fileType: string): string {\n return fileType.substring(0, fileType.indexOf('/'));\n }\n\n isWildcard(fileType: string): boolean {\n return fileType.indexOf('*') !== -1;\n }\n\n getFileExtension(file: File): string {\n return '.' + file.name.split('.').pop();\n }\n\n isImage(file: File): boolean {\n return /^image\\//.test(file.type);\n }\n\n onImageLoad(img: HTMLImageElement) {\n window.URL.revokeObjectURL(img.src);\n }\n /**\n * Uploads the selected files.\n * @group Method\n */\n uploader() {\n if (this.customUpload()) {\n const fileLimitVal = this.fileLimit();\n\n if (fileLimitVal) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.uploadHandler.emit({\n files: this.files\n });\n } else {\n this.uploading.set(true);\n this.msgs.set([]);\n let formData = new FormData();\n\n this.onBeforeUpload.emit({\n formData: formData\n });\n\n const nameVal = this.name();\n\n for (let i = 0; i < this.files.length; i++) {\n formData.append(nameVal!, this.files[i], this.files[i].name);\n }\n\n this.http\n .request(this.method(), this.url() as string, {\n body: formData,\n headers: this.headers(),\n reportProgress: true,\n observe: 'events',\n withCredentials: this.withCredentials()\n })\n .subscribe({\n next: (event: HttpEvent<any>) => {\n switch (event.type) {\n case HttpEventType.Sent:\n this.onSend.emit({\n originalEvent: event,\n formData: formData\n });\n break;\n case HttpEventType.Response:\n this.uploading.set(false);\n this.progress.set(0);\n\n if (event['status'] >= 200 && event['status'] < 300) {\n const fileLimitVal = this.fileLimit();\n\n if (fileLimitVal) {\n this.uploadedFileCount += this.files.length;\n }\n\n this.onUpload.emit({ originalEvent: event, files: this.files });\n } else {\n this.onError.emit({ files: this.files });\n }\n\n this.uploadedFiles.update((files) => [...files, ...this.files]);\n this.clear();\n break;\n\n case HttpEventType.UploadProgress: {\n if (event['loaded']) {\n this.progress.set(Math.round((event['loaded'] * 100) / event['total']!));\n }\n\n this.onProgress.emit({ originalEvent: event, progress: this.progress() });\n break;\n }\n }\n },\n error: (error: ErrorEvent) => {\n this.uploading.set(false);\n this.onError.emit({ files: this.files, error: error });\n }\n });\n }\n }\n onRemoveClick(e: FileContentRemoveEvent) {\n const { event, index } = e;\n\n if (this.hasFiles()) {\n this.remove(event, index);\n }\n }\n onRemoveUploadedFileClick(e: Pick<FileContentRemoveEvent, 'index'>) {\n const { index } = e;\n\n if (this.hasUploadedFiles()) {\n this.removeUploadedFile(index);\n }\n }\n /**\n * Clears the files list.\n * @group Method\n */\n clear() {\n this.files = [];\n this.onClear.emit();\n this.clearInputElement();\n this.msgs.set([]);\n }\n /**\n * Removes a single file.\n * @param {Event} event - Browser event.\n * @param {Number} index - Index of the file.\n * @group Method\n */\n remove(event: Event, index: number) {\n this.clearInputElement();\n this.onRemove.emit({ originalEvent: event, file: this.files[index] });\n this.files.splice(index, 1);\n this.files = [...this.files];\n this.checkFileLimit(this.files);\n }\n /**\n * Removes uploaded file.\n * @param {Number} index - Index of the file to be removed.\n * @group Method\n */\n removeUploadedFile(index: number) {\n const currentFiles = this.uploadedFiles();\n const removedFile = currentFiles[index];\n\n this.uploadedFiles.set(currentFiles.filter((_, i) => i !== index));\n this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles() });\n }\n\n isFileLimitExceeded() {\n const isAutoMode = this.auto();\n const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;\n const fileLimitVal = this.fileLimit();\n\n if (fileLimitVal && fileLimitVal <= totalFileCount && this.focus()) {\n this.focus.set(false);\n }\n\n return fileLimitVal && fileLimitVal < totalFileCount;\n }\n\n isChooseDisabled() {\n const fileLimitVal = this.fileLimit();\n\n if (this.auto()) {\n return fileLimitVal && fileLimitVal <= this.files.length;\n } else {\n return fileLimitVal && fileLimitVal <= this.files.length + this.uploadedFileCount;\n }\n }\n\n checkFileLimit(files: FileList | File[]) {\n const fileLimitVal = this.fileLimit();\n const currentMsgs = this.msgs();\n const hasExistingValidationMessages = currentMsgs.length > 0 && fileLimitVal && fileLimitVal < files.length;\n\n if (this.isFileLimitExceeded() || hasExistingValidationMessages) {\n const text = `${this.invalidFileLimitMessageSummary().replace('{0}', (fileLimitVal as number).toString())} ${this.invalidFileLimitMessageDetail().replace('{0}', (fileLimitVal as number).toString())}`;\n\n this.msgs.update((msgs) => [...msgs, { severity: 'error', text }]);\n } else {\n this.msgs.update((msgs) => msgs.filter((msg) => !msg.text.includes(this.invalidFileLimitMessageSummary())));\n }\n }\n\n clearInputElement() {\n const advancedInput = this.advancedFileInput();\n\n if (advancedInput && advancedInput.nativeElement) {\n advancedInput.nativeElement.value = '';\n }\n\n const basicInput = this.basicFileInput();\n\n if (basicInput && basicInput.nativeElement) {\n basicInput.nativeElement.value = '';\n }\n }\n\n clearIEInput() {\n const advancedInput = this.advancedFileInput();\n\n if (advancedInput && advancedInput.nativeElement) {\n this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again\n advancedInput.nativeElement.value = '';\n }\n }\n\n hasFiles(): boolean {\n return this.files && this.files.length > 0;\n }\n\n hasUploadedFiles() {\n return this.uploadedFiles().length > 0;\n }\n\n getFileTemplateContext(file: File): FileUploadFileTemplateContext {\n return { $implicit: file };\n }\n\n onDragEnter(e: DragEvent) {\n if (!this.disabled()) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragOver(e: DragEvent) {\n if (!this.disabled()) {\n const contentEl = this.contentEl();\n\n if (!this.$unstyled()) {\n addClass(contentEl?.nativeElement, 'p-fileupload-highlight');\n }\n\n contentEl?.nativeElement.setAttribute('data-p-highlight', true);\n this.dragHighlight.set(true);\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n onDragLeave(_event: DragEvent) {\n if (!this.disabled()) {\n const contentEl = this.contentEl();\n\n if (!this.$unstyled()) {\n removeClass(contentEl?.nativeElement, 'p-fileupload-highlight');\n }\n\n contentEl?.nativeElement.setAttribute('data-p-highlight', false);\n }\n }\n\n onDrop(event: DragEvent) {\n if (!this.disabled()) {\n const contentEl = this.contentEl();\n\n if (!this.$unstyled()) {\n removeClass(contentEl?.nativeElement, 'p-fileupload-highlight');\n }\n\n contentEl?.nativeElement.setAttribute('data-p-highlight', false);\n event.stopPropagation();\n event.preventDefault();\n\n let files = event.dataTransfer ? event.dataTransfer.files : (event.target as HTMLInputElement).files;\n let allowDrop = this.multiple() || (files && files.length === 1);\n\n if (allowDrop) {\n this.onFileSelect(event);\n }\n }\n }\n\n onFocus() {\n this.focus.set(true);\n }\n\n onBlur() {\n this.focus.set(false);\n }\n\n formatSize(bytes: number) {\n const k = 1024;\n const dm = 3;\n const sizes = this.translate(TranslationKeys.FILE_SIZE_TYPES);\n\n if (bytes === 0) {\n return `0 ${sizes[0]}`;\n }\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);\n\n return `${formattedSize} ${sizes[i]}`;\n }\n\n upload() {\n if (this.hasFiles()) this.uploader();\n }\n\n onBasicUploaderClick() {\n this.basicFileInput()?.nativeElement.click();\n }\n\n onBasicKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n this.onBasicUploaderClick();\n\n event.preventDefault();\n break;\n }\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n get chooseButtonLabel(): string {\n return this.chooseLabel() || this.translate(TranslationKeys.CHOOSE);\n }\n\n get uploadButtonLabel(): string {\n return this.uploadLabel() || this.translate(TranslationKeys.UPLOAD);\n }\n\n get cancelButtonLabel(): string {\n return this.cancelLabel() || this.translate(TranslationKeys.CANCEL);\n }\n\n get browseFilesLabel(): string {\n return this.translate(TranslationKeys.ARIA, TranslationKeys.BROWSE_FILES);\n }\n\n get pendingLabel() {\n return this.translate(TranslationKeys.PENDING);\n }\n\n onDestroy() {\n const contentEl = this.contentEl();\n\n if (contentEl && contentEl.nativeElement) {\n if (this.dragOverListener) {\n this.dragOverListener();\n this.dragOverListener = null;\n }\n }\n\n if (this.translationSubscription) {\n this.translationSubscription.unsubscribe();\n }\n }\n}\n\n@NgModule({\n imports: [FileUpload, SharedModule],\n exports: [FileUpload, SharedModule]\n})\nexport class FileUploadModule {}\n"],"mappings":"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"}
|