@acorex/components 21.0.2-next.33 → 21.0.2-next.35
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/{types/acorex-components-accordion.d.ts → accordion/index.d.ts} +1 -0
- package/{types/acorex-components-button.d.ts → button/index.d.ts} +5 -11
- package/{types/acorex-components-button-group.d.ts → button-group/index.d.ts} +12 -20
- package/{types/acorex-components-calendar.d.ts → calendar/index.d.ts} +11 -4
- package/{types/acorex-components-check-box.d.ts → check-box/index.d.ts} +1 -1
- package/{types/acorex-components-chips.d.ts → chips/index.d.ts} +8 -3
- package/collapse/README.md +3 -0
- package/collapse/index.d.ts +174 -0
- package/{types/acorex-components-color-palette.d.ts → color-palette/index.d.ts} +0 -2
- package/{types/acorex-components-conversation2.d.ts → conversation2/index.d.ts} +667 -667
- package/{types/acorex-components-data-pager.d.ts → data-pager/index.d.ts} +6 -25
- package/{types/acorex-components-data-table.d.ts → data-table/index.d.ts} +270 -12
- package/{types/acorex-components-datetime-box.d.ts → datetime-box/index.d.ts} +65 -4
- package/drawer-legacy/README.md +3 -0
- package/drawer-legacy/index.d.ts +86 -0
- package/{types/acorex-components-dropdown-button.d.ts → dropdown-button/index.d.ts} +2 -4
- package/fesm2022/acorex-components-accordion.mjs +37 -32
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +32 -32
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +21 -21
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs +6 -6
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +14 -15
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +16 -16
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +17 -17
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +11 -11
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +15 -15
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +14 -14
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +28 -63
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +40 -41
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +59 -41
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +12 -12
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +15 -13
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +16 -18
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs +30 -30
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +366 -0
- package/fesm2022/acorex-components-collapse.mjs.map +1 -0
- package/fesm2022/acorex-components-color-box.mjs +16 -16
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +44 -85
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +20 -20
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +37 -37
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +119 -119
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +708 -720
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +60 -60
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +34 -34
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +85 -94
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +522 -75
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +162 -27
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +24 -24
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +30 -30
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +49 -56
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +20 -27
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
- package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
- package/fesm2022/acorex-components-drawer.mjs +26 -25
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +11 -19
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +22 -22
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +15 -15
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-fab.mjs +18 -18
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +307 -0
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -0
- package/fesm2022/acorex-components-flow-chart.mjs +63 -80
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +39 -47
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +19 -18
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +93 -93
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +12 -12
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +13 -13
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +26 -28
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +17 -17
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +9 -9
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +16 -16
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +20 -20
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +23 -23
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +47 -47
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +85 -85
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +49 -49
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-BGSCJ1Ux.mjs → acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs} +29 -29
- package/fesm2022/acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs.map +1 -0
- package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs +212 -0
- package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +9 -9
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +29 -29
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box-legacy.mjs +430 -0
- package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
- package/fesm2022/acorex-components-number-box.mjs +21 -21
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +13 -13
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +65 -60
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +39 -31
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +10 -10
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +20 -20
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +33 -33
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +11 -11
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +25 -25
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +9 -11
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +21 -38
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +15 -16
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +9 -10
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +51 -53
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +36 -36
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +42 -27
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +39 -39
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +8 -8
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +8 -8
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +38 -38
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +235 -229
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +406 -334
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +22 -0
- package/fesm2022/acorex-components-scss.mjs.map +1 -0
- package/fesm2022/acorex-components-search-box.mjs +13 -19
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +27 -29
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +15 -15
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +12 -12
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +44 -44
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +8 -8
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +13 -13
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +28 -28
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +41 -41
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +14 -14
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +22 -22
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +20 -20
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +10 -10
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +9 -9
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +14 -14
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +31 -29
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +21 -21
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +27 -27
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +14 -14
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +17 -17
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view-legacy.mjs +511 -0
- package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -0
- package/fesm2022/acorex-components-tree-view.mjs +57 -57
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +18 -18
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +10 -10
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +58 -58
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/file-explorer/README.md +3 -0
- package/file-explorer/index.d.ts +103 -0
- package/{types/acorex-components-flow-chart.d.ts → flow-chart/index.d.ts} +0 -4
- package/{types/acorex-components-form.d.ts → form/index.d.ts} +24 -24
- package/{types/acorex-components-grid-layout-builder.d.ts → grid-layout-builder/index.d.ts} +1 -0
- package/{types/acorex-components-loading.d.ts → loading/index.d.ts} +1 -1
- package/{types/acorex-components-menu.d.ts → menu/index.d.ts} +6 -6
- package/number-box-legacy/README.md +3 -0
- package/number-box-legacy/index.d.ts +191 -0
- package/package.json +138 -115
- package/{types/acorex-components-paint.d.ts → paint/index.d.ts} +6 -1
- package/{types/acorex-components-qrcode.d.ts → qrcode/index.d.ts} +0 -1
- package/{types/acorex-components-radio.d.ts → radio/index.d.ts} +1 -1
- package/{types/acorex-components-rate-picker.d.ts → rate-picker/index.d.ts} +15 -5
- package/{types/acorex-components-scheduler.d.ts → scheduler/index.d.ts} +20 -2
- package/{types/acorex-components-scheduler-picker.d.ts → scheduler-picker/index.d.ts} +81 -82
- package/scss/README.md +3 -0
- package/scss/index.d.ts +10 -0
- package/{types/acorex-components-select-box.d.ts → select-box/index.d.ts} +1 -2
- package/{types/acorex-components-slider.d.ts → slider/index.d.ts} +2 -2
- package/{types/acorex-components-tabs.d.ts → tabs/index.d.ts} +1 -1
- package/{types/acorex-components-tag.d.ts → tag/index.d.ts} +3 -3
- package/tree-view-legacy/README.md +3 -0
- package/tree-view-legacy/index.d.ts +184 -0
- package/fesm2022/acorex-components-modal-acorex-components-modal-BGSCJ1Ux.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-CEdB5dcg.mjs +0 -214
- package/fesm2022/acorex-components-modal-modal-content.component-CEdB5dcg.mjs.map +0 -1
- package/{types/acorex-components-action-sheet.d.ts → action-sheet/index.d.ts} +0 -0
- package/{types/acorex-components-alert.d.ts → alert/index.d.ts} +0 -0
- package/{types/acorex-components-aspect-ratio.d.ts → aspect-ratio/index.d.ts} +0 -0
- package/{types/acorex-components-audio-wave.d.ts → audio-wave/index.d.ts} +0 -0
- package/{types/acorex-components-autocomplete.d.ts → autocomplete/index.d.ts} +0 -0
- package/{types/acorex-components-avatar.d.ts → avatar/index.d.ts} +0 -0
- package/{types/acorex-components-badge.d.ts → badge/index.d.ts} +0 -0
- package/{types/acorex-components-bottom-navigation.d.ts → bottom-navigation/index.d.ts} +0 -0
- package/{types/acorex-components-breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
- package/{types/acorex-components-circular-progress.d.ts → circular-progress/index.d.ts} +0 -0
- package/{types/acorex-components-code-editor.d.ts → code-editor/index.d.ts} +0 -0
- package/{types/acorex-components-color-box.d.ts → color-box/index.d.ts} +0 -0
- package/{types/acorex-components-command.d.ts → command/index.d.ts} +0 -0
- package/{types/acorex-components-comment.d.ts → comment/index.d.ts} +0 -0
- package/{types/acorex-components-conversation.d.ts → conversation/index.d.ts} +0 -0
- package/{types/acorex-components-cron-job.d.ts → cron-job/index.d.ts} +0 -0
- package/{types/acorex-components-data-list.d.ts → data-list/index.d.ts} +0 -0
- package/{types/acorex-components-datetime-input.d.ts → datetime-input/index.d.ts} +0 -0
- package/{types/acorex-components-datetime-picker.d.ts → datetime-picker/index.d.ts} +0 -0
- package/{types/acorex-components-decorators.d.ts → decorators/index.d.ts} +0 -0
- package/{types/acorex-components-dialog.d.ts → dialog/index.d.ts} +0 -0
- package/{types/acorex-components-drawer.d.ts → drawer/index.d.ts} +0 -0
- package/{types/acorex-components-dropdown.d.ts → dropdown/index.d.ts} +0 -0
- package/{types/acorex-components-editor.d.ts → editor/index.d.ts} +0 -0
- package/{types/acorex-components-fab.d.ts → fab/index.d.ts} +0 -0
- package/{types/acorex-components-image.d.ts → image/index.d.ts} +0 -0
- package/{types/acorex-components-image-editor.d.ts → image-editor/index.d.ts} +0 -0
- package/{types/acorex-components.d.ts → index.d.ts} +0 -0
- package/{types/acorex-components-json-viewer.d.ts → json-viewer/index.d.ts} +0 -0
- package/{types/acorex-components-kanban.d.ts → kanban/index.d.ts} +0 -0
- package/{types/acorex-components-kbd.d.ts → kbd/index.d.ts} +0 -0
- package/{types/acorex-components-label.d.ts → label/index.d.ts} +0 -0
- package/{types/acorex-components-list.d.ts → list/index.d.ts} +0 -0
- package/{types/acorex-components-loading-dialog.d.ts → loading-dialog/index.d.ts} +0 -0
- package/{types/acorex-components-map.d.ts → map/index.d.ts} +0 -0
- package/{types/acorex-components-media-viewer.d.ts → media-viewer/index.d.ts} +0 -0
- package/{types/acorex-components-modal.d.ts → modal/index.d.ts} +0 -0
- package/{types/acorex-components-navbar.d.ts → navbar/index.d.ts} +0 -0
- package/{types/acorex-components-notification.d.ts → notification/index.d.ts} +0 -0
- package/{types/acorex-components-number-box.d.ts → number-box/index.d.ts} +0 -0
- package/{types/acorex-components-otp.d.ts → otp/index.d.ts} +0 -0
- package/{types/acorex-components-page.d.ts → page/index.d.ts} +0 -0
- package/{types/acorex-components-password-box.d.ts → password-box/index.d.ts} +0 -0
- package/{types/acorex-components-pdf-reader.d.ts → pdf-reader/index.d.ts} +0 -0
- package/{types/acorex-components-phone-box.d.ts → phone-box/index.d.ts} +0 -0
- package/{types/acorex-components-picker.d.ts → picker/index.d.ts} +0 -0
- package/{types/acorex-components-popover.d.ts → popover/index.d.ts} +0 -0
- package/{types/acorex-components-popup.d.ts → popup/index.d.ts} +0 -0
- package/{types/acorex-components-progress-bar.d.ts → progress-bar/index.d.ts} +0 -0
- package/{types/acorex-components-query-builder.d.ts → query-builder/index.d.ts} +1 -1
- /package/{types/acorex-components-rail-navigation.d.ts → rail-navigation/index.d.ts} +0 -0
- /package/{types/acorex-components-range-slider.d.ts → range-slider/index.d.ts} +0 -0
- /package/{types/acorex-components-rest-api-generator.d.ts → rest-api-generator/index.d.ts} +0 -0
- /package/{types/acorex-components-result.d.ts → result/index.d.ts} +0 -0
- /package/{types/acorex-components-routing-progress.d.ts → routing-progress/index.d.ts} +0 -0
- /package/{types/acorex-components-rrule.d.ts → rrule/index.d.ts} +0 -0
- /package/{types/acorex-components-search-box.d.ts → search-box/index.d.ts} +0 -0
- /package/{types/acorex-components-selection-list.d.ts → selection-list/index.d.ts} +0 -0
- /package/{types/acorex-components-selection-list-2.d.ts → selection-list-2/index.d.ts} +0 -0
- /package/{types/acorex-components-side-menu.d.ts → side-menu/index.d.ts} +0 -0
- /package/{types/acorex-components-skeleton.d.ts → skeleton/index.d.ts} +0 -0
- /package/{types/acorex-components-sliding-item.d.ts → sliding-item/index.d.ts} +0 -0
- /package/{types/acorex-components-step-wizard.d.ts → step-wizard/index.d.ts} +0 -0
- /package/{types/acorex-components-switch.d.ts → switch/index.d.ts} +0 -0
- /package/{types/acorex-components-tag-box.d.ts → tag-box/index.d.ts} +0 -0
- /package/{types/acorex-components-text-area.d.ts → text-area/index.d.ts} +0 -0
- /package/{types/acorex-components-text-box.d.ts → text-box/index.d.ts} +0 -0
- /package/{types/acorex-components-time-duration.d.ts → time-duration/index.d.ts} +0 -0
- /package/{types/acorex-components-time-line.d.ts → time-line/index.d.ts} +0 -0
- /package/{types/acorex-components-toast.d.ts → toast/index.d.ts} +0 -0
- /package/{types/acorex-components-toolbar.d.ts → toolbar/index.d.ts} +0 -0
- /package/{types/acorex-components-tooltip.d.ts → tooltip/index.d.ts} +0 -0
- /package/{types/acorex-components-tree-view.d.ts → tree-view/index.d.ts} +0 -0
- /package/{types/acorex-components-uploader.d.ts → uploader/index.d.ts} +0 -0
- /package/{types/acorex-components-video-player.d.ts → video-player/index.d.ts} +0 -0
- /package/{types/acorex-components-wysiwyg.d.ts → wysiwyg/index.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../packages/components/menu/src/lib/menu.service.ts","../../../../packages/components/menu/src/lib/menu.types.ts","../../../../packages/components/menu/src/lib/menu-item.component.ts","../../../../packages/components/menu/src/lib/menu-item.component.html","../../../../packages/components/menu/src/lib/context-menu.component.ts","../../../../packages/components/menu/src/lib/menu.component.html","../../../../packages/components/menu/src/lib/menu.component.ts","../../../../packages/components/menu/src/lib/menu.module.ts","../../../../packages/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXPoint } from '@acorex/core/utils';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\n@Injectable()\nexport class AXMenuService {\n public closeAll$: Subject<void> = new Subject();\n public open$: Subject<AXMenuItemComponentBase> = new Subject();\n public close$: Subject<AXMenuItemComponentBase> = new Subject();\n public closeExcept$ = new Subject<AXMenuItemComponentBase>();\n\n public openContextMenu$ = new Subject<{ sender: AXRootMenu; point: AXPoint }>();\n public closeAllContextMenu$ = new Subject<{ sender: AXRootMenu }>();\n}\n","import { AXOrientation, AXStyleColorType, NXClickEvent, NXComponent } from '@acorex/cdk/common';\nimport { OutputEmitterRef, WritableSignal } from '@angular/core';\nimport { IsActiveMatchOptions, UrlTree } from '@angular/router';\n\nexport type AXMenuOpenTrigger = 'click' | 'hover';\nexport type AXMenuCloseTrigger = 'click' | 'leave';\n\nexport abstract class AXRootMenu {\n orientation: WritableSignal<AXOrientation>;\n openOn: WritableSignal<AXMenuOpenTrigger>;\n closeOn: WritableSignal<AXMenuCloseTrigger>;\n onItemClick: OutputEmitterRef<AXMenuItemClickBaseEvent>;\n nativeElement: HTMLDivElement;\n hasArrow: WritableSignal<boolean>;\n}\n\nexport abstract class AXMenuItemComponentBase {}\n\n/** Shared tree item shape for `ax-menu`, `ax-context-menu`, and `ax-side-menu`. */\nexport interface AXMenuItem {\n text: string;\n name?: string;\n icon?: string;\n data?: unknown;\n disabled?: boolean;\n items?: AXMenuItem[];\n color?: AXStyleColorType;\n suffix?: {\n text: string;\n };\n /** Side-menu alias for `suffix.text`. */\n suffixText?: string;\n break?: boolean;\n group?: {\n name?: string;\n title?: string;\n };\n title?: string;\n routerLink?: string | any[] | UrlTree;\n routerLinkActive?: string | string[];\n routerLinkActiveOptions?: { exact: boolean } | IsActiveMatchOptions;\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n active?: boolean;\n isLoading?: boolean;\n isCollapsed?: boolean;\n toggleOnClick?: boolean;\n}\n\nexport class AXMenuItemClickBaseEvent<T extends NXComponent = NXComponent> extends NXClickEvent<T> {\n item: {\n name?: string;\n text: string;\n data?: any;\n };\n canceled = false;\n}\n","import { AXComponent, AXStyleColorType, NXComponent } from '@acorex/cdk/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n HostListener,\n inject,\n Injector,\n input,\n OnDestroy,\n output,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemClickBaseEvent, AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ],\n})\nexport class AXMenuItemComponent extends NXComponent implements OnDestroy {\n protected isOpen = signal(false);\n protected hasSubItems = signal(false);\n protected isFirstLevel = signal(false);\n private mutationObserver!: MutationObserver;\n\n protected root = inject(AXRootMenu);\n protected parent?: AXMenuItemComponent | null;\n protected isRoot = () => this.parent == null;\n\n private service = inject(AXMenuService);\n private scrollableParents: HTMLElement[] = [];\n\n private unsuscriber = inject(AXUnsubscriber);\n private renderer = inject(Renderer2);\n private injector = inject(Injector);\n private zIndexService = inject(AXZIndexService);\n private zToken: AXZToken | null = null;\n\n protected arrowIcon = computed<string>(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n });\n\n onClick = output<AXMenuItemClickEvent>();\n\n name = input<string>();\n data = input<any>();\n disabled = input<boolean>();\n color = input<AXStyleColorType>();\n\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) === item) {\n this.isOpen.set(true);\n this.schedulePositionCalculation();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item as AXMenuItemComponent);\n });\n }\n\n private closeExcept(item: AXMenuItemComponent) {\n const list: AXMenuItemComponent[] = [item];\n // TODO: Check for better solution\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? (parentEl?.['__axContext__'] as AXMenuItemComponent) : null;\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n\n private observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n\n private getText(): string {\n return this.nativeElement.querySelector<HTMLDivElement>('ax-text')?.innerText;\n }\n\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n private detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? (parentEl?.['__axContext__'] as AXMenuItemComponent) : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n } else {\n this.hasSubItems.set(false);\n }\n }\n\n /**\n * Opens the submenu of this menu item if it has sub-items and is not disabled.\n *\n * Inherited behavior: Uses the injected service to notify other items to close.\n *\n * @returns void - No return value. Triggers submenu opening side-effects.\n */\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n // Acquire z-index token for this submenu\n if (!this.zToken) {\n this.zToken = this.zIndexService.acquire();\n }\n this.service.open$.next(this);\n }\n }\n\n /**\n * Closes the submenu of this menu item if open.\n *\n * @returns void - No return value. Triggers submenu closing side-effects.\n */\n close() {\n this.service.close$.next(this);\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n\n /**\n * Positions the submenu after layout so nested levels measure their full height.\n */\n private schedulePositionCalculation() {\n this.calculatePosition();\n afterNextRender(\n () => {\n if (this.isOpen()) {\n this.calculatePosition();\n }\n },\n { injector: this.injector },\n );\n }\n\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n private calculatePosition() {\n const submenu = this.nativeElement.querySelector<HTMLElement>('.ax-menu-items');\n if (!submenu) return;\n\n const submenuRect = this.measureSubmenuRect(submenu);\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n\n let finalTop: number;\n let finalLeft: number;\n\n // --- 1. VERTICAL POSITIONING ---\n const preferredTop =\n this.isFirstLevel() && this.root.orientation() === 'horizontal'\n ? itemRect.bottom // For horizontal menu, open below\n : itemRect.top; // For vertical menu, align with parent top\n\n const alternateTop = itemRect.top - submenuRect.height; // Position for opening upwards\n\n if (preferredTop + submenuRect.height <= windowHeight) {\n finalTop = preferredTop;\n } else if (alternateTop >= 0) {\n finalTop = alternateTop;\n } else {\n finalTop = windowHeight - submenuRect.height;\n }\n\n finalTop = this.clampVerticalPosition(finalTop, submenuRect.height, windowHeight);\n\n // --- 2. HORIZONTAL POSITIONING ---\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n const preferredLeft = isRtl ? itemRect.right - submenuRect.width : itemRect.left;\n const alternateLeft = isRtl ? itemRect.left : itemRect.right - submenuRect.width;\n\n if (preferredLeft >= 0 && preferredLeft + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeft;\n } else {\n finalLeft = Math.max(0, Math.min(alternateLeft, windowWidth - submenuRect.width));\n }\n } else {\n const preferredLeftRtl = itemRect.left - submenuRect.width;\n const alternateLeftRtl = itemRect.right;\n\n const preferredLeftLtr = itemRect.right;\n const alternateLeftLtr = itemRect.left - submenuRect.width;\n\n if (isRtl) {\n if (preferredLeftRtl >= 0) {\n finalLeft = preferredLeftRtl;\n } else if (alternateLeftRtl + submenuRect.width <= windowWidth) {\n finalLeft = alternateLeftRtl;\n } else {\n finalLeft = 0;\n }\n } else {\n if (preferredLeftLtr + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeftLtr;\n } else if (alternateLeftLtr >= 0) {\n finalLeft = alternateLeftLtr;\n } else {\n finalLeft = windowWidth - submenuRect.width;\n }\n }\n }\n\n // --- 3. OVERLAP-AWARE VERTICAL SHIFT ---\n const isNestedMenu = !(this.isFirstLevel() && this.root.orientation() === 'horizontal');\n if (isNestedMenu) {\n const overlapsParent = finalLeft < itemRect.right && itemRect.left < finalLeft + submenuRect.width;\n if (overlapsParent) {\n const shiftedTop = itemRect.bottom;\n if (shiftedTop + submenuRect.height <= windowHeight) {\n finalTop = shiftedTop;\n }\n }\n }\n\n finalTop = this.clampVerticalPosition(finalTop, submenuRect.height, windowHeight);\n\n // --- 4. APPLY FINAL STYLES ---\n this.renderer.setStyle(submenu, 'position', 'fixed');\n this.renderer.setStyle(submenu, 'top', `${finalTop}px`);\n this.renderer.setStyle(submenu, 'left', `${finalLeft}px`);\n // Apply z-index from token\n if (this.zToken) {\n this.renderer.setStyle(submenu, 'z-index', String(this.zToken.zIndex));\n }\n }\n\n /** Measures submenu size using the same flex layout as the rendered menu. */\n private measureSubmenuRect(submenu: HTMLElement): DOMRect {\n this.renderer.setStyle(submenu, 'visibility', 'hidden');\n this.renderer.setStyle(submenu, 'display', 'flex');\n const rect = submenu.getBoundingClientRect();\n this.renderer.removeStyle(submenu, 'visibility');\n this.renderer.removeStyle(submenu, 'display');\n return rect;\n }\n\n /** Keeps the submenu fully inside the viewport vertically. */\n private clampVerticalPosition(top: number, height: number, windowHeight: number): number {\n if (top + height > windowHeight) {\n top = windowHeight - height;\n }\n if (top < 0) {\n top = 0;\n }\n return top;\n }\n\n @HostListener('click', ['$event'])\n handleClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.disabled()) return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n } as AXMenuItemClickEvent;\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root as any } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n } else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n handleMouseEnter(event: MouseEvent) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n\n private mouseLeaveTimeout: any;\n\n @HostListener('mouseleave', ['$event'])\n handleMouseLeave(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n\n @HostListener('window:scroll')\n @HostListener('window:resize')\n onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target as Node)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n\n private bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n // Remove scroll event listeners\n private removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n private onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n const list: string[] = ['ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n list.push(`${this.color() ?? 'ax-default'}`);\n\n return list;\n }\n}\n","<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} \"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container\"></ng-content>\n</div>\n","import { AXComponent, AXOrientation, NXComponent, NXEvent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isBrowser } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n DOCUMENT,\n HostBinding,\n HostListener,\n inject,\n Injector,\n input,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { cloneDeep } from 'lodash-es';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport class AXContextMenuOpeningEvent extends NXEvent<AXContextMenuComponent> {\n items: AXMenuItem[];\n canceled = false;\n targetElement: HTMLElement;\n}\nexport type AXContextMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXContextMenuComponent>;\n\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\n@Component({\n selector: 'ax-context-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ],\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXContextMenuComponent extends NXComponent {\n // Inputs and Outputs\n\n readonly orientation = input<AXOrientation>('vertical');\n readonly openOn = input<AXMenuOpenTrigger>('hover');\n readonly closeOn = input<AXMenuCloseTrigger>('click');\n /** When true, closes the menu on router navigation (e.g. side-menu route changes). */\n readonly closeOnRouteChange = input(false);\n readonly originalItems = input<AXMenuItem[]>([], { alias: 'items' });\n readonly target = input<HTMLElement | HTMLElement[] | string>();\n\n onItemClick = output<AXContextMenuItemsClickEvent>();\n onOpening = output<AXContextMenuOpeningEvent>();\n /** Emitted when the menu closes (backdrop, item click, scroll, another menu opening, etc.). */\n onClose = output<void>();\n\n hasArrow = signal<boolean>(true);\n\n // Injected Services\n\n private service = inject(AXMenuService);\n private renderer = inject(Renderer2);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private zIndexService = inject(AXZIndexService);\n private injector = inject(Injector);\n private zToken: AXZToken | null = null;\n private lastOpenPoint: AXPoint | null = null;\n private router = inject(Router, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n // Constructor (Dependency Injection)\n\n /** @ignore */\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n\n this.setupCloseOnRouteChange();\n\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n\n this.service.openContextMenu$.subscribe((e) => {\n if ((e.sender as any) == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n\n // Lifecycle Hooks\n\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n\n /**\n * Refreshes the context menu by rebinding event listeners to target elements.\n */\n refresh() {\n this.bindContextEvent();\n }\n\n /**\n * Shows the context menu at a specific point.\n * @param point - The coordinates where the menu should appear\n * @param targetElement - Optional target element for the context menu\n * @param event - Optional opening event with menu items\n */\n showAt(point: AXPoint, targetElement?: HTMLElement, event?: AXContextMenuOpeningEvent) {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender });\n if (isPlatformBrowser(this.platformID)) {\n if (!targetElement) {\n targetElement = this.document.elementFromPoint(point.x, point.y) as HTMLElement;\n }\n if (!event) {\n event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n if (event.canceled) return;\n }\n this.onOpening.emit(event);\n this.items.set(event.items);\n }\n this.service.openContextMenu$.next({ sender, point });\n }\n\n /**\n * Closes the context menu and removes the backdrop.\n */\n close() {\n const wasOpen = this.nativeElement.classList.contains('ax-state-open');\n this.nativeElement.classList.remove('ax-state-open');\n this.lastOpenPoint = null;\n // Drop rendered items before moving DOM nodes back to the original parent.\n // This prevents a large menu tree from being re-parented/removed as a single heavy DOM operation.\n if (wasOpen) {\n this.items.set([]);\n }\n this.removeBackdrop();\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n if (wasOpen) {\n this.onClose.emit();\n }\n }\n\n // Private Properties\n\n private backdropElement!: HTMLElement;\n private originalNextSibling: Node | null = null;\n private originalParent: HTMLElement | null = null;\n\n protected items = signal<AXMenuItem[]>([]);\n\n // Private Methods (Internal Logic)\n\n /** @ignore */\n private setupCloseOnRouteChange() {\n if (!this.router || !isPlatformBrowser(this.platformID)) {\n return;\n }\n\n this.router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (this.closeOnRouteChange()) {\n this.close();\n }\n });\n }\n\n /** @ignore */\n private getTargetElements(): HTMLElement[] {\n if (isPlatformBrowser(this.platformID)) {\n const elements: HTMLElement[] =\n typeof this.target() == 'string'\n ? Array.from(this.document.querySelectorAll<HTMLElement>(this.target() as string))\n : Array.isArray(this.target())\n ? (this.target() as HTMLElement[])\n : [this.target() as HTMLElement];\n\n return elements;\n }\n return null;\n }\n\n /** @ignore */\n private bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n\n /** @ignore */\n private removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n\n /** @ignore */\n private handleContextMenu(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n //\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));\n //\n const event: AXContextMenuOpeningEvent = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY }, targetElement, event);\n }\n }\n }\n\n /** @ignore */\n private internalShowAt(point: AXPoint) {\n this.lastOpenPoint = point;\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n this.positionAtPoint(point);\n this.createBackdrop();\n\n // Items may render after the signal update (e.g. compact side-menu); reposition once laid out.\n afterNextRender(\n () => {\n if (this.lastOpenPoint && elementRef.classList.contains('ax-state-open')) {\n this.positionAtPoint(this.lastOpenPoint);\n }\n },\n { injector: this.injector },\n );\n }\n\n /**\n * Positions the menu at `point`, flipping when it would overflow the viewport.\n * Uses a temporary visible layout pass so parents that hide the host (e.g. side-menu `display: none`) do not yield a zero-sized rect.\n */\n private positionAtPoint(point: AXPoint) {\n const elementRef = this.nativeElement;\n const itemRect = this.measureMenuRect(elementRef);\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n\n let left: number;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n } else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n\n const bottom = point.y + itemRect.height;\n let top: number;\n\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n } else {\n top = point.y;\n }\n\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n }\n\n /** Measures menu size even when an ancestor hides the host with `display: none`. */\n private measureMenuRect(elementRef: HTMLElement): DOMRect {\n this.renderer.setStyle(elementRef, 'visibility', 'hidden');\n this.renderer.setStyle(elementRef, 'display', 'flex');\n const rect = elementRef.getBoundingClientRect();\n this.renderer.removeStyle(elementRef, 'visibility');\n this.renderer.removeStyle(elementRef, 'display');\n return rect;\n }\n\n /** @ignore */\n private createBackdrop() {\n if (!this.originalParent) {\n this.originalParent = this.nativeElement.parentElement;\n this.originalNextSibling = this.nativeElement.nextSibling;\n }\n\n // Acquire z-index token\n this.zToken = this.zIndexService.acquire();\n\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', String(this.zToken.zIndex));\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n\n this.createEventListeners(this.backdropElement);\n\n this.document.body.appendChild(this.backdropElement);\n this.backdropElement.appendChild(this.nativeElement);\n }\n\n /** @ignore */\n private removeBackdrop() {\n if (this.backdropElement) {\n if (this.originalParent) {\n this.renderer.insertBefore(this.originalParent, this.nativeElement, this.originalNextSibling);\n }\n if (this.backdropElement.parentNode) {\n this.renderer.removeChild(this.backdropElement.parentNode, this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n\n private createEventListeners(el: HTMLElement) {\n const l1 = this.renderer.listen(el, 'click', () => {\n this.close();\n l1();\n });\n\n const l2 = this.renderer.listen(el, 'wheel', () => {\n this.close();\n l2();\n });\n\n const l3 = this.renderer.listen(el, 'contextmenu', (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const x = e.clientX;\n const y = e.clientY;\n\n // Close first so the full-screen backdrop is gone; otherwise the next target never\n // receives contextmenu (conversation list / message list / etc.).\n this.close();\n\n if (isPlatformBrowser(this.platformID)) {\n requestAnimationFrame(() => {\n const under = this.document.elementFromPoint(x, y) as HTMLElement | null;\n if (!under || under === this.document.body || under === this.document.documentElement) {\n return;\n }\n const forward = new MouseEvent('contextmenu', {\n bubbles: true,\n cancelable: true,\n view: this.document.defaultView ?? undefined,\n clientX: x,\n clientY: y,\n screenX: e.screenX,\n screenY: e.screenY,\n button: 2,\n buttons: 2,\n });\n under.dispatchEvent(forward);\n });\n }\n\n l3();\n });\n }\n\n // Host Listeners (UI Interaction Handling)\n\n /** @ignore */\n @HostListener('window:scroll')\n @HostListener('window:resize')\n onWindowEvent() {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): any {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n}\n","<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n @if (item.icon) {\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n </ax-prefix>\n }\n @if (item.text) {\n <ax-text>{{ item.text | translate | async }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n","import { AXComponent, AXOrientation, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ],\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXMenuComponent extends NXComponent {\n orientation = input<AXOrientation>('horizontal');\n\n openOn = input<AXMenuOpenTrigger>('hover');\n\n closeOn = input<AXMenuCloseTrigger>('leave');\n\n service = inject(AXMenuService);\n\n onItemClick = output<AXMenuItemsClickEvent>();\n\n items = input<AXMenuItem[]>([]);\n\n hasArrow = input<boolean>(true);\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n return [\n 'ax-root-menu',\n 'ax-action-list',\n `ax-action-list-${this.orientation()}`,\n `${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,\n ];\n }\n\n /**\n * Closes all open menus and submenus for this root menu.\n *\n * @returns void - No return value. All open menu overlays are closed and hidden.\n */\n public close() {\n this.service.closeAll$.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\n@NgModule({\n imports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n})\nexport class AXMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-menu.mjs","sources":["../tmp-esm2022/menu/lib/menu.service.js","../tmp-esm2022/menu/lib/menu.types.js","../tmp-esm2022/menu/lib/menu-item.component.js","../tmp-esm2022/menu/lib/context-menu.component.js","../tmp-esm2022/menu/lib/menu.component.js","../tmp-esm2022/menu/lib/menu.module.js","../tmp-esm2022/menu/acorex-components-menu.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXMenuService {\n constructor() {\n this.closeAll$ = new Subject();\n this.open$ = new Subject();\n this.close$ = new Subject();\n this.closeExcept$ = new Subject();\n this.openContextMenu$ = new Subject();\n this.closeAllContextMenu$ = new Subject();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJL0IsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFUyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDekMsVUFBSyxHQUFxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBcUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBQ3pFLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0tBQ3JFOzhHQVJZLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNZW51U2VydmljZSB7XG4gIHB1YmxpYyBjbG9zZUFsbCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgb3BlbiQ6IFN1YmplY3Q8QVhNZW51SXRlbUNvbXBvbmVudEJhc2U+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGNsb3NlJDogU3ViamVjdDxBWE1lbnVJdGVtQ29tcG9uZW50QmFzZT4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgY2xvc2VFeGNlcHQkID0gbmV3IFN1YmplY3Q8QVhNZW51SXRlbUNvbXBvbmVudEJhc2U+KCk7XG5cbiAgcHVibGljIG9wZW5Db250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDx7IHNlbmRlcjogQVhSb290TWVudTsgcG9pbnQ6IEFYUG9pbnQgfT4oKTtcbiAgcHVibGljIGNsb3NlQWxsQ29udGV4dE1lbnUkID0gbmV3IFN1YmplY3Q8eyBzZW5kZXI6IEFYUm9vdE1lbnUgfT4oKTtcbn1cbiJdfQ==","import { NXClickEvent } from '@acorex/cdk/common';\nexport class AXRootMenu {\n}\nexport class AXMenuItemComponentBase {\n}\nexport class AXMenuItemClickBaseEvent extends NXClickEvent {\n constructor() {\n super(...arguments);\n this.canceled = false;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQyxZQUFZLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQU9oRyxNQUFNLE9BQWdCLFVBQVU7Q0FPL0I7QUFFRCxNQUFNLE9BQWdCLHVCQUF1QjtDQUFHO0FBaUNoRCxNQUFNLE9BQU8sd0JBQThELFNBQVEsWUFBZTtJQUFsRzs7UUFNRSxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ25CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIEFYU3R5bGVDb2xvclR5cGUsIE5YQ2xpY2tFdmVudCwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgT3V0cHV0RW1pdHRlclJlZiwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IHR5cGUgQVhNZW51T3BlblRyaWdnZXIgPSAnY2xpY2snIHwgJ2hvdmVyJztcbmV4cG9ydCB0eXBlIEFYTWVudUNsb3NlVHJpZ2dlciA9ICdjbGljaycgfCAnbGVhdmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhSb290TWVudSB7XG4gIG9yaWVudGF0aW9uOiBXcml0YWJsZVNpZ25hbDxBWE9yaWVudGF0aW9uPjtcbiAgb3Blbk9uOiBXcml0YWJsZVNpZ25hbDxBWE1lbnVPcGVuVHJpZ2dlcj47XG4gIGNsb3NlT246IFdyaXRhYmxlU2lnbmFsPEFYTWVudUNsb3NlVHJpZ2dlcj47XG4gIG9uSXRlbUNsaWNrOiBPdXRwdXRFbWl0dGVyUmVmPEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudD47XG4gIG5hdGl2ZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBoYXNBcnJvdzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSB7fVxuXG4vKiogU2hhcmVkIHRyZWUgaXRlbSBzaGFwZSBmb3IgYGF4LW1lbnVgLCBgYXgtY29udGV4dC1tZW51YCwgYW5kIGBheC1zaWRlLW1lbnVgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWE1lbnVJdGVtIHtcbiAgdGV4dDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBkYXRhPzogdW5rbm93bjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpdGVtcz86IEFYTWVudUl0ZW1bXTtcbiAgY29sb3I/OiBBWFN0eWxlQ29sb3JUeXBlO1xuICBzdWZmaXg/OiB7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9O1xuICAvKiogU2lkZS1tZW51IGFsaWFzIGZvciBgc3VmZml4LnRleHRgLiAqL1xuICBzdWZmaXhUZXh0Pzogc3RyaW5nO1xuICBicmVhaz86IGJvb2xlYW47XG4gIGdyb3VwPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gIH07XG4gIHRpdGxlPzogc3RyaW5nO1xuICByb3V0ZXJMaW5rPzogc3RyaW5nIHwgYW55W10gfCBVcmxUcmVlO1xuICByb3V0ZXJMaW5rQWN0aXZlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIHJvdXRlckxpbmtBY3RpdmVPcHRpb25zPzogeyBleGFjdDogYm9vbGVhbiB9IHwgSXNBY3RpdmVNYXRjaE9wdGlvbnM7XG4gIGhyZWY/OiBzdHJpbmc7XG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xuICB0b2dnbGVPbkNsaWNrPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxUIGV4dGVuZHMgTlhDb21wb25lbnQgPSBOWENvbXBvbmVudD4gZXh0ZW5kcyBOWENsaWNrRXZlbnQ8VD4ge1xuICBpdGVtOiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZGF0YT86IGFueTtcbiAgfTtcbiAgY2FuY2VsZWQgPSBmYWxzZTtcbn1cbiJdfQ==","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { AXZIndexService } from '@acorex/core/z-index';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, HostBinding, HostListener, inject, Injector, input, output, Renderer2, signal, ViewEncapsulation, } from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\nexport class AXMenuItemComponent extends NXComponent {\n constructor() {\n super();\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.hasSubItems = signal(false, ...(ngDevMode ? [{ debugName: \"hasSubItems\" }] : []));\n this.isFirstLevel = signal(false, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\n this.root = inject(AXRootMenu);\n this.isRoot = () => this.parent == null;\n this.service = inject(AXMenuService);\n this.scrollableParents = [];\n this.unsuscriber = inject(AXUnsubscriber);\n this.renderer = inject(Renderer2);\n this.injector = inject(Injector);\n this.zIndexService = inject(AXZIndexService);\n this.zToken = null;\n this.arrowIcon = computed(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n }, ...(ngDevMode ? [{ debugName: \"arrowIcon\" }] : []));\n this.onClick = output();\n this.name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n this.data = input(...(ngDevMode ? [undefined, { debugName: \"data\" }] : []));\n this.disabled = input(...(ngDevMode ? [undefined, { debugName: \"disabled\" }] : []));\n this.color = input(...(ngDevMode ? [undefined, { debugName: \"color\" }] : []));\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if (this === item) {\n this.isOpen.set(true);\n this.schedulePositionCalculation();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if (this == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item);\n });\n }\n closeExcept(item) {\n const list = [item];\n // TODO: Check for better solution\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? parentEl?.['__axContext__'] : null;\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n getText() {\n return this.nativeElement.querySelector('ax-text')?.innerText;\n }\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? parentEl?.['__axContext__'] : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n }\n else {\n this.hasSubItems.set(false);\n }\n }\n /**\n * Opens the submenu of this menu item if it has sub-items and is not disabled.\n *\n * Inherited behavior: Uses the injected service to notify other items to close.\n *\n * @returns void - No return value. Triggers submenu opening side-effects.\n */\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n // Acquire z-index token for this submenu\n if (!this.zToken) {\n this.zToken = this.zIndexService.acquire();\n }\n this.service.open$.next(this);\n }\n }\n /**\n * Closes the submenu of this menu item if open.\n *\n * @returns void - No return value. Triggers submenu closing side-effects.\n */\n close() {\n this.service.close$.next(this);\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n /**\n * Positions the submenu after layout so nested levels measure their full height.\n */\n schedulePositionCalculation() {\n this.calculatePosition();\n afterNextRender(() => {\n if (this.isOpen()) {\n this.calculatePosition();\n }\n }, { injector: this.injector });\n }\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n calculatePosition() {\n const submenu = this.nativeElement.querySelector('.ax-menu-items');\n if (!submenu)\n return;\n const submenuRect = this.measureSubmenuRect(submenu);\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n let finalTop;\n let finalLeft;\n // --- 1. VERTICAL POSITIONING ---\n const preferredTop = this.isFirstLevel() && this.root.orientation() === 'horizontal'\n ? itemRect.bottom // For horizontal menu, open below\n : itemRect.top; // For vertical menu, align with parent top\n const alternateTop = itemRect.top - submenuRect.height; // Position for opening upwards\n if (preferredTop + submenuRect.height <= windowHeight) {\n finalTop = preferredTop;\n }\n else if (alternateTop >= 0) {\n finalTop = alternateTop;\n }\n else {\n finalTop = windowHeight - submenuRect.height;\n }\n finalTop = this.clampVerticalPosition(finalTop, submenuRect.height, windowHeight);\n // --- 2. HORIZONTAL POSITIONING ---\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n const preferredLeft = isRtl ? itemRect.right - submenuRect.width : itemRect.left;\n const alternateLeft = isRtl ? itemRect.left : itemRect.right - submenuRect.width;\n if (preferredLeft >= 0 && preferredLeft + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeft;\n }\n else {\n finalLeft = Math.max(0, Math.min(alternateLeft, windowWidth - submenuRect.width));\n }\n }\n else {\n const preferredLeftRtl = itemRect.left - submenuRect.width;\n const alternateLeftRtl = itemRect.right;\n const preferredLeftLtr = itemRect.right;\n const alternateLeftLtr = itemRect.left - submenuRect.width;\n if (isRtl) {\n if (preferredLeftRtl >= 0) {\n finalLeft = preferredLeftRtl;\n }\n else if (alternateLeftRtl + submenuRect.width <= windowWidth) {\n finalLeft = alternateLeftRtl;\n }\n else {\n finalLeft = 0;\n }\n }\n else {\n if (preferredLeftLtr + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeftLtr;\n }\n else if (alternateLeftLtr >= 0) {\n finalLeft = alternateLeftLtr;\n }\n else {\n finalLeft = windowWidth - submenuRect.width;\n }\n }\n }\n // --- 3. OVERLAP-AWARE VERTICAL SHIFT ---\n const isNestedMenu = !(this.isFirstLevel() && this.root.orientation() === 'horizontal');\n if (isNestedMenu) {\n const overlapsParent = finalLeft < itemRect.right && itemRect.left < finalLeft + submenuRect.width;\n if (overlapsParent) {\n const shiftedTop = itemRect.bottom;\n if (shiftedTop + submenuRect.height <= windowHeight) {\n finalTop = shiftedTop;\n }\n }\n }\n finalTop = this.clampVerticalPosition(finalTop, submenuRect.height, windowHeight);\n // --- 4. APPLY FINAL STYLES ---\n this.renderer.setStyle(submenu, 'position', 'fixed');\n this.renderer.setStyle(submenu, 'top', `${finalTop}px`);\n this.renderer.setStyle(submenu, 'left', `${finalLeft}px`);\n // Apply z-index from token\n if (this.zToken) {\n this.renderer.setStyle(submenu, 'z-index', String(this.zToken.zIndex));\n }\n }\n /** Measures submenu size using the same flex layout as the rendered menu. */\n measureSubmenuRect(submenu) {\n this.renderer.setStyle(submenu, 'visibility', 'hidden');\n this.renderer.setStyle(submenu, 'display', 'flex');\n const rect = submenu.getBoundingClientRect();\n this.renderer.removeStyle(submenu, 'visibility');\n this.renderer.removeStyle(submenu, 'display');\n return rect;\n }\n /** Keeps the submenu fully inside the viewport vertically. */\n clampVerticalPosition(top, height, windowHeight) {\n if (top + height > windowHeight) {\n top = windowHeight - height;\n }\n if (top < 0) {\n top = 0;\n }\n return top;\n }\n handleClick(e) {\n e.stopPropagation();\n if (this.disabled())\n return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n };\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n }\n else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n handleMouseEnter(event) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n handleMouseLeave(event) {\n event.stopPropagation();\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n onClickOutside(event) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n // Remove scroll event listeners\n removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n /** @ignore */\n get __hostClass() {\n const list = ['ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n list.push(`ax-${this.color() ?? 'default'}`);\n return list;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXMenuItemComponent, isStandalone: true, selector: \"ax-menu-item\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: \"data\", publicName: \"data\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: \"onClick\" }, host: { listeners: { \"click\": \"handleClick($event)\", \"mouseenter\": \"handleMouseEnter($event)\", \"mouseleave\": \"handleMouseLeave($event)\", \"window:scroll\": \"onWindowEvent($event)\", \"window:resize\": \"onWindowEvent($event)\", \"document:click\": \"onClickOutside($event)\" }, properties: { \"class\": \"this.__hostClass\" } }, providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-action-item-prefix\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n</div>\\n<div class=\\\"ax-action-item-suffix\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\\n <i class=\\\"ax-icon ax-icon-solid {{ arrowIcon() }} \\\"></i>\\n }\\n</div>\\n<div class=\\\"ax-menu-items ax-action-list ax-action-list-vertical\\\" [class.ax-state-open]=\\\"isOpen()\\\">\\n <ng-content select=\\\"ax-menu-item,ax-title,ax-divider,ng-container\\\"></ng-content>\\n</div>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-menu-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ], template: \"<div class=\\\"ax-action-item-prefix\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n</div>\\n<div class=\\\"ax-action-item-suffix\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\\n <i class=\\\"ax-icon ax-icon-solid {{ arrowIcon() }} \\\"></i>\\n }\\n</div>\\n<div class=\\\"ax-menu-items ax-action-list ax-action-list-vertical\\\" [class.ax-state-open]=\\\"isOpen()\\\">\\n <ng-content select=\\\"ax-menu-item,ax-title,ax-divider,ng-container\\\"></ng-content>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { handleClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], handleMouseEnter: [{\n type: HostListener,\n args: ['mouseenter', ['$event']]\n }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }], onWindowEvent: [{\n type: HostListener,\n args: ['window:scroll', ['$event']]\n }, {\n type: HostListener,\n args: ['window:resize', ['$event']]\n }], onClickOutside: [{\n type: HostListener,\n args: ['document:click', ['$event']]\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBb0IsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFZLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUE0Qix1QkFBdUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBSTdGOzs7R0FHRztBQWtCSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQW1DbEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQW5DQSxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssa0RBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLHVEQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxNQUFNLENBQUMsS0FBSyx3REFBQyxDQUFDO1FBRzdCLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFD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Qzs4R0FwWVUsbUJBQW1CO2tHQUFuQixtQkFBbUIscTRCQVpuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx1QkFBdUI7Z0JBQ2hDLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7WUFDRCxjQUFjO1lBQ2Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7U0FDRixpREMzQ0gsNGpCQWFBOzsyRkRnQ2EsbUJBQW1CO2tCQWpCL0IsU0FBUzsrQkFDRSxjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHVCQUF1Qjs0QkFDaEMsV0FBVyxxQkFBcUI7eUJBQ2pDO3dCQUNELGNBQWM7d0JBQ2Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjt3REF1Uk8sV0FBVztzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJ6QixnQkFBZ0I7c0JBRHZCLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdCOUIsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFtQjlCLGFBQWE7c0JBRnBCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDeEMsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBU2pDLGNBQWM7c0JBRHJCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBb0N0QyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBBWFN0eWxlQ29sb3JUeXBlLCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBBWFpJbmRleFNlcnZpY2UsIEFYWlRva2VuIH0gZnJvbSAnQGFjb3JleC9jb3JlL3otaW5kZXgnO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgb3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudCwgQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWE1lbnVJdGVtQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWE1lbnVJdGVtQ29tcG9uZW50PjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVudSBpdGVtIGNvbXBvbmVudCB1c2VkIHdpdGhpbiBhbiBgYXgtbWVudWAuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTWVudUl0ZW1Db21wb25lbnRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYTWVudUl0ZW1Db21wb25lbnQsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlcixcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgaGFzU3ViSXRlbXMgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgaXNGaXJzdExldmVsID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyITogTXV0YXRpb25PYnNlcnZlcjtcblxuICBwcm90ZWN0ZWQgcm9vdCA9IGluamVjdChBWFJvb3RNZW51KTtcbiAgcHJvdGVjdGVkIHBhcmVudD86IEFYTWVudUl0ZW1Db21wb25lbnQgfCBudWxsO1xuICBwcm90ZWN0ZWQgaXNSb290ID0gKCkgPT4gdGhpcy5wYXJlbnQgPT0gbnVsbDtcblxuICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG4gIHByaXZhdGUgc2Nyb2xsYWJsZVBhcmVudHM6IEhUTUxFbGVtZW50W10gPSBbXTtcblxuICBwcml2YXRlIHVuc3VzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSB6SW5kZXhTZXJ2aWNlID0gaW5qZWN0KEFYWkluZGV4U2VydmljZSk7XG4gIHByaXZhdGUgelRva2VuOiBBWFpUb2tlbiB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBhcnJvd0ljb24gPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICBjb25zdCBpc1J0bCA9IEFYSHRtbFV0aWwuaXNSdGwodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcy5yb290Lm9yaWVudGF0aW9uKCkgPT0gJ2hvcml6b250YWwnICYmIHRoaXMuaXNGaXJzdExldmVsKClcbiAgICAgID8gJ2F4LWljb24tY2hldnJvbi1kb3duJ1xuICAgICAgOiBpc1J0bFxuICAgICAgICA/ICdheC1pY29uLWNoZXZyb24tbGVmdCdcbiAgICAgICAgOiAnYXgtaWNvbi1jaGV2cm9uLXJpZ2h0JztcbiAgfSk7XG5cbiAgb25DbGljayA9IG91dHB1dDxBWE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcblxuICBuYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBkYXRhID0gaW5wdXQ8YW55PigpO1xuICBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGNvbG9yID0gaW5wdXQ8QVhTdHlsZUNvbG9yVHlwZT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0U3ViSXRlbXMoKTtcbiAgICAgIHRoaXMub2JzZXJ2ZU11dGF0aW9ucygpO1xuICAgICAgdGhpcy5iaW5kU2Nyb2xsRXZlbnRzKCk7XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcblxuICAgIHRoaXMuc2VydmljZS5vcGVuJC5waXBlKHRoaXMudW5zdXNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICBpZiAoKHRoaXMgYXMgYW55KSA9PT0gaXRlbSkge1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVQb3NpdGlvbkNhbGN1bGF0aW9uKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UkLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIGlmICgodGhpcyBhcyBhbnkpID09IGl0ZW0pIHtcbiAgICAgICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUV4Y2VwdCQucGlwZSh0aGlzLnVuc3VzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUV4Y2VwdChpdGVtIGFzIEFYTWVudUl0ZW1Db21wb25lbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZUV4Y2VwdChpdGVtOiBBWE1lbnVJdGVtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgbGlzdDogQVhNZW51SXRlbUNvbXBvbmVudFtdID0gW2l0ZW1dO1xuICAgIC8vIFRPRE86IENoZWNrIGZvciBiZXR0ZXIgc29sdXRpb25cbiAgICBjb25zdCBwYXJlbnRFbCA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50RWw/LnRhZ05hbWUgPT0gJ0FYLU1FTlUtSVRFTScgPyAocGFyZW50RWw/LlsnX19heENvbnRleHRfXyddIGFzIEFYTWVudUl0ZW1Db21wb25lbnQpIDogbnVsbDtcbiAgICAvL1xuICAgIGxldCBwYXJlbnQgPSBpdGVtLnBhcmVudDtcbiAgICB3aGlsZSAocGFyZW50ICE9IG51bGwpIHtcbiAgICAgIGxpc3QucHVzaChwYXJlbnQpO1xuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudDtcbiAgICB9XG4gICAgLy9cbiAgICBpZiAoIWxpc3QuaW5jbHVkZXModGhpcykpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVNdXRhdGlvbnMoKSB7XG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5kZXRlY3RTdWJJdGVtcygpO1xuICAgIH0pO1xuXG4gICAgLy8gU3RhcnQgb2JzZXJ2aW5nIGNoYW5nZXMgaW4gY2hpbGQgZWxlbWVudHNcbiAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KCdheC10ZXh0Jyk/LmlubmVyVGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW51YWxseSBkZXRlY3QgYWxsIGBheC1tZW51LWl0ZW1gIGVsZW1lbnRzIGFuZCBjaGVjayBpZiB0aGlzIG1lbnUgaXRlbSBoYXMgc3ViLWl0ZW1zLlxuICAgKi9cbiAgcHJpdmF0ZSBkZXRlY3RTdWJJdGVtcygpIHtcbiAgICAvL1xuICAgIGNvbnN0IHBhcmVudEVsID0gdGhpcy5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnRFbD8udGFnTmFtZSA9PSAnQVgtTUVOVS1JVEVNJyA/IChwYXJlbnRFbD8uWydfX2F4Q29udGV4dF9fJ10gYXMgQVhNZW51SXRlbUNvbXBvbmVudCkgOiBudWxsO1xuICAgIC8vXG4gICAgY29uc3QgdGFnID0gdGhpcy5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LnRhZ05hbWU7XG4gICAgdGhpcy5pc0ZpcnN0TGV2ZWwuc2V0KHRhZyA9PSAnQVgtTUVOVScgfHwgdGFnID09ICdBWC1DT05URVhULU1FTlUnKTtcbiAgICBjb25zdCBzdWJJdGVtcyA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdheC1tZW51LWl0ZW0nKTtcbiAgICBpZiAoc3ViSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5oYXNTdWJJdGVtcy5zZXQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzU3ViSXRlbXMuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIHN1Ym1lbnUgb2YgdGhpcyBtZW51IGl0ZW0gaWYgaXQgaGFzIHN1Yi1pdGVtcyBhbmQgaXMgbm90IGRpc2FibGVkLlxuICAgKlxuICAgKiBJbmhlcml0ZWQgYmVoYXZpb3I6IFVzZXMgdGhlIGluamVjdGVkIHNlcnZpY2UgdG8gbm90aWZ5IG90aGVyIGl0ZW1zIHRvIGNsb3NlLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBUcmlnZ2VycyBzdWJtZW51IG9wZW5pbmcgc2lkZS1lZmZlY3RzLlxuICAgKi9cbiAgb3BlbigpIHtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VFeGNlcHQkLm5leHQodGhpcyk7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkgJiYgdGhpcy5oYXNTdWJJdGVtcygpKSB7XG4gICAgICAvLyBBY3F1aXJlIHotaW5kZXggdG9rZW4gZm9yIHRoaXMgc3VibWVudVxuICAgICAgaWYgKCF0aGlzLnpUb2tlbikge1xuICAgICAgICB0aGlzLnpUb2tlbiA9IHRoaXMuekluZGV4U2VydmljZS5hY3F1aXJlKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlcnZpY2Uub3BlbiQubmV4dCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBzdWJtZW51IG9mIHRoaXMgbWVudSBpdGVtIGlmIG9wZW4uXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWQgLSBObyByZXR1cm4gdmFsdWUuIFRyaWdnZXJzIHN1Ym1lbnUgY2xvc2luZyBzaWRlLWVmZmVjdHMuXG4gICAqL1xuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2UkLm5leHQodGhpcyk7XG4gICAgLy8gUmVsZWFzZSB6LWluZGV4IHRva2VuXG4gICAgdGhpcy56SW5kZXhTZXJ2aWNlLnJlbGVhc2UodGhpcy56VG9rZW4pO1xuICAgIHRoaXMuelRva2VuID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb3NpdGlvbnMgdGhlIHN1Ym1lbnUgYWZ0ZXIgbGF5b3V0IHNvIG5lc3RlZCBsZXZlbHMgbWVhc3VyZSB0aGVpciBmdWxsIGhlaWdodC5cbiAgICovXG4gIHByaXZhdGUgc2NoZWR1bGVQb3NpdGlvbkNhbGN1bGF0aW9uKCkge1xuICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb24oKTtcbiAgICBhZnRlck5leHRSZW5kZXIoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgc3VibWVudSB0byBhdm9pZCBpdCBnb2luZyBvdXQgb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcHJpdmF0ZSBjYWxjdWxhdGVQb3NpdGlvbigpIHtcbiAgICBjb25zdCBzdWJtZW51ID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuYXgtbWVudS1pdGVtcycpO1xuICAgIGlmICghc3VibWVudSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3VibWVudVJlY3QgPSB0aGlzLm1lYXN1cmVTdWJtZW51UmVjdChzdWJtZW51KTtcbiAgICBjb25zdCBpdGVtUmVjdCA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcblxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgbGV0IGZpbmFsVG9wOiBudW1iZXI7XG4gICAgbGV0IGZpbmFsTGVmdDogbnVtYmVyO1xuXG4gICAgLy8gLS0tIDEuIFZFUlRJQ0FMIFBPU0lUSU9OSU5HIC0tLVxuICAgIGNvbnN0IHByZWZlcnJlZFRvcCA9XG4gICAgICB0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgPyBpdGVtUmVjdC5ib3R0b20gLy8gRm9yIGhvcml6b250YWwgbWVudSwgb3BlbiBiZWxvd1xuICAgICAgICA6IGl0ZW1SZWN0LnRvcDsgLy8gRm9yIHZlcnRpY2FsIG1lbnUsIGFsaWduIHdpdGggcGFyZW50IHRvcFxuXG4gICAgY29uc3QgYWx0ZXJuYXRlVG9wID0gaXRlbVJlY3QudG9wIC0gc3VibWVudVJlY3QuaGVpZ2h0OyAvLyBQb3NpdGlvbiBmb3Igb3BlbmluZyB1cHdhcmRzXG5cbiAgICBpZiAocHJlZmVycmVkVG9wICsgc3VibWVudVJlY3QuaGVpZ2h0IDw9IHdpbmRvd0hlaWdodCkge1xuICAgICAgZmluYWxUb3AgPSBwcmVmZXJyZWRUb3A7XG4gICAgfSBlbHNlIGlmIChhbHRlcm5hdGVUb3AgPj0gMCkge1xuICAgICAgZmluYWxUb3AgPSBhbHRlcm5hdGVUb3A7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbmFsVG9wID0gd2luZG93SGVpZ2h0IC0gc3VibWVudVJlY3QuaGVpZ2h0O1xuICAgIH1cblxuICAgIGZpbmFsVG9wID0gdGhpcy5jbGFtcFZlcnRpY2FsUG9zaXRpb24oZmluYWxUb3AsIHN1Ym1lbnVSZWN0LmhlaWdodCwgd2luZG93SGVpZ2h0KTtcblxuICAgIC8vIC0tLSAyLiBIT1JJWk9OVEFMIFBPU0lUSU9OSU5HIC0tLVxuICAgIGlmICh0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIGNvbnN0IHByZWZlcnJlZExlZnQgPSBpc1J0bCA/IGl0ZW1SZWN0LnJpZ2h0IC0gc3VibWVudVJlY3Qud2lkdGggOiBpdGVtUmVjdC5sZWZ0O1xuICAgICAgY29uc3QgYWx0ZXJuYXRlTGVmdCA9IGlzUnRsID8gaXRlbVJlY3QubGVmdCA6IGl0ZW1SZWN0LnJpZ2h0IC0gc3VibWVudVJlY3Qud2lkdGg7XG5cbiAgICAgIGlmIChwcmVmZXJyZWRMZWZ0ID49IDAgJiYgcHJlZmVycmVkTGVmdCArIHN1Ym1lbnVSZWN0LndpZHRoIDw9IHdpbmRvd1dpZHRoKSB7XG4gICAgICAgIGZpbmFsTGVmdCA9IHByZWZlcnJlZExlZnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmaW5hbExlZnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihhbHRlcm5hdGVMZWZ0LCB3aW5kb3dXaWR0aCAtIHN1Ym1lbnVSZWN0LndpZHRoKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByZWZlcnJlZExlZnRSdGwgPSBpdGVtUmVjdC5sZWZ0IC0gc3VibWVudVJlY3Qud2lkdGg7XG4gICAgICBjb25zdCBhbHRlcm5hdGVMZWZ0UnRsID0gaXRlbVJlY3QucmlnaHQ7XG5cbiAgICAgIGNvbnN0IHByZWZlcnJlZExlZnRMdHIgPSBpdGVtUmVjdC5yaWdodDtcbiAgICAgIGNvbnN0IGFsdGVybmF0ZUxlZnRMdHIgPSBpdGVtUmVjdC5sZWZ0IC0gc3VibWVudVJlY3Qud2lkdGg7XG5cbiAgICAgIGlmIChpc1J0bCkge1xuICAgICAgICBpZiAocHJlZmVycmVkTGVmdFJ0bCA+PSAwKSB7XG4gICAgICAgICAgZmluYWxMZWZ0ID0gcHJlZmVycmVkTGVmdFJ0bDtcbiAgICAgICAgfSBlbHNlIGlmIChhbHRlcm5hdGVMZWZ0UnRsICsgc3VibWVudVJlY3Qud2lkdGggPD0gd2luZG93V2lkdGgpIHtcbiAgICAgICAgICBmaW5hbExlZnQgPSBhbHRlcm5hdGVMZWZ0UnRsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbmFsTGVmdCA9IDA7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChwcmVmZXJyZWRMZWZ0THRyICsgc3VibWVudVJlY3Qud2lkdGggPD0gd2luZG93V2lkdGgpIHtcbiAgICAgICAgICBmaW5hbExlZnQgPSBwcmVmZXJyZWRMZWZ0THRyO1xuICAgICAgICB9IGVsc2UgaWYgKGFsdGVybmF0ZUxlZnRMdHIgPj0gMCkge1xuICAgICAgICAgIGZpbmFsTGVmdCA9IGFsdGVybmF0ZUxlZnRMdHI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmluYWxMZWZ0ID0gd2luZG93V2lkdGggLSBzdWJtZW51UmVjdC53aWR0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIC0tLSAzLiBPVkVSTEFQLUFXQVJFIFZFUlRJQ0FMIFNISUZUIC0tLVxuICAgIGNvbnN0IGlzTmVzdGVkTWVudSA9ICEodGhpcy5pc0ZpcnN0TGV2ZWwoKSAmJiB0aGlzLnJvb3Qub3JpZW50YXRpb24oKSA9PT0gJ2hvcml6b250YWwnKTtcbiAgICBpZiAoaXNOZXN0ZWRNZW51KSB7XG4gICAgICBjb25zdCBvdmVybGFwc1BhcmVudCA9IGZpbmFsTGVmdCA8IGl0ZW1SZWN0LnJpZ2h0ICYmIGl0ZW1SZWN0LmxlZnQgPCBmaW5hbExlZnQgKyBzdWJtZW51UmVjdC53aWR0aDtcbiAgICAgIGlmIChvdmVybGFwc1BhcmVudCkge1xuICAgICAgICBjb25zdCBzaGlmdGVkVG9wID0gaXRlbVJlY3QuYm90dG9tO1xuICAgICAgICBpZiAoc2hpZnRlZFRvcCArIHN1Ym1lbnVSZWN0LmhlaWdodCA8PSB3aW5kb3dIZWlnaHQpIHtcbiAgICAgICAgICBmaW5hbFRvcCA9IHNoaWZ0ZWRUb3A7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5hbFRvcCA9IHRoaXMuY2xhbXBWZXJ0aWNhbFBvc2l0aW9uKGZpbmFsVG9wLCBzdWJtZW51UmVjdC5oZWlnaHQsIHdpbmRvd0hlaWdodCk7XG5cbiAgICAvLyAtLS0gNC4gQVBQTFkgRklOQUwgU1RZTEVTIC0tLVxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3VibWVudSwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAndG9wJywgYCR7ZmluYWxUb3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdsZWZ0JywgYCR7ZmluYWxMZWZ0fXB4YCk7XG4gICAgLy8gQXBwbHkgei1pbmRleCBmcm9tIHRva2VuXG4gICAgaWYgKHRoaXMuelRva2VuKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICd6LWluZGV4JywgU3RyaW5nKHRoaXMuelRva2VuLnpJbmRleCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBNZWFzdXJlcyBzdWJtZW51IHNpemUgdXNpbmcgdGhlIHNhbWUgZmxleCBsYXlvdXQgYXMgdGhlIHJlbmRlcmVkIG1lbnUuICovXG4gIHByaXZhdGUgbWVhc3VyZVN1Ym1lbnVSZWN0KHN1Ym1lbnU6IEhUTUxFbGVtZW50KTogRE9NUmVjdCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdkaXNwbGF5JywgJ2ZsZXgnKTtcbiAgICBjb25zdCByZWN0ID0gc3VibWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHN1Ym1lbnUsICd2aXNpYmlsaXR5Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShzdWJtZW51LCAnZGlzcGxheScpO1xuICAgIHJldHVybiByZWN0O1xuICB9XG5cbiAgLyoqIEtlZXBzIHRoZSBzdWJtZW51IGZ1bGx5IGluc2lkZSB0aGUgdmlld3BvcnQgdmVydGljYWxseS4gKi9cbiAgcHJpdmF0ZSBjbGFtcFZlcnRpY2FsUG9zaXRpb24odG9wOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB3aW5kb3dIZWlnaHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKHRvcCArIGhlaWdodCA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgdG9wID0gd2luZG93SGVpZ2h0IC0gaGVpZ2h0O1xuICAgIH1cbiAgICBpZiAodG9wIDwgMCkge1xuICAgICAgdG9wID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRvcDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVDbGljayhlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSByZXR1cm47XG4gICAgLy9cbiAgICBjb25zdCBldmVudCA9IHtcbiAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgaXRlbToge1xuICAgICAgICBuYW1lOiB0aGlzLm5hbWUoKSxcbiAgICAgICAgdGV4dDogdGhpcy5nZXRUZXh0KCksXG4gICAgICAgIGRhdGE6IHRoaXMuZGF0YSgpLFxuICAgICAgfSxcbiAgICB9IGFzIEFYTWVudUl0ZW1DbGlja0V2ZW50O1xuICAgIC8vXG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMucm9vdC5vbkl0ZW1DbGljay5lbWl0KHsgLi4uZXZlbnQsIC4uLnsgc2VuZGVyOiB0aGlzLnJvb3QgYXMgYW55IH0gfSk7XG4gICAgLy9cbiAgICBpZiAodGhpcy5oYXNTdWJJdGVtcygpICYmICFldmVudC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfSBlbHNlIGlmICghZXZlbnQuY2FuY2VsZWQpIHtcbiAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpO1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXI6IHRoaXMucm9vdCB9KTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZUVudGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy8gQ2FuY2VsIHRoZSBjbG9zZSBkZWxheSBpZiB0aGUgbW91c2UgcmUtZW50ZXJzIHRoZSBlbGVtZW50XG4gICAgaWYgKHRoaXMubW91c2VMZWF2ZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KTtcbiAgICAgIHRoaXMubW91c2VMZWF2ZVRpbWVvdXQgPSBudWxsOyAvLyBSZXNldCB0aGUgdGltZW91dFxuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNGaXJzdExldmVsKCkgfHwgdGhpcy5yb290Lm9wZW5PbigpID09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbW91c2VMZWF2ZVRpbWVvdXQ6IGFueTtcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5oYXNTdWJJdGVtcygpICYmIHRoaXMucm9vdC5jbG9zZU9uKCkgPT09ICdsZWF2ZScpIHtcbiAgICAgIC8vIENsZWFyIGFueSBwcmV2aW91cyB0aW1lb3V0IHRvIGF2b2lkIG11bHRpcGxlIHRyaWdnZXJzXG4gICAgICBpZiAodGhpcy5tb3VzZUxlYXZlVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5tb3VzZUxlYXZlVGltZW91dCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBhIGRlbGF5IGJlZm9yZSBjbG9zaW5nIHRoZSBzdWJtZW51XG4gICAgICB0aGlzLm1vdXNlTGVhdmVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZGVsYXkgKDUwMG1zIGluIHRoaXMgY2FzZSkgYXMgcGVyIHlvdXIgcmVxdWlyZW1lbnRcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25XaW5kb3dFdmVudCgpIHtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTsgLy8gQ2xvc2UgYWxsIG1lbnVzIG9uIHNjcm9sbCBvciByZXNpemVcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZSBhbGwgbWVudXMgaWYgY2xpY2tpbmcgb3V0c2lkZSB0aGUgcm9vdCBtZW51IGFuZCBhbGwgc3ViLWl0ZW1zLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSB0aGlzLnJvb3QubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWhvc3RFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7IC8vIENsb3NlIGFsbCBtZW51cyBpZiBjbGljayBpcyBvdXRzaWRlIHRoZSByb290IGFuZCBzdWItaXRlbXNcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZVNjcm9sbEV2ZW50cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU2Nyb2xsRXZlbnRzKCkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMgPSBBWEh0bWxVdGlsLmdldFNjcm9sbGFibGVQYXJlbnRzKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLnNjcm9sbGFibGVQYXJlbnRzLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgcGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250YWluZXJTY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZW1vdmUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyc1xuICBwcml2YXRlIHJlbW92ZVNjcm9sbEV2ZW50cygpIHtcbiAgICB0aGlzLnNjcm9sbGFibGVQYXJlbnRzLmZvckVhY2goKHBhcmVudCkgPT4ge1xuICAgICAgcGFyZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250YWluZXJTY3JvbGwuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlciBmb3Igc2Nyb2xsIGV2ZW50cyAod2luZG93IG9yIHNjcm9sbGFibGUgcGFyZW50IGNvbnRhaW5lcnMpXG4gICAqL1xuICBwcml2YXRlIG9uQ29udGFpbmVyU2Nyb2xsKCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBsaXN0OiBzdHJpbmdbXSA9IFsnYXgtYWN0aW9uLWl0ZW0nXTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICBsaXN0LnB1c2goJ2F4LXN0YXRlLWRpc2FibGVkJyk7XG4gICAgfVxuICAgIGxpc3QucHVzaChgYXgtJHt0aGlzLmNvbG9yKCkgPz8gJ2RlZmF1bHQnfWApO1xuXG4gICAgcmV0dXJuIGxpc3Q7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1hY3Rpb24taXRlbS1wcmVmaXhcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC10ZXh0XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtYWN0aW9uLWl0ZW0tc3VmZml4XCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgQGlmIChoYXNTdWJJdGVtcygpICYmICghaXNSb290KCkgfHwgcm9vdD8uaGFzQXJyb3coKSkpIHtcbiAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1zb2xpZCB7eyBhcnJvd0ljb24oKSB9fSBcIj48L2k+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbXMgYXgtYWN0aW9uLWxpc3QgYXgtYWN0aW9uLWxpc3QtdmVydGljYWxcIiBbY2xhc3MuYXgtc3RhdGUtb3Blbl09XCJpc09wZW4oKVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtdGl0bGUsYXgtZGl2aWRlcixuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==","import { AXComponent, NXComponent, NXEvent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isBrowser } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { AXZIndexService } from '@acorex/core/z-index';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, DestroyRef, DOCUMENT, HostBinding, HostListener, inject, Injector, input, output, PLATFORM_ID, Renderer2, signal, ViewEncapsulation, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { cloneDeep } from 'lodash-es';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\nexport class AXContextMenuOpeningEvent extends NXEvent {\n constructor() {\n super(...arguments);\n this.canceled = false;\n }\n}\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\nexport class AXContextMenuComponent extends NXComponent {\n // Constructor (Dependency Injection)\n /** @ignore */\n constructor() {\n super();\n // Inputs and Outputs\n this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.openOn = input('hover', ...(ngDevMode ? [{ debugName: \"openOn\" }] : []));\n this.closeOn = input('click', ...(ngDevMode ? [{ debugName: \"closeOn\" }] : []));\n /** When true, closes the menu on router navigation (e.g. side-menu route changes). */\n this.closeOnRouteChange = input(false, ...(ngDevMode ? [{ debugName: \"closeOnRouteChange\" }] : []));\n this.originalItems = input([], ...(ngDevMode ? [{ debugName: \"originalItems\", alias: 'items' }] : [{ alias: 'items' }]));\n this.target = input(...(ngDevMode ? [undefined, { debugName: \"target\" }] : []));\n this.onItemClick = output();\n this.onOpening = output();\n /** Emitted when the menu closes (backdrop, item click, scroll, another menu opening, etc.). */\n this.onClose = output();\n this.hasArrow = signal(true, ...(ngDevMode ? [{ debugName: \"hasArrow\" }] : []));\n // Injected Services\n this.service = inject(AXMenuService);\n this.renderer = inject(Renderer2);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.zIndexService = inject(AXZIndexService);\n this.injector = inject(Injector);\n this.zToken = null;\n this.lastOpenPoint = null;\n this.router = inject(Router, { optional: true });\n this.destroyRef = inject(DestroyRef);\n this.originalNextSibling = null;\n this.originalParent = null;\n this.items = signal([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n this.setupCloseOnRouteChange();\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n this.service.openContextMenu$.subscribe((e) => {\n if (e.sender == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n // Lifecycle Hooks\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n /**\n * Refreshes the context menu by rebinding event listeners to target elements.\n */\n refresh() {\n this.bindContextEvent();\n }\n /**\n * Shows the context menu at a specific point.\n * @param point - The coordinates where the menu should appear\n * @param targetElement - Optional target element for the context menu\n * @param event - Optional opening event with menu items\n */\n showAt(point, targetElement, event) {\n const sender = this;\n this.service.closeAllContextMenu$.next({ sender });\n if (isPlatformBrowser(this.platformID)) {\n if (!targetElement) {\n targetElement = this.document.elementFromPoint(point.x, point.y);\n }\n if (!event) {\n event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n if (event.canceled)\n return;\n }\n this.onOpening.emit(event);\n this.items.set(event.items);\n }\n this.service.openContextMenu$.next({ sender, point });\n }\n /**\n * Closes the context menu and removes the backdrop.\n */\n close() {\n const wasOpen = this.nativeElement.classList.contains('ax-state-open');\n this.nativeElement.classList.remove('ax-state-open');\n this.lastOpenPoint = null;\n // Drop rendered items before moving DOM nodes back to the original parent.\n // This prevents a large menu tree from being re-parented/removed as a single heavy DOM operation.\n if (wasOpen) {\n this.items.set([]);\n }\n this.removeBackdrop();\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n if (wasOpen) {\n this.onClose.emit();\n }\n }\n // Private Methods (Internal Logic)\n /** @ignore */\n setupCloseOnRouteChange() {\n if (!this.router || !isPlatformBrowser(this.platformID)) {\n return;\n }\n this.router.events\n .pipe(filter((event) => event instanceof NavigationStart), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (this.closeOnRouteChange()) {\n this.close();\n }\n });\n }\n /** @ignore */\n getTargetElements() {\n if (isPlatformBrowser(this.platformID)) {\n const elements = typeof this.target() == 'string'\n ? Array.from(this.document.querySelectorAll(this.target()))\n : Array.isArray(this.target())\n ? this.target()\n : [this.target()];\n return elements;\n }\n return null;\n }\n /** @ignore */\n bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n /** @ignore */\n removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n /** @ignore */\n handleContextMenu(e) {\n e.preventDefault();\n e.stopPropagation();\n //\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));\n //\n const event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY }, targetElement, event);\n }\n }\n }\n /** @ignore */\n internalShowAt(point) {\n this.lastOpenPoint = point;\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n this.positionAtPoint(point);\n this.createBackdrop();\n // Items may render after the signal update (e.g. compact side-menu); reposition once laid out.\n afterNextRender(() => {\n if (this.lastOpenPoint && elementRef.classList.contains('ax-state-open')) {\n this.positionAtPoint(this.lastOpenPoint);\n }\n }, { injector: this.injector });\n }\n /**\n * Positions the menu at `point`, flipping when it would overflow the viewport.\n * Uses a temporary visible layout pass so parents that hide the host (e.g. side-menu `display: none`) do not yield a zero-sized rect.\n */\n positionAtPoint(point) {\n const elementRef = this.nativeElement;\n const itemRect = this.measureMenuRect(elementRef);\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n let left;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n }\n else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n const bottom = point.y + itemRect.height;\n let top;\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n }\n else {\n top = point.y;\n }\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n }\n /** Measures menu size even when an ancestor hides the host with `display: none`. */\n measureMenuRect(elementRef) {\n this.renderer.setStyle(elementRef, 'visibility', 'hidden');\n this.renderer.setStyle(elementRef, 'display', 'flex');\n const rect = elementRef.getBoundingClientRect();\n this.renderer.removeStyle(elementRef, 'visibility');\n this.renderer.removeStyle(elementRef, 'display');\n return rect;\n }\n /** @ignore */\n createBackdrop() {\n if (!this.originalParent) {\n this.originalParent = this.nativeElement.parentElement;\n this.originalNextSibling = this.nativeElement.nextSibling;\n }\n // Acquire z-index token\n this.zToken = this.zIndexService.acquire();\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', String(this.zToken.zIndex));\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n this.createEventListeners(this.backdropElement);\n this.document.body.appendChild(this.backdropElement);\n this.backdropElement.appendChild(this.nativeElement);\n }\n /** @ignore */\n removeBackdrop() {\n if (this.backdropElement) {\n if (this.originalParent) {\n this.renderer.insertBefore(this.originalParent, this.nativeElement, this.originalNextSibling);\n }\n if (this.backdropElement.parentNode) {\n this.renderer.removeChild(this.backdropElement.parentNode, this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n createEventListeners(el) {\n const l1 = this.renderer.listen(el, 'click', () => {\n this.close();\n l1();\n });\n const l2 = this.renderer.listen(el, 'wheel', () => {\n this.close();\n l2();\n });\n const l3 = this.renderer.listen(el, 'contextmenu', (e) => {\n e.preventDefault();\n e.stopPropagation();\n const x = e.clientX;\n const y = e.clientY;\n // Close first so the full-screen backdrop is gone; otherwise the next target never\n // receives contextmenu (conversation list / message list / etc.).\n this.close();\n if (isPlatformBrowser(this.platformID)) {\n requestAnimationFrame(() => {\n const under = this.document.elementFromPoint(x, y);\n if (!under || under === this.document.body || under === this.document.documentElement) {\n return;\n }\n const forward = new MouseEvent('contextmenu', {\n bubbles: true,\n cancelable: true,\n view: this.document.defaultView ?? undefined,\n clientX: x,\n clientY: y,\n screenX: e.screenX,\n screenY: e.screenY,\n button: 2,\n buttons: 2,\n });\n under.dispatchEvent(forward);\n });\n }\n l3();\n });\n }\n // Host Listeners (UI Interaction Handling)\n /** @ignore */\n onWindowEvent() {\n const sender = this;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n /** @ignore */\n get __hostClass() {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXContextMenuComponent, isStandalone: true, selector: \"ax-context-menu\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOnRouteChange: { classPropertyName: \"closeOnRouteChange\", publicName: \"closeOnRouteChange\", isSignal: true, isRequired: false, transformFunction: null }, originalItems: { classPropertyName: \"originalItems\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: \"onItemClick\", onOpening: \"onOpening\", onClose: \"onClose\" }, host: { listeners: { \"window:scroll\": \"onWindowEvent($event)\", \"window:resize\": \"onWindowEvent($event)\" }, properties: { \"class\": \"this.__hostClass\" } }, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text | translate | async }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXContextMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ], imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ], template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text | translate | async }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { onWindowEvent: [{\n type: HostListener,\n args: ['window:scroll', ['$event']]\n }, {\n type: HostListener,\n args: ['window:resize', ['$event']]\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQVksTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFD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QVcsRUFBRSxzQkFBc0I7YUFDcEM7U0FDRixpREMzREgsNmtDQWdDQSxzMVVENkJJLGdCQUFnQixvSkFDaEIsMkJBQTJCLHlMQUMzQixtQkFBbUIsOEhBQ25CLHdCQUF3QixpRUFDeEIsU0FBUyx5Q0FDVCxnQkFBZ0I7OzJGQUdQLHNCQUFzQjtrQkExQmxDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1QsYUFBYTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyx3QkFBd0I7eUJBQ3BDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLHdCQUF3Qjt5QkFDcEM7cUJBQ0YsV0FDUTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3dCQUNuQix3QkFBd0I7d0JBQ3hCLFNBQVM7d0JBQ1QsZ0JBQWdCO3FCQUNqQjt3REEwV08sYUFBYTtzQkFGcEIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRckMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhPcmllbnRhdGlvbiwgTlhDb21wb25lbnQsIE5YRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LCBBWERlY29yYXRvckljb25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFBvaW50IH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFYWkluZGV4U2VydmljZSwgQVhaVG9rZW4gfSBmcm9tICdAYWNvcmV4L2NvcmUvei1pbmRleCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRE9DVU1FTlQsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUNsb3NlVHJpZ2dlciwgQVhNZW51SXRlbSwgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVPcGVuVHJpZ2dlciwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50IGV4dGVuZHMgTlhFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PiB7XG4gIGl0ZW1zOiBBWE1lbnVJdGVtW107XG4gIGNhbmNlbGVkID0gZmFsc2U7XG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVudSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBjb250ZXh0IG1lbnUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb250ZXh0LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIEFYTWVudVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhSb290TWVudSxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWENvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhNZW51SXRlbUNvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIC8vIElucHV0cyBhbmQgT3V0cHV0c1xuXG4gIHJlYWRvbmx5IG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ3ZlcnRpY2FsJyk7XG4gIHJlYWRvbmx5IG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcbiAgcmVhZG9ubHkgY2xvc2VPbiA9IGlucHV0PEFYTWVudUNsb3NlVHJpZ2dlcj4oJ2NsaWNrJyk7XG4gIC8qKiBXaGVuIHRydWUsIGNsb3NlcyB0aGUgbWVudSBvbiByb3V0ZXIgbmF2aWdhdGlvbiAoZS5nLiBzaWRlLW1lbnUgcm91dGUgY2hhbmdlcykuICovXG4gIHJlYWRvbmx5IGNsb3NlT25Sb3V0ZUNoYW5nZSA9IGlucHV0KGZhbHNlKTtcbiAgcmVhZG9ubHkgb3JpZ2luYWxJdGVtcyA9IGlucHV0PEFYTWVudUl0ZW1bXT4oW10sIHsgYWxpYXM6ICdpdGVtcycgfSk7XG4gIHJlYWRvbmx5IHRhcmdldCA9IGlucHV0PEhUTUxFbGVtZW50IHwgSFRNTEVsZW1lbnRbXSB8IHN0cmluZz4oKTtcblxuICBvbkl0ZW1DbGljayA9IG91dHB1dDxBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50PigpO1xuICBvbk9wZW5pbmcgPSBvdXRwdXQ8QVhDb250ZXh0TWVudU9wZW5pbmdFdmVudD4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgbWVudSBjbG9zZXMgKGJhY2tkcm9wLCBpdGVtIGNsaWNrLCBzY3JvbGwsIGFub3RoZXIgbWVudSBvcGVuaW5nLCBldGMuKS4gKi9cbiAgb25DbG9zZSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIGhhc0Fycm93ID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuXG4gIC8vIEluamVjdGVkIFNlcnZpY2VzXG5cbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KEFYTWVudVNlcnZpY2UpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHByaXZhdGUgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHBsYXRmb3JtSUQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHpJbmRleFNlcnZpY2UgPSBpbmplY3QoQVhaSW5kZXhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgelRva2VuOiBBWFpUb2tlbiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGxhc3RPcGVuUG9pbnQ6IEFYUG9pbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgLy8gQ29uc3RydWN0b3IgKERlcGVuZGVuY3kgSW5qZWN0aW9uKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy9cbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNldHVwQ2xvc2VPblJvdXRlQ2hhbmdlKCk7XG5cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXJ2aWNlLm9wZW5Db250ZXh0TWVudSQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICBpZiAoKGUuc2VuZGVyIGFzIGFueSkgPT0gdGhpcykge1xuICAgICAgICB0aGlzLmludGVybmFsU2hvd0F0KGUucG9pbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gTGlmZWN5Y2xlIEhvb2tzXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRleHRFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGNvbnRleHQgbWVudSBieSByZWJpbmRpbmcgZXZlbnQgbGlzdGVuZXJzIHRvIHRhcmdldCBlbGVtZW50cy5cbiAgICovXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIGNvbnRleHQgbWVudSBhdCBhIHNwZWNpZmljIHBvaW50LlxuICAgKiBAcGFyYW0gcG9pbnQgLSBUaGUgY29vcmRpbmF0ZXMgd2hlcmUgdGhlIG1lbnUgc2hvdWxkIGFwcGVhclxuICAgKiBAcGFyYW0gdGFyZ2V0RWxlbWVudCAtIE9wdGlvbmFsIHRhcmdldCBlbGVtZW50IGZvciB0aGUgY29udGV4dCBtZW51XG4gICAqIEBwYXJhbSBldmVudCAtIE9wdGlvbmFsIG9wZW5pbmcgZXZlbnQgd2l0aCBtZW51IGl0ZW1zXG4gICAqL1xuICBzaG93QXQocG9pbnQ6IEFYUG9pbnQsIHRhcmdldEVsZW1lbnQ/OiBIVE1MRWxlbWVudCwgZXZlbnQ/OiBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50KSB7XG4gICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlciB9KTtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KSB7XG4gICAgICAgIHRhcmdldEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQocG9pbnQueCwgcG9pbnQueSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB9XG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIGV2ZW50ID0ge1xuICAgICAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICBpdGVtczogY2xvbmVEZWVwKHRoaXMub3JpZ2luYWxJdGVtcygpKSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGVkKSByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm9uT3BlbmluZy5lbWl0KGV2ZW50KTtcbiAgICAgIHRoaXMuaXRlbXMuc2V0KGV2ZW50Lml0ZW1zKTtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlLm9wZW5Db250ZXh0TWVudSQubmV4dCh7IHNlbmRlciwgcG9pbnQgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBjb250ZXh0IG1lbnUgYW5kIHJlbW92ZXMgdGhlIGJhY2tkcm9wLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgY29uc3Qgd2FzT3BlbiA9IHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtb3BlbicpO1xuICAgIHRoaXMubGFzdE9wZW5Qb2ludCA9IG51bGw7XG4gICAgLy8gRHJvcCByZW5kZXJlZCBpdGVtcyBiZWZvcmUgbW92aW5nIERPTSBub2RlcyBiYWNrIHRvIHRoZSBvcmlnaW5hbCBwYXJlbnQuXG4gICAgLy8gVGhpcyBwcmV2ZW50cyBhIGxhcmdlIG1lbnUgdHJlZSBmcm9tIGJlaW5nIHJlLXBhcmVudGVkL3JlbW92ZWQgYXMgYSBzaW5nbGUgaGVhdnkgRE9NIG9wZXJhdGlvbi5cbiAgICBpZiAod2FzT3Blbikge1xuICAgICAgdGhpcy5pdGVtcy5zZXQoW10pO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgLy8gUmVsZWFzZSB6LWluZGV4IHRva2VuXG4gICAgdGhpcy56SW5kZXhTZXJ2aWNlLnJlbGVhc2UodGhpcy56VG9rZW4pO1xuICAgIHRoaXMuelRva2VuID0gbnVsbDtcbiAgICBpZiAod2FzT3Blbikge1xuICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICAvLyBQcml2YXRlIFByb3BlcnRpZXNcblxuICBwcml2YXRlIGJhY2tkcm9wRWxlbWVudCE6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG9yaWdpbmFsTmV4dFNpYmxpbmc6IE5vZGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvcmlnaW5hbFBhcmVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgaXRlbXMgPSBzaWduYWw8QVhNZW51SXRlbVtdPihbXSk7XG5cbiAgLy8gUHJpdmF0ZSBNZXRob2RzIChJbnRlcm5hbCBMb2dpYylcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldHVwQ2xvc2VPblJvdXRlQ2hhbmdlKCkge1xuICAgIGlmICghdGhpcy5yb3V0ZXIgfHwgIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KTogZXZlbnQgaXMgTmF2aWdhdGlvblN0YXJ0ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VPblJvdXRlQ2hhbmdlKCkpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBnZXRUYXJnZXRFbGVtZW50cygpOiBIVE1MRWxlbWVudFtdIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgY29uc3QgZWxlbWVudHM6IEhUTUxFbGVtZW50W10gPVxuICAgICAgICB0eXBlb2YgdGhpcy50YXJnZXQoKSA9PSAnc3RyaW5nJ1xuICAgICAgICAgID8gQXJyYXkuZnJvbSh0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KHRoaXMudGFyZ2V0KCkgYXMgc3RyaW5nKSlcbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkodGhpcy50YXJnZXQoKSlcbiAgICAgICAgICAgID8gKHRoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRbXSlcbiAgICAgICAgICAgIDogW3RoaXMudGFyZ2V0KCkgYXMgSFRNTEVsZW1lbnRdO1xuXG4gICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBiaW5kQ29udGV4dEV2ZW50KCkge1xuICAgIHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlPy5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMuaGFuZGxlQ29udGV4dE1lbnUuYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlbW92ZUNvbnRleHRFdmVudCgpIHtcbiAgICB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCkuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVudShlOiBNb3VzZUV2ZW50KSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgLy9cbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gdGhpcy5kb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChlLngsIGUueSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnRzID0gdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpO1xuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGVsZW1lbnRzVW5kZXJNb3VzZS5maW5kKCh0YXJnZXQpID0+IHRhcmdldEVsZW1lbnRzLmluY2x1ZGVzKHRhcmdldCkpO1xuICAgICAgLy9cbiAgICAgIGNvbnN0IGV2ZW50OiBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50ID0ge1xuICAgICAgICBzZW5kZXI6IHRoaXMsXG4gICAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgaXRlbXM6IGNsb25lRGVlcCh0aGlzLm9yaWdpbmFsSXRlbXMoKSksXG4gICAgICB9O1xuICAgICAgLy9cbiAgICAgIGlmICghZXZlbnQuY2FuY2VsZWQpIHtcbiAgICAgICAgdGhpcy5zaG93QXQoeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9LCB0YXJnZXRFbGVtZW50LCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgIHRoaXMubGFzdE9wZW5Qb2ludCA9IHBvaW50O1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxlbWVudFJlZi5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1vcGVuJyk7XG4gICAgdGhpcy5wb3NpdGlvbkF0UG9pbnQocG9pbnQpO1xuICAgIHRoaXMuY3JlYXRlQmFja2Ryb3AoKTtcblxuICAgIC8vIEl0ZW1zIG1heSByZW5kZXIgYWZ0ZXIgdGhlIHNpZ25hbCB1cGRhdGUgKGUuZy4gY29tcGFjdCBzaWRlLW1lbnUpOyByZXBvc2l0aW9uIG9uY2UgbGFpZCBvdXQuXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5sYXN0T3BlblBvaW50ICYmIGVsZW1lbnRSZWYuY2xhc3NMaXN0LmNvbnRhaW5zKCdheC1zdGF0ZS1vcGVuJykpIHtcbiAgICAgICAgICB0aGlzLnBvc2l0aW9uQXRQb2ludCh0aGlzLmxhc3RPcGVuUG9pbnQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUG9zaXRpb25zIHRoZSBtZW51IGF0IGBwb2ludGAsIGZsaXBwaW5nIHdoZW4gaXQgd291bGQgb3ZlcmZsb3cgdGhlIHZpZXdwb3J0LlxuICAgKiBVc2VzIGEgdGVtcG9yYXJ5IHZpc2libGUgbGF5b3V0IHBhc3Mgc28gcGFyZW50cyB0aGF0IGhpZGUgdGhlIGhvc3QgKGUuZy4gc2lkZS1tZW51IGBkaXNwbGF5OiBub25lYCkgZG8gbm90IHlpZWxkIGEgemVyby1zaXplZCByZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSBwb3NpdGlvbkF0UG9pbnQocG9pbnQ6IEFYUG9pbnQpIHtcbiAgICBjb25zdCBlbGVtZW50UmVmID0gdGhpcy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGl0ZW1SZWN0ID0gdGhpcy5tZWFzdXJlTWVudVJlY3QoZWxlbWVudFJlZik7XG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICBjb25zdCBpc1J0bCA9IEFYSHRtbFV0aWwuaXNSdGwoZWxlbWVudFJlZik7XG5cbiAgICBsZXQgbGVmdDogbnVtYmVyO1xuICAgIGlmIChpc1J0bCkge1xuICAgICAgbGVmdCA9IHBvaW50LnggLSBpdGVtUmVjdC53aWR0aDtcbiAgICAgIGlmIChsZWZ0IDwgMCkge1xuICAgICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbGVmdCA9IHBvaW50Lng7XG4gICAgICBpZiAobGVmdCArIGl0ZW1SZWN0LndpZHRoID4gd2luZG93V2lkdGgpIHtcbiAgICAgICAgbGVmdCA9IHBvaW50LnggLSBpdGVtUmVjdC53aWR0aDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBib3R0b20gPSBwb2ludC55ICsgaXRlbVJlY3QuaGVpZ2h0O1xuICAgIGxldCB0b3A6IG51bWJlcjtcblxuICAgIGlmIChib3R0b20gPiB3aW5kb3dIZWlnaHQpIHtcbiAgICAgIHRvcCA9IHBvaW50LnkgLSBpdGVtUmVjdC5oZWlnaHQ7XG4gICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICB0b3AgPSAwO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0b3AgPSBwb2ludC55O1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudFJlZiwgJ2xlZnQnLCBgJHtsZWZ0fXB4YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAndG9wJywgYCR7dG9wfXB4YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAncG9zaXRpb24nLCAnZml4ZWQnKTtcbiAgfVxuXG4gIC8qKiBNZWFzdXJlcyBtZW51IHNpemUgZXZlbiB3aGVuIGFuIGFuY2VzdG9yIGhpZGVzIHRoZSBob3N0IHdpdGggYGRpc3BsYXk6IG5vbmVgLiAqL1xuICBwcml2YXRlIG1lYXN1cmVNZW51UmVjdChlbGVtZW50UmVmOiBIVE1MRWxlbWVudCk6IERPTVJlY3Qge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudFJlZiwgJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAnZGlzcGxheScsICdmbGV4Jyk7XG4gICAgY29uc3QgcmVjdCA9IGVsZW1lbnRSZWYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShlbGVtZW50UmVmLCAndmlzaWJpbGl0eScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoZWxlbWVudFJlZiwgJ2Rpc3BsYXknKTtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgY3JlYXRlQmFja2Ryb3AoKSB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsUGFyZW50KSB7XG4gICAgICB0aGlzLm9yaWdpbmFsUGFyZW50ID0gdGhpcy5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICB0aGlzLm9yaWdpbmFsTmV4dFNpYmxpbmcgPSB0aGlzLm5hdGl2ZUVsZW1lbnQubmV4dFNpYmxpbmc7XG4gICAgfVxuXG4gICAgLy8gQWNxdWlyZSB6LWluZGV4IHRva2VuXG4gICAgdGhpcy56VG9rZW4gPSB0aGlzLnpJbmRleFNlcnZpY2UuYWNxdWlyZSgpO1xuXG4gICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICd0b3AnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdoZWlnaHQnLCAnMTAwJScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICd6LWluZGV4JywgU3RyaW5nKHRoaXMuelRva2VuLnpJbmRleCkpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdiYWNrZ3JvdW5kJywgJ3RyYW5zcGFyZW50Jyk7XG5cbiAgICB0aGlzLmNyZWF0ZUV2ZW50TGlzdGVuZXJzKHRoaXMuYmFja2Ryb3BFbGVtZW50KTtcblxuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVtb3ZlQmFja2Ryb3AoKSB7XG4gICAgaWYgKHRoaXMuYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICBpZiAodGhpcy5vcmlnaW5hbFBhcmVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLm9yaWdpbmFsUGFyZW50LCB0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMub3JpZ2luYWxOZXh0U2libGluZyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQucGFyZW50Tm9kZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuYmFja2Ryb3BFbGVtZW50LnBhcmVudE5vZGUsIHRoaXMuYmFja2Ryb3BFbGVtZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYmFja2Ryb3BFbGVtZW50ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUV2ZW50TGlzdGVuZXJzKGVsOiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IGwxID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdjbGljaycsICgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIGwxKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsMiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAnd2hlZWwnLCAoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICBsMigpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbDMgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbCwgJ2NvbnRleHRtZW51JywgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgIGNvbnN0IHggPSBlLmNsaWVudFg7XG4gICAgICBjb25zdCB5ID0gZS5jbGllbnRZO1xuXG4gICAgICAvLyBDbG9zZSBmaXJzdCBzbyB0aGUgZnVsbC1zY3JlZW4gYmFja2Ryb3AgaXMgZ29uZTsgb3RoZXJ3aXNlIHRoZSBuZXh0IHRhcmdldCBuZXZlclxuICAgICAgLy8gcmVjZWl2ZXMgY29udGV4dG1lbnUgKGNvbnZlcnNhdGlvbiBsaXN0IC8gbWVzc2FnZSBsaXN0IC8gZXRjLikuXG4gICAgICB0aGlzLmNsb3NlKCk7XG5cbiAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdW5kZXIgPSB0aGlzLmRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoeCwgeSkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgICAgIGlmICghdW5kZXIgfHwgdW5kZXIgPT09IHRoaXMuZG9jdW1lbnQuYm9keSB8fCB1bmRlciA9PT0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZm9yd2FyZCA9IG5ldyBNb3VzZUV2ZW50KCdjb250ZXh0bWVudScsIHtcbiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmlldzogdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBjbGllbnRYOiB4LFxuICAgICAgICAgICAgY2xpZW50WTogeSxcbiAgICAgICAgICAgIHNjcmVlblg6IGUuc2NyZWVuWCxcbiAgICAgICAgICAgIHNjcmVlblk6IGUuc2NyZWVuWSxcbiAgICAgICAgICAgIGJ1dHRvbjogMixcbiAgICAgICAgICAgIGJ1dHRvbnM6IDIsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdW5kZXIuZGlzcGF0Y2hFdmVudChmb3J3YXJkKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGwzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBIb3N0IExpc3RlbmVycyAoVUkgSW50ZXJhY3Rpb24gSGFuZGxpbmcpXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICBwcml2YXRlIG9uV2luZG93RXZlbnQoKSB7XG4gICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlcjogc2VuZGVyIH0pOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsIG9yIHJlc2l6ZVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBhbnkge1xuICAgIHJldHVybiBbJ2F4LW1lbnUtY29udGFpbmVyJywgYGF4LW9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbigpfWAsICdheC1hY3Rpb24tbGlzdCcsICdheC1hY3Rpb24tbGlzdC12ZXJ0aWNhbCddO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW0sYXgtZGl2aWRlcixheC10aXRsZSxuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+XG5cbkBmb3IgKG5vZGUgb2YgaXRlbXMoKTsgdHJhY2sgbm9kZSkge1xuICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCI+IDwvbmctY29udGFpbmVyPlxufVxuXG48bmctdGVtcGxhdGUgI1JlY3Vyc2lvbiBsZXQtaXRlbT5cbiAgQGlmIChpdGVtLmdyb3VwPy50aXRsZSkge1xuICAgIDxheC10aXRsZT57eyBpdGVtLmdyb3VwPy50aXRsZSB9fTwvYXgtdGl0bGU+XG4gIH1cbiAgPGF4LW1lbnUtaXRlbSBbbmFtZV09XCJpdGVtLm5hbWVcIiBbZGF0YV09XCJpdGVtLmRhdGFcIiBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCI+XG4gICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPiA8L2F4LWljb24+XG4gICAgICA8L2F4LXByZWZpeD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnRleHQpIHtcbiAgICAgIDxheC10ZXh0Pnt7IGl0ZW0udGV4dCB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0uc3VmZml4KSB7XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnN1ZmZpeC50ZXh0IHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICB9XG4gICAgQGZvciAoY2hpbGQgb2YgaXRlbS5pdGVtczsgdHJhY2sgY2hpbGQpIHtcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2F4LW1lbnUtaXRlbT5cbiAgQGlmIChpdGVtLmJyZWFrKSB7XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, inject, input, output, ViewEncapsulation, } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\nexport class AXMenuComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.openOn = input('hover', ...(ngDevMode ? [{ debugName: \"openOn\" }] : []));\n this.closeOn = input('leave', ...(ngDevMode ? [{ debugName: \"closeOn\" }] : []));\n this.service = inject(AXMenuService);\n this.onItemClick = output();\n this.items = input([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.hasArrow = input(true, ...(ngDevMode ? [{ debugName: \"hasArrow\" }] : []));\n }\n /** @ignore */\n get __hostClass() {\n return [\n 'ax-root-menu',\n 'ax-action-list',\n `ax-action-list-${this.orientation()}`,\n `${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,\n ];\n }\n /**\n * Closes all open menus and submenus for this root menu.\n *\n * @returns void - No return value. All open menu overlays are closed and hidden.\n */\n close() {\n this.service.closeAll$.next();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXMenuComponent, isStandalone: true, selector: \"ax-menu\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, hasArrow: { classPropertyName: \"hasArrow\", publicName: \"hasArrow\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: \"onItemClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text | translate | async }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ], imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ], template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text | translate | async }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover:not(ax-menu.ax-action-list-horizontal>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled){background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover:not(ax-menu.ax-action-list-vertical>ax-menu-item:hover.ax-state-disabled)>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBaUIsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBK0UsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUl2SDs7O0dBR0c7QUEyQkgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBVztJQTFCaEQ7O1FBMkJFLGdCQUFXLEdBQUcsS0FBSyxDQUFnQixZQUFZLHVEQUFDLENBQUM7UUFFakQsV0FBTSxHQUFHLEtBQUssQ0FBb0IsT0FBTyxrREFBQyxDQUFDO1FBRTNDLFlBQU8sR0FBRyxLQUFLLENBQXFCLE9BQU8sbURBQUMsQ0FBQztRQUU3QyxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWhDLGdCQUFXLEdBQUcsTUFBTSxFQUF5QixDQUFDO1FBRTlDLFVBQUssR0FBRyxLQUFLLENBQWUsRUFBRSxpREFBQyxDQUFDO1FBRWhDLGFBQVEsR0FBRyxLQUFLLENBQVUsSUFBSSxvREFBQyxDQUFDO0tBcUJqQztJQW5CQyxjQUFjO0lBQ2QsSUFDSSxXQUFXO1FBQ2IsT0FBTztZQUNMLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs4R0FqQ1UsZUFBZTtrR0FBZixlQUFlLDh4QkFwQmY7WUFDVCxhQUFhO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLFdBQVcsRUFBRSxlQUFlO2FBQzdCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLFdBQVcsRUFBRSxlQUFlO2FBQzdCO1NBQ0YsaURDdkNILDZrQ0FnQ0EsczFVRFNJLGdCQUFnQixvSkFDaEIsMkJBQTJCLHlMQUMzQixtQkFBbUIsOEhBQ25CLHdCQUF3QixpRUFDeEIsU0FBUyx5Q0FDVCxnQkFBZ0I7OzJGQUdQLGVBQWU7a0JBMUIzQixTQUFTOytCQUNFLFNBQVMsaUJBR0osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVCxhQUFhO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxVQUFVOzRCQUNuQixXQUFXLGlCQUFpQjt5QkFDN0I7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsaUJBQWlCO3lCQUM3QjtxQkFDRixXQUNRO3dCQUNQLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsU0FBUzt3QkFDVCxnQkFBZ0I7cUJBQ2pCOzhCQW1CRyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBBWE9yaWVudGF0aW9uLCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUNsb3NlVHJpZ2dlciwgQVhNZW51SXRlbSwgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVPcGVuVHJpZ2dlciwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYTWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWE1lbnVDb21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIG1lbnUgaXRlbXMuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWE1lbnVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWE1lbnVJdGVtQ29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICBvcmllbnRhdGlvbiA9IGlucHV0PEFYT3JpZW50YXRpb24+KCdob3Jpem9udGFsJyk7XG5cbiAgb3Blbk9uID0gaW5wdXQ8QVhNZW51T3BlblRyaWdnZXI+KCdob3ZlcicpO1xuXG4gIGNsb3NlT24gPSBpbnB1dDxBWE1lbnVDbG9zZVRyaWdnZXI+KCdsZWF2ZScpO1xuXG4gIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG5cbiAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhNZW51SXRlbXNDbGlja0V2ZW50PigpO1xuXG4gIGl0ZW1zID0gaW5wdXQ8QVhNZW51SXRlbVtdPihbXSk7XG5cbiAgaGFzQXJyb3cgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgJ2F4LXJvb3QtbWVudScsXG4gICAgICAnYXgtYWN0aW9uLWxpc3QnLFxuICAgICAgYGF4LWFjdGlvbi1saXN0LSR7dGhpcy5vcmllbnRhdGlvbigpfWAsXG4gICAgICBgJHshdGhpcy5oYXNBcnJvdygpID8gJ2F4LWhpZGUtYXJyb3cnIDogJyd9YCxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhbGwgb3BlbiBtZW51cyBhbmQgc3VibWVudXMgZm9yIHRoaXMgcm9vdCBtZW51LlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBBbGwgb3BlbiBtZW51IG92ZXJsYXlzIGFyZSBjbG9zZWQgYW5kIGhpZGRlbi5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpIHtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtbWVudS1pdGVtLGF4LWRpdmlkZXIsYXgtdGl0bGUsbmctY29udGFpbmVyXCI+PC9uZy1jb250ZW50PlxuXG5AZm9yIChub2RlIG9mIGl0ZW1zKCk7IHRyYWNrIG5vZGUpIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG5vZGUgfVwiPiA8L25nLWNvbnRhaW5lcj5cbn1cblxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbS5ncm91cD8udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS5ncm91cD8udGl0bGUgfX08L2F4LXRpdGxlPlxuICB9XG4gIDxheC1tZW51LWl0ZW0gW25hbWVdPVwiaXRlbS5uYW1lXCIgW2RhdGFdPVwiaXRlbS5kYXRhXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgfVxuICAgIEBpZiAoaXRlbS50ZXh0KSB7XG4gICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtdGV4dD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnN1ZmZpeCkge1xuICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgPGF4LXRleHQ+e3sgaXRlbS5zdWZmaXgudGV4dCB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgfVxuICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0uaXRlbXM7IHRyYWNrIGNoaWxkKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9heC1tZW51LWl0ZW0+XG4gIEBpZiAoaXRlbS5icmVhaykge1xuICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuComponent } from './menu.component';\nimport * as i0 from \"@angular/core\";\nexport class AXMenuModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuModule, imports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent], exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuModule, imports: [AXMenuComponent, AXContextMenuComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBSGIsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixhQUM1RCxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsc0JBQXNCOytHQUUzRCxZQUFZLFlBSFEsZUFBZSxFQUFFLHNCQUFzQjs7MkZBRzNELFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDO29CQUN2RSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLENBQUM7aUJBQ3hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0FYTWVudUl0ZW1Db21wb25lbnQsIEFYTWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtBWE1lbnVJdGVtQ29tcG9uZW50LCBBWE1lbnVDb21wb25lbnQsIEFYQ29udGV4dE1lbnVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvYWNvcmV4LWNvbXBvbmVudHMtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;;;;;;;;;AAGO,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,EAAE;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAE;AACnC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE;AACzC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAE;AACjD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AACnI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;AChBN,MAAM,UAAU,CAAC;AACxB;AACO,MAAM,uBAAuB,CAAC;AACrC;AACO,MAAM,wBAAwB,SAAS,YAAY,CAAC;AAC3D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,IAAI;AACJ;;ACHA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,SAAS,WAAW,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9F,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACtC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI;AAC/C,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAC5C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACnC,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9D,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY;AAC/E,kBAAkB;AAClB,kBAAkB;AAClB,sBAAsB;AACtB,sBAAsB,uBAAuB;AAC7C,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF;AACA,QAAQ,eAAe,CAAC,MAAM;AAC9B,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACpG,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK;AACvF,YAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACrC,gBAAgB,IAAI,CAAC,2BAA2B,EAAE;AAClD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK;AACxF,YAAY,IAAI,IAAI,IAAI,IAAI,EAAE;AAC9B,gBAAgB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AACtC,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK;AAC9F,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;AAC3B;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,OAAO,IAAI,cAAc,GAAG,QAAQ,GAAG,eAAe,CAAC,GAAG,IAAI;AAC9F;AACA,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM;AAChC,QAAQ,OAAO,MAAM,IAAI,IAAI,EAAE;AAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC7B,YAAY,MAAM,GAAG,MAAM,CAAC,MAAM;AAClC,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAClC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM;AAC3D,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE;AAC1D,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,SAAS;AACrE,IAAI;AACJ;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa;AACxE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,OAAO,IAAI,cAAc,GAAG,QAAQ,GAAG,eAAe,CAAC,GAAG,IAAI;AAC9F;AACA,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,OAAO;AAC7D,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,iBAAiB,CAAC;AAC3E,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,cAAc,CAAC;AAC5E,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AACvC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpD;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9B,gBAAgB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC1D,YAAY;AACZ,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,IAAI;AACJ;AACA;AACA;AACA,IAAI,2BAA2B,GAAG;AAClC,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,QAAQ,eAAe,CAAC,MAAM;AAC9B,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAC/B,gBAAgB,IAAI,CAAC,iBAAiB,EAAE;AACxC,YAAY;AACZ,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC,IAAI;AACJ;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAC1E,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAC5D,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE;AACnE,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU;AAC7C,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;AAC/C,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;AAC1D,QAAQ,IAAI,QAAQ;AACpB,QAAQ,IAAI,SAAS;AACrB;AACA,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK;AAChF,cAAc,QAAQ,CAAC,MAAM;AAC7B,cAAc,QAAQ,CAAC,GAAG,CAAC;AAC3B,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC;AAC/D,QAAQ,IAAI,YAAY,GAAG,WAAW,CAAC,MAAM,IAAI,YAAY,EAAE;AAC/D,YAAY,QAAQ,GAAG,YAAY;AACnC,QAAQ;AACR,aAAa,IAAI,YAAY,IAAI,CAAC,EAAE;AACpC,YAAY,QAAQ,GAAG,YAAY;AACnC,QAAQ;AACR,aAAa;AACb,YAAY,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC,MAAM;AACxD,QAAQ;AACR,QAAQ,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;AACzF;AACA,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AAC7E,YAAY,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI;AAC5F,YAAY,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;AAC5F,YAAY,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,EAAE;AACxF,gBAAgB,SAAS,GAAG,aAAa;AACzC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACjG,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK;AACtE,YAAY,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK;AACnD,YAAY,MAAM,gBAAgB,GAAG,QAAQ,CAAC,KAAK;AACnD,YAAY,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK;AACtE,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,gBAAgB,IAAI,CAAC,EAAE;AAC3C,oBAAoB,SAAS,GAAG,gBAAgB;AAChD,gBAAgB;AAChB,qBAAqB,IAAI,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,EAAE;AAC9E,oBAAoB,SAAS,GAAG,gBAAgB;AAChD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,SAAS,GAAG,CAAC;AACjC,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,WAAW,EAAE;AACzE,oBAAoB,SAAS,GAAG,gBAAgB;AAChD,gBAAgB;AAChB,qBAAqB,IAAI,gBAAgB,IAAI,CAAC,EAAE;AAChD,oBAAoB,SAAS,GAAG,gBAAgB;AAChD,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC,KAAK;AAC/D,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,YAAY,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;AAC/F,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,GAAG,SAAS,GAAG,WAAW,CAAC,KAAK;AAC9G,YAAY,IAAI,cAAc,EAAE;AAChC,gBAAgB,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AAClD,gBAAgB,IAAI,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,YAAY,EAAE;AACrE,oBAAoB,QAAQ,GAAG,UAAU;AACzC,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;AACzF;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;AAC5D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACjE;AACA,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClF,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC;AAC/D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC;AAC1D,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE;AACpD,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC;AACxD,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;AACrD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,IAAI,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE;AACrD,QAAQ,IAAI,GAAG,GAAG,MAAM,GAAG,YAAY,EAAE;AACzC,YAAY,GAAG,GAAG,YAAY,GAAG,MAAM;AACvC,QAAQ;AACR,QAAQ,IAAI,GAAG,GAAG,CAAC,EAAE;AACrB,YAAY,GAAG,GAAG,CAAC;AACnB,QAAQ;AACR,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,WAAW,CAAC,CAAC,EAAE;AACnB,QAAQ,CAAC,CAAC,eAAe,EAAE;AAC3B,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY;AACZ;AACA,QAAQ,MAAM,KAAK,GAAG;AACtB,YAAY,MAAM,EAAE,IAAI;AACxB,YAAY,WAAW,EAAE,CAAC;AAC1B,YAAY,QAAQ,EAAE,KAAK;AAC3B,YAAY,IAAI,EAAE;AAClB,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;AACpC,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,aAAa;AACb,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AAC1E;AACA,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACnD,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,QAAQ;AACR,aAAa,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAClC,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AACzC,YAAY,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACzE,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B;AACA,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACpC,YAAY,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAChD,YAAY,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAC1C,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE;AACnE,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,OAAO,EAAE;AACnE;AACA,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxC,gBAAgB,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACpD,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,MAAM;AACtD,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;AACpB,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtC,IAAI;AACJ;AACA;AACA;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa;AACnD,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACjD,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC1C,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AACpF,QAAQ,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnD,YAAY,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACnD,YAAY,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AACtC,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,MAAM,IAAI,GAAG,CAAC,gBAAgB,CAAC;AACvC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC7B,YAAY,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAC1C,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC;AACpD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,0BAA0B,EAAE,YAAY,EAAE,0BAA0B,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE;AAC1/B,YAAY;AACZ,gBAAgB,OAAO,EAAE,uBAAuB;AAChD,gBAAgB,WAAW,EAAE,mBAAmB;AAChD,aAAa;AACb,YAAY,cAAc;AAC1B,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,WAAW,EAAE,mBAAmB;AAChD,aAAa;AACb,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,4jBAA4jB,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACxtB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE;AAClJ,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,uBAAuB;AAC5D,4BAA4B,WAAW,EAAE,mBAAmB;AAC5D,yBAAyB;AACzB,wBAAwB,cAAc;AACtC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,WAAW,EAAE,mBAAmB;AAC5D,yBAAyB;AACzB,qBAAqB,EAAE,QAAQ,EAAE,4jBAA4jB,EAAE;AAC/lB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC;AACtE,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;AAC1C,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;AAC/C,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;AAC/C,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;AAClD,aAAa,EAAE;AACf,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;AAClD,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;AACnD,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;AC9XZ,MAAM,yBAAyB,SAAS,OAAO,CAAC;AACvD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,SAAS,WAAW,CAAC;AACxD;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClG,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAChI,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE;AACnC,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE;AACjC;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE;AAC/B,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AACzC,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxD,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI;AAClC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E;AACA,QAAQ,eAAe,CAAC,MAAM;AAC9B,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,uBAAuB,EAAE;AACtC,QAAQ,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM;AAC1D,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AACvD,YAAY,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE;AAClC,gBAAgB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5C,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,SAAS,EAAE,EAAE;AACzB,YAAY,IAAI,CAAC,kBAAkB,EAAE;AACrC,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;AACxC,QAAQ,MAAM,MAAM,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;AAC1D,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,gBAAgB,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,YAAY;AACZ,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,MAAM,EAAE,IAAI;AAChC,oBAAoB,QAAQ,EAAE,KAAK;AACnC,oBAAoB,aAAa,EAAE,aAAa;AAChD,oBAAoB,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1D,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,CAAC,QAAQ;AAClC,oBAAoB;AACpB,YAAY;AACZ,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;AACvC,QAAQ;AACR,QAAQ,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7D,IAAI;AACJ;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC9E,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;AAC5D,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC;AACA;AACA,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;AAC9B,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B;AACA,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC1B,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC/B,QAAQ;AACR,IAAI;AACJ;AACA;AACA,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACjE,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC;AACpB,aAAa,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1G,aAAa,SAAS,CAAC,MAAM;AAC7B,YAAY,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC3C,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,YAAY,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI;AACrD,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAC1E,kBAAkB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;AAC7C,sBAAsB,IAAI,CAAC,MAAM;AACjC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACrC,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAChD,YAAY,CAAC,EAAE,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAChD,YAAY,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpF,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,CAAC,EAAE;AACzB,QAAQ,CAAC,CAAC,cAAc,EAAE;AAC1B,QAAQ,CAAC,CAAC,eAAe,EAAE;AAC3B;AACA,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,YAAY,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC3D,YAAY,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtG;AACA,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,QAAQ,EAAE,KAAK;AAC/B,gBAAgB,aAAa,EAAE,aAAa;AAC5C,gBAAgB,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AACtD,aAAa;AACb;AACA,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACjC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC;AACjF,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK;AAClC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa;AAC7C,QAAQ,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;AACjD,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACnC,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B;AACA,QAAQ,eAAe,CAAC,MAAM;AAC9B,YAAY,IAAI,IAAI,CAAC,aAAa,IAAI,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACtF,gBAAgB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC;AACxD,YAAY;AACZ,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa;AAC7C,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AACzD,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU;AAC7C,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW;AAC/C,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;AAClD,QAAQ,IAAI,IAAI;AAChB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK;AAC3C,YAAY,IAAI,IAAI,GAAG,CAAC,EAAE;AAC1B,gBAAgB,IAAI,GAAG,KAAK,CAAC,CAAC;AAC9B,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC;AAC1B,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,GAAG,WAAW,EAAE;AACrD,gBAAgB,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK;AAC/C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM;AAChD,QAAQ,IAAI,GAAG;AACf,QAAQ,IAAI,MAAM,GAAG,YAAY,EAAE;AACnC,YAAY,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,IAAI,GAAG,GAAG,CAAC,EAAE;AACzB,gBAAgB,GAAG,GAAG,CAAC;AACvB,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,GAAG,GAAG,KAAK,CAAC,CAAC;AACzB,QAAQ;AACR,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;AAC/D,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,UAAU,EAAE;AAChC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC;AAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC;AAC7D,QAAQ,MAAM,IAAI,GAAG,UAAU,CAAC,qBAAqB,EAAE;AACvD,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC;AAC3D,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC;AACxD,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAClC,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa;AAClE,YAAY,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW;AACrE,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAClD,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACjE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,CAAC;AACzE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC;AAChE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,CAAC;AACjE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC;AACrE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC;AACtE,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,EAAE,aAAa,CAAC;AACjF,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC;AACvD,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;AAC5D,QAAQ,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5D,IAAI;AACJ;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;AAClC,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE;AACrC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC;AAC7G,YAAY;AACZ,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;AACjD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC;AAChG,YAAY;AACZ,YAAY,IAAI,CAAC,eAAe,GAAG,IAAI;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,oBAAoB,CAAC,EAAE,EAAE;AAC7B,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM;AAC3D,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,EAAE,EAAE;AAChB,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM;AAC3D,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,EAAE,EAAE;AAChB,QAAQ,CAAC,CAAC;AACV,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,KAAK;AAClE,YAAY,CAAC,CAAC,cAAc,EAAE;AAC9B,YAAY,CAAC,CAAC,eAAe,EAAE;AAC/B,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO;AAC/B,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO;AAC/B;AACA;AACA,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpD,gBAAgB,qBAAqB,CAAC,MAAM;AAC5C,oBAAoB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;AACtE,oBAAoB,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;AAC3G,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE;AAClE,wBAAwB,OAAO,EAAE,IAAI;AACrC,wBAAwB,UAAU,EAAE,IAAI;AACxC,wBAAwB,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,SAAS;AACpE,wBAAwB,OAAO,EAAE,CAAC;AAClC,wBAAwB,OAAO,EAAE,CAAC;AAClC,wBAAwB,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1C,wBAAwB,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1C,wBAAwB,MAAM,EAAE,CAAC;AACjC,wBAAwB,OAAO,EAAE,CAAC;AAClC,qBAAqB,CAAC;AACtB,oBAAoB,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;AAChD,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,YAAY,EAAE,EAAE;AAChB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,MAAM,GAAG,IAAI;AAC3B,QAAQ,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACnE,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,CAAC,mBAAmB,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,yBAAyB,CAAC;AACzH,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACxL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,uBAAuB,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE;AACttC,YAAY,aAAa;AACzB,YAAY;AACZ,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,WAAW,EAAE,sBAAsB;AACnD,aAAa;AACb,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,WAAW,EAAE,sBAAsB;AACnD,aAAa;AACb,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6kCAA6kC,EAAE,MAAM,EAAE,CAAC,8xUAA8xU,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACzvY;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE;AACrJ,wBAAwB,aAAa;AACrC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,UAAU;AAC/C,4BAA4B,WAAW,EAAE,sBAAsB;AAC/D,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,WAAW,EAAE,sBAAsB;AAC/D,yBAAyB;AACzB,qBAAqB,EAAE,OAAO,EAAE;AAChC,wBAAwB,gBAAgB;AACxC,wBAAwB,2BAA2B;AACnD,wBAAwB,mBAAmB;AAC3C,wBAAwB,wBAAwB;AAChD,wBAAwB,SAAS;AACjC,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,QAAQ,EAAE,6kCAA6kC,EAAE,MAAM,EAAE,CAAC,8xUAA8xU,CAAC,EAAE;AAC15W,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,CAAC;AACxE,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;AAClD,aAAa,EAAE;AACf,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;AAClD,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACjXnB;AACA;AACA;AACA;AACO,MAAM,eAAe,SAAS,WAAW,CAAC;AACjD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AAC5C,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,EAAE;AACnC,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,IAAI;AACJ;AACA,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO;AACf,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAClD,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC;AACxD,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE;AACrC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACnL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE;AAC/4B,YAAY,aAAa;AACzB,YAAY;AACZ,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,WAAW,EAAE,eAAe;AAC5C,aAAa;AACb,YAAY;AACZ,gBAAgB,OAAO,EAAE,WAAW;AACpC,gBAAgB,WAAW,EAAE,eAAe;AAC5C,aAAa;AACb,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6kCAA6kC,EAAE,MAAM,EAAE,CAAC,8xUAA8xU,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACzvY;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7I,wBAAwB,aAAa;AACrC,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,UAAU;AAC/C,4BAA4B,WAAW,EAAE,eAAe;AACxD,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,WAAW;AAChD,4BAA4B,WAAW,EAAE,eAAe;AACxD,yBAAyB;AACzB,qBAAqB,EAAE,OAAO,EAAE;AAChC,wBAAwB,gBAAgB;AACxC,wBAAwB,2BAA2B;AACnD,wBAAwB,mBAAmB;AAC3C,wBAAwB,wBAAwB;AAChD,wBAAwB,SAAS;AACjC,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,QAAQ,EAAE,6kCAA6kC,EAAE,MAAM,EAAE,CAAC,8xUAA8xU,CAAC,EAAE;AAC15W,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC;AAC5C,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACxEZ,MAAM,YAAY,CAAC;AAC1B,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACjR,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACnL;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,CAAC;AAC3F,oBAAoB,OAAO,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,sBAAsB,CAAC;AAC3F,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AChBb;AACA;AACA;;;;"}
|