primeng 18.0.0-rc.2 → 19.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/autocomplete/autocomplete.d.ts +11 -11
- package/base/style/basestyle.d.ts +11 -11
- package/config/primeng.d.ts +12 -6
- package/config/provideprimeng.d.ts +1 -12
- package/config/themeprovider.d.ts +10 -4
- package/confirmdialog/confirmdialog.d.ts +1 -0
- package/fesm2022/primeng-accordion.mjs +12 -12
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +1 -1
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +5 -5
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +135 -136
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +1 -1
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +2 -2
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +2 -2
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +3 -3
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +1 -1
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +2 -2
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +2 -2
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +5 -5
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +2 -2
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +3 -3
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +2 -2
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +2 -2
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +6 -6
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +2 -2
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +3 -4
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +2 -2
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +3 -3
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +39 -40
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +13 -10
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +2 -2
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +6 -6
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +2 -2
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +5 -5
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +18 -19
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -2
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +3 -4
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +2 -2
- package/fesm2022/primeng-dragdrop.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +5 -5
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +4 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +4 -4
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +2 -2
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +2 -2
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +3 -4
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +2 -2
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +2 -2
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +1 -1
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +10 -10
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +2 -2
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +2 -2
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +2 -2
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +2 -2
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +2 -2
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +2 -2
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +2 -2
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +2 -2
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +2 -2
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +2 -2
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +2 -2
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +2 -2
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +2 -2
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +2 -2
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +2 -2
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +2 -2
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +2 -2
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +2 -2
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +2 -2
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +2 -2
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +2 -2
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +2 -2
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +2 -2
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +2 -2
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +2 -2
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +2 -2
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +2 -2
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +2 -2
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +2 -2
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +2 -2
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +2 -2
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +2 -2
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +2 -2
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +2 -2
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +2 -2
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +2 -2
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +2 -2
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +2 -2
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +2 -2
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +2 -2
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +3 -3
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +2 -2
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +6 -6
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +2 -2
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +2 -2
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +4 -4
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +5 -6
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +4 -4
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +2 -2
- package/fesm2022/primeng-inputswitch.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +10 -9
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -1
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +1 -1
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +2 -2
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +2 -2
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +5 -5
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +7 -7
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +6 -6
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +2 -2
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +2 -2
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +4 -4
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +6 -9
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +4 -4
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +5 -5
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +3 -3
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +2 -2
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +7 -4
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +2 -2
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +3 -4
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +9 -9
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +30 -7
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +135 -139
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +9 -8
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +2 -2
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +2 -2
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +2 -2
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +4 -4
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +5 -2
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +2 -2
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +2 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +2 -2
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +9 -11
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +3 -4
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +4 -5
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +2 -2
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +2 -2
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +2 -2
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +2 -2
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +30 -19
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +16 -16
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +2 -2
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +1 -1
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +6392 -6520
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +2 -2
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +11 -11
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +5 -5
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +2 -2
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +2 -2
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +8 -8
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +6 -6
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +2 -2
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +6 -7
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +3 -4
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +2 -2
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +2 -2
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +5 -3
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +112 -63
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +5 -10
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +31 -29
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/inputtext/inputtext.d.ts +2 -2
- package/package.json +176 -524
- package/password/password.d.ts +5 -1
- package/popover/popover.d.ts +1 -1
- package/speeddial/speeddial.d.ts +2 -2
- package/splitter/splitter.d.ts +2 -3
- package/splitter/style/splitterstyle.d.ts +0 -13
- package/table/table.d.ts +928 -1030
- package/textarea/textarea.d.ts +2 -2
- package/tree/style/treestyle.d.ts +1 -1
- package/tree/tree.d.ts +4 -2
- package/treetable/treetable.d.ts +1 -1
- package/esm2022/accordion/accordion.mjs +0 -1266
- package/esm2022/accordion/primeng-accordion.mjs +0 -5
- package/esm2022/accordion/public_api.mjs +0 -3
- package/esm2022/accordion/style/accordionstyle.mjs +0 -163
- package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
- package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
- package/esm2022/animateonscroll/public_api.mjs +0 -2
- package/esm2022/api/blockableui.mjs +0 -2
- package/esm2022/api/confirmaeventtype.mjs +0 -10
- package/esm2022/api/confirmation.mjs +0 -2
- package/esm2022/api/confirmationservice.mjs +0 -43
- package/esm2022/api/contextmenuservice.mjs +0 -22
- package/esm2022/api/filtermatchmode.mjs +0 -23
- package/esm2022/api/filtermetadata.mjs +0 -2
- package/esm2022/api/filteroperator.mjs +0 -5
- package/esm2022/api/filterservice.mjs +0 -224
- package/esm2022/api/lazyloadevent.mjs +0 -2
- package/esm2022/api/lazyloadmeta.mjs +0 -2
- package/esm2022/api/megamenuitem.mjs +0 -2
- package/esm2022/api/menuitem.mjs +0 -2
- package/esm2022/api/messageservice.mjs +0 -47
- package/esm2022/api/overlayoptions.mjs +0 -2
- package/esm2022/api/overlayservice.mjs +0 -19
- package/esm2022/api/primeicons.mjs +0 -314
- package/esm2022/api/primeng-api.mjs +0 -5
- package/esm2022/api/public_api.mjs +0 -33
- package/esm2022/api/scrolleroptions.mjs +0 -2
- package/esm2022/api/selectitem.mjs +0 -2
- package/esm2022/api/selectitemgroup.mjs +0 -2
- package/esm2022/api/shared.mjs +0 -76
- package/esm2022/api/sortevent.mjs +0 -2
- package/esm2022/api/sortmeta.mjs +0 -2
- package/esm2022/api/tablestate.mjs +0 -2
- package/esm2022/api/toastmessage.mjs +0 -2
- package/esm2022/api/tooltipoptions.mjs +0 -2
- package/esm2022/api/translation.mjs +0 -2
- package/esm2022/api/translationkeys.mjs +0 -51
- package/esm2022/api/treedragdropservice.mjs +0 -21
- package/esm2022/api/treenode.mjs +0 -2
- package/esm2022/api/treenodedragevent.mjs +0 -2
- package/esm2022/api/treetablenode.mjs +0 -2
- package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
- package/esm2022/autocomplete/autocomplete.mjs +0 -2225
- package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/public_api.mjs +0 -4
- package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -408
- package/esm2022/autofocus/autofocus.mjs +0 -86
- package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
- package/esm2022/autofocus/public_api.mjs +0 -2
- package/esm2022/avatar/avatar.mjs +0 -193
- package/esm2022/avatar/primeng-avatar.mjs +0 -5
- package/esm2022/avatar/public_api.mjs +0 -3
- package/esm2022/avatar/style/avatarstyle.mjs +0 -130
- package/esm2022/avatargroup/avatargroup.mjs +0 -80
- package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
- package/esm2022/avatargroup/public_api.mjs +0 -3
- package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
- package/esm2022/badge/badge.mjs +0 -332
- package/esm2022/badge/primeng-badge.mjs +0 -5
- package/esm2022/badge/public_api.mjs +0 -3
- package/esm2022/badge/style/badgestyle.mjs +0 -143
- package/esm2022/base/base.mjs +0 -19
- package/esm2022/base/primeng-base.mjs +0 -5
- package/esm2022/base/public_api.mjs +0 -3
- package/esm2022/base/style/basestyle.mjs +0 -256
- package/esm2022/basecomponent/basecomponent.mjs +0 -183
- package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
- package/esm2022/basecomponent/public_api.mjs +0 -3
- package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
- package/esm2022/blockui/blockui.interface.mjs +0 -2
- package/esm2022/blockui/blockui.mjs +0 -210
- package/esm2022/blockui/primeng-blockui.mjs +0 -5
- package/esm2022/blockui/public_api.mjs +0 -4
- package/esm2022/blockui/style/blockuistyle.mjs +0 -50
- package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
- package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
- package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
- package/esm2022/breadcrumb/public_api.mjs +0 -4
- package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
- package/esm2022/button/button.interface.mjs +0 -2
- package/esm2022/button/button.mjs +0 -896
- package/esm2022/button/primeng-button.mjs +0 -5
- package/esm2022/button/public_api.mjs +0 -4
- package/esm2022/button/style/buttonstyle.mjs +0 -707
- package/esm2022/buttongroup/buttongroup.mjs +0 -47
- package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
- package/esm2022/buttongroup/public_api.mjs +0 -3
- package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
- package/esm2022/calendar/calendar.interface.mjs +0 -2
- package/esm2022/calendar/calendar.mjs +0 -4504
- package/esm2022/calendar/primeng-calendar.mjs +0 -5
- package/esm2022/calendar/public_api.mjs +0 -4
- package/esm2022/calendar/style/calendarstyle.mjs +0 -472
- package/esm2022/card/card.interface.mjs +0 -2
- package/esm2022/card/card.mjs +0 -243
- package/esm2022/card/primeng-card.mjs +0 -5
- package/esm2022/card/public_api.mjs +0 -4
- package/esm2022/card/style/cardstyle.mjs +0 -100
- package/esm2022/carousel/carousel.interface.mjs +0 -2
- package/esm2022/carousel/carousel.mjs +0 -1181
- package/esm2022/carousel/primeng-carousel.mjs +0 -5
- package/esm2022/carousel/public_api.mjs +0 -4
- package/esm2022/carousel/style/carouselstyle.mjs +0 -234
- package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
- package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
- package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
- package/esm2022/cascadeselect/public_api.mjs +0 -4
- package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
- package/esm2022/chart/chart.mjs +0 -210
- package/esm2022/chart/primeng-chart.mjs +0 -5
- package/esm2022/chart/public_api.mjs +0 -3
- package/esm2022/chart/style/chartstyle.mjs +0 -36
- package/esm2022/checkbox/checkbox.interface.mjs +0 -2
- package/esm2022/checkbox/checkbox.mjs +0 -450
- package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
- package/esm2022/checkbox/public_api.mjs +0 -4
- package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
- package/esm2022/chip/chip.interface.mjs +0 -2
- package/esm2022/chip/chip.mjs +0 -337
- package/esm2022/chip/primeng-chip.mjs +0 -5
- package/esm2022/chip/public_api.mjs +0 -4
- package/esm2022/chip/style/chipstyle.mjs +0 -104
- package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
- package/esm2022/colorpicker/colorpicker.mjs +0 -856
- package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
- package/esm2022/colorpicker/public_api.mjs +0 -4
- package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
- package/esm2022/config/primeng-config.mjs +0 -5
- package/esm2022/config/primeng.mjs +0 -189
- package/esm2022/config/provideprimeng.mjs +0 -11
- package/esm2022/config/public_api.mjs +0 -4
- package/esm2022/config/themeprovider.mjs +0 -74
- package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
- package/esm2022/confirmdialog/confirmdialog.mjs +0 -810
- package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
- package/esm2022/confirmdialog/public_api.mjs +0 -4
- package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
- package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
- package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
- package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
- package/esm2022/confirmpopup/public_api.mjs +0 -4
- package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
- package/esm2022/contextmenu/contextmenu.mjs +0 -1436
- package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
- package/esm2022/contextmenu/public_api.mjs +0 -3
- package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
- package/esm2022/dataview/dataview.interface.mjs +0 -2
- package/esm2022/dataview/dataview.mjs +0 -819
- package/esm2022/dataview/primeng-dataview.mjs +0 -5
- package/esm2022/dataview/public_api.mjs +0 -4
- package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
- package/esm2022/datepicker/datepicker.interface.mjs +0 -2
- package/esm2022/datepicker/datepicker.mjs +0 -4539
- package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
- package/esm2022/datepicker/public_api.mjs +0 -4
- package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
- package/esm2022/defer/defer.mjs +0 -100
- package/esm2022/defer/primeng-defer.mjs +0 -5
- package/esm2022/defer/public_api.mjs +0 -2
- package/esm2022/dialog/dialog.interface.mjs +0 -2
- package/esm2022/dialog/dialog.mjs +0 -1384
- package/esm2022/dialog/primeng-dialog.mjs +0 -5
- package/esm2022/dialog/public_api.mjs +0 -4
- package/esm2022/dialog/style/dialogstyle.mjs +0 -283
- package/esm2022/divider/divider.mjs +0 -119
- package/esm2022/divider/primeng-divider.mjs +0 -5
- package/esm2022/divider/public_api.mjs +0 -3
- package/esm2022/divider/style/dividerstyle.mjs +0 -138
- package/esm2022/dock/dock.interface.mjs +0 -2
- package/esm2022/dock/dock.mjs +0 -447
- package/esm2022/dock/primeng-dock.mjs +0 -5
- package/esm2022/dock/public_api.mjs +0 -4
- package/esm2022/dock/style/dockstyle.mjs +0 -210
- package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
- package/esm2022/dom/domhandler.mjs +0 -725
- package/esm2022/dom/primeng-dom.mjs +0 -5
- package/esm2022/dom/public_api.mjs +0 -3
- package/esm2022/dragdrop/dragdrop.mjs +0 -323
- package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
- package/esm2022/dragdrop/public_api.mjs +0 -2
- package/esm2022/drawer/drawer.interface.mjs +0 -2
- package/esm2022/drawer/drawer.mjs +0 -663
- package/esm2022/drawer/primeng-drawer.mjs +0 -5
- package/esm2022/drawer/public_api.mjs +0 -4
- package/esm2022/drawer/style/drawerstyle.mjs +0 -283
- package/esm2022/dropdown/dropdown.interface.mjs +0 -2
- package/esm2022/dropdown/dropdown.mjs +0 -2498
- package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
- package/esm2022/dropdown/public_api.mjs +0 -4
- package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
- package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
- package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
- package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
- package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
- package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
- package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
- package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
- package/esm2022/dynamicdialog/public_api.mjs +0 -8
- package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
- package/esm2022/editor/editor.interface.mjs +0 -2
- package/esm2022/editor/editor.mjs +0 -427
- package/esm2022/editor/primeng-editor.mjs +0 -5
- package/esm2022/editor/public_api.mjs +0 -4
- package/esm2022/editor/style/editorstyle.mjs +0 -1008
- package/esm2022/fieldset/fieldset.interface.mjs +0 -2
- package/esm2022/fieldset/fieldset.mjs +0 -427
- package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
- package/esm2022/fieldset/public_api.mjs +0 -4
- package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
- package/esm2022/fileupload/fileupload.interface.mjs +0 -2
- package/esm2022/fileupload/fileupload.mjs +0 -1597
- package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
- package/esm2022/fileupload/public_api.mjs +0 -4
- package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
- package/esm2022/floatlabel/floatlabel.mjs +0 -61
- package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
- package/esm2022/floatlabel/public_api.mjs +0 -3
- package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
- package/esm2022/fluid/fluid.mjs +0 -50
- package/esm2022/fluid/primeng-fluid.mjs +0 -5
- package/esm2022/fluid/public_api.mjs +0 -3
- package/esm2022/fluid/style/fluidstyle.mjs +0 -38
- package/esm2022/focustrap/focustrap.mjs +0 -104
- package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
- package/esm2022/focustrap/public_api.mjs +0 -2
- package/esm2022/galleria/galleria.interface.mjs +0 -2
- package/esm2022/galleria/galleria.mjs +0 -1858
- package/esm2022/galleria/primeng-galleria.mjs +0 -5
- package/esm2022/galleria/public_api.mjs +0 -4
- package/esm2022/galleria/style/galleriastyle.mjs +0 -644
- package/esm2022/iconfield/iconfield.mjs +0 -73
- package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
- package/esm2022/iconfield/public_api.mjs +0 -3
- package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
- package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
- package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
- package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
- package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
- package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
- package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
- package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
- package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
- package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
- package/esm2022/icons/angledown/angledown.mjs +0 -32
- package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
- package/esm2022/icons/angledown/public_api.mjs +0 -2
- package/esm2022/icons/angleleft/angleleft.mjs +0 -32
- package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
- package/esm2022/icons/angleleft/public_api.mjs +0 -2
- package/esm2022/icons/angleright/angleright.mjs +0 -32
- package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
- package/esm2022/icons/angleright/public_api.mjs +0 -2
- package/esm2022/icons/angleup/angleup.mjs +0 -32
- package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
- package/esm2022/icons/angleup/public_api.mjs +0 -2
- package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
- package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
- package/esm2022/icons/arrowdown/public_api.mjs +0 -2
- package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
- package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
- package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
- package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
- package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
- package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
- package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
- package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
- package/esm2022/icons/arrowleft/public_api.mjs +0 -2
- package/esm2022/icons/arrowright/arrowright.mjs +0 -34
- package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
- package/esm2022/icons/arrowright/public_api.mjs +0 -2
- package/esm2022/icons/arrowup/arrowup.mjs +0 -53
- package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
- package/esm2022/icons/arrowup/public_api.mjs +0 -2
- package/esm2022/icons/ban/ban.mjs +0 -51
- package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
- package/esm2022/icons/ban/public_api.mjs +0 -2
- package/esm2022/icons/bars/bars.mjs +0 -34
- package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
- package/esm2022/icons/bars/public_api.mjs +0 -2
- package/esm2022/icons/baseicon/baseicon.mjs +0 -54
- package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
- package/esm2022/icons/baseicon/public_api.mjs +0 -3
- package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
- package/esm2022/icons/blank/blank.mjs +0 -26
- package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
- package/esm2022/icons/blank/public_api.mjs +0 -2
- package/esm2022/icons/calendar/calendar.mjs +0 -32
- package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
- package/esm2022/icons/calendar/public_api.mjs +0 -2
- package/esm2022/icons/caretleft/caretleft.mjs +0 -32
- package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
- package/esm2022/icons/caretleft/public_api.mjs +0 -2
- package/esm2022/icons/caretright/caretright.mjs +0 -32
- package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
- package/esm2022/icons/caretright/public_api.mjs +0 -2
- package/esm2022/icons/check/check.mjs +0 -32
- package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
- package/esm2022/icons/check/public_api.mjs +0 -2
- package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
- package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
- package/esm2022/icons/chevrondown/public_api.mjs +0 -2
- package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
- package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
- package/esm2022/icons/chevronleft/public_api.mjs +0 -2
- package/esm2022/icons/chevronright/chevronright.mjs +0 -32
- package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
- package/esm2022/icons/chevronright/public_api.mjs +0 -2
- package/esm2022/icons/chevronup/chevronup.mjs +0 -32
- package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
- package/esm2022/icons/chevronup/public_api.mjs +0 -2
- package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
- package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
- package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
- package/esm2022/icons/eye/eye.mjs +0 -34
- package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
- package/esm2022/icons/eye/public_api.mjs +0 -2
- package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
- package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
- package/esm2022/icons/eyeslash/public_api.mjs +0 -2
- package/esm2022/icons/filter/filter.mjs +0 -51
- package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
- package/esm2022/icons/filter/public_api.mjs +0 -2
- package/esm2022/icons/filterslash/filterslash.mjs +0 -53
- package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
- package/esm2022/icons/filterslash/public_api.mjs +0 -2
- package/esm2022/icons/home/home.mjs +0 -53
- package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
- package/esm2022/icons/home/public_api.mjs +0 -2
- package/esm2022/icons/infocircle/infocircle.mjs +0 -53
- package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
- package/esm2022/icons/infocircle/public_api.mjs +0 -2
- package/esm2022/icons/minus/minus.mjs +0 -32
- package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
- package/esm2022/icons/minus/public_api.mjs +0 -2
- package/esm2022/icons/pencil/pencil.mjs +0 -51
- package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
- package/esm2022/icons/pencil/public_api.mjs +0 -2
- package/esm2022/icons/plus/plus.mjs +0 -51
- package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
- package/esm2022/icons/plus/public_api.mjs +0 -2
- package/esm2022/icons/primeng-icons.mjs +0 -5
- package/esm2022/icons/public_api.mjs +0 -58
- package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
- package/esm2022/icons/refresh/public_api.mjs +0 -2
- package/esm2022/icons/refresh/refresh.mjs +0 -53
- package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
- package/esm2022/icons/search/public_api.mjs +0 -2
- package/esm2022/icons/search/search.mjs +0 -53
- package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
- package/esm2022/icons/searchminus/public_api.mjs +0 -2
- package/esm2022/icons/searchminus/searchminus.mjs +0 -53
- package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
- package/esm2022/icons/searchplus/public_api.mjs +0 -2
- package/esm2022/icons/searchplus/searchplus.mjs +0 -53
- package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
- package/esm2022/icons/sortalt/public_api.mjs +0 -2
- package/esm2022/icons/sortalt/sortalt.mjs +0 -57
- package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
- package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
- package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
- package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
- package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
- package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
- package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
- package/esm2022/icons/spinner/public_api.mjs +0 -2
- package/esm2022/icons/spinner/spinner.mjs +0 -51
- package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
- package/esm2022/icons/star/public_api.mjs +0 -2
- package/esm2022/icons/star/star.mjs +0 -51
- package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
- package/esm2022/icons/starfill/public_api.mjs +0 -2
- package/esm2022/icons/starfill/starfill.mjs +0 -51
- package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
- package/esm2022/icons/thlarge/public_api.mjs +0 -2
- package/esm2022/icons/thlarge/thlarge.mjs +0 -53
- package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
- package/esm2022/icons/times/public_api.mjs +0 -2
- package/esm2022/icons/times/times.mjs +0 -32
- package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
- package/esm2022/icons/timescircle/public_api.mjs +0 -2
- package/esm2022/icons/timescircle/timescircle.mjs +0 -53
- package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
- package/esm2022/icons/trash/public_api.mjs +0 -2
- package/esm2022/icons/trash/trash.mjs +0 -53
- package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
- package/esm2022/icons/undo/public_api.mjs +0 -2
- package/esm2022/icons/undo/undo.mjs +0 -53
- package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
- package/esm2022/icons/upload/public_api.mjs +0 -2
- package/esm2022/icons/upload/upload.mjs +0 -53
- package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
- package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
- package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
- package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
- package/esm2022/icons/windowminimize/public_api.mjs +0 -2
- package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
- package/esm2022/iftalabel/iftalabel.mjs +0 -49
- package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
- package/esm2022/iftalabel/public_api.mjs +0 -3
- package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
- package/esm2022/image/image.interface.mjs +0 -2
- package/esm2022/image/image.mjs +0 -747
- package/esm2022/image/primeng-image.mjs +0 -5
- package/esm2022/image/public_api.mjs +0 -4
- package/esm2022/image/style/imagestyle.mjs +0 -219
- package/esm2022/imagecompare/imagecompare.mjs +0 -158
- package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
- package/esm2022/imagecompare/public_api.mjs +0 -3
- package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
- package/esm2022/inplace/inplace.interface.mjs +0 -2
- package/esm2022/inplace/inplace.mjs +0 -344
- package/esm2022/inplace/primeng-inplace.mjs +0 -5
- package/esm2022/inplace/public_api.mjs +0 -4
- package/esm2022/inplace/style/inplacestyle.mjs +0 -69
- package/esm2022/inputgroup/inputgroup.mjs +0 -68
- package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
- package/esm2022/inputgroup/public_api.mjs +0 -3
- package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
- package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
- package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
- package/esm2022/inputgroupaddon/public_api.mjs +0 -3
- package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
- package/esm2022/inputicon/inputicon.mjs +0 -66
- package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
- package/esm2022/inputicon/public_api.mjs +0 -3
- package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
- package/esm2022/inputmask/inputmask.interface.mjs +0 -2
- package/esm2022/inputmask/inputmask.mjs +0 -911
- package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
- package/esm2022/inputmask/public_api.mjs +0 -4
- package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
- package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
- package/esm2022/inputnumber/inputnumber.mjs +0 -1745
- package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
- package/esm2022/inputnumber/public_api.mjs +0 -4
- package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
- package/esm2022/inputotp/inputotp.mjs +0 -406
- package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
- package/esm2022/inputotp/public_api.mjs +0 -3
- package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
- package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
- package/esm2022/inputswitch/inputswitch.mjs +0 -241
- package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
- package/esm2022/inputswitch/public_api.mjs +0 -4
- package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
- package/esm2022/inputtext/inputtext.mjs +0 -103
- package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
- package/esm2022/inputtext/public_api.mjs +0 -3
- package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
- package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
- package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
- package/esm2022/inputtextarea/public_api.mjs +0 -3
- package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
- package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
- package/esm2022/keyfilter/keyfilter.mjs +0 -263
- package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
- package/esm2022/keyfilter/public_api.mjs +0 -3
- package/esm2022/knob/knob.mjs +0 -471
- package/esm2022/knob/primeng-knob.mjs +0 -5
- package/esm2022/knob/public_api.mjs +0 -3
- package/esm2022/knob/style/knobstyle.mjs +0 -83
- package/esm2022/listbox/listbox.interface.mjs +0 -2
- package/esm2022/listbox/listbox.mjs +0 -2044
- package/esm2022/listbox/primeng-listbox.mjs +0 -5
- package/esm2022/listbox/public_api.mjs +0 -4
- package/esm2022/listbox/style/listboxstyle.mjs +0 -206
- package/esm2022/megamenu/megamenu.interface.mjs +0 -2
- package/esm2022/megamenu/megamenu.mjs +0 -1607
- package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
- package/esm2022/megamenu/public_api.mjs +0 -4
- package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
- package/esm2022/menu/menu.mjs +0 -1193
- package/esm2022/menu/primeng-menu.mjs +0 -5
- package/esm2022/menu/public_api.mjs +0 -3
- package/esm2022/menu/style/menustyle.mjs +0 -179
- package/esm2022/menubar/menubar.interface.mjs +0 -2
- package/esm2022/menubar/menubar.mjs +0 -1484
- package/esm2022/menubar/primeng-menubar.mjs +0 -5
- package/esm2022/menubar/public_api.mjs +0 -4
- package/esm2022/menubar/style/menubarstyle.mjs +0 -375
- package/esm2022/message/message.mjs +0 -421
- package/esm2022/message/primeng-message.mjs +0 -5
- package/esm2022/message/public_api.mjs +0 -3
- package/esm2022/message/style/messagestyle.mjs +0 -357
- package/esm2022/messages/messages.interface.mjs +0 -2
- package/esm2022/messages/messages.mjs +0 -529
- package/esm2022/messages/primeng-messages.mjs +0 -5
- package/esm2022/messages/public_api.mjs +0 -4
- package/esm2022/messages/style/messagesstyle.mjs +0 -229
- package/esm2022/metergroup/metergroup.interface.mjs +0 -2
- package/esm2022/metergroup/metergroup.mjs +0 -423
- package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
- package/esm2022/metergroup/public_api.mjs +0 -4
- package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
- package/esm2022/multiselect/multiselect.interface.mjs +0 -2
- package/esm2022/multiselect/multiselect.mjs +0 -2924
- package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
- package/esm2022/multiselect/public_api.mjs +0 -4
- package/esm2022/multiselect/style/multiselectstyle.mjs +0 -376
- package/esm2022/orderlist/orderlist.interface.mjs +0 -2
- package/esm2022/orderlist/orderlist.mjs +0 -1121
- package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
- package/esm2022/orderlist/public_api.mjs +0 -4
- package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
- package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
- package/esm2022/organizationchart/organizationchart.mjs +0 -591
- package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
- package/esm2022/organizationchart/public_api.mjs +0 -4
- package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
- package/esm2022/overlay/overlay.mjs +0 -668
- package/esm2022/overlay/primeng-overlay.mjs +0 -5
- package/esm2022/overlay/public_api.mjs +0 -3
- package/esm2022/overlay/style/overlaystyle.mjs +0 -93
- package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
- package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
- package/esm2022/overlaybadge/public_api.mjs +0 -3
- package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
- package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
- package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
- package/esm2022/overlaypanel/public_api.mjs +0 -3
- package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
- package/esm2022/paginator/paginator.interface.mjs +0 -2
- package/esm2022/paginator/paginator.mjs +0 -893
- package/esm2022/paginator/primeng-paginator.mjs +0 -5
- package/esm2022/paginator/public_api.mjs +0 -4
- package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
- package/esm2022/panel/panel.mjs +0 -585
- package/esm2022/panel/primeng-panel.mjs +0 -5
- package/esm2022/panel/public_api.mjs +0 -3
- package/esm2022/panel/style/panelstyle.mjs +0 -120
- package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
- package/esm2022/panelmenu/panelmenu.mjs +0 -1628
- package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
- package/esm2022/panelmenu/public_api.mjs +0 -4
- package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
- package/esm2022/password/password.mjs +0 -1178
- package/esm2022/password/primeng-password.mjs +0 -5
- package/esm2022/password/public_api.mjs +0 -3
- package/esm2022/password/style/passwordstyle.mjs +0 -182
- package/esm2022/picklist/picklist.interface.mjs +0 -2
- package/esm2022/picklist/picklist.mjs +0 -2298
- package/esm2022/picklist/primeng-picklist.mjs +0 -5
- package/esm2022/picklist/public_api.mjs +0 -4
- package/esm2022/picklist/style/pickliststyle.mjs +0 -79
- package/esm2022/popover/popover.mjs +0 -518
- package/esm2022/popover/primeng-popover.mjs +0 -5
- package/esm2022/popover/public_api.mjs +0 -3
- package/esm2022/popover/style/popoverstyle.mjs +0 -99
- package/esm2022/primeng.mjs +0 -5
- package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
- package/esm2022/progressbar/progressbar.mjs +0 -197
- package/esm2022/progressbar/public_api.mjs +0 -3
- package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
- package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
- package/esm2022/progressspinner/progressspinner.mjs +0 -105
- package/esm2022/progressspinner/public_api.mjs +0 -3
- package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
- package/esm2022/public_api.mjs +0 -2
- package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
- package/esm2022/radiobutton/public_api.mjs +0 -4
- package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
- package/esm2022/radiobutton/radiobutton.mjs +0 -356
- package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
- package/esm2022/rating/primeng-rating.mjs +0 -5
- package/esm2022/rating/public_api.mjs +0 -4
- package/esm2022/rating/rating.interface.mjs +0 -2
- package/esm2022/rating/rating.mjs +0 -425
- package/esm2022/rating/style/ratingstyle.mjs +0 -103
- package/esm2022/ripple/primeng-ripple.mjs +0 -5
- package/esm2022/ripple/public_api.mjs +0 -3
- package/esm2022/ripple/ripple.mjs +0 -131
- package/esm2022/ripple/style/ripplestyle.mjs +0 -63
- package/esm2022/scroller/primeng-scroller.mjs +0 -5
- package/esm2022/scroller/public_api.mjs +0 -4
- package/esm2022/scroller/scroller.interface.mjs +0 -2
- package/esm2022/scroller/scroller.mjs +0 -1290
- package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
- package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
- package/esm2022/scrollpanel/public_api.mjs +0 -4
- package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
- package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
- package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
- package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
- package/esm2022/scrolltop/public_api.mjs +0 -4
- package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
- package/esm2022/scrolltop/scrolltop.mjs +0 -336
- package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
- package/esm2022/select/primeng-select.mjs +0 -5
- package/esm2022/select/public_api.mjs +0 -4
- package/esm2022/select/select.interface.mjs +0 -2
- package/esm2022/select/select.mjs +0 -2617
- package/esm2022/select/style/selectstyle.mjs +0 -368
- package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
- package/esm2022/selectbutton/public_api.mjs +0 -4
- package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
- package/esm2022/selectbutton/selectbutton.mjs +0 -373
- package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
- package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
- package/esm2022/sidebar/public_api.mjs +0 -4
- package/esm2022/sidebar/sidebar.interface.mjs +0 -2
- package/esm2022/sidebar/sidebar.mjs +0 -578
- package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
- package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
- package/esm2022/skeleton/public_api.mjs +0 -3
- package/esm2022/skeleton/skeleton.mjs +0 -121
- package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
- package/esm2022/slider/primeng-slider.mjs +0 -5
- package/esm2022/slider/public_api.mjs +0 -4
- package/esm2022/slider/slider.interface.mjs +0 -2
- package/esm2022/slider/slider.mjs +0 -820
- package/esm2022/slider/style/sliderstyle.mjs +0 -141
- package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
- package/esm2022/speeddial/public_api.mjs +0 -4
- package/esm2022/speeddial/speeddial.interface.mjs +0 -2
- package/esm2022/speeddial/speeddial.mjs +0 -866
- package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
- package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
- package/esm2022/splitbutton/public_api.mjs +0 -4
- package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
- package/esm2022/splitbutton/splitbutton.mjs +0 -579
- package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
- package/esm2022/splitter/primeng-splitter.mjs +0 -5
- package/esm2022/splitter/public_api.mjs +0 -4
- package/esm2022/splitter/splitter.interface.mjs +0 -2
- package/esm2022/splitter/splitter.mjs +0 -616
- package/esm2022/splitter/style/splitterstyle.mjs +0 -126
- package/esm2022/stepper/primeng-stepper.mjs +0 -5
- package/esm2022/stepper/public_api.mjs +0 -3
- package/esm2022/stepper/stepper.mjs +0 -521
- package/esm2022/stepper/style/stepperstyle.mjs +0 -228
- package/esm2022/steps/primeng-steps.mjs +0 -5
- package/esm2022/steps/public_api.mjs +0 -3
- package/esm2022/steps/steps.mjs +0 -405
- package/esm2022/steps/style/stepsstyle.mjs +0 -180
- package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
- package/esm2022/styleclass/public_api.mjs +0 -2
- package/esm2022/styleclass/styleclass.mjs +0 -315
- package/esm2022/table/columnfilter.interface.mjs +0 -2
- package/esm2022/table/primeng-table.mjs +0 -5
- package/esm2022/table/public_api.mjs +0 -5
- package/esm2022/table/style/tablestyle.mjs +0 -906
- package/esm2022/table/table.interface.mjs +0 -2
- package/esm2022/table/table.mjs +0 -7982
- package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
- package/esm2022/tabmenu/public_api.mjs +0 -4
- package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
- package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
- package/esm2022/tabmenu/tabmenu.mjs +0 -730
- package/esm2022/tabs/primeng-tabs.mjs +0 -5
- package/esm2022/tabs/public_api.mjs +0 -7
- package/esm2022/tabs/style/tabsstyle.mjs +0 -211
- package/esm2022/tabs/tab.mjs +0 -175
- package/esm2022/tabs/tablist.mjs +0 -297
- package/esm2022/tabs/tabpanel.mjs +0 -60
- package/esm2022/tabs/tabpanels.mjs +0 -38
- package/esm2022/tabs/tabs.mjs +0 -105
- package/esm2022/tabview/primeng-tabview.mjs +0 -5
- package/esm2022/tabview/public_api.mjs +0 -4
- package/esm2022/tabview/style/tabsstyle.mjs +0 -211
- package/esm2022/tabview/tabview.interface.mjs +0 -2
- package/esm2022/tabview/tabview.mjs +0 -1089
- package/esm2022/tag/primeng-tag.mjs +0 -5
- package/esm2022/tag/public_api.mjs +0 -4
- package/esm2022/tag/style/tagstyle.mjs +0 -108
- package/esm2022/tag/tag.interface.mjs +0 -2
- package/esm2022/tag/tag.mjs +0 -168
- package/esm2022/terminal/primeng-terminal.mjs +0 -5
- package/esm2022/terminal/public_api.mjs +0 -4
- package/esm2022/terminal/style/terminalstyle.mjs +0 -113
- package/esm2022/terminal/terminal.mjs +0 -195
- package/esm2022/terminal/terminalservice.mjs +0 -25
- package/esm2022/textarea/primeng-textarea.mjs +0 -5
- package/esm2022/textarea/public_api.mjs +0 -3
- package/esm2022/textarea/style/textareastyle.mjs +0 -120
- package/esm2022/textarea/textarea.mjs +0 -165
- package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
- package/esm2022/tieredmenu/public_api.mjs +0 -4
- package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
- package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
- package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
- package/esm2022/timeline/primeng-timeline.mjs +0 -5
- package/esm2022/timeline/public_api.mjs +0 -4
- package/esm2022/timeline/style/timelinestyle.mjs +0 -217
- package/esm2022/timeline/timeline.interface.mjs +0 -2
- package/esm2022/timeline/timeline.mjs +0 -223
- package/esm2022/toast/primeng-toast.mjs +0 -5
- package/esm2022/toast/public_api.mjs +0 -4
- package/esm2022/toast/style/toaststyle.mjs +0 -351
- package/esm2022/toast/toast.interface.mjs +0 -2
- package/esm2022/toast/toast.mjs +0 -738
- package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
- package/esm2022/togglebutton/public_api.mjs +0 -3
- package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
- package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
- package/esm2022/togglebutton/togglebutton.mjs +0 -353
- package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
- package/esm2022/toggleswitch/public_api.mjs +0 -4
- package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
- package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
- package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
- package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
- package/esm2022/toolbar/public_api.mjs +0 -4
- package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
- package/esm2022/toolbar/toolbar.interface.mjs +0 -2
- package/esm2022/toolbar/toolbar.mjs +0 -172
- package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
- package/esm2022/tooltip/public_api.mjs +0 -3
- package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
- package/esm2022/tooltip/tooltip.mjs +0 -715
- package/esm2022/tree/primeng-tree.mjs +0 -5
- package/esm2022/tree/public_api.mjs +0 -4
- package/esm2022/tree/style/treestyle.mjs +0 -323
- package/esm2022/tree/tree.interface.mjs +0 -2
- package/esm2022/tree/tree.mjs +0 -2248
- package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
- package/esm2022/treeselect/public_api.mjs +0 -4
- package/esm2022/treeselect/style/treeselectstyle.mjs +0 -274
- package/esm2022/treeselect/treeselect.interface.mjs +0 -2
- package/esm2022/treeselect/treeselect.mjs +0 -1372
- package/esm2022/treetable/primeng-treetable.mjs +0 -5
- package/esm2022/treetable/public_api.mjs +0 -4
- package/esm2022/treetable/style/treetablestyle.mjs +0 -621
- package/esm2022/treetable/treetable.interface.mjs +0 -2
- package/esm2022/treetable/treetable.mjs +0 -4642
- package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
- package/esm2022/ts-helpers/public_api.mjs +0 -2
- package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
- package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
- package/esm2022/usestyle/public_api.mjs +0 -2
- package/esm2022/usestyle/usestyle.mjs +0 -44
- package/esm2022/utils/inpututils.mjs +0 -7
- package/esm2022/utils/objectutils.mjs +0 -276
- package/esm2022/utils/primeng-utils.mjs +0 -5
- package/esm2022/utils/public_api.mjs +0 -6
- package/esm2022/utils/uniquecomponentid.mjs +0 -6
- package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,1607 +0,0 @@
|
|
1
|
-
import { CommonModule, isPlatformBrowser } from '@angular/common';
|
2
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, effect, EventEmitter, forwardRef, inject, Input, NgModule, numberAttribute, Output, signal, ViewChild, ViewEncapsulation } from '@angular/core';
|
3
|
-
import { RouterModule } from '@angular/router';
|
4
|
-
import { findLastIndex, findSingle, focus, isEmpty, isNotEmpty, isPrintableCharacter, isTouchDevice, resolve, uuid } from '@primeuix/utils';
|
5
|
-
import { SharedModule } from 'primeng/api';
|
6
|
-
import { BadgeModule } from 'primeng/badge';
|
7
|
-
import { BaseComponent } from 'primeng/basecomponent';
|
8
|
-
import { AngleDownIcon, AngleRightIcon, BarsIcon } from 'primeng/icons';
|
9
|
-
import { Ripple } from 'primeng/ripple';
|
10
|
-
import { TooltipModule } from 'primeng/tooltip';
|
11
|
-
import { ZIndexUtils } from 'primeng/utils';
|
12
|
-
import { MegaMenuStyle } from './style/megamenustyle';
|
13
|
-
import * as i0 from "@angular/core";
|
14
|
-
import * as i1 from "@angular/common";
|
15
|
-
import * as i2 from "@angular/router";
|
16
|
-
import * as i3 from "primeng/tooltip";
|
17
|
-
import * as i4 from "primeng/badge";
|
18
|
-
const _c0 = ["menubar"];
|
19
|
-
const _c1 = a0 => ({ "max-height": a0, overflow: "auto" });
|
20
|
-
const _c2 = (a0, a1) => ({ "p-megamenu-root-list": a0, "p-megamenu-submenu": a1 });
|
21
|
-
const _c3 = a0 => ({ "p-megamenu-item-link": true, "p-disabled": a0 });
|
22
|
-
const _c4 = () => ({ exact: false });
|
23
|
-
const _c5 = a0 => ({ $implicit: a0 });
|
24
|
-
function MegaMenuSub_ul_0_li_2_Template(rf, ctx) { if (rf & 1) {
|
25
|
-
i0.ɵɵelementStart(0, "li", 8);
|
26
|
-
i0.ɵɵtext(1);
|
27
|
-
i0.ɵɵelementEnd();
|
28
|
-
} if (rf & 2) {
|
29
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
30
|
-
i0.ɵɵstyleMap(ctx_r1.getItemProp(ctx_r1.submenu, "style"));
|
31
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getSubmenuHeaderClass(ctx_r1.submenu));
|
32
|
-
i0.ɵɵadvance();
|
33
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.getItemLabel(ctx_r1.submenu), " ");
|
34
|
-
} }
|
35
|
-
function MegaMenuSub_ul_0_ng_template_3_li_0_Template(rf, ctx) { if (rf & 1) {
|
36
|
-
i0.ɵɵelement(0, "li", 11);
|
37
|
-
} if (rf & 2) {
|
38
|
-
const processedItem_r3 = i0.ɵɵnextContext().$implicit;
|
39
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
40
|
-
i0.ɵɵstyleMap(ctx_r1.getItemProp(processedItem_r3, "style"));
|
41
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getSeparatorItemClass(processedItem_r3));
|
42
|
-
i0.ɵɵattribute("id", ctx_r1.getItemId(processedItem_r3))("data-pc-section", "separator");
|
43
|
-
} }
|
44
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
45
|
-
i0.ɵɵelement(0, "span", 22);
|
46
|
-
} if (rf & 2) {
|
47
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
48
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
49
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getItemProp(processedItem_r3, "icon"))("ngStyle", ctx_r1.getItemProp(processedItem_r3, "iconStyle"));
|
50
|
-
i0.ɵɵattribute("data-pc-section", "icon")("tabindex", -1);
|
51
|
-
} }
|
52
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_span_2_Template(rf, ctx) { if (rf & 1) {
|
53
|
-
i0.ɵɵelementStart(0, "span", 23);
|
54
|
-
i0.ɵɵtext(1);
|
55
|
-
i0.ɵɵelementEnd();
|
56
|
-
} if (rf & 2) {
|
57
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
58
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
59
|
-
i0.ɵɵattribute("data-pc-section", "label");
|
60
|
-
i0.ɵɵadvance();
|
61
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r1.getItemLabel(processedItem_r3), " ");
|
62
|
-
} }
|
63
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
64
|
-
i0.ɵɵelement(0, "span", 24);
|
65
|
-
} if (rf & 2) {
|
66
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
67
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
68
|
-
i0.ɵɵproperty("innerHTML", ctx_r1.getItemLabel(processedItem_r3), i0.ɵɵsanitizeHtml);
|
69
|
-
i0.ɵɵattribute("data-pc-section", "label");
|
70
|
-
} }
|
71
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_p_badge_5_Template(rf, ctx) { if (rf & 1) {
|
72
|
-
i0.ɵɵelement(0, "p-badge", 25);
|
73
|
-
} if (rf & 2) {
|
74
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
75
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
76
|
-
i0.ɵɵproperty("styleClass", ctx_r1.getItemProp(processedItem_r3, "badgeStyleClass"))("value", ctx_r1.getItemProp(processedItem_r3, "badge"));
|
77
|
-
} }
|
78
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
79
|
-
i0.ɵɵelement(0, "AngleDownIcon", 27);
|
80
|
-
} if (rf & 2) {
|
81
|
-
i0.ɵɵproperty("ngClass", "p-megamenu-submenu-icon");
|
82
|
-
i0.ɵɵattribute("data-pc-section", "submenuicon")("aria-hidden", true);
|
83
|
-
} }
|
84
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Conditional_2_AngleRightIcon_0_Template(rf, ctx) { if (rf & 1) {
|
85
|
-
i0.ɵɵelement(0, "AngleRightIcon", 27);
|
86
|
-
} if (rf & 2) {
|
87
|
-
i0.ɵɵproperty("ngClass", "p-megamenu-submenu-icon");
|
88
|
-
i0.ɵɵattribute("data-pc-section", "submenuicon")("aria-hidden", true);
|
89
|
-
} }
|
90
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
91
|
-
i0.ɵɵtemplate(0, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Conditional_2_AngleRightIcon_0_Template, 1, 3, "AngleRightIcon", 28);
|
92
|
-
} if (rf & 2) {
|
93
|
-
const ctx_r1 = i0.ɵɵnextContext(8);
|
94
|
-
i0.ɵɵproperty("ngIf", ctx_r1.orientation === "vertical");
|
95
|
-
} }
|
96
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
97
|
-
i0.ɵɵelementContainerStart(0);
|
98
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Conditional_1_Template, 1, 3, "AngleDownIcon", 27)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Conditional_2_Template, 1, 1, "AngleRightIcon", 27);
|
99
|
-
i0.ɵɵelementContainerEnd();
|
100
|
-
} if (rf & 2) {
|
101
|
-
const ctx_r1 = i0.ɵɵnextContext(7);
|
102
|
-
i0.ɵɵadvance();
|
103
|
-
i0.ɵɵconditional(ctx_r1.orientation === "horizontal" || ctx_r1.mobileActive ? 1 : 2);
|
104
|
-
} }
|
105
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_2_ng_template_0_Template(rf, ctx) { }
|
106
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_2_Template(rf, ctx) { if (rf & 1) {
|
107
|
-
i0.ɵɵtemplate(0, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_2_ng_template_0_Template, 0, 0, "ng-template", 29);
|
108
|
-
} if (rf & 2) {
|
109
|
-
i0.ɵɵproperty("data-pc-section", "submenuicon")("aria-hidden", true);
|
110
|
-
} }
|
111
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
112
|
-
i0.ɵɵelementContainerStart(0);
|
113
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_ng_container_1_Template, 3, 1, "ng-container", 14)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_2_Template, 1, 2, null, 26);
|
114
|
-
i0.ɵɵelementContainerEnd();
|
115
|
-
} if (rf & 2) {
|
116
|
-
const ctx_r1 = i0.ɵɵnextContext(6);
|
117
|
-
i0.ɵɵadvance();
|
118
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.megaMenu.submenuiconTemplate);
|
119
|
-
i0.ɵɵadvance();
|
120
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.megaMenu.submenuiconTemplate);
|
121
|
-
} }
|
122
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_Template(rf, ctx) { if (rf & 1) {
|
123
|
-
i0.ɵɵelementStart(0, "a", 18);
|
124
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_span_1_Template, 1, 4, "span", 19)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_span_2_Template, 2, 2, "span", 20)(3, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_template_3_Template, 1, 2, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(5, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_p_badge_5_Template, 1, 2, "p-badge", 21)(6, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_ng_container_6_Template, 3, 2, "ng-container", 14);
|
125
|
-
i0.ɵɵelementEnd();
|
126
|
-
} if (rf & 2) {
|
127
|
-
const htmlLabel_r5 = i0.ɵɵreference(4);
|
128
|
-
const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
|
129
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
130
|
-
i0.ɵɵproperty("target", ctx_r1.getItemProp(processedItem_r3, "target"))("ngClass", i0.ɵɵpureFunction1(11, _c3, ctx_r1.getItemProp(processedItem_r3, "disabled")));
|
131
|
-
i0.ɵɵattribute("href", ctx_r1.getItemProp(processedItem_r3, "url"), i0.ɵɵsanitizeUrl)("data-automationid", ctx_r1.getItemProp(processedItem_r3, "automationId"))("data-pc-section", "action")("tabindex", -1);
|
132
|
-
i0.ɵɵadvance();
|
133
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "icon"));
|
134
|
-
i0.ɵɵadvance();
|
135
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "escape"))("ngIfElse", htmlLabel_r5);
|
136
|
-
i0.ɵɵadvance(3);
|
137
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "badge"));
|
138
|
-
i0.ɵɵadvance();
|
139
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isItemGroup(processedItem_r3));
|
140
|
-
} }
|
141
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_span_1_Template(rf, ctx) { if (rf & 1) {
|
142
|
-
i0.ɵɵelement(0, "span", 22);
|
143
|
-
} if (rf & 2) {
|
144
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
145
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
146
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getItemProp(processedItem_r3, "icon"))("ngStyle", ctx_r1.getItemProp(processedItem_r3, "iconStyle"));
|
147
|
-
i0.ɵɵattribute("data-pc-section", "icon")("aria-hidden", true)("tabindex", -1);
|
148
|
-
} }
|
149
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_span_2_Template(rf, ctx) { if (rf & 1) {
|
150
|
-
i0.ɵɵelementStart(0, "span", 23);
|
151
|
-
i0.ɵɵtext(1);
|
152
|
-
i0.ɵɵelementEnd();
|
153
|
-
} if (rf & 2) {
|
154
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
155
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
156
|
-
i0.ɵɵadvance();
|
157
|
-
i0.ɵɵtextInterpolate(ctx_r1.getItemLabel(processedItem_r3));
|
158
|
-
} }
|
159
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
160
|
-
i0.ɵɵelement(0, "span", 24);
|
161
|
-
} if (rf & 2) {
|
162
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
163
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
164
|
-
i0.ɵɵproperty("innerHTML", ctx_r1.getItemLabel(processedItem_r3), i0.ɵɵsanitizeHtml);
|
165
|
-
i0.ɵɵattribute("data-pc-section", "label");
|
166
|
-
} }
|
167
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_p_badge_5_Template(rf, ctx) { if (rf & 1) {
|
168
|
-
i0.ɵɵelement(0, "p-badge", 25);
|
169
|
-
} if (rf & 2) {
|
170
|
-
const processedItem_r3 = i0.ɵɵnextContext(4).$implicit;
|
171
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
172
|
-
i0.ɵɵproperty("styleClass", ctx_r1.getItemProp(processedItem_r3, "badgeStyleClass"))("value", ctx_r1.getItemProp(processedItem_r3, "badge"));
|
173
|
-
} }
|
174
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_ng_container_1_AngleDownIcon_1_Template(rf, ctx) { if (rf & 1) {
|
175
|
-
i0.ɵɵelement(0, "AngleDownIcon", 32);
|
176
|
-
} if (rf & 2) {
|
177
|
-
i0.ɵɵproperty("styleClass", "p-megamenu-submenu-icon");
|
178
|
-
i0.ɵɵattribute("data-pc-section", "submenuicon")("aria-hidden", true);
|
179
|
-
} }
|
180
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_ng_container_1_AngleRightIcon_2_Template(rf, ctx) { if (rf & 1) {
|
181
|
-
i0.ɵɵelement(0, "AngleRightIcon", 32);
|
182
|
-
} if (rf & 2) {
|
183
|
-
i0.ɵɵproperty("styleClass", "p-megamenu-submenu-icon");
|
184
|
-
i0.ɵɵattribute("data-pc-section", "submenuicon")("aria-hidden", true);
|
185
|
-
} }
|
186
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
187
|
-
i0.ɵɵelementContainerStart(0);
|
188
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_ng_container_1_AngleDownIcon_1_Template, 1, 3, "AngleDownIcon", 31)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_ng_container_1_AngleRightIcon_2_Template, 1, 3, "AngleRightIcon", 31);
|
189
|
-
i0.ɵɵelementContainerEnd();
|
190
|
-
} if (rf & 2) {
|
191
|
-
const ctx_r1 = i0.ɵɵnextContext(7);
|
192
|
-
i0.ɵɵadvance();
|
193
|
-
i0.ɵɵproperty("ngIf", ctx_r1.orientation === "horizontal");
|
194
|
-
i0.ɵɵadvance();
|
195
|
-
i0.ɵɵproperty("ngIf", ctx_r1.orientation === "vertical");
|
196
|
-
} }
|
197
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_2_ng_template_0_Template(rf, ctx) { }
|
198
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_2_Template(rf, ctx) { if (rf & 1) {
|
199
|
-
i0.ɵɵtemplate(0, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_2_ng_template_0_Template, 0, 0, "ng-template", 29);
|
200
|
-
} if (rf & 2) {
|
201
|
-
i0.ɵɵproperty("data-pc-section", "submenuicon")("aria-hidden", true);
|
202
|
-
} }
|
203
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
204
|
-
i0.ɵɵelementContainerStart(0);
|
205
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_ng_container_1_Template, 3, 2, "ng-container", 14)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_2_Template, 1, 2, null, 26);
|
206
|
-
i0.ɵɵelementContainerEnd();
|
207
|
-
} if (rf & 2) {
|
208
|
-
const ctx_r1 = i0.ɵɵnextContext(6);
|
209
|
-
i0.ɵɵadvance();
|
210
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.megaMenu.submenuiconTemplate);
|
211
|
-
i0.ɵɵadvance();
|
212
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.megaMenu.submenuiconTemplate);
|
213
|
-
} }
|
214
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_Template(rf, ctx) { if (rf & 1) {
|
215
|
-
i0.ɵɵelementStart(0, "a", 30);
|
216
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_span_1_Template, 1, 5, "span", 19)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_span_2_Template, 2, 1, "span", 20)(3, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_template_3_Template, 1, 2, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor)(5, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_p_badge_5_Template, 1, 2, "p-badge", 21)(6, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_ng_container_6_Template, 3, 2, "ng-container", 14);
|
217
|
-
i0.ɵɵelementEnd();
|
218
|
-
} if (rf & 2) {
|
219
|
-
const htmlRouteLabel_r6 = i0.ɵɵreference(4);
|
220
|
-
const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
|
221
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
222
|
-
i0.ɵɵproperty("routerLink", ctx_r1.getItemProp(processedItem_r3, "routerLink"))("queryParams", ctx_r1.getItemProp(processedItem_r3, "queryParams"))("routerLinkActive", "p-megamenu-item-link-active")("routerLinkActiveOptions", ctx_r1.getItemProp(processedItem_r3, "routerLinkActiveOptions") || i0.ɵɵpureFunction0(21, _c4))("target", ctx_r1.getItemProp(processedItem_r3, "target"))("ngClass", i0.ɵɵpureFunction1(22, _c3, ctx_r1.getItemProp(processedItem_r3, "disabled")))("fragment", ctx_r1.getItemProp(processedItem_r3, "fragment"))("queryParamsHandling", ctx_r1.getItemProp(processedItem_r3, "queryParamsHandling"))("preserveFragment", ctx_r1.getItemProp(processedItem_r3, "preserveFragment"))("skipLocationChange", ctx_r1.getItemProp(processedItem_r3, "skipLocationChange"))("replaceUrl", ctx_r1.getItemProp(processedItem_r3, "replaceUrl"))("state", ctx_r1.getItemProp(processedItem_r3, "state"));
|
223
|
-
i0.ɵɵattribute("data-automationid", ctx_r1.getItemProp(processedItem_r3, "automationId"))("tabindex", -1)("aria-hidden", true)("data-pc-section", "action");
|
224
|
-
i0.ɵɵadvance();
|
225
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "icon"));
|
226
|
-
i0.ɵɵadvance();
|
227
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "escape"))("ngIfElse", htmlRouteLabel_r6);
|
228
|
-
i0.ɵɵadvance(3);
|
229
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "badge"));
|
230
|
-
i0.ɵɵadvance();
|
231
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isItemGroup(processedItem_r3));
|
232
|
-
} }
|
233
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
234
|
-
i0.ɵɵelementContainerStart(0);
|
235
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_1_Template, 7, 13, "a", 16)(2, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_a_2_Template, 7, 24, "a", 17);
|
236
|
-
i0.ɵɵelementContainerEnd();
|
237
|
-
} if (rf & 2) {
|
238
|
-
const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
|
239
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
240
|
-
i0.ɵɵadvance();
|
241
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.getItemProp(processedItem_r3, "routerLink"));
|
242
|
-
i0.ɵɵadvance();
|
243
|
-
i0.ɵɵproperty("ngIf", ctx_r1.getItemProp(processedItem_r3, "routerLink"));
|
244
|
-
} }
|
245
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_4_1_ng_template_0_Template(rf, ctx) { }
|
246
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_4_1_Template(rf, ctx) { if (rf & 1) {
|
247
|
-
i0.ɵɵtemplate(0, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_4_1_ng_template_0_Template, 0, 0, "ng-template");
|
248
|
-
} }
|
249
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
250
|
-
i0.ɵɵelementContainerStart(0);
|
251
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_4_1_Template, 1, 0, null, 33);
|
252
|
-
i0.ɵɵelementContainerEnd();
|
253
|
-
} if (rf & 2) {
|
254
|
-
const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
|
255
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
256
|
-
i0.ɵɵadvance();
|
257
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c5, processedItem_r3.item));
|
258
|
-
} }
|
259
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_div_5_div_2_p_megamenu_sub_1_Template(rf, ctx) { if (rf & 1) {
|
260
|
-
const _r7 = i0.ɵɵgetCurrentView();
|
261
|
-
i0.ɵɵelementStart(0, "p-megamenu-sub", 38);
|
262
|
-
i0.ɵɵlistener("itemClick", function MegaMenuSub_ul_0_ng_template_3_li_1_div_5_div_2_p_megamenu_sub_1_Template_p_megamenu_sub_itemClick_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.itemClick.emit($event)); })("itemMouseEnter", function MegaMenuSub_ul_0_ng_template_3_li_1_div_5_div_2_p_megamenu_sub_1_Template_p_megamenu_sub_itemMouseEnter_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(6); return i0.ɵɵresetView(ctx_r1.onItemMouseEnter($event)); });
|
263
|
-
i0.ɵɵelementEnd();
|
264
|
-
} if (rf & 2) {
|
265
|
-
const submenu_r8 = ctx.$implicit;
|
266
|
-
const ctx_r1 = i0.ɵɵnextContext(6);
|
267
|
-
i0.ɵɵproperty("id", ctx_r1.getSubListId(submenu_r8))("submenu", submenu_r8)("items", submenu_r8.items)("itemTemplate", ctx_r1.itemTemplate)("mobileActive", ctx_r1.mobileActive)("menuId", ctx_r1.menuId)("focusedItemId", ctx_r1.focusedItemId)("level", ctx_r1.level + 1)("root", false);
|
268
|
-
} }
|
269
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_div_5_div_2_Template(rf, ctx) { if (rf & 1) {
|
270
|
-
i0.ɵɵelementStart(0, "div", 27);
|
271
|
-
i0.ɵɵtemplate(1, MegaMenuSub_ul_0_ng_template_3_li_1_div_5_div_2_p_megamenu_sub_1_Template, 1, 9, "p-megamenu-sub", 37);
|
272
|
-
i0.ɵɵelementEnd();
|
273
|
-
} if (rf & 2) {
|
274
|
-
const col_r9 = ctx.$implicit;
|
275
|
-
const processedItem_r3 = i0.ɵɵnextContext(3).$implicit;
|
276
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
277
|
-
i0.ɵɵproperty("ngClass", ctx_r1.getColumnClass(processedItem_r3));
|
278
|
-
i0.ɵɵadvance();
|
279
|
-
i0.ɵɵproperty("ngForOf", col_r9);
|
280
|
-
} }
|
281
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
282
|
-
i0.ɵɵelementStart(0, "div", 34)(1, "div", 35);
|
283
|
-
i0.ɵɵtemplate(2, MegaMenuSub_ul_0_ng_template_3_li_1_div_5_div_2_Template, 2, 2, "div", 36);
|
284
|
-
i0.ɵɵelementEnd()();
|
285
|
-
} if (rf & 2) {
|
286
|
-
const processedItem_r3 = i0.ɵɵnextContext(2).$implicit;
|
287
|
-
i0.ɵɵattribute("data-pc-section", "panel");
|
288
|
-
i0.ɵɵadvance();
|
289
|
-
i0.ɵɵattribute("data-pc-section", "grid");
|
290
|
-
i0.ɵɵadvance();
|
291
|
-
i0.ɵɵproperty("ngForOf", processedItem_r3.items);
|
292
|
-
} }
|
293
|
-
function MegaMenuSub_ul_0_ng_template_3_li_1_Template(rf, ctx) { if (rf & 1) {
|
294
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
295
|
-
i0.ɵɵelementStart(0, "li", 12, 1)(2, "div", 13);
|
296
|
-
i0.ɵɵlistener("click", function MegaMenuSub_ul_0_ng_template_3_li_1_Template_div_click_2_listener($event) { i0.ɵɵrestoreView(_r4); const processedItem_r3 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onItemClick($event, processedItem_r3)); })("mouseenter", function MegaMenuSub_ul_0_ng_template_3_li_1_Template_div_mouseenter_2_listener($event) { i0.ɵɵrestoreView(_r4); const processedItem_r3 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onItemMouseEnter({ $event: $event, processedItem: processedItem_r3 })); });
|
297
|
-
i0.ɵɵtemplate(3, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_3_Template, 3, 2, "ng-container", 14)(4, MegaMenuSub_ul_0_ng_template_3_li_1_ng_container_4_Template, 2, 4, "ng-container", 14);
|
298
|
-
i0.ɵɵelementEnd();
|
299
|
-
i0.ɵɵtemplate(5, MegaMenuSub_ul_0_ng_template_3_li_1_div_5_Template, 3, 3, "div", 15);
|
300
|
-
i0.ɵɵelementEnd();
|
301
|
-
} if (rf & 2) {
|
302
|
-
const ctx_r9 = i0.ɵɵnextContext();
|
303
|
-
const processedItem_r3 = ctx_r9.$implicit;
|
304
|
-
const index_r11 = ctx_r9.index;
|
305
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
306
|
-
i0.ɵɵclassMap(ctx_r1.getItemProp(processedItem_r3, "styleClass"));
|
307
|
-
i0.ɵɵproperty("ngStyle", ctx_r1.getItemProp(processedItem_r3, "style"))("ngClass", ctx_r1.getItemClass(processedItem_r3))("tooltipOptions", ctx_r1.getItemProp(processedItem_r3, "tooltipOptions"));
|
308
|
-
i0.ɵɵattribute("id", ctx_r1.getItemId(processedItem_r3))("data-pc-section", "menuitem")("data-p-highlight", ctx_r1.isItemActive(processedItem_r3))("data-p-focused", ctx_r1.isItemFocused(processedItem_r3))("data-p-disabled", ctx_r1.isItemDisabled(processedItem_r3))("aria-label", ctx_r1.getItemLabel(processedItem_r3))("aria-disabled", ctx_r1.isItemDisabled(processedItem_r3) || undefined)("aria-haspopup", ctx_r1.isItemGroup(processedItem_r3) && !ctx_r1.getItemProp(processedItem_r3, "to") ? "menu" : undefined)("aria-expanded", ctx_r1.isItemGroup(processedItem_r3) ? ctx_r1.isItemActive(processedItem_r3) : undefined)("aria-level", ctx_r1.level + 1)("aria-setsize", ctx_r1.getAriaSetSize())("aria-posinset", ctx_r1.getAriaPosInset(index_r11));
|
309
|
-
i0.ɵɵadvance(2);
|
310
|
-
i0.ɵɵattribute("data-pc-section", "content");
|
311
|
-
i0.ɵɵadvance();
|
312
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.itemTemplate);
|
313
|
-
i0.ɵɵadvance();
|
314
|
-
i0.ɵɵproperty("ngIf", ctx_r1.itemTemplate);
|
315
|
-
i0.ɵɵadvance();
|
316
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isItemVisible(processedItem_r3) && ctx_r1.isItemGroup(processedItem_r3));
|
317
|
-
} }
|
318
|
-
function MegaMenuSub_ul_0_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
319
|
-
i0.ɵɵtemplate(0, MegaMenuSub_ul_0_ng_template_3_li_0_Template, 1, 5, "li", 9)(1, MegaMenuSub_ul_0_ng_template_3_li_1_Template, 6, 21, "li", 10);
|
320
|
-
} if (rf & 2) {
|
321
|
-
const processedItem_r3 = ctx.$implicit;
|
322
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
323
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isItemVisible(processedItem_r3) && ctx_r1.getItemProp(processedItem_r3, "separator"));
|
324
|
-
i0.ɵɵadvance();
|
325
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isItemVisible(processedItem_r3) && !ctx_r1.getItemProp(processedItem_r3, "separator"));
|
326
|
-
} }
|
327
|
-
function MegaMenuSub_ul_0_Template(rf, ctx) { if (rf & 1) {
|
328
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
329
|
-
i0.ɵɵelementStart(0, "ul", 5, 0);
|
330
|
-
i0.ɵɵlistener("keydown", function MegaMenuSub_ul_0_Template_ul_keydown_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.menuKeydown.emit($event)); })("focus", function MegaMenuSub_ul_0_Template_ul_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.menuFocus.emit($event)); })("blur", function MegaMenuSub_ul_0_Template_ul_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.menuBlur.emit($event)); });
|
331
|
-
i0.ɵɵtemplate(2, MegaMenuSub_ul_0_li_2_Template, 2, 4, "li", 6)(3, MegaMenuSub_ul_0_ng_template_3_Template, 2, 2, "ng-template", 7);
|
332
|
-
i0.ɵɵelementEnd();
|
333
|
-
} if (rf & 2) {
|
334
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
335
|
-
i0.ɵɵstyleMap(i0.ɵɵpureFunction1(11, _c1, ctx_r1.scrollHeight));
|
336
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(13, _c2, ctx_r1.root, !ctx_r1.root))("tabindex", ctx_r1.tabindex);
|
337
|
-
i0.ɵɵattribute("role", ctx_r1.root ? "menubar" : "menu")("id", ctx_r1.id)("aria-orientation", ctx_r1.orientation)("aria-activedescendant", ctx_r1.focusedItemId)("data-pc-section", ctx_r1.root ? "root" : "submenu");
|
338
|
-
i0.ɵɵadvance(2);
|
339
|
-
i0.ɵɵproperty("ngIf", ctx_r1.submenu);
|
340
|
-
i0.ɵɵadvance();
|
341
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.items);
|
342
|
-
} }
|
343
|
-
const _c6 = ["start"];
|
344
|
-
const _c7 = ["end"];
|
345
|
-
const _c8 = ["menuicon"];
|
346
|
-
const _c9 = ["submenuicon"];
|
347
|
-
const _c10 = ["item"];
|
348
|
-
const _c11 = ["button"];
|
349
|
-
const _c12 = ["buttonicon"];
|
350
|
-
const _c13 = ["menubutton"];
|
351
|
-
const _c14 = ["rootmenu"];
|
352
|
-
const _c15 = ["container"];
|
353
|
-
const _c16 = a0 => ({ flexDirection: a0 });
|
354
|
-
const _c17 = (a0, a1, a2, a3) => ({ "p-megamenu p-component": true, "p-megamenu-mobile": a0, "p-megamenu-mobile-active": a1, "p-megamenu-horizontal": a2, "p-megamenu-vertical": a3 });
|
355
|
-
function MegaMenu_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
356
|
-
i0.ɵɵelementContainer(0);
|
357
|
-
} }
|
358
|
-
function MegaMenu_div_2_Template(rf, ctx) { if (rf & 1) {
|
359
|
-
i0.ɵɵelementStart(0, "div", 9);
|
360
|
-
i0.ɵɵtemplate(1, MegaMenu_div_2_ng_container_1_Template, 1, 0, "ng-container", 6);
|
361
|
-
i0.ɵɵelementEnd();
|
362
|
-
} if (rf & 2) {
|
363
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
364
|
-
i0.ɵɵadvance();
|
365
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.startTemplate);
|
366
|
-
} }
|
367
|
-
function MegaMenu_ng_container_3_a_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
368
|
-
i0.ɵɵelementContainerStart(0);
|
369
|
-
i0.ɵɵelement(1, "BarsIcon");
|
370
|
-
i0.ɵɵelementContainerEnd();
|
371
|
-
} }
|
372
|
-
function MegaMenu_ng_container_3_a_1_Template(rf, ctx) { if (rf & 1) {
|
373
|
-
const _r3 = i0.ɵɵgetCurrentView();
|
374
|
-
i0.ɵɵelementStart(0, "a", 11, 2);
|
375
|
-
i0.ɵɵlistener("click", function MegaMenu_ng_container_3_a_1_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.menuButtonClick($event)); })("keydown", function MegaMenu_ng_container_3_a_1_Template_a_keydown_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.menuButtonKeydown($event)); });
|
376
|
-
i0.ɵɵtemplate(2, MegaMenu_ng_container_3_a_1_ng_container_2_Template, 2, 0, "ng-container", 5);
|
377
|
-
i0.ɵɵelementEnd();
|
378
|
-
} if (rf & 2) {
|
379
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
380
|
-
i0.ɵɵattribute("aria-haspopup", ctx_r1.model.length && ctx_r1.model.length > 0 ? true : false)("aria-expanded", ctx_r1.mobileActive)("aria-controls", ctx_r1.id)("aria-label", ctx_r1.config.translation.aria.navigation);
|
381
|
-
i0.ɵɵadvance(2);
|
382
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.buttonTemplate);
|
383
|
-
} }
|
384
|
-
function MegaMenu_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
385
|
-
i0.ɵɵelementContainerStart(0);
|
386
|
-
i0.ɵɵtemplate(1, MegaMenu_ng_container_3_a_1_Template, 3, 5, "a", 10);
|
387
|
-
i0.ɵɵelementContainerEnd();
|
388
|
-
} if (rf & 2) {
|
389
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
390
|
-
i0.ɵɵadvance();
|
391
|
-
i0.ɵɵproperty("ngIf", ctx_r1.model && ctx_r1.model.length > 0);
|
392
|
-
} }
|
393
|
-
function MegaMenu_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
394
|
-
i0.ɵɵelementContainer(0);
|
395
|
-
} }
|
396
|
-
function MegaMenu_div_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
397
|
-
i0.ɵɵelementContainer(0);
|
398
|
-
} }
|
399
|
-
function MegaMenu_div_7_Template(rf, ctx) { if (rf & 1) {
|
400
|
-
i0.ɵɵelementStart(0, "div", 12);
|
401
|
-
i0.ɵɵtemplate(1, MegaMenu_div_7_ng_container_1_Template, 1, 0, "ng-container", 6);
|
402
|
-
i0.ɵɵelementEnd();
|
403
|
-
} if (rf & 2) {
|
404
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
405
|
-
i0.ɵɵadvance();
|
406
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.endTemplate);
|
407
|
-
} }
|
408
|
-
export class MegaMenuSub extends BaseComponent {
|
409
|
-
id;
|
410
|
-
items;
|
411
|
-
itemTemplate;
|
412
|
-
menuId;
|
413
|
-
ariaLabel;
|
414
|
-
ariaLabelledBy;
|
415
|
-
level = 0;
|
416
|
-
focusedItemId;
|
417
|
-
disabled = false;
|
418
|
-
orientation;
|
419
|
-
activeItem;
|
420
|
-
submenu;
|
421
|
-
queryMatches = false;
|
422
|
-
mobileActive = false;
|
423
|
-
scrollHeight;
|
424
|
-
tabindex = 0;
|
425
|
-
root = false;
|
426
|
-
itemClick = new EventEmitter();
|
427
|
-
itemMouseEnter = new EventEmitter();
|
428
|
-
menuFocus = new EventEmitter();
|
429
|
-
menuBlur = new EventEmitter();
|
430
|
-
menuKeydown = new EventEmitter();
|
431
|
-
menubarViewChild;
|
432
|
-
megaMenu = inject(forwardRef(() => MegaMenu));
|
433
|
-
onItemClick(event, processedItem) {
|
434
|
-
this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });
|
435
|
-
this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });
|
436
|
-
}
|
437
|
-
getItemProp(processedItem, name, params = null) {
|
438
|
-
return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;
|
439
|
-
}
|
440
|
-
getItemId(processedItem) {
|
441
|
-
return processedItem.item && processedItem.item?.id ? processedItem.item.id : `${this.menuId}_${processedItem.key}`;
|
442
|
-
}
|
443
|
-
getSubListId(processedItem) {
|
444
|
-
return `${this.getItemId(processedItem)}_list`;
|
445
|
-
}
|
446
|
-
getItemClass(processedItem) {
|
447
|
-
return {
|
448
|
-
...this.getItemProp(processedItem, 'class'),
|
449
|
-
'p-megamenu-item': true,
|
450
|
-
'p-megamenu-item-active': this.isItemActive(processedItem),
|
451
|
-
'p-focus': this.isItemFocused(processedItem),
|
452
|
-
'p-disabled': this.isItemDisabled(processedItem)
|
453
|
-
};
|
454
|
-
}
|
455
|
-
getItemLabel(processedItem) {
|
456
|
-
return this.getItemProp(processedItem, 'label');
|
457
|
-
}
|
458
|
-
getSeparatorItemClass(processedItem) {
|
459
|
-
return {
|
460
|
-
...this.getItemProp(processedItem, 'class'),
|
461
|
-
'p-megamenu-separator': true
|
462
|
-
};
|
463
|
-
}
|
464
|
-
getColumnClass(processedItem) {
|
465
|
-
let length = this.isItemGroup(processedItem) ? processedItem.items.length : 0;
|
466
|
-
let columnClass;
|
467
|
-
if (this.queryMatches)
|
468
|
-
columnClass = 'p-megamenu-col-12';
|
469
|
-
else {
|
470
|
-
switch (length) {
|
471
|
-
case 2:
|
472
|
-
columnClass = 'p-megamenu-col-6';
|
473
|
-
break;
|
474
|
-
case 3:
|
475
|
-
columnClass = 'p-megamenu-col-4';
|
476
|
-
break;
|
477
|
-
case 4:
|
478
|
-
columnClass = 'p-megamenu-col-3';
|
479
|
-
break;
|
480
|
-
case 6:
|
481
|
-
columnClass = 'p-megamenu-col-2';
|
482
|
-
break;
|
483
|
-
default:
|
484
|
-
columnClass = 'p-megamenu-col-12';
|
485
|
-
break;
|
486
|
-
}
|
487
|
-
}
|
488
|
-
return columnClass;
|
489
|
-
}
|
490
|
-
getSubmenuHeaderClass(processedItem) {
|
491
|
-
return {
|
492
|
-
'p-megamenu-submenu-label': true,
|
493
|
-
'p-disabled': this.isItemDisabled(processedItem),
|
494
|
-
...this.getItemProp(processedItem, 'class')
|
495
|
-
};
|
496
|
-
}
|
497
|
-
isSubmenuVisible(submenu) {
|
498
|
-
if (this.submenu && !this.root) {
|
499
|
-
return this.isItemVisible(submenu);
|
500
|
-
}
|
501
|
-
else {
|
502
|
-
return true;
|
503
|
-
}
|
504
|
-
}
|
505
|
-
isItemVisible(processedItem) {
|
506
|
-
return this.getItemProp(processedItem, 'visible') !== false;
|
507
|
-
}
|
508
|
-
isItemActive(processedItem) {
|
509
|
-
return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;
|
510
|
-
}
|
511
|
-
isItemDisabled(processedItem) {
|
512
|
-
return this.getItemProp(processedItem, 'disabled');
|
513
|
-
}
|
514
|
-
isItemFocused(processedItem) {
|
515
|
-
return this.focusedItemId === this.getItemId(processedItem);
|
516
|
-
}
|
517
|
-
isItemGroup(processedItem) {
|
518
|
-
return isNotEmpty(processedItem.items);
|
519
|
-
}
|
520
|
-
getAriaSetSize() {
|
521
|
-
return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;
|
522
|
-
}
|
523
|
-
getAriaPosInset(index) {
|
524
|
-
return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;
|
525
|
-
}
|
526
|
-
onItemMouseEnter(param) {
|
527
|
-
const { event, processedItem } = param;
|
528
|
-
this.itemMouseEnter.emit({ originalEvent: event, processedItem });
|
529
|
-
}
|
530
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵMegaMenuSub_BaseFactory; return function MegaMenuSub_Factory(__ngFactoryType__) { return (ɵMegaMenuSub_BaseFactory || (ɵMegaMenuSub_BaseFactory = i0.ɵɵgetInheritedFactory(MegaMenuSub)))(__ngFactoryType__ || MegaMenuSub); }; })();
|
531
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MegaMenuSub, selectors: [["p-megaMenuSub"], ["p-megamenu-sub"]], viewQuery: function MegaMenuSub_Query(rf, ctx) { if (rf & 1) {
|
532
|
-
i0.ɵɵviewQuery(_c0, 7);
|
533
|
-
} if (rf & 2) {
|
534
|
-
let _t;
|
535
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menubarViewChild = _t.first);
|
536
|
-
} }, inputs: { id: "id", items: "items", itemTemplate: "itemTemplate", menuId: "menuId", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", level: [2, "level", "level", numberAttribute], focusedItemId: "focusedItemId", disabled: [2, "disabled", "disabled", booleanAttribute], orientation: "orientation", activeItem: "activeItem", submenu: "submenu", queryMatches: [2, "queryMatches", "queryMatches", booleanAttribute], mobileActive: [2, "mobileActive", "mobileActive", booleanAttribute], scrollHeight: "scrollHeight", tabindex: [2, "tabindex", "tabindex", numberAttribute], root: [2, "root", "root", booleanAttribute] }, outputs: { itemClick: "itemClick", itemMouseEnter: "itemMouseEnter", menuFocus: "menuFocus", menuBlur: "menuBlur", menuKeydown: "menuKeydown" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 1, vars: 1, consts: [["menubar", ""], ["listItem", ""], ["htmlLabel", ""], ["htmlRouteLabel", ""], [3, "ngClass", "style", "tabindex", "keydown", "focus", "blur", 4, "ngIf"], [3, "keydown", "focus", "blur", "ngClass", "tabindex"], ["role", "presentation", 3, "ngClass", "style", 4, "ngIf"], ["ngFor", "", 3, "ngForOf"], ["role", "presentation", 3, "ngClass"], ["role", "separator", 3, "style", "ngClass", 4, "ngIf"], ["role", "menuitem", "pTooltip", "", 3, "ngStyle", "ngClass", "class", "tooltipOptions", 4, "ngIf"], ["role", "separator", 3, "ngClass"], ["role", "menuitem", "pTooltip", "", 3, "ngStyle", "ngClass", "tooltipOptions"], [1, "p-megamenu-item-content", 3, "click", "mouseenter"], [4, "ngIf"], ["class", "p-megamenu-overlay", 4, "ngIf"], ["pRipple", "", 3, "target", "ngClass", 4, "ngIf"], ["pRipple", "", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "target", "ngClass", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", 4, "ngIf"], ["pRipple", "", 3, "target", "ngClass"], ["class", "p-megamenu-item-icon", 3, "ngClass", "ngStyle", 4, "ngIf"], ["class", "p-megamenu-item-label", 4, "ngIf", "ngIfElse"], [3, "styleClass", "value", 4, "ngIf"], [1, "p-megamenu-item-icon", 3, "ngClass", "ngStyle"], [1, "p-megamenu-item-label"], [1, "p-megamenu-item-label", 3, "innerHTML"], [3, "styleClass", "value"], [4, "ngTemplateOutlet"], [3, "ngClass"], [3, "ngClass", 4, "ngIf"], [3, "data-pc-section", "aria-hidden"], ["pRipple", "", 3, "routerLink", "queryParams", "routerLinkActive", "routerLinkActiveOptions", "target", "ngClass", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state"], [3, "styleClass", 4, "ngIf"], [3, "styleClass"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "p-megamenu-overlay"], [1, "p-megamenu-grid"], [3, "ngClass", 4, "ngFor", "ngForOf"], [3, "id", "submenu", "items", "itemTemplate", "mobileActive", "menuId", "focusedItemId", "level", "root", "itemClick", "itemMouseEnter", 4, "ngFor", "ngForOf"], [3, "itemClick", "itemMouseEnter", "id", "submenu", "items", "itemTemplate", "mobileActive", "menuId", "focusedItemId", "level", "root"]], template: function MegaMenuSub_Template(rf, ctx) { if (rf & 1) {
|
537
|
-
i0.ɵɵtemplate(0, MegaMenuSub_ul_0_Template, 4, 16, "ul", 4);
|
538
|
-
} if (rf & 2) {
|
539
|
-
i0.ɵɵproperty("ngIf", ctx.isSubmenuVisible(ctx.submenu));
|
540
|
-
} }, dependencies: [MegaMenuSub, CommonModule, i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, RouterModule, i2.RouterLink, i2.RouterLinkActive, Ripple, TooltipModule, i3.Tooltip, AngleDownIcon, AngleRightIcon, BadgeModule, i4.Badge, SharedModule], encapsulation: 2 });
|
541
|
-
}
|
542
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MegaMenuSub, [{
|
543
|
-
type: Component,
|
544
|
-
args: [{
|
545
|
-
selector: 'p-megaMenuSub, p-megamenu-sub',
|
546
|
-
standalone: true,
|
547
|
-
imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleDownIcon, AngleRightIcon, BadgeModule, SharedModule],
|
548
|
-
template: `
|
549
|
-
<ul
|
550
|
-
*ngIf="isSubmenuVisible(submenu)"
|
551
|
-
#menubar
|
552
|
-
[ngClass]="{ 'p-megamenu-root-list': root, 'p-megamenu-submenu': !root }"
|
553
|
-
[style]="{ 'max-height': scrollHeight, overflow: 'auto' }"
|
554
|
-
[attr.role]="root ? 'menubar' : 'menu'"
|
555
|
-
[attr.id]="id"
|
556
|
-
[attr.aria-orientation]="orientation"
|
557
|
-
[tabindex]="tabindex"
|
558
|
-
[attr.aria-activedescendant]="focusedItemId"
|
559
|
-
[attr.data-pc-section]="root ? 'root' : 'submenu'"
|
560
|
-
(keydown)="menuKeydown.emit($event)"
|
561
|
-
(focus)="menuFocus.emit($event)"
|
562
|
-
(blur)="menuBlur.emit($event)"
|
563
|
-
>
|
564
|
-
<li *ngIf="submenu" [ngClass]="getSubmenuHeaderClass(submenu)" [style]="getItemProp(submenu, 'style')" role="presentation">
|
565
|
-
{{ getItemLabel(submenu) }}
|
566
|
-
</li>
|
567
|
-
<ng-template ngFor let-processedItem [ngForOf]="items" let-index="index">
|
568
|
-
<li
|
569
|
-
*ngIf="isItemVisible(processedItem) && getItemProp(processedItem, 'separator')"
|
570
|
-
[attr.id]="getItemId(processedItem)"
|
571
|
-
[style]="getItemProp(processedItem, 'style')"
|
572
|
-
[ngClass]="getSeparatorItemClass(processedItem)"
|
573
|
-
role="separator"
|
574
|
-
[attr.data-pc-section]="'separator'"
|
575
|
-
></li>
|
576
|
-
<li
|
577
|
-
#listItem
|
578
|
-
*ngIf="isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')"
|
579
|
-
role="menuitem"
|
580
|
-
[attr.id]="getItemId(processedItem)"
|
581
|
-
[attr.data-pc-section]="'menuitem'"
|
582
|
-
[attr.data-p-highlight]="isItemActive(processedItem)"
|
583
|
-
[attr.data-p-focused]="isItemFocused(processedItem)"
|
584
|
-
[attr.data-p-disabled]="isItemDisabled(processedItem)"
|
585
|
-
[attr.aria-label]="getItemLabel(processedItem)"
|
586
|
-
[attr.aria-disabled]="isItemDisabled(processedItem) || undefined"
|
587
|
-
[attr.aria-haspopup]="isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined"
|
588
|
-
[attr.aria-expanded]="isItemGroup(processedItem) ? isItemActive(processedItem) : undefined"
|
589
|
-
[attr.aria-level]="level + 1"
|
590
|
-
[attr.aria-setsize]="getAriaSetSize()"
|
591
|
-
[attr.aria-posinset]="getAriaPosInset(index)"
|
592
|
-
[ngStyle]="getItemProp(processedItem, 'style')"
|
593
|
-
[ngClass]="getItemClass(processedItem)"
|
594
|
-
[class]="getItemProp(processedItem, 'styleClass')"
|
595
|
-
pTooltip
|
596
|
-
[tooltipOptions]="getItemProp(processedItem, 'tooltipOptions')"
|
597
|
-
>
|
598
|
-
<div class="p-megamenu-item-content" [attr.data-pc-section]="'content'" (click)="onItemClick($event, processedItem)" (mouseenter)="onItemMouseEnter({ $event, processedItem })">
|
599
|
-
<ng-container *ngIf="!itemTemplate">
|
600
|
-
<a
|
601
|
-
*ngIf="!getItemProp(processedItem, 'routerLink')"
|
602
|
-
[attr.href]="getItemProp(processedItem, 'url')"
|
603
|
-
[attr.data-automationid]="getItemProp(processedItem, 'automationId')"
|
604
|
-
[attr.data-pc-section]="'action'"
|
605
|
-
[target]="getItemProp(processedItem, 'target')"
|
606
|
-
[ngClass]="{ 'p-megamenu-item-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
|
607
|
-
[attr.tabindex]="-1"
|
608
|
-
pRipple
|
609
|
-
>
|
610
|
-
<span
|
611
|
-
*ngIf="getItemProp(processedItem, 'icon')"
|
612
|
-
class="p-megamenu-item-icon"
|
613
|
-
[ngClass]="getItemProp(processedItem, 'icon')"
|
614
|
-
[ngStyle]="getItemProp(processedItem, 'iconStyle')"
|
615
|
-
[attr.data-pc-section]="'icon'"
|
616
|
-
[attr.tabindex]="-1"
|
617
|
-
>
|
618
|
-
</span>
|
619
|
-
<span *ngIf="getItemProp(processedItem, 'escape'); else htmlLabel" class="p-megamenu-item-label" [attr.data-pc-section]="'label'">
|
620
|
-
{{ getItemLabel(processedItem) }}
|
621
|
-
</span>
|
622
|
-
<ng-template #htmlLabel>
|
623
|
-
<span class="p-megamenu-item-label" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span>
|
624
|
-
</ng-template>
|
625
|
-
<p-badge *ngIf="getItemProp(processedItem, 'badge')" [styleClass]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
|
626
|
-
<ng-container *ngIf="isItemGroup(processedItem)">
|
627
|
-
<ng-container *ngIf="!megaMenu.submenuiconTemplate">
|
628
|
-
@if (orientation === 'horizontal' || mobileActive) {
|
629
|
-
<AngleDownIcon [ngClass]="'p-megamenu-submenu-icon'" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
|
630
|
-
} @else {
|
631
|
-
<AngleRightIcon [ngClass]="'p-megamenu-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
|
632
|
-
}
|
633
|
-
</ng-container>
|
634
|
-
<ng-template *ngTemplateOutlet="megaMenu.submenuiconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
|
635
|
-
</ng-container>
|
636
|
-
</a>
|
637
|
-
<a
|
638
|
-
*ngIf="getItemProp(processedItem, 'routerLink')"
|
639
|
-
[routerLink]="getItemProp(processedItem, 'routerLink')"
|
640
|
-
[attr.data-automationid]="getItemProp(processedItem, 'automationId')"
|
641
|
-
[attr.tabindex]="-1"
|
642
|
-
[attr.aria-hidden]="true"
|
643
|
-
[attr.data-pc-section]="'action'"
|
644
|
-
[queryParams]="getItemProp(processedItem, 'queryParams')"
|
645
|
-
[routerLinkActive]="'p-megamenu-item-link-active'"
|
646
|
-
[routerLinkActiveOptions]="getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }"
|
647
|
-
[target]="getItemProp(processedItem, 'target')"
|
648
|
-
[ngClass]="{ 'p-megamenu-item-link': true, 'p-disabled': getItemProp(processedItem, 'disabled') }"
|
649
|
-
[fragment]="getItemProp(processedItem, 'fragment')"
|
650
|
-
[queryParamsHandling]="getItemProp(processedItem, 'queryParamsHandling')"
|
651
|
-
[preserveFragment]="getItemProp(processedItem, 'preserveFragment')"
|
652
|
-
[skipLocationChange]="getItemProp(processedItem, 'skipLocationChange')"
|
653
|
-
[replaceUrl]="getItemProp(processedItem, 'replaceUrl')"
|
654
|
-
[state]="getItemProp(processedItem, 'state')"
|
655
|
-
pRipple
|
656
|
-
>
|
657
|
-
<span
|
658
|
-
class="p-megamenu-item-icon"
|
659
|
-
*ngIf="getItemProp(processedItem, 'icon')"
|
660
|
-
[ngClass]="getItemProp(processedItem, 'icon')"
|
661
|
-
[ngStyle]="getItemProp(processedItem, 'iconStyle')"
|
662
|
-
[attr.data-pc-section]="'icon'"
|
663
|
-
[attr.aria-hidden]="true"
|
664
|
-
[attr.tabindex]="-1"
|
665
|
-
></span>
|
666
|
-
<span class="p-megamenu-item-label" *ngIf="getItemProp(processedItem, 'escape'); else htmlRouteLabel">{{ getItemLabel(processedItem) }}</span>
|
667
|
-
<ng-template #htmlRouteLabel><span class="p-megamenu-item-label" [innerHTML]="getItemLabel(processedItem)" [attr.data-pc-section]="'label'"></span></ng-template>
|
668
|
-
<p-badge *ngIf="getItemProp(processedItem, 'badge')" [styleClass]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
|
669
|
-
<ng-container *ngIf="isItemGroup(processedItem)">
|
670
|
-
<ng-container *ngIf="!megaMenu.submenuiconTemplate">
|
671
|
-
<AngleDownIcon [styleClass]="'p-megamenu-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
|
672
|
-
<AngleRightIcon [styleClass]="'p-megamenu-submenu-icon'" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
|
673
|
-
</ng-container>
|
674
|
-
<ng-template *ngTemplateOutlet="megaMenu.submenuiconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
|
675
|
-
</ng-container>
|
676
|
-
</a>
|
677
|
-
</ng-container>
|
678
|
-
<ng-container *ngIf="itemTemplate">
|
679
|
-
<ng-template *ngTemplateOutlet="itemTemplate; context: { $implicit: processedItem.item }"></ng-template>
|
680
|
-
</ng-container>
|
681
|
-
</div>
|
682
|
-
<div *ngIf="isItemVisible(processedItem) && isItemGroup(processedItem)" class="p-megamenu-overlay" [attr.data-pc-section]="'panel'">
|
683
|
-
<div class="p-megamenu-grid" [attr.data-pc-section]="'grid'">
|
684
|
-
<div *ngFor="let col of processedItem.items" [ngClass]="getColumnClass(processedItem)">
|
685
|
-
<p-megamenu-sub
|
686
|
-
*ngFor="let submenu of col"
|
687
|
-
[id]="getSubListId(submenu)"
|
688
|
-
[submenu]="submenu"
|
689
|
-
[items]="submenu.items"
|
690
|
-
[itemTemplate]="itemTemplate"
|
691
|
-
[mobileActive]="mobileActive"
|
692
|
-
[menuId]="menuId"
|
693
|
-
[focusedItemId]="focusedItemId"
|
694
|
-
[level]="level + 1"
|
695
|
-
[root]="false"
|
696
|
-
(itemClick)="itemClick.emit($event)"
|
697
|
-
(itemMouseEnter)="onItemMouseEnter($event)"
|
698
|
-
>
|
699
|
-
</p-megamenu-sub>
|
700
|
-
</div>
|
701
|
-
</div>
|
702
|
-
</div>
|
703
|
-
</li>
|
704
|
-
</ng-template>
|
705
|
-
</ul>
|
706
|
-
`,
|
707
|
-
encapsulation: ViewEncapsulation.None
|
708
|
-
}]
|
709
|
-
}], null, { id: [{
|
710
|
-
type: Input
|
711
|
-
}], items: [{
|
712
|
-
type: Input
|
713
|
-
}], itemTemplate: [{
|
714
|
-
type: Input
|
715
|
-
}], menuId: [{
|
716
|
-
type: Input
|
717
|
-
}], ariaLabel: [{
|
718
|
-
type: Input
|
719
|
-
}], ariaLabelledBy: [{
|
720
|
-
type: Input
|
721
|
-
}], level: [{
|
722
|
-
type: Input,
|
723
|
-
args: [{ transform: numberAttribute }]
|
724
|
-
}], focusedItemId: [{
|
725
|
-
type: Input
|
726
|
-
}], disabled: [{
|
727
|
-
type: Input,
|
728
|
-
args: [{ transform: booleanAttribute }]
|
729
|
-
}], orientation: [{
|
730
|
-
type: Input
|
731
|
-
}], activeItem: [{
|
732
|
-
type: Input
|
733
|
-
}], submenu: [{
|
734
|
-
type: Input
|
735
|
-
}], queryMatches: [{
|
736
|
-
type: Input,
|
737
|
-
args: [{ transform: booleanAttribute }]
|
738
|
-
}], mobileActive: [{
|
739
|
-
type: Input,
|
740
|
-
args: [{ transform: booleanAttribute }]
|
741
|
-
}], scrollHeight: [{
|
742
|
-
type: Input
|
743
|
-
}], tabindex: [{
|
744
|
-
type: Input,
|
745
|
-
args: [{ transform: numberAttribute }]
|
746
|
-
}], root: [{
|
747
|
-
type: Input,
|
748
|
-
args: [{ transform: booleanAttribute }]
|
749
|
-
}], itemClick: [{
|
750
|
-
type: Output
|
751
|
-
}], itemMouseEnter: [{
|
752
|
-
type: Output
|
753
|
-
}], menuFocus: [{
|
754
|
-
type: Output
|
755
|
-
}], menuBlur: [{
|
756
|
-
type: Output
|
757
|
-
}], menuKeydown: [{
|
758
|
-
type: Output
|
759
|
-
}], menubarViewChild: [{
|
760
|
-
type: ViewChild,
|
761
|
-
args: ['menubar', { static: true }]
|
762
|
-
}] }); })();
|
763
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MegaMenuSub, { className: "MegaMenuSub" }); })();
|
764
|
-
/**
|
765
|
-
* MegaMenu is navigation component that displays submenus together.
|
766
|
-
* @group Components
|
767
|
-
*/
|
768
|
-
export class MegaMenu extends BaseComponent {
|
769
|
-
/**
|
770
|
-
* An array of menuitems.
|
771
|
-
* @group Props
|
772
|
-
*/
|
773
|
-
set model(value) {
|
774
|
-
this._model = value;
|
775
|
-
this._processedItems = this.createProcessedItems(this._model || []);
|
776
|
-
}
|
777
|
-
get model() {
|
778
|
-
return this._model;
|
779
|
-
}
|
780
|
-
/**
|
781
|
-
* Inline style of the element.
|
782
|
-
* @group Props
|
783
|
-
*/
|
784
|
-
style;
|
785
|
-
/**
|
786
|
-
* Class of the element.
|
787
|
-
* @group Props
|
788
|
-
*/
|
789
|
-
styleClass;
|
790
|
-
/**
|
791
|
-
* Defines the orientation.
|
792
|
-
* @group Props
|
793
|
-
*/
|
794
|
-
orientation = 'horizontal';
|
795
|
-
/**
|
796
|
-
* Current id state as a string.
|
797
|
-
* @group Props
|
798
|
-
*/
|
799
|
-
id;
|
800
|
-
/**
|
801
|
-
* Defines a string value that labels an interactive element.
|
802
|
-
* @group Props
|
803
|
-
*/
|
804
|
-
ariaLabel;
|
805
|
-
/**
|
806
|
-
* Identifier of the underlying input element.
|
807
|
-
* @group Props
|
808
|
-
*/
|
809
|
-
ariaLabelledBy;
|
810
|
-
/**
|
811
|
-
* The breakpoint to define the maximum width boundary.
|
812
|
-
* @group Props
|
813
|
-
*/
|
814
|
-
breakpoint = '960px';
|
815
|
-
/**
|
816
|
-
* Height of the viewport, a scrollbar is defined if height of list exceeds this value.
|
817
|
-
* @group Props
|
818
|
-
*/
|
819
|
-
scrollHeight = '20rem';
|
820
|
-
/**
|
821
|
-
* When present, it specifies that the component should be disabled.
|
822
|
-
* @group Props
|
823
|
-
*/
|
824
|
-
disabled = false;
|
825
|
-
/**
|
826
|
-
* Index of the element in tabbing order.
|
827
|
-
* @group Props
|
828
|
-
*/
|
829
|
-
tabindex = 0;
|
830
|
-
/**
|
831
|
-
* Defines template option for start.
|
832
|
-
* @group Templates
|
833
|
-
*/
|
834
|
-
startTemplate;
|
835
|
-
/**
|
836
|
-
* Defines template option for end.
|
837
|
-
* @group Templates
|
838
|
-
*/
|
839
|
-
endTemplate;
|
840
|
-
/**
|
841
|
-
* Defines template option for menu icon.
|
842
|
-
* @group Templates
|
843
|
-
*/
|
844
|
-
menuiconTemplate;
|
845
|
-
/**
|
846
|
-
* Defines template option for submenu icon.
|
847
|
-
* @group Templates
|
848
|
-
*/
|
849
|
-
submenuiconTemplate;
|
850
|
-
/**
|
851
|
-
* Defines template option for submenu icon.
|
852
|
-
* @group Templates
|
853
|
-
*/
|
854
|
-
itemTemplate;
|
855
|
-
/**
|
856
|
-
* Custom menu button template on responsive mode.
|
857
|
-
* @group Templates
|
858
|
-
*/
|
859
|
-
buttonTemplate;
|
860
|
-
/**
|
861
|
-
* Custom menu button icon template on responsive mode.
|
862
|
-
* @group Templates
|
863
|
-
*/
|
864
|
-
buttoniconTemplate;
|
865
|
-
menubuttonViewChild;
|
866
|
-
rootmenu;
|
867
|
-
container;
|
868
|
-
outsideClickListener;
|
869
|
-
resizeListener;
|
870
|
-
dirty = false;
|
871
|
-
focused = false;
|
872
|
-
activeItem = signal(null);
|
873
|
-
focusedItemInfo = signal({ index: -1, level: 0, parentKey: '', item: null });
|
874
|
-
searchValue = '';
|
875
|
-
searchTimeout;
|
876
|
-
_processedItems;
|
877
|
-
_model;
|
878
|
-
_componentStyle = inject(MegaMenuStyle);
|
879
|
-
matchMediaListener;
|
880
|
-
query;
|
881
|
-
queryMatches = false;
|
882
|
-
mobileActive = false;
|
883
|
-
get visibleItems() {
|
884
|
-
const processedItem = isNotEmpty(this.activeItem()) ? this.activeItem() : null;
|
885
|
-
return processedItem
|
886
|
-
? processedItem.items.reduce((items, col) => {
|
887
|
-
col.forEach((submenu) => {
|
888
|
-
submenu.items.forEach((a) => {
|
889
|
-
items.push(a);
|
890
|
-
});
|
891
|
-
});
|
892
|
-
return items;
|
893
|
-
}, [])
|
894
|
-
: this.processedItems;
|
895
|
-
}
|
896
|
-
get processedItems() {
|
897
|
-
if (!this._processedItems || !this._processedItems.length) {
|
898
|
-
this._processedItems = this.createProcessedItems(this.model || []);
|
899
|
-
}
|
900
|
-
return this._processedItems;
|
901
|
-
}
|
902
|
-
get focusedItemId() {
|
903
|
-
const focusedItem = this.focusedItemInfo();
|
904
|
-
return focusedItem?.item && focusedItem.item?.id ? focusedItem.item.id : isNotEmpty(focusedItem.key) ? `${this.id}_${focusedItem.key}` : null;
|
905
|
-
}
|
906
|
-
constructor() {
|
907
|
-
super();
|
908
|
-
effect(() => {
|
909
|
-
const activeItem = this.activeItem();
|
910
|
-
if (isNotEmpty(activeItem)) {
|
911
|
-
this.bindOutsideClickListener();
|
912
|
-
this.bindResizeListener();
|
913
|
-
}
|
914
|
-
else {
|
915
|
-
this.unbindOutsideClickListener();
|
916
|
-
this.unbindResizeListener();
|
917
|
-
}
|
918
|
-
});
|
919
|
-
}
|
920
|
-
ngOnInit() {
|
921
|
-
super.ngOnInit();
|
922
|
-
this.bindMatchMediaListener();
|
923
|
-
this.id = this.id || uuid('pn_id_');
|
924
|
-
}
|
925
|
-
bindMatchMediaListener() {
|
926
|
-
if (isPlatformBrowser(this.platformId)) {
|
927
|
-
if (!this.matchMediaListener) {
|
928
|
-
const query = window.matchMedia(`(max-width: ${this.breakpoint})`);
|
929
|
-
this.query = query;
|
930
|
-
this.queryMatches = query.matches;
|
931
|
-
this.matchMediaListener = () => {
|
932
|
-
this.queryMatches = query.matches;
|
933
|
-
this.mobileActive = false;
|
934
|
-
this.cd.markForCheck();
|
935
|
-
};
|
936
|
-
query.addEventListener('change', this.matchMediaListener);
|
937
|
-
}
|
938
|
-
}
|
939
|
-
}
|
940
|
-
unbindMatchMediaListener() {
|
941
|
-
if (this.matchMediaListener) {
|
942
|
-
this.query.removeEventListener('change', this.matchMediaListener);
|
943
|
-
this.matchMediaListener = null;
|
944
|
-
}
|
945
|
-
}
|
946
|
-
createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex) {
|
947
|
-
const processedItems = [];
|
948
|
-
items &&
|
949
|
-
items.forEach((item, index) => {
|
950
|
-
const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;
|
951
|
-
const newItem = {
|
952
|
-
item,
|
953
|
-
index,
|
954
|
-
level,
|
955
|
-
key,
|
956
|
-
parent,
|
957
|
-
parentKey,
|
958
|
-
columnIndex: columnIndex !== undefined ? columnIndex : parent.columnIndex !== undefined ? parent.columnIndex : index
|
959
|
-
};
|
960
|
-
newItem['items'] =
|
961
|
-
level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);
|
962
|
-
processedItems.push(newItem);
|
963
|
-
});
|
964
|
-
return processedItems;
|
965
|
-
}
|
966
|
-
getItemProp(item, name) {
|
967
|
-
return item ? resolve(item[name]) : undefined;
|
968
|
-
}
|
969
|
-
onItemClick(event) {
|
970
|
-
const { originalEvent, processedItem } = event;
|
971
|
-
const grouped = this.isProcessedItemGroup(processedItem);
|
972
|
-
const root = isEmpty(processedItem.parent);
|
973
|
-
const selected = this.isSelected(processedItem);
|
974
|
-
if (selected) {
|
975
|
-
const { index, key, parentKey, item } = processedItem;
|
976
|
-
this.activeItem.set(null);
|
977
|
-
this.focusedItemInfo.set({ index, key, parentKey, item });
|
978
|
-
this.dirty = !root;
|
979
|
-
if (!this.mobileActive) {
|
980
|
-
focus(this.rootmenu?.menubarViewChild?.nativeElement, { preventScroll: true });
|
981
|
-
}
|
982
|
-
}
|
983
|
-
else {
|
984
|
-
if (grouped) {
|
985
|
-
this.onItemChange(event);
|
986
|
-
}
|
987
|
-
else {
|
988
|
-
this.hide(originalEvent);
|
989
|
-
}
|
990
|
-
}
|
991
|
-
}
|
992
|
-
onItemMouseEnter(event) {
|
993
|
-
if (!this.mobileActive && this.dirty) {
|
994
|
-
this.onItemChange(event);
|
995
|
-
}
|
996
|
-
}
|
997
|
-
menuButtonClick(event) {
|
998
|
-
this.toggle(event);
|
999
|
-
}
|
1000
|
-
menuButtonKeydown(event) {
|
1001
|
-
(event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);
|
1002
|
-
}
|
1003
|
-
toggle(event) {
|
1004
|
-
if (this.mobileActive) {
|
1005
|
-
this.mobileActive = false;
|
1006
|
-
ZIndexUtils.clear(this.rootmenu.el.nativeElement);
|
1007
|
-
this.hide();
|
1008
|
-
}
|
1009
|
-
else {
|
1010
|
-
this.mobileActive = true;
|
1011
|
-
ZIndexUtils.set('menu', this.rootmenu.el.nativeElement, this.config.zIndex.menu);
|
1012
|
-
setTimeout(() => {
|
1013
|
-
this.show();
|
1014
|
-
}, 0);
|
1015
|
-
}
|
1016
|
-
this.bindOutsideClickListener();
|
1017
|
-
event.preventDefault();
|
1018
|
-
}
|
1019
|
-
show() {
|
1020
|
-
this.focusedItemInfo.set({ index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' });
|
1021
|
-
focus(this.rootmenu?.el.nativeElement);
|
1022
|
-
}
|
1023
|
-
scrollInView(index = -1) {
|
1024
|
-
const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;
|
1025
|
-
let element;
|
1026
|
-
if (id === null && this.queryMatches) {
|
1027
|
-
element = this.menubuttonViewChild.nativeElement;
|
1028
|
-
}
|
1029
|
-
else {
|
1030
|
-
element = findSingle(this.rootmenu?.menubarViewChild?.nativeElement, `li[id="${id}"]`);
|
1031
|
-
}
|
1032
|
-
if (element) {
|
1033
|
-
element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });
|
1034
|
-
}
|
1035
|
-
}
|
1036
|
-
onItemChange(event) {
|
1037
|
-
const { processedItem, isFocus } = event;
|
1038
|
-
if (isEmpty(processedItem))
|
1039
|
-
return;
|
1040
|
-
const { index, key, parentKey, items, item } = processedItem;
|
1041
|
-
const grouped = isNotEmpty(items);
|
1042
|
-
if (grouped) {
|
1043
|
-
this.activeItem.set(processedItem);
|
1044
|
-
}
|
1045
|
-
this.focusedItemInfo.set({ index, key, parentKey, item });
|
1046
|
-
grouped && (this.dirty = true);
|
1047
|
-
isFocus && focus(this.rootmenu?.menubarViewChild?.nativeElement);
|
1048
|
-
}
|
1049
|
-
hide(event, isFocus) {
|
1050
|
-
if (this.mobileActive) {
|
1051
|
-
this.mobileActive = false;
|
1052
|
-
setTimeout(() => {
|
1053
|
-
focus(this.menubuttonViewChild?.nativeElement);
|
1054
|
-
this.scrollInView();
|
1055
|
-
}, 100);
|
1056
|
-
}
|
1057
|
-
this.activeItem.set(null);
|
1058
|
-
this.focusedItemInfo.set({ index: -1, key: '', parentKey: '', item: null });
|
1059
|
-
isFocus && focus(this.rootmenu?.menubarViewChild?.nativeElement);
|
1060
|
-
this.dirty = false;
|
1061
|
-
}
|
1062
|
-
onMenuFocus(event) {
|
1063
|
-
this.focused = true;
|
1064
|
-
if (this.focusedItemInfo().index === -1) {
|
1065
|
-
const index = this.findFirstFocusedItemIndex();
|
1066
|
-
const processedItem = this.findVisibleItem(index);
|
1067
|
-
this.focusedItemInfo.set({ index, key: processedItem.key, parentKey: processedItem.parentKey, item: processedItem.item });
|
1068
|
-
}
|
1069
|
-
}
|
1070
|
-
onMenuBlur(event) {
|
1071
|
-
this.focused = false;
|
1072
|
-
this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });
|
1073
|
-
this.searchValue = '';
|
1074
|
-
this.dirty = false;
|
1075
|
-
}
|
1076
|
-
onKeyDown(event) {
|
1077
|
-
const metaKey = event.metaKey || event.ctrlKey;
|
1078
|
-
switch (event.code) {
|
1079
|
-
case 'ArrowDown':
|
1080
|
-
this.onArrowDownKey(event);
|
1081
|
-
break;
|
1082
|
-
case 'ArrowUp':
|
1083
|
-
this.onArrowUpKey(event);
|
1084
|
-
break;
|
1085
|
-
case 'ArrowLeft':
|
1086
|
-
this.onArrowLeftKey(event);
|
1087
|
-
break;
|
1088
|
-
case 'ArrowRight':
|
1089
|
-
this.onArrowRightKey(event);
|
1090
|
-
break;
|
1091
|
-
case 'Home':
|
1092
|
-
this.onHomeKey(event);
|
1093
|
-
break;
|
1094
|
-
case 'End':
|
1095
|
-
this.onEndKey(event);
|
1096
|
-
break;
|
1097
|
-
case 'Space':
|
1098
|
-
this.onSpaceKey(event);
|
1099
|
-
break;
|
1100
|
-
case 'Enter':
|
1101
|
-
this.onEnterKey(event);
|
1102
|
-
break;
|
1103
|
-
case 'Escape':
|
1104
|
-
this.onEscapeKey(event);
|
1105
|
-
break;
|
1106
|
-
case 'Tab':
|
1107
|
-
this.onTabKey(event);
|
1108
|
-
break;
|
1109
|
-
case 'PageDown':
|
1110
|
-
case 'PageUp':
|
1111
|
-
case 'Backspace':
|
1112
|
-
case 'ShiftLeft':
|
1113
|
-
case 'ShiftRight':
|
1114
|
-
//NOOP
|
1115
|
-
break;
|
1116
|
-
default:
|
1117
|
-
if (!metaKey && isPrintableCharacter(event.key)) {
|
1118
|
-
this.searchItems(event, event.key);
|
1119
|
-
}
|
1120
|
-
break;
|
1121
|
-
}
|
1122
|
-
}
|
1123
|
-
findFirstFocusedItemIndex() {
|
1124
|
-
const selectedIndex = this.findSelectedItemIndex();
|
1125
|
-
return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;
|
1126
|
-
}
|
1127
|
-
findFirstItemIndex() {
|
1128
|
-
return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));
|
1129
|
-
}
|
1130
|
-
findSelectedItemIndex() {
|
1131
|
-
return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));
|
1132
|
-
}
|
1133
|
-
isProcessedItemGroup(processedItem) {
|
1134
|
-
return processedItem && isNotEmpty(processedItem.items);
|
1135
|
-
}
|
1136
|
-
isSelected(processedItem) {
|
1137
|
-
return isNotEmpty(this.activeItem()) ? this.activeItem().key === processedItem.key : false;
|
1138
|
-
}
|
1139
|
-
isValidSelectedItem(processedItem) {
|
1140
|
-
return this.isValidItem(processedItem) && this.isSelected(processedItem);
|
1141
|
-
}
|
1142
|
-
isValidItem(processedItem) {
|
1143
|
-
return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item);
|
1144
|
-
}
|
1145
|
-
isItemDisabled(item) {
|
1146
|
-
return this.getItemProp(item, 'disabled');
|
1147
|
-
}
|
1148
|
-
isItemSeparator(item) {
|
1149
|
-
return this.getItemProp(item, 'separator');
|
1150
|
-
}
|
1151
|
-
isItemMatched(processedItem) {
|
1152
|
-
return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());
|
1153
|
-
}
|
1154
|
-
isProccessedItemGroup(processedItem) {
|
1155
|
-
return processedItem && isNotEmpty(processedItem.items);
|
1156
|
-
}
|
1157
|
-
searchItems(event, char) {
|
1158
|
-
this.searchValue = (this.searchValue || '') + char;
|
1159
|
-
let itemIndex = -1;
|
1160
|
-
let matched = false;
|
1161
|
-
if (this.focusedItemInfo().index !== -1) {
|
1162
|
-
itemIndex = this.visibleItems.slice(this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem));
|
1163
|
-
itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo().index;
|
1164
|
-
}
|
1165
|
-
else {
|
1166
|
-
itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));
|
1167
|
-
}
|
1168
|
-
if (itemIndex !== -1) {
|
1169
|
-
matched = true;
|
1170
|
-
}
|
1171
|
-
if (itemIndex === -1 && this.focusedItemInfo().index === -1) {
|
1172
|
-
itemIndex = this.findFirstFocusedItemIndex();
|
1173
|
-
}
|
1174
|
-
if (itemIndex !== -1) {
|
1175
|
-
this.changeFocusedItemInfo(event, itemIndex);
|
1176
|
-
}
|
1177
|
-
if (this.searchTimeout) {
|
1178
|
-
clearTimeout(this.searchTimeout);
|
1179
|
-
}
|
1180
|
-
this.searchTimeout = setTimeout(() => {
|
1181
|
-
this.searchValue = '';
|
1182
|
-
this.searchTimeout = null;
|
1183
|
-
}, 500);
|
1184
|
-
return matched;
|
1185
|
-
}
|
1186
|
-
getProccessedItemLabel(processedItem) {
|
1187
|
-
return processedItem ? this.getItemLabel(processedItem.item) : undefined;
|
1188
|
-
}
|
1189
|
-
getItemLabel(item) {
|
1190
|
-
return this.getItemProp(item, 'label');
|
1191
|
-
}
|
1192
|
-
changeFocusedItemInfo(event, index) {
|
1193
|
-
const processedItem = this.findVisibleItem(index);
|
1194
|
-
if (isNotEmpty(processedItem)) {
|
1195
|
-
const { key, parentKey, item } = processedItem;
|
1196
|
-
this.focusedItemInfo.set({ index, key: key ? key : '', parentKey, item });
|
1197
|
-
}
|
1198
|
-
this.scrollInView();
|
1199
|
-
}
|
1200
|
-
onArrowDownKey(event) {
|
1201
|
-
if (this.orientation === 'horizontal') {
|
1202
|
-
if (isNotEmpty(this.activeItem()) && this.activeItem().key === this.focusedItemInfo().key) {
|
1203
|
-
const { key, item } = this.activeItem();
|
1204
|
-
this.focusedItemInfo.set({ index: -1, key: '', parentKey: key, item });
|
1205
|
-
}
|
1206
|
-
else {
|
1207
|
-
const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
|
1208
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1209
|
-
if (grouped) {
|
1210
|
-
const { parentKey, key, item } = processedItem;
|
1211
|
-
this.onItemChange({ originalEvent: event, processedItem });
|
1212
|
-
this.focusedItemInfo.set({ index: -1, key: key, parentKey: parentKey, item: item });
|
1213
|
-
this.searchValue = '';
|
1214
|
-
}
|
1215
|
-
}
|
1216
|
-
}
|
1217
|
-
const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();
|
1218
|
-
this.changeFocusedItemInfo(event, itemIndex);
|
1219
|
-
event.preventDefault();
|
1220
|
-
}
|
1221
|
-
onArrowRightKey(event) {
|
1222
|
-
const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
|
1223
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1224
|
-
if (grouped) {
|
1225
|
-
if (this.orientation === 'vertical') {
|
1226
|
-
if (isNotEmpty(this.activeItem()) && this.activeItem().key === processedItem.key) {
|
1227
|
-
this.focusedItemInfo.set({ index: -1, key: '', parentKey: this.activeItem().key, item: processedItem.item });
|
1228
|
-
}
|
1229
|
-
else {
|
1230
|
-
const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
|
1231
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1232
|
-
if (grouped) {
|
1233
|
-
this.onItemChange({ originalEvent: event, processedItem });
|
1234
|
-
this.focusedItemInfo.set({
|
1235
|
-
index: -1,
|
1236
|
-
key: processedItem.key,
|
1237
|
-
parentKey: processedItem.parentKey,
|
1238
|
-
item: processedItem.item
|
1239
|
-
});
|
1240
|
-
this.searchValue = '';
|
1241
|
-
}
|
1242
|
-
}
|
1243
|
-
}
|
1244
|
-
const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();
|
1245
|
-
this.changeFocusedItemInfo(event, itemIndex);
|
1246
|
-
}
|
1247
|
-
else {
|
1248
|
-
const columnIndex = processedItem.columnIndex + 1;
|
1249
|
-
const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);
|
1250
|
-
itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);
|
1251
|
-
}
|
1252
|
-
event.preventDefault();
|
1253
|
-
}
|
1254
|
-
onArrowUpKey(event) {
|
1255
|
-
if (event.altKey && this.orientation === 'horizontal') {
|
1256
|
-
if (this.focusedItemInfo().index !== -1) {
|
1257
|
-
const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
|
1258
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1259
|
-
if (!grouped && isNotEmpty(this.activeItem)) {
|
1260
|
-
if (this.focusedItemInfo().index === 0) {
|
1261
|
-
this.focusedItemInfo.set({
|
1262
|
-
index: this.activeItem().index,
|
1263
|
-
key: this.activeItem().key,
|
1264
|
-
parentKey: this.activeItem().parentKey,
|
1265
|
-
item: processedItem.item
|
1266
|
-
});
|
1267
|
-
this.activeItem.set(null);
|
1268
|
-
}
|
1269
|
-
else {
|
1270
|
-
this.changeFocusedItemInfo(event, this.findFirstItemIndex());
|
1271
|
-
}
|
1272
|
-
}
|
1273
|
-
}
|
1274
|
-
event.preventDefault();
|
1275
|
-
}
|
1276
|
-
else {
|
1277
|
-
const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();
|
1278
|
-
this.changeFocusedItemInfo(event, itemIndex);
|
1279
|
-
event.preventDefault();
|
1280
|
-
}
|
1281
|
-
}
|
1282
|
-
onArrowLeftKey(event) {
|
1283
|
-
const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
|
1284
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1285
|
-
if (grouped) {
|
1286
|
-
if (this.orientation === 'horizontal') {
|
1287
|
-
const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();
|
1288
|
-
this.changeFocusedItemInfo(event, itemIndex);
|
1289
|
-
}
|
1290
|
-
}
|
1291
|
-
else {
|
1292
|
-
if (this.orientation === 'vertical' && isNotEmpty(this.activeItem())) {
|
1293
|
-
if (processedItem.columnIndex === 0) {
|
1294
|
-
this.focusedItemInfo.set({
|
1295
|
-
index: this.activeItem().index,
|
1296
|
-
key: this.activeItem().key,
|
1297
|
-
parentKey: this.activeItem().parentKey,
|
1298
|
-
item: processedItem.item
|
1299
|
-
});
|
1300
|
-
this.activeItem.set(null);
|
1301
|
-
}
|
1302
|
-
}
|
1303
|
-
const columnIndex = processedItem.columnIndex - 1;
|
1304
|
-
const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);
|
1305
|
-
itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);
|
1306
|
-
}
|
1307
|
-
event.preventDefault();
|
1308
|
-
}
|
1309
|
-
onHomeKey(event) {
|
1310
|
-
this.changeFocusedItemInfo(event, this.findFirstItemIndex());
|
1311
|
-
event.preventDefault();
|
1312
|
-
}
|
1313
|
-
onEndKey(event) {
|
1314
|
-
this.changeFocusedItemInfo(event, this.findLastItemIndex());
|
1315
|
-
event.preventDefault();
|
1316
|
-
}
|
1317
|
-
onSpaceKey(event) {
|
1318
|
-
this.onEnterKey(event);
|
1319
|
-
}
|
1320
|
-
onEscapeKey(event) {
|
1321
|
-
if (isNotEmpty(this.activeItem())) {
|
1322
|
-
this.focusedItemInfo.set({ index: this.activeItem().index, key: this.activeItem().key, item: this.activeItem().item });
|
1323
|
-
this.activeItem.set(null);
|
1324
|
-
}
|
1325
|
-
event.preventDefault();
|
1326
|
-
}
|
1327
|
-
onTabKey(event) {
|
1328
|
-
if (this.focusedItemInfo().index !== -1) {
|
1329
|
-
const processedItem = this.findVisibleItem(this.focusedItemInfo().index);
|
1330
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1331
|
-
!grouped && this.onItemChange({ originalEvent: event, processedItem });
|
1332
|
-
}
|
1333
|
-
this.hide();
|
1334
|
-
}
|
1335
|
-
onEnterKey(event) {
|
1336
|
-
if (this.focusedItemInfo().index !== -1) {
|
1337
|
-
const element = findSingle(this.rootmenu?.el?.nativeElement, `li[id="${`${this.focusedItemId}`}"]`);
|
1338
|
-
const anchorElement = element && findSingle(element, 'a[data-pc-section="action"]');
|
1339
|
-
anchorElement ? anchorElement.click() : element && element.click();
|
1340
|
-
const processedItem = this.visibleItems[this.focusedItemInfo().index];
|
1341
|
-
const grouped = this.isProccessedItemGroup(processedItem);
|
1342
|
-
!grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());
|
1343
|
-
}
|
1344
|
-
event.preventDefault();
|
1345
|
-
}
|
1346
|
-
findVisibleItem(index) {
|
1347
|
-
return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;
|
1348
|
-
}
|
1349
|
-
findLastFocusedItemIndex() {
|
1350
|
-
const selectedIndex = this.findSelectedItemIndex();
|
1351
|
-
return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;
|
1352
|
-
}
|
1353
|
-
findLastItemIndex() {
|
1354
|
-
return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));
|
1355
|
-
}
|
1356
|
-
findPrevItemIndex(index) {
|
1357
|
-
const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;
|
1358
|
-
return matchedItemIndex > -1 ? matchedItemIndex : index;
|
1359
|
-
}
|
1360
|
-
findNextItemIndex(index) {
|
1361
|
-
const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;
|
1362
|
-
return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;
|
1363
|
-
}
|
1364
|
-
bindResizeListener() {
|
1365
|
-
if (!this.resizeListener) {
|
1366
|
-
this.resizeListener = (event) => {
|
1367
|
-
if (!isTouchDevice()) {
|
1368
|
-
this.hide(event, true);
|
1369
|
-
}
|
1370
|
-
this.mobileActive = false;
|
1371
|
-
};
|
1372
|
-
window.addEventListener('resize', this.resizeListener);
|
1373
|
-
}
|
1374
|
-
}
|
1375
|
-
bindOutsideClickListener() {
|
1376
|
-
if (isPlatformBrowser(this.platformId)) {
|
1377
|
-
if (!this.outsideClickListener) {
|
1378
|
-
this.outsideClickListener = this.renderer.listen(this.document, 'click', (event) => {
|
1379
|
-
const isOutsideContainer = this.container?.nativeElement !== event.target && !this.container?.nativeElement.contains(event.target);
|
1380
|
-
if (isOutsideContainer) {
|
1381
|
-
this.hide();
|
1382
|
-
}
|
1383
|
-
});
|
1384
|
-
}
|
1385
|
-
}
|
1386
|
-
}
|
1387
|
-
unbindOutsideClickListener() {
|
1388
|
-
if (this.outsideClickListener) {
|
1389
|
-
this.outsideClickListener();
|
1390
|
-
this.outsideClickListener = null;
|
1391
|
-
}
|
1392
|
-
}
|
1393
|
-
unbindResizeListener() {
|
1394
|
-
if (this.resizeListener) {
|
1395
|
-
window.removeEventListener('resize', this.resizeListener);
|
1396
|
-
this.resizeListener = null;
|
1397
|
-
}
|
1398
|
-
}
|
1399
|
-
ngOnDestroy() {
|
1400
|
-
this.unbindOutsideClickListener();
|
1401
|
-
this.unbindResizeListener();
|
1402
|
-
this.unbindMatchMediaListener();
|
1403
|
-
super.ngOnDestroy();
|
1404
|
-
}
|
1405
|
-
static ɵfac = function MegaMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MegaMenu)(); };
|
1406
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MegaMenu, selectors: [["p-megaMenu"], ["p-megamenu"], ["p-mega-menu"]], contentQueries: function MegaMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
1407
|
-
i0.ɵɵcontentQuery(dirIndex, _c6, 5);
|
1408
|
-
i0.ɵɵcontentQuery(dirIndex, _c7, 5);
|
1409
|
-
i0.ɵɵcontentQuery(dirIndex, _c8, 5);
|
1410
|
-
i0.ɵɵcontentQuery(dirIndex, _c9, 5);
|
1411
|
-
i0.ɵɵcontentQuery(dirIndex, _c10, 5);
|
1412
|
-
i0.ɵɵcontentQuery(dirIndex, _c11, 5);
|
1413
|
-
i0.ɵɵcontentQuery(dirIndex, _c12, 5);
|
1414
|
-
} if (rf & 2) {
|
1415
|
-
let _t;
|
1416
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.startTemplate = _t.first);
|
1417
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.endTemplate = _t.first);
|
1418
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuiconTemplate = _t.first);
|
1419
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.submenuiconTemplate = _t.first);
|
1420
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);
|
1421
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttonTemplate = _t.first);
|
1422
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.buttoniconTemplate = _t.first);
|
1423
|
-
} }, viewQuery: function MegaMenu_Query(rf, ctx) { if (rf & 1) {
|
1424
|
-
i0.ɵɵviewQuery(_c13, 5);
|
1425
|
-
i0.ɵɵviewQuery(_c14, 5);
|
1426
|
-
i0.ɵɵviewQuery(_c15, 5);
|
1427
|
-
} if (rf & 2) {
|
1428
|
-
let _t;
|
1429
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menubuttonViewChild = _t.first);
|
1430
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rootmenu = _t.first);
|
1431
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
|
1432
|
-
} }, inputs: { model: "model", style: "style", styleClass: "styleClass", orientation: "orientation", id: "id", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", breakpoint: "breakpoint", scrollHeight: "scrollHeight", disabled: [2, "disabled", "disabled", booleanAttribute], tabindex: [2, "tabindex", "tabindex", numberAttribute] }, standalone: true, features: [i0.ɵɵProvidersFeature([MegaMenuStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 8, vars: 36, consts: [["container", ""], ["rootmenu", ""], ["menubutton", ""], [3, "ngClass", "ngStyle"], ["class", "p-megamenu-start", 4, "ngIf"], [4, "ngIf"], [4, "ngTemplateOutlet"], [3, "itemClick", "menuFocus", "menuBlur", "menuKeydown", "itemMouseEnter", "itemTemplate", "items", "menuId", "root", "orientation", "ariaLabel", "disabled", "tabindex", "activeItem", "level", "ariaLabelledBy", "focusedItemId", "mobileActive", "queryMatches", "scrollHeight"], ["class", "p-megamenu-end", 4, "ngIf"], [1, "p-megamenu-start"], ["role", "button", "tabindex", "0", "class", "p-megamenu-button", 3, "click", "keydown", 4, "ngIf"], ["role", "button", "tabindex", "0", 1, "p-megamenu-button", 3, "click", "keydown"], [1, "p-megamenu-end"]], template: function MegaMenu_Template(rf, ctx) { if (rf & 1) {
|
1433
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
1434
|
-
i0.ɵɵelementStart(0, "div", 3, 0);
|
1435
|
-
i0.ɵɵtemplate(2, MegaMenu_div_2_Template, 2, 1, "div", 4)(3, MegaMenu_ng_container_3_Template, 2, 1, "ng-container", 5)(4, MegaMenu_ng_container_4_Template, 1, 0, "ng-container", 6);
|
1436
|
-
i0.ɵɵelementStart(5, "p-megamenu-sub", 7, 1);
|
1437
|
-
i0.ɵɵlistener("itemClick", function MegaMenu_Template_p_megamenu_sub_itemClick_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onItemClick($event)); })("menuFocus", function MegaMenu_Template_p_megamenu_sub_menuFocus_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onMenuFocus($event)); })("menuBlur", function MegaMenu_Template_p_megamenu_sub_menuBlur_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onMenuBlur($event)); })("menuKeydown", function MegaMenu_Template_p_megamenu_sub_menuKeydown_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); })("itemMouseEnter", function MegaMenu_Template_p_megamenu_sub_itemMouseEnter_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onItemMouseEnter($event)); });
|
1438
|
-
i0.ɵɵelementEnd();
|
1439
|
-
i0.ɵɵtemplate(7, MegaMenu_div_7_Template, 2, 1, "div", 8);
|
1440
|
-
i0.ɵɵelementEnd();
|
1441
|
-
} if (rf & 2) {
|
1442
|
-
i0.ɵɵstyleMap(i0.ɵɵpureFunction1(29, _c16, ctx.orientation == "vertical" && ctx.queryMatches ? "row" : ""));
|
1443
|
-
i0.ɵɵclassMap(ctx.styleClass);
|
1444
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(31, _c17, ctx.queryMatches, ctx.mobileActive, ctx.orientation == "horizontal", ctx.orientation == "vertical"))("ngStyle", ctx.style);
|
1445
|
-
i0.ɵɵattribute("data-pc-section", "root")("data-pc-name", "megamenu")("id", ctx.id);
|
1446
|
-
i0.ɵɵadvance(2);
|
1447
|
-
i0.ɵɵproperty("ngIf", ctx.startTemplate);
|
1448
|
-
i0.ɵɵadvance();
|
1449
|
-
i0.ɵɵproperty("ngIf", !ctx.buttonTemplate);
|
1450
|
-
i0.ɵɵadvance();
|
1451
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx.buttonTemplate);
|
1452
|
-
i0.ɵɵadvance();
|
1453
|
-
i0.ɵɵproperty("itemTemplate", ctx.itemTemplate)("items", ctx.processedItems)("menuId", ctx.id)("root", true)("orientation", ctx.orientation)("ariaLabel", ctx.ariaLabel)("disabled", ctx.disabled)("tabindex", !ctx.disabled ? ctx.tabindex : -1)("activeItem", ctx.activeItem())("level", 0)("ariaLabelledBy", ctx.ariaLabelledBy)("focusedItemId", ctx.focused ? ctx.focusedItemId : undefined)("mobileActive", ctx.mobileActive)("queryMatches", ctx.queryMatches)("scrollHeight", ctx.scrollHeight);
|
1454
|
-
i0.ɵɵattribute("id", ctx.id + "_list");
|
1455
|
-
i0.ɵɵadvance(2);
|
1456
|
-
i0.ɵɵproperty("ngIf", ctx.endTemplate);
|
1457
|
-
} }, dependencies: [CommonModule, i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, RouterModule, MegaMenuSub, TooltipModule, BarsIcon, BadgeModule, SharedModule], encapsulation: 2, changeDetection: 0 });
|
1458
|
-
}
|
1459
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MegaMenu, [{
|
1460
|
-
type: Component,
|
1461
|
-
args: [{
|
1462
|
-
selector: 'p-megaMenu, p-megamenu, p-mega-menu',
|
1463
|
-
standalone: true,
|
1464
|
-
imports: [CommonModule, RouterModule, MegaMenuSub, Ripple, TooltipModule, AngleDownIcon, AngleRightIcon, BarsIcon, BadgeModule, SharedModule],
|
1465
|
-
template: `
|
1466
|
-
<div
|
1467
|
-
[ngClass]="{
|
1468
|
-
'p-megamenu p-component': true,
|
1469
|
-
'p-megamenu-mobile': queryMatches,
|
1470
|
-
'p-megamenu-mobile-active': mobileActive,
|
1471
|
-
'p-megamenu-horizontal': orientation == 'horizontal',
|
1472
|
-
'p-megamenu-vertical': orientation == 'vertical'
|
1473
|
-
}"
|
1474
|
-
[class]="styleClass"
|
1475
|
-
[style]="{ flexDirection: orientation == 'vertical' && queryMatches ? 'row' : '' }"
|
1476
|
-
[ngStyle]="style"
|
1477
|
-
[attr.data-pc-section]="'root'"
|
1478
|
-
[attr.data-pc-name]="'megamenu'"
|
1479
|
-
[attr.id]="id"
|
1480
|
-
#container
|
1481
|
-
>
|
1482
|
-
<div class="p-megamenu-start" *ngIf="startTemplate">
|
1483
|
-
<ng-container *ngTemplateOutlet="startTemplate"></ng-container>
|
1484
|
-
</div>
|
1485
|
-
<ng-container *ngIf="!buttonTemplate">
|
1486
|
-
<a
|
1487
|
-
*ngIf="model && model.length > 0"
|
1488
|
-
#menubutton
|
1489
|
-
role="button"
|
1490
|
-
tabindex="0"
|
1491
|
-
class="p-megamenu-button"
|
1492
|
-
[attr.aria-haspopup]="model.length && model.length > 0 ? true : false"
|
1493
|
-
[attr.aria-expanded]="mobileActive"
|
1494
|
-
[attr.aria-controls]="id"
|
1495
|
-
[attr.aria-label]="config.translation.aria.navigation"
|
1496
|
-
(click)="menuButtonClick($event)"
|
1497
|
-
(keydown)="menuButtonKeydown($event)"
|
1498
|
-
>
|
1499
|
-
<ng-container *ngIf="!buttonTemplate">
|
1500
|
-
<BarsIcon />
|
1501
|
-
</ng-container>
|
1502
|
-
</a>
|
1503
|
-
</ng-container>
|
1504
|
-
<ng-container *ngTemplateOutlet="buttonTemplate"></ng-container>
|
1505
|
-
<p-megamenu-sub
|
1506
|
-
#rootmenu
|
1507
|
-
[itemTemplate]="itemTemplate"
|
1508
|
-
[items]="processedItems"
|
1509
|
-
[attr.id]="id + '_list'"
|
1510
|
-
[menuId]="id"
|
1511
|
-
[root]="true"
|
1512
|
-
[orientation]="orientation"
|
1513
|
-
[ariaLabel]="ariaLabel"
|
1514
|
-
[disabled]="disabled"
|
1515
|
-
[tabindex]="!disabled ? tabindex : -1"
|
1516
|
-
[activeItem]="activeItem()"
|
1517
|
-
[level]="0"
|
1518
|
-
[ariaLabelledBy]="ariaLabelledBy"
|
1519
|
-
[focusedItemId]="focused ? focusedItemId : undefined"
|
1520
|
-
[mobileActive]="mobileActive"
|
1521
|
-
(itemClick)="onItemClick($event)"
|
1522
|
-
(menuFocus)="onMenuFocus($event)"
|
1523
|
-
(menuBlur)="onMenuBlur($event)"
|
1524
|
-
(menuKeydown)="onKeyDown($event)"
|
1525
|
-
(itemMouseEnter)="onItemMouseEnter($event)"
|
1526
|
-
[queryMatches]="queryMatches"
|
1527
|
-
[scrollHeight]="scrollHeight"
|
1528
|
-
></p-megamenu-sub>
|
1529
|
-
<div class="p-megamenu-end" *ngIf="endTemplate">
|
1530
|
-
<ng-container *ngTemplateOutlet="endTemplate"></ng-container>
|
1531
|
-
</div>
|
1532
|
-
</div>
|
1533
|
-
`,
|
1534
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
1535
|
-
encapsulation: ViewEncapsulation.None,
|
1536
|
-
providers: [MegaMenuStyle]
|
1537
|
-
}]
|
1538
|
-
}], () => [], { model: [{
|
1539
|
-
type: Input
|
1540
|
-
}], style: [{
|
1541
|
-
type: Input
|
1542
|
-
}], styleClass: [{
|
1543
|
-
type: Input
|
1544
|
-
}], orientation: [{
|
1545
|
-
type: Input
|
1546
|
-
}], id: [{
|
1547
|
-
type: Input
|
1548
|
-
}], ariaLabel: [{
|
1549
|
-
type: Input
|
1550
|
-
}], ariaLabelledBy: [{
|
1551
|
-
type: Input
|
1552
|
-
}], breakpoint: [{
|
1553
|
-
type: Input
|
1554
|
-
}], scrollHeight: [{
|
1555
|
-
type: Input
|
1556
|
-
}], disabled: [{
|
1557
|
-
type: Input,
|
1558
|
-
args: [{ transform: booleanAttribute }]
|
1559
|
-
}], tabindex: [{
|
1560
|
-
type: Input,
|
1561
|
-
args: [{ transform: numberAttribute }]
|
1562
|
-
}], startTemplate: [{
|
1563
|
-
type: ContentChild,
|
1564
|
-
args: ['start']
|
1565
|
-
}], endTemplate: [{
|
1566
|
-
type: ContentChild,
|
1567
|
-
args: ['end']
|
1568
|
-
}], menuiconTemplate: [{
|
1569
|
-
type: ContentChild,
|
1570
|
-
args: ['menuicon']
|
1571
|
-
}], submenuiconTemplate: [{
|
1572
|
-
type: ContentChild,
|
1573
|
-
args: ['submenuicon']
|
1574
|
-
}], itemTemplate: [{
|
1575
|
-
type: ContentChild,
|
1576
|
-
args: ['item']
|
1577
|
-
}], buttonTemplate: [{
|
1578
|
-
type: ContentChild,
|
1579
|
-
args: ['button']
|
1580
|
-
}], buttoniconTemplate: [{
|
1581
|
-
type: ContentChild,
|
1582
|
-
args: ['buttonicon']
|
1583
|
-
}], menubuttonViewChild: [{
|
1584
|
-
type: ViewChild,
|
1585
|
-
args: ['menubutton']
|
1586
|
-
}], rootmenu: [{
|
1587
|
-
type: ViewChild,
|
1588
|
-
args: ['rootmenu']
|
1589
|
-
}], container: [{
|
1590
|
-
type: ViewChild,
|
1591
|
-
args: ['container']
|
1592
|
-
}] }); })();
|
1593
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MegaMenu, { className: "MegaMenu" }); })();
|
1594
|
-
export class MegaMenuModule {
|
1595
|
-
static ɵfac = function MegaMenuModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MegaMenuModule)(); };
|
1596
|
-
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MegaMenuModule });
|
1597
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [MegaMenu, SharedModule, SharedModule] });
|
1598
|
-
}
|
1599
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MegaMenuModule, [{
|
1600
|
-
type: NgModule,
|
1601
|
-
args: [{
|
1602
|
-
imports: [MegaMenu, SharedModule],
|
1603
|
-
exports: [MegaMenu, SharedModule]
|
1604
|
-
}]
|
1605
|
-
}], null, null); })();
|
1606
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MegaMenuModule, { imports: [MegaMenu, SharedModule], exports: [MegaMenu, SharedModule] }); })();
|
1607
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVnYW1lbnUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWVnYW1lbnUvbWVnYW1lbnUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUVOLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsZUFBZSxFQUdmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1SSxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7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WUFBWSxDQUFDO2FBQ3BDOzt3RkFDWSxjQUFjLGNBendCZCxRQUFRLEVBc3dCRyxZQUFZLGFBdHdCdkIsUUFBUSxFQXV3QkcsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgZWZmZWN0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbmRMYXN0SW5kZXgsIGZpbmRTaW5nbGUsIGZvY3VzLCBpc0VtcHR5LCBpc05vdEVtcHR5LCBpc1ByaW50YWJsZUNoYXJhY3RlciwgaXNUb3VjaERldmljZSwgcmVzb2x2ZSwgdXVpZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBNZWdhTWVudUl0ZW0sIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhZGdlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9iYWRnZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IEFuZ2xlRG93bkljb24sIEFuZ2xlUmlnaHRJY29uLCBCYXJzSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMnO1xuaW1wb3J0IHsgUmlwcGxlIH0gZnJvbSAncHJpbWVuZy9yaXBwbGUnO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBWb2lkTGlzdGVuZXIgfSBmcm9tICdwcmltZW5nL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgWkluZGV4VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IE1lZ2FNZW51U3R5bGUgfSBmcm9tICcuL3N0eWxlL21lZ2FtZW51c3R5bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtbWVnYU1lbnVTdWIsIHAtbWVnYW1lbnUtc3ViJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSwgUmlwcGxlLCBUb29sdGlwTW9kdWxlLCBBbmdsZURvd25JY29uLCBBbmdsZVJpZ2h0SWNvbiwgQmFkZ2VNb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHVsXG4gICAgICAgICAgICAqbmdJZj1cImlzU3VibWVudVZpc2libGUoc3VibWVudSlcIlxuICAgICAgICAgICAgI21lbnViYXJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtbWVnYW1lbnUtcm9vdC1saXN0Jzogcm9vdCwgJ3AtbWVnYW1lbnUtc3VibWVudSc6ICFyb290IH1cIlxuICAgICAgICAgICAgW3N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBzY3JvbGxIZWlnaHQsIG92ZXJmbG93OiAnYXV0bycgfVwiXG4gICAgICAgICAgICBbYXR0ci5yb2xlXT1cInJvb3QgPyAnbWVudWJhcicgOiAnbWVudSdcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1vcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImZvY3VzZWRJdGVtSWRcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cInJvb3QgPyAncm9vdCcgOiAnc3VibWVudSdcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwibWVudUtleWRvd24uZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChmb2N1cyk9XCJtZW51Rm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChibHVyKT1cIm1lbnVCbHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxsaSAqbmdJZj1cInN1Ym1lbnVcIiBbbmdDbGFzc109XCJnZXRTdWJtZW51SGVhZGVyQ2xhc3Moc3VibWVudSlcIiBbc3R5bGVdPVwiZ2V0SXRlbVByb3Aoc3VibWVudSwgJ3N0eWxlJylcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgICAgICAge3sgZ2V0SXRlbUxhYmVsKHN1Ym1lbnUpIH19XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1wcm9jZXNzZWRJdGVtIFtuZ0Zvck9mXT1cIml0ZW1zXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmIGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzZXBhcmF0b3InKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImdldEl0ZW1JZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc3R5bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldFNlcGFyYXRvckl0ZW1DbGFzcyhwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJzZXBhcmF0b3JcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3NlcGFyYXRvcidcIlxuICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAjbGlzdEl0ZW1cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmICFnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc2VwYXJhdG9yJylcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ21lbnVpdGVtJ1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcC1oaWdobGlnaHRdPVwiaXNJdGVtQWN0aXZlKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWZvY3VzZWRdPVwiaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcC1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKSB8fCB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pICYmICFnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndG8nKSA/ICdtZW51JyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkgPyBpc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImxldmVsICsgMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJnZXRBcmlhU2V0U2l6ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJnZXRBcmlhUG9zSW5zZXQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3N0eWxlJylcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJdGVtQ2xhc3MocHJvY2Vzc2VkSXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3N0eWxlQ2xhc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgIHBUb29sdGlwXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwT3B0aW9uc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAndG9vbHRpcE9wdGlvbnMnKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1tZWdhbWVudS1pdGVtLWNvbnRlbnRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2NvbnRlbnQnXCIgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgcHJvY2Vzc2VkSXRlbSlcIiAobW91c2VlbnRlcik9XCJvbkl0ZW1Nb3VzZUVudGVyKHsgJGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd1cmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbmlkXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdhdXRvbWF0aW9uSWQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3RhcmdldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1tZWdhbWVudS1pdGVtLWxpbmsnOiB0cnVlLCAncC1kaXNhYmxlZCc6IGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdkaXNhYmxlZCcpIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLW1lZ2FtZW51LWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2VzY2FwZScpOyBlbHNlIGh0bWxMYWJlbFwiIGNsYXNzPVwicC1tZWdhbWVudS1pdGVtLWxhYmVsXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidsYWJlbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaHRtbExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLW1lZ2FtZW51LWl0ZW0tbGFiZWxcIiBbaW5uZXJIVE1MXT1cImdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtKVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInbGFiZWwnXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1iYWRnZSAqbmdJZj1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdiYWRnZScpXCIgW3N0eWxlQ2xhc3NdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2JhZGdlU3R5bGVDbGFzcycpXCIgW3ZhbHVlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdiYWRnZScpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1lZ2FNZW51LnN1Ym1lbnVpY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgfHwgbW9iaWxlQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uIFtuZ0NsYXNzXT1cIidwLW1lZ2FtZW51LXN1Ym1lbnUtaWNvbidcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3N1Ym1lbnVpY29uJ1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVSaWdodEljb24gW25nQ2xhc3NdPVwiJ3AtbWVnYW1lbnUtc3VibWVudS1pY29uJ1wiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInc3VibWVudWljb24nXCIgKm5nSWY9XCJvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJ1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVnYU1lbnUuc3VibWVudWljb25UZW1wbGF0ZVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInc3VibWVudWljb24nXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdyb3V0ZXJMaW5rJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncm91dGVyTGluaycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uaWRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2F1dG9tYXRpb25JZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidhY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdxdWVyeVBhcmFtcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVdPVwiJ3AtbWVnYW1lbnUtaXRlbS1saW5rLWFjdGl2ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3JvdXRlckxpbmtBY3RpdmVPcHRpb25zJykgfHwgeyBleGFjdDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3RhcmdldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1tZWdhbWVudS1pdGVtLWxpbmsnOiB0cnVlLCAncC1kaXNhYmxlZCc6IGdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdkaXNhYmxlZCcpIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZnJhZ21lbnRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ZyYWdtZW50JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAncXVlcnlQYXJhbXNIYW5kbGluZycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ByZXNlcnZlRnJhZ21lbnRdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3ByZXNlcnZlRnJhZ21lbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwTG9jYXRpb25DaGFuZ2VdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3NraXBMb2NhdGlvbkNoYW5nZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcGxhY2VVcmxdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3JlcGxhY2VVcmwnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnc3RhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtbWVnYW1lbnUtaXRlbS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2ljb24nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnaWNvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdpY29uU3R5bGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2ljb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtbWVnYW1lbnUtaXRlbS1sYWJlbFwiICpuZ0lmPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2VzY2FwZScpOyBlbHNlIGh0bWxSb3V0ZUxhYmVsXCI+e3sgZ2V0SXRlbUxhYmVsKHByb2Nlc3NlZEl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2h0bWxSb3V0ZUxhYmVsPjxzcGFuIGNsYXNzPVwicC1tZWdhbWVudS1pdGVtLWxhYmVsXCIgW2lubmVySFRNTF09XCJnZXRJdGVtTGFiZWwocHJvY2Vzc2VkSXRlbSlcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2xhYmVsJ1wiPjwvc3Bhbj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1iYWRnZSAqbmdJZj1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdiYWRnZScpXCIgW3N0eWxlQ2xhc3NdPVwiZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2JhZGdlU3R5bGVDbGFzcycpXCIgW3ZhbHVlXT1cImdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdiYWRnZScpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1lZ2FNZW51LnN1Ym1lbnVpY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVEb3duSWNvbiBbc3R5bGVDbGFzc109XCIncC1tZWdhbWVudS1zdWJtZW51LWljb24nXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidzdWJtZW51aWNvbidcIiAqbmdJZj1cIm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCdcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVSaWdodEljb24gW3N0eWxlQ2xhc3NdPVwiJ3AtbWVnYW1lbnUtc3VibWVudS1pY29uJ1wiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInc3VibWVudWljb24nXCIgKm5nSWY9XCJvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJ1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZWdhTWVudS5zdWJtZW51aWNvblRlbXBsYXRlXCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidzdWJtZW51aWNvbidcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcHJvY2Vzc2VkSXRlbS5pdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJdGVtVmlzaWJsZShwcm9jZXNzZWRJdGVtKSAmJiBpc0l0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKVwiIGNsYXNzPVwicC1tZWdhbWVudS1vdmVybGF5XCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidwYW5lbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLW1lZ2FtZW51LWdyaWRcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2dyaWQnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY29sIG9mIHByb2Nlc3NlZEl0ZW0uaXRlbXNcIiBbbmdDbGFzc109XCJnZXRDb2x1bW5DbGFzcyhwcm9jZXNzZWRJdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1tZWdhbWVudS1zdWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWJtZW51IG9mIGNvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0U3ViTGlzdElkKHN1Ym1lbnUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdWJtZW51XT1cInN1Ym1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cInN1Ym1lbnUuaXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vYmlsZUFjdGl2ZV09XCJtb2JpbGVBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21lbnVJZF09XCJtZW51SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZvY3VzZWRJdGVtSWRdPVwiZm9jdXNlZEl0ZW1JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibGV2ZWwgKyAxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb290XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtQ2xpY2spPVwiaXRlbUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXRlbU1vdXNlRW50ZXIpPVwib25JdGVtTW91c2VFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtbWVnYW1lbnUtc3ViPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3VsPlxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNZWdhTWVudVN1YiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBpdGVtczogYW55W10gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBtZW51SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGxldmVsOiBudW1iZXIgPSAwO1xuXG4gICAgQElucHV0KCkgZm9jdXNlZEl0ZW1JZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbTogYW55O1xuXG4gICAgQElucHV0KCkgc3VibWVudTogYW55O1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHF1ZXJ5TWF0Y2hlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG1vYmlsZUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyID0gMDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByb290OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBpdGVtTW91c2VFbnRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgbWVudUZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBtZW51Qmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgbWVudUtleWRvd246IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnbWVudWJhcicsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnViYXJWaWV3Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBtZWdhTWVudTogTWVnYU1lbnUgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBNZWdhTWVudSkpO1xuXG4gICAgb25JdGVtQ2xpY2soZXZlbnQ6IGFueSwgcHJvY2Vzc2VkSXRlbTogYW55KSB7XG4gICAgICAgIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2NvbW1hbmQnLCB7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBpdGVtOiBwcm9jZXNzZWRJdGVtLml0ZW0gfSk7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgcHJvY2Vzc2VkSXRlbSwgaXNGb2N1czogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBnZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtOiBhbnksIG5hbWU6IHN0cmluZywgcGFyYW1zOiBhbnkgfCBudWxsID0gbnVsbCkge1xuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbSAmJiBwcm9jZXNzZWRJdGVtLml0ZW0gPyByZXNvbHZlKHByb2Nlc3NlZEl0ZW0uaXRlbVtuYW1lXSwgcGFyYW1zKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXRJdGVtSWQocHJvY2Vzc2VkSXRlbTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW0uaXRlbSAmJiBwcm9jZXNzZWRJdGVtLml0ZW0/LmlkID8gcHJvY2Vzc2VkSXRlbS5pdGVtLmlkIDogYCR7dGhpcy5tZW51SWR9XyR7cHJvY2Vzc2VkSXRlbS5rZXl9YDtcbiAgICB9XG5cbiAgICBnZXRTdWJMaXN0SWQocHJvY2Vzc2VkSXRlbSkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRJdGVtSWQocHJvY2Vzc2VkSXRlbSl9X2xpc3RgO1xuICAgIH1cblxuICAgIGdldEl0ZW1DbGFzcyhwcm9jZXNzZWRJdGVtOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2NsYXNzJyksXG4gICAgICAgICAgICAncC1tZWdhbWVudS1pdGVtJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLW1lZ2FtZW51LWl0ZW0tYWN0aXZlJzogdGhpcy5pc0l0ZW1BY3RpdmUocHJvY2Vzc2VkSXRlbSksXG4gICAgICAgICAgICAncC1mb2N1cyc6IHRoaXMuaXNJdGVtRm9jdXNlZChwcm9jZXNzZWRJdGVtKSxcbiAgICAgICAgICAgICdwLWRpc2FibGVkJzogdGhpcy5pc0l0ZW1EaXNhYmxlZChwcm9jZXNzZWRJdGVtKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnbGFiZWwnKTtcbiAgICB9XG5cbiAgICBnZXRTZXBhcmF0b3JJdGVtQ2xhc3MocHJvY2Vzc2VkSXRlbTogYW55KSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdjbGFzcycpLFxuICAgICAgICAgICAgJ3AtbWVnYW1lbnUtc2VwYXJhdG9yJzogdHJ1ZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldENvbHVtbkNsYXNzKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgbGV0IGxlbmd0aCA9IHRoaXMuaXNJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSkgPyBwcm9jZXNzZWRJdGVtLml0ZW1zLmxlbmd0aCA6IDA7XG4gICAgICAgIGxldCBjb2x1bW5DbGFzcztcbiAgICAgICAgaWYgKHRoaXMucXVlcnlNYXRjaGVzKSBjb2x1bW5DbGFzcyA9ICdwLW1lZ2FtZW51LWNvbC0xMic7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgc3dpdGNoIChsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkNsYXNzID0gJ3AtbWVnYW1lbnUtY29sLTYnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uQ2xhc3MgPSAncC1tZWdhbWVudS1jb2wtNCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5DbGFzcyA9ICdwLW1lZ2FtZW51LWNvbC0zJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkNsYXNzID0gJ3AtbWVnYW1lbnUtY29sLTInO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbkNsYXNzID0gJ3AtbWVnYW1lbnUtY29sLTEyJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29sdW1uQ2xhc3M7XG4gICAgfVxuXG4gICAgZ2V0U3VibWVudUhlYWRlckNsYXNzKHByb2Nlc3NlZEl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLW1lZ2FtZW51LXN1Ym1lbnUtbGFiZWwnOiB0cnVlLFxuXG4gICAgICAgICAgICAncC1kaXNhYmxlZCc6IHRoaXMuaXNJdGVtRGlzYWJsZWQocHJvY2Vzc2VkSXRlbSksXG5cbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ2NsYXNzJylcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpc1N1Ym1lbnVWaXNpYmxlKHN1Ym1lbnU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5zdWJtZW51ICYmICF0aGlzLnJvb3QpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzSXRlbVZpc2libGUoc3VibWVudSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzSXRlbVZpc2libGUocHJvY2Vzc2VkSXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICd2aXNpYmxlJykgIT09IGZhbHNlO1xuICAgIH1cblxuICAgIGlzSXRlbUFjdGl2ZShwcm9jZXNzZWRJdGVtKSB7XG4gICAgICAgIHJldHVybiBpc05vdEVtcHR5KHRoaXMuYWN0aXZlSXRlbSkgPyB0aGlzLmFjdGl2ZUl0ZW0ua2V5ID09PSBwcm9jZXNzZWRJdGVtLmtleSA6IGZhbHNlO1xuICAgIH1cblxuICAgIGlzSXRlbURpc2FibGVkKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtUHJvcChwcm9jZXNzZWRJdGVtLCAnZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1Gb2N1c2VkKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkSXRlbUlkID09PSB0aGlzLmdldEl0ZW1JZChwcm9jZXNzZWRJdGVtKTtcbiAgICB9XG5cbiAgICBpc0l0ZW1Hcm91cChwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzTm90RW1wdHkocHJvY2Vzc2VkSXRlbS5pdGVtcyk7XG4gICAgfVxuXG4gICAgZ2V0QXJpYVNldFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmICF0aGlzLmdldEl0ZW1Qcm9wKHByb2Nlc3NlZEl0ZW0sICdzZXBhcmF0b3InKSkubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldEFyaWFQb3NJbnNldChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBpbmRleCAtIHRoaXMuaXRlbXMuc2xpY2UoMCwgaW5kZXgpLmZpbHRlcigocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1WaXNpYmxlKHByb2Nlc3NlZEl0ZW0pICYmIHRoaXMuZ2V0SXRlbVByb3AocHJvY2Vzc2VkSXRlbSwgJ3NlcGFyYXRvcicpKS5sZW5ndGggKyAxO1xuICAgIH1cblxuICAgIG9uSXRlbU1vdXNlRW50ZXIocGFyYW06IGFueSkge1xuICAgICAgICBjb25zdCB7IGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0gPSBwYXJhbTtcbiAgICAgICAgdGhpcy5pdGVtTW91c2VFbnRlci5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIHByb2Nlc3NlZEl0ZW0gfSk7XG4gICAgfVxufVxuLyoqXG4gKiBNZWdhTWVudSBpcyBuYXZpZ2F0aW9uIGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIHN1Ym1lbnVzIHRvZ2V0aGVyLlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLW1lZ2FNZW51LCBwLW1lZ2FtZW51LCBwLW1lZ2EtbWVudScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE1lZ2FNZW51U3ViLCBSaXBwbGUsIFRvb2x0aXBNb2R1bGUsIEFuZ2xlRG93bkljb24sIEFuZ2xlUmlnaHRJY29uLCBCYXJzSWNvbiwgQmFkZ2VNb2R1bGUsIFNoYXJlZE1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdwLW1lZ2FtZW51IHAtY29tcG9uZW50JzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAncC1tZWdhbWVudS1tb2JpbGUnOiBxdWVyeU1hdGNoZXMsXG4gICAgICAgICAgICAgICAgJ3AtbWVnYW1lbnUtbW9iaWxlLWFjdGl2ZSc6IG1vYmlsZUFjdGl2ZSxcbiAgICAgICAgICAgICAgICAncC1tZWdhbWVudS1ob3Jpem9udGFsJzogb3JpZW50YXRpb24gPT0gJ2hvcml6b250YWwnLFxuICAgICAgICAgICAgICAgICdwLW1lZ2FtZW51LXZlcnRpY2FsJzogb3JpZW50YXRpb24gPT0gJ3ZlcnRpY2FsJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwic3R5bGVDbGFzc1wiXG4gICAgICAgICAgICBbc3R5bGVdPVwieyBmbGV4RGlyZWN0aW9uOiBvcmllbnRhdGlvbiA9PSAndmVydGljYWwnICYmIHF1ZXJ5TWF0Y2hlcyA/ICdyb3cnIDogJycgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJzdHlsZVwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Jvb3QnXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtbmFtZV09XCInbWVnYW1lbnUnXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgICAgICNjb250YWluZXJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtbWVnYW1lbnUtc3RhcnRcIiAqbmdJZj1cInN0YXJ0VGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhcnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ1dHRvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtb2RlbCAmJiBtb2RlbC5sZW5ndGggPiAwXCJcbiAgICAgICAgICAgICAgICAgICAgI21lbnVidXR0b25cbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1tZWdhbWVudS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIm1vZGVsLmxlbmd0aCAmJiBtb2RlbC5sZW5ndGggPiAwID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJtb2JpbGVBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcudHJhbnNsYXRpb24uYXJpYS5uYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnVCdXR0b25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwibWVudUJ1dHRvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ1dHRvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QmFyc0ljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxwLW1lZ2FtZW51LXN1YlxuICAgICAgICAgICAgICAgICNyb290bWVudVxuICAgICAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwicHJvY2Vzc2VkSXRlbXNcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlkICsgJ19saXN0J1wiXG4gICAgICAgICAgICAgICAgW21lbnVJZF09XCJpZFwiXG4gICAgICAgICAgICAgICAgW3Jvb3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW29yaWVudGF0aW9uXT1cIm9yaWVudGF0aW9uXCJcbiAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiIWRpc2FibGVkID8gdGFiaW5kZXggOiAtMVwiXG4gICAgICAgICAgICAgICAgW2FjdGl2ZUl0ZW1dPVwiYWN0aXZlSXRlbSgpXCJcbiAgICAgICAgICAgICAgICBbbGV2ZWxdPVwiMFwiXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICBbZm9jdXNlZEl0ZW1JZF09XCJmb2N1c2VkID8gZm9jdXNlZEl0ZW1JZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgW21vYmlsZUFjdGl2ZV09XCJtb2JpbGVBY3RpdmVcIlxuICAgICAgICAgICAgICAgIChpdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1lbnVGb2N1cyk9XCJvbk1lbnVGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobWVudUJsdXIpPVwib25NZW51Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobWVudUtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChpdGVtTW91c2VFbnRlcik9XCJvbkl0ZW1Nb3VzZUVudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtxdWVyeU1hdGNoZXNdPVwicXVlcnlNYXRjaGVzXCJcbiAgICAgICAgICAgICAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXG4gICAgICAgICAgICA+PC9wLW1lZ2FtZW51LXN1Yj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLW1lZ2FtZW51LWVuZFwiICpuZ0lmPVwiZW5kVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbTWVnYU1lbnVTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgTWVnYU1lbnUgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIG1lbnVpdGVtcy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IE1lZ2FNZW51SXRlbVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NlZEl0ZW1zID0gdGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyh0aGlzLl9tb2RlbCB8fCBbXSk7XG4gICAgfVxuICAgIGdldCBtb2RlbCgpOiBNZWdhTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRoZSBvcmllbnRhdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyB8IHN0cmluZyA9ICdob3Jpem9udGFsJztcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGlkIHN0YXRlIGFzIGEgc3RyaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN0cmluZyB2YWx1ZSB0aGF0IGxhYmVscyBhbiBpbnRlcmFjdGl2ZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElkZW50aWZpZXIgb2YgdGhlIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFRoZSBicmVha3BvaW50IHRvIGRlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBib3VuZGFyeS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBicmVha3BvaW50OiBzdHJpbmcgPSAnOTYwcHgnO1xuICAgIC8qKlxuICAgICAqIEhlaWdodCBvZiB0aGUgdmlld3BvcnQsIGEgc2Nyb2xsYmFyIGlzIGRlZmluZWQgaWYgaGVpZ2h0IG9mIGxpc3QgZXhjZWVkcyB0aGlzIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHNjcm9sbEhlaWdodDogc3RyaW5nID0gJzIwcmVtJztcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBlbGVtZW50IGluIHRhYmJpbmcgb3JkZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGFiaW5kZXg6IG51bWJlciA9IDA7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0ZW1wbGF0ZSBvcHRpb24gZm9yIHN0YXJ0LlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdzdGFydCcpIHN0YXJ0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0ZW1wbGF0ZSBvcHRpb24gZm9yIGVuZC5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZW5kJykgZW5kVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB0ZW1wbGF0ZSBvcHRpb24gZm9yIG1lbnUgaWNvbi5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnbWVudWljb24nKSBtZW51aWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgdGVtcGxhdGUgb3B0aW9uIGZvciBzdWJtZW51IGljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3N1Ym1lbnVpY29uJykgc3VibWVudWljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHRlbXBsYXRlIG9wdGlvbiBmb3Igc3VibWVudSBpY29uLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdpdGVtJykgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEN1c3RvbSBtZW51IGJ1dHRvbiB0ZW1wbGF0ZSBvbiByZXNwb25zaXZlIG1vZGUuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2J1dHRvbicpIGJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIEN1c3RvbSBtZW51IGJ1dHRvbiBpY29uIHRlbXBsYXRlIG9uIHJlc3BvbnNpdmUgbW9kZS5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnYnV0dG9uaWNvbicpIGJ1dHRvbmljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBWaWV3Q2hpbGQoJ21lbnVidXR0b24nKSBtZW51YnV0dG9uVmlld0NoaWxkOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgncm9vdG1lbnUnKSByb290bWVudTogTWVnYU1lbnVTdWIgfCB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgICBvdXRzaWRlQ2xpY2tMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgcmVzaXplTGlzdGVuZXI6IChldmVudDogYW55KSA9PiB2b2lkO1xuXG4gICAgZGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGFjdGl2ZUl0ZW0gPSBzaWduYWw8YW55PihudWxsKTtcblxuICAgIGZvY3VzZWRJdGVtSW5mbyA9IHNpZ25hbDxhbnk+KHsgaW5kZXg6IC0xLCBsZXZlbDogMCwgcGFyZW50S2V5OiAnJywgaXRlbTogbnVsbCB9KTtcblxuICAgIHNlYXJjaFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIHNlYXJjaFRpbWVvdXQ6IGFueTtcblxuICAgIF9wcm9jZXNzZWRJdGVtczogYW55W107XG5cbiAgICBfbW9kZWw6IE1lZ2FNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KE1lZ2FNZW51U3R5bGUpO1xuXG4gICAgcHJpdmF0ZSBtYXRjaE1lZGlhTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG5cbiAgICBwcml2YXRlIHF1ZXJ5OiBNZWRpYVF1ZXJ5TGlzdDtcblxuICAgIHB1YmxpYyBxdWVyeU1hdGNoZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBtb2JpbGVBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCB2aXNpYmxlSXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSBpc05vdEVtcHR5KHRoaXMuYWN0aXZlSXRlbSgpKSA/IHRoaXMuYWN0aXZlSXRlbSgpIDogbnVsbDtcblxuICAgICAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbVxuICAgICAgICAgICAgPyBwcm9jZXNzZWRJdGVtLml0ZW1zLnJlZHVjZSgoaXRlbXMsIGNvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29sLmZvckVhY2goKHN1Ym1lbnUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdWJtZW51Lml0ZW1zLmZvckVhY2goKGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaChhKTtcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICAgICAgOiB0aGlzLnByb2Nlc3NlZEl0ZW1zO1xuICAgIH1cblxuICAgIGdldCBwcm9jZXNzZWRJdGVtcygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9wcm9jZXNzZWRJdGVtcyB8fCAhdGhpcy5fcHJvY2Vzc2VkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9wcm9jZXNzZWRJdGVtcyA9IHRoaXMuY3JlYXRlUHJvY2Vzc2VkSXRlbXModGhpcy5tb2RlbCB8fCBbXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NlZEl0ZW1zO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkSXRlbUlkKCkge1xuICAgICAgICBjb25zdCBmb2N1c2VkSXRlbSA9IHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCk7XG4gICAgICAgIHJldHVybiBmb2N1c2VkSXRlbT8uaXRlbSAmJiBmb2N1c2VkSXRlbS5pdGVtPy5pZCA/IGZvY3VzZWRJdGVtLml0ZW0uaWQgOiBpc05vdEVtcHR5KGZvY3VzZWRJdGVtLmtleSkgPyBgJHt0aGlzLmlkfV8ke2ZvY3VzZWRJdGVtLmtleX1gIDogbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW0oKTtcbiAgICAgICAgICAgIGlmIChpc05vdEVtcHR5KGFjdGl2ZUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5iaW5kT3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmluZE91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy51bmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5iaW5kTWF0Y2hNZWRpYUxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLmlkIHx8IHV1aWQoJ3BuX2lkXycpO1xuICAgIH1cblxuICAgIGJpbmRNYXRjaE1lZGlhTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMubWF0Y2hNZWRpYUxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHt0aGlzLmJyZWFrcG9pbnR9KWApO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlNYXRjaGVzID0gcXVlcnkubWF0Y2hlcztcblxuICAgICAgICAgICAgICAgIHRoaXMubWF0Y2hNZWRpYUxpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5TWF0Y2hlcyA9IHF1ZXJ5Lm1hdGNoZXM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9iaWxlQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMubWF0Y2hNZWRpYUxpc3RlbmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZE1hdGNoTWVkaWFMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMubWF0Y2hNZWRpYUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMubWF0Y2hNZWRpYUxpc3RlbmVyKTtcbiAgICAgICAgICAgIHRoaXMubWF0Y2hNZWRpYUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNyZWF0ZVByb2Nlc3NlZEl0ZW1zKGl0ZW1zLCBsZXZlbCA9IDAsIHBhcmVudCA9IHt9LCBwYXJlbnRLZXkgPSAnJywgY29sdW1uSW5kZXg/KSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW1zID0gW107XG5cbiAgICAgICAgaXRlbXMgJiZcbiAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gKHBhcmVudEtleSAhPT0gJycgPyBwYXJlbnRLZXkgKyAnXycgOiAnJykgKyAoY29sdW1uSW5kZXggIT09IHVuZGVmaW5lZCA/IGNvbHVtbkluZGV4ICsgJ18nIDogJycpICsgaW5kZXg7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGxldmVsLFxuICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50S2V5LFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogY29sdW1uSW5kZXggIT09IHVuZGVmaW5lZCA/IGNvbHVtbkluZGV4IDogKDxhbnk+cGFyZW50KS5jb2x1bW5JbmRleCAhPT0gdW5kZWZpbmVkID8gKDxhbnk+cGFyZW50KS5jb2x1bW5JbmRleCA6IGluZGV4XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIG5ld0l0ZW1bJ2l0ZW1zJ10gPVxuICAgICAgICAgICAgICAgICAgICBsZXZlbCA9PT0gMCAmJiBpdGVtLml0ZW1zICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gMCA/IGl0ZW0uaXRlbXMubWFwKChfaXRlbXMsIF9pbmRleCkgPT4gdGhpcy5jcmVhdGVQcm9jZXNzZWRJdGVtcyhfaXRlbXMsIGxldmVsICsgMSwgbmV3SXRlbSwga2V5LCBfaW5kZXgpKSA6IHRoaXMuY3JlYXRlUHJvY2Vzc2VkSXRlbXMoaXRlbS5pdGVtcywgbGV2ZWwgKyAxLCBuZXdJdGVtLCBrZXkpO1xuICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW1zLnB1c2gobmV3SXRlbSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW1zO1xuICAgIH1cblxuICAgIGdldEl0ZW1Qcm9wKGl0ZW06IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBpdGVtID8gcmVzb2x2ZShpdGVtW25hbWVdKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhldmVudDogYW55KSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luYWxFdmVudCwgcHJvY2Vzc2VkSXRlbSB9ID0gZXZlbnQ7XG4gICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzUHJvY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pO1xuICAgICAgICBjb25zdCByb290ID0gaXNFbXB0eShwcm9jZXNzZWRJdGVtLnBhcmVudCk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pc1NlbGVjdGVkKHByb2Nlc3NlZEl0ZW0pO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgY29uc3QgeyBpbmRleCwga2V5LCBwYXJlbnRLZXksIGl0ZW0gfSA9IHByb2Nlc3NlZEl0ZW07XG5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbS5zZXQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleCwga2V5LCBwYXJlbnRLZXksIGl0ZW0gfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSAhcm9vdDtcbiAgICAgICAgICAgIGlmICghdGhpcy5tb2JpbGVBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICBmb2N1cyh0aGlzLnJvb3RtZW51Py5tZW51YmFyVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50LCB7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZ3JvdXBlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25JdGVtQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlKG9yaWdpbmFsRXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtTW91c2VFbnRlcihldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMubW9iaWxlQWN0aXZlICYmIHRoaXMuZGlydHkpIHtcbiAgICAgICAgICAgIHRoaXMub25JdGVtQ2hhbmdlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1lbnVCdXR0b25DbGljayhldmVudCkge1xuICAgICAgICB0aGlzLnRvZ2dsZShldmVudCk7XG4gICAgfVxuXG4gICAgbWVudUJ1dHRvbktleWRvd24oZXZlbnQpIHtcbiAgICAgICAgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgfHwgZXZlbnQuY29kZSA9PT0gJ051bXBhZEVudGVyJyB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnKSAmJiB0aGlzLm1lbnVCdXR0b25DbGljayhldmVudCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZUFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5tb2JpbGVBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIFpJbmRleFV0aWxzLmNsZWFyKHRoaXMucm9vdG1lbnUuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW9iaWxlQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIFpJbmRleFV0aWxzLnNldCgnbWVudScsIHRoaXMucm9vdG1lbnUuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5jb25maWcuekluZGV4Lm1lbnUpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYmluZE91dHNpZGVDbGlja0xpc3RlbmVyKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgc2hvdygpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXg6IHRoaXMuZmluZEZpcnN0Rm9jdXNlZEl0ZW1JbmRleCgpLCBsZXZlbDogMCwgcGFyZW50S2V5OiAnJyB9KTtcblxuICAgICAgICBmb2N1cyh0aGlzLnJvb3RtZW51Py5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBzY3JvbGxJblZpZXcoaW5kZXg6IG51bWJlciA9IC0xKSB7XG4gICAgICAgIGNvbnN0IGlkID0gaW5kZXggIT09IC0xID8gYCR7dGhpcy5pZH1fJHtpbmRleH1gIDogdGhpcy5mb2N1c2VkSXRlbUlkO1xuXG4gICAgICAgIGxldCBlbGVtZW50O1xuXG4gICAgICAgIGlmIChpZCA9PT0gbnVsbCAmJiB0aGlzLnF1ZXJ5TWF0Y2hlcykge1xuICAgICAgICAgICAgZWxlbWVudCA9IHRoaXMubWVudWJ1dHRvblZpZXdDaGlsZC5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudCA9IGZpbmRTaW5nbGUodGhpcy5yb290bWVudT8ubWVudWJhclZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCwgYGxpW2lkPVwiJHtpZH1cIl1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3ICYmIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ25lYXJlc3QnLCBpbmxpbmU6ICduZWFyZXN0JywgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgY29uc3QgeyBwcm9jZXNzZWRJdGVtLCBpc0ZvY3VzIH0gPSBldmVudDtcblxuICAgICAgICBpZiAoaXNFbXB0eShwcm9jZXNzZWRJdGVtKSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHsgaW5kZXgsIGtleSwgcGFyZW50S2V5LCBpdGVtcywgaXRlbSB9ID0gcHJvY2Vzc2VkSXRlbTtcbiAgICAgICAgY29uc3QgZ3JvdXBlZCA9IGlzTm90RW1wdHkoaXRlbXMpO1xuXG4gICAgICAgIGlmIChncm91cGVkKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KHByb2Nlc3NlZEl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JbmZvLnNldCh7IGluZGV4LCBrZXksIHBhcmVudEtleSwgaXRlbSB9KTtcblxuICAgICAgICBncm91cGVkICYmICh0aGlzLmRpcnR5ID0gdHJ1ZSk7XG4gICAgICAgIGlzRm9jdXMgJiYgZm9jdXModGhpcy5yb290bWVudT8ubWVudWJhclZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgaGlkZShldmVudD8sIGlzRm9jdXM/OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZUFjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5tb2JpbGVBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvY3VzKHRoaXMubWVudWJ1dHRvblZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxJblZpZXcoKTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW0uc2V0KG51bGwpO1xuICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogLTEsIGtleTogJycsIHBhcmVudEtleTogJycsIGl0ZW06IG51bGwgfSk7XG5cbiAgICAgICAgaXNGb2N1cyAmJiBmb2N1cyh0aGlzLnJvb3RtZW51Py5tZW51YmFyVmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uTWVudUZvY3VzKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmluZEZpcnN0Rm9jdXNlZEl0ZW1JbmRleCgpO1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHRoaXMuZmluZFZpc2libGVJdGVtKGluZGV4KTtcblxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXgsIGtleTogcHJvY2Vzc2VkSXRlbS5rZXksIHBhcmVudEtleTogcHJvY2Vzc2VkSXRlbS5wYXJlbnRLZXksIGl0ZW06IHByb2Nlc3NlZEl0ZW0uaXRlbSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTWVudUJsdXIoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXg6IC0xLCBsZXZlbDogMCwgcGFyZW50S2V5OiAnJywgaXRlbTogbnVsbCB9KTtcbiAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG1ldGFLZXkgPSBldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXk7XG5cbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd0Rvd25LZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dVcEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93TGVmdEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25BcnJvd1JpZ2h0S2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhvbWVLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25FbmRLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblNwYWNlS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgICAgIHRoaXMub25FbnRlcktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkVzY2FwZUtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgICAgICAgdGhpcy5vblRhYktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnU2hpZnRMZWZ0JzpcbiAgICAgICAgICAgIGNhc2UgJ1NoaWZ0UmlnaHQnOlxuICAgICAgICAgICAgICAgIC8vTk9PUFxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmICghbWV0YUtleSAmJiBpc1ByaW50YWJsZUNoYXJhY3RlcihldmVudC5rZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoSXRlbXMoZXZlbnQsIGV2ZW50LmtleSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kRmlyc3RGb2N1c2VkSXRlbUluZGV4KCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdGhpcy5maW5kU2VsZWN0ZWRJdGVtSW5kZXgoKTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleCA8IDAgPyB0aGlzLmZpbmRGaXJzdEl0ZW1JbmRleCgpIDogc2VsZWN0ZWRJbmRleDtcbiAgICB9XG5cbiAgICBmaW5kRmlyc3RJdGVtSW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtcy5maW5kSW5kZXgoKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkpO1xuICAgIH1cblxuICAgIGZpbmRTZWxlY3RlZEl0ZW1JbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkU2VsZWN0ZWRJdGVtKHByb2Nlc3NlZEl0ZW0pKTtcbiAgICB9XG5cbiAgICBpc1Byb2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW0gJiYgaXNOb3RFbXB0eShwcm9jZXNzZWRJdGVtLml0ZW1zKTtcbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gaXNOb3RFbXB0eSh0aGlzLmFjdGl2ZUl0ZW0oKSkgPyB0aGlzLmFjdGl2ZUl0ZW0oKS5rZXkgPT09IHByb2Nlc3NlZEl0ZW0ua2V5IDogZmFsc2U7XG4gICAgfVxuXG4gICAgaXNWYWxpZFNlbGVjdGVkSXRlbShwcm9jZXNzZWRJdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkgJiYgdGhpcy5pc1NlbGVjdGVkKHByb2Nlc3NlZEl0ZW0pO1xuICAgIH1cblxuICAgIGlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISFwcm9jZXNzZWRJdGVtICYmICF0aGlzLmlzSXRlbURpc2FibGVkKHByb2Nlc3NlZEl0ZW0uaXRlbSkgJiYgIXRoaXMuaXNJdGVtU2VwYXJhdG9yKHByb2Nlc3NlZEl0ZW0uaXRlbSk7XG4gICAgfVxuXG4gICAgaXNJdGVtRGlzYWJsZWQoaXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEl0ZW1Qcm9wKGl0ZW0sICdkaXNhYmxlZCcpO1xuICAgIH1cblxuICAgIGlzSXRlbVNlcGFyYXRvcihpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AoaXRlbSwgJ3NlcGFyYXRvcicpO1xuICAgIH1cblxuICAgIGlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pICYmIHRoaXMuZ2V0UHJvY2Nlc3NlZEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtKS50b0xvY2FsZUxvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodGhpcy5zZWFyY2hWYWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICBpc1Byb2NjZXNzZWRJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBwcm9jZXNzZWRJdGVtICYmIGlzTm90RW1wdHkocHJvY2Vzc2VkSXRlbS5pdGVtcyk7XG4gICAgfVxuXG4gICAgc2VhcmNoSXRlbXMoZXZlbnQ6IGFueSwgY2hhcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAodGhpcy5zZWFyY2hWYWx1ZSB8fCAnJykgKyBjaGFyO1xuXG4gICAgICAgIGxldCBpdGVtSW5kZXggPSAtMTtcbiAgICAgICAgbGV0IG1hdGNoZWQgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGl0ZW1JbmRleCA9IHRoaXMudmlzaWJsZUl0ZW1zLnNsaWNlKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpLmZpbmRJbmRleCgocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc0l0ZW1NYXRjaGVkKHByb2Nlc3NlZEl0ZW0pKTtcbiAgICAgICAgICAgIGl0ZW1JbmRleCA9IGl0ZW1JbmRleCA9PT0gLTEgPyB0aGlzLnZpc2libGVJdGVtcy5zbGljZSgwLCB0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KS5maW5kSW5kZXgoKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNJdGVtTWF0Y2hlZChwcm9jZXNzZWRJdGVtKSkgOiBpdGVtSW5kZXggKyB0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbUluZGV4ID0gdGhpcy52aXNpYmxlSXRlbXMuZmluZEluZGV4KChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzSXRlbU1hdGNoZWQocHJvY2Vzc2VkSXRlbSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1JbmRleCA9PT0gLTEgJiYgdGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIGl0ZW1JbmRleCA9IHRoaXMuZmluZEZpcnN0Rm9jdXNlZEl0ZW1JbmRleCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpdGVtSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGltZW91dCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2VhcmNoVGltZW91dCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlYXJjaFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVmFsdWUgPSAnJztcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVGltZW91dCA9IG51bGw7XG4gICAgICAgIH0sIDUwMCk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgfVxuXG4gICAgZ2V0UHJvY2Nlc3NlZEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHByb2Nlc3NlZEl0ZW0gPyB0aGlzLmdldEl0ZW1MYWJlbChwcm9jZXNzZWRJdGVtLml0ZW0pIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldEl0ZW1MYWJlbChpdGVtOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SXRlbVByb3AoaXRlbSwgJ2xhYmVsJyk7XG4gICAgfVxuXG4gICAgY2hhbmdlRm9jdXNlZEl0ZW1JbmZvKGV2ZW50LCBpbmRleCkge1xuICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gdGhpcy5maW5kVmlzaWJsZUl0ZW0oaW5kZXgpO1xuICAgICAgICBpZiAoaXNOb3RFbXB0eShwcm9jZXNzZWRJdGVtKSkge1xuICAgICAgICAgICAgY29uc3QgeyBrZXksIHBhcmVudEtleSwgaXRlbSB9ID0gcHJvY2Vzc2VkSXRlbTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JbmZvLnNldCh7IGluZGV4LCBrZXk6IGtleSA/IGtleSA6ICcnLCBwYXJlbnRLZXksIGl0ZW0gfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNjcm9sbEluVmlldygpO1xuICAgIH1cblxuICAgIG9uQXJyb3dEb3duS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIGlmIChpc05vdEVtcHR5KHRoaXMuYWN0aXZlSXRlbSgpKSAmJiB0aGlzLmFjdGl2ZUl0ZW0oKS5rZXkgPT09IHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkua2V5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBrZXksIGl0ZW0gfSA9IHRoaXMuYWN0aXZlSXRlbSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEl0ZW1JbmZvLnNldCh7IGluZGV4OiAtMSwga2V5OiAnJywgcGFyZW50S2V5OiBrZXksIGl0ZW0gfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLmZpbmRWaXNpYmxlSXRlbSh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5pc1Byb2NjZXNzZWRJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhcmVudEtleSwga2V5LCBpdGVtIH0gPSBwcm9jZXNzZWRJdGVtO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uSXRlbUNoYW5nZSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJdGVtSW5mby5zZXQoeyBpbmRleDogLTEsIGtleToga2V5LCBwYXJlbnRLZXk6IHBhcmVudEtleSwgaXRlbTogaXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXggIT09IC0xID8gdGhpcy5maW5kTmV4dEl0ZW1JbmRleCh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KSA6IHRoaXMuZmluZEZpcnN0Rm9jdXNlZEl0ZW1JbmRleCgpO1xuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgaXRlbUluZGV4KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBvbkFycm93UmlnaHRLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHRoaXMuZmluZFZpc2libGVJdGVtKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpO1xuICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5pc1Byb2NjZXNzZWRJdGVtR3JvdXAocHJvY2Vzc2VkSXRlbSk7XG5cbiAgICAgICAgaWYgKGdyb3VwZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTm90RW1wdHkodGhpcy5hY3RpdmVJdGVtKCkpICYmIHRoaXMuYWN0aXZlSXRlbSgpLmtleSA9PT0gcHJvY2Vzc2VkSXRlbS5rZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXg6IC0xLCBrZXk6ICcnLCBwYXJlbnRLZXk6IHRoaXMuYWN0aXZlSXRlbSgpLmtleSwgaXRlbTogcHJvY2Vzc2VkSXRlbS5pdGVtIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEl0ZW0gPSB0aGlzLmZpbmRWaXNpYmxlSXRlbSh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuaXNQcm9jY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChncm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uSXRlbUNoYW5nZSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogLTEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBwcm9jZXNzZWRJdGVtLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRLZXk6IHByb2Nlc3NlZEl0ZW0ucGFyZW50S2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IHByb2Nlc3NlZEl0ZW0uaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXggIT09IC0xID8gdGhpcy5maW5kTmV4dEl0ZW1JbmRleCh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KSA6IHRoaXMuZmluZEZpcnN0Rm9jdXNlZEl0ZW1JbmRleCgpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgaXRlbUluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbkluZGV4ID0gcHJvY2Vzc2VkSXRlbS5jb2x1bW5JbmRleCArIDE7XG4gICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLnZpc2libGVJdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uY29sdW1uSW5kZXggPT09IGNvbHVtbkluZGV4KTtcblxuICAgICAgICAgICAgaXRlbUluZGV4ICE9PSAtMSAmJiB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgaXRlbUluZGV4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25BcnJvd1VwS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5hbHRLZXkgJiYgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gdGhpcy5maW5kVmlzaWJsZUl0ZW0odGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuaXNQcm9jY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFncm91cGVkICYmIGlzTm90RW1wdHkodGhpcy5hY3RpdmVJdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogdGhpcy5hY3RpdmVJdGVtKCkuaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLmFjdGl2ZUl0ZW0oKS5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50S2V5OiB0aGlzLmFjdGl2ZUl0ZW0oKS5wYXJlbnRLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbTogcHJvY2Vzc2VkSXRlbS5pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbS5zZXQobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgdGhpcy5maW5kRmlyc3RJdGVtSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4ICE9PSAtMSA/IHRoaXMuZmluZFByZXZJdGVtSW5kZXgodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCkgOiB0aGlzLmZpbmRMYXN0Rm9jdXNlZEl0ZW1JbmRleCgpO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgaXRlbUluZGV4KTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFycm93TGVmdEtleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBwcm9jZXNzZWRJdGVtID0gdGhpcy5maW5kVmlzaWJsZUl0ZW0odGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCk7XG4gICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLmlzUHJvY2Nlc3NlZEl0ZW1Hcm91cChwcm9jZXNzZWRJdGVtKTtcblxuICAgICAgICBpZiAoZ3JvdXBlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXggIT09IC0xID8gdGhpcy5maW5kUHJldkl0ZW1JbmRleCh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4KSA6IHRoaXMuZmluZExhc3RGb2N1c2VkSXRlbUluZGV4KCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgaXRlbUluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnICYmIGlzTm90RW1wdHkodGhpcy5hY3RpdmVJdGVtKCkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NlZEl0ZW0uY29sdW1uSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiB0aGlzLmFjdGl2ZUl0ZW0oKS5pbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdGhpcy5hY3RpdmVJdGVtKCkua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50S2V5OiB0aGlzLmFjdGl2ZUl0ZW0oKS5wYXJlbnRLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiBwcm9jZXNzZWRJdGVtLml0ZW1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbS5zZXQobnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb2x1bW5JbmRleCA9IHByb2Nlc3NlZEl0ZW0uY29sdW1uSW5kZXggLSAxO1xuICAgICAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy52aXNpYmxlSXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmNvbHVtbkluZGV4ID09PSBjb2x1bW5JbmRleCk7XG5cbiAgICAgICAgICAgIGl0ZW1JbmRleCAhPT0gLTEgJiYgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbUluZm8oZXZlbnQsIGl0ZW1JbmRleCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uSG9tZUtleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgdGhpcy5maW5kRmlyc3RJdGVtSW5kZXgoKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25FbmRLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkSXRlbUluZm8oZXZlbnQsIHRoaXMuZmluZExhc3RJdGVtSW5kZXgoKSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25TcGFjZUtleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRXNjYXBlS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChpc05vdEVtcHR5KHRoaXMuYWN0aXZlSXRlbSgpKSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkSXRlbUluZm8uc2V0KHsgaW5kZXg6IHRoaXMuYWN0aXZlSXRlbSgpLmluZGV4LCBrZXk6IHRoaXMuYWN0aXZlSXRlbSgpLmtleSwgaXRlbTogdGhpcy5hY3RpdmVJdGVtKCkuaXRlbSB9KTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSXRlbS5zZXQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uVGFiS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRJdGVtSW5mbygpLmluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHRoaXMuZmluZFZpc2libGVJdGVtKHRoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuaXNQcm9jY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pO1xuXG4gICAgICAgICAgICAhZ3JvdXBlZCAmJiB0aGlzLm9uSXRlbUNoYW5nZSh7IG9yaWdpbmFsRXZlbnQ6IGV2ZW50LCBwcm9jZXNzZWRJdGVtIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuXG4gICAgb25FbnRlcktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2VkSXRlbUluZm8oKS5pbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSA8YW55PmZpbmRTaW5nbGUodGhpcy5yb290bWVudT8uZWw/Lm5hdGl2ZUVsZW1lbnQsIGBsaVtpZD1cIiR7YCR7dGhpcy5mb2N1c2VkSXRlbUlkfWB9XCJdYCk7XG4gICAgICAgICAgICBjb25zdCBhbmNob3JFbGVtZW50ID0gZWxlbWVudCAmJiA8YW55PmZpbmRTaW5nbGUoZWxlbWVudCwgJ2FbZGF0YS1wYy1zZWN0aW9uPVwiYWN0aW9uXCJdJyk7XG5cbiAgICAgICAgICAgIGFuY2hvckVsZW1lbnQgPyBhbmNob3JFbGVtZW50LmNsaWNrKCkgOiBlbGVtZW50ICYmIGVsZW1lbnQuY2xpY2soKTtcblxuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMuZm9jdXNlZEl0ZW1JbmZvKCkuaW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuaXNQcm9jY2Vzc2VkSXRlbUdyb3VwKHByb2Nlc3NlZEl0ZW0pO1xuXG4gICAgICAgICAgICAhZ3JvdXBlZCAmJiB0aGlzLmNoYW5nZUZvY3VzZWRJdGVtSW5mbyhldmVudCwgdGhpcy5maW5kRmlyc3RGb2N1c2VkSXRlbUluZGV4KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBmaW5kVmlzaWJsZUl0ZW0oaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGlzTm90RW1wdHkodGhpcy52aXNpYmxlSXRlbXMpID8gdGhpcy52aXNpYmxlSXRlbXNbaW5kZXhdIDogbnVsbDtcbiAgICB9XG5cbiAgICBmaW5kTGFzdEZvY3VzZWRJdGVtSW5kZXgoKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLmZpbmRTZWxlY3RlZEl0ZW1JbmRleCgpO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleCA8IDAgPyB0aGlzLmZpbmRMYXN0SXRlbUluZGV4KCkgOiBzZWxlY3RlZEluZGV4O1xuICAgIH1cblxuICAgIGZpbmRMYXN0SXRlbUluZGV4KCkge1xuICAgICAgICByZXR1cm4gZmluZExhc3RJbmRleCh0aGlzLnZpc2libGVJdGVtcywgKHByb2Nlc3NlZEl0ZW0pID0+IHRoaXMuaXNWYWxpZEl0ZW0ocHJvY2Vzc2VkSXRlbSkpO1xuICAgIH1cblxuICAgIGZpbmRQcmV2SXRlbUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlZEl0ZW1JbmRleCA9IGluZGV4ID4gMCA/IGZpbmRMYXN0SW5kZXgodGhpcy52aXNpYmxlSXRlbXMuc2xpY2UoMCwgaW5kZXgpLCAocHJvY2Vzc2VkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkSXRlbShwcm9jZXNzZWRJdGVtKSkgOiAtMTtcblxuICAgICAgICByZXR1cm4gbWF0Y2hlZEl0ZW1JbmRleCA+IC0xID8gbWF0Y2hlZEl0ZW1JbmRleCA6IGluZGV4O1xuICAgIH1cblxuICAgIGZpbmROZXh0SXRlbUluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlZEl0ZW1JbmRleCA9IGluZGV4IDwgdGhpcy52aXNpYmxlSXRlbXMubGVuZ3RoIC0gMSA/IHRoaXMudmlzaWJsZUl0ZW1zLnNsaWNlKGluZGV4ICsgMSkuZmluZEluZGV4KChwcm9jZXNzZWRJdGVtKSA9PiB0aGlzLmlzVmFsaWRJdGVtKHByb2Nlc3NlZEl0ZW0pKSA6IC0xO1xuXG4gICAgICAgIHJldHVybiBtYXRjaGVkSXRlbUluZGV4ID4gLTEgPyBtYXRjaGVkSXRlbUluZGV4ICsgaW5kZXggKyAxIDogaW5kZXg7XG4gICAgfVxuXG4gICAgYmluZFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVG91Y2hEZXZpY2UoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoZXZlbnQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMubW9iaWxlQWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5yZXNpemVMaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kT3V0c2lkZUNsaWNrTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMub3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5kb2N1bWVudCwgJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzT3V0c2lkZUNvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50ICE9PSBldmVudC50YXJnZXQgJiYgIXRoaXMuY29udGFpbmVyPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3V0c2lkZUNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVuYmluZE91dHNpZGVDbGlja0xpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5vdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5vdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5vdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRSZXNpemVMaXN0ZW5lcigpIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnJlc2l6ZUxpc3RlbmVyKTtcbiAgICAgICAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5iaW5kT3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy51bmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLnVuYmluZE1hdGNoTWVkaWFMaXN0ZW5lcigpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbTWVnYU1lbnUsIFNoYXJlZE1vZHVsZV0sXG4gICAgZXhwb3J0czogW01lZ2FNZW51LCBTaGFyZWRNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIE1lZ2FNZW51TW9kdWxlIHt9XG4iXX0=
|