primeng 18.0.0-rc.2 → 19.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/autocomplete/autocomplete.d.ts +11 -11
- package/base/style/basestyle.d.ts +11 -11
- package/config/primeng.d.ts +12 -6
- package/config/provideprimeng.d.ts +1 -12
- package/config/themeprovider.d.ts +10 -4
- package/confirmdialog/confirmdialog.d.ts +1 -0
- package/fesm2022/primeng-accordion.mjs +12 -12
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +1 -1
- package/fesm2022/primeng-animateonscroll.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +5 -5
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +135 -136
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +1 -1
- package/fesm2022/primeng-autofocus.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +2 -2
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +2 -2
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +3 -3
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +1 -1
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +2 -2
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +2 -2
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +5 -5
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +2 -2
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +3 -3
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +2 -2
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +2 -2
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +6 -6
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +2 -2
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +3 -4
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +2 -2
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +3 -3
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-config.mjs +39 -40
- package/fesm2022/primeng-config.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +13 -10
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +2 -2
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +6 -6
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +2 -2
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +5 -5
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +18 -19
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -2
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +3 -4
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +2 -2
- package/fesm2022/primeng-dragdrop.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +5 -5
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +4 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +4 -4
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +2 -2
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +2 -2
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +3 -4
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +2 -2
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +2 -2
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-focustrap.mjs +1 -1
- package/fesm2022/primeng-focustrap.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +10 -10
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +2 -2
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +2 -2
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +2 -2
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +2 -2
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +2 -2
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +2 -2
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +2 -2
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +2 -2
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +2 -2
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +2 -2
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +2 -2
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +2 -2
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +2 -2
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +2 -2
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +2 -2
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +2 -2
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +2 -2
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +2 -2
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +2 -2
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +2 -2
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +2 -2
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +2 -2
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +2 -2
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +2 -2
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +2 -2
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +2 -2
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +2 -2
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +2 -2
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +2 -2
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +2 -2
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +2 -2
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +2 -2
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +2 -2
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +2 -2
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +2 -2
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +2 -2
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +2 -2
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +2 -2
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +2 -2
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +2 -2
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +2 -2
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +2 -2
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +2 -2
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +2 -2
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +2 -2
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +2 -2
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +2 -2
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +2 -2
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +2 -2
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +2 -2
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +2 -2
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +3 -3
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +2 -2
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +6 -6
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +2 -2
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +2 -2
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +2 -2
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +4 -4
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +5 -6
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +4 -4
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +2 -2
- package/fesm2022/primeng-inputswitch.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +10 -9
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -1
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-keyfilter.mjs +1 -1
- package/fesm2022/primeng-keyfilter.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +2 -2
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +2 -2
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +5 -5
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +7 -7
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +6 -6
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +2 -2
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +2 -2
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +4 -4
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +6 -9
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +4 -4
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +5 -5
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +3 -3
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +2 -2
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +7 -4
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +2 -2
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +3 -4
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +9 -9
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +30 -7
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +135 -139
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +9 -8
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +2 -2
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +2 -2
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +2 -2
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +4 -4
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +5 -2
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +2 -2
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +2 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +2 -2
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +9 -11
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +3 -4
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +4 -5
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +2 -2
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +2 -2
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +2 -2
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +2 -2
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +30 -19
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +16 -16
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +2 -2
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +1 -1
- package/fesm2022/primeng-styleclass.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +6392 -6520
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +2 -2
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +11 -11
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +5 -5
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +2 -2
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +2 -2
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +8 -8
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +6 -6
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +2 -2
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +6 -7
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +3 -4
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +2 -2
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +2 -2
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +5 -3
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +112 -63
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +5 -10
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +31 -29
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/inputtext/inputtext.d.ts +2 -2
- package/package.json +176 -524
- package/password/password.d.ts +5 -1
- package/popover/popover.d.ts +1 -1
- package/speeddial/speeddial.d.ts +2 -2
- package/splitter/splitter.d.ts +2 -3
- package/splitter/style/splitterstyle.d.ts +0 -13
- package/table/table.d.ts +928 -1030
- package/textarea/textarea.d.ts +2 -2
- package/tree/style/treestyle.d.ts +1 -1
- package/tree/tree.d.ts +4 -2
- package/treetable/treetable.d.ts +1 -1
- package/esm2022/accordion/accordion.mjs +0 -1266
- package/esm2022/accordion/primeng-accordion.mjs +0 -5
- package/esm2022/accordion/public_api.mjs +0 -3
- package/esm2022/accordion/style/accordionstyle.mjs +0 -163
- package/esm2022/animateonscroll/animateonscroll.mjs +0 -174
- package/esm2022/animateonscroll/primeng-animateonscroll.mjs +0 -5
- package/esm2022/animateonscroll/public_api.mjs +0 -2
- package/esm2022/api/blockableui.mjs +0 -2
- package/esm2022/api/confirmaeventtype.mjs +0 -10
- package/esm2022/api/confirmation.mjs +0 -2
- package/esm2022/api/confirmationservice.mjs +0 -43
- package/esm2022/api/contextmenuservice.mjs +0 -22
- package/esm2022/api/filtermatchmode.mjs +0 -23
- package/esm2022/api/filtermetadata.mjs +0 -2
- package/esm2022/api/filteroperator.mjs +0 -5
- package/esm2022/api/filterservice.mjs +0 -224
- package/esm2022/api/lazyloadevent.mjs +0 -2
- package/esm2022/api/lazyloadmeta.mjs +0 -2
- package/esm2022/api/megamenuitem.mjs +0 -2
- package/esm2022/api/menuitem.mjs +0 -2
- package/esm2022/api/messageservice.mjs +0 -47
- package/esm2022/api/overlayoptions.mjs +0 -2
- package/esm2022/api/overlayservice.mjs +0 -19
- package/esm2022/api/primeicons.mjs +0 -314
- package/esm2022/api/primeng-api.mjs +0 -5
- package/esm2022/api/public_api.mjs +0 -33
- package/esm2022/api/scrolleroptions.mjs +0 -2
- package/esm2022/api/selectitem.mjs +0 -2
- package/esm2022/api/selectitemgroup.mjs +0 -2
- package/esm2022/api/shared.mjs +0 -76
- package/esm2022/api/sortevent.mjs +0 -2
- package/esm2022/api/sortmeta.mjs +0 -2
- package/esm2022/api/tablestate.mjs +0 -2
- package/esm2022/api/toastmessage.mjs +0 -2
- package/esm2022/api/tooltipoptions.mjs +0 -2
- package/esm2022/api/translation.mjs +0 -2
- package/esm2022/api/translationkeys.mjs +0 -51
- package/esm2022/api/treedragdropservice.mjs +0 -21
- package/esm2022/api/treenode.mjs +0 -2
- package/esm2022/api/treenodedragevent.mjs +0 -2
- package/esm2022/api/treetablenode.mjs +0 -2
- package/esm2022/autocomplete/autocomplete.interface.mjs +0 -2
- package/esm2022/autocomplete/autocomplete.mjs +0 -2225
- package/esm2022/autocomplete/primeng-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/public_api.mjs +0 -4
- package/esm2022/autocomplete/style/autocompletestyle.mjs +0 -408
- package/esm2022/autofocus/autofocus.mjs +0 -86
- package/esm2022/autofocus/primeng-autofocus.mjs +0 -5
- package/esm2022/autofocus/public_api.mjs +0 -2
- package/esm2022/avatar/avatar.mjs +0 -193
- package/esm2022/avatar/primeng-avatar.mjs +0 -5
- package/esm2022/avatar/public_api.mjs +0 -3
- package/esm2022/avatar/style/avatarstyle.mjs +0 -130
- package/esm2022/avatargroup/avatargroup.mjs +0 -80
- package/esm2022/avatargroup/primeng-avatargroup.mjs +0 -5
- package/esm2022/avatargroup/public_api.mjs +0 -3
- package/esm2022/avatargroup/style/avatargroupstyle.mjs +0 -29
- package/esm2022/badge/badge.mjs +0 -332
- package/esm2022/badge/primeng-badge.mjs +0 -5
- package/esm2022/badge/public_api.mjs +0 -3
- package/esm2022/badge/style/badgestyle.mjs +0 -143
- package/esm2022/base/base.mjs +0 -19
- package/esm2022/base/primeng-base.mjs +0 -5
- package/esm2022/base/public_api.mjs +0 -3
- package/esm2022/base/style/basestyle.mjs +0 -256
- package/esm2022/basecomponent/basecomponent.mjs +0 -183
- package/esm2022/basecomponent/primeng-basecomponent.mjs +0 -5
- package/esm2022/basecomponent/public_api.mjs +0 -3
- package/esm2022/basecomponent/style/basecomponentstyle.mjs +0 -13
- package/esm2022/blockui/blockui.interface.mjs +0 -2
- package/esm2022/blockui/blockui.mjs +0 -210
- package/esm2022/blockui/primeng-blockui.mjs +0 -5
- package/esm2022/blockui/public_api.mjs +0 -4
- package/esm2022/blockui/style/blockuistyle.mjs +0 -50
- package/esm2022/breadcrumb/breadcrumb.interface.mjs +0 -2
- package/esm2022/breadcrumb/breadcrumb.mjs +0 -583
- package/esm2022/breadcrumb/primeng-breadcrumb.mjs +0 -5
- package/esm2022/breadcrumb/public_api.mjs +0 -4
- package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +0 -133
- package/esm2022/button/button.interface.mjs +0 -2
- package/esm2022/button/button.mjs +0 -896
- package/esm2022/button/primeng-button.mjs +0 -5
- package/esm2022/button/public_api.mjs +0 -4
- package/esm2022/button/style/buttonstyle.mjs +0 -707
- package/esm2022/buttongroup/buttongroup.mjs +0 -47
- package/esm2022/buttongroup/primeng-buttongroup.mjs +0 -5
- package/esm2022/buttongroup/public_api.mjs +0 -3
- package/esm2022/buttongroup/style/buttongroupstyle.mjs +0 -120
- package/esm2022/calendar/calendar.interface.mjs +0 -2
- package/esm2022/calendar/calendar.mjs +0 -4504
- package/esm2022/calendar/primeng-calendar.mjs +0 -5
- package/esm2022/calendar/public_api.mjs +0 -4
- package/esm2022/calendar/style/calendarstyle.mjs +0 -472
- package/esm2022/card/card.interface.mjs +0 -2
- package/esm2022/card/card.mjs +0 -243
- package/esm2022/card/primeng-card.mjs +0 -5
- package/esm2022/card/public_api.mjs +0 -4
- package/esm2022/card/style/cardstyle.mjs +0 -100
- package/esm2022/carousel/carousel.interface.mjs +0 -2
- package/esm2022/carousel/carousel.mjs +0 -1181
- package/esm2022/carousel/primeng-carousel.mjs +0 -5
- package/esm2022/carousel/public_api.mjs +0 -4
- package/esm2022/carousel/style/carouselstyle.mjs +0 -234
- package/esm2022/cascadeselect/cascadeselect.interface.mjs +0 -2
- package/esm2022/cascadeselect/cascadeselect.mjs +0 -1840
- package/esm2022/cascadeselect/primeng-cascadeselect.mjs +0 -5
- package/esm2022/cascadeselect/public_api.mjs +0 -4
- package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +0 -379
- package/esm2022/chart/chart.mjs +0 -210
- package/esm2022/chart/primeng-chart.mjs +0 -5
- package/esm2022/chart/public_api.mjs +0 -3
- package/esm2022/chart/style/chartstyle.mjs +0 -36
- package/esm2022/checkbox/checkbox.interface.mjs +0 -2
- package/esm2022/checkbox/checkbox.mjs +0 -450
- package/esm2022/checkbox/primeng-checkbox.mjs +0 -5
- package/esm2022/checkbox/public_api.mjs +0 -4
- package/esm2022/checkbox/style/checkboxstyle.mjs +0 -191
- package/esm2022/chip/chip.interface.mjs +0 -2
- package/esm2022/chip/chip.mjs +0 -337
- package/esm2022/chip/primeng-chip.mjs +0 -5
- package/esm2022/chip/public_api.mjs +0 -4
- package/esm2022/chip/style/chipstyle.mjs +0 -104
- package/esm2022/colorpicker/colorpicker.interface.mjs +0 -2
- package/esm2022/colorpicker/colorpicker.mjs +0 -856
- package/esm2022/colorpicker/primeng-colorpicker.mjs +0 -5
- package/esm2022/colorpicker/public_api.mjs +0 -4
- package/esm2022/colorpicker/style/colorpickerstyle.mjs +0 -213
- package/esm2022/config/primeng-config.mjs +0 -5
- package/esm2022/config/primeng.mjs +0 -189
- package/esm2022/config/provideprimeng.mjs +0 -11
- package/esm2022/config/public_api.mjs +0 -4
- package/esm2022/config/themeprovider.mjs +0 -74
- package/esm2022/confirmdialog/confirmdialog.interface.mjs +0 -2
- package/esm2022/confirmdialog/confirmdialog.mjs +0 -810
- package/esm2022/confirmdialog/primeng-confirmdialog.mjs +0 -5
- package/esm2022/confirmdialog/public_api.mjs +0 -4
- package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +0 -67
- package/esm2022/confirmpopup/confirmpopup.interface.mjs +0 -2
- package/esm2022/confirmpopup/confirmpopup.mjs +0 -619
- package/esm2022/confirmpopup/primeng-confirmpopup.mjs +0 -5
- package/esm2022/confirmpopup/public_api.mjs +0 -4
- package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +0 -170
- package/esm2022/contextmenu/contextmenu.mjs +0 -1436
- package/esm2022/contextmenu/primeng-contextmenu.mjs +0 -5
- package/esm2022/contextmenu/public_api.mjs +0 -3
- package/esm2022/contextmenu/style/contextmenustyle.mjs +0 -244
- package/esm2022/dataview/dataview.interface.mjs +0 -2
- package/esm2022/dataview/dataview.mjs +0 -819
- package/esm2022/dataview/primeng-dataview.mjs +0 -5
- package/esm2022/dataview/public_api.mjs +0 -4
- package/esm2022/dataview/style/dataviewstyle.mjs +0 -115
- package/esm2022/datepicker/datepicker.interface.mjs +0 -2
- package/esm2022/datepicker/datepicker.mjs +0 -4539
- package/esm2022/datepicker/primeng-datepicker.mjs +0 -5
- package/esm2022/datepicker/public_api.mjs +0 -4
- package/esm2022/datepicker/style/datepickerstyle.mjs +0 -663
- package/esm2022/defer/defer.mjs +0 -100
- package/esm2022/defer/primeng-defer.mjs +0 -5
- package/esm2022/defer/public_api.mjs +0 -2
- package/esm2022/dialog/dialog.interface.mjs +0 -2
- package/esm2022/dialog/dialog.mjs +0 -1384
- package/esm2022/dialog/primeng-dialog.mjs +0 -5
- package/esm2022/dialog/public_api.mjs +0 -4
- package/esm2022/dialog/style/dialogstyle.mjs +0 -283
- package/esm2022/divider/divider.mjs +0 -119
- package/esm2022/divider/primeng-divider.mjs +0 -5
- package/esm2022/divider/public_api.mjs +0 -3
- package/esm2022/divider/style/dividerstyle.mjs +0 -138
- package/esm2022/dock/dock.interface.mjs +0 -2
- package/esm2022/dock/dock.mjs +0 -447
- package/esm2022/dock/primeng-dock.mjs +0 -5
- package/esm2022/dock/public_api.mjs +0 -4
- package/esm2022/dock/style/dockstyle.mjs +0 -210
- package/esm2022/dom/connectedoverlayscrollhandler.mjs +0 -30
- package/esm2022/dom/domhandler.mjs +0 -725
- package/esm2022/dom/primeng-dom.mjs +0 -5
- package/esm2022/dom/public_api.mjs +0 -3
- package/esm2022/dragdrop/dragdrop.mjs +0 -323
- package/esm2022/dragdrop/primeng-dragdrop.mjs +0 -5
- package/esm2022/dragdrop/public_api.mjs +0 -2
- package/esm2022/drawer/drawer.interface.mjs +0 -2
- package/esm2022/drawer/drawer.mjs +0 -663
- package/esm2022/drawer/primeng-drawer.mjs +0 -5
- package/esm2022/drawer/public_api.mjs +0 -4
- package/esm2022/drawer/style/drawerstyle.mjs +0 -283
- package/esm2022/dropdown/dropdown.interface.mjs +0 -2
- package/esm2022/dropdown/dropdown.mjs +0 -2498
- package/esm2022/dropdown/primeng-dropdown.mjs +0 -5
- package/esm2022/dropdown/public_api.mjs +0 -4
- package/esm2022/dropdown/style/dropdownstyle.mjs +0 -264
- package/esm2022/dynamicdialog/dialogservice.mjs +0 -105
- package/esm2022/dynamicdialog/dynamicdialog-config.mjs +0 -182
- package/esm2022/dynamicdialog/dynamicdialog-injector.mjs +0 -15
- package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +0 -119
- package/esm2022/dynamicdialog/dynamicdialog.mjs +0 -875
- package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +0 -18
- package/esm2022/dynamicdialog/primeng-dynamicdialog.mjs +0 -5
- package/esm2022/dynamicdialog/public_api.mjs +0 -8
- package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +0 -60
- package/esm2022/editor/editor.interface.mjs +0 -2
- package/esm2022/editor/editor.mjs +0 -427
- package/esm2022/editor/primeng-editor.mjs +0 -5
- package/esm2022/editor/public_api.mjs +0 -4
- package/esm2022/editor/style/editorstyle.mjs +0 -1008
- package/esm2022/fieldset/fieldset.interface.mjs +0 -2
- package/esm2022/fieldset/fieldset.mjs +0 -427
- package/esm2022/fieldset/primeng-fieldset.mjs +0 -5
- package/esm2022/fieldset/public_api.mjs +0 -4
- package/esm2022/fieldset/style/fieldsetstyle.mjs +0 -143
- package/esm2022/fileupload/fileupload.interface.mjs +0 -2
- package/esm2022/fileupload/fileupload.mjs +0 -1597
- package/esm2022/fileupload/primeng-fileupload.mjs +0 -5
- package/esm2022/fileupload/public_api.mjs +0 -4
- package/esm2022/fileupload/style/fileuploadstyle.mjs +0 -194
- package/esm2022/floatlabel/floatlabel.mjs +0 -61
- package/esm2022/floatlabel/primeng-floatlabel.mjs +0 -5
- package/esm2022/floatlabel/public_api.mjs +0 -3
- package/esm2022/floatlabel/style/floatlabelstyle.mjs +0 -133
- package/esm2022/fluid/fluid.mjs +0 -50
- package/esm2022/fluid/primeng-fluid.mjs +0 -5
- package/esm2022/fluid/public_api.mjs +0 -3
- package/esm2022/fluid/style/fluidstyle.mjs +0 -38
- package/esm2022/focustrap/focustrap.mjs +0 -104
- package/esm2022/focustrap/primeng-focustrap.mjs +0 -5
- package/esm2022/focustrap/public_api.mjs +0 -2
- package/esm2022/galleria/galleria.interface.mjs +0 -2
- package/esm2022/galleria/galleria.mjs +0 -1858
- package/esm2022/galleria/primeng-galleria.mjs +0 -5
- package/esm2022/galleria/public_api.mjs +0 -4
- package/esm2022/galleria/style/galleriastyle.mjs +0 -644
- package/esm2022/iconfield/iconfield.mjs +0 -73
- package/esm2022/iconfield/primeng-iconfield.mjs +0 -5
- package/esm2022/iconfield/public_api.mjs +0 -3
- package/esm2022/iconfield/style/iconfieldstyle.mjs +0 -77
- package/esm2022/icons/angledoubledown/angledoubledown.mjs +0 -34
- package/esm2022/icons/angledoubledown/primeng-icons-angledoubledown.mjs +0 -5
- package/esm2022/icons/angledoubledown/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +0 -34
- package/esm2022/icons/angledoubleleft/primeng-icons-angledoubleleft.mjs +0 -5
- package/esm2022/icons/angledoubleleft/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleright/angledoubleright.mjs +0 -34
- package/esm2022/icons/angledoubleright/primeng-icons-angledoubleright.mjs +0 -5
- package/esm2022/icons/angledoubleright/public_api.mjs +0 -2
- package/esm2022/icons/angledoubleup/angledoubleup.mjs +0 -34
- package/esm2022/icons/angledoubleup/primeng-icons-angledoubleup.mjs +0 -5
- package/esm2022/icons/angledoubleup/public_api.mjs +0 -2
- package/esm2022/icons/angledown/angledown.mjs +0 -32
- package/esm2022/icons/angledown/primeng-icons-angledown.mjs +0 -5
- package/esm2022/icons/angledown/public_api.mjs +0 -2
- package/esm2022/icons/angleleft/angleleft.mjs +0 -32
- package/esm2022/icons/angleleft/primeng-icons-angleleft.mjs +0 -5
- package/esm2022/icons/angleleft/public_api.mjs +0 -2
- package/esm2022/icons/angleright/angleright.mjs +0 -32
- package/esm2022/icons/angleright/primeng-icons-angleright.mjs +0 -5
- package/esm2022/icons/angleright/public_api.mjs +0 -2
- package/esm2022/icons/angleup/angleup.mjs +0 -32
- package/esm2022/icons/angleup/primeng-icons-angleup.mjs +0 -5
- package/esm2022/icons/angleup/public_api.mjs +0 -2
- package/esm2022/icons/arrowdown/arrowdown.mjs +0 -53
- package/esm2022/icons/arrowdown/primeng-icons-arrowdown.mjs +0 -5
- package/esm2022/icons/arrowdown/public_api.mjs +0 -2
- package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +0 -32
- package/esm2022/icons/arrowdownleft/primeng-icons-arrowdownleft.mjs +0 -5
- package/esm2022/icons/arrowdownleft/public_api.mjs +0 -2
- package/esm2022/icons/arrowdownright/arrowdownright.mjs +0 -32
- package/esm2022/icons/arrowdownright/primeng-icons-arrowdownright.mjs +0 -5
- package/esm2022/icons/arrowdownright/public_api.mjs +0 -2
- package/esm2022/icons/arrowleft/arrowleft.mjs +0 -53
- package/esm2022/icons/arrowleft/primeng-icons-arrowleft.mjs +0 -5
- package/esm2022/icons/arrowleft/public_api.mjs +0 -2
- package/esm2022/icons/arrowright/arrowright.mjs +0 -34
- package/esm2022/icons/arrowright/primeng-icons-arrowright.mjs +0 -5
- package/esm2022/icons/arrowright/public_api.mjs +0 -2
- package/esm2022/icons/arrowup/arrowup.mjs +0 -53
- package/esm2022/icons/arrowup/primeng-icons-arrowup.mjs +0 -5
- package/esm2022/icons/arrowup/public_api.mjs +0 -2
- package/esm2022/icons/ban/ban.mjs +0 -51
- package/esm2022/icons/ban/primeng-icons-ban.mjs +0 -5
- package/esm2022/icons/ban/public_api.mjs +0 -2
- package/esm2022/icons/bars/bars.mjs +0 -34
- package/esm2022/icons/bars/primeng-icons-bars.mjs +0 -5
- package/esm2022/icons/bars/public_api.mjs +0 -2
- package/esm2022/icons/baseicon/baseicon.mjs +0 -54
- package/esm2022/icons/baseicon/primeng-icons-baseicon.mjs +0 -5
- package/esm2022/icons/baseicon/public_api.mjs +0 -3
- package/esm2022/icons/baseicon/style/baseiconstyle.mjs +0 -57
- package/esm2022/icons/blank/blank.mjs +0 -26
- package/esm2022/icons/blank/primeng-icons-blank.mjs +0 -5
- package/esm2022/icons/blank/public_api.mjs +0 -2
- package/esm2022/icons/calendar/calendar.mjs +0 -32
- package/esm2022/icons/calendar/primeng-icons-calendar.mjs +0 -5
- package/esm2022/icons/calendar/public_api.mjs +0 -2
- package/esm2022/icons/caretleft/caretleft.mjs +0 -32
- package/esm2022/icons/caretleft/primeng-icons-caretleft.mjs +0 -5
- package/esm2022/icons/caretleft/public_api.mjs +0 -2
- package/esm2022/icons/caretright/caretright.mjs +0 -32
- package/esm2022/icons/caretright/primeng-icons-caretright.mjs +0 -5
- package/esm2022/icons/caretright/public_api.mjs +0 -2
- package/esm2022/icons/check/check.mjs +0 -32
- package/esm2022/icons/check/primeng-icons-check.mjs +0 -5
- package/esm2022/icons/check/public_api.mjs +0 -2
- package/esm2022/icons/chevrondown/chevrondown.mjs +0 -32
- package/esm2022/icons/chevrondown/primeng-icons-chevrondown.mjs +0 -5
- package/esm2022/icons/chevrondown/public_api.mjs +0 -2
- package/esm2022/icons/chevronleft/chevronleft.mjs +0 -32
- package/esm2022/icons/chevronleft/primeng-icons-chevronleft.mjs +0 -5
- package/esm2022/icons/chevronleft/public_api.mjs +0 -2
- package/esm2022/icons/chevronright/chevronright.mjs +0 -32
- package/esm2022/icons/chevronright/primeng-icons-chevronright.mjs +0 -5
- package/esm2022/icons/chevronright/public_api.mjs +0 -2
- package/esm2022/icons/chevronup/chevronup.mjs +0 -32
- package/esm2022/icons/chevronup/primeng-icons-chevronup.mjs +0 -5
- package/esm2022/icons/chevronup/public_api.mjs +0 -2
- package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +0 -59
- package/esm2022/icons/exclamationtriangle/primeng-icons-exclamationtriangle.mjs +0 -5
- package/esm2022/icons/exclamationtriangle/public_api.mjs +0 -2
- package/esm2022/icons/eye/eye.mjs +0 -34
- package/esm2022/icons/eye/primeng-icons-eye.mjs +0 -5
- package/esm2022/icons/eye/public_api.mjs +0 -2
- package/esm2022/icons/eyeslash/eyeslash.mjs +0 -53
- package/esm2022/icons/eyeslash/primeng-icons-eyeslash.mjs +0 -5
- package/esm2022/icons/eyeslash/public_api.mjs +0 -2
- package/esm2022/icons/filter/filter.mjs +0 -51
- package/esm2022/icons/filter/primeng-icons-filter.mjs +0 -5
- package/esm2022/icons/filter/public_api.mjs +0 -2
- package/esm2022/icons/filterslash/filterslash.mjs +0 -53
- package/esm2022/icons/filterslash/primeng-icons-filterslash.mjs +0 -5
- package/esm2022/icons/filterslash/public_api.mjs +0 -2
- package/esm2022/icons/home/home.mjs +0 -53
- package/esm2022/icons/home/primeng-icons-home.mjs +0 -5
- package/esm2022/icons/home/public_api.mjs +0 -2
- package/esm2022/icons/infocircle/infocircle.mjs +0 -53
- package/esm2022/icons/infocircle/primeng-icons-infocircle.mjs +0 -5
- package/esm2022/icons/infocircle/public_api.mjs +0 -2
- package/esm2022/icons/minus/minus.mjs +0 -32
- package/esm2022/icons/minus/primeng-icons-minus.mjs +0 -5
- package/esm2022/icons/minus/public_api.mjs +0 -2
- package/esm2022/icons/pencil/pencil.mjs +0 -51
- package/esm2022/icons/pencil/primeng-icons-pencil.mjs +0 -5
- package/esm2022/icons/pencil/public_api.mjs +0 -2
- package/esm2022/icons/plus/plus.mjs +0 -51
- package/esm2022/icons/plus/primeng-icons-plus.mjs +0 -5
- package/esm2022/icons/plus/public_api.mjs +0 -2
- package/esm2022/icons/primeng-icons.mjs +0 -5
- package/esm2022/icons/public_api.mjs +0 -58
- package/esm2022/icons/refresh/primeng-icons-refresh.mjs +0 -5
- package/esm2022/icons/refresh/public_api.mjs +0 -2
- package/esm2022/icons/refresh/refresh.mjs +0 -53
- package/esm2022/icons/search/primeng-icons-search.mjs +0 -5
- package/esm2022/icons/search/public_api.mjs +0 -2
- package/esm2022/icons/search/search.mjs +0 -53
- package/esm2022/icons/searchminus/primeng-icons-searchminus.mjs +0 -5
- package/esm2022/icons/searchminus/public_api.mjs +0 -2
- package/esm2022/icons/searchminus/searchminus.mjs +0 -53
- package/esm2022/icons/searchplus/primeng-icons-searchplus.mjs +0 -5
- package/esm2022/icons/searchplus/public_api.mjs +0 -2
- package/esm2022/icons/searchplus/searchplus.mjs +0 -53
- package/esm2022/icons/sortalt/primeng-icons-sortalt.mjs +0 -5
- package/esm2022/icons/sortalt/public_api.mjs +0 -2
- package/esm2022/icons/sortalt/sortalt.mjs +0 -57
- package/esm2022/icons/sortamountdown/primeng-icons-sortamountdown.mjs +0 -5
- package/esm2022/icons/sortamountdown/public_api.mjs +0 -2
- package/esm2022/icons/sortamountdown/sortamountdown.mjs +0 -51
- package/esm2022/icons/sortamountupalt/primeng-icons-sortamountupalt.mjs +0 -5
- package/esm2022/icons/sortamountupalt/public_api.mjs +0 -2
- package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +0 -51
- package/esm2022/icons/spinner/primeng-icons-spinner.mjs +0 -5
- package/esm2022/icons/spinner/public_api.mjs +0 -2
- package/esm2022/icons/spinner/spinner.mjs +0 -51
- package/esm2022/icons/star/primeng-icons-star.mjs +0 -5
- package/esm2022/icons/star/public_api.mjs +0 -2
- package/esm2022/icons/star/star.mjs +0 -51
- package/esm2022/icons/starfill/primeng-icons-starfill.mjs +0 -5
- package/esm2022/icons/starfill/public_api.mjs +0 -2
- package/esm2022/icons/starfill/starfill.mjs +0 -51
- package/esm2022/icons/thlarge/primeng-icons-thlarge.mjs +0 -5
- package/esm2022/icons/thlarge/public_api.mjs +0 -2
- package/esm2022/icons/thlarge/thlarge.mjs +0 -53
- package/esm2022/icons/times/primeng-icons-times.mjs +0 -5
- package/esm2022/icons/times/public_api.mjs +0 -2
- package/esm2022/icons/times/times.mjs +0 -32
- package/esm2022/icons/timescircle/primeng-icons-timescircle.mjs +0 -5
- package/esm2022/icons/timescircle/public_api.mjs +0 -2
- package/esm2022/icons/timescircle/timescircle.mjs +0 -53
- package/esm2022/icons/trash/primeng-icons-trash.mjs +0 -5
- package/esm2022/icons/trash/public_api.mjs +0 -2
- package/esm2022/icons/trash/trash.mjs +0 -53
- package/esm2022/icons/undo/primeng-icons-undo.mjs +0 -5
- package/esm2022/icons/undo/public_api.mjs +0 -2
- package/esm2022/icons/undo/undo.mjs +0 -53
- package/esm2022/icons/upload/primeng-icons-upload.mjs +0 -5
- package/esm2022/icons/upload/public_api.mjs +0 -2
- package/esm2022/icons/upload/upload.mjs +0 -53
- package/esm2022/icons/windowmaximize/primeng-icons-windowmaximize.mjs +0 -5
- package/esm2022/icons/windowmaximize/public_api.mjs +0 -2
- package/esm2022/icons/windowmaximize/windowmaximize.mjs +0 -53
- package/esm2022/icons/windowminimize/primeng-icons-windowminimize.mjs +0 -5
- package/esm2022/icons/windowminimize/public_api.mjs +0 -2
- package/esm2022/icons/windowminimize/windowminimize.mjs +0 -53
- package/esm2022/iftalabel/iftalabel.mjs +0 -49
- package/esm2022/iftalabel/primeng-iftalabel.mjs +0 -5
- package/esm2022/iftalabel/public_api.mjs +0 -3
- package/esm2022/iftalabel/style/iftalabelstyle.mjs +0 -96
- package/esm2022/image/image.interface.mjs +0 -2
- package/esm2022/image/image.mjs +0 -747
- package/esm2022/image/primeng-image.mjs +0 -5
- package/esm2022/image/public_api.mjs +0 -4
- package/esm2022/image/style/imagestyle.mjs +0 -219
- package/esm2022/imagecompare/imagecompare.mjs +0 -158
- package/esm2022/imagecompare/primeng-imagecompare.mjs +0 -5
- package/esm2022/imagecompare/public_api.mjs +0 -3
- package/esm2022/imagecompare/style/imagecomparestyle.mjs +0 -124
- package/esm2022/inplace/inplace.interface.mjs +0 -2
- package/esm2022/inplace/inplace.mjs +0 -344
- package/esm2022/inplace/primeng-inplace.mjs +0 -5
- package/esm2022/inplace/public_api.mjs +0 -4
- package/esm2022/inplace/style/inplacestyle.mjs +0 -69
- package/esm2022/inputgroup/inputgroup.mjs +0 -68
- package/esm2022/inputgroup/primeng-inputgroup.mjs +0 -5
- package/esm2022/inputgroup/public_api.mjs +0 -3
- package/esm2022/inputgroup/style/inputgroupstyle.mjs +0 -145
- package/esm2022/inputgroupaddon/inputgroupaddon.mjs +0 -74
- package/esm2022/inputgroupaddon/primeng-inputgroupaddon.mjs +0 -5
- package/esm2022/inputgroupaddon/public_api.mjs +0 -3
- package/esm2022/inputgroupaddon/style/inputgroupaddonstyle.mjs +0 -16
- package/esm2022/inputicon/inputicon.mjs +0 -66
- package/esm2022/inputicon/primeng-inputicon.mjs +0 -5
- package/esm2022/inputicon/public_api.mjs +0 -3
- package/esm2022/inputicon/style/inputiconstyle.mjs +0 -16
- package/esm2022/inputmask/inputmask.interface.mjs +0 -2
- package/esm2022/inputmask/inputmask.mjs +0 -911
- package/esm2022/inputmask/primeng-inputmask.mjs +0 -5
- package/esm2022/inputmask/public_api.mjs +0 -4
- package/esm2022/inputmask/style/inputmaskstyle.mjs +0 -62
- package/esm2022/inputnumber/inputnumber.interface.mjs +0 -2
- package/esm2022/inputnumber/inputnumber.mjs +0 -1745
- package/esm2022/inputnumber/primeng-inputnumber.mjs +0 -5
- package/esm2022/inputnumber/public_api.mjs +0 -4
- package/esm2022/inputnumber/style/inputnumberstyle.mjs +0 -240
- package/esm2022/inputotp/inputotp.mjs +0 -406
- package/esm2022/inputotp/primeng-inputotp.mjs +0 -5
- package/esm2022/inputotp/public_api.mjs +0 -3
- package/esm2022/inputotp/style/inputotpstyle.mjs +0 -60
- package/esm2022/inputswitch/inputswitch.interface.mjs +0 -2
- package/esm2022/inputswitch/inputswitch.mjs +0 -241
- package/esm2022/inputswitch/primeng-inputswitch.mjs +0 -5
- package/esm2022/inputswitch/public_api.mjs +0 -4
- package/esm2022/inputswitch/style/inputswitchstyle.mjs +0 -130
- package/esm2022/inputtext/inputtext.mjs +0 -103
- package/esm2022/inputtext/primeng-inputtext.mjs +0 -5
- package/esm2022/inputtext/public_api.mjs +0 -3
- package/esm2022/inputtext/style/inputtextstyle.mjs +0 -117
- package/esm2022/inputtextarea/inputtextarea.mjs +0 -156
- package/esm2022/inputtextarea/primeng-inputtextarea.mjs +0 -5
- package/esm2022/inputtextarea/public_api.mjs +0 -3
- package/esm2022/inputtextarea/style/textareastyle.mjs +0 -107
- package/esm2022/keyfilter/keyfilter.interface.mjs +0 -2
- package/esm2022/keyfilter/keyfilter.mjs +0 -263
- package/esm2022/keyfilter/primeng-keyfilter.mjs +0 -5
- package/esm2022/keyfilter/public_api.mjs +0 -3
- package/esm2022/knob/knob.mjs +0 -471
- package/esm2022/knob/primeng-knob.mjs +0 -5
- package/esm2022/knob/public_api.mjs +0 -3
- package/esm2022/knob/style/knobstyle.mjs +0 -83
- package/esm2022/listbox/listbox.interface.mjs +0 -2
- package/esm2022/listbox/listbox.mjs +0 -2044
- package/esm2022/listbox/primeng-listbox.mjs +0 -5
- package/esm2022/listbox/public_api.mjs +0 -4
- package/esm2022/listbox/style/listboxstyle.mjs +0 -206
- package/esm2022/megamenu/megamenu.interface.mjs +0 -2
- package/esm2022/megamenu/megamenu.mjs +0 -1607
- package/esm2022/megamenu/primeng-megamenu.mjs +0 -5
- package/esm2022/megamenu/public_api.mjs +0 -4
- package/esm2022/megamenu/style/megamenustyle.mjs +0 -487
- package/esm2022/menu/menu.mjs +0 -1193
- package/esm2022/menu/primeng-menu.mjs +0 -5
- package/esm2022/menu/public_api.mjs +0 -3
- package/esm2022/menu/style/menustyle.mjs +0 -179
- package/esm2022/menubar/menubar.interface.mjs +0 -2
- package/esm2022/menubar/menubar.mjs +0 -1484
- package/esm2022/menubar/primeng-menubar.mjs +0 -5
- package/esm2022/menubar/public_api.mjs +0 -4
- package/esm2022/menubar/style/menubarstyle.mjs +0 -375
- package/esm2022/message/message.mjs +0 -421
- package/esm2022/message/primeng-message.mjs +0 -5
- package/esm2022/message/public_api.mjs +0 -3
- package/esm2022/message/style/messagestyle.mjs +0 -357
- package/esm2022/messages/messages.interface.mjs +0 -2
- package/esm2022/messages/messages.mjs +0 -529
- package/esm2022/messages/primeng-messages.mjs +0 -5
- package/esm2022/messages/public_api.mjs +0 -4
- package/esm2022/messages/style/messagesstyle.mjs +0 -229
- package/esm2022/metergroup/metergroup.interface.mjs +0 -2
- package/esm2022/metergroup/metergroup.mjs +0 -423
- package/esm2022/metergroup/primeng-metergroup.mjs +0 -5
- package/esm2022/metergroup/public_api.mjs +0 -4
- package/esm2022/metergroup/style/metergroupstyle.mjs +0 -169
- package/esm2022/multiselect/multiselect.interface.mjs +0 -2
- package/esm2022/multiselect/multiselect.mjs +0 -2924
- package/esm2022/multiselect/primeng-multiselect.mjs +0 -5
- package/esm2022/multiselect/public_api.mjs +0 -4
- package/esm2022/multiselect/style/multiselectstyle.mjs +0 -376
- package/esm2022/orderlist/orderlist.interface.mjs +0 -2
- package/esm2022/orderlist/orderlist.mjs +0 -1121
- package/esm2022/orderlist/primeng-orderlist.mjs +0 -5
- package/esm2022/orderlist/public_api.mjs +0 -4
- package/esm2022/orderlist/style/orderliststyle.mjs +0 -51
- package/esm2022/organizationchart/organizationchart.interface.mjs +0 -2
- package/esm2022/organizationchart/organizationchart.mjs +0 -591
- package/esm2022/organizationchart/primeng-organizationchart.mjs +0 -5
- package/esm2022/organizationchart/public_api.mjs +0 -4
- package/esm2022/organizationchart/style/organizationchartstyle.mjs +0 -191
- package/esm2022/overlay/overlay.mjs +0 -668
- package/esm2022/overlay/primeng-overlay.mjs +0 -5
- package/esm2022/overlay/public_api.mjs +0 -3
- package/esm2022/overlay/style/overlaystyle.mjs +0 -93
- package/esm2022/overlaybadge/overlaybadge.mjs +0 -121
- package/esm2022/overlaybadge/primeng-overlaybadge.mjs +0 -5
- package/esm2022/overlaybadge/public_api.mjs +0 -3
- package/esm2022/overlaybadge/style/overlaybadgestyle.mjs +0 -34
- package/esm2022/overlaypanel/overlaypanel.mjs +0 -529
- package/esm2022/overlaypanel/primeng-overlaypanel.mjs +0 -5
- package/esm2022/overlaypanel/public_api.mjs +0 -3
- package/esm2022/overlaypanel/style/popoverstyle.mjs +0 -119
- package/esm2022/paginator/paginator.interface.mjs +0 -2
- package/esm2022/paginator/paginator.mjs +0 -893
- package/esm2022/paginator/primeng-paginator.mjs +0 -5
- package/esm2022/paginator/public_api.mjs +0 -4
- package/esm2022/paginator/style/paginatorstyle.mjs +0 -243
- package/esm2022/panel/panel.mjs +0 -585
- package/esm2022/panel/primeng-panel.mjs +0 -5
- package/esm2022/panel/public_api.mjs +0 -3
- package/esm2022/panel/style/panelstyle.mjs +0 -120
- package/esm2022/panelmenu/panelmenu.interface.mjs +0 -2
- package/esm2022/panelmenu/panelmenu.mjs +0 -1628
- package/esm2022/panelmenu/primeng-panelmenu.mjs +0 -5
- package/esm2022/panelmenu/public_api.mjs +0 -4
- package/esm2022/panelmenu/style/panelmenustyle.mjs +0 -291
- package/esm2022/password/password.mjs +0 -1178
- package/esm2022/password/primeng-password.mjs +0 -5
- package/esm2022/password/public_api.mjs +0 -3
- package/esm2022/password/style/passwordstyle.mjs +0 -182
- package/esm2022/picklist/picklist.interface.mjs +0 -2
- package/esm2022/picklist/picklist.mjs +0 -2298
- package/esm2022/picklist/primeng-picklist.mjs +0 -5
- package/esm2022/picklist/public_api.mjs +0 -4
- package/esm2022/picklist/style/pickliststyle.mjs +0 -79
- package/esm2022/popover/popover.mjs +0 -518
- package/esm2022/popover/primeng-popover.mjs +0 -5
- package/esm2022/popover/public_api.mjs +0 -3
- package/esm2022/popover/style/popoverstyle.mjs +0 -99
- package/esm2022/primeng.mjs +0 -5
- package/esm2022/progressbar/primeng-progressbar.mjs +0 -5
- package/esm2022/progressbar/progressbar.mjs +0 -197
- package/esm2022/progressbar/public_api.mjs +0 -3
- package/esm2022/progressbar/style/progressbarstyle.mjs +0 -165
- package/esm2022/progressspinner/primeng-progressspinner.mjs +0 -5
- package/esm2022/progressspinner/progressspinner.mjs +0 -105
- package/esm2022/progressspinner/public_api.mjs +0 -3
- package/esm2022/progressspinner/style/progressspinnerstyle.mjs +0 -115
- package/esm2022/public_api.mjs +0 -2
- package/esm2022/radiobutton/primeng-radiobutton.mjs +0 -5
- package/esm2022/radiobutton/public_api.mjs +0 -4
- package/esm2022/radiobutton/radiobutton.interface.mjs +0 -2
- package/esm2022/radiobutton/radiobutton.mjs +0 -356
- package/esm2022/radiobutton/style/radiobuttonstyle.mjs +0 -196
- package/esm2022/rating/primeng-rating.mjs +0 -5
- package/esm2022/rating/public_api.mjs +0 -4
- package/esm2022/rating/rating.interface.mjs +0 -2
- package/esm2022/rating/rating.mjs +0 -425
- package/esm2022/rating/style/ratingstyle.mjs +0 -103
- package/esm2022/ripple/primeng-ripple.mjs +0 -5
- package/esm2022/ripple/public_api.mjs +0 -3
- package/esm2022/ripple/ripple.mjs +0 -131
- package/esm2022/ripple/style/ripplestyle.mjs +0 -63
- package/esm2022/scroller/primeng-scroller.mjs +0 -5
- package/esm2022/scroller/public_api.mjs +0 -4
- package/esm2022/scroller/scroller.interface.mjs +0 -2
- package/esm2022/scroller/scroller.mjs +0 -1290
- package/esm2022/scroller/style/scrollerstyle.mjs +0 -104
- package/esm2022/scrollpanel/primeng-scrollpanel.mjs +0 -5
- package/esm2022/scrollpanel/public_api.mjs +0 -4
- package/esm2022/scrollpanel/scrollpanel.interface.mjs +0 -2
- package/esm2022/scrollpanel/scrollpanel.mjs +0 -506
- package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +0 -120
- package/esm2022/scrolltop/primeng-scrolltop.mjs +0 -5
- package/esm2022/scrolltop/public_api.mjs +0 -4
- package/esm2022/scrolltop/scrolltop.interface.mjs +0 -2
- package/esm2022/scrolltop/scrolltop.mjs +0 -336
- package/esm2022/scrolltop/style/scrolltopstyle.mjs +0 -77
- package/esm2022/select/primeng-select.mjs +0 -5
- package/esm2022/select/public_api.mjs +0 -4
- package/esm2022/select/select.interface.mjs +0 -2
- package/esm2022/select/select.mjs +0 -2617
- package/esm2022/select/style/selectstyle.mjs +0 -368
- package/esm2022/selectbutton/primeng-selectbutton.mjs +0 -5
- package/esm2022/selectbutton/public_api.mjs +0 -4
- package/esm2022/selectbutton/selectbutton.interface.mjs +0 -2
- package/esm2022/selectbutton/selectbutton.mjs +0 -373
- package/esm2022/selectbutton/style/selectbuttonstyle.mjs +0 -73
- package/esm2022/sidebar/primeng-sidebar.mjs +0 -5
- package/esm2022/sidebar/public_api.mjs +0 -4
- package/esm2022/sidebar/sidebar.interface.mjs +0 -2
- package/esm2022/sidebar/sidebar.mjs +0 -578
- package/esm2022/sidebar/style/drawerstyle.mjs +0 -174
- package/esm2022/skeleton/primeng-skeleton.mjs +0 -5
- package/esm2022/skeleton/public_api.mjs +0 -3
- package/esm2022/skeleton/skeleton.mjs +0 -121
- package/esm2022/skeleton/style/skeletonstyle.mjs +0 -93
- package/esm2022/slider/primeng-slider.mjs +0 -5
- package/esm2022/slider/public_api.mjs +0 -4
- package/esm2022/slider/slider.interface.mjs +0 -2
- package/esm2022/slider/slider.mjs +0 -820
- package/esm2022/slider/style/sliderstyle.mjs +0 -141
- package/esm2022/speeddial/primeng-speeddial.mjs +0 -5
- package/esm2022/speeddial/public_api.mjs +0 -4
- package/esm2022/speeddial/speeddial.interface.mjs +0 -2
- package/esm2022/speeddial/speeddial.mjs +0 -866
- package/esm2022/speeddial/style/speeddialstyle.mjs +0 -167
- package/esm2022/splitbutton/primeng-splitbutton.mjs +0 -5
- package/esm2022/splitbutton/public_api.mjs +0 -4
- package/esm2022/splitbutton/splitbutton.interface.mjs +0 -2
- package/esm2022/splitbutton/splitbutton.mjs +0 -579
- package/esm2022/splitbutton/style/splitbuttonstyle.mjs +0 -100
- package/esm2022/splitter/primeng-splitter.mjs +0 -5
- package/esm2022/splitter/public_api.mjs +0 -4
- package/esm2022/splitter/splitter.interface.mjs +0 -2
- package/esm2022/splitter/splitter.mjs +0 -616
- package/esm2022/splitter/style/splitterstyle.mjs +0 -126
- package/esm2022/stepper/primeng-stepper.mjs +0 -5
- package/esm2022/stepper/public_api.mjs +0 -3
- package/esm2022/stepper/stepper.mjs +0 -521
- package/esm2022/stepper/style/stepperstyle.mjs +0 -228
- package/esm2022/steps/primeng-steps.mjs +0 -5
- package/esm2022/steps/public_api.mjs +0 -3
- package/esm2022/steps/steps.mjs +0 -405
- package/esm2022/steps/style/stepsstyle.mjs +0 -180
- package/esm2022/styleclass/primeng-styleclass.mjs +0 -5
- package/esm2022/styleclass/public_api.mjs +0 -2
- package/esm2022/styleclass/styleclass.mjs +0 -315
- package/esm2022/table/columnfilter.interface.mjs +0 -2
- package/esm2022/table/primeng-table.mjs +0 -5
- package/esm2022/table/public_api.mjs +0 -5
- package/esm2022/table/style/tablestyle.mjs +0 -906
- package/esm2022/table/table.interface.mjs +0 -2
- package/esm2022/table/table.mjs +0 -7982
- package/esm2022/tabmenu/primeng-tabmenu.mjs +0 -5
- package/esm2022/tabmenu/public_api.mjs +0 -4
- package/esm2022/tabmenu/style/tabmenustyle.mjs +0 -192
- package/esm2022/tabmenu/tabmenu.interface.mjs +0 -2
- package/esm2022/tabmenu/tabmenu.mjs +0 -730
- package/esm2022/tabs/primeng-tabs.mjs +0 -5
- package/esm2022/tabs/public_api.mjs +0 -7
- package/esm2022/tabs/style/tabsstyle.mjs +0 -211
- package/esm2022/tabs/tab.mjs +0 -175
- package/esm2022/tabs/tablist.mjs +0 -297
- package/esm2022/tabs/tabpanel.mjs +0 -60
- package/esm2022/tabs/tabpanels.mjs +0 -38
- package/esm2022/tabs/tabs.mjs +0 -105
- package/esm2022/tabview/primeng-tabview.mjs +0 -5
- package/esm2022/tabview/public_api.mjs +0 -4
- package/esm2022/tabview/style/tabsstyle.mjs +0 -211
- package/esm2022/tabview/tabview.interface.mjs +0 -2
- package/esm2022/tabview/tabview.mjs +0 -1089
- package/esm2022/tag/primeng-tag.mjs +0 -5
- package/esm2022/tag/public_api.mjs +0 -4
- package/esm2022/tag/style/tagstyle.mjs +0 -108
- package/esm2022/tag/tag.interface.mjs +0 -2
- package/esm2022/tag/tag.mjs +0 -168
- package/esm2022/terminal/primeng-terminal.mjs +0 -5
- package/esm2022/terminal/public_api.mjs +0 -4
- package/esm2022/terminal/style/terminalstyle.mjs +0 -113
- package/esm2022/terminal/terminal.mjs +0 -195
- package/esm2022/terminal/terminalservice.mjs +0 -25
- package/esm2022/textarea/primeng-textarea.mjs +0 -5
- package/esm2022/textarea/public_api.mjs +0 -3
- package/esm2022/textarea/style/textareastyle.mjs +0 -120
- package/esm2022/textarea/textarea.mjs +0 -165
- package/esm2022/tieredmenu/primeng-tieredmenu.mjs +0 -5
- package/esm2022/tieredmenu/public_api.mjs +0 -4
- package/esm2022/tieredmenu/style/tieredmenustyle.mjs +0 -276
- package/esm2022/tieredmenu/tieredmenu.interface.mjs +0 -2
- package/esm2022/tieredmenu/tieredmenu.mjs +0 -1444
- package/esm2022/timeline/primeng-timeline.mjs +0 -5
- package/esm2022/timeline/public_api.mjs +0 -4
- package/esm2022/timeline/style/timelinestyle.mjs +0 -217
- package/esm2022/timeline/timeline.interface.mjs +0 -2
- package/esm2022/timeline/timeline.mjs +0 -223
- package/esm2022/toast/primeng-toast.mjs +0 -5
- package/esm2022/toast/public_api.mjs +0 -4
- package/esm2022/toast/style/toaststyle.mjs +0 -351
- package/esm2022/toast/toast.interface.mjs +0 -2
- package/esm2022/toast/toast.mjs +0 -738
- package/esm2022/togglebutton/primeng-togglebutton.mjs +0 -5
- package/esm2022/togglebutton/public_api.mjs +0 -3
- package/esm2022/togglebutton/style/togglebuttonstyle.mjs +0 -170
- package/esm2022/togglebutton/togglebutton.interface.mjs +0 -2
- package/esm2022/togglebutton/togglebutton.mjs +0 -353
- package/esm2022/toggleswitch/primeng-toggleswitch.mjs +0 -5
- package/esm2022/toggleswitch/public_api.mjs +0 -4
- package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +0 -165
- package/esm2022/toggleswitch/toggleswitch.interface.mjs +0 -2
- package/esm2022/toggleswitch/toggleswitch.mjs +0 -278
- package/esm2022/toolbar/primeng-toolbar.mjs +0 -5
- package/esm2022/toolbar/public_api.mjs +0 -4
- package/esm2022/toolbar/style/toolbarstyle.mjs +0 -69
- package/esm2022/toolbar/toolbar.interface.mjs +0 -2
- package/esm2022/toolbar/toolbar.mjs +0 -172
- package/esm2022/tooltip/primeng-tooltip.mjs +0 -5
- package/esm2022/tooltip/public_api.mjs +0 -3
- package/esm2022/tooltip/style/tooltipstyle.mjs +0 -113
- package/esm2022/tooltip/tooltip.mjs +0 -715
- package/esm2022/tree/primeng-tree.mjs +0 -5
- package/esm2022/tree/public_api.mjs +0 -4
- package/esm2022/tree/style/treestyle.mjs +0 -323
- package/esm2022/tree/tree.interface.mjs +0 -2
- package/esm2022/tree/tree.mjs +0 -2248
- package/esm2022/treeselect/primeng-treeselect.mjs +0 -5
- package/esm2022/treeselect/public_api.mjs +0 -4
- package/esm2022/treeselect/style/treeselectstyle.mjs +0 -274
- package/esm2022/treeselect/treeselect.interface.mjs +0 -2
- package/esm2022/treeselect/treeselect.mjs +0 -1372
- package/esm2022/treetable/primeng-treetable.mjs +0 -5
- package/esm2022/treetable/public_api.mjs +0 -4
- package/esm2022/treetable/style/treetablestyle.mjs +0 -621
- package/esm2022/treetable/treetable.interface.mjs +0 -2
- package/esm2022/treetable/treetable.mjs +0 -4642
- package/esm2022/ts-helpers/primeng-ts-helpers.mjs +0 -5
- package/esm2022/ts-helpers/public_api.mjs +0 -2
- package/esm2022/ts-helpers/ts-helpers.mjs +0 -2
- package/esm2022/usestyle/primeng-usestyle.mjs +0 -5
- package/esm2022/usestyle/public_api.mjs +0 -2
- package/esm2022/usestyle/usestyle.mjs +0 -44
- package/esm2022/utils/inpututils.mjs +0 -7
- package/esm2022/utils/objectutils.mjs +0 -276
- package/esm2022/utils/primeng-utils.mjs +0 -5
- package/esm2022/utils/public_api.mjs +0 -6
- package/esm2022/utils/uniquecomponentid.mjs +0 -6
- package/esm2022/utils/zindexutils.mjs +0 -35
@@ -1,1266 +0,0 @@
|
|
1
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
2
|
-
import { CommonModule } from '@angular/common';
|
3
|
-
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, ContentChild, ContentChildren, EventEmitter, forwardRef, HostBinding, HostListener, inject, Input, input, model, NgModule, numberAttribute, Output, signal, ViewEncapsulation } from '@angular/core';
|
4
|
-
import { findSingle, focus, getAttribute, uuid } from '@primeuix/utils';
|
5
|
-
import { Header, SharedModule } from 'primeng/api';
|
6
|
-
import { BaseComponent } from 'primeng/basecomponent';
|
7
|
-
import { ChevronDownIcon, ChevronUpIcon } from 'primeng/icons';
|
8
|
-
import { Ripple } from 'primeng/ripple';
|
9
|
-
import { transformToBoolean } from 'primeng/utils';
|
10
|
-
import { AccordionStyle } from './style/accordionstyle';
|
11
|
-
import * as i0 from "@angular/core";
|
12
|
-
import * as i1 from "primeng/ripple";
|
13
|
-
import * as i2 from "@angular/common";
|
14
|
-
const _c0 = ["*"];
|
15
|
-
const _c1 = ["toggleicon"];
|
16
|
-
const _c2 = a0 => ({ active: a0 });
|
17
|
-
function AccordionHeader_Conditional_1_0_ng_template_0_Template(rf, ctx) { }
|
18
|
-
function AccordionHeader_Conditional_1_0_Template(rf, ctx) { if (rf & 1) {
|
19
|
-
i0.ɵɵtemplate(0, AccordionHeader_Conditional_1_0_ng_template_0_Template, 0, 0, "ng-template");
|
20
|
-
} }
|
21
|
-
function AccordionHeader_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
22
|
-
i0.ɵɵtemplate(0, AccordionHeader_Conditional_1_0_Template, 1, 0, null, 0);
|
23
|
-
} if (rf & 2) {
|
24
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
25
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.toggleicon)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c2, ctx_r0.active()));
|
26
|
-
} }
|
27
|
-
function AccordionHeader_Conditional_2_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {
|
28
|
-
i0.ɵɵelement(0, "span", 4);
|
29
|
-
} if (rf & 2) {
|
30
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
31
|
-
i0.ɵɵclassMap(ctx_r0.pcAccordion.collapseIcon);
|
32
|
-
i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
|
33
|
-
i0.ɵɵattribute("aria-hidden", true);
|
34
|
-
} }
|
35
|
-
function AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {
|
36
|
-
i0.ɵɵelement(0, "ChevronDownIcon", 4);
|
37
|
-
} if (rf & 2) {
|
38
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
39
|
-
i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
|
40
|
-
i0.ɵɵattribute("aria-hidden", true);
|
41
|
-
} }
|
42
|
-
function AccordionHeader_Conditional_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
43
|
-
i0.ɵɵelementContainerStart(0);
|
44
|
-
i0.ɵɵtemplate(1, AccordionHeader_Conditional_2_ng_container_0_span_1_Template, 1, 4, "span", 2)(2, AccordionHeader_Conditional_2_ng_container_0_ChevronDownIcon_2_Template, 1, 2, "ChevronDownIcon", 3);
|
45
|
-
i0.ɵɵelementContainerEnd();
|
46
|
-
} if (rf & 2) {
|
47
|
-
const ctx_r0 = i0.ɵɵnextContext(2);
|
48
|
-
i0.ɵɵadvance();
|
49
|
-
i0.ɵɵproperty("ngIf", ctx_r0.pcAccordion.collapseIcon);
|
50
|
-
i0.ɵɵadvance();
|
51
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.pcAccordion.collapseIcon);
|
52
|
-
} }
|
53
|
-
function AccordionHeader_Conditional_2_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
54
|
-
i0.ɵɵelement(0, "span", 4);
|
55
|
-
} if (rf & 2) {
|
56
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
57
|
-
i0.ɵɵclassMap(ctx_r0.pcAccordion.expandIcon);
|
58
|
-
i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
|
59
|
-
i0.ɵɵattribute("aria-hidden", true);
|
60
|
-
} }
|
61
|
-
function AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {
|
62
|
-
i0.ɵɵelement(0, "ChevronUpIcon", 4);
|
63
|
-
} if (rf & 2) {
|
64
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
65
|
-
i0.ɵɵproperty("ngClass", ctx_r0.pcAccordion.iconClass);
|
66
|
-
i0.ɵɵattribute("aria-hidden", true);
|
67
|
-
} }
|
68
|
-
function AccordionHeader_Conditional_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
69
|
-
i0.ɵɵelementContainerStart(0);
|
70
|
-
i0.ɵɵtemplate(1, AccordionHeader_Conditional_2_ng_container_1_span_1_Template, 1, 4, "span", 2)(2, AccordionHeader_Conditional_2_ng_container_1_ChevronUpIcon_2_Template, 1, 2, "ChevronUpIcon", 3);
|
71
|
-
i0.ɵɵelementContainerEnd();
|
72
|
-
} if (rf & 2) {
|
73
|
-
const ctx_r0 = i0.ɵɵnextContext(2);
|
74
|
-
i0.ɵɵadvance();
|
75
|
-
i0.ɵɵproperty("ngIf", ctx_r0.pcAccordion.expandIcon);
|
76
|
-
i0.ɵɵadvance();
|
77
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.pcAccordion.expandIcon);
|
78
|
-
} }
|
79
|
-
function AccordionHeader_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
80
|
-
i0.ɵɵtemplate(0, AccordionHeader_Conditional_2_ng_container_0_Template, 3, 2, "ng-container", 1)(1, AccordionHeader_Conditional_2_ng_container_1_Template, 3, 2, "ng-container", 1);
|
81
|
-
} if (rf & 2) {
|
82
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
83
|
-
i0.ɵɵproperty("ngIf", ctx_r0.active());
|
84
|
-
i0.ɵɵadvance();
|
85
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.active());
|
86
|
-
} }
|
87
|
-
const _c3 = a0 => ({ transitionParams: a0 });
|
88
|
-
const _c4 = a0 => ({ value: "visible", params: a0 });
|
89
|
-
const _c5 = a0 => ({ value: "hidden", params: a0 });
|
90
|
-
const _c6 = ["header"];
|
91
|
-
const _c7 = ["footer"];
|
92
|
-
const _c8 = ["icon"];
|
93
|
-
const _c9 = ["content"];
|
94
|
-
const _c10 = ["*", [["p-header"]]];
|
95
|
-
const _c11 = ["*", "p-header"];
|
96
|
-
const _c12 = a0 => ({ $implicit: a0 });
|
97
|
-
function AccordionTab_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
98
|
-
i0.ɵɵtext(0);
|
99
|
-
} if (rf & 2) {
|
100
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
101
|
-
i0.ɵɵtextInterpolate1(" ", ctx_r0.header, " ");
|
102
|
-
} }
|
103
|
-
function AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
104
|
-
i0.ɵɵelementContainer(0);
|
105
|
-
} }
|
106
|
-
function AccordionTab_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
107
|
-
i0.ɵɵtemplate(0, AccordionTab_Conditional_2_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 4);
|
108
|
-
} if (rf & 2) {
|
109
|
-
const ctx_r0 = i0.ɵɵnextContext(2);
|
110
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.headerTemplate);
|
111
|
-
} }
|
112
|
-
function AccordionTab_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
113
|
-
i0.ɵɵprojection(0, 1);
|
114
|
-
} }
|
115
|
-
function AccordionTab_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
116
|
-
i0.ɵɵtemplate(0, AccordionTab_Conditional_2_Conditional_0_Template, 1, 1, "ng-container")(1, AccordionTab_Conditional_2_Conditional_1_Template, 1, 0);
|
117
|
-
} if (rf & 2) {
|
118
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
119
|
-
i0.ɵɵconditional(ctx_r0.headerTemplate ? 0 : -1);
|
120
|
-
i0.ɵɵadvance();
|
121
|
-
i0.ɵɵconditional(ctx_r0.headerFacet ? 1 : -1);
|
122
|
-
} }
|
123
|
-
function AccordionTab_Conditional_3_0_ng_template_0_Template(rf, ctx) { }
|
124
|
-
function AccordionTab_Conditional_3_0_Template(rf, ctx) { if (rf & 1) {
|
125
|
-
i0.ɵɵtemplate(0, AccordionTab_Conditional_3_0_ng_template_0_Template, 0, 0, "ng-template");
|
126
|
-
} }
|
127
|
-
function AccordionTab_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
128
|
-
i0.ɵɵtemplate(0, AccordionTab_Conditional_3_0_Template, 1, 0, null, 5);
|
129
|
-
} if (rf & 2) {
|
130
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
131
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.iconTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c12, ctx_r0.selected));
|
132
|
-
} }
|
133
|
-
function AccordionTab_Conditional_4_ng_container_0_span_1_Template(rf, ctx) { if (rf & 1) {
|
134
|
-
i0.ɵɵelement(0, "span", 8);
|
135
|
-
} if (rf & 2) {
|
136
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
137
|
-
i0.ɵɵclassMap(ctx_r0.accordion.collapseIcon);
|
138
|
-
i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
|
139
|
-
i0.ɵɵattribute("aria-hidden", true);
|
140
|
-
} }
|
141
|
-
function AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template(rf, ctx) { if (rf & 1) {
|
142
|
-
i0.ɵɵelement(0, "ChevronDownIcon", 8);
|
143
|
-
} if (rf & 2) {
|
144
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
145
|
-
i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
|
146
|
-
i0.ɵɵattribute("aria-hidden", true);
|
147
|
-
} }
|
148
|
-
function AccordionTab_Conditional_4_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
149
|
-
i0.ɵɵelementContainerStart(0);
|
150
|
-
i0.ɵɵtemplate(1, AccordionTab_Conditional_4_ng_container_0_span_1_Template, 1, 4, "span", 6)(2, AccordionTab_Conditional_4_ng_container_0_ChevronDownIcon_2_Template, 1, 2, "ChevronDownIcon", 7);
|
151
|
-
i0.ɵɵelementContainerEnd();
|
152
|
-
} if (rf & 2) {
|
153
|
-
const ctx_r0 = i0.ɵɵnextContext(2);
|
154
|
-
i0.ɵɵadvance();
|
155
|
-
i0.ɵɵproperty("ngIf", ctx_r0.accordion.collapseIcon);
|
156
|
-
i0.ɵɵadvance();
|
157
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.accordion.collapseIcon);
|
158
|
-
} }
|
159
|
-
function AccordionTab_Conditional_4_ng_container_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
160
|
-
i0.ɵɵelement(0, "span", 8);
|
161
|
-
} if (rf & 2) {
|
162
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
163
|
-
i0.ɵɵclassMap(ctx_r0.accordion.expandIcon);
|
164
|
-
i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
|
165
|
-
i0.ɵɵattribute("aria-hidden", true);
|
166
|
-
} }
|
167
|
-
function AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template(rf, ctx) { if (rf & 1) {
|
168
|
-
i0.ɵɵelement(0, "ChevronUpIcon", 8);
|
169
|
-
} if (rf & 2) {
|
170
|
-
const ctx_r0 = i0.ɵɵnextContext(3);
|
171
|
-
i0.ɵɵproperty("ngClass", ctx_r0.iconClass);
|
172
|
-
i0.ɵɵattribute("aria-hidden", true);
|
173
|
-
} }
|
174
|
-
function AccordionTab_Conditional_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
175
|
-
i0.ɵɵelementContainerStart(0);
|
176
|
-
i0.ɵɵtemplate(1, AccordionTab_Conditional_4_ng_container_1_span_1_Template, 1, 4, "span", 6)(2, AccordionTab_Conditional_4_ng_container_1_ChevronUpIcon_2_Template, 1, 2, "ChevronUpIcon", 7);
|
177
|
-
i0.ɵɵelementContainerEnd();
|
178
|
-
} if (rf & 2) {
|
179
|
-
const ctx_r0 = i0.ɵɵnextContext(2);
|
180
|
-
i0.ɵɵadvance();
|
181
|
-
i0.ɵɵproperty("ngIf", ctx_r0.accordion.expandIcon);
|
182
|
-
i0.ɵɵadvance();
|
183
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.accordion.expandIcon);
|
184
|
-
} }
|
185
|
-
function AccordionTab_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
186
|
-
i0.ɵɵtemplate(0, AccordionTab_Conditional_4_ng_container_0_Template, 3, 2, "ng-container", 3)(1, AccordionTab_Conditional_4_ng_container_1_Template, 3, 2, "ng-container", 3);
|
187
|
-
} if (rf & 2) {
|
188
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
189
|
-
i0.ɵɵproperty("ngIf", ctx_r0.selected);
|
190
|
-
i0.ɵɵadvance();
|
191
|
-
i0.ɵɵproperty("ngIf", !ctx_r0.selected);
|
192
|
-
} }
|
193
|
-
function AccordionTab_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
194
|
-
i0.ɵɵelementContainer(0);
|
195
|
-
} }
|
196
|
-
function AccordionTab_ng_container_8_Template(rf, ctx) { if (rf & 1) {
|
197
|
-
i0.ɵɵelementContainerStart(0);
|
198
|
-
i0.ɵɵtemplate(1, AccordionTab_ng_container_8_ng_container_1_Template, 1, 0, "ng-container", 4);
|
199
|
-
i0.ɵɵelementContainerEnd();
|
200
|
-
} if (rf & 2) {
|
201
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
202
|
-
i0.ɵɵadvance();
|
203
|
-
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.contentTemplate);
|
204
|
-
} }
|
205
|
-
/**
|
206
|
-
* AccordionPanel is a helper component for Accordion component.
|
207
|
-
* @group Components
|
208
|
-
*/
|
209
|
-
export class AccordionPanel extends BaseComponent {
|
210
|
-
pcAccordion = inject(forwardRef(() => Accordion));
|
211
|
-
/**
|
212
|
-
* Value of the active tab.
|
213
|
-
* @defaultValue undefined
|
214
|
-
* @group Props
|
215
|
-
*/
|
216
|
-
value = model(undefined);
|
217
|
-
/**
|
218
|
-
* Disables the tab when enabled.
|
219
|
-
* @defaultValue false
|
220
|
-
* @group Props
|
221
|
-
*/
|
222
|
-
disabled = input(false, { transform: (v) => transformToBoolean(v) });
|
223
|
-
active = computed(() => (this.pcAccordion.multiple() ? this.valueEquals(this.pcAccordion.value(), this.value()) : this.pcAccordion.value() === this.value()));
|
224
|
-
valueEquals(currentValue, value) {
|
225
|
-
if (Array.isArray(currentValue)) {
|
226
|
-
return currentValue.includes(value);
|
227
|
-
}
|
228
|
-
return currentValue === value;
|
229
|
-
}
|
230
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionPanel_BaseFactory; return function AccordionPanel_Factory(__ngFactoryType__) { return (ɵAccordionPanel_BaseFactory || (ɵAccordionPanel_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionPanel)))(__ngFactoryType__ || AccordionPanel); }; })();
|
231
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionPanel, selectors: [["p-accordion-panel"], ["p-accordionpanel"]], hostVars: 9, hostBindings: function AccordionPanel_HostBindings(rf, ctx) { if (rf & 2) {
|
232
|
-
i0.ɵɵattribute("data-pc-name", "accordionpanel")("data-p-disabled", ctx.disabled())("data-p-active", ctx.active());
|
233
|
-
i0.ɵɵclassProp("p-accordionpanel", true)("p-accordionpanel-active", ctx.active())("p-disabled", ctx.disabled());
|
234
|
-
} }, inputs: { value: [1, "value"], disabled: [1, "disabled"] }, outputs: { value: "valueChange" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AccordionPanel_Template(rf, ctx) { if (rf & 1) {
|
235
|
-
i0.ɵɵprojectionDef();
|
236
|
-
i0.ɵɵprojection(0);
|
237
|
-
} }, dependencies: [CommonModule], encapsulation: 2, changeDetection: 0 });
|
238
|
-
}
|
239
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionPanel, [{
|
240
|
-
type: Component,
|
241
|
-
args: [{
|
242
|
-
selector: 'p-accordion-panel, p-accordionpanel',
|
243
|
-
imports: [CommonModule],
|
244
|
-
standalone: true,
|
245
|
-
template: `<ng-content />`,
|
246
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
247
|
-
encapsulation: ViewEncapsulation.None,
|
248
|
-
host: {
|
249
|
-
'[class.p-accordionpanel]': 'true',
|
250
|
-
'[class.p-accordionpanel-active]': 'active()',
|
251
|
-
'[class.p-disabled]': 'disabled()',
|
252
|
-
'[attr.data-pc-name]': '"accordionpanel"',
|
253
|
-
'[attr.data-p-disabled]': 'disabled()',
|
254
|
-
'[attr.data-p-active]': 'active()'
|
255
|
-
}
|
256
|
-
}]
|
257
|
-
}], null, null); })();
|
258
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionPanel, { className: "AccordionPanel" }); })();
|
259
|
-
/**
|
260
|
-
* AccordionHeader is a helper component for Accordion component.
|
261
|
-
* @group Components
|
262
|
-
*/
|
263
|
-
export class AccordionHeader extends BaseComponent {
|
264
|
-
pcAccordion = inject(forwardRef(() => Accordion));
|
265
|
-
pcAccordionPanel = inject(forwardRef(() => AccordionPanel));
|
266
|
-
id = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);
|
267
|
-
active = computed(() => this.pcAccordionPanel.active());
|
268
|
-
disabled = computed(() => this.pcAccordionPanel.disabled());
|
269
|
-
ariaControls = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);
|
270
|
-
/**
|
271
|
-
* Toggle icon template.
|
272
|
-
* @type {TemplateRef<AccordionToggleIconTemplateContext>} context - Context of the template
|
273
|
-
* @example
|
274
|
-
* ```html
|
275
|
-
* <ng-template #toggleicon let-active="active"> </ng-template>
|
276
|
-
* ```
|
277
|
-
* @see {@link AccordionToggleIconTemplateContext}
|
278
|
-
* @group Templates
|
279
|
-
*/
|
280
|
-
toggleicon;
|
281
|
-
onClick() {
|
282
|
-
this.changeActiveValue();
|
283
|
-
}
|
284
|
-
onFocus() {
|
285
|
-
this.pcAccordion.selectOnFocus() && this.changeActiveValue();
|
286
|
-
}
|
287
|
-
onKeydown(event) {
|
288
|
-
switch (event.code) {
|
289
|
-
case 'ArrowDown':
|
290
|
-
this.arrowDownKey(event);
|
291
|
-
break;
|
292
|
-
case 'ArrowUp':
|
293
|
-
this.arrowUpKey(event);
|
294
|
-
break;
|
295
|
-
case 'Home':
|
296
|
-
this.onHomeKey(event);
|
297
|
-
break;
|
298
|
-
case 'End':
|
299
|
-
this.onEndKey(event);
|
300
|
-
break;
|
301
|
-
case 'Enter':
|
302
|
-
case 'Space':
|
303
|
-
case 'NumpadEnter':
|
304
|
-
this.onEnterKey(event);
|
305
|
-
break;
|
306
|
-
default:
|
307
|
-
break;
|
308
|
-
}
|
309
|
-
}
|
310
|
-
changeActiveValue() {
|
311
|
-
this.pcAccordion.updateValue(this.pcAccordionPanel.value());
|
312
|
-
}
|
313
|
-
findPanel(headerElement) {
|
314
|
-
return headerElement?.closest('[data-pc-name="accordionpanel"]');
|
315
|
-
}
|
316
|
-
findHeader(panelElement) {
|
317
|
-
return findSingle(panelElement, '[data-pc-name="accordionheader"]');
|
318
|
-
}
|
319
|
-
findNextPanel(panelElement, selfCheck = false) {
|
320
|
-
const element = selfCheck ? panelElement : panelElement.nextElementSibling;
|
321
|
-
return element ? (getAttribute(element, 'data-p-disabled') ? this.findNextPanel(element) : this.findHeader(element)) : null;
|
322
|
-
}
|
323
|
-
findPrevPanel(panelElement, selfCheck = false) {
|
324
|
-
const element = selfCheck ? panelElement : panelElement.previousElementSibling;
|
325
|
-
return element ? (getAttribute(element, 'data-p-disabled') ? this.findPrevPanel(element) : this.findHeader(element)) : null;
|
326
|
-
}
|
327
|
-
findFirstPanel() {
|
328
|
-
return this.findNextPanel(this.pcAccordion.el.nativeElement.firstElementChild, true);
|
329
|
-
}
|
330
|
-
findLastPanel() {
|
331
|
-
return this.findPrevPanel(this.pcAccordion.el.nativeElement.lastElementChild, true);
|
332
|
-
}
|
333
|
-
changeFocusedPanel(event, element) {
|
334
|
-
focus(element);
|
335
|
-
}
|
336
|
-
arrowDownKey(event) {
|
337
|
-
const nextPanel = this.findNextPanel(this.findPanel(event.currentTarget));
|
338
|
-
nextPanel ? this.changeFocusedPanel(event, nextPanel) : this.onHomeKey(event);
|
339
|
-
event.preventDefault();
|
340
|
-
}
|
341
|
-
arrowUpKey(event) {
|
342
|
-
const prevPanel = this.findPrevPanel(this.findPanel(event.currentTarget));
|
343
|
-
prevPanel ? this.changeFocusedPanel(event, prevPanel) : this.onEndKey(event);
|
344
|
-
event.preventDefault();
|
345
|
-
}
|
346
|
-
onHomeKey(event) {
|
347
|
-
const firstPanel = this.findFirstPanel();
|
348
|
-
this.changeFocusedPanel(event, firstPanel);
|
349
|
-
event.preventDefault();
|
350
|
-
}
|
351
|
-
onEndKey(event) {
|
352
|
-
const lastPanel = this.findLastPanel();
|
353
|
-
this.changeFocusedPanel(event, lastPanel);
|
354
|
-
event.preventDefault();
|
355
|
-
}
|
356
|
-
onEnterKey(event) {
|
357
|
-
this.changeActiveValue();
|
358
|
-
event.preventDefault();
|
359
|
-
}
|
360
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionHeader_BaseFactory; return function AccordionHeader_Factory(__ngFactoryType__) { return (ɵAccordionHeader_BaseFactory || (ɵAccordionHeader_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionHeader)))(__ngFactoryType__ || AccordionHeader); }; })();
|
361
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionHeader, selectors: [["p-accordion-header"], ["p-accordionheader"]], contentQueries: function AccordionHeader_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
362
|
-
i0.ɵɵcontentQuery(dirIndex, _c1, 5);
|
363
|
-
} if (rf & 2) {
|
364
|
-
let _t;
|
365
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.toggleicon = _t.first);
|
366
|
-
} }, hostVars: 12, hostBindings: function AccordionHeader_HostBindings(rf, ctx) { if (rf & 1) {
|
367
|
-
i0.ɵɵlistener("click", function AccordionHeader_click_HostBindingHandler($event) { return ctx.onClick($event); })("focus", function AccordionHeader_focus_HostBindingHandler($event) { return ctx.onFocus($event); })("keydown", function AccordionHeader_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });
|
368
|
-
} if (rf & 2) {
|
369
|
-
i0.ɵɵattribute("id", ctx.id())("aria-expanded", ctx.active())("aria-controls", ctx.ariaControls())("role", "button")("tabindex", "0")("data-p-active", ctx.active())("data-p-disabled", ctx.disabled())("data-pc-name", "accordionheader");
|
370
|
-
i0.ɵɵstyleProp("user-select", "none");
|
371
|
-
i0.ɵɵclassProp("p-accordionheader", true);
|
372
|
-
} }, standalone: true, features: [i0.ɵɵHostDirectivesFeature([i1.Ripple]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 3, vars: 1, consts: [[4, "ngTemplateOutlet", "ngTemplateOutletContext"], [4, "ngIf"], [3, "class", "ngClass", 4, "ngIf"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"]], template: function AccordionHeader_Template(rf, ctx) { if (rf & 1) {
|
373
|
-
i0.ɵɵprojectionDef();
|
374
|
-
i0.ɵɵprojection(0);
|
375
|
-
i0.ɵɵtemplate(1, AccordionHeader_Conditional_1_Template, 1, 4)(2, AccordionHeader_Conditional_2_Template, 2, 2);
|
376
|
-
} if (rf & 2) {
|
377
|
-
i0.ɵɵadvance();
|
378
|
-
i0.ɵɵconditional(ctx.toggleicon ? 1 : 2);
|
379
|
-
} }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, ChevronDownIcon, ChevronUpIcon], encapsulation: 2, changeDetection: 0 });
|
380
|
-
}
|
381
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionHeader, [{
|
382
|
-
type: Component,
|
383
|
-
args: [{
|
384
|
-
selector: 'p-accordion-header, p-accordionheader',
|
385
|
-
imports: [CommonModule, ChevronDownIcon, ChevronUpIcon, Ripple],
|
386
|
-
standalone: true,
|
387
|
-
template: `
|
388
|
-
<ng-content />
|
389
|
-
@if (toggleicon) {
|
390
|
-
<ng-template *ngTemplateOutlet="toggleicon; context: { active: active() }"></ng-template>
|
391
|
-
} @else {
|
392
|
-
<ng-container *ngIf="active()">
|
393
|
-
<span *ngIf="pcAccordion.collapseIcon" [class]="pcAccordion.collapseIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true"></span>
|
394
|
-
<ChevronDownIcon *ngIf="!pcAccordion.collapseIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true" />
|
395
|
-
</ng-container>
|
396
|
-
<ng-container *ngIf="!active()">
|
397
|
-
<span *ngIf="pcAccordion.expandIcon" [class]="pcAccordion.expandIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true"></span>
|
398
|
-
<ChevronUpIcon *ngIf="!pcAccordion.expandIcon" [ngClass]="pcAccordion.iconClass" [attr.aria-hidden]="true" />
|
399
|
-
</ng-container>
|
400
|
-
}
|
401
|
-
`,
|
402
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
403
|
-
encapsulation: ViewEncapsulation.None,
|
404
|
-
host: {
|
405
|
-
'[class.p-accordionheader]': 'true',
|
406
|
-
'[attr.id]': 'id()',
|
407
|
-
'[attr.aria-expanded]': 'active()',
|
408
|
-
'[attr.aria-controls]': 'ariaControls()',
|
409
|
-
'[attr.role]': '"button"',
|
410
|
-
'[attr.tabindex]': '"0"',
|
411
|
-
'[attr.data-p-active]': 'active()',
|
412
|
-
'[attr.data-p-disabled]': 'disabled()',
|
413
|
-
'[attr.data-pc-name]': '"accordionheader"',
|
414
|
-
'[style.user-select]': '"none"'
|
415
|
-
},
|
416
|
-
hostDirectives: [Ripple]
|
417
|
-
}]
|
418
|
-
}], null, { toggleicon: [{
|
419
|
-
type: ContentChild,
|
420
|
-
args: ['toggleicon']
|
421
|
-
}], onClick: [{
|
422
|
-
type: HostListener,
|
423
|
-
args: ['click', ['$event']]
|
424
|
-
}], onFocus: [{
|
425
|
-
type: HostListener,
|
426
|
-
args: ['focus', ['$event']]
|
427
|
-
}], onKeydown: [{
|
428
|
-
type: HostListener,
|
429
|
-
args: ['keydown', ['$event']]
|
430
|
-
}] }); })();
|
431
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionHeader, { className: "AccordionHeader" }); })();
|
432
|
-
export class AccordionContent extends BaseComponent {
|
433
|
-
pcAccordion = inject(forwardRef(() => Accordion));
|
434
|
-
pcAccordionPanel = inject(forwardRef(() => AccordionPanel));
|
435
|
-
active = computed(() => this.pcAccordionPanel.active());
|
436
|
-
ariaLabelledby = computed(() => `${this.pcAccordion.id()}_accordionheader_${this.pcAccordionPanel.value()}`);
|
437
|
-
id = computed(() => `${this.pcAccordion.id()}_accordioncontent_${this.pcAccordionPanel.value()}`);
|
438
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionContent_BaseFactory; return function AccordionContent_Factory(__ngFactoryType__) { return (ɵAccordionContent_BaseFactory || (ɵAccordionContent_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionContent)))(__ngFactoryType__ || AccordionContent); }; })();
|
439
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionContent, selectors: [["p-accordion-content"], ["p-accordioncontent"]], hostVars: 16, hostBindings: function AccordionContent_HostBindings(rf, ctx) { if (rf & 2) {
|
440
|
-
i0.ɵɵsyntheticHostProperty("@content", ctx.active() ? i0.ɵɵpureFunction1(10, _c4, i0.ɵɵpureFunction1(8, _c3, ctx.pcAccordion.transitionOptions)) : i0.ɵɵpureFunction1(14, _c5, i0.ɵɵpureFunction1(12, _c3, ctx.pcAccordion.transitionOptions)));
|
441
|
-
i0.ɵɵattribute("id", ctx.id())("role", "region")("data-pc-name", "accordioncontent")("data-p-active", ctx.active())("aria-labelledby", ctx.ariaLabelledby());
|
442
|
-
i0.ɵɵclassProp("p-accordioncontent", true);
|
443
|
-
} }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, "p-accordioncontent-content"]], template: function AccordionContent_Template(rf, ctx) { if (rf & 1) {
|
444
|
-
i0.ɵɵprojectionDef();
|
445
|
-
i0.ɵɵelementStart(0, "div", 0);
|
446
|
-
i0.ɵɵprojection(1);
|
447
|
-
i0.ɵɵelementEnd();
|
448
|
-
} }, dependencies: [CommonModule], encapsulation: 2, data: { animation: [
|
449
|
-
trigger('content', [
|
450
|
-
state('hidden', style({
|
451
|
-
height: '0',
|
452
|
-
visibility: 'hidden'
|
453
|
-
})),
|
454
|
-
state('visible', style({
|
455
|
-
height: '*',
|
456
|
-
visibility: 'visible'
|
457
|
-
})),
|
458
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
459
|
-
transition('void => *', animate(0))
|
460
|
-
])
|
461
|
-
] }, changeDetection: 0 });
|
462
|
-
}
|
463
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionContent, [{
|
464
|
-
type: Component,
|
465
|
-
args: [{
|
466
|
-
selector: 'p-accordion-content, p-accordioncontent',
|
467
|
-
imports: [CommonModule],
|
468
|
-
standalone: true,
|
469
|
-
template: ` <div class="p-accordioncontent-content">
|
470
|
-
<ng-content />
|
471
|
-
</div>`,
|
472
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
473
|
-
encapsulation: ViewEncapsulation.None,
|
474
|
-
host: {
|
475
|
-
'[class.p-accordioncontent]': 'true',
|
476
|
-
'[attr.id]': 'id()',
|
477
|
-
'[attr.role]': '"region"',
|
478
|
-
'[attr.data-pc-name]': '"accordioncontent"',
|
479
|
-
'[attr.data-p-active]': 'active()',
|
480
|
-
'[attr.aria-labelledby]': 'ariaLabelledby()',
|
481
|
-
'[@content]': `active()
|
482
|
-
? { value: 'visible', params: { transitionParams: pcAccordion.transitionOptions } }
|
483
|
-
: { value: 'hidden', params: { transitionParams: pcAccordion.transitionOptions } }`
|
484
|
-
},
|
485
|
-
animations: [
|
486
|
-
trigger('content', [
|
487
|
-
state('hidden', style({
|
488
|
-
height: '0',
|
489
|
-
visibility: 'hidden'
|
490
|
-
})),
|
491
|
-
state('visible', style({
|
492
|
-
height: '*',
|
493
|
-
visibility: 'visible'
|
494
|
-
})),
|
495
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
496
|
-
transition('void => *', animate(0))
|
497
|
-
])
|
498
|
-
]
|
499
|
-
}]
|
500
|
-
}], null, null); })();
|
501
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionContent, { className: "AccordionContent" }); })();
|
502
|
-
/**
|
503
|
-
* AccordionTab is a helper component for Accordion.
|
504
|
-
* @deprecated Use AccordionPanel, AccordionHeader, AccordionContent instead.
|
505
|
-
* @group Components
|
506
|
-
*/
|
507
|
-
export class AccordionTab extends BaseComponent {
|
508
|
-
get hostClass() {
|
509
|
-
return this.tabStyleClass;
|
510
|
-
}
|
511
|
-
get hostStyle() {
|
512
|
-
return this.tabStyle;
|
513
|
-
}
|
514
|
-
/**
|
515
|
-
* Current id state as a string.
|
516
|
-
* @group Props
|
517
|
-
*/
|
518
|
-
id = uuid('pn_id_');
|
519
|
-
/**
|
520
|
-
* Used to define the header of the tab.
|
521
|
-
* @group Props
|
522
|
-
*/
|
523
|
-
header;
|
524
|
-
/**
|
525
|
-
* Inline style of the tab header.
|
526
|
-
* @group Props
|
527
|
-
*/
|
528
|
-
headerStyle;
|
529
|
-
/**
|
530
|
-
* Inline style of the tab.
|
531
|
-
* @group Props
|
532
|
-
*/
|
533
|
-
tabStyle;
|
534
|
-
/**
|
535
|
-
* Inline style of the tab content.
|
536
|
-
* @group Props
|
537
|
-
*/
|
538
|
-
contentStyle;
|
539
|
-
/**
|
540
|
-
* Style class of the tab.
|
541
|
-
* @group Props
|
542
|
-
*/
|
543
|
-
tabStyleClass;
|
544
|
-
/**
|
545
|
-
* Style class of the tab header.
|
546
|
-
* @group Props
|
547
|
-
*/
|
548
|
-
headerStyleClass;
|
549
|
-
/**
|
550
|
-
* Style class of the tab content.
|
551
|
-
* @group Props
|
552
|
-
*/
|
553
|
-
contentStyleClass;
|
554
|
-
/**
|
555
|
-
* Whether the tab is disabled.
|
556
|
-
* @group Props
|
557
|
-
*/
|
558
|
-
disabled;
|
559
|
-
/**
|
560
|
-
* Whether a lazy loaded panel should avoid getting loaded again on reselection.
|
561
|
-
* @group Props
|
562
|
-
*/
|
563
|
-
cache = true;
|
564
|
-
/**
|
565
|
-
* Transition options of the animation.
|
566
|
-
* @group Props
|
567
|
-
*/
|
568
|
-
transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
|
569
|
-
/**
|
570
|
-
* Position of the icon.
|
571
|
-
* @group Props
|
572
|
-
*/
|
573
|
-
iconPos = 'start';
|
574
|
-
/**
|
575
|
-
* The value that returns the selection.
|
576
|
-
* @group Props
|
577
|
-
*/
|
578
|
-
get selected() {
|
579
|
-
return this._selected;
|
580
|
-
}
|
581
|
-
set selected(val) {
|
582
|
-
this._selected = val;
|
583
|
-
if (!this.loaded) {
|
584
|
-
if (this._selected && this.cache) {
|
585
|
-
this.loaded = true;
|
586
|
-
}
|
587
|
-
this.cd.detectChanges();
|
588
|
-
}
|
589
|
-
}
|
590
|
-
/**
|
591
|
-
* The aria-level that each accordion header will have. The default value is 2 as per W3C specifications
|
592
|
-
* @group Props
|
593
|
-
*/
|
594
|
-
headerAriaLevel = 2;
|
595
|
-
/**
|
596
|
-
* Event triggered by changing the choice.
|
597
|
-
* @param {boolean} value - Boolean value indicates that the option is changed.
|
598
|
-
* @group Emits
|
599
|
-
*/
|
600
|
-
selectedChange = new EventEmitter();
|
601
|
-
headerFacet;
|
602
|
-
_selected = false;
|
603
|
-
get iconClass() {
|
604
|
-
if (this.iconPos === 'end') {
|
605
|
-
return 'p-accordionheader-toggle-icon icon-end';
|
606
|
-
}
|
607
|
-
else {
|
608
|
-
return 'p-accordionheader-toggle-icon icon-start';
|
609
|
-
}
|
610
|
-
}
|
611
|
-
/**
|
612
|
-
* Content template for the content of the drawer.
|
613
|
-
* @group Templates
|
614
|
-
*/
|
615
|
-
headerTemplate;
|
616
|
-
/**
|
617
|
-
* Header template for the header of the drawer.
|
618
|
-
* @group Templates
|
619
|
-
*/
|
620
|
-
footerTemplate;
|
621
|
-
/**
|
622
|
-
* Template for the header icon.
|
623
|
-
* @group Templates
|
624
|
-
*/
|
625
|
-
iconTemplate;
|
626
|
-
/**
|
627
|
-
* Content template for the footer of the drawer.
|
628
|
-
* @group Templates
|
629
|
-
*/
|
630
|
-
contentTemplate;
|
631
|
-
loaded = false;
|
632
|
-
accordion = inject(forwardRef(() => Accordion));
|
633
|
-
_componentStyle = inject(AccordionStyle);
|
634
|
-
ngOnInit() {
|
635
|
-
super.ngOnInit();
|
636
|
-
console.log('AccordionTab is deprecated as of v18, please use the new structure instead.');
|
637
|
-
}
|
638
|
-
toggle(event) {
|
639
|
-
if (this.disabled) {
|
640
|
-
return false;
|
641
|
-
}
|
642
|
-
let index = this.findTabIndex();
|
643
|
-
if (this.selected) {
|
644
|
-
this.selected = false;
|
645
|
-
this.accordion.onClose.emit({ originalEvent: event, index: index });
|
646
|
-
}
|
647
|
-
else {
|
648
|
-
if (!this.accordion.multiple()) {
|
649
|
-
for (var i = 0; i < this.accordion.tabs.length; i++) {
|
650
|
-
if (this.accordion.tabs[i].selected) {
|
651
|
-
this.accordion.tabs[i].selected = false;
|
652
|
-
this.accordion.tabs[i].selectedChange.emit(false);
|
653
|
-
this.accordion.tabs[i].cd.markForCheck();
|
654
|
-
}
|
655
|
-
}
|
656
|
-
}
|
657
|
-
this.selected = true;
|
658
|
-
this.loaded = true;
|
659
|
-
this.accordion.onOpen.emit({ originalEvent: event, index: index });
|
660
|
-
}
|
661
|
-
this.selectedChange.emit(this.selected);
|
662
|
-
this.accordion.updateActiveIndex();
|
663
|
-
this.cd.markForCheck();
|
664
|
-
event?.preventDefault();
|
665
|
-
}
|
666
|
-
findTabIndex() {
|
667
|
-
let index = -1;
|
668
|
-
for (var i = 0; i < this.accordion.tabs.length; i++) {
|
669
|
-
if (this.accordion.tabs[i] == this) {
|
670
|
-
index = i;
|
671
|
-
break;
|
672
|
-
}
|
673
|
-
}
|
674
|
-
return index;
|
675
|
-
}
|
676
|
-
onKeydown(event) {
|
677
|
-
switch (event.code) {
|
678
|
-
case 'Enter':
|
679
|
-
case 'Space':
|
680
|
-
this.toggle(event);
|
681
|
-
event.preventDefault();
|
682
|
-
break;
|
683
|
-
default:
|
684
|
-
break;
|
685
|
-
}
|
686
|
-
}
|
687
|
-
getTabHeaderActionId(tabId) {
|
688
|
-
return `${tabId}_header_action`;
|
689
|
-
}
|
690
|
-
getTabContentId(tabId) {
|
691
|
-
return `${tabId}_content`;
|
692
|
-
}
|
693
|
-
ngOnDestroy() {
|
694
|
-
this.accordion.tabs.splice(this.findTabIndex(), 1);
|
695
|
-
super.ngOnDestroy();
|
696
|
-
}
|
697
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵAccordionTab_BaseFactory; return function AccordionTab_Factory(__ngFactoryType__) { return (ɵAccordionTab_BaseFactory || (ɵAccordionTab_BaseFactory = i0.ɵɵgetInheritedFactory(AccordionTab)))(__ngFactoryType__ || AccordionTab); }; })();
|
698
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AccordionTab, selectors: [["p-accordionTab"], ["p-accordion-tab"], ["p-accordiontab"]], contentQueries: function AccordionTab_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
699
|
-
i0.ɵɵcontentQuery(dirIndex, _c6, 5);
|
700
|
-
i0.ɵɵcontentQuery(dirIndex, _c7, 5);
|
701
|
-
i0.ɵɵcontentQuery(dirIndex, _c8, 5);
|
702
|
-
i0.ɵɵcontentQuery(dirIndex, _c9, 5);
|
703
|
-
i0.ɵɵcontentQuery(dirIndex, Header, 4);
|
704
|
-
} if (rf & 2) {
|
705
|
-
let _t;
|
706
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);
|
707
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);
|
708
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.iconTemplate = _t.first);
|
709
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
|
710
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerFacet = _t);
|
711
|
-
} }, hostVars: 9, hostBindings: function AccordionTab_HostBindings(rf, ctx) { if (rf & 2) {
|
712
|
-
i0.ɵɵattribute("data-pc-name", "accordiontab");
|
713
|
-
i0.ɵɵstyleMap(ctx.hostStyle);
|
714
|
-
i0.ɵɵclassMap(ctx.hostClass);
|
715
|
-
i0.ɵɵclassProp("p-accordionpanel", true)("p-accordionpanel-active", ctx.selected);
|
716
|
-
} }, inputs: { id: "id", header: "header", headerStyle: "headerStyle", tabStyle: "tabStyle", contentStyle: "contentStyle", tabStyleClass: "tabStyleClass", headerStyleClass: "headerStyleClass", contentStyleClass: "contentStyleClass", disabled: [2, "disabled", "disabled", booleanAttribute], cache: [2, "cache", "cache", booleanAttribute], transitionOptions: "transitionOptions", iconPos: "iconPos", selected: "selected", headerAriaLevel: [2, "headerAriaLevel", "headerAriaLevel", numberAttribute] }, outputs: { selectedChange: "selectedChange" }, standalone: true, features: [i0.ɵɵProvidersFeature([AccordionStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c11, decls: 9, vars: 30, consts: [["type", "button", 1, "p-accordionheader", 3, "click", "keydown", "disabled", "ngClass", "ngStyle"], ["role", "region", 1, "p-accordioncontent"], [1, "p-accordioncontent-content", 3, "ngClass", "ngStyle"], [4, "ngIf"], [4, "ngTemplateOutlet"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [3, "class", "ngClass", 4, "ngIf"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"]], template: function AccordionTab_Template(rf, ctx) { if (rf & 1) {
|
717
|
-
i0.ɵɵprojectionDef(_c10);
|
718
|
-
i0.ɵɵelementStart(0, "button", 0);
|
719
|
-
i0.ɵɵlistener("click", function AccordionTab_Template_button_click_0_listener($event) { return ctx.toggle($event); })("keydown", function AccordionTab_Template_button_keydown_0_listener($event) { return ctx.onKeydown($event); });
|
720
|
-
i0.ɵɵtemplate(1, AccordionTab_Conditional_1_Template, 1, 1)(2, AccordionTab_Conditional_2_Template, 2, 2)(3, AccordionTab_Conditional_3_Template, 1, 4)(4, AccordionTab_Conditional_4_Template, 2, 2);
|
721
|
-
i0.ɵɵelementEnd();
|
722
|
-
i0.ɵɵelementStart(5, "div", 1)(6, "div", 2);
|
723
|
-
i0.ɵɵprojection(7);
|
724
|
-
i0.ɵɵtemplate(8, AccordionTab_ng_container_8_Template, 2, 1, "ng-container", 3);
|
725
|
-
i0.ɵɵelementEnd()();
|
726
|
-
} if (rf & 2) {
|
727
|
-
i0.ɵɵclassProp("p-disabled", ctx.disabled);
|
728
|
-
i0.ɵɵproperty("disabled", ctx.disabled)("ngClass", ctx.headerStyleClass)("ngStyle", ctx.headerStyle);
|
729
|
-
i0.ɵɵattribute("aria-expanded", ctx.selected)("aria-level", ctx.headerAriaLevel)("data-p-disabled", ctx.disabled)("data-pc-section", "accordionheader")("tabindex", ctx.disabled ? null : 0)("id", ctx.getTabHeaderActionId(ctx.id))("aria-controls", ctx.getTabContentId(ctx.id));
|
730
|
-
i0.ɵɵadvance();
|
731
|
-
i0.ɵɵconditional(!ctx.headerTemplate ? 1 : 2);
|
732
|
-
i0.ɵɵadvance(2);
|
733
|
-
i0.ɵɵconditional(ctx.iconTemplate ? 3 : 4);
|
734
|
-
i0.ɵɵadvance(2);
|
735
|
-
i0.ɵɵproperty("@tabContent", ctx.selected ? i0.ɵɵpureFunction1(24, _c4, i0.ɵɵpureFunction1(22, _c3, ctx.transitionOptions)) : i0.ɵɵpureFunction1(28, _c5, i0.ɵɵpureFunction1(26, _c3, ctx.transitionOptions)));
|
736
|
-
i0.ɵɵattribute("id", ctx.getTabContentId(ctx.id))("aria-hidden", !ctx.selected)("aria-labelledby", ctx.getTabHeaderActionId(ctx.id))("data-pc-section", "toggleablecontent");
|
737
|
-
i0.ɵɵadvance();
|
738
|
-
i0.ɵɵproperty("ngClass", ctx.contentStyleClass)("ngStyle", ctx.contentStyle);
|
739
|
-
i0.ɵɵadvance(2);
|
740
|
-
i0.ɵɵproperty("ngIf", ctx.contentTemplate && (ctx.cache ? ctx.loaded : ctx.selected));
|
741
|
-
} }, dependencies: [CommonModule, i2.NgClass, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, ChevronDownIcon, ChevronUpIcon], encapsulation: 2, data: { animation: [
|
742
|
-
trigger('tabContent', [
|
743
|
-
state('hidden', style({
|
744
|
-
height: '0',
|
745
|
-
visibility: 'hidden'
|
746
|
-
})),
|
747
|
-
state('visible', style({
|
748
|
-
height: '*',
|
749
|
-
visibility: 'visible'
|
750
|
-
})),
|
751
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
752
|
-
transition('void => *', animate(0))
|
753
|
-
])
|
754
|
-
] }, changeDetection: 0 });
|
755
|
-
}
|
756
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionTab, [{
|
757
|
-
type: Component,
|
758
|
-
args: [{
|
759
|
-
selector: 'p-accordionTab, p-accordion-tab, p-accordiontab',
|
760
|
-
standalone: true,
|
761
|
-
imports: [CommonModule, ChevronDownIcon, ChevronUpIcon],
|
762
|
-
template: `
|
763
|
-
<button
|
764
|
-
class="p-accordionheader"
|
765
|
-
type="button"
|
766
|
-
[disabled]="disabled"
|
767
|
-
[attr.aria-expanded]="selected"
|
768
|
-
[attr.aria-level]="headerAriaLevel"
|
769
|
-
[class.p-disabled]="disabled"
|
770
|
-
[attr.data-p-disabled]="disabled"
|
771
|
-
[attr.data-pc-section]="'accordionheader'"
|
772
|
-
(click)="toggle($event)"
|
773
|
-
(keydown)="onKeydown($event)"
|
774
|
-
[ngClass]="headerStyleClass"
|
775
|
-
[ngStyle]="headerStyle"
|
776
|
-
[attr.tabindex]="disabled ? null : 0"
|
777
|
-
[attr.id]="getTabHeaderActionId(id)"
|
778
|
-
[attr.aria-controls]="getTabContentId(id)"
|
779
|
-
>
|
780
|
-
@if (!headerTemplate) {
|
781
|
-
{{ header }}
|
782
|
-
} @else {
|
783
|
-
@if (headerTemplate) {
|
784
|
-
<ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
|
785
|
-
}
|
786
|
-
@if (headerFacet) {
|
787
|
-
<ng-content select="p-header" />
|
788
|
-
}
|
789
|
-
}
|
790
|
-
@if (iconTemplate) {
|
791
|
-
<ng-template *ngTemplateOutlet="iconTemplate; context: { $implicit: selected }"></ng-template>
|
792
|
-
} @else {
|
793
|
-
<ng-container *ngIf="selected">
|
794
|
-
<span *ngIf="accordion.collapseIcon" [class]="accordion.collapseIcon" [ngClass]="iconClass" [attr.aria-hidden]="true"></span>
|
795
|
-
<ChevronDownIcon *ngIf="!accordion.collapseIcon" [ngClass]="iconClass" [attr.aria-hidden]="true" />
|
796
|
-
</ng-container>
|
797
|
-
<ng-container *ngIf="!selected">
|
798
|
-
<span *ngIf="accordion.expandIcon" [class]="accordion.expandIcon" [ngClass]="iconClass" [attr.aria-hidden]="true"></span>
|
799
|
-
<ChevronUpIcon *ngIf="!accordion.expandIcon" [ngClass]="iconClass" [attr.aria-hidden]="true" />
|
800
|
-
</ng-container>
|
801
|
-
}
|
802
|
-
</button>
|
803
|
-
<div
|
804
|
-
[attr.id]="getTabContentId(id)"
|
805
|
-
class="p-accordioncontent"
|
806
|
-
[@tabContent]="selected ? { value: 'visible', params: { transitionParams: transitionOptions } } : { value: 'hidden', params: { transitionParams: transitionOptions } }"
|
807
|
-
role="region"
|
808
|
-
[attr.aria-hidden]="!selected"
|
809
|
-
[attr.aria-labelledby]="getTabHeaderActionId(id)"
|
810
|
-
[attr.data-pc-section]="'toggleablecontent'"
|
811
|
-
>
|
812
|
-
<div class="p-accordioncontent-content" [ngClass]="contentStyleClass" [ngStyle]="contentStyle">
|
813
|
-
<ng-content />
|
814
|
-
<ng-container *ngIf="contentTemplate && (cache ? loaded : selected)">
|
815
|
-
<ng-container *ngTemplateOutlet="contentTemplate"></ng-container>
|
816
|
-
</ng-container>
|
817
|
-
</div>
|
818
|
-
</div>
|
819
|
-
`,
|
820
|
-
animations: [
|
821
|
-
trigger('tabContent', [
|
822
|
-
state('hidden', style({
|
823
|
-
height: '0',
|
824
|
-
visibility: 'hidden'
|
825
|
-
})),
|
826
|
-
state('visible', style({
|
827
|
-
height: '*',
|
828
|
-
visibility: 'visible'
|
829
|
-
})),
|
830
|
-
transition('visible <=> hidden', [animate('{{transitionParams}}')]),
|
831
|
-
transition('void => *', animate(0))
|
832
|
-
])
|
833
|
-
],
|
834
|
-
host: {
|
835
|
-
'[class.p-accordionpanel]': 'true',
|
836
|
-
'[class.p-accordionpanel-active]': 'selected',
|
837
|
-
'[attr.data-pc-name]': '"accordiontab"'
|
838
|
-
},
|
839
|
-
providers: [AccordionStyle],
|
840
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
841
|
-
encapsulation: ViewEncapsulation.None
|
842
|
-
}]
|
843
|
-
}], null, { hostClass: [{
|
844
|
-
type: HostBinding,
|
845
|
-
args: ['class']
|
846
|
-
}], hostStyle: [{
|
847
|
-
type: HostBinding,
|
848
|
-
args: ['style']
|
849
|
-
}], id: [{
|
850
|
-
type: Input
|
851
|
-
}], header: [{
|
852
|
-
type: Input
|
853
|
-
}], headerStyle: [{
|
854
|
-
type: Input
|
855
|
-
}], tabStyle: [{
|
856
|
-
type: Input
|
857
|
-
}], contentStyle: [{
|
858
|
-
type: Input
|
859
|
-
}], tabStyleClass: [{
|
860
|
-
type: Input
|
861
|
-
}], headerStyleClass: [{
|
862
|
-
type: Input
|
863
|
-
}], contentStyleClass: [{
|
864
|
-
type: Input
|
865
|
-
}], disabled: [{
|
866
|
-
type: Input,
|
867
|
-
args: [{ transform: booleanAttribute }]
|
868
|
-
}], cache: [{
|
869
|
-
type: Input,
|
870
|
-
args: [{ transform: booleanAttribute }]
|
871
|
-
}], transitionOptions: [{
|
872
|
-
type: Input
|
873
|
-
}], iconPos: [{
|
874
|
-
type: Input
|
875
|
-
}], selected: [{
|
876
|
-
type: Input
|
877
|
-
}], headerAriaLevel: [{
|
878
|
-
type: Input,
|
879
|
-
args: [{ transform: numberAttribute }]
|
880
|
-
}], selectedChange: [{
|
881
|
-
type: Output
|
882
|
-
}], headerFacet: [{
|
883
|
-
type: ContentChildren,
|
884
|
-
args: [Header]
|
885
|
-
}], headerTemplate: [{
|
886
|
-
type: ContentChild,
|
887
|
-
args: ['header']
|
888
|
-
}], footerTemplate: [{
|
889
|
-
type: ContentChild,
|
890
|
-
args: ['footer']
|
891
|
-
}], iconTemplate: [{
|
892
|
-
type: ContentChild,
|
893
|
-
args: ['icon']
|
894
|
-
}], contentTemplate: [{
|
895
|
-
type: ContentChild,
|
896
|
-
args: ['content']
|
897
|
-
}] }); })();
|
898
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AccordionTab, { className: "AccordionTab" }); })();
|
899
|
-
/**
|
900
|
-
* Accordion groups a collection of contents in tabs.
|
901
|
-
* @group Components
|
902
|
-
*/
|
903
|
-
export class Accordion extends BaseComponent {
|
904
|
-
get hostClass() {
|
905
|
-
return this.styleClass;
|
906
|
-
}
|
907
|
-
get hostStyle() {
|
908
|
-
return this.style;
|
909
|
-
}
|
910
|
-
/**
|
911
|
-
* Value of the active tab.
|
912
|
-
* @defaultValue undefined
|
913
|
-
* @group Props
|
914
|
-
*/
|
915
|
-
value = model(undefined);
|
916
|
-
/**
|
917
|
-
* When enabled, multiple tabs can be activated at the same time.
|
918
|
-
* @defaultValue false
|
919
|
-
* @group Props
|
920
|
-
*/
|
921
|
-
multiple = input(false, { transform: (v) => transformToBoolean(v) });
|
922
|
-
/**
|
923
|
-
* Inline style of the tab header and content.
|
924
|
-
* @group Props
|
925
|
-
*/
|
926
|
-
style;
|
927
|
-
/**
|
928
|
-
* Class of the element.
|
929
|
-
* @group Props
|
930
|
-
*/
|
931
|
-
styleClass;
|
932
|
-
/**
|
933
|
-
* Icon of a collapsed tab.
|
934
|
-
* @group Props
|
935
|
-
*/
|
936
|
-
expandIcon;
|
937
|
-
/**
|
938
|
-
* Icon of an expanded tab.
|
939
|
-
* @group Props
|
940
|
-
*/
|
941
|
-
collapseIcon;
|
942
|
-
/**
|
943
|
-
* When enabled, the focused tab is activated.
|
944
|
-
* @defaultValue false
|
945
|
-
* @group Props
|
946
|
-
*/
|
947
|
-
selectOnFocus = input(false, { transform: (v) => transformToBoolean(v) });
|
948
|
-
set activeIndex(val) {
|
949
|
-
this._activeIndex = val;
|
950
|
-
if (this.preventActiveIndexPropagation) {
|
951
|
-
this.preventActiveIndexPropagation = false;
|
952
|
-
return;
|
953
|
-
}
|
954
|
-
this.updateSelectionState();
|
955
|
-
}
|
956
|
-
/**
|
957
|
-
* Transition options of the animation.
|
958
|
-
* @group Props
|
959
|
-
*/
|
960
|
-
transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
|
961
|
-
/**
|
962
|
-
* Returns the active index.
|
963
|
-
* @param {number | number[]} value - New index.
|
964
|
-
* @deprecated use native valueChange emitter of the value model.
|
965
|
-
* @group Emits
|
966
|
-
*/
|
967
|
-
activeIndexChange = new EventEmitter();
|
968
|
-
set headerAriaLevel(val) {
|
969
|
-
if (typeof val === 'number' && val > 0) {
|
970
|
-
this._headerAriaLevel = val;
|
971
|
-
}
|
972
|
-
else if (this._headerAriaLevel !== 2) {
|
973
|
-
this._headerAriaLevel = 2;
|
974
|
-
}
|
975
|
-
}
|
976
|
-
/**
|
977
|
-
* Callback to invoke when an active tab is collapsed by clicking on the header.
|
978
|
-
* @param {AccordionTabCloseEvent} event - Custom tab close event.
|
979
|
-
* @group Emits
|
980
|
-
*/
|
981
|
-
onClose = new EventEmitter();
|
982
|
-
/**
|
983
|
-
* Callback to invoke when a tab gets expanded.
|
984
|
-
* @param {AccordionTabOpenEvent} event - Custom tab open event.
|
985
|
-
* @group Emits
|
986
|
-
*/
|
987
|
-
onOpen = new EventEmitter();
|
988
|
-
id = signal(uuid('pn_id_'));
|
989
|
-
tabList;
|
990
|
-
tabListSubscription = null;
|
991
|
-
_activeIndex;
|
992
|
-
_headerAriaLevel = 2;
|
993
|
-
preventActiveIndexPropagation = false;
|
994
|
-
tabs = [];
|
995
|
-
_componentStyle = inject(AccordionStyle);
|
996
|
-
/**
|
997
|
-
* Index of the active tab or an array of indexes in multiple mode.
|
998
|
-
* @deprecated use value property with new architecture instead.
|
999
|
-
* @group Props
|
1000
|
-
*/
|
1001
|
-
get activeIndex() {
|
1002
|
-
return this._activeIndex;
|
1003
|
-
}
|
1004
|
-
/**
|
1005
|
-
* The aria-level that each accordion header will have. The default value is 2 as per W3C specifications
|
1006
|
-
* @deprecated use AccoridonHeader component and bind attribute to the host.
|
1007
|
-
* @group Props
|
1008
|
-
*/
|
1009
|
-
get headerAriaLevel() {
|
1010
|
-
return this._headerAriaLevel;
|
1011
|
-
}
|
1012
|
-
onKeydown(event) {
|
1013
|
-
switch (event.code) {
|
1014
|
-
case 'ArrowDown':
|
1015
|
-
this.onTabArrowDownKey(event);
|
1016
|
-
break;
|
1017
|
-
case 'ArrowUp':
|
1018
|
-
this.onTabArrowUpKey(event);
|
1019
|
-
break;
|
1020
|
-
case 'Home':
|
1021
|
-
if (!event.shiftKey) {
|
1022
|
-
this.onTabHomeKey(event);
|
1023
|
-
}
|
1024
|
-
break;
|
1025
|
-
case 'End':
|
1026
|
-
if (!event.shiftKey) {
|
1027
|
-
this.onTabEndKey(event);
|
1028
|
-
}
|
1029
|
-
break;
|
1030
|
-
}
|
1031
|
-
}
|
1032
|
-
onTabArrowDownKey(event) {
|
1033
|
-
const nextHeaderAction = this.findNextHeaderAction(event.target.parentElement);
|
1034
|
-
nextHeaderAction ? this.changeFocusedTab(nextHeaderAction) : this.onTabHomeKey(event);
|
1035
|
-
event.preventDefault();
|
1036
|
-
}
|
1037
|
-
onTabArrowUpKey(event) {
|
1038
|
-
const prevHeaderAction = this.findPrevHeaderAction(event.target.parentElement);
|
1039
|
-
prevHeaderAction ? this.changeFocusedTab(prevHeaderAction) : this.onTabEndKey(event);
|
1040
|
-
event.preventDefault();
|
1041
|
-
}
|
1042
|
-
onTabHomeKey(event) {
|
1043
|
-
const firstHeaderAction = this.findFirstHeaderAction();
|
1044
|
-
this.changeFocusedTab(firstHeaderAction);
|
1045
|
-
event.preventDefault();
|
1046
|
-
}
|
1047
|
-
changeFocusedTab(element) {
|
1048
|
-
if (element) {
|
1049
|
-
focus(element);
|
1050
|
-
if (this.selectOnFocus()) {
|
1051
|
-
this.tabs.forEach((tab, i) => {
|
1052
|
-
let selected = this.multiple() ? this._activeIndex.includes(i) : i === this._activeIndex;
|
1053
|
-
if (this.multiple()) {
|
1054
|
-
if (!this._activeIndex) {
|
1055
|
-
this._activeIndex = [];
|
1056
|
-
}
|
1057
|
-
if (tab.id == element.id) {
|
1058
|
-
tab.selected = !tab.selected;
|
1059
|
-
if (!this._activeIndex.includes(i)) {
|
1060
|
-
this._activeIndex.push(i);
|
1061
|
-
}
|
1062
|
-
else {
|
1063
|
-
this._activeIndex = this._activeIndex.filter((ind) => ind !== i);
|
1064
|
-
}
|
1065
|
-
}
|
1066
|
-
}
|
1067
|
-
else {
|
1068
|
-
if (tab.id == element.id) {
|
1069
|
-
tab.selected = !tab.selected;
|
1070
|
-
this._activeIndex = i;
|
1071
|
-
}
|
1072
|
-
else {
|
1073
|
-
tab.selected = false;
|
1074
|
-
}
|
1075
|
-
}
|
1076
|
-
tab.selectedChange.emit(selected);
|
1077
|
-
this.activeIndexChange.emit(this._activeIndex);
|
1078
|
-
tab.cd.markForCheck();
|
1079
|
-
});
|
1080
|
-
}
|
1081
|
-
}
|
1082
|
-
}
|
1083
|
-
findNextHeaderAction(tabElement, selfCheck = false) {
|
1084
|
-
const nextTabElement = selfCheck ? tabElement : tabElement.nextElementSibling;
|
1085
|
-
const headerElement = findSingle(nextTabElement, '[data-pc-section="accordionheader"]');
|
1086
|
-
return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section="accordionheader"]')) : null;
|
1087
|
-
}
|
1088
|
-
findPrevHeaderAction(tabElement, selfCheck = false) {
|
1089
|
-
const prevTabElement = selfCheck ? tabElement : tabElement.previousElementSibling;
|
1090
|
-
const headerElement = findSingle(prevTabElement, '[data-pc-section="accordionheader"]');
|
1091
|
-
return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeaderAction(headerElement.parentElement) : findSingle(headerElement.parentElement, '[data-pc-section="accordionheader"]')) : null;
|
1092
|
-
}
|
1093
|
-
findFirstHeaderAction() {
|
1094
|
-
const firstEl = this.el.nativeElement.firstElementChild;
|
1095
|
-
return this.findNextHeaderAction(firstEl, true);
|
1096
|
-
}
|
1097
|
-
findLastHeaderAction() {
|
1098
|
-
const lastEl = this.el.nativeElement.lastElementChild;
|
1099
|
-
return this.findPrevHeaderAction(lastEl, true);
|
1100
|
-
}
|
1101
|
-
onTabEndKey(event) {
|
1102
|
-
const lastHeaderAction = this.findLastHeaderAction();
|
1103
|
-
this.changeFocusedTab(lastHeaderAction);
|
1104
|
-
event.preventDefault();
|
1105
|
-
}
|
1106
|
-
ngAfterContentInit() {
|
1107
|
-
super.ngAfterContentInit();
|
1108
|
-
this.initTabs();
|
1109
|
-
this.tabListSubscription = this.tabList.changes.subscribe((_) => {
|
1110
|
-
this.initTabs();
|
1111
|
-
});
|
1112
|
-
}
|
1113
|
-
initTabs() {
|
1114
|
-
this.tabs = this.tabList.toArray();
|
1115
|
-
this.tabs.forEach((tab) => {
|
1116
|
-
tab.headerAriaLevel = this._headerAriaLevel;
|
1117
|
-
});
|
1118
|
-
this.updateSelectionState();
|
1119
|
-
this.cd.markForCheck();
|
1120
|
-
}
|
1121
|
-
getBlockableElement() {
|
1122
|
-
return this.el.nativeElement.children[0];
|
1123
|
-
}
|
1124
|
-
updateSelectionState() {
|
1125
|
-
if (this.tabs && this.tabs.length && this._activeIndex != null) {
|
1126
|
-
for (let i = 0; i < this.tabs.length; i++) {
|
1127
|
-
let selected = this.multiple() ? this._activeIndex.includes(i) : i === this._activeIndex;
|
1128
|
-
let changed = selected !== this.tabs[i].selected;
|
1129
|
-
if (changed) {
|
1130
|
-
this.tabs[i].selected = selected;
|
1131
|
-
this.tabs[i].selectedChange.emit(selected);
|
1132
|
-
this.tabs[i].cd.markForCheck();
|
1133
|
-
}
|
1134
|
-
}
|
1135
|
-
}
|
1136
|
-
}
|
1137
|
-
isTabActive(index) {
|
1138
|
-
return this.multiple() ? this._activeIndex && this._activeIndex.includes(index) : this._activeIndex === index;
|
1139
|
-
}
|
1140
|
-
getTabProp(tab, name) {
|
1141
|
-
return tab.props ? tab.props[name] : undefined;
|
1142
|
-
}
|
1143
|
-
updateActiveIndex() {
|
1144
|
-
let index = this.multiple() ? [] : null;
|
1145
|
-
this.tabs.forEach((tab, i) => {
|
1146
|
-
if (tab.selected) {
|
1147
|
-
if (this.multiple()) {
|
1148
|
-
index.push(i);
|
1149
|
-
}
|
1150
|
-
else {
|
1151
|
-
index = i;
|
1152
|
-
return;
|
1153
|
-
}
|
1154
|
-
}
|
1155
|
-
});
|
1156
|
-
this.preventActiveIndexPropagation = true;
|
1157
|
-
this._activeIndex = index;
|
1158
|
-
this.activeIndexChange.emit(index);
|
1159
|
-
}
|
1160
|
-
updateValue(value) {
|
1161
|
-
const currentValue = this.value();
|
1162
|
-
if (this.multiple()) {
|
1163
|
-
const newValue = Array.isArray(currentValue) ? [...currentValue] : [];
|
1164
|
-
const index = newValue.indexOf(value);
|
1165
|
-
if (index !== -1) {
|
1166
|
-
newValue.splice(index, 1);
|
1167
|
-
}
|
1168
|
-
else {
|
1169
|
-
newValue.push(value);
|
1170
|
-
}
|
1171
|
-
this.value.set(newValue);
|
1172
|
-
}
|
1173
|
-
else {
|
1174
|
-
if (currentValue === value) {
|
1175
|
-
this.value.set(undefined);
|
1176
|
-
}
|
1177
|
-
else {
|
1178
|
-
this.value.set(value);
|
1179
|
-
}
|
1180
|
-
}
|
1181
|
-
}
|
1182
|
-
ngOnDestroy() {
|
1183
|
-
if (this.tabListSubscription) {
|
1184
|
-
this.tabListSubscription.unsubscribe();
|
1185
|
-
}
|
1186
|
-
super.ngOnDestroy();
|
1187
|
-
}
|
1188
|
-
static ɵfac = /*@__PURE__*/ (() => { let ɵAccordion_BaseFactory; return function Accordion_Factory(__ngFactoryType__) { return (ɵAccordion_BaseFactory || (ɵAccordion_BaseFactory = i0.ɵɵgetInheritedFactory(Accordion)))(__ngFactoryType__ || Accordion); }; })();
|
1189
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Accordion, selectors: [["p-accordion"]], contentQueries: function Accordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
1190
|
-
i0.ɵɵcontentQuery(dirIndex, AccordionTab, 5);
|
1191
|
-
} if (rf & 2) {
|
1192
|
-
let _t;
|
1193
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabList = _t);
|
1194
|
-
} }, hostVars: 8, hostBindings: function Accordion_HostBindings(rf, ctx) { if (rf & 1) {
|
1195
|
-
i0.ɵɵlistener("keydown", function Accordion_keydown_HostBindingHandler($event) { return ctx.onKeydown($event); });
|
1196
|
-
} if (rf & 2) {
|
1197
|
-
i0.ɵɵstyleMap(ctx.hostStyle);
|
1198
|
-
i0.ɵɵclassMap(ctx.hostClass);
|
1199
|
-
i0.ɵɵclassProp("p-accordion", true)("p-component", true);
|
1200
|
-
} }, inputs: { value: [1, "value"], multiple: [1, "multiple"], style: "style", styleClass: "styleClass", expandIcon: "expandIcon", collapseIcon: "collapseIcon", selectOnFocus: [1, "selectOnFocus"], transitionOptions: "transitionOptions", activeIndex: "activeIndex", headerAriaLevel: "headerAriaLevel" }, outputs: { value: "valueChange", activeIndexChange: "activeIndexChange", onClose: "onClose", onOpen: "onOpen" }, standalone: true, features: [i0.ɵɵProvidersFeature([AccordionStyle]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function Accordion_Template(rf, ctx) { if (rf & 1) {
|
1201
|
-
i0.ɵɵprojectionDef();
|
1202
|
-
i0.ɵɵprojection(0);
|
1203
|
-
} }, dependencies: [CommonModule, SharedModule], encapsulation: 2, changeDetection: 0 });
|
1204
|
-
}
|
1205
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Accordion, [{
|
1206
|
-
type: Component,
|
1207
|
-
args: [{
|
1208
|
-
selector: 'p-accordion',
|
1209
|
-
standalone: true,
|
1210
|
-
imports: [CommonModule, AccordionTab, SharedModule],
|
1211
|
-
template: ` <ng-content /> `,
|
1212
|
-
host: {
|
1213
|
-
'[class.p-accordion]': 'true',
|
1214
|
-
'[class.p-component]': 'true'
|
1215
|
-
},
|
1216
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
1217
|
-
providers: [AccordionStyle]
|
1218
|
-
}]
|
1219
|
-
}], null, { hostClass: [{
|
1220
|
-
type: HostBinding,
|
1221
|
-
args: ['class']
|
1222
|
-
}], hostStyle: [{
|
1223
|
-
type: HostBinding,
|
1224
|
-
args: ['style']
|
1225
|
-
}], style: [{
|
1226
|
-
type: Input
|
1227
|
-
}], styleClass: [{
|
1228
|
-
type: Input
|
1229
|
-
}], expandIcon: [{
|
1230
|
-
type: Input
|
1231
|
-
}], collapseIcon: [{
|
1232
|
-
type: Input
|
1233
|
-
}], transitionOptions: [{
|
1234
|
-
type: Input
|
1235
|
-
}], activeIndexChange: [{
|
1236
|
-
type: Output
|
1237
|
-
}], onClose: [{
|
1238
|
-
type: Output
|
1239
|
-
}], onOpen: [{
|
1240
|
-
type: Output
|
1241
|
-
}], tabList: [{
|
1242
|
-
type: ContentChildren,
|
1243
|
-
args: [AccordionTab, { descendants: true }]
|
1244
|
-
}], activeIndex: [{
|
1245
|
-
type: Input
|
1246
|
-
}], headerAriaLevel: [{
|
1247
|
-
type: Input
|
1248
|
-
}], onKeydown: [{
|
1249
|
-
type: HostListener,
|
1250
|
-
args: ['keydown', ['$event']]
|
1251
|
-
}] }); })();
|
1252
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Accordion, { className: "Accordion" }); })();
|
1253
|
-
export class AccordionModule {
|
1254
|
-
static ɵfac = function AccordionModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AccordionModule)(); };
|
1255
|
-
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AccordionModule });
|
1256
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent, SharedModule] });
|
1257
|
-
}
|
1258
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AccordionModule, [{
|
1259
|
-
type: NgModule,
|
1260
|
-
args: [{
|
1261
|
-
imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent],
|
1262
|
-
exports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent]
|
1263
|
-
}]
|
1264
|
-
}], null, null); })();
|
1265
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AccordionModule, { imports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent], exports: [Accordion, AccordionTab, SharedModule, AccordionPanel, AccordionHeader, AccordionContent] }); })();
|
1266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FjY29yZGlvbi9hY2NvcmRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUVILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osZUFBZSxFQUNmLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFFTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLGVBQWUsRUFFZixNQUFNLEVBRU4sTUFBTSxFQUVOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFlLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7SUE0RjVDLDZGQUEyRTs7O0lBQTNFLHlFQUEyRTs7O0lBQS9CLEFBQTlCLG9EQUE4Qix3RUFBNkI7OztJQUdyRSwwQkFBNkk7OztJQUF0Ryw4Q0FBa0M7SUFBQyxzREFBaUM7Ozs7SUFDM0cscUNBQWlIOzs7SUFBOUQsc0RBQWlDOzs7O0lBRnhGLDZCQUErQjtJQUUzQixBQURBLCtGQUFzSSx3R0FDckI7Ozs7SUFEMUcsY0FBOEI7SUFBOUIsc0RBQThCO0lBQ25CLGNBQStCO0lBQS9CLHVEQUErQjs7O0lBR2pELDBCQUF5STs7O0lBQXBHLDRDQUFnQztJQUFDLHNEQUFpQzs7OztJQUN2RyxtQ0FBNkc7OztJQUE5RCxzREFBaUM7Ozs7SUFGcEYsNkJBQWdDO0lBRTVCLEFBREEsK0ZBQWtJLG9HQUNyQjs7OztJQUR0RyxjQUE0QjtJQUE1QixvREFBNEI7SUFDbkIsY0FBNkI7SUFBN0IscURBQTZCOzs7SUFGakQsQUFKQSxnR0FBK0IsbUZBSUM7OztJQUpqQixzQ0FBYztJQUlkLGNBQWU7SUFBZix1Q0FBZTs7OzRCQTRMRyxTQUM3Qzs0QkFFK0IsUUFBUTs7Ozs7Ozs7O0lBcUN2QixZQUNKOzs7SUFESSw4Q0FDSjs7O0lBRVEsd0JBQWdFOzs7SUFBaEUsMkdBQWlEOzs7SUFBbEMsd0RBQWdDOzs7SUFHL0MscUJBQWdDOzs7SUFEcEMsQUFIQSx5RkFBc0IsNERBR0g7OztJQUhuQixnREFFQztJQUNELGNBRUM7SUFGRCw2Q0FFQzs7OztJQUdELDBGQUFnRjs7O0lBQWhGLHNFQUFnRjs7O0lBQWxDLEFBQWhDLHNEQUFnQyx5RUFBZ0M7OztJQUcxRSwwQkFBNkg7OztJQUF4Riw0Q0FBZ0M7SUFBQywwQ0FBcUI7Ozs7SUFDM0YscUNBQW1HOzs7SUFBbEQsMENBQXFCOzs7O0lBRjFFLDZCQUErQjtJQUUzQixBQURBLDRGQUFzSCxxR0FDbkI7Ozs7SUFENUYsY0FBNEI7SUFBNUIsb0RBQTRCO0lBQ2pCLGNBQTZCO0lBQTdCLHFEQUE2Qjs7O0lBRy9DLDBCQUF5SDs7O0lBQXRGLDBDQUE4QjtJQUFDLDBDQUFxQjs7OztJQUN2RixtQ0FBK0Y7OztJQUFsRCwwQ0FBcUI7Ozs7SUFGdEUsNkJBQWdDO0lBRTVCLEFBREEsNEZBQWtILGlHQUNuQjs7OztJQUR4RixjQUEwQjtJQUExQixrREFBMEI7SUFDakIsY0FBMkI7SUFBM0IsbURBQTJCOzs7SUFGL0MsQUFKQSw2RkFBK0IsZ0ZBSUM7OztJQUpqQixzQ0FBYztJQUlkLGNBQWU7SUFBZix1Q0FBZTs7O0lBa0IxQix3QkFBaUU7OztJQURyRSw2QkFBcUU7SUFDakUsOEZBQWtEOzs7O0lBQW5DLGNBQWlDO0lBQWpDLHlEQUFpQzs7QUFuVXBFOzs7R0FHRztBQWlCSCxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7SUFDN0MsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRDs7OztPQUlHO0lBQ0gsS0FBSyxHQUFHLEtBQUssQ0FBMkQsU0FBUyxDQUFDLENBQUM7SUFDbkY7Ozs7T0FJRztJQUNILFFBQVEsR0FBMkMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWxILE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5SixXQUFXLENBQUMsWUFBaUIsRUFBRSxLQUFVO1FBQ3JDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxZQUFZLEtBQUssS0FBSyxDQUFDO0lBQ2xDLENBQUM7cU9BdEJRLGNBQWMseUJBQWQsY0FBYzs2REFBZCxjQUFjOzJDQUFkLGdCQUFnQixxQkFBaEIsY0FBVSxtQkFBVixZQUFRO1lBQVIsbUNBQUEsSUFBSSxDQUFVLDRCQUFkLFlBQVEsQ0FBTSxlQUFkLGNBQVUsQ0FBSTs7O1lBWlosa0JBQWM7NEJBRmYsWUFBWTs7aUZBY2IsY0FBYztjQWhCMUIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLDBCQUEwQixFQUFFLE1BQU07b0JBQ2xDLGlDQUFpQyxFQUFFLFVBQVU7b0JBQzdDLG9CQUFvQixFQUFFLFlBQVk7b0JBQ2xDLHFCQUFxQixFQUFFLGtCQUFrQjtvQkFDekMsd0JBQXdCLEVBQUUsWUFBWTtvQkFDdEMsc0JBQXNCLEVBQUUsVUFBVTtpQkFDckM7YUFDSjs7a0ZBQ1ksY0FBYztBQXdCM0I7OztHQUdHO0FBb0NILE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFDOUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUVsRCxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFFNUQsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLG9CQUFvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWpHLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFeEQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUU1RCxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUscUJBQXFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUc7Ozs7Ozs7OztPQVNHO0lBQ3lCLFVBQVUsQ0FBOEQ7SUFFakUsT0FBTztRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRWtDLE9BQU87UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRW9DLFNBQVMsQ0FBQyxLQUFvQjtRQUMvRCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsTUFBTTtZQUNWLEtBQUssU0FBUztnQkFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixNQUFNO1lBQ1YsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RCLE1BQU07WUFDVixLQUFLLEtBQUs7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNWLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLGFBQWE7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdkIsTUFBTTtZQUNWO2dCQUNJLE1BQU07UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxTQUFTLENBQUMsYUFBYTtRQUMzQixPQUFPLGFBQWEsRUFBRSxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sVUFBVSxDQUFDLFlBQVk7UUFDM0IsT0FBTyxVQUFVLENBQUMsWUFBWSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVPLGFBQWEsQ0FBQyxZQUFZLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDakQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUUzRSxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hJLENBQUM7SUFFTyxhQUFhLENBQUMsWUFBWSxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUM7UUFFL0UsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoSSxDQUFDO0lBRU8sY0FBYztRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxhQUFhO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQUssRUFBRSxPQUFPO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQW9CO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMxRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxVQUFVLENBQUMsS0FBb0I7UUFDbkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRTFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFvQjtRQUNsQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFekMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQjtRQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMxQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQzt5T0ExSFEsZUFBZSx5QkFBZixlQUFlOzZEQUFmLGVBQWU7Ozs7OztZQUFmLDBGQUFBLG1CQUFlLElBQUEsNkVBQWYsbUJBQWUsSUFBQSxpRkFBZixxQkFBaUIsSUFBRjs7aUNBQWYsUUFBSSxtQkFBSixZQUFRLG1CQUFSLGtCQUFjLFVBQWQsUUFBUSxjQUFSLEdBQUcsbUJBQUgsWUFBUSxxQkFBUixjQUFVLGtCQUFWLGlCQUFpQjtZQUFqQiw4QkFBQSxNQUFNLENBQVM7WUFBZixvQ0FBQSxJQUFJLENBQVc7OztZQTlCcEIsa0JBQWM7WUFHWixBQUZGLDhEQUFrQixpREFFVDs7WUFGVCxjQVdDO1lBWEQsd0NBV0M7NEJBZkssWUFBWSw0Q0FBRSxlQUFlLEVBQUUsYUFBYTs7aUZBaUM3QyxlQUFlO2NBbkMzQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHVDQUF1QztnQkFDakQsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDO2dCQUMvRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztLQWNUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLDJCQUEyQixFQUFFLE1BQU07b0JBQ25DLFdBQVcsRUFBRSxNQUFNO29CQUNuQixzQkFBc0IsRUFBRSxVQUFVO29CQUNsQyxzQkFBc0IsRUFBRSxnQkFBZ0I7b0JBQ3hDLGFBQWEsRUFBRSxVQUFVO29CQUN6QixpQkFBaUIsRUFBRSxLQUFLO29CQUN4QixzQkFBc0IsRUFBRSxVQUFVO29CQUNsQyx3QkFBd0IsRUFBRSxZQUFZO29CQUN0QyxxQkFBcUIsRUFBRSxtQkFBbUI7b0JBQzFDLHFCQUFxQixFQUFFLFFBQVE7aUJBQ2xDO2dCQUNELGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUMzQjtnQkF1QitCLFVBQVU7a0JBQXJDLFlBQVk7bUJBQUMsWUFBWTtZQUVTLE9BQU87a0JBQXpDLFlBQVk7bUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBSUUsT0FBTztrQkFBekMsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFJSSxTQUFTO2tCQUE3QyxZQUFZO21CQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBaEMxQixlQUFlO0FBc0s1QixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsYUFBYTtJQUMvQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRWxELGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUU1RCxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXhELGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxvQkFBb0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU3RyxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUscUJBQXFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Nk9BVHpGLGdCQUFnQix5QkFBaEIsZ0JBQWdCOzZEQUFoQixnQkFBZ0I7WUFBaEIsdUNBQUEsWUFBUSw0TEFBUTtpQ0FBaEIsUUFBSSxVQUFKLFFBQVEsa0JBQVIsa0JBQWtCLG1CQUFsQixZQUFRLHFCQUFSLG9CQUFnQjtZQUFoQixxQ0FBQSxJQUFJLENBQVk7OztZQXJDYiw4QkFBd0M7WUFDaEQsa0JBQWM7WUFDbEIsaUJBQU07NEJBSkksWUFBWSx3Q0FrQlY7Z0JBQ1IsT0FBTyxDQUFDLFNBQVMsRUFBRTtvQkFDZixLQUFLLENBQ0QsUUFBUSxFQUNSLEtBQUssQ0FBQzt3QkFDRixNQUFNLEVBQUUsR0FBRzt3QkFDWCxVQUFVLEVBQUUsUUFBUTtxQkFDdkIsQ0FBQyxDQUNMO29CQUNELEtBQUssQ0FDRCxTQUFTLEVBQ1QsS0FBSyxDQUFDO3dCQUNGLE1BQU0sRUFBRSxHQUFHO3dCQUNYLFVBQVUsRUFBRSxTQUFTO3FCQUN4QixDQUFDLENBQ0w7b0JBQ0QsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztvQkFDbkUsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RDLENBQUM7YUFDTDs7aUZBRVEsZ0JBQWdCO2NBekM1QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHlDQUF5QztnQkFDbkQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFOztXQUVIO2dCQUNQLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsSUFBSSxFQUFFO29CQUNGLDRCQUE0QixFQUFFLE1BQU07b0JBQ3BDLFdBQVcsRUFBRSxNQUFNO29CQUNuQixhQUFhLEVBQUUsVUFBVTtvQkFDekIscUJBQXFCLEVBQUUsb0JBQW9CO29CQUMzQyxzQkFBc0IsRUFBRSxVQUFVO29CQUNsQyx3QkFBd0IsRUFBRSxrQkFBa0I7b0JBQzVDLFlBQVksRUFBRTs7K0ZBRXlFO2lCQUMxRjtnQkFDRCxVQUFVLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLFNBQVMsRUFBRTt3QkFDZixLQUFLLENBQ0QsUUFBUSxFQUNSLEtBQUssQ0FBQzs0QkFDRixNQUFNLEVBQUUsR0FBRzs0QkFDWCxVQUFVLEVBQUUsUUFBUTt5QkFDdkIsQ0FBQyxDQUNMO3dCQUNELEtBQUssQ0FDRCxTQUFTLEVBQ1QsS0FBSyxDQUFDOzRCQUNGLE1BQU0sRUFBRSxHQUFHOzRCQUNYLFVBQVUsRUFBRSxTQUFTO3lCQUN4QixDQUFDLENBQ0w7d0JBQ0QsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQzt3QkFDbkUsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3RDLENBQUM7aUJBQ0w7YUFDSjs7a0ZBQ1ksZ0JBQWdCO0FBWTdCOzs7O0dBSUc7QUE0RkgsTUFBTSxPQUFPLFlBQWEsU0FBUSxhQUFhO0lBQzNDLElBQTBCLFNBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUEwQixTQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ00sRUFBRSxHQUF1QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQ7OztPQUdHO0lBQ00sTUFBTSxDQUFxQjtJQUNwQzs7O09BR0c7SUFDTSxXQUFXLENBQThDO0lBQ2xFOzs7T0FHRztJQUNNLFFBQVEsQ0FBOEM7SUFDL0Q7OztPQUdHO0lBQ00sWUFBWSxDQUE4QztJQUNuRTs7O09BR0c7SUFDTSxhQUFhLENBQXFCO0lBQzNDOzs7T0FHRztJQUNNLGdCQUFnQixDQUFxQjtJQUM5Qzs7O09BR0c7SUFDTSxpQkFBaUIsQ0FBcUI7SUFDL0M7OztPQUdHO0lBQ3FDLFFBQVEsQ0FBc0I7SUFDdEU7OztPQUdHO0lBQ3FDLEtBQUssR0FBWSxJQUFJLENBQUM7SUFDOUQ7OztPQUdHO0lBQ00saUJBQWlCLEdBQVcsc0NBQXNDLENBQUM7SUFDNUU7OztPQUdHO0lBQ00sT0FBTyxHQUFvQixPQUFPLENBQUM7SUFDNUM7OztPQUdHO0lBQ0gsSUFBYSxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBWTtRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztRQUVyQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDdkIsQ0FBQztZQUVELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFDRDs7O09BR0c7SUFDb0MsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUNuRTs7OztPQUlHO0lBQ08sY0FBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0lBRXJELFdBQVcsQ0FBcUI7SUFFakQsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUVuQyxJQUFJLFNBQVM7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDekIsT0FBTyx3Q0FBd0MsQ0FBQztRQUNwRCxDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sMENBQTBDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFDRDs7O09BR0c7SUFDcUIsY0FBYyxDQUErQjtJQUNyRTs7O09BR0c7SUFDcUIsY0FBYyxDQUErQjtJQUNyRTs7O09BR0c7SUFDbUIsWUFBWSxDQUErQjtJQUNqRTs7O09BR0c7SUFDc0IsZUFBZSxDQUErQjtJQUV2RSxNQUFNLEdBQVksS0FBSyxDQUFDO0lBRXhCLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFjLENBQUM7SUFFN0QsZUFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6QyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkVBQTZFLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWtDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN4RSxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQzdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDbEQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQzt3QkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUM3QyxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXZCLEtBQUssRUFBRSxjQUFjLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2xELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pDLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ1YsTUFBTTtZQUNWLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssT0FBTztnQkFDUixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU07WUFDVjtnQkFDSSxNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFLO1FBQ3RCLE9BQU8sR0FBRyxLQUFLLGdCQUFnQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBSztRQUNqQixPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRW5ELEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzZOQWhOUSxZQUFZLHlCQUFaLFlBQVk7NkRBQVosWUFBWTs7Ozs7d0NBaUdKLE1BQU07Ozs7Ozs7OzsyQ0FqR2QsY0FBYztZQUFkLDRCQUFZO1lBQVosNEJBQVk7WUFBWixtQ0FBQSxJQUFJLENBQVEseUNBQUE7dVJBbURELGdCQUFnQixnQ0FLaEIsZ0JBQWdCLGdKQWlDaEIsZUFBZSx1R0E3RnhCLENBQUMsY0FBYyxDQUFDOztZQWxGdkIsaUNBZ0JDO1lBTkcsQUFEQSwrRkFBUyxrQkFBYyxJQUFDLHNGQUNiLHFCQUFpQixJQUFDO1lBbUIzQixBQUZGLEFBUkUsQUFGRiwyREFBdUIsOENBRWQsOENBUVcsOENBRVg7WUFVYixpQkFBUztZQVVMLEFBVEosOEJBUUMsYUFDa0c7WUFDM0Ysa0JBQWM7WUFDZCwrRUFBcUU7WUFJN0UsQUFESSxpQkFBTSxFQUNKOztZQWpERiwwQ0FBNkI7WUFNN0IsQUFEQSxBQVJBLHVDQUFxQixpQ0FRTyw0QkFDTDs7WUFLdkIsY0FTQztZQVRELDZDQVNDO1lBQ0QsZUFXQztZQVhELDBDQVdDO1lBS0QsZUFBdUs7WUFBdkssOE1BQXVLOztZQU0vSCxjQUE2QjtZQUFDLEFBQTlCLCtDQUE2Qiw2QkFBeUI7WUFFM0UsZUFBb0Q7WUFBcEQscUZBQW9EOzRCQXJEckUsWUFBWSx3REFBRSxlQUFlLEVBQUUsYUFBYSx3Q0EyRDFDO2dCQUNSLE9BQU8sQ0FBQyxZQUFZLEVBQUU7b0JBQ2xCLEtBQUssQ0FDRCxRQUFRLEVBQ1IsS0FBSyxDQUFDO3dCQUNGLE1BQU0sRUFBRSxHQUFHO3dCQUNYLFVBQVUsRUFBRSxRQUFRO3FCQUN2QixDQUFDLENBQ0w7b0JBQ0QsS0FBSyxDQUNELFNBQVMsRUFDVCxLQUFLLENBQUM7d0JBQ0YsTUFBTSxFQUFFLEdBQUc7d0JBQ1gsVUFBVSxFQUFFLFNBQVM7cUJBQ3hCLENBQUMsQ0FDTDtvQkFDRCxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO29CQUNuRSxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEMsQ0FBQzthQUNMOztpRkFVUSxZQUFZO2NBM0Z4QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGlEQUFpRDtnQkFDM0QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDO2dCQUN2RCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlEVDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLFlBQVksRUFBRTt3QkFDbEIsS0FBSyxDQUNELFFBQVEsRUFDUixLQUFLLENBQUM7NEJBQ0YsTUFBTSxFQUFFLEdBQUc7NEJBQ1gsVUFBVSxFQUFFLFFBQVE7eUJBQ3ZCLENBQUMsQ0FDTDt3QkFDRCxLQUFLLENBQ0QsU0FBUyxFQUNULEtBQUssQ0FBQzs0QkFDRixNQUFNLEVBQUUsR0FBRzs0QkFDWCxVQUFVLEVBQUUsU0FBUzt5QkFDeEIsQ0FBQyxDQUNMO3dCQUNELFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7d0JBQ25FLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN0QyxDQUFDO2lCQUNMO2dCQUNELElBQUksRUFBRTtvQkFDRiwwQkFBMEIsRUFBRSxNQUFNO29CQUNsQyxpQ0FBaUMsRUFBRSxVQUFVO29CQUM3QyxxQkFBcUIsRUFBRSxnQkFBZ0I7aUJBQzFDO2dCQUNELFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDM0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDO2dCQUU2QixTQUFTO2tCQUFsQyxXQUFXO21CQUFDLE9BQU87WUFHTSxTQUFTO2tCQUFsQyxXQUFXO21CQUFDLE9BQU87WUFPWCxFQUFFO2tCQUFWLEtBQUs7WUFLRyxNQUFNO2tCQUFkLEtBQUs7WUFLRyxXQUFXO2tCQUFuQixLQUFLO1lBS0csUUFBUTtrQkFBaEIsS0FBSztZQUtHLFlBQVk7a0JBQXBCLEtBQUs7WUFLRyxhQUFhO2tCQUFyQixLQUFLO1lBS0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBS0csaUJBQWlCO2tCQUF6QixLQUFLO1lBS2tDLFFBQVE7a0JBQS9DLEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7WUFLRSxLQUFLO2tCQUE1QyxLQUFLO21CQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBSzdCLGlCQUFpQjtrQkFBekIsS0FBSztZQUtHLE9BQU87a0JBQWYsS0FBSztZQUtPLFFBQVE7a0JBQXBCLEtBQUs7WUFrQmlDLGVBQWU7a0JBQXJELEtBQUs7bUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO1lBTTNCLGNBQWM7a0JBQXZCLE1BQU07WUFFa0IsV0FBVztrQkFBbkMsZUFBZTttQkFBQyxNQUFNO1lBZUMsY0FBYztrQkFBckMsWUFBWTttQkFBQyxRQUFRO1lBS0UsY0FBYztrQkFBckMsWUFBWTttQkFBQyxRQUFRO1lBS0EsWUFBWTtrQkFBakMsWUFBWTttQkFBQyxNQUFNO1lBS0ssZUFBZTtrQkFBdkMsWUFBWTttQkFBQyxTQUFTOztrRkEvSGQsWUFBWTtBQW1OekI7OztHQUdHO0FBYUgsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBQ3hDLElBQTBCLFNBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUEwQixTQUFTO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILEtBQUssR0FBRyxLQUFLLENBQTJELFNBQVMsQ0FBQyxDQUFDO0lBQ25GOzs7O09BSUc7SUFDSCxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFFOzs7T0FHRztJQUNNLEtBQUssQ0FBOEM7SUFDNUQ7OztPQUdHO0lBQ00sVUFBVSxDQUFxQjtJQUN4Qzs7O09BR0c7SUFDTSxVQUFVLENBQXFCO0lBQ3hDOzs7T0FHRztJQUNNLFlBQVksQ0FBcUI7SUFDMUM7Ozs7T0FJRztJQUNILGFBQWEsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0UsSUFBSSxXQUFXLENBQUMsR0FBeUM7UUFDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDO1lBQzNDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNEOzs7T0FHRztJQUNNLGlCQUFpQixHQUFXLHNDQUFzQyxDQUFDO0lBQzVFOzs7OztPQUtHO0lBQ08saUJBQWlCLEdBQW9DLElBQUksWUFBWSxFQUFxQixDQUFDO0lBRXJHLElBQUksZUFBZSxDQUFDLEdBQVc7UUFDM0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDaEMsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFDRDs7OztPQUlHO0lBQ08sT0FBTyxHQUF5QyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzdFOzs7O09BSUc7SUFDTyxNQUFNLEdBQXdDLElBQUksWUFBWSxFQUFFLENBQUM7SUFFM0UsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUUwQixPQUFPLENBQXNDO0lBRW5HLG1CQUFtQixHQUF3QixJQUFJLENBQUM7SUFFeEMsWUFBWSxDQUFNO0lBRWxCLGdCQUFnQixHQUFXLENBQUMsQ0FBQztJQUVyQyw2QkFBNkIsR0FBWSxLQUFLLENBQUM7SUFFeEMsSUFBSSxHQUFtQixFQUFFLENBQUM7SUFFakMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV6Qzs7OztPQUlHO0lBQ0gsSUFBYSxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQWEsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQUs7UUFDWCxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixLQUFLLFdBQVc7Z0JBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixNQUFNO1lBRVYsS0FBSyxTQUFTO2dCQUNWLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE1BQU07WUFFVixLQUFLLE1BQU07Z0JBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztnQkFDRCxNQUFNO1lBRVYsS0FBSyxLQUFLO2dCQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsTUFBTTtRQUNkLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBSztRQUNuQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9FLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0RixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLO1FBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0UsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXJGLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUs7UUFDZCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBTztRQUNwQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWYsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ3pCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUV6RixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO3dCQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOzRCQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQzt3QkFDM0IsQ0FBQzt3QkFDRCxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDOzRCQUN2QixHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQzs0QkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0NBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUM5QixDQUFDO2lDQUFNLENBQUM7Z0NBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUNyRSxDQUFDO3dCQUNMLENBQUM7b0JBQ0wsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7NEJBQ3ZCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDOzRCQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQzt3QkFDMUIsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO3dCQUN6QixDQUFDO29CQUNMLENBQUM7b0JBRUQsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMvQyxHQUFHLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMxQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQVUsRUFBRSxTQUFTLEdBQUcsS0FBSztRQUM5QyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDO1FBQzlFLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxjQUFjLEVBQUUscUNBQXFDLENBQUMsQ0FBQztRQUV4RixPQUFPLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdOLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDOUMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUNsRixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsY0FBYyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFFeEYsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3TixDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDYixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxtQkFBbUIsR0FBSSxJQUFJLENBQUMsT0FBbUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQyxPQUFtQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdEIsR0FBRyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxtQkFBbUI7UUFDZixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDekYsSUFBSSxPQUFPLEdBQUcsUUFBUSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUVqRCxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQWUsSUFBSSxDQUFDLFlBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssS0FBSyxDQUFDO0lBQzlILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUk7UUFDaEIsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQjtRQUNiLElBQUksS0FBSyxHQUE2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNmLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7b0JBQ2pCLEtBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDVixPQUFPO2dCQUNYLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBMEIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBc0I7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDbEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEUsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV0QyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7WUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUEyRSxDQUFDLENBQUM7UUFDaEcsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxDQUFDO1FBRUQsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7aU5BdFVRLFNBQVMseUJBQVQsU0FBUzs2REFBVCxTQUFTO3dDQTBGRCxZQUFZOzs7OztZQTFGcEIsd0ZBQUEscUJBQWlCLElBQVI7O1lBQVQsNEJBQVM7WUFBVCw0QkFBUztZQUFULDhCQUFBLElBQUksQ0FBSyxnQkFBVCxJQUFJLENBQUs7NGRBRlAsQ0FBQyxjQUFjLENBQUM7O1lBTmYsa0JBQWM7NEJBRGhCLFlBQVksRUFBZ0IsWUFBWTs7aUZBU3pDLFNBQVM7Y0FackIsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxhQUFhO2dCQUN2QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7Z0JBQ25ELFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLElBQUksRUFBRTtvQkFDRixxQkFBcUIsRUFBRSxNQUFNO29CQUM3QixxQkFBcUIsRUFBRSxNQUFNO2lCQUNoQztnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQzlCO2dCQUU2QixTQUFTO2tCQUFsQyxXQUFXO21CQUFDLE9BQU87WUFJTSxTQUFTO2tCQUFsQyxXQUFXO21CQUFDLE9BQU87WUFtQlgsS0FBSztrQkFBYixLQUFLO1lBS0csVUFBVTtrQkFBbEIsS0FBSztZQUtHLFVBQVU7a0JBQWxCLEtBQUs7WUFLRyxZQUFZO2tCQUFwQixLQUFLO1lBb0JHLGlCQUFpQjtrQkFBekIsS0FBSztZQU9JLGlCQUFpQjtrQkFBMUIsTUFBTTtZQWNHLE9BQU87a0JBQWhCLE1BQU07WUFNRyxNQUFNO2tCQUFmLE1BQU07WUFJK0MsT0FBTztrQkFBNUQsZUFBZTttQkFBQyxZQUFZLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBbUJ2QyxXQUFXO2tCQUF2QixLQUFLO1lBU08sZUFBZTtrQkFBM0IsS0FBSztZQUtOLFNBQVM7a0JBRFIsWUFBWTttQkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tGQTFIMUIsU0FBUztBQTZVdEIsTUFBTSxPQUFPLGVBQWU7eUdBQWYsZUFBZTs0REFBZixlQUFlO2dFQUhkLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQy9ELFlBQVk7O2lGQUV0QyxlQUFlO2NBSjNCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDO2dCQUNuRyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDO2FBQ3RHOzt3RkFDWSxlQUFlLGNBN1VmLFNBQVMsRUFuT1QsWUFBWSxFQTZpQmMsWUFBWSxFQTkzQnRDLGNBQWMsRUErRGQsZUFBZSxFQXNLZixnQkFBZ0IsYUErVWhCLFNBQVMsRUFuT1QsWUFBWSxFQThpQmMsWUFBWSxFQS8zQnRDLGNBQWMsRUErRGQsZUFBZSxFQXNLZixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIGlucHV0LFxuICAgIElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybSxcbiAgICBtb2RlbCxcbiAgICBOZ01vZHVsZSxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmluZFNpbmdsZSwgZm9jdXMsIGdldEF0dHJpYnV0ZSwgdXVpZCB9IGZyb20gJ0BwcmltZXVpeC91dGlscyc7XG5pbXBvcnQgeyBCbG9ja2FibGVVSSwgSGVhZGVyLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IENoZXZyb25Eb3duSWNvbiwgQ2hldnJvblVwSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMnO1xuaW1wb3J0IHsgUmlwcGxlIH0gZnJvbSAncHJpbWVuZy9yaXBwbGUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtVG9Cb29sZWFuIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjY29yZGlvblN0eWxlIH0gZnJvbSAnLi9zdHlsZS9hY2NvcmRpb25zdHlsZSc7XG5cbi8qKlxuICogQ3VzdG9tIHRhYiBvcGVuIGV2ZW50LlxuICogQHNlZSB7QGxpbmsgb25PcGVufVxuICogQGdyb3VwIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY29yZGlvblRhYk9wZW5FdmVudCB7XG4gICAgLyoqXG4gICAgICogQnJvd3NlciBldmVudC5cbiAgICAgKi9cbiAgICBvcmlnaW5hbEV2ZW50OiBFdmVudDtcbiAgICAvKipcbiAgICAgKiBPcGVuZWQgdGFiIGluZGV4LlxuICAgICAqL1xuICAgIGluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ3VzdG9tIHRhYiBjbG9zZSBldmVudC5cbiAqIEBzZWUge0BsaW5rIG9uQ2xvc2V9XG4gKiBAZXh0ZW5kcyB7QWNjb3JkaW9uVGFiT3BlbkV2ZW50fVxuICogQGdyb3VwIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY29yZGlvblRhYkNsb3NlRXZlbnQgZXh0ZW5kcyBBY2NvcmRpb25UYWJPcGVuRXZlbnQge31cblxuLyoqXG4gKiBUb2dnbGUgaWNvbiB0ZW1wbGF0ZSBjb250ZXh0LlxuICogQGdyb3VwIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY29yZGlvblRvZ2dsZUljb25UZW1wbGF0ZUNvbnRleHQge1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIGFjdGl2ZSBzdGF0dXMgb2YgdGhlIHBhbmVsLlxuICAgICAqL1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBY2NvcmRpb25QYW5lbCBpcyBhIGhlbHBlciBjb21wb25lbnQgZm9yIEFjY29yZGlvbiBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYWNjb3JkaW9uLXBhbmVsLCBwLWFjY29yZGlvbnBhbmVsJyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgLz5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtYWNjb3JkaW9ucGFuZWxdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtYWNjb3JkaW9ucGFuZWwtYWN0aXZlXSc6ICdhY3RpdmUoKScsXG4gICAgICAgICdbY2xhc3MucC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXBjLW5hbWVdJzogJ1wiYWNjb3JkaW9ucGFuZWxcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWFjdGl2ZV0nOiAnYWN0aXZlKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25QYW5lbCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIHBjQWNjb3JkaW9uID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQWNjb3JkaW9uKSk7XG4gICAgLyoqXG4gICAgICogVmFsdWUgb2YgdGhlIGFjdGl2ZSB0YWIuXG4gICAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICB2YWx1ZSA9IG1vZGVsPHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmcgfCBudW1iZXIgfCBzdHJpbmdbXSB8IG51bWJlcltdPih1bmRlZmluZWQpO1xuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRoZSB0YWIgd2hlbiBlbmFibGVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBkaXNhYmxlZDogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPGFueSwgYm9vbGVhbj4gPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06ICh2OiBhbnkpID0+IHRyYW5zZm9ybVRvQm9vbGVhbih2KSB9KTtcblxuICAgIGFjdGl2ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnBjQWNjb3JkaW9uLm11bHRpcGxlKCkgPyB0aGlzLnZhbHVlRXF1YWxzKHRoaXMucGNBY2NvcmRpb24udmFsdWUoKSwgdGhpcy52YWx1ZSgpKSA6IHRoaXMucGNBY2NvcmRpb24udmFsdWUoKSA9PT0gdGhpcy52YWx1ZSgpKSk7XG5cbiAgICB2YWx1ZUVxdWFscyhjdXJyZW50VmFsdWU6IGFueSwgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlLmluY2x1ZGVzKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09PSB2YWx1ZTtcbiAgICB9XG59XG4vKipcbiAqIEFjY29yZGlvbkhlYWRlciBpcyBhIGhlbHBlciBjb21wb25lbnQgZm9yIEFjY29yZGlvbiBjb21wb25lbnQuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYWNjb3JkaW9uLWhlYWRlciwgcC1hY2NvcmRpb25oZWFkZXInLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoZXZyb25Eb3duSWNvbiwgQ2hldnJvblVwSWNvbiwgUmlwcGxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIEBpZiAodG9nZ2xlaWNvbikge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9nZ2xlaWNvbjsgY29udGV4dDogeyBhY3RpdmU6IGFjdGl2ZSgpIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmUoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicGNBY2NvcmRpb24uY29sbGFwc2VJY29uXCIgW2NsYXNzXT1cInBjQWNjb3JkaW9uLmNvbGxhcHNlSWNvblwiIFtuZ0NsYXNzXT1cInBjQWNjb3JkaW9uLmljb25DbGFzc1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPENoZXZyb25Eb3duSWNvbiAqbmdJZj1cIiFwY0FjY29yZGlvbi5jb2xsYXBzZUljb25cIiBbbmdDbGFzc109XCJwY0FjY29yZGlvbi5pY29uQ2xhc3NcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3RpdmUoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicGNBY2NvcmRpb24uZXhwYW5kSWNvblwiIFtjbGFzc109XCJwY0FjY29yZGlvbi5leHBhbmRJY29uXCIgW25nQ2xhc3NdPVwicGNBY2NvcmRpb24uaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8Q2hldnJvblVwSWNvbiAqbmdJZj1cIiFwY0FjY29yZGlvbi5leHBhbmRJY29uXCIgW25nQ2xhc3NdPVwicGNBY2NvcmRpb24uaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25oZWFkZXJdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1leHBhbmRlZF0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2F0dHIuYXJpYS1jb250cm9sc10nOiAnYXJpYUNvbnRyb2xzKCknLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAnXCJidXR0b25cIicsXG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnXCIwXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWFjdGl2ZV0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcGMtbmFtZV0nOiAnXCJhY2NvcmRpb25oZWFkZXJcIicsXG4gICAgICAgICdbc3R5bGUudXNlci1zZWxlY3RdJzogJ1wibm9uZVwiJ1xuICAgIH0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtSaXBwbGVdXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbkhlYWRlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIHBjQWNjb3JkaW9uID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQWNjb3JkaW9uKSk7XG5cbiAgICBwY0FjY29yZGlvblBhbmVsID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gQWNjb3JkaW9uUGFuZWwpKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY0FjY29yZGlvbi5pZCgpfV9hY2NvcmRpb25oZWFkZXJfJHt0aGlzLnBjQWNjb3JkaW9uUGFuZWwudmFsdWUoKX1gKTtcblxuICAgIGFjdGl2ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNBY2NvcmRpb25QYW5lbC5hY3RpdmUoKSk7XG5cbiAgICBkaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNBY2NvcmRpb25QYW5lbC5kaXNhYmxlZCgpKTtcblxuICAgIGFyaWFDb250cm9scyA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMucGNBY2NvcmRpb24uaWQoKX1fYWNjb3JkaW9uY29udGVudF8ke3RoaXMucGNBY2NvcmRpb25QYW5lbC52YWx1ZSgpfWApO1xuICAgIC8qKlxuICAgICAqIFRvZ2dsZSBpY29uIHRlbXBsYXRlLlxuICAgICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxBY2NvcmRpb25Ub2dnbGVJY29uVGVtcGxhdGVDb250ZXh0Pn0gY29udGV4dCAtIENvbnRleHQgb2YgdGhlIHRlbXBsYXRlXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPG5nLXRlbXBsYXRlICN0b2dnbGVpY29uIGxldC1hY3RpdmU9XCJhY3RpdmVcIj4gPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiBgYGBcbiAgICAgKiBAc2VlIHtAbGluayBBY2NvcmRpb25Ub2dnbGVJY29uVGVtcGxhdGVDb250ZXh0fVxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCd0b2dnbGVpY29uJykgdG9nZ2xlaWNvbjogVGVtcGxhdGVSZWY8QWNjb3JkaW9uVG9nZ2xlSWNvblRlbXBsYXRlQ29udGV4dD4gfCB1bmRlZmluZWQ7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsnJGV2ZW50J10pIG9uRm9jdXMoKSB7XG4gICAgICAgIHRoaXMucGNBY2NvcmRpb24uc2VsZWN0T25Gb2N1cygpICYmIHRoaXMuY2hhbmdlQWN0aXZlVmFsdWUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFycm93RG93bktleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFycm93VXBLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkhvbWVLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW5kS2V5KGV2ZW50KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgIGNhc2UgJ051bXBhZEVudGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uRW50ZXJLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUFjdGl2ZVZhbHVlKCkge1xuICAgICAgICB0aGlzLnBjQWNjb3JkaW9uLnVwZGF0ZVZhbHVlKHRoaXMucGNBY2NvcmRpb25QYW5lbC52YWx1ZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRQYW5lbChoZWFkZXJFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBoZWFkZXJFbGVtZW50Py5jbG9zZXN0KCdbZGF0YS1wYy1uYW1lPVwiYWNjb3JkaW9ucGFuZWxcIl0nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRIZWFkZXIocGFuZWxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBmaW5kU2luZ2xlKHBhbmVsRWxlbWVudCwgJ1tkYXRhLXBjLW5hbWU9XCJhY2NvcmRpb25oZWFkZXJcIl0nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmROZXh0UGFuZWwocGFuZWxFbGVtZW50LCBzZWxmQ2hlY2sgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gc2VsZkNoZWNrID8gcGFuZWxFbGVtZW50IDogcGFuZWxFbGVtZW50Lm5leHRFbGVtZW50U2libGluZztcblxuICAgICAgICByZXR1cm4gZWxlbWVudCA/IChnZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2RhdGEtcC1kaXNhYmxlZCcpID8gdGhpcy5maW5kTmV4dFBhbmVsKGVsZW1lbnQpIDogdGhpcy5maW5kSGVhZGVyKGVsZW1lbnQpKSA6IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kUHJldlBhbmVsKHBhbmVsRWxlbWVudCwgc2VsZkNoZWNrID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHNlbGZDaGVjayA/IHBhbmVsRWxlbWVudCA6IHBhbmVsRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXG4gICAgICAgIHJldHVybiBlbGVtZW50ID8gKGdldEF0dHJpYnV0ZShlbGVtZW50LCAnZGF0YS1wLWRpc2FibGVkJykgPyB0aGlzLmZpbmRQcmV2UGFuZWwoZWxlbWVudCkgOiB0aGlzLmZpbmRIZWFkZXIoZWxlbWVudCkpIDogbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRGaXJzdFBhbmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kTmV4dFBhbmVsKHRoaXMucGNBY2NvcmRpb24uZWwubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTGFzdFBhbmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJldlBhbmVsKHRoaXMucGNBY2NvcmRpb24uZWwubmF0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZUZvY3VzZWRQYW5lbChldmVudCwgZWxlbWVudCkge1xuICAgICAgICBmb2N1cyhlbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFycm93RG93bktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBjb25zdCBuZXh0UGFuZWwgPSB0aGlzLmZpbmROZXh0UGFuZWwodGhpcy5maW5kUGFuZWwoZXZlbnQuY3VycmVudFRhcmdldCkpO1xuICAgICAgICBuZXh0UGFuZWwgPyB0aGlzLmNoYW5nZUZvY3VzZWRQYW5lbChldmVudCwgbmV4dFBhbmVsKSA6IHRoaXMub25Ib21lS2V5KGV2ZW50KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFycm93VXBLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgcHJldlBhbmVsID0gdGhpcy5maW5kUHJldlBhbmVsKHRoaXMuZmluZFBhbmVsKGV2ZW50LmN1cnJlbnRUYXJnZXQpKTtcblxuICAgICAgICBwcmV2UGFuZWwgPyB0aGlzLmNoYW5nZUZvY3VzZWRQYW5lbChldmVudCwgcHJldlBhbmVsKSA6IHRoaXMub25FbmRLZXkoZXZlbnQpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25Ib21lS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGZpcnN0UGFuZWwgPSB0aGlzLmZpbmRGaXJzdFBhbmVsKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkUGFuZWwoZXZlbnQsIGZpcnN0UGFuZWwpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25FbmRLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgbGFzdFBhbmVsID0gdGhpcy5maW5kTGFzdFBhbmVsKCk7XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VGb2N1c2VkUGFuZWwoZXZlbnQsIGxhc3RQYW5lbCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkVudGVyS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlVmFsdWUoKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1hY2NvcmRpb24tY29udGVudCwgcC1hY2NvcmRpb25jb250ZW50JyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgIDxkaXYgY2xhc3M9XCJwLWFjY29yZGlvbmNvbnRlbnQtY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIDwvZGl2PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1hY2NvcmRpb25jb250ZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCgpJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ1wicmVnaW9uXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1wYy1uYW1lXSc6ICdcImFjY29yZGlvbmNvbnRlbnRcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtYWN0aXZlXSc6ICdhY3RpdmUoKScsXG4gICAgICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ2FyaWFMYWJlbGxlZGJ5KCknLFxuICAgICAgICAnW0Bjb250ZW50XSc6IGBhY3RpdmUoKVxuICAgICAgICAgICAgPyB7IHZhbHVlOiAndmlzaWJsZScsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiBwY0FjY29yZGlvbi50cmFuc2l0aW9uT3B0aW9ucyB9IH1cbiAgICAgICAgICAgIDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiBwY0FjY29yZGlvbi50cmFuc2l0aW9uT3B0aW9ucyB9IH1gXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2NvbnRlbnQnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA8PT4gaGlkZGVuJywgW2FuaW1hdGUoJ3t7dHJhbnNpdGlvblBhcmFtc319JyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpXG4gICAgICAgIF0pXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25Db250ZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgcGNBY2NvcmRpb24gPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBY2NvcmRpb24pKTtcblxuICAgIHBjQWNjb3JkaW9uUGFuZWwgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBY2NvcmRpb25QYW5lbCkpO1xuXG4gICAgYWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY0FjY29yZGlvblBhbmVsLmFjdGl2ZSgpKTtcblxuICAgIGFyaWFMYWJlbGxlZGJ5ID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY0FjY29yZGlvbi5pZCgpfV9hY2NvcmRpb25oZWFkZXJfJHt0aGlzLnBjQWNjb3JkaW9uUGFuZWwudmFsdWUoKX1gKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY0FjY29yZGlvbi5pZCgpfV9hY2NvcmRpb25jb250ZW50XyR7dGhpcy5wY0FjY29yZGlvblBhbmVsLnZhbHVlKCl9YCk7XG59XG5cbi8qKlxuICogQWNjb3JkaW9uVGFiIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgQWNjb3JkaW9uLlxuICogQGRlcHJlY2F0ZWQgVXNlIEFjY29yZGlvblBhbmVsLCBBY2NvcmRpb25IZWFkZXIsIEFjY29yZGlvbkNvbnRlbnQgaW5zdGVhZC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1hY2NvcmRpb25UYWIsIHAtYWNjb3JkaW9uLXRhYiwgcC1hY2NvcmRpb250YWInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2hldnJvbkRvd25JY29uLCBDaGV2cm9uVXBJY29uXSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInAtYWNjb3JkaW9uaGVhZGVyXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sZXZlbF09XCJoZWFkZXJBcmlhTGV2ZWxcIlxuICAgICAgICAgICAgW2NsYXNzLnAtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInYWNjb3JkaW9uaGVhZGVyJ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaGVhZGVyU3R5bGVDbGFzc1wiXG4gICAgICAgICAgICBbbmdTdHlsZV09XCJoZWFkZXJTdHlsZVwiXG4gICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCA/IG51bGwgOiAwXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImdldFRhYkhlYWRlckFjdGlvbklkKGlkKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImdldFRhYkNvbnRlbnRJZChpZClcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCFoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHt7IGhlYWRlciB9fVxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChoZWFkZXJGYWNldCkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJwLWhlYWRlclwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChpY29uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3RlZCB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFjY29yZGlvbi5jb2xsYXBzZUljb25cIiBbY2xhc3NdPVwiYWNjb3JkaW9uLmNvbGxhcHNlSWNvblwiIFtuZ0NsYXNzXT1cImljb25DbGFzc1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bkljb24gKm5nSWY9XCIhYWNjb3JkaW9uLmNvbGxhcHNlSWNvblwiIFtuZ0NsYXNzXT1cImljb25DbGFzc1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhY2NvcmRpb24uZXhwYW5kSWNvblwiIFtjbGFzc109XCJhY2NvcmRpb24uZXhwYW5kSWNvblwiIFtuZ0NsYXNzXT1cImljb25DbGFzc1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uVXBJY29uICpuZ0lmPVwiIWFjY29yZGlvbi5leHBhbmRJY29uXCIgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbYXR0ci5pZF09XCJnZXRUYWJDb250ZW50SWQoaWQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1hY2NvcmRpb25jb250ZW50XCJcbiAgICAgICAgICAgIFtAdGFiQ29udGVudF09XCJzZWxlY3RlZCA/IHsgdmFsdWU6ICd2aXNpYmxlJywgcGFyYW1zOiB7IHRyYW5zaXRpb25QYXJhbXM6IHRyYW5zaXRpb25PcHRpb25zIH0gfSA6IHsgdmFsdWU6ICdoaWRkZW4nLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdHJhbnNpdGlvbk9wdGlvbnMgfSB9XCJcbiAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXNlbGVjdGVkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRUYWJIZWFkZXJBY3Rpb25JZChpZClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIid0b2dnbGVhYmxlY29udGVudCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1hY2NvcmRpb25jb250ZW50LWNvbnRlbnRcIiBbbmdDbGFzc109XCJjb250ZW50U3R5bGVDbGFzc1wiIFtuZ1N0eWxlXT1cImNvbnRlbnRTdHlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZSAmJiAoY2FjaGUgPyBsb2FkZWQgOiBzZWxlY3RlZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCd0YWJDb250ZW50JywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJyonLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZSdcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPD0+IGhpZGRlbicsIFthbmltYXRlKCd7e3RyYW5zaXRpb25QYXJhbXN9fScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKDApKVxuICAgICAgICBdKVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtYWNjb3JkaW9ucGFuZWxdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtYWNjb3JkaW9ucGFuZWwtYWN0aXZlXSc6ICdzZWxlY3RlZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXBjLW5hbWVdJzogJ1wiYWNjb3JkaW9udGFiXCInXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtBY2NvcmRpb25TdHlsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBY2NvcmRpb25UYWIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFiU3R5bGVDbGFzcztcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZScpIGdldCBob3N0U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYlN0eWxlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGlkIHN0YXRlIGFzIGEgc3RyaW5nLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1dWlkKCdwbl9pZF8nKTtcbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIGRlZmluZSB0aGUgaGVhZGVyIG9mIHRoZSB0YWIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaGVhZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSB0YWIgaGVhZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlYWRlclN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgdGFiLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRhYlN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgdGFiIGNvbnRlbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudFN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSB0YWIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdGFiU3R5bGVDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFN0eWxlIGNsYXNzIG9mIHRoZSB0YWIgaGVhZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlYWRlclN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgdGFiIGNvbnRlbnQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY29udGVudFN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB0YWIgaXMgZGlzYWJsZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYSBsYXp5IGxvYWRlZCBwYW5lbCBzaG91bGQgYXZvaWQgZ2V0dGluZyBsb2FkZWQgYWdhaW4gb24gcmVzZWxlY3Rpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNhY2hlOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBUcmFuc2l0aW9uIG9wdGlvbnMgb2YgdGhlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uT3B0aW9uczogc3RyaW5nID0gJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKSc7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIGljb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaWNvblBvczogJ2VuZCcgfCAnc3RhcnQnID0gJ3N0YXJ0JztcbiAgICAvKipcbiAgICAgKiBUaGUgdmFsdWUgdGhhdCByZXR1cm5zIHRoZSBzZWxlY3Rpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XG4gICAgfVxuICAgIHNldCBzZWxlY3RlZCh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWw7XG5cbiAgICAgICAgaWYgKCF0aGlzLmxvYWRlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkICYmIHRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBhcmlhLWxldmVsIHRoYXQgZWFjaCBhY2NvcmRpb24gaGVhZGVyIHdpbGwgaGF2ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMiBhcyBwZXIgVzNDIHNwZWNpZmljYXRpb25zXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgaGVhZGVyQXJpYUxldmVsOiBudW1iZXIgPSAyO1xuICAgIC8qKlxuICAgICAqIEV2ZW50IHRyaWdnZXJlZCBieSBjaGFuZ2luZyB0aGUgY2hvaWNlLlxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBCb29sZWFuIHZhbHVlIGluZGljYXRlcyB0aGF0IHRoZSBvcHRpb24gaXMgY2hhbmdlZC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSGVhZGVyKSBoZWFkZXJGYWNldCE6IFF1ZXJ5TGlzdDxIZWFkZXI+O1xuXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCBpY29uQ2xhc3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmljb25Qb3MgPT09ICdlbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3AtYWNjb3JkaW9uaGVhZGVyLXRvZ2dsZS1pY29uIGljb24tZW5kJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAncC1hY2NvcmRpb25oZWFkZXItdG9nZ2xlLWljb24gaWNvbi1zdGFydCc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRlbnQgb2YgdGhlIGRyYXdlci5cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJykgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSGVhZGVyIHRlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIHRoZSBkcmF3ZXIuXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicpIGZvb3RlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlIGZvciB0aGUgaGVhZGVyIGljb24uXG4gICAgICogQGdyb3VwIFRlbXBsYXRlc1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2ljb24nKSBpY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQ29udGVudCB0ZW1wbGF0ZSBmb3IgdGhlIGZvb3RlciBvZiB0aGUgZHJhd2VyLlxuICAgICAqIEBncm91cCBUZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdjb250ZW50JykgY29udGVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBhY2NvcmRpb24gPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBBY2NvcmRpb24pKSBhcyBBY2NvcmRpb247XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQWNjb3JkaW9uU3R5bGUpO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdBY2NvcmRpb25UYWIgaXMgZGVwcmVjYXRlZCBhcyBvZiB2MTgsIHBsZWFzZSB1c2UgdGhlIG5ldyBzdHJ1Y3R1cmUgaW5zdGVhZC4nKTtcbiAgICB9XG5cbiAgICB0b2dnbGUoZXZlbnQ/OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5maW5kVGFiSW5kZXgoKTtcblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24ub25DbG9zZS5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGluZGV4OiBpbmRleCB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY2NvcmRpb24ubXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hY2NvcmRpb24udGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY2NvcmRpb24udGFic1tpXS5zZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24udGFic1tpXS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24udGFic1tpXS5zZWxlY3RlZENoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWNjb3JkaW9uLnRhYnNbaV0uY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hY2NvcmRpb24ub25PcGVuLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgaW5kZXg6IGluZGV4IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLmFjY29yZGlvbi51cGRhdGVBY3RpdmVJbmRleCgpO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGZpbmRUYWJJbmRleCgpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5hY2NvcmRpb24udGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWNjb3JkaW9uLnRhYnNbaV0gPT0gdGhpcykge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRhYkhlYWRlckFjdGlvbklkKHRhYklkKSB7XG4gICAgICAgIHJldHVybiBgJHt0YWJJZH1faGVhZGVyX2FjdGlvbmA7XG4gICAgfVxuXG4gICAgZ2V0VGFiQ29udGVudElkKHRhYklkKSB7XG4gICAgICAgIHJldHVybiBgJHt0YWJJZH1fY29udGVudGA7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuYWNjb3JkaW9uLnRhYnMuc3BsaWNlKHRoaXMuZmluZFRhYkluZGV4KCksIDEpO1xuXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuXG4vKipcbiAqIEFjY29yZGlvbiBncm91cHMgYSBjb2xsZWN0aW9uIG9mIGNvbnRlbnRzIGluIHRhYnMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtYWNjb3JkaW9uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFjY29yZGlvblRhYiwgU2hhcmVkTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudCAvPiBgLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLWFjY29yZGlvbl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtBY2NvcmRpb25TdHlsZV1cbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEJsb2NrYWJsZVVJLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHlsZUNsYXNzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUnKSBnZXQgaG9zdFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHlsZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVmFsdWUgb2YgdGhlIGFjdGl2ZSB0YWIuXG4gICAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICB2YWx1ZSA9IG1vZGVsPHVuZGVmaW5lZCB8IG51bGwgfCBzdHJpbmcgfCBudW1iZXIgfCBzdHJpbmdbXSB8IG51bWJlcltdPih1bmRlZmluZWQpO1xuICAgIC8qKlxuICAgICAqIFdoZW4gZW5hYmxlZCwgbXVsdGlwbGUgdGFicyBjYW4gYmUgYWN0aXZhdGVkIGF0IHRoZSBzYW1lIHRpbWUuXG4gICAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIG11bHRpcGxlID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodjogYW55KSA9PiB0cmFuc2Zvcm1Ub0Jvb2xlYW4odikgfSk7XG4gICAgLyoqXG4gICAgICogSW5saW5lIHN0eWxlIG9mIHRoZSB0YWIgaGVhZGVyIGFuZCBjb250ZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlOiB7IFtrbGFzczogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIENsYXNzIG9mIHRoZSBlbGVtZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJY29uIG9mIGEgY29sbGFwc2VkIHRhYi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBleHBhbmRJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiBvZiBhbiBleHBhbmRlZCB0YWIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY29sbGFwc2VJY29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBlbmFibGVkLCB0aGUgZm9jdXNlZCB0YWIgaXMgYWN0aXZhdGVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBzZWxlY3RPbkZvY3VzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodjogYW55KSA9PiB0cmFuc2Zvcm1Ub0Jvb2xlYW4odikgfSk7XG4gICAgc2V0IGFjdGl2ZUluZGV4KHZhbDogbnVtYmVyIHwgbnVtYmVyW10gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUluZGV4ID0gdmFsO1xuICAgICAgICBpZiAodGhpcy5wcmV2ZW50QWN0aXZlSW5kZXhQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50QWN0aXZlSW5kZXhQcm9wYWdhdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3Rpb25TdGF0ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUcmFuc2l0aW9uIG9wdGlvbnMgb2YgdGhlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uT3B0aW9uczogc3RyaW5nID0gJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKSc7XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgYWN0aXZlIGluZGV4LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyIHwgbnVtYmVyW119IHZhbHVlIC0gTmV3IGluZGV4LlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBuYXRpdmUgdmFsdWVDaGFuZ2UgZW1pdHRlciBvZiB0aGUgdmFsdWUgbW9kZWwuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIGFjdGl2ZUluZGV4Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgbnVtYmVyW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBudW1iZXJbXT4oKTtcblxuICAgIHNldCBoZWFkZXJBcmlhTGV2ZWwodmFsOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInICYmIHZhbCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlckFyaWFMZXZlbCA9IHZhbDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9oZWFkZXJBcmlhTGV2ZWwgIT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlckFyaWFMZXZlbCA9IDI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gYW4gYWN0aXZlIHRhYiBpcyBjb2xsYXBzZWQgYnkgY2xpY2tpbmcgb24gdGhlIGhlYWRlci5cbiAgICAgKiBAcGFyYW0ge0FjY29yZGlvblRhYkNsb3NlRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIHRhYiBjbG9zZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPEFjY29yZGlvblRhYkNsb3NlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGEgdGFiIGdldHMgZXhwYW5kZWQuXG4gICAgICogQHBhcmFtIHtBY2NvcmRpb25UYWJPcGVuRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIHRhYiBvcGVuIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbk9wZW46IEV2ZW50RW1pdHRlcjxBY2NvcmRpb25UYWJPcGVuRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgaWQgPSBzaWduYWwodXVpZCgncG5faWRfJykpO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihBY2NvcmRpb25UYWIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdGFiTGlzdDogUXVlcnlMaXN0PEFjY29yZGlvblRhYj4gfCB1bmRlZmluZWQ7XG5cbiAgICB0YWJMaXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgX2FjdGl2ZUluZGV4OiBhbnk7XG5cbiAgICBwcml2YXRlIF9oZWFkZXJBcmlhTGV2ZWw6IG51bWJlciA9IDI7XG5cbiAgICBwcmV2ZW50QWN0aXZlSW5kZXhQcm9wYWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIHRhYnM6IEFjY29yZGlvblRhYltdID0gW107XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQWNjb3JkaW9uU3R5bGUpO1xuXG4gICAgLyoqXG4gICAgICogSW5kZXggb2YgdGhlIGFjdGl2ZSB0YWIgb3IgYW4gYXJyYXkgb2YgaW5kZXhlcyBpbiBtdWx0aXBsZSBtb2RlLlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSB2YWx1ZSBwcm9wZXJ0eSB3aXRoIG5ldyBhcmNoaXRlY3R1cmUgaW5zdGVhZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBnZXQgYWN0aXZlSW5kZXgoKTogbnVtYmVyIHwgbnVtYmVyW10gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBhcmlhLWxldmVsIHRoYXQgZWFjaCBhY2NvcmRpb24gaGVhZGVyIHdpbGwgaGF2ZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMiBhcyBwZXIgVzNDIHNwZWNpZmljYXRpb25zXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIEFjY29yaWRvbkhlYWRlciBjb21wb25lbnQgYW5kIGJpbmQgYXR0cmlidXRlIHRvIHRoZSBob3N0LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGdldCBoZWFkZXJBcmlhTGV2ZWwoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckFyaWFMZXZlbDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleWRvd24oZXZlbnQpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMub25UYWJBcnJvd0Rvd25LZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uVGFiQXJyb3dVcEtleShldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICAgICAgICAgIGlmICghZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRhYkhvbWVLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICAgICAgICBpZiAoIWV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25UYWJFbmRLZXkoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVGFiQXJyb3dEb3duS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG5leHRIZWFkZXJBY3Rpb24gPSB0aGlzLmZpbmROZXh0SGVhZGVyQWN0aW9uKGV2ZW50LnRhcmdldC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgbmV4dEhlYWRlckFjdGlvbiA/IHRoaXMuY2hhbmdlRm9jdXNlZFRhYihuZXh0SGVhZGVyQWN0aW9uKSA6IHRoaXMub25UYWJIb21lS2V5KGV2ZW50KTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uVGFiQXJyb3dVcEtleShldmVudCkge1xuICAgICAgICBjb25zdCBwcmV2SGVhZGVyQWN0aW9uID0gdGhpcy5maW5kUHJldkhlYWRlckFjdGlvbihldmVudC50YXJnZXQucGFyZW50RWxlbWVudCk7XG4gICAgICAgIHByZXZIZWFkZXJBY3Rpb24gPyB0aGlzLmNoYW5nZUZvY3VzZWRUYWIocHJldkhlYWRlckFjdGlvbikgOiB0aGlzLm9uVGFiRW5kS2V5KGV2ZW50KTtcblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIG9uVGFiSG9tZUtleShldmVudCkge1xuICAgICAgICBjb25zdCBmaXJzdEhlYWRlckFjdGlvbiA9IHRoaXMuZmluZEZpcnN0SGVhZGVyQWN0aW9uKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZFRhYihmaXJzdEhlYWRlckFjdGlvbik7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY2hhbmdlRm9jdXNlZFRhYihlbGVtZW50KSB7XG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBmb2N1cyhlbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0T25Gb2N1cygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLmZvckVhY2goKHRhYiwgaSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWQgPSB0aGlzLm11bHRpcGxlKCkgPyB0aGlzLl9hY3RpdmVJbmRleC5pbmNsdWRlcyhpKSA6IGkgPT09IHRoaXMuX2FjdGl2ZUluZGV4O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5fYWN0aXZlSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVJbmRleCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYi5pZCA9PSBlbGVtZW50LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnNlbGVjdGVkID0gIXRhYi5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZUluZGV4LmluY2x1ZGVzKGkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUluZGV4LnB1c2goaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXggPSB0aGlzLl9hY3RpdmVJbmRleC5maWx0ZXIoKGluZCkgPT4gaW5kICE9PSBpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGFiLmlkID09IGVsZW1lbnQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWIuc2VsZWN0ZWQgPSAhdGFiLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FjdGl2ZUluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0YWIuc2VsZWN0ZWRDaGFuZ2UuZW1pdChzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlSW5kZXhDaGFuZ2UuZW1pdCh0aGlzLl9hY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHRhYi5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpbmROZXh0SGVhZGVyQWN0aW9uKHRhYkVsZW1lbnQsIHNlbGZDaGVjayA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG5leHRUYWJFbGVtZW50ID0gc2VsZkNoZWNrID8gdGFiRWxlbWVudCA6IHRhYkVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gZmluZFNpbmdsZShuZXh0VGFiRWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJhY2NvcmRpb25oZWFkZXJcIl0nKTtcblxuICAgICAgICByZXR1cm4gaGVhZGVyRWxlbWVudCA/IChnZXRBdHRyaWJ1dGUoaGVhZGVyRWxlbWVudCwgJ2RhdGEtcC1kaXNhYmxlZCcpID8gdGhpcy5maW5kTmV4dEhlYWRlckFjdGlvbihoZWFkZXJFbGVtZW50LnBhcmVudEVsZW1lbnQpIDogZmluZFNpbmdsZShoZWFkZXJFbGVtZW50LnBhcmVudEVsZW1lbnQsICdbZGF0YS1wYy1zZWN0aW9uPVwiYWNjb3JkaW9uaGVhZGVyXCJdJykpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmaW5kUHJldkhlYWRlckFjdGlvbih0YWJFbGVtZW50LCBzZWxmQ2hlY2sgPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBwcmV2VGFiRWxlbWVudCA9IHNlbGZDaGVjayA/IHRhYkVsZW1lbnQgOiB0YWJFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBmaW5kU2luZ2xlKHByZXZUYWJFbGVtZW50LCAnW2RhdGEtcGMtc2VjdGlvbj1cImFjY29yZGlvbmhlYWRlclwiXScpO1xuXG4gICAgICAgIHJldHVybiBoZWFkZXJFbGVtZW50ID8gKGdldEF0dHJpYnV0ZShoZWFkZXJFbGVtZW50LCAnZGF0YS1wLWRpc2FibGVkJykgPyB0aGlzLmZpbmRQcmV2SGVhZGVyQWN0aW9uKGhlYWRlckVsZW1lbnQucGFyZW50RWxlbWVudCkgOiBmaW5kU2luZ2xlKGhlYWRlckVsZW1lbnQucGFyZW50RWxlbWVudCwgJ1tkYXRhLXBjLXNlY3Rpb249XCJhY2NvcmRpb25oZWFkZXJcIl0nKSkgOiBudWxsO1xuICAgIH1cblxuICAgIGZpbmRGaXJzdEhlYWRlckFjdGlvbigpIHtcbiAgICAgICAgY29uc3QgZmlyc3RFbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZE5leHRIZWFkZXJBY3Rpb24oZmlyc3RFbCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZmluZExhc3RIZWFkZXJBY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGxhc3RFbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkO1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kUHJldkhlYWRlckFjdGlvbihsYXN0RWwsIHRydWUpO1xuICAgIH1cblxuICAgIG9uVGFiRW5kS2V5KGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGxhc3RIZWFkZXJBY3Rpb24gPSB0aGlzLmZpbmRMYXN0SGVhZGVyQWN0aW9uKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRm9jdXNlZFRhYihsYXN0SGVhZGVyQWN0aW9uKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRUYWJzKCk7XG5cbiAgICAgICAgdGhpcy50YWJMaXN0U3Vic2NyaXB0aW9uID0gKHRoaXMudGFiTGlzdCBhcyBRdWVyeUxpc3Q8QWNjb3JkaW9uVGFiPikuY2hhbmdlcy5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFRhYnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdFRhYnMoKSB7XG4gICAgICAgIHRoaXMudGFicyA9ICh0aGlzLnRhYkxpc3QgYXMgUXVlcnlMaXN0PEFjY29yZGlvblRhYj4pLnRvQXJyYXkoKTtcblxuICAgICAgICB0aGlzLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgICB0YWIuaGVhZGVyQXJpYUxldmVsID0gdGhpcy5faGVhZGVyQXJpYUxldmVsO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvblN0YXRlKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgZ2V0QmxvY2thYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0aW9uU3RhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRhYnMgJiYgdGhpcy50YWJzLmxlbmd0aCAmJiB0aGlzLl9hY3RpdmVJbmRleCAhPSBudWxsKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudGFicy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUoKSA/IHRoaXMuX2FjdGl2ZUluZGV4LmluY2x1ZGVzKGkpIDogaSA9PT0gdGhpcy5fYWN0aXZlSW5kZXg7XG4gICAgICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBzZWxlY3RlZCAhPT0gdGhpcy50YWJzW2ldLnNlbGVjdGVkO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW2ldLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFic1tpXS5zZWxlY3RlZENoYW5nZS5lbWl0KHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJzW2ldLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzVGFiQWN0aXZlKGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlKCkgPyB0aGlzLl9hY3RpdmVJbmRleCAmJiAoPG51bWJlcltdPnRoaXMuX2FjdGl2ZUluZGV4KS5pbmNsdWRlcyhpbmRleCkgOiB0aGlzLl9hY3RpdmVJbmRleCA9PT0gaW5kZXg7XG4gICAgfVxuXG4gICAgZ2V0VGFiUHJvcCh0YWIsIG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRhYi5wcm9wcyA/IHRhYi5wcm9wc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICB1cGRhdGVBY3RpdmVJbmRleCgpIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgfCBudW1iZXJbXSB8IG51bGwgPSB0aGlzLm11bHRpcGxlKCkgPyBbXSA6IG51bGw7XG4gICAgICAgIHRoaXMudGFicy5mb3JFYWNoKCh0YWIsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICh0YWIuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIChpbmRleCBhcyBudW1iZXJbXSkucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByZXZlbnRBY3RpdmVJbmRleFByb3BhZ2F0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fYWN0aXZlSW5kZXggPSBpbmRleDtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleENoYW5nZS5lbWl0KGluZGV4IGFzIG51bWJlcltdIHwgbnVtYmVyKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGUoKSkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkgPyBbLi4uY3VycmVudFZhbHVlXSA6IFtdO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBuZXdWYWx1ZS5pbmRleE9mKHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnZhbHVlLnNldChuZXdWYWx1ZSBhcyB0eXBlb2YgdGhpcy52YWx1ZSBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGluZmVyIFIgPyBSIDogbmV2ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLnNldCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlLnNldCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGFiTGlzdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy50YWJMaXN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQWNjb3JkaW9uLCBBY2NvcmRpb25UYWIsIFNoYXJlZE1vZHVsZSwgQWNjb3JkaW9uUGFuZWwsIEFjY29yZGlvbkhlYWRlciwgQWNjb3JkaW9uQ29udGVudF0sXG4gICAgZXhwb3J0czogW0FjY29yZGlvbiwgQWNjb3JkaW9uVGFiLCBTaGFyZWRNb2R1bGUsIEFjY29yZGlvblBhbmVsLCBBY2NvcmRpb25IZWFkZXIsIEFjY29yZGlvbkNvbnRlbnRdXG59KVxuZXhwb3J0IGNsYXNzIEFjY29yZGlvbk1vZHVsZSB7fVxuIl19
|