primeng 22.1.2 → 22.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/primeng-accordion.mjs +23 -24
- package/fesm2022/primeng-animateonscroll.mjs +9 -10
- package/fesm2022/primeng-api.mjs +31 -32
- package/fesm2022/primeng-autocomplete.mjs +17 -18
- package/fesm2022/primeng-autofocus.mjs +7 -8
- package/fesm2022/primeng-avatar.mjs +10 -11
- package/fesm2022/primeng-avatargroup.mjs +10 -11
- package/fesm2022/primeng-badge.mjs +10 -11
- package/fesm2022/primeng-base.mjs +41 -31
- package/fesm2022/primeng-basecomponent.mjs +108 -44
- package/fesm2022/primeng-baseeditableholder.mjs +3 -4
- package/fesm2022/primeng-baseinput.mjs +3 -4
- package/fesm2022/primeng-basemodelholder.mjs +3 -4
- package/fesm2022/primeng-bind.mjs +10 -9
- package/fesm2022/primeng-blockui.mjs +23 -24
- package/fesm2022/primeng-breadcrumb.mjs +10 -11
- package/fesm2022/primeng-button.mjs +33 -39
- package/fesm2022/primeng-buttongroup.mjs +12 -13
- package/fesm2022/primeng-card.mjs +10 -11
- package/fesm2022/primeng-carousel.mjs +47 -46
- package/fesm2022/primeng-cascadeselect.mjs +23 -24
- package/fesm2022/primeng-chart.mjs +10 -11
- package/fesm2022/primeng-checkbox.mjs +10 -11
- package/fesm2022/primeng-chip.mjs +10 -11
- package/fesm2022/primeng-classnames.mjs +7 -8
- package/fesm2022/primeng-colorpicker.mjs +10 -11
- package/fesm2022/primeng-commandmenu.mjs +12 -13
- package/fesm2022/primeng-compare.mjs +19 -20
- package/fesm2022/primeng-config.mjs +39 -18
- package/fesm2022/primeng-confirmdialog.mjs +29 -21
- package/fesm2022/primeng-confirmpopup.mjs +22 -21
- package/fesm2022/primeng-contextmenu.mjs +29 -28
- package/fesm2022/primeng-dataview.mjs +10 -11
- package/fesm2022/primeng-datepicker.mjs +110 -87
- package/fesm2022/primeng-dialog.mjs +46 -34
- package/fesm2022/primeng-divider.mjs +10 -11
- package/fesm2022/primeng-dock.mjs +12 -13
- package/fesm2022/primeng-dom.mjs +18 -6
- package/fesm2022/primeng-dragdrop.mjs +15 -14
- package/fesm2022/primeng-drawer.mjs +20 -22
- package/fesm2022/primeng-dynamicdialog.mjs +23 -22
- package/fesm2022/primeng-editor.mjs +10 -11
- package/fesm2022/primeng-fieldset.mjs +13 -15
- package/fesm2022/primeng-fileupload.mjs +24 -25
- package/fesm2022/primeng-floatlabel.mjs +10 -11
- package/fesm2022/primeng-fluid.mjs +10 -11
- package/fesm2022/primeng-focustrap.mjs +11 -12
- package/fesm2022/primeng-galleria.mjs +40 -37
- package/fesm2022/primeng-gallery.mjs +73 -74
- package/fesm2022/primeng-iconfield.mjs +10 -11
- package/fesm2022/primeng-icons-angledoubledown.mjs +3 -4
- package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -4
- package/fesm2022/primeng-icons-angledoubleright.mjs +3 -4
- package/fesm2022/primeng-icons-angledoubleup.mjs +3 -4
- package/fesm2022/primeng-icons-angledown.mjs +3 -4
- package/fesm2022/primeng-icons-angleleft.mjs +3 -4
- package/fesm2022/primeng-icons-angleright.mjs +3 -4
- package/fesm2022/primeng-icons-angleup.mjs +3 -4
- package/fesm2022/primeng-icons-arrowdown.mjs +4 -6
- package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -4
- package/fesm2022/primeng-icons-arrowdownright.mjs +3 -4
- package/fesm2022/primeng-icons-arrowleft.mjs +4 -6
- package/fesm2022/primeng-icons-arrowright.mjs +3 -4
- package/fesm2022/primeng-icons-arrowup.mjs +4 -6
- package/fesm2022/primeng-icons-ban.mjs +4 -6
- package/fesm2022/primeng-icons-bars.mjs +3 -4
- package/fesm2022/primeng-icons-baseicon.mjs +6 -7
- package/fesm2022/primeng-icons-blank.mjs +3 -4
- package/fesm2022/primeng-icons-calendar.mjs +3 -4
- package/fesm2022/primeng-icons-caretleft.mjs +3 -4
- package/fesm2022/primeng-icons-caretright.mjs +3 -4
- package/fesm2022/primeng-icons-check.mjs +3 -4
- package/fesm2022/primeng-icons-chevrondown.mjs +3 -4
- package/fesm2022/primeng-icons-chevronleft.mjs +3 -4
- package/fesm2022/primeng-icons-chevronright.mjs +3 -4
- package/fesm2022/primeng-icons-chevronup.mjs +3 -4
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +4 -6
- package/fesm2022/primeng-icons-eye.mjs +3 -4
- package/fesm2022/primeng-icons-eyeslash.mjs +4 -6
- package/fesm2022/primeng-icons-filter.mjs +4 -6
- package/fesm2022/primeng-icons-filterfill.mjs +3 -4
- package/fesm2022/primeng-icons-filterslash.mjs +4 -6
- package/fesm2022/primeng-icons-home.mjs +4 -6
- package/fesm2022/primeng-icons-infocircle.mjs +4 -6
- package/fesm2022/primeng-icons-minus.mjs +3 -4
- package/fesm2022/primeng-icons-pencil.mjs +4 -6
- package/fesm2022/primeng-icons-plus.mjs +4 -6
- package/fesm2022/primeng-icons-refresh.mjs +4 -6
- package/fesm2022/primeng-icons-search.mjs +4 -6
- package/fesm2022/primeng-icons-searchminus.mjs +4 -6
- package/fesm2022/primeng-icons-searchplus.mjs +4 -6
- package/fesm2022/primeng-icons-sortalt.mjs +4 -6
- package/fesm2022/primeng-icons-sortamountdown.mjs +4 -6
- package/fesm2022/primeng-icons-sortamountupalt.mjs +4 -6
- package/fesm2022/primeng-icons-spinner.mjs +4 -6
- package/fesm2022/primeng-icons-star.mjs +4 -6
- package/fesm2022/primeng-icons-starfill.mjs +4 -6
- package/fesm2022/primeng-icons-thlarge.mjs +4 -6
- package/fesm2022/primeng-icons-times.mjs +3 -4
- package/fesm2022/primeng-icons-timescircle.mjs +4 -6
- package/fesm2022/primeng-icons-trash.mjs +4 -6
- package/fesm2022/primeng-icons-undo.mjs +4 -6
- package/fesm2022/primeng-icons-upload.mjs +4 -6
- package/fesm2022/primeng-icons-windowmaximize.mjs +4 -6
- package/fesm2022/primeng-icons-windowminimize.mjs +4 -6
- package/fesm2022/primeng-iftalabel.mjs +10 -11
- package/fesm2022/primeng-image.mjs +34 -20
- package/fesm2022/primeng-imagecompare.mjs +10 -11
- package/fesm2022/primeng-inplace.mjs +16 -17
- package/fesm2022/primeng-inputcolor.mjs +46 -51
- package/fesm2022/primeng-inputgroup.mjs +10 -11
- package/fesm2022/primeng-inputgroupaddon.mjs +10 -11
- package/fesm2022/primeng-inputicon.mjs +10 -11
- package/fesm2022/primeng-inputmask.mjs +15 -16
- package/fesm2022/primeng-inputnumber.mjs +10 -11
- package/fesm2022/primeng-inputotp.mjs +10 -11
- package/fesm2022/primeng-inputpassword.mjs +10 -11
- package/fesm2022/primeng-inputtags.mjs +12 -13
- package/fesm2022/primeng-inputtext.mjs +10 -11
- package/fesm2022/primeng-isolation.mjs +280 -0
- package/fesm2022/primeng-keyfilter.mjs +7 -8
- package/fesm2022/primeng-knob.mjs +13 -15
- package/fesm2022/primeng-label.mjs +10 -11
- package/fesm2022/primeng-license.mjs +0 -1
- package/fesm2022/primeng-listbox.mjs +32 -29
- package/fesm2022/primeng-megamenu.mjs +30 -34
- package/fesm2022/primeng-menu.mjs +36 -43
- package/fesm2022/primeng-menubar.mjs +26 -24
- package/fesm2022/primeng-message.mjs +16 -19
- package/fesm2022/primeng-metergroup.mjs +13 -14
- package/fesm2022/primeng-motion.mjs +13 -14
- package/fesm2022/primeng-multiselect.mjs +34 -27
- package/fesm2022/primeng-orderlist.mjs +31 -23
- package/fesm2022/primeng-organizationchart.mjs +13 -14
- package/fesm2022/primeng-overlay.mjs +24 -22
- package/fesm2022/primeng-overlaybadge.mjs +10 -11
- package/fesm2022/primeng-paginator.mjs +13 -11
- package/fesm2022/primeng-panel.mjs +13 -15
- package/fesm2022/primeng-panelmenu.mjs +22 -23
- package/fesm2022/primeng-passthrough.mjs +0 -1
- package/fesm2022/primeng-password.mjs +29 -30
- package/fesm2022/primeng-picklist.mjs +28 -20
- package/fesm2022/primeng-popover.mjs +21 -21
- package/fesm2022/primeng-progressbar.mjs +10 -11
- package/fesm2022/primeng-progressspinner.mjs +10 -11
- package/fesm2022/primeng-radiobutton.mjs +13 -14
- package/fesm2022/primeng-rating.mjs +14 -16
- package/fesm2022/primeng-ripple.mjs +24 -23
- package/fesm2022/primeng-scrollarea.mjs +25 -26
- package/fesm2022/primeng-scroller.mjs +16 -14
- package/fesm2022/primeng-scrollpanel.mjs +23 -24
- package/fesm2022/primeng-scrolltop.mjs +12 -13
- package/fesm2022/primeng-select.mjs +243 -146
- package/fesm2022/primeng-selectbutton.mjs +10 -11
- package/fesm2022/primeng-sidebar.mjs +82 -84
- package/fesm2022/primeng-skeleton.mjs +10 -11
- package/fesm2022/primeng-slider.mjs +10 -11
- package/fesm2022/primeng-speeddial.mjs +20 -19
- package/fesm2022/primeng-splitbutton.mjs +11 -13
- package/fesm2022/primeng-splitter.mjs +13 -14
- package/fesm2022/primeng-stepper.mjs +47 -48
- package/fesm2022/primeng-steps.mjs +10 -11
- package/fesm2022/primeng-styleclass.mjs +10 -9
- package/fesm2022/primeng-table.mjs +183 -162
- package/fesm2022/primeng-tabs.mjs +36 -37
- package/fesm2022/primeng-tag.mjs +10 -11
- package/fesm2022/primeng-terminal.mjs +13 -14
- package/fesm2022/primeng-textarea.mjs +10 -11
- package/fesm2022/primeng-tieredmenu.mjs +26 -26
- package/fesm2022/primeng-timeline.mjs +10 -11
- package/fesm2022/primeng-toast.mjs +48 -33
- package/fesm2022/primeng-togglebutton.mjs +10 -11
- package/fesm2022/primeng-toggleswitch.mjs +10 -11
- package/fesm2022/primeng-toolbar.mjs +10 -11
- package/fesm2022/primeng-tooltip.mjs +24 -25
- package/fesm2022/primeng-tree.mjs +19 -20
- package/fesm2022/primeng-treeselect.mjs +18 -19
- package/fesm2022/primeng-treetable.mjs +93 -88
- package/fesm2022/primeng-useid.mjs +38 -0
- package/fesm2022/primeng-usestyle.mjs +265 -44
- package/fesm2022/primeng-utils.mjs +33 -2
- package/fesm2022/primeng.mjs +0 -1
- package/package.json +12 -4
- package/types/primeng-accordion.d.ts +0 -9
- package/types/primeng-animateonscroll.d.ts +2 -1
- package/types/primeng-api.d.ts +3 -1
- package/types/primeng-autocomplete.d.ts +1 -3
- package/types/primeng-base.d.ts +3 -1
- package/types/primeng-basecomponent.d.ts +34 -16
- package/types/primeng-button.d.ts +9 -12
- package/types/primeng-carousel.d.ts +3 -25
- package/types/primeng-compare.d.ts +0 -9
- package/types/primeng-config.d.ts +27 -2
- package/types/primeng-confirmdialog.d.ts +1 -0
- package/types/primeng-confirmpopup.d.ts +1 -3
- package/types/primeng-datepicker.d.ts +2 -12
- package/types/primeng-dialog.d.ts +1 -0
- package/types/primeng-dom.d.ts +6 -11
- package/types/primeng-dragdrop.d.ts +1 -0
- package/types/primeng-dynamicdialog.d.ts +3 -1
- package/types/primeng-focustrap.d.ts +1 -1
- package/types/primeng-gallery.d.ts +0 -63
- package/types/primeng-inputcolor.d.ts +0 -33
- package/types/primeng-isolation.d.ts +21 -0
- package/types/primeng-listbox.d.ts +1 -0
- package/types/primeng-megamenu.d.ts +5 -1
- package/types/primeng-menu.d.ts +6 -7
- package/types/primeng-motion.d.ts +2 -7
- package/types/primeng-multiselect.d.ts +3 -1
- package/types/primeng-orderlist.d.ts +1 -0
- package/types/primeng-picklist.d.ts +1 -0
- package/types/primeng-scrollarea.d.ts +0 -15
- package/types/primeng-scroller.d.ts +2 -1
- package/types/primeng-select.d.ts +54 -13
- package/types/primeng-sidebar.d.ts +0 -69
- package/types/primeng-splitter.d.ts +0 -3
- package/types/primeng-stepper.d.ts +2 -19
- package/types/primeng-table.d.ts +2 -75
- package/types/primeng-tabs.d.ts +2 -16
- package/types/primeng-toast.d.ts +4 -2
- package/types/primeng-treetable.d.ts +4 -92
- package/types/primeng-types-listbox.d.ts +1 -1
- package/types/primeng-types-select.d.ts +4 -0
- package/types/primeng-useid.d.ts +15 -0
- package/types/primeng-usestyle.d.ts +87 -7
- package/types/primeng-utils.d.ts +42 -0
- package/fesm2022/primeng-accordion.mjs.map +0 -1
- package/fesm2022/primeng-animateonscroll.mjs.map +0 -1
- package/fesm2022/primeng-api.mjs.map +0 -1
- package/fesm2022/primeng-autocomplete.mjs.map +0 -1
- package/fesm2022/primeng-autofocus.mjs.map +0 -1
- package/fesm2022/primeng-avatar.mjs.map +0 -1
- package/fesm2022/primeng-avatargroup.mjs.map +0 -1
- package/fesm2022/primeng-badge.mjs.map +0 -1
- package/fesm2022/primeng-base.mjs.map +0 -1
- package/fesm2022/primeng-basecomponent.mjs.map +0 -1
- package/fesm2022/primeng-baseeditableholder.mjs.map +0 -1
- package/fesm2022/primeng-baseinput.mjs.map +0 -1
- package/fesm2022/primeng-basemodelholder.mjs.map +0 -1
- package/fesm2022/primeng-bind.mjs.map +0 -1
- package/fesm2022/primeng-blockui.mjs.map +0 -1
- package/fesm2022/primeng-breadcrumb.mjs.map +0 -1
- package/fesm2022/primeng-button.mjs.map +0 -1
- package/fesm2022/primeng-buttongroup.mjs.map +0 -1
- package/fesm2022/primeng-card.mjs.map +0 -1
- package/fesm2022/primeng-carousel.mjs.map +0 -1
- package/fesm2022/primeng-cascadeselect.mjs.map +0 -1
- package/fesm2022/primeng-chart.mjs.map +0 -1
- package/fesm2022/primeng-checkbox.mjs.map +0 -1
- package/fesm2022/primeng-chip.mjs.map +0 -1
- package/fesm2022/primeng-classnames.mjs.map +0 -1
- package/fesm2022/primeng-colorpicker.mjs.map +0 -1
- package/fesm2022/primeng-commandmenu.mjs.map +0 -1
- package/fesm2022/primeng-compare.mjs.map +0 -1
- package/fesm2022/primeng-config.mjs.map +0 -1
- package/fesm2022/primeng-confirmdialog.mjs.map +0 -1
- package/fesm2022/primeng-confirmpopup.mjs.map +0 -1
- package/fesm2022/primeng-contextmenu.mjs.map +0 -1
- package/fesm2022/primeng-dataview.mjs.map +0 -1
- package/fesm2022/primeng-datepicker.mjs.map +0 -1
- package/fesm2022/primeng-dialog.mjs.map +0 -1
- package/fesm2022/primeng-divider.mjs.map +0 -1
- package/fesm2022/primeng-dock.mjs.map +0 -1
- package/fesm2022/primeng-dom.mjs.map +0 -1
- package/fesm2022/primeng-dragdrop.mjs.map +0 -1
- package/fesm2022/primeng-drawer.mjs.map +0 -1
- package/fesm2022/primeng-dynamicdialog.mjs.map +0 -1
- package/fesm2022/primeng-editor.mjs.map +0 -1
- package/fesm2022/primeng-fieldset.mjs.map +0 -1
- package/fesm2022/primeng-fileupload.mjs.map +0 -1
- package/fesm2022/primeng-floatlabel.mjs.map +0 -1
- package/fesm2022/primeng-fluid.mjs.map +0 -1
- package/fesm2022/primeng-focustrap.mjs.map +0 -1
- package/fesm2022/primeng-galleria.mjs.map +0 -1
- package/fesm2022/primeng-gallery.mjs.map +0 -1
- package/fesm2022/primeng-iconfield.mjs.map +0 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +0 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +0 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +0 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +0 -1
- package/fesm2022/primeng-icons-angledown.mjs.map +0 -1
- package/fesm2022/primeng-icons-angleleft.mjs.map +0 -1
- package/fesm2022/primeng-icons-angleright.mjs.map +0 -1
- package/fesm2022/primeng-icons-angleup.mjs.map +0 -1
- package/fesm2022/primeng-icons-arrowdown.mjs.map +0 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +0 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +0 -1
- package/fesm2022/primeng-icons-arrowleft.mjs.map +0 -1
- package/fesm2022/primeng-icons-arrowright.mjs.map +0 -1
- package/fesm2022/primeng-icons-arrowup.mjs.map +0 -1
- package/fesm2022/primeng-icons-ban.mjs.map +0 -1
- package/fesm2022/primeng-icons-bars.mjs.map +0 -1
- package/fesm2022/primeng-icons-baseicon.mjs.map +0 -1
- package/fesm2022/primeng-icons-blank.mjs.map +0 -1
- package/fesm2022/primeng-icons-calendar.mjs.map +0 -1
- package/fesm2022/primeng-icons-caretleft.mjs.map +0 -1
- package/fesm2022/primeng-icons-caretright.mjs.map +0 -1
- package/fesm2022/primeng-icons-check.mjs.map +0 -1
- package/fesm2022/primeng-icons-chevrondown.mjs.map +0 -1
- package/fesm2022/primeng-icons-chevronleft.mjs.map +0 -1
- package/fesm2022/primeng-icons-chevronright.mjs.map +0 -1
- package/fesm2022/primeng-icons-chevronup.mjs.map +0 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +0 -1
- package/fesm2022/primeng-icons-eye.mjs.map +0 -1
- package/fesm2022/primeng-icons-eyeslash.mjs.map +0 -1
- package/fesm2022/primeng-icons-filter.mjs.map +0 -1
- package/fesm2022/primeng-icons-filterfill.mjs.map +0 -1
- package/fesm2022/primeng-icons-filterslash.mjs.map +0 -1
- package/fesm2022/primeng-icons-home.mjs.map +0 -1
- package/fesm2022/primeng-icons-infocircle.mjs.map +0 -1
- package/fesm2022/primeng-icons-minus.mjs.map +0 -1
- package/fesm2022/primeng-icons-pencil.mjs.map +0 -1
- package/fesm2022/primeng-icons-plus.mjs.map +0 -1
- package/fesm2022/primeng-icons-refresh.mjs.map +0 -1
- package/fesm2022/primeng-icons-search.mjs.map +0 -1
- package/fesm2022/primeng-icons-searchminus.mjs.map +0 -1
- package/fesm2022/primeng-icons-searchplus.mjs.map +0 -1
- package/fesm2022/primeng-icons-sortalt.mjs.map +0 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +0 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +0 -1
- package/fesm2022/primeng-icons-spinner.mjs.map +0 -1
- package/fesm2022/primeng-icons-star.mjs.map +0 -1
- package/fesm2022/primeng-icons-starfill.mjs.map +0 -1
- package/fesm2022/primeng-icons-thlarge.mjs.map +0 -1
- package/fesm2022/primeng-icons-times.mjs.map +0 -1
- package/fesm2022/primeng-icons-timescircle.mjs.map +0 -1
- package/fesm2022/primeng-icons-trash.mjs.map +0 -1
- package/fesm2022/primeng-icons-undo.mjs.map +0 -1
- package/fesm2022/primeng-icons-upload.mjs.map +0 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +0 -1
- package/fesm2022/primeng-icons-windowminimize.mjs.map +0 -1
- package/fesm2022/primeng-iftalabel.mjs.map +0 -1
- package/fesm2022/primeng-image.mjs.map +0 -1
- package/fesm2022/primeng-imagecompare.mjs.map +0 -1
- package/fesm2022/primeng-inplace.mjs.map +0 -1
- package/fesm2022/primeng-inputcolor.mjs.map +0 -1
- package/fesm2022/primeng-inputgroup.mjs.map +0 -1
- package/fesm2022/primeng-inputgroupaddon.mjs.map +0 -1
- package/fesm2022/primeng-inputicon.mjs.map +0 -1
- package/fesm2022/primeng-inputmask.mjs.map +0 -1
- package/fesm2022/primeng-inputnumber.mjs.map +0 -1
- package/fesm2022/primeng-inputotp.mjs.map +0 -1
- package/fesm2022/primeng-inputpassword.mjs.map +0 -1
- package/fesm2022/primeng-inputtags.mjs.map +0 -1
- package/fesm2022/primeng-inputtext.mjs.map +0 -1
- package/fesm2022/primeng-keyfilter.mjs.map +0 -1
- package/fesm2022/primeng-knob.mjs.map +0 -1
- package/fesm2022/primeng-label.mjs.map +0 -1
- package/fesm2022/primeng-license.mjs.map +0 -1
- package/fesm2022/primeng-listbox.mjs.map +0 -1
- package/fesm2022/primeng-megamenu.mjs.map +0 -1
- package/fesm2022/primeng-menu.mjs.map +0 -1
- package/fesm2022/primeng-menubar.mjs.map +0 -1
- package/fesm2022/primeng-message.mjs.map +0 -1
- package/fesm2022/primeng-metergroup.mjs.map +0 -1
- package/fesm2022/primeng-motion.mjs.map +0 -1
- package/fesm2022/primeng-multiselect.mjs.map +0 -1
- package/fesm2022/primeng-orderlist.mjs.map +0 -1
- package/fesm2022/primeng-organizationchart.mjs.map +0 -1
- package/fesm2022/primeng-overlay.mjs.map +0 -1
- package/fesm2022/primeng-overlaybadge.mjs.map +0 -1
- package/fesm2022/primeng-paginator.mjs.map +0 -1
- package/fesm2022/primeng-panel.mjs.map +0 -1
- package/fesm2022/primeng-panelmenu.mjs.map +0 -1
- package/fesm2022/primeng-passthrough.mjs.map +0 -1
- package/fesm2022/primeng-password.mjs.map +0 -1
- package/fesm2022/primeng-picklist.mjs.map +0 -1
- package/fesm2022/primeng-popover.mjs.map +0 -1
- package/fesm2022/primeng-progressbar.mjs.map +0 -1
- package/fesm2022/primeng-progressspinner.mjs.map +0 -1
- package/fesm2022/primeng-radiobutton.mjs.map +0 -1
- package/fesm2022/primeng-rating.mjs.map +0 -1
- package/fesm2022/primeng-ripple.mjs.map +0 -1
- package/fesm2022/primeng-scrollarea.mjs.map +0 -1
- package/fesm2022/primeng-scroller.mjs.map +0 -1
- package/fesm2022/primeng-scrollpanel.mjs.map +0 -1
- package/fesm2022/primeng-scrolltop.mjs.map +0 -1
- package/fesm2022/primeng-select.mjs.map +0 -1
- package/fesm2022/primeng-selectbutton.mjs.map +0 -1
- package/fesm2022/primeng-sidebar.mjs.map +0 -1
- package/fesm2022/primeng-skeleton.mjs.map +0 -1
- package/fesm2022/primeng-slider.mjs.map +0 -1
- package/fesm2022/primeng-speeddial.mjs.map +0 -1
- package/fesm2022/primeng-splitbutton.mjs.map +0 -1
- package/fesm2022/primeng-splitter.mjs.map +0 -1
- package/fesm2022/primeng-stepper.mjs.map +0 -1
- package/fesm2022/primeng-steps.mjs.map +0 -1
- package/fesm2022/primeng-styleclass.mjs.map +0 -1
- package/fesm2022/primeng-table.mjs.map +0 -1
- package/fesm2022/primeng-tabs.mjs.map +0 -1
- package/fesm2022/primeng-tag.mjs.map +0 -1
- package/fesm2022/primeng-terminal.mjs.map +0 -1
- package/fesm2022/primeng-textarea.mjs.map +0 -1
- package/fesm2022/primeng-tieredmenu.mjs.map +0 -1
- package/fesm2022/primeng-timeline.mjs.map +0 -1
- package/fesm2022/primeng-toast.mjs.map +0 -1
- package/fesm2022/primeng-togglebutton.mjs.map +0 -1
- package/fesm2022/primeng-toggleswitch.mjs.map +0 -1
- package/fesm2022/primeng-toolbar.mjs.map +0 -1
- package/fesm2022/primeng-tooltip.mjs.map +0 -1
- package/fesm2022/primeng-tree.mjs.map +0 -1
- package/fesm2022/primeng-treeselect.mjs.map +0 -1
- package/fesm2022/primeng-treetable.mjs.map +0 -1
- package/fesm2022/primeng-usestyle.mjs.map +0 -1
- package/fesm2022/primeng-utils.mjs.map +0 -1
- package/fesm2022/primeng.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-dynamicdialog.mjs","names":[],"sources":["../../src/dynamicdialog/dynamicdialog-config.ts","../../src/dynamicdialog/dynamicdialog-ref.ts","../../src/dynamicdialog/dynamicdialogcontent.ts","../../src/dynamicdialog/style/dynamicdialogstyle.ts","../../src/dynamicdialog/dynamicdialog.ts","../../src/dynamicdialog/dynamicdialog-injector.ts","../../src/dynamicdialog/dialogservice.ts"],"sourcesContent":["import { Type } from '@angular/core';\nimport type { MotionOptions } from '@primeuix/motion';\nimport type { DialogPassThrough, DialogPosition } from 'primeng/types/dialog';\n\n/**\n * Dialogs can be created dynamically with any component as the content using a DialogService.\n * @group Components\n */\nexport class DynamicDialogConfig<DataType = any, InputValuesType extends Record<string, any> = {}> {\n /**\n * An object to pass to the component loaded inside the Dialog.\n * @group Props\n */\n data?: DataType;\n /**\n * An object to pass to the component loaded inside the Dialog.\n * @group Props\n */\n inputValues?: InputValuesType;\n /**\n * Header text of the dialog.\n * @group Props\n */\n header?: string;\n /**\n * Identifies the element (or elements) that labels the element it is applied to.\n * @group Props\n */\n ariaLabelledBy?: string;\n /**\n * Footer text of the dialog.\n * @group Props\n */\n footer?: string;\n /**\n * Width of the dialog.\n * @group Props\n */\n width?: string;\n /**\n * Height of the dialog.\n * @group Props\n */\n height?: string;\n /**\n * Specifies if pressing escape key should hide the dialog.\n * @group Props\n */\n closeOnEscape?: boolean = false;\n /**\n * Specifies if autofocus should happen on show.\n * @group Props\n */\n focusOnShow?: boolean = true;\n /**\n * When enabled, can only focus on elements inside the dialog.\n * @group Props\n */\n focusTrap?: boolean = true;\n /**\n * Base zIndex value to use in layering.\n * @group Props\n */\n baseZIndex?: number;\n /**\n * Whether to re-enforce layering through applying zIndex.\n * @group Props\n */\n autoZIndex?: boolean = false;\n /**\n * Specifies if clicking the modal background should hide the dialog.\n * @group Props\n */\n dismissableMask?: boolean = false;\n /**\n * Inline style of the component.\n * @group Props\n */\n rtl?: boolean = false;\n /**\n * Inline style of the component.\n * @group Props\n */\n style?: { [klass: string]: any } | null | undefined;\n /**\n * Inline style of the content.\n * @group Props\n */\n contentStyle?: { [klass: string]: any } | null | undefined;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass?: string;\n /**\n * The motion options for the dialog.\n * @group Props\n */\n motionOptions?: MotionOptions;\n /**\n * The motion options for the mask.\n * @group Props\n */\n maskMotionOptions?: MotionOptions;\n /**\n * Adds a close icon to the header to hide the dialog.\n * @group Props\n */\n closable?: boolean = false;\n /**\n * Whether to show the header or not.\n * @group Props\n */\n showHeader?: boolean = false;\n /**\n * Defines if background should be blocked when dialog is displayed.\n * @group Props\n */\n modal?: boolean = false;\n /**\n * Style class of the mask.\n * @group Props\n */\n maskStyleClass?: string;\n /**\n * Enables resizing of the content.\n * @group Props\n */\n resizable?: boolean = false;\n /**\n * Enables dragging to change the position using header.\n * @group Props\n */\n draggable?: boolean = false;\n /**\n * Keeps dialog in the viewport.\n * @group Props\n */\n keepInViewport?: boolean = false;\n /**\n * Minimum value for the left coordinate of dialog in dragging.\n * @group Props\n */\n minX?: number;\n /**\n * Minimum value for the top coordinate of dialog in dragging.\n * @group Props\n */\n minY?: number;\n /**\n * Whether the dialog can be displayed full screen.\n * @group Props\n */\n maximizable?: boolean = false;\n /**\n * Name of the maximize icon.\n * @group Props\n */\n maximizeIcon?: string;\n /**\n * Name of the minimize icon.\n * @group Props\n */\n minimizeIcon?: string;\n /**\n * Position of the dialog.\n * @group Props\n */\n position?: DialogPosition;\n /**\n * Defines a string that labels the close button for accessibility.\n * @group Props\n */\n closeAriaLabel?: string;\n /**\n * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n appendTo?: any;\n /**\n * A boolean to determine if it can be duplicate.\n * @group Props\n */\n duplicate?: boolean = false;\n /**\n * Object literal to define widths per screen size.\n * @group Props\n */\n breakpoints?: any;\n /**\n * Dialog templates.\n * @group Props\n */\n templates?: DynamicDialogTemplates;\n /**\n * Used to pass attributes to DOM elements inside the Dialog component.\n * @group Props\n */\n pt?: DialogPassThrough;\n /**\n * Indicates whether the component should be rendered without styles.\n * @group Props\n */\n unstyled?: boolean;\n}\n\n/**\n * Defines valid templates in Dynamic Dialog.\n * Templates are Angular components that will be rendered using ngComponentOutlet.\n * @group Templates\n */\nexport interface DynamicDialogTemplates {\n /**\n * Component to render as the header.\n */\n header?: Type<any>;\n /**\n * Component to render as the content.\n */\n content?: Type<any>;\n /**\n * Component to render as the footer.\n */\n footer?: Type<any>;\n /**\n * Component to render as the minimize icon.\n */\n minimizeicon?: Type<any>;\n /**\n * Component to render as the maximize icon.\n */\n maximizeicon?: Type<any>;\n /**\n * Component to render as the close icon.\n */\n closeicon?: Type<any>;\n}\n","import { Observable, Subject } from 'rxjs';\n\n/**\n * Dynamic Dialog instance.\n * @group Components\n */\nexport class DynamicDialogRef<ComponentType = any> {\n private readonly _onClose = new Subject<any>();\n\n /**\n * Event triggered on dialog is closed.\n * @group Events\n */\n onClose: Observable<any> = this._onClose.asObservable();\n private readonly _onDestroy = new Subject<any>();\n /**\n * Event triggered on dialog instance is destroyed.\n * @group Events\n */\n onDestroy: Observable<any> = this._onDestroy.asObservable();\n private readonly _onDragStart = new Subject<any>();\n /**\n * Event triggered on drag start.\n * @param {MouseEvent} event - Mouse event.\n * @group Events\n */\n onDragStart: Observable<any> = this._onDragStart.asObservable();\n private readonly _onDragEnd = new Subject<any>();\n /**\n * Event triggered on drag end.\n * @param {MouseEvent} event - Mouse event.\n * @group Events\n */\n onDragEnd: Observable<any> = this._onDragEnd.asObservable();\n\n private readonly _onResizeInit = new Subject<any>();\n /**\n * Event triggered on resize start.\n * @param {MouseEvent} event - Mouse event.\n * @group Events\n */\n onResizeInit: Observable<any> = this._onResizeInit.asObservable();\n\n private readonly _onResizeEnd = new Subject<any>();\n /**\n * Event triggered on resize end.\n * @param {MouseEvent} event - Mouse event.\n * @group Events\n */\n onResizeEnd: Observable<any> = this._onResizeEnd.asObservable();\n\n private readonly _onMaximize = new Subject<any>();\n /**\n * Event triggered on dialog is maximized.\n * @param {*} value - Size value.\n * @group Events\n */\n onMaximize: Observable<any> = this._onMaximize.asObservable();\n\n /**\n * Event triggered on child component load.\n * @param {*} value - Chi.\n * @group Events\n */\n readonly onChildComponentLoaded = new Subject<ComponentType>();\n constructor() {}\n\n /**\n * Closes dialog.\n * @group Method\n */\n close(result?: any) {\n this._onClose.next(result);\n\n setTimeout(() => {\n this._onClose.complete();\n }, 1000);\n }\n /**\n * Destroys the dialog instance.\n * @group Method\n */\n destroy() {\n this._onDestroy.next(null);\n }\n\n /**\n * Callback to invoke on drag start.\n * @param {MouseEvent} event - Mouse event.\n * @group Method\n */\n dragStart(event: MouseEvent) {\n this._onDragStart.next(event);\n }\n /**\n * Callback to invoke on drag end.\n * @param {MouseEvent} event - Mouse event.\n * @group Method\n */\n dragEnd(event: MouseEvent) {\n this._onDragEnd.next(event);\n }\n\n /**\n * Callback to invoke on resize start.\n * @param {MouseEvent} event - Mouse event.\n * @group Method\n */\n resizeInit(event: MouseEvent) {\n this._onResizeInit.next(event);\n }\n /**\n * Callback to invoke on resize start.\n * @param {MouseEvent} event - Mouse event.\n * @group Method\n */\n resizeEnd(event: MouseEvent) {\n this._onResizeEnd.next(event);\n }\n\n /**\n * Callback to invoke on dialog is maximized.\n * @param {*} value - Size value.\n * @group Method\n */\n maximize(value: any) {\n this._onMaximize.next(value);\n }\n}\n","import { Directive, ViewContainerRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[pDynamicDialogContent]',\n standalone: true\n})\nexport class DynamicDialogContent {\n public viewContainerRef = inject(ViewContainerRef);\n}\n","import { Injectable } from '@angular/core';\nimport { DialogStyle } from 'primeng/dialog';\n\n@Injectable()\nexport class DynamicDialogStyle extends DialogStyle {\n name = 'dialog';\n}\n\n/**\n *\n * DynamicDialog is a container to display content in an overlay window.\n *\n * [Live Demo](https://www.primeng.org/dynamicdialog)\n *\n * @module dynamicdialogstyle\n *\n */\nexport enum DynamicDialogClasses {\n /**\n * Class name of the mask element\n */\n mask = 'p-dialog-mask',\n /**\n * Class name of the root element\n */\n root = 'p-dialog',\n /**\n * Class name of the header element\n */\n header = 'p-dialog-header',\n /**\n * Class name of the title element\n */\n title = 'p-dialog-title',\n /**\n * Class name of the header actions element\n */\n headerActions = 'p-dialog-header-actions',\n /**\n * Class name of the maximize button element\n */\n pcMaximizeButton = 'p-dialog-maximize-button',\n /**\n * Class name of the close button element\n */\n pcCloseButton = 'p-dialog-close-button',\n /**\n * Class name of the content element\n */\n content = 'p-dialog-content',\n /**\n * Class name of the footer element\n */\n footer = 'p-dialog-footer'\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ComponentRef, inject, InjectionToken, NgModule, signal, Type, viewChild, ViewEncapsulation } from '@angular/core';\nimport { uuid } from '@primeuix/utils';\nimport { SharedModule, TranslationKeys } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Dialog, DialogPassThrough } from 'primeng/dialog';\nimport { Nullable } from 'primeng/ts-helpers';\nimport type { ButtonDirectiveOptions } from 'primeng/types/button';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\nimport { DynamicDialogContent } from './dynamicdialogcontent';\nimport { DynamicDialogStyle } from './style/dynamicdialogstyle';\n\nconst DYNAMIC_DIALOG_INSTANCE = new InjectionToken<DynamicDialog>('DYNAMIC_DIALOG_INSTANCE');\n\n@Component({\n selector: 'p-dynamicdialog, p-dynamic-dialog',\n standalone: true,\n imports: [NgComponentOutlet, SharedModule, DynamicDialogContent, Dialog, BindModule],\n template: `\n <p-dialog\n [visible]=\"visible()\"\n [header]=\"header\"\n [draggable]=\"draggable\"\n [resizable]=\"resizable\"\n [contentStyle]=\"contentStyle\"\n [modal]=\"modal\"\n [closeOnEscape]=\"closeOnEscape\"\n [dismissableMask]=\"dismissableMask\"\n [rtl]=\"rtl\"\n [closable]=\"closable\"\n [breakpoints]=\"breakpoints\"\n [styleClass]=\"styleClass\"\n [maskStyleClass]=\"maskStyleClass\"\n [showHeader]=\"showHeader\"\n [autoZIndex]=\"autoZIndex\"\n [baseZIndex]=\"baseZIndex\"\n [minX]=\"minX\"\n [minY]=\"minY\"\n [focusOnShow]=\"focusOnShow\"\n [maximizable]=\"maximizable\"\n [keepInViewport]=\"keepInViewport\"\n [focusTrap]=\"focusTrap\"\n [motionOptions]=\"motionOptions\"\n [maskMotionOptions]=\"maskMotionOptions\"\n [closeAriaLabel]=\"closeAriaLabel\"\n [minimizeIcon]=\"minimizeIcon\"\n [maximizeIcon]=\"maximizeIcon\"\n [closeButtonProps]=\"closeButtonProps\"\n [maximizeButtonProps]=\"maximizeButtonProps\"\n [style]=\"dialogStyle\"\n [position]=\"position\"\n (onHide)=\"onDialogHide()\"\n (onMaximize)=\"onDialogMaximize($event)\"\n (onResizeInit)=\"onDialogResizeInit($event)\"\n (onResizeEnd)=\"onDialogResizeEnd($event)\"\n (onDragStart)=\"onDialogDragStart($event)\"\n (onDragEnd)=\"onDialogDragEnd($event)\"\n (visibleChange)=\"onVisibleChange($event)\"\n [pt]=\"ddconfig.pt\"\n appendTo=\"self\"\n hostName=\"DynamicDialog\"\n [unstyled]=\"isUnstyled\"\n >\n @if (headerTemplate) {\n <ng-template #header>\n <ng-container *ngComponentOutlet=\"headerTemplate\"></ng-container>\n </ng-template>\n }\n @if (contentTemplate) {\n <ng-template #content>\n <ng-container *ngComponentOutlet=\"contentTemplate\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate) {\n <ng-template #footer>\n <ng-container *ngComponentOutlet=\"footerTemplate\"></ng-container>\n </ng-template>\n }\n @if (closeIconTemplate) {\n <ng-template #closeicon>\n <ng-container *ngComponentOutlet=\"closeIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (maximizeIconTemplate) {\n <ng-template #maximizeicon>\n <ng-container *ngComponentOutlet=\"maximizeIconTemplate\"></ng-container>\n </ng-template>\n }\n @if (minimizeIconTemplate) {\n <ng-template #minimizeicon>\n <ng-container *ngComponentOutlet=\"minimizeIconTemplate\"></ng-container>\n </ng-template>\n }\n\n @if (!contentTemplate) {\n <ng-template pDynamicDialogContent></ng-template>\n }\n @if (ddconfig.footer && !footerTemplate) {\n <div>{{ ddconfig.footer }}</div>\n }\n </p-dialog>\n `,\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n providers: [DynamicDialogStyle, { provide: DYNAMIC_DIALOG_INSTANCE, useExisting: DynamicDialog }, { provide: PARENT_INSTANCE, useExisting: DynamicDialog }],\n hostDirectives: [Bind]\n})\nexport class DynamicDialog extends BaseComponent<DialogPassThrough> {\n componentName = 'Dialog';\n\n _componentStyle = inject(DynamicDialogStyle);\n\n $pcDynamicDialog: DynamicDialog | undefined = inject(DYNAMIC_DIALOG_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n ddconfig = inject(DynamicDialogConfig);\n\n dialogRef = inject(DynamicDialogRef);\n\n visible = signal<boolean>(true);\n\n componentRef: Nullable<ComponentRef<object>>;\n\n id: string = uuid('pn_id_');\n\n insertionPoint = viewChild(DynamicDialogContent);\n\n dialog = viewChild(Dialog);\n\n childComponentType: Nullable<Type<object>>;\n\n inputValues: NonNullable<DynamicDialogConfig['inputValues']> = {};\n\n get draggable(): boolean {\n return this.ddconfig.draggable !== false;\n }\n\n get resizable(): boolean {\n return this.ddconfig.resizable !== false;\n }\n\n get modal(): boolean {\n return this.ddconfig.modal !== false;\n }\n\n get closeOnEscape(): boolean {\n return this.ddconfig.closeOnEscape !== false;\n }\n\n get showHeader(): boolean {\n return this.ddconfig.showHeader !== false;\n }\n\n get autoZIndex(): boolean {\n return this.ddconfig.autoZIndex !== false;\n }\n\n get baseZIndex(): number {\n return this.ddconfig.baseZIndex ?? 0;\n }\n\n get focusOnShow(): boolean {\n return this.ddconfig.focusOnShow !== false;\n }\n\n get focusTrap(): boolean {\n return this.ddconfig.focusTrap !== false;\n }\n\n get closeAriaLabel(): string {\n return this.ddconfig.closeAriaLabel ?? this.defaultCloseAriaLabel;\n }\n\n get rtl(): boolean | undefined {\n return this.ddconfig.rtl;\n }\n\n get styleClass(): string | undefined {\n return this.ddconfig.styleClass;\n }\n\n get maskStyleClass(): string | undefined {\n return this.ddconfig.maskStyleClass;\n }\n\n get dismissableMask(): boolean | undefined {\n return this.ddconfig.dismissableMask;\n }\n\n get contentStyle() {\n return this.ddconfig.contentStyle;\n }\n\n get minX(): number {\n return this.ddconfig.minX ?? 0;\n }\n\n get minY(): number {\n return this.ddconfig.minY ?? 0;\n }\n\n get keepInViewport(): boolean {\n return this.ddconfig.keepInViewport ?? false;\n }\n\n get maximizable(): boolean {\n return this.ddconfig.maximizable ?? false;\n }\n\n get maximizeIcon(): string | undefined {\n return this.ddconfig.maximizeIcon;\n }\n\n get minimizeIcon(): string | undefined {\n return this.ddconfig.minimizeIcon;\n }\n\n get closable(): boolean | undefined {\n return this.ddconfig.closable;\n }\n\n get position() {\n return this.ddconfig.position;\n }\n\n get defaultCloseAriaLabel(): string {\n return this.translate(TranslationKeys.ARIA, 'close');\n }\n\n get breakpoints() {\n return this.ddconfig.breakpoints;\n }\n\n get footerTemplate(): Type<object> | undefined {\n return this.ddconfig?.templates?.footer;\n }\n\n get headerTemplate(): Type<object> | undefined {\n return this.ddconfig?.templates?.header;\n }\n\n get contentTemplate(): Type<object> | undefined {\n return this.ddconfig?.templates?.content;\n }\n\n get minimizeIconTemplate(): Type<object> | undefined {\n return this.ddconfig?.templates?.minimizeicon;\n }\n\n get maximizeIconTemplate(): Type<object> | undefined {\n return this.ddconfig?.templates?.maximizeicon;\n }\n\n get closeIconTemplate(): Type<object> | undefined {\n return this.ddconfig?.templates?.closeicon;\n }\n\n get dialogStyle(): CSSProperties {\n return {\n ...(this.ddconfig?.style || {}),\n ...(this.ddconfig?.width && { width: this.ddconfig.width }),\n ...(this.ddconfig?.height && { height: this.ddconfig.height })\n };\n }\n\n get header(): string | undefined {\n return this.ddconfig.header;\n }\n\n get data() {\n return this.ddconfig.data;\n }\n\n get dialogId(): string {\n return this.$attrSelector;\n }\n\n get isUnstyled(): boolean {\n return this.ddconfig.unstyled || this.$unstyled();\n }\n\n get motionOptions() {\n return this.ddconfig.motionOptions;\n }\n\n get maskMotionOptions() {\n return this.ddconfig.maskMotionOptions;\n }\n\n get closeButtonProps(): ButtonDirectiveOptions {\n return { severity: 'secondary', variant: 'text', rounded: true };\n }\n\n get maximizeButtonProps(): ButtonDirectiveOptions {\n return { severity: 'secondary', variant: 'text', rounded: true };\n }\n\n maximized: boolean | undefined;\n\n dragging: boolean | undefined;\n\n resizing: boolean | undefined;\n\n ariaLabelledBy: string | undefined | null;\n\n lastPageX: number | undefined;\n\n lastPageY: number | undefined;\n\n contentViewChild: HTMLElement | null = null;\n\n footerViewChild: HTMLElement | null = null;\n\n headerViewChild: HTMLElement | null = null;\n\n maskViewChild: HTMLElement | null = null;\n\n maskClickListener: (() => void) | null = null;\n\n documentDragListener: (() => void) | null = null;\n\n documentDragEndListener: (() => void) | null = null;\n\n documentResizeListener: (() => void) | null = null;\n\n documentResizeEndListener: (() => void) | null = null;\n\n documentEscapeListener: (() => void) | null = null;\n\n constructor() {\n super();\n }\n\n container: HTMLElement | null = null;\n\n wrapper: HTMLElement | null = null;\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onVisibleChange(visible: boolean) {\n if (!visible) {\n this.dialogRef.close();\n }\n }\n\n onAfterViewInit() {\n this.loadChildComponent(this.childComponentType!);\n this.ariaLabelledBy = this.getAriaLabelledBy();\n this.cd.detectChanges();\n }\n\n getAriaLabelledBy() {\n const { header, showHeader } = this.ddconfig;\n\n if (header === null || showHeader === false) {\n return null;\n }\n\n return uuid('pn_id_') + '_header';\n }\n\n loadChildComponent(componentType: Type<object>) {\n let viewContainerRef = this.insertionPoint()?.viewContainerRef;\n\n viewContainerRef?.clear();\n\n this.componentRef = viewContainerRef?.createComponent(componentType);\n\n if (this.inputValues && this.componentRef) {\n Object.entries(this.inputValues).forEach(([key, value]) => {\n this.componentRef!.setInput(key, value);\n });\n }\n\n this.dialogRef.onChildComponentLoaded.next(this.componentRef!.instance);\n }\n\n onDialogHide() {\n this.dialogRef.destroy();\n }\n\n onDialogMaximize(event: { maximized: boolean | undefined }) {\n this.maximized = event.maximized;\n this.dialogRef.maximize(event);\n }\n\n onDialogResizeInit(event: MouseEvent) {\n this.resizing = true;\n this.dialogRef.resizeInit(event);\n }\n\n onDialogResizeEnd(event: MouseEvent) {\n this.resizing = false;\n this.dialogRef.resizeEnd(event);\n }\n\n onDialogDragStart(event: MouseEvent) {\n this.dragging = true;\n this.dialogRef.dragStart(event);\n }\n\n onDialogDragEnd(event: DragEvent) {\n this.dragging = false;\n this.dialogRef.dragEnd(event);\n }\n\n close() {\n this.visible.set(false);\n }\n\n hide() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n unbindGlobalListeners() {\n this.unbindDocumentEscapeListener();\n this.unbindDocumentResizeListeners();\n this.unbindDocumentDragListener();\n this.unbindDocumentDragEndListener();\n }\n\n onContainerDestroy() {\n this.unbindGlobalListeners();\n\n if (this.ddconfig.modal) {\n this.disableModality();\n }\n\n this.container = null;\n }\n\n bindDocumentDragListener() {\n if (!this.documentDragListener) {\n this.documentDragListener = this.renderer.listen(this.document.defaultView, 'mousemove', (event) => {\n this.onDrag(event);\n });\n }\n }\n\n bindDocumentDragEndListener() {\n if (!this.documentDragEndListener) {\n this.documentDragEndListener = this.renderer.listen(this.document.defaultView, 'mouseup', (event) => {\n this.endDrag(event);\n });\n }\n }\n\n unbindDocumentDragEndListener() {\n if (this.documentDragEndListener) {\n this.documentDragEndListener();\n this.documentDragEndListener = null;\n }\n }\n\n unbindDocumentDragListener() {\n if (this.documentDragListener) {\n this.documentDragListener();\n this.documentDragListener = null;\n }\n }\n\n onDrag(event: MouseEvent) {\n if (this.dragging) {\n this.lastPageX = event.pageX;\n this.lastPageY = event.pageY;\n\n if (this.ddconfig.keepInViewport && this.container) {\n this.container.style.position = 'fixed';\n }\n }\n }\n\n endDrag(event: MouseEvent) {\n if (this.dragging) {\n this.dragging = false;\n this.dialogRef.dragEnd(event as DragEvent);\n this.cd.detectChanges();\n }\n }\n\n resetPosition() {\n if (this.container) {\n this.container.style.position = '';\n this.container.style.left = '';\n this.container.style.top = '';\n this.container.style.margin = '';\n }\n }\n\n bindDocumentResizeListeners() {\n if (!this.documentResizeListener) {\n this.documentResizeListener = this.renderer.listen(this.document.defaultView, 'mousemove', (event) => {\n this.onResize(event);\n });\n }\n\n if (!this.documentResizeEndListener) {\n this.documentResizeEndListener = this.renderer.listen(this.document.defaultView, 'mouseup', (event) => {\n this.resizeEnd(event);\n });\n }\n }\n\n unbindDocumentResizeListeners() {\n if (this.documentResizeListener) {\n this.documentResizeListener();\n this.documentResizeListener = null;\n }\n\n if (this.documentResizeEndListener) {\n this.documentResizeEndListener();\n this.documentResizeEndListener = null;\n }\n }\n\n initResize(event: MouseEvent) {\n this.resizing = true;\n this.lastPageX = event.pageX;\n this.lastPageY = event.pageY;\n this.dialogRef.resizeInit(event);\n }\n\n onResize(event: MouseEvent) {\n if (this.resizing) {\n this.lastPageX = event.pageX;\n this.lastPageY = event.pageY;\n }\n }\n\n resizeEnd(event: MouseEvent) {\n if (this.resizing) {\n this.resizing = false;\n this.dialogRef.resizeEnd(event);\n }\n }\n\n maximize() {\n this.maximized = !this.maximized;\n this.dialogRef.maximize({ maximized: this.maximized });\n }\n\n enableModality() {\n if (this.ddconfig.dismissableMask && this.wrapper) {\n this.maskClickListener = this.renderer.listen(this.wrapper, 'mousedown', (event: MouseEvent) => {\n if (this.wrapper && this.wrapper.isSameNode(event.target as Node)) {\n this.hide();\n }\n });\n }\n }\n\n disableModality() {\n this.unbindMaskClickListener();\n this.cd.detectChanges();\n }\n\n unbindMaskClickListener() {\n if (this.maskClickListener) {\n this.maskClickListener();\n this.maskClickListener = null;\n }\n }\n\n bindDocumentEscapeListener() {\n if (this.ddconfig.closeOnEscape) {\n this.documentEscapeListener = this.renderer.listen(this.document, 'keydown', (event: KeyboardEvent) => {\n if (event.key === 'Escape' && this.container) {\n this.hide();\n }\n });\n }\n }\n\n unbindDocumentEscapeListener() {\n if (this.documentEscapeListener) {\n this.documentEscapeListener();\n this.documentEscapeListener = null;\n }\n }\n\n onDestroy() {\n this.onContainerDestroy();\n\n if (this.componentRef && typeof this.componentRef.destroy === 'function') {\n this.componentRef.destroy();\n }\n }\n}\n\n@NgModule({\n imports: [DynamicDialog, SharedModule],\n exports: [DynamicDialog, SharedModule]\n})\nexport class DynamicDialogModule {}\n","import { InjectOptions, Injector, ProviderToken } from '@angular/core';\n\nexport class DynamicDialogInjector implements Injector {\n constructor(\n private _parentInjector: Injector,\n private _additionalTokens: WeakMap<any, any>\n ) {}\n\n get<T>(token: ProviderToken<T>, notFoundValue?: T, _options?: InjectOptions): T {\n const value = this._additionalTokens.get(token);\n\n if (value) return value;\n\n return this._parentInjector.get<any>(token, notFoundValue);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ApplicationRef, ComponentRef, EmbeddedViewRef, Injectable, Injector, Type, createComponent, inject } from '@angular/core';\nimport { appendChild } from '@primeuix/utils';\nimport { DynamicDialog } from './dynamicdialog';\nimport { DynamicDialogConfig } from './dynamicdialog-config';\nimport { DynamicDialogInjector } from './dynamicdialog-injector';\nimport { DynamicDialogRef } from './dynamicdialog-ref';\n\n/**\n * Dynamic Dialog component methods.\n * @group Service\n */\n@Injectable()\nexport class DialogService {\n dialogComponentRefMap: Map<DynamicDialogRef<any>, ComponentRef<DynamicDialog>> = new Map();\n\n private appRef = inject(ApplicationRef);\n\n private injector = inject(Injector);\n\n private document = inject(DOCUMENT);\n\n /**\n * Displays the dialog using the dynamic dialog object options.\n * @param {*} componentType - Dynamic component for content template.\n * @param {DynamicDialogConfig} config - DynamicDialog object.\n * @returns {DynamicDialogRef} DynamicDialog instance.\n * @group Method\n */\n public open<T, DataType = any, InputValuesType extends Record<string, any> = {}>(componentType: Type<T>, config: DynamicDialogConfig<DataType, InputValuesType>): DynamicDialogRef<T> | null {\n if (!this.duplicationPermission(componentType, config)) {\n return null;\n }\n\n const dialogRef = this.appendDialogComponentToBody<T>(config);\n\n const componentRefInstance = this.dialogComponentRefMap.get(dialogRef);\n\n if (componentRefInstance) {\n componentRefInstance.instance.childComponentType = componentType as Type<object>;\n componentRefInstance.instance.inputValues = config.inputValues || {};\n }\n\n return dialogRef;\n }\n /**\n * Returns the dynamic dialog component instance.\n * @param {DynamicDialogRef} ref - DynamicDialog instance.\n * @group Method\n */\n public getInstance(ref: DynamicDialogRef<any>) {\n return this.dialogComponentRefMap.get(ref)?.instance;\n }\n\n private appendDialogComponentToBody<T>(config: DynamicDialogConfig): DynamicDialogRef<T> {\n const map = new WeakMap();\n\n map.set(DynamicDialogConfig, config);\n\n const dialogRef = new DynamicDialogRef<T>();\n\n map.set(DynamicDialogRef, dialogRef);\n\n const sub = dialogRef.onClose.subscribe(() => {\n this.dialogComponentRefMap.get(dialogRef)?.instance.close();\n });\n\n const destroySub = dialogRef.onDestroy.subscribe(() => {\n this.removeDialogComponentFromBody(dialogRef);\n destroySub.unsubscribe();\n sub.unsubscribe();\n });\n\n const componentRef = createComponent(DynamicDialog, {\n environmentInjector: this.appRef.injector,\n elementInjector: new DynamicDialogInjector(this.injector, map)\n });\n\n this.appRef.attachView(componentRef.hostView);\n\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n if (!config.appendTo || config.appendTo === 'body') {\n this.document.body.appendChild(domElem);\n } else {\n appendChild(config.appendTo, domElem);\n }\n\n this.dialogComponentRefMap.set(dialogRef, componentRef);\n\n return dialogRef;\n }\n\n private removeDialogComponentFromBody(dialogRef: DynamicDialogRef<any>) {\n if (!dialogRef || !this.dialogComponentRefMap.has(dialogRef)) {\n return;\n }\n\n const dialogComponentRef = this.dialogComponentRefMap.get(dialogRef);\n\n if (dialogComponentRef) {\n this.appRef.detachView(dialogComponentRef.hostView);\n dialogComponentRef.destroy();\n dialogComponentRef.changeDetectorRef.detectChanges();\n }\n\n this.dialogComponentRefMap.delete(dialogRef);\n }\n\n private duplicationPermission(componentType: Type<any>, config: DynamicDialogConfig): boolean {\n if (config.duplicate) {\n return true;\n }\n\n let permission = true;\n\n for (const [, value] of this.dialogComponentRefMap) {\n if (value.instance.childComponentType === componentType) {\n permission = false;\n break;\n }\n }\n\n return permission;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-editor.mjs","names":[],"sources":["../../src/editor/style/editorstyle.ts","../../src/editor/editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/editor';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => [\n 'p-editor',\n {\n 'p-invalid': instance.invalid()\n }\n ],\n toolbar: 'p-editor-toolbar',\n content: 'p-editor-content'\n};\n\n@Injectable()\nexport class EditorStyle extends BaseStyle {\n name = 'editor';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Editor groups a collection of contents in tabs.\n *\n * [Live Demo](https://www.primeng.org/editor/)\n *\n * @module editorstyle\n *\n */\nexport enum EditorClasses {\n /**\n * Class name of the root element\n */\n root = 'p-editor',\n /**\n * Class name of the toolbar element\n */\n toolbar = 'p-editor-toolbar',\n /**\n * Class name of the content element\n */\n content = 'p-editor-content'\n}\n","import { isPlatformServer, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, effect, forwardRef, inject, InjectionToken, input, NgModule, output, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { findSingle } from '@primeuix/utils';\nimport { Header, SharedModule } from 'primeng/api';\nimport { PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { BaseEditableHolder } from 'primeng/baseeditableholder';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { EditorBlurEvent, EditorChangeEvent, EditorFocusEvent, EditorInitEvent, EditorPassThrough, EditorSelectionChangeEvent, EditorTextChangeEvent } from 'primeng/types/editor';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport { EditorStyle } from './style/editorstyle';\n\nconst EDITOR_INSTANCE = new InjectionToken<Editor>('EDITOR_INSTANCE');\n\nexport const EDITOR_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Editor),\n multi: true\n};\n/**\n * Editor groups a collection of contents in tabs.\n * @group Components\n * @deprecated Editor will be removed in a future release in favor of PrimeUI PRO Editor.\n */\n@Component({\n selector: 'p-editor',\n standalone: true,\n imports: [NgTemplateOutlet, SharedModule, BindModule],\n template: `\n @if ($hasCustomToolbar()) {\n <div [class]=\"cx('toolbar')\" [pBind]=\"ptm('toolbar')\">\n <ng-content select=\"p-header\" />\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n } @else {\n <div [class]=\"cx('toolbar')\" [pBind]=\"ptm('toolbar')\">\n <span class=\"ql-formats\" [pBind]=\"ptm('formats')\">\n <select class=\"ql-header\" [pBind]=\"ptm('header')\">\n <option value=\"1\" [pBind]=\"ptm('option')\">Heading</option>\n <option value=\"2\" [pBind]=\"ptm('option')\">Subheading</option>\n <option selected [pBind]=\"ptm('option')\">Normal</option>\n </select>\n <select class=\"ql-font\" [pBind]=\"ptm('select')\">\n <option selected [pBind]=\"ptm('option')\">Sans Serif</option>\n <option value=\"serif\" [pBind]=\"ptm('option')\">Serif</option>\n <option value=\"monospace\" [pBind]=\"ptm('option')\">Monospace</option>\n </select>\n </span>\n <span class=\"ql-formats\" [pBind]=\"ptm('formats')\">\n <button class=\"ql-bold\" aria-label=\"Bold\" type=\"button\" [pBind]=\"ptm('bold')\"></button>\n <button class=\"ql-italic\" aria-label=\"Italic\" type=\"button\" [pBind]=\"ptm('italic')\"></button>\n <button class=\"ql-underline\" aria-label=\"Underline\" type=\"button\" [pBind]=\"ptm('underline')\"></button>\n </span>\n <span class=\"ql-formats\" [pBind]=\"ptm('formats')\">\n <select class=\"ql-color\" [pBind]=\"ptm('color')\"></select>\n <select class=\"ql-background\" [pBind]=\"ptm('background')\"></select>\n </span>\n <span class=\"ql-formats\" [pBind]=\"ptm('formats')\">\n <button class=\"ql-list\" value=\"ordered\" aria-label=\"Ordered List\" type=\"button\" [pBind]=\"ptm('list')\"></button>\n <button class=\"ql-list\" value=\"bullet\" aria-label=\"Unordered List\" type=\"button\" [pBind]=\"ptm('list')\"></button>\n <select class=\"ql-align\" [pBind]=\"ptm('select')\">\n <option selected [pBind]=\"ptm('option')\"></option>\n <option value=\"center\" [pBind]=\"ptm('option')\">center</option>\n <option value=\"right\" [pBind]=\"ptm('option')\">right</option>\n <option value=\"justify\" [pBind]=\"ptm('option')\">justify</option>\n </select>\n </span>\n <span class=\"ql-formats\" [pBind]=\"ptm('formats')\">\n <button class=\"ql-link\" aria-label=\"Insert Link\" type=\"button\" [pBind]=\"ptm('link')\"></button>\n <button class=\"ql-image\" aria-label=\"Insert Image\" type=\"button\" [pBind]=\"ptm('image')\"></button>\n <button class=\"ql-code-block\" aria-label=\"Insert Code Block\" type=\"button\" [pBind]=\"ptm('codeBlock')\"></button>\n </span>\n <span class=\"ql-formats\" [pBind]=\"ptm('formats')\">\n <button class=\"ql-clean\" aria-label=\"Remove Styles\" type=\"button\" [pBind]=\"ptm('clean')\"></button>\n </span>\n </div>\n }\n <div [class]=\"cx('content')\" [style]=\"style()\" [pBind]=\"ptm('content')\"></div>\n `,\n providers: [EDITOR_VALUE_ACCESSOR, EditorStyle, { provide: EDITOR_INSTANCE, useExisting: Editor }, { provide: PARENT_INSTANCE, useExisting: Editor }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cn(cx('root'))\"\n },\n hostDirectives: [Bind]\n})\nexport class Editor extends BaseEditableHolder<EditorPassThrough> {\n componentName = 'Editor';\n\n $pcEditor: Editor | undefined = inject(EDITOR_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Inline style of the container.\n * @group Props\n */\n style = input<CSSProperties>();\n\n /**\n * Placeholder text to show when editor is empty.\n * @group Props\n */\n placeholder = input<string>();\n /**\n * Whitelist of formats to display, see [here](https://quilljs.com/docs/formats/) for available options.\n * @group Props\n */\n formats = input<string[]>();\n /**\n * Modules configuration of Editor, see [here](https://quilljs.com/docs/modules/) for available options.\n * @group Props\n */\n modules = input<object>();\n /**\n * DOM Element or a CSS selector for a DOM Element, within which the editor's p elements (i.e. tooltips, etc.) should be confined. Currently, it only considers left and right boundaries.\n * @group Props\n */\n bounds = input<HTMLElement | string>();\n /**\n * DOM Element or a CSS selector for a DOM Element, specifying which container has the scrollbars (i.e. overflow-y: auto), if is has been changed from the default ql-editor with custom CSS. Necessary to fix scroll jumping bugs when Quill is set to auto grow its height, and another ancestor container is responsible from the scrolling..\n * @group Props\n */\n scrollingContainer = input<HTMLElement | string>();\n /**\n * Shortcut for debug. Note debug is a static method and will affect other instances of Quill editors on the page. Only warning and error messages are enabled by default.\n * @group Props\n */\n debug = input<string>();\n /**\n * Whether to instantiate the editor to read-only mode.\n * @group Props\n */\n readonly = input(false);\n /**\n * Callback to invoke when the quill modules are loaded.\n * @param {EditorInitEvent} event - custom event.\n * @group Emits\n */\n // eslint-disable-next-line @angular-eslint/no-output-rename\n onEditorInit = output<EditorInitEvent>({ alias: 'onInit' });\n\n /**\n * Callback to invoke when text of editor changes.\n * @param {EditorTextChangeEvent} event - custom event.\n * @group Emits\n */\n onTextChange = output<EditorTextChangeEvent>();\n /**\n * Callback to invoke when selection of the text changes.\n * @param {EditorSelectionChangeEvent} event - custom event.\n * @group Emits\n */\n onSelectionChange = output<EditorSelectionChangeEvent>();\n /**\n * Callback to invoke when editor content changes (combines both text and selection changes).\n * @param {EditorChangeEvent} event - custom event.\n * @group Emits\n */\n onEditorChange = output<EditorChangeEvent>();\n /**\n * Callback to invoke when editor receives focus.\n * @param {EditorFocusEvent} event - custom event.\n * @group Emits\n */\n onFocus = output<EditorFocusEvent>();\n /**\n * Callback to invoke when editor loses focus.\n * @param {EditorBlurEvent} event - custom event.\n * @group Emits\n */\n onBlur = output<EditorBlurEvent>();\n toolbar = contentChild(Header, { descendants: false });\n\n /**\n * Custom item template.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<any>>('header', { descendants: false });\n\n $hasCustomToolbar = computed(() => !!this.toolbar() || !!this.headerTemplate());\n\n value: Nullable<string>;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n delayedCommand: Function | null = null;\n\n quill: any;\n\n dynamicQuill: any;\n\n private _destroyed = false;\n\n private get isAttachedQuillEditorToDOM(): boolean | undefined {\n return this.quillElements?.editorElement?.isConnected;\n }\n\n private quillElements!: { editorElement: HTMLElement; toolbarElement: HTMLElement };\n\n private focusListener: (() => void) | null = null;\n\n private blurListener: (() => void) | null = null;\n\n _componentStyle = inject(EditorStyle);\n\n constructor() {\n super();\n\n effect(() => {\n const isReadonly = this.readonly();\n\n if (this.quill) {\n if (isReadonly) this.quill.disable();\n else this.quill.enable();\n }\n });\n\n /**\n * Read or write the DOM once, when initializing non-Angular (Quill) library.\n */\n afterNextRender(() => {\n this.initQuillElements();\n this.initQuillEditor();\n });\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * @override\n *\n * @see {@link BaseEditableHolder.writeControlValue}\n * Writes the value to the control.\n */\n writeControlValue(value: any) {\n if (this.quill && this.value === value) {\n return;\n }\n\n this.value = value;\n\n if (this.quill) {\n if (value) {\n const command = () => {\n this.quill.setContents(this.quill.clipboard.convert(this.dynamicQuill.version.startsWith('2') ? { html: this.value } : this.value));\n };\n\n if (this.isAttachedQuillEditorToDOM) {\n command();\n } else {\n this.delayedCommand = command;\n }\n } else {\n const command = () => {\n this.quill.setText('');\n };\n\n if (this.isAttachedQuillEditorToDOM) {\n command();\n } else {\n this.delayedCommand = command;\n }\n }\n }\n }\n\n getQuill() {\n return this.quill;\n }\n\n private initQuillEditor() {\n if (isPlatformServer(this.platformId)) {\n return;\n }\n\n /**\n * Importing Quill at top level, throws `document is undefined` error during when\n * building for SSR, so this dynamically loads quill when it's in browser module.\n */\n if (!this.dynamicQuill) {\n import('quill')\n .then((quillModule: any) => {\n this.dynamicQuill = quillModule.default;\n this.createQuillEditor();\n })\n // eslint-disable-next-line no-console\n .catch((e) => console.error(e.message));\n } else {\n this.createQuillEditor();\n }\n }\n\n private createQuillEditor() {\n if (this._destroyed) return;\n\n this.initQuillElements();\n\n const { toolbarElement, editorElement } = this.quillElements;\n let defaultModule = { toolbar: toolbarElement };\n let modules = this.modules() ? { ...defaultModule, ...this.modules() } : defaultModule;\n\n this.quill = new this.dynamicQuill(editorElement, {\n modules: modules,\n placeholder: this.placeholder(),\n readOnly: this.readonly(),\n theme: 'snow',\n formats: this.formats(),\n bounds: this.bounds(),\n debug: this.debug(),\n scrollingContainer: this.scrollingContainer()\n });\n\n const isQuill2 = this.dynamicQuill.version.startsWith('2');\n\n if (this.value) {\n this.quill.setContents(this.quill.clipboard.convert(isQuill2 ? { html: this.value } : this.value));\n }\n\n this.quill.on('text-change', (delta: any, oldContents: any, source: 'user' | 'api' | 'silent') => {\n if (this._destroyed) return;\n\n if (source === 'user') {\n let html = isQuill2 ? this.quill.getSemanticHTML() : findSingle(editorElement, '.ql-editor')?.innerHTML;\n let text = this.quill.getText().trim();\n\n if (html === '<p><br></p>') {\n html = null;\n }\n\n this.onTextChange.emit({\n htmlValue: html,\n textValue: text,\n delta: delta,\n source: source\n });\n\n this.value = html;\n this.onModelChange(html);\n this.onModelTouched();\n }\n });\n\n this.quill.on('selection-change', (range: any, oldRange: any, source: 'user' | 'api' | 'silent') => {\n if (this._destroyed) return;\n\n this.onSelectionChange.emit({\n range: range,\n oldRange: oldRange,\n source: source\n });\n });\n\n this.quill.on('editor-change', (eventName: 'text-change' | 'selection-change', ...args: any[]) => {\n if (this._destroyed) return;\n\n this.onEditorChange.emit({\n eventName: eventName,\n args: args\n });\n });\n\n const editorEl = this.quill.root;\n\n this.focusListener = () => {\n this.onFocus.emit({\n source: 'user'\n });\n };\n\n this.blurListener = () => {\n this.onBlur.emit({\n source: 'user'\n });\n };\n\n editorEl.addEventListener('focus', this.focusListener);\n editorEl.addEventListener('blur', this.blurListener);\n\n this.onEditorInit.emit({\n editor: this.quill\n });\n }\n\n onDestroy() {\n this._destroyed = true;\n\n if (this.quill && this.quill.root) {\n const editorEl = this.quill.root;\n\n if (this.focusListener) {\n editorEl.removeEventListener('focus', this.focusListener);\n this.focusListener = null;\n }\n\n if (this.blurListener) {\n editorEl.removeEventListener('blur', this.blurListener);\n this.blurListener = null;\n }\n }\n }\n\n private initQuillElements() {\n if (!this.quillElements) {\n this.quillElements = {\n editorElement: findSingle(this.el.nativeElement, 'div[data-pc-section=\"content\"]'),\n toolbarElement: findSingle(this.el.nativeElement, 'div[data-pc-section=\"toolbar\"]')\n } as any;\n }\n }\n}\n\n@NgModule({\n imports: [Editor, SharedModule],\n exports: [Editor, SharedModule]\n})\nexport class EditorModule {}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-fieldset.mjs","names":["MinusIcon","PlusIcon"],"sources":["../../src/fieldset/style/fieldsetstyle.ts","../../src/fieldset/fieldset.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/fieldset';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => {\n const toggleable = instance.toggleable();\n\n return [\n 'p-fieldset p-component',\n {\n 'p-fieldset-toggleable': toggleable\n }\n ];\n },\n legend: 'p-fieldset-legend',\n legendLabel: 'p-fieldset-legend-label',\n toggleButton: 'p-fieldset-toggle-button',\n toggleIcon: 'p-fieldset-toggle-icon',\n contentContainer: 'p-fieldset-content-container',\n contentWrapper: 'p-fieldset-content-wrapper',\n content: 'p-fieldset-content'\n};\n\n@Injectable()\nexport class FieldsetStyle extends BaseStyle {\n name = 'fieldset';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * Fieldset is a grouping component with the optional content toggle feature.\n *\n * [Live Demo](https://www.primeng.org/fieldset/)\n *\n * @module fieldsetstyle\n *\n */\nexport enum FieldsetClasses {\n /**\n * Class name of the root element\n */\n root = 'p-fieldset',\n /**\n * Class name of the legend element\n */\n legend = 'p-fieldset-legend',\n /**\n * Class name of the legend label element\n */\n legendLabel = 'p-fieldset-legend-label',\n /**\n * Class name of the toggle icon element\n */\n toggleIcon = 'p-fieldset-toggle-icon',\n /**\n * Class name of the content container element\n */\n contentContainer = 'p-fieldset-content-container',\n /**\n * Class name of the content wrapper element\n */\n contentWrapper = 'p-fieldset-content-wrapper',\n /**\n * Class name of the content element\n */\n content = 'p-fieldset-content'\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, ElementRef, inject, InjectionToken, input, model, NgModule, output, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { uuid } from '@primeuix/utils';\nimport { BlockableUI, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { Minus as MinusIcon } from '@primeicons/angular/minus';\nimport { Plus as PlusIcon } from '@primeicons/angular/plus';\nimport { MotionModule } from 'primeng/motion';\nimport type { FieldsetAfterToggleEvent, FieldsetBeforeToggleEvent, FieldsetPassThrough, FieldsetToggleIconTemplateContext } from 'primeng/types/fieldset';\nimport type { CSSProperties } from 'primeng/types/shared';\nimport { FieldsetStyle } from './style/fieldsetstyle';\n\nconst FIELDSET_INSTANCE = new InjectionToken<Fieldset>('FIELDSET_INSTANCE');\n\n/**\n * Fieldset is a grouping component with the optional content toggle feature.\n * @group Components\n */\n@Component({\n selector: 'p-fieldset',\n standalone: true,\n imports: [NgTemplateOutlet, MinusIcon, PlusIcon, SharedModule, BindModule, MotionModule],\n template: `\n <fieldset [attr.id]=\"id\" [style]=\"style()\" [class]=\"cn(cx('root'), styleClass())\" [pBind]=\"ptm('root')\" [attr.data-p]=\"dataP()\">\n <legend [class]=\"cx('legend')\" [pBind]=\"ptm('legend')\" [attr.data-p]=\"dataP()\">\n @if (toggleable()) {\n <button\n [attr.id]=\"headerId\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-controls]=\"contentId\"\n [attr.aria-expanded]=\"!collapsed()\"\n [attr.aria-label]=\"buttonAriaLabel()\"\n (click)=\"toggle($event)\"\n (keydown)=\"onKeyDown($event)\"\n [class]=\"cx('toggleButton')\"\n [pBind]=\"ptm('toggleButton')\"\n >\n @if (toggleIconTemplate()) {\n <span [class]=\"cx('toggleIcon')\" [pBind]=\"ptm('toggleIcon')\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate(); context: toggleIconContext()\"></ng-container>\n </span>\n } @else if (collapsed()) {\n @if (!expandIconTemplate()) {\n <svg data-p-icon=\"plus\" [class]=\"cx('toggleIcon')\" [pBind]=\"ptm('toggleIcon')\" />\n } @else {\n <span [class]=\"cx('toggleIcon')\" [pBind]=\"ptm('toggleIcon')\">\n <ng-container *ngTemplateOutlet=\"expandIconTemplate()\"></ng-container>\n </span>\n }\n } @else {\n @if (!collapseIconTemplate()) {\n <svg data-p-icon=\"minus\" [class]=\"cx('toggleIcon')\" [attr.aria-hidden]=\"true\" [pBind]=\"ptm('toggleIcon')\" />\n } @else {\n <span [class]=\"cx('toggleIcon')\" [pBind]=\"ptm('toggleIcon')\">\n <ng-container *ngTemplateOutlet=\"collapseIconTemplate()\"></ng-container>\n </span>\n }\n }\n <ng-container *ngTemplateOutlet=\"legendContent\"></ng-container>\n </button>\n } @else {\n <ng-container *ngTemplateOutlet=\"legendContent\"></ng-container>\n }\n <ng-template #legendContent>\n <span [class]=\"cx('legendLabel')\" [pBind]=\"ptm('legendLabel')\">{{ legend() }}</span>\n <ng-content select=\"p-header\"></ng-content>\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </ng-template>\n </legend>\n <div\n [pBind]=\"ptm('contentContainer')\"\n [pMotion]=\"isContentVisible()\"\n pMotionName=\"p-collapsible\"\n [pMotionOptions]=\"computedMotionOptions()\"\n [class]=\"cx('contentContainer')\"\n [id]=\"contentId\"\n role=\"region\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.aria-hidden]=\"collapsed()\"\n [attr.tabindex]=\"contentTabindex()\"\n (pMotionOnAfterEnter)=\"onToggleDone($event)\"\n (pMotionOnAfterLeave)=\"onToggleDone($event)\"\n >\n <div [pBind]=\"ptm('contentWrapper')\" [class]=\"cx('contentWrapper')\">\n <div [class]=\"cx('content')\" [pBind]=\"ptm('content')\" #contentWrapper>\n <ng-content></ng-content>\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n </fieldset>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [FieldsetStyle, { provide: FIELDSET_INSTANCE, useExisting: Fieldset }, { provide: PARENT_INSTANCE, useExisting: Fieldset }],\n hostDirectives: [Bind]\n})\nexport class Fieldset extends BaseComponent<FieldsetPassThrough> implements BlockableUI {\n componentName = 'Fieldset';\n\n $pcFieldset: Fieldset | undefined = inject(FIELDSET_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n _componentStyle = inject(FieldsetStyle);\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Header text of the fieldset.\n * @group Props\n */\n legend = input<string>();\n\n /**\n * When specified, content can toggled by clicking the legend.\n * @group Props\n * @defaultValue false\n */\n toggleable = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the initial state of content, supports one or two-way binding as well.\n * @group Props\n */\n collapsed = model(false);\n\n /**\n * Inline style of the component.\n * @group Props\n */\n style = input<CSSProperties>();\n\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass = input<string>();\n\n /**\n * The motion options.\n * @group Props\n */\n motionOptions = input<MotionOptions>();\n\n /**\n * Callback to invoke before panel toggle.\n * @param {FieldsetBeforeToggleEvent} event - Custom toggle event\n * @group Emits\n */\n onBeforeToggle = output<FieldsetBeforeToggleEvent>();\n\n /**\n * Callback to invoke after panel toggle.\n * @param {FieldsetAfterToggleEvent} event - Custom toggle event\n * @group Emits\n */\n onAfterToggle = output<FieldsetAfterToggleEvent>();\n\n /**\n * Custom header template.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n\n /**\n * Custom toggler icon template.\n * @group Templates\n */\n toggleIconTemplate = contentChild<TemplateRef<FieldsetToggleIconTemplateContext>>('toggleicon', { descendants: false });\n\n /**\n * Custom expand icon template.\n * @group Templates\n */\n expandIconTemplate = contentChild<TemplateRef<void>>('expandicon', { descendants: false });\n\n /**\n * Custom collapse icon template.\n * @group Templates\n */\n collapseIconTemplate = contentChild<TemplateRef<void>>('collapseicon', { descendants: false });\n\n /**\n * Custom content template.\n * @group Templates\n */\n contentTemplate = contentChild<TemplateRef<void>>('content', { descendants: false });\n\n contentWrapperViewChild = viewChild<ElementRef>('contentWrapper');\n\n private _id: string = uuid('pn_id_');\n\n get id() {\n return this._id;\n }\n\n get headerId() {\n return this.id + '_header';\n }\n\n get contentId() {\n return this.id + '_content';\n }\n\n buttonAriaLabel = computed(() => this.legend());\n\n toggleIconContext = computed<FieldsetToggleIconTemplateContext>(() => ({ $implicit: this.collapsed(), collapsed: this.collapsed() }));\n\n dataP = computed(() => this.cn({ toggleable: this.toggleable() }));\n\n contentTabindex = computed(() => (this.collapsed() ? '-1' : undefined));\n\n isContentVisible = computed(() => !this.toggleable() || (this.toggleable() && !this.collapsed()));\n\n computedMotionOptions = computed<MotionOptions>(() => ({\n ...this.ptm('motion'),\n ...this.motionOptions()\n }));\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n }\n\n toggle(event: MouseEvent) {\n this.onBeforeToggle.emit({ originalEvent: event, collapsed: this.collapsed() });\n\n if (this.collapsed()) this.expand();\n else this.collapse();\n\n event.preventDefault();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggle(event as any);\n event.preventDefault();\n }\n }\n\n expand() {\n this.collapsed.set(false);\n this.updateTabIndex();\n }\n\n collapse() {\n this.collapsed.set(true);\n this.updateTabIndex();\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n updateTabIndex() {\n const contentWrapper = this.contentWrapperViewChild();\n\n if (contentWrapper) {\n const focusableElements = contentWrapper.nativeElement.querySelectorAll('input, button, select, a, textarea, [tabindex]');\n\n focusableElements.forEach((element: HTMLElement) => {\n if (this.collapsed()) {\n element.setAttribute('tabindex', '-1');\n } else {\n element.removeAttribute('tabindex');\n }\n });\n }\n }\n\n onToggleDone(event: MotionEvent) {\n this.onAfterToggle.emit({ originalEvent: event as any, collapsed: this.collapsed() });\n }\n}\n\n@NgModule({\n imports: [Fieldset, SharedModule, BindModule],\n exports: [Fieldset, SharedModule, BindModule]\n})\nexport class FieldsetModule {}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-floatlabel.mjs","names":[],"sources":["../../src/floatlabel/style/floatlabelstyle.ts","../../src/floatlabel/floatlabel.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/floatlabel';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => {\n const variant = instance.variant();\n\n return [\n 'p-floatlabel',\n {\n 'p-floatlabel-over': variant === 'over',\n 'p-floatlabel-on': variant === 'on',\n 'p-floatlabel-in': variant === 'in'\n }\n ];\n }\n};\n\n@Injectable()\nexport class FloatLabelStyle extends BaseStyle {\n name = 'floatlabel';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * FloatLabel visually integrates a label with its form element.\n *\n * [Live Demo](https://www.primeng.org/floatlabel/)\n *\n * @module floatlabelstyle\n *\n */\nexport enum FloatLabelClasses {\n /**\n * Class name of the root element\n */\n root = 'p-floatlabel'\n}\n","import { ChangeDetectionStrategy, Component, inject, InjectionToken, input, NgModule, ViewEncapsulation } from '@angular/core';\nimport { SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { FloatLabelPassThrough, FloatLabelVariant } from 'primeng/types/floatlabel';\nimport { FloatLabelStyle } from './style/floatlabelstyle';\n\nconst FLOATLABEL_INSTANCE = new InjectionToken<FloatLabel>('FLOATLABEL_INSTANCE');\n\n/**\n * FloatLabel appears on top of the input field when focused.\n * @group Components\n */\n@Component({\n selector: 'p-floatlabel, p-float-label',\n standalone: true,\n imports: [SharedModule, BindModule],\n template: ` <ng-content></ng-content> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [FloatLabelStyle, { provide: FLOATLABEL_INSTANCE, useExisting: FloatLabel }, { provide: PARENT_INSTANCE, useExisting: FloatLabel }],\n host: {\n '[class]': \"cx('root')\"\n },\n hostDirectives: [Bind]\n})\nexport class FloatLabel extends BaseComponent<FloatLabelPassThrough> {\n componentName = 'FloatLabel';\n\n _componentStyle = inject(FloatLabelStyle);\n\n $pcFloatLabel: FloatLabel | undefined = inject(FLOATLABEL_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Defines the positioning of the label relative to the input.\n * @group Props\n */\n variant = input<FloatLabelVariant>('over');\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n\n@NgModule({\n imports: [FloatLabel, SharedModule],\n exports: [FloatLabel, SharedModule]\n})\nexport class FloatLabelModule {}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-fluid.mjs","names":[],"sources":["../../src/fluid/style/fluidstyle.ts","../../src/fluid/fluid.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: 'p-fluid'\n};\n\n@Injectable()\nexport class FluidStyle extends BaseStyle {\n name = 'fluid';\n\n classes = classes;\n}\n\n/**\n *\n * Fluid is a layout component to make descendant components span full width of their container.\n *\n * [Live Demo](https://www.primeng.org/fluid/)\n *\n * @module fluidstyle\n *\n */\nexport enum FluidClasses {\n /**\n * Class name of the root element\n */\n root = 'p-fluid'\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, InjectionToken, NgModule, ViewEncapsulation } from '@angular/core';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { FluidPassThrough } from 'primeng/types/fluid';\nimport { FluidStyle } from './style/fluidstyle';\n\nconst FLUID_INSTANCE = new InjectionToken<Fluid>('FLUID_INSTANCE');\n\n/**\n * Fluid is a layout component to make descendant components span full width of their container.\n * @group Components\n */\n@Component({\n selector: 'p-fluid',\n template: ` <ng-content></ng-content> `,\n standalone: true,\n imports: [CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [FluidStyle, { provide: FLUID_INSTANCE, useExisting: Fluid }, { provide: PARENT_INSTANCE, useExisting: Fluid }],\n host: {\n '[class]': \"cx('root')\"\n },\n hostDirectives: [Bind]\n})\nexport class Fluid extends BaseComponent<FluidPassThrough> {\n componentName = 'Fluid';\n\n $pcFluid: Fluid | undefined = inject(FLUID_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n _componentStyle = inject(FluidStyle);\n\n onAfterViewChecked(): void {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n}\n\n@NgModule({\n imports: [Fluid],\n exports: [Fluid]\n})\nexport class FluidModule {}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"primeng-focustrap.mjs","names":[],"sources":["../../src/focustrap/focustrap.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, Directive, effect, input, NgModule } from '@angular/core';\nimport { createElement, focus, getFirstFocusableElement, getLastFocusableElement } from '@primeuix/utils';\nimport { BaseComponent } from 'primeng/basecomponent';\n\n/**\n * Focus Trap keeps focus within a certain DOM element while tabbing.\n * @group Components\n */\n@Directive({\n selector: '[pFocusTrap]',\n standalone: true\n})\nexport class FocusTrap extends BaseComponent {\n /**\n * When set as true, focus wouldn't be managed.\n * @group Props\n */\n pFocusTrapDisabled = input(false, { transform: booleanAttribute });\n\n firstHiddenFocusableElement!: HTMLElement;\n\n lastHiddenFocusableElement!: HTMLElement;\n\n constructor() {\n super();\n\n effect(() => {\n const disabled = this.pFocusTrapDisabled();\n\n if (isPlatformBrowser(this.platformId)) {\n if (disabled) {\n this.removeHiddenFocusableElements();\n } else if (!this.firstHiddenFocusableElement && !this.lastHiddenFocusableElement) {\n this.createHiddenFocusableElements();\n }\n }\n });\n }\n\n onInit() {\n if (isPlatformBrowser(this.platformId) && !this.pFocusTrapDisabled()) {\n if (!this.firstHiddenFocusableElement && !this.lastHiddenFocusableElement) {\n this.createHiddenFocusableElements();\n }\n }\n }\n\n removeHiddenFocusableElements() {\n if (this.firstHiddenFocusableElement && this.firstHiddenFocusableElement.parentNode) {\n this.firstHiddenFocusableElement.parentNode.removeChild(this.firstHiddenFocusableElement);\n }\n\n if (this.lastHiddenFocusableElement && this.lastHiddenFocusableElement.parentNode) {\n this.lastHiddenFocusableElement.parentNode.removeChild(this.lastHiddenFocusableElement);\n }\n\n this.firstHiddenFocusableElement = null!;\n this.lastHiddenFocusableElement = null!;\n }\n\n getComputedSelector(selector: string | null) {\n return `:not(.p-hidden-focusable):not([data-p-hidden-focusable=\"true\"])${selector ?? ''}`;\n }\n\n createHiddenFocusableElements() {\n const tabindex = '0';\n\n const createFocusableElement = (onFocus: (event: FocusEvent) => void) =>\n createElement('span', {\n class: 'p-hidden-accessible p-hidden-focusable',\n tabindex,\n role: 'presentation',\n 'aria-hidden': true,\n 'data-p-hidden-accessible': true,\n 'data-p-hidden-focusable': true,\n onFocus: onFocus?.bind(this)\n }) as HTMLElement;\n\n this.firstHiddenFocusableElement = createFocusableElement(this.onFirstHiddenElementFocus);\n this.lastHiddenFocusableElement = createFocusableElement(this.onLastHiddenElementFocus);\n\n this.firstHiddenFocusableElement.setAttribute('data-pc-section', 'firstfocusableelement');\n this.lastHiddenFocusableElement.setAttribute('data-pc-section', 'lastfocusableelement');\n\n this.el.nativeElement.prepend(this.firstHiddenFocusableElement);\n this.el.nativeElement.append(this.lastHiddenFocusableElement);\n }\n\n onFirstHiddenElementFocus(event: FocusEvent) {\n const { currentTarget, relatedTarget } = event;\n const focusableElement =\n relatedTarget === this.lastHiddenFocusableElement || !this.el.nativeElement?.contains(relatedTarget as Node)\n ? getFirstFocusableElement((currentTarget as HTMLElement).parentElement!, ':not(.p-hidden-focusable)')\n : this.lastHiddenFocusableElement;\n\n focus(focusableElement as HTMLElement);\n }\n\n onLastHiddenElementFocus(event: FocusEvent) {\n const { currentTarget, relatedTarget } = event;\n const focusableElement =\n relatedTarget === this.firstHiddenFocusableElement || !this.el.nativeElement?.contains(relatedTarget as Node)\n ? getLastFocusableElement((currentTarget as HTMLElement).parentElement!, ':not(.p-hidden-focusable)')\n : this.firstHiddenFocusableElement;\n\n focus(focusableElement as HTMLElement);\n }\n}\n\n@NgModule({\n imports: [FocusTrap],\n exports: [FocusTrap]\n})\nexport class FocusTrapModule {}\n"],"mappings":"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"}
|