primeng 18.0.0 → 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/base/style/basestyle.d.ts +11 -11
- 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 +2 -2
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +1 -1
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +2 -2
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +2 -2
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +3 -3
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +1 -1
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +2 -2
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +2 -2
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +5 -5
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +2 -2
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +2 -2
- 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 +2 -2
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +1 -1
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +4 -6
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +2 -2
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +5 -5
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +2 -2
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +2 -2
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +3 -4
- 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 +2 -2
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +4 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +3 -3
- 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 +2 -2
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +2 -2
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +6 -6
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +2 -2
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +2 -2
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +2 -2
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +3 -4
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +2 -2
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +2 -2
- package/fesm2022/primeng-inputswitch.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +1 -1
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -1
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +1 -1
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +2 -2
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +2 -2
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +5 -5
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +6 -6
- 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 -6
- 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 +2 -2
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +2 -2
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +6 -3
- 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 +4 -4
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +5 -33
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +8 -7
- 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 +1 -1
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +2 -2
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +2 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +2 -2
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +5 -5
- 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 +3 -4
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +2 -2
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +2 -2
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +2 -2
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +2 -2
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +4 -4
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +16 -16
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +2 -2
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +1 -1
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +63 -38
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +2 -2
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +11 -11
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +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 +1 -1
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +5 -5
- 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 +4 -2
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +7 -9
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +4 -6
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +31 -29
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/package.json +174 -522
- package/popover/popover.d.ts +1 -1
- package/speeddial/speeddial.d.ts +2 -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 -2223
- package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/public_api.mjs +0 -4
- package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -409
- package/esm2022/autofocus/autofocus.mjs +0 -86
- package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
- package/esm2022/autofocus/public_api.mjs +0 -2
- package/esm2022/avatar/avatar.mjs +0 -193
- package/esm2022/avatar/primeng-avatar.mjs +0 -5
- package/esm2022/avatar/public_api.mjs +0 -3
- package/esm2022/avatar/style/avatarstyle.mjs +0 -130
- package/esm2022/avatargroup/avatargroup.mjs +0 -80
- package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
- package/esm2022/avatargroup/public_api.mjs +0 -3
- package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
- package/esm2022/badge/badge.mjs +0 -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 -185
- package/esm2022/config/provideprimeng.mjs +0 -19
- package/esm2022/config/public_api.mjs +0 -4
- package/esm2022/config/themeprovider.mjs +0 -68
- package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
- package/esm2022/confirmdialog/confirmdialog.mjs +0 -815
- 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 -104
- package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
- package/esm2022/inputtext/public_api.mjs +0 -3
- package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
- package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
- package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
- package/esm2022/inputtextarea/public_api.mjs +0 -3
- package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
- package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
- package/esm2022/keyfilter/keyfilter.mjs +0 -263
- package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
- package/esm2022/keyfilter/public_api.mjs +0 -3
- package/esm2022/knob/knob.mjs +0 -471
- package/esm2022/knob/primeng-knob.mjs +0 -5
- package/esm2022/knob/public_api.mjs +0 -3
- package/esm2022/knob/style/knobstyle.mjs +0 -83
- package/esm2022/listbox/listbox.interface.mjs +0 -2
- package/esm2022/listbox/listbox.mjs +0 -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 -373
- 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 -1201
- 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 -2322
- 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 -134
- package/esm2022/ripple/style/ripplestyle.mjs +0 -63
- package/esm2022/scroller/primeng-scroller.mjs +0 -5
- package/esm2022/scroller/public_api.mjs +0 -4
- package/esm2022/scroller/scroller.interface.mjs +0 -2
- package/esm2022/scroller/scroller.mjs +0 -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 -2618
- package/esm2022/select/style/selectstyle.mjs +0 -365
- package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
- package/esm2022/selectbutton/public_api.mjs +0 -4
- package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
- package/esm2022/selectbutton/selectbutton.mjs +0 -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 -626
- package/esm2022/splitter/style/splitterstyle.mjs +0 -127
- package/esm2022/stepper/primeng-stepper.mjs +0 -5
- package/esm2022/stepper/public_api.mjs +0 -3
- package/esm2022/stepper/stepper.mjs +0 -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 -7829
- 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 -333
- package/esm2022/tree/tree.interface.mjs +0 -2
- package/esm2022/tree/tree.mjs +0 -2289
- package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
- package/esm2022/treeselect/public_api.mjs +0 -4
- package/esm2022/treeselect/style/treeselectstyle.mjs +0 -271
- package/esm2022/treeselect/treeselect.interface.mjs +0 -2
- package/esm2022/treeselect/treeselect.mjs +0 -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,1858 +0,0 @@
|
|
1
|
-
import { animate, style, transition, trigger } from '@angular/animations';
|
2
|
-
import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
3
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, EventEmitter, HostListener, Inject, inject, Input, NgModule, numberAttribute, Output, PLATFORM_ID, ViewChild, ViewEncapsulation } from '@angular/core';
|
4
|
-
import { addClass, blockBodyScroll, find, findSingle, focus, getAttribute, removeClass, setAttribute, unblockBodyScroll, uuid } from '@primeuix/utils';
|
5
|
-
import { SharedModule } from 'primeng/api';
|
6
|
-
import { BaseComponent } from 'primeng/basecomponent';
|
7
|
-
import { FocusTrap } from 'primeng/focustrap';
|
8
|
-
import { ChevronLeftIcon, ChevronRightIcon, TimesIcon, WindowMaximizeIcon, WindowMinimizeIcon } from 'primeng/icons';
|
9
|
-
import { Ripple } from 'primeng/ripple';
|
10
|
-
import { ZIndexUtils } from 'primeng/utils';
|
11
|
-
import { GalleriaStyle } from './style/galleriastyle';
|
12
|
-
import * as i0 from "@angular/core";
|
13
|
-
import * as i1 from "@angular/common";
|
14
|
-
const _c0 = ["mask"];
|
15
|
-
const _c1 = ["container"];
|
16
|
-
const _c2 = () => ({ "p-galleria-mask p-overlay-mask p-overlay-mask-enter": true });
|
17
|
-
const _c3 = (a0, a1) => ({ showTransitionParams: a0, hideTransitionParams: a1 });
|
18
|
-
const _c4 = a0 => ({ value: "visible", params: a0 });
|
19
|
-
function Galleria_div_0_div_2_p_galleriaContent_2_Template(rf, ctx) { if (rf & 1) {
|
20
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
21
|
-
i0.ɵɵelementStart(0, "p-galleriaContent", 7);
|
22
|
-
i0.ɵɵlistener("@animation.start", function Galleria_div_0_div_2_p_galleriaContent_2_Template_p_galleriaContent_animation_animation_start_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onAnimationStart($event)); })("@animation.done", function Galleria_div_0_div_2_p_galleriaContent_2_Template_p_galleriaContent_animation_animation_done_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onAnimationEnd($event)); })("maskHide", function Galleria_div_0_div_2_p_galleriaContent_2_Template_p_galleriaContent_maskHide_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onMaskHide()); })("activeItemChange", function Galleria_div_0_div_2_p_galleriaContent_2_Template_p_galleriaContent_activeItemChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.onActiveItemChange($event)); });
|
23
|
-
i0.ɵɵelementEnd();
|
24
|
-
} if (rf & 2) {
|
25
|
-
const ctx_r1 = i0.ɵɵnextContext(3);
|
26
|
-
i0.ɵɵproperty("@animation", i0.ɵɵpureFunction1(9, _c4, i0.ɵɵpureFunction2(6, _c3, ctx_r1.showTransitionOptions, ctx_r1.hideTransitionOptions)))("value", ctx_r1.value)("activeIndex", ctx_r1.activeIndex)("numVisible", ctx_r1.numVisibleLimit || ctx_r1.numVisible)("ngStyle", ctx_r1.containerStyle)("fullScreen", ctx_r1.fullScreen);
|
27
|
-
} }
|
28
|
-
function Galleria_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
|
29
|
-
i0.ɵɵelementStart(0, "div", 5, 2);
|
30
|
-
i0.ɵɵtemplate(2, Galleria_div_0_div_2_p_galleriaContent_2_Template, 1, 11, "p-galleriaContent", 6);
|
31
|
-
i0.ɵɵelementEnd();
|
32
|
-
} if (rf & 2) {
|
33
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
34
|
-
i0.ɵɵclassMap(ctx_r1.maskClass);
|
35
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction0(6, _c2));
|
36
|
-
i0.ɵɵattribute("role", ctx_r1.fullScreen ? "dialog" : "region")("aria-modal", ctx_r1.fullScreen ? "true" : undefined);
|
37
|
-
i0.ɵɵadvance(2);
|
38
|
-
i0.ɵɵproperty("ngIf", ctx_r1.visible);
|
39
|
-
} }
|
40
|
-
function Galleria_div_0_Template(rf, ctx) { if (rf & 1) {
|
41
|
-
i0.ɵɵelementStart(0, "div", null, 1);
|
42
|
-
i0.ɵɵtemplate(2, Galleria_div_0_div_2_Template, 3, 7, "div", 4);
|
43
|
-
i0.ɵɵelementEnd();
|
44
|
-
} if (rf & 2) {
|
45
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
46
|
-
i0.ɵɵadvance(2);
|
47
|
-
i0.ɵɵproperty("ngIf", ctx_r1.maskVisible);
|
48
|
-
} }
|
49
|
-
function Galleria_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
50
|
-
const _r3 = i0.ɵɵgetCurrentView();
|
51
|
-
i0.ɵɵelementStart(0, "p-galleriaContent", 8);
|
52
|
-
i0.ɵɵlistener("activeItemChange", function Galleria_ng_template_1_Template_p_galleriaContent_activeItemChange_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onActiveItemChange($event)); });
|
53
|
-
i0.ɵɵelementEnd();
|
54
|
-
} if (rf & 2) {
|
55
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
56
|
-
i0.ɵɵproperty("value", ctx_r1.value)("activeIndex", ctx_r1.activeIndex)("numVisible", ctx_r1.numVisibleLimit || ctx_r1.numVisible);
|
57
|
-
} }
|
58
|
-
const _c5 = ["closeButton"];
|
59
|
-
const _c6 = (a0, a1, a2) => ({ "p-galleria p-component": true, "p-galleria-fullscreen": a0, "p-galleria-inset-indicators": a1, "p-galleria-hover-navigators": a2 });
|
60
|
-
const _c7 = () => ({});
|
61
|
-
function GalleriaContent_div_0_button_1_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {
|
62
|
-
i0.ɵɵelement(0, "TimesIcon", 11);
|
63
|
-
} if (rf & 2) {
|
64
|
-
i0.ɵɵproperty("styleClass", "p-galleria-close-icon");
|
65
|
-
} }
|
66
|
-
function GalleriaContent_div_0_button_1_2_ng_template_0_Template(rf, ctx) { }
|
67
|
-
function GalleriaContent_div_0_button_1_2_Template(rf, ctx) { if (rf & 1) {
|
68
|
-
i0.ɵɵtemplate(0, GalleriaContent_div_0_button_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
69
|
-
} }
|
70
|
-
function GalleriaContent_div_0_button_1_Template(rf, ctx) { if (rf & 1) {
|
71
|
-
const _r2 = i0.ɵɵgetCurrentView();
|
72
|
-
i0.ɵɵelementStart(0, "button", 8);
|
73
|
-
i0.ɵɵlistener("click", function GalleriaContent_div_0_button_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.maskHide.emit()); });
|
74
|
-
i0.ɵɵtemplate(1, GalleriaContent_div_0_button_1_TimesIcon_1_Template, 1, 1, "TimesIcon", 9)(2, GalleriaContent_div_0_button_1_2_Template, 1, 0, null, 10);
|
75
|
-
i0.ɵɵelementEnd();
|
76
|
-
} if (rf & 2) {
|
77
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
78
|
-
i0.ɵɵattribute("aria-label", ctx_r2.closeAriaLabel())("data-pc-section", "closebutton");
|
79
|
-
i0.ɵɵadvance();
|
80
|
-
i0.ɵɵproperty("ngIf", !ctx_r2.galleria.closeIconTemplate);
|
81
|
-
i0.ɵɵadvance();
|
82
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.galleria.closeIconTemplate);
|
83
|
-
} }
|
84
|
-
function GalleriaContent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
|
85
|
-
i0.ɵɵelementStart(0, "div", 12);
|
86
|
-
i0.ɵɵelement(1, "p-galleriaItemSlot", 13);
|
87
|
-
i0.ɵɵelementEnd();
|
88
|
-
} if (rf & 2) {
|
89
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
90
|
-
i0.ɵɵadvance();
|
91
|
-
i0.ɵɵproperty("templates", ctx_r2.galleria.templates);
|
92
|
-
} }
|
93
|
-
function GalleriaContent_div_0_p_galleriaThumbnails_5_Template(rf, ctx) { if (rf & 1) {
|
94
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
95
|
-
i0.ɵɵelementStart(0, "p-galleriaThumbnails", 14);
|
96
|
-
i0.ɵɵlistener("onActiveIndexChange", function GalleriaContent_div_0_p_galleriaThumbnails_5_Template_p_galleriaThumbnails_onActiveIndexChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onActiveIndexChange($event)); })("stopSlideShow", function GalleriaContent_div_0_p_galleriaThumbnails_5_Template_p_galleriaThumbnails_stopSlideShow_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.stopSlideShow()); });
|
97
|
-
i0.ɵɵelementEnd();
|
98
|
-
} if (rf & 2) {
|
99
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
100
|
-
i0.ɵɵproperty("containerId", ctx_r2.id)("value", ctx_r2.value)("activeIndex", ctx_r2.activeIndex)("templates", ctx_r2.galleria.templates)("numVisible", ctx_r2.numVisible)("responsiveOptions", ctx_r2.galleria.responsiveOptions)("circular", ctx_r2.galleria.circular)("isVertical", ctx_r2.isVertical())("contentHeight", ctx_r2.galleria.verticalThumbnailViewPortHeight)("showThumbnailNavigators", ctx_r2.galleria.showThumbnailNavigators)("slideShowActive", ctx_r2.slideShowActive);
|
101
|
-
} }
|
102
|
-
function GalleriaContent_div_0_div_6_Template(rf, ctx) { if (rf & 1) {
|
103
|
-
i0.ɵɵelementStart(0, "div", 15);
|
104
|
-
i0.ɵɵelement(1, "p-galleriaItemSlot", 16);
|
105
|
-
i0.ɵɵelementEnd();
|
106
|
-
} if (rf & 2) {
|
107
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
108
|
-
i0.ɵɵadvance();
|
109
|
-
i0.ɵɵproperty("templates", ctx_r2.galleria.templates);
|
110
|
-
} }
|
111
|
-
function GalleriaContent_div_0_Template(rf, ctx) { if (rf & 1) {
|
112
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
113
|
-
i0.ɵɵelementStart(0, "div", 1);
|
114
|
-
i0.ɵɵtemplate(1, GalleriaContent_div_0_button_1_Template, 3, 4, "button", 2)(2, GalleriaContent_div_0_div_2_Template, 2, 1, "div", 3);
|
115
|
-
i0.ɵɵelementStart(3, "div", 4)(4, "p-galleriaItem", 5);
|
116
|
-
i0.ɵɵlistener("onActiveIndexChange", function GalleriaContent_div_0_Template_p_galleriaItem_onActiveIndexChange_4_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onActiveIndexChange($event)); })("startSlideShow", function GalleriaContent_div_0_Template_p_galleriaItem_startSlideShow_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.startSlideShow()); })("stopSlideShow", function GalleriaContent_div_0_Template_p_galleriaItem_stopSlideShow_4_listener() { i0.ɵɵrestoreView(_r1); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.stopSlideShow()); });
|
117
|
-
i0.ɵɵelementEnd();
|
118
|
-
i0.ɵɵtemplate(5, GalleriaContent_div_0_p_galleriaThumbnails_5_Template, 1, 11, "p-galleriaThumbnails", 6);
|
119
|
-
i0.ɵɵelementEnd();
|
120
|
-
i0.ɵɵtemplate(6, GalleriaContent_div_0_div_6_Template, 2, 1, "div", 7);
|
121
|
-
i0.ɵɵelementEnd();
|
122
|
-
} if (rf & 2) {
|
123
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
124
|
-
i0.ɵɵclassMap(ctx_r2.galleriaClass());
|
125
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction3(24, _c6, ctx_r2.galleria.fullScreen, ctx_r2.galleria.showIndicatorsOnItem, ctx_r2.galleria.showItemNavigatorsOnHover && !ctx_r2.galleria.fullScreen))("ngStyle", !ctx_r2.galleria.fullScreen ? ctx_r2.galleria.containerStyle : i0.ɵɵpureFunction0(28, _c7))("pFocusTrapDisabled", !ctx_r2.fullScreen);
|
126
|
-
i0.ɵɵattribute("id", ctx_r2.id)("role", "region");
|
127
|
-
i0.ɵɵadvance();
|
128
|
-
i0.ɵɵproperty("ngIf", ctx_r2.galleria.fullScreen);
|
129
|
-
i0.ɵɵadvance();
|
130
|
-
i0.ɵɵproperty("ngIf", ctx_r2.galleria.templates && ctx_r2.galleria.headerFacet);
|
131
|
-
i0.ɵɵadvance();
|
132
|
-
i0.ɵɵattribute("aria-live", ctx_r2.galleria.autoPlay ? "polite" : "off");
|
133
|
-
i0.ɵɵadvance();
|
134
|
-
i0.ɵɵproperty("id", ctx_r2.id)("value", ctx_r2.value)("activeIndex", ctx_r2.activeIndex)("circular", ctx_r2.galleria.circular)("templates", ctx_r2.galleria.templates)("showIndicators", ctx_r2.galleria.showIndicators)("changeItemOnIndicatorHover", ctx_r2.galleria.changeItemOnIndicatorHover)("indicatorFacet", ctx_r2.galleria.indicatorFacet)("captionFacet", ctx_r2.galleria.captionFacet)("showItemNavigators", ctx_r2.galleria.showItemNavigators)("autoPlay", ctx_r2.galleria.autoPlay)("slideShowActive", ctx_r2.slideShowActive);
|
135
|
-
i0.ɵɵadvance();
|
136
|
-
i0.ɵɵproperty("ngIf", ctx_r2.galleria.showThumbnails);
|
137
|
-
i0.ɵɵadvance();
|
138
|
-
i0.ɵɵproperty("ngIf", ctx_r2.galleria.templates && ctx_r2.galleria.footerFacet);
|
139
|
-
} }
|
140
|
-
function GalleriaItemSlot_ng_container_0_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
141
|
-
i0.ɵɵelementContainer(0);
|
142
|
-
} }
|
143
|
-
function GalleriaItemSlot_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
144
|
-
i0.ɵɵelementContainerStart(0);
|
145
|
-
i0.ɵɵtemplate(1, GalleriaItemSlot_ng_container_0_ng_container_1_Template, 1, 0, "ng-container", 1);
|
146
|
-
i0.ɵɵelementContainerEnd();
|
147
|
-
} if (rf & 2) {
|
148
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
149
|
-
i0.ɵɵadvance();
|
150
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.contentTemplate)("ngTemplateOutletContext", ctx_r0.context);
|
151
|
-
} }
|
152
|
-
const _c8 = a0 => ({ "p-galleria-prev-button p-galleria-nav-button": true, "p-disabled": a0 });
|
153
|
-
const _c9 = a0 => ({ "p-galleria-next-button p-galleria-nav-button": true, "p-disabled": a0 });
|
154
|
-
const _c10 = a0 => ({ "p-galleria-indicator": true, "p-galleria-indicator-active": a0 });
|
155
|
-
function GalleriaItem_button_1_ChevronLeftIcon_1_Template(rf, ctx) { if (rf & 1) {
|
156
|
-
i0.ɵɵelement(0, "ChevronLeftIcon", 9);
|
157
|
-
} if (rf & 2) {
|
158
|
-
i0.ɵɵproperty("styleClass", "p-galleria-prev-icon");
|
159
|
-
} }
|
160
|
-
function GalleriaItem_button_1_2_ng_template_0_Template(rf, ctx) { }
|
161
|
-
function GalleriaItem_button_1_2_Template(rf, ctx) { if (rf & 1) {
|
162
|
-
i0.ɵɵtemplate(0, GalleriaItem_button_1_2_ng_template_0_Template, 0, 0, "ng-template");
|
163
|
-
} }
|
164
|
-
function GalleriaItem_button_1_Template(rf, ctx) { if (rf & 1) {
|
165
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
166
|
-
i0.ɵɵelementStart(0, "button", 6);
|
167
|
-
i0.ɵɵlistener("click", function GalleriaItem_button_1_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.navBackward($event)); })("focus", function GalleriaItem_button_1_Template_button_focus_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onButtonFocus("left")); })("blur", function GalleriaItem_button_1_Template_button_blur_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onButtonBlur("left")); });
|
168
|
-
i0.ɵɵtemplate(1, GalleriaItem_button_1_ChevronLeftIcon_1_Template, 1, 1, "ChevronLeftIcon", 7)(2, GalleriaItem_button_1_2_Template, 1, 0, null, 8);
|
169
|
-
i0.ɵɵelementEnd();
|
170
|
-
} if (rf & 2) {
|
171
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
172
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c8, ctx_r1.isNavBackwardDisabled()))("disabled", ctx_r1.isNavBackwardDisabled());
|
173
|
-
i0.ɵɵadvance();
|
174
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.galleria.itemPreviousIconTemplate);
|
175
|
-
i0.ɵɵadvance();
|
176
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.galleria.itemPreviousIconTemplate);
|
177
|
-
} }
|
178
|
-
function GalleriaItem_button_4_ChevronRightIcon_1_Template(rf, ctx) { if (rf & 1) {
|
179
|
-
i0.ɵɵelement(0, "ChevronRightIcon", 9);
|
180
|
-
} if (rf & 2) {
|
181
|
-
i0.ɵɵproperty("styleClass", "p-galleria-next-icon");
|
182
|
-
} }
|
183
|
-
function GalleriaItem_button_4_2_ng_template_0_Template(rf, ctx) { }
|
184
|
-
function GalleriaItem_button_4_2_Template(rf, ctx) { if (rf & 1) {
|
185
|
-
i0.ɵɵtemplate(0, GalleriaItem_button_4_2_ng_template_0_Template, 0, 0, "ng-template");
|
186
|
-
} }
|
187
|
-
function GalleriaItem_button_4_Template(rf, ctx) { if (rf & 1) {
|
188
|
-
const _r3 = i0.ɵɵgetCurrentView();
|
189
|
-
i0.ɵɵelementStart(0, "button", 6);
|
190
|
-
i0.ɵɵlistener("click", function GalleriaItem_button_4_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.navForward($event)); })("focus", function GalleriaItem_button_4_Template_button_focus_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onButtonFocus("right")); })("blur", function GalleriaItem_button_4_Template_button_blur_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onButtonBlur("right")); });
|
191
|
-
i0.ɵɵtemplate(1, GalleriaItem_button_4_ChevronRightIcon_1_Template, 1, 1, "ChevronRightIcon", 7)(2, GalleriaItem_button_4_2_Template, 1, 0, null, 8);
|
192
|
-
i0.ɵɵelementEnd();
|
193
|
-
} if (rf & 2) {
|
194
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
195
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(4, _c9, ctx_r1.isNavForwardDisabled()))("disabled", ctx_r1.isNavForwardDisabled());
|
196
|
-
i0.ɵɵadvance();
|
197
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.galleria.itemNextIconTemplate);
|
198
|
-
i0.ɵɵadvance();
|
199
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.galleria.itemNextIconTemplate);
|
200
|
-
} }
|
201
|
-
function GalleriaItem_div_5_Template(rf, ctx) { if (rf & 1) {
|
202
|
-
i0.ɵɵelementStart(0, "div", 10);
|
203
|
-
i0.ɵɵelement(1, "p-galleriaItemSlot", 11);
|
204
|
-
i0.ɵɵelementEnd();
|
205
|
-
} if (rf & 2) {
|
206
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
207
|
-
i0.ɵɵadvance();
|
208
|
-
i0.ɵɵproperty("item", ctx_r1.activeItem)("templates", ctx_r1.templates);
|
209
|
-
} }
|
210
|
-
function GalleriaItem_ul_6_li_1_button_1_Template(rf, ctx) { if (rf & 1) {
|
211
|
-
i0.ɵɵelement(0, "button", 17);
|
212
|
-
} }
|
213
|
-
function GalleriaItem_ul_6_li_1_Template(rf, ctx) { if (rf & 1) {
|
214
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
215
|
-
i0.ɵɵelementStart(0, "li", 14);
|
216
|
-
i0.ɵɵlistener("click", function GalleriaItem_ul_6_li_1_Template_li_click_0_listener() { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onIndicatorClick(index_r5)); })("mouseenter", function GalleriaItem_ul_6_li_1_Template_li_mouseenter_0_listener() { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onIndicatorMouseEnter(index_r5)); })("keydown", function GalleriaItem_ul_6_li_1_Template_li_keydown_0_listener($event) { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onIndicatorKeyDown($event, index_r5)); });
|
217
|
-
i0.ɵɵtemplate(1, GalleriaItem_ul_6_li_1_button_1_Template, 1, 0, "button", 15);
|
218
|
-
i0.ɵɵelement(2, "p-galleriaItemSlot", 16);
|
219
|
-
i0.ɵɵelementEnd();
|
220
|
-
} if (rf & 2) {
|
221
|
-
const index_r5 = ctx.index;
|
222
|
-
const ctx_r1 = i0.ɵɵnextContext(2);
|
223
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c10, ctx_r1.isIndicatorItemActive(index_r5)));
|
224
|
-
i0.ɵɵattribute("aria-label", ctx_r1.ariaPageLabel(index_r5 + 1))("aria-selected", ctx_r1.activeIndex === index_r5)("aria-controls", ctx_r1.id + "_item_" + index_r5);
|
225
|
-
i0.ɵɵadvance();
|
226
|
-
i0.ɵɵproperty("ngIf", !ctx_r1.indicatorFacet);
|
227
|
-
i0.ɵɵadvance();
|
228
|
-
i0.ɵɵproperty("index", index_r5)("templates", ctx_r1.templates);
|
229
|
-
} }
|
230
|
-
function GalleriaItem_ul_6_Template(rf, ctx) { if (rf & 1) {
|
231
|
-
i0.ɵɵelementStart(0, "ul", 12);
|
232
|
-
i0.ɵɵtemplate(1, GalleriaItem_ul_6_li_1_Template, 3, 9, "li", 13);
|
233
|
-
i0.ɵɵelementEnd();
|
234
|
-
} if (rf & 2) {
|
235
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
236
|
-
i0.ɵɵadvance();
|
237
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.value);
|
238
|
-
} }
|
239
|
-
const _c11 = ["itemsContainer"];
|
240
|
-
const _c12 = a0 => ({ height: a0 });
|
241
|
-
const _c13 = a0 => ({ "p-galleria-thumbnail-prev-button p-galleria-thumbnail-nav-button": true, "p-disabled": a0 });
|
242
|
-
const _c14 = (a0, a1, a2, a3) => ({ "p-galleria-thumbnail-item": true, "p-galleria-thumbnail-item-current": a0, "p-galleria-thumbnail-item-active": a1, "p-galleria-thumbnail-item-start": a2, "p-galleria-thumbnail-item-end": a3 });
|
243
|
-
const _c15 = a0 => ({ "p-galleria-thumbnail-next-button p-galleria-thumbnail-nav-button": true, "p-disabled": a0 });
|
244
|
-
function GalleriaThumbnails_button_2_ng_container_1_ChevronLeftIcon_1_Template(rf, ctx) { if (rf & 1) {
|
245
|
-
i0.ɵɵelement(0, "ChevronLeftIcon", 11);
|
246
|
-
} if (rf & 2) {
|
247
|
-
i0.ɵɵproperty("styleClass", "p-galleria-thumbnail-prev-icon");
|
248
|
-
} }
|
249
|
-
function GalleriaThumbnails_button_2_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {
|
250
|
-
i0.ɵɵelement(0, "ChevronUpIcon", 11);
|
251
|
-
} if (rf & 2) {
|
252
|
-
i0.ɵɵproperty("styleClass", "p-galleria-thumbnail-prev-icon");
|
253
|
-
} }
|
254
|
-
function GalleriaThumbnails_button_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
255
|
-
i0.ɵɵelementContainerStart(0);
|
256
|
-
i0.ɵɵtemplate(1, GalleriaThumbnails_button_2_ng_container_1_ChevronLeftIcon_1_Template, 1, 1, "ChevronLeftIcon", 10)(2, GalleriaThumbnails_button_2_ng_container_1_ChevronUpIcon_2_Template, 1, 1, "ChevronUpIcon", 10);
|
257
|
-
i0.ɵɵelementContainerEnd();
|
258
|
-
} if (rf & 2) {
|
259
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
260
|
-
i0.ɵɵadvance();
|
261
|
-
i0.ɵɵproperty("ngIf", !ctx_r2.isVertical);
|
262
|
-
i0.ɵɵadvance();
|
263
|
-
i0.ɵɵproperty("ngIf", ctx_r2.isVertical);
|
264
|
-
} }
|
265
|
-
function GalleriaThumbnails_button_2_2_ng_template_0_Template(rf, ctx) { }
|
266
|
-
function GalleriaThumbnails_button_2_2_Template(rf, ctx) { if (rf & 1) {
|
267
|
-
i0.ɵɵtemplate(0, GalleriaThumbnails_button_2_2_ng_template_0_Template, 0, 0, "ng-template");
|
268
|
-
} }
|
269
|
-
function GalleriaThumbnails_button_2_Template(rf, ctx) { if (rf & 1) {
|
270
|
-
const _r2 = i0.ɵɵgetCurrentView();
|
271
|
-
i0.ɵɵelementStart(0, "button", 7);
|
272
|
-
i0.ɵɵlistener("click", function GalleriaThumbnails_button_2_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.navBackward($event)); });
|
273
|
-
i0.ɵɵtemplate(1, GalleriaThumbnails_button_2_ng_container_1_Template, 3, 2, "ng-container", 8)(2, GalleriaThumbnails_button_2_2_Template, 1, 0, null, 9);
|
274
|
-
i0.ɵɵelementEnd();
|
275
|
-
} if (rf & 2) {
|
276
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
277
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c13, ctx_r2.isNavBackwardDisabled()))("disabled", ctx_r2.isNavBackwardDisabled());
|
278
|
-
i0.ɵɵattribute("aria-label", ctx_r2.ariaPrevButtonLabel());
|
279
|
-
i0.ɵɵadvance();
|
280
|
-
i0.ɵɵproperty("ngIf", !ctx_r2.galleria.previousThumbnailIconTemplate);
|
281
|
-
i0.ɵɵadvance();
|
282
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.galleria.previousThumbnailIconTemplate);
|
283
|
-
} }
|
284
|
-
function GalleriaThumbnails_div_6_Template(rf, ctx) { if (rf & 1) {
|
285
|
-
const _r4 = i0.ɵɵgetCurrentView();
|
286
|
-
i0.ɵɵelementStart(0, "div", 12);
|
287
|
-
i0.ɵɵlistener("keydown", function GalleriaThumbnails_div_6_Template_div_keydown_0_listener($event) { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onThumbnailKeydown($event, index_r5)); });
|
288
|
-
i0.ɵɵelementStart(1, "div", 13);
|
289
|
-
i0.ɵɵlistener("click", function GalleriaThumbnails_div_6_Template_div_click_1_listener() { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onItemClick(index_r5)); })("touchend", function GalleriaThumbnails_div_6_Template_div_touchend_1_listener() { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onItemClick(index_r5)); })("keydown.enter", function GalleriaThumbnails_div_6_Template_div_keydown_enter_1_listener() { const index_r5 = i0.ɵɵrestoreView(_r4).index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onItemClick(index_r5)); });
|
290
|
-
i0.ɵɵelement(2, "p-galleriaItemSlot", 14);
|
291
|
-
i0.ɵɵelementEnd()();
|
292
|
-
} if (rf & 2) {
|
293
|
-
const item_r6 = ctx.$implicit;
|
294
|
-
const index_r5 = ctx.index;
|
295
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
296
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(10, _c14, ctx_r2.activeIndex === index_r5, ctx_r2.isItemActive(index_r5), ctx_r2.firstItemAciveIndex() === index_r5, ctx_r2.lastItemActiveIndex() === index_r5));
|
297
|
-
i0.ɵɵattribute("aria-selected", ctx_r2.activeIndex === index_r5)("aria-controls", ctx_r2.containerId + "_item_" + index_r5)("data-pc-section", "thumbnailitem")("data-p-active", ctx_r2.activeIndex === index_r5);
|
298
|
-
i0.ɵɵadvance();
|
299
|
-
i0.ɵɵattribute("tabindex", ctx_r2.activeIndex === index_r5 ? 0 : -1)("aria-current", ctx_r2.activeIndex === index_r5 ? "page" : undefined)("aria-label", ctx_r2.ariaPageLabel(index_r5 + 1));
|
300
|
-
i0.ɵɵadvance();
|
301
|
-
i0.ɵɵproperty("item", item_r6)("templates", ctx_r2.templates);
|
302
|
-
} }
|
303
|
-
function GalleriaThumbnails_button_7_ng_container_1_ChevronRightIcon_1_Template(rf, ctx) { if (rf & 1) {
|
304
|
-
i0.ɵɵelement(0, "ChevronRightIcon", 16);
|
305
|
-
} if (rf & 2) {
|
306
|
-
i0.ɵɵproperty("ngClass", "p-galleria-thumbnail-next-icon");
|
307
|
-
} }
|
308
|
-
function GalleriaThumbnails_button_7_ng_container_1_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {
|
309
|
-
i0.ɵɵelement(0, "ChevronDownIcon", 16);
|
310
|
-
} if (rf & 2) {
|
311
|
-
i0.ɵɵproperty("ngClass", "p-galleria-thumbnail-next-icon");
|
312
|
-
} }
|
313
|
-
function GalleriaThumbnails_button_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
314
|
-
i0.ɵɵelementContainerStart(0);
|
315
|
-
i0.ɵɵtemplate(1, GalleriaThumbnails_button_7_ng_container_1_ChevronRightIcon_1_Template, 1, 1, "ChevronRightIcon", 15)(2, GalleriaThumbnails_button_7_ng_container_1_ChevronDownIcon_2_Template, 1, 1, "ChevronDownIcon", 15);
|
316
|
-
i0.ɵɵelementContainerEnd();
|
317
|
-
} if (rf & 2) {
|
318
|
-
const ctx_r2 = i0.ɵɵnextContext(2);
|
319
|
-
i0.ɵɵadvance();
|
320
|
-
i0.ɵɵproperty("ngIf", !ctx_r2.isVertical);
|
321
|
-
i0.ɵɵadvance();
|
322
|
-
i0.ɵɵproperty("ngIf", ctx_r2.isVertical);
|
323
|
-
} }
|
324
|
-
function GalleriaThumbnails_button_7_2_ng_template_0_Template(rf, ctx) { }
|
325
|
-
function GalleriaThumbnails_button_7_2_Template(rf, ctx) { if (rf & 1) {
|
326
|
-
i0.ɵɵtemplate(0, GalleriaThumbnails_button_7_2_ng_template_0_Template, 0, 0, "ng-template");
|
327
|
-
} }
|
328
|
-
function GalleriaThumbnails_button_7_Template(rf, ctx) { if (rf & 1) {
|
329
|
-
const _r7 = i0.ɵɵgetCurrentView();
|
330
|
-
i0.ɵɵelementStart(0, "button", 7);
|
331
|
-
i0.ɵɵlistener("click", function GalleriaThumbnails_button_7_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.navForward($event)); });
|
332
|
-
i0.ɵɵtemplate(1, GalleriaThumbnails_button_7_ng_container_1_Template, 3, 2, "ng-container", 8)(2, GalleriaThumbnails_button_7_2_Template, 1, 0, null, 9);
|
333
|
-
i0.ɵɵelementEnd();
|
334
|
-
} if (rf & 2) {
|
335
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
336
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c15, ctx_r2.isNavForwardDisabled()))("disabled", ctx_r2.isNavForwardDisabled());
|
337
|
-
i0.ɵɵattribute("aria-label", ctx_r2.ariaNextButtonLabel());
|
338
|
-
i0.ɵɵadvance();
|
339
|
-
i0.ɵɵproperty("ngIf", !ctx_r2.galleria.nextThumbnailIconTemplate);
|
340
|
-
i0.ɵɵadvance();
|
341
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.galleria.nextThumbnailIconTemplate);
|
342
|
-
} }
|
343
|
-
/**
|
344
|
-
* Galleria is an advanced content gallery component.
|
345
|
-
* @group Components
|
346
|
-
*/
|
347
|
-
export class Galleria extends BaseComponent {
|
348
|
-
platformId;
|
349
|
-
element;
|
350
|
-
cd;
|
351
|
-
/**
|
352
|
-
* Index of the first item.
|
353
|
-
* @group Props
|
354
|
-
*/
|
355
|
-
get activeIndex() {
|
356
|
-
return this._activeIndex;
|
357
|
-
}
|
358
|
-
set activeIndex(activeIndex) {
|
359
|
-
this._activeIndex = activeIndex;
|
360
|
-
}
|
361
|
-
/**
|
362
|
-
* Whether to display the component on fullscreen.
|
363
|
-
* @group Props
|
364
|
-
*/
|
365
|
-
fullScreen = false;
|
366
|
-
/**
|
367
|
-
* Unique identifier of the element.
|
368
|
-
* @group Props
|
369
|
-
*/
|
370
|
-
id;
|
371
|
-
/**
|
372
|
-
* An array of objects to display.
|
373
|
-
* @group Props
|
374
|
-
*/
|
375
|
-
value;
|
376
|
-
/**
|
377
|
-
* Number of items per page.
|
378
|
-
* @group Props
|
379
|
-
*/
|
380
|
-
numVisible = 3;
|
381
|
-
/**
|
382
|
-
* An array of options for responsive design.
|
383
|
-
* @see {GalleriaResponsiveOptions}
|
384
|
-
* @group Props
|
385
|
-
*/
|
386
|
-
responsiveOptions;
|
387
|
-
/**
|
388
|
-
* Whether to display navigation buttons in item section.
|
389
|
-
* @group Props
|
390
|
-
*/
|
391
|
-
showItemNavigators = false;
|
392
|
-
/**
|
393
|
-
* Whether to display navigation buttons in thumbnail container.
|
394
|
-
* @group Props
|
395
|
-
*/
|
396
|
-
showThumbnailNavigators = true;
|
397
|
-
/**
|
398
|
-
* Whether to display navigation buttons on item hover.
|
399
|
-
* @group Props
|
400
|
-
*/
|
401
|
-
showItemNavigatorsOnHover = false;
|
402
|
-
/**
|
403
|
-
* When enabled, item is changed on indicator hover.
|
404
|
-
* @group Props
|
405
|
-
*/
|
406
|
-
changeItemOnIndicatorHover = false;
|
407
|
-
/**
|
408
|
-
* Defines if scrolling would be infinite.
|
409
|
-
* @group Props
|
410
|
-
*/
|
411
|
-
circular = false;
|
412
|
-
/**
|
413
|
-
* Items are displayed with a slideshow in autoPlay mode.
|
414
|
-
* @group Props
|
415
|
-
*/
|
416
|
-
autoPlay = false;
|
417
|
-
/**
|
418
|
-
* When enabled, autorun should stop by click.
|
419
|
-
* @group Props
|
420
|
-
*/
|
421
|
-
shouldStopAutoplayByClick = true;
|
422
|
-
/**
|
423
|
-
* Time in milliseconds to scroll items.
|
424
|
-
* @group Props
|
425
|
-
*/
|
426
|
-
transitionInterval = 4000;
|
427
|
-
/**
|
428
|
-
* Whether to display thumbnail container.
|
429
|
-
* @group Props
|
430
|
-
*/
|
431
|
-
showThumbnails = true;
|
432
|
-
/**
|
433
|
-
* Position of thumbnails.
|
434
|
-
* @group Props
|
435
|
-
*/
|
436
|
-
thumbnailsPosition = 'bottom';
|
437
|
-
/**
|
438
|
-
* Height of the viewport in vertical thumbnail.
|
439
|
-
* @group Props
|
440
|
-
*/
|
441
|
-
verticalThumbnailViewPortHeight = '300px';
|
442
|
-
/**
|
443
|
-
* Whether to display indicator container.
|
444
|
-
* @group Props
|
445
|
-
*/
|
446
|
-
showIndicators = false;
|
447
|
-
/**
|
448
|
-
* When enabled, indicator container is displayed on item container.
|
449
|
-
* @group Props
|
450
|
-
*/
|
451
|
-
showIndicatorsOnItem = false;
|
452
|
-
/**
|
453
|
-
* Position of indicators.
|
454
|
-
* @group Props
|
455
|
-
*/
|
456
|
-
indicatorsPosition = 'bottom';
|
457
|
-
/**
|
458
|
-
* Base zIndex value to use in layering.
|
459
|
-
* @group Props
|
460
|
-
*/
|
461
|
-
baseZIndex = 0;
|
462
|
-
/**
|
463
|
-
* Style class of the mask on fullscreen mode.
|
464
|
-
* @group Props
|
465
|
-
*/
|
466
|
-
maskClass;
|
467
|
-
/**
|
468
|
-
* Style class of the component on fullscreen mode. Otherwise, the 'class' property can be used.
|
469
|
-
* @group Props
|
470
|
-
*/
|
471
|
-
containerClass;
|
472
|
-
/**
|
473
|
-
* Inline style of the component on fullscreen mode. Otherwise, the 'style' property can be used.
|
474
|
-
* @group Props
|
475
|
-
*/
|
476
|
-
containerStyle;
|
477
|
-
/**
|
478
|
-
* Transition options of the show animation.
|
479
|
-
* @group Props
|
480
|
-
*/
|
481
|
-
showTransitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
|
482
|
-
/**
|
483
|
-
* Transition options of the hide animation.
|
484
|
-
* @group Props
|
485
|
-
*/
|
486
|
-
hideTransitionOptions = '150ms cubic-bezier(0, 0, 0.2, 1)';
|
487
|
-
/**
|
488
|
-
* Specifies the visibility of the mask on fullscreen mode.
|
489
|
-
* @group Props
|
490
|
-
*/
|
491
|
-
get visible() {
|
492
|
-
return this._visible;
|
493
|
-
}
|
494
|
-
set visible(visible) {
|
495
|
-
this._visible = visible;
|
496
|
-
if (this._visible && !this.maskVisible) {
|
497
|
-
this.maskVisible = true;
|
498
|
-
}
|
499
|
-
}
|
500
|
-
/**
|
501
|
-
* Callback to invoke on active index change.
|
502
|
-
* @param {number} number - Active index.
|
503
|
-
* @group Emits
|
504
|
-
*/
|
505
|
-
activeIndexChange = new EventEmitter();
|
506
|
-
/**
|
507
|
-
* Callback to invoke on visiblity change.
|
508
|
-
* @param {boolean} boolean - Visible value.
|
509
|
-
* @group Emits
|
510
|
-
*/
|
511
|
-
visibleChange = new EventEmitter();
|
512
|
-
mask;
|
513
|
-
container;
|
514
|
-
_visible = false;
|
515
|
-
_activeIndex = 0;
|
516
|
-
headerFacet;
|
517
|
-
footerFacet;
|
518
|
-
indicatorFacet;
|
519
|
-
captionFacet;
|
520
|
-
closeIconTemplate;
|
521
|
-
previousThumbnailIconTemplate;
|
522
|
-
nextThumbnailIconTemplate;
|
523
|
-
itemPreviousIconTemplate;
|
524
|
-
itemNextIconTemplate;
|
525
|
-
maskVisible = false;
|
526
|
-
numVisibleLimit = 0;
|
527
|
-
_componentStyle = inject(GalleriaStyle);
|
528
|
-
constructor(platformId, element, cd) {
|
529
|
-
super();
|
530
|
-
this.platformId = platformId;
|
531
|
-
this.element = element;
|
532
|
-
this.cd = cd;
|
533
|
-
}
|
534
|
-
ngAfterContentInit() {
|
535
|
-
this.templates?.forEach((item) => {
|
536
|
-
switch (item.getType()) {
|
537
|
-
case 'header':
|
538
|
-
this.headerFacet = item.template;
|
539
|
-
break;
|
540
|
-
case 'footer':
|
541
|
-
this.footerFacet = item.template;
|
542
|
-
break;
|
543
|
-
case 'indicator':
|
544
|
-
this.indicatorFacet = item.template;
|
545
|
-
break;
|
546
|
-
case 'closeicon':
|
547
|
-
this.closeIconTemplate = item.template;
|
548
|
-
break;
|
549
|
-
case 'itemnexticon':
|
550
|
-
this.itemNextIconTemplate = item.template;
|
551
|
-
break;
|
552
|
-
case 'itempreviousicon':
|
553
|
-
this.itemPreviousIconTemplate = item.template;
|
554
|
-
break;
|
555
|
-
case 'previousthumbnailicon':
|
556
|
-
this.previousThumbnailIconTemplate = item.template;
|
557
|
-
break;
|
558
|
-
case 'nextthumbnailicon':
|
559
|
-
this.nextThumbnailIconTemplate = item.template;
|
560
|
-
break;
|
561
|
-
case 'caption':
|
562
|
-
this.captionFacet = item.template;
|
563
|
-
break;
|
564
|
-
}
|
565
|
-
});
|
566
|
-
}
|
567
|
-
ngOnChanges(simpleChanges) {
|
568
|
-
super.ngOnChanges(simpleChanges);
|
569
|
-
if (simpleChanges.value && simpleChanges.value.currentValue?.length < this.numVisible) {
|
570
|
-
this.numVisibleLimit = simpleChanges.value.currentValue.length;
|
571
|
-
}
|
572
|
-
else {
|
573
|
-
this.numVisibleLimit = 0;
|
574
|
-
}
|
575
|
-
}
|
576
|
-
onMaskHide() {
|
577
|
-
this.visible = false;
|
578
|
-
this.visibleChange.emit(false);
|
579
|
-
}
|
580
|
-
onActiveItemChange(index) {
|
581
|
-
if (this.activeIndex !== index) {
|
582
|
-
this.activeIndex = index;
|
583
|
-
this.activeIndexChange.emit(index);
|
584
|
-
}
|
585
|
-
}
|
586
|
-
onAnimationStart(event) {
|
587
|
-
switch (event.toState) {
|
588
|
-
case 'visible':
|
589
|
-
this.enableModality();
|
590
|
-
setTimeout(() => {
|
591
|
-
focus(findSingle(this.container.nativeElement, '[data-pc-section="closebutton"]'));
|
592
|
-
}, 25);
|
593
|
-
break;
|
594
|
-
case 'void':
|
595
|
-
addClass(this.mask?.nativeElement, 'p-overlay-mask-leave');
|
596
|
-
break;
|
597
|
-
}
|
598
|
-
}
|
599
|
-
onAnimationEnd(event) {
|
600
|
-
switch (event.toState) {
|
601
|
-
case 'void':
|
602
|
-
this.disableModality();
|
603
|
-
break;
|
604
|
-
}
|
605
|
-
}
|
606
|
-
enableModality() {
|
607
|
-
blockBodyScroll();
|
608
|
-
this.cd.markForCheck();
|
609
|
-
if (this.mask) {
|
610
|
-
ZIndexUtils.set('modal', this.mask.nativeElement, this.baseZIndex || this.config.zIndex.modal);
|
611
|
-
}
|
612
|
-
}
|
613
|
-
disableModality() {
|
614
|
-
unblockBodyScroll();
|
615
|
-
this.maskVisible = false;
|
616
|
-
this.cd.markForCheck();
|
617
|
-
if (this.mask) {
|
618
|
-
ZIndexUtils.clear(this.mask.nativeElement);
|
619
|
-
}
|
620
|
-
}
|
621
|
-
ngOnDestroy() {
|
622
|
-
if (this.fullScreen) {
|
623
|
-
removeClass(this.document.body, 'p-overflow-hidden');
|
624
|
-
}
|
625
|
-
if (this.mask) {
|
626
|
-
this.disableModality();
|
627
|
-
}
|
628
|
-
}
|
629
|
-
static ɵfac = function Galleria_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Galleria)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
630
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Galleria, selectors: [["p-galleria"]], viewQuery: function Galleria_Query(rf, ctx) { if (rf & 1) {
|
631
|
-
i0.ɵɵviewQuery(_c0, 5);
|
632
|
-
i0.ɵɵviewQuery(_c1, 5);
|
633
|
-
} if (rf & 2) {
|
634
|
-
let _t;
|
635
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.mask = _t.first);
|
636
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);
|
637
|
-
} }, inputs: { activeIndex: "activeIndex", fullScreen: [2, "fullScreen", "fullScreen", booleanAttribute], id: "id", value: "value", numVisible: [2, "numVisible", "numVisible", numberAttribute], responsiveOptions: "responsiveOptions", showItemNavigators: [2, "showItemNavigators", "showItemNavigators", booleanAttribute], showThumbnailNavigators: [2, "showThumbnailNavigators", "showThumbnailNavigators", booleanAttribute], showItemNavigatorsOnHover: [2, "showItemNavigatorsOnHover", "showItemNavigatorsOnHover", booleanAttribute], changeItemOnIndicatorHover: [2, "changeItemOnIndicatorHover", "changeItemOnIndicatorHover", booleanAttribute], circular: [2, "circular", "circular", booleanAttribute], autoPlay: [2, "autoPlay", "autoPlay", booleanAttribute], shouldStopAutoplayByClick: [2, "shouldStopAutoplayByClick", "shouldStopAutoplayByClick", booleanAttribute], transitionInterval: [2, "transitionInterval", "transitionInterval", numberAttribute], showThumbnails: [2, "showThumbnails", "showThumbnails", booleanAttribute], thumbnailsPosition: "thumbnailsPosition", verticalThumbnailViewPortHeight: "verticalThumbnailViewPortHeight", showIndicators: [2, "showIndicators", "showIndicators", booleanAttribute], showIndicatorsOnItem: [2, "showIndicatorsOnItem", "showIndicatorsOnItem", booleanAttribute], indicatorsPosition: "indicatorsPosition", baseZIndex: [2, "baseZIndex", "baseZIndex", numberAttribute], maskClass: "maskClass", containerClass: "containerClass", containerStyle: "containerStyle", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", visible: "visible" }, outputs: { activeIndexChange: "activeIndexChange", visibleChange: "visibleChange" }, features: [i0.ɵɵProvidersFeature([GalleriaStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [["windowed", ""], ["container", ""], ["mask", ""], [4, "ngIf", "ngIfElse"], [3, "ngClass", "class", 4, "ngIf"], [3, "ngClass"], [3, "value", "activeIndex", "numVisible", "ngStyle", "fullScreen", "maskHide", "activeItemChange", 4, "ngIf"], [3, "maskHide", "activeItemChange", "value", "activeIndex", "numVisible", "ngStyle", "fullScreen"], [3, "activeItemChange", "value", "activeIndex", "numVisible"]], template: function Galleria_Template(rf, ctx) { if (rf & 1) {
|
638
|
-
i0.ɵɵtemplate(0, Galleria_div_0_Template, 3, 1, "div", 3)(1, Galleria_ng_template_1_Template, 1, 3, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
639
|
-
} if (rf & 2) {
|
640
|
-
const windowed_r4 = i0.ɵɵreference(2);
|
641
|
-
i0.ɵɵproperty("ngIf", ctx.fullScreen)("ngIfElse", windowed_r4);
|
642
|
-
} }, dependencies: () => [i1.NgClass, i1.NgIf, i1.NgStyle, GalleriaContent], encapsulation: 2, data: { animation: [
|
643
|
-
trigger('animation', [
|
644
|
-
transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),
|
645
|
-
transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])
|
646
|
-
])
|
647
|
-
] }, changeDetection: 0 });
|
648
|
-
}
|
649
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Galleria, [{
|
650
|
-
type: Component,
|
651
|
-
args: [{
|
652
|
-
selector: 'p-galleria',
|
653
|
-
standalone: false,
|
654
|
-
template: `
|
655
|
-
<div *ngIf="fullScreen; else windowed" #container>
|
656
|
-
<div *ngIf="maskVisible" #mask [ngClass]="{ 'p-galleria-mask p-overlay-mask p-overlay-mask-enter': true }" [class]="maskClass" [attr.role]="fullScreen ? 'dialog' : 'region'" [attr.aria-modal]="fullScreen ? 'true' : undefined">
|
657
|
-
<p-galleriaContent
|
658
|
-
*ngIf="visible"
|
659
|
-
[@animation]="{
|
660
|
-
value: 'visible',
|
661
|
-
params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions }
|
662
|
-
}"
|
663
|
-
(@animation.start)="onAnimationStart($event)"
|
664
|
-
(@animation.done)="onAnimationEnd($event)"
|
665
|
-
[value]="value"
|
666
|
-
[activeIndex]="activeIndex"
|
667
|
-
[numVisible]="numVisibleLimit || numVisible"
|
668
|
-
(maskHide)="onMaskHide()"
|
669
|
-
(activeItemChange)="onActiveItemChange($event)"
|
670
|
-
[ngStyle]="containerStyle"
|
671
|
-
[fullScreen]="fullScreen"
|
672
|
-
></p-galleriaContent>
|
673
|
-
</div>
|
674
|
-
</div>
|
675
|
-
|
676
|
-
<ng-template #windowed>
|
677
|
-
<p-galleriaContent [value]="value" [activeIndex]="activeIndex" [numVisible]="numVisibleLimit || numVisible" (activeItemChange)="onActiveItemChange($event)"></p-galleriaContent>
|
678
|
-
</ng-template>
|
679
|
-
`,
|
680
|
-
animations: [
|
681
|
-
trigger('animation', [
|
682
|
-
transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),
|
683
|
-
transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])
|
684
|
-
])
|
685
|
-
],
|
686
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
687
|
-
encapsulation: ViewEncapsulation.None,
|
688
|
-
providers: [GalleriaStyle]
|
689
|
-
}]
|
690
|
-
}], () => [{ type: undefined, decorators: [{
|
691
|
-
type: Inject,
|
692
|
-
args: [PLATFORM_ID]
|
693
|
-
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], { activeIndex: [{
|
694
|
-
type: Input
|
695
|
-
}], fullScreen: [{
|
696
|
-
type: Input,
|
697
|
-
args: [{ transform: booleanAttribute }]
|
698
|
-
}], id: [{
|
699
|
-
type: Input
|
700
|
-
}], value: [{
|
701
|
-
type: Input
|
702
|
-
}], numVisible: [{
|
703
|
-
type: Input,
|
704
|
-
args: [{ transform: numberAttribute }]
|
705
|
-
}], responsiveOptions: [{
|
706
|
-
type: Input
|
707
|
-
}], showItemNavigators: [{
|
708
|
-
type: Input,
|
709
|
-
args: [{ transform: booleanAttribute }]
|
710
|
-
}], showThumbnailNavigators: [{
|
711
|
-
type: Input,
|
712
|
-
args: [{ transform: booleanAttribute }]
|
713
|
-
}], showItemNavigatorsOnHover: [{
|
714
|
-
type: Input,
|
715
|
-
args: [{ transform: booleanAttribute }]
|
716
|
-
}], changeItemOnIndicatorHover: [{
|
717
|
-
type: Input,
|
718
|
-
args: [{ transform: booleanAttribute }]
|
719
|
-
}], circular: [{
|
720
|
-
type: Input,
|
721
|
-
args: [{ transform: booleanAttribute }]
|
722
|
-
}], autoPlay: [{
|
723
|
-
type: Input,
|
724
|
-
args: [{ transform: booleanAttribute }]
|
725
|
-
}], shouldStopAutoplayByClick: [{
|
726
|
-
type: Input,
|
727
|
-
args: [{ transform: booleanAttribute }]
|
728
|
-
}], transitionInterval: [{
|
729
|
-
type: Input,
|
730
|
-
args: [{ transform: numberAttribute }]
|
731
|
-
}], showThumbnails: [{
|
732
|
-
type: Input,
|
733
|
-
args: [{ transform: booleanAttribute }]
|
734
|
-
}], thumbnailsPosition: [{
|
735
|
-
type: Input
|
736
|
-
}], verticalThumbnailViewPortHeight: [{
|
737
|
-
type: Input
|
738
|
-
}], showIndicators: [{
|
739
|
-
type: Input,
|
740
|
-
args: [{ transform: booleanAttribute }]
|
741
|
-
}], showIndicatorsOnItem: [{
|
742
|
-
type: Input,
|
743
|
-
args: [{ transform: booleanAttribute }]
|
744
|
-
}], indicatorsPosition: [{
|
745
|
-
type: Input
|
746
|
-
}], baseZIndex: [{
|
747
|
-
type: Input,
|
748
|
-
args: [{ transform: numberAttribute }]
|
749
|
-
}], maskClass: [{
|
750
|
-
type: Input
|
751
|
-
}], containerClass: [{
|
752
|
-
type: Input
|
753
|
-
}], containerStyle: [{
|
754
|
-
type: Input
|
755
|
-
}], showTransitionOptions: [{
|
756
|
-
type: Input
|
757
|
-
}], hideTransitionOptions: [{
|
758
|
-
type: Input
|
759
|
-
}], visible: [{
|
760
|
-
type: Input
|
761
|
-
}], activeIndexChange: [{
|
762
|
-
type: Output
|
763
|
-
}], visibleChange: [{
|
764
|
-
type: Output
|
765
|
-
}], mask: [{
|
766
|
-
type: ViewChild,
|
767
|
-
args: ['mask']
|
768
|
-
}], container: [{
|
769
|
-
type: ViewChild,
|
770
|
-
args: ['container']
|
771
|
-
}] }); })();
|
772
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Galleria, { className: "Galleria" }); })();
|
773
|
-
export class GalleriaContent extends BaseComponent {
|
774
|
-
galleria;
|
775
|
-
cd;
|
776
|
-
differs;
|
777
|
-
elementRef;
|
778
|
-
get activeIndex() {
|
779
|
-
return this._activeIndex;
|
780
|
-
}
|
781
|
-
set activeIndex(activeIndex) {
|
782
|
-
this._activeIndex = activeIndex;
|
783
|
-
}
|
784
|
-
value = [];
|
785
|
-
numVisible;
|
786
|
-
fullScreen;
|
787
|
-
maskHide = new EventEmitter();
|
788
|
-
activeItemChange = new EventEmitter();
|
789
|
-
closeButton;
|
790
|
-
id;
|
791
|
-
_activeIndex = 0;
|
792
|
-
slideShowActive = true;
|
793
|
-
interval;
|
794
|
-
styleClass;
|
795
|
-
differ;
|
796
|
-
constructor(galleria, cd, differs, elementRef) {
|
797
|
-
super();
|
798
|
-
this.galleria = galleria;
|
799
|
-
this.cd = cd;
|
800
|
-
this.differs = differs;
|
801
|
-
this.elementRef = elementRef;
|
802
|
-
this.id = this.galleria.id || uuid('pn_id_');
|
803
|
-
this.differ = this.differs.find(this.galleria).create();
|
804
|
-
}
|
805
|
-
// For custom fullscreen
|
806
|
-
handleFullscreenChange(event) {
|
807
|
-
if (document?.fullscreenElement === this.elementRef.nativeElement?.children[0]) {
|
808
|
-
this.fullScreen = true;
|
809
|
-
}
|
810
|
-
else {
|
811
|
-
this.fullScreen = false;
|
812
|
-
}
|
813
|
-
}
|
814
|
-
ngDoCheck() {
|
815
|
-
if (isPlatformBrowser(this.galleria.platformId)) {
|
816
|
-
const changes = this.differ.diff(this.galleria);
|
817
|
-
if (changes && changes.forEachItem.length > 0) {
|
818
|
-
// Because we change the properties of the parent component,
|
819
|
-
// and the children take our entity from the injector.
|
820
|
-
// We can tell the children to redraw themselves when we change the properties of the parent component.
|
821
|
-
// Since we have an onPush strategy
|
822
|
-
this.cd.markForCheck();
|
823
|
-
}
|
824
|
-
}
|
825
|
-
}
|
826
|
-
galleriaClass() {
|
827
|
-
const thumbnailsPosClass = this.galleria.showThumbnails && this.getPositionClass('p-galleria-thumbnails', this.galleria.thumbnailsPosition);
|
828
|
-
const indicatorPosClass = this.galleria.showIndicators && this.getPositionClass('p-galleria-indicators', this.galleria.indicatorsPosition);
|
829
|
-
return (this.galleria.containerClass ? this.galleria.containerClass + ' ' : '') + (thumbnailsPosClass ? thumbnailsPosClass + ' ' : '') + (indicatorPosClass ? indicatorPosClass + ' ' : '');
|
830
|
-
}
|
831
|
-
startSlideShow() {
|
832
|
-
if (isPlatformBrowser(this.galleria.platformId)) {
|
833
|
-
this.interval = setInterval(() => {
|
834
|
-
let activeIndex = this.galleria.circular && this.value.length - 1 === this.activeIndex ? 0 : this.activeIndex + 1;
|
835
|
-
this.onActiveIndexChange(activeIndex);
|
836
|
-
this.activeIndex = activeIndex;
|
837
|
-
}, this.galleria.transitionInterval);
|
838
|
-
this.slideShowActive = true;
|
839
|
-
}
|
840
|
-
}
|
841
|
-
stopSlideShow() {
|
842
|
-
if (this.galleria.autoPlay && !this.galleria.shouldStopAutoplayByClick) {
|
843
|
-
return;
|
844
|
-
}
|
845
|
-
if (this.interval) {
|
846
|
-
clearInterval(this.interval);
|
847
|
-
}
|
848
|
-
this.slideShowActive = false;
|
849
|
-
}
|
850
|
-
getPositionClass(preClassName, position) {
|
851
|
-
const positions = ['top', 'left', 'bottom', 'right'];
|
852
|
-
const pos = positions.find((item) => item === position);
|
853
|
-
return pos ? `${preClassName}-${pos}` : '';
|
854
|
-
}
|
855
|
-
isVertical() {
|
856
|
-
return this.galleria.thumbnailsPosition === 'left' || this.galleria.thumbnailsPosition === 'right';
|
857
|
-
}
|
858
|
-
onActiveIndexChange(index) {
|
859
|
-
if (this.activeIndex !== index) {
|
860
|
-
this.activeIndex = index;
|
861
|
-
this.activeItemChange.emit(this.activeIndex);
|
862
|
-
}
|
863
|
-
}
|
864
|
-
closeAriaLabel() {
|
865
|
-
return this.config.translation.aria ? this.config.translation.aria.close : undefined;
|
866
|
-
}
|
867
|
-
static ɵfac = function GalleriaContent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GalleriaContent)(i0.ɵɵdirectiveInject(Galleria), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.KeyValueDiffers), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
868
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GalleriaContent, selectors: [["p-galleriaContent"]], viewQuery: function GalleriaContent_Query(rf, ctx) { if (rf & 1) {
|
869
|
-
i0.ɵɵviewQuery(_c5, 5);
|
870
|
-
} if (rf & 2) {
|
871
|
-
let _t;
|
872
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.closeButton = _t.first);
|
873
|
-
} }, hostBindings: function GalleriaContent_HostBindings(rf, ctx) { if (rf & 1) {
|
874
|
-
i0.ɵɵlistener("fullscreenchange", function GalleriaContent_fullscreenchange_HostBindingHandler($event) { return ctx.handleFullscreenChange($event); }, false, i0.ɵɵresolveDocument);
|
875
|
-
} }, inputs: { activeIndex: "activeIndex", value: "value", numVisible: [2, "numVisible", "numVisible", numberAttribute], fullScreen: [2, "fullScreen", "fullScreen", booleanAttribute] }, outputs: { maskHide: "maskHide", activeItemChange: "activeItemChange" }, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["pFocusTrap", "", 3, "ngClass", "ngStyle", "class", "pFocusTrapDisabled", 4, "ngIf"], ["pFocusTrap", "", 3, "ngClass", "ngStyle", "pFocusTrapDisabled"], ["type", "button", "class", "p-galleria-close-button", 3, "click", 4, "ngIf"], ["class", "p-galleria-header", 4, "ngIf"], [1, "p-galleria-content"], [3, "onActiveIndexChange", "startSlideShow", "stopSlideShow", "id", "value", "activeIndex", "circular", "templates", "showIndicators", "changeItemOnIndicatorHover", "indicatorFacet", "captionFacet", "showItemNavigators", "autoPlay", "slideShowActive"], [3, "containerId", "value", "activeIndex", "templates", "numVisible", "responsiveOptions", "circular", "isVertical", "contentHeight", "showThumbnailNavigators", "slideShowActive", "onActiveIndexChange", "stopSlideShow", 4, "ngIf"], ["class", "p-galleria-footer", 4, "ngIf"], ["type", "button", 1, "p-galleria-close-button", 3, "click"], [3, "styleClass", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass"], [1, "p-galleria-header"], ["type", "header", 3, "templates"], [3, "onActiveIndexChange", "stopSlideShow", "containerId", "value", "activeIndex", "templates", "numVisible", "responsiveOptions", "circular", "isVertical", "contentHeight", "showThumbnailNavigators", "slideShowActive"], [1, "p-galleria-footer"], ["type", "footer", 3, "templates"]], template: function GalleriaContent_Template(rf, ctx) { if (rf & 1) {
|
876
|
-
i0.ɵɵtemplate(0, GalleriaContent_div_0_Template, 7, 29, "div", 0);
|
877
|
-
} if (rf & 2) {
|
878
|
-
i0.ɵɵproperty("ngIf", ctx.value && ctx.value.length > 0);
|
879
|
-
} }, dependencies: () => [i1.NgClass, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, TimesIcon, FocusTrap, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails], encapsulation: 2, changeDetection: 0 });
|
880
|
-
}
|
881
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GalleriaContent, [{
|
882
|
-
type: Component,
|
883
|
-
args: [{
|
884
|
-
selector: 'p-galleriaContent',
|
885
|
-
standalone: false,
|
886
|
-
template: `
|
887
|
-
<div
|
888
|
-
[attr.id]="id"
|
889
|
-
[attr.role]="'region'"
|
890
|
-
*ngIf="value && value.length > 0"
|
891
|
-
[ngClass]="{
|
892
|
-
'p-galleria p-component': true,
|
893
|
-
'p-galleria-fullscreen': this.galleria.fullScreen,
|
894
|
-
'p-galleria-inset-indicators': this.galleria.showIndicatorsOnItem,
|
895
|
-
'p-galleria-hover-navigators': this.galleria.showItemNavigatorsOnHover && !this.galleria.fullScreen
|
896
|
-
}"
|
897
|
-
[ngStyle]="!galleria.fullScreen ? galleria.containerStyle : {}"
|
898
|
-
[class]="galleriaClass()"
|
899
|
-
pFocusTrap
|
900
|
-
[pFocusTrapDisabled]="!fullScreen"
|
901
|
-
>
|
902
|
-
<button *ngIf="galleria.fullScreen" type="button" class="p-galleria-close-button" (click)="maskHide.emit()" [attr.aria-label]="closeAriaLabel()" [attr.data-pc-section]="'closebutton'">
|
903
|
-
<TimesIcon *ngIf="!galleria.closeIconTemplate" [styleClass]="'p-galleria-close-icon'" />
|
904
|
-
<ng-template *ngTemplateOutlet="galleria.closeIconTemplate"></ng-template>
|
905
|
-
</button>
|
906
|
-
<div *ngIf="galleria.templates && galleria.headerFacet" class="p-galleria-header">
|
907
|
-
<p-galleriaItemSlot type="header" [templates]="galleria.templates"></p-galleriaItemSlot>
|
908
|
-
</div>
|
909
|
-
<div class="p-galleria-content" [attr.aria-live]="galleria.autoPlay ? 'polite' : 'off'">
|
910
|
-
<p-galleriaItem
|
911
|
-
[id]="id"
|
912
|
-
[value]="value"
|
913
|
-
[activeIndex]="activeIndex"
|
914
|
-
[circular]="galleria.circular"
|
915
|
-
[templates]="galleria.templates"
|
916
|
-
(onActiveIndexChange)="onActiveIndexChange($event)"
|
917
|
-
[showIndicators]="galleria.showIndicators"
|
918
|
-
[changeItemOnIndicatorHover]="galleria.changeItemOnIndicatorHover"
|
919
|
-
[indicatorFacet]="galleria.indicatorFacet"
|
920
|
-
[captionFacet]="galleria.captionFacet"
|
921
|
-
[showItemNavigators]="galleria.showItemNavigators"
|
922
|
-
[autoPlay]="galleria.autoPlay"
|
923
|
-
[slideShowActive]="slideShowActive"
|
924
|
-
(startSlideShow)="startSlideShow()"
|
925
|
-
(stopSlideShow)="stopSlideShow()"
|
926
|
-
></p-galleriaItem>
|
927
|
-
|
928
|
-
<p-galleriaThumbnails
|
929
|
-
*ngIf="galleria.showThumbnails"
|
930
|
-
[containerId]="id"
|
931
|
-
[value]="value"
|
932
|
-
(onActiveIndexChange)="onActiveIndexChange($event)"
|
933
|
-
[activeIndex]="activeIndex"
|
934
|
-
[templates]="galleria.templates"
|
935
|
-
[numVisible]="numVisible"
|
936
|
-
[responsiveOptions]="galleria.responsiveOptions"
|
937
|
-
[circular]="galleria.circular"
|
938
|
-
[isVertical]="isVertical()"
|
939
|
-
[contentHeight]="galleria.verticalThumbnailViewPortHeight"
|
940
|
-
[showThumbnailNavigators]="galleria.showThumbnailNavigators"
|
941
|
-
[slideShowActive]="slideShowActive"
|
942
|
-
(stopSlideShow)="stopSlideShow()"
|
943
|
-
></p-galleriaThumbnails>
|
944
|
-
</div>
|
945
|
-
<div *ngIf="galleria.templates && galleria.footerFacet" class="p-galleria-footer">
|
946
|
-
<p-galleriaItemSlot type="footer" [templates]="galleria.templates"></p-galleriaItemSlot>
|
947
|
-
</div>
|
948
|
-
</div>
|
949
|
-
`,
|
950
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
951
|
-
}]
|
952
|
-
}], () => [{ type: Galleria }, { type: i0.ChangeDetectorRef }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }], { activeIndex: [{
|
953
|
-
type: Input
|
954
|
-
}], value: [{
|
955
|
-
type: Input
|
956
|
-
}], numVisible: [{
|
957
|
-
type: Input,
|
958
|
-
args: [{ transform: numberAttribute }]
|
959
|
-
}], fullScreen: [{
|
960
|
-
type: Input,
|
961
|
-
args: [{ transform: booleanAttribute }]
|
962
|
-
}], maskHide: [{
|
963
|
-
type: Output
|
964
|
-
}], activeItemChange: [{
|
965
|
-
type: Output
|
966
|
-
}], closeButton: [{
|
967
|
-
type: ViewChild,
|
968
|
-
args: ['closeButton']
|
969
|
-
}], handleFullscreenChange: [{
|
970
|
-
type: HostListener,
|
971
|
-
args: ['document:fullscreenchange', ['$event']]
|
972
|
-
}] }); })();
|
973
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GalleriaContent, { className: "GalleriaContent" }); })();
|
974
|
-
export class GalleriaItemSlot {
|
975
|
-
templates;
|
976
|
-
index;
|
977
|
-
get item() {
|
978
|
-
return this._item;
|
979
|
-
}
|
980
|
-
set item(item) {
|
981
|
-
this._item = item;
|
982
|
-
if (this.templates) {
|
983
|
-
this.templates.forEach((item) => {
|
984
|
-
if (item.getType() === this.type) {
|
985
|
-
switch (this.type) {
|
986
|
-
case 'item':
|
987
|
-
case 'caption':
|
988
|
-
case 'thumbnail':
|
989
|
-
this.context = { $implicit: this.item };
|
990
|
-
this.contentTemplate = item.template;
|
991
|
-
break;
|
992
|
-
}
|
993
|
-
}
|
994
|
-
});
|
995
|
-
}
|
996
|
-
}
|
997
|
-
type;
|
998
|
-
contentTemplate;
|
999
|
-
context;
|
1000
|
-
_item;
|
1001
|
-
ngAfterContentInit() {
|
1002
|
-
this.templates?.forEach((item) => {
|
1003
|
-
if (item.getType() === this.type) {
|
1004
|
-
switch (this.type) {
|
1005
|
-
case 'item':
|
1006
|
-
case 'caption':
|
1007
|
-
case 'thumbnail':
|
1008
|
-
this.context = { $implicit: this.item };
|
1009
|
-
this.contentTemplate = item.template;
|
1010
|
-
break;
|
1011
|
-
case 'indicator':
|
1012
|
-
this.context = { $implicit: this.index };
|
1013
|
-
this.contentTemplate = item.template;
|
1014
|
-
break;
|
1015
|
-
default:
|
1016
|
-
this.context = {};
|
1017
|
-
this.contentTemplate = item.template;
|
1018
|
-
break;
|
1019
|
-
}
|
1020
|
-
}
|
1021
|
-
});
|
1022
|
-
}
|
1023
|
-
static ɵfac = function GalleriaItemSlot_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GalleriaItemSlot)(); };
|
1024
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GalleriaItemSlot, selectors: [["p-galleriaItemSlot"]], inputs: { templates: "templates", index: [2, "index", "index", numberAttribute], item: "item", type: "type" }, features: [i0.ɵɵInputTransformsFeature], decls: 1, vars: 1, consts: [[4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function GalleriaItemSlot_Template(rf, ctx) { if (rf & 1) {
|
1025
|
-
i0.ɵɵtemplate(0, GalleriaItemSlot_ng_container_0_Template, 2, 2, "ng-container", 0);
|
1026
|
-
} if (rf & 2) {
|
1027
|
-
i0.ɵɵproperty("ngIf", ctx.contentTemplate);
|
1028
|
-
} }, dependencies: [i1.NgIf, i1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });
|
1029
|
-
}
|
1030
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GalleriaItemSlot, [{
|
1031
|
-
type: Component,
|
1032
|
-
args: [{
|
1033
|
-
selector: 'p-galleriaItemSlot',
|
1034
|
-
standalone: false,
|
1035
|
-
template: `
|
1036
|
-
<ng-container *ngIf="contentTemplate">
|
1037
|
-
<ng-container *ngTemplateOutlet="contentTemplate; context: context"></ng-container>
|
1038
|
-
</ng-container>
|
1039
|
-
`,
|
1040
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
1041
|
-
}]
|
1042
|
-
}], null, { templates: [{
|
1043
|
-
type: Input
|
1044
|
-
}], index: [{
|
1045
|
-
type: Input,
|
1046
|
-
args: [{ transform: numberAttribute }]
|
1047
|
-
}], item: [{
|
1048
|
-
type: Input
|
1049
|
-
}], type: [{
|
1050
|
-
type: Input
|
1051
|
-
}] }); })();
|
1052
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GalleriaItemSlot, { className: "GalleriaItemSlot" }); })();
|
1053
|
-
export class GalleriaItem {
|
1054
|
-
galleria;
|
1055
|
-
id;
|
1056
|
-
circular = false;
|
1057
|
-
value;
|
1058
|
-
showItemNavigators = false;
|
1059
|
-
showIndicators = true;
|
1060
|
-
slideShowActive = true;
|
1061
|
-
changeItemOnIndicatorHover = true;
|
1062
|
-
autoPlay = false;
|
1063
|
-
templates;
|
1064
|
-
indicatorFacet;
|
1065
|
-
captionFacet;
|
1066
|
-
startSlideShow = new EventEmitter();
|
1067
|
-
stopSlideShow = new EventEmitter();
|
1068
|
-
onActiveIndexChange = new EventEmitter();
|
1069
|
-
get activeIndex() {
|
1070
|
-
return this._activeIndex;
|
1071
|
-
}
|
1072
|
-
set activeIndex(activeIndex) {
|
1073
|
-
this._activeIndex = activeIndex;
|
1074
|
-
}
|
1075
|
-
get activeItem() {
|
1076
|
-
return this.value && this.value[this._activeIndex];
|
1077
|
-
}
|
1078
|
-
_activeIndex = 0;
|
1079
|
-
leftButtonFocused = false;
|
1080
|
-
rightButtonFocused = false;
|
1081
|
-
constructor(galleria) {
|
1082
|
-
this.galleria = galleria;
|
1083
|
-
}
|
1084
|
-
ngOnChanges({ autoPlay }) {
|
1085
|
-
if (autoPlay?.currentValue) {
|
1086
|
-
this.startSlideShow.emit();
|
1087
|
-
}
|
1088
|
-
if (autoPlay && autoPlay.currentValue === false) {
|
1089
|
-
this.stopTheSlideShow();
|
1090
|
-
}
|
1091
|
-
}
|
1092
|
-
next() {
|
1093
|
-
let nextItemIndex = this.activeIndex + 1;
|
1094
|
-
let activeIndex = this.circular && this.value.length - 1 === this.activeIndex ? 0 : nextItemIndex;
|
1095
|
-
this.onActiveIndexChange.emit(activeIndex);
|
1096
|
-
}
|
1097
|
-
prev() {
|
1098
|
-
let prevItemIndex = this.activeIndex !== 0 ? this.activeIndex - 1 : 0;
|
1099
|
-
let activeIndex = this.circular && this.activeIndex === 0 ? this.value.length - 1 : prevItemIndex;
|
1100
|
-
this.onActiveIndexChange.emit(activeIndex);
|
1101
|
-
}
|
1102
|
-
onButtonFocus(pos) {
|
1103
|
-
if (pos === 'left') {
|
1104
|
-
this.leftButtonFocused = true;
|
1105
|
-
}
|
1106
|
-
else
|
1107
|
-
this.rightButtonFocused = true;
|
1108
|
-
}
|
1109
|
-
onButtonBlur(pos) {
|
1110
|
-
if (pos === 'left') {
|
1111
|
-
this.leftButtonFocused = false;
|
1112
|
-
}
|
1113
|
-
else
|
1114
|
-
this.rightButtonFocused = false;
|
1115
|
-
}
|
1116
|
-
stopTheSlideShow() {
|
1117
|
-
if (this.slideShowActive && this.stopSlideShow) {
|
1118
|
-
this.stopSlideShow.emit();
|
1119
|
-
}
|
1120
|
-
}
|
1121
|
-
navForward(e) {
|
1122
|
-
this.stopTheSlideShow();
|
1123
|
-
this.next();
|
1124
|
-
if (e && e.cancelable) {
|
1125
|
-
e.preventDefault();
|
1126
|
-
}
|
1127
|
-
}
|
1128
|
-
navBackward(e) {
|
1129
|
-
this.stopTheSlideShow();
|
1130
|
-
this.prev();
|
1131
|
-
if (e && e.cancelable) {
|
1132
|
-
e.preventDefault();
|
1133
|
-
}
|
1134
|
-
}
|
1135
|
-
onIndicatorClick(index) {
|
1136
|
-
this.stopTheSlideShow();
|
1137
|
-
this.onActiveIndexChange.emit(index);
|
1138
|
-
}
|
1139
|
-
onIndicatorMouseEnter(index) {
|
1140
|
-
if (this.changeItemOnIndicatorHover) {
|
1141
|
-
this.stopTheSlideShow();
|
1142
|
-
this.onActiveIndexChange.emit(index);
|
1143
|
-
}
|
1144
|
-
}
|
1145
|
-
onIndicatorKeyDown(event, index) {
|
1146
|
-
switch (event.code) {
|
1147
|
-
case 'Enter':
|
1148
|
-
case 'Space':
|
1149
|
-
this.stopTheSlideShow();
|
1150
|
-
this.onActiveIndexChange.emit(index);
|
1151
|
-
event.preventDefault();
|
1152
|
-
break;
|
1153
|
-
case 'ArrowDown':
|
1154
|
-
case 'ArrowUp':
|
1155
|
-
event.preventDefault();
|
1156
|
-
break;
|
1157
|
-
default:
|
1158
|
-
break;
|
1159
|
-
}
|
1160
|
-
}
|
1161
|
-
isNavForwardDisabled() {
|
1162
|
-
return !this.circular && this.activeIndex === this.value.length - 1;
|
1163
|
-
}
|
1164
|
-
isNavBackwardDisabled() {
|
1165
|
-
return !this.circular && this.activeIndex === 0;
|
1166
|
-
}
|
1167
|
-
isIndicatorItemActive(index) {
|
1168
|
-
return this.activeIndex === index;
|
1169
|
-
}
|
1170
|
-
ariaSlideLabel() {
|
1171
|
-
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.slide : undefined;
|
1172
|
-
}
|
1173
|
-
ariaSlideNumber(value) {
|
1174
|
-
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.slideNumber.replace(/{slideNumber}/g, value) : undefined;
|
1175
|
-
}
|
1176
|
-
ariaPageLabel(value) {
|
1177
|
-
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;
|
1178
|
-
}
|
1179
|
-
static ɵfac = function GalleriaItem_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GalleriaItem)(i0.ɵɵdirectiveInject(Galleria)); };
|
1180
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GalleriaItem, selectors: [["p-galleriaItem"]], hostAttrs: [1, "p-galleria-items-container"], inputs: { id: "id", circular: [2, "circular", "circular", booleanAttribute], value: "value", showItemNavigators: [2, "showItemNavigators", "showItemNavigators", booleanAttribute], showIndicators: [2, "showIndicators", "showIndicators", booleanAttribute], slideShowActive: [2, "slideShowActive", "slideShowActive", booleanAttribute], changeItemOnIndicatorHover: [2, "changeItemOnIndicatorHover", "changeItemOnIndicatorHover", booleanAttribute], autoPlay: [2, "autoPlay", "autoPlay", booleanAttribute], templates: "templates", indicatorFacet: "indicatorFacet", captionFacet: "captionFacet", activeIndex: "activeIndex" }, outputs: { startSlideShow: "startSlideShow", stopSlideShow: "stopSlideShow", onActiveIndexChange: "onActiveIndexChange" }, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature], decls: 7, vars: 9, consts: [[1, "p-galleria-items"], ["type", "button", "role", "navigation", 3, "ngClass", "disabled", "click", "focus", "blur", 4, "ngIf"], ["role", "group", 1, "p-galleria-item", 3, "id"], ["type", "item", 1, "p-galleria-item", 3, "item", "templates"], ["class", "p-galleria-caption", 4, "ngIf"], ["class", "p-galleria-indicator-list", 4, "ngIf"], ["type", "button", "role", "navigation", 3, "click", "focus", "blur", "ngClass", "disabled"], [3, "styleClass", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass"], [1, "p-galleria-caption"], ["type", "caption", 3, "item", "templates"], [1, "p-galleria-indicator-list"], ["tabindex", "0", 3, "ngClass", "click", "mouseenter", "keydown", 4, "ngFor", "ngForOf"], ["tabindex", "0", 3, "click", "mouseenter", "keydown", "ngClass"], ["type", "button", "tabIndex", "-1", "class", "p-galleria-indicator-button", 4, "ngIf"], ["type", "indicator", 3, "index", "templates"], ["type", "button", "tabIndex", "-1", 1, "p-galleria-indicator-button"]], template: function GalleriaItem_Template(rf, ctx) { if (rf & 1) {
|
1181
|
-
i0.ɵɵelementStart(0, "div", 0);
|
1182
|
-
i0.ɵɵtemplate(1, GalleriaItem_button_1_Template, 3, 6, "button", 1);
|
1183
|
-
i0.ɵɵelementStart(2, "div", 2);
|
1184
|
-
i0.ɵɵelement(3, "p-galleriaItemSlot", 3);
|
1185
|
-
i0.ɵɵelementEnd();
|
1186
|
-
i0.ɵɵtemplate(4, GalleriaItem_button_4_Template, 3, 6, "button", 1)(5, GalleriaItem_div_5_Template, 2, 2, "div", 4);
|
1187
|
-
i0.ɵɵelementEnd();
|
1188
|
-
i0.ɵɵtemplate(6, GalleriaItem_ul_6_Template, 2, 1, "ul", 5);
|
1189
|
-
} if (rf & 2) {
|
1190
|
-
i0.ɵɵadvance();
|
1191
|
-
i0.ɵɵproperty("ngIf", ctx.showItemNavigators);
|
1192
|
-
i0.ɵɵadvance();
|
1193
|
-
i0.ɵɵproperty("id", ctx.id + "_item_" + ctx.activeIndex);
|
1194
|
-
i0.ɵɵattribute("aria-label", ctx.ariaSlideNumber(ctx.activeIndex + 1))("aria-roledescription", ctx.ariaSlideLabel());
|
1195
|
-
i0.ɵɵadvance();
|
1196
|
-
i0.ɵɵproperty("item", ctx.activeItem)("templates", ctx.templates);
|
1197
|
-
i0.ɵɵadvance();
|
1198
|
-
i0.ɵɵproperty("ngIf", ctx.showItemNavigators);
|
1199
|
-
i0.ɵɵadvance();
|
1200
|
-
i0.ɵɵproperty("ngIf", ctx.captionFacet);
|
1201
|
-
i0.ɵɵadvance();
|
1202
|
-
i0.ɵɵproperty("ngIf", ctx.showIndicators);
|
1203
|
-
} }, dependencies: () => [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, ChevronRightIcon, ChevronLeftIcon, GalleriaItemSlot], encapsulation: 2, changeDetection: 0 });
|
1204
|
-
}
|
1205
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GalleriaItem, [{
|
1206
|
-
type: Component,
|
1207
|
-
args: [{
|
1208
|
-
selector: 'p-galleriaItem',
|
1209
|
-
standalone: false,
|
1210
|
-
template: `
|
1211
|
-
<div class="p-galleria-items">
|
1212
|
-
<button
|
1213
|
-
*ngIf="showItemNavigators"
|
1214
|
-
type="button"
|
1215
|
-
role="navigation"
|
1216
|
-
[ngClass]="{ 'p-galleria-prev-button p-galleria-nav-button': true, 'p-disabled': this.isNavBackwardDisabled() }"
|
1217
|
-
(click)="navBackward($event)"
|
1218
|
-
[disabled]="isNavBackwardDisabled()"
|
1219
|
-
(focus)="onButtonFocus('left')"
|
1220
|
-
(blur)="onButtonBlur('left')"
|
1221
|
-
>
|
1222
|
-
<ChevronLeftIcon *ngIf="!galleria.itemPreviousIconTemplate" [styleClass]="'p-galleria-prev-icon'" />
|
1223
|
-
<ng-template *ngTemplateOutlet="galleria.itemPreviousIconTemplate"></ng-template>
|
1224
|
-
</button>
|
1225
|
-
<div [id]="id + '_item_' + activeIndex" role="group" class="p-galleria-item" [attr.aria-label]="ariaSlideNumber(activeIndex + 1)" [attr.aria-roledescription]="ariaSlideLabel()">
|
1226
|
-
<p-galleriaItemSlot type="item" [item]="activeItem" [templates]="templates" class="p-galleria-item"></p-galleriaItemSlot>
|
1227
|
-
</div>
|
1228
|
-
<button
|
1229
|
-
*ngIf="showItemNavigators"
|
1230
|
-
type="button"
|
1231
|
-
[ngClass]="{ 'p-galleria-next-button p-galleria-nav-button': true, 'p-disabled': this.isNavForwardDisabled() }"
|
1232
|
-
(click)="navForward($event)"
|
1233
|
-
[disabled]="isNavForwardDisabled()"
|
1234
|
-
role="navigation"
|
1235
|
-
(focus)="onButtonFocus('right')"
|
1236
|
-
(blur)="onButtonBlur('right')"
|
1237
|
-
>
|
1238
|
-
<ChevronRightIcon *ngIf="!galleria.itemNextIconTemplate" [styleClass]="'p-galleria-next-icon'" />
|
1239
|
-
<ng-template *ngTemplateOutlet="galleria.itemNextIconTemplate"></ng-template>
|
1240
|
-
</button>
|
1241
|
-
<div class="p-galleria-caption" *ngIf="captionFacet">
|
1242
|
-
<p-galleriaItemSlot type="caption" [item]="activeItem" [templates]="templates"></p-galleriaItemSlot>
|
1243
|
-
</div>
|
1244
|
-
</div>
|
1245
|
-
<ul *ngIf="showIndicators" class="p-galleria-indicator-list">
|
1246
|
-
<li
|
1247
|
-
*ngFor="let item of value; let index = index"
|
1248
|
-
tabindex="0"
|
1249
|
-
(click)="onIndicatorClick(index)"
|
1250
|
-
(mouseenter)="onIndicatorMouseEnter(index)"
|
1251
|
-
(keydown)="onIndicatorKeyDown($event, index)"
|
1252
|
-
[ngClass]="{ 'p-galleria-indicator': true, 'p-galleria-indicator-active': isIndicatorItemActive(index) }"
|
1253
|
-
[attr.aria-label]="ariaPageLabel(index + 1)"
|
1254
|
-
[attr.aria-selected]="activeIndex === index"
|
1255
|
-
[attr.aria-controls]="id + '_item_' + index"
|
1256
|
-
>
|
1257
|
-
<button type="button" tabIndex="-1" class="p-galleria-indicator-button" *ngIf="!indicatorFacet"></button>
|
1258
|
-
<p-galleriaItemSlot type="indicator" [index]="index" [templates]="templates"></p-galleriaItemSlot>
|
1259
|
-
</li>
|
1260
|
-
</ul>
|
1261
|
-
`,
|
1262
|
-
host: {
|
1263
|
-
class: 'p-galleria-items-container'
|
1264
|
-
},
|
1265
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
1266
|
-
}]
|
1267
|
-
}], () => [{ type: Galleria }], { id: [{
|
1268
|
-
type: Input
|
1269
|
-
}], circular: [{
|
1270
|
-
type: Input,
|
1271
|
-
args: [{ transform: booleanAttribute }]
|
1272
|
-
}], value: [{
|
1273
|
-
type: Input
|
1274
|
-
}], showItemNavigators: [{
|
1275
|
-
type: Input,
|
1276
|
-
args: [{ transform: booleanAttribute }]
|
1277
|
-
}], showIndicators: [{
|
1278
|
-
type: Input,
|
1279
|
-
args: [{ transform: booleanAttribute }]
|
1280
|
-
}], slideShowActive: [{
|
1281
|
-
type: Input,
|
1282
|
-
args: [{ transform: booleanAttribute }]
|
1283
|
-
}], changeItemOnIndicatorHover: [{
|
1284
|
-
type: Input,
|
1285
|
-
args: [{ transform: booleanAttribute }]
|
1286
|
-
}], autoPlay: [{
|
1287
|
-
type: Input,
|
1288
|
-
args: [{ transform: booleanAttribute }]
|
1289
|
-
}], templates: [{
|
1290
|
-
type: Input
|
1291
|
-
}], indicatorFacet: [{
|
1292
|
-
type: Input
|
1293
|
-
}], captionFacet: [{
|
1294
|
-
type: Input
|
1295
|
-
}], startSlideShow: [{
|
1296
|
-
type: Output
|
1297
|
-
}], stopSlideShow: [{
|
1298
|
-
type: Output
|
1299
|
-
}], onActiveIndexChange: [{
|
1300
|
-
type: Output
|
1301
|
-
}], activeIndex: [{
|
1302
|
-
type: Input
|
1303
|
-
}] }); })();
|
1304
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GalleriaItem, { className: "GalleriaItem" }); })();
|
1305
|
-
export class GalleriaThumbnails {
|
1306
|
-
galleria;
|
1307
|
-
document;
|
1308
|
-
platformId;
|
1309
|
-
renderer;
|
1310
|
-
cd;
|
1311
|
-
containerId;
|
1312
|
-
value;
|
1313
|
-
isVertical = false;
|
1314
|
-
slideShowActive = false;
|
1315
|
-
circular = false;
|
1316
|
-
responsiveOptions;
|
1317
|
-
contentHeight = '300px';
|
1318
|
-
showThumbnailNavigators = true;
|
1319
|
-
templates;
|
1320
|
-
onActiveIndexChange = new EventEmitter();
|
1321
|
-
stopSlideShow = new EventEmitter();
|
1322
|
-
itemsContainer;
|
1323
|
-
get numVisible() {
|
1324
|
-
return this._numVisible;
|
1325
|
-
}
|
1326
|
-
set numVisible(numVisible) {
|
1327
|
-
this._numVisible = numVisible;
|
1328
|
-
this._oldNumVisible = this.d_numVisible;
|
1329
|
-
this.d_numVisible = numVisible;
|
1330
|
-
}
|
1331
|
-
get activeIndex() {
|
1332
|
-
return this._activeIndex;
|
1333
|
-
}
|
1334
|
-
set activeIndex(activeIndex) {
|
1335
|
-
this._oldactiveIndex = this._activeIndex;
|
1336
|
-
this._activeIndex = activeIndex;
|
1337
|
-
}
|
1338
|
-
index;
|
1339
|
-
startPos = null;
|
1340
|
-
thumbnailsStyle = null;
|
1341
|
-
sortedResponsiveOptions = null;
|
1342
|
-
totalShiftedItems = 0;
|
1343
|
-
page = 0;
|
1344
|
-
documentResizeListener;
|
1345
|
-
_numVisible = 0;
|
1346
|
-
d_numVisible = 0;
|
1347
|
-
_oldNumVisible = 0;
|
1348
|
-
_activeIndex = 0;
|
1349
|
-
_oldactiveIndex = 0;
|
1350
|
-
constructor(galleria, document, platformId, renderer, cd) {
|
1351
|
-
this.galleria = galleria;
|
1352
|
-
this.document = document;
|
1353
|
-
this.platformId = platformId;
|
1354
|
-
this.renderer = renderer;
|
1355
|
-
this.cd = cd;
|
1356
|
-
}
|
1357
|
-
ngOnInit() {
|
1358
|
-
if (isPlatformBrowser(this.platformId)) {
|
1359
|
-
this.createStyle();
|
1360
|
-
if (this.responsiveOptions) {
|
1361
|
-
this.bindDocumentListeners();
|
1362
|
-
}
|
1363
|
-
}
|
1364
|
-
}
|
1365
|
-
ngAfterContentChecked() {
|
1366
|
-
let totalShiftedItems = this.totalShiftedItems;
|
1367
|
-
if ((this._oldNumVisible !== this.d_numVisible || this._oldactiveIndex !== this._activeIndex) && this.itemsContainer) {
|
1368
|
-
if (this._activeIndex <= this.getMedianItemIndex()) {
|
1369
|
-
totalShiftedItems = 0;
|
1370
|
-
}
|
1371
|
-
else if (this.value.length - this.d_numVisible + this.getMedianItemIndex() < this._activeIndex) {
|
1372
|
-
totalShiftedItems = this.d_numVisible - this.value.length;
|
1373
|
-
}
|
1374
|
-
else if (this.value.length - this.d_numVisible < this._activeIndex && this.d_numVisible % 2 === 0) {
|
1375
|
-
totalShiftedItems = this._activeIndex * -1 + this.getMedianItemIndex() + 1;
|
1376
|
-
}
|
1377
|
-
else {
|
1378
|
-
totalShiftedItems = this._activeIndex * -1 + this.getMedianItemIndex();
|
1379
|
-
}
|
1380
|
-
if (totalShiftedItems !== this.totalShiftedItems) {
|
1381
|
-
this.totalShiftedItems = totalShiftedItems;
|
1382
|
-
}
|
1383
|
-
if (this.itemsContainer && this.itemsContainer.nativeElement) {
|
1384
|
-
this.itemsContainer.nativeElement.style.transform = this.isVertical ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;
|
1385
|
-
}
|
1386
|
-
if (this._oldactiveIndex !== this._activeIndex) {
|
1387
|
-
removeClass(this.itemsContainer.nativeElement, 'p-items-hidden');
|
1388
|
-
this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';
|
1389
|
-
}
|
1390
|
-
this._oldactiveIndex = this._activeIndex;
|
1391
|
-
this._oldNumVisible = this.d_numVisible;
|
1392
|
-
}
|
1393
|
-
}
|
1394
|
-
ngAfterViewInit() {
|
1395
|
-
if (isPlatformBrowser(this.platformId)) {
|
1396
|
-
this.calculatePosition();
|
1397
|
-
}
|
1398
|
-
}
|
1399
|
-
createStyle() {
|
1400
|
-
if (!this.thumbnailsStyle) {
|
1401
|
-
this.thumbnailsStyle = this.document.createElement('style');
|
1402
|
-
this.document.body.appendChild(this.thumbnailsStyle);
|
1403
|
-
}
|
1404
|
-
let innerHTML = `
|
1405
|
-
#${this.containerId} .p-galleria-thumbnail-item {
|
1406
|
-
flex: 1 0 ${100 / this.d_numVisible}%
|
1407
|
-
}
|
1408
|
-
`;
|
1409
|
-
if (this.responsiveOptions) {
|
1410
|
-
this.sortedResponsiveOptions = [...this.responsiveOptions];
|
1411
|
-
this.sortedResponsiveOptions.sort((data1, data2) => {
|
1412
|
-
const value1 = data1.breakpoint;
|
1413
|
-
const value2 = data2.breakpoint;
|
1414
|
-
let result = null;
|
1415
|
-
if (value1 == null && value2 != null)
|
1416
|
-
result = -1;
|
1417
|
-
else if (value1 != null && value2 == null)
|
1418
|
-
result = 1;
|
1419
|
-
else if (value1 == null && value2 == null)
|
1420
|
-
result = 0;
|
1421
|
-
else if (typeof value1 === 'string' && typeof value2 === 'string')
|
1422
|
-
result = value1.localeCompare(value2, undefined, { numeric: true });
|
1423
|
-
else
|
1424
|
-
result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;
|
1425
|
-
return -1 * result;
|
1426
|
-
});
|
1427
|
-
for (let i = 0; i < this.sortedResponsiveOptions.length; i++) {
|
1428
|
-
let res = this.sortedResponsiveOptions[i];
|
1429
|
-
innerHTML += `
|
1430
|
-
@media screen and (max-width: ${res.breakpoint}) {
|
1431
|
-
#${this.containerId} .p-galleria-thumbnail-item {
|
1432
|
-
flex: 1 0 ${100 / res.numVisible}%
|
1433
|
-
}
|
1434
|
-
}
|
1435
|
-
`;
|
1436
|
-
}
|
1437
|
-
}
|
1438
|
-
this.thumbnailsStyle.innerHTML = innerHTML;
|
1439
|
-
setAttribute(this.thumbnailsStyle, 'nonce', this.galleria.config?.csp()?.nonce);
|
1440
|
-
}
|
1441
|
-
calculatePosition() {
|
1442
|
-
if (isPlatformBrowser(this.platformId)) {
|
1443
|
-
if (this.itemsContainer && this.sortedResponsiveOptions) {
|
1444
|
-
let windowWidth = window.innerWidth;
|
1445
|
-
let matchedResponsiveData = {
|
1446
|
-
numVisible: this._numVisible
|
1447
|
-
};
|
1448
|
-
for (let i = 0; i < this.sortedResponsiveOptions.length; i++) {
|
1449
|
-
let res = this.sortedResponsiveOptions[i];
|
1450
|
-
if (parseInt(res.breakpoint, 10) >= windowWidth) {
|
1451
|
-
matchedResponsiveData = res;
|
1452
|
-
}
|
1453
|
-
}
|
1454
|
-
if (this.d_numVisible !== matchedResponsiveData.numVisible) {
|
1455
|
-
this.d_numVisible = matchedResponsiveData.numVisible;
|
1456
|
-
this.cd.markForCheck();
|
1457
|
-
}
|
1458
|
-
}
|
1459
|
-
}
|
1460
|
-
}
|
1461
|
-
getTabIndex(index) {
|
1462
|
-
return this.isItemActive(index) ? 0 : null;
|
1463
|
-
}
|
1464
|
-
navForward(e) {
|
1465
|
-
this.stopTheSlideShow();
|
1466
|
-
let nextItemIndex = this._activeIndex + 1;
|
1467
|
-
if (nextItemIndex + this.totalShiftedItems > this.getMedianItemIndex() && (-1 * this.totalShiftedItems < this.getTotalPageNumber() - 1 || this.circular)) {
|
1468
|
-
this.step(-1);
|
1469
|
-
}
|
1470
|
-
let activeIndex = this.circular && this.value.length - 1 === this._activeIndex ? 0 : nextItemIndex;
|
1471
|
-
this.onActiveIndexChange.emit(activeIndex);
|
1472
|
-
if (e.cancelable) {
|
1473
|
-
e.preventDefault();
|
1474
|
-
}
|
1475
|
-
}
|
1476
|
-
navBackward(e) {
|
1477
|
-
this.stopTheSlideShow();
|
1478
|
-
let prevItemIndex = this._activeIndex !== 0 ? this._activeIndex - 1 : 0;
|
1479
|
-
let diff = prevItemIndex + this.totalShiftedItems;
|
1480
|
-
if (this.d_numVisible - diff - 1 > this.getMedianItemIndex() && (-1 * this.totalShiftedItems !== 0 || this.circular)) {
|
1481
|
-
this.step(1);
|
1482
|
-
}
|
1483
|
-
let activeIndex = this.circular && this._activeIndex === 0 ? this.value.length - 1 : prevItemIndex;
|
1484
|
-
this.onActiveIndexChange.emit(activeIndex);
|
1485
|
-
if (e.cancelable) {
|
1486
|
-
e.preventDefault();
|
1487
|
-
}
|
1488
|
-
}
|
1489
|
-
onItemClick(index) {
|
1490
|
-
this.stopTheSlideShow();
|
1491
|
-
let selectedItemIndex = index;
|
1492
|
-
if (selectedItemIndex !== this._activeIndex) {
|
1493
|
-
const diff = selectedItemIndex + this.totalShiftedItems;
|
1494
|
-
let dir = 0;
|
1495
|
-
if (selectedItemIndex < this._activeIndex) {
|
1496
|
-
dir = this.d_numVisible - diff - 1 - this.getMedianItemIndex();
|
1497
|
-
if (dir > 0 && -1 * this.totalShiftedItems !== 0) {
|
1498
|
-
this.step(dir);
|
1499
|
-
}
|
1500
|
-
}
|
1501
|
-
else {
|
1502
|
-
dir = this.getMedianItemIndex() - diff;
|
1503
|
-
if (dir < 0 && -1 * this.totalShiftedItems < this.getTotalPageNumber() - 1) {
|
1504
|
-
this.step(dir);
|
1505
|
-
}
|
1506
|
-
}
|
1507
|
-
this.activeIndex = selectedItemIndex;
|
1508
|
-
this.onActiveIndexChange.emit(this.activeIndex);
|
1509
|
-
}
|
1510
|
-
}
|
1511
|
-
onThumbnailKeydown(event, index) {
|
1512
|
-
if (event.code === 'Enter' || event.code === 'Space') {
|
1513
|
-
this.onItemClick(index);
|
1514
|
-
event.preventDefault();
|
1515
|
-
}
|
1516
|
-
switch (event.code) {
|
1517
|
-
case 'ArrowRight':
|
1518
|
-
this.onRightKey();
|
1519
|
-
break;
|
1520
|
-
case 'ArrowLeft':
|
1521
|
-
this.onLeftKey();
|
1522
|
-
break;
|
1523
|
-
case 'Home':
|
1524
|
-
this.onHomeKey();
|
1525
|
-
event.preventDefault();
|
1526
|
-
break;
|
1527
|
-
case 'End':
|
1528
|
-
this.onEndKey();
|
1529
|
-
event.preventDefault();
|
1530
|
-
break;
|
1531
|
-
case 'ArrowUp':
|
1532
|
-
case 'ArrowDown':
|
1533
|
-
event.preventDefault();
|
1534
|
-
break;
|
1535
|
-
case 'Tab':
|
1536
|
-
this.onTabKey();
|
1537
|
-
break;
|
1538
|
-
default:
|
1539
|
-
break;
|
1540
|
-
}
|
1541
|
-
}
|
1542
|
-
onRightKey() {
|
1543
|
-
const indicators = find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]');
|
1544
|
-
const activeIndex = this.findFocusedIndicatorIndex();
|
1545
|
-
this.changedFocusedIndicator(activeIndex, activeIndex + 1 === indicators.length ? indicators.length - 1 : activeIndex + 1);
|
1546
|
-
}
|
1547
|
-
onLeftKey() {
|
1548
|
-
const activeIndex = this.findFocusedIndicatorIndex();
|
1549
|
-
this.changedFocusedIndicator(activeIndex, activeIndex - 1 <= 0 ? 0 : activeIndex - 1);
|
1550
|
-
}
|
1551
|
-
onHomeKey() {
|
1552
|
-
const activeIndex = this.findFocusedIndicatorIndex();
|
1553
|
-
this.changedFocusedIndicator(activeIndex, 0);
|
1554
|
-
}
|
1555
|
-
onEndKey() {
|
1556
|
-
const indicators = find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]');
|
1557
|
-
const activeIndex = this.findFocusedIndicatorIndex();
|
1558
|
-
this.changedFocusedIndicator(activeIndex, indicators.length - 1);
|
1559
|
-
}
|
1560
|
-
onTabKey() {
|
1561
|
-
const indicators = [...find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]')];
|
1562
|
-
const highlightedIndex = indicators.findIndex((ind) => getAttribute(ind, 'data-p-active') === true);
|
1563
|
-
const activeIndicator = findSingle(this.itemsContainer.nativeElement, '[tabindex="0"]');
|
1564
|
-
const activeIndex = indicators.findIndex((ind) => ind === activeIndicator.parentElement);
|
1565
|
-
indicators[activeIndex].children[0].tabIndex = '-1';
|
1566
|
-
indicators[highlightedIndex].children[0].tabIndex = '0';
|
1567
|
-
}
|
1568
|
-
findFocusedIndicatorIndex() {
|
1569
|
-
const indicators = [...find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]')];
|
1570
|
-
const activeIndicator = findSingle(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"] > [tabindex="0"]');
|
1571
|
-
return indicators.findIndex((ind) => ind === activeIndicator.parentElement);
|
1572
|
-
}
|
1573
|
-
changedFocusedIndicator(prevInd, nextInd) {
|
1574
|
-
const indicators = find(this.itemsContainer.nativeElement, '[data-pc-section="thumbnailitem"]');
|
1575
|
-
indicators[prevInd].children[0].tabIndex = '-1';
|
1576
|
-
indicators[nextInd].children[0].tabIndex = '0';
|
1577
|
-
indicators[nextInd].children[0].focus();
|
1578
|
-
}
|
1579
|
-
step(dir) {
|
1580
|
-
let totalShiftedItems = this.totalShiftedItems + dir;
|
1581
|
-
if (dir < 0 && -1 * totalShiftedItems + this.d_numVisible > this.value.length - 1) {
|
1582
|
-
totalShiftedItems = this.d_numVisible - this.value.length;
|
1583
|
-
}
|
1584
|
-
else if (dir > 0 && totalShiftedItems > 0) {
|
1585
|
-
totalShiftedItems = 0;
|
1586
|
-
}
|
1587
|
-
if (this.circular) {
|
1588
|
-
if (dir < 0 && this.value.length - 1 === this._activeIndex) {
|
1589
|
-
totalShiftedItems = 0;
|
1590
|
-
}
|
1591
|
-
else if (dir > 0 && this._activeIndex === 0) {
|
1592
|
-
totalShiftedItems = this.d_numVisible - this.value.length;
|
1593
|
-
}
|
1594
|
-
}
|
1595
|
-
if (this.itemsContainer) {
|
1596
|
-
removeClass(this.itemsContainer.nativeElement, 'p-items-hidden');
|
1597
|
-
this.itemsContainer.nativeElement.style.transform = this.isVertical ? `translate3d(0, ${totalShiftedItems * (100 / this.d_numVisible)}%, 0)` : `translate3d(${totalShiftedItems * (100 / this.d_numVisible)}%, 0, 0)`;
|
1598
|
-
this.itemsContainer.nativeElement.style.transition = 'transform 500ms ease 0s';
|
1599
|
-
}
|
1600
|
-
this.totalShiftedItems = totalShiftedItems;
|
1601
|
-
}
|
1602
|
-
stopTheSlideShow() {
|
1603
|
-
if (this.slideShowActive && this.stopSlideShow) {
|
1604
|
-
this.stopSlideShow.emit();
|
1605
|
-
}
|
1606
|
-
}
|
1607
|
-
changePageOnTouch(e, diff) {
|
1608
|
-
if (diff < 0) {
|
1609
|
-
// left
|
1610
|
-
this.navForward(e);
|
1611
|
-
}
|
1612
|
-
else {
|
1613
|
-
// right
|
1614
|
-
this.navBackward(e);
|
1615
|
-
}
|
1616
|
-
}
|
1617
|
-
getTotalPageNumber() {
|
1618
|
-
return this.value.length > this.d_numVisible ? this.value.length - this.d_numVisible + 1 : 0;
|
1619
|
-
}
|
1620
|
-
getMedianItemIndex() {
|
1621
|
-
let index = Math.floor(this.d_numVisible / 2);
|
1622
|
-
return this.d_numVisible % 2 ? index : index - 1;
|
1623
|
-
}
|
1624
|
-
onTransitionEnd() {
|
1625
|
-
if (this.itemsContainer && this.itemsContainer.nativeElement) {
|
1626
|
-
addClass(this.itemsContainer.nativeElement, 'p-items-hidden');
|
1627
|
-
this.itemsContainer.nativeElement.style.transition = '';
|
1628
|
-
}
|
1629
|
-
}
|
1630
|
-
onTouchEnd(e) {
|
1631
|
-
let touchobj = e.changedTouches[0];
|
1632
|
-
if (this.isVertical) {
|
1633
|
-
this.changePageOnTouch(e, touchobj.pageY - this.startPos.y);
|
1634
|
-
}
|
1635
|
-
else {
|
1636
|
-
this.changePageOnTouch(e, touchobj.pageX - this.startPos.x);
|
1637
|
-
}
|
1638
|
-
}
|
1639
|
-
onTouchMove(e) {
|
1640
|
-
if (e.cancelable) {
|
1641
|
-
e.preventDefault();
|
1642
|
-
}
|
1643
|
-
}
|
1644
|
-
onTouchStart(e) {
|
1645
|
-
let touchobj = e.changedTouches[0];
|
1646
|
-
this.startPos = {
|
1647
|
-
x: touchobj.pageX,
|
1648
|
-
y: touchobj.pageY
|
1649
|
-
};
|
1650
|
-
}
|
1651
|
-
isNavBackwardDisabled() {
|
1652
|
-
return (!this.circular && this._activeIndex === 0) || this.value.length <= this.d_numVisible;
|
1653
|
-
}
|
1654
|
-
isNavForwardDisabled() {
|
1655
|
-
return (!this.circular && this._activeIndex === this.value.length - 1) || this.value.length <= this.d_numVisible;
|
1656
|
-
}
|
1657
|
-
firstItemAciveIndex() {
|
1658
|
-
return this.totalShiftedItems * -1;
|
1659
|
-
}
|
1660
|
-
lastItemActiveIndex() {
|
1661
|
-
return this.firstItemAciveIndex() + this.d_numVisible - 1;
|
1662
|
-
}
|
1663
|
-
isItemActive(index) {
|
1664
|
-
return this.firstItemAciveIndex() <= index && this.lastItemActiveIndex() >= index;
|
1665
|
-
}
|
1666
|
-
bindDocumentListeners() {
|
1667
|
-
if (isPlatformBrowser(this.platformId)) {
|
1668
|
-
const window = this.document.defaultView || 'window';
|
1669
|
-
this.documentResizeListener = this.renderer.listen(window, 'resize', () => {
|
1670
|
-
this.calculatePosition();
|
1671
|
-
});
|
1672
|
-
}
|
1673
|
-
}
|
1674
|
-
unbindDocumentListeners() {
|
1675
|
-
if (this.documentResizeListener) {
|
1676
|
-
this.documentResizeListener();
|
1677
|
-
this.documentResizeListener = null;
|
1678
|
-
}
|
1679
|
-
}
|
1680
|
-
ngOnDestroy() {
|
1681
|
-
if (this.responsiveOptions) {
|
1682
|
-
this.unbindDocumentListeners();
|
1683
|
-
}
|
1684
|
-
if (this.thumbnailsStyle) {
|
1685
|
-
this.thumbnailsStyle.parentNode?.removeChild(this.thumbnailsStyle);
|
1686
|
-
}
|
1687
|
-
}
|
1688
|
-
ariaPrevButtonLabel() {
|
1689
|
-
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.prevPageLabel : undefined;
|
1690
|
-
}
|
1691
|
-
ariaNextButtonLabel() {
|
1692
|
-
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.nextPageLabel : undefined;
|
1693
|
-
}
|
1694
|
-
ariaPageLabel(value) {
|
1695
|
-
return this.galleria.config.translation.aria ? this.galleria.config.translation.aria.pageLabel.replace(/{page}/g, value) : undefined;
|
1696
|
-
}
|
1697
|
-
static ɵfac = function GalleriaThumbnails_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GalleriaThumbnails)(i0.ɵɵdirectiveInject(Galleria), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
|
1698
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: GalleriaThumbnails, selectors: [["p-galleriaThumbnails"]], viewQuery: function GalleriaThumbnails_Query(rf, ctx) { if (rf & 1) {
|
1699
|
-
i0.ɵɵviewQuery(_c11, 5);
|
1700
|
-
} if (rf & 2) {
|
1701
|
-
let _t;
|
1702
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.itemsContainer = _t.first);
|
1703
|
-
} }, inputs: { containerId: "containerId", value: "value", isVertical: [2, "isVertical", "isVertical", booleanAttribute], slideShowActive: [2, "slideShowActive", "slideShowActive", booleanAttribute], circular: [2, "circular", "circular", booleanAttribute], responsiveOptions: "responsiveOptions", contentHeight: "contentHeight", showThumbnailNavigators: "showThumbnailNavigators", templates: "templates", numVisible: "numVisible", activeIndex: "activeIndex" }, outputs: { onActiveIndexChange: "onActiveIndexChange", stopSlideShow: "stopSlideShow" }, features: [i0.ɵɵInputTransformsFeature], decls: 8, vars: 6, consts: [["itemsContainer", ""], [1, "p-galleria-thumbnails"], [1, "p-galleria-thumbnails-content"], ["type", "button", "pRipple", "", 3, "ngClass", "disabled", "click", 4, "ngIf"], [1, "p-galleria-thumbnails-viewport", 3, "ngStyle"], ["role", "tablist", 1, "p-galleria-thumbnail-items", 3, "transitionend", "touchstart", "touchmove"], [3, "ngClass", "keydown", 4, "ngFor", "ngForOf"], ["type", "button", "pRipple", "", 3, "click", "ngClass", "disabled"], [4, "ngIf"], [4, "ngTemplateOutlet"], [3, "styleClass", 4, "ngIf"], [3, "styleClass"], [3, "keydown", "ngClass"], [1, "p-galleria-thumbnail", 3, "click", "touchend", "keydown.enter"], ["type", "thumbnail", 3, "item", "templates"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"]], template: function GalleriaThumbnails_Template(rf, ctx) { if (rf & 1) {
|
1704
|
-
const _r1 = i0.ɵɵgetCurrentView();
|
1705
|
-
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
1706
|
-
i0.ɵɵtemplate(2, GalleriaThumbnails_button_2_Template, 3, 7, "button", 3);
|
1707
|
-
i0.ɵɵelementStart(3, "div", 4)(4, "div", 5, 0);
|
1708
|
-
i0.ɵɵlistener("transitionend", function GalleriaThumbnails_Template_div_transitionend_4_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTransitionEnd()); })("touchstart", function GalleriaThumbnails_Template_div_touchstart_4_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTouchStart($event)); })("touchmove", function GalleriaThumbnails_Template_div_touchmove_4_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onTouchMove($event)); });
|
1709
|
-
i0.ɵɵtemplate(6, GalleriaThumbnails_div_6_Template, 3, 15, "div", 6);
|
1710
|
-
i0.ɵɵelementEnd()();
|
1711
|
-
i0.ɵɵtemplate(7, GalleriaThumbnails_button_7_Template, 3, 7, "button", 3);
|
1712
|
-
i0.ɵɵelementEnd()();
|
1713
|
-
} if (rf & 2) {
|
1714
|
-
i0.ɵɵadvance(2);
|
1715
|
-
i0.ɵɵproperty("ngIf", ctx.showThumbnailNavigators);
|
1716
|
-
i0.ɵɵadvance();
|
1717
|
-
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(4, _c12, ctx.isVertical ? ctx.contentHeight : ""));
|
1718
|
-
i0.ɵɵadvance(3);
|
1719
|
-
i0.ɵɵproperty("ngForOf", ctx.value);
|
1720
|
-
i0.ɵɵadvance();
|
1721
|
-
i0.ɵɵproperty("ngIf", ctx.showThumbnailNavigators);
|
1722
|
-
} }, dependencies: () => [i1.NgClass, i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, i1.NgStyle, Ripple, ChevronRightIcon, ChevronLeftIcon, GalleriaItemSlot], encapsulation: 2, changeDetection: 0 });
|
1723
|
-
}
|
1724
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GalleriaThumbnails, [{
|
1725
|
-
type: Component,
|
1726
|
-
args: [{
|
1727
|
-
selector: 'p-galleriaThumbnails',
|
1728
|
-
standalone: false,
|
1729
|
-
template: `
|
1730
|
-
<div class="p-galleria-thumbnails">
|
1731
|
-
<div class="p-galleria-thumbnails-content">
|
1732
|
-
<button
|
1733
|
-
*ngIf="showThumbnailNavigators"
|
1734
|
-
type="button"
|
1735
|
-
[ngClass]="{
|
1736
|
-
'p-galleria-thumbnail-prev-button p-galleria-thumbnail-nav-button': true,
|
1737
|
-
'p-disabled': this.isNavBackwardDisabled()
|
1738
|
-
}"
|
1739
|
-
(click)="navBackward($event)"
|
1740
|
-
[disabled]="isNavBackwardDisabled()"
|
1741
|
-
pRipple
|
1742
|
-
[attr.aria-label]="ariaPrevButtonLabel()"
|
1743
|
-
>
|
1744
|
-
<ng-container *ngIf="!galleria.previousThumbnailIconTemplate">
|
1745
|
-
<ChevronLeftIcon *ngIf="!isVertical" [styleClass]="'p-galleria-thumbnail-prev-icon'" />
|
1746
|
-
<ChevronUpIcon *ngIf="isVertical" [styleClass]="'p-galleria-thumbnail-prev-icon'" />
|
1747
|
-
</ng-container>
|
1748
|
-
<ng-template *ngTemplateOutlet="galleria.previousThumbnailIconTemplate"></ng-template>
|
1749
|
-
</button>
|
1750
|
-
<div class="p-galleria-thumbnails-viewport" [ngStyle]="{ height: isVertical ? contentHeight : '' }">
|
1751
|
-
<div #itemsContainer class="p-galleria-thumbnail-items" (transitionend)="onTransitionEnd()" (touchstart)="onTouchStart($event)" (touchmove)="onTouchMove($event)" role="tablist">
|
1752
|
-
<div
|
1753
|
-
*ngFor="let item of value; let index = index"
|
1754
|
-
[ngClass]="{
|
1755
|
-
'p-galleria-thumbnail-item': true,
|
1756
|
-
'p-galleria-thumbnail-item-current': activeIndex === index,
|
1757
|
-
'p-galleria-thumbnail-item-active': isItemActive(index),
|
1758
|
-
'p-galleria-thumbnail-item-start': firstItemAciveIndex() === index,
|
1759
|
-
'p-galleria-thumbnail-item-end': lastItemActiveIndex() === index
|
1760
|
-
}"
|
1761
|
-
[attr.aria-selected]="activeIndex === index"
|
1762
|
-
[attr.aria-controls]="containerId + '_item_' + index"
|
1763
|
-
[attr.data-pc-section]="'thumbnailitem'"
|
1764
|
-
[attr.data-p-active]="activeIndex === index"
|
1765
|
-
(keydown)="onThumbnailKeydown($event, index)"
|
1766
|
-
>
|
1767
|
-
<div
|
1768
|
-
class="p-galleria-thumbnail"
|
1769
|
-
[attr.tabindex]="activeIndex === index ? 0 : -1"
|
1770
|
-
[attr.aria-current]="activeIndex === index ? 'page' : undefined"
|
1771
|
-
[attr.aria-label]="ariaPageLabel(index + 1)"
|
1772
|
-
(click)="onItemClick(index)"
|
1773
|
-
(touchend)="onItemClick(index)"
|
1774
|
-
(keydown.enter)="onItemClick(index)"
|
1775
|
-
>
|
1776
|
-
<p-galleriaItemSlot type="thumbnail" [item]="item" [templates]="templates"></p-galleriaItemSlot>
|
1777
|
-
</div>
|
1778
|
-
</div>
|
1779
|
-
</div>
|
1780
|
-
</div>
|
1781
|
-
<button
|
1782
|
-
*ngIf="showThumbnailNavigators"
|
1783
|
-
type="button"
|
1784
|
-
[ngClass]="{
|
1785
|
-
'p-galleria-thumbnail-next-button p-galleria-thumbnail-nav-button': true,
|
1786
|
-
'p-disabled': this.isNavForwardDisabled()
|
1787
|
-
}"
|
1788
|
-
(click)="navForward($event)"
|
1789
|
-
[disabled]="isNavForwardDisabled()"
|
1790
|
-
pRipple
|
1791
|
-
[attr.aria-label]="ariaNextButtonLabel()"
|
1792
|
-
>
|
1793
|
-
<ng-container *ngIf="!galleria.nextThumbnailIconTemplate">
|
1794
|
-
<ChevronRightIcon *ngIf="!isVertical" [ngClass]="'p-galleria-thumbnail-next-icon'" />
|
1795
|
-
<ChevronDownIcon *ngIf="isVertical" [ngClass]="'p-galleria-thumbnail-next-icon'" />
|
1796
|
-
</ng-container>
|
1797
|
-
<ng-template *ngTemplateOutlet="galleria.nextThumbnailIconTemplate"></ng-template>
|
1798
|
-
</button>
|
1799
|
-
</div>
|
1800
|
-
</div>
|
1801
|
-
`,
|
1802
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
1803
|
-
}]
|
1804
|
-
}], () => [{ type: Galleria }, { type: Document, decorators: [{
|
1805
|
-
type: Inject,
|
1806
|
-
args: [DOCUMENT]
|
1807
|
-
}] }, { type: undefined, decorators: [{
|
1808
|
-
type: Inject,
|
1809
|
-
args: [PLATFORM_ID]
|
1810
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], { containerId: [{
|
1811
|
-
type: Input
|
1812
|
-
}], value: [{
|
1813
|
-
type: Input
|
1814
|
-
}], isVertical: [{
|
1815
|
-
type: Input,
|
1816
|
-
args: [{ transform: booleanAttribute }]
|
1817
|
-
}], slideShowActive: [{
|
1818
|
-
type: Input,
|
1819
|
-
args: [{ transform: booleanAttribute }]
|
1820
|
-
}], circular: [{
|
1821
|
-
type: Input,
|
1822
|
-
args: [{ transform: booleanAttribute }]
|
1823
|
-
}], responsiveOptions: [{
|
1824
|
-
type: Input
|
1825
|
-
}], contentHeight: [{
|
1826
|
-
type: Input
|
1827
|
-
}], showThumbnailNavigators: [{
|
1828
|
-
type: Input
|
1829
|
-
}], templates: [{
|
1830
|
-
type: Input
|
1831
|
-
}], onActiveIndexChange: [{
|
1832
|
-
type: Output
|
1833
|
-
}], stopSlideShow: [{
|
1834
|
-
type: Output
|
1835
|
-
}], itemsContainer: [{
|
1836
|
-
type: ViewChild,
|
1837
|
-
args: ['itemsContainer']
|
1838
|
-
}], numVisible: [{
|
1839
|
-
type: Input
|
1840
|
-
}], activeIndex: [{
|
1841
|
-
type: Input
|
1842
|
-
}] }); })();
|
1843
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GalleriaThumbnails, { className: "GalleriaThumbnails" }); })();
|
1844
|
-
export class GalleriaModule {
|
1845
|
-
static ɵfac = function GalleriaModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GalleriaModule)(); };
|
1846
|
-
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: GalleriaModule });
|
1847
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, SharedModule, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, CommonModule, SharedModule] });
|
1848
|
-
}
|
1849
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GalleriaModule, [{
|
1850
|
-
type: NgModule,
|
1851
|
-
args: [{
|
1852
|
-
imports: [CommonModule, SharedModule, Ripple, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, FocusTrap],
|
1853
|
-
exports: [CommonModule, Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails, SharedModule],
|
1854
|
-
declarations: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails]
|
1855
|
-
}]
|
1856
|
-
}], null, null); })();
|
1857
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(GalleriaModule, { declarations: [Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails], imports: [CommonModule, SharedModule, Ripple, TimesIcon, ChevronRightIcon, ChevronLeftIcon, WindowMaximizeIcon, WindowMinimizeIcon, FocusTrap], exports: [CommonModule, Galleria, GalleriaContent, GalleriaItemSlot, GalleriaItem, GalleriaThumbnails, SharedModule] }); })();
|
1858
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2FsbGVyaWEvZ2FsbGVyaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBa0IsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFHSCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFHVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixlQUFlLEVBSWYsTUFBTSxFQUNOLFdBQVcsRUFLWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZKLE9BQU8sRUFBaUIsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxN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QUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLFNBQVMsYUFDbkksWUFBWSxFQTUxQ2IsUUFBUSxFQXFZUixlQUFlLEVBa0lmLGdCQUFnQixFQXlIaEIsWUFBWSxFQWlQWixrQkFBa0IsRUEyZTRFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25FdmVudCwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgS2V5VmFsdWVEaWZmZXJzLFxuICAgIE5nTW9kdWxlLFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFkZENsYXNzLCBibG9ja0JvZHlTY3JvbGwsIGZpbmQsIGZpbmRTaW5nbGUsIGZvY3VzLCBnZXRBdHRyaWJ1dGUsIHJlbW92ZUNsYXNzLCBzZXRBdHRyaWJ1dGUsIHVuYmxvY2tCb2R5U2Nyb2xsLCB1dWlkIH0gZnJvbSAnQHByaW1ldWl4L3V0aWxzJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgRm9jdXNUcmFwIH0gZnJvbSAncHJpbWVuZy9mb2N1c3RyYXAnO1xuaW1wb3J0IHsgQ2hldnJvbkxlZnRJY29uLCBDaGV2cm9uUmlnaHRJY29uLCBUaW1lc0ljb24sIFdpbmRvd01heGltaXplSWNvbiwgV2luZG93TWluaW1pemVJY29uIH0gZnJvbSAncHJpbWVuZy9pY29ucyc7XG5pbXBvcnQgeyBSaXBwbGUgfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQgeyBWb2lkTGlzdGVuZXIgfSBmcm9tICdwcmltZW5nL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgWkluZGV4VXRpbHMgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IEdhbGxlcmlhUmVzcG9uc2l2ZU9wdGlvbnMgfSBmcm9tICcuL2dhbGxlcmlhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHYWxsZXJpYVN0eWxlIH0gZnJvbSAnLi9zdHlsZS9nYWxsZXJpYXN0eWxlJztcblxuLyoqXG4gKiBHYWxsZXJpYSBpcyBhbiBhZHZhbmNlZCBjb250ZW50IGdhbGxlcnkgY29tcG9uZW50LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWdhbGxlcmlhJyxcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZnVsbFNjcmVlbjsgZWxzZSB3aW5kb3dlZFwiICNjb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWFza1Zpc2libGVcIiAjbWFzayBbbmdDbGFzc109XCJ7ICdwLWdhbGxlcmlhLW1hc2sgcC1vdmVybGF5LW1hc2sgcC1vdmVybGF5LW1hc2stZW50ZXInOiB0cnVlIH1cIiBbY2xhc3NdPVwibWFza0NsYXNzXCIgW2F0dHIucm9sZV09XCJmdWxsU2NyZWVuID8gJ2RpYWxvZycgOiAncmVnaW9uJ1wiIFthdHRyLmFyaWEtbW9kYWxdPVwiZnVsbFNjcmVlbiA/ICd0cnVlJyA6IHVuZGVmaW5lZFwiPlxuICAgICAgICAgICAgICAgIDxwLWdhbGxlcmlhQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICBbQGFuaW1hdGlvbl09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IHNob3dUcmFuc2l0aW9uUGFyYW1zOiBzaG93VHJhbnNpdGlvbk9wdGlvbnMsIGhpZGVUcmFuc2l0aW9uUGFyYW1zOiBoaWRlVHJhbnNpdGlvbk9wdGlvbnMgfVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgKEBhbmltYXRpb24uc3RhcnQpPVwib25BbmltYXRpb25TdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKEBhbmltYXRpb24uZG9uZSk9XCJvbkFuaW1hdGlvbkVuZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUluZGV4XT1cImFjdGl2ZUluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW251bVZpc2libGVdPVwibnVtVmlzaWJsZUxpbWl0IHx8IG51bVZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICAobWFza0hpZGUpPVwib25NYXNrSGlkZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGFjdGl2ZUl0ZW1DaGFuZ2UpPVwib25BY3RpdmVJdGVtQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJjb250YWluZXJTdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmdWxsU2NyZWVuXT1cImZ1bGxTY3JlZW5cIlxuICAgICAgICAgICAgICAgID48L3AtZ2FsbGVyaWFDb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjd2luZG93ZWQ+XG4gICAgICAgICAgICA8cC1nYWxsZXJpYUNvbnRlbnQgW3ZhbHVlXT1cInZhbHVlXCIgW2FjdGl2ZUluZGV4XT1cImFjdGl2ZUluZGV4XCIgW251bVZpc2libGVdPVwibnVtVmlzaWJsZUxpbWl0IHx8IG51bVZpc2libGVcIiAoYWN0aXZlSXRlbUNoYW5nZSk9XCJvbkFjdGl2ZUl0ZW1DaGFuZ2UoJGV2ZW50KVwiPjwvcC1nYWxsZXJpYUNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2FuaW1hdGlvbicsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gdmlzaWJsZScsIFtzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDAuNyknLCBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKCd7e3Nob3dUcmFuc2l0aW9uUGFyYW1zfX0nKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA9PiB2b2lkJywgW2FuaW1hdGUoJ3t7aGlkZVRyYW5zaXRpb25QYXJhbXN9fScsIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMC43KScsIG9wYWNpdHk6IDAgfSkpXSlcbiAgICAgICAgXSlcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbR2FsbGVyaWFTdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgR2FsbGVyaWEgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEluZGV4IG9mIHRoZSBmaXJzdCBpdGVtLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBhY3RpdmVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlSW5kZXg7XG4gICAgfVxuICAgIHNldCBhY3RpdmVJbmRleChhY3RpdmVJbmRleCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNvbXBvbmVudCBvbiBmdWxsc2NyZWVuLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmdWxsU2NyZWVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGVsZW1lbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBvYmplY3RzIHRvIGRpc3BsYXkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdmFsdWU6IGFueVtdIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE51bWJlciBvZiBpdGVtcyBwZXIgcGFnZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBudW1WaXNpYmxlOiBudW1iZXIgPSAzO1xuICAgIC8qKlxuICAgICAqIEFuIGFycmF5IG9mIG9wdGlvbnMgZm9yIHJlc3BvbnNpdmUgZGVzaWduLlxuICAgICAqIEBzZWUge0dhbGxlcmlhUmVzcG9uc2l2ZU9wdGlvbnN9XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZU9wdGlvbnM6IEdhbGxlcmlhUmVzcG9uc2l2ZU9wdGlvbnNbXSB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgbmF2aWdhdGlvbiBidXR0b25zIGluIGl0ZW0gc2VjdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0l0ZW1OYXZpZ2F0b3JzOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IG5hdmlnYXRpb24gYnV0dG9ucyBpbiB0aHVtYm5haWwgY29udGFpbmVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93VGh1bWJuYWlsTmF2aWdhdG9yczogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IG5hdmlnYXRpb24gYnV0dG9ucyBvbiBpdGVtIGhvdmVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93SXRlbU5hdmlnYXRvcnNPbkhvdmVyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hlbiBlbmFibGVkLCBpdGVtIGlzIGNoYW5nZWQgb24gaW5kaWNhdG9yIGhvdmVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaGFuZ2VJdGVtT25JbmRpY2F0b3JIb3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIERlZmluZXMgaWYgc2Nyb2xsaW5nIHdvdWxkIGJlIGluZmluaXRlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaXJjdWxhcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEl0ZW1zIGFyZSBkaXNwbGF5ZWQgd2l0aCBhIHNsaWRlc2hvdyBpbiBhdXRvUGxheSBtb2RlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhdXRvUGxheTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgYXV0b3J1biBzaG91bGQgc3RvcCBieSBjbGljay5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvdWxkU3RvcEF1dG9wbGF5QnlDbGljazogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogVGltZSBpbiBtaWxsaXNlY29uZHMgdG8gc2Nyb2xsIGl0ZW1zLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRyYW5zaXRpb25JbnRlcnZhbDogbnVtYmVyID0gNDAwMDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgdGh1bWJuYWlsIGNvbnRhaW5lci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd1RodW1ibmFpbHM6IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRodW1ibmFpbHMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdGh1bWJuYWlsc1Bvc2l0aW9uOiAnYm90dG9tJyB8ICd0b3AnIHwgJ2xlZnQnIHwgJ3JpZ2h0JyB8IHVuZGVmaW5lZCA9ICdib3R0b20nO1xuICAgIC8qKlxuICAgICAqIEhlaWdodCBvZiB0aGUgdmlld3BvcnQgaW4gdmVydGljYWwgdGh1bWJuYWlsLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHZlcnRpY2FsVGh1bWJuYWlsVmlld1BvcnRIZWlnaHQ6IHN0cmluZyA9ICczMDBweCc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBkaXNwbGF5IGluZGljYXRvciBjb250YWluZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dJbmRpY2F0b3JzOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hlbiBlbmFibGVkLCBpbmRpY2F0b3IgY29udGFpbmVyIGlzIGRpc3BsYXllZCBvbiBpdGVtIGNvbnRhaW5lci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0luZGljYXRvcnNPbkl0ZW06IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiBpbmRpY2F0b3JzLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGluZGljYXRvcnNQb3NpdGlvbjogJ2JvdHRvbScgfCAndG9wJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCB1bmRlZmluZWQgPSAnYm90dG9tJztcbiAgICAvKipcbiAgICAgKiBCYXNlIHpJbmRleCB2YWx1ZSB0byB1c2UgaW4gbGF5ZXJpbmcuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgYmFzZVpJbmRleDogbnVtYmVyID0gMDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgbWFzayBvbiBmdWxsc2NyZWVuIG1vZGUuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWFza0NsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogU3R5bGUgY2xhc3Mgb2YgdGhlIGNvbXBvbmVudCBvbiBmdWxsc2NyZWVuIG1vZGUuIE90aGVyd2lzZSwgdGhlICdjbGFzcycgcHJvcGVydHkgY2FuIGJlIHVzZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGFpbmVyQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmxpbmUgc3R5bGUgb2YgdGhlIGNvbXBvbmVudCBvbiBmdWxsc2NyZWVuIG1vZGUuIE90aGVyd2lzZSwgdGhlICdzdHlsZScgcHJvcGVydHkgY2FuIGJlIHVzZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGFpbmVyU3R5bGU6IHsgW2tsYXNzOiBzdHJpbmddOiBhbnkgfSB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBzaG93IGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93VHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICcxNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBoaWRlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoaWRlVHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICcxNTBtcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSc7XG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBtYXNrIG9uIGZ1bGxzY3JlZW4gbW9kZS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gICAgfVxuICAgIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XG5cbiAgICAgICAgaWYgKHRoaXMuX3Zpc2libGUgJiYgIXRoaXMubWFza1Zpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMubWFza1Zpc2libGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBhY3RpdmUgaW5kZXggY2hhbmdlLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXIgLSBBY3RpdmUgaW5kZXguXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIGFjdGl2ZUluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiB2aXNpYmxpdHkgY2hhbmdlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gYm9vbGVhbiAtIFZpc2libGUgdmFsdWUuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ21hc2snKSBtYXNrOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgX3Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIF9hY3RpdmVJbmRleDogbnVtYmVyID0gMDtcblxuICAgIGhlYWRlckZhY2V0OiBhbnk7XG5cbiAgICBmb290ZXJGYWNldDogYW55O1xuXG4gICAgaW5kaWNhdG9yRmFjZXQ6IGFueTtcblxuICAgIGNhcHRpb25GYWNldDogYW55O1xuXG4gICAgY2xvc2VJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBwcmV2aW91c1RodW1ibmFpbEljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIG5leHRUaHVtYm5haWxJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBpdGVtUHJldmlvdXNJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBpdGVtTmV4dEljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIG1hc2tWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBudW1WaXNpYmxlTGltaXQgPSAwO1xuXG4gICAgX2NvbXBvbmVudFN0eWxlID0gaW5qZWN0KEdhbGxlcmlhU3R5bGUpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHB1YmxpYyBwbGF0Zm9ybUlkOiBhbnksXG4gICAgICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyRmFjZXQgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zvb3Rlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9vdGVyRmFjZXQgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2luZGljYXRvcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5kaWNhdG9yRmFjZXQgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2Nsb3NlaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2l0ZW1uZXh0aWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbU5leHRJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2l0ZW1wcmV2aW91c2ljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1QcmV2aW91c0ljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAncHJldmlvdXN0aHVtYm5haWxpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1RodW1ibmFpbEljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbmV4dHRodW1ibmFpbGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUaHVtYm5haWxJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcHRpb25GYWNldCA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXMpO1xuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy52YWx1ZSAmJiBzaW1wbGVDaGFuZ2VzLnZhbHVlLmN1cnJlbnRWYWx1ZT8ubGVuZ3RoIDwgdGhpcy5udW1WaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm51bVZpc2libGVMaW1pdCA9IHNpbXBsZUNoYW5nZXMudmFsdWUuY3VycmVudFZhbHVlLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubnVtVmlzaWJsZUxpbWl0ID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTWFza0hpZGUoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgb25BY3RpdmVJdGVtQ2hhbmdlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC50b1N0YXRlKSB7XG4gICAgICAgICAgICBjYXNlICd2aXNpYmxlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZU1vZGFsaXR5KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZvY3VzKDxhbnk+ZmluZFNpbmdsZSh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImNsb3NlYnV0dG9uXCJdJykpO1xuICAgICAgICAgICAgICAgIH0sIDI1KTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAndm9pZCc6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5tYXNrPy5uYXRpdmVFbGVtZW50LCAncC1vdmVybGF5LW1hc2stbGVhdmUnKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQW5pbWF0aW9uRW5kKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LnRvU3RhdGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3ZvaWQnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1vZGFsaXR5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbmFibGVNb2RhbGl0eSgpIHtcbiAgICAgICAgYmxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgICAgICAgWkluZGV4VXRpbHMuc2V0KCdtb2RhbCcsIHRoaXMubWFzay5uYXRpdmVFbGVtZW50LCB0aGlzLmJhc2VaSW5kZXggfHwgdGhpcy5jb25maWcuekluZGV4Lm1vZGFsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRpc2FibGVNb2RhbGl0eSgpIHtcbiAgICAgICAgdW5ibG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5tYXNrVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIGlmICh0aGlzLm1hc2spIHtcbiAgICAgICAgICAgIFpJbmRleFV0aWxzLmNsZWFyKHRoaXMubWFzay5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5mdWxsU2NyZWVuKSB7XG4gICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdwLW92ZXJmbG93LWhpZGRlbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlTW9kYWxpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWdhbGxlcmlhQ29udGVudCcsXG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWRcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCIncmVnaW9uJ1wiXG4gICAgICAgICAgICAqbmdJZj1cInZhbHVlICYmIHZhbHVlLmxlbmd0aCA+IDBcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdwLWdhbGxlcmlhIHAtY29tcG9uZW50JzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAncC1nYWxsZXJpYS1mdWxsc2NyZWVuJzogdGhpcy5nYWxsZXJpYS5mdWxsU2NyZWVuLFxuICAgICAgICAgICAgICAgICdwLWdhbGxlcmlhLWluc2V0LWluZGljYXRvcnMnOiB0aGlzLmdhbGxlcmlhLnNob3dJbmRpY2F0b3JzT25JdGVtLFxuICAgICAgICAgICAgICAgICdwLWdhbGxlcmlhLWhvdmVyLW5hdmlnYXRvcnMnOiB0aGlzLmdhbGxlcmlhLnNob3dJdGVtTmF2aWdhdG9yc09uSG92ZXIgJiYgIXRoaXMuZ2FsbGVyaWEuZnVsbFNjcmVlblxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCIhZ2FsbGVyaWEuZnVsbFNjcmVlbiA/IGdhbGxlcmlhLmNvbnRhaW5lclN0eWxlIDoge31cIlxuICAgICAgICAgICAgW2NsYXNzXT1cImdhbGxlcmlhQ2xhc3MoKVwiXG4gICAgICAgICAgICBwRm9jdXNUcmFwXG4gICAgICAgICAgICBbcEZvY3VzVHJhcERpc2FibGVkXT1cIiFmdWxsU2NyZWVuXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImdhbGxlcmlhLmZ1bGxTY3JlZW5cIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwLWdhbGxlcmlhLWNsb3NlLWJ1dHRvblwiIChjbGljayk9XCJtYXNrSGlkZS5lbWl0KClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImNsb3NlQXJpYUxhYmVsKClcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ2Nsb3NlYnV0dG9uJ1wiPlxuICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gKm5nSWY9XCIhZ2FsbGVyaWEuY2xvc2VJY29uVGVtcGxhdGVcIiBbc3R5bGVDbGFzc109XCIncC1nYWxsZXJpYS1jbG9zZS1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2FsbGVyaWEuY2xvc2VJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2FsbGVyaWEudGVtcGxhdGVzICYmIGdhbGxlcmlhLmhlYWRlckZhY2V0XCIgY2xhc3M9XCJwLWdhbGxlcmlhLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxwLWdhbGxlcmlhSXRlbVNsb3QgdHlwZT1cImhlYWRlclwiIFt0ZW1wbGF0ZXNdPVwiZ2FsbGVyaWEudGVtcGxhdGVzXCI+PC9wLWdhbGxlcmlhSXRlbVNsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdhbGxlcmlhLWNvbnRlbnRcIiBbYXR0ci5hcmlhLWxpdmVdPVwiZ2FsbGVyaWEuYXV0b1BsYXkgPyAncG9saXRlJyA6ICdvZmYnXCI+XG4gICAgICAgICAgICAgICAgPHAtZ2FsbGVyaWFJdGVtXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthY3RpdmVJbmRleF09XCJhY3RpdmVJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFtjaXJjdWxhcl09XCJnYWxsZXJpYS5jaXJjdWxhclwiXG4gICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZXNdPVwiZ2FsbGVyaWEudGVtcGxhdGVzXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQWN0aXZlSW5kZXhDaGFuZ2UpPVwib25BY3RpdmVJbmRleENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dJbmRpY2F0b3JzXT1cImdhbGxlcmlhLnNob3dJbmRpY2F0b3JzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYW5nZUl0ZW1PbkluZGljYXRvckhvdmVyXT1cImdhbGxlcmlhLmNoYW5nZUl0ZW1PbkluZGljYXRvckhvdmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2luZGljYXRvckZhY2V0XT1cImdhbGxlcmlhLmluZGljYXRvckZhY2V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2NhcHRpb25GYWNldF09XCJnYWxsZXJpYS5jYXB0aW9uRmFjZXRcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0l0ZW1OYXZpZ2F0b3JzXT1cImdhbGxlcmlhLnNob3dJdGVtTmF2aWdhdG9yc1wiXG4gICAgICAgICAgICAgICAgICAgIFthdXRvUGxheV09XCJnYWxsZXJpYS5hdXRvUGxheVwiXG4gICAgICAgICAgICAgICAgICAgIFtzbGlkZVNob3dBY3RpdmVdPVwic2xpZGVTaG93QWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgKHN0YXJ0U2xpZGVTaG93KT1cInN0YXJ0U2xpZGVTaG93KClcIlxuICAgICAgICAgICAgICAgICAgICAoc3RvcFNsaWRlU2hvdyk9XCJzdG9wU2xpZGVTaG93KClcIlxuICAgICAgICAgICAgICAgID48L3AtZ2FsbGVyaWFJdGVtPlxuXG4gICAgICAgICAgICAgICAgPHAtZ2FsbGVyaWFUaHVtYm5haWxzXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2FsbGVyaWEuc2hvd1RodW1ibmFpbHNcIlxuICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVySWRdPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAob25BY3RpdmVJbmRleENoYW5nZSk9XCJvbkFjdGl2ZUluZGV4Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbYWN0aXZlSW5kZXhdPVwiYWN0aXZlSW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cImdhbGxlcmlhLnRlbXBsYXRlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtudW1WaXNpYmxlXT1cIm51bVZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgICBbcmVzcG9uc2l2ZU9wdGlvbnNdPVwiZ2FsbGVyaWEucmVzcG9uc2l2ZU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBbY2lyY3VsYXJdPVwiZ2FsbGVyaWEuY2lyY3VsYXJcIlxuICAgICAgICAgICAgICAgICAgICBbaXNWZXJ0aWNhbF09XCJpc1ZlcnRpY2FsKClcIlxuICAgICAgICAgICAgICAgICAgICBbY29udGVudEhlaWdodF09XCJnYWxsZXJpYS52ZXJ0aWNhbFRodW1ibmFpbFZpZXdQb3J0SGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dUaHVtYm5haWxOYXZpZ2F0b3JzXT1cImdhbGxlcmlhLnNob3dUaHVtYm5haWxOYXZpZ2F0b3JzXCJcbiAgICAgICAgICAgICAgICAgICAgW3NsaWRlU2hvd0FjdGl2ZV09XCJzbGlkZVNob3dBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAoc3RvcFNsaWRlU2hvdyk9XCJzdG9wU2xpZGVTaG93KClcIlxuICAgICAgICAgICAgICAgID48L3AtZ2FsbGVyaWFUaHVtYm5haWxzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZ2FsbGVyaWEudGVtcGxhdGVzICYmIGdhbGxlcmlhLmZvb3RlckZhY2V0XCIgY2xhc3M9XCJwLWdhbGxlcmlhLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxwLWdhbGxlcmlhSXRlbVNsb3QgdHlwZT1cImZvb3RlclwiIFt0ZW1wbGF0ZXNdPVwiZ2FsbGVyaWEudGVtcGxhdGVzXCI+PC9wLWdhbGxlcmlhSXRlbVNsb3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHYWxsZXJpYUNvbnRlbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjayB7XG4gICAgQElucHV0KCkgZ2V0IGFjdGl2ZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVJbmRleDtcbiAgICB9XG4gICAgc2V0IGFjdGl2ZUluZGV4KGFjdGl2ZUluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSB2YWx1ZTogYW55W10gPSBbXTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG51bVZpc2libGU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmdWxsU2NyZWVuOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIG1hc2tIaWRlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgYWN0aXZlSXRlbUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdjbG9zZUJ1dHRvbicpIGNsb3NlQnV0dG9uOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICAgaWQ6IHN0cmluZztcblxuICAgIF9hY3RpdmVJbmRleDogbnVtYmVyID0gMDtcblxuICAgIHNsaWRlU2hvd0FjdGl2ZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBpbnRlcnZhbDogYW55O1xuXG4gICAgc3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgcHJpdmF0ZSBkaWZmZXI6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZ2FsbGVyaWE6IEdhbGxlcmlhLFxuICAgICAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGRpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaWQgPSB0aGlzLmdhbGxlcmlhLmlkIHx8IHV1aWQoJ3BuX2lkXycpO1xuICAgICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKHRoaXMuZ2FsbGVyaWEpLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIC8vIEZvciBjdXN0b20gZnVsbHNjcmVlblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmZ1bGxzY3JlZW5jaGFuZ2UnLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUZ1bGxzY3JlZW5DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmIChkb2N1bWVudD8uZnVsbHNjcmVlbkVsZW1lbnQgPT09IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Py5jaGlsZHJlblswXSkge1xuICAgICAgICAgICAgdGhpcy5mdWxsU2NyZWVuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZnVsbFNjcmVlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5nYWxsZXJpYS5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZGlmZmVyLmRpZmYodGhpcy5nYWxsZXJpYSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXMuZm9yRWFjaEl0ZW0ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIC8vIEJlY2F1c2Ugd2UgY2hhbmdlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBwYXJlbnQgY29tcG9uZW50LFxuICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgY2hpbGRyZW4gdGFrZSBvdXIgZW50aXR5IGZyb20gdGhlIGluamVjdG9yLlxuICAgICAgICAgICAgICAgIC8vIFdlIGNhbiB0ZWxsIHRoZSBjaGlsZHJlbiB0byByZWRyYXcgdGhlbXNlbHZlcyB3aGVuIHdlIGNoYW5nZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgcGFyZW50IGNvbXBvbmVudC5cbiAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBoYXZlIGFuIG9uUHVzaCBzdHJhdGVneVxuICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnYWxsZXJpYUNsYXNzKCkge1xuICAgICAgICBjb25zdCB0aHVtYm5haWxzUG9zQ2xhc3MgPSB0aGlzLmdhbGxlcmlhLnNob3dUaHVtYm5haWxzICYmIHRoaXMuZ2V0UG9zaXRpb25DbGFzcygncC1nYWxsZXJpYS10aHVtYm5haWxzJywgdGhpcy5nYWxsZXJpYS50aHVtYm5haWxzUG9zaXRpb24gYXMgc3RyaW5nKTtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9yUG9zQ2xhc3MgPSB0aGlzLmdhbGxlcmlhLnNob3dJbmRpY2F0b3JzICYmIHRoaXMuZ2V0UG9zaXRpb25DbGFzcygncC1nYWxsZXJpYS1pbmRpY2F0b3JzJywgdGhpcy5nYWxsZXJpYS5pbmRpY2F0b3JzUG9zaXRpb24gYXMgc3RyaW5nKTtcblxuICAgICAgICByZXR1cm4gKHRoaXMuZ2FsbGVyaWEuY29udGFpbmVyQ2xhc3MgPyB0aGlzLmdhbGxlcmlhLmNvbnRhaW5lckNsYXNzICsgJyAnIDogJycpICsgKHRodW1ibmFpbHNQb3NDbGFzcyA/IHRodW1ibmFpbHNQb3NDbGFzcyArICcgJyA6ICcnKSArIChpbmRpY2F0b3JQb3NDbGFzcyA/IGluZGljYXRvclBvc0NsYXNzICsgJyAnIDogJycpO1xuICAgIH1cblxuICAgIHN0YXJ0U2xpZGVTaG93KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5nYWxsZXJpYS5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYWN0aXZlSW5kZXggPSB0aGlzLmdhbGxlcmlhLmNpcmN1bGFyICYmIHRoaXMudmFsdWUubGVuZ3RoIC0gMSA9PT0gdGhpcy5hY3RpdmVJbmRleCA/IDAgOiB0aGlzLmFjdGl2ZUluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQWN0aXZlSW5kZXhDaGFuZ2UoYWN0aXZlSW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleDtcbiAgICAgICAgICAgIH0sIHRoaXMuZ2FsbGVyaWEudHJhbnNpdGlvbkludGVydmFsKTtcblxuICAgICAgICAgICAgdGhpcy5zbGlkZVNob3dBY3RpdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcFNsaWRlU2hvdygpIHtcbiAgICAgICAgaWYgKHRoaXMuZ2FsbGVyaWEuYXV0b1BsYXkgJiYgIXRoaXMuZ2FsbGVyaWEuc2hvdWxkU3RvcEF1dG9wbGF5QnlDbGljaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNsaWRlU2hvd0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldFBvc2l0aW9uQ2xhc3MocHJlQ2xhc3NOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25zID0gWyd0b3AnLCAnbGVmdCcsICdib3R0b20nLCAncmlnaHQnXTtcbiAgICAgICAgY29uc3QgcG9zID0gcG9zaXRpb25zLmZpbmQoKGl0ZW0pID0+IGl0ZW0gPT09IHBvc2l0aW9uKTtcblxuICAgICAgICByZXR1cm4gcG9zID8gYCR7cHJlQ2xhc3NOYW1lfS0ke3Bvc31gIDogJyc7XG4gICAgfVxuXG4gICAgaXNWZXJ0aWNhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FsbGVyaWEudGh1bWJuYWlsc1Bvc2l0aW9uID09PSAnbGVmdCcgfHwgdGhpcy5nYWxsZXJpYS50aHVtYm5haWxzUG9zaXRpb24gPT09ICdyaWdodCc7XG4gICAgfVxuXG4gICAgb25BY3RpdmVJbmRleENoYW5nZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVJdGVtQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZUFyaWFMYWJlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLmNsb3NlIDogdW5kZWZpbmVkO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWdhbGxlcmlhSXRlbVNsb3QnLFxuICAgIHN0YW5kYWxvbmU6IGZhbHNlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZW50VGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHYWxsZXJpYUl0ZW1TbG90IHtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBnZXQgaXRlbSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbTtcbiAgICB9XG5cbiAgICBzZXQgaXRlbShpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5faXRlbSA9IGl0ZW07XG4gICAgICAgIGlmICh0aGlzLnRlbXBsYXRlcykge1xuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gdGhpcy50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NhcHRpb24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAndGh1bWJuYWlsJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQgPSB7ICRpbXBsaWNpdDogdGhpcy5pdGVtIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb250ZXh0OiBhbnk7XG5cbiAgICBfaXRlbTogYW55O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSB0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2FwdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3RodW1ibmFpbCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQgPSB7ICRpbXBsaWNpdDogdGhpcy5pdGVtIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICBjYXNlICdpbmRpY2F0b3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0geyAkaW1wbGljaXQ6IHRoaXMuaW5kZXggfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtZ2FsbGVyaWFJdGVtJyxcbiAgICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1nYWxsZXJpYS1pdGVtc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0l0ZW1OYXZpZ2F0b3JzXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1nYWxsZXJpYS1wcmV2LWJ1dHRvbiBwLWdhbGxlcmlhLW5hdi1idXR0b24nOiB0cnVlLCAncC1kaXNhYmxlZCc6IHRoaXMuaXNOYXZCYWNrd2FyZERpc2FibGVkKCkgfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdkJhY2t3YXJkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc05hdkJhY2t3YXJkRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uQnV0dG9uRm9jdXMoJ2xlZnQnKVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25CdXR0b25CbHVyKCdsZWZ0JylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxDaGV2cm9uTGVmdEljb24gKm5nSWY9XCIhZ2FsbGVyaWEuaXRlbVByZXZpb3VzSWNvblRlbXBsYXRlXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtZ2FsbGVyaWEtcHJldi1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2FsbGVyaWEuaXRlbVByZXZpb3VzSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBbaWRdPVwiaWQgKyAnX2l0ZW1fJyArIGFjdGl2ZUluZGV4XCIgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJwLWdhbGxlcmlhLWl0ZW1cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFTbGlkZU51bWJlcihhY3RpdmVJbmRleCArIDEpXCIgW2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb25dPVwiYXJpYVNsaWRlTGFiZWwoKVwiPlxuICAgICAgICAgICAgICAgIDxwLWdhbGxlcmlhSXRlbVNsb3QgdHlwZT1cIml0ZW1cIiBbaXRlbV09XCJhY3RpdmVJdGVtXCIgW3RlbXBsYXRlc109XCJ0ZW1wbGF0ZXNcIiBjbGFzcz1cInAtZ2FsbGVyaWEtaXRlbVwiPjwvcC1nYWxsZXJpYUl0ZW1TbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93SXRlbU5hdmlnYXRvcnNcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZ2FsbGVyaWEtbmV4dC1idXR0b24gcC1nYWxsZXJpYS1uYXYtYnV0dG9uJzogdHJ1ZSwgJ3AtZGlzYWJsZWQnOiB0aGlzLmlzTmF2Rm9yd2FyZERpc2FibGVkKCkgfVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdkZvcndhcmQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTmF2Rm9yd2FyZERpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25CdXR0b25Gb2N1cygncmlnaHQnKVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwib25CdXR0b25CbHVyKCdyaWdodCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiAqbmdJZj1cIiFnYWxsZXJpYS5pdGVtTmV4dEljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWdhbGxlcmlhLW5leHQtaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImdhbGxlcmlhLml0ZW1OZXh0SWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ2FsbGVyaWEtY2FwdGlvblwiICpuZ0lmPVwiY2FwdGlvbkZhY2V0XCI+XG4gICAgICAgICAgICAgICAgPHAtZ2FsbGVyaWFJdGVtU2xvdCB0eXBlPVwiY2FwdGlvblwiIFtpdGVtXT1cImFjdGl2ZUl0ZW1cIiBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiPjwvcC1nYWxsZXJpYUl0ZW1TbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dWwgKm5nSWY9XCJzaG93SW5kaWNhdG9yc1wiIGNsYXNzPVwicC1nYWxsZXJpYS1pbmRpY2F0b3ItbGlzdFwiPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkluZGljYXRvckNsaWNrKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwib25JbmRpY2F0b3JNb3VzZUVudGVyKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25JbmRpY2F0b3JLZXlEb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWdhbGxlcmlhLWluZGljYXRvcic6IHRydWUsICdwLWdhbGxlcmlhLWluZGljYXRvci1hY3RpdmUnOiBpc0luZGljYXRvckl0ZW1BY3RpdmUoaW5kZXgpIH1cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYVBhZ2VMYWJlbChpbmRleCArIDEpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImFjdGl2ZUluZGV4ID09PSBpbmRleFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpZCArICdfaXRlbV8nICsgaW5kZXhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYkluZGV4PVwiLTFcIiBjbGFzcz1cInAtZ2FsbGVyaWEtaW5kaWNhdG9yLWJ1dHRvblwiICpuZ0lmPVwiIWluZGljYXRvckZhY2V0XCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPHAtZ2FsbGVyaWFJdGVtU2xvdCB0eXBlPVwiaW5kaWNhdG9yXCIgW2luZGV4XT1cImluZGV4XCIgW3RlbXBsYXRlc109XCJ0ZW1wbGF0ZXNcIj48L3AtZ2FsbGVyaWFJdGVtU2xvdD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgYCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1nYWxsZXJpYS1pdGVtcy1jb250YWluZXInXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHYWxsZXJpYUl0ZW0gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgY2lyY3VsYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnlbXSB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93SXRlbU5hdmlnYXRvcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93SW5kaWNhdG9yczogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2xpZGVTaG93QWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaGFuZ2VJdGVtT25JbmRpY2F0b3JIb3ZlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b1BsYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgaW5kaWNhdG9yRmFjZXQ6IGFueTtcblxuICAgIEBJbnB1dCgpIGNhcHRpb25GYWNldDogYW55O1xuXG4gICAgQE91dHB1dCgpIHN0YXJ0U2xpZGVTaG93OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIHN0b3BTbGlkZVNob3c6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25BY3RpdmVJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKSBnZXQgYWN0aXZlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUluZGV4O1xuICAgIH1cblxuICAgIHNldCBhY3RpdmVJbmRleChhY3RpdmVJbmRleCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCA9IGFjdGl2ZUluZGV4O1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVJdGVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlW3RoaXMuX2FjdGl2ZUluZGV4XTtcbiAgICB9XG5cbiAgICBfYWN0aXZlSW5kZXg6IG51bWJlciA9IDA7XG5cbiAgICBsZWZ0QnV0dG9uRm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcmlnaHRCdXR0b25Gb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZ2FsbGVyaWE6IEdhbGxlcmlhKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoeyBhdXRvUGxheSB9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChhdXRvUGxheT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0U2xpZGVTaG93LmVtaXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdXRvUGxheSAmJiBhdXRvUGxheS5jdXJyZW50VmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BUaGVTbGlkZVNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5leHQoKSB7XG4gICAgICAgIGxldCBuZXh0SXRlbUluZGV4ID0gdGhpcy5hY3RpdmVJbmRleCArIDE7XG4gICAgICAgIGxldCBhY3RpdmVJbmRleCA9IHRoaXMuY2lyY3VsYXIgJiYgKDxhbnlbXT50aGlzLnZhbHVlKS5sZW5ndGggLSAxID09PSB0aGlzLmFjdGl2ZUluZGV4ID8gMCA6IG5leHRJdGVtSW5kZXg7XG4gICAgICAgIHRoaXMub25BY3RpdmVJbmRleENoYW5nZS5lbWl0KGFjdGl2ZUluZGV4KTtcbiAgICB9XG5cbiAgICBwcmV2KCkge1xuICAgICAgICBsZXQgcHJldkl0ZW1JbmRleCA9IHRoaXMuYWN0aXZlSW5kZXggIT09IDAgPyB0aGlzLmFjdGl2ZUluZGV4IC0gMSA6IDA7XG4gICAgICAgIGxldCBhY3RpdmVJbmRleCA9IHRoaXMuY2lyY3VsYXIgJiYgdGhpcy5hY3RpdmVJbmRleCA9PT0gMCA/ICg8YW55W10+dGhpcy52YWx1ZSkubGVuZ3RoIC0gMSA6IHByZXZJdGVtSW5kZXg7XG4gICAgICAgIHRoaXMub25BY3RpdmVJbmRleENoYW5nZS5lbWl0KGFjdGl2ZUluZGV4KTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbkZvY3VzKHBvczogJ2xlZnQnIHwgJ3JpZ2h0Jykge1xuICAgICAgICBpZiAocG9zID09PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgdGhpcy5yaWdodEJ1dHRvbkZvY3VzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQnV0dG9uQmx1cihwb3M6ICdsZWZ0JyB8ICdyaWdodCcpIHtcbiAgICAgICAgaWYgKHBvcyA9PT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25Gb2N1c2VkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB0aGlzLnJpZ2h0QnV0dG9uRm9jdXNlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN0b3BUaGVTbGlkZVNob3coKSB7XG4gICAgICAgIGlmICh0aGlzLnNsaWRlU2hvd0FjdGl2ZSAmJiB0aGlzLnN0b3BTbGlkZVNob3cpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFNsaWRlU2hvdy5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuYXZGb3J3YXJkKGU6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zdG9wVGhlU2xpZGVTaG93KCk7XG4gICAgICAgIHRoaXMubmV4dCgpO1xuXG4gICAgICAgIGlmIChlICYmIGUuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmF2QmFja3dhcmQoZTogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnN0b3BUaGVTbGlkZVNob3coKTtcbiAgICAgICAgdGhpcy5wcmV2KCk7XG5cbiAgICAgICAgaWYgKGUgJiYgZS5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkluZGljYXRvckNsaWNrKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zdG9wVGhlU2xpZGVTaG93KCk7XG4gICAgICAgIHRoaXMub25BY3RpdmVJbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICB9XG5cbiAgICBvbkluZGljYXRvck1vdXNlRW50ZXIoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5jaGFuZ2VJdGVtT25JbmRpY2F0b3JIb3Zlcikge1xuICAgICAgICAgICAgdGhpcy5zdG9wVGhlU2xpZGVTaG93KCk7XG4gICAgICAgICAgICB0aGlzLm9uQWN0aXZlSW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkluZGljYXRvcktleURvd24oZXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgICBjYXNlICdTcGFjZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGhlU2xpZGVTaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFjdGl2ZUluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNOYXZGb3J3YXJkRGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jaXJjdWxhciAmJiB0aGlzLmFjdGl2ZUluZGV4ID09PSAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aCAtIDE7XG4gICAgfVxuXG4gICAgaXNOYXZCYWNrd2FyZERpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gIXRoaXMuY2lyY3VsYXIgJiYgdGhpcy5hY3RpdmVJbmRleCA9PT0gMDtcbiAgICB9XG5cbiAgICBpc0luZGljYXRvckl0ZW1BY3RpdmUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJbmRleCA9PT0gaW5kZXg7XG4gICAgfVxuXG4gICAgYXJpYVNsaWRlTGFiZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdhbGxlcmlhLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5nYWxsZXJpYS5jb25maWcudHJhbnNsYXRpb24uYXJpYS5zbGlkZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhcmlhU2xpZGVOdW1iZXIodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FsbGVyaWEuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmdhbGxlcmlhLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLnNsaWRlTnVtYmVyLnJlcGxhY2UoL3tzbGlkZU51bWJlcn0vZywgdmFsdWUpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGFyaWFQYWdlTGFiZWwodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2FsbGVyaWEuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEgPyB0aGlzLmdhbGxlcmlhLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhLnBhZ2VMYWJlbC5yZXBsYWNlKC97cGFnZX0vZywgdmFsdWUpIDogdW5kZWZpbmVkO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLWdhbGxlcmlhVGh1bWJuYWlscycsXG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZ2FsbGVyaWEtdGh1bWJuYWlsc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ2FsbGVyaWEtdGh1bWJuYWlscy1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dUaHVtYm5haWxOYXZpZ2F0b3JzXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWdhbGxlcmlhLXRodW1ibmFpbC1wcmV2LWJ1dHRvbiBwLWdhbGxlcmlhLXRodW1ibmFpbC1uYXYtYnV0dG9uJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdwLWRpc2FibGVkJzogdGhpcy5pc05hdkJhY2t3YXJkRGlzYWJsZWQoKVxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdkJhY2t3YXJkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNOYXZCYWNrd2FyZERpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYVByZXZCdXR0b25MYWJlbCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ2FsbGVyaWEucHJldmlvdXNUaHVtYm5haWxJY29uVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uTGVmdEljb24gKm5nSWY9XCIhaXNWZXJ0aWNhbFwiIFtzdHlsZUNsYXNzXT1cIidwLWdhbGxlcmlhLXRodW1ibmFpbC1wcmV2LWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uVXBJY29uICpuZ0lmPVwiaXNWZXJ0aWNhbFwiIFtzdHlsZUNsYXNzXT1cIidwLWdhbGxlcmlhLXRodW1ibmFpbC1wcmV2LWljb24nXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImdhbGxlcmlhLnByZXZpb3VzVGh1bWJuYWlsSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1nYWxsZXJpYS10aHVtYm5haWxzLXZpZXdwb3J0XCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGlzVmVydGljYWwgPyBjb250ZW50SGVpZ2h0IDogJycgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICNpdGVtc0NvbnRhaW5lciBjbGFzcz1cInAtZ2FsbGVyaWEtdGh1bWJuYWlsLWl0ZW1zXCIgKHRyYW5zaXRpb25lbmQpPVwib25UcmFuc2l0aW9uRW5kKClcIiAodG91Y2hzdGFydCk9XCJvblRvdWNoU3RhcnQoJGV2ZW50KVwiICh0b3VjaG1vdmUpPVwib25Ub3VjaE1vdmUoJGV2ZW50KVwiIHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmFsdWU7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLWdhbGxlcmlhLXRodW1ibmFpbC1pdGVtJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZ2FsbGVyaWEtdGh1bWJuYWlsLWl0ZW0tY3VycmVudCc6IGFjdGl2ZUluZGV4ID09PSBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZ2FsbGVyaWEtdGh1bWJuYWlsLWl0ZW0tYWN0aXZlJzogaXNJdGVtQWN0aXZlKGluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZ2FsbGVyaWEtdGh1bWJuYWlsLWl0ZW0tc3RhcnQnOiBmaXJzdEl0ZW1BY2l2ZUluZGV4KCkgPT09IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1nYWxsZXJpYS10aHVtYm5haWwtaXRlbS1lbmQnOiBsYXN0SXRlbUFjdGl2ZUluZGV4KCkgPT09IGluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJhY3RpdmVJbmRleCA9PT0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiY29udGFpbmVySWQgKyAnX2l0ZW1fJyArIGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3RodW1ibmFpbGl0ZW0nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtYWN0aXZlXT1cImFjdGl2ZUluZGV4ID09PSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25UaHVtYm5haWxLZXlkb3duKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1nYWxsZXJpYS10aHVtYm5haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJhY3RpdmVJbmRleCA9PT0gaW5kZXggPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYWN0aXZlSW5kZXggPT09IGluZGV4ID8gJ3BhZ2UnIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhUGFnZUxhYmVsKGluZGV4ICsgMSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvdWNoZW5kKT1cIm9uSXRlbUNsaWNrKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uSXRlbUNsaWNrKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1nYWxsZXJpYUl0ZW1TbG90IHR5cGU9XCJ0aHVtYm5haWxcIiBbaXRlbV09XCJpdGVtXCIgW3RlbXBsYXRlc109XCJ0ZW1wbGF0ZXNcIj48L3AtZ2FsbGVyaWFJdGVtU2xvdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1RodW1ibmFpbE5hdmlnYXRvcnNcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZ2FsbGVyaWEtdGh1bWJuYWlsLW5leHQtYnV0dG9uIHAtZ2FsbGVyaWEtdGh1bWJuYWlsLW5hdi1idXR0b24nOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiB0aGlzLmlzTmF2Rm9yd2FyZERpc2FibGVkKClcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZGb3J3YXJkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNOYXZGb3J3YXJkRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTmV4dEJ1dHRvbkxhYmVsKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFnYWxsZXJpYS5uZXh0VGh1bWJuYWlsSWNvblRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0SWNvbiAqbmdJZj1cIiFpc1ZlcnRpY2FsXCIgW25nQ2xhc3NdPVwiJ3AtZ2FsbGVyaWEtdGh1bWJuYWlsLW5leHQtaWNvbidcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENoZXZyb25Eb3duSWNvbiAqbmdJZj1cImlzVmVydGljYWxcIiBbbmdDbGFzc109XCIncC1nYWxsZXJpYS10aHVtYm5haWwtbmV4dC1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJnYWxsZXJpYS5uZXh0VGh1bWJuYWlsSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEdhbGxlcmlhVGh1bWJuYWlscyBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBjb250YWluZXJJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgdmFsdWU6IGFueVtdIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzVmVydGljYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzbGlkZVNob3dBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaXJjdWxhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgcmVzcG9uc2l2ZU9wdGlvbnM6IEdhbGxlcmlhUmVzcG9uc2l2ZU9wdGlvbnNbXSB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGNvbnRlbnRIZWlnaHQ6IHN0cmluZyA9ICczMDBweCc7XG5cbiAgICBASW5wdXQoKSBzaG93VGh1bWJuYWlsTmF2aWdhdG9ycyA9IHRydWU7XG5cbiAgICBASW5wdXQoKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIEBPdXRwdXQoKSBvbkFjdGl2ZUluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBzdG9wU2xpZGVTaG93OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaXRlbXNDb250YWluZXInKSBpdGVtc0NvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGdldCBudW1WaXNpYmxlKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1WaXNpYmxlO1xuICAgIH1cblxuICAgIHNldCBudW1WaXNpYmxlKG51bVZpc2libGUpIHtcbiAgICAgICAgdGhpcy5fbnVtVmlzaWJsZSA9IG51bVZpc2libGU7XG4gICAgICAgIHRoaXMuX29sZE51bVZpc2libGUgPSB0aGlzLmRfbnVtVmlzaWJsZTtcbiAgICAgICAgdGhpcy5kX251bVZpc2libGUgPSBudW1WaXNpYmxlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBhY3RpdmVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlSW5kZXg7XG4gICAgfVxuXG4gICAgc2V0IGFjdGl2ZUluZGV4KGFjdGl2ZUluZGV4KSB7XG4gICAgICAgIHRoaXMuX29sZGFjdGl2ZUluZGV4ID0gdGhpcy5fYWN0aXZlSW5kZXg7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUluZGV4ID0gYWN0aXZlSW5kZXg7XG4gICAgfVxuXG4gICAgaW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAgIHN0YXJ0UG9zOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfCBudWxsID0gbnVsbDtcblxuICAgIHRodW1ibmFpbHNTdHlsZTogSFRNTFN0eWxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgc29ydGVkUmVzcG9uc2l2ZU9wdGlvbnM6IEdhbGxlcmlhUmVzcG9uc2l2ZU9wdGlvbnNbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgdG90YWxTaGlmdGVkSXRlbXM6IG51bWJlciA9IDA7XG5cbiAgICBwYWdlOiBudW1iZXIgPSAwO1xuXG4gICAgZG9jdW1lbnRSZXNpemVMaXN0ZW5lcjogVm9pZExpc3RlbmVyO1xuXG4gICAgX251bVZpc2libGU6IG51bWJlciA9IDA7XG5cbiAgICBkX251bVZpc2libGU6IG51bWJlciA9IDA7XG5cbiAgICBfb2xkTnVtVmlzaWJsZTogbnVtYmVyID0gMDtcblxuICAgIF9hY3RpdmVJbmRleDogbnVtYmVyID0gMDtcblxuICAgIF9vbGRhY3RpdmVJbmRleDogbnVtYmVyID0gMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZ2FsbGVyaWE6IEdhbGxlcmlhLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlU3R5bGUoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVzcG9uc2l2ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJpbmREb2N1bWVudExpc3RlbmVycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICBsZXQgdG90YWxTaGlmdGVkSXRlbXMgPSB0aGlzLnRvdGFsU2hpZnRlZEl0ZW1zO1xuXG4gICAgICAgIGlmICgodGhpcy5fb2xkTnVtVmlzaWJsZSAhPT0gdGhpcy5kX251bVZpc2libGUgfHwgdGhpcy5fb2xkYWN0aXZlSW5kZXggIT09IHRoaXMuX2FjdGl2ZUluZGV4KSAmJiB0aGlzLml0ZW1zQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fYWN0aXZlSW5kZXggPD0gdGhpcy5nZXRNZWRpYW5JdGVtSW5kZXgoKSkge1xuICAgICAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zID0gMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKDxhbnlbXT50aGlzLnZhbHVlKS5sZW5ndGggLSB0aGlzLmRfbnVtVmlzaWJsZSArIHRoaXMuZ2V0TWVkaWFuSXRlbUluZGV4KCkgPCB0aGlzLl9hY3RpdmVJbmRleCkge1xuICAgICAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zID0gdGhpcy5kX251bVZpc2libGUgLSAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKDxhbnlbXT50aGlzLnZhbHVlKS5sZW5ndGggLSB0aGlzLmRfbnVtVmlzaWJsZSA8IHRoaXMuX2FjdGl2ZUluZGV4ICYmIHRoaXMuZF9udW1WaXNpYmxlICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zID0gdGhpcy5fYWN0aXZlSW5kZXggKiAtMSArIHRoaXMuZ2V0TWVkaWFuSXRlbUluZGV4KCkgKyAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b3RhbFNoaWZ0ZWRJdGVtcyA9IHRoaXMuX2FjdGl2ZUluZGV4ICogLTEgKyB0aGlzLmdldE1lZGlhbkl0ZW1JbmRleCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodG90YWxTaGlmdGVkSXRlbXMgIT09IHRoaXMudG90YWxTaGlmdGVkSXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsU2hpZnRlZEl0ZW1zID0gdG90YWxTaGlmdGVkSXRlbXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW1zQ29udGFpbmVyICYmIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSB0aGlzLmlzVmVydGljYWwgPyBgdHJhbnNsYXRlM2QoMCwgJHt0b3RhbFNoaWZ0ZWRJdGVtcyAqICgxMDAgLyB0aGlzLmRfbnVtVmlzaWJsZSl9JSwgMClgIDogYHRyYW5zbGF0ZTNkKCR7dG90YWxTaGlmdGVkSXRlbXMgKiAoMTAwIC8gdGhpcy5kX251bVZpc2libGUpfSUsIDAsIDApYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX29sZGFjdGl2ZUluZGV4ICE9PSB0aGlzLl9hY3RpdmVJbmRleCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudCwgJ3AtaXRlbXMtaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zaXRpb24gPSAndHJhbnNmb3JtIDUwMG1zIGVhc2UgMHMnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9vbGRhY3RpdmVJbmRleCA9IHRoaXMuX2FjdGl2ZUluZGV4O1xuICAgICAgICAgICAgdGhpcy5fb2xkTnVtVmlzaWJsZSA9IHRoaXMuZF9udW1WaXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlU3R5bGUoKSB7XG4gICAgICAgIGlmICghdGhpcy50aHVtYm5haWxzU3R5bGUpIHtcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsc1N0eWxlID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudGh1bWJuYWlsc1N0eWxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpbm5lckhUTUwgPSBgXG4gICAgICAgICAgICAjJHt0aGlzLmNvbnRhaW5lcklkfSAucC1nYWxsZXJpYS10aHVtYm5haWwtaXRlbSB7XG4gICAgICAgICAgICAgICAgZmxleDogMSAwICR7MTAwIC8gdGhpcy5kX251bVZpc2libGV9JVxuICAgICAgICAgICAgfVxuICAgICAgICBgO1xuXG4gICAgICAgIGlmICh0aGlzLnJlc3BvbnNpdmVPcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnNvcnRlZFJlc3BvbnNpdmVPcHRpb25zID0gWy4uLnRoaXMucmVzcG9uc2l2ZU9wdGlvbnNdO1xuICAgICAgICAgICAgdGhpcy5zb3J0ZWRSZXNwb25zaXZlT3B0aW9ucy5zb3J0KChkYXRhMSwgZGF0YTIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTEgPSBkYXRhMS5icmVha3BvaW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IGRhdGEyLmJyZWFrcG9pbnQ7XG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlMSAhPSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAxO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAwO1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKSByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIsIHVuZGVmaW5lZCwgeyBudW1lcmljOiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIGVsc2UgcmVzdWx0ID0gdmFsdWUxIDwgdmFsdWUyID8gLTEgOiB2YWx1ZTEgPiB2YWx1ZTIgPyAxIDogMDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAtMSAqIHJlc3VsdDtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc29ydGVkUmVzcG9uc2l2ZU9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5zb3J0ZWRSZXNwb25zaXZlT3B0aW9uc1tpXTtcblxuICAgICAgICAgICAgICAgIGlubmVySFRNTCArPSBgXG4gICAgICAgICAgICAgICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR7cmVzLmJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAjJHt0aGlzLmNvbnRhaW5lcklkfSAucC1nYWxsZXJpYS10aHVtYm5haWwtaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleDogMSAwICR7MTAwIC8gcmVzLm51bVZpc2libGV9JVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGh1bWJuYWlsc1N0eWxlLmlubmVySFRNTCA9IGlubmVySFRNTDtcbiAgICAgICAgc2V0QXR0cmlidXRlKHRoaXMudGh1bWJuYWlsc1N0eWxlLCAnbm9uY2UnLCB0aGlzLmdhbGxlcmlhLmNvbmZpZz8uY3NwKCk/Lm5vbmNlKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVQb3NpdGlvbigpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW1zQ29udGFpbmVyICYmIHRoaXMuc29ydGVkUmVzcG9uc2l2ZU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBsZXQgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgbWF0Y2hlZFJlc3BvbnNpdmVEYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBudW1WaXNpYmxlOiB0aGlzLl9udW1WaXNpYmxlXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zb3J0ZWRSZXNwb25zaXZlT3B0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5zb3J0ZWRSZXNwb25zaXZlT3B0aW9uc1tpXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocGFyc2VJbnQocmVzLmJyZWFrcG9pbnQsIDEwKSA+PSB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZFJlc3BvbnNpdmVEYXRhID0gcmVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZF9udW1WaXNpYmxlICE9PSBtYXRjaGVkUmVzcG9uc2l2ZURhdGEubnVtVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRfbnVtVmlzaWJsZSA9IG1hdGNoZWRSZXNwb25zaXZlRGF0YS5udW1WaXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRhYkluZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNJdGVtQWN0aXZlKGluZGV4KSA/IDAgOiBudWxsO1xuICAgIH1cblxuICAgIG5hdkZvcndhcmQoZTogVG91Y2hFdmVudCB8IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zdG9wVGhlU2xpZGVTaG93KCk7XG5cbiAgICAgICAgbGV0IG5leHRJdGVtSW5kZXggPSB0aGlzLl9hY3RpdmVJbmRleCArIDE7XG4gICAgICAgIGlmIChuZXh0SXRlbUluZGV4ICsgdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcyA+IHRoaXMuZ2V0TWVkaWFuSXRlbUluZGV4KCkgJiYgKC0xICogdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcyA8IHRoaXMuZ2V0VG90YWxQYWdlTnVtYmVyKCkgLSAxIHx8IHRoaXMuY2lyY3VsYXIpKSB7XG4gICAgICAgICAgICB0aGlzLnN0ZXAoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFjdGl2ZUluZGV4ID0gdGhpcy5jaXJjdWxhciAmJiAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aCAtIDEgPT09IHRoaXMuX2FjdGl2ZUluZGV4ID8gMCA6IG5leHRJdGVtSW5kZXg7XG4gICAgICAgIHRoaXMub25BY3RpdmVJbmRleENoYW5nZS5lbWl0KGFjdGl2ZUluZGV4KTtcblxuICAgICAgICBpZiAoZS5jYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuYXZCYWNrd2FyZChlOiBUb3VjaEV2ZW50IHwgTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnN0b3BUaGVTbGlkZVNob3coKTtcblxuICAgICAgICBsZXQgcHJldkl0ZW1JbmRleCA9IHRoaXMuX2FjdGl2ZUluZGV4ICE9PSAwID8gdGhpcy5fYWN0aXZlSW5kZXggLSAxIDogMDtcbiAgICAgICAgbGV0IGRpZmYgPSBwcmV2SXRlbUluZGV4ICsgdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcztcbiAgICAgICAgaWYgKHRoaXMuZF9udW1WaXNpYmxlIC0gZGlmZiAtIDEgPiB0aGlzLmdldE1lZGlhbkl0ZW1JbmRleCgpICYmICgtMSAqIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgIT09IDAgfHwgdGhpcy5jaXJjdWxhcikpIHtcbiAgICAgICAgICAgIHRoaXMuc3RlcCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhY3RpdmVJbmRleCA9IHRoaXMuY2lyY3VsYXIgJiYgdGhpcy5fYWN0aXZlSW5kZXggPT09IDAgPyAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aCAtIDEgOiBwcmV2SXRlbUluZGV4O1xuICAgICAgICB0aGlzLm9uQWN0aXZlSW5kZXhDaGFuZ2UuZW1pdChhY3RpdmVJbmRleCk7XG5cbiAgICAgICAgaWYgKGUuY2FuY2VsYWJsZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnN0b3BUaGVTbGlkZVNob3coKTtcblxuICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtSW5kZXggPSBpbmRleDtcbiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUluZGV4ICE9PSB0aGlzLl9hY3RpdmVJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IHNlbGVjdGVkSXRlbUluZGV4ICsgdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcztcbiAgICAgICAgICAgIGxldCBkaXIgPSAwO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUluZGV4IDwgdGhpcy5fYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICAgICAgICBkaXIgPSB0aGlzLmRfbnVtVmlzaWJsZSAtIGRpZmYgLSAxIC0gdGhpcy5nZXRNZWRpYW5JdGVtSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBpZiAoZGlyID4gMCAmJiAtMSAqIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwKGRpcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkaXIgPSB0aGlzLmdldE1lZGlhbkl0ZW1JbmRleCgpIC0gZGlmZjtcbiAgICAgICAgICAgICAgICBpZiAoZGlyIDwgMCAmJiAtMSAqIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgPCB0aGlzLmdldFRvdGFsUGFnZU51bWJlcigpIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0ZXAoZGlyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBzZWxlY3RlZEl0ZW1JbmRleDtcbiAgICAgICAgICAgIHRoaXMub25BY3RpdmVJbmRleENoYW5nZS5lbWl0KHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UaHVtYm5haWxLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInIHx8IGV2ZW50LmNvZGUgPT09ICdTcGFjZScpIHtcbiAgICAgICAgICAgIHRoaXMub25JdGVtQ2xpY2soaW5kZXgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblJpZ2h0S2V5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxlZnRLZXkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhvbWVLZXkoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdFbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25FbmRLZXkoKTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uVGFiS2V5KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblJpZ2h0S2V5KCkge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JzID0gZmluZCh0aGlzLml0ZW1zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwidGh1bWJuYWlsaXRlbVwiXScpO1xuICAgICAgICBjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuZmluZEZvY3VzZWRJbmRpY2F0b3JJbmRleCgpO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlZEZvY3VzZWRJbmRpY2F0b3IoYWN0aXZlSW5kZXgsIGFjdGl2ZUluZGV4ICsgMSA9PT0gaW5kaWNhdG9ycy5sZW5ndGggPyBpbmRpY2F0b3JzLmxlbmd0aCAtIDEgOiBhY3RpdmVJbmRleCArIDEpO1xuICAgIH1cblxuICAgIG9uTGVmdEtleSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmZpbmRGb2N1c2VkSW5kaWNhdG9ySW5kZXgoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZWRGb2N1c2VkSW5kaWNhdG9yKGFjdGl2ZUluZGV4LCBhY3RpdmVJbmRleCAtIDEgPD0gMCA/IDAgOiBhY3RpdmVJbmRleCAtIDEpO1xuICAgIH1cblxuICAgIG9uSG9tZUtleSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmZpbmRGb2N1c2VkSW5kaWNhdG9ySW5kZXgoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZWRGb2N1c2VkSW5kaWNhdG9yKGFjdGl2ZUluZGV4LCAwKTtcbiAgICB9XG5cbiAgICBvbkVuZEtleSgpIHtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9ycyA9IGZpbmQodGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cInRodW1ibmFpbGl0ZW1cIl0nKTtcbiAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmZpbmRGb2N1c2VkSW5kaWNhdG9ySW5kZXgoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZWRGb2N1c2VkSW5kaWNhdG9yKGFjdGl2ZUluZGV4LCBpbmRpY2F0b3JzLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIG9uVGFiS2V5KCkge1xuICAgICAgICBjb25zdCBpbmRpY2F0b3JzID0gPGFueT5bLi4uZmluZCh0aGlzLml0ZW1zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwidGh1bWJuYWlsaXRlbVwiXScpXTtcbiAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRJbmRleCA9IGluZGljYXRvcnMuZmluZEluZGV4KChpbmQpID0+IGdldEF0dHJpYnV0ZShpbmQsICdkYXRhLXAtYWN0aXZlJykgPT09IHRydWUpO1xuXG4gICAgICAgIGNvbnN0IGFjdGl2ZUluZGljYXRvciA9IDxhbnk+ZmluZFNpbmdsZSh0aGlzLml0ZW1zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdbdGFiaW5kZXg9XCIwXCJdJyk7XG5cbiAgICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSBpbmRpY2F0b3JzLmZpbmRJbmRleCgoaW5kKSA9PiBpbmQgPT09IGFjdGl2ZUluZGljYXRvci5wYXJlbnRFbGVtZW50KTtcblxuICAgICAgICBpbmRpY2F0b3JzW2FjdGl2ZUluZGV4XS5jaGlsZHJlblswXS50YWJJbmRleCA9ICctMSc7XG4gICAgICAgIGluZGljYXRvcnNbaGlnaGxpZ2h0ZWRJbmRleF0uY2hpbGRyZW5bMF0udGFiSW5kZXggPSAnMCc7XG4gICAgfVxuXG4gICAgZmluZEZvY3VzZWRJbmRpY2F0b3JJbmRleCgpIHtcbiAgICAgICAgY29uc3QgaW5kaWNhdG9ycyA9IFsuLi5maW5kKHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJ0aHVtYm5haWxpdGVtXCJdJyldO1xuICAgICAgICBjb25zdCBhY3RpdmVJbmRpY2F0b3IgPSBmaW5kU2luZ2xlKHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJ0aHVtYm5haWxpdGVtXCJdID4gW3RhYmluZGV4PVwiMFwiXScpO1xuXG4gICAgICAgIHJldHVybiBpbmRpY2F0b3JzLmZpbmRJbmRleCgoaW5kKSA9PiBpbmQgPT09IGFjdGl2ZUluZGljYXRvci5wYXJlbnRFbGVtZW50KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VkRm9jdXNlZEluZGljYXRvcihwcmV2SW5kLCBuZXh0SW5kKSB7XG4gICAgICAgIGNvbnN0IGluZGljYXRvcnMgPSA8YW55PmZpbmQodGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cInRodW1ibmFpbGl0ZW1cIl0nKTtcblxuICAgICAgICBpbmRpY2F0b3JzW3ByZXZJbmRdLmNoaWxkcmVuWzBdLnRhYkluZGV4ID0gJy0xJztcbiAgICAgICAgaW5kaWNhdG9yc1tuZXh0SW5kXS5jaGlsZHJlblswXS50YWJJbmRleCA9ICcwJztcbiAgICAgICAgaW5kaWNhdG9yc1tuZXh0SW5kXS5jaGlsZHJlblswXS5mb2N1cygpO1xuICAgIH1cblxuICAgIHN0ZXAoZGlyOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHRvdGFsU2hpZnRlZEl0ZW1zID0gdGhpcy50b3RhbFNoaWZ0ZWRJdGVtcyArIGRpcjtcblxuICAgICAgICBpZiAoZGlyIDwgMCAmJiAtMSAqIHRvdGFsU2hpZnRlZEl0ZW1zICsgdGhpcy5kX251bVZpc2libGUgPiAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRvdGFsU2hpZnRlZEl0ZW1zID0gdGhpcy5kX251bVZpc2libGUgLSAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aDtcbiAgICAgICAgfSBlbHNlIGlmIChkaXIgPiAwICYmIHRvdGFsU2hpZnRlZEl0ZW1zID4gMCkge1xuICAgICAgICAgICAgdG90YWxTaGlmdGVkSXRlbXMgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2lyY3VsYXIpIHtcbiAgICAgICAgICAgIGlmIChkaXIgPCAwICYmICg8YW55W10+dGhpcy52YWx1ZSkubGVuZ3RoIC0gMSA9PT0gdGhpcy5fYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0b3RhbFNoaWZ0ZWRJdGVtcyA9IDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpciA+IDAgJiYgdGhpcy5fYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0b3RhbFNoaWZ0ZWRJdGVtcyA9IHRoaXMuZF9udW1WaXNpYmxlIC0gKDxhbnlbXT50aGlzLnZhbHVlKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAncC1pdGVtcy1oaWRkZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSB0aGlzLmlzVmVydGljYWwgPyBgdHJhbnNsYXRlM2QoMCwgJHt0b3RhbFNoaWZ0ZWRJdGVtcyAqICgxMDAgLyB0aGlzLmRfbnVtVmlzaWJsZSl9JSwgMClgIDogYHRyYW5zbGF0ZTNkKCR7dG90YWxTaGlmdGVkSXRlbXMgKiAoMTAwIC8gdGhpcy5kX251bVZpc2libGUpfSUsIDAsIDApYDtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJ3RyYW5zZm9ybSA1MDBtcyBlYXNlIDBzJztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG90YWxTaGlmdGVkSXRlbXMgPSB0b3RhbFNoaWZ0ZWRJdGVtcztcbiAgICB9XG5cbiAgICBzdG9wVGhlU2xpZGVTaG93KCkge1xuICAgICAgICBpZiAodGhpcy5zbGlkZVNob3dBY3RpdmUgJiYgdGhpcy5zdG9wU2xpZGVTaG93KSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BTbGlkZVNob3cuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlUGFnZU9uVG91Y2goZTogVG91Y2hFdmVudCwgZGlmZjogbnVtYmVyKSB7XG4gICAgICAgIGlmIChkaWZmIDwgMCkge1xuICAgICAgICAgICAgLy8gbGVmdFxuICAgICAgICAgICAgdGhpcy5uYXZGb3J3YXJkKGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gcmlnaHRcbiAgICAgICAgICAgIHRoaXMubmF2QmFja3dhcmQoZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUb3RhbFBhZ2VOdW1iZXIoKSB7XG4gICAgICAgIHJldHVybiAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aCA+IHRoaXMuZF9udW1WaXNpYmxlID8gKDxhbnlbXT50aGlzLnZhbHVlKS5sZW5ndGggLSB0aGlzLmRfbnVtVmlzaWJsZSArIDEgOiAwO1xuICAgIH1cblxuICAgIGdldE1lZGlhbkl0ZW1JbmRleCgpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gTWF0aC5mbG9vcih0aGlzLmRfbnVtVmlzaWJsZSAvIDIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmRfbnVtVmlzaWJsZSAlIDIgPyBpbmRleCA6IGluZGV4IC0gMTtcbiAgICB9XG5cbiAgICBvblRyYW5zaXRpb25FbmQoKSB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zQ29udGFpbmVyICYmIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5pdGVtc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAncC1pdGVtcy1oaWRkZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2l0aW9uID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvdWNoRW5kKGU6IFRvdWNoRXZlbnQpIHtcbiAgICAgICAgbGV0IHRvdWNob2JqID0gZS5jaGFuZ2VkVG91Y2hlc1swXTtcblxuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VPblRvdWNoKGUsIHRvdWNob2JqLnBhZ2VZIC0gKDx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+dGhpcy5zdGFydFBvcykueSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVBhZ2VPblRvdWNoKGUsIHRvdWNob2JqLnBhZ2VYIC0gKDx7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+dGhpcy5zdGFydFBvcykueCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvdWNoTW92ZShlOiBUb3VjaEV2ZW50KSB7XG4gICAgICAgIGlmIChlLmNhbmNlbGFibGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVG91Y2hTdGFydChlOiBUb3VjaEV2ZW50KSB7XG4gICAgICAgIGxldCB0b3VjaG9iaiA9IGUuY2hhbmdlZFRvdWNoZXNbMF07XG5cbiAgICAgICAgdGhpcy5zdGFydFBvcyA9IHtcbiAgICAgICAgICAgIHg6IHRvdWNob2JqLnBhZ2VYLFxuICAgICAgICAgICAgeTogdG91Y2hvYmoucGFnZVlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpc05hdkJhY2t3YXJkRGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiAoIXRoaXMuY2lyY3VsYXIgJiYgdGhpcy5fYWN0aXZlSW5kZXggPT09IDApIHx8ICg8YW55W10+dGhpcy52YWx1ZSkubGVuZ3RoIDw9IHRoaXMuZF9udW1WaXNpYmxlO1xuICAgIH1cblxuICAgIGlzTmF2Rm9yd2FyZERpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gKCF0aGlzLmNpcmN1bGFyICYmIHRoaXMuX2FjdGl2ZUluZGV4ID09PSAoPGFueVtdPnRoaXMudmFsdWUpLmxlbmd0aCAtIDEpIHx8ICg8YW55W10+dGhpcy52YWx1ZSkubGVuZ3RoIDw9IHRoaXMuZF9udW1WaXNpYmxlO1xuICAgIH1cblxuICAgIGZpcnN0SXRlbUFjaXZlSW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsU2hpZnRlZEl0ZW1zICogLTE7XG4gICAgfVxuXG4gICAgbGFzdEl0ZW1BY3RpdmVJbmRleCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlyc3RJdGVtQWNpdmVJbmRleCgpICsgdGhpcy5kX251bVZpc2libGUgLSAxO1xuICAgIH1cblxuICAgIGlzSXRlbUFjdGl2ZShpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0SXRlbUFjaXZlSW5kZXgoKSA8PSBpbmRleCAmJiB0aGlzLmxhc3RJdGVtQWN0aXZlSW5kZXgoKSA+PSBpbmRleDtcbiAgICB9XG5cbiAgICBiaW5kRG9jdW1lbnRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3IHx8ICd3aW5kb3cnO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4od2luZG93LCAncmVzaXplJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kRG9jdW1lbnRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50UmVzaXplTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFJlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zaXZlT3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy51bmJpbmREb2N1bWVudExpc3RlbmVycygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGh1bWJuYWlsc1N0eWxlKSB7XG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbHNTdHlsZS5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZCh0aGlzLnRodW1ibmFpbHNTdHlsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcmlhUHJldkJ1dHRvbkxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nYWxsZXJpYS5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuZ2FsbGVyaWEuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEucHJldlBhZ2VMYWJlbCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhcmlhTmV4dEJ1dHRvbkxhYmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nYWxsZXJpYS5jb25maWcudHJhbnNsYXRpb24uYXJpYSA/IHRoaXMuZ2FsbGVyaWEuY29uZmlnLnRyYW5zbGF0aW9uLmFyaWEubmV4dFBhZ2VMYWJlbCA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBhcmlhUGFnZUxhYmVsKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdhbGxlcmlhLmNvbmZpZy50cmFuc2xhdGlvbi5hcmlhID8gdGhpcy5nYWxsZXJpYS5jb25maWcudHJhbnNsYXRpb24uYXJpYS5wYWdlTGFiZWwucmVwbGFjZSgve3BhZ2V9L2csIHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlLCBSaXBwbGUsIFRpbWVzSWNvbiwgQ2hldnJvblJpZ2h0SWNvbiwgQ2hldnJvbkxlZnRJY29uLCBXaW5kb3dNYXhpbWl6ZUljb24sIFdpbmRvd01pbmltaXplSWNvbiwgRm9jdXNUcmFwXSxcbiAgICBleHBvcnRzOiBbQ29tbW9uTW9kdWxlLCBHYWxsZXJpYSwgR2FsbGVyaWFDb250ZW50LCBHYWxsZXJpYUl0ZW1TbG90LCBHYWxsZXJpYUl0ZW0sIEdhbGxlcmlhVGh1bWJuYWlscywgU2hhcmVkTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtHYWxsZXJpYSwgR2FsbGVyaWFDb250ZW50LCBHYWxsZXJpYUl0ZW1TbG90LCBHYWxsZXJpYUl0ZW0sIEdhbGxlcmlhVGh1bWJuYWlsc11cbn0pXG5leHBvcnQgY2xhc3MgR2FsbGVyaWFNb2R1bGUge31cbiJdfQ==
|