primeng 18.0.1 → 19.0.0
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/base/style/basestyle.d.ts +11 -11
- package/config/themeprovider.d.ts +6 -0
- package/confirmdialog/confirmdialog.d.ts +1 -0
- package/dynamicdialog/dynamicdialog.d.ts +2 -2
- package/fesm2022/primeng-accordion.mjs +10 -10
- 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 +2 -2
- 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 +4 -4
- 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 +4 -4
- 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 +2 -2
- 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 +2 -2
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +14 -12
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +11 -8
- 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 +5 -5
- 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 +2 -2
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +7 -7
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +2 -2
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +2 -2
- 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 +1 -1
- 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 +4 -4
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +5 -5
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +4 -4
- 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 +4 -4
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +7 -7
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +4 -4
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +2 -2
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +2 -2
- 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 +2 -2
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +1 -1
- 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 +4 -4
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +2 -2
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +2 -2
- 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 +4 -4
- 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 +64 -38
- 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 +4 -4
- 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 +1 -1
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +4 -4
- 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 +4 -4
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +3 -3
- 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 +1 -1
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +4 -4
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +2 -2
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +24 -24
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/package.json +163 -511
- package/speeddial/speeddial.d.ts +2 -2
- package/esm2022/accordion/accordion.mjs +0 -1281
- 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 -2284
- package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/public_api.mjs +0 -4
- package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -409
- 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 -339
- 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 -160
- 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 -230
- 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 -601
- 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 -923
- 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 -4567
- 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 -293
- 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 -1213
- 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 -1878
- 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 -468
- 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 -358
- 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 -185
- package/esm2022/config/provideprimeng.mjs +0 -19
- package/esm2022/config/public_api.mjs +0 -4
- package/esm2022/config/themeprovider.mjs +0 -68
- package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
- package/esm2022/confirmdialog/confirmdialog.mjs +0 -854
- 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 -647
- 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 -1467
- 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 -4580
- 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 -1430
- 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 -117
- 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 -465
- 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 -705
- 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 -2506
- 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 -879
- 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 -443
- 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 -455
- 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 -1647
- 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 -1867
- 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 -794
- 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 -178
- 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 -369
- 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 -927
- 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 -1753
- 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 -425
- 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 -104
- 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 -2103
- 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 -1653
- 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 -1519
- 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 -445
- 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 -538
- 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 -455
- 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 -3015
- package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
- package/esm2022/multiselect/public_api.mjs +0 -4
- package/esm2022/multiselect/style/multiselectstyle.mjs +0 -373
- package/esm2022/orderlist/orderlist.interface.mjs +0 -2
- package/esm2022/orderlist/orderlist.mjs +0 -1176
- 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 -607
- 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 -688
- 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 -552
- 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 -925
- 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 -645
- 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 -1651
- 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 -1240
- 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 -2426
- 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 -535
- 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 -215
- 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 -449
- 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 -134
- 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 -1300
- 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 -525
- 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 -343
- 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 -2697
- package/esm2022/select/style/selectstyle.mjs +0 -365
- 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 -388
- 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 -600
- 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 -891
- 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 -602
- 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 -626
- package/esm2022/splitter/style/splitterstyle.mjs +0 -127
- package/esm2022/stepper/primeng-stepper.mjs +0 -5
- package/esm2022/stepper/public_api.mjs +0 -3
- package/esm2022/stepper/stepper.mjs +0 -535
- 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 -7840
- 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 -757
- 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 -305
- 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 -1141
- 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 -192
- 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 -1467
- 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 -247
- 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 -760
- 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 -368
- 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 -297
- 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 -198
- 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 -680
- package/esm2022/tree/primeng-tree.mjs +0 -5
- package/esm2022/tree/public_api.mjs +0 -4
- package/esm2022/tree/style/treestyle.mjs +0 -333
- package/esm2022/tree/tree.interface.mjs +0 -2
- package/esm2022/tree/tree.mjs +0 -2304
- package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
- package/esm2022/treeselect/public_api.mjs +0 -4
- package/esm2022/treeselect/style/treeselectstyle.mjs +0 -271
- package/esm2022/treeselect/treeselect.interface.mjs +0 -2
- package/esm2022/treeselect/treeselect.mjs +0 -1439
- 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 -4661
- 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,1651 +0,0 @@
|
|
1
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
2
|
-
import { CommonModule } from '@angular/common';
|
3
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ContentChild, ContentChildren, EventEmitter, forwardRef, inject, Input, NgModule, numberAttribute, Output, signal, ViewChild, ViewEncapsulation } from '@angular/core';
|
4
|
-
import { RouterModule } from '@angular/router';
|
5
|
-
import { equals, findLast, findSingle, focus, getAttribute, isEmpty, isNotEmpty, isPrintableCharacter, resolve, uuid } from '@primeuix/utils';
|
6
|
-
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
7
|
-
import { BaseComponent } from 'primeng/basecomponent';
|
8
|
-
import { AngleDownIcon, AngleRightIcon, ChevronDownIcon, ChevronRightIcon } from 'primeng/icons';
|
9
|
-
import { TooltipModule } from 'primeng/tooltip';
|
10
|
-
import { PanelMenuStyle } from './style/panelmenustyle';
|
11
|
-
import * as i0 from "@angular/core";
|
12
|
-
import * as i1 from "@angular/common";
|
13
|
-
import * as i2 from "@angular/router";
|
14
|
-
import * as i3 from "primeng/tooltip";
|
15
|
-
const _c0 = ["list"];
|
16
|
-
const _c1 = () => ({ "p-panelmenu-submenu": true });
|
17
|
-
const _c2 = a0 => ({ "p-disabled": a0 });
|
18
|
-
const _c3 = () => ({ exact: false });
|
19
|
-
const _c4 = a0 => ({ $implicit: a0 });
|
20
|
-
function PanelMenuSub_ng_template_2_li_0_Template(rf, ctx) { if (rf & 1) {
|
21
|
-
i0.ɵɵelement(0, "li", 7);
|
22
|
-
} }
|
23
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {
|
24
|
-
i0.ɵɵelement(0, "AngleDownIcon", 21);
|
25
|
-
} if (rf & 2) {
|
26
|
-
const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
|
27
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
28
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
|
29
|
-
} }
|
30
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleRightIcon_2_Template(rf, ctx) { if (rf & 1) {
|
31
|
-
i0.ɵɵelement(0, "AngleRightIcon", 21);
|
32
|
-
} if (rf & 2) {
|
33
|
-
const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
|
34
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
35
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
|
36
|
-
} }
|
37
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
38
|
-
i0.ɵɵelementContainerStart(0);
|
39
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleDownIcon_1_Template, 1, 2, "AngleDownIcon", 20)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_AngleRightIcon_2_Template, 1, 2, "AngleRightIcon", 20);
|
40
|
-
i0.ɵɵelementContainerEnd();
|
41
|
-
} if (rf & 2) {
|
42
|
-
const processedItem_r3 = i0.ɵɵnextContext(5).$implicit;
|
43
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
44
|
-
i0.ɵɵadvance();
|
45
|
-
i0.ɵɵproperty("ngIf", ctx_r3.isItemActive(processedItem_r3));
|
46
|
-
i0.ɵɵadvance();
|
47
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.isItemActive(processedItem_r3));
|
48
|
-
} }
|
49
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
|
50
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
|
51
|
-
i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
52
|
-
} }
|
53
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
54
|
-
i0.ɵɵelementContainerStart(0);
|
55
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_2_Template, 1, 0, null, 19);
|
56
|
-
i0.ɵɵelementContainerEnd();
|
57
|
-
} if (rf & 2) {
|
58
|
-
const ctx_r3 = i0.ɵɵnextContext(5);
|
59
|
-
i0.ɵɵadvance();
|
60
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.panelMenu.submenuIconTemplate && !ctx_r3.panelMenu._submenuIconTemplate);
|
61
|
-
i0.ɵɵadvance();
|
62
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.panelMenu.submenuIconTemplate || ctx_r3.panelMenu._submenuIconTemplate);
|
63
|
-
} }
|
64
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_2_Template(rf, ctx) { if (rf & 1) {
|
65
|
-
i0.ɵɵelement(0, "span", 22);
|
66
|
-
} if (rf & 2) {
|
67
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
68
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
69
|
-
i0.ɵɵproperty("ngClass", processedItem_r3.icon)("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
|
70
|
-
} }
|
71
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_3_Template(rf, ctx) { if (rf & 1) {
|
72
|
-
i0.ɵɵelementStart(0, "span", 23);
|
73
|
-
i0.ɵɵtext(1);
|
74
|
-
i0.ɵɵelementEnd();
|
75
|
-
} if (rf & 2) {
|
76
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
77
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
78
|
-
i0.ɵɵadvance();
|
79
|
-
i0.ɵɵtextInterpolate(ctx_r3.getItemProp(processedItem_r3, "label"));
|
80
|
-
} }
|
81
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
82
|
-
i0.ɵɵelement(0, "span", 24);
|
83
|
-
} if (rf & 2) {
|
84
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
85
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
86
|
-
i0.ɵɵproperty("innerHTML", ctx_r3.getItemProp(processedItem_r3, "label"), i0.ɵɵsanitizeHtml);
|
87
|
-
} }
|
88
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_6_Template(rf, ctx) { if (rf & 1) {
|
89
|
-
i0.ɵɵelementStart(0, "span", 25);
|
90
|
-
i0.ɵɵtext(1);
|
91
|
-
i0.ɵɵelementEnd();
|
92
|
-
} if (rf & 2) {
|
93
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
94
|
-
i0.ɵɵproperty("ngClass", processedItem_r3.badgeStyleClass);
|
95
|
-
i0.ɵɵadvance();
|
96
|
-
i0.ɵɵtextInterpolate(processedItem_r3.badge);
|
97
|
-
} }
|
98
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_Template(rf, ctx) { if (rf & 1) {
|
99
|
-
i0.ɵɵelementStart(0, "a", 15);
|
100
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_2_Template, 1, 2, "span", 16)(3, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_3_Template, 2, 1, "span", 17)(4, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_span_6_Template, 2, 2, "span", 18);
|
101
|
-
i0.ɵɵelementEnd();
|
102
|
-
} if (rf & 2) {
|
103
|
-
const htmlLabel_r5 = i0.ɵɵreference(5);
|
104
|
-
const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
|
105
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
106
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(10, _c2, ctx_r3.getItemProp(processedItem_r3, "disabled")))("target", ctx_r3.getItemProp(processedItem_r3, "target"));
|
107
|
-
i0.ɵɵattribute("href", ctx_r3.getItemProp(processedItem_r3, "url"), i0.ɵɵsanitizeUrl)("data-pc-section", "action")("tabindex", !!ctx_r3.parentExpanded ? "0" : "-1");
|
108
|
-
i0.ɵɵadvance();
|
109
|
-
i0.ɵɵproperty("ngIf", ctx_r3.isItemGroup(processedItem_r3));
|
110
|
-
i0.ɵɵadvance();
|
111
|
-
i0.ɵɵproperty("ngIf", processedItem_r3.icon);
|
112
|
-
i0.ɵɵadvance();
|
113
|
-
i0.ɵɵproperty("ngIf", (processedItem_r3.item == null ? null : processedItem_r3.item.escape) !== false)("ngIfElse", htmlLabel_r5);
|
114
|
-
i0.ɵɵadvance(3);
|
115
|
-
i0.ɵɵproperty("ngIf", processedItem_r3.badge);
|
116
|
-
} }
|
117
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {
|
118
|
-
i0.ɵɵelement(0, "AngleDownIcon", 21);
|
119
|
-
} if (rf & 2) {
|
120
|
-
const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
|
121
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
122
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
|
123
|
-
} }
|
124
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleRightIcon_2_Template(rf, ctx) { if (rf & 1) {
|
125
|
-
i0.ɵɵelement(0, "AngleRightIcon", 21);
|
126
|
-
} if (rf & 2) {
|
127
|
-
const processedItem_r3 = i0.ɵɵnextContext(6).$implicit;
|
128
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
129
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon")("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
|
130
|
-
} }
|
131
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
132
|
-
i0.ɵɵelementContainerStart(0);
|
133
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleDownIcon_1_Template, 1, 2, "AngleDownIcon", 20)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_AngleRightIcon_2_Template, 1, 2, "AngleRightIcon", 20);
|
134
|
-
i0.ɵɵelementContainerEnd();
|
135
|
-
} if (rf & 2) {
|
136
|
-
const processedItem_r3 = i0.ɵɵnextContext(5).$implicit;
|
137
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
138
|
-
i0.ɵɵadvance();
|
139
|
-
i0.ɵɵproperty("ngIf", ctx_r3.isItemActive(processedItem_r3));
|
140
|
-
i0.ɵɵadvance();
|
141
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.isItemActive(processedItem_r3));
|
142
|
-
} }
|
143
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
|
144
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
|
145
|
-
i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
146
|
-
} }
|
147
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
148
|
-
i0.ɵɵelementContainerStart(0);
|
149
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_2_Template, 1, 0, null, 19);
|
150
|
-
i0.ɵɵelementContainerEnd();
|
151
|
-
} if (rf & 2) {
|
152
|
-
const ctx_r3 = i0.ɵɵnextContext(5);
|
153
|
-
i0.ɵɵadvance();
|
154
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.panelMenu.submenuIconTemplate && !ctx_r3.panelMenu._submenuIconTemplate);
|
155
|
-
i0.ɵɵadvance();
|
156
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.panelMenu.submenuIconTemplate && ctx_r3.panelMenu._submenuIconTemplate);
|
157
|
-
} }
|
158
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_2_Template(rf, ctx) { if (rf & 1) {
|
159
|
-
i0.ɵɵelement(0, "span", 22);
|
160
|
-
} if (rf & 2) {
|
161
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
162
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
163
|
-
i0.ɵɵproperty("ngClass", processedItem_r3.icon)("ngStyle", ctx_r3.getItemProp(processedItem_r3, "iconStyle"));
|
164
|
-
} }
|
165
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_3_Template(rf, ctx) { if (rf & 1) {
|
166
|
-
i0.ɵɵelementStart(0, "span", 23);
|
167
|
-
i0.ɵɵtext(1);
|
168
|
-
i0.ɵɵelementEnd();
|
169
|
-
} if (rf & 2) {
|
170
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
171
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
172
|
-
i0.ɵɵadvance();
|
173
|
-
i0.ɵɵtextInterpolate(ctx_r3.getItemProp(processedItem_r3, "label"));
|
174
|
-
} }
|
175
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
176
|
-
i0.ɵɵelement(0, "span", 24);
|
177
|
-
} if (rf & 2) {
|
178
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
179
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
180
|
-
i0.ɵɵproperty("innerHTML", ctx_r3.getItemProp(processedItem_r3, "label"), i0.ɵɵsanitizeHtml);
|
181
|
-
} }
|
182
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_6_Template(rf, ctx) { if (rf & 1) {
|
183
|
-
i0.ɵɵelementStart(0, "span", 25);
|
184
|
-
i0.ɵɵtext(1);
|
185
|
-
i0.ɵɵelementEnd();
|
186
|
-
} if (rf & 2) {
|
187
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
188
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
189
|
-
i0.ɵɵproperty("ngClass", ctx_r3.getItemProp(processedItem_r3, "badgeStyleClass"));
|
190
|
-
i0.ɵɵadvance();
|
191
|
-
i0.ɵɵtextInterpolate(ctx_r3.getItemProp(processedItem_r3, "badge"));
|
192
|
-
} }
|
193
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_Template(rf, ctx) { if (rf & 1) {
|
194
|
-
i0.ɵɵelementStart(0, "a", 26);
|
195
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_container_1_Template, 3, 2, "ng-container", 10)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_2_Template, 1, 2, "span", 16)(3, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_3_Template, 2, 1, "span", 17)(4, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_ng_template_4_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(6, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_span_6_Template, 2, 2, "span", 18);
|
196
|
-
i0.ɵɵelementEnd();
|
197
|
-
} if (rf & 2) {
|
198
|
-
const htmlRouteLabel_r6 = i0.ɵɵreference(5);
|
199
|
-
const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
|
200
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
201
|
-
i0.ɵɵproperty("routerLink", ctx_r3.getItemProp(processedItem_r3, "routerLink"))("queryParams", ctx_r3.getItemProp(processedItem_r3, "queryParams"))("routerLinkActive", "p-panelmenu-item-link-active")("routerLinkActiveOptions", ctx_r3.getItemProp(processedItem_r3, "routerLinkActiveOptions") || i0.ɵɵpureFunction0(20, _c3))("ngClass", i0.ɵɵpureFunction1(21, _c2, ctx_r3.getItemProp(processedItem_r3, "disabled")))("target", ctx_r3.getItemProp(processedItem_r3, "target"))("fragment", ctx_r3.getItemProp(processedItem_r3, "fragment"))("queryParamsHandling", ctx_r3.getItemProp(processedItem_r3, "queryParamsHandling"))("preserveFragment", ctx_r3.getItemProp(processedItem_r3, "preserveFragment"))("skipLocationChange", ctx_r3.getItemProp(processedItem_r3, "skipLocationChange"))("replaceUrl", ctx_r3.getItemProp(processedItem_r3, "replaceUrl"))("state", ctx_r3.getItemProp(processedItem_r3, "state"));
|
202
|
-
i0.ɵɵattribute("title", ctx_r3.getItemProp(processedItem_r3, "title"))("data-pc-section", "action")("tabindex", !!ctx_r3.parentExpanded ? "0" : "-1");
|
203
|
-
i0.ɵɵadvance();
|
204
|
-
i0.ɵɵproperty("ngIf", ctx_r3.isItemGroup(processedItem_r3));
|
205
|
-
i0.ɵɵadvance();
|
206
|
-
i0.ɵɵproperty("ngIf", processedItem_r3.icon);
|
207
|
-
i0.ɵɵadvance();
|
208
|
-
i0.ɵɵproperty("ngIf", ctx_r3.getItemProp(processedItem_r3, "escape") !== false)("ngIfElse", htmlRouteLabel_r6);
|
209
|
-
i0.ɵɵadvance(3);
|
210
|
-
i0.ɵɵproperty("ngIf", processedItem_r3.badge);
|
211
|
-
} }
|
212
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
213
|
-
i0.ɵɵelementContainerStart(0);
|
214
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_1_Template, 7, 12, "a", 13)(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_a_2_Template, 7, 23, "a", 14);
|
215
|
-
i0.ɵɵelementContainerEnd();
|
216
|
-
} if (rf & 2) {
|
217
|
-
const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
|
218
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
219
|
-
i0.ɵɵadvance();
|
220
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.getItemProp(processedItem_r3, "routerLink"));
|
221
|
-
i0.ɵɵadvance();
|
222
|
-
i0.ɵɵproperty("ngIf", ctx_r3.getItemProp(processedItem_r3, "routerLink"));
|
223
|
-
} }
|
224
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_3_1_ng_template_0_Template(rf, ctx) { }
|
225
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_3_1_Template(rf, ctx) { if (rf & 1) {
|
226
|
-
i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_1_ng_container_3_1_ng_template_0_Template, 0, 0, "ng-template");
|
227
|
-
} }
|
228
|
-
function PanelMenuSub_ng_template_2_li_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
229
|
-
i0.ɵɵelementContainerStart(0);
|
230
|
-
i0.ɵɵtemplate(1, PanelMenuSub_ng_template_2_li_1_ng_container_3_1_Template, 1, 0, null, 27);
|
231
|
-
i0.ɵɵelementContainerEnd();
|
232
|
-
} if (rf & 2) {
|
233
|
-
const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
|
234
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
235
|
-
i0.ɵɵadvance();
|
236
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c4, processedItem_r3.item));
|
237
|
-
} }
|
238
|
-
function PanelMenuSub_ng_template_2_li_1_p_panelmenu_sub_5_Template(rf, ctx) { if (rf & 1) {
|
239
|
-
const _r7 = i0.ɵɵgetCurrentView();
|
240
|
-
i0.ɵɵelementStart(0, "p-panelmenu-sub", 28);
|
241
|
-
i0.ɵɵlistener("itemToggle", function PanelMenuSub_ng_template_2_li_1_p_panelmenu_sub_5_Template_p_panelmenu_sub_itemToggle_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.onItemToggle($event)); });
|
242
|
-
i0.ɵɵelementEnd();
|
243
|
-
} if (rf & 2) {
|
244
|
-
const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
|
245
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
246
|
-
i0.ɵɵproperty("id", ctx_r3.getItemId(processedItem_r3) + "_list")("panelId", ctx_r3.panelId)("items", processedItem_r3 == null ? null : processedItem_r3.items)("itemTemplate", ctx_r3.itemTemplate)("transitionOptions", ctx_r3.transitionOptions)("focusedItemId", ctx_r3.focusedItemId)("activeItemPath", ctx_r3.activeItemPath)("level", ctx_r3.level + 1)("parentExpanded", !!ctx_r3.parentExpanded && ctx_r3.isItemExpanded(processedItem_r3));
|
247
|
-
} }
|
248
|
-
function PanelMenuSub_ng_template_2_li_1_Template(rf, ctx) { if (rf & 1) {
|
249
|
-
const _r2 = i0.ɵɵgetCurrentView();
|
250
|
-
i0.ɵɵelementStart(0, "li", 8)(1, "div", 9);
|
251
|
-
i0.ɵɵlistener("click", function PanelMenuSub_ng_template_2_li_1_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r2); const processedItem_r3 = i0.ɵɵnextContext().$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onItemClick($event, processedItem_r3)); });
|
252
|
-
i0.ɵɵtemplate(2, PanelMenuSub_ng_template_2_li_1_ng_container_2_Template, 3, 2, "ng-container", 10)(3, PanelMenuSub_ng_template_2_li_1_ng_container_3_Template, 2, 4, "ng-container", 10);
|
253
|
-
i0.ɵɵelementEnd();
|
254
|
-
i0.ɵɵelementStart(4, "div", 11);
|
255
|
-
i0.ɵɵtemplate(5, PanelMenuSub_ng_template_2_li_1_p_panelmenu_sub_5_Template, 1, 9, "p-panelmenu-sub", 12);
|
256
|
-
i0.ɵɵelementEnd()();
|
257
|
-
} if (rf & 2) {
|
258
|
-
const ctx_r7 = i0.ɵɵnextContext();
|
259
|
-
const processedItem_r3 = ctx_r7.$implicit;
|
260
|
-
const index_r9 = ctx_r7.index;
|
261
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
262
|
-
i0.ɵɵclassMap(ctx_r3.getItemProp(processedItem_r3, "styleClass"));
|
263
|
-
i0.ɵɵclassProp("p-hidden", processedItem_r3.visible === false)("p-focus", ctx_r3.isItemFocused(processedItem_r3) && !ctx_r3.isItemDisabled(processedItem_r3));
|
264
|
-
i0.ɵɵproperty("ngClass", ctx_r3.getItemClass(processedItem_r3))("ngStyle", ctx_r3.getItemProp(processedItem_r3, "style"))("pTooltip", ctx_r3.getItemProp(processedItem_r3, "tooltip"))("tooltipOptions", ctx_r3.getItemProp(processedItem_r3, "tooltipOptions"));
|
265
|
-
i0.ɵɵattribute("id", ctx_r3.getItemId(processedItem_r3))("aria-label", ctx_r3.getItemProp(processedItem_r3, "label"))("aria-expanded", ctx_r3.isItemGroup(processedItem_r3) ? ctx_r3.isItemActive(processedItem_r3) : undefined)("aria-level", ctx_r3.level + 1)("aria-setsize", ctx_r3.getAriaSetSize())("aria-posinset", ctx_r3.getAriaPosInset(index_r9))("data-p-disabled", ctx_r3.isItemDisabled(processedItem_r3));
|
266
|
-
i0.ɵɵadvance(2);
|
267
|
-
i0.ɵɵproperty("ngIf", !ctx_r3.itemTemplate);
|
268
|
-
i0.ɵɵadvance();
|
269
|
-
i0.ɵɵproperty("ngIf", ctx_r3.itemTemplate);
|
270
|
-
i0.ɵɵadvance();
|
271
|
-
i0.ɵɵproperty("@submenu", ctx_r3.getAnimation(processedItem_r3));
|
272
|
-
i0.ɵɵadvance();
|
273
|
-
i0.ɵɵproperty("ngIf", ctx_r3.isItemVisible(processedItem_r3) && ctx_r3.isItemGroup(processedItem_r3) && ctx_r3.isItemExpanded(processedItem_r3));
|
274
|
-
} }
|
275
|
-
function PanelMenuSub_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
276
|
-
i0.ɵɵtemplate(0, PanelMenuSub_ng_template_2_li_0_Template, 1, 0, "li", 5)(1, PanelMenuSub_ng_template_2_li_1_Template, 6, 21, "li", 6);
|
277
|
-
} if (rf & 2) {
|
278
|
-
const processedItem_r3 = ctx.$implicit;
|
279
|
-
const ctx_r3 = i0.ɵɵnextContext();
|
280
|
-
i0.ɵɵproperty("ngIf", processedItem_r3.separator);
|
281
|
-
i0.ɵɵadvance();
|
282
|
-
i0.ɵɵproperty("ngIf", !processedItem_r3.separator && ctx_r3.isItemVisible(processedItem_r3));
|
283
|
-
} }
|
284
|
-
const _c5 = ["submenu"];
|
285
|
-
const _c6 = ["submenuicon"];
|
286
|
-
const _c7 = ["item"];
|
287
|
-
const _c8 = ["container"];
|
288
|
-
const _c9 = (a0, a1) => ({ "p-component p-panelmenu-header": true, "p-panelmenu-header-active": a0, "p-disabled": a1 });
|
289
|
-
const _c10 = a0 => ({ "p-panelmenu-expanded": a0 });
|
290
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronDownIcon_1_Template(rf, ctx) { if (rf & 1) {
|
291
|
-
i0.ɵɵelement(0, "ChevronDownIcon", 20);
|
292
|
-
} if (rf & 2) {
|
293
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
|
294
|
-
} }
|
295
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronRightIcon_2_Template(rf, ctx) { if (rf & 1) {
|
296
|
-
i0.ɵɵelement(0, "ChevronRightIcon", 20);
|
297
|
-
} if (rf & 2) {
|
298
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
|
299
|
-
} }
|
300
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
301
|
-
i0.ɵɵelementContainerStart(0);
|
302
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronDownIcon_1_Template, 1, 1, "ChevronDownIcon", 19)(2, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_ChevronRightIcon_2_Template, 1, 1, "ChevronRightIcon", 19);
|
303
|
-
i0.ɵɵelementContainerEnd();
|
304
|
-
} if (rf & 2) {
|
305
|
-
const item_r3 = i0.ɵɵnextContext(5).$implicit;
|
306
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
307
|
-
i0.ɵɵadvance();
|
308
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isItemActive(item_r3));
|
309
|
-
i0.ɵɵadvance();
|
310
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.isItemActive(item_r3));
|
311
|
-
} }
|
312
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
|
313
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
|
314
|
-
i0.ɵɵtemplate(0, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
315
|
-
} }
|
316
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
317
|
-
i0.ɵɵelementContainerStart(0);
|
318
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_2_Template, 1, 0, null, 18);
|
319
|
-
i0.ɵɵelementContainerEnd();
|
320
|
-
} if (rf & 2) {
|
321
|
-
const ctx_r4 = i0.ɵɵnextContext(5);
|
322
|
-
i0.ɵɵadvance();
|
323
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.submenuIconTemplate && !ctx_r4._submenuIconTemplate);
|
324
|
-
i0.ɵɵadvance();
|
325
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r4.submenuIconTemplate || ctx_r4._submenuIconTemplate);
|
326
|
-
} }
|
327
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_2_Template(rf, ctx) { if (rf & 1) {
|
328
|
-
i0.ɵɵelement(0, "span", 21);
|
329
|
-
} if (rf & 2) {
|
330
|
-
const item_r3 = i0.ɵɵnextContext(4).$implicit;
|
331
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
332
|
-
i0.ɵɵproperty("ngClass", item_r3.icon)("ngStyle", ctx_r4.getItemProp(item_r3, "iconStyle"));
|
333
|
-
} }
|
334
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_3_Template(rf, ctx) { if (rf & 1) {
|
335
|
-
i0.ɵɵelementStart(0, "span", 22);
|
336
|
-
i0.ɵɵtext(1);
|
337
|
-
i0.ɵɵelementEnd();
|
338
|
-
} if (rf & 2) {
|
339
|
-
const item_r3 = i0.ɵɵnextContext(4).$implicit;
|
340
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
341
|
-
i0.ɵɵadvance();
|
342
|
-
i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "label"));
|
343
|
-
} }
|
344
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
345
|
-
i0.ɵɵelement(0, "span", 23);
|
346
|
-
} if (rf & 2) {
|
347
|
-
const item_r3 = i0.ɵɵnextContext(4).$implicit;
|
348
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
349
|
-
i0.ɵɵproperty("innerHTML", ctx_r4.getItemProp(item_r3, "label"), i0.ɵɵsanitizeHtml);
|
350
|
-
} }
|
351
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_6_Template(rf, ctx) { if (rf & 1) {
|
352
|
-
i0.ɵɵelementStart(0, "span", 24);
|
353
|
-
i0.ɵɵtext(1);
|
354
|
-
i0.ɵɵelementEnd();
|
355
|
-
} if (rf & 2) {
|
356
|
-
const item_r3 = i0.ɵɵnextContext(4).$implicit;
|
357
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
358
|
-
i0.ɵɵproperty("ngClass", ctx_r4.getItemProp(item_r3, "badgeStyleClass"));
|
359
|
-
i0.ɵɵadvance();
|
360
|
-
i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "badge"));
|
361
|
-
} }
|
362
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_a_1_Template(rf, ctx) { if (rf & 1) {
|
363
|
-
i0.ɵɵelementStart(0, "a", 14);
|
364
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_2_Template, 1, 2, "span", 15)(3, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_3_Template, 2, 1, "span", 16)(4, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_span_6_Template, 2, 2, "span", 17);
|
365
|
-
i0.ɵɵelementEnd();
|
366
|
-
} if (rf & 2) {
|
367
|
-
const htmlLabel_r6 = i0.ɵɵreference(5);
|
368
|
-
const item_r3 = i0.ɵɵnextContext(3).$implicit;
|
369
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
370
|
-
i0.ɵɵproperty("target", ctx_r4.getItemProp(item_r3, "target"));
|
371
|
-
i0.ɵɵattribute("href", ctx_r4.getItemProp(item_r3, "url"), i0.ɵɵsanitizeUrl)("tabindex", -1)("title", ctx_r4.getItemProp(item_r3, "title"))("data-pc-section", "headeraction");
|
372
|
-
i0.ɵɵadvance();
|
373
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isItemGroup(item_r3));
|
374
|
-
i0.ɵɵadvance();
|
375
|
-
i0.ɵɵproperty("ngIf", item_r3.icon);
|
376
|
-
i0.ɵɵadvance();
|
377
|
-
i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "escape") !== false)("ngIfElse", htmlLabel_r6);
|
378
|
-
i0.ɵɵadvance(3);
|
379
|
-
i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "badge"));
|
380
|
-
} }
|
381
|
-
function PanelMenu_ng_container_2_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
382
|
-
i0.ɵɵelementContainerStart(0);
|
383
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_ng_container_3_a_1_Template, 7, 10, "a", 13);
|
384
|
-
i0.ɵɵelementContainerEnd();
|
385
|
-
} if (rf & 2) {
|
386
|
-
const item_r3 = i0.ɵɵnextContext(2).$implicit;
|
387
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
388
|
-
i0.ɵɵadvance();
|
389
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.getItemProp(item_r3, "routerLink"));
|
390
|
-
} }
|
391
|
-
function PanelMenu_ng_container_2_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
392
|
-
i0.ɵɵelementContainer(0);
|
393
|
-
} }
|
394
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronDownIcon_1_Template(rf, ctx) { if (rf & 1) {
|
395
|
-
i0.ɵɵelement(0, "ChevronDownIcon", 20);
|
396
|
-
} if (rf & 2) {
|
397
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
|
398
|
-
} }
|
399
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronRightIcon_2_Template(rf, ctx) { if (rf & 1) {
|
400
|
-
i0.ɵɵelement(0, "ChevronRightIcon", 20);
|
401
|
-
} if (rf & 2) {
|
402
|
-
i0.ɵɵproperty("styleClass", "p-panelmenu-submenu-icon");
|
403
|
-
} }
|
404
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
405
|
-
i0.ɵɵelementContainerStart(0);
|
406
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronDownIcon_1_Template, 1, 1, "ChevronDownIcon", 19)(2, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_ChevronRightIcon_2_Template, 1, 1, "ChevronRightIcon", 19);
|
407
|
-
i0.ɵɵelementContainerEnd();
|
408
|
-
} if (rf & 2) {
|
409
|
-
const item_r3 = i0.ɵɵnextContext(4).$implicit;
|
410
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
411
|
-
i0.ɵɵadvance();
|
412
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isItemActive(item_r3));
|
413
|
-
i0.ɵɵadvance();
|
414
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.isItemActive(item_r3));
|
415
|
-
} }
|
416
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_ng_template_0_Template(rf, ctx) { }
|
417
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_Template(rf, ctx) { if (rf & 1) {
|
418
|
-
i0.ɵɵtemplate(0, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
419
|
-
} }
|
420
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
421
|
-
i0.ɵɵelementContainerStart(0);
|
422
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_2_Template, 1, 0, null, 18);
|
423
|
-
i0.ɵɵelementContainerEnd();
|
424
|
-
} if (rf & 2) {
|
425
|
-
const ctx_r4 = i0.ɵɵnextContext(4);
|
426
|
-
i0.ɵɵadvance();
|
427
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.submenuIconTemplate && !ctx_r4._submenuIconTemplate);
|
428
|
-
i0.ɵɵadvance();
|
429
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r4.submenuIconTemplate || ctx_r4._submenuIconTemplate);
|
430
|
-
} }
|
431
|
-
function PanelMenu_ng_container_2_div_1_a_5_span_2_Template(rf, ctx) { if (rf & 1) {
|
432
|
-
i0.ɵɵelement(0, "span", 21);
|
433
|
-
} if (rf & 2) {
|
434
|
-
const item_r3 = i0.ɵɵnextContext(3).$implicit;
|
435
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
436
|
-
i0.ɵɵproperty("ngClass", item_r3.icon)("ngStyle", ctx_r4.getItemProp(item_r3, "iconStyle"));
|
437
|
-
} }
|
438
|
-
function PanelMenu_ng_container_2_div_1_a_5_span_3_Template(rf, ctx) { if (rf & 1) {
|
439
|
-
i0.ɵɵelementStart(0, "span", 22);
|
440
|
-
i0.ɵɵtext(1);
|
441
|
-
i0.ɵɵelementEnd();
|
442
|
-
} if (rf & 2) {
|
443
|
-
const item_r3 = i0.ɵɵnextContext(3).$implicit;
|
444
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
445
|
-
i0.ɵɵadvance();
|
446
|
-
i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "label"));
|
447
|
-
} }
|
448
|
-
function PanelMenu_ng_container_2_div_1_a_5_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
449
|
-
i0.ɵɵelement(0, "span", 23);
|
450
|
-
} if (rf & 2) {
|
451
|
-
const item_r3 = i0.ɵɵnextContext(3).$implicit;
|
452
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
453
|
-
i0.ɵɵproperty("innerHTML", ctx_r4.getItemProp(item_r3, "label"), i0.ɵɵsanitizeHtml);
|
454
|
-
} }
|
455
|
-
function PanelMenu_ng_container_2_div_1_a_5_span_6_Template(rf, ctx) { if (rf & 1) {
|
456
|
-
i0.ɵɵelementStart(0, "span", 24);
|
457
|
-
i0.ɵɵtext(1);
|
458
|
-
i0.ɵɵelementEnd();
|
459
|
-
} if (rf & 2) {
|
460
|
-
const item_r3 = i0.ɵɵnextContext(3).$implicit;
|
461
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
462
|
-
i0.ɵɵproperty("ngClass", ctx_r4.getItemProp(item_r3, "badgeStyleClass"));
|
463
|
-
i0.ɵɵadvance();
|
464
|
-
i0.ɵɵtextInterpolate(ctx_r4.getItemProp(item_r3, "badge"));
|
465
|
-
} }
|
466
|
-
function PanelMenu_ng_container_2_div_1_a_5_Template(rf, ctx) { if (rf & 1) {
|
467
|
-
i0.ɵɵelementStart(0, "a", 25);
|
468
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_a_5_ng_container_1_Template, 3, 2, "ng-container", 9)(2, PanelMenu_ng_container_2_div_1_a_5_span_2_Template, 1, 2, "span", 15)(3, PanelMenu_ng_container_2_div_1_a_5_span_3_Template, 2, 1, "span", 16)(4, PanelMenu_ng_container_2_div_1_a_5_ng_template_4_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(6, PanelMenu_ng_container_2_div_1_a_5_span_6_Template, 2, 2, "span", 17);
|
469
|
-
i0.ɵɵelementEnd();
|
470
|
-
} if (rf & 2) {
|
471
|
-
const htmlRouteLabel_r7 = i0.ɵɵreference(5);
|
472
|
-
const item_r3 = i0.ɵɵnextContext(2).$implicit;
|
473
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
474
|
-
i0.ɵɵproperty("routerLink", ctx_r4.getItemProp(item_r3, "routerLink"))("queryParams", ctx_r4.getItemProp(item_r3, "queryParams"))("routerLinkActive", "p-panelmenu-item-link-active")("routerLinkActiveOptions", ctx_r4.getItemProp(item_r3, "routerLinkActiveOptions") || i0.ɵɵpureFunction0(18, _c3))("target", ctx_r4.getItemProp(item_r3, "target"))("fragment", ctx_r4.getItemProp(item_r3, "fragment"))("queryParamsHandling", ctx_r4.getItemProp(item_r3, "queryParamsHandling"))("preserveFragment", ctx_r4.getItemProp(item_r3, "preserveFragment"))("skipLocationChange", ctx_r4.getItemProp(item_r3, "skipLocationChange"))("replaceUrl", ctx_r4.getItemProp(item_r3, "replaceUrl"))("state", ctx_r4.getItemProp(item_r3, "state"));
|
475
|
-
i0.ɵɵattribute("tabindex", -1)("data-pc-section", "headeraction");
|
476
|
-
i0.ɵɵadvance();
|
477
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isItemGroup(item_r3));
|
478
|
-
i0.ɵɵadvance();
|
479
|
-
i0.ɵɵproperty("ngIf", item_r3.icon);
|
480
|
-
i0.ɵɵadvance();
|
481
|
-
i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "escape") !== false)("ngIfElse", htmlRouteLabel_r7);
|
482
|
-
i0.ɵɵadvance(3);
|
483
|
-
i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "badge"));
|
484
|
-
} }
|
485
|
-
function PanelMenu_ng_container_2_div_1_div_6_Template(rf, ctx) { if (rf & 1) {
|
486
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
487
|
-
i0.ɵɵelementStart(0, "div", 26);
|
488
|
-
i0.ɵɵlistener("@rootItem.done", function PanelMenu_ng_container_2_div_1_div_6_Template_div_animation_rootItem_done_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.onToggleDone()); });
|
489
|
-
i0.ɵɵelementStart(1, "div", 27)(2, "p-panelMenuList", 28);
|
490
|
-
i0.ɵɵlistener("headerFocus", function PanelMenu_ng_container_2_div_1_div_6_Template_p_panelMenuList_headerFocus_2_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r4 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r4.updateFocusedHeader($event)); });
|
491
|
-
i0.ɵɵelementEnd()()();
|
492
|
-
} if (rf & 2) {
|
493
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
494
|
-
const item_r3 = ctx_r1.$implicit;
|
495
|
-
const i_r4 = ctx_r1.index;
|
496
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
497
|
-
i0.ɵɵproperty("@rootItem", ctx_r4.getAnimation(item_r3))("ngClass", i0.ɵɵpureFunction1(14, _c10, ctx_r4.isItemActive(item_r3)));
|
498
|
-
i0.ɵɵattribute("id", ctx_r4.getContentId(item_r3, i_r4))("aria-labelledby", ctx_r4.getHeaderId(item_r3, i_r4))("data-pc-section", "toggleablecontent");
|
499
|
-
i0.ɵɵadvance();
|
500
|
-
i0.ɵɵattribute("data-pc-section", "menucontent");
|
501
|
-
i0.ɵɵadvance();
|
502
|
-
i0.ɵɵproperty("panelId", ctx_r4.getPanelId(i_r4, item_r3))("items", ctx_r4.getItemProp(item_r3, "items"))("itemTemplate", ctx_r4.itemTemplate || ctx_r4._itemTemplate)("transitionOptions", ctx_r4.transitionOptions)("root", true)("activeItem", ctx_r4.activeItem())("tabindex", ctx_r4.tabindex)("parentExpanded", ctx_r4.isItemActive(item_r3));
|
503
|
-
} }
|
504
|
-
function PanelMenu_ng_container_2_div_1_Template(rf, ctx) { if (rf & 1) {
|
505
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
506
|
-
i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
|
507
|
-
i0.ɵɵlistener("click", function PanelMenu_ng_container_2_div_1_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const item_r3 = ctx_r1.$implicit; const i_r4 = ctx_r1.index; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onHeaderClick($event, item_r3, i_r4)); })("keydown", function PanelMenu_ng_container_2_div_1_Template_div_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); const item_r3 = ctx_r1.$implicit; const i_r4 = ctx_r1.index; const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onHeaderKeyDown($event, item_r3, i_r4)); });
|
508
|
-
i0.ɵɵelementStart(2, "div", 8);
|
509
|
-
i0.ɵɵtemplate(3, PanelMenu_ng_container_2_div_1_ng_container_3_Template, 2, 1, "ng-container", 9)(4, PanelMenu_ng_container_2_div_1_ng_container_4_Template, 1, 0, "ng-container", 10)(5, PanelMenu_ng_container_2_div_1_a_5_Template, 7, 19, "a", 11);
|
510
|
-
i0.ɵɵelementEnd()();
|
511
|
-
i0.ɵɵtemplate(6, PanelMenu_ng_container_2_div_1_div_6_Template, 3, 16, "div", 12);
|
512
|
-
i0.ɵɵelementEnd();
|
513
|
-
} if (rf & 2) {
|
514
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
515
|
-
const item_r3 = ctx_r1.$implicit;
|
516
|
-
const i_r4 = ctx_r1.index;
|
517
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
518
|
-
i0.ɵɵproperty("ngClass", ctx_r4.getItemProp(item_r3, "headerClass"))("ngStyle", ctx_r4.getItemProp(item_r3, "style"));
|
519
|
-
i0.ɵɵattribute("data-pc-section", "panel");
|
520
|
-
i0.ɵɵadvance();
|
521
|
-
i0.ɵɵclassMap(ctx_r4.getItemProp(item_r3, "styleClass"));
|
522
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(23, _c9, ctx_r4.isItemActive(item_r3) && !!item_r3.items, ctx_r4.isItemDisabled(item_r3)))("ngStyle", ctx_r4.getItemProp(item_r3, "style"))("pTooltip", ctx_r4.getItemProp(item_r3, "tooltip"))("tabindex", 0)("tooltipOptions", ctx_r4.getItemProp(item_r3, "tooltipOptions"));
|
523
|
-
i0.ɵɵattribute("id", ctx_r4.getHeaderId(item_r3, i_r4))("aria-expanded", ctx_r4.isItemActive(item_r3))("aria-label", ctx_r4.getItemProp(item_r3, "label"))("aria-controls", ctx_r4.getContentId(item_r3, i_r4))("aria-disabled", ctx_r4.isItemDisabled(item_r3))("data-p-highlight", ctx_r4.isItemActive(item_r3))("data-p-disabled", ctx_r4.isItemDisabled(item_r3))("data-pc-section", "header");
|
524
|
-
i0.ɵɵadvance(2);
|
525
|
-
i0.ɵɵproperty("ngIf", !ctx_r4.itemTemplate && !ctx_r4._itemTemplate);
|
526
|
-
i0.ɵɵadvance();
|
527
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r4.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(26, _c4, item_r3));
|
528
|
-
i0.ɵɵadvance();
|
529
|
-
i0.ɵɵproperty("ngIf", ctx_r4.getItemProp(item_r3, "routerLink"));
|
530
|
-
i0.ɵɵadvance();
|
531
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isItemGroup(item_r3));
|
532
|
-
} }
|
533
|
-
function PanelMenu_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
534
|
-
i0.ɵɵelementContainerStart(0);
|
535
|
-
i0.ɵɵtemplate(1, PanelMenu_ng_container_2_div_1_Template, 7, 28, "div", 5);
|
536
|
-
i0.ɵɵelementContainerEnd();
|
537
|
-
} if (rf & 2) {
|
538
|
-
const item_r3 = ctx.$implicit;
|
539
|
-
const ctx_r4 = i0.ɵɵnextContext();
|
540
|
-
i0.ɵɵadvance();
|
541
|
-
i0.ɵɵproperty("ngIf", ctx_r4.isItemVisible(item_r3));
|
542
|
-
} }
|
543
|
-
export class PanelMenuSub extends BaseComponent {
|
544
|
-
panelId;
|
545
|
-
focusedItemId;
|
546
|
-
items;
|
547
|
-
itemTemplate;
|
548
|
-
level = 0;
|
549
|
-
activeItemPath;
|
550
|
-
root;
|
551
|
-
tabindex;
|
552
|
-
transitionOptions;
|
553
|
-
parentExpanded;
|
554
|
-
itemToggle = new EventEmitter();
|
555
|
-
menuFocus = new EventEmitter();
|
556
|
-
menuBlur = new EventEmitter();
|
557
|
-
menuKeyDown = new EventEmitter();
|
558
|
-
listViewChild;
|
559
|
-
panelMenu = inject(forwardRef(() => PanelMenu));
|
560
|
-
getItemId(processedItem) {
|
561
|
-
return processedItem.item?.id ?? `${this.panelId}_${processedItem.key}`;
|
562
|
-
}
|
563
|
-
getItemKey(processedItem) {
|
564
|
-
return this.getItemId(processedItem);
|
565
|
-
}
|
566
|
-
getItemClass(processedItem) {
|
567
|
-
return {
|
568
|
-
'p-panelmenu-item': true,
|
569
|
-
'p-disabled': this.isItemDisabled(processedItem),
|
570
|
-
'p-focus': this.isItemFocused(processedItem)
|
571
|
-
};
|
572
|
-
}
|
573
|
-
getItemProp(processedItem, name, params) {
|
574
|
-
return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;
|
575
|
-
}
|
576
|
-
getItemLabel(processedItem) {
|
577
|
-
return this.getItemProp(processedItem, 'label');
|
578
|
-
}
|
579
|
-
isItemExpanded(processedItem) {
|
580
|
-
return processedItem.expanded;
|
581
|
-
}
|
582
|
-
isItemActive(processedItem) {
|
583
|
-
return this.isItemExpanded(processedItem) || this.activeItemPath.some((path) => path && path.key === processedItem.key);
|
584
|
-
}
|
585
|
-
isItemVisible(processedItem) {
|
586
|
-
return this.getItemProp(processedItem, 'visible') !== false;
|
587
|
-
}
|
588
|
-
isItemDisabled(processedItem) {
|
589
|
-
return this.getItemProp(processedItem, 'disabled');
|
590
|
-
}
|
591
|
-
isItemFocused(processedItem) {
|
592
|
-
return this.focusedItemId === this.getItemId(processedItem);
|
593
|
-
}
|
594
|
-
isItemGroup(processedItem) {
|
595
|
-
return isNotEmpty(processedItem.items);
|
596
|
-
}
|
597
|
-
getAnimation(processedItem) {
|
598
|
-
return this.isItemActive(processedItem) ? { value: 'visible', params: { transitionParams: this.transitionOptions, height: '*' } } : { value: 'hidden', params: { transitionParams: this.transitionOptions, height: '0' } };
|
599
|
-
}
|
600
|
-
getAriaSetSize() {
|
601
|
-
return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
|
602
|
-
}
|
603
|
-
getAriaPosInset(index) {
|
604
|
-
return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
|
605
|
-
}
|
606
|
-
onItemClick(event, processedItem) {
|
607
|
-
if (!this.isItemDisabled(processedItem)) {
|
608
|
-
this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
|
609
|
-
this.itemToggle.emit({ processedItem, expanded: !this.isItemActive(processedItem) });
|
610
|
-
}
|
611
|
-
}
|
612
|
-
onItemToggle(event) {
|
613
|
-
this.itemToggle.emit(event);
|
614
|
-
}
|
615
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵPanelMenuSub_BaseFactory; return function PanelMenuSub_Factory(__ngFactoryType__) { return (ɵPanelMenuSub_BaseFactory || (ɵPanelMenuSub_BaseFactory = i0.ɵɵgetInheritedFactory(PanelMenuSub)))(__ngFactoryType__ || PanelMenuSub); }; })();
|
616
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelMenuSub, selectors: [["p-panelMenuSub"], ["p-panelmenu-sub"]], viewQuery: function PanelMenuSub_Query(rf, ctx) { if (rf & 1) {
|
617
|
-
i0.ɵɵviewQuery(_c0, 5);
|
618
|
-
} if (rf & 2) {
|
619
|
-
let _t;
|
620
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listViewChild = _t.first);
|
621
|
-
} }, inputs: { panelId: "panelId", focusedItemId: "focusedItemId", items: "items", itemTemplate: "itemTemplate", level: [2, "level", "level", numberAttribute], activeItemPath: "activeItemPath", root: [2, "root", "root", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], transitionOptions: "transitionOptions", parentExpanded: [2, "parentExpanded", "parentExpanded", booleanAttribute] }, outputs: { itemToggle: "itemToggle", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeyDown: "menuKeyDown" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 7, consts: [["list", ""], ["htmlLabel", ""], ["htmlRouteLabel", ""], ["role", "tree", 3, "focusin", "focusout", "keydown", "ngClass", "tabindex"], ["ngFor", "", 3, "ngForOf"], ["class", "p-menuitem-separator", "role", "separator", 4, "ngIf"], ["role", "treeitem", 3, "ngClass", "class", "p-hidden", "p-focus", "ngStyle", "pTooltip", "tooltipOptions", 4, "ngIf"], ["role", "separator", 1, "p-menuitem-separator"], ["role", "treeitem", 3, "ngClass", "ngStyle", "pTooltip", "tooltipOptions"], [1, "p-panelmenu-item-content", 3, "click"], [4, "ngIf"], [1, "p-toggleable-content"], [3, "id", "panelId", "items", "itemTemplate", "transitionOptions", "focusedItemId", "activeItemPath", "level", "parentExpanded", "itemToggle", 4, "ngIf"], ["class", "p-panelmenu-item-link", 3, "ngClass", "target", 4, "ngIf"], ["class", "p-panelmenu-item-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "ngClass", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", 4, "ngIf"], [1, "p-panelmenu-item-link", 3, "ngClass", "target"], ["class", "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle", 4, "ngIf"], ["class", "p-panelmenu-item-label", 4, "ngIf", "ngIfElse"], ["class", "p-menuitem-badge", 3, "ngClass", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass", "ngStyle", 4, "ngIf"], [3, "styleClass", "ngStyle"], [1, "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle"], [1, "p-panelmenu-item-label"], [1, "p-panelmenu-item-label", 3, "innerHTML"], [1, "p-menuitem-badge", 3, "ngClass"], [1, "p-panelmenu-item-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "ngClass", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "itemToggle", "id", "panelId", "items", "itemTemplate", "transitionOptions", "focusedItemId", "activeItemPath", "level", "parentExpanded"]], template: function PanelMenuSub_Template(rf, ctx) { if (rf & 1) {
|
622
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
623
|
-
i0.ɵɵelementStart(0, "ul", 3, 0);
|
624
|
-
i0.ɵɵlistener("focusin", function PanelMenuSub_Template_ul_focusin_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.menuFocus.emit($event)); })("focusout", function PanelMenuSub_Template_ul_focusout_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.menuBlur.emit($event)); })("keydown", function PanelMenuSub_Template_ul_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.menuKeyDown.emit($event)); });
|
625
|
-
i0.ɵɵtemplate(2, PanelMenuSub_ng_template_2_Template, 2, 2, "ng-template", 4);
|
626
|
-
i0.ɵɵelementEnd();
|
627
|
-
} if (rf & 2) {
|
628
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction0(6, _c1))("tabindex", -1);
|
629
|
-
i0.ɵɵattribute("aria-activedescendant", ctx.focusedItemId)("data-pc-section", "menu")("aria-hidden", !ctx.parentExpanded);
|
630
|
-
i0.ɵɵadvance(2);
|
631
|
-
i0.ɵɵproperty("ngForOf", ctx.items);
|
632
|
-
} }, dependencies: [PanelMenuSub, CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, RouterModule, i2.RouterLink, i2.RouterLinkActive, TooltipModule, i3.Tooltip, AngleDownIcon, AngleRightIcon, SharedModule], encapsulation: 2, data: { animation: [
|
633
|
-
trigger('submenu', [
|
634
|
-
state('hidden', style({
|
635
|
-
height: '0'
|
636
|
-
})),
|
637
|
-
state('visible', style({
|
638
|
-
height: '*'
|
639
|
-
})),
|
640
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
641
|
-
transition('void => *', animate(0))
|
642
|
-
])
|
643
|
-
] } });
|
644
|
-
}
|
645
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenuSub, [{
|
646
|
-
type: Component,
|
647
|
-
args: [{
|
648
|
-
selector: 'p-panelMenuSub, p-panelmenu-sub',
|
649
|
-
imports: [CommonModule, RouterModule, TooltipModule, AngleDownIcon, AngleRightIcon, SharedModule],
|
650
|
-
standalone: true,
|
651
|
-
template: `
|
652
|
-
<ul
|
653
|
-
#list
|
654
|
-
[ngClass]="{ 'p-panelmenu-submenu': true }"
|
655
|
-
role="tree"
|
656
|
-
[tabindex]="-1"
|
657
|
-
[attr.aria-activedescendant]="focusedItemId"
|
658
|
-
[attr.data-pc-section]="'menu'"
|
659
|
-
[attr.aria-hidden]="!parentExpanded"
|
660
|
-
(focusin)="menuFocus.emit($event)"
|
661
|
-
(focusout)="menuBlur.emit($event)"
|
662
|
-
(keydown)="menuKeyDown.emit($event)"
|
663
|
-
>
|
664
|
-
<ng-template ngFor let-processedItem let-index="index" [ngForOf]="items">
|
665
|
-
<li *ngIf="processedItem.separator" class="p-menuitem-separator" role="separator"></li>
|
666
|
-
<li
|
667
|
-
*ngIf="!processedItem.separator && isItemVisible(processedItem)"
|
668
|
-
[ngClass]="getItemClass(processedItem)"
|
669
|
-
role="treeitem"
|
670
|
-
[attr.id]="getItemId(processedItem)"
|
671
|
-
[attr.aria-label]="getItemProp(processedItem, 'label')"
|
672
|
-
[attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
|
673
|
-
[attr.aria-level]="level + 1"
|
674
|
-
[attr.aria-setsize]="getAriaSetSize()"
|
675
|
-
[attr.aria-posinset]="getAriaPosInset(index)"
|
676
|
-
[class]="getItemProp(processedItem, 'styleClass')"
|
677
|
-
[class.p-hidden]="processedItem.visible === false"
|
678
|
-
[class.p-focus]="isItemFocused(processedItem) && !isItemDisabled(processedItem)"
|
679
|
-
[ngStyle]="getItemProp(processedItem, 'style')"
|
680
|
-
[pTooltip]="getItemProp(processedItem, 'tooltip')"
|
681
|
-
[attr.data-p-disabled]="isItemDisabled(processedItem)"
|
682
|
-
[tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
|
683
|
-
>
|
684
|
-
<div class="p-panelmenu-item-content" (click)="onItemClick($event, processedItem)">
|
685
|
-
<ng-container *ngIf="!itemTemplate">
|
686
|
-
<a
|
687
|
-
*ngIf="!getItemProp(processedItem, 'routerLink')"
|
688
|
-
[attr.href]="getItemProp(processedItem, 'url')"
|
689
|
-
class="p-panelmenu-item-link"
|
690
|
-
[ngClass]="{ 'p-disabled': getItemProp(processedItem, 'disabled') }"
|
691
|
-
[target]="getItemProp(processedItem, 'target')"
|
692
|
-
[attr.data-pc-section]="'action'"
|
693
|
-
[attr.tabindex]="!!parentExpanded ? '0' : '-1'"
|
694
|
-
>
|
695
|
-
<ng-container *ngIf="isItemGroup(processedItem)">
|
696
|
-
<ng-container *ngIf="!panelMenu.submenuIconTemplate && !panelMenu._submenuIconTemplate">
|
697
|
-
<AngleDownIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
|
698
|
-
<AngleRightIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="!isItemActive(processedItem)" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
|
699
|
-
</ng-container>
|
700
|
-
<ng-template *ngTemplateOutlet="panelMenu.submenuIconTemplate || panelMenu._submenuIconTemplate"></ng-template>
|
701
|
-
</ng-container>
|
702
|
-
<span class="p-panelmenu-submenu-icon" [ngClass]="processedItem.icon" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
|
703
|
-
<span class="p-panelmenu-item-label" *ngIf="processedItem.item?.escape !== false; else htmlLabel">{{ getItemProp(processedItem, 'label') }}</span>
|
704
|
-
<ng-template #htmlLabel><span class="p-panelmenu-item-label" [innerHTML]="getItemProp(processedItem, 'label')"></span></ng-template>
|
705
|
-
<span class="p-menuitem-badge" *ngIf="processedItem.badge" [ngClass]="processedItem.badgeStyleClass">{{ processedItem.badge }}</span>
|
706
|
-
</a>
|
707
|
-
<a
|
708
|
-
*ngIf="getItemProp(processedItem, 'routerLink')"
|
709
|
-
[routerLink]="getItemProp(processedItem, 'routerLink')"
|
710
|
-
[queryParams]="getItemProp(processedItem, 'queryParams')"
|
711
|
-
[routerLinkActive]="'p-panelmenu-item-link-active'"
|
712
|
-
[routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
|
713
|
-
class="p-panelmenu-item-link"
|
714
|
-
[ngClass]="{ 'p-disabled': getItemProp(processedItem, 'disabled') }"
|
715
|
-
[target]="getItemProp(processedItem, 'target')"
|
716
|
-
[attr.title]="getItemProp(processedItem, 'title')"
|
717
|
-
[fragment]="getItemProp(processedItem, 'fragment')"
|
718
|
-
[queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
|
719
|
-
[preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
|
720
|
-
[skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
|
721
|
-
[replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
|
722
|
-
[state]="getItemProp(processedItem, 'state')"
|
723
|
-
[attr.data-pc-section]="'action'"
|
724
|
-
[attr.tabindex]="!!parentExpanded ? '0' : '-1'"
|
725
|
-
>
|
726
|
-
<ng-container *ngIf="isItemGroup(processedItem)">
|
727
|
-
<ng-container *ngIf="!panelMenu.submenuIconTemplate && !panelMenu._submenuIconTemplate">
|
728
|
-
<AngleDownIcon *ngIf="isItemActive(processedItem)" [styleClass]="'p-panelmenu-submenu-icon'" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
|
729
|
-
<AngleRightIcon *ngIf="!isItemActive(processedItem)" [styleClass]="'p-panelmenu-submenu-icon'" [ngStyle]="getItemProp(processedItem, 'iconStyle')" />
|
730
|
-
</ng-container>
|
731
|
-
<ng-template *ngTemplateOutlet="panelMenu.submenuIconTemplate && panelMenu._submenuIconTemplate"></ng-template>
|
732
|
-
</ng-container>
|
733
|
-
<span class="p-panelmenu-submenu-icon" [ngClass]="processedItem.icon" *ngIf="processedItem.icon" [ngStyle]="getItemProp(processedItem, 'iconStyle')"></span>
|
734
|
-
<span class="p-panelmenu-item-label" *ngIf="getItemProp(processedItem, 'escape') !== false; else htmlRouteLabel">{{ getItemProp(processedItem, 'label') }}</span>
|
735
|
-
<ng-template #htmlRouteLabel><span class="p-panelmenu-item-label" [innerHTML]="getItemProp(processedItem, 'label')"></span></ng-template>
|
736
|
-
<span class="p-menuitem-badge" *ngIf="processedItem.badge" [ngClass]="getItemProp(processedItem, 'badgeStyleClass')">{{ getItemProp(processedItem, 'badge') }}</span>
|
737
|
-
</a>
|
738
|
-
</ng-container>
|
739
|
-
<ng-container *ngIf="itemTemplate">
|
740
|
-
<ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
|
741
|
-
</ng-container>
|
742
|
-
</div>
|
743
|
-
<div class="p-toggleable-content" [@submenu]="getAnimation(processedItem)">
|
744
|
-
<p-panelmenu-sub
|
745
|
-
*ngIf="isItemVisible(processedItem) && isItemGroup(processedItem) && isItemExpanded(processedItem)"
|
746
|
-
[id]="getItemId(processedItem) + '_list'"
|
747
|
-
[panelId]="panelId"
|
748
|
-
[items]="processedItem?.items"
|
749
|
-
[itemTemplate]="itemTemplate"
|
750
|
-
[transitionOptions]="transitionOptions"
|
751
|
-
[focusedItemId]="focusedItemId"
|
752
|
-
[activeItemPath]="activeItemPath"
|
753
|
-
[level]="level + 1"
|
754
|
-
[parentExpanded]="!!parentExpanded && isItemExpanded(processedItem)"
|
755
|
-
(itemToggle)="onItemToggle($event)"
|
756
|
-
></p-panelmenu-sub>
|
757
|
-
</div>
|
758
|
-
</li>
|
759
|
-
</ng-template>
|
760
|
-
</ul>
|
761
|
-
`,
|
762
|
-
animations: [
|
763
|
-
trigger('submenu', [
|
764
|
-
state('hidden', style({
|
765
|
-
height: '0'
|
766
|
-
})),
|
767
|
-
state('visible', style({
|
768
|
-
height: '*'
|
769
|
-
})),
|
770
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
771
|
-
transition('void => *', animate(0))
|
772
|
-
])
|
773
|
-
],
|
774
|
-
encapsulation: ViewEncapsulation.None
|
775
|
-
}]
|
776
|
-
}], null, { panelId: [{
|
777
|
-
type: Input
|
778
|
-
}], focusedItemId: [{
|
779
|
-
type: Input
|
780
|
-
}], items: [{
|
781
|
-
type: Input
|
782
|
-
}], itemTemplate: [{
|
783
|
-
type: Input
|
784
|
-
}], level: [{
|
785
|
-
type: Input,
|
786
|
-
args: [{ transform: numberAttribute }]
|
787
|
-
}], activeItemPath: [{
|
788
|
-
type: Input
|
789
|
-
}], root: [{
|
790
|
-
type: Input,
|
791
|
-
args: [{ transform: booleanAttribute }]
|
792
|
-
}], tabindex: [{
|
793
|
-
type: Input,
|
794
|
-
args: [{ transform: numberAttribute }]
|
795
|
-
}], transitionOptions: [{
|
796
|
-
type: Input
|
797
|
-
}], parentExpanded: [{
|
798
|
-
type: Input,
|
799
|
-
args: [{ transform: booleanAttribute }]
|
800
|
-
}], itemToggle: [{
|
801
|
-
type: Output
|
802
|
-
}], menuFocus: [{
|
803
|
-
type: Output
|
804
|
-
}], menuBlur: [{
|
805
|
-
type: Output
|
806
|
-
}], menuKeyDown: [{
|
807
|
-
type: Output
|
808
|
-
}], listViewChild: [{
|
809
|
-
type: ViewChild,
|
810
|
-
args: ['list']
|
811
|
-
}] }); })();
|
812
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelMenuSub, { className: "PanelMenuSub" }); })();
|
813
|
-
export class PanelMenuList extends BaseComponent {
|
814
|
-
panelId;
|
815
|
-
id;
|
816
|
-
items;
|
817
|
-
itemTemplate;
|
818
|
-
parentExpanded;
|
819
|
-
expanded;
|
820
|
-
transitionOptions;
|
821
|
-
root;
|
822
|
-
tabindex;
|
823
|
-
activeItem;
|
824
|
-
itemToggle = new EventEmitter();
|
825
|
-
headerFocus = new EventEmitter();
|
826
|
-
subMenuViewChild;
|
827
|
-
searchTimeout;
|
828
|
-
searchValue;
|
829
|
-
focused;
|
830
|
-
focusedItem = signal(null);
|
831
|
-
activeItemPath = signal([]);
|
832
|
-
processedItems = signal([]);
|
833
|
-
visibleItems = computed(() => {
|
834
|
-
const processedItems = this.processedItems();
|
835
|
-
return this.flatItems(processedItems);
|
836
|
-
});
|
837
|
-
get focusedItemId() {
|
838
|
-
const focusedItem = this.focusedItem();
|
839
|
-
return focusedItem && focusedItem.item?.id ? focusedItem.item.id : isNotEmpty(this.focusedItem()) ? `${this.panelId}_${this.focusedItem().key}` : undefined;
|
840
|
-
}
|
841
|
-
ngOnChanges(changes) {
|
842
|
-
this.processedItems.set(this.createProcessedItems(changes?.items?.currentValue || this.items || []));
|
843
|
-
}
|
844
|
-
getItemProp(processedItem, name) {
|
845
|
-
return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;
|
846
|
-
}
|
847
|
-
getItemLabel(processedItem) {
|
848
|
-
return this.getItemProp(processedItem, 'label');
|
849
|
-
}
|
850
|
-
isItemVisible(processedItem) {
|
851
|
-
return this.getItemProp(processedItem, 'visible') !== false;
|
852
|
-
}
|
853
|
-
isItemDisabled(processedItem) {
|
854
|
-
return this.getItemProp(processedItem, 'disabled');
|
855
|
-
}
|
856
|
-
isItemActive(processedItem) {
|
857
|
-
return this.activeItemPath().some((path) => path.key === processedItem.parentKey);
|
858
|
-
}
|
859
|
-
isItemGroup(processedItem) {
|
860
|
-
return isNotEmpty(processedItem.items);
|
861
|
-
}
|
862
|
-
isElementInPanel(event, element) {
|
863
|
-
const panel = event.currentTarget.closest('[data-pc-section="panel"]');
|
864
|
-
return panel && panel.contains(element);
|
865
|
-
}
|
866
|
-
isItemMatched(processedItem) {
|
867
|
-
return this.isValidItem(processedItem) && this.getItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());
|
868
|
-
}
|
869
|
-
isVisibleItem(processedItem) {
|
870
|
-
return !!processedItem && (processedItem.level === 0 || this.isItemActive(processedItem)) && this.isItemVisible(processedItem);
|
871
|
-
}
|
872
|
-
isValidItem(processedItem) {
|
873
|
-
return !!processedItem && !this.isItemDisabled(processedItem) && !processedItem.separator;
|
874
|
-
}
|
875
|
-
findFirstItem() {
|
876
|
-
return this.visibleItems().find((processedItem) => this.isValidItem(processedItem));
|
877
|
-
}
|
878
|
-
findLastItem() {
|
879
|
-
return findLast(this.visibleItems(), (processedItem) => this.isValidItem(processedItem));
|
880
|
-
}
|
881
|
-
findItemByEventTarget(target) {
|
882
|
-
let parentNode = target;
|
883
|
-
while (parentNode && parentNode.tagName?.toLowerCase() !== 'li') {
|
884
|
-
parentNode = parentNode?.parentNode;
|
885
|
-
}
|
886
|
-
return parentNode?.id && this.visibleItems().find((processedItem) => this.isValidItem(processedItem) && `${this.panelId}_${processedItem.key}` === parentNode.id);
|
887
|
-
}
|
888
|
-
createProcessedItems(items, level = 0, parent = {}, parentKey = '') {
|
889
|
-
const processedItems = [];
|
890
|
-
items &&
|
891
|
-
items.forEach((item, index) => {
|
892
|
-
const key = (parentKey !== '' ? parentKey + '_' : '') + index;
|
893
|
-
const newItem = {
|
894
|
-
icon: item.icon,
|
895
|
-
expanded: item.expanded,
|
896
|
-
separator: item.separator,
|
897
|
-
item,
|
898
|
-
index,
|
899
|
-
level,
|
900
|
-
key,
|
901
|
-
parent,
|
902
|
-
parentKey
|
903
|
-
};
|
904
|
-
newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);
|
905
|
-
processedItems.push(newItem);
|
906
|
-
});
|
907
|
-
return processedItems;
|
908
|
-
}
|
909
|
-
findProcessedItemByItemKey(key, processedItems, level = 0) {
|
910
|
-
processedItems = processedItems || this.processedItems();
|
911
|
-
if (processedItems && processedItems.length) {
|
912
|
-
for (let i = 0; i < processedItems.length; i++) {
|
913
|
-
const processedItem = processedItems[i];
|
914
|
-
if (this.getItemProp(processedItem, 'key') === key)
|
915
|
-
return processedItem;
|
916
|
-
const matchedItem = this.findProcessedItemByItemKey(key, processedItem.items, level + 1);
|
917
|
-
if (matchedItem)
|
918
|
-
return matchedItem;
|
919
|
-
}
|
920
|
-
}
|
921
|
-
}
|
922
|
-
flatItems(processedItems, processedFlattenItems = []) {
|
923
|
-
processedItems &&
|
924
|
-
processedItems.forEach((processedItem) => {
|
925
|
-
if (this.isVisibleItem(processedItem)) {
|
926
|
-
processedFlattenItems.push(processedItem);
|
927
|
-
this.flatItems(processedItem.items, processedFlattenItems);
|
928
|
-
}
|
929
|
-
});
|
930
|
-
return processedFlattenItems;
|
931
|
-
}
|
932
|
-
changeFocusedItem(event) {
|
933
|
-
const { originalEvent, processedItem, focusOnNext, selfCheck, allowHeaderFocus = true } = event;
|
934
|
-
if (isNotEmpty(this.focusedItem()) && this.focusedItem().key !== processedItem.key) {
|
935
|
-
this.focusedItem.set(processedItem);
|
936
|
-
this.scrollInView();
|
937
|
-
}
|
938
|
-
else if (allowHeaderFocus) {
|
939
|
-
this.headerFocus.emit({ originalEvent, focusOnNext, selfCheck });
|
940
|
-
}
|
941
|
-
}
|
942
|
-
scrollInView() {
|
943
|
-
const element = findSingle(this.subMenuViewChild.listViewChild.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
|
944
|
-
if (element) {
|
945
|
-
element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest' });
|
946
|
-
}
|
947
|
-
}
|
948
|
-
onFocus(event) {
|
949
|
-
if (!this.focused) {
|
950
|
-
this.focused = true;
|
951
|
-
const focusedItem = this.focusedItem() || (this.isElementInPanel(event, event.relatedTarget) ? this.findItemByEventTarget(event.target) || this.findFirstItem() : this.findLastItem());
|
952
|
-
if (event.relatedTarget !== null)
|
953
|
-
this.focusedItem.set(focusedItem);
|
954
|
-
}
|
955
|
-
}
|
956
|
-
onBlur(event) {
|
957
|
-
const target = event.relatedTarget;
|
958
|
-
if (this.focused && !this.el.nativeElement.contains(target)) {
|
959
|
-
this.focused = false;
|
960
|
-
this.focusedItem.set(null);
|
961
|
-
this.searchValue = '';
|
962
|
-
}
|
963
|
-
}
|
964
|
-
onItemToggle(event) {
|
965
|
-
const { processedItem, expanded } = event;
|
966
|
-
// Update the original item object's 'expanded' property
|
967
|
-
if (processedItem.item) {
|
968
|
-
processedItem.item.expanded = !processedItem.item.expanded;
|
969
|
-
}
|
970
|
-
// Recreate processedItems with updated 'expanded' states
|
971
|
-
this.processedItems.set(this.createProcessedItems(this.items || [], 0, {}, ''));
|
972
|
-
// Update activeItemPath
|
973
|
-
const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== processedItem.parentKey);
|
974
|
-
if (expanded) {
|
975
|
-
activeItemPath.push(processedItem);
|
976
|
-
}
|
977
|
-
this.activeItemPath.set(activeItemPath);
|
978
|
-
// Update focusedItem
|
979
|
-
this.focusedItem.set(processedItem);
|
980
|
-
}
|
981
|
-
onKeyDown(event) {
|
982
|
-
const metaKey = event.metaKey || event.ctrlKey;
|
983
|
-
switch (event.code) {
|
984
|
-
case 'ArrowDown':
|
985
|
-
this.onArrowDownKey(event);
|
986
|
-
break;
|
987
|
-
case 'ArrowUp':
|
988
|
-
this.onArrowUpKey(event);
|
989
|
-
break;
|
990
|
-
case 'ArrowLeft':
|
991
|
-
this.onArrowLeftKey(event);
|
992
|
-
break;
|
993
|
-
case 'ArrowRight':
|
994
|
-
this.onArrowRightKey(event);
|
995
|
-
break;
|
996
|
-
case 'Home':
|
997
|
-
this.onHomeKey(event);
|
998
|
-
break;
|
999
|
-
case 'End':
|
1000
|
-
this.onEndKey(event);
|
1001
|
-
break;
|
1002
|
-
case 'Space':
|
1003
|
-
this.onSpaceKey(event);
|
1004
|
-
break;
|
1005
|
-
case 'Enter':
|
1006
|
-
this.onEnterKey(event);
|
1007
|
-
break;
|
1008
|
-
case 'Escape':
|
1009
|
-
case 'Tab':
|
1010
|
-
case 'PageDown':
|
1011
|
-
case 'PageUp':
|
1012
|
-
case 'Backspace':
|
1013
|
-
case 'ShiftLeft':
|
1014
|
-
case 'ShiftRight':
|
1015
|
-
//NOOP
|
1016
|
-
break;
|
1017
|
-
default:
|
1018
|
-
if (!metaKey && isPrintableCharacter(event.key)) {
|
1019
|
-
this.searchItems(event, event.key);
|
1020
|
-
}
|
1021
|
-
break;
|
1022
|
-
}
|
1023
|
-
}
|
1024
|
-
onArrowDownKey(event) {
|
1025
|
-
const processedItem = isNotEmpty(this.focusedItem()) ? this.findNextItem(this.focusedItem()) : this.findFirstItem();
|
1026
|
-
this.changeFocusedItem({ originalEvent: event, processedItem, focusOnNext: true });
|
1027
|
-
event.preventDefault();
|
1028
|
-
}
|
1029
|
-
onArrowUpKey(event) {
|
1030
|
-
const processedItem = isNotEmpty(this.focusedItem()) ? this.findPrevItem(this.focusedItem()) : this.findLastItem();
|
1031
|
-
this.changeFocusedItem({ originalEvent: event, processedItem, selfCheck: true });
|
1032
|
-
event.preventDefault();
|
1033
|
-
}
|
1034
|
-
onArrowLeftKey(event) {
|
1035
|
-
if (isNotEmpty(this.focusedItem())) {
|
1036
|
-
const matched = this.activeItemPath().some((p) => p.key === this.focusedItem().key);
|
1037
|
-
if (matched) {
|
1038
|
-
const activeItemPath = this.activeItemPath().filter((p) => p.key !== this.focusedItem().key);
|
1039
|
-
this.activeItemPath.set(activeItemPath);
|
1040
|
-
}
|
1041
|
-
else {
|
1042
|
-
const focusedItem = isNotEmpty(this.focusedItem().parent) ? this.focusedItem().parent : this.focusedItem();
|
1043
|
-
this.focusedItem.set(focusedItem);
|
1044
|
-
}
|
1045
|
-
event.preventDefault();
|
1046
|
-
}
|
1047
|
-
}
|
1048
|
-
onArrowRightKey(event) {
|
1049
|
-
if (isNotEmpty(this.focusedItem())) {
|
1050
|
-
const grouped = this.isItemGroup(this.focusedItem());
|
1051
|
-
if (grouped) {
|
1052
|
-
const matched = this.activeItemPath().some((p) => p.key === this.focusedItem().key);
|
1053
|
-
if (matched) {
|
1054
|
-
this.onArrowDownKey(event);
|
1055
|
-
}
|
1056
|
-
else {
|
1057
|
-
const activeItemPath = this.activeItemPath().filter((p) => p.parentKey !== this.focusedItem().parentKey);
|
1058
|
-
activeItemPath.push(this.focusedItem());
|
1059
|
-
this.activeItemPath.set(activeItemPath);
|
1060
|
-
}
|
1061
|
-
}
|
1062
|
-
event.preventDefault();
|
1063
|
-
}
|
1064
|
-
}
|
1065
|
-
onHomeKey(event) {
|
1066
|
-
this.changeFocusedItem({ originalEvent: event, processedItem: this.findFirstItem(), allowHeaderFocus: false });
|
1067
|
-
event.preventDefault();
|
1068
|
-
}
|
1069
|
-
onEndKey(event) {
|
1070
|
-
this.changeFocusedItem({ originalEvent: event, processedItem: this.findLastItem(), focusOnNext: true, allowHeaderFocus: false });
|
1071
|
-
event.preventDefault();
|
1072
|
-
}
|
1073
|
-
onEnterKey(event) {
|
1074
|
-
if (isNotEmpty(this.focusedItem())) {
|
1075
|
-
const element = findSingle(this.subMenuViewChild.listViewChild.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
|
1076
|
-
const anchorElement = element && (findSingle(element, '[data-pc-section="action"]') || findSingle(element, 'a,button'));
|
1077
|
-
anchorElement ? anchorElement.click() : element && element.click();
|
1078
|
-
}
|
1079
|
-
event.preventDefault();
|
1080
|
-
}
|
1081
|
-
onSpaceKey(event) {
|
1082
|
-
this.onEnterKey(event);
|
1083
|
-
}
|
1084
|
-
findNextItem(processedItem) {
|
1085
|
-
const index = this.visibleItems().findIndex((item) => item.key === processedItem.key);
|
1086
|
-
const matchedItem = index < this.visibleItems().length - 1
|
1087
|
-
? this.visibleItems()
|
1088
|
-
.slice(index + 1)
|
1089
|
-
.find((pItem) => this.isValidItem(pItem))
|
1090
|
-
: undefined;
|
1091
|
-
return matchedItem || processedItem;
|
1092
|
-
}
|
1093
|
-
findPrevItem(processedItem) {
|
1094
|
-
const index = this.visibleItems().findIndex((item) => item.key === processedItem.key);
|
1095
|
-
const matchedItem = index > 0 ? findLast(this.visibleItems().slice(0, index), (pItem) => this.isValidItem(pItem)) : undefined;
|
1096
|
-
return matchedItem || processedItem;
|
1097
|
-
}
|
1098
|
-
searchItems(event, char) {
|
1099
|
-
this.searchValue = (this.searchValue || '') + char;
|
1100
|
-
let matchedItem = null;
|
1101
|
-
let matched = false;
|
1102
|
-
if (isNotEmpty(this.focusedItem())) {
|
1103
|
-
const focusedItemIndex = this.visibleItems().findIndex((processedItem) => processedItem.key === this.focusedItem().key);
|
1104
|
-
matchedItem = this.visibleItems()
|
1105
|
-
.slice(focusedItemIndex)
|
1106
|
-
.find((processedItem) => this.isItemMatched(processedItem));
|
1107
|
-
matchedItem = isEmpty(matchedItem)
|
1108
|
-
? this.visibleItems()
|
1109
|
-
.slice(0, focusedItemIndex)
|
1110
|
-
.find((processedItem) => this.isItemMatched(processedItem))
|
1111
|
-
: matchedItem;
|
1112
|
-
}
|
1113
|
-
else {
|
1114
|
-
matchedItem = this.visibleItems().find((processedItem) => this.isItemMatched(processedItem));
|
1115
|
-
}
|
1116
|
-
if (isNotEmpty(matchedItem)) {
|
1117
|
-
matched = true;
|
1118
|
-
}
|
1119
|
-
if (isEmpty(matchedItem) && isEmpty(this.focusedItem())) {
|
1120
|
-
matchedItem = this.findFirstItem();
|
1121
|
-
}
|
1122
|
-
if (isNotEmpty(matchedItem)) {
|
1123
|
-
this.changeFocusedItem({
|
1124
|
-
originalEvent: event,
|
1125
|
-
processedItem: matchedItem,
|
1126
|
-
allowHeaderFocus: false
|
1127
|
-
});
|
1128
|
-
}
|
1129
|
-
if (this.searchTimeout) {
|
1130
|
-
clearTimeout(this.searchTimeout);
|
1131
|
-
}
|
1132
|
-
this.searchTimeout = setTimeout(() => {
|
1133
|
-
this.searchValue = '';
|
1134
|
-
this.searchTimeout = null;
|
1135
|
-
}, 500);
|
1136
|
-
return matched;
|
1137
|
-
}
|
1138
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵPanelMenuList_BaseFactory; return function PanelMenuList_Factory(__ngFactoryType__) { return (ɵPanelMenuList_BaseFactory || (ɵPanelMenuList_BaseFactory = i0.ɵɵgetInheritedFactory(PanelMenuList)))(__ngFactoryType__ || PanelMenuList); }; })();
|
1139
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelMenuList, selectors: [["p-panelMenuList"], ["p-panel-menu-list"]], viewQuery: function PanelMenuList_Query(rf, ctx) { if (rf & 1) {
|
1140
|
-
i0.ɵɵviewQuery(_c5, 5);
|
1141
|
-
} if (rf & 2) {
|
1142
|
-
let _t;
|
1143
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.subMenuViewChild = _t.first);
|
1144
|
-
} }, inputs: { panelId: "panelId", id: "id", items: "items", itemTemplate: "itemTemplate", parentExpanded: [2, "parentExpanded", "parentExpanded", booleanAttribute], expanded: [2, "expanded", "expanded", booleanAttribute], transitionOptions: "transitionOptions", root: [2, "root", "root", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute], activeItem: "activeItem" }, outputs: { itemToggle: "itemToggle", headerFocus: "headerFocus" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 2, vars: 10, consts: [["submenu", ""], [3, "itemToggle", "keydown", "menuFocus", "menuBlur", "root", "id", "panelId", "tabindex", "itemTemplate", "focusedItemId", "activeItemPath", "transitionOptions", "items", "parentExpanded"]], template: function PanelMenuList_Template(rf, ctx) { if (rf & 1) {
|
1145
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
1146
|
-
i0.ɵɵelementStart(0, "p-panelmenu-sub", 1, 0);
|
1147
|
-
i0.ɵɵlistener("itemToggle", function PanelMenuList_Template_p_panelmenu_sub_itemToggle_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onItemToggle($event)); })("keydown", function PanelMenuList_Template_p_panelmenu_sub_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); })("menuFocus", function PanelMenuList_Template_p_panelmenu_sub_menuFocus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onFocus($event)); })("menuBlur", function PanelMenuList_Template_p_panelmenu_sub_menuBlur_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBlur($event)); });
|
1148
|
-
i0.ɵɵelementEnd();
|
1149
|
-
} if (rf & 2) {
|
1150
|
-
i0.ɵɵproperty("root", true)("id", ctx.panelId + "_list")("panelId", ctx.panelId)("tabindex", ctx.tabindex)("itemTemplate", ctx.itemTemplate)("focusedItemId", ctx.focused ? ctx.focusedItemId : undefined)("activeItemPath", ctx.activeItemPath())("transitionOptions", ctx.transitionOptions)("items", ctx.processedItems())("parentExpanded", ctx.parentExpanded);
|
1151
|
-
} }, dependencies: [CommonModule, PanelMenuSub, RouterModule, TooltipModule, SharedModule], encapsulation: 2, changeDetection: 0 });
|
1152
|
-
}
|
1153
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenuList, [{
|
1154
|
-
type: Component,
|
1155
|
-
args: [{
|
1156
|
-
selector: 'p-panelMenuList, p-panel-menu-list',
|
1157
|
-
imports: [CommonModule, PanelMenuSub, RouterModule, TooltipModule, AngleDownIcon, AngleRightIcon, ChevronDownIcon, ChevronRightIcon, SharedModule],
|
1158
|
-
standalone: true,
|
1159
|
-
template: `
|
1160
|
-
<p-panelmenu-sub
|
1161
|
-
#submenu
|
1162
|
-
[root]="true"
|
1163
|
-
[id]="panelId + '_list'"
|
1164
|
-
[panelId]="panelId"
|
1165
|
-
[tabindex]="tabindex"
|
1166
|
-
[itemTemplate]="itemTemplate"
|
1167
|
-
[focusedItemId]="focused ? focusedItemId : undefined"
|
1168
|
-
[activeItemPath]="activeItemPath()"
|
1169
|
-
[transitionOptions]="transitionOptions"
|
1170
|
-
[items]="processedItems()"
|
1171
|
-
[parentExpanded]="parentExpanded"
|
1172
|
-
(itemToggle)="onItemToggle($event)"
|
1173
|
-
(keydown)="onKeyDown($event)"
|
1174
|
-
(menuFocus)="onFocus($event)"
|
1175
|
-
(menuBlur)="onBlur($event)"
|
1176
|
-
></p-panelmenu-sub>
|
1177
|
-
`,
|
1178
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
1179
|
-
encapsulation: ViewEncapsulation.None
|
1180
|
-
}]
|
1181
|
-
}], null, { panelId: [{
|
1182
|
-
type: Input
|
1183
|
-
}], id: [{
|
1184
|
-
type: Input
|
1185
|
-
}], items: [{
|
1186
|
-
type: Input
|
1187
|
-
}], itemTemplate: [{
|
1188
|
-
type: Input
|
1189
|
-
}], parentExpanded: [{
|
1190
|
-
type: Input,
|
1191
|
-
args: [{ transform: booleanAttribute }]
|
1192
|
-
}], expanded: [{
|
1193
|
-
type: Input,
|
1194
|
-
args: [{ transform: booleanAttribute }]
|
1195
|
-
}], transitionOptions: [{
|
1196
|
-
type: Input
|
1197
|
-
}], root: [{
|
1198
|
-
type: Input,
|
1199
|
-
args: [{ transform: booleanAttribute }]
|
1200
|
-
}], tabindex: [{
|
1201
|
-
type: Input,
|
1202
|
-
args: [{ transform: numberAttribute }]
|
1203
|
-
}], activeItem: [{
|
1204
|
-
type: Input
|
1205
|
-
}], itemToggle: [{
|
1206
|
-
type: Output
|
1207
|
-
}], headerFocus: [{
|
1208
|
-
type: Output
|
1209
|
-
}], subMenuViewChild: [{
|
1210
|
-
type: ViewChild,
|
1211
|
-
args: ['submenu']
|
1212
|
-
}] }); })();
|
1213
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelMenuList, { className: "PanelMenuList" }); })();
|
1214
|
-
/**
|
1215
|
-
* PanelMenu is a hybrid of Accordion and Tree components.
|
1216
|
-
* @group Components
|
1217
|
-
*/
|
1218
|
-
export class PanelMenu extends BaseComponent {
|
1219
|
-
/**
|
1220
|
-
* An array of menuitems.
|
1221
|
-
* @group Props
|
1222
|
-
*/
|
1223
|
-
model;
|
1224
|
-
/**
|
1225
|
-
* Inline style of the component.
|
1226
|
-
* @group Props
|
1227
|
-
*/
|
1228
|
-
style;
|
1229
|
-
/**
|
1230
|
-
* Style class of the component.
|
1231
|
-
* @group Props
|
1232
|
-
*/
|
1233
|
-
styleClass;
|
1234
|
-
/**
|
1235
|
-
* Whether multiple tabs can be activated at the same time or not.
|
1236
|
-
* @group Props
|
1237
|
-
*/
|
1238
|
-
multiple = false;
|
1239
|
-
/**
|
1240
|
-
* Transition options of the animation.
|
1241
|
-
* @group Props
|
1242
|
-
*/
|
1243
|
-
transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
|
1244
|
-
/**
|
1245
|
-
* Current id state as a string.
|
1246
|
-
* @group Props
|
1247
|
-
*/
|
1248
|
-
id;
|
1249
|
-
/**
|
1250
|
-
* Index of the element in tabbing order.
|
1251
|
-
* @group Props
|
1252
|
-
*/
|
1253
|
-
tabindex = 0;
|
1254
|
-
containerViewChild;
|
1255
|
-
/**
|
1256
|
-
* Template option of submenuicon.
|
1257
|
-
* @group Templates
|
1258
|
-
*/
|
1259
|
-
submenuIconTemplate;
|
1260
|
-
/**
|
1261
|
-
* Template option of item.
|
1262
|
-
* @group Templates
|
1263
|
-
*/
|
1264
|
-
itemTemplate;
|
1265
|
-
templates;
|
1266
|
-
_submenuIconTemplate;
|
1267
|
-
_itemTemplate;
|
1268
|
-
animating;
|
1269
|
-
activeItem = signal(null);
|
1270
|
-
_componentStyle = inject(PanelMenuStyle);
|
1271
|
-
ngOnInit() {
|
1272
|
-
super.ngOnInit();
|
1273
|
-
this.id = this.id || uuid('pn_id_');
|
1274
|
-
}
|
1275
|
-
ngAfterContentInit() {
|
1276
|
-
this.templates?.forEach((item) => {
|
1277
|
-
switch (item.getType()) {
|
1278
|
-
case 'submenuicon':
|
1279
|
-
this._submenuIconTemplate = item.template;
|
1280
|
-
break;
|
1281
|
-
case 'item':
|
1282
|
-
this._itemTemplate = item.template;
|
1283
|
-
break;
|
1284
|
-
default:
|
1285
|
-
this._itemTemplate = item.template;
|
1286
|
-
break;
|
1287
|
-
}
|
1288
|
-
});
|
1289
|
-
}
|
1290
|
-
/**
|
1291
|
-
* Collapses open panels.
|
1292
|
-
* @group Method
|
1293
|
-
*/
|
1294
|
-
collapseAll() {
|
1295
|
-
for (let item of this.model) {
|
1296
|
-
if (item.expanded) {
|
1297
|
-
item.expanded = false;
|
1298
|
-
}
|
1299
|
-
}
|
1300
|
-
this.cd.detectChanges();
|
1301
|
-
}
|
1302
|
-
onToggleDone() {
|
1303
|
-
this.animating = false;
|
1304
|
-
this.cd.markForCheck();
|
1305
|
-
}
|
1306
|
-
changeActiveItem(event, item, index, selfActive = false) {
|
1307
|
-
if (!this.isItemDisabled(item)) {
|
1308
|
-
const activeItem = selfActive ? item : this.activeItem && equals(item, this.activeItem) ? null : item;
|
1309
|
-
this.activeItem.set(activeItem);
|
1310
|
-
}
|
1311
|
-
}
|
1312
|
-
getAnimation(item) {
|
1313
|
-
return item.expanded ? { value: 'visible', params: { transitionParams: this.animating ? this.transitionOptions : '0ms', height: '*' } } : { value: 'hidden', params: { transitionParams: this.transitionOptions, height: '0' } };
|
1314
|
-
}
|
1315
|
-
getItemProp(item, name) {
|
1316
|
-
return item ? resolve(item[name]) : undefined;
|
1317
|
-
}
|
1318
|
-
getItemLabel(item) {
|
1319
|
-
return this.getItemProp(item, 'label');
|
1320
|
-
}
|
1321
|
-
isItemActive(item) {
|
1322
|
-
return item.expanded;
|
1323
|
-
}
|
1324
|
-
isItemVisible(item) {
|
1325
|
-
return this.getItemProp(item, 'visible') !== false;
|
1326
|
-
}
|
1327
|
-
isItemDisabled(item) {
|
1328
|
-
return this.getItemProp(item, 'disabled');
|
1329
|
-
}
|
1330
|
-
isItemGroup(item) {
|
1331
|
-
return isNotEmpty(item.items);
|
1332
|
-
}
|
1333
|
-
getPanelId(index, item) {
|
1334
|
-
return item && item.id ? item.id : `${this.id}_${index}`;
|
1335
|
-
}
|
1336
|
-
getHeaderId(item, index) {
|
1337
|
-
return item.id ? item.id + '_header' : `${this.getPanelId(index)}_header`;
|
1338
|
-
}
|
1339
|
-
getContentId(item, index) {
|
1340
|
-
return item.id ? item.id + '_content' : `${this.getPanelId(index)}_content`;
|
1341
|
-
}
|
1342
|
-
updateFocusedHeader(event) {
|
1343
|
-
const { originalEvent, focusOnNext, selfCheck } = event;
|
1344
|
-
const panelElement = originalEvent.currentTarget.closest('[data-pc-section="panel"]');
|
1345
|
-
const header = selfCheck ? findSingle(panelElement, '[data-pc-section="header"]') : focusOnNext ? this.findNextHeader(panelElement) : this.findPrevHeader(panelElement);
|
1346
|
-
header ? this.changeFocusedHeader(originalEvent, header) : focusOnNext ? this.onHeaderHomeKey(originalEvent) : this.onHeaderEndKey(originalEvent);
|
1347
|
-
}
|
1348
|
-
changeFocusedHeader(event, element) {
|
1349
|
-
element && focus(element);
|
1350
|
-
}
|
1351
|
-
findNextHeader(panelElement, selfCheck = false) {
|
1352
|
-
const nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;
|
1353
|
-
const headerElement = findSingle(nextPanelElement, '[data-pc-section="header"]');
|
1354
|
-
return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeader(headerElement.parentElement) : headerElement) : null;
|
1355
|
-
}
|
1356
|
-
findPrevHeader(panelElement, selfCheck = false) {
|
1357
|
-
const prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;
|
1358
|
-
const headerElement = findSingle(prevPanelElement, '[data-pc-section="header"]');
|
1359
|
-
return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeader(headerElement.parentElement) : headerElement) : null;
|
1360
|
-
}
|
1361
|
-
findFirstHeader() {
|
1362
|
-
return this.findNextHeader(this.containerViewChild.nativeElement.firstElementChild, true);
|
1363
|
-
}
|
1364
|
-
findLastHeader() {
|
1365
|
-
return this.findPrevHeader(this.containerViewChild.nativeElement.lastElementChild, true);
|
1366
|
-
}
|
1367
|
-
onHeaderClick(event, item, index) {
|
1368
|
-
if (this.isItemDisabled(item)) {
|
1369
|
-
event.preventDefault();
|
1370
|
-
return;
|
1371
|
-
}
|
1372
|
-
if (item.command) {
|
1373
|
-
item.command({ originalEvent: event, item });
|
1374
|
-
}
|
1375
|
-
if (!this.multiple) {
|
1376
|
-
for (let modelItem of this.model) {
|
1377
|
-
if (item !== modelItem && modelItem.expanded) {
|
1378
|
-
modelItem.expanded = false;
|
1379
|
-
}
|
1380
|
-
}
|
1381
|
-
}
|
1382
|
-
item.expanded = !item.expanded;
|
1383
|
-
this.changeActiveItem(event, item, index);
|
1384
|
-
this.animating = true;
|
1385
|
-
focus(event.currentTarget);
|
1386
|
-
}
|
1387
|
-
onHeaderKeyDown(event, item, index) {
|
1388
|
-
switch (event.code) {
|
1389
|
-
case 'ArrowDown':
|
1390
|
-
this.onHeaderArrowDownKey(event);
|
1391
|
-
break;
|
1392
|
-
case 'ArrowUp':
|
1393
|
-
this.onHeaderArrowUpKey(event);
|
1394
|
-
break;
|
1395
|
-
case 'Home':
|
1396
|
-
this.onHeaderHomeKey(event);
|
1397
|
-
break;
|
1398
|
-
case 'End':
|
1399
|
-
this.onHeaderEndKey(event);
|
1400
|
-
break;
|
1401
|
-
case 'Enter':
|
1402
|
-
case 'Space':
|
1403
|
-
this.onHeaderEnterKey(event, item, index);
|
1404
|
-
break;
|
1405
|
-
default:
|
1406
|
-
break;
|
1407
|
-
}
|
1408
|
-
}
|
1409
|
-
onHeaderArrowDownKey(event) {
|
1410
|
-
const rootList = getAttribute(event.currentTarget, 'data-p-highlight') === true ? findSingle(event.currentTarget.nextElementSibling, '[data-pc-section="menu"]') : null;
|
1411
|
-
rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: true });
|
1412
|
-
event.preventDefault();
|
1413
|
-
}
|
1414
|
-
onHeaderArrowUpKey(event) {
|
1415
|
-
const prevHeader = this.findPrevHeader(event.currentTarget.parentElement) || this.findLastHeader();
|
1416
|
-
const rootList = getAttribute(prevHeader, 'data-p-highlight') === true ? findSingle(prevHeader.nextElementSibling, '[data-pc-section="menu"]') : null;
|
1417
|
-
rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: false });
|
1418
|
-
event.preventDefault();
|
1419
|
-
}
|
1420
|
-
onHeaderHomeKey(event) {
|
1421
|
-
this.changeFocusedHeader(event, this.findFirstHeader());
|
1422
|
-
event.preventDefault();
|
1423
|
-
}
|
1424
|
-
onHeaderEndKey(event) {
|
1425
|
-
this.changeFocusedHeader(event, this.findLastHeader());
|
1426
|
-
event.preventDefault();
|
1427
|
-
}
|
1428
|
-
onHeaderEnterKey(event, item, index) {
|
1429
|
-
const headerAction = findSingle(event.currentTarget, '[data-pc-section="headeraction"]');
|
1430
|
-
headerAction ? headerAction.click() : this.onHeaderClick(event, item, index);
|
1431
|
-
event.preventDefault();
|
1432
|
-
}
|
1433
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵPanelMenu_BaseFactory; return function PanelMenu_Factory(__ngFactoryType__) { return (ɵPanelMenu_BaseFactory || (ɵPanelMenu_BaseFactory = i0.ɵɵgetInheritedFactory(PanelMenu)))(__ngFactoryType__ || PanelMenu); }; })();
|
1434
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PanelMenu, selectors: [["p-panelMenu"], ["p-panelmenu"], ["p-panel-menu"]], contentQueries: function PanelMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
1435
|
-
i0.ɵɵcontentQuery(dirIndex, _c6, 4);
|
1436
|
-
i0.ɵɵcontentQuery(dirIndex, _c7, 4);
|
1437
|
-
i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
|
1438
|
-
} if (rf & 2) {
|
1439
|
-
let _t;
|
1440
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.submenuIconTemplate = _t.first);
|
1441
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);
|
1442
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
|
1443
|
-
} }, viewQuery: function PanelMenu_Query(rf, ctx) { if (rf & 1) {
|
1444
|
-
i0.ɵɵviewQuery(_c8, 5);
|
1445
|
-
} if (rf & 2) {
|
1446
|
-
let _t;
|
1447
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);
|
1448
|
-
} }, inputs: { model: "model", style: "style", styleClass: "styleClass", multiple: [2, "multiple", "multiple", booleanAttribute], transitionOptions: "transitionOptions", id: "id", tabindex: [2, "tabindex", "tabindex", numberAttribute] }, standalone: true, features: [i0.ɵɵProvidersFeature([PanelMenuStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 3, vars: 5, consts: [["container", ""], ["htmlLabel", ""], ["htmlRouteLabel", ""], [3, "ngStyle", "ngClass"], [4, "ngFor", "ngForOf"], ["class", "p-panelmenu-panel", 3, "ngClass", "ngStyle", 4, "ngIf"], [1, "p-panelmenu-panel", 3, "ngClass", "ngStyle"], ["role", "button", 3, "click", "keydown", "ngClass", "ngStyle", "pTooltip", "tabindex", "tooltipOptions"], [1, "p-panelmenu-header-content"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "p-panelmenu-header-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", 4, "ngIf"], ["class", "p-panelmenu-content-container", "role", "region", 3, "ngClass", 4, "ngIf"], ["class", "p-panelmenu-header-link", 3, "target", 4, "ngIf"], [1, "p-panelmenu-header-link", 3, "target"], ["class", "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle", 4, "ngIf"], ["class", "p-panelmenu-header-label", 4, "ngIf", "ngIfElse"], ["class", "p-menuitem-badge", 3, "ngClass", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass", 4, "ngIf"], [3, "styleClass"], [1, "p-panelmenu-submenu-icon", 3, "ngClass", "ngStyle"], [1, "p-panelmenu-header-label"], [1, "p-panelmenu-header-label", 3, "innerHTML"], [1, "p-menuitem-badge", 3, "ngClass"], [1, "p-panelmenu-header-link", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "target", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state"], ["role", "region", 1, "p-panelmenu-content-container", 3, "ngClass"], [1, "p-panelmenu-content"], [3, "headerFocus", "panelId", "items", "itemTemplate", "transitionOptions", "root", "activeItem", "tabindex", "parentExpanded"]], template: function PanelMenu_Template(rf, ctx) { if (rf & 1) {
|
1449
|
-
i0.ɵɵelementStart(0, "div", 3, 0);
|
1450
|
-
i0.ɵɵtemplate(2, PanelMenu_ng_container_2_Template, 2, 1, "ng-container", 4);
|
1451
|
-
i0.ɵɵelementEnd();
|
1452
|
-
} if (rf & 2) {
|
1453
|
-
i0.ɵɵclassMap(ctx.styleClass);
|
1454
|
-
i0.ɵɵproperty("ngStyle", ctx.style)("ngClass", "p-panelmenu p-component");
|
1455
|
-
i0.ɵɵadvance(2);
|
1456
|
-
i0.ɵɵproperty("ngForOf", ctx.model);
|
1457
|
-
} }, dependencies: [CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, PanelMenuList, RouterModule, i2.RouterLink, i2.RouterLinkActive, TooltipModule, i3.Tooltip, ChevronDownIcon, ChevronRightIcon, SharedModule], encapsulation: 2, data: { animation: [
|
1458
|
-
trigger('rootItem', [
|
1459
|
-
state('hidden', style({
|
1460
|
-
height: '0',
|
1461
|
-
visibility: 'hidden'
|
1462
|
-
})),
|
1463
|
-
state('visible', style({
|
1464
|
-
height: '*',
|
1465
|
-
visibility: '*'
|
1466
|
-
})),
|
1467
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
1468
|
-
transition('void => *', animate(0))
|
1469
|
-
])
|
1470
|
-
] }, changeDetection: 0 });
|
1471
|
-
}
|
1472
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenu, [{
|
1473
|
-
type: Component,
|
1474
|
-
args: [{
|
1475
|
-
selector: 'p-panelMenu, p-panelmenu, p-panel-menu',
|
1476
|
-
imports: [CommonModule, PanelMenuList, RouterModule, TooltipModule, ChevronDownIcon, ChevronRightIcon, SharedModule],
|
1477
|
-
standalone: true,
|
1478
|
-
template: `
|
1479
|
-
<div [class]="styleClass" [ngStyle]="style" [ngClass]="'p-panelmenu p-component'" #container>
|
1480
|
-
<ng-container *ngFor="let item of model; let f = first; let l = last; let i = index">
|
1481
|
-
<div *ngIf="isItemVisible(item)" class="p-panelmenu-panel" [ngClass]="getItemProp(item, 'headerClass')" [ngStyle]="getItemProp(item, 'style')" [attr.data-pc-section]="'panel'">
|
1482
|
-
<div
|
1483
|
-
[ngClass]="{
|
1484
|
-
'p-component p-panelmenu-header': true,
|
1485
|
-
'p-panelmenu-header-active': isItemActive(item) && !!item.items,
|
1486
|
-
'p-disabled': isItemDisabled(item)
|
1487
|
-
}"
|
1488
|
-
[class]="getItemProp(item, 'styleClass')"
|
1489
|
-
[ngStyle]="getItemProp(item, 'style')"
|
1490
|
-
[pTooltip]="getItemProp(item, 'tooltip')"
|
1491
|
-
[attr.id]="getHeaderId(item, i)"
|
1492
|
-
[tabindex]="0"
|
1493
|
-
role="button"
|
1494
|
-
[tooltipOptions]="getItemProp(item, 'tooltipOptions')"
|
1495
|
-
[attr.aria-expanded]="isItemActive(item)"
|
1496
|
-
[attr.aria-label]="getItemProp(item, 'label')"
|
1497
|
-
[attr.aria-controls]="getContentId(item, i)"
|
1498
|
-
[attr.aria-disabled]="isItemDisabled(item)"
|
1499
|
-
[attr.data-p-highlight]="isItemActive(item)"
|
1500
|
-
[attr.data-p-disabled]="isItemDisabled(item)"
|
1501
|
-
[attr.data-pc-section]="'header'"
|
1502
|
-
(click)="onHeaderClick($event, item, i)"
|
1503
|
-
(keydown)="onHeaderKeyDown($event, item, i)"
|
1504
|
-
>
|
1505
|
-
<div class="p-panelmenu-header-content">
|
1506
|
-
<ng-container *ngIf="!itemTemplate && !_itemTemplate">
|
1507
|
-
<a
|
1508
|
-
*ngIf="!getItemProp(item, 'routerLink')"
|
1509
|
-
[attr.href]="getItemProp(item, 'url')"
|
1510
|
-
[attr.tabindex]="-1"
|
1511
|
-
[target]="getItemProp(item, 'target')"
|
1512
|
-
[attr.title]="getItemProp(item, 'title')"
|
1513
|
-
class="p-panelmenu-header-link"
|
1514
|
-
[attr.data-pc-section]="'headeraction'"
|
1515
|
-
>
|
1516
|
-
<ng-container *ngIf="isItemGroup(item)">
|
1517
|
-
<ng-container *ngIf="!submenuIconTemplate && !_submenuIconTemplate">
|
1518
|
-
<ChevronDownIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="isItemActive(item)" />
|
1519
|
-
<ChevronRightIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="!isItemActive(item)" />
|
1520
|
-
</ng-container>
|
1521
|
-
<ng-template *ngTemplateOutlet="submenuIconTemplate || _submenuIconTemplate"></ng-template>
|
1522
|
-
</ng-container>
|
1523
|
-
<span class="p-panelmenu-submenu-icon" [ngClass]="item.icon" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
|
1524
|
-
<span class="p-panelmenu-header-label" *ngIf="getItemProp(item, 'escape') !== false; else htmlLabel">{{ getItemProp(item, 'label') }}</span>
|
1525
|
-
<ng-template #htmlLabel><span class="p-panelmenu-header-label" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
|
1526
|
-
<span class="p-menuitem-badge" *ngIf="getItemProp(item, 'badge')" [ngClass]="getItemProp(item, 'badgeStyleClass')">{{ getItemProp(item, 'badge') }}</span>
|
1527
|
-
</a>
|
1528
|
-
</ng-container>
|
1529
|
-
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
|
1530
|
-
<a
|
1531
|
-
*ngIf="getItemProp(item, 'routerLink')"
|
1532
|
-
[routerLink]="getItemProp(item, 'routerLink')"
|
1533
|
-
[queryParams]="getItemProp(item, 'queryParams')"
|
1534
|
-
[routerLinkActive]="'p-panelmenu-item-link-active'"
|
1535
|
-
[routerLinkActiveOptions]="getItemProp(item, 'routerLinkActiveOptions') || { exact: false }"
|
1536
|
-
[target]="getItemProp(item, 'target')"
|
1537
|
-
class="p-panelmenu-header-link"
|
1538
|
-
[attr.tabindex]="-1"
|
1539
|
-
[fragment]="getItemProp(item, 'fragment')"
|
1540
|
-
[queryParamsHandling]="getItemProp(item, 'queryParamsHandling')"
|
1541
|
-
[preserveFragment]="getItemProp(item, 'preserveFragment')"
|
1542
|
-
[skipLocationChange]="getItemProp(item, 'skipLocationChange')"
|
1543
|
-
[replaceUrl]="getItemProp(item, 'replaceUrl')"
|
1544
|
-
[state]="getItemProp(item, 'state')"
|
1545
|
-
[attr.data-pc-section]="'headeraction'"
|
1546
|
-
>
|
1547
|
-
<ng-container *ngIf="isItemGroup(item)">
|
1548
|
-
<ng-container *ngIf="!submenuIconTemplate && !_submenuIconTemplate">
|
1549
|
-
<ChevronDownIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="isItemActive(item)" />
|
1550
|
-
<ChevronRightIcon [styleClass]="'p-panelmenu-submenu-icon'" *ngIf="!isItemActive(item)" />
|
1551
|
-
</ng-container>
|
1552
|
-
<ng-template *ngTemplateOutlet="submenuIconTemplate || _submenuIconTemplate"></ng-template>
|
1553
|
-
</ng-container>
|
1554
|
-
<span class="p-panelmenu-submenu-icon" [ngClass]="item.icon" *ngIf="item.icon" [ngStyle]="getItemProp(item, 'iconStyle')"></span>
|
1555
|
-
<span class="p-panelmenu-header-label" *ngIf="getItemProp(item, 'escape') !== false; else htmlRouteLabel">{{ getItemProp(item, 'label') }}</span>
|
1556
|
-
<ng-template #htmlRouteLabel><span class="p-panelmenu-header-label" [innerHTML]="getItemProp(item, 'label')"></span></ng-template>
|
1557
|
-
<span class="p-menuitem-badge" *ngIf="getItemProp(item, 'badge')" [ngClass]="getItemProp(item, 'badgeStyleClass')">{{ getItemProp(item, 'badge') }}</span>
|
1558
|
-
</a>
|
1559
|
-
</div>
|
1560
|
-
</div>
|
1561
|
-
<div
|
1562
|
-
*ngIf="isItemGroup(item)"
|
1563
|
-
class="p-panelmenu-content-container"
|
1564
|
-
[@rootItem]="getAnimation(item)"
|
1565
|
-
(@rootItem.done)="onToggleDone()"
|
1566
|
-
role="region"
|
1567
|
-
[attr.id]="getContentId(item, i)"
|
1568
|
-
[attr.aria-labelledby]="getHeaderId(item, i)"
|
1569
|
-
[attr.data-pc-section]="'toggleablecontent'"
|
1570
|
-
[ngClass]="{ 'p-panelmenu-expanded': isItemActive(item) }"
|
1571
|
-
>
|
1572
|
-
<div class="p-panelmenu-content" [attr.data-pc-section]="'menucontent'">
|
1573
|
-
<p-panelMenuList
|
1574
|
-
[panelId]="getPanelId(i, item)"
|
1575
|
-
[items]="getItemProp(item, 'items')"
|
1576
|
-
[itemTemplate]="itemTemplate || _itemTemplate"
|
1577
|
-
[transitionOptions]="transitionOptions"
|
1578
|
-
[root]="true"
|
1579
|
-
[activeItem]="activeItem()"
|
1580
|
-
[tabindex]="tabindex"
|
1581
|
-
[parentExpanded]="isItemActive(item)"
|
1582
|
-
(headerFocus)="updateFocusedHeader($event)"
|
1583
|
-
></p-panelMenuList>
|
1584
|
-
</div>
|
1585
|
-
</div>
|
1586
|
-
</div>
|
1587
|
-
</ng-container>
|
1588
|
-
</div>
|
1589
|
-
`,
|
1590
|
-
animations: [
|
1591
|
-
trigger('rootItem', [
|
1592
|
-
state('hidden', style({
|
1593
|
-
height: '0',
|
1594
|
-
visibility: 'hidden'
|
1595
|
-
})),
|
1596
|
-
state('visible', style({
|
1597
|
-
height: '*',
|
1598
|
-
visibility: '*'
|
1599
|
-
})),
|
1600
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
1601
|
-
transition('void => *', animate(0))
|
1602
|
-
])
|
1603
|
-
],
|
1604
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
1605
|
-
encapsulation: ViewEncapsulation.None,
|
1606
|
-
providers: [PanelMenuStyle]
|
1607
|
-
}]
|
1608
|
-
}], null, { model: [{
|
1609
|
-
type: Input
|
1610
|
-
}], style: [{
|
1611
|
-
type: Input
|
1612
|
-
}], styleClass: [{
|
1613
|
-
type: Input
|
1614
|
-
}], multiple: [{
|
1615
|
-
type: Input,
|
1616
|
-
args: [{ transform: booleanAttribute }]
|
1617
|
-
}], transitionOptions: [{
|
1618
|
-
type: Input
|
1619
|
-
}], id: [{
|
1620
|
-
type: Input
|
1621
|
-
}], tabindex: [{
|
1622
|
-
type: Input,
|
1623
|
-
args: [{ transform: numberAttribute }]
|
1624
|
-
}], containerViewChild: [{
|
1625
|
-
type: ViewChild,
|
1626
|
-
args: ['container']
|
1627
|
-
}], submenuIconTemplate: [{
|
1628
|
-
type: ContentChild,
|
1629
|
-
args: ['submenuicon', { descendants: false }]
|
1630
|
-
}], itemTemplate: [{
|
1631
|
-
type: ContentChild,
|
1632
|
-
args: ['item', { descendants: false }]
|
1633
|
-
}], templates: [{
|
1634
|
-
type: ContentChildren,
|
1635
|
-
args: [PrimeTemplate]
|
1636
|
-
}] }); })();
|
1637
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PanelMenu, { className: "PanelMenu" }); })();
|
1638
|
-
export class PanelMenuModule {
|
1639
|
-
static ɵfac = function PanelMenuModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PanelMenuModule)(); };
|
1640
|
-
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PanelMenuModule });
|
1641
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [PanelMenu, SharedModule, SharedModule] });
|
1642
|
-
}
|
1643
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PanelMenuModule, [{
|
1644
|
-
type: NgModule,
|
1645
|
-
args: [{
|
1646
|
-
imports: [PanelMenu, SharedModule],
|
1647
|
-
exports: [PanelMenu, SharedModule]
|
1648
|
-
}]
|
1649
|
-
}], null, null); })();
|
1650
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PanelMenuModule, { imports: [PanelMenu, SharedModule], exports: [PanelMenu, SharedModule] }); })();
|
1651
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWxtZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhbmVsbWVudS9wYW5lbG1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUVmLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsZUFBZSxFQUVmLE1BQU0sRUFFTixNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUksT0FBTyxFQUFZLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7OztJQW9CeEMsd0JB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QVM7QUFpUnRCLE1BQU0sT0FBTyxlQUFlO3lHQUFmLGVBQWU7NERBQWYsZUFBZTtnRUFIZCxTQUFTLEVBQUUsWUFBWSxFQUNaLFlBQVk7O2lGQUV4QixlQUFlO2NBSjNCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDO2FBQ3JDOzt3RkFDWSxlQUFlLGNBalJmLFNBQVMsRUE4UUcsWUFBWSxhQTlReEIsU0FBUyxFQStRRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIHNpZ25hbCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBlcXVhbHMsIGZpbmRMYXN0LCBmaW5kU2luZ2xlLCBmb2N1cywgZ2V0QXR0cmlidXRlLCBpc0VtcHR5LCBpc05vdEVtcHR5LCBpc1ByaW50YWJsZUNoYXJhY3RlciwgcmVzb2x2ZSwgdXVpZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBNZW51SXRlbSwgUHJpbWVUZW1wbGF0ZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmdsZURvd25JY29uLCBBbmdsZVJpZ2h0SWNvbiwgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uUmlnaHRJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IFBhbmVsTWVudVN0eWxlIH0gZnJvbSAnLi9zdHlsZS9wYW5lbG1lbnVzdHlsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1wYW5lbE1lbnVTdWIsIHAtcGFuZWxtZW51LXN1YicsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBBbmdsZURvd25JY29uLCBBbmdsZVJpZ2h0SWNvbiwgU2hhcmVkTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDx1bFxuICAgICAgICAgICAgI2xpc3RcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtcGFuZWxtZW51LXN1Ym1lbnUnOiB0cnVlIH1cIlxuICAgICAgICAgICAgcm9sZT1cInRyZWVcIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJmb2N1c2VkSXRlbUlkXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbWVudSdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXBhcmVudEV4cGFuZGVkXCJcbiAgICAgICAgICAgIChmb2N1c2luKT1cIm1lbnVGb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKGZvY3Vzb3V0KT1cIm1lbnVCbHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJtZW51S2V5RG93bi5lbWl0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXByb2Nlc3NlZEl0ZW0gbGV0LWluZGV4PVwiaW5kZXhcIiBbbmdGb3JPZl09XCJpdGVtc1wiPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInByb2Nlc3NlZEl0ZW0uc2VwYXJhdG9yXCIgY2xhc3M9XCJwLW1lbnVpdGVtLXNlcGFyYXRvclwiIHJvbGU9XCJzZXBhcmF0b3JcIj48L2xpPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFwcm9jZXNzZWRJdGVtLnNlcGFyYXRvciAmJiBpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SXRlbUNsYXNzKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cInRyZWVpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnbGFiZWwnKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkgPyBpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImxldmVsICsgMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJnZXRBcmlhU2V0U2l6ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJnZXRBcmlhUG9zSW5zZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzdHlsZUNsYXNzJylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MucC1oaWRkZW5dPVwicHJvY2Vzc2VkSXRlbS52aXNpYmxlID09PSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5wLWZvY3VzXT1cImlzSXRlbUZvY3VzZWQocHJvY2Vzc2VkSXRlbSkgJiYgIWlzSXRlbURpc2FibGVkKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3N0eWxlJylcIlxuICAgICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3Rvb2x0aXAnKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcC1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwT3B0aW9uc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndG9vbHRpcE9wdGlvbnMnKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1wYW5lbG1lbnUtaXRlbS1jb250ZW50XCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgcHJvY2Vzc2VkSXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3JvdXRlckxpbmsnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3VybCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXBhbmVsbWVudS1pdGVtLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWRpc2FibGVkJzogZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2Rpc2FibGVkJykgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3RhcmdldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidhY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiISFwYXJlbnRFeHBhbmRlZCA/ICcwJyA6ICctMSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhbmVsTWVudS5zdWJtZW51SWNvblRlbXBsYXRlICYmICFwYW5lbE1lbnUuX3N1Ym1lbnVJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVEb3duSWNvbiBbc3R5bGVDbGFzc109XCIncC1wYW5lbG1lbnUtc3VibWVudS1pY29uJ1wiICpuZ0lmPVwiaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pXCIgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ljb25TdHlsZScpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVSaWdodEljb24gW3N0eWxlQ2xhc3NdPVwiJ3AtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbidcIiAqbmdJZj1cIiFpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSlcIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvblN0eWxlJylcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lbE1lbnUuc3VibWVudUljb25UZW1wbGF0ZSB8fCBwYW5lbE1lbnUuX3N1Ym1lbnVJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1zdWJtZW51LWljb25cIiBbbmdDbGFzc109XCJwcm9jZXNzZWRJdGVtLmljb25cIiAqbmdJZj1cInByb2Nlc3NlZEl0ZW0uaWNvblwiIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1pdGVtLWxhYmVsXCIgKm5nSWY9XCJwcm9jZXNzZWRJdGVtLml0ZW0/LmVzY2FwZSAhPT0gZmFsc2U7IGVsc2UgaHRtbExhYmVsXCI+e3sgZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaHRtbExhYmVsPjxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaXRlbS1sYWJlbFwiIFtpbm5lckhUTUxdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJylcIj48L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLW1lbnVpdGVtLWJhZGdlXCIgKm5nSWY9XCJwcm9jZXNzZWRJdGVtLmJhZGdlXCIgW25nQ2xhc3NdPVwicHJvY2Vzc2VkSXRlbS5iYWRnZVN0eWxlQ2xhc3NcIj57eyBwcm9jZXNzZWRJdGVtLmJhZGdlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncm91dGVyTGluaycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdxdWVyeVBhcmFtcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiJ3AtcGFuZWxtZW51LWl0ZW0tbGluay1hY3RpdmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucycpIHx8IHsgZXhhY3Q6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtcGFuZWxtZW51LWl0ZW0tbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZGlzYWJsZWQnOiBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZGlzYWJsZWQnKSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhcmdldF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndGFyZ2V0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndGl0bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmcmFnbWVudF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZnJhZ21lbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc0hhbmRsaW5nXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdxdWVyeVBhcmFtc0hhbmRsaW5nJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJlc2VydmVGcmFnbWVudF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncHJlc2VydmVGcmFnbWVudCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NraXBMb2NhdGlvbkNoYW5nZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc2tpcExvY2F0aW9uQ2hhbmdlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVwbGFjZVVybF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncmVwbGFjZVVybCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzdGF0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidhY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiISFwYXJlbnRFeHBhbmRlZCA/ICcwJyA6ICctMSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXBhbmVsTWVudS5zdWJtZW51SWNvblRlbXBsYXRlICYmICFwYW5lbE1lbnUuX3N1Ym1lbnVJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVEb3duSWNvbiAqbmdJZj1cImlzSXRlbUFjdGl2ZShwcm9jZXNzZWRJdGVtKVwiIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ljb25TdHlsZScpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVSaWdodEljb24gKm5nSWY9XCIhaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbidcIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvblN0eWxlJylcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lbE1lbnUuc3VibWVudUljb25UZW1wbGF0ZSAmJiBwYW5lbE1lbnUuX3N1Ym1lbnVJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1zdWJtZW51LWljb25cIiBbbmdDbGFzc109XCJwcm9jZXNzZWRJdGVtLmljb25cIiAqbmdJZj1cInByb2Nlc3NlZEl0ZW0uaWNvblwiIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1pdGVtLWxhYmVsXCIgKm5nSWY9XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZXNjYXBlJykgIT09IGZhbHNlOyBlbHNlIGh0bWxSb3V0ZUxhYmVsXCI+e3sgZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaHRtbFJvdXRlTGFiZWw+PHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1pdGVtLWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnbGFiZWwnKVwiPjwvc3Bhbj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtbWVudWl0ZW0tYmFkZ2VcIiAqbmdJZj1cInByb2Nlc3NlZEl0ZW0uYmFkZ2VcIiBbbmdDbGFzc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnYmFkZ2VTdHlsZUNsYXNzJylcIj57eyBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnYmFkZ2UnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwcm9jZXNzZWRJdGVtLml0ZW0gfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXRvZ2dsZWFibGUtY29udGVudFwiIFtAc3VibWVudV09XCJnZXRBbmltYXRpb24ocHJvY2Vzc2VkSXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhbmVsbWVudS1zdWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzSXRlbVZpc2libGUocHJvY2Vzc2VkSXRlbSkgJiYgaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkgJiYgaXNJdGVtRXhwYW5kZWQocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSkgKyAnX2xpc3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFuZWxJZF09XCJwYW5lbElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwicHJvY2Vzc2VkSXRlbT8uaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNpdGlvbk9wdGlvbnNdPVwidHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb2N1c2VkSXRlbUlkXT1cImZvY3VzZWRJdGVtSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVJdGVtUGF0aF09XCJhY3RpdmVJdGVtUGF0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xldmVsXT1cImxldmVsICsgMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEV4cGFuZGVkXT1cIiEhcGFyZW50RXhwYW5kZWQgJiYgaXNJdGVtRXhwYW5kZWQocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtVG9nZ2xlKT1cIm9uSXRlbVRvZ2dsZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3AtcGFuZWxtZW51LXN1Yj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvdWw+XG4gICAgYCxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3N1Ym1lbnUnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcqJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA8PT4gaGlkZGVuJywgW2FuaW1hdGUoJ3t7dHJhbnNpdGlvblBhcmFtc319JyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFBhbmVsTWVudVN1YiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIHBhbmVsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGZvY3VzZWRJdGVtSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcblxuICAgIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGxldmVsOiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbVBhdGg6IGFueVtdO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHJvb3Q6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgdHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwYXJlbnRFeHBhbmRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBPdXRwdXQoKSBpdGVtVG9nZ2xlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpIG1lbnVGb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKSBtZW51Qmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKSBtZW51S2V5RG93bjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2xpc3QnKSBsaXN0Vmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgcGFuZWxNZW51OiBQYW5lbE1lbnUgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBQYW5lbE1lbnUpKTtcblxuICAgIGdldEl0ZW1JZChwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtLml0ZW0/LmlkID8/IGAke3RoaXMucGFuZWxJZH1fJHtwcm9jZXNzZWRJdGVtLmtleX1gO1xuICAgIH1cblxuICAgIGdldEl0ZW1LZXkocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSk7XG4gICAgfVxuXG4gICAgZ2V0SXRlbUNsYXNzKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLXBhbmVsbWVudS1pdGVtJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWRpc2FibGVkJzogdGhpcy5pc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKSxcbiAgICAgICAgICAgICdwLWZvY3VzJzogdGhpcy5pc0l0ZW1Gb2N1c2VkKHByb2Nlc3NlZEl0ZW0pXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgbmFtZT8sIHBhcmFtcz8pIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW0gJiYgcHJvY2Vzc2VkSXRlbS5pdGVtID8gcmVzb2x2ZShwcm9jZXNzZWRJdGVtLml0ZW1bbmFtZV0sIHBhcmFtcykgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2xhYmVsJyk7XG4gICAgfVxuXG4gICAgaXNJdGVtRXhwYW5kZWQocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbS5leHBhbmRlZDtcbiAgICB9XG5cbiAgICBpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0l0ZW1FeHBhbmRlZChwcm9jZXNzZWRJdGVtKSB8fCB0aGlzLmFjdGl2ZUl0ZW1QYXRoLnNvbWUoKHBhdGgpID0+IHBhdGggJiYgcGF0aC5rZXkgPT09IHByb2Nlc3NlZEl0ZW0ua2V5KTtcbiAgICB9XG5cbiAgICBpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3Zpc2libGUnKSAhPT0gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1Gb2N1c2VkKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9jdXNlZEl0ZW1JZCA9PT0gdGhpcy5nZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSk7XG4gICAgfVxuXG4gICAgaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gaXNOb3RFbXB0eShwcm9jZXNzZWRJdGVtLml0ZW1zKTtcbiAgICB9XG5cbiAgICBnZXRBbmltYXRpb24ocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkgPyB7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0aGlzLnRyYW5zaXRpb25PcHRpb25zLCBoZWlnaHQ6ICcqJyB9IH0gOiB7IHZhbHVlOiAnaGlkZGVuJywgcGFyYW1zOiB7IHRyYW5zaXRpb25QYXJhbXM6IHRoaXMudHJhbnNpdGlvbk9wdGlvbnMsIGhlaWdodDogJzAnIH0gfTtcbiAgICB9XG5cbiAgICBnZXRBcmlhU2V0U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmlsdGVyKChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzSXRlbVZpc2libGUocHJvY2Vzc2VkSXRlbSkgJiYgIXRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3NlcGFyYXRvcicpKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgZ2V0QXJpYVBvc0luc2V0KGluZGV4KSB7XG4gICAgICAgIHJldHVybiBpbmRleCAtIHRoaXMuaXRlbXMuc2xpY2UoMCwgaW5kZXgpLmZpbHRlcigocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3NlcGFyYXRvcicpKS5sZW5ndGggKyAxO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2ZW50LCBwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKSkge1xuICAgICAgICAgICAgdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnY29tbWFuZCcsIHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGl0ZW06IHByb2Nlc3NlZEl0ZW0uaXRlbSB9KTtcbiAgICAgICAgICAgIHRoaXMuaXRlbVRvZ2dsZS5lbWl0KHsgcHJvY2Vzc2VkSXRlbSwgZXhwYW5kZWQ6ICF0aGlzLmlzSXRlbUFjdGl2ZShwcm9jZXNzZWRJdGVtKSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbVRvZ2dsZShldmVudCkge1xuICAgICAgICB0aGlzLml0ZW1Ub2dnbGUuZW1pdChldmVudCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtcGFuZWxNZW51TGlzdCwgcC1wYW5lbC1tZW51LWxpc3QnLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFBhbmVsTWVudVN1YiwgUm91dGVyTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBBbmdsZURvd25JY29uLCBBbmdsZVJpZ2h0SWNvbiwgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uUmlnaHRJY29uLCBTaGFyZWRNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHAtcGFuZWxtZW51LXN1YlxuICAgICAgICAgICAgI3N1Ym1lbnVcbiAgICAgICAgICAgIFtyb290XT1cInRydWVcIlxuICAgICAgICAgICAgW2lkXT1cInBhbmVsSWQgKyAnX2xpc3QnXCJcbiAgICAgICAgICAgIFtwYW5lbElkXT1cInBhbmVsSWRcIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtmb2N1c2VkSXRlbUlkXT1cImZvY3VzZWQgPyBmb2N1c2VkSXRlbUlkIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFthY3RpdmVJdGVtUGF0aF09XCJhY3RpdmVJdGVtUGF0aCgpXCJcbiAgICAgICAgICAgIFt0cmFuc2l0aW9uT3B0aW9uc109XCJ0cmFuc2l0aW9uT3B0aW9uc1wiXG4gICAgICAgICAgICBbaXRlbXNdPVwicHJvY2Vzc2VkSXRlbXMoKVwiXG4gICAgICAgICAgICBbcGFyZW50RXhwYW5kZWRdPVwicGFyZW50RXhwYW5kZWRcIlxuICAgICAgICAgICAgKGl0ZW1Ub2dnbGUpPVwib25JdGVtVG9nZ2xlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgKG1lbnVGb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgKG1lbnVCbHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAgICAgPjwvcC1wYW5lbG1lbnUtc3ViPlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbE1lbnVMaXN0IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcGFuZWxJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTtcblxuICAgIEBJbnB1dCgpIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwYXJlbnRFeHBhbmRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBleHBhbmRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHRyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgcm9vdDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYmluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBhY3RpdmVJdGVtOiBhbnk7XG5cbiAgICBAT3V0cHV0KCkgaXRlbVRvZ2dsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoKSBoZWFkZXJGb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3N1Ym1lbnUnKSBzdWJNZW51Vmlld0NoaWxkOiBQYW5lbE1lbnVTdWI7XG5cbiAgICBzZWFyY2hUaW1lb3V0OiBhbnk7XG5cbiAgICBzZWFyY2hWYWx1ZTogYW55O1xuXG4gICAgZm9jdXNlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIGZvY3VzZWRJdGVtID0gc2lnbmFsPGFueT4obnVsbCk7XG5cbiAgICBhY3RpdmVJdGVtUGF0aCA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gICAgcHJvY2Vzc2VkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICAgIHZpc2libGVJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbXMgPSB0aGlzLnByb2Nlc3NlZEl0ZW1zKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmZsYXRJdGVtcyhwcm9jZXNzZWRJdGVtcyk7XG4gICAgfSk7XG5cbiAgICBnZXQgZm9jdXNlZEl0ZW1JZCgpIHtcbiAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmZvY3VzZWRJdGVtKCk7XG4gICAgICAgIHJldHVybiBmb2N1c2VkSXRlbSAmJiBmb2N1c2VkSXRlbS5pdGVtPy5pZCA/IGZvY3VzZWRJdGVtLml0ZW0uaWQgOiBpc05vdEVtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkgPyBgJHt0aGlzLnBhbmVsSWR9XyR7dGhpcy5mb2N1c2VkSXRlbSgpLmtleX1gIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzZWRJdGVtcy5zZXQodGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyhjaGFuZ2VzPy5pdGVtcz8uY3VycmVudFZhbHVlIHx8IHRoaXMuaXRlbXMgfHwgW10pKTtcbiAgICB9XG5cbiAgICBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtICYmIHByb2Nlc3NlZEl0ZW0uaXRlbSA/IHJlc29sdmUocHJvY2Vzc2VkSXRlbS5pdGVtW25hbWVdKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRJdGVtTGFiZWwocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnbGFiZWwnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3Zpc2libGUnKSAhPT0gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtUGF0aCgpLnNvbWUoKHBhdGgpID0+IHBhdGgua2V5ID09PSBwcm9jZXNzZWRJdGVtLnBhcmVudEtleSk7XG4gICAgfVxuXG4gICAgaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gaXNOb3RFbXB0eShwcm9jZXNzZWRJdGVtLml0ZW1zKTtcbiAgICB9XG5cbiAgICBpc0VsZW1lbnRJblBhbmVsKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHBhbmVsID0gZXZlbnQuY3VycmVudFRhcmdldC5jbG9zZXN0KCdbZGF0YS1wYy1zZWN0aW9uPVwicGFuZWxcIl0nKTtcblxuICAgICAgICByZXR1cm4gcGFuZWwgJiYgcGFuZWwuY29udGFpbnMoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgaXNJdGVtTWF0Y2hlZChwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pICYmIHRoaXMuZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pLnRvTG9jYWxlTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCh0aGlzLnNlYXJjaFZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkpO1xuICAgIH1cblxuICAgIGlzVmlzaWJsZUl0ZW0ocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gISFwcm9jZXNzZWRJdGVtICYmIChwcm9jZXNzZWRJdGVtLmxldmVsID09PSAwIHx8IHRoaXMuaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pKSAmJiB0aGlzLmlzSXRlbVZpc2libGUocHJvY2Vzc2VkSXRlbSk7XG4gICAgfVxuXG4gICAgaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gISFwcm9jZXNzZWRJdGVtICYmICF0aGlzLmlzSXRlbURpc2FibGVkKHByb2Nlc3NlZEl0ZW0pICYmICFwcm9jZXNzZWRJdGVtLnNlcGFyYXRvcjtcbiAgICB9XG5cbiAgICBmaW5kRmlyc3RJdGVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlSXRlbXMoKS5maW5kKChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pKTtcbiAgICB9XG5cbiAgICBmaW5kTGFzdEl0ZW0oKSB7XG4gICAgICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLnZpc2libGVJdGVtcygpLCAocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSk7XG4gICAgfVxuXG4gICAgZmluZEl0ZW1CeUV2ZW50VGFyZ2V0KHRhcmdldDogRXZlbnRUYXJnZXQpOiB1bmRlZmluZWQgfCBhbnkge1xuICAgICAgICBsZXQgcGFyZW50Tm9kZSA9IHRhcmdldCBhcyBQYXJlbnROb2RlICYgRWxlbWVudDtcblxuICAgICAgICB3aGlsZSAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLnRhZ05hbWU/LnRvTG93ZXJDYXNlKCkgIT09ICdsaScpIHtcbiAgICAgICAgICAgIHBhcmVudE5vZGUgPSBwYXJlbnROb2RlPy5wYXJlbnROb2RlIGFzIEVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyZW50Tm9kZT8uaWQgJiYgdGhpcy52aXNpYmxlSXRlbXMoKS5maW5kKChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pICYmIGAke3RoaXMucGFuZWxJZH1fJHtwcm9jZXNzZWRJdGVtLmtleX1gID09PSBwYXJlbnROb2RlLmlkKTtcbiAgICB9XG5cbiAgICBjcmVhdGVQcm9jZXNzZWRJdGVtcyhpdGVtcywgbGV2ZWwgPSAwLCBwYXJlbnQgPSB7fSwgcGFyZW50S2V5ID0gJycpIHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbXMgPSBbXTtcbiAgICAgICAgaXRlbXMgJiZcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gKHBhcmVudEtleSAhPT0gJycgPyBwYXJlbnRLZXkgKyAnXycgOiAnJykgKyBpbmRleDtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdJdGVtID0ge1xuICAgICAgICAgICAgICAgICAgICBpY29uOiBpdGVtLmljb24sXG4gICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkOiBpdGVtLmV4cGFuZGVkLFxuICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3I6IGl0ZW0uc2VwYXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRLZXlcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgbmV3SXRlbVsnaXRlbXMnXSA9IHRoaXMuY3JlYXRlUHJvY2Vzc2VkSXRlbXMoaXRlbS5pdGVtcywgbGV2ZWwgKyAxLCBuZXdJdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW1zLnB1c2gobmV3SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW1zO1xuICAgIH1cblxuICAgIGZpbmRQcm9jZXNzZWRJdGVtQnlJdGVtS2V5KGtleSwgcHJvY2Vzc2VkSXRlbXM/LCBsZXZlbCA9IDApIHtcbiAgICAgICAgcHJvY2Vzc2VkSXRlbXMgPSBwcm9jZXNzZWRJdGVtcyB8fCB0aGlzLnByb2Nlc3NlZEl0ZW1zKCk7XG4gICAgICAgIGlmIChwcm9jZXNzZWRJdGVtcyAmJiBwcm9jZXNzZWRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvY2Vzc2VkSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gcHJvY2Vzc2VkSXRlbXNbaV07XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAna2V5JykgPT09IGtleSkgcmV0dXJuIHByb2Nlc3NlZEl0ZW07XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlZEl0ZW0gPSB0aGlzLmZpbmRQcm9jZXNzZWRJdGVtQnlJdGVtS2V5KGtleSwgcHJvY2Vzc2VkSXRlbS5pdGVtcywgbGV2ZWwgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hlZEl0ZW0pIHJldHVybiBtYXRjaGVkSXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZsYXRJdGVtcyhwcm9jZXNzZWRJdGVtcywgcHJvY2Vzc2VkRmxhdHRlbkl0ZW1zID0gW10pIHtcbiAgICAgICAgcHJvY2Vzc2VkSXRlbXMgJiZcbiAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW1zLmZvckVhY2goKHByb2Nlc3NlZEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1Zpc2libGVJdGVtKHByb2Nlc3NlZEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZEZsYXR0ZW5JdGVtcy5wdXNoKHByb2Nlc3NlZEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZsYXRJdGVtcyhwcm9jZXNzZWRJdGVtLml0ZW1zLCBwcm9jZXNzZWRGbGF0dGVuSXRlbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRGbGF0dGVuSXRlbXM7XG4gICAgfVxuXG4gICAgY2hhbmdlRm9jdXNlZEl0ZW0oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBvcmlnaW5hbEV2ZW50LCBwcm9jZXNzZWRJdGVtLCBmb2N1c09uTmV4dCwgc2VsZkNoZWNrLCBhbGxvd0hlYWRlckZvY3VzID0gdHJ1ZSB9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKGlzTm90RW1wdHkodGhpcy5mb2N1c2VkSXRlbSgpKSAmJiB0aGlzLmZvY3VzZWRJdGVtKCkua2V5ICE9PSBwcm9jZXNzZWRJdGVtLmtleSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbS5zZXQocHJvY2Vzc2VkSXRlbSk7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbEluVmlldygpO1xuICAgICAgICB9IGVsc2UgaWYgKGFsbG93SGVhZGVyRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyRm9jdXMuZW1pdCh7IG9yaWdpbmFsRXZlbnQsIGZvY3VzT25OZXh0LCBzZWxmQ2hlY2sgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzY3JvbGxJblZpZXcoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBmaW5kU2luZ2xlKHRoaXMuc3ViTWVudVZpZXdDaGlsZC5saXN0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQsIGBsaVtpZD1cIiR7YCR7dGhpcy5mb2N1c2VkSXRlbUlkfWB9XCJdYCk7XG5cbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcgJiYgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ25lYXJlc3QnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cyhldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gdGhpcy5mb2N1c2VkSXRlbSgpIHx8ICh0aGlzLmlzRWxlbWVudEluUGFuZWwoZXZlbnQsIGV2ZW50LnJlbGF0ZWRUYXJnZXQpID8gdGhpcy5maW5kSXRlbUJ5RXZlbnRUYXJnZXQoZXZlbnQudGFyZ2V0KSB8fCB0aGlzLmZpbmRGaXJzdEl0ZW0oKSA6IHRoaXMuZmluZExhc3RJdGVtKCkpO1xuICAgICAgICAgICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQgIT09IG51bGwpIHRoaXMuZm9jdXNlZEl0ZW0uc2V0KGZvY3VzZWRJdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQmx1cihldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0O1xuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgIXRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW0uc2V0KG51bGwpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtVG9nZ2xlKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHsgcHJvY2Vzc2VkSXRlbSwgZXhwYW5kZWQgfSA9IGV2ZW50O1xuXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgb3JpZ2luYWwgaXRlbSBvYmplY3QncyAnZXhwYW5kZWQnIHByb3BlcnR5XG4gICAgICAgIGlmIChwcm9jZXNzZWRJdGVtLml0ZW0pIHtcbiAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW0uaXRlbS5leHBhbmRlZCA9ICFwcm9jZXNzZWRJdGVtLml0ZW0uZXhwYW5kZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWNyZWF0ZSBwcm9jZXNzZWRJdGVtcyB3aXRoIHVwZGF0ZWQgJ2V4cGFuZGVkJyBzdGF0ZXNcbiAgICAgICAgdGhpcy5wcm9jZXNzZWRJdGVtcy5zZXQodGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyh0aGlzLml0ZW1zIHx8IFtdLCAwLCB7fSwgJycpKTtcblxuICAgICAgICAvLyBVcGRhdGUgYWN0aXZlSXRlbVBhdGhcbiAgICAgICAgY29uc3QgYWN0aXZlSXRlbVBhdGggPSB0aGlzLmFjdGl2ZUl0ZW1QYXRoKCkuZmlsdGVyKChwKSA9PiBwLnBhcmVudEtleSAhPT0gcHJvY2Vzc2VkSXRlbS5wYXJlbnRLZXkpO1xuICAgICAgICBpZiAoZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIGFjdGl2ZUl0ZW1QYXRoLnB1c2gocHJvY2Vzc2VkSXRlbSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3RpdmVJdGVtUGF0aC5zZXQoYWN0aXZlSXRlbVBhdGgpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBmb2N1c2VkSXRlbVxuICAgICAgICB0aGlzLmZvY3VzZWRJdGVtLnNldChwcm9jZXNzZWRJdGVtKTtcbiAgICB9XG5cbiAgICBvbktleURvd24oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgbWV0YUtleSA9IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleTtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93RG93bktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd1VwS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dMZWZ0S2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93UmlnaHRLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSG9tZUtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVuZEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3BhY2VLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVudGVyS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgICBjYXNlICdQYWdlRG93bic6XG4gICAgICAgICAgICBjYXNlICdQYWdlVXAnOlxuICAgICAgICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ1NoaWZ0TGVmdCc6XG4gICAgICAgICAgICBjYXNlICdTaGlmdFJpZ2h0JzpcbiAgICAgICAgICAgICAgICAvL05PT1BcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAoIW1ldGFLZXkgJiYgaXNQcmludGFibGVDaGFyYWN0ZXIoZXZlbnQua2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaEl0ZW1zKGV2ZW50LCBldmVudC5rZXkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd25LZXkoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IGlzTm90RW1wdHkodGhpcy5mb2N1c2VkSXRlbSgpKSA/IHRoaXMuZmluZE5leHRJdGVtKHRoaXMuZm9jdXNlZEl0ZW0oKSkgOiB0aGlzLmZpbmRGaXJzdEl0ZW0oKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtLCBmb2N1c09uTmV4dDogdHJ1ZSB9KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gICAgb25BcnJvd1VwS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSBpc05vdEVtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkgPyB0aGlzLmZpbmRQcmV2SXRlbSh0aGlzLmZvY3VzZWRJdGVtKCkpIDogdGhpcy5maW5kTGFzdEl0ZW0oKTtcblxuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHByb2Nlc3NlZEl0ZW0sIHNlbGZDaGVjazogdHJ1ZSB9KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkFycm93TGVmdEtleShldmVudCkge1xuICAgICAgICBpZiAoaXNOb3RFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkpKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVkID0gdGhpcy5hY3RpdmVJdGVtUGF0aCgpLnNvbWUoKHApID0+IHAua2V5ID09PSB0aGlzLmZvY3VzZWRJdGVtKCkua2V5KTtcblxuICAgICAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtUGF0aCA9IHRoaXMuYWN0aXZlSXRlbVBhdGgoKS5maWx0ZXIoKHApID0+IHAua2V5ICE9PSB0aGlzLmZvY3VzZWRJdGVtKCkua2V5KTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1QYXRoLnNldChhY3RpdmVJdGVtUGF0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRJdGVtID0gaXNOb3RFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkucGFyZW50KSA/IHRoaXMuZm9jdXNlZEl0ZW0oKS5wYXJlbnQgOiB0aGlzLmZvY3VzZWRJdGVtKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbS5zZXQoZm9jdXNlZEl0ZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcnJvd1JpZ2h0S2V5KGV2ZW50KSB7XG4gICAgICAgIGlmIChpc05vdEVtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzSXRlbUdyb3VwKHRoaXMuZm9jdXNlZEl0ZW0oKSk7XG5cbiAgICAgICAgICAgIGlmIChncm91cGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuYWN0aXZlSXRlbVBhdGgoKS5zb21lKChwKSA9PiBwLmtleSA9PT0gdGhpcy5mb2N1c2VkSXRlbSgpLmtleSk7XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dEb3duS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVJdGVtUGF0aCA9IHRoaXMuYWN0aXZlSXRlbVBhdGgoKS5maWx0ZXIoKHApID0+IHAucGFyZW50S2V5ICE9PSB0aGlzLmZvY3VzZWRJdGVtKCkucGFyZW50S2V5KTtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlSXRlbVBhdGgucHVzaCh0aGlzLmZvY3VzZWRJdGVtKCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbVBhdGguc2V0KGFjdGl2ZUl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkhvbWVLZXkoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtOiB0aGlzLmZpbmRGaXJzdEl0ZW0oKSwgYWxsb3dIZWFkZXJGb2N1czogZmFsc2UgfSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25FbmRLZXkoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtOiB0aGlzLmZpbmRMYXN0SXRlbSgpLCBmb2N1c09uTmV4dDogdHJ1ZSwgYWxsb3dIZWFkZXJGb2N1czogZmFsc2UgfSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25FbnRlcktleShldmVudCkge1xuICAgICAgICBpZiAoaXNOb3RFbXB0eSh0aGlzLmZvY3VzZWRJdGVtKCkpKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gPGFueT5maW5kU2luZ2xlKHRoaXMuc3ViTWVudVZpZXdDaGlsZC5saXN0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQsIGBsaVtpZD1cIiR7YCR7dGhpcy5mb2N1c2VkSXRlbUlkfWB9XCJdYCk7XG4gICAgICAgICAgICBjb25zdCBhbmNob3JFbGVtZW50ID0gZWxlbWVudCAmJiAoPGFueT5maW5kU2luZ2xlKGVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiYWN0aW9uXCJdJykgfHwgZmluZFNpbmdsZShlbGVtZW50LCAnYSxidXR0b24nKSk7XG5cbiAgICAgICAgICAgIGFuY2hvckVsZW1lbnQgPyBhbmNob3JFbGVtZW50LmNsaWNrKCkgOiBlbGVtZW50ICYmIGVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25TcGFjZUtleShldmVudCkge1xuICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgIH1cblxuICAgIGZpbmROZXh0SXRlbShwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy52aXNpYmxlSXRlbXMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0ua2V5ID09PSBwcm9jZXNzZWRJdGVtLmtleSk7XG5cbiAgICAgICAgY29uc3QgbWF0Y2hlZEl0ZW0gPVxuICAgICAgICAgICAgaW5kZXggPCB0aGlzLnZpc2libGVJdGVtcygpLmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICA/IHRoaXMudmlzaWJsZUl0ZW1zKClcbiAgICAgICAgICAgICAgICAgICAgICAuc2xpY2UoaW5kZXggKyAxKVxuICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChwSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwSXRlbSkpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSXRlbSB8fCBwcm9jZXNzZWRJdGVtO1xuICAgIH1cblxuICAgIGZpbmRQcmV2SXRlbShwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy52aXNpYmxlSXRlbXMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0ua2V5ID09PSBwcm9jZXNzZWRJdGVtLmtleSk7XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJdGVtID0gaW5kZXggPiAwID8gZmluZExhc3QodGhpcy52aXNpYmxlSXRlbXMoKS5zbGljZSgwLCBpbmRleCksIChwSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwSXRlbSkpIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiBtYXRjaGVkSXRlbSB8fCBwcm9jZXNzZWRJdGVtO1xuICAgIH1cblxuICAgIHNlYXJjaEl0ZW1zKGV2ZW50LCBjaGFyKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAodGhpcy5zZWFyY2hWYWx1ZSB8fCAnJykgKyBjaGFyO1xuXG4gICAgICAgIGxldCBtYXRjaGVkSXRlbSA9IG51bGw7XG4gICAgICAgIGxldCBtYXRjaGVkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKGlzTm90RW1wdHkodGhpcy5mb2N1c2VkSXRlbSgpKSkge1xuICAgICAgICAgICAgY29uc3QgZm9jdXNlZEl0ZW1JbmRleCA9IHRoaXMudmlzaWJsZUl0ZW1zKCkuZmluZEluZGV4KChwcm9jZXNzZWRJdGVtKSA9PiBwcm9jZXNzZWRJdGVtLmtleSA9PT0gdGhpcy5mb2N1c2VkSXRlbSgpLmtleSk7XG5cbiAgICAgICAgICAgIG1hdGNoZWRJdGVtID0gdGhpcy52aXNpYmxlSXRlbXMoKVxuICAgICAgICAgICAgICAgIC5zbGljZShmb2N1c2VkSXRlbUluZGV4KVxuICAgICAgICAgICAgICAgIC5maW5kKChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbSkpO1xuICAgICAgICAgICAgbWF0Y2hlZEl0ZW0gPSBpc0VtcHR5KG1hdGNoZWRJdGVtKVxuICAgICAgICAgICAgICAgID8gdGhpcy52aXNpYmxlSXRlbXMoKVxuICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCBmb2N1c2VkSXRlbUluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbSkpXG4gICAgICAgICAgICAgICAgOiBtYXRjaGVkSXRlbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1hdGNoZWRJdGVtID0gdGhpcy52aXNpYmxlSXRlbXMoKS5maW5kKChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTm90RW1wdHkobWF0Y2hlZEl0ZW0pKSB7XG4gICAgICAgICAgICBtYXRjaGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0VtcHR5KG1hdGNoZWRJdGVtKSAmJiBpc0VtcHR5KHRoaXMuZm9jdXNlZEl0ZW0oKSkpIHtcbiAgICAgICAgICAgIG1hdGNoZWRJdGVtID0gdGhpcy5maW5kRmlyc3RJdGVtKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNOb3RFbXB0eShtYXRjaGVkSXRlbSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW0oe1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW06IG1hdGNoZWRJdGVtLFxuICAgICAgICAgICAgICAgIGFsbG93SGVhZGVyRm9jdXM6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2hUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBudWxsO1xuICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cbn1cblxuLyoqXG4gKiBQYW5lbE1lbnUgaXMgYSBoeWJyaWQgb2YgQWNjb3JkaW9uIGFuZCBUcmVlIGNvbXBvbmVudHMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtcGFuZWxNZW51LCBwLXBhbmVsbWVudSwgcC1wYW5lbC1tZW51JyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBQYW5lbE1lbnVMaXN0LCBSb3V0ZXJNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIENoZXZyb25Eb3duSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgU2hhcmVkTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgW2NsYXNzXT1cInN0eWxlQ2xhc3NcIiBbbmdTdHlsZV09XCJzdHlsZVwiIFtuZ0NsYXNzXT1cIidwLXBhbmVsbWVudSBwLWNvbXBvbmVudCdcIiAjY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtb2RlbDsgbGV0IGYgPSBmaXJzdDsgbGV0IGwgPSBsYXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSXRlbVZpc2libGUoaXRlbSlcIiBjbGFzcz1cInAtcGFuZWxtZW51LXBhbmVsXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2hlYWRlckNsYXNzJylcIiBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChpdGVtLCAnc3R5bGUnKVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncGFuZWwnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1jb21wb25lbnQgcC1wYW5lbG1lbnUtaGVhZGVyJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1wYW5lbG1lbnUtaGVhZGVyLWFjdGl2ZSc6IGlzSXRlbUFjdGl2ZShpdGVtKSAmJiAhIWl0ZW0uaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiBpc0l0ZW1EaXNhYmxlZChpdGVtKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3N0eWxlQ2xhc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRJdGVtUHJvcChpdGVtLCAnc3R5bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcFRvb2x0aXBdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3Rvb2x0aXAnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRIZWFkZXJJZChpdGVtLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwT3B0aW9uc109XCJnZXRJdGVtUHJvcChpdGVtLCAndG9vbHRpcE9wdGlvbnMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzSXRlbUFjdGl2ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdsYWJlbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZ2V0Q29udGVudElkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWhpZ2hsaWdodF09XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaGVhZGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25IZWFkZXJDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uSGVhZGVyS2V5RG93bigkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFuZWxtZW51LWhlYWRlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtVGVtcGxhdGUgJiYgIV9pdGVtVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWdldEl0ZW1Qcm9wKGl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJnZXRJdGVtUHJvcChpdGVtLCAndXJsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhcmdldF09XCJnZXRJdGVtUHJvcChpdGVtLCAndGFyZ2V0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGl0bGVdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3RpdGxlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXBhbmVsbWVudS1oZWFkZXItbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2hlYWRlcmFjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJdGVtR3JvdXAoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXN1Ym1lbnVJY29uVGVtcGxhdGUgJiYgIV9zdWJtZW51SWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bkljb24gW3N0eWxlQ2xhc3NdPVwiJ3AtcGFuZWxtZW51LXN1Ym1lbnUtaWNvbidcIiAqbmdJZj1cImlzSXRlbUFjdGl2ZShpdGVtKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHRJY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCIhaXNJdGVtQWN0aXZlKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJtZW51SWNvblRlbXBsYXRlIHx8IF9zdWJtZW51SWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1zdWJtZW51LWljb25cIiBbbmdDbGFzc109XCJpdGVtLmljb25cIiAqbmdJZj1cIml0ZW0uaWNvblwiIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdpY29uU3R5bGUnKVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaGVhZGVyLWxhYmVsXCIgKm5nSWY9XCJnZXRJdGVtUHJvcChpdGVtLCAnZXNjYXBlJykgIT09IGZhbHNlOyBlbHNlIGh0bWxMYWJlbFwiPnt7IGdldEl0ZW1Qcm9wKGl0ZW0sICdsYWJlbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNodG1sTGFiZWw+PHNwYW4gY2xhc3M9XCJwLXBhbmVsbWVudS1oZWFkZXItbGFiZWxcIiBbaW5uZXJIVE1MXT1cImdldEl0ZW1Qcm9wKGl0ZW0sICdsYWJlbCcpXCI+PC9zcGFuPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtbWVudWl0ZW0tYmFkZ2VcIiAqbmdJZj1cImdldEl0ZW1Qcm9wKGl0ZW0sICdiYWRnZScpXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2JhZGdlU3R5bGVDbGFzcycpXCI+e3sgZ2V0SXRlbVByb3AoaXRlbSwgJ2JhZGdlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJnZXRJdGVtUHJvcChpdGVtLCAncm91dGVyTGluaycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3JvdXRlckxpbmsnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZXRJdGVtUHJvcChpdGVtLCAncXVlcnlQYXJhbXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIidwLXBhbmVsbWVudS1pdGVtLWxpbmstYWN0aXZlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJnZXRJdGVtUHJvcChpdGVtLCAncm91dGVyTGlua0FjdGl2ZU9wdGlvbnMnKSB8fCB7IGV4YWN0OiBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhcmdldF09XCJnZXRJdGVtUHJvcChpdGVtLCAndGFyZ2V0JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtcGFuZWxtZW51LWhlYWRlci1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZnJhZ21lbnRdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2ZyYWdtZW50JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJnZXRJdGVtUHJvcChpdGVtLCAncXVlcnlQYXJhbXNIYW5kbGluZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3ByZXNlcnZlRnJhZ21lbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwTG9jYXRpb25DaGFuZ2VdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3NraXBMb2NhdGlvbkNoYW5nZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcGxhY2VVcmxdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ3JlcGxhY2VVcmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJnZXRJdGVtUHJvcChpdGVtLCAnc3RhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInaGVhZGVyYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJdGVtR3JvdXAoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3VibWVudUljb25UZW1wbGF0ZSAmJiAhX3N1Ym1lbnVJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvbkRvd25JY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCJpc0l0ZW1BY3RpdmUoaXRlbSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uUmlnaHRJY29uIFtzdHlsZUNsYXNzXT1cIidwLXBhbmVsbWVudS1zdWJtZW51LWljb24nXCIgKm5nSWY9XCIhaXNJdGVtQWN0aXZlKGl0ZW0pXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VibWVudUljb25UZW1wbGF0ZSB8fCBfc3VibWVudUljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFuZWxtZW51LXN1Ym1lbnUtaWNvblwiIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiICpuZ0lmPVwiaXRlbS5pY29uXCIgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2ljb25TdHlsZScpXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGFuZWxtZW51LWhlYWRlci1sYWJlbFwiICpuZ0lmPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2VzY2FwZScpICE9PSBmYWxzZTsgZWxzZSBodG1sUm91dGVMYWJlbFwiPnt7IGdldEl0ZW1Qcm9wKGl0ZW0sICdsYWJlbCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2h0bWxSb3V0ZUxhYmVsPjxzcGFuIGNsYXNzPVwicC1wYW5lbG1lbnUtaGVhZGVyLWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRJdGVtUHJvcChpdGVtLCAnbGFiZWwnKVwiPjwvc3Bhbj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtbWVudWl0ZW0tYmFkZ2VcIiAqbmdJZj1cImdldEl0ZW1Qcm9wKGl0ZW0sICdiYWRnZScpXCIgW25nQ2xhc3NdPVwiZ2V0SXRlbVByb3AoaXRlbSwgJ2JhZGdlU3R5bGVDbGFzcycpXCI+e3sgZ2V0SXRlbVByb3AoaXRlbSwgJ2JhZGdlJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzSXRlbUdyb3VwKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1wYW5lbG1lbnUtY29udGVudC1jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW0Byb290SXRlbV09XCJnZXRBbmltYXRpb24oaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKEByb290SXRlbS5kb25lKT1cIm9uVG9nZ2xlRG9uZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0Q29udGVudElkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRIZWFkZXJJZChpdGVtLCBpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3RvZ2dsZWFibGVjb250ZW50J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLXBhbmVsbWVudS1leHBhbmRlZCc6IGlzSXRlbUFjdGl2ZShpdGVtKSB9XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGFuZWxtZW51LWNvbnRlbnRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21lbnVjb250ZW50J1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhbmVsTWVudUxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhbmVsSWRdPVwiZ2V0UGFuZWxJZChpLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJnZXRJdGVtUHJvcChpdGVtLCAnaXRlbXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlIHx8IF9pdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNpdGlvbk9wdGlvbnNdPVwidHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm9vdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiYWN0aXZlSXRlbSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEV4cGFuZGVkXT1cImlzSXRlbUFjdGl2ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoZWFkZXJGb2N1cyk9XCJ1cGRhdGVGb2N1c2VkSGVhZGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3AtcGFuZWxNZW51TGlzdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcigncm9vdEl0ZW0nLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICcqJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA8PT4gaGlkZGVuJywgW2FuaW1hdGUoJ3t7dHJhbnNpdGlvblBhcmFtc319JyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1BhbmVsTWVudVN0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBQYW5lbE1lbnUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqXG4gICAgICogQW4gYXJyYXkgb2YgbWVudWl0ZW1zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIG1vZGVsOiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgbXVsdGlwbGUgdGFicyBjYW4gYmUgYWN0aXZhdGVkIGF0IHRoZSBzYW1lIHRpbWUgb3Igbm90LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBtdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRyYW5zaXRpb25PcHRpb25zOiBzdHJpbmcgPSAnNDAwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpJztcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGlkIHN0YXRlIGFzIGEgc3RyaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5kZXggb2YgdGhlIGVsZW1lbnQgaW4gdGFiYmluZyBvcmRlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lclZpZXdDaGlsZDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBvcHRpb24gb2Ygc3VibWVudWljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3N1Ym1lbnVpY29uJywgeyBkZXNjZW5kYW50czogZmFsc2UgfSkgc3VibWVudUljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBUZW1wbGF0ZSBvcHRpb24gb2YgaXRlbS5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaXRlbScsIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4gfCB1bmRlZmluZWQ7XG5cbiAgICBfc3VibWVudUljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIF9pdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgYW5pbWF0aW5nOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgYWN0aXZlSXRlbSA9IHNpZ25hbDxhbnk+KG51bGwpO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KFBhbmVsTWVudVN0eWxlKTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmlkID0gdGhpcy5pZCB8fCB1dWlkKCdwbl9pZF8nKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzPy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3VibWVudWljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdWJtZW51SWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pdGVtVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29sbGFwc2VzIG9wZW4gcGFuZWxzLlxuICAgICAqIEBncm91cCBNZXRob2RcbiAgICAgKi9cbiAgICBjb2xsYXBzZUFsbCgpIHtcbiAgICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLm1vZGVsISkge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBvblRvZ2dsZURvbmUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlQWN0aXZlSXRlbShldmVudCwgaXRlbSwgaW5kZXg/OiBudW1iZXIsIHNlbGZBY3RpdmUgPSBmYWxzZSkge1xuICAgICAgICBpZiAoIXRoaXMuaXNJdGVtRGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSBzZWxmQWN0aXZlID8gaXRlbSA6IHRoaXMuYWN0aXZlSXRlbSAmJiBlcXVhbHMoaXRlbSwgdGhpcy5hY3RpdmVJdGVtKSA/IG51bGwgOiBpdGVtO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtLnNldChhY3RpdmVJdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFuaW1hdGlvbihpdGVtOiBNZW51SXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS5leHBhbmRlZCA/IHsgdmFsdWU6ICd2aXNpYmxlJywgcGFyYW1zOiB7IHRyYW5zaXRpb25QYXJhbXM6IHRoaXMuYW5pbWF0aW5nID8gdGhpcy50cmFuc2l0aW9uT3B0aW9ucyA6ICcwbXMnLCBoZWlnaHQ6ICcqJyB9IH0gOiB7IHZhbHVlOiAnaGlkZGVuJywgcGFyYW1zOiB7IHRyYW5zaXRpb25QYXJhbXM6IHRoaXMudHJhbnNpdGlvbk9wdGlvbnMsIGhlaWdodDogJzAnIH0gfTtcbiAgICB9XG5cbiAgICBnZXRJdGVtUHJvcChpdGVtLCBuYW1lKSB7XG4gICAgICAgIHJldHVybiBpdGVtID8gcmVzb2x2ZShpdGVtW25hbWVdKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRJdGVtTGFiZWwoaXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChpdGVtLCAnbGFiZWwnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1BY3RpdmUoaXRlbSkge1xuICAgICAgICByZXR1cm4gaXRlbS5leHBhbmRlZDtcbiAgICB9XG5cbiAgICBpc0l0ZW1WaXNpYmxlKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AoaXRlbSwgJ3Zpc2libGUnKSAhPT0gZmFsc2U7XG4gICAgfVxuXG4gICAgaXNJdGVtRGlzYWJsZWQoaXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChpdGVtLCAnZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1Hcm91cChpdGVtKSB7XG4gICAgICAgIHJldHVybiBpc05vdEVtcHR5KGl0ZW0uaXRlbXMpO1xuICAgIH1cblxuICAgIGdldFBhbmVsSWQoaW5kZXgsIGl0ZW0/KSB7XG4gICAgICAgIHJldHVybiBpdGVtICYmIGl0ZW0uaWQgPyBpdGVtLmlkIDogYCR7dGhpcy5pZH1fJHtpbmRleH1gO1xuICAgIH1cblxuICAgIGdldEhlYWRlcklkKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkID8gaXRlbS5pZCArICdfaGVhZGVyJyA6IGAke3RoaXMuZ2V0UGFuZWxJZChpbmRleCl9X2hlYWRlcmA7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudElkKGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkID8gaXRlbS5pZCArICdfY29udGVudCcgOiBgJHt0aGlzLmdldFBhbmVsSWQoaW5kZXgpfV9jb250ZW50YDtcbiAgICB9XG5cbiAgICB1cGRhdGVGb2N1c2VkSGVhZGVyKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luYWxFdmVudCwgZm9jdXNPbk5leHQsIHNlbGZDaGVjayB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IG9yaWdpbmFsRXZlbnQuY3VycmVudFRhcmdldC5jbG9zZXN0KCdbZGF0YS1wYy1zZWN0aW9uPVwicGFuZWxcIl0nKTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gc2VsZkNoZWNrID8gZmluZFNpbmdsZShwYW5lbEVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaGVhZGVyXCJdJykgOiBmb2N1c09uTmV4dCA/IHRoaXMuZmluZE5leHRIZWFkZXIocGFuZWxFbGVtZW50KSA6IHRoaXMuZmluZFByZXZIZWFkZXIocGFuZWxFbGVtZW50KTtcblxuICAgICAgICBoZWFkZXIgPyB0aGlzLmNoYW5nZUZvY3VzZWRIZWFkZXIob3JpZ2luYWxFdmVudCwgaGVhZGVyKSA6IGZvY3VzT25OZXh0ID8gdGhpcy5vbkhlYWRlckhvbWVLZXkob3JpZ2luYWxFdmVudCkgOiB0aGlzLm9uSGVhZGVyRW5kS2V5KG9yaWdpbmFsRXZlbnQpO1xuICAgIH1cblxuICAgIGNoYW5nZUZvY3VzZWRIZWFkZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCAmJiBmb2N1cyhlbGVtZW50KTtcbiAgICB9XG5cbiAgICBmaW5kTmV4dEhlYWRlcihwYW5lbEVsZW1lbnQsIHNlbGZDaGVjayA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG5leHRQYW5lbEVsZW1lbnQgPSBzZWxmQ2hlY2sgPyBwYW5lbEVsZW1lbnQgOiBwYW5lbEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZmluZFNpbmdsZShuZXh0UGFuZWxFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImhlYWRlclwiXScpO1xuXG4gICAgICAgIHJldHVybiBoZWFkZXJFbGVtZW50ID8gKGdldEF0dHJpYnV0ZShoZWFkZXJFbGVtZW50LCAnZGF0YS1wLWRpc2FibGVkJykgPyB0aGlzLmZpbmROZXh0SGVhZGVyKGhlYWRlckVsZW1lbnQucGFyZW50RWxlbWVudCkgOiBoZWFkZXJFbGVtZW50KSA6IG51bGw7XG4gICAgfVxuXG4gICAgZmluZFByZXZIZWFkZXIocGFuZWxFbGVtZW50LCBzZWxmQ2hlY2sgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBwcmV2UGFuZWxFbGVtZW50ID0gc2VsZkNoZWNrID8gcGFuZWxFbGVtZW50IDogcGFuZWxFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBmaW5kU2luZ2xlKHByZXZQYW5lbEVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiaGVhZGVyXCJdJyk7XG5cbiAgICAgICAgcmV0dXJuIGhlYWRlckVsZW1lbnQgPyAoZ2V0QXR0cmlidXRlKGhlYWRlckVsZW1lbnQsICdkYXRhLXAtZGlzYWJsZWQnKSA/IHRoaXMuZmluZFByZXZIZWFkZXIoaGVhZGVyRWxlbWVudC5wYXJlbnRFbGVtZW50KSA6IGhlYWRlckVsZW1lbnQpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmaW5kRmlyc3RIZWFkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmROZXh0SGVhZGVyKHRoaXMuY29udGFpbmVyVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQsIHRydWUpO1xuICAgIH1cblxuICAgIGZpbmRMYXN0SGVhZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJldkhlYWRlcih0aGlzLmNvbnRhaW5lclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQsIHRydWUpO1xuICAgIH1cblxuICAgIG9uSGVhZGVyQ2xpY2soZXZlbnQsIGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXRlbS5jb21tYW5kKSB7XG4gICAgICAgICAgICBpdGVtLmNvbW1hbmQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgaXRlbSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgZm9yIChsZXQgbW9kZWxJdGVtIG9mIHRoaXMubW9kZWwhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gIT09IG1vZGVsSXRlbSAmJiBtb2RlbEl0ZW0uZXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZWxJdGVtLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaXRlbS5leHBhbmRlZCA9ICFpdGVtLmV4cGFuZGVkO1xuICAgICAgICB0aGlzLmNoYW5nZUFjdGl2ZUl0ZW0oZXZlbnQsIGl0ZW0sIGluZGV4KTtcbiAgICAgICAgdGhpcy5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICBmb2N1cyhldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9XG5cbiAgICBvbkhlYWRlcktleURvd24oZXZlbnQsIGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGVhZGVyQXJyb3dEb3duS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhlYWRlckFycm93VXBLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdIb21lJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGVhZGVySG9tZUtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhlYWRlckVuZEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uSGVhZGVyRW50ZXJLZXkoZXZlbnQsIGl0ZW0sIGluZGV4KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSGVhZGVyQXJyb3dEb3duS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHJvb3RMaXN0ID0gZ2V0QXR0cmlidXRlKGV2ZW50LmN1cnJlbnRUYXJnZXQsICdkYXRhLXAtaGlnaGxpZ2h0JykgPT09IHRydWUgPyA8YW55PmZpbmRTaW5nbGUoZXZlbnQuY3VycmVudFRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmcsICdbZGF0YS1wYy1zZWN0aW9uPVwibWVudVwiXScpIDogbnVsbDtcblxuICAgICAgICByb290TGlzdCA/IGZvY3VzKHJvb3RMaXN0KSA6IHRoaXMudXBkYXRlRm9jdXNlZEhlYWRlcih7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBmb2N1c09uTmV4dDogdHJ1ZSB9KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkhlYWRlckFycm93VXBLZXkoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJldkhlYWRlciA9IHRoaXMuZmluZFByZXZIZWFkZXIoZXZlbnQuY3VycmVudFRhcmdldC5wYXJlbnRFbGVtZW50KSB8fCB0aGlzLmZpbmRMYXN0SGVhZGVyKCk7XG4gICAgICAgIGNvbnN0IHJvb3RMaXN0ID0gZ2V0QXR0cmlidXRlKHByZXZIZWFkZXIsICdkYXRhLXAtaGlnaGxpZ2h0JykgPT09IHRydWUgPyA8YW55PmZpbmRTaW5nbGUocHJldkhlYWRlci5uZXh0RWxlbWVudFNpYmxpbmcsICdbZGF0YS1wYy1zZWN0aW9uPVwibWVudVwiXScpIDogbnVsbDtcblxuICAgICAgICByb290TGlzdCA/IGZvY3VzKHJvb3RMaXN0KSA6IHRoaXMudXBkYXRlRm9jdXNlZEhlYWRlcih7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBmb2N1c09uTmV4dDogZmFsc2UgfSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25IZWFkZXJIb21lS2V5KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEhlYWRlcihldmVudCwgdGhpcy5maW5kRmlyc3RIZWFkZXIoKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25IZWFkZXJFbmRLZXkoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSGVhZGVyKGV2ZW50LCB0aGlzLmZpbmRMYXN0SGVhZGVyKCkpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uSGVhZGVyRW50ZXJLZXkoZXZlbnQsIGl0ZW0sIGluZGV4KSB7XG4gICAgICAgIGNvbnN0IGhlYWRlckFjdGlvbiA9IDxhbnk+ZmluZFNpbmdsZShldmVudC5jdXJyZW50VGFyZ2V0LCAnW2RhdGEtcGMtc2VjdGlvbj1cImhlYWRlcmFjdGlvblwiXScpO1xuXG4gICAgICAgIGhlYWRlckFjdGlvbiA/IGhlYWRlckFjdGlvbi5jbGljaygpIDogdGhpcy5vbkhlYWRlckNsaWNrKGV2ZW50LCBpdGVtLCBpbmRleCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxufVxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbUGFuZWxNZW51LCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtQYW5lbE1lbnUsIFNoYXJlZE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFuZWxNZW51TW9kdWxlIHt9XG4iXX0=
|