primeng 17.10.0 → 17.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/translation.d.ts +1 -0
- package/calendar/calendar.d.ts +2 -2
- package/chip/chip.d.ts +9 -2
- package/chips/chips.d.ts +4 -0
- package/confirmdialog/confirmdialog.d.ts +1 -0
- package/dialog/dialog.d.ts +1 -1
- package/dynamicdialog/dynamicdialog-ref.d.ts +1 -1
- package/esm2022/accordion/accordion.mjs +10 -10
- package/esm2022/animate/animate.mjs +7 -7
- package/esm2022/animateonscroll/animateonscroll.mjs +7 -7
- package/esm2022/api/confirmationservice.mjs +3 -3
- package/esm2022/api/contextmenuservice.mjs +3 -3
- package/esm2022/api/filterservice.mjs +3 -3
- package/esm2022/api/messageservice.mjs +3 -3
- package/esm2022/api/overlayservice.mjs +3 -3
- package/esm2022/api/primengconfig.mjs +6 -5
- package/esm2022/api/shared.mjs +13 -13
- package/esm2022/api/translation.mjs +1 -1
- package/esm2022/api/treedragdropservice.mjs +3 -3
- package/esm2022/autocomplete/autocomplete.mjs +11 -8
- package/esm2022/autofocus/autofocus.mjs +7 -7
- package/esm2022/avatar/avatar.mjs +7 -7
- package/esm2022/avatargroup/avatargroup.mjs +7 -7
- package/esm2022/badge/badge.mjs +10 -10
- package/esm2022/baseicon/baseicon.mjs +3 -3
- package/esm2022/blockui/blockui.mjs +7 -7
- package/esm2022/breadcrumb/breadcrumb.mjs +7 -7
- package/esm2022/button/button.mjs +10 -10
- package/esm2022/buttongroup/buttongroup.mjs +7 -7
- package/esm2022/calendar/calendar.mjs +29 -18
- package/esm2022/card/card.mjs +7 -7
- package/esm2022/carousel/carousel.mjs +7 -7
- package/esm2022/cascadeselect/cascadeselect.mjs +12 -11
- package/esm2022/chart/chart.mjs +7 -7
- package/esm2022/checkbox/checkbox.mjs +7 -7
- package/esm2022/chip/chip.mjs +49 -18
- package/esm2022/chips/chips.mjs +12 -8
- package/esm2022/colorpicker/colorpicker.mjs +7 -7
- package/esm2022/confirmdialog/confirmdialog.mjs +13 -12
- package/esm2022/confirmpopup/confirmpopup.mjs +7 -7
- package/esm2022/contextmenu/contextmenu.mjs +13 -13
- package/esm2022/dataview/dataview.mjs +10 -10
- package/esm2022/defer/defer.mjs +7 -7
- package/esm2022/dialog/dialog.mjs +13 -13
- package/esm2022/divider/divider.mjs +7 -7
- package/esm2022/dock/dock.mjs +7 -7
- package/esm2022/dragdrop/dragdrop.mjs +10 -10
- package/esm2022/dropdown/dropdown.mjs +12 -14
- package/esm2022/dynamicdialog/dialogservice.mjs +3 -3
- package/esm2022/dynamicdialog/dynamicdialog-ref.mjs +2 -2
- package/esm2022/dynamicdialog/dynamicdialog.mjs +10 -10
- package/esm2022/dynamicdialog/dynamicdialogcontent.mjs +3 -3
- package/esm2022/editor/editor.mjs +7 -7
- package/esm2022/fieldset/fieldset.mjs +7 -7
- package/esm2022/fileupload/fileupload.mjs +9 -9
- package/esm2022/floatlabel/floatlabel.mjs +7 -7
- package/esm2022/focustrap/focustrap.mjs +7 -7
- package/esm2022/galleria/galleria.mjs +19 -19
- package/esm2022/iconfield/iconfield.mjs +7 -7
- package/esm2022/icons/angledoubledown/angledoubledown.mjs +3 -3
- package/esm2022/icons/angledoubleleft/angledoubleleft.mjs +3 -3
- package/esm2022/icons/angledoubleright/angledoubleright.mjs +3 -3
- package/esm2022/icons/angledoubleup/angledoubleup.mjs +3 -3
- package/esm2022/icons/angledown/angledown.mjs +3 -3
- package/esm2022/icons/angleleft/angleleft.mjs +3 -3
- package/esm2022/icons/angleright/angleright.mjs +3 -3
- package/esm2022/icons/angleup/angleup.mjs +3 -3
- package/esm2022/icons/arrowdown/arrowdown.mjs +3 -3
- package/esm2022/icons/arrowdownleft/arrowdownleft.mjs +3 -3
- package/esm2022/icons/arrowdownright/arrowdownright.mjs +3 -3
- package/esm2022/icons/arrowleft/arrowleft.mjs +3 -3
- package/esm2022/icons/arrowright/arrowright.mjs +3 -3
- package/esm2022/icons/arrowup/arrowup.mjs +3 -3
- package/esm2022/icons/ban/ban.mjs +3 -3
- package/esm2022/icons/bars/bars.mjs +3 -3
- package/esm2022/icons/calendar/calendar.mjs +3 -3
- package/esm2022/icons/caretleft/caretleft.mjs +3 -3
- package/esm2022/icons/caretright/caretright.mjs +3 -3
- package/esm2022/icons/check/check.mjs +3 -3
- package/esm2022/icons/chevrondown/chevrondown.mjs +3 -3
- package/esm2022/icons/chevronleft/chevronleft.mjs +3 -3
- package/esm2022/icons/chevronright/chevronright.mjs +3 -3
- package/esm2022/icons/chevronup/chevronup.mjs +3 -3
- package/esm2022/icons/exclamationtriangle/exclamationtriangle.mjs +3 -3
- package/esm2022/icons/eye/eye.mjs +3 -3
- package/esm2022/icons/eyeslash/eyeslash.mjs +3 -3
- package/esm2022/icons/filter/filter.mjs +3 -3
- package/esm2022/icons/filterslash/filterslash.mjs +3 -3
- package/esm2022/icons/home/home.mjs +3 -3
- package/esm2022/icons/infocircle/infocircle.mjs +3 -3
- package/esm2022/icons/minus/minus.mjs +3 -3
- package/esm2022/icons/pencil/pencil.mjs +3 -3
- package/esm2022/icons/plus/plus.mjs +3 -3
- package/esm2022/icons/refresh/refresh.mjs +3 -3
- package/esm2022/icons/search/search.mjs +3 -3
- package/esm2022/icons/searchminus/searchminus.mjs +3 -3
- package/esm2022/icons/searchplus/searchplus.mjs +3 -3
- package/esm2022/icons/sortalt/sortalt.mjs +3 -3
- package/esm2022/icons/sortamountdown/sortamountdown.mjs +3 -3
- package/esm2022/icons/sortamountupalt/sortamountupalt.mjs +3 -3
- package/esm2022/icons/spinner/spinner.mjs +3 -3
- package/esm2022/icons/star/star.mjs +3 -3
- package/esm2022/icons/starfill/starfill.mjs +3 -3
- package/esm2022/icons/thlarge/thlarge.mjs +3 -3
- package/esm2022/icons/times/times.mjs +3 -3
- package/esm2022/icons/timescircle/timescircle.mjs +3 -3
- package/esm2022/icons/trash/trash.mjs +3 -3
- package/esm2022/icons/undo/undo.mjs +3 -3
- package/esm2022/icons/upload/upload.mjs +3 -3
- package/esm2022/icons/windowmaximize/windowmaximize.mjs +3 -3
- package/esm2022/icons/windowminimize/windowminimize.mjs +3 -3
- package/esm2022/image/image.mjs +7 -7
- package/esm2022/inplace/inplace.mjs +13 -13
- package/esm2022/inputgroup/inputgroup.mjs +7 -7
- package/esm2022/inputgroupaddon/inputgroupaddon.mjs +7 -7
- package/esm2022/inputicon/inputicon.mjs +7 -7
- package/esm2022/inputmask/inputmask.mjs +7 -7
- package/esm2022/inputnumber/inputnumber.interface.mjs +1 -1
- package/esm2022/inputnumber/inputnumber.mjs +13 -12
- package/esm2022/inputotp/inputotp.interface.mjs +2 -0
- package/esm2022/inputotp/inputotp.mjs +359 -0
- package/esm2022/inputotp/primeng-inputotp.mjs +5 -0
- package/esm2022/inputotp/public_api.mjs +3 -0
- package/esm2022/inputswitch/inputswitch.mjs +7 -7
- package/esm2022/inputtext/inputtext.mjs +7 -7
- package/esm2022/inputtextarea/inputtextarea.mjs +7 -7
- package/esm2022/keyfilter/keyfilter.mjs +7 -7
- package/esm2022/knob/knob.mjs +7 -7
- package/esm2022/listbox/listbox.mjs +10 -9
- package/esm2022/megamenu/megamenu.mjs +10 -10
- package/esm2022/menu/menu.mjs +13 -13
- package/esm2022/menubar/menubar.mjs +25 -20
- package/esm2022/message/message.mjs +7 -7
- package/esm2022/messages/messages.mjs +17 -8
- package/esm2022/metergroup/metergroup.mjs +11 -11
- package/esm2022/multiselect/multiselect.mjs +18 -15
- package/esm2022/orderlist/orderlist.mjs +7 -7
- package/esm2022/organizationchart/organizationchart.mjs +10 -10
- package/esm2022/overlay/overlay.mjs +7 -7
- package/esm2022/overlaypanel/overlaypanel.mjs +7 -7
- package/esm2022/paginator/paginator.mjs +7 -7
- package/esm2022/panel/panel.mjs +7 -7
- package/esm2022/panelmenu/panelmenu.mjs +20 -21
- package/esm2022/password/password.mjs +13 -13
- package/esm2022/picklist/picklist.mjs +27 -50
- package/esm2022/progressbar/progressbar.mjs +7 -7
- package/esm2022/progressspinner/progressspinner.mjs +7 -7
- package/esm2022/radiobutton/radiobutton.mjs +10 -10
- package/esm2022/rating/rating.mjs +7 -7
- package/esm2022/ripple/ripple.mjs +7 -7
- package/esm2022/scroller/scroller.mjs +7 -7
- package/esm2022/scrollpanel/scrollpanel.mjs +7 -7
- package/esm2022/scrolltop/scrolltop.mjs +7 -7
- package/esm2022/selectbutton/selectbutton.mjs +7 -7
- package/esm2022/sidebar/sidebar.mjs +7 -7
- package/esm2022/skeleton/skeleton.mjs +7 -7
- package/esm2022/slidemenu/slidemenu.mjs +10 -10
- package/esm2022/slider/slider.mjs +7 -7
- package/esm2022/speeddial/speeddial.mjs +7 -7
- package/esm2022/spinner/spinner.mjs +7 -7
- package/esm2022/splitbutton/splitbutton.mjs +7 -7
- package/esm2022/splitter/splitter.mjs +7 -7
- package/esm2022/stepper/primeng-stepper.mjs +5 -0
- package/esm2022/stepper/public_api.mjs +3 -0
- package/esm2022/stepper/stepper.interface.mjs +2 -0
- package/esm2022/stepper/stepper.mjs +685 -0
- package/esm2022/steps/steps.mjs +10 -16
- package/esm2022/styleclass/styleclass.mjs +7 -7
- package/esm2022/table/table.mjs +143 -101
- package/esm2022/tabmenu/tabmenu.mjs +7 -7
- package/esm2022/tabview/tabview.mjs +10 -10
- package/esm2022/tag/tag.mjs +7 -7
- package/esm2022/terminal/terminal.mjs +7 -7
- package/esm2022/terminal/terminalservice.mjs +3 -3
- package/esm2022/tieredmenu/tieredmenu.mjs +22 -13
- package/esm2022/timeline/timeline.mjs +7 -7
- package/esm2022/toast/toast.mjs +10 -10
- package/esm2022/togglebutton/togglebutton.mjs +7 -7
- package/esm2022/toolbar/toolbar.mjs +7 -7
- package/esm2022/tooltip/tooltip.mjs +7 -7
- package/esm2022/tree/tree.mjs +16 -11
- package/esm2022/treeselect/treeselect.mjs +19 -16
- package/esm2022/treetable/treetable.mjs +55 -55
- package/esm2022/tristatecheckbox/tristatecheckbox.mjs +7 -7
- package/esm2022/virtualscroller/virtualscroller.mjs +7 -7
- package/fesm2022/primeng-accordion.mjs +10 -10
- package/fesm2022/primeng-animate.mjs +7 -7
- package/fesm2022/primeng-animateonscroll.mjs +7 -7
- package/fesm2022/primeng-api.mjs +36 -35
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +10 -7
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-autofocus.mjs +7 -7
- package/fesm2022/primeng-avatar.mjs +7 -7
- package/fesm2022/primeng-avatargroup.mjs +7 -7
- package/fesm2022/primeng-badge.mjs +10 -10
- package/fesm2022/primeng-baseicon.mjs +3 -3
- package/fesm2022/primeng-blockui.mjs +7 -7
- package/fesm2022/primeng-breadcrumb.mjs +7 -7
- package/fesm2022/primeng-button.mjs +10 -10
- package/fesm2022/primeng-buttongroup.mjs +7 -7
- package/fesm2022/primeng-calendar.mjs +28 -17
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +7 -7
- package/fesm2022/primeng-carousel.mjs +7 -7
- package/fesm2022/primeng-cascadeselect.mjs +11 -10
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +7 -7
- package/fesm2022/primeng-checkbox.mjs +7 -7
- package/fesm2022/primeng-chip.mjs +48 -17
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-chips.mjs +11 -7
- package/fesm2022/primeng-chips.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +7 -7
- package/fesm2022/primeng-confirmdialog.mjs +12 -11
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +7 -7
- package/fesm2022/primeng-contextmenu.mjs +12 -12
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +10 -10
- package/fesm2022/primeng-defer.mjs +7 -7
- package/fesm2022/primeng-dialog.mjs +12 -12
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +7 -7
- package/fesm2022/primeng-dock.mjs +7 -7
- package/fesm2022/primeng-dragdrop.mjs +10 -10
- package/fesm2022/primeng-dropdown.mjs +11 -13
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +16 -16
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +7 -7
- package/fesm2022/primeng-fieldset.mjs +7 -7
- package/fesm2022/primeng-fileupload.mjs +8 -8
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +7 -7
- package/fesm2022/primeng-focustrap.mjs +7 -7
- package/fesm2022/primeng-galleria.mjs +19 -19
- package/fesm2022/primeng-iconfield.mjs +7 -7
- package/fesm2022/primeng-icons-angledoubledown.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleleft.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleright.mjs +3 -3
- package/fesm2022/primeng-icons-angledoubleup.mjs +3 -3
- package/fesm2022/primeng-icons-angledown.mjs +3 -3
- package/fesm2022/primeng-icons-angleleft.mjs +3 -3
- package/fesm2022/primeng-icons-angleright.mjs +3 -3
- package/fesm2022/primeng-icons-angleup.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdown.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdownleft.mjs +3 -3
- package/fesm2022/primeng-icons-arrowdownright.mjs +3 -3
- package/fesm2022/primeng-icons-arrowleft.mjs +3 -3
- package/fesm2022/primeng-icons-arrowright.mjs +3 -3
- package/fesm2022/primeng-icons-arrowup.mjs +3 -3
- package/fesm2022/primeng-icons-ban.mjs +3 -3
- package/fesm2022/primeng-icons-bars.mjs +3 -3
- package/fesm2022/primeng-icons-calendar.mjs +3 -3
- package/fesm2022/primeng-icons-caretleft.mjs +3 -3
- package/fesm2022/primeng-icons-caretright.mjs +3 -3
- package/fesm2022/primeng-icons-check.mjs +3 -3
- package/fesm2022/primeng-icons-chevrondown.mjs +3 -3
- package/fesm2022/primeng-icons-chevronleft.mjs +3 -3
- package/fesm2022/primeng-icons-chevronright.mjs +3 -3
- package/fesm2022/primeng-icons-chevronup.mjs +3 -3
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +3 -3
- package/fesm2022/primeng-icons-eye.mjs +3 -3
- package/fesm2022/primeng-icons-eyeslash.mjs +3 -3
- package/fesm2022/primeng-icons-filter.mjs +3 -3
- package/fesm2022/primeng-icons-filterslash.mjs +3 -3
- package/fesm2022/primeng-icons-home.mjs +3 -3
- package/fesm2022/primeng-icons-infocircle.mjs +3 -3
- package/fesm2022/primeng-icons-minus.mjs +3 -3
- package/fesm2022/primeng-icons-pencil.mjs +3 -3
- package/fesm2022/primeng-icons-plus.mjs +3 -3
- package/fesm2022/primeng-icons-refresh.mjs +3 -3
- package/fesm2022/primeng-icons-search.mjs +3 -3
- package/fesm2022/primeng-icons-searchminus.mjs +3 -3
- package/fesm2022/primeng-icons-searchplus.mjs +3 -3
- package/fesm2022/primeng-icons-sortalt.mjs +3 -3
- package/fesm2022/primeng-icons-sortamountdown.mjs +3 -3
- package/fesm2022/primeng-icons-sortamountupalt.mjs +3 -3
- package/fesm2022/primeng-icons-spinner.mjs +3 -3
- package/fesm2022/primeng-icons-star.mjs +3 -3
- package/fesm2022/primeng-icons-starfill.mjs +3 -3
- package/fesm2022/primeng-icons-thlarge.mjs +3 -3
- package/fesm2022/primeng-icons-times.mjs +3 -3
- package/fesm2022/primeng-icons-timescircle.mjs +3 -3
- package/fesm2022/primeng-icons-trash.mjs +3 -3
- package/fesm2022/primeng-icons-undo.mjs +3 -3
- package/fesm2022/primeng-icons-upload.mjs +3 -3
- package/fesm2022/primeng-icons-windowmaximize.mjs +3 -3
- package/fesm2022/primeng-icons-windowminimize.mjs +3 -3
- package/fesm2022/primeng-image.mjs +7 -7
- package/fesm2022/primeng-inplace.mjs +13 -13
- package/fesm2022/primeng-inputgroup.mjs +7 -7
- package/fesm2022/primeng-inputgroupaddon.mjs +7 -7
- package/fesm2022/primeng-inputicon.mjs +7 -7
- package/fesm2022/primeng-inputmask.mjs +7 -7
- package/fesm2022/primeng-inputnumber.mjs +12 -11
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +366 -0
- package/fesm2022/primeng-inputotp.mjs.map +1 -0
- package/fesm2022/primeng-inputswitch.mjs +7 -7
- package/fesm2022/primeng-inputtext.mjs +7 -7
- package/fesm2022/primeng-inputtextarea.mjs +7 -7
- package/fesm2022/primeng-keyfilter.mjs +7 -7
- package/fesm2022/primeng-knob.mjs +7 -7
- package/fesm2022/primeng-listbox.mjs +9 -8
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +10 -10
- package/fesm2022/primeng-menu.mjs +13 -13
- package/fesm2022/primeng-menubar.mjs +24 -19
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +7 -7
- package/fesm2022/primeng-messages.mjs +16 -7
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +10 -10
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +17 -14
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +7 -7
- package/fesm2022/primeng-organizationchart.mjs +10 -10
- package/fesm2022/primeng-overlay.mjs +7 -7
- package/fesm2022/primeng-overlaypanel.mjs +7 -7
- package/fesm2022/primeng-paginator.mjs +7 -7
- package/fesm2022/primeng-panel.mjs +7 -7
- package/fesm2022/primeng-panelmenu.mjs +19 -20
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +13 -13
- package/fesm2022/primeng-picklist.mjs +26 -49
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +7 -7
- package/fesm2022/primeng-progressspinner.mjs +7 -7
- package/fesm2022/primeng-radiobutton.mjs +10 -10
- package/fesm2022/primeng-rating.mjs +7 -7
- package/fesm2022/primeng-ripple.mjs +7 -7
- package/fesm2022/primeng-scroller.mjs +7 -7
- package/fesm2022/primeng-scrollpanel.mjs +7 -7
- package/fesm2022/primeng-scrolltop.mjs +7 -7
- package/fesm2022/primeng-selectbutton.mjs +7 -7
- package/fesm2022/primeng-sidebar.mjs +7 -7
- package/fesm2022/primeng-skeleton.mjs +7 -7
- package/fesm2022/primeng-slidemenu.mjs +10 -10
- package/fesm2022/primeng-slider.mjs +7 -7
- package/fesm2022/primeng-speeddial.mjs +7 -7
- package/fesm2022/primeng-spinner.mjs +7 -7
- package/fesm2022/primeng-splitbutton.mjs +7 -7
- package/fesm2022/primeng-splitter.mjs +7 -7
- package/fesm2022/primeng-stepper.mjs +692 -0
- package/fesm2022/primeng-stepper.mjs.map +1 -0
- package/fesm2022/primeng-steps.mjs +9 -15
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-styleclass.mjs +7 -7
- package/fesm2022/primeng-table.mjs +142 -100
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +7 -7
- package/fesm2022/primeng-tabview.mjs +10 -10
- package/fesm2022/primeng-tag.mjs +7 -7
- package/fesm2022/primeng-terminal.mjs +10 -10
- package/fesm2022/primeng-tieredmenu.mjs +21 -12
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +7 -7
- package/fesm2022/primeng-toast.mjs +10 -10
- package/fesm2022/primeng-togglebutton.mjs +7 -7
- package/fesm2022/primeng-toolbar.mjs +7 -7
- package/fesm2022/primeng-tooltip.mjs +7 -7
- package/fesm2022/primeng-tree.mjs +15 -10
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +18 -15
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +55 -55
- package/fesm2022/primeng-tristatecheckbox.mjs +7 -7
- package/fesm2022/primeng-virtualscroller.mjs +7 -7
- package/inputnumber/inputnumber.interface.d.ts +1 -1
- package/inputotp/index.d.ts +5 -0
- package/inputotp/inputotp.d.ts +115 -0
- package/inputotp/inputotp.interface.d.ts +65 -0
- package/inputotp/public_api.d.ts +2 -0
- package/menubar/menubar.d.ts +1 -0
- package/messages/messages.d.ts +7 -1
- package/package.json +77 -65
- package/picklist/picklist.d.ts +2 -3
- package/resources/components/inputotp/inputotp.css +3 -0
- package/resources/components/stepper/stepper.css +9 -0
- package/resources/themes/arya-blue/theme.css +395 -439
- package/resources/themes/arya-green/theme.css +395 -439
- package/resources/themes/arya-orange/theme.css +395 -439
- package/resources/themes/arya-purple/theme.css +395 -439
- package/resources/themes/bootstrap4-dark-blue/theme.css +395 -440
- package/resources/themes/bootstrap4-dark-purple/theme.css +395 -440
- package/resources/themes/bootstrap4-light-blue/theme.css +395 -440
- package/resources/themes/bootstrap4-light-purple/theme.css +395 -440
- package/resources/themes/fluent-light/theme.css +400 -466
- package/resources/themes/lara-dark-blue/theme.css +397 -455
- package/resources/themes/lara-dark-indigo/theme.css +397 -455
- package/resources/themes/lara-dark-purple/theme.css +397 -455
- package/resources/themes/lara-dark-teal/theme.css +397 -455
- package/resources/themes/lara-light-blue/theme.css +405 -460
- package/resources/themes/lara-light-indigo/theme.css +405 -460
- package/resources/themes/lara-light-purple/theme.css +405 -460
- package/resources/themes/lara-light-teal/theme.css +405 -460
- package/resources/themes/luna-amber/theme.css +408 -453
- package/resources/themes/luna-blue/theme.css +408 -453
- package/resources/themes/luna-green/theme.css +408 -453
- package/resources/themes/luna-pink/theme.css +408 -453
- package/resources/themes/md-dark-deeppurple/theme.css +555 -698
- package/resources/themes/md-dark-indigo/theme.css +555 -698
- package/resources/themes/md-light-deeppurple/theme.css +416 -559
- package/resources/themes/md-light-indigo/theme.css +416 -559
- package/resources/themes/mdc-dark-deeppurple/theme.css +555 -698
- package/resources/themes/mdc-dark-indigo/theme.css +555 -698
- package/resources/themes/mdc-light-deeppurple/theme.css +416 -559
- package/resources/themes/mdc-light-indigo/theme.css +416 -559
- package/resources/themes/mira/theme.css +402 -477
- package/resources/themes/nano/theme.css +395 -437
- package/resources/themes/nova/theme.css +395 -441
- package/resources/themes/nova-accent/theme.css +395 -438
- package/resources/themes/nova-alt/theme.css +395 -441
- package/resources/themes/rhea/theme.css +395 -438
- package/resources/themes/saga-blue/theme.css +395 -439
- package/resources/themes/saga-green/theme.css +395 -439
- package/resources/themes/saga-orange/theme.css +395 -439
- package/resources/themes/saga-purple/theme.css +395 -439
- package/resources/themes/soho-dark/theme.css +426 -473
- package/resources/themes/soho-light/theme.css +400 -449
- package/resources/themes/tailwind-light/theme.css +425 -482
- package/resources/themes/vela-blue/theme.css +395 -439
- package/resources/themes/vela-green/theme.css +395 -439
- package/resources/themes/vela-orange/theme.css +395 -439
- package/resources/themes/vela-purple/theme.css +395 -439
- package/resources/themes/viva-dark/theme.css +400 -463
- package/resources/themes/viva-light/theme.css +400 -463
- package/stepper/index.d.ts +5 -0
- package/stepper/public_api.d.ts +2 -0
- package/stepper/stepper.d.ts +125 -0
- package/stepper/stepper.interface.d.ts +26 -0
- package/table/table.d.ts +8 -2
- package/tieredmenu/tieredmenu.d.ts +1 -0
@@ -0,0 +1,685 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, NgModule, Output, ViewEncapsulation } from '@angular/core';
|
3
|
+
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
4
|
+
import { UniqueComponentId } from 'primeng/utils';
|
5
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@angular/common";
|
8
|
+
export class StepperHeader {
|
9
|
+
id;
|
10
|
+
template;
|
11
|
+
stepperPanel;
|
12
|
+
index;
|
13
|
+
disabled;
|
14
|
+
active;
|
15
|
+
highlighted;
|
16
|
+
getStepProp;
|
17
|
+
ariaControls;
|
18
|
+
onClick = new EventEmitter();
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: StepperHeader, selector: "p-stepperHeader", inputs: { id: "id", template: "template", stepperPanel: "stepperPanel", index: "index", disabled: "disabled", active: "active", highlighted: "highlighted", getStepProp: "getStepProp", ariaControls: "ariaControls" }, outputs: { onClick: "onClick" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
21
|
+
<ng-container *ngIf="template; else buttonRef">
|
22
|
+
<ng-container
|
23
|
+
*ngTemplateOutlet="
|
24
|
+
template;
|
25
|
+
context: {
|
26
|
+
index: index,
|
27
|
+
active: active,
|
28
|
+
highlighted: highlighted,
|
29
|
+
class: 'p-stepper-action',
|
30
|
+
headerClass: 'p-stepper-action',
|
31
|
+
numberClass: 'p-stepper-number',
|
32
|
+
titleClass: 'p-stepper-title',
|
33
|
+
onClick: onClick
|
34
|
+
}
|
35
|
+
"
|
36
|
+
></ng-container>
|
37
|
+
</ng-container>
|
38
|
+
<ng-template #buttonRef>
|
39
|
+
<p-button [id]="id" class="p-stepper-action" role="tab" [tabindex]="disabled ? -1 : undefined" [aria-controls]="ariaControls" (click)="onClick.emit($event, index)">
|
40
|
+
<span class="p-stepper-number">{{ index + 1 }}</span>
|
41
|
+
<span class="p-stepper-title">{{ getStepProp }}</span>
|
42
|
+
</p-button>
|
43
|
+
</ng-template>
|
44
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
45
|
+
}
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperHeader, decorators: [{
|
47
|
+
type: Component,
|
48
|
+
args: [{
|
49
|
+
selector: 'p-stepperHeader',
|
50
|
+
template: `
|
51
|
+
<ng-container *ngIf="template; else buttonRef">
|
52
|
+
<ng-container
|
53
|
+
*ngTemplateOutlet="
|
54
|
+
template;
|
55
|
+
context: {
|
56
|
+
index: index,
|
57
|
+
active: active,
|
58
|
+
highlighted: highlighted,
|
59
|
+
class: 'p-stepper-action',
|
60
|
+
headerClass: 'p-stepper-action',
|
61
|
+
numberClass: 'p-stepper-number',
|
62
|
+
titleClass: 'p-stepper-title',
|
63
|
+
onClick: onClick
|
64
|
+
}
|
65
|
+
"
|
66
|
+
></ng-container>
|
67
|
+
</ng-container>
|
68
|
+
<ng-template #buttonRef>
|
69
|
+
<p-button [id]="id" class="p-stepper-action" role="tab" [tabindex]="disabled ? -1 : undefined" [aria-controls]="ariaControls" (click)="onClick.emit($event, index)">
|
70
|
+
<span class="p-stepper-number">{{ index + 1 }}</span>
|
71
|
+
<span class="p-stepper-title">{{ getStepProp }}</span>
|
72
|
+
</p-button>
|
73
|
+
</ng-template>
|
74
|
+
`,
|
75
|
+
host: {
|
76
|
+
class: 'p-element'
|
77
|
+
}
|
78
|
+
}]
|
79
|
+
}], propDecorators: { id: [{
|
80
|
+
type: Input
|
81
|
+
}], template: [{
|
82
|
+
type: Input
|
83
|
+
}], stepperPanel: [{
|
84
|
+
type: Input
|
85
|
+
}], index: [{
|
86
|
+
type: Input
|
87
|
+
}], disabled: [{
|
88
|
+
type: Input
|
89
|
+
}], active: [{
|
90
|
+
type: Input
|
91
|
+
}], highlighted: [{
|
92
|
+
type: Input
|
93
|
+
}], getStepProp: [{
|
94
|
+
type: Input
|
95
|
+
}], ariaControls: [{
|
96
|
+
type: Input
|
97
|
+
}], onClick: [{
|
98
|
+
type: Output
|
99
|
+
}] } });
|
100
|
+
export class StepperSeparator {
|
101
|
+
template;
|
102
|
+
separatorClass;
|
103
|
+
stepperPanel;
|
104
|
+
index;
|
105
|
+
active;
|
106
|
+
highlighted;
|
107
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
108
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: StepperSeparator, selector: "p-stepperSeparator", inputs: { template: "template", separatorClass: "separatorClass", stepperPanel: "stepperPanel", index: "index", active: "active", highlighted: "highlighted" }, host: { classAttribute: "p-stepper-separator" }, ngImport: i0, template: `
|
109
|
+
<ng-container *ngIf="template; else span">
|
110
|
+
<ng-container *ngTemplateOutlet="template; context: { index: index, active: active, highlighted: highlighted, class: separatorClass }"></ng-container>
|
111
|
+
</ng-container>
|
112
|
+
<ng-template #span>
|
113
|
+
<span [class]="separatorClass" aria-hidden="true"></span>
|
114
|
+
</ng-template>
|
115
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
116
|
+
}
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperSeparator, decorators: [{
|
118
|
+
type: Component,
|
119
|
+
args: [{
|
120
|
+
selector: 'p-stepperSeparator',
|
121
|
+
template: `
|
122
|
+
<ng-container *ngIf="template; else span">
|
123
|
+
<ng-container *ngTemplateOutlet="template; context: { index: index, active: active, highlighted: highlighted, class: separatorClass }"></ng-container>
|
124
|
+
</ng-container>
|
125
|
+
<ng-template #span>
|
126
|
+
<span [class]="separatorClass" aria-hidden="true"></span>
|
127
|
+
</ng-template>
|
128
|
+
`,
|
129
|
+
host: {
|
130
|
+
class: 'p-stepper-separator'
|
131
|
+
}
|
132
|
+
}]
|
133
|
+
}], propDecorators: { template: [{
|
134
|
+
type: Input
|
135
|
+
}], separatorClass: [{
|
136
|
+
type: Input
|
137
|
+
}], stepperPanel: [{
|
138
|
+
type: Input
|
139
|
+
}], index: [{
|
140
|
+
type: Input
|
141
|
+
}], active: [{
|
142
|
+
type: Input
|
143
|
+
}], highlighted: [{
|
144
|
+
type: Input
|
145
|
+
}] } });
|
146
|
+
export class StepperContent {
|
147
|
+
id;
|
148
|
+
orientation;
|
149
|
+
template;
|
150
|
+
ariaLabelledby;
|
151
|
+
stepperPanel;
|
152
|
+
index;
|
153
|
+
active;
|
154
|
+
highlighted;
|
155
|
+
onClick = new EventEmitter();
|
156
|
+
prevCallback = new EventEmitter();
|
157
|
+
nextCallback = new EventEmitter();
|
158
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
159
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: StepperContent, selector: "p-stepperContent", inputs: { id: "id", orientation: "orientation", template: "template", ariaLabelledby: "ariaLabelledby", stepperPanel: "stepperPanel", index: "index", active: "active", highlighted: "highlighted" }, outputs: { onClick: "onClick", prevCallback: "prevCallback", nextCallback: "nextCallback" }, host: { properties: { "class.p-stepper-content": "true", "class.p-element": "true", "class.p-toggleable-content": "orientation === 'vertical'" } }, ngImport: i0, template: ` <div [id]="id" role="tabpanel" data-pc-name="stepperpanel" [attr.data-pc-index]="index" [attr.data-p-active]="active" [attr.aria-labelledby]="ariaLabelledby">
|
160
|
+
<ng-container *ngIf="template">
|
161
|
+
<ng-container *ngTemplateOutlet="template; context: { index: index, active: active, highlighted: highlighted, onClick: onClick, prevCallback: prevCallback, nextCallback: nextCallback }"></ng-container>
|
162
|
+
</ng-container>
|
163
|
+
<ng-template *ngIf="!template">
|
164
|
+
<ng-container *ngIf="stepperPanel">
|
165
|
+
<ng-container *ngTemplateOutlet="stepperPanel"></ng-container>
|
166
|
+
</ng-container>
|
167
|
+
</ng-template>
|
168
|
+
</div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
169
|
+
}
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperContent, decorators: [{
|
171
|
+
type: Component,
|
172
|
+
args: [{
|
173
|
+
selector: 'p-stepperContent',
|
174
|
+
template: ` <div [id]="id" role="tabpanel" data-pc-name="stepperpanel" [attr.data-pc-index]="index" [attr.data-p-active]="active" [attr.aria-labelledby]="ariaLabelledby">
|
175
|
+
<ng-container *ngIf="template">
|
176
|
+
<ng-container *ngTemplateOutlet="template; context: { index: index, active: active, highlighted: highlighted, onClick: onClick, prevCallback: prevCallback, nextCallback: nextCallback }"></ng-container>
|
177
|
+
</ng-container>
|
178
|
+
<ng-template *ngIf="!template">
|
179
|
+
<ng-container *ngIf="stepperPanel">
|
180
|
+
<ng-container *ngTemplateOutlet="stepperPanel"></ng-container>
|
181
|
+
</ng-container>
|
182
|
+
</ng-template>
|
183
|
+
</div>`,
|
184
|
+
host: {
|
185
|
+
'[class.p-stepper-content]': 'true',
|
186
|
+
'[class.p-element]': 'true',
|
187
|
+
'[class.p-toggleable-content]': "orientation === 'vertical'"
|
188
|
+
}
|
189
|
+
}]
|
190
|
+
}], propDecorators: { id: [{
|
191
|
+
type: Input
|
192
|
+
}], orientation: [{
|
193
|
+
type: Input
|
194
|
+
}], template: [{
|
195
|
+
type: Input
|
196
|
+
}], ariaLabelledby: [{
|
197
|
+
type: Input
|
198
|
+
}], stepperPanel: [{
|
199
|
+
type: Input
|
200
|
+
}], index: [{
|
201
|
+
type: Input
|
202
|
+
}], active: [{
|
203
|
+
type: Input
|
204
|
+
}], highlighted: [{
|
205
|
+
type: Input
|
206
|
+
}], onClick: [{
|
207
|
+
type: Output
|
208
|
+
}], prevCallback: [{
|
209
|
+
type: Output
|
210
|
+
}], nextCallback: [{
|
211
|
+
type: Output
|
212
|
+
}] } });
|
213
|
+
/**
|
214
|
+
* StepperPanel is a helper component for Stepper component.
|
215
|
+
* @group Components
|
216
|
+
*/
|
217
|
+
export class StepperPanel {
|
218
|
+
/**
|
219
|
+
* Orientation of tab headers.
|
220
|
+
* @group Props
|
221
|
+
*/
|
222
|
+
header;
|
223
|
+
templates;
|
224
|
+
headerTemplate;
|
225
|
+
startTemplate;
|
226
|
+
contentTemplate;
|
227
|
+
separatorTemplate;
|
228
|
+
endTemplate;
|
229
|
+
ngAfterContentInit() {
|
230
|
+
this.templates.forEach((item) => {
|
231
|
+
switch (item.getType()) {
|
232
|
+
case 'header':
|
233
|
+
this.headerTemplate = item.template;
|
234
|
+
break;
|
235
|
+
case 'content':
|
236
|
+
this.contentTemplate = item.template;
|
237
|
+
break;
|
238
|
+
case 'separator':
|
239
|
+
this.separatorTemplate = item.template;
|
240
|
+
break;
|
241
|
+
}
|
242
|
+
});
|
243
|
+
}
|
244
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperPanel, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
245
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: StepperPanel, selector: "p-stepperPanel", inputs: { header: "header" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
|
246
|
+
}
|
247
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperPanel, decorators: [{
|
248
|
+
type: Component,
|
249
|
+
args: [{
|
250
|
+
selector: 'p-stepperPanel',
|
251
|
+
template: ` <ng-content></ng-content> `,
|
252
|
+
host: {
|
253
|
+
class: 'p-element'
|
254
|
+
}
|
255
|
+
}]
|
256
|
+
}], propDecorators: { header: [{
|
257
|
+
type: Input
|
258
|
+
}], templates: [{
|
259
|
+
type: ContentChildren,
|
260
|
+
args: [PrimeTemplate]
|
261
|
+
}] } });
|
262
|
+
/**
|
263
|
+
* The Stepper component displays a wizard-like workflow by guiding users through the multi-step progression.
|
264
|
+
* @group Components
|
265
|
+
*/
|
266
|
+
export class Stepper {
|
267
|
+
/**
|
268
|
+
* Active step index of stepper.
|
269
|
+
* @group Props
|
270
|
+
*/
|
271
|
+
activeStep = 0;
|
272
|
+
/**
|
273
|
+
* Orientation of the stepper.
|
274
|
+
* @group Props
|
275
|
+
*/
|
276
|
+
orientation = 'horizontal';
|
277
|
+
/**
|
278
|
+
* Whether the steps are clickable or not.
|
279
|
+
* @group Props
|
280
|
+
*/
|
281
|
+
linear = false;
|
282
|
+
/**
|
283
|
+
* Transition options of the animation.
|
284
|
+
* @group Props
|
285
|
+
*/
|
286
|
+
transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
|
287
|
+
stepperPanels;
|
288
|
+
templates;
|
289
|
+
onClick = new EventEmitter();
|
290
|
+
/**
|
291
|
+
* Emitted when the value changes.
|
292
|
+
* @param {ActiveStepChangeEvent} event - custom change event.
|
293
|
+
* @group Emits
|
294
|
+
*/
|
295
|
+
activeStepChange = new EventEmitter();
|
296
|
+
headerTemplate;
|
297
|
+
startTemplate;
|
298
|
+
separatorTemplate;
|
299
|
+
endTemplate;
|
300
|
+
id = UniqueComponentId();
|
301
|
+
panels;
|
302
|
+
isStepActive(index) {
|
303
|
+
return this.activeStep === index;
|
304
|
+
}
|
305
|
+
getStepProp(step) {
|
306
|
+
if (step?.header) {
|
307
|
+
return step.header;
|
308
|
+
}
|
309
|
+
if (step?.content) {
|
310
|
+
return step.content;
|
311
|
+
}
|
312
|
+
return undefined;
|
313
|
+
}
|
314
|
+
getStepKey(step, index) {
|
315
|
+
return this.getStepProp(step) || index;
|
316
|
+
}
|
317
|
+
getStepHeaderActionId(index) {
|
318
|
+
return `${this.id}_${index}_header_action`;
|
319
|
+
}
|
320
|
+
getStepContentId(index) {
|
321
|
+
return `${this.id}_${index}_content`;
|
322
|
+
}
|
323
|
+
updateActiveStep(event, index) {
|
324
|
+
this.activeStep = index;
|
325
|
+
this.activeStepChange.emit(this.activeStep);
|
326
|
+
}
|
327
|
+
onItemClick(event, index) {
|
328
|
+
if (this.linear) {
|
329
|
+
event.preventDefault();
|
330
|
+
return;
|
331
|
+
}
|
332
|
+
if (index !== this.activeStep) {
|
333
|
+
this.updateActiveStep(event, index);
|
334
|
+
}
|
335
|
+
}
|
336
|
+
isItemDisabled(index) {
|
337
|
+
return this.linear && !this.isStepActive(index);
|
338
|
+
}
|
339
|
+
prevCallback(event, index) {
|
340
|
+
if (index !== 0) {
|
341
|
+
this.updateActiveStep(event, index - 1);
|
342
|
+
}
|
343
|
+
}
|
344
|
+
nextCallback(event, index) {
|
345
|
+
if (index !== this.stepperPanels.length - 1) {
|
346
|
+
this.updateActiveStep(event, index + 1);
|
347
|
+
}
|
348
|
+
}
|
349
|
+
trackByFn(index) {
|
350
|
+
return index;
|
351
|
+
}
|
352
|
+
ngAfterContentInit() {
|
353
|
+
this.panels = this.stepperPanels.toArray();
|
354
|
+
this.templates.forEach((item) => {
|
355
|
+
switch (item.getType()) {
|
356
|
+
case 'start':
|
357
|
+
this.startTemplate = item.template;
|
358
|
+
break;
|
359
|
+
case 'end':
|
360
|
+
this.endTemplate = item.template;
|
361
|
+
break;
|
362
|
+
default:
|
363
|
+
break;
|
364
|
+
}
|
365
|
+
});
|
366
|
+
}
|
367
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: Stepper, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
368
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: Stepper, selector: "p-stepper", inputs: { activeStep: "activeStep", orientation: "orientation", linear: "linear", transitionOptions: "transitionOptions" }, outputs: { onClick: "onClick", activeStepChange: "activeStepChange" }, host: { properties: { "class.p-stepper": "true", "class.p-component": "true", "class.p-stepper-vertical": "orientation === 'vertical'" } }, queries: [{ propertyName: "stepperPanels", predicate: StepperPanel }, { propertyName: "templates", predicate: PrimeTemplate }], ngImport: i0, template: `
|
369
|
+
<div role="tablist">
|
370
|
+
<ng-container *ngIf="startTemplate">
|
371
|
+
<ng-container *ngTemplateOutlet="startTemplate"></ng-container>
|
372
|
+
</ng-container>
|
373
|
+
<ng-container *ngIf="orientation === 'horizontal'; else vertical">
|
374
|
+
<ul class="p-stepper-nav">
|
375
|
+
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
376
|
+
<li
|
377
|
+
[key]="getStepKey(step, index)"
|
378
|
+
class="p-stepper-header"
|
379
|
+
[ngClass]="{
|
380
|
+
'p-highlight': isStepActive(index),
|
381
|
+
'p-disabled': isItemDisabled(index)
|
382
|
+
}"
|
383
|
+
[attr.aria-current]="isStepActive(index) ? 'step' : undefined"
|
384
|
+
role="presentation"
|
385
|
+
[data-pc-name]="stepperPanel"
|
386
|
+
[data-p-highlight]="isStepActive(index)"
|
387
|
+
[data-p-disabled]="isItemDisabled(index)"
|
388
|
+
[data-pc-index]="index"
|
389
|
+
[data-p-active]="isStepActive(index)"
|
390
|
+
>
|
391
|
+
<p-stepperHeader
|
392
|
+
[id]="getStepHeaderActionId(index)"
|
393
|
+
[template]="step.headerTemplate"
|
394
|
+
[stepperPanel]="step"
|
395
|
+
[getStepProp]="getStepProp(step, 'header')"
|
396
|
+
[index]="index"
|
397
|
+
[disabled]="isItemDisabled(index)"
|
398
|
+
[active]="isStepActive(index)"
|
399
|
+
[highlighted]="index < activeStep"
|
400
|
+
[class]="'p-stepper-action'"
|
401
|
+
[aria-controls]="getStepContentId(index)"
|
402
|
+
(onClick)="onItemClick($event, index)"
|
403
|
+
></p-stepperHeader>
|
404
|
+
|
405
|
+
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
406
|
+
<p-stepperSeparator [template]="step.separatorTemplate" [separatorClass]="'p-stepper-separator'" [stepperPanel]="step" [index]="index" [active]="isStepActive(index)" [highlighted]="index < activeStep" />
|
407
|
+
</ng-container>
|
408
|
+
</li>
|
409
|
+
</ng-template>
|
410
|
+
</ul>
|
411
|
+
<div class="p-stepper-panels">
|
412
|
+
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
413
|
+
<ng-container *ngIf="isStepActive(index)">
|
414
|
+
<p-stepperContent
|
415
|
+
[id]="getStepContentId(index)"
|
416
|
+
[template]="step.contentTemplate"
|
417
|
+
[orientation]="orientation"
|
418
|
+
[stepperPanel]="step"
|
419
|
+
[index]="index"
|
420
|
+
[active]="isStepActive(index)"
|
421
|
+
[highlighted]="index < activeStep"
|
422
|
+
[ariaLabelledby]="getStepHeaderActionId(index)"
|
423
|
+
(onClick)="onItemClick($event, index)"
|
424
|
+
(nextCallback)="nextCallback($event, index)"
|
425
|
+
(prevCallback)="prevCallback($event, index)"
|
426
|
+
/>
|
427
|
+
</ng-container>
|
428
|
+
</ng-template>
|
429
|
+
</div>
|
430
|
+
</ng-container>
|
431
|
+
<ng-template #vertical>
|
432
|
+
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
433
|
+
<div
|
434
|
+
[key]="getStepKey(step, index)"
|
435
|
+
class="p-stepper-panel"
|
436
|
+
[ngClass]="{
|
437
|
+
'p-stepper-panel-active': orientation === 'vertical' && isStepActive(index)
|
438
|
+
}"
|
439
|
+
[attr.aria-current]="isStepActive(index) ? 'step' : undefined"
|
440
|
+
[data-pc-name]="'stepperpanel'"
|
441
|
+
[data-p-highlight]="isStepActive(index)"
|
442
|
+
[data-p-disabled]="isItemDisabled(index)"
|
443
|
+
[data-pc-index]="index"
|
444
|
+
[data-p-active]="isStepActive(index)"
|
445
|
+
>
|
446
|
+
<div
|
447
|
+
class="p-stepper-header "
|
448
|
+
[ngClass]="{
|
449
|
+
'p-highlight': isStepActive(index),
|
450
|
+
'p-disabled': isItemDisabled(index)
|
451
|
+
}"
|
452
|
+
>
|
453
|
+
<p-stepperHeader
|
454
|
+
[id]="getStepHeaderActionId(index)"
|
455
|
+
[template]="step.headerTemplate"
|
456
|
+
[stepperPanel]="step"
|
457
|
+
[getStepProp]="getStepProp(step, 'header')"
|
458
|
+
[index]="index"
|
459
|
+
[disabled]="isItemDisabled(index)"
|
460
|
+
[active]="isStepActive(index)"
|
461
|
+
[highlighted]="index < activeStep"
|
462
|
+
[class]="'p-stepper-action'"
|
463
|
+
[aria-controls]="getStepContentId(index)"
|
464
|
+
(onClick)="onItemClick($event, index)"
|
465
|
+
></p-stepperHeader>
|
466
|
+
</div>
|
467
|
+
|
468
|
+
<div class="p-stepper-toggleable-content" [@tabContent]="isStepActive(index) ? { value: 'visible', params: { transitionParams: transitionOptions } } : { value: 'hidden', params: { transitionParams: transitionOptions } }">
|
469
|
+
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
470
|
+
<p-stepperSeparator [template]="step.separatorTemplate" [separatorClass]="'p-stepper-separator'" [stepperPanel]="step" [index]="index" [active]="isStepActive(index)" [highlighted]="index < activeStep" />
|
471
|
+
</ng-container>
|
472
|
+
<p-stepperContent
|
473
|
+
[id]="getStepContentId(index)"
|
474
|
+
[template]="step.contentTemplate"
|
475
|
+
[orientation]="orientation"
|
476
|
+
[stepperPanel]="step"
|
477
|
+
[index]="index"
|
478
|
+
[active]="isStepActive(index)"
|
479
|
+
[highlighted]="index < activeStep"
|
480
|
+
[ariaLabelledby]="getStepHeaderActionId(index)"
|
481
|
+
(onClick)="onItemClick($event, index)"
|
482
|
+
(nextCallback)="nextCallback($event, index)"
|
483
|
+
(prevCallback)="prevCallback($event, index)"
|
484
|
+
/>
|
485
|
+
</div>
|
486
|
+
</div>
|
487
|
+
</ng-template>
|
488
|
+
</ng-template>
|
489
|
+
<ng-container *ngIf="endTemplate">
|
490
|
+
<ng-container *ngTemplateOutlet="endTemplate"></ng-container>
|
491
|
+
</ng-container>
|
492
|
+
</div>
|
493
|
+
`, isInline: true, styles: ["@layer primeng{.p-stepper-vertical .p-stepper-panel>.p-stepper-toggleable-content{overflow:hidden}.p-stepper-vertical .p-stepper-panel-active>.p-stepper-toggleable-content:not(.ng-animating){overflow:inherit}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StepperContent, selector: "p-stepperContent", inputs: ["id", "orientation", "template", "ariaLabelledby", "stepperPanel", "index", "active", "highlighted"], outputs: ["onClick", "prevCallback", "nextCallback"] }, { kind: "component", type: StepperHeader, selector: "p-stepperHeader", inputs: ["id", "template", "stepperPanel", "index", "disabled", "active", "highlighted", "getStepProp", "ariaControls"], outputs: ["onClick"] }, { kind: "component", type: StepperSeparator, selector: "p-stepperSeparator", inputs: ["template", "separatorClass", "stepperPanel", "index", "active", "highlighted"] }], animations: [
|
494
|
+
trigger('tabContent', [
|
495
|
+
state('hidden', style({
|
496
|
+
height: '0',
|
497
|
+
visibility: 'hidden'
|
498
|
+
})),
|
499
|
+
state('visible', style({
|
500
|
+
height: '*',
|
501
|
+
visibility: 'visible'
|
502
|
+
})),
|
503
|
+
transition('visible <=> hidden', [animate('250ms cubic-bezier(0.86, 0, 0.07, 1)')]),
|
504
|
+
transition('void => *', animate(0))
|
505
|
+
])
|
506
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
507
|
+
}
|
508
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: Stepper, decorators: [{
|
509
|
+
type: Component,
|
510
|
+
args: [{ selector: 'p-stepper', template: `
|
511
|
+
<div role="tablist">
|
512
|
+
<ng-container *ngIf="startTemplate">
|
513
|
+
<ng-container *ngTemplateOutlet="startTemplate"></ng-container>
|
514
|
+
</ng-container>
|
515
|
+
<ng-container *ngIf="orientation === 'horizontal'; else vertical">
|
516
|
+
<ul class="p-stepper-nav">
|
517
|
+
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
518
|
+
<li
|
519
|
+
[key]="getStepKey(step, index)"
|
520
|
+
class="p-stepper-header"
|
521
|
+
[ngClass]="{
|
522
|
+
'p-highlight': isStepActive(index),
|
523
|
+
'p-disabled': isItemDisabled(index)
|
524
|
+
}"
|
525
|
+
[attr.aria-current]="isStepActive(index) ? 'step' : undefined"
|
526
|
+
role="presentation"
|
527
|
+
[data-pc-name]="stepperPanel"
|
528
|
+
[data-p-highlight]="isStepActive(index)"
|
529
|
+
[data-p-disabled]="isItemDisabled(index)"
|
530
|
+
[data-pc-index]="index"
|
531
|
+
[data-p-active]="isStepActive(index)"
|
532
|
+
>
|
533
|
+
<p-stepperHeader
|
534
|
+
[id]="getStepHeaderActionId(index)"
|
535
|
+
[template]="step.headerTemplate"
|
536
|
+
[stepperPanel]="step"
|
537
|
+
[getStepProp]="getStepProp(step, 'header')"
|
538
|
+
[index]="index"
|
539
|
+
[disabled]="isItemDisabled(index)"
|
540
|
+
[active]="isStepActive(index)"
|
541
|
+
[highlighted]="index < activeStep"
|
542
|
+
[class]="'p-stepper-action'"
|
543
|
+
[aria-controls]="getStepContentId(index)"
|
544
|
+
(onClick)="onItemClick($event, index)"
|
545
|
+
></p-stepperHeader>
|
546
|
+
|
547
|
+
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
548
|
+
<p-stepperSeparator [template]="step.separatorTemplate" [separatorClass]="'p-stepper-separator'" [stepperPanel]="step" [index]="index" [active]="isStepActive(index)" [highlighted]="index < activeStep" />
|
549
|
+
</ng-container>
|
550
|
+
</li>
|
551
|
+
</ng-template>
|
552
|
+
</ul>
|
553
|
+
<div class="p-stepper-panels">
|
554
|
+
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
555
|
+
<ng-container *ngIf="isStepActive(index)">
|
556
|
+
<p-stepperContent
|
557
|
+
[id]="getStepContentId(index)"
|
558
|
+
[template]="step.contentTemplate"
|
559
|
+
[orientation]="orientation"
|
560
|
+
[stepperPanel]="step"
|
561
|
+
[index]="index"
|
562
|
+
[active]="isStepActive(index)"
|
563
|
+
[highlighted]="index < activeStep"
|
564
|
+
[ariaLabelledby]="getStepHeaderActionId(index)"
|
565
|
+
(onClick)="onItemClick($event, index)"
|
566
|
+
(nextCallback)="nextCallback($event, index)"
|
567
|
+
(prevCallback)="prevCallback($event, index)"
|
568
|
+
/>
|
569
|
+
</ng-container>
|
570
|
+
</ng-template>
|
571
|
+
</div>
|
572
|
+
</ng-container>
|
573
|
+
<ng-template #vertical>
|
574
|
+
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
575
|
+
<div
|
576
|
+
[key]="getStepKey(step, index)"
|
577
|
+
class="p-stepper-panel"
|
578
|
+
[ngClass]="{
|
579
|
+
'p-stepper-panel-active': orientation === 'vertical' && isStepActive(index)
|
580
|
+
}"
|
581
|
+
[attr.aria-current]="isStepActive(index) ? 'step' : undefined"
|
582
|
+
[data-pc-name]="'stepperpanel'"
|
583
|
+
[data-p-highlight]="isStepActive(index)"
|
584
|
+
[data-p-disabled]="isItemDisabled(index)"
|
585
|
+
[data-pc-index]="index"
|
586
|
+
[data-p-active]="isStepActive(index)"
|
587
|
+
>
|
588
|
+
<div
|
589
|
+
class="p-stepper-header "
|
590
|
+
[ngClass]="{
|
591
|
+
'p-highlight': isStepActive(index),
|
592
|
+
'p-disabled': isItemDisabled(index)
|
593
|
+
}"
|
594
|
+
>
|
595
|
+
<p-stepperHeader
|
596
|
+
[id]="getStepHeaderActionId(index)"
|
597
|
+
[template]="step.headerTemplate"
|
598
|
+
[stepperPanel]="step"
|
599
|
+
[getStepProp]="getStepProp(step, 'header')"
|
600
|
+
[index]="index"
|
601
|
+
[disabled]="isItemDisabled(index)"
|
602
|
+
[active]="isStepActive(index)"
|
603
|
+
[highlighted]="index < activeStep"
|
604
|
+
[class]="'p-stepper-action'"
|
605
|
+
[aria-controls]="getStepContentId(index)"
|
606
|
+
(onClick)="onItemClick($event, index)"
|
607
|
+
></p-stepperHeader>
|
608
|
+
</div>
|
609
|
+
|
610
|
+
<div class="p-stepper-toggleable-content" [@tabContent]="isStepActive(index) ? { value: 'visible', params: { transitionParams: transitionOptions } } : { value: 'hidden', params: { transitionParams: transitionOptions } }">
|
611
|
+
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
612
|
+
<p-stepperSeparator [template]="step.separatorTemplate" [separatorClass]="'p-stepper-separator'" [stepperPanel]="step" [index]="index" [active]="isStepActive(index)" [highlighted]="index < activeStep" />
|
613
|
+
</ng-container>
|
614
|
+
<p-stepperContent
|
615
|
+
[id]="getStepContentId(index)"
|
616
|
+
[template]="step.contentTemplate"
|
617
|
+
[orientation]="orientation"
|
618
|
+
[stepperPanel]="step"
|
619
|
+
[index]="index"
|
620
|
+
[active]="isStepActive(index)"
|
621
|
+
[highlighted]="index < activeStep"
|
622
|
+
[ariaLabelledby]="getStepHeaderActionId(index)"
|
623
|
+
(onClick)="onItemClick($event, index)"
|
624
|
+
(nextCallback)="nextCallback($event, index)"
|
625
|
+
(prevCallback)="prevCallback($event, index)"
|
626
|
+
/>
|
627
|
+
</div>
|
628
|
+
</div>
|
629
|
+
</ng-template>
|
630
|
+
</ng-template>
|
631
|
+
<ng-container *ngIf="endTemplate">
|
632
|
+
<ng-container *ngTemplateOutlet="endTemplate"></ng-container>
|
633
|
+
</ng-container>
|
634
|
+
</div>
|
635
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
636
|
+
'[class.p-stepper]': 'true',
|
637
|
+
'[class.p-component]': 'true',
|
638
|
+
'[class.p-stepper-vertical]': "orientation === 'vertical'"
|
639
|
+
}, animations: [
|
640
|
+
trigger('tabContent', [
|
641
|
+
state('hidden', style({
|
642
|
+
height: '0',
|
643
|
+
visibility: 'hidden'
|
644
|
+
})),
|
645
|
+
state('visible', style({
|
646
|
+
height: '*',
|
647
|
+
visibility: 'visible'
|
648
|
+
})),
|
649
|
+
transition('visible <=> hidden', [animate('250ms cubic-bezier(0.86, 0, 0.07, 1)')]),
|
650
|
+
transition('void => *', animate(0))
|
651
|
+
])
|
652
|
+
], styles: ["@layer primeng{.p-stepper-vertical .p-stepper-panel>.p-stepper-toggleable-content{overflow:hidden}.p-stepper-vertical .p-stepper-panel-active>.p-stepper-toggleable-content:not(.ng-animating){overflow:inherit}}\n"] }]
|
653
|
+
}], propDecorators: { activeStep: [{
|
654
|
+
type: Input
|
655
|
+
}], orientation: [{
|
656
|
+
type: Input
|
657
|
+
}], linear: [{
|
658
|
+
type: Input
|
659
|
+
}], transitionOptions: [{
|
660
|
+
type: Input
|
661
|
+
}], stepperPanels: [{
|
662
|
+
type: ContentChildren,
|
663
|
+
args: [StepperPanel]
|
664
|
+
}], templates: [{
|
665
|
+
type: ContentChildren,
|
666
|
+
args: [PrimeTemplate]
|
667
|
+
}], onClick: [{
|
668
|
+
type: Output
|
669
|
+
}], activeStepChange: [{
|
670
|
+
type: Output
|
671
|
+
}] } });
|
672
|
+
export class StepperModule {
|
673
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
674
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: StepperModule, declarations: [Stepper, StepperPanel, StepperPanel, StepperContent, StepperHeader, StepperSeparator], imports: [CommonModule, SharedModule], exports: [Stepper, StepperPanel, StepperContent, StepperHeader, StepperSeparator, SharedModule] });
|
675
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperModule, imports: [CommonModule, SharedModule, SharedModule] });
|
676
|
+
}
|
677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: StepperModule, decorators: [{
|
678
|
+
type: NgModule,
|
679
|
+
args: [{
|
680
|
+
imports: [CommonModule, SharedModule],
|
681
|
+
exports: [Stepper, StepperPanel, StepperContent, StepperHeader, StepperSeparator, SharedModule],
|
682
|
+
declarations: [Stepper, StepperPanel, StepperPanel, StepperContent, StepperHeader, StepperSeparator]
|
683
|
+
}]
|
684
|
+
}] });
|
685
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQTBCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hMLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFpQ2pGLE1BQU0sT0FBTyxhQUFhO0lBQ2IsRUFBRSxDQUFxQjtJQUV2QixRQUFRLENBQStCO0lBRXZDLFlBQVksQ0FBZTtJQUUzQixLQUFLLENBQXFCO0lBRTFCLFFBQVEsQ0FBc0I7SUFFOUIsTUFBTSxDQUFzQjtJQUU1QixXQUFXLENBQXNCO0lBRWpDLFdBQVcsQ0FBcUI7SUFFaEMsWUFBWSxDQUFxQjtJQUVoQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQzt1R0FuQnBDLGFBQWE7MkZBQWIsYUFBYSx1VkE3Qlo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCVDs7MkZBS1EsYUFBYTtrQkEvQnpCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F3QlQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxXQUFXO3FCQUNyQjtpQkFDSjs4QkFFWSxFQUFF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IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdNb2R1bGUsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAncHJpbWVuZy90cy1oZWxwZXJzJztcbmltcG9ydCB7IFVuaXF1ZUNvbXBvbmVudElkIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXBwZXJIZWFkZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBidXR0b25SZWZcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHRlZDogaGlnaGxpZ2h0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogJ3Atc3RlcHBlci1hY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyQ2xhc3M6ICdwLXN0ZXBwZXItYWN0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckNsYXNzOiAncC1zdGVwcGVyLW51bWJlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZUNsYXNzOiAncC1zdGVwcGVyLXRpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2J1dHRvblJlZj5cbiAgICAgICAgICAgIDxwLWJ1dHRvbiBbaWRdPVwiaWRcIiBjbGFzcz1cInAtc3RlcHBlci1hY3Rpb25cIiByb2xlPVwidGFiXCIgW3RhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiB1bmRlZmluZWRcIiBbYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIiAoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudCwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXN0ZXBwZXItbnVtYmVyXCI+e3sgaW5kZXggKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1zdGVwcGVyLXRpdGxlXCI+e3sgZ2V0U3RlcFByb3AgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3AtYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJIZWFkZXIge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHN0ZXBwZXJQYW5lbDogU3RlcHBlclBhbmVsO1xuXG4gICAgQElucHV0KCkgaW5kZXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYWN0aXZlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBnZXRTdGVwUHJvcDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYXJpYUNvbnRyb2xzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBAT3V0cHV0KCkgb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXBwZXJTZXBhcmF0b3InLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBzcGFuXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IHsgaW5kZXg6IGluZGV4LCBhY3RpdmU6IGFjdGl2ZSwgaGlnaGxpZ2h0ZWQ6IGhpZ2hsaWdodGVkLCBjbGFzczogc2VwYXJhdG9yQ2xhc3MgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzcGFuPlxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cInNlcGFyYXRvckNsYXNzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3Atc3RlcHBlci1zZXBhcmF0b3InXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyU2VwYXJhdG9yIHtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHNlcGFyYXRvckNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBzdGVwcGVyUGFuZWw6IFN0ZXBwZXJQYW5lbDtcblxuICAgIEBJbnB1dCgpIGluZGV4OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBoaWdobGlnaHRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXBwZXJDb250ZW50JyxcbiAgICB0ZW1wbGF0ZTogYCA8ZGl2IFtpZF09XCJpZFwiIHJvbGU9XCJ0YWJwYW5lbFwiIGRhdGEtcGMtbmFtZT1cInN0ZXBwZXJwYW5lbFwiIFthdHRyLmRhdGEtcGMtaW5kZXhdPVwiaW5kZXhcIiBbYXR0ci5kYXRhLXAtYWN0aXZlXT1cImFjdGl2ZVwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZTsgY29udGV4dDogeyBpbmRleDogaW5kZXgsIGFjdGl2ZTogYWN0aXZlLCBoaWdobGlnaHRlZDogaGlnaGxpZ2h0ZWQsIG9uQ2xpY2s6IG9uQ2xpY2ssIHByZXZDYWxsYmFjazogcHJldkNhbGxiYWNrLCBuZXh0Q2FsbGJhY2s6IG5leHRDYWxsYmFjayB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCIhdGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwcGVyUGFuZWxcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcHBlclBhbmVsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5gLFxuXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcHBlci1jb250ZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLWVsZW1lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtdG9nZ2xlYWJsZS1jb250ZW50XSc6IFwib3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCdcIlxuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbnRlbnQge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcblxuICAgIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkYnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHN0ZXBwZXJQYW5lbDogU3RlcHBlclBhbmVsO1xuXG4gICAgQElucHV0KCkgaW5kZXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGhpZ2hsaWdodGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcHJldkNhbGxiYWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIG5leHRDYWxsYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cblxuLyoqXG4gKiBTdGVwcGVyUGFuZWwgaXMgYSBoZWxwZXIgY29tcG9uZW50IGZvciBTdGVwcGVyIGNvbXBvbmVudC5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwcGVyUGFuZWwnLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gYCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAncC1lbGVtZW50J1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlclBhbmVsIHtcbiAgICAvKipcbiAgICAgKiBPcmllbnRhdGlvbiBvZiB0YWIgaGVhZGVycy5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBOdWxsYWJsZTxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4+O1xuXG4gICAgaGVhZGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgc3RhcnRUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBjb250ZW50VGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgc2VwYXJhdG9yVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgZW5kVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICAodGhpcy50ZW1wbGF0ZXMgYXMgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NlcGFyYXRvcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VwYXJhdG9yVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBTdGVwcGVyIGNvbXBvbmVudCBkaXNwbGF5cyBhIHdpemFyZC1saWtlIHdvcmtmbG93IGJ5IGd1aWRpbmcgdXNlcnMgdGhyb3VnaCB0aGUgbXVsdGktc3RlcCBwcm9ncmVzc2lvbi5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwcGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IHJvbGU9XCJ0YWJsaXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhcnRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGFydFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnOyBlbHNlIHZlcnRpY2FsXCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwicC1zdGVwcGVyLW5hdlwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXN0ZXAgW25nRm9yT2ZdPVwicGFuZWxzXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBbbmdGb3JUcmFja0J5XT1cInRyYWNrQnlGblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tleV09XCJnZXRTdGVwS2V5KHN0ZXAsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXN0ZXBwZXItaGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLWhpZ2hsaWdodCc6IGlzU3RlcEFjdGl2ZShpbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLWRpc2FibGVkJzogaXNJdGVtRGlzYWJsZWQoaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzU3RlcEFjdGl2ZShpbmRleCkgPyAnc3RlcCcgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLXBjLW5hbWVdPVwic3RlcHBlclBhbmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1wLWhpZ2hsaWdodF09XCJpc1N0ZXBBY3RpdmUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1wLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtcGMtaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLXAtYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXJIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldFN0ZXBIZWFkZXJBY3Rpb25JZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwic3RlcC5oZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnZXRTdGVwUHJvcF09XCJnZXRTdGVwUHJvcChzdGVwLCAnaGVhZGVyJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJpc1N0ZXBBY3RpdmUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZ2hsaWdodGVkXT1cImluZGV4IDwgYWN0aXZlU3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCIncC1zdGVwcGVyLWFjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1jb250cm9sc109XCJnZXRTdGVwQ29udGVudElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXN0ZXBwZXJIZWFkZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5kZXggIT09IHN0ZXBwZXJQYW5lbHMubGVuZ3RoIC0gMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zdGVwcGVyU2VwYXJhdG9yIFt0ZW1wbGF0ZV09XCJzdGVwLnNlcGFyYXRvclRlbXBsYXRlXCIgW3NlcGFyYXRvckNsYXNzXT1cIidwLXN0ZXBwZXItc2VwYXJhdG9yJ1wiIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiIFtpbmRleF09XCJpbmRleFwiIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiIFtoaWdobGlnaHRlZF09XCJpbmRleCA8IGFjdGl2ZVN0ZXBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXN0ZXBwZXItcGFuZWxzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtc3RlcCBbbmdGb3JPZl09XCJwYW5lbHNcIiBsZXQtaW5kZXg9XCJpbmRleFwiIFtuZ0ZvclRyYWNrQnldPVwidHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXJDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRTdGVwQ29udGVudElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJzdGVwLmNvbnRlbnRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRlZF09XCJpbmRleCA8IGFjdGl2ZVN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkYnldPVwiZ2V0U3RlcEhlYWRlckFjdGlvbklkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5leHRDYWxsYmFjayk9XCJuZXh0Q2FsbGJhY2soJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldkNhbGxiYWNrKT1cInByZXZDYWxsYmFjaygkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3ZlcnRpY2FsPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtc3RlcCBbbmdGb3JPZl09XCJwYW5lbHNcIiBsZXQtaW5kZXg9XCJpbmRleFwiIFtuZ0ZvclRyYWNrQnldPVwidHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldPVwiZ2V0U3RlcEtleShzdGVwLCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXN0ZXBwZXItcGFuZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLXN0ZXBwZXItcGFuZWwtYWN0aXZlJzogb3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgJiYgaXNTdGVwQWN0aXZlKGluZGV4KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaXNTdGVwQWN0aXZlKGluZGV4KSA/ICdzdGVwJyA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1wYy1uYW1lXT1cIidzdGVwcGVycGFuZWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhLXAtaGlnaGxpZ2h0XT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtcC1kaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtcGMtaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtcC1hY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtc3RlcHBlci1oZWFkZXIgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLWhpZ2hsaWdodCc6IGlzU3RlcEFjdGl2ZShpbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwLWRpc2FibGVkJzogaXNJdGVtRGlzYWJsZWQoaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtc3RlcHBlckhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0U3RlcEhlYWRlckFjdGlvbklkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJzdGVwLmhlYWRlclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBwZXJQYW5lbF09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldFN0ZXBQcm9wXT1cImdldFN0ZXBQcm9wKHN0ZXAsICdoZWFkZXInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlnaGxpZ2h0ZWRdPVwiaW5kZXggPCBhY3RpdmVTdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidwLXN0ZXBwZXItYWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhLWNvbnRyb2xzXT1cImdldFN0ZXBDb250ZW50SWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3Atc3RlcHBlckhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1zdGVwcGVyLXRvZ2dsZWFibGUtY29udGVudFwiIFtAdGFiQ29udGVudF09XCJpc1N0ZXBBY3RpdmUoaW5kZXgpID8geyB2YWx1ZTogJ3Zpc2libGUnLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdHJhbnNpdGlvbk9wdGlvbnMgfSB9IDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0cmFuc2l0aW9uT3B0aW9ucyB9IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5kZXggIT09IHN0ZXBwZXJQYW5lbHMubGVuZ3RoIC0gMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zdGVwcGVyU2VwYXJhdG9yIFt0ZW1wbGF0ZV09XCJzdGVwLnNlcGFyYXRvclRlbXBsYXRlXCIgW3NlcGFyYXRvckNsYXNzXT1cIidwLXN0ZXBwZXItc2VwYXJhdG9yJ1wiIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiIFtpbmRleF09XCJpbmRleFwiIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiIFtoaWdobGlnaHRlZF09XCJpbmRleCA8IGFjdGl2ZVN0ZXBcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXJDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRTdGVwQ29udGVudElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJzdGVwLmNvbnRlbnRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRlZF09XCJpbmRleCA8IGFjdGl2ZVN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkYnldPVwiZ2V0U3RlcEhlYWRlckFjdGlvbklkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5leHRDYWxsYmFjayk9XCJuZXh0Q2FsbGJhY2soJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJldkNhbGxiYWNrKT1cInByZXZDYWxsYmFjaygkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbmRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzdHlsZVVybHM6IFsnLi9zdGVwcGVyLmNzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwZXJdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwZXItdmVydGljYWxdJzogXCJvcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJ1wiXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3RhYkNvbnRlbnQnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndmlzaWJsZSA8PT4gaGlkZGVuJywgW2FuaW1hdGUoJzI1MG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKScpXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKDApKVxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKlxuICAgICAqIEFjdGl2ZSBzdGVwIGluZGV4IG9mIHN0ZXBwZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYWN0aXZlU3RlcDogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCA9IDA7XG4gICAgLyoqXG4gICAgICogT3JpZW50YXRpb24gb2YgdGhlIHN0ZXBwZXIuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgb3JpZW50YXRpb246ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgPSAnaG9yaXpvbnRhbCc7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgc3RlcHMgYXJlIGNsaWNrYWJsZSBvciBub3QuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbGluZWFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVHJhbnNpdGlvbiBvcHRpb25zIG9mIHRoZSBhbmltYXRpb24uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgdHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZyA9ICc0MDBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihTdGVwcGVyUGFuZWwpIHN0ZXBwZXJQYW5lbHM6IFF1ZXJ5TGlzdDxTdGVwcGVyUGFuZWw+IHwgdW5kZWZpbmVkO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAqIEBwYXJhbSB7QWN0aXZlU3RlcENoYW5nZUV2ZW50fSBldmVudCAtIGN1c3RvbSBjaGFuZ2UgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIGFjdGl2ZVN0ZXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBoZWFkZXJUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBzdGFydFRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIHNlcGFyYXRvclRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGVuZFRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIGlkOiBzdHJpbmcgPSBVbmlxdWVDb21wb25lbnRJZCgpO1xuXG4gICAgcGFuZWxzITogU3RlcHBlclBhbmVsW107XG5cbiAgICBpc1N0ZXBBY3RpdmUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVTdGVwID09PSBpbmRleDtcbiAgICB9XG5cbiAgICBnZXRTdGVwUHJvcChzdGVwKSB7XG4gICAgICAgIGlmIChzdGVwPy5oZWFkZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLmhlYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGVwPy5jb250ZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gc3RlcC5jb250ZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZ2V0U3RlcEtleShzdGVwLCBpbmRleCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGVwUHJvcChzdGVwKSB8fCBpbmRleDtcbiAgICB9XG5cbiAgICBnZXRTdGVwSGVhZGVyQWN0aW9uSWQoaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuaWR9XyR7aW5kZXh9X2hlYWRlcl9hY3Rpb25gO1xuICAgIH1cblxuICAgIGdldFN0ZXBDb250ZW50SWQoaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuaWR9XyR7aW5kZXh9X2NvbnRlbnRgO1xuICAgIH1cblxuICAgIHVwZGF0ZUFjdGl2ZVN0ZXAoZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IGluZGV4O1xuXG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcENoYW5nZS5lbWl0KHRoaXMuYWN0aXZlU3RlcCk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIGlmICh0aGlzLmxpbmVhcikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5hY3RpdmVTdGVwKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVN0ZXAoZXZlbnQsIGluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzSXRlbURpc2FibGVkKGluZGV4KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbmVhciAmJiAhdGhpcy5pc1N0ZXBBY3RpdmUoaW5kZXgpO1xuICAgIH1cblxuICAgIHByZXZDYWxsYmFjayhldmVudCwgaW5kZXgpIHtcbiAgICAgICAgaWYgKGluZGV4ICE9PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVN0ZXAoZXZlbnQsIGluZGV4IC0gMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0Q2FsbGJhY2soZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIGlmIChpbmRleCAhPT0gdGhpcy5zdGVwcGVyUGFuZWxzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQWN0aXZlU3RlcChldmVudCwgaW5kZXggKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5wYW5lbHMgPSAodGhpcy5zdGVwcGVyUGFuZWxzIGFzIFF1ZXJ5TGlzdDxTdGVwcGVyUGFuZWw+KS50b0FycmF5KCk7XG4gICAgICAgICh0aGlzLnRlbXBsYXRlcyBhcyBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4pLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTdGVwcGVyLCBTdGVwcGVyUGFuZWwsIFN0ZXBwZXJDb250ZW50LCBTdGVwcGVySGVhZGVyLCBTdGVwcGVyU2VwYXJhdG9yLCBTaGFyZWRNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1N0ZXBwZXIsIFN0ZXBwZXJQYW5lbCwgU3RlcHBlclBhbmVsLCBTdGVwcGVyQ29udGVudCwgU3RlcHBlckhlYWRlciwgU3RlcHBlclNlcGFyYXRvcl1cbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlck1vZHVsZSB7fVxuIl19
|