primeng 18.0.0-rc.2 → 19.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/autocomplete/autocomplete.d.ts +11 -11
- package/base/style/basestyle.d.ts +11 -11
- package/config/primeng.d.ts +12 -6
- package/config/provideprimeng.d.ts +1 -12
- package/config/themeprovider.d.ts +10 -4
- package/confirmdialog/confirmdialog.d.ts +1 -0
- package/fesm2022/primeng-accordion.mjs +12 -12
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +1 -1
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +5 -5
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +135 -136
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +1 -1
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +2 -2
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +2 -2
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +3 -3
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +1 -1
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +2 -2
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +2 -2
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +5 -5
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +2 -2
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +3 -3
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +2 -2
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +2 -2
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +6 -6
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +2 -2
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +3 -4
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +2 -2
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +3 -3
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +39 -40
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +13 -10
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +2 -2
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +6 -6
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +2 -2
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +5 -5
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +18 -19
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -2
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +3 -4
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +2 -2
- package/fesm2022/primeng-dragdrop.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +5 -5
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +4 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +4 -4
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +2 -2
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +2 -2
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +3 -4
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +2 -2
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +2 -2
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +1 -1
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +10 -10
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +2 -2
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +2 -2
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +2 -2
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +2 -2
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +2 -2
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +2 -2
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +2 -2
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +2 -2
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +2 -2
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +2 -2
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +2 -2
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +2 -2
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +2 -2
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +2 -2
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +2 -2
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +2 -2
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +2 -2
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +2 -2
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +2 -2
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +2 -2
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +2 -2
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +2 -2
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +2 -2
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +2 -2
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +2 -2
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +2 -2
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +2 -2
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +2 -2
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +2 -2
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +2 -2
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +2 -2
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +2 -2
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +2 -2
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +2 -2
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +2 -2
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +2 -2
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +2 -2
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +2 -2
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +2 -2
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +2 -2
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +3 -3
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +2 -2
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +6 -6
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +2 -2
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +2 -2
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +4 -4
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +5 -6
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +4 -4
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +2 -2
- package/fesm2022/primeng-inputswitch.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +10 -9
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -1
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +1 -1
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +2 -2
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +2 -2
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +5 -5
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +7 -7
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +6 -6
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +2 -2
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +2 -2
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +4 -4
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +6 -9
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +4 -4
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +5 -5
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +3 -3
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +2 -2
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +7 -4
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +2 -2
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +3 -4
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +9 -9
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +30 -7
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +135 -139
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +9 -8
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +2 -2
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +2 -2
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +2 -2
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +4 -4
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +5 -2
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +2 -2
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +2 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +2 -2
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +9 -11
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +3 -4
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +4 -5
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +2 -2
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +2 -2
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +2 -2
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +2 -2
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +30 -19
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +16 -16
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +2 -2
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +1 -1
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +6392 -6520
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +2 -2
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +11 -11
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +5 -5
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +2 -2
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +2 -2
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +8 -8
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +6 -6
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +2 -2
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +6 -7
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +3 -4
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +2 -2
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +2 -2
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +5 -3
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +112 -63
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +5 -10
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +31 -29
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/inputtext/inputtext.d.ts +2 -2
- package/package.json +176 -524
- package/password/password.d.ts +5 -1
- package/popover/popover.d.ts +1 -1
- package/speeddial/speeddial.d.ts +2 -2
- package/splitter/splitter.d.ts +2 -3
- package/splitter/style/splitterstyle.d.ts +0 -13
- package/table/table.d.ts +928 -1030
- package/textarea/textarea.d.ts +2 -2
- package/tree/style/treestyle.d.ts +1 -1
- package/tree/tree.d.ts +4 -2
- package/treetable/treetable.d.ts +1 -1
- package/esm2022/accordion/accordion.mjs +0 -1266
- package/esm2022/accordion/primeng-accordion.mjs +0 -5
- package/esm2022/accordion/public_api.mjs +0 -3
- package/esm2022/accordion/style/accordionstyle.mjs +0 -163
- package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
- package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
- package/esm2022/animateonscroll/public_api.mjs +0 -2
- package/esm2022/api/blockableui.mjs +0 -2
- package/esm2022/api/confirmaeventtype.mjs +0 -10
- package/esm2022/api/confirmation.mjs +0 -2
- package/esm2022/api/confirmationservice.mjs +0 -43
- package/esm2022/api/contextmenuservice.mjs +0 -22
- package/esm2022/api/filtermatchmode.mjs +0 -23
- package/esm2022/api/filtermetadata.mjs +0 -2
- package/esm2022/api/filteroperator.mjs +0 -5
- package/esm2022/api/filterservice.mjs +0 -224
- package/esm2022/api/lazyloadevent.mjs +0 -2
- package/esm2022/api/lazyloadmeta.mjs +0 -2
- package/esm2022/api/megamenuitem.mjs +0 -2
- package/esm2022/api/menuitem.mjs +0 -2
- package/esm2022/api/messageservice.mjs +0 -47
- package/esm2022/api/overlayoptions.mjs +0 -2
- package/esm2022/api/overlayservice.mjs +0 -19
- package/esm2022/api/primeicons.mjs +0 -314
- package/esm2022/api/primeng-api.mjs +0 -5
- package/esm2022/api/public_api.mjs +0 -33
- package/esm2022/api/scrolleroptions.mjs +0 -2
- package/esm2022/api/selectitem.mjs +0 -2
- package/esm2022/api/selectitemgroup.mjs +0 -2
- package/esm2022/api/shared.mjs +0 -76
- package/esm2022/api/sortevent.mjs +0 -2
- package/esm2022/api/sortmeta.mjs +0 -2
- package/esm2022/api/tablestate.mjs +0 -2
- package/esm2022/api/toastmessage.mjs +0 -2
- package/esm2022/api/tooltipoptions.mjs +0 -2
- package/esm2022/api/translation.mjs +0 -2
- package/esm2022/api/translationkeys.mjs +0 -51
- package/esm2022/api/treedragdropservice.mjs +0 -21
- package/esm2022/api/treenode.mjs +0 -2
- package/esm2022/api/treenodedragevent.mjs +0 -2
- package/esm2022/api/treetablenode.mjs +0 -2
- package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
- package/esm2022/autocomplete/autocomplete.mjs +0 -2225
- package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/public_api.mjs +0 -4
- package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -408
- package/esm2022/autofocus/autofocus.mjs +0 -86
- package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
- package/esm2022/autofocus/public_api.mjs +0 -2
- package/esm2022/avatar/avatar.mjs +0 -193
- package/esm2022/avatar/primeng-avatar.mjs +0 -5
- package/esm2022/avatar/public_api.mjs +0 -3
- package/esm2022/avatar/style/avatarstyle.mjs +0 -130
- package/esm2022/avatargroup/avatargroup.mjs +0 -80
- package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
- package/esm2022/avatargroup/public_api.mjs +0 -3
- package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
- package/esm2022/badge/badge.mjs +0 -332
- package/esm2022/badge/primeng-badge.mjs +0 -5
- package/esm2022/badge/public_api.mjs +0 -3
- package/esm2022/badge/style/badgestyle.mjs +0 -143
- package/esm2022/base/base.mjs +0 -19
- package/esm2022/base/primeng-base.mjs +0 -5
- package/esm2022/base/public_api.mjs +0 -3
- package/esm2022/base/style/basestyle.mjs +0 -256
- package/esm2022/basecomponent/basecomponent.mjs +0 -183
- package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
- package/esm2022/basecomponent/public_api.mjs +0 -3
- package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
- package/esm2022/blockui/blockui.interface.mjs +0 -2
- package/esm2022/blockui/blockui.mjs +0 -210
- package/esm2022/blockui/primeng-blockui.mjs +0 -5
- package/esm2022/blockui/public_api.mjs +0 -4
- package/esm2022/blockui/style/blockuistyle.mjs +0 -50
- package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
- package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
- package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
- package/esm2022/breadcrumb/public_api.mjs +0 -4
- package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
- package/esm2022/button/button.interface.mjs +0 -2
- package/esm2022/button/button.mjs +0 -896
- package/esm2022/button/primeng-button.mjs +0 -5
- package/esm2022/button/public_api.mjs +0 -4
- package/esm2022/button/style/buttonstyle.mjs +0 -707
- package/esm2022/buttongroup/buttongroup.mjs +0 -47
- package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
- package/esm2022/buttongroup/public_api.mjs +0 -3
- package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
- package/esm2022/calendar/calendar.interface.mjs +0 -2
- package/esm2022/calendar/calendar.mjs +0 -4504
- package/esm2022/calendar/primeng-calendar.mjs +0 -5
- package/esm2022/calendar/public_api.mjs +0 -4
- package/esm2022/calendar/style/calendarstyle.mjs +0 -472
- package/esm2022/card/card.interface.mjs +0 -2
- package/esm2022/card/card.mjs +0 -243
- package/esm2022/card/primeng-card.mjs +0 -5
- package/esm2022/card/public_api.mjs +0 -4
- package/esm2022/card/style/cardstyle.mjs +0 -100
- package/esm2022/carousel/carousel.interface.mjs +0 -2
- package/esm2022/carousel/carousel.mjs +0 -1181
- package/esm2022/carousel/primeng-carousel.mjs +0 -5
- package/esm2022/carousel/public_api.mjs +0 -4
- package/esm2022/carousel/style/carouselstyle.mjs +0 -234
- package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
- package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
- package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
- package/esm2022/cascadeselect/public_api.mjs +0 -4
- package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
- package/esm2022/chart/chart.mjs +0 -210
- package/esm2022/chart/primeng-chart.mjs +0 -5
- package/esm2022/chart/public_api.mjs +0 -3
- package/esm2022/chart/style/chartstyle.mjs +0 -36
- package/esm2022/checkbox/checkbox.interface.mjs +0 -2
- package/esm2022/checkbox/checkbox.mjs +0 -450
- package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
- package/esm2022/checkbox/public_api.mjs +0 -4
- package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
- package/esm2022/chip/chip.interface.mjs +0 -2
- package/esm2022/chip/chip.mjs +0 -337
- package/esm2022/chip/primeng-chip.mjs +0 -5
- package/esm2022/chip/public_api.mjs +0 -4
- package/esm2022/chip/style/chipstyle.mjs +0 -104
- package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
- package/esm2022/colorpicker/colorpicker.mjs +0 -856
- package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
- package/esm2022/colorpicker/public_api.mjs +0 -4
- package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
- package/esm2022/config/primeng-config.mjs +0 -5
- package/esm2022/config/primeng.mjs +0 -189
- package/esm2022/config/provideprimeng.mjs +0 -11
- package/esm2022/config/public_api.mjs +0 -4
- package/esm2022/config/themeprovider.mjs +0 -74
- package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
- package/esm2022/confirmdialog/confirmdialog.mjs +0 -810
- package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
- package/esm2022/confirmdialog/public_api.mjs +0 -4
- package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
- package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
- package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
- package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
- package/esm2022/confirmpopup/public_api.mjs +0 -4
- package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
- package/esm2022/contextmenu/contextmenu.mjs +0 -1436
- package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
- package/esm2022/contextmenu/public_api.mjs +0 -3
- package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
- package/esm2022/dataview/dataview.interface.mjs +0 -2
- package/esm2022/dataview/dataview.mjs +0 -819
- package/esm2022/dataview/primeng-dataview.mjs +0 -5
- package/esm2022/dataview/public_api.mjs +0 -4
- package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
- package/esm2022/datepicker/datepicker.interface.mjs +0 -2
- package/esm2022/datepicker/datepicker.mjs +0 -4539
- package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
- package/esm2022/datepicker/public_api.mjs +0 -4
- package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
- package/esm2022/defer/defer.mjs +0 -100
- package/esm2022/defer/primeng-defer.mjs +0 -5
- package/esm2022/defer/public_api.mjs +0 -2
- package/esm2022/dialog/dialog.interface.mjs +0 -2
- package/esm2022/dialog/dialog.mjs +0 -1384
- package/esm2022/dialog/primeng-dialog.mjs +0 -5
- package/esm2022/dialog/public_api.mjs +0 -4
- package/esm2022/dialog/style/dialogstyle.mjs +0 -283
- package/esm2022/divider/divider.mjs +0 -119
- package/esm2022/divider/primeng-divider.mjs +0 -5
- package/esm2022/divider/public_api.mjs +0 -3
- package/esm2022/divider/style/dividerstyle.mjs +0 -138
- package/esm2022/dock/dock.interface.mjs +0 -2
- package/esm2022/dock/dock.mjs +0 -447
- package/esm2022/dock/primeng-dock.mjs +0 -5
- package/esm2022/dock/public_api.mjs +0 -4
- package/esm2022/dock/style/dockstyle.mjs +0 -210
- package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
- package/esm2022/dom/domhandler.mjs +0 -725
- package/esm2022/dom/primeng-dom.mjs +0 -5
- package/esm2022/dom/public_api.mjs +0 -3
- package/esm2022/dragdrop/dragdrop.mjs +0 -323
- package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
- package/esm2022/dragdrop/public_api.mjs +0 -2
- package/esm2022/drawer/drawer.interface.mjs +0 -2
- package/esm2022/drawer/drawer.mjs +0 -663
- package/esm2022/drawer/primeng-drawer.mjs +0 -5
- package/esm2022/drawer/public_api.mjs +0 -4
- package/esm2022/drawer/style/drawerstyle.mjs +0 -283
- package/esm2022/dropdown/dropdown.interface.mjs +0 -2
- package/esm2022/dropdown/dropdown.mjs +0 -2498
- package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
- package/esm2022/dropdown/public_api.mjs +0 -4
- package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
- package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
- package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
- package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
- package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
- package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
- package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
- package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
- package/esm2022/dynamicdialog/public_api.mjs +0 -8
- package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
- package/esm2022/editor/editor.interface.mjs +0 -2
- package/esm2022/editor/editor.mjs +0 -427
- package/esm2022/editor/primeng-editor.mjs +0 -5
- package/esm2022/editor/public_api.mjs +0 -4
- package/esm2022/editor/style/editorstyle.mjs +0 -1008
- package/esm2022/fieldset/fieldset.interface.mjs +0 -2
- package/esm2022/fieldset/fieldset.mjs +0 -427
- package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
- package/esm2022/fieldset/public_api.mjs +0 -4
- package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
- package/esm2022/fileupload/fileupload.interface.mjs +0 -2
- package/esm2022/fileupload/fileupload.mjs +0 -1597
- package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
- package/esm2022/fileupload/public_api.mjs +0 -4
- package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
- package/esm2022/floatlabel/floatlabel.mjs +0 -61
- package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
- package/esm2022/floatlabel/public_api.mjs +0 -3
- package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
- package/esm2022/fluid/fluid.mjs +0 -50
- package/esm2022/fluid/primeng-fluid.mjs +0 -5
- package/esm2022/fluid/public_api.mjs +0 -3
- package/esm2022/fluid/style/fluidstyle.mjs +0 -38
- package/esm2022/focustrap/focustrap.mjs +0 -104
- package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
- package/esm2022/focustrap/public_api.mjs +0 -2
- package/esm2022/galleria/galleria.interface.mjs +0 -2
- package/esm2022/galleria/galleria.mjs +0 -1858
- package/esm2022/galleria/primeng-galleria.mjs +0 -5
- package/esm2022/galleria/public_api.mjs +0 -4
- package/esm2022/galleria/style/galleriastyle.mjs +0 -644
- package/esm2022/iconfield/iconfield.mjs +0 -73
- package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
- package/esm2022/iconfield/public_api.mjs +0 -3
- package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
- package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
- package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
- package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
- package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
- package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
- package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
- package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
- package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
- package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
- package/esm2022/icons/angledown/angledown.mjs +0 -32
- package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
- package/esm2022/icons/angledown/public_api.mjs +0 -2
- package/esm2022/icons/angleleft/angleleft.mjs +0 -32
- package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
- package/esm2022/icons/angleleft/public_api.mjs +0 -2
- package/esm2022/icons/angleright/angleright.mjs +0 -32
- package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
- package/esm2022/icons/angleright/public_api.mjs +0 -2
- package/esm2022/icons/angleup/angleup.mjs +0 -32
- package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
- package/esm2022/icons/angleup/public_api.mjs +0 -2
- package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
- package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
- package/esm2022/icons/arrowdown/public_api.mjs +0 -2
- package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
- package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
- package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
- package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
- package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
- package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
- package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
- package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
- package/esm2022/icons/arrowleft/public_api.mjs +0 -2
- package/esm2022/icons/arrowright/arrowright.mjs +0 -34
- package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
- package/esm2022/icons/arrowright/public_api.mjs +0 -2
- package/esm2022/icons/arrowup/arrowup.mjs +0 -53
- package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
- package/esm2022/icons/arrowup/public_api.mjs +0 -2
- package/esm2022/icons/ban/ban.mjs +0 -51
- package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
- package/esm2022/icons/ban/public_api.mjs +0 -2
- package/esm2022/icons/bars/bars.mjs +0 -34
- package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
- package/esm2022/icons/bars/public_api.mjs +0 -2
- package/esm2022/icons/baseicon/baseicon.mjs +0 -54
- package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
- package/esm2022/icons/baseicon/public_api.mjs +0 -3
- package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
- package/esm2022/icons/blank/blank.mjs +0 -26
- package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
- package/esm2022/icons/blank/public_api.mjs +0 -2
- package/esm2022/icons/calendar/calendar.mjs +0 -32
- package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
- package/esm2022/icons/calendar/public_api.mjs +0 -2
- package/esm2022/icons/caretleft/caretleft.mjs +0 -32
- package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
- package/esm2022/icons/caretleft/public_api.mjs +0 -2
- package/esm2022/icons/caretright/caretright.mjs +0 -32
- package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
- package/esm2022/icons/caretright/public_api.mjs +0 -2
- package/esm2022/icons/check/check.mjs +0 -32
- package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
- package/esm2022/icons/check/public_api.mjs +0 -2
- package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
- package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
- package/esm2022/icons/chevrondown/public_api.mjs +0 -2
- package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
- package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
- package/esm2022/icons/chevronleft/public_api.mjs +0 -2
- package/esm2022/icons/chevronright/chevronright.mjs +0 -32
- package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
- package/esm2022/icons/chevronright/public_api.mjs +0 -2
- package/esm2022/icons/chevronup/chevronup.mjs +0 -32
- package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
- package/esm2022/icons/chevronup/public_api.mjs +0 -2
- package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
- package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
- package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
- package/esm2022/icons/eye/eye.mjs +0 -34
- package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
- package/esm2022/icons/eye/public_api.mjs +0 -2
- package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
- package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
- package/esm2022/icons/eyeslash/public_api.mjs +0 -2
- package/esm2022/icons/filter/filter.mjs +0 -51
- package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
- package/esm2022/icons/filter/public_api.mjs +0 -2
- package/esm2022/icons/filterslash/filterslash.mjs +0 -53
- package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
- package/esm2022/icons/filterslash/public_api.mjs +0 -2
- package/esm2022/icons/home/home.mjs +0 -53
- package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
- package/esm2022/icons/home/public_api.mjs +0 -2
- package/esm2022/icons/infocircle/infocircle.mjs +0 -53
- package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
- package/esm2022/icons/infocircle/public_api.mjs +0 -2
- package/esm2022/icons/minus/minus.mjs +0 -32
- package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
- package/esm2022/icons/minus/public_api.mjs +0 -2
- package/esm2022/icons/pencil/pencil.mjs +0 -51
- package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
- package/esm2022/icons/pencil/public_api.mjs +0 -2
- package/esm2022/icons/plus/plus.mjs +0 -51
- package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
- package/esm2022/icons/plus/public_api.mjs +0 -2
- package/esm2022/icons/primeng-icons.mjs +0 -5
- package/esm2022/icons/public_api.mjs +0 -58
- package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
- package/esm2022/icons/refresh/public_api.mjs +0 -2
- package/esm2022/icons/refresh/refresh.mjs +0 -53
- package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
- package/esm2022/icons/search/public_api.mjs +0 -2
- package/esm2022/icons/search/search.mjs +0 -53
- package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
- package/esm2022/icons/searchminus/public_api.mjs +0 -2
- package/esm2022/icons/searchminus/searchminus.mjs +0 -53
- package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
- package/esm2022/icons/searchplus/public_api.mjs +0 -2
- package/esm2022/icons/searchplus/searchplus.mjs +0 -53
- package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
- package/esm2022/icons/sortalt/public_api.mjs +0 -2
- package/esm2022/icons/sortalt/sortalt.mjs +0 -57
- package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
- package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
- package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
- package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
- package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
- package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
- package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
- package/esm2022/icons/spinner/public_api.mjs +0 -2
- package/esm2022/icons/spinner/spinner.mjs +0 -51
- package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
- package/esm2022/icons/star/public_api.mjs +0 -2
- package/esm2022/icons/star/star.mjs +0 -51
- package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
- package/esm2022/icons/starfill/public_api.mjs +0 -2
- package/esm2022/icons/starfill/starfill.mjs +0 -51
- package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
- package/esm2022/icons/thlarge/public_api.mjs +0 -2
- package/esm2022/icons/thlarge/thlarge.mjs +0 -53
- package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
- package/esm2022/icons/times/public_api.mjs +0 -2
- package/esm2022/icons/times/times.mjs +0 -32
- package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
- package/esm2022/icons/timescircle/public_api.mjs +0 -2
- package/esm2022/icons/timescircle/timescircle.mjs +0 -53
- package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
- package/esm2022/icons/trash/public_api.mjs +0 -2
- package/esm2022/icons/trash/trash.mjs +0 -53
- package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
- package/esm2022/icons/undo/public_api.mjs +0 -2
- package/esm2022/icons/undo/undo.mjs +0 -53
- package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
- package/esm2022/icons/upload/public_api.mjs +0 -2
- package/esm2022/icons/upload/upload.mjs +0 -53
- package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
- package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
- package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
- package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
- package/esm2022/icons/windowminimize/public_api.mjs +0 -2
- package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
- package/esm2022/iftalabel/iftalabel.mjs +0 -49
- package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
- package/esm2022/iftalabel/public_api.mjs +0 -3
- package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
- package/esm2022/image/image.interface.mjs +0 -2
- package/esm2022/image/image.mjs +0 -747
- package/esm2022/image/primeng-image.mjs +0 -5
- package/esm2022/image/public_api.mjs +0 -4
- package/esm2022/image/style/imagestyle.mjs +0 -219
- package/esm2022/imagecompare/imagecompare.mjs +0 -158
- package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
- package/esm2022/imagecompare/public_api.mjs +0 -3
- package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
- package/esm2022/inplace/inplace.interface.mjs +0 -2
- package/esm2022/inplace/inplace.mjs +0 -344
- package/esm2022/inplace/primeng-inplace.mjs +0 -5
- package/esm2022/inplace/public_api.mjs +0 -4
- package/esm2022/inplace/style/inplacestyle.mjs +0 -69
- package/esm2022/inputgroup/inputgroup.mjs +0 -68
- package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
- package/esm2022/inputgroup/public_api.mjs +0 -3
- package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
- package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
- package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
- package/esm2022/inputgroupaddon/public_api.mjs +0 -3
- package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
- package/esm2022/inputicon/inputicon.mjs +0 -66
- package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
- package/esm2022/inputicon/public_api.mjs +0 -3
- package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
- package/esm2022/inputmask/inputmask.interface.mjs +0 -2
- package/esm2022/inputmask/inputmask.mjs +0 -911
- package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
- package/esm2022/inputmask/public_api.mjs +0 -4
- package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
- package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
- package/esm2022/inputnumber/inputnumber.mjs +0 -1745
- package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
- package/esm2022/inputnumber/public_api.mjs +0 -4
- package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
- package/esm2022/inputotp/inputotp.mjs +0 -406
- package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
- package/esm2022/inputotp/public_api.mjs +0 -3
- package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
- package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
- package/esm2022/inputswitch/inputswitch.mjs +0 -241
- package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
- package/esm2022/inputswitch/public_api.mjs +0 -4
- package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
- package/esm2022/inputtext/inputtext.mjs +0 -103
- package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
- package/esm2022/inputtext/public_api.mjs +0 -3
- package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
- package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
- package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
- package/esm2022/inputtextarea/public_api.mjs +0 -3
- package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
- package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
- package/esm2022/keyfilter/keyfilter.mjs +0 -263
- package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
- package/esm2022/keyfilter/public_api.mjs +0 -3
- package/esm2022/knob/knob.mjs +0 -471
- package/esm2022/knob/primeng-knob.mjs +0 -5
- package/esm2022/knob/public_api.mjs +0 -3
- package/esm2022/knob/style/knobstyle.mjs +0 -83
- package/esm2022/listbox/listbox.interface.mjs +0 -2
- package/esm2022/listbox/listbox.mjs +0 -2044
- package/esm2022/listbox/primeng-listbox.mjs +0 -5
- package/esm2022/listbox/public_api.mjs +0 -4
- package/esm2022/listbox/style/listboxstyle.mjs +0 -206
- package/esm2022/megamenu/megamenu.interface.mjs +0 -2
- package/esm2022/megamenu/megamenu.mjs +0 -1607
- package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
- package/esm2022/megamenu/public_api.mjs +0 -4
- package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
- package/esm2022/menu/menu.mjs +0 -1193
- package/esm2022/menu/primeng-menu.mjs +0 -5
- package/esm2022/menu/public_api.mjs +0 -3
- package/esm2022/menu/style/menustyle.mjs +0 -179
- package/esm2022/menubar/menubar.interface.mjs +0 -2
- package/esm2022/menubar/menubar.mjs +0 -1484
- package/esm2022/menubar/primeng-menubar.mjs +0 -5
- package/esm2022/menubar/public_api.mjs +0 -4
- package/esm2022/menubar/style/menubarstyle.mjs +0 -375
- package/esm2022/message/message.mjs +0 -421
- package/esm2022/message/primeng-message.mjs +0 -5
- package/esm2022/message/public_api.mjs +0 -3
- package/esm2022/message/style/messagestyle.mjs +0 -357
- package/esm2022/messages/messages.interface.mjs +0 -2
- package/esm2022/messages/messages.mjs +0 -529
- package/esm2022/messages/primeng-messages.mjs +0 -5
- package/esm2022/messages/public_api.mjs +0 -4
- package/esm2022/messages/style/messagesstyle.mjs +0 -229
- package/esm2022/metergroup/metergroup.interface.mjs +0 -2
- package/esm2022/metergroup/metergroup.mjs +0 -423
- package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
- package/esm2022/metergroup/public_api.mjs +0 -4
- package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
- package/esm2022/multiselect/multiselect.interface.mjs +0 -2
- package/esm2022/multiselect/multiselect.mjs +0 -2924
- package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
- package/esm2022/multiselect/public_api.mjs +0 -4
- package/esm2022/multiselect/style/multiselectstyle.mjs +0 -376
- package/esm2022/orderlist/orderlist.interface.mjs +0 -2
- package/esm2022/orderlist/orderlist.mjs +0 -1121
- package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
- package/esm2022/orderlist/public_api.mjs +0 -4
- package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
- package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
- package/esm2022/organizationchart/organizationchart.mjs +0 -591
- package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
- package/esm2022/organizationchart/public_api.mjs +0 -4
- package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
- package/esm2022/overlay/overlay.mjs +0 -668
- package/esm2022/overlay/primeng-overlay.mjs +0 -5
- package/esm2022/overlay/public_api.mjs +0 -3
- package/esm2022/overlay/style/overlaystyle.mjs +0 -93
- package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
- package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
- package/esm2022/overlaybadge/public_api.mjs +0 -3
- package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
- package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
- package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
- package/esm2022/overlaypanel/public_api.mjs +0 -3
- package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
- package/esm2022/paginator/paginator.interface.mjs +0 -2
- package/esm2022/paginator/paginator.mjs +0 -893
- package/esm2022/paginator/primeng-paginator.mjs +0 -5
- package/esm2022/paginator/public_api.mjs +0 -4
- package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
- package/esm2022/panel/panel.mjs +0 -585
- package/esm2022/panel/primeng-panel.mjs +0 -5
- package/esm2022/panel/public_api.mjs +0 -3
- package/esm2022/panel/style/panelstyle.mjs +0 -120
- package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
- package/esm2022/panelmenu/panelmenu.mjs +0 -1628
- package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
- package/esm2022/panelmenu/public_api.mjs +0 -4
- package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
- package/esm2022/password/password.mjs +0 -1178
- package/esm2022/password/primeng-password.mjs +0 -5
- package/esm2022/password/public_api.mjs +0 -3
- package/esm2022/password/style/passwordstyle.mjs +0 -182
- package/esm2022/picklist/picklist.interface.mjs +0 -2
- package/esm2022/picklist/picklist.mjs +0 -2298
- package/esm2022/picklist/primeng-picklist.mjs +0 -5
- package/esm2022/picklist/public_api.mjs +0 -4
- package/esm2022/picklist/style/pickliststyle.mjs +0 -79
- package/esm2022/popover/popover.mjs +0 -518
- package/esm2022/popover/primeng-popover.mjs +0 -5
- package/esm2022/popover/public_api.mjs +0 -3
- package/esm2022/popover/style/popoverstyle.mjs +0 -99
- package/esm2022/primeng.mjs +0 -5
- package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
- package/esm2022/progressbar/progressbar.mjs +0 -197
- package/esm2022/progressbar/public_api.mjs +0 -3
- package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
- package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
- package/esm2022/progressspinner/progressspinner.mjs +0 -105
- package/esm2022/progressspinner/public_api.mjs +0 -3
- package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
- package/esm2022/public_api.mjs +0 -2
- package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
- package/esm2022/radiobutton/public_api.mjs +0 -4
- package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
- package/esm2022/radiobutton/radiobutton.mjs +0 -356
- package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
- package/esm2022/rating/primeng-rating.mjs +0 -5
- package/esm2022/rating/public_api.mjs +0 -4
- package/esm2022/rating/rating.interface.mjs +0 -2
- package/esm2022/rating/rating.mjs +0 -425
- package/esm2022/rating/style/ratingstyle.mjs +0 -103
- package/esm2022/ripple/primeng-ripple.mjs +0 -5
- package/esm2022/ripple/public_api.mjs +0 -3
- package/esm2022/ripple/ripple.mjs +0 -131
- package/esm2022/ripple/style/ripplestyle.mjs +0 -63
- package/esm2022/scroller/primeng-scroller.mjs +0 -5
- package/esm2022/scroller/public_api.mjs +0 -4
- package/esm2022/scroller/scroller.interface.mjs +0 -2
- package/esm2022/scroller/scroller.mjs +0 -1290
- package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
- package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
- package/esm2022/scrollpanel/public_api.mjs +0 -4
- package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
- package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
- package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
- package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
- package/esm2022/scrolltop/public_api.mjs +0 -4
- package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
- package/esm2022/scrolltop/scrolltop.mjs +0 -336
- package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
- package/esm2022/select/primeng-select.mjs +0 -5
- package/esm2022/select/public_api.mjs +0 -4
- package/esm2022/select/select.interface.mjs +0 -2
- package/esm2022/select/select.mjs +0 -2617
- package/esm2022/select/style/selectstyle.mjs +0 -368
- package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
- package/esm2022/selectbutton/public_api.mjs +0 -4
- package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
- package/esm2022/selectbutton/selectbutton.mjs +0 -373
- package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
- package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
- package/esm2022/sidebar/public_api.mjs +0 -4
- package/esm2022/sidebar/sidebar.interface.mjs +0 -2
- package/esm2022/sidebar/sidebar.mjs +0 -578
- package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
- package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
- package/esm2022/skeleton/public_api.mjs +0 -3
- package/esm2022/skeleton/skeleton.mjs +0 -121
- package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
- package/esm2022/slider/primeng-slider.mjs +0 -5
- package/esm2022/slider/public_api.mjs +0 -4
- package/esm2022/slider/slider.interface.mjs +0 -2
- package/esm2022/slider/slider.mjs +0 -820
- package/esm2022/slider/style/sliderstyle.mjs +0 -141
- package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
- package/esm2022/speeddial/public_api.mjs +0 -4
- package/esm2022/speeddial/speeddial.interface.mjs +0 -2
- package/esm2022/speeddial/speeddial.mjs +0 -866
- package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
- package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
- package/esm2022/splitbutton/public_api.mjs +0 -4
- package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
- package/esm2022/splitbutton/splitbutton.mjs +0 -579
- package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
- package/esm2022/splitter/primeng-splitter.mjs +0 -5
- package/esm2022/splitter/public_api.mjs +0 -4
- package/esm2022/splitter/splitter.interface.mjs +0 -2
- package/esm2022/splitter/splitter.mjs +0 -616
- package/esm2022/splitter/style/splitterstyle.mjs +0 -126
- package/esm2022/stepper/primeng-stepper.mjs +0 -5
- package/esm2022/stepper/public_api.mjs +0 -3
- package/esm2022/stepper/stepper.mjs +0 -521
- package/esm2022/stepper/style/stepperstyle.mjs +0 -228
- package/esm2022/steps/primeng-steps.mjs +0 -5
- package/esm2022/steps/public_api.mjs +0 -3
- package/esm2022/steps/steps.mjs +0 -405
- package/esm2022/steps/style/stepsstyle.mjs +0 -180
- package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
- package/esm2022/styleclass/public_api.mjs +0 -2
- package/esm2022/styleclass/styleclass.mjs +0 -315
- package/esm2022/table/columnfilter.interface.mjs +0 -2
- package/esm2022/table/primeng-table.mjs +0 -5
- package/esm2022/table/public_api.mjs +0 -5
- package/esm2022/table/style/tablestyle.mjs +0 -906
- package/esm2022/table/table.interface.mjs +0 -2
- package/esm2022/table/table.mjs +0 -7982
- package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
- package/esm2022/tabmenu/public_api.mjs +0 -4
- package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
- package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
- package/esm2022/tabmenu/tabmenu.mjs +0 -730
- package/esm2022/tabs/primeng-tabs.mjs +0 -5
- package/esm2022/tabs/public_api.mjs +0 -7
- package/esm2022/tabs/style/tabsstyle.mjs +0 -211
- package/esm2022/tabs/tab.mjs +0 -175
- package/esm2022/tabs/tablist.mjs +0 -297
- package/esm2022/tabs/tabpanel.mjs +0 -60
- package/esm2022/tabs/tabpanels.mjs +0 -38
- package/esm2022/tabs/tabs.mjs +0 -105
- package/esm2022/tabview/primeng-tabview.mjs +0 -5
- package/esm2022/tabview/public_api.mjs +0 -4
- package/esm2022/tabview/style/tabsstyle.mjs +0 -211
- package/esm2022/tabview/tabview.interface.mjs +0 -2
- package/esm2022/tabview/tabview.mjs +0 -1089
- package/esm2022/tag/primeng-tag.mjs +0 -5
- package/esm2022/tag/public_api.mjs +0 -4
- package/esm2022/tag/style/tagstyle.mjs +0 -108
- package/esm2022/tag/tag.interface.mjs +0 -2
- package/esm2022/tag/tag.mjs +0 -168
- package/esm2022/terminal/primeng-terminal.mjs +0 -5
- package/esm2022/terminal/public_api.mjs +0 -4
- package/esm2022/terminal/style/terminalstyle.mjs +0 -113
- package/esm2022/terminal/terminal.mjs +0 -195
- package/esm2022/terminal/terminalservice.mjs +0 -25
- package/esm2022/textarea/primeng-textarea.mjs +0 -5
- package/esm2022/textarea/public_api.mjs +0 -3
- package/esm2022/textarea/style/textareastyle.mjs +0 -120
- package/esm2022/textarea/textarea.mjs +0 -165
- package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
- package/esm2022/tieredmenu/public_api.mjs +0 -4
- package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
- package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
- package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
- package/esm2022/timeline/primeng-timeline.mjs +0 -5
- package/esm2022/timeline/public_api.mjs +0 -4
- package/esm2022/timeline/style/timelinestyle.mjs +0 -217
- package/esm2022/timeline/timeline.interface.mjs +0 -2
- package/esm2022/timeline/timeline.mjs +0 -223
- package/esm2022/toast/primeng-toast.mjs +0 -5
- package/esm2022/toast/public_api.mjs +0 -4
- package/esm2022/toast/style/toaststyle.mjs +0 -351
- package/esm2022/toast/toast.interface.mjs +0 -2
- package/esm2022/toast/toast.mjs +0 -738
- package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
- package/esm2022/togglebutton/public_api.mjs +0 -3
- package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
- package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
- package/esm2022/togglebutton/togglebutton.mjs +0 -353
- package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
- package/esm2022/toggleswitch/public_api.mjs +0 -4
- package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
- package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
- package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
- package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
- package/esm2022/toolbar/public_api.mjs +0 -4
- package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
- package/esm2022/toolbar/toolbar.interface.mjs +0 -2
- package/esm2022/toolbar/toolbar.mjs +0 -172
- package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
- package/esm2022/tooltip/public_api.mjs +0 -3
- package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
- package/esm2022/tooltip/tooltip.mjs +0 -715
- package/esm2022/tree/primeng-tree.mjs +0 -5
- package/esm2022/tree/public_api.mjs +0 -4
- package/esm2022/tree/style/treestyle.mjs +0 -323
- package/esm2022/tree/tree.interface.mjs +0 -2
- package/esm2022/tree/tree.mjs +0 -2248
- package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
- package/esm2022/treeselect/public_api.mjs +0 -4
- package/esm2022/treeselect/style/treeselectstyle.mjs +0 -274
- package/esm2022/treeselect/treeselect.interface.mjs +0 -2
- package/esm2022/treeselect/treeselect.mjs +0 -1372
- package/esm2022/treetable/primeng-treetable.mjs +0 -5
- package/esm2022/treetable/public_api.mjs +0 -4
- package/esm2022/treetable/style/treetablestyle.mjs +0 -621
- package/esm2022/treetable/treetable.interface.mjs +0 -2
- package/esm2022/treetable/treetable.mjs +0 -4642
- package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
- package/esm2022/ts-helpers/public_api.mjs +0 -2
- package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
- package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
- package/esm2022/usestyle/public_api.mjs +0 -2
- package/esm2022/usestyle/usestyle.mjs +0 -44
- package/esm2022/utils/inpututils.mjs +0 -7
- package/esm2022/utils/objectutils.mjs +0 -276
- package/esm2022/utils/primeng-utils.mjs +0 -5
- package/esm2022/utils/public_api.mjs +0 -6
- package/esm2022/utils/uniquecomponentid.mjs +0 -6
- package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,1597 +0,0 @@
|
|
1
|
-
import { CommonModule, isPlatformBrowser } from '@angular/common';
|
2
|
-
import { HttpClient, HttpEventType } from '@angular/common/http';
|
3
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, EventEmitter, inject, Input, NgModule, NgZone, numberAttribute, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
4
|
-
import { DomSanitizer } from '@angular/platform-browser';
|
5
|
-
import { addClass, removeClass } from '@primeuix/utils';
|
6
|
-
import { SharedModule, TranslationKeys } from 'primeng/api';
|
7
|
-
import { BaseComponent } from 'primeng/basecomponent';
|
8
|
-
import { Button } from 'primeng/button';
|
9
|
-
import { PlusIcon, TimesIcon, UploadIcon } from 'primeng/icons';
|
10
|
-
import { Message } from 'primeng/message';
|
11
|
-
import { ProgressBar } from 'primeng/progressbar';
|
12
|
-
import { Ripple } from 'primeng/ripple';
|
13
|
-
import { FileUploadStyle } from './style/fileuploadstyle';
|
14
|
-
import * as i0 from "@angular/core";
|
15
|
-
import * as i1 from "@angular/common";
|
16
|
-
const _c0 = ["file"];
|
17
|
-
const _c1 = ["header"];
|
18
|
-
const _c2 = ["content"];
|
19
|
-
const _c3 = ["toolbar"];
|
20
|
-
const _c4 = ["chooseicon"];
|
21
|
-
const _c5 = ["filelabel"];
|
22
|
-
const _c6 = ["uploadicon"];
|
23
|
-
const _c7 = ["cancelicon"];
|
24
|
-
const _c8 = ["empty"];
|
25
|
-
const _c9 = ["advancedfileinput"];
|
26
|
-
const _c10 = ["basicfileinput"];
|
27
|
-
const _c11 = (a0, a1, a2, a3, a4) => ({ $implicit: a0, uploadedFiles: a1, chooseCallback: a2, clearCallback: a3, uploadCallback: a4 });
|
28
|
-
const _c12 = (a0, a1, a2, a3, a4, a5, a6, a7) => ({ $implicit: a0, uploadedFiles: a1, chooseCallback: a2, clearCallback: a3, removeUploadedFileCallback: a4, removeFileCallback: a5, progress: a6, messages: a7 });
|
29
|
-
const _c13 = a0 => ({ $implicit: a0 });
|
30
|
-
function FileUpload_div_0_ng_container_4_span_4_Template(rf, ctx) { if (rf & 1) {
|
31
|
-
i0.ɵɵelement(0, "span");
|
32
|
-
} if (rf & 2) {
|
33
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
34
|
-
i0.ɵɵclassMap(ctx_r1.chooseIcon);
|
35
|
-
i0.ɵɵattribute("aria-label", true)("data-pc-section", "chooseicon");
|
36
|
-
} }
|
37
|
-
function FileUpload_div_0_ng_container_4_ng_container_5_PlusIcon_1_Template(rf, ctx) { if (rf & 1) {
|
38
|
-
i0.ɵɵelement(0, "PlusIcon");
|
39
|
-
} if (rf & 2) {
|
40
|
-
i0.ɵɵattribute("aria-label", true)("data-pc-section", "chooseicon");
|
41
|
-
} }
|
42
|
-
function FileUpload_div_0_ng_container_4_ng_container_5_span_2_1_ng_template_0_Template(rf, ctx) { }
|
43
|
-
function FileUpload_div_0_ng_container_4_ng_container_5_span_2_1_Template(rf, ctx) { if (rf & 1) {
|
44
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_ng_container_4_ng_container_5_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
|
45
|
-
} }
|
46
|
-
function FileUpload_div_0_ng_container_4_ng_container_5_span_2_Template(rf, ctx) { if (rf & 1) {
|
47
|
-
i0.ɵɵelementStart(0, "span");
|
48
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_ng_container_5_span_2_1_Template, 1, 0, null, 11);
|
49
|
-
i0.ɵɵelementEnd();
|
50
|
-
} if (rf & 2) {
|
51
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
52
|
-
i0.ɵɵattribute("aria-label", true)("data-pc-section", "chooseicon");
|
53
|
-
i0.ɵɵadvance();
|
54
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.chooseiconTemplate);
|
55
|
-
} }
|
56
|
-
function FileUpload_div_0_ng_container_4_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
57
|
-
i0.ɵɵelementContainerStart(0);
|
58
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_ng_container_5_PlusIcon_1_Template, 1, 2, "PlusIcon", 9)(2, FileUpload_div_0_ng_container_4_ng_container_5_span_2_Template, 2, 3, "span", 9);
|
59
|
-
i0.ɵɵelementContainerEnd();
|
60
|
-
} if (rf & 2) {
|
61
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
62
|
-
i0.ɵɵadvance();
|
63
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.chooseiconTemplate);
|
64
|
-
i0.ɵɵadvance();
|
65
|
-
i0.ɵɵproperty("ngIf", ctx_r1.chooseiconTemplate);
|
66
|
-
} }
|
67
|
-
function FileUpload_div_0_ng_container_4_p_button_6_span_1_Template(rf, ctx) { if (rf & 1) {
|
68
|
-
i0.ɵɵelement(0, "span", 21);
|
69
|
-
} if (rf & 2) {
|
70
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
71
|
-
i0.ɵɵproperty("ngClass", ctx_r1.uploadIcon);
|
72
|
-
i0.ɵɵattribute("aria-hidden", true);
|
73
|
-
} }
|
74
|
-
function FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_UploadIcon_1_Template(rf, ctx) { if (rf & 1) {
|
75
|
-
i0.ɵɵelement(0, "UploadIcon");
|
76
|
-
} }
|
77
|
-
function FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }
|
78
|
-
function FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {
|
79
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
|
80
|
-
} }
|
81
|
-
function FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {
|
82
|
-
i0.ɵɵelementStart(0, "span");
|
83
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_span_2_1_Template, 1, 0, null, 11);
|
84
|
-
i0.ɵɵelementEnd();
|
85
|
-
} if (rf & 2) {
|
86
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
87
|
-
i0.ɵɵattribute("aria-hidden", true);
|
88
|
-
i0.ɵɵadvance();
|
89
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.uploadiconTemplate);
|
90
|
-
} }
|
91
|
-
function FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
92
|
-
i0.ɵɵelementContainerStart(0);
|
93
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_UploadIcon_1_Template, 1, 0, "UploadIcon", 9)(2, FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_span_2_Template, 2, 2, "span", 9);
|
94
|
-
i0.ɵɵelementContainerEnd();
|
95
|
-
} if (rf & 2) {
|
96
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
97
|
-
i0.ɵɵadvance();
|
98
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.uploadiconTemplate);
|
99
|
-
i0.ɵɵadvance();
|
100
|
-
i0.ɵɵproperty("ngIf", ctx_r1.uploadiconTemplate);
|
101
|
-
} }
|
102
|
-
function FileUpload_div_0_ng_container_4_p_button_6_Template(rf, ctx) { if (rf & 1) {
|
103
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
104
|
-
i0.ɵɵelementStart(0, "p-button", 19);
|
105
|
-
i0.ɵɵlistener("onClick", function FileUpload_div_0_ng_container_4_p_button_6_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.upload()); });
|
106
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_p_button_6_span_1_Template, 1, 2, "span", 20)(2, FileUpload_div_0_ng_container_4_p_button_6_ng_container_2_Template, 3, 2, "ng-container", 9);
|
107
|
-
i0.ɵɵelementEnd();
|
108
|
-
} if (rf & 2) {
|
109
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
110
|
-
i0.ɵɵproperty("label", ctx_r1.uploadButtonLabel)("disabled", !ctx_r1.hasFiles() || ctx_r1.isFileLimitExceeded())("styleClass", "p-fileupload-upload-button " + ctx_r1.uploadStyleClass)("buttonProps", ctx_r1.uploadButtonProps);
|
111
|
-
i0.ɵɵadvance();
|
112
|
-
i0.ɵɵproperty("ngIf", ctx_r1.uploadIcon);
|
113
|
-
i0.ɵɵadvance();
|
114
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.uploadIcon);
|
115
|
-
} }
|
116
|
-
function FileUpload_div_0_ng_container_4_p_button_7_span_1_Template(rf, ctx) { if (rf & 1) {
|
117
|
-
i0.ɵɵelement(0, "span", 21);
|
118
|
-
} if (rf & 2) {
|
119
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
120
|
-
i0.ɵɵproperty("ngClass", ctx_r1.cancelIcon);
|
121
|
-
} }
|
122
|
-
function FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {
|
123
|
-
i0.ɵɵelement(0, "TimesIcon");
|
124
|
-
} if (rf & 2) {
|
125
|
-
i0.ɵɵattribute("aria-hidden", true);
|
126
|
-
} }
|
127
|
-
function FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_span_2_1_ng_template_0_Template(rf, ctx) { }
|
128
|
-
function FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_span_2_1_Template(rf, ctx) { if (rf & 1) {
|
129
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
|
130
|
-
} }
|
131
|
-
function FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_span_2_Template(rf, ctx) { if (rf & 1) {
|
132
|
-
i0.ɵɵelementStart(0, "span");
|
133
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_span_2_1_Template, 1, 0, null, 11);
|
134
|
-
i0.ɵɵelementEnd();
|
135
|
-
} if (rf & 2) {
|
136
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
137
|
-
i0.ɵɵattribute("aria-hidden", true);
|
138
|
-
i0.ɵɵadvance();
|
139
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.canceliconTemplate);
|
140
|
-
} }
|
141
|
-
function FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
142
|
-
i0.ɵɵelementContainerStart(0);
|
143
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_TimesIcon_1_Template, 1, 1, "TimesIcon", 9)(2, FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_span_2_Template, 2, 2, "span", 9);
|
144
|
-
i0.ɵɵelementContainerEnd();
|
145
|
-
} if (rf & 2) {
|
146
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
147
|
-
i0.ɵɵadvance();
|
148
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.canceliconTemplate);
|
149
|
-
i0.ɵɵadvance();
|
150
|
-
i0.ɵɵproperty("ngIf", ctx_r1.canceliconTemplate);
|
151
|
-
} }
|
152
|
-
function FileUpload_div_0_ng_container_4_p_button_7_Template(rf, ctx) { if (rf & 1) {
|
153
|
-
const _r5 = i0.ɵɵgetCurrentView();
|
154
|
-
i0.ɵɵelementStart(0, "p-button", 19);
|
155
|
-
i0.ɵɵlistener("onClick", function FileUpload_div_0_ng_container_4_p_button_7_Template_p_button_onClick_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.clear()); });
|
156
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_ng_container_4_p_button_7_span_1_Template, 1, 1, "span", 20)(2, FileUpload_div_0_ng_container_4_p_button_7_ng_container_2_Template, 3, 2, "ng-container", 9);
|
157
|
-
i0.ɵɵelementEnd();
|
158
|
-
} if (rf & 2) {
|
159
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
160
|
-
i0.ɵɵproperty("label", ctx_r1.cancelButtonLabel)("disabled", !ctx_r1.hasFiles() || ctx_r1.uploading)("styleClass", "p-fileupload-cancel-button " + ctx_r1.cancelStyleClass)("buttonProps", ctx_r1.cancelButtonProps);
|
161
|
-
i0.ɵɵadvance();
|
162
|
-
i0.ɵɵproperty("ngIf", ctx_r1.cancelIcon);
|
163
|
-
i0.ɵɵadvance();
|
164
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.cancelIcon);
|
165
|
-
} }
|
166
|
-
function FileUpload_div_0_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
167
|
-
const _r3 = i0.ɵɵgetCurrentView();
|
168
|
-
i0.ɵɵelementContainerStart(0);
|
169
|
-
i0.ɵɵelementStart(1, "p-button", 16);
|
170
|
-
i0.ɵɵlistener("focus", function FileUpload_div_0_ng_container_4_Template_p_button_focus_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFocus()); })("blur", function FileUpload_div_0_ng_container_4_Template_p_button_blur_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onBlur()); })("onClick", function FileUpload_div_0_ng_container_4_Template_p_button_onClick_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.choose()); })("keydown.enter", function FileUpload_div_0_ng_container_4_Template_p_button_keydown_enter_1_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.choose()); });
|
171
|
-
i0.ɵɵelementStart(2, "input", 7, 0);
|
172
|
-
i0.ɵɵlistener("change", function FileUpload_div_0_ng_container_4_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileSelect($event)); });
|
173
|
-
i0.ɵɵelementEnd();
|
174
|
-
i0.ɵɵtemplate(4, FileUpload_div_0_ng_container_4_span_4_Template, 1, 4, "span", 17)(5, FileUpload_div_0_ng_container_4_ng_container_5_Template, 3, 2, "ng-container", 9);
|
175
|
-
i0.ɵɵelementEnd();
|
176
|
-
i0.ɵɵtemplate(6, FileUpload_div_0_ng_container_4_p_button_6_Template, 3, 6, "p-button", 18)(7, FileUpload_div_0_ng_container_4_p_button_7_Template, 3, 6, "p-button", 18);
|
177
|
-
i0.ɵɵelementContainerEnd();
|
178
|
-
} if (rf & 2) {
|
179
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
180
|
-
i0.ɵɵadvance();
|
181
|
-
i0.ɵɵproperty("styleClass", "p-fileupload-choose-button " + ctx_r1.chooseStyleClass)("disabled", ctx_r1.disabled || ctx_r1.isChooseDisabled())("label", ctx_r1.chooseButtonLabel)("buttonProps", ctx_r1.chooseButtonProps);
|
182
|
-
i0.ɵɵattribute("data-pc-section", "choosebutton");
|
183
|
-
i0.ɵɵadvance();
|
184
|
-
i0.ɵɵproperty("multiple", ctx_r1.multiple)("accept", ctx_r1.accept)("disabled", ctx_r1.disabled || ctx_r1.isChooseDisabled());
|
185
|
-
i0.ɵɵattribute("aria-label", ctx_r1.browseFilesLabel)("title", "")("data-pc-section", "input");
|
186
|
-
i0.ɵɵadvance(2);
|
187
|
-
i0.ɵɵproperty("ngIf", ctx_r1.chooseIcon);
|
188
|
-
i0.ɵɵadvance();
|
189
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.chooseIcon);
|
190
|
-
i0.ɵɵadvance();
|
191
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.auto && ctx_r1.showUploadButton);
|
192
|
-
i0.ɵɵadvance();
|
193
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.auto && ctx_r1.showCancelButton);
|
194
|
-
} }
|
195
|
-
function FileUpload_div_0_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
196
|
-
i0.ɵɵelementContainer(0);
|
197
|
-
} }
|
198
|
-
function FileUpload_div_0_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
199
|
-
i0.ɵɵelementContainer(0);
|
200
|
-
} }
|
201
|
-
function FileUpload_div_0_p_progressbar_9_Template(rf, ctx) { if (rf & 1) {
|
202
|
-
i0.ɵɵelement(0, "p-progressbar", 22);
|
203
|
-
} if (rf & 2) {
|
204
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
205
|
-
i0.ɵɵproperty("value", ctx_r1.progress)("showValue", false);
|
206
|
-
} }
|
207
|
-
function FileUpload_div_0_For_11_Template(rf, ctx) { if (rf & 1) {
|
208
|
-
i0.ɵɵelement(0, "p-message", 14);
|
209
|
-
} if (rf & 2) {
|
210
|
-
const message_r6 = ctx.$implicit;
|
211
|
-
i0.ɵɵproperty("severity", message_r6.severity)("text", message_r6.text);
|
212
|
-
} }
|
213
|
-
function FileUpload_div_0_div_12_Conditional_1_div_0_img_1_Template(rf, ctx) { if (rf & 1) {
|
214
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
215
|
-
i0.ɵɵelementStart(0, "img", 33);
|
216
|
-
i0.ɵɵlistener("error", function FileUpload_div_0_div_12_Conditional_1_div_0_img_1_Template_img_error_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.imageError($event)); });
|
217
|
-
i0.ɵɵelementEnd();
|
218
|
-
} if (rf & 2) {
|
219
|
-
const file_r9 = i0.ɵɵnextContext().$implicit;
|
220
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
221
|
-
i0.ɵɵproperty("src", file_r9.objectURL, i0.ɵɵsanitizeUrl)("width", ctx_r1.previewWidth);
|
222
|
-
} }
|
223
|
-
function FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_TimesIcon_0_Template(rf, ctx) { if (rf & 1) {
|
224
|
-
i0.ɵɵelement(0, "TimesIcon");
|
225
|
-
} }
|
226
|
-
function FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_1_ng_template_0_Template(rf, ctx) { }
|
227
|
-
function FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_1_Template(rf, ctx) { if (rf & 1) {
|
228
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_1_ng_template_0_Template, 0, 0, "ng-template");
|
229
|
-
} }
|
230
|
-
function FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_Template(rf, ctx) { if (rf & 1) {
|
231
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_TimesIcon_0_Template, 1, 0, "TimesIcon", 9)(1, FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_1_Template, 1, 0, null, 11);
|
232
|
-
} if (rf & 2) {
|
233
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
234
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.canceliconTemplate);
|
235
|
-
i0.ɵɵadvance();
|
236
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.canceliconTemplate);
|
237
|
-
} }
|
238
|
-
function FileUpload_div_0_div_12_Conditional_1_div_0_Template(rf, ctx) { if (rf & 1) {
|
239
|
-
const _r7 = i0.ɵɵgetCurrentView();
|
240
|
-
i0.ɵɵelementStart(0, "div", 24);
|
241
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_div_12_Conditional_1_div_0_img_1_Template, 1, 2, "img", 27);
|
242
|
-
i0.ɵɵelementStart(2, "div", 28)(3, "div", 29);
|
243
|
-
i0.ɵɵtext(4);
|
244
|
-
i0.ɵɵelementEnd();
|
245
|
-
i0.ɵɵelementStart(5, "span", 30);
|
246
|
-
i0.ɵɵtext(6);
|
247
|
-
i0.ɵɵelementEnd()();
|
248
|
-
i0.ɵɵelementStart(7, "div", 31)(8, "p-button", 32);
|
249
|
-
i0.ɵɵlistener("onClick", function FileUpload_div_0_div_12_Conditional_1_div_0_Template_p_button_onClick_8_listener($event) { const i_r10 = i0.ɵɵrestoreView(_r7).index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.remove($event, i_r10)); });
|
250
|
-
i0.ɵɵtemplate(9, FileUpload_div_0_div_12_Conditional_1_div_0_ng_template_9_Template, 2, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
251
|
-
i0.ɵɵelementEnd()()();
|
252
|
-
} if (rf & 2) {
|
253
|
-
const file_r9 = ctx.$implicit;
|
254
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
255
|
-
i0.ɵɵadvance();
|
256
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isImage(file_r9));
|
257
|
-
i0.ɵɵadvance(3);
|
258
|
-
i0.ɵɵtextInterpolate(file_r9.name);
|
259
|
-
i0.ɵɵadvance(2);
|
260
|
-
i0.ɵɵtextInterpolate(ctx_r1.formatSize(file_r9.size));
|
261
|
-
i0.ɵɵadvance(2);
|
262
|
-
i0.ɵɵproperty("disabled", ctx_r1.uploading)("styleClass", "p-fileupload-file-remove-button " + ctx_r1.removeStyleClass);
|
263
|
-
} }
|
264
|
-
function FileUpload_div_0_div_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
265
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_div_12_Conditional_1_div_0_Template, 11, 5, "div", 26);
|
266
|
-
} if (rf & 2) {
|
267
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
268
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.files);
|
269
|
-
} }
|
270
|
-
function FileUpload_div_0_div_12_Conditional_2_ng_template_0_Template(rf, ctx) { }
|
271
|
-
function FileUpload_div_0_div_12_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
272
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_div_12_Conditional_2_ng_template_0_Template, 0, 0, "ng-template", 25);
|
273
|
-
} if (rf & 2) {
|
274
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
275
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.files)("ngForTemplate", ctx_r1.fileTemplate);
|
276
|
-
} }
|
277
|
-
function FileUpload_div_0_div_12_Template(rf, ctx) { if (rf & 1) {
|
278
|
-
i0.ɵɵelementStart(0, "div", 23);
|
279
|
-
i0.ɵɵtemplate(1, FileUpload_div_0_div_12_Conditional_1_Template, 1, 1, "div", 24)(2, FileUpload_div_0_div_12_Conditional_2_Template, 1, 2, null, 25);
|
280
|
-
i0.ɵɵelementEnd();
|
281
|
-
} if (rf & 2) {
|
282
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
283
|
-
i0.ɵɵadvance();
|
284
|
-
i0.ɵɵconditional(!ctx_r1.fileTemplate ? 1 : -1);
|
285
|
-
i0.ɵɵadvance();
|
286
|
-
i0.ɵɵconditional(ctx_r1.fileTemplate ? 2 : -1);
|
287
|
-
} }
|
288
|
-
function FileUpload_div_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
|
289
|
-
i0.ɵɵelementContainer(0);
|
290
|
-
} }
|
291
|
-
function FileUpload_div_0_Conditional_14_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
292
|
-
i0.ɵɵelementContainer(0);
|
293
|
-
} }
|
294
|
-
function FileUpload_div_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
295
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_Conditional_14_ng_container_0_Template, 1, 0, "ng-container", 11);
|
296
|
-
} if (rf & 2) {
|
297
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
298
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.emptyTemplate);
|
299
|
-
} }
|
300
|
-
function FileUpload_div_0_Template(rf, ctx) { if (rf & 1) {
|
301
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
302
|
-
i0.ɵɵelementStart(0, "div", 6)(1, "input", 7, 0);
|
303
|
-
i0.ɵɵlistener("change", function FileUpload_div_0_Template_input_change_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFileSelect($event)); });
|
304
|
-
i0.ɵɵelementEnd();
|
305
|
-
i0.ɵɵelementStart(3, "div", 8);
|
306
|
-
i0.ɵɵtemplate(4, FileUpload_div_0_ng_container_4_Template, 8, 15, "ng-container", 9)(5, FileUpload_div_0_ng_container_5_Template, 1, 0, "ng-container", 10)(6, FileUpload_div_0_ng_container_6_Template, 1, 0, "ng-container", 11);
|
307
|
-
i0.ɵɵelementEnd();
|
308
|
-
i0.ɵɵelementStart(7, "div", 12, 1);
|
309
|
-
i0.ɵɵlistener("dragenter", function FileUpload_div_0_Template_div_dragenter_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragEnter($event)); })("dragleave", function FileUpload_div_0_Template_div_dragleave_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDragLeave($event)); })("drop", function FileUpload_div_0_Template_div_drop_7_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDrop($event)); });
|
310
|
-
i0.ɵɵtemplate(9, FileUpload_div_0_p_progressbar_9_Template, 1, 2, "p-progressbar", 13);
|
311
|
-
i0.ɵɵrepeaterCreate(10, FileUpload_div_0_For_11_Template, 1, 2, "p-message", 14, i0.ɵɵrepeaterTrackByIdentity);
|
312
|
-
i0.ɵɵtemplate(12, FileUpload_div_0_div_12_Template, 3, 2, "div", 15)(13, FileUpload_div_0_ng_container_13_Template, 1, 0, "ng-container", 10)(14, FileUpload_div_0_Conditional_14_Template, 1, 1, "ng-container");
|
313
|
-
i0.ɵɵelementEnd()();
|
314
|
-
} if (rf & 2) {
|
315
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
316
|
-
i0.ɵɵclassMap(ctx_r1.styleClass);
|
317
|
-
i0.ɵɵproperty("ngClass", "p-fileupload p-fileupload-advanced p-component")("ngStyle", ctx_r1.style);
|
318
|
-
i0.ɵɵattribute("data-pc-name", "fileupload")("data-pc-section", "root");
|
319
|
-
i0.ɵɵadvance();
|
320
|
-
i0.ɵɵstyleProp("display", "none");
|
321
|
-
i0.ɵɵproperty("multiple", ctx_r1.multiple)("accept", ctx_r1.accept)("disabled", ctx_r1.disabled || ctx_r1.isChooseDisabled());
|
322
|
-
i0.ɵɵattribute("aria-label", ctx_r1.browseFilesLabel)("title", "")("data-pc-section", "input");
|
323
|
-
i0.ɵɵadvance(3);
|
324
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.headerTemplate);
|
325
|
-
i0.ɵɵadvance();
|
326
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.headerTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction5(24, _c11, ctx_r1.files, ctx_r1.uploadedFiles, ctx_r1.choose.bind(ctx_r1), ctx_r1.clear.bind(ctx_r1), ctx_r1.upload.bind(ctx_r1)));
|
327
|
-
i0.ɵɵadvance();
|
328
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.toolbarTemplate);
|
329
|
-
i0.ɵɵadvance();
|
330
|
-
i0.ɵɵattribute("data-pc-section", "content");
|
331
|
-
i0.ɵɵadvance(2);
|
332
|
-
i0.ɵɵproperty("ngIf", ctx_r1.hasFiles());
|
333
|
-
i0.ɵɵadvance();
|
334
|
-
i0.ɵɵrepeater(ctx_r1.msgs);
|
335
|
-
i0.ɵɵadvance(2);
|
336
|
-
i0.ɵɵproperty("ngIf", ctx_r1.hasFiles());
|
337
|
-
i0.ɵɵadvance();
|
338
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.contentTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction8(30, _c12, ctx_r1.files, ctx_r1.uploadedFiles, ctx_r1.choose.bind(ctx_r1), ctx_r1.clear.bind(ctx_r1), ctx_r1.removeUploadedFile.bind(ctx_r1), ctx_r1.remove.bind(ctx_r1), ctx_r1.progress, ctx_r1.msgs));
|
339
|
-
i0.ɵɵadvance();
|
340
|
-
i0.ɵɵconditional(ctx_r1.emptyTemplate && !ctx_r1.hasFiles() && !ctx_r1.hasUploadedFiles() ? 14 : -1);
|
341
|
-
} }
|
342
|
-
function FileUpload_div_1_For_2_Template(rf, ctx) { if (rf & 1) {
|
343
|
-
i0.ɵɵelement(0, "p-message", 14);
|
344
|
-
} if (rf & 2) {
|
345
|
-
const message_r12 = ctx.$implicit;
|
346
|
-
i0.ɵɵproperty("severity", message_r12.severity)("text", message_r12.text);
|
347
|
-
} }
|
348
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_span_0_Template(rf, ctx) { if (rf & 1) {
|
349
|
-
i0.ɵɵelement(0, "span", 37);
|
350
|
-
} if (rf & 2) {
|
351
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
352
|
-
i0.ɵɵproperty("ngClass", ctx_r1.uploadIcon);
|
353
|
-
} }
|
354
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_UploadIcon_1_Template(rf, ctx) { if (rf & 1) {
|
355
|
-
i0.ɵɵelement(0, "UploadIcon", 40);
|
356
|
-
} if (rf & 2) {
|
357
|
-
i0.ɵɵproperty("styleClass", "p-button-icon p-button-icon-left");
|
358
|
-
} }
|
359
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_span_2_1_ng_template_0_Template(rf, ctx) { }
|
360
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_span_2_1_Template(rf, ctx) { if (rf & 1) {
|
361
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
|
362
|
-
} }
|
363
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_span_2_Template(rf, ctx) { if (rf & 1) {
|
364
|
-
i0.ɵɵelementStart(0, "span", 41);
|
365
|
-
i0.ɵɵtemplate(1, FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_span_2_1_Template, 1, 0, null, 11);
|
366
|
-
i0.ɵɵelementEnd();
|
367
|
-
} if (rf & 2) {
|
368
|
-
const ctx_r1 = i0.ɵɵnextContext(5);
|
369
|
-
i0.ɵɵadvance();
|
370
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.uploadiconTemplate);
|
371
|
-
} }
|
372
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
373
|
-
i0.ɵɵelementContainerStart(0);
|
374
|
-
i0.ɵɵtemplate(1, FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_UploadIcon_1_Template, 1, 1, "UploadIcon", 38)(2, FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_span_2_Template, 2, 1, "span", 39);
|
375
|
-
i0.ɵɵelementContainerEnd();
|
376
|
-
} if (rf & 2) {
|
377
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
378
|
-
i0.ɵɵadvance();
|
379
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.uploadiconTemplate);
|
380
|
-
i0.ɵɵadvance();
|
381
|
-
i0.ɵɵproperty("ngIf", ctx_r1.uploadiconTemplate);
|
382
|
-
} }
|
383
|
-
function FileUpload_div_1_ng_template_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
384
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_ng_template_4_Conditional_0_span_0_Template, 1, 1, "span", 36)(1, FileUpload_div_1_ng_template_4_Conditional_0_ng_container_1_Template, 3, 2, "ng-container", 9);
|
385
|
-
} if (rf & 2) {
|
386
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
387
|
-
i0.ɵɵproperty("ngIf", ctx_r1.uploadIcon);
|
388
|
-
i0.ɵɵadvance();
|
389
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.uploadIcon);
|
390
|
-
} }
|
391
|
-
function FileUpload_div_1_ng_template_4_Conditional_1_span_0_Template(rf, ctx) { if (rf & 1) {
|
392
|
-
i0.ɵɵelement(0, "span", 43);
|
393
|
-
} if (rf & 2) {
|
394
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
395
|
-
i0.ɵɵproperty("ngClass", ctx_r1.chooseIcon);
|
396
|
-
} }
|
397
|
-
function FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_PlusIcon_1_Template(rf, ctx) { if (rf & 1) {
|
398
|
-
i0.ɵɵelement(0, "PlusIcon");
|
399
|
-
} if (rf & 2) {
|
400
|
-
i0.ɵɵattribute("data-pc-section", "uploadicon");
|
401
|
-
} }
|
402
|
-
function FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
|
403
|
-
function FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
|
404
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
405
|
-
} }
|
406
|
-
function FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
407
|
-
i0.ɵɵelementContainerStart(0);
|
408
|
-
i0.ɵɵtemplate(1, FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_PlusIcon_1_Template, 1, 1, "PlusIcon", 9)(2, FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_2_Template, 1, 0, null, 11);
|
409
|
-
i0.ɵɵelementContainerEnd();
|
410
|
-
} if (rf & 2) {
|
411
|
-
const ctx_r1 = i0.ɵɵnextContext(4);
|
412
|
-
i0.ɵɵadvance();
|
413
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.chooseiconTemplate);
|
414
|
-
i0.ɵɵadvance();
|
415
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.chooseiconTemplate);
|
416
|
-
} }
|
417
|
-
function FileUpload_div_1_ng_template_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
418
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_ng_template_4_Conditional_1_span_0_Template, 1, 1, "span", 42)(1, FileUpload_div_1_ng_template_4_Conditional_1_ng_container_1_Template, 3, 2, "ng-container", 9);
|
419
|
-
} if (rf & 2) {
|
420
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
421
|
-
i0.ɵɵproperty("ngIf", ctx_r1.chooseIcon);
|
422
|
-
i0.ɵɵadvance();
|
423
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.chooseIcon);
|
424
|
-
} }
|
425
|
-
function FileUpload_div_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
426
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_ng_template_4_Conditional_0_Template, 2, 2)(1, FileUpload_div_1_ng_template_4_Conditional_1_Template, 2, 2);
|
427
|
-
} if (rf & 2) {
|
428
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
429
|
-
i0.ɵɵconditional(ctx_r1.hasFiles() && !ctx_r1.auto ? 0 : 1);
|
430
|
-
} }
|
431
|
-
function FileUpload_div_1_Conditional_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
432
|
-
i0.ɵɵelementStart(0, "span");
|
433
|
-
i0.ɵɵtext(1);
|
434
|
-
i0.ɵɵelementEnd();
|
435
|
-
} if (rf & 2) {
|
436
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
437
|
-
i0.ɵɵclassMap(ctx_r1.cx("filelabel"));
|
438
|
-
i0.ɵɵadvance();
|
439
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.basicFileChosenLabel(), " ");
|
440
|
-
} }
|
441
|
-
function FileUpload_div_1_Conditional_8_Conditional_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
442
|
-
i0.ɵɵelementContainer(0);
|
443
|
-
} }
|
444
|
-
function FileUpload_div_1_Conditional_8_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
445
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_Conditional_8_Conditional_1_ng_container_0_Template, 1, 0, "ng-container", 10);
|
446
|
-
} if (rf & 2) {
|
447
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
448
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.fileLabelTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c13, ctx_r1.files));
|
449
|
-
} }
|
450
|
-
function FileUpload_div_1_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
451
|
-
i0.ɵɵtemplate(0, FileUpload_div_1_Conditional_8_Conditional_0_Template, 2, 3, "span", 44)(1, FileUpload_div_1_Conditional_8_Conditional_1_Template, 1, 4, "ng-container");
|
452
|
-
} if (rf & 2) {
|
453
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
454
|
-
i0.ɵɵconditional(!ctx_r1.fileLabelTemplate ? 0 : 1);
|
455
|
-
} }
|
456
|
-
function FileUpload_div_1_Template(rf, ctx) { if (rf & 1) {
|
457
|
-
const _r11 = i0.ɵɵgetCurrentView();
|
458
|
-
i0.ɵɵelementStart(0, "div", 21);
|
459
|
-
i0.ɵɵrepeaterCreate(1, FileUpload_div_1_For_2_Template, 1, 2, "p-message", 14, i0.ɵɵrepeaterTrackByIdentity);
|
460
|
-
i0.ɵɵelementStart(3, "p-button", 34);
|
461
|
-
i0.ɵɵlistener("onClick", function FileUpload_div_1_Template_p_button_onClick_3_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBasicUploaderClick()); })("keydown", function FileUpload_div_1_Template_p_button_keydown_3_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBasicKeydown($event)); });
|
462
|
-
i0.ɵɵtemplate(4, FileUpload_div_1_ng_template_4_Template, 2, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
|
463
|
-
i0.ɵɵelementStart(6, "input", 35, 3);
|
464
|
-
i0.ɵɵlistener("change", function FileUpload_div_1_Template_input_change_6_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFileSelect($event)); })("focus", function FileUpload_div_1_Template_input_focus_6_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onFocus()); })("blur", function FileUpload_div_1_Template_input_blur_6_listener() { i0.ɵɵrestoreView(_r11); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBlur()); });
|
465
|
-
i0.ɵɵelementEnd()();
|
466
|
-
i0.ɵɵtemplate(8, FileUpload_div_1_Conditional_8_Template, 2, 1);
|
467
|
-
i0.ɵɵelementEnd();
|
468
|
-
} if (rf & 2) {
|
469
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
470
|
-
i0.ɵɵclassMap(ctx_r1.styleClass);
|
471
|
-
i0.ɵɵproperty("ngClass", "p-fileupload p-fileupload-basic p-component");
|
472
|
-
i0.ɵɵattribute("data-pc-name", "fileupload");
|
473
|
-
i0.ɵɵadvance();
|
474
|
-
i0.ɵɵrepeater(ctx_r1.msgs);
|
475
|
-
i0.ɵɵadvance(2);
|
476
|
-
i0.ɵɵstyleMap(ctx_r1.style);
|
477
|
-
i0.ɵɵproperty("styleClass", "p-fileupload-choose-button " + ctx_r1.chooseStyleClass)("disabled", ctx_r1.disabled)("label", ctx_r1.chooseButtonLabel)("buttonProps", ctx_r1.chooseButtonProps);
|
478
|
-
i0.ɵɵadvance(3);
|
479
|
-
i0.ɵɵproperty("accept", ctx_r1.accept)("multiple", ctx_r1.multiple)("disabled", ctx_r1.disabled);
|
480
|
-
i0.ɵɵattribute("aria-label", ctx_r1.browseFilesLabel)("data-pc-section", "input");
|
481
|
-
i0.ɵɵadvance(2);
|
482
|
-
i0.ɵɵconditional(!ctx_r1.auto ? 8 : -1);
|
483
|
-
} }
|
484
|
-
/**
|
485
|
-
* FileUpload is an advanced uploader with dragdrop support, multi file uploads, auto uploading, progress tracking and validations.
|
486
|
-
* @group Components
|
487
|
-
*/
|
488
|
-
export class FileUpload extends BaseComponent {
|
489
|
-
/**
|
490
|
-
* Name of the request parameter to identify the files at backend.
|
491
|
-
* @group Props
|
492
|
-
*/
|
493
|
-
name;
|
494
|
-
/**
|
495
|
-
* Remote url to upload the files.
|
496
|
-
* @group Props
|
497
|
-
*/
|
498
|
-
url;
|
499
|
-
/**
|
500
|
-
* HTTP method to send the files to the url such as "post" and "put".
|
501
|
-
* @group Props
|
502
|
-
*/
|
503
|
-
method = 'post';
|
504
|
-
/**
|
505
|
-
* Used to select multiple files at once from file dialog.
|
506
|
-
* @group Props
|
507
|
-
*/
|
508
|
-
multiple;
|
509
|
-
/**
|
510
|
-
* 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").
|
511
|
-
* @group Props
|
512
|
-
*/
|
513
|
-
accept;
|
514
|
-
/**
|
515
|
-
* Disables the upload functionality.
|
516
|
-
* @group Props
|
517
|
-
*/
|
518
|
-
disabled;
|
519
|
-
/**
|
520
|
-
* When enabled, upload begins automatically after selection is completed.
|
521
|
-
* @group Props
|
522
|
-
*/
|
523
|
-
auto;
|
524
|
-
/**
|
525
|
-
* Cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates.
|
526
|
-
* @group Props
|
527
|
-
*/
|
528
|
-
withCredentials;
|
529
|
-
/**
|
530
|
-
* Maximum file size allowed in bytes.
|
531
|
-
* @group Props
|
532
|
-
*/
|
533
|
-
maxFileSize;
|
534
|
-
/**
|
535
|
-
* Summary message of the invalid file size.
|
536
|
-
* @group Props
|
537
|
-
*/
|
538
|
-
invalidFileSizeMessageSummary = '{0}: Invalid file size, ';
|
539
|
-
/**
|
540
|
-
* Detail message of the invalid file size.
|
541
|
-
* @group Props
|
542
|
-
*/
|
543
|
-
invalidFileSizeMessageDetail = 'maximum upload size is {0}.';
|
544
|
-
/**
|
545
|
-
* Summary message of the invalid file type.
|
546
|
-
* @group Props
|
547
|
-
*/
|
548
|
-
invalidFileTypeMessageSummary = '{0}: Invalid file type, ';
|
549
|
-
/**
|
550
|
-
* Detail message of the invalid file type.
|
551
|
-
* @group Props
|
552
|
-
*/
|
553
|
-
invalidFileTypeMessageDetail = 'allowed file types: {0}.';
|
554
|
-
/**
|
555
|
-
* Detail message of the invalid file type.
|
556
|
-
* @group Props
|
557
|
-
*/
|
558
|
-
invalidFileLimitMessageDetail = 'limit is {0} at most.';
|
559
|
-
/**
|
560
|
-
* Summary message of the invalid file type.
|
561
|
-
* @group Props
|
562
|
-
*/
|
563
|
-
invalidFileLimitMessageSummary = 'Maximum number of files exceeded, ';
|
564
|
-
/**
|
565
|
-
* Inline style of the element.
|
566
|
-
* @group Props
|
567
|
-
*/
|
568
|
-
style;
|
569
|
-
/**
|
570
|
-
* Class of the element.
|
571
|
-
* @group Props
|
572
|
-
*/
|
573
|
-
styleClass;
|
574
|
-
/**
|
575
|
-
* Width of the image thumbnail in pixels.
|
576
|
-
* @group Props
|
577
|
-
*/
|
578
|
-
previewWidth = 50;
|
579
|
-
/**
|
580
|
-
* Label of the choose button. Defaults to PrimeNG Locale configuration.
|
581
|
-
* @group Props
|
582
|
-
*/
|
583
|
-
chooseLabel;
|
584
|
-
/**
|
585
|
-
* Label of the upload button. Defaults to PrimeNG Locale configuration.
|
586
|
-
* @group Props
|
587
|
-
*/
|
588
|
-
uploadLabel;
|
589
|
-
/**
|
590
|
-
* Label of the cancel button. Defaults to PrimeNG Locale configuration.
|
591
|
-
* @group Props
|
592
|
-
*/
|
593
|
-
cancelLabel;
|
594
|
-
/**
|
595
|
-
* Icon of the choose button.
|
596
|
-
* @group Props
|
597
|
-
*/
|
598
|
-
chooseIcon;
|
599
|
-
/**
|
600
|
-
* Icon of the upload button.
|
601
|
-
* @group Props
|
602
|
-
*/
|
603
|
-
uploadIcon;
|
604
|
-
/**
|
605
|
-
* Icon of the cancel button.
|
606
|
-
* @group Props
|
607
|
-
*/
|
608
|
-
cancelIcon;
|
609
|
-
/**
|
610
|
-
* Whether to show the upload button.
|
611
|
-
* @group Props
|
612
|
-
*/
|
613
|
-
showUploadButton = true;
|
614
|
-
/**
|
615
|
-
* Whether to show the cancel button.
|
616
|
-
* @group Props
|
617
|
-
*/
|
618
|
-
showCancelButton = true;
|
619
|
-
/**
|
620
|
-
* Defines the UI of the component.
|
621
|
-
* @group Props
|
622
|
-
*/
|
623
|
-
mode = 'advanced';
|
624
|
-
/**
|
625
|
-
* HttpHeaders class represents the header configuration options for an HTTP request.
|
626
|
-
* @group Props
|
627
|
-
*/
|
628
|
-
headers;
|
629
|
-
/**
|
630
|
-
* Whether to use the default upload or a manual implementation defined in uploadHandler callback. Defaults to PrimeNG Locale configuration.
|
631
|
-
* @group Props
|
632
|
-
*/
|
633
|
-
customUpload;
|
634
|
-
/**
|
635
|
-
* Maximum number of files that can be uploaded.
|
636
|
-
* @group Props
|
637
|
-
*/
|
638
|
-
fileLimit;
|
639
|
-
/**
|
640
|
-
* Style class of the upload button.
|
641
|
-
* @group Props
|
642
|
-
*/
|
643
|
-
uploadStyleClass;
|
644
|
-
/**
|
645
|
-
* Style class of the cancel button.
|
646
|
-
* @group Props
|
647
|
-
*/
|
648
|
-
cancelStyleClass;
|
649
|
-
/**
|
650
|
-
* Style class of the remove button.
|
651
|
-
* @group Props
|
652
|
-
*/
|
653
|
-
removeStyleClass;
|
654
|
-
/**
|
655
|
-
* Style class of the choose button.
|
656
|
-
* @group Props
|
657
|
-
*/
|
658
|
-
chooseStyleClass;
|
659
|
-
/**
|
660
|
-
* Used to pass all properties of the ButtonProps to the choose button inside the component.
|
661
|
-
* @group Props
|
662
|
-
*/
|
663
|
-
chooseButtonProps;
|
664
|
-
/**
|
665
|
-
* Used to pass all properties of the ButtonProps to the upload button inside the component.
|
666
|
-
* @group Props
|
667
|
-
*/
|
668
|
-
uploadButtonProps = { severity: 'secondary' };
|
669
|
-
/**
|
670
|
-
* Used to pass all properties of the ButtonProps to the cancel button inside the component.
|
671
|
-
* @group Props
|
672
|
-
*/
|
673
|
-
cancelButtonProps = { severity: 'secondary' };
|
674
|
-
/**
|
675
|
-
* Callback to invoke before file upload is initialized.
|
676
|
-
* @param {FileBeforeUploadEvent} event - Custom upload event.
|
677
|
-
* @group Emits
|
678
|
-
*/
|
679
|
-
onBeforeUpload = new EventEmitter();
|
680
|
-
/**
|
681
|
-
* 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.
|
682
|
-
* @param {FileSendEvent} event - Custom send event.
|
683
|
-
* @group Emits
|
684
|
-
*/
|
685
|
-
onSend = new EventEmitter();
|
686
|
-
/**
|
687
|
-
* Callback to invoke when file upload is complete.
|
688
|
-
* @param {FileUploadEvent} event - Custom upload event.
|
689
|
-
* @group Emits
|
690
|
-
*/
|
691
|
-
onUpload = new EventEmitter();
|
692
|
-
/**
|
693
|
-
* Callback to invoke if file upload fails.
|
694
|
-
* @param {FileUploadErrorEvent} event - Custom error event.
|
695
|
-
* @group Emits
|
696
|
-
*/
|
697
|
-
onError = new EventEmitter();
|
698
|
-
/**
|
699
|
-
* Callback to invoke when files in queue are removed without uploading using clear all button.
|
700
|
-
* @param {Event} event - Browser event.
|
701
|
-
* @group Emits
|
702
|
-
*/
|
703
|
-
onClear = new EventEmitter();
|
704
|
-
/**
|
705
|
-
* Callback to invoke when a file is removed without uploading using clear button of a file.
|
706
|
-
* @param {FileRemoveEvent} event - Remove event.
|
707
|
-
* @group Emits
|
708
|
-
*/
|
709
|
-
onRemove = new EventEmitter();
|
710
|
-
/**
|
711
|
-
* Callback to invoke when files are selected.
|
712
|
-
* @param {FileSelectEvent} event - Select event.
|
713
|
-
* @group Emits
|
714
|
-
*/
|
715
|
-
onSelect = new EventEmitter();
|
716
|
-
/**
|
717
|
-
* Callback to invoke when files are being uploaded.
|
718
|
-
* @param {FileProgressEvent} event - Progress event.
|
719
|
-
* @group Emits
|
720
|
-
*/
|
721
|
-
onProgress = new EventEmitter();
|
722
|
-
/**
|
723
|
-
* Callback to invoke in custom upload mode to upload the files manually.
|
724
|
-
* @param {FileUploadHandlerEvent} event - Upload handler event.
|
725
|
-
* @group Emits
|
726
|
-
*/
|
727
|
-
uploadHandler = new EventEmitter();
|
728
|
-
/**
|
729
|
-
* This event is triggered if an error occurs while loading an image file.
|
730
|
-
* @param {Event} event - Browser event.
|
731
|
-
* @group Emits
|
732
|
-
*/
|
733
|
-
onImageError = new EventEmitter();
|
734
|
-
/**
|
735
|
-
* This event is triggered if an error occurs while loading an image file.
|
736
|
-
* @param {RemoveUploadedFileEvent} event - Remove event.
|
737
|
-
* @group Emits
|
738
|
-
*/
|
739
|
-
onRemoveUploadedFile = new EventEmitter();
|
740
|
-
/**
|
741
|
-
* Template for file.
|
742
|
-
* @group Templates
|
743
|
-
*/
|
744
|
-
fileTemplate;
|
745
|
-
/**
|
746
|
-
* Template for header.
|
747
|
-
* @group Templates
|
748
|
-
*/
|
749
|
-
headerTemplate;
|
750
|
-
/**
|
751
|
-
* Template for content.
|
752
|
-
* @group Templates
|
753
|
-
*/
|
754
|
-
contentTemplate;
|
755
|
-
/**
|
756
|
-
* Template for toolbar.
|
757
|
-
* @group Templates
|
758
|
-
*/
|
759
|
-
toolbarTemplate;
|
760
|
-
/**
|
761
|
-
* Template for choose icon.
|
762
|
-
* @group Templates
|
763
|
-
*/
|
764
|
-
chooseiconTemplate;
|
765
|
-
/**
|
766
|
-
* Template for file label.
|
767
|
-
* @group Templates
|
768
|
-
*/
|
769
|
-
filelabelTemplate;
|
770
|
-
/**
|
771
|
-
* Template for upload icon.
|
772
|
-
* @group Templates
|
773
|
-
*/
|
774
|
-
uploadiconTemplate;
|
775
|
-
/**
|
776
|
-
* Template for cancel icon.
|
777
|
-
* @group Templates
|
778
|
-
*/
|
779
|
-
canceliconTemplate;
|
780
|
-
/**
|
781
|
-
* Template for empty state.
|
782
|
-
* @group Templates
|
783
|
-
*/
|
784
|
-
emptyTemplate;
|
785
|
-
advancedFileInput;
|
786
|
-
basicFileInput;
|
787
|
-
content;
|
788
|
-
set files(files) {
|
789
|
-
this._files = [];
|
790
|
-
for (let i = 0; i < files.length; i++) {
|
791
|
-
let file = files[i];
|
792
|
-
if (this.validate(file)) {
|
793
|
-
if (this.isImage(file)) {
|
794
|
-
file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
|
795
|
-
}
|
796
|
-
this._files.push(files[i]);
|
797
|
-
}
|
798
|
-
}
|
799
|
-
}
|
800
|
-
get files() {
|
801
|
-
return this._files;
|
802
|
-
}
|
803
|
-
get basicButtonLabel() {
|
804
|
-
if (this.auto || !this.hasFiles()) {
|
805
|
-
return this.chooseLabel;
|
806
|
-
}
|
807
|
-
return this.uploadLabel ?? this.files[0].name;
|
808
|
-
}
|
809
|
-
_files = [];
|
810
|
-
progress = 0;
|
811
|
-
dragHighlight;
|
812
|
-
msgs;
|
813
|
-
uploadedFileCount = 0;
|
814
|
-
focus;
|
815
|
-
uploading;
|
816
|
-
duplicateIEEvent; // flag to recognize duplicate onchange event for file input
|
817
|
-
translationSubscription;
|
818
|
-
dragOverListener;
|
819
|
-
uploadedFiles = [];
|
820
|
-
sanitizer = inject(DomSanitizer);
|
821
|
-
zone = inject(NgZone);
|
822
|
-
http = inject(HttpClient);
|
823
|
-
_componentStyle = inject(FileUploadStyle);
|
824
|
-
ngOnInit() {
|
825
|
-
super.ngOnInit();
|
826
|
-
this.translationSubscription = this.config.translationObserver.subscribe(() => {
|
827
|
-
this.cd.markForCheck();
|
828
|
-
});
|
829
|
-
}
|
830
|
-
ngAfterViewInit() {
|
831
|
-
super.ngAfterViewInit();
|
832
|
-
if (isPlatformBrowser(this.platformId)) {
|
833
|
-
if (this.mode === 'advanced') {
|
834
|
-
this.zone.runOutsideAngular(() => {
|
835
|
-
if (this.content) {
|
836
|
-
this.dragOverListener = this.renderer.listen(this.content.nativeElement, 'dragover', this.onDragOver.bind(this));
|
837
|
-
}
|
838
|
-
});
|
839
|
-
}
|
840
|
-
}
|
841
|
-
}
|
842
|
-
basicFileChosenLabel() {
|
843
|
-
if (this.auto)
|
844
|
-
return this.chooseButtonLabel;
|
845
|
-
else if (this.hasFiles()) {
|
846
|
-
if (this.files && this.files.length === 1)
|
847
|
-
return this.files[0].name;
|
848
|
-
return this.config.getTranslation('fileChosenMessage')?.replace('{0}', this.files.length);
|
849
|
-
}
|
850
|
-
return this.config.getTranslation('noFileChosenMessage') || '';
|
851
|
-
}
|
852
|
-
getTranslation(option) {
|
853
|
-
return this.config.getTranslation(option);
|
854
|
-
}
|
855
|
-
choose() {
|
856
|
-
this.advancedFileInput?.nativeElement.click();
|
857
|
-
}
|
858
|
-
onFileSelect(event) {
|
859
|
-
if (event.type !== 'drop' && this.isIE11() && this.duplicateIEEvent) {
|
860
|
-
this.duplicateIEEvent = false;
|
861
|
-
return;
|
862
|
-
}
|
863
|
-
this.msgs = [];
|
864
|
-
if (!this.multiple) {
|
865
|
-
this.files = [];
|
866
|
-
}
|
867
|
-
let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
|
868
|
-
for (let i = 0; i < files.length; i++) {
|
869
|
-
let file = files[i];
|
870
|
-
if (!this.isFileSelected(file)) {
|
871
|
-
if (this.validate(file)) {
|
872
|
-
if (this.isImage(file)) {
|
873
|
-
file.objectURL = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(files[i]));
|
874
|
-
}
|
875
|
-
this.files.push(files[i]);
|
876
|
-
}
|
877
|
-
}
|
878
|
-
}
|
879
|
-
this.onSelect.emit({ originalEvent: event, files: files, currentFiles: this.files });
|
880
|
-
// this will check the fileLimit with the uploaded files
|
881
|
-
this.checkFileLimit(files);
|
882
|
-
if (this.hasFiles() && this.auto && (this.mode !== 'advanced' || !this.isFileLimitExceeded())) {
|
883
|
-
this.upload();
|
884
|
-
}
|
885
|
-
if (event.type !== 'drop' && this.isIE11()) {
|
886
|
-
this.clearIEInput();
|
887
|
-
}
|
888
|
-
else {
|
889
|
-
this.clearInputElement();
|
890
|
-
}
|
891
|
-
}
|
892
|
-
isFileSelected(file) {
|
893
|
-
for (let sFile of this.files) {
|
894
|
-
if (sFile.name + sFile.type + sFile.size === file.name + file.type + file.size) {
|
895
|
-
return true;
|
896
|
-
}
|
897
|
-
}
|
898
|
-
return false;
|
899
|
-
}
|
900
|
-
isIE11() {
|
901
|
-
if (isPlatformBrowser(this.platformId)) {
|
902
|
-
return !!this.document.defaultView['MSInputMethodContext'] && !!this.document['documentMode'];
|
903
|
-
}
|
904
|
-
}
|
905
|
-
validate(file) {
|
906
|
-
this.msgs = this.msgs || [];
|
907
|
-
if (this.accept && !this.isFileTypeValid(file)) {
|
908
|
-
const text = `${this.invalidFileTypeMessageSummary.replace('{0}', file.name)} ${this.invalidFileTypeMessageDetail.replace('{0}', this.accept)}`;
|
909
|
-
this.msgs.push({
|
910
|
-
severity: 'error',
|
911
|
-
text: text
|
912
|
-
});
|
913
|
-
return false;
|
914
|
-
}
|
915
|
-
if (this.maxFileSize && file.size > this.maxFileSize) {
|
916
|
-
const text = `${this.invalidFileSizeMessageSummary.replace('{0}', file.name)} ${this.invalidFileSizeMessageDetail.replace('{0}', this.formatSize(this.maxFileSize))}`;
|
917
|
-
this.msgs.push({
|
918
|
-
severity: 'error',
|
919
|
-
text: text
|
920
|
-
});
|
921
|
-
return false;
|
922
|
-
}
|
923
|
-
return true;
|
924
|
-
}
|
925
|
-
isFileTypeValid(file) {
|
926
|
-
let acceptableTypes = this.accept?.split(',').map((type) => type.trim());
|
927
|
-
for (let type of acceptableTypes) {
|
928
|
-
let acceptable = this.isWildcard(type) ? this.getTypeClass(file.type) === this.getTypeClass(type) : file.type == type || this.getFileExtension(file).toLowerCase() === type.toLowerCase();
|
929
|
-
if (acceptable) {
|
930
|
-
return true;
|
931
|
-
}
|
932
|
-
}
|
933
|
-
return false;
|
934
|
-
}
|
935
|
-
getTypeClass(fileType) {
|
936
|
-
return fileType.substring(0, fileType.indexOf('/'));
|
937
|
-
}
|
938
|
-
isWildcard(fileType) {
|
939
|
-
return fileType.indexOf('*') !== -1;
|
940
|
-
}
|
941
|
-
getFileExtension(file) {
|
942
|
-
return '.' + file.name.split('.').pop();
|
943
|
-
}
|
944
|
-
isImage(file) {
|
945
|
-
return /^image\//.test(file.type);
|
946
|
-
}
|
947
|
-
onImageLoad(img) {
|
948
|
-
window.URL.revokeObjectURL(img.src);
|
949
|
-
}
|
950
|
-
/**
|
951
|
-
* Uploads the selected files.
|
952
|
-
* @group Method
|
953
|
-
*/
|
954
|
-
uploader() {
|
955
|
-
if (this.customUpload) {
|
956
|
-
if (this.fileLimit) {
|
957
|
-
this.uploadedFileCount += this.files.length;
|
958
|
-
}
|
959
|
-
this.uploadHandler.emit({
|
960
|
-
files: this.files
|
961
|
-
});
|
962
|
-
this.cd.markForCheck();
|
963
|
-
}
|
964
|
-
else {
|
965
|
-
this.uploading = true;
|
966
|
-
this.msgs = [];
|
967
|
-
let formData = new FormData();
|
968
|
-
this.onBeforeUpload.emit({
|
969
|
-
formData: formData
|
970
|
-
});
|
971
|
-
for (let i = 0; i < this.files.length; i++) {
|
972
|
-
formData.append(this.name, this.files[i], this.files[i].name);
|
973
|
-
}
|
974
|
-
this.http
|
975
|
-
.request(this.method, this.url, {
|
976
|
-
body: formData,
|
977
|
-
headers: this.headers,
|
978
|
-
reportProgress: true,
|
979
|
-
observe: 'events',
|
980
|
-
withCredentials: this.withCredentials
|
981
|
-
})
|
982
|
-
.subscribe((event) => {
|
983
|
-
switch (event.type) {
|
984
|
-
case HttpEventType.Sent:
|
985
|
-
this.onSend.emit({
|
986
|
-
originalEvent: event,
|
987
|
-
formData: formData
|
988
|
-
});
|
989
|
-
break;
|
990
|
-
case HttpEventType.Response:
|
991
|
-
this.uploading = false;
|
992
|
-
this.progress = 0;
|
993
|
-
if (event['status'] >= 200 && event['status'] < 300) {
|
994
|
-
if (this.fileLimit) {
|
995
|
-
this.uploadedFileCount += this.files.length;
|
996
|
-
}
|
997
|
-
this.onUpload.emit({ originalEvent: event, files: this.files });
|
998
|
-
}
|
999
|
-
else {
|
1000
|
-
this.onError.emit({ files: this.files });
|
1001
|
-
}
|
1002
|
-
this.uploadedFiles.push(...this.files);
|
1003
|
-
this.clear();
|
1004
|
-
break;
|
1005
|
-
case HttpEventType.UploadProgress: {
|
1006
|
-
if (event['loaded']) {
|
1007
|
-
this.progress = Math.round((event['loaded'] * 100) / event['total']);
|
1008
|
-
}
|
1009
|
-
this.onProgress.emit({ originalEvent: event, progress: this.progress });
|
1010
|
-
break;
|
1011
|
-
}
|
1012
|
-
}
|
1013
|
-
this.cd.markForCheck();
|
1014
|
-
}, (error) => {
|
1015
|
-
this.uploading = false;
|
1016
|
-
this.onError.emit({ files: this.files, error: error });
|
1017
|
-
});
|
1018
|
-
}
|
1019
|
-
}
|
1020
|
-
/**
|
1021
|
-
* Clears the files list.
|
1022
|
-
* @group Method
|
1023
|
-
*/
|
1024
|
-
clear() {
|
1025
|
-
this.files = [];
|
1026
|
-
this.uploadedFileCount = 0;
|
1027
|
-
this.onClear.emit();
|
1028
|
-
this.clearInputElement();
|
1029
|
-
this.cd.markForCheck();
|
1030
|
-
}
|
1031
|
-
/**
|
1032
|
-
* Removes a single file.
|
1033
|
-
* @param {Event} event - Browser event.
|
1034
|
-
* @param {Number} index - Index of the file.
|
1035
|
-
* @group Method
|
1036
|
-
*/
|
1037
|
-
remove(event, index) {
|
1038
|
-
this.clearInputElement();
|
1039
|
-
this.onRemove.emit({ originalEvent: event, file: this.files[index] });
|
1040
|
-
this.files.splice(index, 1);
|
1041
|
-
this.checkFileLimit(this.files);
|
1042
|
-
}
|
1043
|
-
/**
|
1044
|
-
* Removes uploaded file.
|
1045
|
-
* @param {Number} index - Index of the file to be removed.
|
1046
|
-
* @group Method
|
1047
|
-
*/
|
1048
|
-
removeUploadedFile(index) {
|
1049
|
-
let removedFile = this.uploadedFiles.splice(index, 1)[0];
|
1050
|
-
this.uploadedFiles = [...this.uploadedFiles];
|
1051
|
-
this.onRemoveUploadedFile.emit({ file: removedFile, files: this.uploadedFiles });
|
1052
|
-
}
|
1053
|
-
isFileLimitExceeded() {
|
1054
|
-
const isAutoMode = this.auto;
|
1055
|
-
const totalFileCount = isAutoMode ? this.files.length : this.files.length + this.uploadedFileCount;
|
1056
|
-
if (this.fileLimit && this.fileLimit <= totalFileCount && this.focus) {
|
1057
|
-
this.focus = false;
|
1058
|
-
}
|
1059
|
-
return this.fileLimit && this.fileLimit < totalFileCount;
|
1060
|
-
}
|
1061
|
-
isChooseDisabled() {
|
1062
|
-
if (this.auto) {
|
1063
|
-
return this.fileLimit && this.fileLimit <= this.files.length;
|
1064
|
-
}
|
1065
|
-
else {
|
1066
|
-
return this.fileLimit && this.fileLimit <= this.files.length + this.uploadedFileCount;
|
1067
|
-
}
|
1068
|
-
}
|
1069
|
-
checkFileLimit(files) {
|
1070
|
-
this.msgs ??= [];
|
1071
|
-
const hasExistingValidationMessages = this.msgs.length > 0 && this.fileLimit < files.length;
|
1072
|
-
if (this.isFileLimitExceeded() || hasExistingValidationMessages) {
|
1073
|
-
const text = `${this.invalidFileLimitMessageSummary.replace('{0}', this.fileLimit.toString())} ${this.invalidFileLimitMessageDetail.replace('{0}', this.fileLimit.toString())}`;
|
1074
|
-
this.msgs.push({
|
1075
|
-
severity: 'error',
|
1076
|
-
text: text
|
1077
|
-
});
|
1078
|
-
}
|
1079
|
-
}
|
1080
|
-
clearInputElement() {
|
1081
|
-
if (this.advancedFileInput && this.advancedFileInput.nativeElement) {
|
1082
|
-
this.advancedFileInput.nativeElement.value = '';
|
1083
|
-
}
|
1084
|
-
if (this.basicFileInput && this.basicFileInput.nativeElement) {
|
1085
|
-
this.basicFileInput.nativeElement.value = '';
|
1086
|
-
}
|
1087
|
-
}
|
1088
|
-
clearIEInput() {
|
1089
|
-
if (this.advancedFileInput && this.advancedFileInput.nativeElement) {
|
1090
|
-
this.duplicateIEEvent = true; //IE11 fix to prevent onFileChange trigger again
|
1091
|
-
this.advancedFileInput.nativeElement.value = '';
|
1092
|
-
}
|
1093
|
-
}
|
1094
|
-
hasFiles() {
|
1095
|
-
return this.files && this.files.length > 0;
|
1096
|
-
}
|
1097
|
-
hasUploadedFiles() {
|
1098
|
-
return this.uploadedFiles && this.uploadedFiles.length > 0;
|
1099
|
-
}
|
1100
|
-
onDragEnter(e) {
|
1101
|
-
if (!this.disabled) {
|
1102
|
-
e.stopPropagation();
|
1103
|
-
e.preventDefault();
|
1104
|
-
}
|
1105
|
-
}
|
1106
|
-
onDragOver(e) {
|
1107
|
-
if (!this.disabled) {
|
1108
|
-
addClass(this.content?.nativeElement, 'p-fileupload-highlight');
|
1109
|
-
this.dragHighlight = true;
|
1110
|
-
e.stopPropagation();
|
1111
|
-
e.preventDefault();
|
1112
|
-
}
|
1113
|
-
}
|
1114
|
-
onDragLeave(event) {
|
1115
|
-
if (!this.disabled) {
|
1116
|
-
removeClass(this.content?.nativeElement, 'p-fileupload-highlight');
|
1117
|
-
}
|
1118
|
-
}
|
1119
|
-
onDrop(event) {
|
1120
|
-
if (!this.disabled) {
|
1121
|
-
removeClass(this.content?.nativeElement, 'p-fileupload-highlight');
|
1122
|
-
event.stopPropagation();
|
1123
|
-
event.preventDefault();
|
1124
|
-
let files = event.dataTransfer ? event.dataTransfer.files : event.target.files;
|
1125
|
-
let allowDrop = this.multiple || (files && files.length === 1);
|
1126
|
-
if (allowDrop) {
|
1127
|
-
this.onFileSelect(event);
|
1128
|
-
}
|
1129
|
-
}
|
1130
|
-
}
|
1131
|
-
onFocus() {
|
1132
|
-
this.focus = true;
|
1133
|
-
}
|
1134
|
-
onBlur() {
|
1135
|
-
this.focus = false;
|
1136
|
-
}
|
1137
|
-
formatSize(bytes) {
|
1138
|
-
const k = 1024;
|
1139
|
-
const dm = 3;
|
1140
|
-
const sizes = this.getTranslation(TranslationKeys.FILE_SIZE_TYPES);
|
1141
|
-
if (bytes === 0) {
|
1142
|
-
return `0 ${sizes[0]}`;
|
1143
|
-
}
|
1144
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
1145
|
-
const formattedSize = (bytes / Math.pow(k, i)).toFixed(dm);
|
1146
|
-
return `${formattedSize} ${sizes[i]}`;
|
1147
|
-
}
|
1148
|
-
upload() {
|
1149
|
-
if (this.hasFiles())
|
1150
|
-
this.uploader();
|
1151
|
-
}
|
1152
|
-
onBasicUploaderClick() {
|
1153
|
-
this.basicFileInput?.nativeElement.click();
|
1154
|
-
}
|
1155
|
-
onBasicKeydown(event) {
|
1156
|
-
switch (event.code) {
|
1157
|
-
case 'Space':
|
1158
|
-
case 'Enter':
|
1159
|
-
this.onBasicUploaderClick();
|
1160
|
-
event.preventDefault();
|
1161
|
-
break;
|
1162
|
-
}
|
1163
|
-
}
|
1164
|
-
imageError(event) {
|
1165
|
-
this.onImageError.emit(event);
|
1166
|
-
}
|
1167
|
-
getBlockableElement() {
|
1168
|
-
return this.el.nativeElement.children[0];
|
1169
|
-
}
|
1170
|
-
get chooseButtonLabel() {
|
1171
|
-
return this.chooseLabel || this.config.getTranslation(TranslationKeys.CHOOSE);
|
1172
|
-
}
|
1173
|
-
get uploadButtonLabel() {
|
1174
|
-
return this.uploadLabel || this.config.getTranslation(TranslationKeys.UPLOAD);
|
1175
|
-
}
|
1176
|
-
get cancelButtonLabel() {
|
1177
|
-
return this.cancelLabel || this.config.getTranslation(TranslationKeys.CANCEL);
|
1178
|
-
}
|
1179
|
-
get browseFilesLabel() {
|
1180
|
-
return this.config.getTranslation(TranslationKeys.ARIA)[TranslationKeys.BROWSE_FILES];
|
1181
|
-
}
|
1182
|
-
get pendingLabel() {
|
1183
|
-
return this.config.getTranslation(TranslationKeys.PENDING);
|
1184
|
-
}
|
1185
|
-
ngOnDestroy() {
|
1186
|
-
if (this.content && this.content.nativeElement) {
|
1187
|
-
if (this.dragOverListener) {
|
1188
|
-
this.dragOverListener();
|
1189
|
-
this.dragOverListener = null;
|
1190
|
-
}
|
1191
|
-
}
|
1192
|
-
if (this.translationSubscription) {
|
1193
|
-
this.translationSubscription.unsubscribe();
|
1194
|
-
}
|
1195
|
-
super.ngOnDestroy();
|
1196
|
-
}
|
1197
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵFileUpload_BaseFactory; return function FileUpload_Factory(__ngFactoryType__) { return (ɵFileUpload_BaseFactory || (ɵFileUpload_BaseFactory = i0.ɵɵgetInheritedFactory(FileUpload)))(__ngFactoryType__ || FileUpload); }; })();
|
1198
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FileUpload, selectors: [["p-fileupload"], ["p-fileUpload"]], contentQueries: function FileUpload_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
1199
|
-
i0.ɵɵcontentQuery(dirIndex, _c0, 5);
|
1200
|
-
i0.ɵɵcontentQuery(dirIndex, _c1, 5);
|
1201
|
-
i0.ɵɵcontentQuery(dirIndex, _c2, 5);
|
1202
|
-
i0.ɵɵcontentQuery(dirIndex, _c3, 5);
|
1203
|
-
i0.ɵɵcontentQuery(dirIndex, _c4, 5);
|
1204
|
-
i0.ɵɵcontentQuery(dirIndex, _c5, 5);
|
1205
|
-
i0.ɵɵcontentQuery(dirIndex, _c6, 5);
|
1206
|
-
i0.ɵɵcontentQuery(dirIndex, _c7, 5);
|
1207
|
-
i0.ɵɵcontentQuery(dirIndex, _c8, 5);
|
1208
|
-
} if (rf & 2) {
|
1209
|
-
let _t;
|
1210
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileTemplate = _t.first);
|
1211
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);
|
1212
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
|
1213
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toolbarTemplate = _t.first);
|
1214
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chooseiconTemplate = _t.first);
|
1215
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filelabelTemplate = _t.first);
|
1216
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.uploadiconTemplate = _t.first);
|
1217
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.canceliconTemplate = _t.first);
|
1218
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyTemplate = _t.first);
|
1219
|
-
} }, viewQuery: function FileUpload_Query(rf, ctx) { if (rf & 1) {
|
1220
|
-
i0.ɵɵviewQuery(_c9, 5);
|
1221
|
-
i0.ɵɵviewQuery(_c10, 5);
|
1222
|
-
i0.ɵɵviewQuery(_c2, 5);
|
1223
|
-
} if (rf & 2) {
|
1224
|
-
let _t;
|
1225
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.advancedFileInput = _t.first);
|
1226
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.basicFileInput = _t.first);
|
1227
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);
|
1228
|
-
} }, inputs: { name: "name", url: "url", method: "method", multiple: [2, "multiple", "multiple", booleanAttribute], accept: "accept", disabled: [2, "disabled", "disabled", booleanAttribute], auto: [2, "auto", "auto", booleanAttribute], withCredentials: [2, "withCredentials", "withCredentials", booleanAttribute], maxFileSize: [2, "maxFileSize", "maxFileSize", numberAttribute], invalidFileSizeMessageSummary: "invalidFileSizeMessageSummary", invalidFileSizeMessageDetail: "invalidFileSizeMessageDetail", invalidFileTypeMessageSummary: "invalidFileTypeMessageSummary", invalidFileTypeMessageDetail: "invalidFileTypeMessageDetail", invalidFileLimitMessageDetail: "invalidFileLimitMessageDetail", invalidFileLimitMessageSummary: "invalidFileLimitMessageSummary", style: "style", styleClass: "styleClass", previewWidth: [2, "previewWidth", "previewWidth", numberAttribute], chooseLabel: "chooseLabel", uploadLabel: "uploadLabel", cancelLabel: "cancelLabel", chooseIcon: "chooseIcon", uploadIcon: "uploadIcon", cancelIcon: "cancelIcon", showUploadButton: [2, "showUploadButton", "showUploadButton", booleanAttribute], showCancelButton: [2, "showCancelButton", "showCancelButton", booleanAttribute], mode: "mode", headers: "headers", customUpload: [2, "customUpload", "customUpload", booleanAttribute], fileLimit: [2, "fileLimit", "fileLimit", (value) => numberAttribute(value, null)], uploadStyleClass: "uploadStyleClass", cancelStyleClass: "cancelStyleClass", removeStyleClass: "removeStyleClass", chooseStyleClass: "chooseStyleClass", chooseButtonProps: "chooseButtonProps", uploadButtonProps: "uploadButtonProps", cancelButtonProps: "cancelButtonProps", files: "files" }, outputs: { onBeforeUpload: "onBeforeUpload", onSend: "onSend", onUpload: "onUpload", onError: "onError", onClear: "onClear", onRemove: "onRemove", onSelect: "onSelect", onProgress: "onProgress", uploadHandler: "uploadHandler", onImageError: "onImageError", onRemoveUploadedFile: "onRemoveUploadedFile" }, standalone: true, features: [i0.ɵɵProvidersFeature([FileUploadStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 2, consts: [["advancedfileinput", ""], ["content", ""], ["icon", ""], ["basicfileinput", ""], [3, "ngClass", "ngStyle", "class", 4, "ngIf"], [3, "ngClass", "class", 4, "ngIf"], [3, "ngClass", "ngStyle"], ["type", "file", 3, "change", "multiple", "accept", "disabled"], [1, "p-fileupload-header"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [4, "ngTemplateOutlet"], [1, "p-fileupload-content", 3, "dragenter", "dragleave", "drop"], [3, "value", "showValue", 4, "ngIf"], [3, "severity", "text"], ["class", "p-fileupload-file-list", 4, "ngIf"], ["tabindex", "0", 3, "focus", "blur", "onClick", "keydown.enter", "styleClass", "disabled", "label", "buttonProps"], [3, "class", 4, "ngIf"], [3, "label", "disabled", "styleClass", "buttonProps", "onClick", 4, "ngIf"], [3, "onClick", "label", "disabled", "styleClass", "buttonProps"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"], [3, "value", "showValue"], [1, "p-fileupload-file-list"], [1, "p-fileupload-file"], ["ngFor", "", 3, "ngForOf", "ngForTemplate"], ["class", "p-fileupload-file", 4, "ngFor", "ngForOf"], ["class", "p-fileupload-file-thumbnail", 3, "src", "width", "error", 4, "ngIf"], [1, "p-fileupload-file-info"], [1, "p-fileupload-file-name"], [1, "p-fileupload-file-size"], [1, "p-fileupload-file-actions"], ["text", "", "rounded", "", "severity", "danger", 3, "onClick", "disabled", "styleClass"], [1, "p-fileupload-file-thumbnail", 3, "error", "src", "width"], ["tabindex", "0", 3, "onClick", "keydown", "styleClass", "disabled", "label", "buttonProps"], ["type", "file", 3, "change", "focus", "blur", "accept", "multiple", "disabled"], ["class", "p-button-icon p-button-icon-left", 3, "ngClass", 4, "ngIf"], [1, "p-button-icon", "p-button-icon-left", 3, "ngClass"], [3, "styleClass", 4, "ngIf"], ["class", "p-button-icon p-button-icon-left", 4, "ngIf"], [3, "styleClass"], [1, "p-button-icon", "p-button-icon-left"], ["class", "p-button-icon p-button-icon-left pi", 3, "ngClass", 4, "ngIf"], [1, "p-button-icon", "p-button-icon-left", "pi", 3, "ngClass"], [3, "class"]], template: function FileUpload_Template(rf, ctx) { if (rf & 1) {
|
1229
|
-
i0.ɵɵtemplate(0, FileUpload_div_0_Template, 15, 39, "div", 4)(1, FileUpload_div_1_Template, 9, 16, "div", 5);
|
1230
|
-
} if (rf & 2) {
|
1231
|
-
i0.ɵɵproperty("ngIf", ctx.mode === "advanced");
|
1232
|
-
i0.ɵɵadvance();
|
1233
|
-
i0.ɵɵproperty("ngIf", ctx.mode === "basic");
|
1234
|
-
} }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Button, ProgressBar, Message, PlusIcon, UploadIcon, TimesIcon, SharedModule], encapsulation: 2, changeDetection: 0 });
|
1235
|
-
}
|
1236
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FileUpload, [{
|
1237
|
-
type: Component,
|
1238
|
-
args: [{
|
1239
|
-
selector: 'p-fileupload, p-fileUpload',
|
1240
|
-
standalone: true,
|
1241
|
-
imports: [CommonModule, Button, ProgressBar, Message, Ripple, PlusIcon, UploadIcon, TimesIcon, SharedModule],
|
1242
|
-
template: `
|
1243
|
-
<div [ngClass]="'p-fileupload p-fileupload-advanced p-component'" [ngStyle]="style" [class]="styleClass" *ngIf="mode === 'advanced'" [attr.data-pc-name]="'fileupload'" [attr.data-pc-section]="'root'">
|
1244
|
-
<input
|
1245
|
-
[attr.aria-label]="browseFilesLabel"
|
1246
|
-
#advancedfileinput
|
1247
|
-
type="file"
|
1248
|
-
(change)="onFileSelect($event)"
|
1249
|
-
[multiple]="multiple"
|
1250
|
-
[accept]="accept"
|
1251
|
-
[disabled]="disabled || isChooseDisabled()"
|
1252
|
-
[attr.title]="''"
|
1253
|
-
[attr.data-pc-section]="'input'"
|
1254
|
-
[style.display]="'none'"
|
1255
|
-
/>
|
1256
|
-
<div class="p-fileupload-header">
|
1257
|
-
<ng-container *ngIf="!headerTemplate">
|
1258
|
-
<p-button
|
1259
|
-
[styleClass]="'p-fileupload-choose-button ' + chooseStyleClass"
|
1260
|
-
[disabled]="disabled || isChooseDisabled()"
|
1261
|
-
(focus)="onFocus()"
|
1262
|
-
[label]="chooseButtonLabel"
|
1263
|
-
(blur)="onBlur()"
|
1264
|
-
(onClick)="choose()"
|
1265
|
-
(keydown.enter)="choose()"
|
1266
|
-
tabindex="0"
|
1267
|
-
[attr.data-pc-section]="'choosebutton'"
|
1268
|
-
[buttonProps]="chooseButtonProps"
|
1269
|
-
>
|
1270
|
-
<input
|
1271
|
-
[attr.aria-label]="browseFilesLabel"
|
1272
|
-
#advancedfileinput
|
1273
|
-
type="file"
|
1274
|
-
(change)="onFileSelect($event)"
|
1275
|
-
[multiple]="multiple"
|
1276
|
-
[accept]="accept"
|
1277
|
-
[disabled]="disabled || isChooseDisabled()"
|
1278
|
-
[attr.title]="''"
|
1279
|
-
[attr.data-pc-section]="'input'"
|
1280
|
-
/>
|
1281
|
-
<span *ngIf="chooseIcon" [class]="chooseIcon" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'"></span>
|
1282
|
-
<ng-container *ngIf="!chooseIcon">
|
1283
|
-
<PlusIcon *ngIf="!chooseiconTemplate" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'" />
|
1284
|
-
<span *ngIf="chooseiconTemplate" [attr.aria-label]="true" [attr.data-pc-section]="'chooseicon'">
|
1285
|
-
<ng-template *ngTemplateOutlet="chooseiconTemplate"></ng-template>
|
1286
|
-
</span>
|
1287
|
-
</ng-container>
|
1288
|
-
</p-button>
|
1289
|
-
|
1290
|
-
<p-button
|
1291
|
-
*ngIf="!auto && showUploadButton"
|
1292
|
-
[label]="uploadButtonLabel"
|
1293
|
-
(onClick)="upload()"
|
1294
|
-
[disabled]="!hasFiles() || isFileLimitExceeded()"
|
1295
|
-
[styleClass]="'p-fileupload-upload-button ' + uploadStyleClass"
|
1296
|
-
[buttonProps]="uploadButtonProps"
|
1297
|
-
>
|
1298
|
-
<span *ngIf="uploadIcon" [ngClass]="uploadIcon" [attr.aria-hidden]="true"></span>
|
1299
|
-
<ng-container *ngIf="!uploadIcon">
|
1300
|
-
<UploadIcon *ngIf="!uploadiconTemplate" />
|
1301
|
-
<span *ngIf="uploadiconTemplate" [attr.aria-hidden]="true">
|
1302
|
-
<ng-template *ngTemplateOutlet="uploadiconTemplate"></ng-template>
|
1303
|
-
</span>
|
1304
|
-
</ng-container>
|
1305
|
-
</p-button>
|
1306
|
-
<p-button *ngIf="!auto && showCancelButton" [label]="cancelButtonLabel" (onClick)="clear()" [disabled]="!hasFiles() || uploading" [styleClass]="'p-fileupload-cancel-button ' + cancelStyleClass" [buttonProps]="cancelButtonProps">
|
1307
|
-
<span *ngIf="cancelIcon" [ngClass]="cancelIcon"></span>
|
1308
|
-
<ng-container *ngIf="!cancelIcon">
|
1309
|
-
<TimesIcon *ngIf="!canceliconTemplate" [attr.aria-hidden]="true" />
|
1310
|
-
<span *ngIf="canceliconTemplate" [attr.aria-hidden]="true">
|
1311
|
-
<ng-template *ngTemplateOutlet="canceliconTemplate"></ng-template>
|
1312
|
-
</span>
|
1313
|
-
</ng-container>
|
1314
|
-
</p-button>
|
1315
|
-
</ng-container>
|
1316
|
-
<ng-container
|
1317
|
-
*ngTemplateOutlet="
|
1318
|
-
headerTemplate;
|
1319
|
-
context: {
|
1320
|
-
$implicit: files,
|
1321
|
-
uploadedFiles: uploadedFiles,
|
1322
|
-
chooseCallback: choose.bind(this),
|
1323
|
-
clearCallback: clear.bind(this),
|
1324
|
-
uploadCallback: upload.bind(this)
|
1325
|
-
}
|
1326
|
-
"
|
1327
|
-
></ng-container>
|
1328
|
-
<ng-container *ngTemplateOutlet="toolbarTemplate"></ng-container>
|
1329
|
-
</div>
|
1330
|
-
<div #content class="p-fileupload-content" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)" (drop)="onDrop($event)" [attr.data-pc-section]="'content'">
|
1331
|
-
<p-progressbar [value]="progress" [showValue]="false" *ngIf="hasFiles()"></p-progressbar>
|
1332
|
-
@for (message of msgs; track message) {
|
1333
|
-
<p-message [severity]="message.severity" [text]="message.text"></p-message>
|
1334
|
-
}
|
1335
|
-
|
1336
|
-
<div class="p-fileupload-file-list" *ngIf="hasFiles()">
|
1337
|
-
@if (!fileTemplate) {
|
1338
|
-
<div class="p-fileupload-file" *ngFor="let file of files; let i = index">
|
1339
|
-
<img [src]="file.objectURL" *ngIf="isImage(file)" [width]="previewWidth" (error)="imageError($event)" class="p-fileupload-file-thumbnail" />
|
1340
|
-
<div class="p-fileupload-file-info">
|
1341
|
-
<div class="p-fileupload-file-name">{{ file.name }}</div>
|
1342
|
-
<span class="p-fileupload-file-size">{{ formatSize(file.size) }}</span>
|
1343
|
-
</div>
|
1344
|
-
<div class="p-fileupload-file-actions">
|
1345
|
-
<p-button (onClick)="remove($event, i)" [disabled]="uploading" text rounded severity="danger" [styleClass]="'p-fileupload-file-remove-button ' + removeStyleClass">
|
1346
|
-
<ng-template #icon>
|
1347
|
-
<TimesIcon *ngIf="!canceliconTemplate" />
|
1348
|
-
<ng-template *ngTemplateOutlet="canceliconTemplate"></ng-template>
|
1349
|
-
</ng-template>
|
1350
|
-
</p-button>
|
1351
|
-
</div>
|
1352
|
-
</div>
|
1353
|
-
}
|
1354
|
-
@if (fileTemplate) {
|
1355
|
-
<ng-template ngFor [ngForOf]="files" [ngForTemplate]="fileTemplate"></ng-template>
|
1356
|
-
}
|
1357
|
-
</div>
|
1358
|
-
<ng-container
|
1359
|
-
*ngTemplateOutlet="
|
1360
|
-
contentTemplate;
|
1361
|
-
context: {
|
1362
|
-
$implicit: files,
|
1363
|
-
uploadedFiles: uploadedFiles,
|
1364
|
-
chooseCallback: choose.bind(this),
|
1365
|
-
clearCallback: clear.bind(this),
|
1366
|
-
removeUploadedFileCallback: removeUploadedFile.bind(this),
|
1367
|
-
removeFileCallback: remove.bind(this),
|
1368
|
-
progress: progress,
|
1369
|
-
messages: msgs
|
1370
|
-
}
|
1371
|
-
"
|
1372
|
-
></ng-container>
|
1373
|
-
@if (emptyTemplate && !hasFiles() && !hasUploadedFiles()) {
|
1374
|
-
<ng-container *ngTemplateOutlet="emptyTemplate"></ng-container>
|
1375
|
-
}
|
1376
|
-
</div>
|
1377
|
-
</div>
|
1378
|
-
<div [ngClass]="'p-fileupload p-fileupload-basic p-component'" [class]="styleClass" *ngIf="mode === 'basic'" [attr.data-pc-name]="'fileupload'">
|
1379
|
-
@for (message of msgs; track message) {
|
1380
|
-
<p-message [severity]="message.severity" [text]="message.text"></p-message>
|
1381
|
-
}
|
1382
|
-
|
1383
|
-
<p-button
|
1384
|
-
[styleClass]="'p-fileupload-choose-button ' + chooseStyleClass"
|
1385
|
-
[disabled]="disabled"
|
1386
|
-
[label]="chooseButtonLabel"
|
1387
|
-
[style]="style"
|
1388
|
-
(onClick)="onBasicUploaderClick()"
|
1389
|
-
(keydown)="onBasicKeydown($event)"
|
1390
|
-
tabindex="0"
|
1391
|
-
[buttonProps]="chooseButtonProps"
|
1392
|
-
>
|
1393
|
-
<ng-template #icon>
|
1394
|
-
@if (hasFiles() && !auto) {
|
1395
|
-
<span *ngIf="uploadIcon" class="p-button-icon p-button-icon-left" [ngClass]="uploadIcon"></span>
|
1396
|
-
<ng-container *ngIf="!uploadIcon">
|
1397
|
-
<UploadIcon *ngIf="!uploadiconTemplate" [styleClass]="'p-button-icon p-button-icon-left'" />
|
1398
|
-
<span *ngIf="uploadiconTemplate" class="p-button-icon p-button-icon-left">
|
1399
|
-
<ng-template *ngTemplateOutlet="uploadiconTemplate"></ng-template>
|
1400
|
-
</span>
|
1401
|
-
</ng-container>
|
1402
|
-
} @else {
|
1403
|
-
<span *ngIf="chooseIcon" class="p-button-icon p-button-icon-left pi" [ngClass]="chooseIcon"></span>
|
1404
|
-
<ng-container *ngIf="!chooseIcon">
|
1405
|
-
<PlusIcon *ngIf="!chooseiconTemplate" [attr.data-pc-section]="'uploadicon'" />
|
1406
|
-
<ng-template *ngTemplateOutlet="chooseiconTemplate"></ng-template>
|
1407
|
-
</ng-container>
|
1408
|
-
}
|
1409
|
-
</ng-template>
|
1410
|
-
<input
|
1411
|
-
[attr.aria-label]="browseFilesLabel"
|
1412
|
-
#basicfileinput
|
1413
|
-
type="file"
|
1414
|
-
[accept]="accept"
|
1415
|
-
[multiple]="multiple"
|
1416
|
-
[disabled]="disabled"
|
1417
|
-
(change)="onFileSelect($event)"
|
1418
|
-
(focus)="onFocus()"
|
1419
|
-
(blur)="onBlur()"
|
1420
|
-
[attr.data-pc-section]="'input'"
|
1421
|
-
/>
|
1422
|
-
</p-button>
|
1423
|
-
@if (!auto) {
|
1424
|
-
@if (!fileLabelTemplate) {
|
1425
|
-
<span [class]="cx('filelabel')">
|
1426
|
-
{{ basicFileChosenLabel() }}
|
1427
|
-
</span>
|
1428
|
-
} @else {
|
1429
|
-
<ng-container *ngTemplateOutlet="fileLabelTemplate; context: { $implicit: files }"></ng-container>
|
1430
|
-
}
|
1431
|
-
}
|
1432
|
-
</div>
|
1433
|
-
`,
|
1434
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
1435
|
-
encapsulation: ViewEncapsulation.None,
|
1436
|
-
providers: [FileUploadStyle]
|
1437
|
-
}]
|
1438
|
-
}], null, { name: [{
|
1439
|
-
type: Input
|
1440
|
-
}], url: [{
|
1441
|
-
type: Input
|
1442
|
-
}], method: [{
|
1443
|
-
type: Input
|
1444
|
-
}], multiple: [{
|
1445
|
-
type: Input,
|
1446
|
-
args: [{ transform: booleanAttribute }]
|
1447
|
-
}], accept: [{
|
1448
|
-
type: Input
|
1449
|
-
}], disabled: [{
|
1450
|
-
type: Input,
|
1451
|
-
args: [{ transform: booleanAttribute }]
|
1452
|
-
}], auto: [{
|
1453
|
-
type: Input,
|
1454
|
-
args: [{ transform: booleanAttribute }]
|
1455
|
-
}], withCredentials: [{
|
1456
|
-
type: Input,
|
1457
|
-
args: [{ transform: booleanAttribute }]
|
1458
|
-
}], maxFileSize: [{
|
1459
|
-
type: Input,
|
1460
|
-
args: [{ transform: numberAttribute }]
|
1461
|
-
}], invalidFileSizeMessageSummary: [{
|
1462
|
-
type: Input
|
1463
|
-
}], invalidFileSizeMessageDetail: [{
|
1464
|
-
type: Input
|
1465
|
-
}], invalidFileTypeMessageSummary: [{
|
1466
|
-
type: Input
|
1467
|
-
}], invalidFileTypeMessageDetail: [{
|
1468
|
-
type: Input
|
1469
|
-
}], invalidFileLimitMessageDetail: [{
|
1470
|
-
type: Input
|
1471
|
-
}], invalidFileLimitMessageSummary: [{
|
1472
|
-
type: Input
|
1473
|
-
}], style: [{
|
1474
|
-
type: Input
|
1475
|
-
}], styleClass: [{
|
1476
|
-
type: Input
|
1477
|
-
}], previewWidth: [{
|
1478
|
-
type: Input,
|
1479
|
-
args: [{ transform: numberAttribute }]
|
1480
|
-
}], chooseLabel: [{
|
1481
|
-
type: Input
|
1482
|
-
}], uploadLabel: [{
|
1483
|
-
type: Input
|
1484
|
-
}], cancelLabel: [{
|
1485
|
-
type: Input
|
1486
|
-
}], chooseIcon: [{
|
1487
|
-
type: Input
|
1488
|
-
}], uploadIcon: [{
|
1489
|
-
type: Input
|
1490
|
-
}], cancelIcon: [{
|
1491
|
-
type: Input
|
1492
|
-
}], showUploadButton: [{
|
1493
|
-
type: Input,
|
1494
|
-
args: [{ transform: booleanAttribute }]
|
1495
|
-
}], showCancelButton: [{
|
1496
|
-
type: Input,
|
1497
|
-
args: [{ transform: booleanAttribute }]
|
1498
|
-
}], mode: [{
|
1499
|
-
type: Input
|
1500
|
-
}], headers: [{
|
1501
|
-
type: Input
|
1502
|
-
}], customUpload: [{
|
1503
|
-
type: Input,
|
1504
|
-
args: [{ transform: booleanAttribute }]
|
1505
|
-
}], fileLimit: [{
|
1506
|
-
type: Input,
|
1507
|
-
args: [{ transform: (value) => numberAttribute(value, null) }]
|
1508
|
-
}], uploadStyleClass: [{
|
1509
|
-
type: Input
|
1510
|
-
}], cancelStyleClass: [{
|
1511
|
-
type: Input
|
1512
|
-
}], removeStyleClass: [{
|
1513
|
-
type: Input
|
1514
|
-
}], chooseStyleClass: [{
|
1515
|
-
type: Input
|
1516
|
-
}], chooseButtonProps: [{
|
1517
|
-
type: Input
|
1518
|
-
}], uploadButtonProps: [{
|
1519
|
-
type: Input
|
1520
|
-
}], cancelButtonProps: [{
|
1521
|
-
type: Input
|
1522
|
-
}], onBeforeUpload: [{
|
1523
|
-
type: Output
|
1524
|
-
}], onSend: [{
|
1525
|
-
type: Output
|
1526
|
-
}], onUpload: [{
|
1527
|
-
type: Output
|
1528
|
-
}], onError: [{
|
1529
|
-
type: Output
|
1530
|
-
}], onClear: [{
|
1531
|
-
type: Output
|
1532
|
-
}], onRemove: [{
|
1533
|
-
type: Output
|
1534
|
-
}], onSelect: [{
|
1535
|
-
type: Output
|
1536
|
-
}], onProgress: [{
|
1537
|
-
type: Output
|
1538
|
-
}], uploadHandler: [{
|
1539
|
-
type: Output
|
1540
|
-
}], onImageError: [{
|
1541
|
-
type: Output
|
1542
|
-
}], onRemoveUploadedFile: [{
|
1543
|
-
type: Output
|
1544
|
-
}], fileTemplate: [{
|
1545
|
-
type: ContentChild,
|
1546
|
-
args: ['file']
|
1547
|
-
}], headerTemplate: [{
|
1548
|
-
type: ContentChild,
|
1549
|
-
args: ['header']
|
1550
|
-
}], contentTemplate: [{
|
1551
|
-
type: ContentChild,
|
1552
|
-
args: ['content']
|
1553
|
-
}], toolbarTemplate: [{
|
1554
|
-
type: ContentChild,
|
1555
|
-
args: ['toolbar']
|
1556
|
-
}], chooseiconTemplate: [{
|
1557
|
-
type: ContentChild,
|
1558
|
-
args: ['chooseicon']
|
1559
|
-
}], filelabelTemplate: [{
|
1560
|
-
type: ContentChild,
|
1561
|
-
args: ['filelabel']
|
1562
|
-
}], uploadiconTemplate: [{
|
1563
|
-
type: ContentChild,
|
1564
|
-
args: ['uploadicon']
|
1565
|
-
}], canceliconTemplate: [{
|
1566
|
-
type: ContentChild,
|
1567
|
-
args: ['cancelicon']
|
1568
|
-
}], emptyTemplate: [{
|
1569
|
-
type: ContentChild,
|
1570
|
-
args: ['empty']
|
1571
|
-
}], advancedFileInput: [{
|
1572
|
-
type: ViewChild,
|
1573
|
-
args: ['advancedfileinput']
|
1574
|
-
}], basicFileInput: [{
|
1575
|
-
type: ViewChild,
|
1576
|
-
args: ['basicfileinput']
|
1577
|
-
}], content: [{
|
1578
|
-
type: ViewChild,
|
1579
|
-
args: ['content']
|
1580
|
-
}], files: [{
|
1581
|
-
type: Input
|
1582
|
-
}] }); })();
|
1583
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FileUpload, { className: "FileUpload" }); })();
|
1584
|
-
export class FileUploadModule {
|
1585
|
-
static ɵfac = function FileUploadModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FileUploadModule)(); };
|
1586
|
-
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: FileUploadModule });
|
1587
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FileUpload, SharedModule, SharedModule] });
|
1588
|
-
}
|
1589
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FileUploadModule, [{
|
1590
|
-
type: NgModule,
|
1591
|
-
args: [{
|
1592
|
-
imports: [FileUpload, SharedModule],
|
1593
|
-
exports: [FileUpload, SharedModule]
|
1594
|
-
}]
|
1595
|
-
}], null, null); })();
|
1596
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FileUploadModule, { imports: [FileUpload, SharedModule], exports: [FileUpload, SharedModule] }); })();
|
1597
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXVwbG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWxldXBsb2FkL2ZpbGV1cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDekYsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGVBQWUsRUFHZixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQWUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWlEbEMsdUJBQW9I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LFlBQVk7bUJBQUMsWUFBWTtZQU1FLGtCQUFrQjtrQkFBN0MsWUFBWTttQkFBQyxZQUFZO1lBTUgsYUFBYTtrQkFBbkMsWUFBWTttQkFBQyxPQUFPO1lBRVcsaUJBQWlCO2tCQUFoRCxTQUFTO21CQUFDLG1CQUFtQjtZQUVELGNBQWM7a0JBQTFDLFNBQVM7bUJBQUMsZ0JBQWdCO1lBRUwsT0FBTztrQkFBNUIsU0FBUzttQkFBQyxTQUFTO1lBRVAsS0FBSztrQkFBakIsS0FBSzs7a0ZBelRHLFVBQVU7QUFvekJ2QixNQUFNLE9BQU8sZ0JBQWdCOzBHQUFoQixnQkFBZ0I7NERBQWhCLGdCQUFnQjtnRUFIZixVQUFVLEVBQUUsWUFBWSxFQUNaLFlBQVk7O2lGQUV6QixnQkFBZ0I7Y0FKNUIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUM7YUFDdEM7O3dGQUNZLGdCQUFnQixjQXB6QmhCLFVBQVUsRUFpekJHLFlBQVksYUFqekJ6QixVQUFVLEVBa3pCRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgTmdab25lLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGFkZENsYXNzLCByZW1vdmVDbGFzcyB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBCbG9ja2FibGVVSSwgU2hhcmVkTW9kdWxlLCBUcmFuc2xhdGlvbktleXMgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbiwgQnV0dG9uUHJvcHMgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBQbHVzSWNvbiwgVGltZXNJY29uLCBVcGxvYWRJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAncHJpbWVuZy9tZXNzYWdlJztcbmltcG9ydCB7IFByb2dyZXNzQmFyIH0gZnJvbSAncHJpbWVuZy9wcm9ncmVzc2Jhcic7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBWb2lkTGlzdGVuZXIgfSBmcm9tICdwcmltZW5nL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGaWxlQmVmb3JlVXBsb2FkRXZlbnQsIEZpbGVQcm9ncmVzc0V2ZW50LCBGaWxlUmVtb3ZlRXZlbnQsIEZpbGVTZWxlY3RFdmVudCwgRmlsZVNlbmRFdmVudCwgRmlsZVVwbG9hZEVycm9yRXZlbnQsIEZpbGVVcGxvYWRFdmVudCwgRmlsZVVwbG9hZEhhbmRsZXJFdmVudCwgUmVtb3ZlVXBsb2FkZWRGaWxlRXZlbnQgfSBmcm9tICcuL2ZpbGV1cGxvYWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTdHlsZSB9IGZyb20gJy4vc3R5bGUvZmlsZXVwbG9hZHN0eWxlJztcblxuLyoqXG4gKiBGaWxlVXBsb2FkIGlzIGFuIGFkdmFuY2VkIHVwbG9hZGVyIHdpdGggZHJhZ2Ryb3Agc3VwcG9ydCwgbXVsdGkgZmlsZSB1cGxvYWRzLCBhdXRvIHVwbG9hZGluZywgcHJvZ3Jlc3MgdHJhY2tpbmcgYW5kIHZhbGlkYXRpb25zLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWZpbGV1cGxvYWQsIHAtZmlsZVVwbG9hZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBCdXR0b24sIFByb2dyZXNzQmFyLCBNZXNzYWdlLCBSaXBwbGUsIFBsdXNJY29uLCBVcGxvYWRJY29uLCBUaW1lc0ljb24sIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCIncC1maWxldXBsb2FkIHAtZmlsZXVwbG9hZC1hZHZhbmNlZCBwLWNvbXBvbmVudCdcIiBbbmdTdHlsZV09XCJzdHlsZVwiIFtjbGFzc109XCJzdHlsZUNsYXNzXCIgKm5nSWY9XCJtb2RlID09PSAnYWR2YW5jZWQnXCIgW2F0dHIuZGF0YS1wYy1uYW1lXT1cIidmaWxldXBsb2FkJ1wiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnJvd3NlRmlsZXNMYWJlbFwiXG4gICAgICAgICAgICAgICAgI2FkdmFuY2VkZmlsZWlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpc0Nob29zZURpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIicnXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2lucHV0J1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1maWxldXBsb2FkLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGVhZGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGVDbGFzc109XCIncC1maWxldXBsb2FkLWNob29zZS1idXR0b24gJyArIGNob29zZVN0eWxlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzQ2hvb3NlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjaG9vc2VCdXR0b25MYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJjaG9vc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJjaG9vc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjaG9vc2VidXR0b24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25Qcm9wc109XCJjaG9vc2VCdXR0b25Qcm9wc1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnJvd3NlRmlsZXNMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI2FkdmFuY2VkZmlsZWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpc0Nob29zZURpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIicnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2lucHV0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjaG9vc2VJY29uXCIgW2NsYXNzXT1cImNob29zZUljb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRydWVcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2Nob29zZWljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjaG9vc2VJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBsdXNJY29uICpuZ0lmPVwiIWNob29zZWljb25UZW1wbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwidHJ1ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInY2hvb3NlaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2hvb3NlaWNvblRlbXBsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0cnVlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjaG9vc2VpY29uJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaG9vc2VpY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L3AtYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhYXV0byAmJiBzaG93VXBsb2FkQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ1cGxvYWRCdXR0b25MYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ1cGxvYWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWhhc0ZpbGVzKCkgfHwgaXNGaWxlTGltaXRFeGNlZWRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cIidwLWZpbGV1cGxvYWQtdXBsb2FkLWJ1dHRvbiAnICsgdXBsb2FkU3R5bGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uUHJvcHNdPVwidXBsb2FkQnV0dG9uUHJvcHNcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInVwbG9hZEljb25cIiBbbmdDbGFzc109XCJ1cGxvYWRJY29uXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdXBsb2FkSWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWRJY29uICpuZ0lmPVwiIXVwbG9hZGljb25UZW1wbGF0ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1cGxvYWRpY29uVGVtcGxhdGVcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInVwbG9hZGljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiAqbmdJZj1cIiFhdXRvICYmIHNob3dDYW5jZWxCdXR0b25cIiBbbGFiZWxdPVwiY2FuY2VsQnV0dG9uTGFiZWxcIiAob25DbGljayk9XCJjbGVhcigpXCIgW2Rpc2FibGVkXT1cIiFoYXNGaWxlcygpIHx8IHVwbG9hZGluZ1wiIFtzdHlsZUNsYXNzXT1cIidwLWZpbGV1cGxvYWQtY2FuY2VsLWJ1dHRvbiAnICsgY2FuY2VsU3R5bGVDbGFzc1wiIFtidXR0b25Qcm9wc109XCJjYW5jZWxCdXR0b25Qcm9wc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjYW5jZWxJY29uXCIgW25nQ2xhc3NdPVwiY2FuY2VsSWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY2FuY2VsSWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gKm5nSWY9XCIhY2FuY2VsaWNvblRlbXBsYXRlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjYW5jZWxpY29uVGVtcGxhdGVcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNhbmNlbGljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBmaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRlZEZpbGVzOiB1cGxvYWRlZEZpbGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZUNhbGxiYWNrOiBjaG9vc2UuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNhbGxiYWNrOiBjbGVhci5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZENhbGxiYWNrOiB1cGxvYWQuYmluZCh0aGlzKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9vbGJhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgI2NvbnRlbnQgY2xhc3M9XCJwLWZpbGV1cGxvYWQtY29udGVudFwiIChkcmFnZW50ZXIpPVwib25EcmFnRW50ZXIoJGV2ZW50KVwiIChkcmFnbGVhdmUpPVwib25EcmFnTGVhdmUoJGV2ZW50KVwiIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgIDxwLXByb2dyZXNzYmFyIFt2YWx1ZV09XCJwcm9ncmVzc1wiIFtzaG93VmFsdWVdPVwiZmFsc2VcIiAqbmdJZj1cImhhc0ZpbGVzKClcIj48L3AtcHJvZ3Jlc3NiYXI+XG4gICAgICAgICAgICAgICAgQGZvciAobWVzc2FnZSBvZiBtc2dzOyB0cmFjayBtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwLW1lc3NhZ2UgW3NldmVyaXR5XT1cIm1lc3NhZ2Uuc2V2ZXJpdHlcIiBbdGV4dF09XCJtZXNzYWdlLnRleHRcIj48L3AtbWVzc2FnZT5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1maWxldXBsb2FkLWZpbGUtbGlzdFwiICpuZ0lmPVwiaGFzRmlsZXMoKVwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFmaWxlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZpbGV1cGxvYWQtZmlsZVwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImZpbGUub2JqZWN0VVJMXCIgKm5nSWY9XCJpc0ltYWdlKGZpbGUpXCIgW3dpZHRoXT1cInByZXZpZXdXaWR0aFwiIChlcnJvcik9XCJpbWFnZUVycm9yKCRldmVudClcIiBjbGFzcz1cInAtZmlsZXVwbG9hZC1maWxlLXRodW1ibmFpbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZC1maWxlLWluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZC1maWxlLW5hbWVcIj57eyBmaWxlLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWZpbGV1cGxvYWQtZmlsZS1zaXplXCI+e3sgZm9ybWF0U2l6ZShmaWxlLnNpemUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZpbGV1cGxvYWQtZmlsZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiAob25DbGljayk9XCJyZW1vdmUoJGV2ZW50LCBpKVwiIFtkaXNhYmxlZF09XCJ1cGxvYWRpbmdcIiB0ZXh0IHJvdW5kZWQgc2V2ZXJpdHk9XCJkYW5nZXJcIiBbc3R5bGVDbGFzc109XCIncC1maWxldXBsb2FkLWZpbGUtcmVtb3ZlLWJ1dHRvbiAnICsgcmVtb3ZlU3R5bGVDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gKm5nSWY9XCIhY2FuY2VsaWNvblRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjYW5jZWxpY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgW25nRm9yT2ZdPVwiZmlsZXNcIiBbbmdGb3JUZW1wbGF0ZV09XCJmaWxlVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZmlsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkZWRGaWxlczogdXBsb2FkZWRGaWxlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9vc2VDYWxsYmFjazogY2hvb3NlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJDYWxsYmFjazogY2xlYXIuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVVcGxvYWRlZEZpbGVDYWxsYmFjazogcmVtb3ZlVXBsb2FkZWRGaWxlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRmlsZUNhbGxiYWNrOiByZW1vdmUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzczogcHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXM6IG1zZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgQGlmIChlbXB0eVRlbXBsYXRlICYmICFoYXNGaWxlcygpICYmICFoYXNVcGxvYWRlZEZpbGVzKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiJ3AtZmlsZXVwbG9hZCBwLWZpbGV1cGxvYWQtYmFzaWMgcC1jb21wb25lbnQnXCIgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIiAqbmdJZj1cIm1vZGUgPT09ICdiYXNpYydcIiBbYXR0ci5kYXRhLXBjLW5hbWVdPVwiJ2ZpbGV1cGxvYWQnXCI+XG4gICAgICAgICAgICBAZm9yIChtZXNzYWdlIG9mIG1zZ3M7IHRyYWNrIG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICA8cC1tZXNzYWdlIFtzZXZlcml0eV09XCJtZXNzYWdlLnNldmVyaXR5XCIgW3RleHRdPVwibWVzc2FnZS50ZXh0XCI+PC9wLW1lc3NhZ2U+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cIidwLWZpbGV1cGxvYWQtY2hvb3NlLWJ1dHRvbiAnICsgY2hvb3NlU3R5bGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvb3NlQnV0dG9uTGFiZWxcIlxuICAgICAgICAgICAgICAgIFtzdHlsZV09XCJzdHlsZVwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25CYXNpY1VwbG9hZGVyQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25CYXNpY0tleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBbYnV0dG9uUHJvcHNdPVwiY2hvb3NlQnV0dG9uUHJvcHNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoYXNGaWxlcygpICYmICFhdXRvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInVwbG9hZEljb25cIiBjbGFzcz1cInAtYnV0dG9uLWljb24gcC1idXR0b24taWNvbi1sZWZ0XCIgW25nQ2xhc3NdPVwidXBsb2FkSWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdXBsb2FkSWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWRJY29uICpuZ0lmPVwiIXVwbG9hZGljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdCdcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidXBsb2FkaWNvblRlbXBsYXRlXCIgY2xhc3M9XCJwLWJ1dHRvbi1pY29uIHAtYnV0dG9uLWljb24tbGVmdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ1cGxvYWRpY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2hvb3NlSWNvblwiIGNsYXNzPVwicC1idXR0b24taWNvbiBwLWJ1dHRvbi1pY29uLWxlZnQgcGlcIiBbbmdDbGFzc109XCJjaG9vc2VJY29uXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjaG9vc2VJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFBsdXNJY29uICpuZ0lmPVwiIWNob29zZWljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIndXBsb2FkaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImNob29zZWljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYnJvd3NlRmlsZXNMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICNiYXNpY2ZpbGVpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICAgICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaW5wdXQnXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9wLWJ1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoIWF1dG8pIHtcbiAgICAgICAgICAgICAgICBAaWYgKCFmaWxlTGFiZWxUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiY3goJ2ZpbGVsYWJlbCcpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBiYXNpY0ZpbGVDaG9zZW5MYWJlbCgpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVMYWJlbFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmlsZXMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW0ZpbGVVcGxvYWRTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSwgQmxvY2thYmxlVUkge1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGlkZW50aWZ5IHRoZSBmaWxlcyBhdCBiYWNrZW5kLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBSZW1vdGUgdXJsIHRvIHVwbG9hZCB0aGUgZmlsZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdXJsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSFRUUCBtZXRob2QgdG8gc2VuZCB0aGUgZmlsZXMgdG8gdGhlIHVybCBzdWNoIGFzIFwicG9zdFwiIGFuZCBcInB1dFwiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1ldGhvZDogJ3Bvc3QnIHwgJ3B1dCcgfCB1bmRlZmluZWQgPSAncG9zdCc7XG4gICAgLyoqXG4gICAgICogVXNlZCB0byBzZWxlY3QgbXVsdGlwbGUgZmlsZXMgYXQgb25jZSBmcm9tIGZpbGUgZGlhbG9nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtdWx0aXBsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwYXR0ZXJuIHRvIHJlc3RyaWN0IHRoZSBhbGxvd2VkIGZpbGUgdHlwZXMuIENhbiBiZSBhbnkgY29tYmluYXRpb24gb2YgZWl0aGVyIHRoZSBNSU1FIHR5cGVzIChzdWNoIGFzIFwiaW1hZ2UvKlwiKSBvciB0aGUgZmlsZSBleHRlbnNpb25zIChzdWNoIGFzIFwiLmpwZ1wiKS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEaXNhYmxlcyB0aGUgdXBsb2FkIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgdXBsb2FkIGJlZ2lucyBhdXRvbWF0aWNhbGx5IGFmdGVyIHNlbGVjdGlvbiBpcyBjb21wbGV0ZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ3Jvc3Mtc2l0ZSBBY2Nlc3MtQ29udHJvbCByZXF1ZXN0cyBzaG91bGQgYmUgbWFkZSB1c2luZyBjcmVkZW50aWFscyBzdWNoIGFzIGNvb2tpZXMsIGF1dGhvcml6YXRpb24gaGVhZGVycyBvciBUTFMgY2xpZW50IGNlcnRpZmljYXRlcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgd2l0aENyZWRlbnRpYWxzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE1heGltdW0gZmlsZSBzaXplIGFsbG93ZWQgaW4gYnl0ZXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgbWF4RmlsZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdW1tYXJ5IG1lc3NhZ2Ugb2YgdGhlIGludmFsaWQgZmlsZSBzaXplLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5OiBzdHJpbmcgPSAnezB9OiBJbnZhbGlkIGZpbGUgc2l6ZSwgJztcbiAgICAvKipcbiAgICAgKiBEZXRhaWwgbWVzc2FnZSBvZiB0aGUgaW52YWxpZCBmaWxlIHNpemUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaW52YWxpZEZpbGVTaXplTWVzc2FnZURldGFpbDogc3RyaW5nID0gJ21heGltdW0gdXBsb2FkIHNpemUgaXMgezB9Lic7XG4gICAgLyoqXG4gICAgICogU3VtbWFyeSBtZXNzYWdlIG9mIHRoZSBpbnZhbGlkIGZpbGUgdHlwZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeTogc3RyaW5nID0gJ3swfTogSW52YWxpZCBmaWxlIHR5cGUsICc7XG4gICAgLyoqXG4gICAgICogRGV0YWlsIG1lc3NhZ2Ugb2YgdGhlIGludmFsaWQgZmlsZSB0eXBlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGludmFsaWRGaWxlVHlwZU1lc3NhZ2VEZXRhaWw6IHN0cmluZyA9ICdhbGxvd2VkIGZpbGUgdHlwZXM6IHswfS4nO1xuICAgIC8qKlxuICAgICAqIERldGFpbCBtZXNzYWdlIG9mIHRoZSBpbnZhbGlkIGZpbGUgdHlwZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZURldGFpbDogc3RyaW5nID0gJ2xpbWl0IGlzIHswfSBhdCBtb3N0Lic7XG4gICAgLyoqXG4gICAgICogU3VtbWFyeSBtZXNzYWdlIG9mIHRoZSBpbnZhbGlkIGZpbGUgdHlwZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpbnZhbGlkRmlsZUxpbWl0TWVzc2FnZVN1bW1hcnk6IHN0cmluZyA9ICdNYXhpbXVtIG51bWJlciBvZiBmaWxlcyBleGNlZWRlZCwgJztcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ2xhc3Mgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdpZHRoIG9mIHRoZSBpbWFnZSB0aHVtYm5haWwgaW4gcGl4ZWxzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHByZXZpZXdXaWR0aDogbnVtYmVyID0gNTA7XG4gICAgLyoqXG4gICAgICogTGFiZWwgb2YgdGhlIGNob29zZSBidXR0b24uIERlZmF1bHRzIHRvIFByaW1lTkcgTG9jYWxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2hvb3NlTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBMYWJlbCBvZiB0aGUgdXBsb2FkIGJ1dHRvbi4gRGVmYXVsdHMgdG8gUHJpbWVORyBMb2NhbGUgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB1cGxvYWRMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIExhYmVsIG9mIHRoZSBjYW5jZWwgYnV0dG9uLiBEZWZhdWx0cyB0byBQcmltZU5HIExvY2FsZSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNhbmNlbExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgY2hvb3NlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjaG9vc2VJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgdXBsb2FkIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB1cGxvYWRJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiB0aGUgY2FuY2VsIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBjYW5jZWxJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IHRoZSB1cGxvYWQgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93VXBsb2FkQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHNob3cgdGhlIGNhbmNlbCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dDYW5jZWxCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGhlIFVJIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbW9kZTogJ2FkdmFuY2VkJyB8ICdiYXNpYycgfCB1bmRlZmluZWQgPSAnYWR2YW5jZWQnO1xuICAgIC8qKlxuICAgICAqIEh0dHBIZWFkZXJzIGNsYXNzIHJlcHJlc2VudHMgdGhlIGhlYWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFuIEhUVFAgcmVxdWVzdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWFkZXJzOiBIdHRwSGVhZGVycyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHVzZSB0aGUgZGVmYXVsdCB1cGxvYWQgb3IgYSBtYW51YWwgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBpbiB1cGxvYWRIYW5kbGVyIGNhbGxiYWNrLiBEZWZhdWx0cyB0byBQcmltZU5HIExvY2FsZSBjb25maWd1cmF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjdXN0b21VcGxvYWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogTWF4aW11bSBudW1iZXIgb2YgZmlsZXMgdGhhdCBjYW4gYmUgdXBsb2FkZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IG51bWJlckF0dHJpYnV0ZSh2YWx1ZSwgbnVsbCkgfSkgZmlsZUxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIHVwbG9hZCBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdXBsb2FkU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjYW5jZWwgYnV0dG9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNhbmNlbFN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgcmVtb3ZlIGJ1dHRvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSByZW1vdmVTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGNob29zZSBidXR0b24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2hvb3NlU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gcGFzcyBhbGwgcHJvcGVydGllcyBvZiB0aGUgQnV0dG9uUHJvcHMgdG8gdGhlIGNob29zZSBidXR0b24gaW5zaWRlIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2hvb3NlQnV0dG9uUHJvcHM6IEJ1dHRvblByb3BzO1xuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gcGFzcyBhbGwgcHJvcGVydGllcyBvZiB0aGUgQnV0dG9uUHJvcHMgdG8gdGhlIHVwbG9hZCBidXR0b24gaW5zaWRlIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdXBsb2FkQnV0dG9uUHJvcHM6IEJ1dHRvblByb3BzID0geyBzZXZlcml0eTogJ3NlY29uZGFyeScgfTtcbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIHBhc3MgYWxsIHByb3BlcnRpZXMgb2YgdGhlIEJ1dHRvblByb3BzIHRvIHRoZSBjYW5jZWwgYnV0dG9uIGluc2lkZSB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGNhbmNlbEJ1dHRvblByb3BzOiBCdXR0b25Qcm9wcyA9IHsgc2V2ZXJpdHk6ICdzZWNvbmRhcnknIH07XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIGJlZm9yZSBmaWxlIHVwbG9hZCBpcyBpbml0aWFsaXplZC5cbiAgICAgKiBAcGFyYW0ge0ZpbGVCZWZvcmVVcGxvYWRFdmVudH0gZXZlbnQgLSBDdXN0b20gdXBsb2FkIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkJlZm9yZVVwbG9hZDogRXZlbnRFbWl0dGVyPEZpbGVCZWZvcmVVcGxvYWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVCZWZvcmVVcGxvYWRFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBBbiBldmVudCBpbmRpY2F0aW5nIHRoYXQgdGhlIHJlcXVlc3Qgd2FzIHNlbnQgdG8gdGhlIHNlcnZlci4gVXNlZnVsIHdoZW4gYSByZXF1ZXN0IG1heSBiZSByZXRyaWVkIG11bHRpcGxlIHRpbWVzLCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHJldHJpZXMgb24gdGhlIGZpbmFsIGV2ZW50IHN0cmVhbS5cbiAgICAgKiBAcGFyYW0ge0ZpbGVTZW5kRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIHNlbmQgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uU2VuZDogRXZlbnRFbWl0dGVyPEZpbGVTZW5kRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlU2VuZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGZpbGUgdXBsb2FkIGlzIGNvbXBsZXRlLlxuICAgICAqIEBwYXJhbSB7RmlsZVVwbG9hZEV2ZW50fSBldmVudCAtIEN1c3RvbSB1cGxvYWQgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uVXBsb2FkOiBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBpZiBmaWxlIHVwbG9hZCBmYWlscy5cbiAgICAgKiBAcGFyYW0ge0ZpbGVVcGxvYWRFcnJvckV2ZW50fSBldmVudCAtIEN1c3RvbSBlcnJvciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25FcnJvcjogRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRFcnJvckV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVVwbG9hZEVycm9yRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gZmlsZXMgaW4gcXVldWUgYXJlIHJlbW92ZWQgd2l0aG91dCB1cGxvYWRpbmcgdXNpbmcgY2xlYXIgYWxsIGJ1dHRvbi5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgZmlsZSBpcyByZW1vdmVkIHdpdGhvdXQgdXBsb2FkaW5nIHVzaW5nIGNsZWFyIGJ1dHRvbiBvZiBhIGZpbGUuXG4gICAgICogQHBhcmFtIHtGaWxlUmVtb3ZlRXZlbnR9IGV2ZW50IC0gUmVtb3ZlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlbW92ZTogRXZlbnRFbWl0dGVyPEZpbGVSZW1vdmVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVSZW1vdmVFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBmaWxlcyBhcmUgc2VsZWN0ZWQuXG4gICAgICogQHBhcmFtIHtGaWxlU2VsZWN0RXZlbnR9IGV2ZW50IC0gU2VsZWN0IGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPEZpbGVTZWxlY3RFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVTZWxlY3RFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugd2hlbiBmaWxlcyBhcmUgYmVpbmcgdXBsb2FkZWQuXG4gICAgICogQHBhcmFtIHtGaWxlUHJvZ3Jlc3NFdmVudH0gZXZlbnQgLSBQcm9ncmVzcyBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25Qcm9ncmVzczogRXZlbnRFbWl0dGVyPEZpbGVQcm9ncmVzc0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVByb2dyZXNzRXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIGluIGN1c3RvbSB1cGxvYWQgbW9kZSB0byB1cGxvYWQgdGhlIGZpbGVzIG1hbnVhbGx5LlxuICAgICAqIEBwYXJhbSB7RmlsZVVwbG9hZEhhbmRsZXJFdmVudH0gZXZlbnQgLSBVcGxvYWQgaGFuZGxlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdXBsb2FkSGFuZGxlcjogRXZlbnRFbWl0dGVyPEZpbGVVcGxvYWRIYW5kbGVyRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlVXBsb2FkSGFuZGxlckV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBsb2FkaW5nIGFuIGltYWdlIGZpbGUuXG4gICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBCcm93c2VyIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkltYWdlRXJyb3I6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGlmIGFuIGVycm9yIG9jY3VycyB3aGlsZSBsb2FkaW5nIGFuIGltYWdlIGZpbGUuXG4gICAgICogQHBhcmFtIHtSZW1vdmVVcGxvYWRlZEZpbGVFdmVudH0gZXZlbnQgLSBSZW1vdmUgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uUmVtb3ZlVXBsb2FkZWRGaWxlOiBFdmVudEVtaXR0ZXI8UmVtb3ZlVXBsb2FkZWRGaWxlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZW1vdmVVcGxvYWRlZEZpbGVFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBmaWxlLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdmaWxlJykgcHVibGljIGZpbGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBoZWFkZXIuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBjb250ZW50LlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjb250ZW50JykgcHVibGljIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0b29sYmFyLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0b29sYmFyJykgcHVibGljIHRvb2xiYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBjaG9vc2UgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnY2hvb3NlaWNvbicpIGNob29zZWljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBmaWxlIGxhYmVsLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdmaWxlbGFiZWwnKSBmaWxlbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB1cGxvYWQgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndXBsb2FkaWNvbicpIHVwbG9hZGljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBjYW5jZWwgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnY2FuY2VsaWNvbicpIGNhbmNlbGljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciBlbXB0eSBzdGF0ZS5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZW1wdHknKSBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnYWR2YW5jZWRmaWxlaW5wdXQnKSBhZHZhbmNlZEZpbGVJbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB8IGFueTtcblxuICAgIEBWaWV3Q2hpbGQoJ2Jhc2ljZmlsZWlucHV0JykgYmFzaWNGaWxlSW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50JykgY29udGVudDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHNldCBmaWxlcyhmaWxlcykge1xuICAgICAgICB0aGlzLl9maWxlcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBmaWxlID0gZmlsZXNbaV07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRlKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJbWFnZShmaWxlKSkge1xuICAgICAgICAgICAgICAgICAgICAoPGFueT5maWxlKS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGVzW2ldKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsZXMucHVzaChmaWxlc1tpXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZmlsZXMoKTogRmlsZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYmFzaWNCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5hdXRvIHx8ICF0aGlzLmhhc0ZpbGVzKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNob29zZUxhYmVsIGFzIHN0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnVwbG9hZExhYmVsID8/IHRoaXMuZmlsZXNbMF0ubmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX2ZpbGVzOiBGaWxlW10gPSBbXTtcblxuICAgIHB1YmxpYyBwcm9ncmVzczogbnVtYmVyID0gMDtcblxuICAgIHB1YmxpYyBkcmFnSGlnaGxpZ2h0OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgcHVibGljIG1zZ3M6IGFueVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgcHVibGljIHVwbG9hZGVkRmlsZUNvdW50OiBudW1iZXIgPSAwO1xuXG4gICAgZm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICB1cGxvYWRpbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBkdXBsaWNhdGVJRUV2ZW50OiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyBmbGFnIHRvIHJlY29nbml6ZSBkdXBsaWNhdGUgb25jaGFuZ2UgZXZlbnQgZm9yIGZpbGUgaW5wdXRcblxuICAgIHRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgICBkcmFnT3Zlckxpc3RlbmVyOiBWb2lkTGlzdGVuZXI7XG5cbiAgICBwdWJsaWMgdXBsb2FkZWRGaWxlcyA9IFtdO1xuXG4gICAgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICAgIHpvbmU6IE5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgaHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChGaWxlVXBsb2FkU3R5bGUpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRpb25TdWJzY3JpcHRpb24gPSB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbk9ic2VydmVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FkdmFuY2VkJykge1xuICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ092ZXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50LCAnZHJhZ292ZXInLCB0aGlzLm9uRHJhZ092ZXIuYmluZCh0aGlzKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJhc2ljRmlsZUNob3NlbkxhYmVsKCkge1xuICAgICAgICBpZiAodGhpcy5hdXRvKSByZXR1cm4gdGhpcy5jaG9vc2VCdXR0b25MYWJlbDtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5oYXNGaWxlcygpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWxlcyAmJiB0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIHRoaXMuZmlsZXNbMF0ubmFtZTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKCdmaWxlQ2hvc2VuTWVzc2FnZScpPy5yZXBsYWNlKCd7MH0nLCB0aGlzLmZpbGVzLmxlbmd0aCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oJ25vRmlsZUNob3Nlbk1lc3NhZ2UnKSB8fCAnJztcbiAgICB9XG5cbiAgICBnZXRUcmFuc2xhdGlvbihvcHRpb246IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24ob3B0aW9uKTtcbiAgICB9XG5cbiAgICBjaG9vc2UoKSB7XG4gICAgICAgIHRoaXMuYWR2YW5jZWRGaWxlSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkZpbGVTZWxlY3QoZXZlbnQ6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ2Ryb3AnICYmIHRoaXMuaXNJRTExKCkgJiYgdGhpcy5kdXBsaWNhdGVJRUV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmR1cGxpY2F0ZUlFRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubXNncyA9IFtdO1xuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyA6IGV2ZW50LnRhcmdldC5maWxlcztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGZpbGUgPSBmaWxlc1tpXTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzRmlsZVNlbGVjdGVkKGZpbGUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGUoZmlsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJbWFnZShmaWxlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5vYmplY3RVUkwgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGVzW2ldKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzLnB1c2goZmlsZXNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25TZWxlY3QuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBmaWxlczogZmlsZXMsIGN1cnJlbnRGaWxlczogdGhpcy5maWxlcyB9KTtcblxuICAgICAgICAvLyB0aGlzIHdpbGwgY2hlY2sgdGhlIGZpbGVMaW1pdCB3aXRoIHRoZSB1cGxvYWRlZCBmaWxlc1xuICAgICAgICB0aGlzLmNoZWNrRmlsZUxpbWl0KGZpbGVzKTtcblxuICAgICAgICBpZiAodGhpcy5oYXNGaWxlcygpICYmIHRoaXMuYXV0byAmJiAodGhpcy5tb2RlICE9PSAnYWR2YW5jZWQnIHx8ICF0aGlzLmlzRmlsZUxpbWl0RXhjZWVkZWQoKSkpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQudHlwZSAhPT0gJ2Ryb3AnICYmIHRoaXMuaXNJRTExKCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJJRUlucHV0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFySW5wdXRFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0ZpbGVTZWxlY3RlZChmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAobGV0IHNGaWxlIG9mIHRoaXMuZmlsZXMpIHtcbiAgICAgICAgICAgIGlmIChzRmlsZS5uYW1lICsgc0ZpbGUudHlwZSArIHNGaWxlLnNpemUgPT09IGZpbGUubmFtZSArIGZpbGUudHlwZSArIGZpbGUuc2l6ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlzSUUxMSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHJldHVybiAhISh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3IGFzIGFueSlbJ01TSW5wdXRNZXRob2RDb250ZXh0J10gJiYgISEodGhpcy5kb2N1bWVudCBhcyBhbnkpWydkb2N1bWVudE1vZGUnXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgdGhpcy5tc2dzID0gdGhpcy5tc2dzIHx8IFtdO1xuICAgICAgICBpZiAodGhpcy5hY2NlcHQgJiYgIXRoaXMuaXNGaWxlVHlwZVZhbGlkKGZpbGUpKSB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYCR7dGhpcy5pbnZhbGlkRmlsZVR5cGVNZXNzYWdlU3VtbWFyeS5yZXBsYWNlKCd7MH0nLCBmaWxlLm5hbWUpfSAke3RoaXMuaW52YWxpZEZpbGVUeXBlTWVzc2FnZURldGFpbC5yZXBsYWNlKCd7MH0nLCB0aGlzLmFjY2VwdCl9YDtcbiAgICAgICAgICAgIHRoaXMubXNncy5wdXNoKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1heEZpbGVTaXplICYmIGZpbGUuc2l6ZSA+IHRoaXMubWF4RmlsZVNpemUpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBgJHt0aGlzLmludmFsaWRGaWxlU2l6ZU1lc3NhZ2VTdW1tYXJ5LnJlcGxhY2UoJ3swfScsIGZpbGUubmFtZSl9ICR7dGhpcy5pbnZhbGlkRmlsZVNpemVNZXNzYWdlRGV0YWlsLnJlcGxhY2UoJ3swfScsIHRoaXMuZm9ybWF0U2l6ZSh0aGlzLm1heEZpbGVTaXplKSl9YDtcbiAgICAgICAgICAgIHRoaXMubXNncy5wdXNoKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaWxlVHlwZVZhbGlkKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGFjY2VwdGFibGVUeXBlcyA9IHRoaXMuYWNjZXB0Py5zcGxpdCgnLCcpLm1hcCgodHlwZSkgPT4gdHlwZS50cmltKCkpO1xuICAgICAgICBmb3IgKGxldCB0eXBlIG9mIGFjY2VwdGFibGVUeXBlcyEpIHtcbiAgICAgICAgICAgIGxldCBhY2NlcHRhYmxlID0gdGhpcy5pc1dpbGRjYXJkKHR5cGUpID8gdGhpcy5nZXRUeXBlQ2xhc3MoZmlsZS50eXBlKSA9PT0gdGhpcy5nZXRUeXBlQ2xhc3ModHlwZSkgOiBmaWxlLnR5cGUgPT0gdHlwZSB8fCB0aGlzLmdldEZpbGVFeHRlbnNpb24oZmlsZSkudG9Mb3dlckNhc2UoKSA9PT0gdHlwZS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgICBpZiAoYWNjZXB0YWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGdldFR5cGVDbGFzcyhmaWxlVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZpbGVUeXBlLnN1YnN0cmluZygwLCBmaWxlVHlwZS5pbmRleE9mKCcvJykpO1xuICAgIH1cblxuICAgIGlzV2lsZGNhcmQoZmlsZVR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmlsZVR5cGUuaW5kZXhPZignKicpICE9PSAtMTtcbiAgICB9XG5cbiAgICBnZXRGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJy4nICsgZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCk7XG4gICAgfVxuXG4gICAgaXNJbWFnZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAvXmltYWdlXFwvLy50ZXN0KGZpbGUudHlwZSk7XG4gICAgfVxuXG4gICAgb25JbWFnZUxvYWQoaW1nOiBhbnkpIHtcbiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaW1nLnNyYyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwbG9hZHMgdGhlIHNlbGVjdGVkIGZpbGVzLlxuICAgICAqIEBncm91cCBNZXRob2RcbiAgICAgKi9cbiAgICB1cGxvYWRlcigpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tVXBsb2FkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWxlTGltaXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZUNvdW50ICs9IHRoaXMuZmlsZXMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnVwbG9hZEhhbmRsZXIuZW1pdCh7XG4gICAgICAgICAgICAgICAgZmlsZXM6IHRoaXMuZmlsZXNcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5tc2dzID0gW107XG4gICAgICAgICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgICAgICAgICAgdGhpcy5vbkJlZm9yZVVwbG9hZC5lbWl0KHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGFcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQodGhpcy5uYW1lISwgdGhpcy5maWxlc1tpXSwgdGhpcy5maWxlc1tpXS5uYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLnJlcXVlc3QoPHN0cmluZz50aGlzLm1ldGhvZCwgdGhpcy51cmwgYXMgc3RyaW5nLCB7XG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcbiAgICAgICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLndpdGhDcmVkZW50aWFsc1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlNlbnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25TZW5kLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50WydzdGF0dXMnXSA+PSAyMDAgJiYgZXZlbnRbJ3N0YXR1cyddIDwgMzAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlTGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZUNvdW50ICs9IHRoaXMuZmlsZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVXBsb2FkLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgZmlsZXM6IHRoaXMuZmlsZXMgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdCh7IGZpbGVzOiB0aGlzLmZpbGVzIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKC4uLnRoaXMuZmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnRbJ2xvYWRlZCddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gTWF0aC5yb3VuZCgoZXZlbnRbJ2xvYWRlZCddICogMTAwKSAvIGV2ZW50Wyd0b3RhbCddISk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUHJvZ3Jlc3MuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9ncmVzczogdGhpcy5wcm9ncmVzcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAoZXJyb3I6IEVycm9yRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdCh7IGZpbGVzOiB0aGlzLmZpbGVzLCBlcnJvcjogZXJyb3IgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZmlsZXMgbGlzdC5cbiAgICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAgICovXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVDb3VudCA9IDA7XG4gICAgICAgIHRoaXMub25DbGVhci5lbWl0KCk7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhIHNpbmdsZSBmaWxlLlxuICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gQnJvd3NlciBldmVudC5cbiAgICAgKiBAcGFyYW0ge051bWJlcn0gaW5kZXggLSBJbmRleCBvZiB0aGUgZmlsZS5cbiAgICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAgICovXG4gICAgcmVtb3ZlKGV2ZW50OiBFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLmNsZWFySW5wdXRFbGVtZW50KCk7XG4gICAgICAgIHRoaXMub25SZW1vdmUuZW1pdCh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBmaWxlOiB0aGlzLmZpbGVzW2luZGV4XSB9KTtcbiAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB0aGlzLmNoZWNrRmlsZUxpbWl0KHRoaXMuZmlsZXMpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHVwbG9hZGVkIGZpbGUuXG4gICAgICogQHBhcmFtIHtOdW1iZXJ9IGluZGV4IC0gSW5kZXggb2YgdGhlIGZpbGUgdG8gYmUgcmVtb3ZlZC5cbiAgICAgKiBAZ3JvdXAgTWV0aG9kXG4gICAgICovXG4gICAgcmVtb3ZlVXBsb2FkZWRGaWxlKGluZGV4KSB7XG4gICAgICAgIGxldCByZW1vdmVkRmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpWzBdO1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzXTtcbiAgICAgICAgdGhpcy5vblJlbW92ZVVwbG9hZGVkRmlsZS5lbWl0KHsgZmlsZTogcmVtb3ZlZEZpbGUsIGZpbGVzOiB0aGlzLnVwbG9hZGVkRmlsZXMgfSk7XG4gICAgfVxuXG4gICAgaXNGaWxlTGltaXRFeGNlZWRlZCgpIHtcbiAgICAgICAgY29uc3QgaXNBdXRvTW9kZSA9IHRoaXMuYXV0bztcbiAgICAgICAgY29uc3QgdG90YWxGaWxlQ291bnQgPSBpc0F1dG9Nb2RlID8gdGhpcy5maWxlcy5sZW5ndGggOiB0aGlzLmZpbGVzLmxlbmd0aCArIHRoaXMudXBsb2FkZWRGaWxlQ291bnQ7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZUxpbWl0ICYmIHRoaXMuZmlsZUxpbWl0IDw9IHRvdGFsRmlsZUNvdW50ICYmIHRoaXMuZm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXMgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVMaW1pdCAmJiB0aGlzLmZpbGVMaW1pdCA8IHRvdGFsRmlsZUNvdW50O1xuICAgIH1cblxuICAgIGlzQ2hvb3NlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmF1dG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbGVMaW1pdCAmJiB0aGlzLmZpbGVMaW1pdCA8PSB0aGlzLmZpbGVzLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbGVMaW1pdCAmJiB0aGlzLmZpbGVMaW1pdCA8PSB0aGlzLmZpbGVzLmxlbmd0aCArIHRoaXMudXBsb2FkZWRGaWxlQ291bnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja0ZpbGVMaW1pdChmaWxlczogRmlsZVtdKSB7XG4gICAgICAgIHRoaXMubXNncyA/Pz0gW107XG4gICAgICAgIGNvbnN0IGhhc0V4aXN0aW5nVmFsaWRhdGlvbk1lc3NhZ2VzID0gdGhpcy5tc2dzLmxlbmd0aCA+IDAgJiYgdGhpcy5maWxlTGltaXQgPCBmaWxlcy5sZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmlzRmlsZUxpbWl0RXhjZWVkZWQoKSB8fCBoYXNFeGlzdGluZ1ZhbGlkYXRpb25NZXNzYWdlcykge1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGAke3RoaXMuaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VTdW1tYXJ5LnJlcGxhY2UoJ3swfScsICh0aGlzLmZpbGVMaW1pdCBhcyBudW1iZXIpLnRvU3RyaW5nKCkpfSAke3RoaXMuaW52YWxpZEZpbGVMaW1pdE1lc3NhZ2VEZXRhaWwucmVwbGFjZSgnezB9JywgKHRoaXMuZmlsZUxpbWl0IGFzIG51bWJlcikudG9TdHJpbmcoKSl9YDtcbiAgICAgICAgICAgIHRoaXMubXNncy5wdXNoKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFySW5wdXRFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5hZHZhbmNlZEZpbGVJbnB1dCAmJiB0aGlzLmFkdmFuY2VkRmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRGaWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYmFzaWNGaWxlSW5wdXQgJiYgdGhpcy5iYXNpY0ZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmJhc2ljRmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFySUVJbnB1dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuYWR2YW5jZWRGaWxlSW5wdXQgJiYgdGhpcy5hZHZhbmNlZEZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmR1cGxpY2F0ZUlFRXZlbnQgPSB0cnVlOyAvL0lFMTEgZml4IHRvIHByZXZlbnQgb25GaWxlQ2hhbmdlIHRyaWdnZXIgYWdhaW5cbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRGaWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzRmlsZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVzICYmIHRoaXMuZmlsZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBoYXNVcGxvYWRlZEZpbGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzICYmIHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIG9uRHJhZ0VudGVyKGU6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRyYWdPdmVyKGU6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuY29udGVudD8ubmF0aXZlRWxlbWVudCwgJ3AtZmlsZXVwbG9hZC1oaWdobGlnaHQnKTtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0hpZ2hsaWdodCA9IHRydWU7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuY29udGVudD8ubmF0aXZlRWxlbWVudCwgJ3AtZmlsZXVwbG9hZC1oaWdobGlnaHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJvcChldmVudDogYW55KSB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5jb250ZW50Py5uYXRpdmVFbGVtZW50LCAncC1maWxldXBsb2FkLWhpZ2hsaWdodCcpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIgPyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMgOiBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgICAgICBsZXQgYWxsb3dEcm9wID0gdGhpcy5tdWx0aXBsZSB8fCAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID09PSAxKTtcblxuICAgICAgICAgICAgaWYgKGFsbG93RHJvcCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25GaWxlU2VsZWN0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMuZm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5mb2N1cyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGZvcm1hdFNpemUoYnl0ZXM6IG51bWJlcikge1xuICAgICAgICBjb25zdCBrID0gMTAyNDtcbiAgICAgICAgY29uc3QgZG0gPSAzO1xuICAgICAgICBjb25zdCBzaXplcyA9IHRoaXMuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkZJTEVfU0laRV9UWVBFUyk7XG5cbiAgICAgICAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gYDAgJHtzaXplc1swXX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaSA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRTaXplID0gKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pO1xuXG4gICAgICAgIHJldHVybiBgJHtmb3JtYXR0ZWRTaXplfSAke3NpemVzW2ldfWA7XG4gICAgfVxuXG4gICAgdXBsb2FkKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNGaWxlcygpKSB0aGlzLnVwbG9hZGVyKCk7XG4gICAgfVxuXG4gICAgb25CYXNpY1VwbG9hZGVyQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuYmFzaWNGaWxlSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICBvbkJhc2ljS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQmFzaWNVcGxvYWRlckNsaWNrKCk7XG5cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW1hZ2VFcnJvcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbkltYWdlRXJyb3IuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgZ2V0QmxvY2thYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG4gICAgfVxuXG4gICAgZ2V0IGNob29zZUJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNob29zZUxhYmVsIHx8IHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5DSE9PU0UpO1xuICAgIH1cblxuICAgIGdldCB1cGxvYWRCdXR0b25MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRMYWJlbCB8fCB0aGlzLmNvbmZpZy5nZXRUcmFuc2xhdGlvbihUcmFuc2xhdGlvbktleXMuVVBMT0FEKTtcbiAgICB9XG5cbiAgICBnZXQgY2FuY2VsQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FuY2VsTGFiZWwgfHwgdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkNBTkNFTCk7XG4gICAgfVxuXG4gICAgZ2V0IGJyb3dzZUZpbGVzTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLmdldFRyYW5zbGF0aW9uKFRyYW5zbGF0aW9uS2V5cy5BUklBKVtUcmFuc2xhdGlvbktleXMuQlJPV1NFX0ZJTEVTXTtcbiAgICB9XG5cbiAgICBnZXQgcGVuZGluZ0xhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLlBFTkRJTkcpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50ICYmIHRoaXMuY29udGVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcmFnT3Zlckxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnT3Zlckxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRmlsZVVwbG9hZCwgU2hhcmVkTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbRmlsZVVwbG9hZCwgU2hhcmVkTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkTW9kdWxlIHt9XG4iXX0=
|