primeng 20.0.0-rc.1 → 20.0.0-rc.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/accordion/index.d.ts +1 -3
- package/autocomplete/index.d.ts +8 -7
- package/baseeditableholder/index.d.ts +14 -5
- package/basemodelholder/index.d.ts +12 -0
- package/button/index.d.ts +10 -13
- package/cascadeselect/index.d.ts +7 -5
- package/chart/index.d.ts +1 -0
- package/checkbox/index.d.ts +9 -7
- package/colorpicker/index.d.ts +8 -7
- package/datepicker/index.d.ts +8 -7
- package/editor/index.d.ts +9 -8
- package/fesm2022/primeng-accordion.mjs +15 -17
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-autocomplete.mjs +49 -52
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-badge.mjs +1 -2
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-base.mjs +5 -170
- package/fesm2022/primeng-base.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -1
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-baseeditableholder.mjs +25 -7
- package/fesm2022/primeng-baseeditableholder.mjs.map +1 -1
- package/fesm2022/primeng-basemodelholder.mjs +25 -0
- package/fesm2022/primeng-basemodelholder.mjs.map +1 -0
- package/fesm2022/primeng-breadcrumb.mjs +9 -9
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +45 -72
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +1 -2
- package/fesm2022/primeng-buttongroup.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +3 -4
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +13 -13
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +33 -36
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +1 -1
- package/fesm2022/primeng-chart.mjs.map +1 -1
- package/fesm2022/primeng-checkbox.mjs +20 -23
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +23 -3
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-colorpicker.mjs +35 -37
- package/fesm2022/primeng-colorpicker.mjs.map +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +25 -17
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +17 -9
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +7 -15
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +3 -3
- package/fesm2022/primeng-dataview.mjs.map +1 -1
- package/fesm2022/primeng-datepicker.mjs +191 -142
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-dialog.mjs +13 -13
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -2
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dom.mjs +10 -5
- package/fesm2022/primeng-dom.mjs.map +1 -1
- package/fesm2022/primeng-drawer.mjs +5 -6
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +27 -31
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +8 -10
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +7 -9
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +67 -55
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +2 -3
- package/fesm2022/primeng-floatlabel.mjs.map +1 -1
- package/fesm2022/primeng-galleria.mjs +21 -21
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubledown.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleleft.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleright.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledoubleup.mjs +14 -18
- package/fesm2022/primeng-icons-angledoubleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-angledown.mjs +10 -14
- package/fesm2022/primeng-icons-angledown.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleleft.mjs +10 -14
- package/fesm2022/primeng-icons-angleleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleright.mjs +10 -14
- package/fesm2022/primeng-icons-angleright.mjs.map +1 -1
- package/fesm2022/primeng-icons-angleup.mjs +10 -14
- package/fesm2022/primeng-icons-angleup.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdown.mjs +29 -32
- package/fesm2022/primeng-icons-arrowdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownleft.mjs +10 -14
- package/fesm2022/primeng-icons-arrowdownleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowdownright.mjs +10 -14
- package/fesm2022/primeng-icons-arrowdownright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowleft.mjs +29 -32
- package/fesm2022/primeng-icons-arrowleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowright.mjs +14 -18
- package/fesm2022/primeng-icons-arrowright.mjs.map +1 -1
- package/fesm2022/primeng-icons-arrowup.mjs +29 -32
- package/fesm2022/primeng-icons-arrowup.mjs.map +1 -1
- package/fesm2022/primeng-icons-ban.mjs +25 -28
- package/fesm2022/primeng-icons-ban.mjs.map +1 -1
- package/fesm2022/primeng-icons-bars.mjs +14 -18
- package/fesm2022/primeng-icons-bars.mjs.map +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +21 -29
- package/fesm2022/primeng-icons-baseicon.mjs.map +1 -1
- package/fesm2022/primeng-icons-blank.mjs +3 -11
- package/fesm2022/primeng-icons-blank.mjs.map +1 -1
- package/fesm2022/primeng-icons-calendar.mjs +10 -14
- package/fesm2022/primeng-icons-calendar.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretleft.mjs +10 -14
- package/fesm2022/primeng-icons-caretleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-caretright.mjs +10 -14
- package/fesm2022/primeng-icons-caretright.mjs.map +1 -1
- package/fesm2022/primeng-icons-check.mjs +10 -14
- package/fesm2022/primeng-icons-check.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevrondown.mjs +10 -14
- package/fesm2022/primeng-icons-chevrondown.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronleft.mjs +10 -14
- package/fesm2022/primeng-icons-chevronleft.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronright.mjs +10 -14
- package/fesm2022/primeng-icons-chevronright.mjs.map +1 -1
- package/fesm2022/primeng-icons-chevronup.mjs +10 -14
- package/fesm2022/primeng-icons-chevronup.mjs.map +1 -1
- package/fesm2022/primeng-icons-exclamationtriangle.mjs +41 -44
- package/fesm2022/primeng-icons-exclamationtriangle.mjs.map +1 -1
- package/fesm2022/primeng-icons-eye.mjs +14 -18
- package/fesm2022/primeng-icons-eye.mjs.map +1 -1
- package/fesm2022/primeng-icons-eyeslash.mjs +29 -32
- package/fesm2022/primeng-icons-eyeslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-filter.mjs +25 -28
- package/fesm2022/primeng-icons-filter.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterfill.mjs +10 -14
- package/fesm2022/primeng-icons-filterfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-filterslash.mjs +29 -32
- package/fesm2022/primeng-icons-filterslash.mjs.map +1 -1
- package/fesm2022/primeng-icons-home.mjs +29 -32
- package/fesm2022/primeng-icons-home.mjs.map +1 -1
- package/fesm2022/primeng-icons-infocircle.mjs +29 -32
- package/fesm2022/primeng-icons-infocircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-minus.mjs +10 -14
- package/fesm2022/primeng-icons-minus.mjs.map +1 -1
- package/fesm2022/primeng-icons-pencil.mjs +25 -28
- package/fesm2022/primeng-icons-pencil.mjs.map +1 -1
- package/fesm2022/primeng-icons-plus.mjs +25 -28
- package/fesm2022/primeng-icons-plus.mjs.map +1 -1
- package/fesm2022/primeng-icons-refresh.mjs +29 -32
- package/fesm2022/primeng-icons-refresh.mjs.map +1 -1
- package/fesm2022/primeng-icons-search.mjs +29 -32
- package/fesm2022/primeng-icons-search.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchminus.mjs +29 -32
- package/fesm2022/primeng-icons-searchminus.mjs.map +1 -1
- package/fesm2022/primeng-icons-searchplus.mjs +29 -32
- package/fesm2022/primeng-icons-searchplus.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortalt.mjs +37 -40
- package/fesm2022/primeng-icons-sortalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountdown.mjs +25 -28
- package/fesm2022/primeng-icons-sortamountdown.mjs.map +1 -1
- package/fesm2022/primeng-icons-sortamountupalt.mjs +25 -28
- package/fesm2022/primeng-icons-sortamountupalt.mjs.map +1 -1
- package/fesm2022/primeng-icons-spinner.mjs +25 -28
- package/fesm2022/primeng-icons-spinner.mjs.map +1 -1
- package/fesm2022/primeng-icons-star.mjs +25 -28
- package/fesm2022/primeng-icons-star.mjs.map +1 -1
- package/fesm2022/primeng-icons-starfill.mjs +25 -28
- package/fesm2022/primeng-icons-starfill.mjs.map +1 -1
- package/fesm2022/primeng-icons-thlarge.mjs +29 -32
- package/fesm2022/primeng-icons-thlarge.mjs.map +1 -1
- package/fesm2022/primeng-icons-times.mjs +10 -14
- package/fesm2022/primeng-icons-times.mjs.map +1 -1
- package/fesm2022/primeng-icons-timescircle.mjs +29 -32
- package/fesm2022/primeng-icons-timescircle.mjs.map +1 -1
- package/fesm2022/primeng-icons-trash.mjs +29 -32
- package/fesm2022/primeng-icons-trash.mjs.map +1 -1
- package/fesm2022/primeng-icons-undo.mjs +29 -32
- package/fesm2022/primeng-icons-undo.mjs.map +1 -1
- package/fesm2022/primeng-icons-upload.mjs +29 -32
- package/fesm2022/primeng-icons-upload.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowmaximize.mjs +29 -32
- package/fesm2022/primeng-icons-windowmaximize.mjs.map +1 -1
- package/fesm2022/primeng-icons-windowminimize.mjs +29 -32
- package/fesm2022/primeng-icons-windowminimize.mjs.map +1 -1
- package/fesm2022/primeng-iftalabel.mjs +2 -3
- package/fesm2022/primeng-iftalabel.mjs.map +1 -1
- package/fesm2022/primeng-image.mjs +13 -13
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +15 -10
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroup.mjs +6 -7
- package/fesm2022/primeng-inputgroup.mjs.map +1 -1
- package/fesm2022/primeng-inputmask.mjs +31 -34
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +45 -48
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +26 -28
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputtext.mjs +14 -9
- package/fesm2022/primeng-inputtext.mjs.map +1 -1
- package/fesm2022/primeng-knob.mjs +22 -24
- package/fesm2022/primeng-knob.mjs.map +1 -1
- package/fesm2022/primeng-listbox.mjs +44 -47
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +12 -12
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +14 -14
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +3 -3
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +50 -52
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +13 -12
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +5 -5
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +6 -1
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +3 -3
- package/fesm2022/primeng-overlaybadge.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +9 -9
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +6 -7
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +19 -20
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +29 -32
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +38 -37
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +19 -19
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +2 -2
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-radiobutton.mjs +21 -24
- package/fesm2022/primeng-radiobutton.mjs.map +1 -1
- package/fesm2022/primeng-rating.mjs +21 -24
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-ripple.mjs +2 -3
- package/fesm2022/primeng-ripple.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +9 -9
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +1 -2
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +4 -4
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +48 -51
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +17 -20
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-slider.mjs +28 -30
- package/fesm2022/primeng-slider.mjs.map +1 -1
- package/fesm2022/primeng-speeddial.mjs +3 -3
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +3 -3
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +33 -9
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-table.mjs +83 -88
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +5 -5
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-textarea.mjs +13 -9
- package/fesm2022/primeng-textarea.mjs.map +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +5 -5
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +21 -19
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +15 -18
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +16 -19
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +12 -12
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +32 -29
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +118 -117
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/galleria/index.d.ts +1 -1
- package/icons/angledoubledown/index.d.ts +1 -1
- package/icons/angledoubleleft/index.d.ts +1 -1
- package/icons/angledoubleright/index.d.ts +1 -1
- package/icons/angledoubleup/index.d.ts +1 -1
- package/icons/angledown/index.d.ts +1 -1
- package/icons/angleleft/index.d.ts +1 -1
- package/icons/angleright/index.d.ts +1 -1
- package/icons/angleup/index.d.ts +1 -1
- package/icons/arrowdown/index.d.ts +1 -1
- package/icons/arrowdownleft/index.d.ts +1 -1
- package/icons/arrowdownright/index.d.ts +1 -1
- package/icons/arrowleft/index.d.ts +1 -1
- package/icons/arrowright/index.d.ts +1 -1
- package/icons/arrowup/index.d.ts +1 -1
- package/icons/ban/index.d.ts +1 -1
- package/icons/bars/index.d.ts +1 -1
- package/icons/baseicon/index.d.ts +11 -18
- package/icons/blank/index.d.ts +1 -1
- package/icons/calendar/index.d.ts +1 -1
- package/icons/caretleft/index.d.ts +1 -1
- package/icons/caretright/index.d.ts +1 -1
- package/icons/check/index.d.ts +1 -1
- package/icons/chevrondown/index.d.ts +1 -1
- package/icons/chevronleft/index.d.ts +1 -1
- package/icons/chevronright/index.d.ts +1 -1
- package/icons/chevronup/index.d.ts +1 -1
- package/icons/exclamationtriangle/index.d.ts +1 -1
- package/icons/eye/index.d.ts +1 -1
- package/icons/eyeslash/index.d.ts +1 -1
- package/icons/filter/index.d.ts +1 -1
- package/icons/filterfill/index.d.ts +1 -1
- package/icons/filterslash/index.d.ts +1 -1
- package/icons/home/index.d.ts +1 -1
- package/icons/infocircle/index.d.ts +1 -1
- package/icons/minus/index.d.ts +1 -1
- package/icons/pencil/index.d.ts +1 -1
- package/icons/plus/index.d.ts +1 -1
- package/icons/refresh/index.d.ts +1 -1
- package/icons/search/index.d.ts +1 -1
- package/icons/searchminus/index.d.ts +1 -1
- package/icons/searchplus/index.d.ts +1 -1
- package/icons/sortalt/index.d.ts +1 -1
- package/icons/sortamountdown/index.d.ts +1 -1
- package/icons/sortamountupalt/index.d.ts +1 -1
- package/icons/spinner/index.d.ts +1 -1
- package/icons/star/index.d.ts +1 -1
- package/icons/starfill/index.d.ts +1 -1
- package/icons/thlarge/index.d.ts +1 -1
- package/icons/times/index.d.ts +1 -1
- package/icons/timescircle/index.d.ts +1 -1
- package/icons/trash/index.d.ts +1 -1
- package/icons/undo/index.d.ts +1 -1
- package/icons/upload/index.d.ts +1 -1
- package/icons/windowmaximize/index.d.ts +1 -1
- package/icons/windowminimize/index.d.ts +1 -1
- package/inplace/index.d.ts +1 -0
- package/inputmask/index.d.ts +9 -10
- package/inputnumber/index.d.ts +8 -7
- package/inputotp/index.d.ts +7 -5
- package/inputtext/index.d.ts +10 -4
- package/knob/index.d.ts +7 -5
- package/listbox/index.d.ts +8 -7
- package/multiselect/index.d.ts +8 -7
- package/overlay/index.d.ts +1 -3
- package/overlaybadge/index.d.ts +1 -3
- package/package.json +201 -197
- package/password/index.d.ts +7 -5
- package/popover/index.d.ts +1 -3
- package/radiobutton/index.d.ts +9 -7
- package/rating/index.d.ts +8 -7
- package/ripple/index.d.ts +1 -3
- package/scroller/index.d.ts +1 -3
- package/select/index.d.ts +8 -7
- package/selectbutton/index.d.ts +9 -8
- package/slider/index.d.ts +9 -8
- package/stepper/index.d.ts +4 -0
- package/table/index.d.ts +9 -14
- package/textarea/index.d.ts +9 -4
- package/togglebutton/index.d.ts +8 -7
- package/toggleswitch/index.d.ts +7 -5
- package/treeselect/index.d.ts +7 -5
- package/treetable/index.d.ts +2 -4
@@ -333,9 +333,9 @@ class MegaMenuSub extends BaseComponent {
|
|
333
333
|
<ng-container *ngIf="isItemGroup(processedItem)">
|
334
334
|
<ng-container *ngIf="!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate">
|
335
335
|
@if (orientation === 'horizontal' || mobileActive) {
|
336
|
-
<
|
336
|
+
<svg data-p-icon="angle-down" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
|
337
337
|
} @else {
|
338
|
-
<
|
338
|
+
<svg data-p-icon="angle-right" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
|
339
339
|
}
|
340
340
|
</ng-container>
|
341
341
|
<ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
|
@@ -372,8 +372,8 @@ class MegaMenuSub extends BaseComponent {
|
|
372
372
|
<p-badge *ngIf="getItemProp(processedItem, 'badge')" [styleClass]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
|
373
373
|
<ng-container *ngIf="isItemGroup(processedItem)">
|
374
374
|
<ng-container *ngIf="!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate">
|
375
|
-
<
|
376
|
-
<
|
375
|
+
<svg data-p-icon="angle-down" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
|
376
|
+
<svg data-p-icon="angle-right" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
|
377
377
|
</ng-container>
|
378
378
|
<ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
|
379
379
|
</ng-container>
|
@@ -407,7 +407,7 @@ class MegaMenuSub extends BaseComponent {
|
|
407
407
|
</li>
|
408
408
|
</ng-template>
|
409
409
|
</ul>
|
410
|
-
`, isInline: true, dependencies: [{ kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub, p-megamenu-sub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "queryMatches", "mobileActive", "scrollHeight", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: CommonModule }, { 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: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: AngleDownIcon, selector: "
|
410
|
+
`, isInline: true, dependencies: [{ kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub, p-megamenu-sub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "queryMatches", "mobileActive", "scrollHeight", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: CommonModule }, { 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: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: Ripple, selector: "[pRipple]" }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: AngleDownIcon, selector: "[data-p-icon=\"angle-down\"]" }, { kind: "component", type: AngleRightIcon, selector: "[data-p-icon=\"angle-right\"]" }, { kind: "ngmodule", type: BadgeModule }, { kind: "component", type: i4.Badge, selector: "p-badge", inputs: ["styleClass", "badgeSize", "size", "severity", "value", "badgeDisabled"] }, { kind: "ngmodule", type: SharedModule }], encapsulation: i0.ViewEncapsulation.None });
|
411
411
|
}
|
412
412
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MegaMenuSub, decorators: [{
|
413
413
|
type: Component,
|
@@ -494,9 +494,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
494
494
|
<ng-container *ngIf="isItemGroup(processedItem)">
|
495
495
|
<ng-container *ngIf="!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate">
|
496
496
|
@if (orientation === 'horizontal' || mobileActive) {
|
497
|
-
<
|
497
|
+
<svg data-p-icon="angle-down" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true" />
|
498
498
|
} @else {
|
499
|
-
<
|
499
|
+
<svg data-p-icon="angle-right" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
|
500
500
|
}
|
501
501
|
</ng-container>
|
502
502
|
<ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
|
@@ -533,8 +533,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
533
533
|
<p-badge *ngIf="getItemProp(processedItem, 'badge')" [styleClass]="getItemProp(processedItem, 'badgeStyleClass')" [value]="getItemProp(processedItem, 'badge')" />
|
534
534
|
<ng-container *ngIf="isItemGroup(processedItem)">
|
535
535
|
<ng-container *ngIf="!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate">
|
536
|
-
<
|
537
|
-
<
|
536
|
+
<svg data-p-icon="angle-down" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'horizontal'" [attr.aria-hidden]="true" />
|
537
|
+
<svg data-p-icon="angle-right" [class]="cx('submenuIcon')" [attr.data-pc-section]="'submenuicon'" *ngIf="orientation === 'vertical'" [attr.aria-hidden]="true" />
|
538
538
|
</ng-container>
|
539
539
|
<ng-template *ngTemplateOutlet="megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate" [attr.data-pc-section]="'submenuicon'" [attr.aria-hidden]="true"></ng-template>
|
540
540
|
</ng-container>
|
@@ -1318,7 +1318,7 @@ class MegaMenu extends BaseComponent {
|
|
1318
1318
|
(click)="menuButtonClick($event)"
|
1319
1319
|
(keydown)="menuButtonKeydown($event)"
|
1320
1320
|
>
|
1321
|
-
<
|
1321
|
+
<svg data-p-icon="bars" *ngIf="!buttonIconTemplate && !_buttonIconTemplate" />
|
1322
1322
|
<ng-template *ngTemplateOutlet="buttonIconTemplate || _buttonIconTemplate"></ng-template>
|
1323
1323
|
</a>
|
1324
1324
|
</ng-container>
|
@@ -1350,7 +1350,7 @@ class MegaMenu extends BaseComponent {
|
|
1350
1350
|
<div [class]="cx('end')" *ngIf="endTemplate || _endTemplate">
|
1351
1351
|
<ng-container *ngTemplateOutlet="endTemplate || _endTemplate"></ng-container>
|
1352
1352
|
</div>
|
1353
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub, p-megamenu-sub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "queryMatches", "mobileActive", "scrollHeight", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: BarsIcon, selector: "
|
1353
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "component", type: MegaMenuSub, selector: "p-megaMenuSub, p-megamenu-sub", inputs: ["id", "items", "itemTemplate", "menuId", "ariaLabel", "ariaLabelledBy", "level", "focusedItemId", "disabled", "orientation", "activeItem", "submenu", "queryMatches", "mobileActive", "scrollHeight", "tabindex", "root"], outputs: ["itemClick", "itemMouseEnter", "menuFocus", "menuBlur", "menuKeydown"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "component", type: BarsIcon, selector: "[data-p-icon=\"bars\"]" }, { kind: "ngmodule", type: BadgeModule }, { kind: "ngmodule", type: SharedModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
1354
1354
|
}
|
1355
1355
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: MegaMenu, decorators: [{
|
1356
1356
|
type: Component,
|
@@ -1376,7 +1376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
1376
1376
|
(click)="menuButtonClick($event)"
|
1377
1377
|
(keydown)="menuButtonKeydown($event)"
|
1378
1378
|
>
|
1379
|
-
<
|
1379
|
+
<svg data-p-icon="bars" *ngIf="!buttonIconTemplate && !_buttonIconTemplate" />
|
1380
1380
|
<ng-template *ngTemplateOutlet="buttonIconTemplate || _buttonIconTemplate"></ng-template>
|
1381
1381
|
</a>
|
1382
1382
|
</ng-container>
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"primeng-megamenu.mjs","sources":["../../src/megamenu/style/megamenustyle.ts","../../src/megamenu/megamenu.ts","../../src/megamenu/primeng-megamenu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/megamenu';\nimport { BaseStyle } from 'primeng/base';\n\nconst inlineStyles = {\n rootList: ({ instance }) => ({ 'max-height': instance.scrollHeight, overflow: 'auto' })\n};\n\nconst classes = {\n root: ({ instance }) => [\n 'p-megamenu p-component',\n {\n 'p-megamenu-mobile': instance.queryMatches,\n 'p-megamenu-mobile-active': instance.mobileActive,\n 'p-megamenu-horizontal': instance.orientation === 'horizontal',\n 'p-megamenu-vertical': instance.orientation === 'vertical'\n }\n ],\n start: 'p-megamenu-start',\n button: 'p-megamenu-button',\n rootList: 'p-megamenu-root-list',\n submenuLabel: ({ instance, processedItem }) => [\n 'p-megamenu-submenu-label',\n {\n 'p-disabled': instance.isItemDisabled(processedItem)\n }\n ],\n item: ({ instance, processedItem }) => [\n 'p-megamenu-item',\n instance.getItemProp(processedItem, 'styleClass'),\n instance.getItemProp(processedItem, 'class'),\n {\n 'p-megamenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }\n ],\n itemContent: 'p-megamenu-item-content',\n itemLink: 'p-megamenu-item-link',\n itemIcon: 'p-megamenu-item-icon',\n itemLabel: 'p-megamenu-item-label',\n submenuIcon: 'p-megamenu-submenu-icon',\n overlay: 'p-megamenu-overlay',\n grid: 'p-megamenu-grid',\n column: ({ instance, processedItem }) => {\n let length = instance.isItemGroup(processedItem) ? processedItem.items.length : 0;\n let columnClass;\n\n if (instance.megaMenu.queryMatches) columnClass = 'p-megamenu-col-12';\n else {\n switch (length) {\n case 2:\n columnClass = 'p-megamenu-col-6';\n break;\n\n case 3:\n columnClass = 'p-megamenu-col-4';\n break;\n\n case 4:\n columnClass = 'p-megamenu-col-3';\n break;\n\n case 6:\n columnClass = 'p-megamenu-col-2';\n break;\n\n default:\n columnClass = 'p-megamenu-col-12';\n break;\n }\n }\n\n return columnClass;\n },\n submenu: 'p-megamenu-submenu',\n separator: 'p-megamenu-separator',\n end: 'p-megamenu-end'\n};\n\n@Injectable()\nexport class MegaMenuStyle extends BaseStyle {\n name = 'megamenu';\n\n theme = style;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * MegaMenu is navigation component that displays submenus together.\n *\n * [Live Demo](https://www.primeng.org/megamenu/)\n *\n * @module megamenustyle\n *\n */\n\nexport enum MegaMenuClasses {\n /**\n * Class name of the root element\n */\n root = 'p-megamenu',\n /**\n * Class name of the start element\n */\n start = 'p-megamenu-start',\n /**\n * Class name of the button element\n */\n button = 'p-megamenu-button',\n /**\n * Class name of the root list element\n */\n rootList = 'p-megamenu-root-list',\n /**\n * Class name of the submenu item element\n */\n submenuItem = 'p-megamenu-submenu-item',\n /**\n * Class name of the item element\n */\n item = 'p-megamenu-item',\n /**\n * Class name of the item content element\n */\n itemContent = 'p-megamenu-item-content',\n /**\n * Class name of the item link element\n */\n itemLink = 'p-megamenu-item-link',\n /**\n * Class name of the item icon element\n */\n itemIcon = 'p-megamenu-item-icon',\n /**\n * Class name of the item label element\n */\n itemLabel = 'p-megamenu-item-label',\n /**\n * Class name of the submenu icon element\n */\n submenuIcon = 'p-megamenu-submenu-icon',\n /**\n * Class name of the panel element\n */\n panel = 'p-megamenu-panel',\n /**\n * Class name of the grid element\n */\n grid = 'p-megamenu-grid',\n /**\n * Class name of the submenu element\n */\n submenu = 'p-megamenu-submenu',\n /**\n * Class name of the submenu item label element\n */\n submenuItemLabel = 'p-megamenu-submenu-item-label',\n /**\n * Class name of the separator element\n */\n separator = 'p-megamenu-separator',\n /**\n * Class name of the end element\n */\n end = 'p-megamenu-end'\n}\n\nexport interface MegaMenuStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { findLastIndex, findSingle, focus, isEmpty, isNotEmpty, isPrintableCharacter, isTouchDevice, resolve, uuid } from '@primeuix/utils';\nimport { MegaMenuItem, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { AngleDownIcon, AngleRightIcon, BarsIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { MegaMenuStyle } from './style/megamenustyle';\n\n@Component({\n selector: 'p-megaMenuSub, p-megamenu-sub',\n standalone: true,\n imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleDownIcon, AngleRightIcon, BadgeModule, SharedModule],\n template: `\n <ul\n *ngIf=\"isSubmenuVisible(submenu)\"\n #menubar\n [class]=\"root ? cx('rootList') : cx('submenu')\"\n [style]=\"sx('rootList')\"\n [attr.role]=\"root ? 'menubar' : 'menu'\"\n [attr.id]=\"id\"\n [attr.aria-orientation]=\"orientation\"\n [tabindex]=\"tabindex\"\n [attr.aria-activedescendant]=\"focusedItemId\"\n [attr.data-pc-section]=\"root ? 'root' : 'submenu'\"\n (keydown)=\"menuKeydown.emit($event)\"\n (focus)=\"menuFocus.emit($event)\"\n (blur)=\"menuBlur.emit($event)\"\n >\n <li *ngIf=\"submenu\" [class]=\"cn(cx('submenuLabel'), getItemProp(submenu, 'class'))\" [style]=\"getItemProp(submenu, 'style')\" role=\"presentation\">\n {{ getItemLabel(submenu) }}\n </li>\n <ng-template ngFor let-processedItem [ngForOf]=\"items\" let-index=\"index\">\n <li\n *ngIf=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n [attr.id]=\"getItemId(processedItem)\"\n [style]=\"getItemProp(processedItem, 'style')\"\n [class]=\"cn(cx('separator'), this.getItemProp(processedItem, 'class'))\"\n role=\"separator\"\n [attr.data-pc-section]=\"'separator'\"\n ></li>\n <li\n #listItem\n *ngIf=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n role=\"menuitem\"\n [attr.id]=\"getItemId(processedItem)\"\n [attr.data-pc-section]=\"'menuitem'\"\n [attr.data-p-highlight]=\"isItemActive(processedItem)\"\n [attr.data-p-focused]=\"isItemFocused(processedItem)\"\n [attr.data-p-disabled]=\"isItemDisabled(processedItem)\"\n [attr.aria-label]=\"getItemLabel(processedItem)\"\n [attr.aria-disabled]=\"isItemDisabled(processedItem) || undefined\"\n [attr.aria-haspopup]=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n [attr.aria-expanded]=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n [attr.aria-level]=\"level + 1\"\n [attr.aria-setsize]=\"getAriaSetSize()\"\n [attr.aria-posinset]=\"getAriaPosInset(index)\"\n [ngStyle]=\"getItemProp(processedItem, 'style')\"\n [class]=\"cn(cx('item', { processedItem }), processedItem?.styleClass)\"\n pTooltip\n [tooltipOptions]=\"getItemProp(processedItem, 'tooltipOptions')\"\n >\n <div [class]=\"cx('itemContent')\" [attr.data-pc-section]=\"'content'\" (click)=\"onItemClick($event, processedItem)\" (mouseenter)=\"onItemMouseEnter({ $event, processedItem })\">\n <ng-container *ngIf=\"!itemTemplate\">\n <a\n *ngIf=\"!getItemProp(processedItem, 'routerLink')\"\n [attr.href]=\"getItemProp(processedItem, 'url')\"\n [attr.data-automationid]=\"getItemProp(processedItem, 'automationId')\"\n [attr.data-pc-section]=\"'action'\"\n [target]=\"getItemProp(processedItem, 'target')\"\n [class]=\"cx('itemLink')\"\n [attr.tabindex]=\"-1\"\n pRipple\n >\n <span\n *ngIf=\"getItemProp(processedItem, 'icon')\"\n [class]=\"cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))\"\n [ngStyle]=\"getItemProp(processedItem, 'iconStyle')\"\n [attr.data-pc-section]=\"'icon'\"\n [attr.tabindex]=\"-1\"\n >\n </span>\n <span *ngIf=\"getItemProp(processedItem, 'escape'); else htmlLabel\" [class]=\"cx('itemLabel')\" [attr.data-pc-section]=\"'label'\">\n {{ getItemLabel(processedItem) }}\n </span>\n <ng-template #htmlLabel>\n <span [class]=\"cx('itemLabel')\" [innerHTML]=\"getItemLabel(processedItem)\" [attr.data-pc-section]=\"'label'\"></span>\n </ng-template>\n <p-badge *ngIf=\"getItemProp(processedItem, 'badge')\" [class]=\"getItemProp(processedItem, 'badgeStyleClass')\" [value]=\"getItemProp(processedItem, 'badge')\" />\n <ng-container *ngIf=\"isItemGroup(processedItem)\">\n <ng-container *ngIf=\"!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate\">\n @if (orientation === 'horizontal' || mobileActive) {\n <AngleDownIcon [class]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" [attr.aria-hidden]=\"true\" />\n } @else {\n <AngleRightIcon [class]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" *ngIf=\"orientation === 'vertical'\" [attr.aria-hidden]=\"true\" />\n }\n </ng-container>\n <ng-template *ngTemplateOutlet=\"megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate\" [attr.data-pc-section]=\"'submenuicon'\" [attr.aria-hidden]=\"true\"></ng-template>\n </ng-container>\n </a>\n <a\n *ngIf=\"getItemProp(processedItem, 'routerLink')\"\n [routerLink]=\"getItemProp(processedItem, 'routerLink')\"\n [attr.data-automationid]=\"getItemProp(processedItem, 'automationId')\"\n [attr.tabindex]=\"-1\"\n [attr.data-pc-section]=\"'action'\"\n [queryParams]=\"getItemProp(processedItem, 'queryParams')\"\n [routerLinkActive]=\"'p-megamenu-item-link-active'\"\n [routerLinkActiveOptions]=\"getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }\"\n [target]=\"getItemProp(processedItem, 'target')\"\n [class]=\"cx('itemLink')\"\n [fragment]=\"getItemProp(processedItem, 'fragment')\"\n [queryParamsHandling]=\"getItemProp(processedItem, 'queryParamsHandling')\"\n [preserveFragment]=\"getItemProp(processedItem, 'preserveFragment')\"\n [skipLocationChange]=\"getItemProp(processedItem, 'skipLocationChange')\"\n [replaceUrl]=\"getItemProp(processedItem, 'replaceUrl')\"\n [state]=\"getItemProp(processedItem, 'state')\"\n pRipple\n >\n <span\n [class]=\"cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))\"\n *ngIf=\"getItemProp(processedItem, 'icon')\"\n [ngStyle]=\"getItemProp(processedItem, 'iconStyle')\"\n [attr.data-pc-section]=\"'icon'\"\n [attr.tabindex]=\"-1\"\n ></span>\n <span [class]=\"cx('itemLabel')\" *ngIf=\"getItemProp(processedItem, 'escape'); else htmlRouteLabel\">{{ getItemLabel(processedItem) }}</span>\n <ng-template #htmlRouteLabel><span [class]=\"cx('itemLabel')\" [innerHTML]=\"getItemLabel(processedItem)\" [attr.data-pc-section]=\"'label'\"></span></ng-template>\n <p-badge *ngIf=\"getItemProp(processedItem, 'badge')\" [styleClass]=\"getItemProp(processedItem, 'badgeStyleClass')\" [value]=\"getItemProp(processedItem, 'badge')\" />\n <ng-container *ngIf=\"isItemGroup(processedItem)\">\n <ng-container *ngIf=\"!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate\">\n <AngleDownIcon [styleClass]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" *ngIf=\"orientation === 'horizontal'\" [attr.aria-hidden]=\"true\" />\n <AngleRightIcon [styleClass]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" *ngIf=\"orientation === 'vertical'\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate\" [attr.data-pc-section]=\"'submenuicon'\" [attr.aria-hidden]=\"true\"></ng-template>\n </ng-container>\n </a>\n </ng-container>\n <ng-container *ngIf=\"itemTemplate\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: processedItem.item }\"></ng-template>\n </ng-container>\n </div>\n <div *ngIf=\"isItemVisible(processedItem) && isItemGroup(processedItem)\" [class]=\"cx('overlay')\" [attr.data-pc-section]=\"'panel'\">\n <div [class]=\"cx('grid')\" [attr.data-pc-section]=\"'grid'\">\n <div *ngFor=\"let col of processedItem.items\" [class]=\"cx('column', { processedItem })\">\n <p-megamenu-sub\n *ngFor=\"let submenu of col\"\n [id]=\"getSubListId(submenu)\"\n [submenu]=\"submenu\"\n [items]=\"submenu.items\"\n [itemTemplate]=\"itemTemplate\"\n [mobileActive]=\"mobileActive\"\n [menuId]=\"menuId\"\n [focusedItemId]=\"focusedItemId\"\n [level]=\"level + 1\"\n [root]=\"false\"\n (itemClick)=\"itemClick.emit($event)\"\n (itemMouseEnter)=\"onItemMouseEnter($event)\"\n >\n </p-megamenu-sub>\n </div>\n </div>\n </div>\n </li>\n </ng-template>\n </ul>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class MegaMenuSub extends BaseComponent {\n @Input() id: string | undefined;\n\n @Input() items: any[] | undefined;\n\n @Input() itemTemplate: TemplateRef<any> | undefined;\n\n @Input() menuId: string | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n @Input() ariaLabelledBy: string | undefined;\n\n @Input({ transform: numberAttribute }) level: number = 0;\n\n @Input() focusedItemId: string | undefined;\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @Input() orientation: string | undefined;\n\n @Input() activeItem: any;\n\n @Input() submenu: any;\n\n @Input({ transform: booleanAttribute }) queryMatches: boolean = false;\n\n @Input({ transform: booleanAttribute }) mobileActive: boolean = false;\n\n @Input() scrollHeight: string;\n\n @Input({ transform: numberAttribute }) tabindex: number = 0;\n\n @Input({ transform: booleanAttribute }) root: boolean = false;\n\n @Output() itemClick: EventEmitter<any> = new EventEmitter();\n\n @Output() itemMouseEnter: EventEmitter<any> = new EventEmitter();\n\n @Output() menuFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() menuBlur: EventEmitter<any> = new EventEmitter();\n\n @Output() menuKeydown: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('menubar', { static: true }) menubarViewChild: ElementRef;\n\n megaMenu: MegaMenu = inject(forwardRef(() => MegaMenu));\n\n _componentStyle = inject(MegaMenuStyle);\n\n onItemClick(event: any, processedItem: any) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });\n }\n\n getItemProp(processedItem: any, name: string, params: any | null = null): any {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n }\n\n getItemId(processedItem: any): string {\n return processedItem.item && processedItem.item?.id ? processedItem.item.id : `${this.menuId}_${processedItem.key}`;\n }\n\n getSubListId(processedItem) {\n return `${this.getItemId(processedItem)}_list`;\n }\n\n getItemLabel(processedItem: any): string {\n return this.getItemProp(processedItem, 'label');\n }\n\n isSubmenuVisible(submenu: any) {\n if (this.submenu && !this.root) {\n return this.isItemVisible(submenu);\n } else {\n return true;\n }\n }\n\n isItemVisible(processedItem: any): boolean {\n return this.getItemProp(processedItem, 'visible') !== false;\n }\n\n isItemActive(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n }\n\n isItemDisabled(processedItem: any): boolean {\n return this.getItemProp(processedItem, 'disabled');\n }\n\n isItemFocused(processedItem: any): boolean {\n return this.focusedItemId === this.getItemId(processedItem);\n }\n\n isItemGroup(processedItem: any): boolean {\n return isNotEmpty(processedItem.items);\n }\n\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n\n getAriaPosInset(index: number) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n }\n\n onItemMouseEnter(param: any) {\n const { event, processedItem } = param;\n this.itemMouseEnter.emit({ originalEvent: event, processedItem });\n }\n}\n/**\n * MegaMenu is navigation component that displays submenus together.\n * @group Components\n */\n@Component({\n selector: 'p-megaMenu, p-megamenu, p-mega-menu',\n standalone: true,\n imports: [CommonModule, RouterModule, MegaMenuSub, TooltipModule, BarsIcon, BadgeModule, SharedModule],\n template: `\n <div [class]=\"cx('start')\" *ngIf=\"startTemplate || _startTemplate\">\n <ng-container *ngTemplateOutlet=\"startTemplate || _startTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!buttonTemplate && !_buttonTemplate\">\n <a\n *ngIf=\"model && model.length > 0\"\n #menubutton\n role=\"button\"\n tabindex=\"0\"\n [class]=\"cx('button')\"\n [attr.aria-haspopup]=\"model.length && model.length > 0 ? true : false\"\n [attr.aria-expanded]=\"mobileActive\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"config.translation.aria.navigation\"\n (click)=\"menuButtonClick($event)\"\n (keydown)=\"menuButtonKeydown($event)\"\n >\n <BarsIcon *ngIf=\"!buttonIconTemplate && !_buttonIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"buttonIconTemplate || _buttonIconTemplate\"></ng-template>\n </a>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"buttonTemplate || _buttonTemplate\"></ng-container>\n <p-megamenu-sub\n #rootmenu\n [itemTemplate]=\"itemTemplate || _itemTemplate\"\n [items]=\"processedItems\"\n [attr.id]=\"id + '_list'\"\n [menuId]=\"id\"\n [root]=\"true\"\n [orientation]=\"orientation\"\n [ariaLabel]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [tabindex]=\"!disabled ? tabindex : -1\"\n [activeItem]=\"activeItem()\"\n [level]=\"0\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [focusedItemId]=\"focused ? focusedItemId : undefined\"\n [mobileActive]=\"mobileActive\"\n (itemClick)=\"onItemClick($event)\"\n (menuFocus)=\"onMenuFocus($event)\"\n (menuBlur)=\"onMenuBlur($event)\"\n (menuKeydown)=\"onKeyDown($event)\"\n (itemMouseEnter)=\"onItemMouseEnter($event)\"\n [queryMatches]=\"queryMatches\"\n [scrollHeight]=\"scrollHeight\"\n ></p-megamenu-sub>\n <div [class]=\"cx('end')\" *ngIf=\"endTemplate || _endTemplate\">\n <ng-container *ngTemplateOutlet=\"endTemplate || _endTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MegaMenuStyle],\n host: {\n '[class]': 'cn(cx(\"root\"), styleClass)',\n '[id]': 'id',\n 'data-pc-section': 'root',\n 'data-pc-name': 'megamenu'\n }\n})\nexport class MegaMenu extends BaseComponent implements AfterContentInit, OnDestroy, OnInit {\n /**\n * An array of menuitems.\n * @group Props\n */\n @Input() set model(value: MegaMenuItem[] | undefined) {\n this._model = value;\n this._processedItems = this.createProcessedItems(this._model || []);\n }\n get model(): MegaMenuItem[] | undefined {\n return this._model;\n }\n /**\n * Class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Defines the orientation.\n * @group Props\n */\n @Input() orientation: 'horizontal' | 'vertical' | string = 'horizontal';\n /**\n * Current id state as a string.\n * @group Props\n */\n @Input() id: string | undefined;\n /**\n * Defines a string value that labels an interactive element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Identifier of the underlying input element.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * The breakpoint to define the maximum width boundary.\n * @group Props\n */\n @Input() breakpoint: string = '960px';\n /**\n * Height of the viewport, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n @Input() scrollHeight: string = '20rem';\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number = 0;\n /**\n * Defines template option for start.\n * @group Templates\n */\n @ContentChild('start', { descendants: false }) startTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for end.\n * @group Templates\n */\n @ContentChild('end', { descendants: false }) endTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for menu icon.\n * @group Templates\n */\n @ContentChild('menuicon', { descendants: false }) menuIconTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for submenu icon.\n * @group Templates\n */\n @ContentChild('submenuicon', { descendants: false }) submenuIconTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for submenu icon.\n * @group Templates\n */\n @ContentChild('item', { descendants: false }) itemTemplate: TemplateRef<any> | undefined;\n /**\n * Custom menu button template on responsive mode.\n * @group Templates\n */\n @ContentChild('button', { descendants: false }) buttonTemplate: TemplateRef<any> | undefined;\n /**\n * Custom menu button icon template on responsive mode.\n * @group Templates\n */\n @ContentChild('buttonicon', { descendants: false }) buttonIconTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n @ViewChild('menubutton') menubuttonViewChild: ElementRef | undefined;\n\n @ViewChild('rootmenu') rootmenu: MegaMenuSub | undefined;\n\n _startTemplate: TemplateRef<any> | undefined;\n\n _endTemplate: TemplateRef<any> | undefined;\n\n _menuIconTemplate: TemplateRef<any> | undefined;\n\n _submenuIconTemplate: TemplateRef<any> | undefined;\n\n _itemTemplate: TemplateRef<any> | undefined;\n\n _buttonTemplate: TemplateRef<any> | undefined;\n\n _buttonIconTemplate: TemplateRef<any> | undefined;\n\n outsideClickListener: VoidListener;\n\n resizeListener: (event: any) => void;\n\n dirty: boolean = false;\n\n focused: boolean = false;\n\n activeItem = signal<any>(null);\n\n focusedItemInfo = signal<any>({ index: -1, level: 0, parentKey: '', item: null });\n\n searchValue: string = '';\n\n searchTimeout: any;\n\n _processedItems: any[];\n\n _model: MegaMenuItem[] | undefined;\n\n _componentStyle = inject(MegaMenuStyle);\n\n private matchMediaListener: () => void;\n\n private query: MediaQueryList;\n\n public queryMatches: boolean = false;\n\n public mobileActive: boolean = false;\n\n get visibleItems() {\n const processedItem = isNotEmpty(this.activeItem()) ? this.activeItem() : null;\n\n return processedItem\n ? processedItem.items.reduce((items, col) => {\n col.forEach((submenu) => {\n submenu.items.forEach((a) => {\n items.push(a);\n });\n });\n\n return items;\n }, [])\n : this.processedItems;\n }\n\n get processedItems() {\n if (!this._processedItems || !this._processedItems.length) {\n this._processedItems = this.createProcessedItems(this.model || []);\n }\n return this._processedItems;\n }\n\n get focusedItemId() {\n const focusedItem = this.focusedItemInfo();\n return focusedItem?.item && focusedItem.item?.id ? focusedItem.item.id : isNotEmpty(focusedItem.key) ? `${this.id}_${focusedItem.key}` : null;\n }\n\n constructor() {\n super();\n effect(() => {\n const activeItem = this.activeItem();\n if (isNotEmpty(activeItem)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n });\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.bindMatchMediaListener();\n this.id = this.id || uuid('pn_id_');\n }\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'start':\n this._startTemplate = item.template;\n break;\n\n case 'end':\n this._endTemplate = item.template;\n break;\n\n case 'menuicon':\n this._menuIconTemplate = item.template;\n break;\n\n case 'submenuicon':\n this._submenuIconTemplate = item.template;\n break;\n\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'button':\n this._buttonTemplate = item.template;\n break;\n\n case 'buttonicon':\n this._buttonIconTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n\n bindMatchMediaListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.matchMediaListener) {\n const query = window.matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n this.cd.markForCheck();\n };\n\n query.addEventListener('change', this.matchMediaListener);\n }\n }\n }\n\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n }\n\n createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex?) {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey,\n columnIndex: columnIndex !== undefined ? columnIndex : (<any>parent).columnIndex !== undefined ? (<any>parent).columnIndex : index\n };\n\n newItem['items'] =\n level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n }\n\n getItemProp(item: any, name: string) {\n return item ? resolve(item[name]) : undefined;\n }\n\n onItemClick(event: any) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProcessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, parentKey, item } = processedItem;\n\n this.activeItem.set(null);\n this.focusedItemInfo.set({ index, key, parentKey, item });\n\n this.dirty = !root;\n if (!this.mobileActive) {\n focus(this.rootmenu?.menubarViewChild?.nativeElement, { preventScroll: true });\n }\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n this.hide(originalEvent);\n }\n }\n }\n\n onItemMouseEnter(event) {\n if (!this.mobileActive && this.dirty) {\n this.onItemChange(event);\n }\n }\n\n menuButtonClick(event) {\n this.toggle(event);\n }\n\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n }\n\n toggle(event: MouseEvent) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndexUtils.clear(this.rootmenu.el.nativeElement);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndexUtils.set('menu', this.rootmenu.el.nativeElement, this.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 0);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n }\n\n show() {\n this.focusedItemInfo.set({ index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' });\n\n focus(this.rootmenu?.el.nativeElement);\n }\n\n scrollInView(index: number = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n\n let element;\n\n if (id === null && this.queryMatches) {\n element = this.menubuttonViewChild.nativeElement;\n } else {\n element = findSingle(this.rootmenu?.menubarViewChild?.nativeElement, `li[id=\"${id}\"]`);\n }\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n }\n\n onItemChange(event: any) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, parentKey, items, item } = processedItem;\n const grouped = isNotEmpty(items);\n\n if (grouped) {\n this.activeItem.set(processedItem);\n }\n this.focusedItemInfo.set({ index, key, parentKey, item });\n\n grouped && (this.dirty = true);\n isFocus && focus(this.rootmenu?.menubarViewChild?.nativeElement);\n }\n\n hide(event?, isFocus?: boolean) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.menubuttonViewChild?.nativeElement);\n this.scrollInView();\n }, 100);\n }\n\n this.activeItem.set(null);\n this.focusedItemInfo.set({ index: -1, key: '', parentKey: '', item: null });\n\n isFocus && focus(this.rootmenu?.menubarViewChild?.nativeElement);\n this.dirty = false;\n }\n\n onMenuFocus(event: any) {\n this.focused = true;\n if (this.focusedItemInfo().index === -1) {\n const index = this.findFirstFocusedItemIndex();\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo.set({ index, key: processedItem.key, parentKey: processedItem.parentKey, item: processedItem.item });\n }\n }\n\n onMenuBlur(event: any) {\n this.focused = false;\n this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });\n this.searchValue = '';\n this.dirty = false;\n }\n\n onKeyDown(event: KeyboardEvent) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n }\n\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n }\n\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n }\n\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n }\n\n isProcessedItemGroup(processedItem: any): boolean {\n return processedItem && isNotEmpty(processedItem.items);\n }\n\n isSelected(processedItem: any): boolean {\n return isNotEmpty(this.activeItem()) ? this.activeItem().key === processedItem.key : false;\n }\n\n isValidSelectedItem(processedItem: any): boolean {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n }\n\n isValidItem(processedItem: any): boolean {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item);\n }\n\n isItemDisabled(item: any): boolean {\n return this.getItemProp(item, 'disabled');\n }\n\n isItemSeparator(item: any): boolean {\n return this.getItemProp(item, 'separator');\n }\n\n isItemMatched(processedItem: any): boolean {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n }\n\n isProccessedItemGroup(processedItem: any): boolean {\n return processedItem && isNotEmpty(processedItem.items);\n }\n\n searchItems(event: any, char: string) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo().index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo().index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo().index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemInfo(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n }\n\n getProccessedItemLabel(processedItem: any) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n }\n\n getItemLabel(item: any) {\n return this.getItemProp(item, 'label');\n }\n\n changeFocusedItemInfo(event, index) {\n const processedItem = this.findVisibleItem(index);\n if (isNotEmpty(processedItem)) {\n const { key, parentKey, item } = processedItem;\n this.focusedItemInfo.set({ index, key: key ? key : '', parentKey, item });\n }\n\n this.scrollInView();\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n if (this.orientation === 'horizontal') {\n if (isNotEmpty(this.activeItem()) && this.activeItem().key === this.focusedItemInfo().key) {\n const { key, item } = this.activeItem();\n this.focusedItemInfo.set({ index: -1, key: '', parentKey: key, item });\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n const { parentKey, key, item } = processedItem;\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo.set({ index: -1, key: key, parentKey: parentKey, item: item });\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n\n onArrowRightKey(event: KeyboardEvent) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.orientation === 'vertical') {\n if (isNotEmpty(this.activeItem()) && this.activeItem().key === processedItem.key) {\n this.focusedItemInfo.set({ index: -1, key: '', parentKey: this.activeItem().key, item: processedItem.item });\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo.set({\n index: -1,\n key: processedItem.key,\n parentKey: processedItem.parentKey,\n item: processedItem.item\n });\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n } else {\n const columnIndex = processedItem.columnIndex + 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n if (event.altKey && this.orientation === 'horizontal') {\n if (this.focusedItemInfo().index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (!grouped && isNotEmpty(this.activeItem)) {\n if (this.focusedItemInfo().index === 0) {\n this.focusedItemInfo.set({\n index: this.activeItem().index,\n key: this.activeItem().key,\n parentKey: this.activeItem().parentKey,\n item: processedItem.item\n });\n this.activeItem.set(null);\n } else {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n }\n }\n }\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n }\n\n onArrowLeftKey(event: KeyboardEvent) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.orientation === 'horizontal') {\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n }\n } else {\n if (this.orientation === 'vertical' && isNotEmpty(this.activeItem())) {\n if (processedItem.columnIndex === 0) {\n this.focusedItemInfo.set({\n index: this.activeItem().index,\n key: this.activeItem().key,\n parentKey: this.activeItem().parentKey,\n item: processedItem.item\n });\n this.activeItem.set(null);\n }\n }\n\n const columnIndex = processedItem.columnIndex - 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent) {\n this.changeFocusedItemInfo(event, this.findLastItemIndex());\n event.preventDefault();\n }\n\n onSpaceKey(event: KeyboardEvent) {\n this.onEnterKey(event);\n }\n\n onEscapeKey(event: KeyboardEvent) {\n if (isNotEmpty(this.activeItem())) {\n this.focusedItemInfo.set({ index: this.activeItem().index, key: this.activeItem().key, item: this.activeItem().item });\n this.activeItem.set(null);\n }\n\n event.preventDefault();\n }\n\n onTabKey(event: KeyboardEvent) {\n if (this.focusedItemInfo().index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n }\n\n onEnterKey(event: KeyboardEvent) {\n if (this.focusedItemInfo().index !== -1) {\n const element = <any>findSingle(this.rootmenu?.el?.nativeElement, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && <any>findSingle(element, 'a[data-pc-section=\"action\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo().index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n }\n\n findVisibleItem(index) {\n return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;\n }\n\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n }\n\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n }\n\n findPrevItemIndex(index: number) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n }\n\n findNextItemIndex(index: number) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n bindOutsideClickListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.outsideClickListener) {\n this.outsideClickListener = this.renderer.listen(this.document, 'click', (event) => {\n const isOutsideContainer = this.el?.nativeElement !== event.target && !this.el?.nativeElement.contains(event.target);\n\n if (isOutsideContainer) {\n this.hide();\n }\n });\n }\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n this.outsideClickListener();\n this.outsideClickListener = null;\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [MegaMenu, SharedModule],\n exports: [MegaMenu, SharedModule]\n})\nexport class MegaMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"primeng-megamenu.mjs","sources":["../../src/megamenu/style/megamenustyle.ts","../../src/megamenu/megamenu.ts","../../src/megamenu/primeng-megamenu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/megamenu';\nimport { BaseStyle } from 'primeng/base';\n\nconst inlineStyles = {\n rootList: ({ instance }) => ({ 'max-height': instance.scrollHeight, overflow: 'auto' })\n};\n\nconst classes = {\n root: ({ instance }) => [\n 'p-megamenu p-component',\n {\n 'p-megamenu-mobile': instance.queryMatches,\n 'p-megamenu-mobile-active': instance.mobileActive,\n 'p-megamenu-horizontal': instance.orientation === 'horizontal',\n 'p-megamenu-vertical': instance.orientation === 'vertical'\n }\n ],\n start: 'p-megamenu-start',\n button: 'p-megamenu-button',\n rootList: 'p-megamenu-root-list',\n submenuLabel: ({ instance, processedItem }) => [\n 'p-megamenu-submenu-label',\n {\n 'p-disabled': instance.isItemDisabled(processedItem)\n }\n ],\n item: ({ instance, processedItem }) => [\n 'p-megamenu-item',\n instance.getItemProp(processedItem, 'styleClass'),\n instance.getItemProp(processedItem, 'class'),\n {\n 'p-megamenu-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }\n ],\n itemContent: 'p-megamenu-item-content',\n itemLink: 'p-megamenu-item-link',\n itemIcon: 'p-megamenu-item-icon',\n itemLabel: 'p-megamenu-item-label',\n submenuIcon: 'p-megamenu-submenu-icon',\n overlay: 'p-megamenu-overlay',\n grid: 'p-megamenu-grid',\n column: ({ instance, processedItem }) => {\n let length = instance.isItemGroup(processedItem) ? processedItem.items.length : 0;\n let columnClass;\n\n if (instance.megaMenu.queryMatches) columnClass = 'p-megamenu-col-12';\n else {\n switch (length) {\n case 2:\n columnClass = 'p-megamenu-col-6';\n break;\n\n case 3:\n columnClass = 'p-megamenu-col-4';\n break;\n\n case 4:\n columnClass = 'p-megamenu-col-3';\n break;\n\n case 6:\n columnClass = 'p-megamenu-col-2';\n break;\n\n default:\n columnClass = 'p-megamenu-col-12';\n break;\n }\n }\n\n return columnClass;\n },\n submenu: 'p-megamenu-submenu',\n separator: 'p-megamenu-separator',\n end: 'p-megamenu-end'\n};\n\n@Injectable()\nexport class MegaMenuStyle extends BaseStyle {\n name = 'megamenu';\n\n theme = style;\n\n classes = classes;\n\n inlineStyles = inlineStyles;\n}\n\n/**\n *\n * MegaMenu is navigation component that displays submenus together.\n *\n * [Live Demo](https://www.primeng.org/megamenu/)\n *\n * @module megamenustyle\n *\n */\n\nexport enum MegaMenuClasses {\n /**\n * Class name of the root element\n */\n root = 'p-megamenu',\n /**\n * Class name of the start element\n */\n start = 'p-megamenu-start',\n /**\n * Class name of the button element\n */\n button = 'p-megamenu-button',\n /**\n * Class name of the root list element\n */\n rootList = 'p-megamenu-root-list',\n /**\n * Class name of the submenu item element\n */\n submenuItem = 'p-megamenu-submenu-item',\n /**\n * Class name of the item element\n */\n item = 'p-megamenu-item',\n /**\n * Class name of the item content element\n */\n itemContent = 'p-megamenu-item-content',\n /**\n * Class name of the item link element\n */\n itemLink = 'p-megamenu-item-link',\n /**\n * Class name of the item icon element\n */\n itemIcon = 'p-megamenu-item-icon',\n /**\n * Class name of the item label element\n */\n itemLabel = 'p-megamenu-item-label',\n /**\n * Class name of the submenu icon element\n */\n submenuIcon = 'p-megamenu-submenu-icon',\n /**\n * Class name of the panel element\n */\n panel = 'p-megamenu-panel',\n /**\n * Class name of the grid element\n */\n grid = 'p-megamenu-grid',\n /**\n * Class name of the submenu element\n */\n submenu = 'p-megamenu-submenu',\n /**\n * Class name of the submenu item label element\n */\n submenuItemLabel = 'p-megamenu-submenu-item-label',\n /**\n * Class name of the separator element\n */\n separator = 'p-megamenu-separator',\n /**\n * Class name of the end element\n */\n end = 'p-megamenu-end'\n}\n\nexport interface MegaMenuStyle extends BaseStyle {}\n","import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n effect,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n NgModule,\n numberAttribute,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { findLastIndex, findSingle, focus, isEmpty, isNotEmpty, isPrintableCharacter, isTouchDevice, resolve, uuid } from '@primeuix/utils';\nimport { MegaMenuItem, PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { AngleDownIcon, AngleRightIcon, BarsIcon } from 'primeng/icons';\nimport { Ripple } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { MegaMenuStyle } from './style/megamenustyle';\n\n@Component({\n selector: 'p-megaMenuSub, p-megamenu-sub',\n standalone: true,\n imports: [CommonModule, RouterModule, Ripple, TooltipModule, AngleDownIcon, AngleRightIcon, BadgeModule, SharedModule],\n template: `\n <ul\n *ngIf=\"isSubmenuVisible(submenu)\"\n #menubar\n [class]=\"root ? cx('rootList') : cx('submenu')\"\n [style]=\"sx('rootList')\"\n [attr.role]=\"root ? 'menubar' : 'menu'\"\n [attr.id]=\"id\"\n [attr.aria-orientation]=\"orientation\"\n [tabindex]=\"tabindex\"\n [attr.aria-activedescendant]=\"focusedItemId\"\n [attr.data-pc-section]=\"root ? 'root' : 'submenu'\"\n (keydown)=\"menuKeydown.emit($event)\"\n (focus)=\"menuFocus.emit($event)\"\n (blur)=\"menuBlur.emit($event)\"\n >\n <li *ngIf=\"submenu\" [class]=\"cn(cx('submenuLabel'), getItemProp(submenu, 'class'))\" [style]=\"getItemProp(submenu, 'style')\" role=\"presentation\">\n {{ getItemLabel(submenu) }}\n </li>\n <ng-template ngFor let-processedItem [ngForOf]=\"items\" let-index=\"index\">\n <li\n *ngIf=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n [attr.id]=\"getItemId(processedItem)\"\n [style]=\"getItemProp(processedItem, 'style')\"\n [class]=\"cn(cx('separator'), this.getItemProp(processedItem, 'class'))\"\n role=\"separator\"\n [attr.data-pc-section]=\"'separator'\"\n ></li>\n <li\n #listItem\n *ngIf=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n role=\"menuitem\"\n [attr.id]=\"getItemId(processedItem)\"\n [attr.data-pc-section]=\"'menuitem'\"\n [attr.data-p-highlight]=\"isItemActive(processedItem)\"\n [attr.data-p-focused]=\"isItemFocused(processedItem)\"\n [attr.data-p-disabled]=\"isItemDisabled(processedItem)\"\n [attr.aria-label]=\"getItemLabel(processedItem)\"\n [attr.aria-disabled]=\"isItemDisabled(processedItem) || undefined\"\n [attr.aria-haspopup]=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n [attr.aria-expanded]=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n [attr.aria-level]=\"level + 1\"\n [attr.aria-setsize]=\"getAriaSetSize()\"\n [attr.aria-posinset]=\"getAriaPosInset(index)\"\n [ngStyle]=\"getItemProp(processedItem, 'style')\"\n [class]=\"cn(cx('item', { processedItem }), processedItem?.styleClass)\"\n pTooltip\n [tooltipOptions]=\"getItemProp(processedItem, 'tooltipOptions')\"\n >\n <div [class]=\"cx('itemContent')\" [attr.data-pc-section]=\"'content'\" (click)=\"onItemClick($event, processedItem)\" (mouseenter)=\"onItemMouseEnter({ $event, processedItem })\">\n <ng-container *ngIf=\"!itemTemplate\">\n <a\n *ngIf=\"!getItemProp(processedItem, 'routerLink')\"\n [attr.href]=\"getItemProp(processedItem, 'url')\"\n [attr.data-automationid]=\"getItemProp(processedItem, 'automationId')\"\n [attr.data-pc-section]=\"'action'\"\n [target]=\"getItemProp(processedItem, 'target')\"\n [class]=\"cx('itemLink')\"\n [attr.tabindex]=\"-1\"\n pRipple\n >\n <span\n *ngIf=\"getItemProp(processedItem, 'icon')\"\n [class]=\"cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))\"\n [ngStyle]=\"getItemProp(processedItem, 'iconStyle')\"\n [attr.data-pc-section]=\"'icon'\"\n [attr.tabindex]=\"-1\"\n >\n </span>\n <span *ngIf=\"getItemProp(processedItem, 'escape'); else htmlLabel\" [class]=\"cx('itemLabel')\" [attr.data-pc-section]=\"'label'\">\n {{ getItemLabel(processedItem) }}\n </span>\n <ng-template #htmlLabel>\n <span [class]=\"cx('itemLabel')\" [innerHTML]=\"getItemLabel(processedItem)\" [attr.data-pc-section]=\"'label'\"></span>\n </ng-template>\n <p-badge *ngIf=\"getItemProp(processedItem, 'badge')\" [class]=\"getItemProp(processedItem, 'badgeStyleClass')\" [value]=\"getItemProp(processedItem, 'badge')\" />\n <ng-container *ngIf=\"isItemGroup(processedItem)\">\n <ng-container *ngIf=\"!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate\">\n @if (orientation === 'horizontal' || mobileActive) {\n <svg data-p-icon=\"angle-down\" [class]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" [attr.aria-hidden]=\"true\" />\n } @else {\n <svg data-p-icon=\"angle-right\" [class]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" *ngIf=\"orientation === 'vertical'\" [attr.aria-hidden]=\"true\" />\n }\n </ng-container>\n <ng-template *ngTemplateOutlet=\"megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate\" [attr.data-pc-section]=\"'submenuicon'\" [attr.aria-hidden]=\"true\"></ng-template>\n </ng-container>\n </a>\n <a\n *ngIf=\"getItemProp(processedItem, 'routerLink')\"\n [routerLink]=\"getItemProp(processedItem, 'routerLink')\"\n [attr.data-automationid]=\"getItemProp(processedItem, 'automationId')\"\n [attr.tabindex]=\"-1\"\n [attr.data-pc-section]=\"'action'\"\n [queryParams]=\"getItemProp(processedItem, 'queryParams')\"\n [routerLinkActive]=\"'p-megamenu-item-link-active'\"\n [routerLinkActiveOptions]=\"getItemProp(processedItem, 'routerLinkActiveOptions') || { exact: false }\"\n [target]=\"getItemProp(processedItem, 'target')\"\n [class]=\"cx('itemLink')\"\n [fragment]=\"getItemProp(processedItem, 'fragment')\"\n [queryParamsHandling]=\"getItemProp(processedItem, 'queryParamsHandling')\"\n [preserveFragment]=\"getItemProp(processedItem, 'preserveFragment')\"\n [skipLocationChange]=\"getItemProp(processedItem, 'skipLocationChange')\"\n [replaceUrl]=\"getItemProp(processedItem, 'replaceUrl')\"\n [state]=\"getItemProp(processedItem, 'state')\"\n pRipple\n >\n <span\n [class]=\"cn(cx('itemIcon'), getItemProp(processedItem, 'icon'))\"\n *ngIf=\"getItemProp(processedItem, 'icon')\"\n [ngStyle]=\"getItemProp(processedItem, 'iconStyle')\"\n [attr.data-pc-section]=\"'icon'\"\n [attr.tabindex]=\"-1\"\n ></span>\n <span [class]=\"cx('itemLabel')\" *ngIf=\"getItemProp(processedItem, 'escape'); else htmlRouteLabel\">{{ getItemLabel(processedItem) }}</span>\n <ng-template #htmlRouteLabel><span [class]=\"cx('itemLabel')\" [innerHTML]=\"getItemLabel(processedItem)\" [attr.data-pc-section]=\"'label'\"></span></ng-template>\n <p-badge *ngIf=\"getItemProp(processedItem, 'badge')\" [styleClass]=\"getItemProp(processedItem, 'badgeStyleClass')\" [value]=\"getItemProp(processedItem, 'badge')\" />\n <ng-container *ngIf=\"isItemGroup(processedItem)\">\n <ng-container *ngIf=\"!megaMenu.submenuIconTemplate && !megaMenu._submenuIconTemplate\">\n <svg data-p-icon=\"angle-down\" [class]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" *ngIf=\"orientation === 'horizontal'\" [attr.aria-hidden]=\"true\" />\n <svg data-p-icon=\"angle-right\" [class]=\"cx('submenuIcon')\" [attr.data-pc-section]=\"'submenuicon'\" *ngIf=\"orientation === 'vertical'\" [attr.aria-hidden]=\"true\" />\n </ng-container>\n <ng-template *ngTemplateOutlet=\"megaMenu.submenuIconTemplate || megaMenu._submenuIconTemplate\" [attr.data-pc-section]=\"'submenuicon'\" [attr.aria-hidden]=\"true\"></ng-template>\n </ng-container>\n </a>\n </ng-container>\n <ng-container *ngIf=\"itemTemplate\">\n <ng-template *ngTemplateOutlet=\"itemTemplate; context: { $implicit: processedItem.item }\"></ng-template>\n </ng-container>\n </div>\n <div *ngIf=\"isItemVisible(processedItem) && isItemGroup(processedItem)\" [class]=\"cx('overlay')\" [attr.data-pc-section]=\"'panel'\">\n <div [class]=\"cx('grid')\" [attr.data-pc-section]=\"'grid'\">\n <div *ngFor=\"let col of processedItem.items\" [class]=\"cx('column', { processedItem })\">\n <p-megamenu-sub\n *ngFor=\"let submenu of col\"\n [id]=\"getSubListId(submenu)\"\n [submenu]=\"submenu\"\n [items]=\"submenu.items\"\n [itemTemplate]=\"itemTemplate\"\n [mobileActive]=\"mobileActive\"\n [menuId]=\"menuId\"\n [focusedItemId]=\"focusedItemId\"\n [level]=\"level + 1\"\n [root]=\"false\"\n (itemClick)=\"itemClick.emit($event)\"\n (itemMouseEnter)=\"onItemMouseEnter($event)\"\n >\n </p-megamenu-sub>\n </div>\n </div>\n </div>\n </li>\n </ng-template>\n </ul>\n `,\n encapsulation: ViewEncapsulation.None\n})\nexport class MegaMenuSub extends BaseComponent {\n @Input() id: string | undefined;\n\n @Input() items: any[] | undefined;\n\n @Input() itemTemplate: TemplateRef<any> | undefined;\n\n @Input() menuId: string | undefined;\n\n @Input() ariaLabel: string | undefined;\n\n @Input() ariaLabelledBy: string | undefined;\n\n @Input({ transform: numberAttribute }) level: number = 0;\n\n @Input() focusedItemId: string | undefined;\n\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n\n @Input() orientation: string | undefined;\n\n @Input() activeItem: any;\n\n @Input() submenu: any;\n\n @Input({ transform: booleanAttribute }) queryMatches: boolean = false;\n\n @Input({ transform: booleanAttribute }) mobileActive: boolean = false;\n\n @Input() scrollHeight: string;\n\n @Input({ transform: numberAttribute }) tabindex: number = 0;\n\n @Input({ transform: booleanAttribute }) root: boolean = false;\n\n @Output() itemClick: EventEmitter<any> = new EventEmitter();\n\n @Output() itemMouseEnter: EventEmitter<any> = new EventEmitter();\n\n @Output() menuFocus: EventEmitter<any> = new EventEmitter();\n\n @Output() menuBlur: EventEmitter<any> = new EventEmitter();\n\n @Output() menuKeydown: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('menubar', { static: true }) menubarViewChild: ElementRef;\n\n megaMenu: MegaMenu = inject(forwardRef(() => MegaMenu));\n\n _componentStyle = inject(MegaMenuStyle);\n\n onItemClick(event: any, processedItem: any) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.itemClick.emit({ originalEvent: event, processedItem, isFocus: true });\n }\n\n getItemProp(processedItem: any, name: string, params: any | null = null): any {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n }\n\n getItemId(processedItem: any): string {\n return processedItem.item && processedItem.item?.id ? processedItem.item.id : `${this.menuId}_${processedItem.key}`;\n }\n\n getSubListId(processedItem) {\n return `${this.getItemId(processedItem)}_list`;\n }\n\n getItemLabel(processedItem: any): string {\n return this.getItemProp(processedItem, 'label');\n }\n\n isSubmenuVisible(submenu: any) {\n if (this.submenu && !this.root) {\n return this.isItemVisible(submenu);\n } else {\n return true;\n }\n }\n\n isItemVisible(processedItem: any): boolean {\n return this.getItemProp(processedItem, 'visible') !== false;\n }\n\n isItemActive(processedItem) {\n return isNotEmpty(this.activeItem) ? this.activeItem.key === processedItem.key : false;\n }\n\n isItemDisabled(processedItem: any): boolean {\n return this.getItemProp(processedItem, 'disabled');\n }\n\n isItemFocused(processedItem: any): boolean {\n return this.focusedItemId === this.getItemId(processedItem);\n }\n\n isItemGroup(processedItem: any): boolean {\n return isNotEmpty(processedItem.items);\n }\n\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n\n getAriaPosInset(index: number) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n }\n\n onItemMouseEnter(param: any) {\n const { event, processedItem } = param;\n this.itemMouseEnter.emit({ originalEvent: event, processedItem });\n }\n}\n/**\n * MegaMenu is navigation component that displays submenus together.\n * @group Components\n */\n@Component({\n selector: 'p-megaMenu, p-megamenu, p-mega-menu',\n standalone: true,\n imports: [CommonModule, RouterModule, MegaMenuSub, TooltipModule, BarsIcon, BadgeModule, SharedModule],\n template: `\n <div [class]=\"cx('start')\" *ngIf=\"startTemplate || _startTemplate\">\n <ng-container *ngTemplateOutlet=\"startTemplate || _startTemplate\"></ng-container>\n </div>\n <ng-container *ngIf=\"!buttonTemplate && !_buttonTemplate\">\n <a\n *ngIf=\"model && model.length > 0\"\n #menubutton\n role=\"button\"\n tabindex=\"0\"\n [class]=\"cx('button')\"\n [attr.aria-haspopup]=\"model.length && model.length > 0 ? true : false\"\n [attr.aria-expanded]=\"mobileActive\"\n [attr.aria-controls]=\"id\"\n [attr.aria-label]=\"config.translation.aria.navigation\"\n (click)=\"menuButtonClick($event)\"\n (keydown)=\"menuButtonKeydown($event)\"\n >\n <svg data-p-icon=\"bars\" *ngIf=\"!buttonIconTemplate && !_buttonIconTemplate\" />\n <ng-template *ngTemplateOutlet=\"buttonIconTemplate || _buttonIconTemplate\"></ng-template>\n </a>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"buttonTemplate || _buttonTemplate\"></ng-container>\n <p-megamenu-sub\n #rootmenu\n [itemTemplate]=\"itemTemplate || _itemTemplate\"\n [items]=\"processedItems\"\n [attr.id]=\"id + '_list'\"\n [menuId]=\"id\"\n [root]=\"true\"\n [orientation]=\"orientation\"\n [ariaLabel]=\"ariaLabel\"\n [disabled]=\"disabled\"\n [tabindex]=\"!disabled ? tabindex : -1\"\n [activeItem]=\"activeItem()\"\n [level]=\"0\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [focusedItemId]=\"focused ? focusedItemId : undefined\"\n [mobileActive]=\"mobileActive\"\n (itemClick)=\"onItemClick($event)\"\n (menuFocus)=\"onMenuFocus($event)\"\n (menuBlur)=\"onMenuBlur($event)\"\n (menuKeydown)=\"onKeyDown($event)\"\n (itemMouseEnter)=\"onItemMouseEnter($event)\"\n [queryMatches]=\"queryMatches\"\n [scrollHeight]=\"scrollHeight\"\n ></p-megamenu-sub>\n <div [class]=\"cx('end')\" *ngIf=\"endTemplate || _endTemplate\">\n <ng-container *ngTemplateOutlet=\"endTemplate || _endTemplate\"></ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [MegaMenuStyle],\n host: {\n '[class]': 'cn(cx(\"root\"), styleClass)',\n '[id]': 'id',\n 'data-pc-section': 'root',\n 'data-pc-name': 'megamenu'\n }\n})\nexport class MegaMenu extends BaseComponent implements AfterContentInit, OnDestroy, OnInit {\n /**\n * An array of menuitems.\n * @group Props\n */\n @Input() set model(value: MegaMenuItem[] | undefined) {\n this._model = value;\n this._processedItems = this.createProcessedItems(this._model || []);\n }\n get model(): MegaMenuItem[] | undefined {\n return this._model;\n }\n /**\n * Class of the element.\n * @deprecated since v20.0.0, use `class` instead.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Defines the orientation.\n * @group Props\n */\n @Input() orientation: 'horizontal' | 'vertical' | string = 'horizontal';\n /**\n * Current id state as a string.\n * @group Props\n */\n @Input() id: string | undefined;\n /**\n * Defines a string value that labels an interactive element.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Identifier of the underlying input element.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * The breakpoint to define the maximum width boundary.\n * @group Props\n */\n @Input() breakpoint: string = '960px';\n /**\n * Height of the viewport, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n @Input() scrollHeight: string = '20rem';\n /**\n * When present, it specifies that the component should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean = false;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number = 0;\n /**\n * Defines template option for start.\n * @group Templates\n */\n @ContentChild('start', { descendants: false }) startTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for end.\n * @group Templates\n */\n @ContentChild('end', { descendants: false }) endTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for menu icon.\n * @group Templates\n */\n @ContentChild('menuicon', { descendants: false }) menuIconTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for submenu icon.\n * @group Templates\n */\n @ContentChild('submenuicon', { descendants: false }) submenuIconTemplate: TemplateRef<any> | undefined;\n /**\n * Defines template option for submenu icon.\n * @group Templates\n */\n @ContentChild('item', { descendants: false }) itemTemplate: TemplateRef<any> | undefined;\n /**\n * Custom menu button template on responsive mode.\n * @group Templates\n */\n @ContentChild('button', { descendants: false }) buttonTemplate: TemplateRef<any> | undefined;\n /**\n * Custom menu button icon template on responsive mode.\n * @group Templates\n */\n @ContentChild('buttonicon', { descendants: false }) buttonIconTemplate: TemplateRef<any> | undefined;\n\n @ContentChildren(PrimeTemplate) templates: QueryList<PrimeTemplate> | undefined;\n\n @ViewChild('menubutton') menubuttonViewChild: ElementRef | undefined;\n\n @ViewChild('rootmenu') rootmenu: MegaMenuSub | undefined;\n\n _startTemplate: TemplateRef<any> | undefined;\n\n _endTemplate: TemplateRef<any> | undefined;\n\n _menuIconTemplate: TemplateRef<any> | undefined;\n\n _submenuIconTemplate: TemplateRef<any> | undefined;\n\n _itemTemplate: TemplateRef<any> | undefined;\n\n _buttonTemplate: TemplateRef<any> | undefined;\n\n _buttonIconTemplate: TemplateRef<any> | undefined;\n\n outsideClickListener: VoidListener;\n\n resizeListener: (event: any) => void;\n\n dirty: boolean = false;\n\n focused: boolean = false;\n\n activeItem = signal<any>(null);\n\n focusedItemInfo = signal<any>({ index: -1, level: 0, parentKey: '', item: null });\n\n searchValue: string = '';\n\n searchTimeout: any;\n\n _processedItems: any[];\n\n _model: MegaMenuItem[] | undefined;\n\n _componentStyle = inject(MegaMenuStyle);\n\n private matchMediaListener: () => void;\n\n private query: MediaQueryList;\n\n public queryMatches: boolean = false;\n\n public mobileActive: boolean = false;\n\n get visibleItems() {\n const processedItem = isNotEmpty(this.activeItem()) ? this.activeItem() : null;\n\n return processedItem\n ? processedItem.items.reduce((items, col) => {\n col.forEach((submenu) => {\n submenu.items.forEach((a) => {\n items.push(a);\n });\n });\n\n return items;\n }, [])\n : this.processedItems;\n }\n\n get processedItems() {\n if (!this._processedItems || !this._processedItems.length) {\n this._processedItems = this.createProcessedItems(this.model || []);\n }\n return this._processedItems;\n }\n\n get focusedItemId() {\n const focusedItem = this.focusedItemInfo();\n return focusedItem?.item && focusedItem.item?.id ? focusedItem.item.id : isNotEmpty(focusedItem.key) ? `${this.id}_${focusedItem.key}` : null;\n }\n\n constructor() {\n super();\n effect(() => {\n const activeItem = this.activeItem();\n if (isNotEmpty(activeItem)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n });\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n this.bindMatchMediaListener();\n this.id = this.id || uuid('pn_id_');\n }\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'start':\n this._startTemplate = item.template;\n break;\n\n case 'end':\n this._endTemplate = item.template;\n break;\n\n case 'menuicon':\n this._menuIconTemplate = item.template;\n break;\n\n case 'submenuicon':\n this._submenuIconTemplate = item.template;\n break;\n\n case 'item':\n this._itemTemplate = item.template;\n break;\n\n case 'button':\n this._buttonTemplate = item.template;\n break;\n\n case 'buttonicon':\n this._buttonIconTemplate = item.template;\n break;\n\n default:\n this._itemTemplate = item.template;\n break;\n }\n });\n }\n\n bindMatchMediaListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.matchMediaListener) {\n const query = window.matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n this.cd.markForCheck();\n };\n\n query.addEventListener('change', this.matchMediaListener);\n }\n }\n }\n\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n }\n\n createProcessedItems(items, level = 0, parent = {}, parentKey = '', columnIndex?) {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + (columnIndex !== undefined ? columnIndex + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey,\n columnIndex: columnIndex !== undefined ? columnIndex : (<any>parent).columnIndex !== undefined ? (<any>parent).columnIndex : index\n };\n\n newItem['items'] =\n level === 0 && item.items && item.items.length > 0 ? item.items.map((_items, _index) => this.createProcessedItems(_items, level + 1, newItem, key, _index)) : this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n return processedItems;\n }\n\n getItemProp(item: any, name: string) {\n return item ? resolve(item[name]) : undefined;\n }\n\n onItemClick(event: any) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProcessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, parentKey, item } = processedItem;\n\n this.activeItem.set(null);\n this.focusedItemInfo.set({ index, key, parentKey, item });\n\n this.dirty = !root;\n if (!this.mobileActive) {\n focus(this.rootmenu?.menubarViewChild?.nativeElement, { preventScroll: true });\n }\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n this.hide(originalEvent);\n }\n }\n }\n\n onItemMouseEnter(event) {\n if (!this.mobileActive && this.dirty) {\n this.onItemChange(event);\n }\n }\n\n menuButtonClick(event) {\n this.toggle(event);\n }\n\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n }\n\n toggle(event: MouseEvent) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndexUtils.clear(this.rootmenu.el.nativeElement);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndexUtils.set('menu', this.rootmenu.el.nativeElement, this.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 0);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n }\n\n show() {\n this.focusedItemInfo.set({ index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' });\n\n focus(this.rootmenu?.el.nativeElement);\n }\n\n scrollInView(index: number = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n\n let element;\n\n if (id === null && this.queryMatches) {\n element = this.menubuttonViewChild.nativeElement;\n } else {\n element = findSingle(this.rootmenu?.menubarViewChild?.nativeElement, `li[id=\"${id}\"]`);\n }\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'nearest', behavior: 'smooth' });\n }\n }\n\n onItemChange(event: any) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, parentKey, items, item } = processedItem;\n const grouped = isNotEmpty(items);\n\n if (grouped) {\n this.activeItem.set(processedItem);\n }\n this.focusedItemInfo.set({ index, key, parentKey, item });\n\n grouped && (this.dirty = true);\n isFocus && focus(this.rootmenu?.menubarViewChild?.nativeElement);\n }\n\n hide(event?, isFocus?: boolean) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.menubuttonViewChild?.nativeElement);\n this.scrollInView();\n }, 100);\n }\n\n this.activeItem.set(null);\n this.focusedItemInfo.set({ index: -1, key: '', parentKey: '', item: null });\n\n isFocus && focus(this.rootmenu?.menubarViewChild?.nativeElement);\n this.dirty = false;\n }\n\n onMenuFocus(event: any) {\n this.focused = true;\n if (this.focusedItemInfo().index === -1) {\n const index = this.findFirstFocusedItemIndex();\n const processedItem = this.findVisibleItem(index);\n\n this.focusedItemInfo.set({ index, key: processedItem.key, parentKey: processedItem.parentKey, item: processedItem.item });\n }\n }\n\n onMenuBlur(event: any) {\n this.focused = false;\n this.focusedItemInfo.set({ index: -1, level: 0, parentKey: '', item: null });\n this.searchValue = '';\n this.dirty = false;\n }\n\n onKeyDown(event: KeyboardEvent) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n }\n\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n }\n\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n }\n\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n }\n\n isProcessedItemGroup(processedItem: any): boolean {\n return processedItem && isNotEmpty(processedItem.items);\n }\n\n isSelected(processedItem: any): boolean {\n return isNotEmpty(this.activeItem()) ? this.activeItem().key === processedItem.key : false;\n }\n\n isValidSelectedItem(processedItem: any): boolean {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n }\n\n isValidItem(processedItem: any): boolean {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item);\n }\n\n isItemDisabled(item: any): boolean {\n return this.getItemProp(item, 'disabled');\n }\n\n isItemSeparator(item: any): boolean {\n return this.getItemProp(item, 'separator');\n }\n\n isItemMatched(processedItem: any): boolean {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem).toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n }\n\n isProccessedItemGroup(processedItem: any): boolean {\n return processedItem && isNotEmpty(processedItem.items);\n }\n\n searchItems(event: any, char: string) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo().index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo().index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo().index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo().index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemInfo(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n }\n\n getProccessedItemLabel(processedItem: any) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n }\n\n getItemLabel(item: any) {\n return this.getItemProp(item, 'label');\n }\n\n changeFocusedItemInfo(event, index) {\n const processedItem = this.findVisibleItem(index);\n if (isNotEmpty(processedItem)) {\n const { key, parentKey, item } = processedItem;\n this.focusedItemInfo.set({ index, key: key ? key : '', parentKey, item });\n }\n\n this.scrollInView();\n }\n\n onArrowDownKey(event: KeyboardEvent) {\n if (this.orientation === 'horizontal') {\n if (isNotEmpty(this.activeItem()) && this.activeItem().key === this.focusedItemInfo().key) {\n const { key, item } = this.activeItem();\n this.focusedItemInfo.set({ index: -1, key: '', parentKey: key, item });\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n const { parentKey, key, item } = processedItem;\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo.set({ index: -1, key: key, parentKey: parentKey, item: item });\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n\n onArrowRightKey(event: KeyboardEvent) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.orientation === 'vertical') {\n if (isNotEmpty(this.activeItem()) && this.activeItem().key === processedItem.key) {\n this.focusedItemInfo.set({ index: -1, key: '', parentKey: this.activeItem().key, item: processedItem.item });\n } else {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo.set({\n index: -1,\n key: processedItem.key,\n parentKey: processedItem.parentKey,\n item: processedItem.item\n });\n this.searchValue = '';\n }\n }\n }\n\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findNextItemIndex(this.focusedItemInfo().index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n } else {\n const columnIndex = processedItem.columnIndex + 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n }\n\n onArrowUpKey(event: KeyboardEvent) {\n if (event.altKey && this.orientation === 'horizontal') {\n if (this.focusedItemInfo().index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (!grouped && isNotEmpty(this.activeItem)) {\n if (this.focusedItemInfo().index === 0) {\n this.focusedItemInfo.set({\n index: this.activeItem().index,\n key: this.activeItem().key,\n parentKey: this.activeItem().parentKey,\n item: processedItem.item\n });\n this.activeItem.set(null);\n } else {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n }\n }\n }\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n event.preventDefault();\n }\n }\n\n onArrowLeftKey(event: KeyboardEvent) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n if (this.orientation === 'horizontal') {\n const itemIndex = this.focusedItemInfo().index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo().index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemInfo(event, itemIndex);\n }\n } else {\n if (this.orientation === 'vertical' && isNotEmpty(this.activeItem())) {\n if (processedItem.columnIndex === 0) {\n this.focusedItemInfo.set({\n index: this.activeItem().index,\n key: this.activeItem().key,\n parentKey: this.activeItem().parentKey,\n item: processedItem.item\n });\n this.activeItem.set(null);\n }\n }\n\n const columnIndex = processedItem.columnIndex - 1;\n const itemIndex = this.visibleItems.findIndex((item) => item.columnIndex === columnIndex);\n\n itemIndex !== -1 && this.changeFocusedItemInfo(event, itemIndex);\n }\n\n event.preventDefault();\n }\n\n onHomeKey(event: KeyboardEvent) {\n this.changeFocusedItemInfo(event, this.findFirstItemIndex());\n event.preventDefault();\n }\n\n onEndKey(event: KeyboardEvent) {\n this.changeFocusedItemInfo(event, this.findLastItemIndex());\n event.preventDefault();\n }\n\n onSpaceKey(event: KeyboardEvent) {\n this.onEnterKey(event);\n }\n\n onEscapeKey(event: KeyboardEvent) {\n if (isNotEmpty(this.activeItem())) {\n this.focusedItemInfo.set({ index: this.activeItem().index, key: this.activeItem().key, item: this.activeItem().item });\n this.activeItem.set(null);\n }\n\n event.preventDefault();\n }\n\n onTabKey(event: KeyboardEvent) {\n if (this.focusedItemInfo().index !== -1) {\n const processedItem = this.findVisibleItem(this.focusedItemInfo().index);\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n }\n\n onEnterKey(event: KeyboardEvent) {\n if (this.focusedItemInfo().index !== -1) {\n const element = <any>findSingle(this.rootmenu?.el?.nativeElement, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && <any>findSingle(element, 'a[data-pc-section=\"action\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo().index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.changeFocusedItemInfo(event, this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n }\n\n findVisibleItem(index) {\n return isNotEmpty(this.visibleItems) ? this.visibleItems[index] : null;\n }\n\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n }\n\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n }\n\n findPrevItemIndex(index: number) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n }\n\n findNextItemIndex(index: number) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n }\n\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n }\n\n bindOutsideClickListener() {\n if (isPlatformBrowser(this.platformId)) {\n if (!this.outsideClickListener) {\n this.outsideClickListener = this.renderer.listen(this.document, 'click', (event) => {\n const isOutsideContainer = this.el?.nativeElement !== event.target && !this.el?.nativeElement.contains(event.target);\n\n if (isOutsideContainer) {\n this.hide();\n }\n });\n }\n }\n }\n\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n this.outsideClickListener();\n this.outsideClickListener = null;\n }\n }\n\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n }\n\n ngOnDestroy() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n super.ngOnDestroy();\n }\n}\n\n@NgModule({\n imports: [MegaMenu, SharedModule],\n exports: [MegaMenu, SharedModule]\n})\nexport class MegaMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAIA,MAAM,YAAY,GAAG;IACjB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE;CACzF;AAED,MAAM,OAAO,GAAG;AACZ,IAAA,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK;QACpB,wBAAwB;AACxB,QAAA;YACI,mBAAmB,EAAE,QAAQ,CAAC,YAAY;YAC1C,0BAA0B,EAAE,QAAQ,CAAC,YAAY;AACjD,YAAA,uBAAuB,EAAE,QAAQ,CAAC,WAAW,KAAK,YAAY;AAC9D,YAAA,qBAAqB,EAAE,QAAQ,CAAC,WAAW,KAAK;AACnD;AACJ,KAAA;AACD,IAAA,KAAK,EAAE,kBAAkB;AACzB,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,QAAQ,EAAE,sBAAsB;IAChC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK;QAC3C,0BAA0B;AAC1B,QAAA;AACI,YAAA,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa;AACtD;AACJ,KAAA;IACD,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK;QACnC,iBAAiB;AACjB,QAAA,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC;AACjD,QAAA,QAAQ,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC;AAC5C,QAAA;AACI,YAAA,wBAAwB,EAAE,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC;AAC9D,YAAA,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;AAChD,YAAA,YAAY,EAAE,QAAQ,CAAC,cAAc,CAAC,aAAa;AACtD;AACJ,KAAA;AACD,IAAA,WAAW,EAAE,yBAAyB;AACtC,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,QAAQ,EAAE,sBAAsB;AAChC,IAAA,SAAS,EAAE,uBAAuB;AAClC,IAAA,WAAW,EAAE,yBAAyB;AACtC,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAI;QACpC,IAAI,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACjF,QAAA,IAAI,WAAW;AAEf,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY;YAAE,WAAW,GAAG,mBAAmB;aAChE;YACD,QAAQ,MAAM;AACV,gBAAA,KAAK,CAAC;oBACF,WAAW,GAAG,kBAAkB;oBAChC;AAEJ,gBAAA,KAAK,CAAC;oBACF,WAAW,GAAG,kBAAkB;oBAChC;AAEJ,gBAAA,KAAK,CAAC;oBACF,WAAW,GAAG,kBAAkB;oBAChC;AAEJ,gBAAA,KAAK,CAAC;oBACF,WAAW,GAAG,kBAAkB;oBAChC;AAEJ,gBAAA;oBACI,WAAW,GAAG,mBAAmB;oBACjC;;;AAIZ,QAAA,OAAO,WAAW;KACrB;AACD,IAAA,OAAO,EAAE,oBAAoB;AAC7B,IAAA,SAAS,EAAE,sBAAsB;AACjC,IAAA,GAAG,EAAE;CACR;AAGK,MAAO,aAAc,SAAQ,SAAS,CAAA;IACxC,IAAI,GAAG,UAAU;IAEjB,KAAK,GAAG,KAAK;IAEb,OAAO,GAAG,OAAO;IAEjB,YAAY,GAAG,YAAY;uGAPlB,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAb,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB;;AAWD;;;;;;;;AAQG;IAES;AAAZ,CAAA,UAAY,eAAe,EAAA;AACvB;;AAEG;AACH,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,YAAmB;AACnB;;AAEG;AACH,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,kBAA0B;AAC1B;;AAEG;AACH,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,mBAA4B;AAC5B;;AAEG;AACH,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,sBAAiC;AACjC;;AAEG;AACH,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,yBAAuC;AACvC;;AAEG;AACH,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,iBAAwB;AACxB;;AAEG;AACH,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,yBAAuC;AACvC;;AAEG;AACH,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,sBAAiC;AACjC;;AAEG;AACH,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,sBAAiC;AACjC;;AAEG;AACH,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,uBAAmC;AACnC;;AAEG;AACH,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,yBAAuC;AACvC;;AAEG;AACH,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,kBAA0B;AAC1B;;AAEG;AACH,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,iBAAwB;AACxB;;AAEG;AACH,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,oBAA8B;AAC9B;;AAEG;AACH,IAAA,eAAA,CAAA,kBAAA,CAAA,GAAA,+BAAkD;AAClD;;AAEG;AACH,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,sBAAkC;AAClC;;AAEG;AACH,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,gBAAsB;AAC1B,CAAC,EArEW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACgGrB,MAAO,WAAY,SAAQ,aAAa,CAAA;AACjC,IAAA,EAAE;AAEF,IAAA,KAAK;AAEL,IAAA,YAAY;AAEZ,IAAA,MAAM;AAEN,IAAA,SAAS;AAET,IAAA,cAAc;IAEgB,KAAK,GAAW,CAAC;AAE/C,IAAA,aAAa;IAEkB,QAAQ,GAAY,KAAK;AAExD,IAAA,WAAW;AAEX,IAAA,UAAU;AAEV,IAAA,OAAO;IAEwB,YAAY,GAAY,KAAK;IAE7B,YAAY,GAAY,KAAK;AAE5D,IAAA,YAAY;IAEkB,QAAQ,GAAW,CAAC;IAEnB,IAAI,GAAY,KAAK;AAEnD,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAE;AAEjD,IAAA,cAAc,GAAsB,IAAI,YAAY,EAAE;AAEtD,IAAA,SAAS,GAAsB,IAAI,YAAY,EAAE;AAEjD,IAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE;AAEhD,IAAA,WAAW,GAAsB,IAAI,YAAY,EAAE;AAErB,IAAA,gBAAgB;IAExD,QAAQ,GAAa,MAAM,CAAC,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAC;AAEvD,IAAA,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC;IAEvC,WAAW,CAAC,KAAU,EAAE,aAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9F,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;AAG/E,IAAA,WAAW,CAAC,aAAkB,EAAE,IAAY,EAAE,SAAqB,IAAI,EAAA;QACnE,OAAO,aAAa,IAAI,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS;;AAGtG,IAAA,SAAS,CAAC,aAAkB,EAAA;AACxB,QAAA,OAAO,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,aAAa,CAAC,GAAG,EAAE;;AAGvH,IAAA,YAAY,CAAC,aAAa,EAAA;QACtB,OAAO,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO;;AAGlD,IAAA,YAAY,CAAC,aAAkB,EAAA;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC;;AAGnD,IAAA,gBAAgB,CAAC,OAAY,EAAA;QACzB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;aAC/B;AACH,YAAA,OAAO,IAAI;;;AAInB,IAAA,aAAa,CAAC,aAAkB,EAAA;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,KAAK,KAAK;;AAG/D,IAAA,YAAY,CAAC,aAAa,EAAA;QACtB,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,GAAG,KAAK;;AAG1F,IAAA,cAAc,CAAC,aAAkB,EAAA;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,CAAC;;AAGtD,IAAA,aAAa,CAAC,aAAkB,EAAA;QAC5B,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;AAG/D,IAAA,WAAW,CAAC,aAAkB,EAAA;AAC1B,QAAA,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;IAG1C,cAAc,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM;;AAG1I,IAAA,eAAe,CAAC,KAAa,EAAA;AACzB,QAAA,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;;AAGrK,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACvB,QAAA,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;;uGA9G5D,WAAW,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAaA,eAAe,CAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAIf,gBAAgB,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAQhB,gBAAgB,CAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAEhB,gBAAgB,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAIhB,eAAe,CAAA,EAAA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAEf,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA7L1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGQ,WAAW,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA7JV,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,ifAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,6KAAE,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA6J5G,WAAW,EAAA,UAAA,EAAA,CAAA;kBAhKvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,CAAC;AACtH,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyJT,IAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC;AACpC,iBAAA;8BAEY,EAAE,EAAA,CAAA;sBAAV;gBAEQ,KAAK,EAAA,CAAA;sBAAb;gBAEQ,YAAY,EAAA,CAAA;sBAApB;gBAEQ,MAAM,EAAA,CAAA;sBAAd;gBAEQ,SAAS,EAAA,CAAA;sBAAjB;gBAEQ,cAAc,EAAA,CAAA;sBAAtB;gBAEsC,KAAK,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAE5B,aAAa,EAAA,CAAA;sBAArB;gBAEuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAE7B,WAAW,EAAA,CAAA;sBAAnB;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBAEQ,OAAO,EAAA,CAAA;sBAAf;gBAEuC,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAEE,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAE7B,YAAY,EAAA,CAAA;sBAApB;gBAEsC,QAAQ,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAEG,IAAI,EAAA,CAAA;sBAA3C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAE5B,SAAS,EAAA,CAAA;sBAAlB;gBAES,cAAc,EAAA,CAAA;sBAAvB;gBAES,SAAS,EAAA,CAAA;sBAAlB;gBAES,QAAQ,EAAA,CAAA;sBAAjB;gBAES,WAAW,EAAA,CAAA;sBAApB;gBAEuC,gBAAgB,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;AAoE1C;;;AAGG;AAkEG,MAAO,QAAS,SAAQ,aAAa,CAAA;AACvC;;;AAGG;IACH,IAAa,KAAK,CAAC,KAAiC,EAAA;AAChD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;;AAEvE,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM;;AAEtB;;;;AAIG;AACM,IAAA,UAAU;AACnB;;;AAGG;IACM,WAAW,GAAuC,YAAY;AACvE;;;AAGG;AACM,IAAA,EAAE;AACX;;;AAGG;AACM,IAAA,SAAS;AAClB;;;AAGG;AACM,IAAA,cAAc;AACvB;;;AAGG;IACM,UAAU,GAAW,OAAO;AACrC;;;AAGG;IACM,YAAY,GAAW,OAAO;AACvC;;;AAGG;IACqC,QAAQ,GAAY,KAAK;AACjE;;;AAGG;IACoC,QAAQ,GAAW,CAAC;AAC3D;;;AAGG;AAC4C,IAAA,aAAa;AAC5D;;;AAGG;AAC0C,IAAA,WAAW;AACxD;;;AAGG;AAC+C,IAAA,gBAAgB;AAClE;;;AAGG;AACkD,IAAA,mBAAmB;AACxE;;;AAGG;AAC2C,IAAA,YAAY;AAC1D;;;AAGG;AAC6C,IAAA,cAAc;AAC9D;;;AAGG;AACiD,IAAA,kBAAkB;AAEtC,IAAA,SAAS;AAEhB,IAAA,mBAAmB;AAErB,IAAA,QAAQ;AAE/B,IAAA,cAAc;AAEd,IAAA,YAAY;AAEZ,IAAA,iBAAiB;AAEjB,IAAA,oBAAoB;AAEpB,IAAA,aAAa;AAEb,IAAA,eAAe;AAEf,IAAA,mBAAmB;AAEnB,IAAA,oBAAoB;AAEpB,IAAA,cAAc;IAEd,KAAK,GAAY,KAAK;IAEtB,OAAO,GAAY,KAAK;AAExB,IAAA,UAAU,GAAG,MAAM,CAAM,IAAI,CAAC;IAE9B,eAAe,GAAG,MAAM,CAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEjF,WAAW,GAAW,EAAE;AAExB,IAAA,aAAa;AAEb,IAAA,eAAe;AAEf,IAAA,MAAM;AAEN,IAAA,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC;AAE/B,IAAA,kBAAkB;AAElB,IAAA,KAAK;IAEN,YAAY,GAAY,KAAK;IAE7B,YAAY,GAAY,KAAK;AAEpC,IAAA,IAAI,YAAY,GAAA;QACZ,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI;AAE9E,QAAA,OAAO;AACH,cAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,KAAI;AACtC,gBAAA,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;oBACpB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACxB,wBAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,qBAAC,CAAC;AACN,iBAAC,CAAC;AAEF,gBAAA,OAAO,KAAK;aACf,EAAE,EAAE;AACP,cAAE,IAAI,CAAC,cAAc;;AAG7B,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;AACvD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;;QAEtE,OAAO,IAAI,CAAC,eAAe;;AAG/B,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE;AAC1C,QAAA,OAAO,WAAW,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAA,CAAA,EAAI,WAAW,CAAC,GAAG,CAAA,CAAE,GAAG,IAAI;;AAGjJ,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;QACP,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;gBACxB,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,kBAAkB,EAAE;;iBACtB;gBACH,IAAI,CAAC,0BAA0B,EAAE;gBACjC,IAAI,CAAC,oBAAoB,EAAE;;AAEnC,SAAC,CAAC;;IAGN,QAAQ,GAAA;QACJ,KAAK,CAAC,QAAQ,EAAE;QAChB,IAAI,CAAC,sBAAsB,EAAE;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC;;IAGvC,kBAAkB,GAAA;QACd,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,YAAA,QAAQ,IAAI,CAAC,OAAO,EAAE;AAClB,gBAAA,KAAK,OAAO;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ;oBACnC;AAEJ,gBAAA,KAAK,KAAK;AACN,oBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;oBACjC;AAEJ,gBAAA,KAAK,UAAU;AACX,oBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ;oBACtC;AAEJ,gBAAA,KAAK,aAAa;AACd,oBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ;oBACzC;AAEJ,gBAAA,KAAK,MAAM;AACP,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;AAEJ,gBAAA,KAAK,QAAQ;AACT,oBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;oBACpC;AAEJ,gBAAA,KAAK,YAAY;AACb,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;oBACxC;AAEJ,gBAAA;AACI,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ;oBAClC;;AAEZ,SAAC,CAAC;;IAGN,sBAAsB,GAAA;AAClB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA,YAAA,EAAe,IAAI,CAAC,UAAU,CAAA,CAAA,CAAG,CAAC;AAElE,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO;AAEjC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,MAAK;AAC3B,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO;AACjC,oBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,oBAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;AAC1B,iBAAC;gBAED,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;;;;IAKrE,wBAAwB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC;AACjE,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;;;AAItC,IAAA,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,WAAY,EAAA;QAC5E,MAAM,cAAc,GAAG,EAAE;QAEzB,KAAK;YACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC1B,gBAAA,MAAM,GAAG,GAAG,CAAC,SAAS,KAAK,EAAE,GAAG,SAAS,GAAG,GAAG,GAAG,EAAE,KAAK,WAAW,KAAK,SAAS,GAAG,WAAW,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,KAAK;AACpH,gBAAA,MAAM,OAAO,GAAG;oBACZ,IAAI;oBACJ,KAAK;oBACL,KAAK;oBACL,GAAG;oBACH,MAAM;oBACN,SAAS;oBACT,WAAW,EAAE,WAAW,KAAK,SAAS,GAAG,WAAW,GAAS,MAAO,CAAC,WAAW,KAAK,SAAS,GAAS,MAAO,CAAC,WAAW,GAAG;iBAChI;gBAED,OAAO,CAAC,OAAO,CAAC;AACZ,oBAAA,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC;AAChO,gBAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,aAAC,CAAC;AACN,QAAA,OAAO,cAAc;;IAGzB,WAAW,CAAC,IAAS,EAAE,IAAY,EAAA;AAC/B,QAAA,OAAO,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS;;AAGjD,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;QACxD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAE/C,IAAI,QAAQ,EAAE;YACV,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,aAAa;AAErD,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEzD,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,gBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;;;aAE/E;YACH,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;iBACrB;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;;;;AAKpC,IAAA,gBAAgB,CAAC,KAAK,EAAA;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;;;AAIhC,IAAA,eAAe,CAAC,KAAK,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAGtB,IAAA,iBAAiB,CAAC,KAAK,EAAA;QACnB,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,KAAK,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;;AAGrH,IAAA,MAAM,CAAC,KAAiB,EAAA;AACpB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YACzB,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC;YACjD,IAAI,CAAC,IAAI,EAAE;;aACR;AACH,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YACxB,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YAChF,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,IAAI,EAAE;aACd,EAAE,CAAC,CAAC;;QAGT,IAAI,CAAC,wBAAwB,EAAE;QAC/B,KAAK,CAAC,cAAc,EAAE;;IAG1B,IAAI,GAAA;QACA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAE9F,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC;;IAG1C,YAAY,CAAC,KAAA,GAAgB,CAAC,CAAC,EAAA;QAC3B,MAAM,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,CAAA,EAAG,IAAI,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,GAAG,IAAI,CAAC,aAAa;AAEpE,QAAA,IAAI,OAAO;QAEX,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,YAAA,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa;;aAC7C;AACH,YAAA,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAA,OAAA,EAAU,EAAE,CAAA,EAAA,CAAI,CAAC;;QAG1F,IAAI,OAAO,EAAE;YACT,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;;AAIrH,IAAA,YAAY,CAAC,KAAU,EAAA;AACnB,QAAA,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,KAAK;QAExC,IAAI,OAAO,CAAC,aAAa,CAAC;YAAE;AAE5B,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa;AAC5D,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC;QAEjC,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;;AAEtC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAEzD,OAAO,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,CAAC;;IAGpE,IAAI,CAAC,KAAM,EAAE,OAAiB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;YACzB,UAAU,CAAC,MAAK;AACZ,gBAAA,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,aAAa,CAAC;gBAC9C,IAAI,CAAC,YAAY,EAAE;aACtB,EAAE,GAAG,CAAC;;AAGX,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAE3E,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,CAAC;AAChE,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGtB,IAAA,WAAW,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AACrC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,EAAE;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAEjD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;;;AAIjI,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC5E,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGtB,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AAE9C,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC1B;AAEJ,YAAA,KAAK,SAAS;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;gBACxB;AAEJ,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAC1B;AAEJ,YAAA,KAAK,YAAY;AACb,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;gBAC3B;AAEJ,YAAA,KAAK,MAAM;AACP,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBACrB;AAEJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB;AAEJ,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB;AAEJ,YAAA,KAAK,OAAO;AACR,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBACtB;AAEJ,YAAA,KAAK,QAAQ;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;AAEJ,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpB;AAEJ,YAAA,KAAK,UAAU;AACf,YAAA,KAAK,QAAQ;AACb,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,YAAY;;gBAEb;AAEJ,YAAA;gBACI,IAAI,CAAC,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;;gBAGtC;;;IAIZ,yBAAyB,GAAA;AACrB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAElD,QAAA,OAAO,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,GAAG,aAAa;;IAGxE,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;;IAG1F,qBAAqB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;;AAGlG,IAAA,oBAAoB,CAAC,aAAkB,EAAA;QACnC,OAAO,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;AAG3D,IAAA,UAAU,CAAC,aAAkB,EAAA;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,GAAG,KAAK;;AAG9F,IAAA,mBAAmB,CAAC,aAAkB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;;AAG5E,IAAA,WAAW,CAAC,aAAkB,EAAA;QAC1B,OAAO,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC;;AAGnH,IAAA,cAAc,CAAC,IAAS,EAAA;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;;AAG7C,IAAA,eAAe,CAAC,IAAS,EAAA;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;;AAG9C,IAAA,aAAa,CAAC,aAAkB,EAAA;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;;AAG7J,IAAA,qBAAqB,CAAC,aAAkB,EAAA;QACpC,OAAO,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC;;IAG3D,WAAW,CAAC,KAAU,EAAE,IAAY,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,IAAI;AAElD,QAAA,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,OAAO,GAAG,KAAK;QAEnB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AACrC,YAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACjI,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK;;aAC/L;AACH,YAAA,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;;AAGjG,QAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YAClB,OAAO,GAAG,IAAI;;AAGlB,QAAA,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AACzD,YAAA,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE;;AAGhD,QAAA,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;;AAGhD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGpC,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;SAC5B,EAAE,GAAG,CAAC;AAEP,QAAA,OAAO,OAAO;;AAGlB,IAAA,sBAAsB,CAAC,aAAkB,EAAA;AACrC,QAAA,OAAO,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS;;AAG5E,IAAA,YAAY,CAAC,IAAS,EAAA;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;;IAG1C,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAA;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACjD,QAAA,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE;YAC3B,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,aAAa;YAC9C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;QAG7E,IAAI,CAAC,YAAY,EAAE;;AAGvB,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;YACnC,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE;gBACvF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE;gBACvC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;;iBACnE;AACH,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;gBACxE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;gBAEzD,IAAI,OAAO,EAAE;oBACT,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,aAAa;oBAC9C,IAAI,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;oBAC1D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnF,oBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;;;AAKjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,yBAAyB,EAAE;AAC/I,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;QAC5C,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,eAAe,CAAC,KAAoB,EAAA;AAChC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;QAEzD,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACjC,gBAAA,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE;AAC9E,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,CAAC;;qBACzG;AACH,oBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;oBACxE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;oBAEzD,IAAI,OAAO,EAAE;wBACT,IAAI,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC1D,wBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;4BACrB,KAAK,EAAE,CAAC,CAAC;4BACT,GAAG,EAAE,aAAa,CAAC,GAAG;4BACtB,SAAS,EAAE,aAAa,CAAC,SAAS;4BAClC,IAAI,EAAE,aAAa,CAAC;AACvB,yBAAA,CAAC;AACF,wBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;;;AAKjC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,yBAAyB,EAAE;AAE/I,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;;aACzC;AACH,YAAA,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC;AACjD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC;AAEzF,YAAA,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;;QAGpE,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,YAAY,CAAC,KAAoB,EAAA;QAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;YACnD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AACrC,gBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;gBACxE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;gBAEzD,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;oBACzC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE;AACpC,wBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACrB,4BAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK;AAC9B,4BAAA,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG;AAC1B,4BAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS;4BACtC,IAAI,EAAE,aAAa,CAAC;AACvB,yBAAA,CAAC;AACF,wBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;yBACtB;wBACH,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;;;;YAKxE,KAAK,CAAC,cAAc,EAAE;;aACnB;AACH,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE;AAE9I,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;YAC5C,KAAK,CAAC,cAAc,EAAE;;;AAI9B,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC/B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;QAEzD,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,EAAE;AACnC,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,wBAAwB,EAAE;AAE9I,gBAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;;;aAE7C;AACH,YAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAClE,gBAAA,IAAI,aAAa,CAAC,WAAW,KAAK,CAAC,EAAE;AACjC,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AACrB,wBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK;AAC9B,wBAAA,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG;AAC1B,wBAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS;wBACtC,IAAI,EAAE,aAAa,CAAC;AACvB,qBAAA,CAAC;AACF,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;;AAIjC,YAAA,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,GAAG,CAAC;AACjD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC;AAEzF,YAAA,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC;;QAGpE,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5D,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,QAAQ,CAAC,KAAoB,EAAA;QACzB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3D,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,UAAU,CAAC,KAAoB,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;AAG1B,IAAA,WAAW,CAAC,KAAoB,EAAA;QAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;AACtH,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;;QAG7B,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,QAAQ,CAAC,KAAoB,EAAA;QACzB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AACrC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AAEzD,YAAA,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;;QAG1E,IAAI,CAAC,IAAI,EAAE;;AAGf,IAAA,UAAU,CAAC,KAAoB,EAAA;QAC3B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;YACrC,MAAM,OAAO,GAAQ,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,CAAA,OAAA,EAAU,GAAG,IAAI,CAAC,aAAa,CAAA,CAAE,CAAA,EAAA,CAAI,CAAC;YACxG,MAAM,aAAa,GAAG,OAAO,IAAS,UAAU,CAAC,OAAO,EAAE,6BAA6B,CAAC;AAExF,YAAA,aAAa,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;AAElE,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AAEzD,YAAA,CAAC,OAAO,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC;;QAGnF,KAAK,CAAC,cAAc,EAAE;;AAG1B,IAAA,eAAe,CAAC,KAAK,EAAA;AACjB,QAAA,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI;;IAG1E,wBAAwB,GAAA;AACpB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAClD,QAAA,OAAO,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,GAAG,aAAa;;IAGvE,iBAAiB,GAAA;AACb,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;;AAG/F,IAAA,iBAAiB,CAAC,KAAa,EAAA;AAC3B,QAAA,MAAM,gBAAgB,GAAG,KAAK,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAE9I,QAAA,OAAO,gBAAgB,GAAG,CAAC,CAAC,GAAG,gBAAgB,GAAG,KAAK;;AAG3D,IAAA,iBAAiB,CAAC,KAAa,EAAA;QAC3B,MAAM,gBAAgB,GAAG,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAErK,QAAA,OAAO,gBAAgB,GAAG,CAAC,CAAC,GAAG,gBAAgB,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK;;IAGvE,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,KAAI;AAC5B,gBAAA,IAAI,CAAC,aAAa,EAAE,EAAE;AAClB,oBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;;AAG1B,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC7B,aAAC;YAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;;;IAI9D,wBAAwB,GAAA;AACpB,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,KAAI;oBAC/E,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;oBAEpH,IAAI,kBAAkB,EAAE;wBACpB,IAAI,CAAC,IAAI,EAAE;;AAEnB,iBAAC,CAAC;;;;IAKd,0BAA0B,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3B,IAAI,CAAC,oBAAoB,EAAE;AAC3B,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;;;IAIxC,oBAAoB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC;AACzD,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;;IAIlC,WAAW,GAAA;QACP,IAAI,CAAC,0BAA0B,EAAE;QACjC,IAAI,CAAC,oBAAoB,EAAE;QAC3B,IAAI,CAAC,wBAAwB,EAAE;QAC/B,KAAK,CAAC,WAAW,EAAE;;uGAjzBd,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAoDG,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAKhB,eAAe,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,8BAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAjExB,CAAC,aAAa,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAsGT,aAAa,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3JpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAnDS,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAxH3B,WAAW,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAwH+B,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA8D5F,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAjEpB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qCAAqC;AAC/C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC;AACtG,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDT,IAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,SAAS,EAAE,CAAC,aAAa,CAAC;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,4BAA4B;AACvC,wBAAA,MAAM,EAAE,IAAI;AACZ,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,cAAc,EAAE;AACnB;AACJ,iBAAA;wDAMgB,KAAK,EAAA,CAAA;sBAAjB;gBAYQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,WAAW,EAAA,CAAA;sBAAnB;gBAKQ,EAAE,EAAA,CAAA;sBAAV;gBAKQ,SAAS,EAAA,CAAA;sBAAjB;gBAKQ,cAAc,EAAA,CAAA;sBAAtB;gBAKQ,UAAU,EAAA,CAAA;sBAAlB;gBAKQ,YAAY,EAAA,CAAA;sBAApB;gBAKuC,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAKC,QAAQ,EAAA,CAAA;sBAA9C,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;gBAKU,aAAa,EAAA,CAAA;sBAA3D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAKA,WAAW,EAAA,CAAA;sBAAvD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAKO,gBAAgB,EAAA,CAAA;sBAAjE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAKK,mBAAmB,EAAA,CAAA;sBAAvE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAKL,YAAY,EAAA,CAAA;sBAAzD,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAKI,cAAc,EAAA,CAAA;sBAA7D,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAKM,kBAAkB,EAAA,CAAA;sBAArE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;gBAElB,SAAS,EAAA,CAAA;sBAAxC,eAAe;uBAAC,aAAa;gBAEL,mBAAmB,EAAA,CAAA;sBAA3C,SAAS;uBAAC,YAAY;gBAEA,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU;;MAutBZ,cAAc,CAAA;uGAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAzzBd,QAAQ,EAszBG,YAAY,CAAA,EAAA,OAAA,EAAA,CAtzBvB,QAAQ,EAuzBG,YAAY,CAAA,EAAA,CAAA;AAEvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAAA,OAAA,EAAA,CAHb,QAAQ,EAAE,YAAY,EACZ,YAAY,CAAA,EAAA,CAAA;;2FAEvB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;AACjC,oBAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY;AACnC,iBAAA;;;ACnrCD;;AAEG;;;;"}
|