primeng 18.0.0-beta.1 → 18.0.0-beta.3
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/README.md +1 -1
- package/accordion/accordion.d.ts +148 -23
- package/accordion/public_api.d.ts +1 -1
- package/accordion/style/accordionstyle.d.ts +37 -0
- package/api/translation.d.ts +2 -0
- package/autocomplete/autocomplete.d.ts +2 -3
- package/autocomplete/public_api.d.ts +1 -0
- package/autocomplete/style/autocompletestyle.d.ts +69 -0
- package/avatar/public_api.d.ts +1 -0
- package/avatar/style/avatarstyle.d.ts +25 -0
- package/avatargroup/avatargroup.d.ts +1 -1
- package/avatargroup/public_api.d.ts +1 -0
- package/avatargroup/style/avatargroupstyle.d.ts +14 -0
- package/badge/badge.d.ts +20 -26
- package/badge/public_api.d.ts +1 -0
- package/badge/style/badgestyle.d.ts +17 -0
- package/base/style/basestyle.d.ts +8 -0
- package/blockui/blockui.d.ts +1 -1
- package/blockui/public_api.d.ts +1 -0
- package/blockui/style/blockuistyle.d.ts +17 -0
- package/breadcrumb/breadcrumb.d.ts +0 -1
- package/breadcrumb/public_api.d.ts +1 -0
- package/breadcrumb/style/breadcrumbstyle.d.ts +45 -0
- package/button/button.d.ts +0 -1
- package/button/public_api.d.ts +1 -0
- package/button/style/buttonstyle.d.ts +29 -0
- package/buttongroup/buttongroup.d.ts +1 -1
- package/buttongroup/public_api.d.ts +1 -0
- package/buttongroup/style/buttongroupstyle.d.ts +17 -0
- package/calendar/public_api.d.ts +1 -0
- package/card/public_api.d.ts +1 -0
- package/card/style/cardstyle.d.ts +45 -0
- package/carousel/public_api.d.ts +1 -0
- package/carousel/style/carouselstyle.d.ts +69 -0
- package/cascadeselect/cascadeselect.d.ts +2 -2
- package/cascadeselect/public_api.d.ts +1 -0
- package/cascadeselect/style/cascadeselectstyle.d.ts +65 -0
- package/chart/public_api.d.ts +1 -0
- package/chart/style/chartstyle.d.ts +32 -0
- package/checkbox/public_api.d.ts +1 -0
- package/checkbox/style/checkboxstyle.d.ts +29 -0
- package/chip/public_api.d.ts +1 -0
- package/chip/style/chipstyle.d.ts +33 -0
- package/colorpicker/colorpicker.d.ts +1 -1
- package/colorpicker/public_api.d.ts +1 -0
- package/colorpicker/style/colorpickerstyle.d.ts +45 -0
- package/confirmdialog/confirmdialog.d.ts +1 -1
- package/confirmdialog/public_api.d.ts +1 -0
- package/confirmdialog/style/confirmdialogstyle.d.ts +33 -0
- package/confirmpopup/confirmpopup.d.ts +3 -3
- package/confirmpopup/public_api.d.ts +1 -0
- package/confirmpopup/style/confirmpopupstyle.d.ts +41 -0
- package/contextmenu/contextmenu.d.ts +2 -2
- package/contextmenu/public_api.d.ts +1 -0
- package/contextmenu/style/contextmenustyle.d.ts +54 -0
- package/dataview/dataview.d.ts +1 -1
- package/dataview/public_api.d.ts +1 -0
- package/dataview/style/dataviewstyle.d.ts +37 -0
- package/datepicker/datepicker.d.ts +1 -1
- package/datepicker/public_api.d.ts +1 -0
- package/datepicker/style/datepickerstyle.d.ts +165 -0
- package/dialog/style/dialogstyle.d.ts +49 -0
- package/divider/style/dividerstyle.d.ts +21 -0
- package/dock/public_api.d.ts +1 -0
- package/dock/style/dockstyle.d.ts +41 -0
- package/drawer/public_api.d.ts +1 -0
- package/drawer/style/drawerstyle.d.ts +37 -0
- package/dropdown/public_api.d.ts +1 -0
- package/dropdown/style/dropdownstyle.d.ts +14 -0
- package/dynamicdialog/dynamicdialog.d.ts +5 -0
- package/dynamicdialog/public_api.d.ts +1 -0
- package/dynamicdialog/style/dynamicdialogstyle.d.ts +49 -0
- package/editor/public_api.d.ts +1 -0
- package/editor/style/editorstyle.d.ts +25 -0
- package/esm2022/accordion/accordion.mjs +431 -81
- package/esm2022/accordion/public_api.mjs +2 -2
- package/esm2022/accordion/style/accordionstyle.mjs +39 -2
- package/esm2022/api/primengconfig.mjs +3 -1
- package/esm2022/api/translation.mjs +1 -1
- package/esm2022/autocomplete/autocomplete.mjs +6 -6
- package/esm2022/autocomplete/public_api.mjs +2 -1
- package/esm2022/autocomplete/style/autocompletestyle.mjs +69 -1
- package/esm2022/avatar/avatar.mjs +3 -2
- package/esm2022/avatar/public_api.mjs +2 -1
- package/esm2022/avatar/style/avatarstyle.mjs +25 -1
- package/esm2022/avatargroup/avatargroup.mjs +3 -3
- package/esm2022/avatargroup/public_api.mjs +2 -1
- package/esm2022/avatargroup/style/avatargroupstyle.mjs +14 -1
- package/esm2022/badge/badge.mjs +39 -51
- package/esm2022/badge/public_api.mjs +2 -1
- package/esm2022/badge/style/badgestyle.mjs +17 -1
- package/esm2022/basecomponent/basecomponent.mjs +3 -4
- package/esm2022/blockui/blockui.mjs +3 -3
- package/esm2022/blockui/public_api.mjs +2 -1
- package/esm2022/blockui/style/blockuistyle.mjs +17 -1
- package/esm2022/breadcrumb/breadcrumb.mjs +98 -119
- package/esm2022/breadcrumb/public_api.mjs +2 -1
- package/esm2022/breadcrumb/style/breadcrumbstyle.mjs +45 -1
- package/esm2022/button/button.mjs +3 -7
- package/esm2022/button/public_api.mjs +2 -1
- package/esm2022/button/style/buttonstyle.mjs +29 -1
- package/esm2022/buttongroup/buttongroup.mjs +3 -3
- package/esm2022/buttongroup/public_api.mjs +2 -1
- package/esm2022/buttongroup/style/buttongroupstyle.mjs +17 -1
- package/esm2022/calendar/calendar.mjs +2 -2
- package/esm2022/calendar/public_api.mjs +2 -1
- package/esm2022/card/public_api.mjs +2 -1
- package/esm2022/card/style/cardstyle.mjs +45 -1
- package/esm2022/carousel/public_api.mjs +2 -1
- package/esm2022/carousel/style/carouselstyle.mjs +69 -1
- package/esm2022/cascadeselect/cascadeselect.mjs +15 -19
- package/esm2022/cascadeselect/public_api.mjs +2 -1
- package/esm2022/cascadeselect/style/cascadeselectstyle.mjs +65 -1
- package/esm2022/chart/public_api.mjs +2 -1
- package/esm2022/chart/style/chartstyle.mjs +36 -0
- package/esm2022/checkbox/checkbox.mjs +1 -1
- package/esm2022/checkbox/public_api.mjs +2 -1
- package/esm2022/checkbox/style/checkboxstyle.mjs +29 -1
- package/esm2022/chip/public_api.mjs +2 -1
- package/esm2022/chip/style/chipstyle.mjs +33 -1
- package/esm2022/colorpicker/colorpicker.mjs +3 -3
- package/esm2022/colorpicker/public_api.mjs +2 -1
- package/esm2022/colorpicker/style/colorpickerstyle.mjs +45 -1
- package/esm2022/confirmdialog/confirmdialog.mjs +3 -3
- package/esm2022/confirmdialog/public_api.mjs +2 -1
- package/esm2022/confirmdialog/style/confirmdialogstyle.mjs +33 -1
- package/esm2022/confirmpopup/confirmpopup.mjs +11 -11
- package/esm2022/confirmpopup/public_api.mjs +2 -1
- package/esm2022/confirmpopup/style/confirmpopupstyle.mjs +41 -1
- package/esm2022/contextmenu/contextmenu.mjs +15 -15
- package/esm2022/contextmenu/public_api.mjs +2 -1
- package/esm2022/contextmenu/style/contextmenustyle.mjs +54 -1
- package/esm2022/dataview/dataview.mjs +3 -3
- package/esm2022/dataview/public_api.mjs +2 -1
- package/esm2022/dataview/style/dataviewstyle.mjs +37 -1
- package/esm2022/datepicker/datepicker.mjs +20 -8
- package/esm2022/datepicker/public_api.mjs +2 -1
- package/esm2022/datepicker/style/datepickerstyle.mjs +165 -1
- package/esm2022/dialog/dialog.mjs +21 -16
- package/esm2022/dialog/style/dialogstyle.mjs +49 -1
- package/esm2022/divider/divider.mjs +4 -4
- package/esm2022/divider/style/dividerstyle.mjs +21 -1
- package/esm2022/dock/public_api.mjs +2 -1
- package/esm2022/dock/style/dockstyle.mjs +41 -1
- package/esm2022/drawer/drawer.mjs +17 -13
- package/esm2022/drawer/public_api.mjs +2 -1
- package/esm2022/drawer/style/drawerstyle.mjs +37 -1
- package/esm2022/dropdown/dropdown.mjs +10 -10
- package/esm2022/dropdown/public_api.mjs +2 -1
- package/esm2022/dropdown/style/dropdownstyle.mjs +5 -2
- package/esm2022/dynamicdialog/dynamicdialog.mjs +94 -24
- package/esm2022/dynamicdialog/public_api.mjs +2 -1
- package/esm2022/dynamicdialog/style/dynamicdialogstyle.mjs +49 -1
- package/esm2022/editor/editor.mjs +6 -5
- package/esm2022/editor/public_api.mjs +2 -1
- package/esm2022/editor/style/editorstyle.mjs +25 -1
- package/esm2022/fieldset/fieldset.mjs +11 -21
- package/esm2022/fieldset/public_api.mjs +2 -1
- package/esm2022/fieldset/style/fieldsetstyle.mjs +37 -1
- package/esm2022/fileupload/fileupload.interface.mjs +1 -1
- package/esm2022/fileupload/fileupload.mjs +46 -13
- package/esm2022/fileupload/public_api.mjs +2 -1
- package/esm2022/fileupload/style/fileuploadstyle.mjs +73 -1
- package/esm2022/floatlabel/floatlabel.mjs +18 -13
- package/esm2022/floatlabel/public_api.mjs +2 -1
- package/esm2022/floatlabel/style/floatlabelstyle.mjs +79 -28
- package/esm2022/fluid/public_api.mjs +2 -1
- package/esm2022/fluid/style/fluidstyle.mjs +17 -1
- package/esm2022/galleria/galleria.mjs +113 -124
- package/esm2022/galleria/public_api.mjs +2 -1
- package/esm2022/galleria/style/galleriastyle.mjs +125 -1
- package/esm2022/iconfield/iconfield.mjs +4 -4
- package/esm2022/iconfield/public_api.mjs +2 -1
- package/esm2022/iconfield/style/iconfieldstyle.mjs +26 -17
- package/esm2022/iftalabel/iftalabel.mjs +43 -0
- package/esm2022/iftalabel/primeng-iftalabel.mjs +5 -0
- package/esm2022/iftalabel/public_api.mjs +3 -0
- package/esm2022/iftalabel/style/iftalabelstyle.mjs +96 -0
- package/esm2022/image/image.interface.mjs +1 -1
- package/esm2022/image/image.mjs +86 -42
- package/esm2022/image/public_api.mjs +2 -1
- package/esm2022/image/style/imagestyle.mjs +57 -1
- package/esm2022/inplace/inplace.mjs +3 -3
- package/esm2022/inplace/public_api.mjs +2 -1
- package/esm2022/inplace/style/inplacestyle.mjs +25 -1
- package/esm2022/inputgroup/public_api.mjs +2 -1
- package/esm2022/inputgroup/style/inputgroupstyle.mjs +46 -17
- package/esm2022/inputgroupaddon/inputgroupaddon.mjs +15 -13
- package/esm2022/inputgroupaddon/public_api.mjs +2 -1
- package/esm2022/inputicon/inputicon.mjs +7 -4
- package/esm2022/inputicon/public_api.mjs +2 -1
- package/esm2022/inputmask/inputmask.mjs +2 -2
- package/esm2022/inputmask/public_api.mjs +2 -1
- package/esm2022/inputmask/style/inputmaskstyle.mjs +17 -1
- package/esm2022/inputnumber/inputnumber.mjs +219 -221
- package/esm2022/inputnumber/public_api.mjs +2 -1
- package/esm2022/inputnumber/style/inputnumberstyle.mjs +38 -1
- package/esm2022/inputotp/inputotp.mjs +4 -4
- package/esm2022/inputotp/public_api.mjs +2 -1
- package/esm2022/inputotp/style/inputotpstyle.mjs +21 -1
- package/esm2022/inputswitch/public_api.mjs +2 -1
- package/esm2022/inputtext/inputtext.mjs +11 -2
- package/esm2022/inputtext/public_api.mjs +2 -1
- package/esm2022/inputtext/style/inputtextstyle.mjs +17 -1
- package/esm2022/inputtextarea/public_api.mjs +2 -1
- package/esm2022/inputtextarea/style/textareastyle.mjs +17 -1
- package/esm2022/knob/public_api.mjs +2 -1
- package/esm2022/knob/style/knobstyle.mjs +29 -1
- package/esm2022/listbox/listbox.mjs +45 -20
- package/esm2022/listbox/public_api.mjs +2 -1
- package/esm2022/listbox/style/listboxstyle.mjs +53 -1
- package/esm2022/megamenu/megamenu.mjs +15 -15
- package/esm2022/megamenu/public_api.mjs +2 -1
- package/esm2022/megamenu/style/megamenustyle.mjs +81 -1
- package/esm2022/menu/menu.mjs +5 -3
- package/esm2022/menu/public_api.mjs +2 -1
- package/esm2022/menu/style/menustyle.mjs +57 -1
- package/esm2022/menubar/menubar.mjs +3 -3
- package/esm2022/menubar/public_api.mjs +2 -1
- package/esm2022/menubar/style/menubarstyle.mjs +65 -1
- package/esm2022/message/message.mjs +2 -34
- package/esm2022/message/style/messagestyle.mjs +38 -2
- package/esm2022/messages/public_api.mjs +2 -1
- package/esm2022/metergroup/metergroup.mjs +10 -10
- package/esm2022/metergroup/public_api.mjs +2 -1
- package/esm2022/metergroup/style/metergroupstyle.mjs +45 -1
- package/esm2022/multiselect/multiselect.mjs +683 -677
- package/esm2022/multiselect/public_api.mjs +2 -1
- package/esm2022/multiselect/style/multiselectstyle.mjs +85 -1
- package/esm2022/orderlist/orderlist.mjs +89 -17
- package/esm2022/orderlist/public_api.mjs +2 -1
- package/esm2022/orderlist/style/orderliststyle.mjs +21 -1
- package/esm2022/organizationchart/organizationchart.mjs +5 -5
- package/esm2022/organizationchart/public_api.mjs +2 -1
- package/esm2022/organizationchart/style/organizationchartstyle.mjs +53 -1
- package/esm2022/overlay/overlay.mjs +1 -1
- package/esm2022/overlay/public_api.mjs +2 -1
- package/esm2022/overlaybadge/overlaybadge.mjs +4 -6
- package/esm2022/overlaybadge/public_api.mjs +2 -1
- package/esm2022/overlaypanel/public_api.mjs +2 -1
- package/esm2022/overlaypanel/style/popoverstyle.mjs +21 -1
- package/esm2022/paginator/paginator.mjs +6 -6
- package/esm2022/paginator/public_api.mjs +2 -1
- package/esm2022/paginator/style/paginatorstyle.mjs +81 -1
- package/esm2022/panel/style/panelstyle.mjs +45 -1
- package/esm2022/panelmenu/panelmenu.mjs +30 -22
- package/esm2022/panelmenu/public_api.mjs +2 -1
- package/esm2022/panelmenu/style/panelmenustyle.mjs +83 -2
- package/esm2022/password/password.mjs +5 -3
- package/esm2022/password/public_api.mjs +2 -1
- package/esm2022/password/style/passwordstyle.mjs +45 -1
- package/esm2022/picklist/picklist.mjs +187 -17
- package/esm2022/picklist/public_api.mjs +2 -1
- package/esm2022/picklist/style/pickliststyle.mjs +37 -1
- package/esm2022/popover/public_api.mjs +2 -1
- package/esm2022/progressbar/progressbar.mjs +3 -3
- package/esm2022/progressbar/public_api.mjs +2 -1
- package/esm2022/progressbar/style/progressbarstyle.mjs +25 -1
- package/esm2022/progressspinner/progressspinner.mjs +3 -3
- package/esm2022/progressspinner/public_api.mjs +2 -1
- package/esm2022/progressspinner/style/progressspinnerstyle.mjs +25 -1
- package/esm2022/radiobutton/public_api.mjs +2 -1
- package/esm2022/radiobutton/radiobutton.mjs +4 -4
- package/esm2022/radiobutton/style/radiobuttonstyle.mjs +29 -1
- package/esm2022/rating/public_api.mjs +2 -1
- package/esm2022/rating/rating.mjs +11 -108
- package/esm2022/rating/style/ratingstyle.mjs +29 -1
- package/esm2022/ripple/public_api.mjs +2 -1
- package/esm2022/ripple/ripple.mjs +17 -12
- package/esm2022/ripple/style/ripplestyle.mjs +17 -1
- package/esm2022/scroller/public_api.mjs +2 -1
- package/esm2022/scroller/scroller.mjs +6 -6
- package/esm2022/scroller/style/scrollerstyle.mjs +104 -0
- package/esm2022/scrollpanel/public_api.mjs +2 -1
- package/esm2022/scrollpanel/scrollpanel.mjs +3 -3
- package/esm2022/scrollpanel/style/scrollpanelstyle.mjs +33 -1
- package/esm2022/scrolltop/public_api.mjs +2 -1
- package/esm2022/scrolltop/scrolltop.mjs +21 -16
- package/esm2022/scrolltop/style/scrolltopstyle.mjs +21 -1
- package/esm2022/select/public_api.mjs +2 -1
- package/esm2022/select/select.mjs +17 -25
- package/esm2022/select/style/selectstyle.mjs +86 -2
- package/esm2022/selectbutton/public_api.mjs +2 -1
- package/esm2022/selectbutton/selectbutton.mjs +8 -8
- package/esm2022/selectbutton/style/selectbuttonstyle.mjs +19 -3
- package/esm2022/sidebar/public_api.mjs +2 -1
- package/esm2022/skeleton/public_api.mjs +2 -1
- package/esm2022/skeleton/style/skeletonstyle.mjs +17 -1
- package/esm2022/slider/public_api.mjs +2 -1
- package/esm2022/slider/style/sliderstyle.mjs +25 -1
- package/esm2022/speeddial/public_api.mjs +2 -1
- package/esm2022/speeddial/speeddial.interface.mjs +1 -1
- package/esm2022/speeddial/speeddial.mjs +74 -50
- package/esm2022/speeddial/style/speeddialstyle.mjs +42 -2
- package/esm2022/splitbutton/public_api.mjs +2 -1
- package/esm2022/splitbutton/splitbutton.mjs +25 -12
- package/esm2022/splitbutton/style/splitbuttonstyle.mjs +25 -1
- package/esm2022/splitter/public_api.mjs +2 -1
- package/esm2022/splitter/style/splitterstyle.mjs +25 -1
- package/esm2022/stepper/public_api.mjs +2 -2
- package/esm2022/stepper/stepper.mjs +367 -660
- package/esm2022/stepper/style/stepperstyle.mjs +21 -2
- package/esm2022/steps/public_api.mjs +2 -1
- package/esm2022/steps/style/stepsstyle.mjs +37 -1
- package/esm2022/table/public_api.mjs +2 -1
- package/esm2022/table/style/tablestyle.mjs +899 -0
- package/esm2022/table/table.mjs +46 -42
- package/esm2022/tabmenu/public_api.mjs +2 -1
- package/esm2022/tabmenu/style/tabmenustyle.mjs +42 -2
- package/esm2022/tabmenu/tabmenu.mjs +11 -7
- package/esm2022/tabs/public_api.mjs +6 -2
- package/esm2022/tabs/style/tabsstyle.mjs +49 -1
- package/esm2022/tabs/tab.mjs +171 -0
- package/esm2022/tabs/tablist.mjs +256 -0
- package/esm2022/tabs/tabpanel.mjs +49 -0
- package/esm2022/tabs/tabpanels.mjs +30 -0
- package/esm2022/tabs/tabs.mjs +45 -948
- package/esm2022/tabview/public_api.mjs +2 -1
- package/esm2022/tabview/style/tabsstyle.mjs +49 -1
- package/esm2022/tag/public_api.mjs +2 -1
- package/esm2022/tag/style/tagstyle.mjs +25 -1
- package/esm2022/terminal/public_api.mjs +2 -1
- package/esm2022/terminal/style/terminalstyle.mjs +49 -1
- package/esm2022/textarea/public_api.mjs +2 -1
- package/esm2022/textarea/style/textareastyle.mjs +17 -1
- package/esm2022/textarea/textarea.mjs +1 -2
- package/esm2022/themes/aura/aura.mjs +7 -3
- package/esm2022/themes/aura/floatlabel/index.mjs +29 -1
- package/esm2022/themes/aura/iftalabel/index.mjs +16 -0
- package/esm2022/themes/lara/floatlabel/index.mjs +27 -1
- package/esm2022/themes/lara/iftalabel/index.mjs +16 -0
- package/esm2022/themes/lara/lara.mjs +7 -3
- package/esm2022/themes/nora/floatlabel/index.mjs +27 -1
- package/esm2022/themes/nora/iftalabel/index.mjs +16 -0
- package/esm2022/themes/nora/nora.mjs +7 -3
- package/esm2022/tieredmenu/public_api.mjs +2 -1
- package/esm2022/tieredmenu/style/tieredmenustyle.mjs +61 -1
- package/esm2022/tieredmenu/tieredmenu.mjs +15 -15
- package/esm2022/timeline/public_api.mjs +2 -1
- package/esm2022/timeline/style/timelinestyle.mjs +41 -1
- package/esm2022/timeline/timeline.mjs +54 -68
- package/esm2022/toast/public_api.mjs +2 -1
- package/esm2022/toast/style/toaststyle.mjs +49 -1
- package/esm2022/togglebutton/public_api.mjs +2 -1
- package/esm2022/togglebutton/style/togglebuttonstyle.mjs +26 -2
- package/esm2022/togglebutton/togglebutton.mjs +84 -77
- package/esm2022/toggleswitch/public_api.mjs +2 -1
- package/esm2022/toggleswitch/style/toggleswitchstyle.mjs +32 -5
- package/esm2022/toggleswitch/toggleswitch.mjs +44 -48
- package/esm2022/toolbar/public_api.mjs +2 -1
- package/esm2022/toolbar/style/toolbarstyle.mjs +29 -1
- package/esm2022/tooltip/public_api.mjs +2 -1
- package/esm2022/tooltip/style/tooltipstyle.mjs +25 -1
- package/esm2022/tree/public_api.mjs +2 -1
- package/esm2022/tree/style/treestyle.mjs +69 -1
- package/esm2022/tree/tree.mjs +15 -12
- package/esm2022/treeselect/public_api.mjs +2 -1
- package/esm2022/treeselect/style/treeselectstyle.mjs +53 -1
- package/esm2022/treeselect/treeselect.mjs +9 -58
- package/esm2022/treetable/public_api.mjs +2 -1
- package/esm2022/treetable/style/treetablestyle.mjs +98 -2
- package/esm2022/treetable/treetable.mjs +6 -6
- package/esm2022/utils/inpututils.mjs +7 -0
- package/esm2022/utils/public_api.mjs +3 -2
- package/fesm2022/primeng-accordion.mjs +470 -83
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-api.mjs +2 -0
- package/fesm2022/primeng-api.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +74 -6
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +27 -2
- package/fesm2022/primeng-avatar.mjs.map +1 -1
- package/fesm2022/primeng-avatargroup.mjs +16 -3
- package/fesm2022/primeng-avatargroup.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +55 -51
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -3
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +19 -3
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +142 -119
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +31 -7
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +19 -3
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-calendar.mjs +2 -2
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +45 -1
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +69 -1
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +79 -19
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +36 -2
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +29 -1
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +33 -1
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +47 -3
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +35 -3
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +50 -10
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +68 -15
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +39 -3
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +184 -8
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +69 -16
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +24 -4
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +41 -1
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +53 -13
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +14 -11
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +142 -24
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +29 -4
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +47 -21
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +118 -13
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +96 -40
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-fluid.mjs +17 -1
- package/fesm2022/primeng-fluid.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +237 -124
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +29 -20
- package/fesm2022/primeng-iconfield.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +143 -0
- package/fesm2022/primeng-iftalabel.mjs.map +1 -0
- package/fesm2022/primeng-image.mjs +141 -41
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +27 -3
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +46 -17
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +15 -13
- package/fesm2022/primeng-inputgroupaddon.mjs.map +1 -1
- package/fesm2022/primeng-inputicon.mjs +7 -4
- package/fesm2022/primeng-inputicon.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +18 -2
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +256 -221
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +24 -4
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +1 -1
- package/fesm2022/primeng-inputtext.mjs +27 -2
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +17 -1
- package/fesm2022/primeng-inputtextarea.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +29 -1
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +97 -20
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +95 -15
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +60 -2
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +67 -3
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +39 -35
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +1 -1
- package/fesm2022/primeng-metergroup.mjs +54 -10
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +767 -677
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +108 -16
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +57 -5
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +1 -1
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +4 -6
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +21 -1
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +86 -6
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +45 -1
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +111 -22
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +48 -2
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +222 -16
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +1 -1
- package/fesm2022/primeng-progressbar.mjs +27 -3
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +27 -3
- package/fesm2022/primeng-progressspinner.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +32 -4
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +39 -108
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +33 -12
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +41 -9
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +35 -3
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +41 -16
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +102 -26
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +26 -10
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +1 -1
- package/fesm2022/primeng-skeleton.mjs +17 -1
- package/fesm2022/primeng-skeleton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +25 -1
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +114 -50
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +49 -12
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +25 -1
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +388 -662
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +37 -1
- package/fesm2022/primeng-steps.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +253 -75
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +51 -7
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +494 -872
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +49 -1
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +25 -1
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +49 -1
- package/fesm2022/primeng-terminal.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +17 -2
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-themes-aura.mjs +49 -2
- package/fesm2022/primeng-themes-aura.mjs.map +1 -1
- package/fesm2022/primeng-themes-lara.mjs +47 -2
- package/fesm2022/primeng-themes-lara.mjs.map +1 -1
- package/fesm2022/primeng-themes-nora.mjs +47 -2
- package/fesm2022/primeng-themes-nora.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +75 -15
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +94 -68
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +49 -1
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +109 -78
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +74 -51
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +29 -1
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +25 -1
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +83 -12
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +61 -58
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +102 -6
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-utils.mjs +8 -1
- package/fesm2022/primeng-utils.mjs.map +1 -1
- package/fieldset/fieldset.d.ts +1 -6
- package/fieldset/public_api.d.ts +1 -0
- package/fieldset/style/fieldsetstyle.d.ts +37 -0
- package/fileupload/fileupload.d.ts +4 -1
- package/fileupload/fileupload.interface.d.ts +9 -0
- package/fileupload/public_api.d.ts +1 -0
- package/fileupload/style/fileuploadstyle.d.ts +73 -0
- package/floatlabel/floatlabel.d.ts +6 -1
- package/floatlabel/public_api.d.ts +1 -0
- package/floatlabel/style/floatlabelstyle.d.ts +20 -6
- package/fluid/public_api.d.ts +1 -0
- package/fluid/style/fluidstyle.d.ts +17 -0
- package/galleria/public_api.d.ts +1 -0
- package/galleria/style/galleriastyle.d.ts +125 -0
- package/iconfield/iconfield.d.ts +1 -1
- package/iconfield/public_api.d.ts +1 -0
- package/iconfield/style/iconfieldstyle.d.ts +17 -0
- package/iftalabel/iftalabel.d.ts +20 -0
- package/iftalabel/index.d.ts +5 -0
- package/iftalabel/public_api.d.ts +2 -0
- package/iftalabel/style/iftalabelstyle.d.ts +30 -0
- package/image/image.d.ts +2 -0
- package/image/image.interface.d.ts +32 -0
- package/image/public_api.d.ts +1 -0
- package/image/style/imagestyle.d.ts +57 -0
- package/inplace/public_api.d.ts +1 -0
- package/inplace/style/inplacestyle.d.ts +25 -0
- package/inputgroup/public_api.d.ts +1 -0
- package/inputgroup/style/inputgroupstyle.d.ts +17 -0
- package/inputgroupaddon/inputgroupaddon.d.ts +3 -0
- package/inputgroupaddon/public_api.d.ts +1 -0
- package/inputicon/public_api.d.ts +1 -0
- package/inputmask/public_api.d.ts +1 -0
- package/inputmask/style/inputmaskstyle.d.ts +17 -0
- package/inputnumber/inputnumber.d.ts +2 -1
- package/inputnumber/public_api.d.ts +1 -0
- package/inputnumber/style/inputnumberstyle.d.ts +33 -0
- package/inputotp/inputotp.d.ts +1 -1
- package/inputotp/public_api.d.ts +1 -0
- package/inputotp/style/inputotpstyle.d.ts +21 -0
- package/inputswitch/public_api.d.ts +1 -0
- package/inputtext/inputtext.d.ts +6 -1
- package/inputtext/public_api.d.ts +1 -0
- package/inputtext/style/inputtextstyle.d.ts +17 -0
- package/inputtextarea/public_api.d.ts +1 -0
- package/inputtextarea/style/textareastyle.d.ts +17 -0
- package/knob/public_api.d.ts +1 -0
- package/knob/style/knobstyle.d.ts +29 -0
- package/listbox/listbox.d.ts +14 -6
- package/listbox/public_api.d.ts +1 -0
- package/listbox/style/listboxstyle.d.ts +53 -0
- package/megamenu/megamenu.d.ts +2 -2
- package/megamenu/public_api.d.ts +1 -0
- package/megamenu/style/megamenustyle.d.ts +81 -0
- package/menu/public_api.d.ts +1 -0
- package/menu/style/menustyle.d.ts +57 -0
- package/menubar/public_api.d.ts +1 -0
- package/menubar/style/menubarstyle.d.ts +65 -0
- package/message/style/messagestyle.d.ts +37 -0
- package/messages/public_api.d.ts +1 -0
- package/metergroup/metergroup.d.ts +2 -2
- package/metergroup/public_api.d.ts +1 -0
- package/metergroup/style/metergroupstyle.d.ts +45 -0
- package/multiselect/multiselect.d.ts +5 -6
- package/multiselect/public_api.d.ts +1 -0
- package/multiselect/style/multiselectstyle.d.ts +85 -0
- package/orderlist/orderlist.d.ts +28 -1
- package/orderlist/public_api.d.ts +1 -0
- package/orderlist/style/orderliststyle.d.ts +21 -0
- package/organizationchart/organizationchart.d.ts +1 -1
- package/organizationchart/public_api.d.ts +1 -0
- package/organizationchart/style/organizationchartstyle.d.ts +53 -0
- package/overlay/public_api.d.ts +1 -0
- package/overlaybadge/overlaybadge.d.ts +2 -2
- package/overlaybadge/public_api.d.ts +1 -0
- package/overlaypanel/public_api.d.ts +1 -0
- package/overlaypanel/style/popoverstyle.d.ts +21 -0
- package/package.json +371 -365
- package/paginator/public_api.d.ts +1 -0
- package/paginator/style/paginatorstyle.d.ts +81 -0
- package/panel/style/panelstyle.d.ts +43 -0
- package/panelmenu/panelmenu.d.ts +4 -4
- package/panelmenu/public_api.d.ts +1 -0
- package/panelmenu/style/panelmenustyle.d.ts +82 -0
- package/password/password.d.ts +1 -1
- package/password/public_api.d.ts +1 -0
- package/password/style/passwordstyle.d.ts +45 -0
- package/picklist/picklist.d.ts +52 -5
- package/picklist/public_api.d.ts +1 -0
- package/picklist/style/pickliststyle.d.ts +37 -0
- package/popover/public_api.d.ts +1 -0
- package/progressbar/progressbar.d.ts +1 -1
- package/progressbar/public_api.d.ts +1 -0
- package/progressbar/style/progressbarstyle.d.ts +25 -0
- package/progressspinner/progressspinner.d.ts +1 -1
- package/progressspinner/public_api.d.ts +1 -0
- package/progressspinner/style/progressspinnerstyle.d.ts +25 -0
- package/radiobutton/public_api.d.ts +1 -0
- package/radiobutton/radiobutton.d.ts +1 -1
- package/radiobutton/style/radiobuttonstyle.d.ts +29 -0
- package/rating/public_api.d.ts +1 -0
- package/rating/rating.d.ts +1 -20
- package/rating/style/ratingstyle.d.ts +29 -0
- package/ripple/public_api.d.ts +1 -0
- package/ripple/ripple.d.ts +1 -0
- package/ripple/style/ripplestyle.d.ts +17 -0
- package/scroller/public_api.d.ts +1 -0
- package/scroller/scroller.d.ts +2 -2
- package/scroller/style/scrollerstyle.d.ts +43 -0
- package/scrollpanel/public_api.d.ts +1 -0
- package/scrollpanel/scrollpanel.d.ts +1 -1
- package/scrollpanel/style/scrollpanelstyle.d.ts +33 -0
- package/scrolltop/public_api.d.ts +1 -0
- package/scrolltop/scrolltop.d.ts +1 -1
- package/scrolltop/style/scrolltopstyle.d.ts +21 -0
- package/select/public_api.d.ts +1 -0
- package/select/style/selectstyle.d.ts +85 -0
- package/selectbutton/public_api.d.ts +1 -0
- package/selectbutton/selectbutton.d.ts +1 -1
- package/selectbutton/style/selectbuttonstyle.d.ts +17 -0
- package/sidebar/public_api.d.ts +1 -0
- package/skeleton/public_api.d.ts +1 -0
- package/skeleton/style/skeletonstyle.d.ts +17 -0
- package/slider/public_api.d.ts +1 -0
- package/slider/style/sliderstyle.d.ts +25 -0
- package/speeddial/public_api.d.ts +1 -0
- package/speeddial/speeddial.d.ts +25 -2
- package/speeddial/speeddial.interface.d.ts +17 -1
- package/speeddial/style/speeddialstyle.d.ts +41 -0
- package/splitbutton/public_api.d.ts +1 -0
- package/splitbutton/splitbutton.d.ts +6 -1
- package/splitbutton/style/splitbuttonstyle.d.ts +25 -0
- package/splitter/public_api.d.ts +1 -0
- package/splitter/style/splitterstyle.d.ts +25 -0
- package/stepper/public_api.d.ts +1 -1
- package/stepper/stepper.d.ts +140 -88
- package/stepper/style/stepperstyle.d.ts +21 -0
- package/steps/public_api.d.ts +1 -0
- package/steps/style/stepsstyle.d.ts +37 -0
- package/table/public_api.d.ts +1 -0
- package/table/style/tablestyle.d.ts +327 -0
- package/table/table.d.ts +5 -5
- package/tabmenu/public_api.d.ts +1 -0
- package/tabmenu/style/tabmenustyle.d.ts +41 -0
- package/tabmenu/tabmenu.d.ts +2 -1
- package/tabs/public_api.d.ts +5 -1
- package/tabs/style/tabsstyle.d.ts +49 -0
- package/tabs/tab.d.ts +47 -0
- package/tabs/tablist.d.ts +51 -0
- package/tabs/tabpanel.d.ts +20 -0
- package/tabs/tabpanels.d.ts +10 -0
- package/tabs/tabs.d.ts +31 -237
- package/tabview/public_api.d.ts +1 -0
- package/tabview/style/tabsstyle.d.ts +49 -0
- package/tag/public_api.d.ts +1 -0
- package/tag/style/tagstyle.d.ts +25 -0
- package/terminal/public_api.d.ts +1 -0
- package/terminal/style/terminalstyle.d.ts +49 -0
- package/textarea/public_api.d.ts +1 -0
- package/textarea/style/textareastyle.d.ts +17 -0
- package/themes/aura/aura.d.ts +45 -0
- package/themes/aura/floatlabel/index.d.ts +28 -0
- package/themes/aura/iftalabel/index.d.ts +16 -0
- package/themes/lara/floatlabel/index.d.ts +26 -0
- package/themes/lara/iftalabel/index.d.ts +16 -0
- package/themes/lara/lara.d.ts +43 -0
- package/themes/nora/floatlabel/index.d.ts +26 -0
- package/themes/nora/iftalabel/index.d.ts +16 -0
- package/themes/nora/nora.d.ts +43 -0
- package/tieredmenu/public_api.d.ts +1 -0
- package/tieredmenu/style/tieredmenustyle.d.ts +61 -0
- package/tieredmenu/tieredmenu.d.ts +2 -2
- package/timeline/public_api.d.ts +1 -0
- package/timeline/style/timelinestyle.d.ts +41 -0
- package/timeline/timeline.d.ts +1 -0
- package/toast/public_api.d.ts +1 -0
- package/toast/style/toaststyle.d.ts +49 -0
- package/togglebutton/public_api.d.ts +1 -0
- package/togglebutton/style/togglebuttonstyle.d.ts +25 -0
- package/togglebutton/togglebutton.d.ts +6 -7
- package/toggleswitch/public_api.d.ts +1 -0
- package/toggleswitch/style/toggleswitchstyle.d.ts +25 -0
- package/toolbar/public_api.d.ts +1 -0
- package/toolbar/style/toolbarstyle.d.ts +29 -0
- package/tooltip/public_api.d.ts +1 -0
- package/tooltip/style/tooltipstyle.d.ts +25 -0
- package/tree/public_api.d.ts +1 -0
- package/tree/style/treestyle.d.ts +69 -0
- package/tree/tree.d.ts +1 -0
- package/treeselect/public_api.d.ts +1 -0
- package/treeselect/style/treeselectstyle.d.ts +53 -0
- package/treeselect/treeselect.d.ts +1 -1
- package/treetable/public_api.d.ts +1 -0
- package/treetable/style/treetablestyle.d.ts +97 -0
- package/treetable/treetable.d.ts +1 -1
- package/utils/inpututils.d.ts +2 -0
- package/utils/public_api.d.ts +2 -1
- package/accordion/accordion.interface.d.ts +0 -49
- package/esm2022/accordion/accordion.interface.mjs +0 -2
- package/esm2022/scroller/style/virtualscrollerstyle.mjs +0 -72
- package/esm2022/stepper/stepper.interface.mjs +0 -2
- package/esm2022/table/style/datatablestyle.mjs +0 -725
- package/esm2022/tabs/tabs.interface.mjs +0 -2
- package/scroller/style/virtualscrollerstyle.d.ts +0 -10
- package/stepper/stepper.interface.d.ts +0 -26
- package/table/style/datatablestyle.d.ts +0 -124
- package/tabs/tabs.interface.d.ts +0 -49
@@ -1,554 +1,303 @@
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, ContentChildren,
|
3
|
-
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
4
|
-
import { UniqueComponentId } from 'primeng/utils';
|
5
|
-
import { animate, state, style, transition, trigger } from '@angular/animations';
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, contentChild, ContentChild, ContentChildren, contentChildren, effect, forwardRef, inject, input, model, NgModule, signal, ViewEncapsulation, } from '@angular/core';
|
6
3
|
import { BaseComponent } from 'primeng/basecomponent';
|
4
|
+
import { ObjectUtils, transformToBoolean, UniqueComponentId } from 'primeng/utils';
|
7
5
|
import { StepperStyle } from './style/stepperstyle';
|
6
|
+
import { DomHandler } from 'primeng/dom';
|
7
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
8
|
+
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
8
9
|
import * as i0 from "@angular/core";
|
9
10
|
import * as i1 from "@angular/common";
|
10
|
-
export class
|
11
|
-
|
12
|
-
template;
|
13
|
-
stepperPanel;
|
14
|
-
index;
|
15
|
-
disabled;
|
16
|
-
active;
|
17
|
-
highlighted;
|
18
|
-
getStepProp;
|
19
|
-
ariaControls;
|
20
|
-
onClick = new EventEmitter();
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperHeader, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", 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" }, ngImport: i0, template: `
|
23
|
-
<ng-container *ngIf="template; else buttonRef">
|
24
|
-
<ng-container
|
25
|
-
*ngTemplateOutlet="
|
26
|
-
template;
|
27
|
-
context: {
|
28
|
-
index: index,
|
29
|
-
active: active,
|
30
|
-
highlighted: highlighted,
|
31
|
-
class: 'p-stepper-action',
|
32
|
-
headerClass: 'p-stepper-action',
|
33
|
-
numberClass: 'p-stepper-number',
|
34
|
-
titleClass: 'p-stepper-title',
|
35
|
-
onClick: onClick,
|
36
|
-
}
|
37
|
-
"
|
38
|
-
></ng-container>
|
39
|
-
</ng-container>
|
40
|
-
<ng-template #buttonRef>
|
41
|
-
<p-button
|
42
|
-
[id]="id"
|
43
|
-
class="p-step-header"
|
44
|
-
role="tab"
|
45
|
-
[tabindex]="disabled ? -1 : undefined"
|
46
|
-
[aria-controls]="ariaControls"
|
47
|
-
(click)="onClick.emit($event, index)"
|
48
|
-
>
|
49
|
-
<span class="p-step-number">{{ index + 1 }}</span>
|
50
|
-
<span class="p-step-title">{{ getStepProp }}</span>
|
51
|
-
</p-button>
|
52
|
-
</ng-template>
|
53
|
-
`, 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"] }] });
|
11
|
+
export class StepList extends BaseComponent {
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepList, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: StepList, isStandalone: true, selector: "p-step-list", host: { properties: { "class.p-steplist": "true", "class.p-component": "true" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
54
14
|
}
|
55
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type:
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepList, decorators: [{
|
56
16
|
type: Component,
|
57
17
|
args: [{
|
58
|
-
selector: 'p-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
class: 'p-stepper-action',
|
69
|
-
headerClass: 'p-stepper-action',
|
70
|
-
numberClass: 'p-stepper-number',
|
71
|
-
titleClass: 'p-stepper-title',
|
72
|
-
onClick: onClick,
|
73
|
-
}
|
74
|
-
"
|
75
|
-
></ng-container>
|
76
|
-
</ng-container>
|
77
|
-
<ng-template #buttonRef>
|
78
|
-
<p-button
|
79
|
-
[id]="id"
|
80
|
-
class="p-step-header"
|
81
|
-
role="tab"
|
82
|
-
[tabindex]="disabled ? -1 : undefined"
|
83
|
-
[aria-controls]="ariaControls"
|
84
|
-
(click)="onClick.emit($event, index)"
|
85
|
-
>
|
86
|
-
<span class="p-step-number">{{ index + 1 }}</span>
|
87
|
-
<span class="p-step-title">{{ getStepProp }}</span>
|
88
|
-
</p-button>
|
89
|
-
</ng-template>
|
90
|
-
`,
|
18
|
+
selector: 'p-step-list',
|
19
|
+
standalone: true,
|
20
|
+
imports: [CommonModule],
|
21
|
+
template: ` <ng-content></ng-content>`,
|
22
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
23
|
+
encapsulation: ViewEncapsulation.None,
|
24
|
+
host: {
|
25
|
+
'[class.p-steplist]': 'true',
|
26
|
+
'[class.p-component]': 'true',
|
27
|
+
},
|
91
28
|
}]
|
92
|
-
}]
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
}], stepperPanel: [{
|
97
|
-
type: Input
|
98
|
-
}], index: [{
|
99
|
-
type: Input
|
100
|
-
}], disabled: [{
|
101
|
-
type: Input
|
102
|
-
}], active: [{
|
103
|
-
type: Input
|
104
|
-
}], highlighted: [{
|
105
|
-
type: Input
|
106
|
-
}], getStepProp: [{
|
107
|
-
type: Input
|
108
|
-
}], ariaControls: [{
|
109
|
-
type: Input
|
110
|
-
}], onClick: [{
|
111
|
-
type: Output
|
112
|
-
}] } });
|
113
|
-
export class StepperSeparator {
|
114
|
-
template;
|
115
|
-
separatorClass;
|
116
|
-
stepperPanel;
|
117
|
-
index;
|
118
|
-
active;
|
119
|
-
highlighted;
|
120
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
121
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", 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: `
|
122
|
-
<ng-container *ngIf="template; else span">
|
123
|
-
<ng-container
|
124
|
-
*ngTemplateOutlet="template; context: { index: index, active: active, highlighted: highlighted, class: separatorClass }"
|
125
|
-
></ng-container>
|
126
|
-
</ng-container>
|
127
|
-
<ng-template #span>
|
128
|
-
<span [class]="separatorClass" aria-hidden="true"></span>
|
129
|
-
</ng-template>
|
130
|
-
`, 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"] }] });
|
29
|
+
}] });
|
30
|
+
export class StepperSeparator extends BaseComponent {
|
31
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperSeparator, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
32
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: StepperSeparator, isStandalone: true, selector: "p-stepper-separator", host: { properties: { "class.p-stepper-separator": "true", "class.p-component": "true" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
131
33
|
}
|
132
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperSeparator, decorators: [{
|
133
35
|
type: Component,
|
134
36
|
args: [{
|
135
|
-
selector: 'p-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
</ng-container>
|
142
|
-
<ng-template #span>
|
143
|
-
<span [class]="separatorClass" aria-hidden="true"></span>
|
144
|
-
</ng-template>
|
145
|
-
`,
|
37
|
+
selector: 'p-stepper-separator',
|
38
|
+
standalone: true,
|
39
|
+
imports: [CommonModule],
|
40
|
+
template: ` <ng-content></ng-content>`,
|
41
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
42
|
+
encapsulation: ViewEncapsulation.None,
|
146
43
|
host: {
|
147
|
-
class
|
44
|
+
'[class.p-stepper-separator]': 'true',
|
45
|
+
'[class.p-component]': 'true',
|
148
46
|
},
|
149
47
|
}]
|
150
|
-
}]
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
static
|
177
|
-
|
178
|
-
role="tabpanel"
|
179
|
-
data-pc-name="stepperpanel"
|
180
|
-
[attr.data-pc-index]="index"
|
181
|
-
[attr.data-p-active]="active"
|
182
|
-
[attr.aria-labelledby]="ariaLabelledby"
|
183
|
-
>
|
184
|
-
<ng-container *ngIf="template">
|
185
|
-
<ng-container
|
186
|
-
*ngTemplateOutlet="
|
187
|
-
template;
|
188
|
-
context: {
|
189
|
-
index: index,
|
190
|
-
active: active,
|
191
|
-
highlighted: highlighted,
|
192
|
-
onClick: onClick,
|
193
|
-
prevCallback: prevCallback,
|
194
|
-
nextCallback: nextCallback,
|
195
|
-
}
|
196
|
-
"
|
197
|
-
></ng-container>
|
198
|
-
</ng-container>
|
199
|
-
<ng-template *ngIf="!template">
|
200
|
-
<ng-container *ngIf="stepperPanel">
|
201
|
-
<ng-container *ngTemplateOutlet="stepperPanel"></ng-container>
|
202
|
-
</ng-container>
|
203
|
-
</ng-template>
|
204
|
-
</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"] }] });
|
48
|
+
}] });
|
49
|
+
/**
|
50
|
+
* StepItem is a helper component for Stepper component used in vertical orientation.
|
51
|
+
* @group Components
|
52
|
+
*/
|
53
|
+
export class StepItem extends BaseComponent {
|
54
|
+
pcStepper = inject(forwardRef(() => Stepper));
|
55
|
+
/**
|
56
|
+
* Value of step.
|
57
|
+
* @type {<number | undefined>}
|
58
|
+
* @defaultValue undefined
|
59
|
+
* @group Props
|
60
|
+
*/
|
61
|
+
value = model();
|
62
|
+
isActive = computed(() => this.pcStepper.value() === this.value());
|
63
|
+
step = contentChild(Step);
|
64
|
+
stepPanel = contentChild(StepPanel);
|
65
|
+
constructor() {
|
66
|
+
super();
|
67
|
+
effect(() => {
|
68
|
+
this.step().value.set(this.value());
|
69
|
+
}, { allowSignalWrites: true });
|
70
|
+
effect(() => {
|
71
|
+
this.stepPanel().value.set(this.value());
|
72
|
+
}, { allowSignalWrites: true });
|
73
|
+
}
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
75
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: StepItem, isStandalone: true, selector: "p-step-item", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.p-stepitem": "true", "class.p-component": "true", "attr.data-p-active": "isActive()" } }, queries: [{ propertyName: "step", first: true, predicate: Step, descendants: true, isSignal: true }, { propertyName: "stepPanel", first: true, predicate: StepPanel, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
205
76
|
}
|
206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type:
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepItem, decorators: [{
|
207
78
|
type: Component,
|
208
79
|
args: [{
|
209
|
-
selector: 'p-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
[attr.data-p-active]="active"
|
216
|
-
[attr.aria-labelledby]="ariaLabelledby"
|
217
|
-
>
|
218
|
-
<ng-container *ngIf="template">
|
219
|
-
<ng-container
|
220
|
-
*ngTemplateOutlet="
|
221
|
-
template;
|
222
|
-
context: {
|
223
|
-
index: index,
|
224
|
-
active: active,
|
225
|
-
highlighted: highlighted,
|
226
|
-
onClick: onClick,
|
227
|
-
prevCallback: prevCallback,
|
228
|
-
nextCallback: nextCallback,
|
229
|
-
}
|
230
|
-
"
|
231
|
-
></ng-container>
|
232
|
-
</ng-container>
|
233
|
-
<ng-template *ngIf="!template">
|
234
|
-
<ng-container *ngIf="stepperPanel">
|
235
|
-
<ng-container *ngTemplateOutlet="stepperPanel"></ng-container>
|
236
|
-
</ng-container>
|
237
|
-
</ng-template>
|
238
|
-
</div>`,
|
80
|
+
selector: 'p-step-item',
|
81
|
+
standalone: true,
|
82
|
+
imports: [CommonModule],
|
83
|
+
template: ` <ng-content></ng-content>`,
|
84
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
85
|
+
encapsulation: ViewEncapsulation.None,
|
239
86
|
host: {
|
240
|
-
'[class.p-
|
241
|
-
'[class.p-
|
242
|
-
'[
|
87
|
+
'[class.p-stepitem]': 'true',
|
88
|
+
'[class.p-component]': 'true',
|
89
|
+
'[attr.data-p-active]': 'isActive()',
|
243
90
|
},
|
244
91
|
}]
|
245
|
-
}],
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
92
|
+
}], ctorParameters: () => [] });
|
93
|
+
/**
|
94
|
+
* Step is a helper component for Stepper component.
|
95
|
+
* @group Components
|
96
|
+
*/
|
97
|
+
export class Step extends BaseComponent {
|
98
|
+
pcStepper = inject(forwardRef(() => Stepper));
|
99
|
+
/**
|
100
|
+
* Active value of stepper.
|
101
|
+
* @type {number}
|
102
|
+
* @defaultValue undefined
|
103
|
+
* @group Props
|
104
|
+
*/
|
105
|
+
value = model();
|
106
|
+
/**
|
107
|
+
* Whether the step is disabled.
|
108
|
+
* @type {boolean}
|
109
|
+
* @defaultValue false
|
110
|
+
* @group Props
|
111
|
+
*/
|
112
|
+
disabled = input(false, {
|
113
|
+
transform: (v) => transformToBoolean(v),
|
114
|
+
});
|
115
|
+
active = computed(() => this.pcStepper.isStepActive(this.value()));
|
116
|
+
isStepDisabled = computed(() => !this.active() && (this.pcStepper.linear() || this.disabled()));
|
117
|
+
id = computed(() => `${this.pcStepper.id()}_step_${this.value()}`);
|
118
|
+
ariaControls = computed(() => `${this.pcStepper.id()}_steppanel_${this.value()}`);
|
119
|
+
isSeparatorVisible = computed(() => {
|
120
|
+
if (this.pcStepper.stepList()) {
|
121
|
+
const index = ObjectUtils.findIndexInList(this.el.nativeElement, this.pcStepper.stepList().el.nativeElement.children);
|
122
|
+
const stepLen = DomHandler.find(this.pcStepper.stepList().el.nativeElement, '[data-pc-name="step"]').length;
|
123
|
+
return index !== stepLen - 1;
|
124
|
+
}
|
125
|
+
});
|
126
|
+
/**
|
127
|
+
* Content template.
|
128
|
+
* @type {TemplateRef<StepContentTemplateContext>}
|
129
|
+
* @group Templates
|
130
|
+
*/
|
273
131
|
contentTemplate;
|
274
|
-
|
275
|
-
endTemplate;
|
132
|
+
templates;
|
276
133
|
ngAfterContentInit() {
|
277
|
-
this.templates
|
134
|
+
this.templates?.forEach((item) => {
|
278
135
|
switch (item.getType()) {
|
279
|
-
case 'header':
|
280
|
-
this.headerTemplate = item.template;
|
281
|
-
break;
|
282
136
|
case 'content':
|
283
137
|
this.contentTemplate = item.template;
|
284
138
|
break;
|
285
|
-
case 'separator':
|
286
|
-
this.separatorTemplate = item.template;
|
287
|
-
break;
|
288
139
|
}
|
289
140
|
});
|
290
141
|
}
|
291
|
-
|
292
|
-
|
142
|
+
onStepClick() {
|
143
|
+
this.pcStepper.updateValue(this.value());
|
144
|
+
}
|
145
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: Step, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
146
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: Step, isStandalone: true, selector: "p-step", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.p-step": "true", "class.p-step-active": "active()", "class.p-disabled": "isStepDisabled()", "class.p-component": "true", "attr.aria-current": "active() ? \"step\" : undefined", "attr.role": "\"presentation\"", "attr.data-p-active": "active()", "attr.data-p-disabled": "isStepDisabled()", "attr.data-pc-name": "\"step\"" } }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ["content"], descendants: true }, { propertyName: "templates", predicate: PrimeTemplate }], usesInheritance: true, ngImport: i0, template: `
|
147
|
+
@if (!contentTemplate) {
|
148
|
+
<button
|
149
|
+
[attr.id]="id()"
|
150
|
+
class="p-step-header"
|
151
|
+
[attr.role]="'tab'"
|
152
|
+
[tabindex]="isStepDisabled() ? -1 : undefined"
|
153
|
+
[attr.aria-controls]="ariaControls()"
|
154
|
+
[disabled]="isStepDisabled()"
|
155
|
+
(click)="onStepClick()"
|
156
|
+
>
|
157
|
+
<span class="p-step-number">{{ value() }}</span>
|
158
|
+
<span class="p-step-title">
|
159
|
+
<ng-content></ng-content>
|
160
|
+
</span>
|
161
|
+
</button>
|
162
|
+
@if (isSeparatorVisible()) {
|
163
|
+
<p-stepper-separator />
|
164
|
+
}
|
165
|
+
} @else {
|
166
|
+
<ng-container
|
167
|
+
*ngTemplateOutlet="contentTemplate; context: { activateCallback: onStepClick.bind(this), value: value(), active: active() }"
|
168
|
+
></ng-container>
|
169
|
+
@if (isSeparatorVisible()) {
|
170
|
+
<p-stepper-separator />
|
171
|
+
}
|
172
|
+
}
|
173
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StepperSeparator, selector: "p-stepper-separator" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
293
174
|
}
|
294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type:
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: Step, decorators: [{
|
295
176
|
type: Component,
|
296
177
|
args: [{
|
297
|
-
selector: 'p-
|
298
|
-
|
178
|
+
selector: 'p-step',
|
179
|
+
standalone: true,
|
180
|
+
imports: [CommonModule, StepperSeparator],
|
181
|
+
template: `
|
182
|
+
@if (!contentTemplate) {
|
183
|
+
<button
|
184
|
+
[attr.id]="id()"
|
185
|
+
class="p-step-header"
|
186
|
+
[attr.role]="'tab'"
|
187
|
+
[tabindex]="isStepDisabled() ? -1 : undefined"
|
188
|
+
[attr.aria-controls]="ariaControls()"
|
189
|
+
[disabled]="isStepDisabled()"
|
190
|
+
(click)="onStepClick()"
|
191
|
+
>
|
192
|
+
<span class="p-step-number">{{ value() }}</span>
|
193
|
+
<span class="p-step-title">
|
194
|
+
<ng-content></ng-content>
|
195
|
+
</span>
|
196
|
+
</button>
|
197
|
+
@if (isSeparatorVisible()) {
|
198
|
+
<p-stepper-separator />
|
199
|
+
}
|
200
|
+
} @else {
|
201
|
+
<ng-container
|
202
|
+
*ngTemplateOutlet="contentTemplate; context: { activateCallback: onStepClick.bind(this), value: value(), active: active() }"
|
203
|
+
></ng-container>
|
204
|
+
@if (isSeparatorVisible()) {
|
205
|
+
<p-stepper-separator />
|
206
|
+
}
|
207
|
+
}
|
208
|
+
`,
|
209
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
210
|
+
encapsulation: ViewEncapsulation.None,
|
211
|
+
host: {
|
212
|
+
'[class.p-step]': 'true',
|
213
|
+
'[class.p-step-active]': 'active()',
|
214
|
+
'[class.p-disabled]': 'isStepDisabled()',
|
215
|
+
'[class.p-component]': 'true',
|
216
|
+
'[attr.aria-current]': 'active() ? "step" : undefined',
|
217
|
+
'[attr.role]': '"presentation"',
|
218
|
+
'[attr.data-p-active]': 'active()',
|
219
|
+
'[attr.data-p-disabled]': 'isStepDisabled()',
|
220
|
+
'[attr.data-pc-name]': '"step"',
|
221
|
+
},
|
299
222
|
}]
|
300
|
-
}], propDecorators: {
|
301
|
-
type:
|
223
|
+
}], propDecorators: { contentTemplate: [{
|
224
|
+
type: ContentChild,
|
225
|
+
args: ['content']
|
302
226
|
}], templates: [{
|
303
227
|
type: ContentChildren,
|
304
228
|
args: [PrimeTemplate]
|
305
229
|
}] } });
|
306
230
|
/**
|
307
|
-
*
|
231
|
+
* StepPanel is a helper component for Stepper component.
|
308
232
|
* @group Components
|
309
233
|
*/
|
310
|
-
export class
|
234
|
+
export class StepPanel extends BaseComponent {
|
235
|
+
pcStepper = inject(forwardRef(() => Stepper));
|
236
|
+
transitionOptions = computed(() => this.pcStepper.transitionOptions());
|
311
237
|
/**
|
312
|
-
* Active
|
238
|
+
* Active value of stepper.
|
239
|
+
* @type {number}
|
240
|
+
* @defaultValue undefined
|
313
241
|
* @group Props
|
314
242
|
*/
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
243
|
+
value = model(undefined);
|
244
|
+
active = computed(() => this.pcStepper.value() === this.value());
|
245
|
+
ariaControls = computed(() => `${this.pcStepper.id()}_step_${this.value()}`);
|
246
|
+
id = computed(() => `${this.pcStepper.id()}_steppanel_${this.value()}`);
|
247
|
+
isVertical = computed(() => this.pcStepper.stepItems().length > 0);
|
248
|
+
isSeparatorVisible = computed(() => {
|
249
|
+
if (this.pcStepper.stepItems()) {
|
250
|
+
const stepLen = this.pcStepper.stepItems().length;
|
251
|
+
const stepPanelElements = DomHandler.find(this.pcStepper.el.nativeElement, '[data-pc-name="steppanel"]');
|
252
|
+
const index = ObjectUtils.findIndexInList(this.el.nativeElement, stepPanelElements);
|
253
|
+
return index !== stepLen - 1;
|
254
|
+
}
|
255
|
+
});
|
321
256
|
/**
|
322
|
-
*
|
323
|
-
* @
|
257
|
+
* Content template.
|
258
|
+
* @type {TemplateRef<StepPanelContentTemplateContext>}
|
259
|
+
* @group Templates
|
324
260
|
*/
|
325
|
-
|
326
|
-
/**
|
327
|
-
* Transition options of the animation.
|
328
|
-
* @group Props
|
329
|
-
*/
|
330
|
-
transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';
|
331
|
-
stepperPanels;
|
261
|
+
contentTemplate;
|
332
262
|
templates;
|
333
|
-
onClick = new EventEmitter();
|
334
|
-
/**
|
335
|
-
* Emitted when the value changes.
|
336
|
-
* @param {ActiveStepChangeEvent} event - custom change event.
|
337
|
-
* @group Emits
|
338
|
-
*/
|
339
|
-
activeStepChange = new EventEmitter();
|
340
|
-
_componentStyle = inject(StepperStyle);
|
341
|
-
headerTemplate;
|
342
|
-
startTemplate;
|
343
|
-
separatorTemplate;
|
344
|
-
endTemplate;
|
345
|
-
id = UniqueComponentId();
|
346
|
-
panels;
|
347
|
-
isStepActive(index) {
|
348
|
-
return this.activeStep === index;
|
349
|
-
}
|
350
|
-
getStepProp(step) {
|
351
|
-
if (step?.header) {
|
352
|
-
return step.header;
|
353
|
-
}
|
354
|
-
if (step?.content) {
|
355
|
-
return step.content;
|
356
|
-
}
|
357
|
-
return undefined;
|
358
|
-
}
|
359
|
-
getStepKey(step, index) {
|
360
|
-
return this.getStepProp(step) || index;
|
361
|
-
}
|
362
|
-
getStepHeaderActionId(index) {
|
363
|
-
return `${this.id}_${index}_header_action`;
|
364
|
-
}
|
365
|
-
getStepContentId(index) {
|
366
|
-
return `${this.id}_${index}_content`;
|
367
|
-
}
|
368
|
-
updateActiveStep(event, index) {
|
369
|
-
this.activeStep = index;
|
370
|
-
this.activeStepChange.emit(this.activeStep);
|
371
|
-
}
|
372
|
-
onItemClick(event, index) {
|
373
|
-
if (this.linear) {
|
374
|
-
event.preventDefault();
|
375
|
-
return;
|
376
|
-
}
|
377
|
-
if (index !== this.activeStep) {
|
378
|
-
this.updateActiveStep(event, index);
|
379
|
-
}
|
380
|
-
}
|
381
|
-
isItemDisabled(index) {
|
382
|
-
return this.linear && !this.isStepActive(index);
|
383
|
-
}
|
384
|
-
prevCallback(event, index) {
|
385
|
-
if (index !== 0) {
|
386
|
-
this.updateActiveStep(event, index - 1);
|
387
|
-
}
|
388
|
-
}
|
389
|
-
nextCallback(event, index) {
|
390
|
-
if (index !== this.stepperPanels.length - 1) {
|
391
|
-
this.updateActiveStep(event, index + 1);
|
392
|
-
}
|
393
|
-
}
|
394
|
-
trackByFn(index) {
|
395
|
-
return index;
|
396
|
-
}
|
397
263
|
ngAfterContentInit() {
|
398
|
-
this.
|
399
|
-
this.templates.forEach((item) => {
|
264
|
+
this.templates?.forEach((item) => {
|
400
265
|
switch (item.getType()) {
|
401
|
-
case '
|
402
|
-
this.
|
403
|
-
break;
|
404
|
-
case 'end':
|
405
|
-
this.endTemplate = item.template;
|
406
|
-
break;
|
407
|
-
default:
|
266
|
+
case 'content':
|
267
|
+
this.contentTemplate = item.template;
|
408
268
|
break;
|
409
269
|
}
|
410
270
|
});
|
411
271
|
}
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
<
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
}
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
[disabled]="isItemDisabled(index)"
|
442
|
-
[active]="isStepActive(index)"
|
443
|
-
[highlighted]="index < activeStep"
|
444
|
-
[aria-controls]="getStepContentId(index)"
|
445
|
-
(onClick)="onItemClick($event, index)"
|
446
|
-
></p-stepperHeader>
|
447
|
-
|
448
|
-
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
449
|
-
<p-stepperSeparator
|
450
|
-
[template]="step.separatorTemplate"
|
451
|
-
[separatorClass]="'p-stepper-separator'"
|
452
|
-
[stepperPanel]="step"
|
453
|
-
[index]="index"
|
454
|
-
[active]="isStepActive(index)"
|
455
|
-
[highlighted]="index < activeStep"
|
456
|
-
/>
|
457
|
-
</ng-container>
|
458
|
-
</li>
|
459
|
-
</ng-template>
|
460
|
-
</ul>
|
461
|
-
<div class="p-stepper-panels">
|
462
|
-
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
463
|
-
<ng-container *ngIf="isStepActive(index)">
|
464
|
-
<p-stepperContent
|
465
|
-
[id]="getStepContentId(index)"
|
466
|
-
[template]="step.contentTemplate"
|
467
|
-
[orientation]="orientation"
|
468
|
-
[stepperPanel]="step"
|
469
|
-
[index]="index"
|
470
|
-
[active]="isStepActive(index)"
|
471
|
-
[highlighted]="index < activeStep"
|
472
|
-
[ariaLabelledby]="getStepHeaderActionId(index)"
|
473
|
-
(onClick)="onItemClick($event, index)"
|
474
|
-
(nextCallback)="nextCallback($event, index)"
|
475
|
-
(prevCallback)="prevCallback($event, index)"
|
476
|
-
/>
|
477
|
-
</ng-container>
|
478
|
-
</ng-template>
|
479
|
-
</div>
|
480
|
-
</ng-container>
|
481
|
-
<ng-template #vertical>
|
482
|
-
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
483
|
-
<div
|
484
|
-
[key]="getStepKey(step, index)"
|
485
|
-
class="p-stepitem"
|
486
|
-
[ngClass]="{
|
487
|
-
'p-stepitem-active': orientation === 'vertical' && isStepActive(index),
|
488
|
-
}"
|
489
|
-
[attr.aria-current]="isStepActive(index) ? 'step' : undefined"
|
490
|
-
[data-pc-name]="'stepperpanel'"
|
491
|
-
[data-p-highlight]="isStepActive(index)"
|
492
|
-
[data-p-disabled]="isItemDisabled(index)"
|
493
|
-
[data-pc-index]="index"
|
494
|
-
[data-p-active]="isStepActive(index)"
|
495
|
-
>
|
496
|
-
<p-stepperHeader
|
497
|
-
[id]="getStepHeaderActionId(index)"
|
498
|
-
[template]="step.headerTemplate"
|
499
|
-
[stepperPanel]="step"
|
500
|
-
[getStepProp]="getStepProp(step, 'header')"
|
501
|
-
[index]="index"
|
502
|
-
[disabled]="isItemDisabled(index)"
|
503
|
-
[active]="isStepActive(index)"
|
504
|
-
[highlighted]="index < activeStep"
|
505
|
-
[aria-controls]="getStepContentId(index)"
|
506
|
-
class="p-step"
|
507
|
-
[ngClass]="{ 'p-step-active': isStepActive(index) }"
|
508
|
-
(onClick)="onItemClick($event, index)"
|
509
|
-
></p-stepperHeader>
|
510
|
-
|
511
|
-
<div
|
512
|
-
class="p-steppanel"
|
513
|
-
[ngClass]="{ 'p-steppanel-active': isStepActive(index) }"
|
514
|
-
[@tabContent]="
|
515
|
-
isStepActive(index)
|
516
|
-
? { value: 'visible', params: { transitionParams: transitionOptions } }
|
517
|
-
: { value: 'hidden', params: { transitionParams: transitionOptions } }
|
518
|
-
"
|
519
|
-
>
|
520
|
-
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
521
|
-
<p-stepperSeparator
|
522
|
-
[template]="step.separatorTemplate"
|
523
|
-
[separatorClass]="'p-stepper-separator'"
|
524
|
-
[stepperPanel]="step"
|
525
|
-
[index]="index"
|
526
|
-
[active]="isStepActive(index)"
|
527
|
-
[highlighted]="index < activeStep"
|
528
|
-
/>
|
529
|
-
</ng-container>
|
530
|
-
<p-stepperContent
|
531
|
-
[id]="getStepContentId(index)"
|
532
|
-
[template]="step.contentTemplate"
|
533
|
-
[orientation]="orientation"
|
534
|
-
[stepperPanel]="step"
|
535
|
-
[index]="index"
|
536
|
-
[active]="isStepActive(index)"
|
537
|
-
[highlighted]="index < activeStep"
|
538
|
-
[ariaLabelledby]="getStepHeaderActionId(index)"
|
539
|
-
(onClick)="onItemClick($event, index)"
|
540
|
-
(nextCallback)="nextCallback($event, index)"
|
541
|
-
(prevCallback)="prevCallback($event, index)"
|
542
|
-
/>
|
543
|
-
</div>
|
544
|
-
</div>
|
545
|
-
</ng-template>
|
546
|
-
</ng-template>
|
547
|
-
<ng-container *ngIf="endTemplate">
|
548
|
-
<ng-container *ngTemplateOutlet="endTemplate"></ng-container>
|
549
|
-
</ng-container>
|
550
|
-
`, isInline: true, 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: [
|
551
|
-
trigger('tabContent', [
|
272
|
+
updateValue(value) {
|
273
|
+
this.pcStepper.updateValue(value);
|
274
|
+
}
|
275
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepPanel, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
276
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: StepPanel, isStandalone: true, selector: "p-step-panel", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.p-steppanel": "true", "class.p-component": "true", "class.p-steppanel-active": "active()", "attr.role": "\"tabpanel\"", "attr.aria-controls": "ariaControls()", "attr.id": "id()", "attr.data-p-active": "active()", "attr.data-pc-name": "\"steppanel\"" } }, queries: [{ propertyName: "contentTemplate", first: true, predicate: ["content"], descendants: true }, { propertyName: "templates", predicate: PrimeTemplate }], usesInheritance: true, ngImport: i0, template: `
|
277
|
+
@if (isSeparatorVisible()) {
|
278
|
+
<p-stepper-separator />
|
279
|
+
}
|
280
|
+
<div
|
281
|
+
class="p-steppanel-content"
|
282
|
+
[@content]="
|
283
|
+
isVertical()
|
284
|
+
? active()
|
285
|
+
? { value: 'visible', params: { transitionParams: transitionOptions() } }
|
286
|
+
: { value: 'hidden', params: { transitionParams: transitionOptions() } }
|
287
|
+
: undefined
|
288
|
+
"
|
289
|
+
>
|
290
|
+
@if (active()) {
|
291
|
+
<ng-container
|
292
|
+
*ngTemplateOutlet="
|
293
|
+
contentTemplate;
|
294
|
+
context: { activateCallback: updateValue.bind(this), value: value(), active: active() }
|
295
|
+
"
|
296
|
+
></ng-container>
|
297
|
+
}
|
298
|
+
</div>
|
299
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: StepperSeparator, selector: "p-stepper-separator" }], animations: [
|
300
|
+
trigger('content', [
|
552
301
|
state('hidden', style({
|
553
302
|
height: '0',
|
554
303
|
visibility: 'hidden',
|
@@ -562,158 +311,50 @@ export class Stepper extends BaseComponent {
|
|
562
311
|
]),
|
563
312
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
564
313
|
}
|
565
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type:
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepPanel, decorators: [{
|
566
315
|
type: Component,
|
567
316
|
args: [{
|
568
|
-
selector: 'p-
|
317
|
+
selector: 'p-step-panel',
|
318
|
+
standalone: true,
|
319
|
+
imports: [CommonModule, StepperSeparator],
|
569
320
|
template: `
|
570
|
-
|
571
|
-
<
|
572
|
-
|
573
|
-
<
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
[id]="getStepHeaderActionId(index)"
|
593
|
-
[template]="step.headerTemplate"
|
594
|
-
[stepperPanel]="step"
|
595
|
-
[getStepProp]="getStepProp(step, 'header')"
|
596
|
-
[index]="index"
|
597
|
-
[disabled]="isItemDisabled(index)"
|
598
|
-
[active]="isStepActive(index)"
|
599
|
-
[highlighted]="index < activeStep"
|
600
|
-
[aria-controls]="getStepContentId(index)"
|
601
|
-
(onClick)="onItemClick($event, index)"
|
602
|
-
></p-stepperHeader>
|
603
|
-
|
604
|
-
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
605
|
-
<p-stepperSeparator
|
606
|
-
[template]="step.separatorTemplate"
|
607
|
-
[separatorClass]="'p-stepper-separator'"
|
608
|
-
[stepperPanel]="step"
|
609
|
-
[index]="index"
|
610
|
-
[active]="isStepActive(index)"
|
611
|
-
[highlighted]="index < activeStep"
|
612
|
-
/>
|
613
|
-
</ng-container>
|
614
|
-
</li>
|
615
|
-
</ng-template>
|
616
|
-
</ul>
|
617
|
-
<div class="p-stepper-panels">
|
618
|
-
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
619
|
-
<ng-container *ngIf="isStepActive(index)">
|
620
|
-
<p-stepperContent
|
621
|
-
[id]="getStepContentId(index)"
|
622
|
-
[template]="step.contentTemplate"
|
623
|
-
[orientation]="orientation"
|
624
|
-
[stepperPanel]="step"
|
625
|
-
[index]="index"
|
626
|
-
[active]="isStepActive(index)"
|
627
|
-
[highlighted]="index < activeStep"
|
628
|
-
[ariaLabelledby]="getStepHeaderActionId(index)"
|
629
|
-
(onClick)="onItemClick($event, index)"
|
630
|
-
(nextCallback)="nextCallback($event, index)"
|
631
|
-
(prevCallback)="prevCallback($event, index)"
|
632
|
-
/>
|
633
|
-
</ng-container>
|
634
|
-
</ng-template>
|
635
|
-
</div>
|
636
|
-
</ng-container>
|
637
|
-
<ng-template #vertical>
|
638
|
-
<ng-template ngFor let-step [ngForOf]="panels" let-index="index" [ngForTrackBy]="trackByFn">
|
639
|
-
<div
|
640
|
-
[key]="getStepKey(step, index)"
|
641
|
-
class="p-stepitem"
|
642
|
-
[ngClass]="{
|
643
|
-
'p-stepitem-active': orientation === 'vertical' && isStepActive(index),
|
644
|
-
}"
|
645
|
-
[attr.aria-current]="isStepActive(index) ? 'step' : undefined"
|
646
|
-
[data-pc-name]="'stepperpanel'"
|
647
|
-
[data-p-highlight]="isStepActive(index)"
|
648
|
-
[data-p-disabled]="isItemDisabled(index)"
|
649
|
-
[data-pc-index]="index"
|
650
|
-
[data-p-active]="isStepActive(index)"
|
651
|
-
>
|
652
|
-
<p-stepperHeader
|
653
|
-
[id]="getStepHeaderActionId(index)"
|
654
|
-
[template]="step.headerTemplate"
|
655
|
-
[stepperPanel]="step"
|
656
|
-
[getStepProp]="getStepProp(step, 'header')"
|
657
|
-
[index]="index"
|
658
|
-
[disabled]="isItemDisabled(index)"
|
659
|
-
[active]="isStepActive(index)"
|
660
|
-
[highlighted]="index < activeStep"
|
661
|
-
[aria-controls]="getStepContentId(index)"
|
662
|
-
class="p-step"
|
663
|
-
[ngClass]="{ 'p-step-active': isStepActive(index) }"
|
664
|
-
(onClick)="onItemClick($event, index)"
|
665
|
-
></p-stepperHeader>
|
666
|
-
|
667
|
-
<div
|
668
|
-
class="p-steppanel"
|
669
|
-
[ngClass]="{ 'p-steppanel-active': isStepActive(index) }"
|
670
|
-
[@tabContent]="
|
671
|
-
isStepActive(index)
|
672
|
-
? { value: 'visible', params: { transitionParams: transitionOptions } }
|
673
|
-
: { value: 'hidden', params: { transitionParams: transitionOptions } }
|
674
|
-
"
|
675
|
-
>
|
676
|
-
<ng-container *ngIf="index !== stepperPanels.length - 1">
|
677
|
-
<p-stepperSeparator
|
678
|
-
[template]="step.separatorTemplate"
|
679
|
-
[separatorClass]="'p-stepper-separator'"
|
680
|
-
[stepperPanel]="step"
|
681
|
-
[index]="index"
|
682
|
-
[active]="isStepActive(index)"
|
683
|
-
[highlighted]="index < activeStep"
|
684
|
-
/>
|
685
|
-
</ng-container>
|
686
|
-
<p-stepperContent
|
687
|
-
[id]="getStepContentId(index)"
|
688
|
-
[template]="step.contentTemplate"
|
689
|
-
[orientation]="orientation"
|
690
|
-
[stepperPanel]="step"
|
691
|
-
[index]="index"
|
692
|
-
[active]="isStepActive(index)"
|
693
|
-
[highlighted]="index < activeStep"
|
694
|
-
[ariaLabelledby]="getStepHeaderActionId(index)"
|
695
|
-
(onClick)="onItemClick($event, index)"
|
696
|
-
(nextCallback)="nextCallback($event, index)"
|
697
|
-
(prevCallback)="prevCallback($event, index)"
|
698
|
-
/>
|
699
|
-
</div>
|
700
|
-
</div>
|
701
|
-
</ng-template>
|
702
|
-
</ng-template>
|
703
|
-
<ng-container *ngIf="endTemplate">
|
704
|
-
<ng-container *ngTemplateOutlet="endTemplate"></ng-container>
|
705
|
-
</ng-container>
|
321
|
+
@if (isSeparatorVisible()) {
|
322
|
+
<p-stepper-separator />
|
323
|
+
}
|
324
|
+
<div
|
325
|
+
class="p-steppanel-content"
|
326
|
+
[@content]="
|
327
|
+
isVertical()
|
328
|
+
? active()
|
329
|
+
? { value: 'visible', params: { transitionParams: transitionOptions() } }
|
330
|
+
: { value: 'hidden', params: { transitionParams: transitionOptions() } }
|
331
|
+
: undefined
|
332
|
+
"
|
333
|
+
>
|
334
|
+
@if (active()) {
|
335
|
+
<ng-container
|
336
|
+
*ngTemplateOutlet="
|
337
|
+
contentTemplate;
|
338
|
+
context: { activateCallback: updateValue.bind(this), value: value(), active: active() }
|
339
|
+
"
|
340
|
+
></ng-container>
|
341
|
+
}
|
342
|
+
</div>
|
706
343
|
`,
|
707
344
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
708
345
|
encapsulation: ViewEncapsulation.None,
|
709
|
-
providers: [StepperStyle],
|
710
346
|
host: {
|
711
|
-
'[class.p-
|
347
|
+
'[class.p-steppanel]': 'true',
|
712
348
|
'[class.p-component]': 'true',
|
713
|
-
'[class.p-
|
349
|
+
'[class.p-steppanel-active]': 'active()',
|
350
|
+
'[attr.role]': '"tabpanel"',
|
351
|
+
'[attr.aria-controls]': 'ariaControls()',
|
352
|
+
'[attr.id]': 'id()',
|
353
|
+
'[attr.data-p-active]': 'active()',
|
354
|
+
'[attr.data-pc-name]': '"steppanel"',
|
714
355
|
},
|
715
356
|
animations: [
|
716
|
-
trigger('
|
357
|
+
trigger('content', [
|
717
358
|
state('hidden', style({
|
718
359
|
height: '0',
|
719
360
|
visibility: 'hidden',
|
@@ -727,36 +368,102 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
727
368
|
]),
|
728
369
|
],
|
729
370
|
}]
|
730
|
-
}], propDecorators: {
|
731
|
-
type:
|
732
|
-
|
733
|
-
type: Input
|
734
|
-
}], linear: [{
|
735
|
-
type: Input
|
736
|
-
}], transitionOptions: [{
|
737
|
-
type: Input
|
738
|
-
}], stepperPanels: [{
|
739
|
-
type: ContentChildren,
|
740
|
-
args: [StepperPanel]
|
371
|
+
}], propDecorators: { contentTemplate: [{
|
372
|
+
type: ContentChild,
|
373
|
+
args: ['content']
|
741
374
|
}], templates: [{
|
742
375
|
type: ContentChildren,
|
743
376
|
args: [PrimeTemplate]
|
744
|
-
}], onClick: [{
|
745
|
-
type: Output
|
746
|
-
}], activeStepChange: [{
|
747
|
-
type: Output
|
748
377
|
}] } });
|
378
|
+
export class StepPanels extends BaseComponent {
|
379
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepPanels, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
380
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: StepPanels, isStandalone: true, selector: "p-step-panels", host: { properties: { "class.p-steppanels": "true", "class.p-component": "true" } }, usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
381
|
+
}
|
382
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepPanels, decorators: [{
|
383
|
+
type: Component,
|
384
|
+
args: [{
|
385
|
+
selector: 'p-step-panels',
|
386
|
+
standalone: true,
|
387
|
+
imports: [CommonModule],
|
388
|
+
template: ` <ng-content></ng-content>`,
|
389
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
390
|
+
encapsulation: ViewEncapsulation.None,
|
391
|
+
host: {
|
392
|
+
'[class.p-steppanels]': 'true',
|
393
|
+
'[class.p-component]': 'true',
|
394
|
+
},
|
395
|
+
}]
|
396
|
+
}] });
|
397
|
+
/**
|
398
|
+
* Stepper is a component that streamlines a wizard-like workflow, organizing content into coherent steps and visually guiding users through a numbered progression in a multistep process.
|
399
|
+
* @group Components
|
400
|
+
*/
|
401
|
+
export class Stepper extends BaseComponent {
|
402
|
+
/**
|
403
|
+
* A model that can hold a numeric value or be undefined.
|
404
|
+
* @defaultValue undefined
|
405
|
+
* @type {ModelSignal<number | undefined>}
|
406
|
+
* @group Props
|
407
|
+
*/
|
408
|
+
value = model(undefined);
|
409
|
+
/**
|
410
|
+
* A boolean variable that captures user input.
|
411
|
+
* @defaultValue false
|
412
|
+
* @type {InputSignalWithTransform<any, boolean >}
|
413
|
+
* @group Props
|
414
|
+
*/
|
415
|
+
linear = input(false, {
|
416
|
+
transform: (v) => transformToBoolean(v),
|
417
|
+
});
|
418
|
+
/**
|
419
|
+
* Transition options of the animation.
|
420
|
+
* @defaultValue 400ms cubic-bezier(0.86, 0, 0.07, 1)
|
421
|
+
* @type {InputSignal<string >}
|
422
|
+
* @group Props
|
423
|
+
*/
|
424
|
+
transitionOptions = input('400ms cubic-bezier(0.86, 0, 0.07, 1)');
|
425
|
+
_componentStyle = inject(StepperStyle);
|
426
|
+
id = signal(UniqueComponentId());
|
427
|
+
stepItems = contentChildren(StepItem);
|
428
|
+
steps = contentChildren(Step);
|
429
|
+
stepList = contentChild(StepList);
|
430
|
+
updateValue(value) {
|
431
|
+
this.value.set(value);
|
432
|
+
}
|
433
|
+
isStepActive(value) {
|
434
|
+
return this.value() === value;
|
435
|
+
}
|
436
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: Stepper, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
437
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.2", type: Stepper, isStandalone: true, selector: "p-stepper", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, transitionOptions: { classPropertyName: "transitionOptions", publicName: "transitionOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.p-stepper": "true", "class.p-component": "true", "attr.role": "\"tablist\"", "attr.id": "id()" } }, providers: [StepperStyle], queries: [{ propertyName: "stepItems", predicate: StepItem, isSignal: true }, { propertyName: "steps", predicate: Step, isSignal: true }, { propertyName: "stepList", first: true, predicate: StepList, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
438
|
+
}
|
439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: Stepper, decorators: [{
|
440
|
+
type: Component,
|
441
|
+
args: [{
|
442
|
+
selector: 'p-stepper',
|
443
|
+
standalone: true,
|
444
|
+
imports: [CommonModule],
|
445
|
+
template: ` <ng-content></ng-content>`,
|
446
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
447
|
+
encapsulation: ViewEncapsulation.None,
|
448
|
+
providers: [StepperStyle],
|
449
|
+
host: {
|
450
|
+
'[class.p-stepper]': 'true',
|
451
|
+
'[class.p-component]': 'true',
|
452
|
+
'[attr.role]': '"tablist"',
|
453
|
+
'[attr.id]': 'id()',
|
454
|
+
},
|
455
|
+
}]
|
456
|
+
}] });
|
749
457
|
export class StepperModule {
|
750
458
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
751
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: StepperModule,
|
752
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperModule, imports: [
|
459
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: StepperModule, imports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule], exports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule] });
|
460
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperModule, imports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule, SharedModule] });
|
753
461
|
}
|
754
462
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperModule, decorators: [{
|
755
463
|
type: NgModule,
|
756
464
|
args: [{
|
757
|
-
imports: [
|
758
|
-
exports: [Stepper,
|
759
|
-
declarations: [Stepper, StepperPanel, StepperPanel, StepperContent, StepperHeader, StepperSeparator],
|
465
|
+
imports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule],
|
466
|
+
exports: [Stepper, StepList, StepPanels, StepPanel, StepItem, Step, StepperSeparator, SharedModule],
|
760
467
|
}]
|
761
468
|
}] });
|
762
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUdOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFxQ3BELE1BQU0sT0FBTyxhQUFhO0lBQ2IsRUFBRSxDQUFxQjtJQUV2QixRQUFRLENBQStCO0lBRXZDLFlBQVksQ0FBZTtJQUUzQixLQUFLLENBQXFCO0lBRTFCLFFBQVEsQ0FBc0I7SUFFOUIsTUFBTSxDQUFzQjtJQUU1QixXQUFXLENBQXNCO0lBRWpDLFdBQVcsQ0FBcUI7SUFFaEMsWUFBWSxDQUFxQjtJQUVoQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQzt1R0FuQnBDLGFBQWE7MkZBQWIsYUFBYSxnVEFqQ1o7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0ErQlQ7OzJGQUVRLGFBQWE7a0JBbkN6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JB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RCxZQUFZO3dHQUdyRixhQUFhLFlBSlosWUFBWSxFQUFFLFlBQVksRUFDOEMsWUFBWTs7MkZBR3JGLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQztvQkFDL0YsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDdkciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByaW1lVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAncHJpbWVuZy90cy1oZWxwZXJzJztcbmltcG9ydCB7IFVuaXF1ZUNvbXBvbmVudElkIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2Jhc2Vjb21wb25lbnQnO1xuaW1wb3J0IHsgU3RlcHBlclN0eWxlIH0gZnJvbSAnLi9zdHlsZS9zdGVwcGVyc3R5bGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcHBlckhlYWRlcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlOyBlbHNlIGJ1dHRvblJlZlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkOiBoaWdobGlnaHRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiAncC1zdGVwcGVyLWFjdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJDbGFzczogJ3Atc3RlcHBlci1hY3Rpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyQ2xhc3M6ICdwLXN0ZXBwZXItbnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlQ2xhc3M6ICdwLXN0ZXBwZXItdGl0bGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogb25DbGljayxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2J1dHRvblJlZj5cbiAgICAgICAgICAgIDxwLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLXN0ZXAtaGVhZGVyXCJcbiAgICAgICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgW2FyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGljay5lbWl0KCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtc3RlcC1udW1iZXJcIj57eyBpbmRleCArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXN0ZXAtdGl0bGVcIj57eyBnZXRTdGVwUHJvcCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvcC1idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckhlYWRlciB7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgc3RlcHBlclBhbmVsOiBTdGVwcGVyUGFuZWw7XG5cbiAgICBASW5wdXQoKSBpbmRleDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBoaWdobGlnaHRlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGdldFN0ZXBQcm9wOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBhcmlhQ29udHJvbHM6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBPdXRwdXQoKSBvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcHBlclNlcGFyYXRvcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlOyBlbHNlIHNwYW5cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7IGluZGV4OiBpbmRleCwgYWN0aXZlOiBhY3RpdmUsIGhpZ2hsaWdodGVkOiBoaWdobGlnaHRlZCwgY2xhc3M6IHNlcGFyYXRvckNsYXNzIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNzcGFuPlxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cInNlcGFyYXRvckNsYXNzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3Atc3RlcHBlci1zZXBhcmF0b3InLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJTZXBhcmF0b3Ige1xuICAgIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgc2VwYXJhdG9yQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHN0ZXBwZXJQYW5lbDogU3RlcHBlclBhbmVsO1xuXG4gICAgQElucHV0KCkgaW5kZXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGhpZ2hsaWdodGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcHBlckNvbnRlbnQnLFxuICAgIHRlbXBsYXRlOiBgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgZGF0YS1wYy1uYW1lPVwic3RlcHBlcnBhbmVsXCJcbiAgICAgICAgW2F0dHIuZGF0YS1wYy1pbmRleF09XCJpbmRleFwiXG4gICAgICAgIFthdHRyLmRhdGEtcC1hY3RpdmVdPVwiYWN0aXZlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkOiBoaWdobGlnaHRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IG9uQ2xpY2ssXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q2FsbGJhY2s6IHByZXZDYWxsYmFjayxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDYWxsYmFjazogbmV4dENhbGxiYWNrLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIiF0ZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBwZXJQYW5lbFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGVwcGVyUGFuZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PmAsXG5cbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwcGFuZWwtY29udGVudF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1lbGVtZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLXRvZ2dsZWFibGUtY29udGVudF0nOiBcIm9yaWVudGF0aW9uID09PSAndmVydGljYWwnXCIsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlckNvbnRlbnQge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcblxuICAgIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkYnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIHN0ZXBwZXJQYW5lbDogU3RlcHBlclBhbmVsO1xuXG4gICAgQElucHV0KCkgaW5kZXg6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAgIEBJbnB1dCgpIGhpZ2hsaWdodGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCkgcHJldkNhbGxiYWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIG5leHRDYWxsYmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXBwZXJQYW5lbCcsXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiBgLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyUGFuZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBOdWxsYWJsZTxRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT4+O1xuXG4gICAgaGVhZGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgc3RhcnRUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBjb250ZW50VGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgc2VwYXJhdG9yVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgZW5kVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICAodGhpcy50ZW1wbGF0ZXMgYXMgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NlcGFyYXRvcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VwYXJhdG9yVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBTdGVwcGVyIGNvbXBvbmVudCBkaXNwbGF5cyBhIHdpemFyZC1saWtlIHdvcmtmbG93IGJ5IGd1aWRpbmcgdXNlcnMgdGhyb3VnaCB0aGUgbXVsdGktc3RlcCBwcm9ncmVzc2lvbi5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwcGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RhcnRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXJ0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnOyBlbHNlIHZlcnRpY2FsXCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJwLXN0ZXBsaXN0XCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1zdGVwIFtuZ0Zvck9mXT1cInBhbmVsc1wiIGxldC1pbmRleD1cImluZGV4XCIgW25nRm9yVHJhY2tCeV09XCJ0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICBba2V5XT1cImdldFN0ZXBLZXkoc3RlcCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncC1zdGVwLWFjdGl2ZSc6IGlzU3RlcEFjdGl2ZShpbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiBpc0l0ZW1EaXNhYmxlZChpbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpc1N0ZXBBY3RpdmUoaW5kZXgpID8gJ3N0ZXAnIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtcGMtbmFtZV09XCJzdGVwcGVyUGFuZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGEtcC1oaWdobGlnaHRdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1wLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1wYy1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YS1wLWFjdGl2ZV09XCJpc1N0ZXBBY3RpdmUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtc3RlcHBlckhlYWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRTdGVwSGVhZGVyQWN0aW9uSWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwic3RlcC5oZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBwZXJQYW5lbF09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ2V0U3RlcFByb3BdPVwiZ2V0U3RlcFByb3Aoc3RlcCwgJ2hlYWRlcicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZ2hsaWdodGVkXT1cImluZGV4IDwgYWN0aXZlU3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWEtY29udHJvbHNdPVwiZ2V0U3RlcENvbnRlbnRJZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3Atc3RlcHBlckhlYWRlcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZGV4ICE9PSBzdGVwcGVyUGFuZWxzLmxlbmd0aCAtIDFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1zdGVwcGVyU2VwYXJhdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJzdGVwLnNlcGFyYXRvclRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlcGFyYXRvckNsYXNzXT1cIidwLXN0ZXBwZXItc2VwYXJhdG9yJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRlZF09XCJpbmRleCA8IGFjdGl2ZVN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXN0ZXBwZXItcGFuZWxzXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1zdGVwIFtuZ0Zvck9mXT1cInBhbmVsc1wiIGxldC1pbmRleD1cImluZGV4XCIgW25nRm9yVHJhY2tCeV09XCJ0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU3RlcEFjdGl2ZShpbmRleClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXJDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldFN0ZXBDb250ZW50SWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwic3RlcC5jb250ZW50VGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBwZXJQYW5lbF09XCJzdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZ2hsaWdodGVkXT1cImluZGV4IDwgYWN0aXZlU3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZGJ5XT1cImdldFN0ZXBIZWFkZXJBY3Rpb25JZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV4dENhbGxiYWNrKT1cIm5leHRDYWxsYmFjaygkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXZDYWxsYmFjayk9XCJwcmV2Q2FsbGJhY2soJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN2ZXJ0aWNhbD5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtc3RlcCBbbmdGb3JPZl09XCJwYW5lbHNcIiBsZXQtaW5kZXg9XCJpbmRleFwiIFtuZ0ZvclRyYWNrQnldPVwidHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBba2V5XT1cImdldFN0ZXBLZXkoc3RlcCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLXN0ZXBpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3Atc3RlcGl0ZW0tYWN0aXZlJzogb3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCcgJiYgaXNTdGVwQWN0aXZlKGluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpc1N0ZXBBY3RpdmUoaW5kZXgpID8gJ3N0ZXAnIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtcGMtbmFtZV09XCInc3RlcHBlcnBhbmVsJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhLXAtaGlnaGxpZ2h0XT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YS1wLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhLXBjLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2RhdGEtcC1hY3RpdmVdPVwiaXNTdGVwQWN0aXZlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8cC1zdGVwcGVySGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZ2V0U3RlcEhlYWRlckFjdGlvbklkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwic3RlcC5oZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RlcHBlclBhbmVsXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2dldFN0ZXBQcm9wXT1cImdldFN0ZXBQcm9wKHN0ZXAsICdoZWFkZXInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZ2hsaWdodGVkXT1cImluZGV4IDwgYWN0aXZlU3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1jb250cm9sc109XCJnZXRTdGVwQ29udGVudElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtc3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLXN0ZXAtYWN0aXZlJzogaXNTdGVwQWN0aXZlKGluZGV4KSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcC1zdGVwcGVySGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1zdGVwcGFuZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1zdGVwcGFuZWwtYWN0aXZlJzogaXNTdGVwQWN0aXZlKGluZGV4KSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtAdGFiQ29udGVudF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1N0ZXBBY3RpdmUoaW5kZXgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyB2YWx1ZTogJ3Zpc2libGUnLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdHJhbnNpdGlvbk9wdGlvbnMgfSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeyB2YWx1ZTogJ2hpZGRlbicsIHBhcmFtczogeyB0cmFuc2l0aW9uUGFyYW1zOiB0cmFuc2l0aW9uT3B0aW9ucyB9IH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmRleCAhPT0gc3RlcHBlclBhbmVscy5sZW5ndGggLSAxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtc3RlcHBlclNlcGFyYXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwic3RlcC5zZXBhcmF0b3JUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZXBhcmF0b3JDbGFzc109XCIncC1zdGVwcGVyLXNlcGFyYXRvcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RlcHBlclBhbmVsXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlnaGxpZ2h0ZWRdPVwiaW5kZXggPCBhY3RpdmVTdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1zdGVwcGVyQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRTdGVwQ29udGVudElkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlXT1cInN0ZXAuY29udGVudFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwcGVyUGFuZWxdPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlXT1cImlzU3RlcEFjdGl2ZShpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWdobGlnaHRlZF09XCJpbmRleCA8IGFjdGl2ZVN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRieV09XCJnZXRTdGVwSGVhZGVyQWN0aW9uSWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQsIGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5leHRDYWxsYmFjayk9XCJuZXh0Q2FsbGJhY2soJGV2ZW50LCBpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2Q2FsbGJhY2spPVwicHJldkNhbGxiYWNrKCRldmVudCwgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVuZFRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW5kVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1N0ZXBwZXJTdHlsZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcHBlcl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtc3RlcHBlci12ZXJ0aWNhbF0nOiBcIm9yaWVudGF0aW9uID09PSAndmVydGljYWwnXCIsXG4gICAgfSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ3RhYkNvbnRlbnQnLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcqJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPD0+IGhpZGRlbicsIFthbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoMC44NiwgMCwgMC4wNywgMSknKV0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgwKSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXIgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqXG4gICAgICogQWN0aXZlIHN0ZXAgaW5kZXggb2Ygc3RlcHBlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhY3RpdmVTdGVwOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsID0gMDtcbiAgICAvKipcbiAgICAgKiBPcmllbnRhdGlvbiBvZiB0aGUgc3RlcHBlci5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJyA9ICdob3Jpem9udGFsJztcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBzdGVwcyBhcmUgY2xpY2thYmxlIG9yIG5vdC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUcmFuc2l0aW9uIG9wdGlvbnMgb2YgdGhlIGFuaW1hdGlvbi5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFuc2l0aW9uT3B0aW9uczogc3RyaW5nID0gJzQwMG1zIGN1YmljLWJlemllcigwLjg2LCAwLCAwLjA3LCAxKSc7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFN0ZXBwZXJQYW5lbCkgc3RlcHBlclBhbmVsczogUXVlcnlMaXN0PFN0ZXBwZXJQYW5lbD4gfCB1bmRlZmluZWQ7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIHtBY3RpdmVTdGVwQ2hhbmdlRXZlbnR9IGV2ZW50IC0gY3VzdG9tIGNoYW5nZSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgYWN0aXZlU3RlcENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIF9jb21wb25lbnRTdHlsZSA9IGluamVjdChTdGVwcGVyU3R5bGUpO1xuXG4gICAgaGVhZGVyVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgc3RhcnRUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBzZXBhcmF0b3JUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBlbmRUZW1wbGF0ZTogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICBpZDogc3RyaW5nID0gVW5pcXVlQ29tcG9uZW50SWQoKTtcblxuICAgIHBhbmVscyE6IFN0ZXBwZXJQYW5lbFtdO1xuXG4gICAgaXNTdGVwQWN0aXZlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU3RlcCA9PT0gaW5kZXg7XG4gICAgfVxuXG4gICAgZ2V0U3RlcFByb3Aoc3RlcCkge1xuICAgICAgICBpZiAoc3RlcD8uaGVhZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RlcC5oZWFkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RlcD8uY29udGVudCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ZXAuY29udGVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGdldFN0ZXBLZXkoc3RlcCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RlcFByb3Aoc3RlcCkgfHwgaW5kZXg7XG4gICAgfVxuXG4gICAgZ2V0U3RlcEhlYWRlckFjdGlvbklkKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkfV8ke2luZGV4fV9oZWFkZXJfYWN0aW9uYDtcbiAgICB9XG5cbiAgICBnZXRTdGVwQ29udGVudElkKGluZGV4KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkfV8ke2luZGV4fV9jb250ZW50YDtcbiAgICB9XG5cbiAgICB1cGRhdGVBY3RpdmVTdGVwKGV2ZW50LCBpbmRleCkge1xuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSBpbmRleDtcblxuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVN0ZXApO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2ZW50LCBpbmRleCkge1xuICAgICAgICBpZiAodGhpcy5saW5lYXIpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggIT09IHRoaXMuYWN0aXZlU3RlcCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVTdGVwKGV2ZW50LCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0l0ZW1EaXNhYmxlZChpbmRleCkge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lYXIgJiYgIXRoaXMuaXNTdGVwQWN0aXZlKGluZGV4KTtcbiAgICB9XG5cbiAgICBwcmV2Q2FsbGJhY2soZXZlbnQsIGluZGV4KSB7XG4gICAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVTdGVwKGV2ZW50LCBpbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV4dENhbGxiYWNrKGV2ZW50LCBpbmRleCkge1xuICAgICAgICBpZiAoaW5kZXggIT09IHRoaXMuc3RlcHBlclBhbmVscy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVN0ZXAoZXZlbnQsIGluZGV4ICsgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMucGFuZWxzID0gKHRoaXMuc3RlcHBlclBhbmVscyBhcyBRdWVyeUxpc3Q8U3RlcHBlclBhbmVsPikudG9BcnJheSgpO1xuICAgICAgICAodGhpcy50ZW1wbGF0ZXMgYXMgUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+KS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VuZCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW5kVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2hhcmVkTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbU3RlcHBlciwgU3RlcHBlclBhbmVsLCBTdGVwcGVyQ29udGVudCwgU3RlcHBlckhlYWRlciwgU3RlcHBlclNlcGFyYXRvciwgU2hhcmVkTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTdGVwcGVyLCBTdGVwcGVyUGFuZWwsIFN0ZXBwZXJQYW5lbCwgU3RlcHBlckNvbnRlbnQsIFN0ZXBwZXJIZWFkZXIsIFN0ZXBwZXJTZXBhcmF0b3JdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyTW9kdWxlIHt9XG4iXX0=
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zdGVwcGVyL3N0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEVBQ2YsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLEtBQUssRUFFTCxRQUFRLEVBRVIsTUFBTSxFQUVOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUF5QzFELE1BQU0sT0FBTyxRQUFTLFNBQVEsYUFBYTt1R0FBOUIsUUFBUTsyRkFBUixRQUFRLGlMQVJQLDRCQUE0QiwyREFENUIsWUFBWTs7MkZBU2IsUUFBUTtrQkFacEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFLDRCQUE0Qjtv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dUdBQWIsYUFBYTt3R0FBYixhQUFhLFlBaERiLE9BQU8sRUF0VVAsUUFBUSxFQWlUUixVQUFVLEVBakVWLFNBQVMsRUEvTVQsUUFBUSxFQW9GUixJQUFJLEVBdkdKLGdCQUFnQixFQXFXNkQsWUFBWSxhQTdDekYsT0FBTyxFQXRVUCxRQUFRLEVBaVRSLFVBQVUsRUFqRVYsU0FBUyxFQS9NVCxRQUFRLEVBb0ZSLElBQUksRUF2R0osZ0JBQWdCLEVBc1c2RCxZQUFZO3dHQUV6RixhQUFhLFlBSFosT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUNaLFlBQVk7OzJGQUV6RixhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFlBQVksQ0FBQztvQkFDbkcsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO2lCQUN0RyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIGNvbnRlbnRDaGlsZHJlbixcbiAgICBlZmZlY3QsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgSW5wdXRTaWduYWwsXG4gICAgSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtLFxuICAgIG1vZGVsLFxuICAgIE1vZGVsU2lnbmFsLFxuICAgIE5nTW9kdWxlLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9iYXNlY29tcG9uZW50JztcbmltcG9ydCB7IE9iamVjdFV0aWxzLCB0cmFuc2Zvcm1Ub0Jvb2xlYW4sIFVuaXF1ZUNvbXBvbmVudElkIH0gZnJvbSAncHJpbWVuZy91dGlscyc7XG5pbXBvcnQgeyBTdGVwcGVyU3R5bGUgfSBmcm9tICcuL3N0eWxlL3N0ZXBwZXJzdHlsZSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAncHJpbWVuZy9kb20nO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbi8qKlxuICogQ29udGV4dCBpbnRlcmZhY2UgZm9yIHRoZSBTdGVwUGFuZWwgY29udGVudCB0ZW1wbGF0ZS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gdm9pZH0gYWN0aXZhdGVDYWxsYmFjayAtIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGFjdGl2YXRlIGEgc3RlcC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0ZXAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGFjdGl2ZSAtIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHN0ZXAgaXMgYWN0aXZlLlxuICogQGdyb3VwIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBDb250ZW50VGVtcGxhdGVDb250ZXh0IHtcbiAgICBhY3RpdmF0ZUNhbGxiYWNrOiAoKSA9PiB2b2lkO1xuICAgIHZhbHVlOiBudW1iZXI7XG4gICAgYWN0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbnRleHQgaW50ZXJmYWNlIGZvciB0aGUgU3RlcFBhbmVsIGNvbnRlbnQgdGVtcGxhdGUuXG4gKlxuICogQHByb3BlcnR5IHsoaW5kZXg6IG51bWJlcikgPT4gdm9pZH0gYWN0aXZhdGVDYWxsYmFjayAtIENhbGxiYWNrIGZ1bmN0aW9uIHRvIGFjdGl2YXRlIGEgc3RlcC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2YWx1ZSAtIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0ZXAuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGFjdGl2ZSAtIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHN0ZXAgaXMgYWN0aXZlLlxuICogQGdyb3VwIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBQYW5lbENvbnRlbnRUZW1wbGF0ZUNvbnRleHQge1xuICAgIGFjdGl2YXRlQ2FsbGJhY2s6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICAgIHZhbHVlOiBudW1iZXI7XG4gICAgYWN0aXZlOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3Atc3RlcC1saXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcGxpc3RdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwTGlzdCBleHRlbmRzIEJhc2VDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXBwZXItc2VwYXJhdG9yJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcHBlci1zZXBhcmF0b3JdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyU2VwYXJhdG9yIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG4vKipcbiAqIFN0ZXBJdGVtIGlzIGEgaGVscGVyIGNvbXBvbmVudCBmb3IgU3RlcHBlciBjb21wb25lbnQgdXNlZCBpbiB2ZXJ0aWNhbCBvcmllbnRhdGlvbi5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLWl0ZW0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwaXRlbV0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1jb21wb25lbnRdJzogJ3RydWUnLFxuICAgICAgICAnW2F0dHIuZGF0YS1wLWFjdGl2ZV0nOiAnaXNBY3RpdmUoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcEl0ZW0gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBwY1N0ZXBwZXIgPSBpbmplY3QoZm9yd2FyZFJlZigoKSA9PiBTdGVwcGVyKSk7XG4gICAgLyoqXG4gICAgICogVmFsdWUgb2Ygc3RlcC5cbiAgICAgKiBAdHlwZSB7PG51bWJlciB8IHVuZGVmaW5lZD59XG4gICAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICB2YWx1ZTogTW9kZWxTaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPiA9IG1vZGVsPG51bWJlciB8IHVuZGVmaW5lZD4oKTtcblxuICAgIGlzQWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY1N0ZXBwZXIudmFsdWUoKSA9PT0gdGhpcy52YWx1ZSgpKTtcblxuICAgIHN0ZXAgPSBjb250ZW50Q2hpbGQoU3RlcCk7XG5cbiAgICBzdGVwUGFuZWwgPSBjb250ZW50Q2hpbGQoU3RlcFBhbmVsKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwKCkudmFsdWUuc2V0KHRoaXMudmFsdWUoKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXBQYW5lbCgpLnZhbHVlLnNldCh0aGlzLnZhbHVlKCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi8qKlxuICogU3RlcCBpcyBhIGhlbHBlciBjb21wb25lbnQgZm9yIFN0ZXBwZXIgY29tcG9uZW50LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXAnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU3RlcHBlclNlcGFyYXRvcl0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICghY29udGVudFRlbXBsYXRlKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLXN0ZXAtaGVhZGVyXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIid0YWInXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXNTdGVwRGlzYWJsZWQoKSA/IC0xIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9scygpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTdGVwRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RlcENsaWNrKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1zdGVwLW51bWJlclwiPnt7IHZhbHVlKCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLXN0ZXAtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgQGlmIChpc1NlcGFyYXRvclZpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXItc2VwYXJhdG9yIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlOyBjb250ZXh0OiB7IGFjdGl2YXRlQ2FsbGJhY2s6IG9uU3RlcENsaWNrLmJpbmQodGhpcyksIHZhbHVlOiB2YWx1ZSgpLCBhY3RpdmU6IGFjdGl2ZSgpIH1cIlxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgQGlmIChpc1NlcGFyYXRvclZpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIDxwLXN0ZXBwZXItc2VwYXJhdG9yIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLnAtc3RlcF0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MucC1zdGVwLWFjdGl2ZV0nOiAnYWN0aXZlKCknLFxuICAgICAgICAnW2NsYXNzLnAtZGlzYWJsZWRdJzogJ2lzU3RlcERpc2FibGVkKCknLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY3VycmVudF0nOiAnYWN0aXZlKCkgPyBcInN0ZXBcIiA6IHVuZGVmaW5lZCcsXG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdcInByZXNlbnRhdGlvblwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtcC1kaXNhYmxlZF0nOiAnaXNTdGVwRGlzYWJsZWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXBjLW5hbWVdJzogJ1wic3RlcFwiJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwIGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIHBjU3RlcHBlciA9IGluamVjdChmb3J3YXJkUmVmKCgpID0+IFN0ZXBwZXIpKTtcbiAgICAvKipcbiAgICAgKiBBY3RpdmUgdmFsdWUgb2Ygc3RlcHBlci5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlcj4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgc3RlcCBpcyBkaXNhYmxlZC5cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgZGlzYWJsZWQ6IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiAodjogYW55IHwgYm9vbGVhbikgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpLFxuICAgIH0pO1xuXG4gICAgYWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wY1N0ZXBwZXIuaXNTdGVwQWN0aXZlKHRoaXMudmFsdWUoKSkpO1xuXG4gICAgaXNTdGVwRGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5hY3RpdmUoKSAmJiAodGhpcy5wY1N0ZXBwZXIubGluZWFyKCkgfHwgdGhpcy5kaXNhYmxlZCgpKSk7XG5cbiAgICBpZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMucGNTdGVwcGVyLmlkKCl9X3N0ZXBfJHt0aGlzLnZhbHVlKCl9YCk7XG5cbiAgICBhcmlhQ29udHJvbHMgPSBjb21wdXRlZCgoKSA9PiBgJHt0aGlzLnBjU3RlcHBlci5pZCgpfV9zdGVwcGFuZWxfJHt0aGlzLnZhbHVlKCl9YCk7XG5cbiAgICBpc1NlcGFyYXRvclZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBjU3RlcHBlci5zdGVwTGlzdCgpKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGNTdGVwcGVyLnN0ZXBMaXN0KCkuZWwubmF0aXZlRWxlbWVudC5jaGlsZHJlbik7XG4gICAgICAgICAgICBjb25zdCBzdGVwTGVuID0gRG9tSGFuZGxlci5maW5kKHRoaXMucGNTdGVwcGVyLnN0ZXBMaXN0KCkuZWwubmF0aXZlRWxlbWVudCwgJ1tkYXRhLXBjLW5hbWU9XCJzdGVwXCJdJykubGVuZ3RoO1xuICAgICAgICAgICAgcmV0dXJuIGluZGV4ICE9PSBzdGVwTGVuIC0gMTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIENvbnRlbnQgdGVtcGxhdGUuXG4gICAgICogQHR5cGUge1RlbXBsYXRlUmVmPFN0ZXBDb250ZW50VGVtcGxhdGVDb250ZXh0Pn1cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnY29udGVudCcpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8U3RlcENvbnRlbnRUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPiB8IHVuZGVmaW5lZDtcblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXM/LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjb250ZW50JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TdGVwQ2xpY2soKSB7XG4gICAgICAgIHRoaXMucGNTdGVwcGVyLnVwZGF0ZVZhbHVlKHRoaXMudmFsdWUoKSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFN0ZXBQYW5lbCBpcyBhIGhlbHBlciBjb21wb25lbnQgZm9yIFN0ZXBwZXIgY29tcG9uZW50LlxuICogQGdyb3VwIENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXN0ZXAtcGFuZWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU3RlcHBlclNlcGFyYXRvcl0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChpc1NlcGFyYXRvclZpc2libGUoKSkge1xuICAgICAgICAgICAgPHAtc3RlcHBlci1zZXBhcmF0b3IgLz5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInAtc3RlcHBhbmVsLWNvbnRlbnRcIlxuICAgICAgICAgICAgW0Bjb250ZW50XT1cIlxuICAgICAgICAgICAgICAgIGlzVmVydGljYWwoKVxuICAgICAgICAgICAgICAgICAgICA/IGFjdGl2ZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHsgdmFsdWU6ICd2aXNpYmxlJywgcGFyYW1zOiB7IHRyYW5zaXRpb25QYXJhbXM6IHRyYW5zaXRpb25PcHRpb25zKCkgfSB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IHsgdmFsdWU6ICdoaWRkZW4nLCBwYXJhbXM6IHsgdHJhbnNpdGlvblBhcmFtczogdHJhbnNpdGlvbk9wdGlvbnMoKSB9IH1cbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoYWN0aXZlKCkpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50VGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7IGFjdGl2YXRlQ2FsbGJhY2s6IHVwZGF0ZVZhbHVlLmJpbmQodGhpcyksIHZhbHVlOiB2YWx1ZSgpLCBhY3RpdmU6IGFjdGl2ZSgpIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwcGFuZWxdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwYW5lbC1hY3RpdmVdJzogJ2FjdGl2ZSgpJyxcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ1widGFicGFuZWxcIicsXG4gICAgICAgICdbYXR0ci5hcmlhLWNvbnRyb2xzXSc6ICdhcmlhQ29udHJvbHMoKScsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXAtYWN0aXZlXSc6ICdhY3RpdmUoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLXBjLW5hbWVdJzogJ1wic3RlcHBhbmVsXCInLFxuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdjb250ZW50JywgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcwJyxcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnKicsXG4gICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6ICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlIDw9PiBoaWRkZW4nLCBbYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpJyldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMCkpLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwUGFuZWwgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcGNTdGVwcGVyID0gaW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gU3RlcHBlcikpO1xuXG4gICAgdHJhbnNpdGlvbk9wdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjU3RlcHBlci50cmFuc2l0aW9uT3B0aW9ucygpKTtcbiAgICAvKipcbiAgICAgKiBBY3RpdmUgdmFsdWUgb2Ygc3RlcHBlci5cbiAgICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlcj4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgICBhY3RpdmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBjU3RlcHBlci52YWx1ZSgpID09PSB0aGlzLnZhbHVlKCkpO1xuXG4gICAgYXJpYUNvbnRyb2xzID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcF8ke3RoaXMudmFsdWUoKX1gKTtcblxuICAgIGlkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5wY1N0ZXBwZXIuaWQoKX1fc3RlcHBhbmVsXyR7dGhpcy52YWx1ZSgpfWApO1xuXG4gICAgaXNWZXJ0aWNhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGNTdGVwcGVyLnN0ZXBJdGVtcygpLmxlbmd0aCA+IDApO1xuXG4gICAgaXNTZXBhcmF0b3JWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5wY1N0ZXBwZXIuc3RlcEl0ZW1zKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBMZW4gPSB0aGlzLnBjU3RlcHBlci5zdGVwSXRlbXMoKS5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBzdGVwUGFuZWxFbGVtZW50cyA9IERvbUhhbmRsZXIuZmluZCh0aGlzLnBjU3RlcHBlci5lbC5uYXRpdmVFbGVtZW50LCAnW2RhdGEtcGMtbmFtZT1cInN0ZXBwYW5lbFwiXScpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QodGhpcy5lbC5uYXRpdmVFbGVtZW50LCBzdGVwUGFuZWxFbGVtZW50cyk7XG5cbiAgICAgICAgICAgIHJldHVybiBpbmRleCAhPT0gc3RlcExlbiAtIDE7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICAvKipcbiAgICAgKiBDb250ZW50IHRlbXBsYXRlLlxuICAgICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjxTdGVwUGFuZWxDb250ZW50VGVtcGxhdGVDb250ZXh0Pn1cbiAgICAgKiBAZ3JvdXAgVGVtcGxhdGVzXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnY29udGVudCcpIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8U3RlcFBhbmVsQ29udGVudFRlbXBsYXRlQ29udGV4dD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFByaW1lVGVtcGxhdGUpIHRlbXBsYXRlczogUXVlcnlMaXN0PFByaW1lVGVtcGxhdGU+IHwgdW5kZWZpbmVkO1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcz8uZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGNTdGVwcGVyLnVwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwLXBhbmVscycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZTogYCA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5wLXN0ZXBwYW5lbHNdJzogJ3RydWUnLFxuICAgICAgICAnW2NsYXNzLnAtY29tcG9uZW50XSc6ICd0cnVlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwUGFuZWxzIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7fVxuXG4vKipcbiAqIFN0ZXBwZXIgaXMgYSBjb21wb25lbnQgdGhhdCBzdHJlYW1saW5lcyBhIHdpemFyZC1saWtlIHdvcmtmbG93LCBvcmdhbml6aW5nIGNvbnRlbnQgaW50byBjb2hlcmVudCBzdGVwcyBhbmQgdmlzdWFsbHkgZ3VpZGluZyB1c2VycyB0aHJvdWdoIGEgbnVtYmVyZWQgcHJvZ3Jlc3Npb24gaW4gYSBtdWx0aXN0ZXAgcHJvY2Vzcy5cbiAqIEBncm91cCBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1zdGVwcGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbU3RlcHBlclN0eWxlXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MucC1zdGVwcGVyXSc6ICd0cnVlJyxcbiAgICAgICAgJ1tjbGFzcy5wLWNvbXBvbmVudF0nOiAndHJ1ZScsXG4gICAgICAgICdbYXR0ci5yb2xlXSc6ICdcInRhYmxpc3RcIicsXG4gICAgICAgICdbYXR0ci5pZF0nOiAnaWQoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlciBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEEgbW9kZWwgdGhhdCBjYW4gaG9sZCBhIG51bWVyaWMgdmFsdWUgb3IgYmUgdW5kZWZpbmVkLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAgICogQHR5cGUge01vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD59XG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgdmFsdWU6IE1vZGVsU2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4gPSBtb2RlbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogQSBib29sZWFuIHZhcmlhYmxlIHRoYXQgY2FwdHVyZXMgdXNlciBpbnB1dC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICogQHR5cGUge0lucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4gPn1cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBsaW5lYXI6IElucHV0U2lnbmFsV2l0aFRyYW5zZm9ybTxhbnksIGJvb2xlYW4+ID0gaW5wdXQoZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiAodjogYW55IHwgYm9vbGVhbikgPT4gdHJhbnNmb3JtVG9Cb29sZWFuKHYpLFxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIFRyYW5zaXRpb24gb3B0aW9ucyBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgNDAwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpXG4gICAgICogQHR5cGUge0lucHV0U2lnbmFsPHN0cmluZyA+fVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIHRyYW5zaXRpb25PcHRpb25zOiBJbnB1dFNpZ25hbDxzdHJpbmc+ID0gaW5wdXQ8c3RyaW5nPignNDAwbXMgY3ViaWMtYmV6aWVyKDAuODYsIDAsIDAuMDcsIDEpJyk7XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoU3RlcHBlclN0eWxlKTtcblxuICAgIGlkID0gc2lnbmFsPHN0cmluZz4oVW5pcXVlQ29tcG9uZW50SWQoKSk7XG5cbiAgICBzdGVwSXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oU3RlcEl0ZW0pO1xuXG4gICAgc3RlcHMgPSBjb250ZW50Q2hpbGRyZW4oU3RlcCk7XG5cbiAgICBzdGVwTGlzdCA9IGNvbnRlbnRDaGlsZChTdGVwTGlzdCk7XG5cbiAgICB1cGRhdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBpc1N0ZXBBY3RpdmUodmFsdWU6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSgpID09PSB2YWx1ZTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1N0ZXBwZXIsIFN0ZXBMaXN0LCBTdGVwUGFuZWxzLCBTdGVwUGFuZWwsIFN0ZXBJdGVtLCBTdGVwLCBTdGVwcGVyU2VwYXJhdG9yLCBTaGFyZWRNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtTdGVwcGVyLCBTdGVwTGlzdCwgU3RlcFBhbmVscywgU3RlcFBhbmVsLCBTdGVwSXRlbSwgU3RlcCwgU3RlcHBlclNlcGFyYXRvciwgU2hhcmVkTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcHBlck1vZHVsZSB7fVxuIl19
|