@acorex/components 21.0.2-next.24 → 21.0.2-next.26
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/conversation2/README.md +5 -4
- package/fesm2022/acorex-components-accordion.mjs +17 -22
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +17 -17
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +14 -14
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs +4 -4
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +12 -11
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +9 -9
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +13 -13
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +10 -10
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +61 -26
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +22 -22
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +18 -18
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +11 -11
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +12 -14
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +13 -11
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs +14 -14
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +11 -11
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +81 -40
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +11 -11
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +33 -33
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +63 -63
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +7876 -8197
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +55 -55
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +6 -6
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +36 -35
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +50 -486
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +10 -10
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +10 -10
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +11 -11
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +48 -41
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +13 -13
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +16 -17
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +19 -11
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +18 -18
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +12 -12
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-fab.mjs +9 -9
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +64 -48
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +35 -27
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +13 -14
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +48 -48
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +10 -10
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +9 -9
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +9 -7
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +10 -10
- 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 +10 -10
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +12 -12
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +21 -21
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +15 -15
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +45 -45
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +64 -33
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs → acorex-components-modal-acorex-components-modal-DWNqU6or.mjs} +24 -24
- package/fesm2022/acorex-components-modal-acorex-components-modal-DWNqU6or.mjs.map +1 -0
- package/fesm2022/acorex-components-modal-modal-content.component-DplJbJyk.mjs +214 -0
- package/fesm2022/acorex-components-modal-modal-content.component-DplJbJyk.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 +13 -13
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +10 -10
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +10 -10
- 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 +35 -40
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +15 -23
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +9 -9
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +10 -10
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +20 -20
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +8 -8
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +17 -17
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +11 -9
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +29 -12
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +11 -10
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +10 -9
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +40 -38
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +11 -11
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +20 -35
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +28 -28
- 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 +11 -11
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +173 -179
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +53 -52
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +17 -11
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +16 -14
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +12 -12
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +10 -10
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +137 -55
- 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 +19 -19
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +17 -17
- 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 +17 -17
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +10 -10
- 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 +12 -12
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +11 -13
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +14 -14
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +13 -13
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +10 -10
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +25 -16
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +13 -13
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +17 -17
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +9 -9
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +45 -45
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/package.json +110 -134
- package/{accordion/index.d.ts → types/acorex-components-accordion.d.ts} +0 -1
- package/{button-group/index.d.ts → types/acorex-components-button-group.d.ts} +20 -12
- package/{button/index.d.ts → types/acorex-components-button.d.ts} +3 -3
- package/{check-box/index.d.ts → types/acorex-components-check-box.d.ts} +1 -1
- package/{chips/index.d.ts → types/acorex-components-chips.d.ts} +3 -8
- package/{color-palette/index.d.ts → types/acorex-components-color-palette.d.ts} +2 -0
- package/{conversation2/index.d.ts → types/acorex-components-conversation2.d.ts} +2294 -2184
- package/{data-table/index.d.ts → types/acorex-components-data-table.d.ts} +4 -253
- package/{dropdown-button/index.d.ts → types/acorex-components-dropdown-button.d.ts} +4 -2
- package/{flow-chart/index.d.ts → types/acorex-components-flow-chart.d.ts} +4 -0
- package/{form/index.d.ts → types/acorex-components-form.d.ts} +24 -24
- package/{grid-layout-builder/index.d.ts → types/acorex-components-grid-layout-builder.d.ts} +0 -1
- package/{loading/index.d.ts → types/acorex-components-loading.d.ts} +1 -1
- package/{menu/index.d.ts → types/acorex-components-menu.d.ts} +15 -6
- package/{paint/index.d.ts → types/acorex-components-paint.d.ts} +1 -6
- package/{qrcode/index.d.ts → types/acorex-components-qrcode.d.ts} +1 -0
- package/{radio/index.d.ts → types/acorex-components-radio.d.ts} +1 -1
- package/{rate-picker/index.d.ts → types/acorex-components-rate-picker.d.ts} +5 -15
- package/{scheduler-picker/index.d.ts → types/acorex-components-scheduler-picker.d.ts} +82 -81
- package/{select-box/index.d.ts → types/acorex-components-select-box.d.ts} +2 -1
- package/{side-menu/index.d.ts → types/acorex-components-side-menu.d.ts} +15 -3
- package/{slider/index.d.ts → types/acorex-components-slider.d.ts} +2 -2
- package/{step-wizard/index.d.ts → types/acorex-components-step-wizard.d.ts} +1 -1
- package/{tabs/index.d.ts → types/acorex-components-tabs.d.ts} +1 -1
- package/{tag/index.d.ts → types/acorex-components-tag.d.ts} +3 -3
- package/collapse/README.md +0 -3
- package/collapse/index.d.ts +0 -174
- package/drawer-legacy/README.md +0 -3
- package/drawer-legacy/index.d.ts +0 -86
- package/fesm2022/acorex-components-collapse.mjs +0 -366
- package/fesm2022/acorex-components-collapse.mjs.map +0 -1
- package/fesm2022/acorex-components-drawer-legacy.mjs +0 -218
- package/fesm2022/acorex-components-drawer-legacy.mjs.map +0 -1
- package/fesm2022/acorex-components-file-explorer.mjs +0 -307
- package/fesm2022/acorex-components-file-explorer.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs +0 -212
- package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs.map +0 -1
- package/fesm2022/acorex-components-number-box-legacy.mjs +0 -430
- package/fesm2022/acorex-components-number-box-legacy.mjs.map +0 -1
- package/fesm2022/acorex-components-scss.mjs +0 -22
- package/fesm2022/acorex-components-scss.mjs.map +0 -1
- package/fesm2022/acorex-components-tree-view-legacy.mjs +0 -515
- package/fesm2022/acorex-components-tree-view-legacy.mjs.map +0 -1
- package/file-explorer/README.md +0 -3
- package/file-explorer/index.d.ts +0 -103
- package/number-box-legacy/README.md +0 -3
- package/number-box-legacy/index.d.ts +0 -191
- package/scss/README.md +0 -3
- package/scss/index.d.ts +0 -10
- package/tree-view-legacy/README.md +0 -3
- package/tree-view-legacy/index.d.ts +0 -185
- package/{action-sheet/index.d.ts → types/acorex-components-action-sheet.d.ts} +0 -0
- package/{alert/index.d.ts → types/acorex-components-alert.d.ts} +0 -0
- package/{aspect-ratio/index.d.ts → types/acorex-components-aspect-ratio.d.ts} +0 -0
- package/{audio-wave/index.d.ts → types/acorex-components-audio-wave.d.ts} +0 -0
- package/{autocomplete/index.d.ts → types/acorex-components-autocomplete.d.ts} +0 -0
- package/{avatar/index.d.ts → types/acorex-components-avatar.d.ts} +0 -0
- package/{badge/index.d.ts → types/acorex-components-badge.d.ts} +0 -0
- package/{bottom-navigation/index.d.ts → types/acorex-components-bottom-navigation.d.ts} +0 -0
- package/{breadcrumbs/index.d.ts → types/acorex-components-breadcrumbs.d.ts} +0 -0
- package/{calendar/index.d.ts → types/acorex-components-calendar.d.ts} +0 -0
- package/{circular-progress/index.d.ts → types/acorex-components-circular-progress.d.ts} +0 -0
- package/{code-editor/index.d.ts → types/acorex-components-code-editor.d.ts} +0 -0
- package/{color-box/index.d.ts → types/acorex-components-color-box.d.ts} +0 -0
- package/{command/index.d.ts → types/acorex-components-command.d.ts} +0 -0
- package/{comment/index.d.ts → types/acorex-components-comment.d.ts} +0 -0
- package/{conversation/index.d.ts → types/acorex-components-conversation.d.ts} +0 -0
- package/{cron-job/index.d.ts → types/acorex-components-cron-job.d.ts} +0 -0
- package/{data-list/index.d.ts → types/acorex-components-data-list.d.ts} +0 -0
- package/{data-pager/index.d.ts → types/acorex-components-data-pager.d.ts} +0 -0
- package/{datetime-box/index.d.ts → types/acorex-components-datetime-box.d.ts} +0 -0
- package/{datetime-input/index.d.ts → types/acorex-components-datetime-input.d.ts} +0 -0
- package/{datetime-picker/index.d.ts → types/acorex-components-datetime-picker.d.ts} +0 -0
- package/{decorators/index.d.ts → types/acorex-components-decorators.d.ts} +0 -0
- package/{dialog/index.d.ts → types/acorex-components-dialog.d.ts} +0 -0
- package/{drawer/index.d.ts → types/acorex-components-drawer.d.ts} +0 -0
- package/{dropdown/index.d.ts → types/acorex-components-dropdown.d.ts} +0 -0
- package/{editor/index.d.ts → types/acorex-components-editor.d.ts} +0 -0
- package/{fab/index.d.ts → types/acorex-components-fab.d.ts} +0 -0
- package/{image-editor/index.d.ts → types/acorex-components-image-editor.d.ts} +0 -0
- package/{image/index.d.ts → types/acorex-components-image.d.ts} +0 -0
- package/{json-viewer/index.d.ts → types/acorex-components-json-viewer.d.ts} +0 -0
- package/{kanban/index.d.ts → types/acorex-components-kanban.d.ts} +0 -0
- package/{kbd/index.d.ts → types/acorex-components-kbd.d.ts} +0 -0
- package/{label/index.d.ts → types/acorex-components-label.d.ts} +0 -0
- package/{list/index.d.ts → types/acorex-components-list.d.ts} +0 -0
- package/{loading-dialog/index.d.ts → types/acorex-components-loading-dialog.d.ts} +0 -0
- package/{map/index.d.ts → types/acorex-components-map.d.ts} +0 -0
- package/{media-viewer/index.d.ts → types/acorex-components-media-viewer.d.ts} +0 -0
- package/{modal/index.d.ts → types/acorex-components-modal.d.ts} +0 -0
- package/{navbar/index.d.ts → types/acorex-components-navbar.d.ts} +0 -0
- package/{notification/index.d.ts → types/acorex-components-notification.d.ts} +0 -0
- package/{number-box/index.d.ts → types/acorex-components-number-box.d.ts} +0 -0
- package/{otp/index.d.ts → types/acorex-components-otp.d.ts} +0 -0
- package/{page/index.d.ts → types/acorex-components-page.d.ts} +0 -0
- package/{password-box/index.d.ts → types/acorex-components-password-box.d.ts} +0 -0
- package/{pdf-reader/index.d.ts → types/acorex-components-pdf-reader.d.ts} +0 -0
- package/{phone-box/index.d.ts → types/acorex-components-phone-box.d.ts} +0 -0
- package/{picker/index.d.ts → types/acorex-components-picker.d.ts} +0 -0
- package/{popover/index.d.ts → types/acorex-components-popover.d.ts} +0 -0
- package/{popup/index.d.ts → types/acorex-components-popup.d.ts} +0 -0
- package/{progress-bar/index.d.ts → types/acorex-components-progress-bar.d.ts} +0 -0
- package/{query-builder/index.d.ts → types/acorex-components-query-builder.d.ts} +1 -1
- /package/{rail-navigation/index.d.ts → types/acorex-components-rail-navigation.d.ts} +0 -0
- /package/{range-slider/index.d.ts → types/acorex-components-range-slider.d.ts} +0 -0
- /package/{rest-api-generator/index.d.ts → types/acorex-components-rest-api-generator.d.ts} +0 -0
- /package/{result/index.d.ts → types/acorex-components-result.d.ts} +0 -0
- /package/{routing-progress/index.d.ts → types/acorex-components-routing-progress.d.ts} +0 -0
- /package/{rrule/index.d.ts → types/acorex-components-rrule.d.ts} +0 -0
- /package/{scheduler/index.d.ts → types/acorex-components-scheduler.d.ts} +0 -0
- /package/{search-box/index.d.ts → types/acorex-components-search-box.d.ts} +0 -0
- /package/{selection-list-2/index.d.ts → types/acorex-components-selection-list-2.d.ts} +0 -0
- /package/{selection-list/index.d.ts → types/acorex-components-selection-list.d.ts} +0 -0
- /package/{skeleton/index.d.ts → types/acorex-components-skeleton.d.ts} +0 -0
- /package/{sliding-item/index.d.ts → types/acorex-components-sliding-item.d.ts} +0 -0
- /package/{switch/index.d.ts → types/acorex-components-switch.d.ts} +0 -0
- /package/{tag-box/index.d.ts → types/acorex-components-tag-box.d.ts} +0 -0
- /package/{text-area/index.d.ts → types/acorex-components-text-area.d.ts} +0 -0
- /package/{text-box/index.d.ts → types/acorex-components-text-box.d.ts} +0 -0
- /package/{time-duration/index.d.ts → types/acorex-components-time-duration.d.ts} +0 -0
- /package/{time-line/index.d.ts → types/acorex-components-time-line.d.ts} +0 -0
- /package/{toast/index.d.ts → types/acorex-components-toast.d.ts} +0 -0
- /package/{toolbar/index.d.ts → types/acorex-components-toolbar.d.ts} +0 -0
- /package/{tooltip/index.d.ts → types/acorex-components-tooltip.d.ts} +0 -0
- /package/{tree-view/index.d.ts → types/acorex-components-tree-view.d.ts} +0 -0
- /package/{uploader/index.d.ts → types/acorex-components-uploader.d.ts} +0 -0
- /package/{video-player/index.d.ts → types/acorex-components-video-player.d.ts} +0 -0
- /package/{wysiwyg/index.d.ts → types/acorex-components-wysiwyg.d.ts} +0 -0
- /package/{index.d.ts → types/acorex-components.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-side-menu.mjs","sources":["../tmp-esm2022/side-menu/lib/side-menu-base.js","../tmp-esm2022/side-menu/lib/side-menu-item/side-menu-item.component.js","../tmp-esm2022/side-menu/lib/side-menu.component.js","../tmp-esm2022/side-menu/lib/side-menu.directive.js","../tmp-esm2022/side-menu/lib/side-menu.module.js","../tmp-esm2022/side-menu/acorex-components-side-menu.js"],"sourcesContent":["/**\n * DI token for the parent `ax-side-menu`. Child `ax-side-menu-item`s inject this\n * to read shared state (e.g. the current display mode) without creating a\n * circular import on the concrete `AXSideMenuComponent` class.\n */\nexport class AXSideMenuBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLGNBQWM7Q0FFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBESSB0b2tlbiBmb3IgdGhlIHBhcmVudCBgYXgtc2lkZS1tZW51YC4gQ2hpbGQgYGF4LXNpZGUtbWVudS1pdGVtYHMgaW5qZWN0IHRoaXNcbiAqIHRvIHJlYWQgc2hhcmVkIHN0YXRlIChlLmcuIHRoZSBjdXJyZW50IGRpc3BsYXkgbW9kZSkgd2l0aG91dCBjcmVhdGluZyBhXG4gKiBjaXJjdWxhciBpbXBvcnQgb24gdGhlIGNvbmNyZXRlIGBBWFNpZGVNZW51Q29tcG9uZW50YCBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYU2lkZU1lbnVCYXNlIHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbW9kZTogU2lnbmFsPCdmdWxsJyB8ICdjb21wYWN0Jz47XG59XG4iXX0=","import { AXClickEvent, AXComponent, AXRippleDirective, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXContextMenuComponent } from '@acorex/components/menu';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChildren, DestroyRef, effect, ElementRef, inject, input, model, output, PLATFORM_ID, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tooltip\";\nexport class AXSideMenuItemClickEvent extends AXClickEvent {\n constructor() {\n super(...arguments);\n this.handled = false;\n }\n}\nexport class AXSideMenuItemComponent extends MXInteractiveComponent {\n constructor() {\n super(...arguments);\n this.text = model('', ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n this.active = model(false, ...(ngDevMode ? [{ debugName: \"active\" }] : []));\n this.isLoading = model(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isCollapsed = model(true, ...(ngDevMode ? [{ debugName: \"isCollapsed\" }] : []));\n this.onClick = output();\n this.tooltipStatus = signal(false, ...(ngDevMode ? [{ debugName: \"tooltipStatus\" }] : []));\n this.tooltipText = input('', ...(ngDevMode ? [{ debugName: \"tooltipText\" }] : []));\n this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: \"toggleOnClick\" }] : []));\n this.href = input(...(ngDevMode ? [undefined, { debugName: \"href\" }] : []));\n this.routerLink = input(...(ngDevMode ? [undefined, { debugName: \"routerLink\" }] : []));\n this.routerLinkActive = input('ax-state-active', ...(ngDevMode ? [{ debugName: \"routerLinkActive\" }] : []));\n this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: \"routerLinkActiveOptions\" }] : []));\n this.target = input('_self', ...(ngDevMode ? [{ debugName: \"target\" }] : []));\n this.menuItemTrigger = viewChild.required('menuItemTrigger');\n this.hasChild = signal(false, ...(ngDevMode ? [{ debugName: \"hasChild\" }] : []));\n this.isCompactMode = computed(() => this.menuMode() === 'compact', ...(ngDevMode ? [{ debugName: \"isCompactMode\" }] : []));\n /** Top-level rail entry in compact mode (opens the flyout context menu). */\n this.isFirstLevel = computed(() => {\n if (!this.isCompactMode()) {\n return false;\n }\n const host = this.hostElement;\n return !host.parentElement?.closest('.ax-side-children-content');\n }, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\n this.elem = inject((ElementRef));\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.menuMode = signal('full', ...(ngDevMode ? [{ debugName: \"menuMode\" }] : []));\n this.childObserver = null;\n this.childItems = contentChildren(AXSideMenuItemComponent, ...(ngDevMode ? [{ debugName: \"childItems\", descendants: true }] : [{ descendants: true }]));\n this.childrenSlot = viewChild('childrenSlot', ...(ngDevMode ? [{ debugName: \"childrenSlot\" }] : []));\n this.childrenContextMenu = viewChild('childrenContextMenu', ...(ngDevMode ? [{ debugName: \"childrenContextMenu\" }] : []));\n this.#childCheckEffect = effect(() => {\n if (this.childItems().length) {\n this.updateHasChild();\n }\n }, ...(ngDevMode ? [{ debugName: \"#childCheckEffect\" }] : []));\n this.#initChildren = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.childObserver = new MutationObserver(() => {\n this.reparentOrphanedChildren();\n this.updateHasChild();\n });\n this.childObserver.observe(this.hostElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n this.#contextMenuSync = effect(() => {\n if (!this.isCompactMode() ||\n !isPlatformBrowser(this.platformId) ||\n !this.isFirstLevel() ||\n !this.hasChild()) {\n return;\n }\n const menu = this.childrenContextMenu();\n if (!menu) {\n return;\n }\n if (this.isCollapsed()) {\n menu.close();\n }\n else {\n this.closeSiblingCompactMenus();\n this.openCompactContextMenu(menu);\n }\n }, ...(ngDevMode ? [{ debugName: \"#contextMenuSync\" }] : []));\n }\n get hostElement() {\n return this.elem.nativeElement;\n }\n #childCheckEffect;\n #initChildren;\n #contextMenuSync;\n syncMenuMode(mode) {\n if (this.menuMode() === mode) {\n return;\n }\n this.menuMode.set(mode);\n this.childrenContextMenu()?.close();\n if (mode === 'compact') {\n this.isCollapsed.set(true);\n }\n }\n /** Builds the cascading `AXMenuItem` tree used by the compact-mode context menu. */\n buildMenuItemsFromChildren() {\n this.reparentOrphanedChildren();\n const slot = this.childrenSlot()?.nativeElement;\n const itemsFromSlot = slot ? this.mapSlotChildrenToMenuItems(slot) : [];\n if (itemsFromSlot.length > 0) {\n return itemsFromSlot;\n }\n return this.getDirectChildElements().map((el) => this.toMenuItem(el));\n }\n activateFromContextMenu(nativeEvent) {\n if (this.disabled || this.isLoading()) {\n return;\n }\n const trigger = this.menuItemTrigger().nativeElement;\n if (trigger instanceof HTMLAnchorElement) {\n trigger.click();\n return;\n }\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent,\n handled: false,\n });\n }\n toggle() {\n if (this.isCompactMode() && (!this.hasChild() || !this.isFirstLevel())) {\n return;\n }\n this.isCollapsed.update((collapsed) => !collapsed);\n }\n open() {\n this.isCollapsed.set(false);\n }\n close() {\n this.isCollapsed.set(true);\n this.childrenContextMenu()?.close();\n }\n handleContextMenuItemClick(event) {\n const instance = event.item.data?.sideMenuItem;\n if (!instance || instance.hasChild()) {\n return;\n }\n instance.activateFromContextMenu(event.nativeEvent);\n }\n _handleContextMenuClosed() {\n if (!this.isCollapsed()) {\n this.isCollapsed.set(true);\n }\n }\n _handleClickEvent(e) {\n if (this.disabled || this.isLoading()) {\n return;\n }\n const event = {\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n handled: false,\n };\n this.onClick.emit(event);\n if (!event.handled && this.toggleOnClick() && (this.hasChild() || !this.isCompactMode())) {\n this.toggle();\n }\n e.stopPropagation();\n }\n openCompactContextMenu(menu) {\n const items = this.buildMenuItemsFromChildren();\n if (!items.length) {\n return;\n }\n menu.showAt(this.getContextMenuAnchorPoint(), this.menuItemTrigger().nativeElement, {\n sender: menu,\n canceled: false,\n targetElement: this.menuItemTrigger().nativeElement,\n items,\n });\n }\n getContextMenuAnchorPoint() {\n const rect = this.menuItemTrigger().nativeElement.getBoundingClientRect();\n const offset = 8;\n if (AXHtmlUtil.isRtl(this.hostElement)) {\n return { x: rect.left - offset, y: rect.top };\n }\n return { x: rect.right + offset, y: rect.top };\n }\n mapSlotChildrenToMenuItems(slot) {\n const items = [];\n let pendingGroupTitle;\n for (const child of Array.from(slot.children)) {\n if (child.tagName === 'AX-TITLE') {\n pendingGroupTitle = child.textContent?.trim() || undefined;\n continue;\n }\n if (child.tagName === 'AX-DIVIDER') {\n if (items.length > 0) {\n items[items.length - 1] = { ...items[items.length - 1], break: true };\n }\n continue;\n }\n if (child.tagName !== 'AX-SIDE-MENU-ITEM') {\n continue;\n }\n const menuItem = this.toMenuItem(child);\n if (pendingGroupTitle) {\n menuItem.group = { title: pendingGroupTitle };\n pendingGroupTitle = undefined;\n }\n items.push(menuItem);\n }\n return items;\n }\n toMenuItem(host) {\n const instance = this.getInstanceFromElement(host);\n const item = {\n text: this.getItemLabel(host, instance),\n disabled: instance?.disabled ?? false,\n icon: this.getItemIcon(host),\n suffix: this.getItemSuffix(host),\n };\n if (instance) {\n item.data = { sideMenuItem: instance };\n }\n if (this.hasNestedChildren(host, instance)) {\n item.items = instance?.buildMenuItemsFromChildren() ?? this.getDirectChildElements(host).map((el) => this.toMenuItem(el));\n }\n return item;\n }\n hasNestedChildren(host, instance) {\n return (instance?.hasChild() ?? false) || this.getDirectChildElements(host).length > 0;\n }\n /** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */\n getDirectChildElements(menuHost = this.hostElement) {\n return Array.from(menuHost.querySelectorAll('ax-side-menu-item')).filter((el) => {\n if (el === menuHost) {\n return false;\n }\n return el.parentElement?.closest('ax-side-menu-item') === menuHost;\n });\n }\n reparentOrphanedChildren() {\n const container = this.childrenSlot()?.nativeElement;\n if (!container) {\n return;\n }\n for (const el of this.getDirectChildElements()) {\n if (!container.contains(el)) {\n try {\n container.appendChild(el);\n }\n catch {\n // HierarchyRequestError when the node is already being moved.\n }\n }\n }\n }\n getItemLabel(host, instance) {\n if (instance?.text()) {\n return instance.text();\n }\n const span = host.querySelector('.ax-start-side span, .ax-inside-text span');\n if (span?.textContent?.trim()) {\n return span.textContent.trim();\n }\n return host.querySelector('ax-text')?.textContent?.trim() ?? '';\n }\n getItemIcon(host) {\n const axIcon = host.querySelector('ax-prefix ax-icon');\n if (!axIcon) {\n return undefined;\n }\n return axIcon.getAttribute('icon') ?? axIcon.querySelector('i')?.className ?? undefined;\n }\n getItemSuffix(host) {\n const text = host.querySelector('ax-suffix ax-text')?.textContent?.trim();\n return text ? { text } : undefined;\n }\n getInstanceFromElement(el) {\n const ctx = el.__axContext__;\n return ctx instanceof AXSideMenuItemComponent ? ctx : undefined;\n }\n closeSiblingCompactMenus() {\n const menuHost = this.hostElement.closest('ax-side-menu');\n if (!menuHost) {\n return;\n }\n menuHost.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {\n const sibling = this.getInstanceFromElement(el);\n if (!sibling || sibling === this) {\n return;\n }\n sibling.isCollapsed.set(true);\n sibling.childrenContextMenu()?.close();\n });\n }\n updateHasChild() {\n this.hasChild.set(this.childItems().length > 0 || this.getDirectChildElements().length > 0);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXSideMenuItemComponent, isStandalone: true, selector: \"ax-side-menu-item\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: \"active\", publicName: \"active\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: \"isCollapsed\", publicName: \"isCollapsed\", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: \"tooltipText\", publicName: \"tooltipText\", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: \"toggleOnClick\", publicName: \"toggleOnClick\", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: \"href\", publicName: \"href\", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: \"routerLink\", publicName: \"routerLink\", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: \"routerLinkActive\", publicName: \"routerLinkActive\", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: \"routerLinkActiveOptions\", publicName: \"routerLinkActiveOptions\", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: \"textChange\", active: \"activeChange\", isLoading: \"isLoadingChange\", isCollapsed: \"isCollapsedChange\", onClick: \"onClick\" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: \"childItems\", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"menuItemTrigger\", first: true, predicate: [\"menuItemTrigger\"], descendants: true, isSignal: true }, { propertyName: \"childrenSlot\", first: true, predicate: [\"childrenSlot\"], descendants: true, isSignal: true }, { propertyName: \"childrenContextMenu\", first: true, predicate: [\"childrenContextMenu\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<div [axTooltip]=\\\"tooltipStatus() ? tooltipText() : null\\\" class=\\\"ax-side-menu-wrapper\\\">\\n @if (!isCompactMode()) {\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n }\\n @if (routerLink()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [routerLink]=\\\"routerLink()\\\"\\n (click)=\\\"_handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n [routerLinkActive]=\\\"routerLinkActive()\\\"\\n [routerLinkActiveOptions]=\\\"routerLinkActiveOptions()\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else if (href()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [href]=\\\"href()\\\"\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"_handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else {\\n <div\\n #menuItemTrigger\\n [axRipple]\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"_handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </div>\\n }\\n\\n <div\\n class=\\\"ax-side-children\\\"\\n [class.ax-collapsed]=\\\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\\\"\\n [class.ax-empty]=\\\"!hasChild() && !isLoading()\\\"\\n >\\n @if (isLoading()) {\\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\\n }\\n <div #childrenSlot class=\\\"ax-side-children-content\\\" [hidden]=\\\"isLoading()\\\">\\n <ng-content select=\\\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\\\"></ng-content>\\n </div>\\n </div>\\n\\n @if (isCompactMode() && hasChild()) {\\n <ax-context-menu\\n #childrenContextMenu\\n class=\\\"ax-side-menu-children-context-menu\\\"\\n [openOn]=\\\"'hover'\\\"\\n [closeOn]=\\\"'click'\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onClose)=\\\"_handleContextMenuClosed()\\\"\\n />\\n }\\n\\n <ng-content select=\\\"ax-divider\\\"></ng-content>\\n <ng-template #menuItemContent>\\n <div class=\\\"ax-start-side\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n @if (text()) {\\n <span>{{ text() }}</span>\\n }\\n <div class=\\\"ax-inside-text\\\">\\n <ng-content></ng-content>\\n </div>\\n </div>\\n <div class=\\\"ax-end-side\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\\n <span class=\\\"ax-icon ax-icon-chevron-right arrow-icon\\\" [class.arrow-icon-expand]=\\\"!isCollapsed()\\\"> </span>\\n }\\n @if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n </div>\\n </ng-template>\\n</div>\\n\", dependencies: [{ kind: \"directive\", type: AXRippleDirective, selector: \"[axRipple]\", inputs: [\"axRipple\", \"axRippleColor\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i1.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXContextMenuComponent, selector: \"ax-context-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"target\"], outputs: [\"onItemClick\", \"onOpening\", \"onClose\"] }, { 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: AXSideMenuItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-side-menu-item', inputs: ['disabled'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n AXRippleDirective,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXContextMenuComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: \"<div [axTooltip]=\\\"tooltipStatus() ? tooltipText() : null\\\" class=\\\"ax-side-menu-wrapper\\\">\\n @if (!isCompactMode()) {\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n }\\n @if (routerLink()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [routerLink]=\\\"routerLink()\\\"\\n (click)=\\\"_handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n [routerLinkActive]=\\\"routerLinkActive()\\\"\\n [routerLinkActiveOptions]=\\\"routerLinkActiveOptions()\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else if (href()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [href]=\\\"href()\\\"\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"_handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else {\\n <div\\n #menuItemTrigger\\n [axRipple]\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"_handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </div>\\n }\\n\\n <div\\n class=\\\"ax-side-children\\\"\\n [class.ax-collapsed]=\\\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\\\"\\n [class.ax-empty]=\\\"!hasChild() && !isLoading()\\\"\\n >\\n @if (isLoading()) {\\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\\n }\\n <div #childrenSlot class=\\\"ax-side-children-content\\\" [hidden]=\\\"isLoading()\\\">\\n <ng-content select=\\\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\\\"></ng-content>\\n </div>\\n </div>\\n\\n @if (isCompactMode() && hasChild()) {\\n <ax-context-menu\\n #childrenContextMenu\\n class=\\\"ax-side-menu-children-context-menu\\\"\\n [openOn]=\\\"'hover'\\\"\\n [closeOn]=\\\"'click'\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onClose)=\\\"_handleContextMenuClosed()\\\"\\n />\\n }\\n\\n <ng-content select=\\\"ax-divider\\\"></ng-content>\\n <ng-template #menuItemContent>\\n <div class=\\\"ax-start-side\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n @if (text()) {\\n <span>{{ text() }}</span>\\n }\\n <div class=\\\"ax-inside-text\\\">\\n <ng-content></ng-content>\\n </div>\\n </div>\\n <div class=\\\"ax-end-side\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\\n <span class=\\\"ax-icon ax-icon-chevron-right arrow-icon\\\" [class.arrow-icon-expand]=\\\"!isCollapsed()\\\"> </span>\\n }\\n @if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n </div>\\n </ng-template>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2xpYi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS1pdGVtL3NpZGUtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUE0QyxNQUFNLHlCQUF5QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixVQUFVLEVBQUUs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QU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDOzhHQXRVVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixpekRBRnZCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLHFEQXFDN0IsdUJBQXVCLHVjQzFGdkUsZzRGQTBGQSw0Q0QvQ0ksaUJBQWlCLDhGQUNqQixVQUFVLG9PQUNWLGdCQUFnQiw4TUFDaEIsZ0JBQWdCLG9KQUNoQixrQkFBa0IsMEhBR2xCLGVBQWUsdVJBQ2Ysc0JBQXNCLDBLQUh0QixTQUFTLHlDQUNULGdCQUFnQjs7MkZBTVAsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDRSxtQkFBbUIsVUFDckIsQ0FBQyxVQUFVLENBQUMsbUJBRUgsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysc0JBQXNCO3FCQUN2QixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21wb25lbnQsIEFYUmlwcGxlRGlyZWN0aXZlLCBNWEludGVyYWN0aXZlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQsIEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQsIEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWVudSc7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBpc1BsYXRmb3JtQnJvd3NlciwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJc0FjdGl2ZU1hdGNoT3B0aW9ucywgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBjbGFzcyBBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQgZXh0ZW5kcyBBWENsaWNrRXZlbnQge1xuICBoYW5kbGVkID0gZmFsc2U7XG59XG5cbi8qKiBSb3V0ZXMgY29udGV4dC1tZW51IGNsaWNrcyBiYWNrIHRvIHRoZSBtYXRjaGluZyBgYXgtc2lkZS1tZW51LWl0ZW1gLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFNpZGVNZW51Q29udGV4dE1lbnVJdGVtRGF0YSB7XG4gIHNpZGVNZW51SXRlbTogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNpZGUtbWVudS1pdGVtJyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gICAgUm91dGVyTGluayxcbiAgICBSb3V0ZXJMaW5rQWN0aXZlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhMb2FkaW5nQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBBWFRyYW5zbGF0b3JQaXBlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWENvbnRleHRNZW51Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XG4gIHRleHQgPSBtb2RlbCgnJyk7XG4gIGFjdGl2ZSA9IG1vZGVsKGZhbHNlKTtcbiAgaXNMb2FkaW5nID0gbW9kZWwoZmFsc2UpO1xuICBpc0NvbGxhcHNlZCA9IG1vZGVsKHRydWUpO1xuICBvbkNsaWNrID0gb3V0cHV0PEFYU2lkZU1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcbiAgdG9vbHRpcFN0YXR1cyA9IHNpZ25hbChmYWxzZSk7XG4gIHRvb2x0aXBUZXh0ID0gaW5wdXQoJycpO1xuXG4gIHJlYWRvbmx5IHRvZ2dsZU9uQ2xpY2sgPSBpbnB1dCh0cnVlKTtcbiAgcmVhZG9ubHkgaHJlZiA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IHJvdXRlckxpbmsgPSBpbnB1dDxzdHJpbmcgfCBhbnlbXSB8IFVybFRyZWUgfCBudWxsPigpO1xuICByZWFkb25seSByb3V0ZXJMaW5rQWN0aXZlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCdheC1zdGF0ZS1hY3RpdmUnKTtcbiAgcmVhZG9ubHkgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnMgPSBpbnB1dDx7IGV4YWN0OiBib29sZWFuIH0gfCBJc0FjdGl2ZU1hdGNoT3B0aW9ucz4oeyBleGFjdDogZmFsc2UgfSk7XG4gIHJlYWRvbmx5IHRhcmdldCA9IGlucHV0PCdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJz4oJ19zZWxmJyk7XG5cbiAgcHJvdGVjdGVkIG1lbnVJdGVtVHJpZ2dlciA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ21lbnVJdGVtVHJpZ2dlcicpO1xuICBwcm90ZWN0ZWQgaGFzQ2hpbGQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgaXNDb21wYWN0TW9kZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWVudU1vZGUoKSA9PT0gJ2NvbXBhY3QnKTtcblxuICAvKiogVG9wLWxldmVsIHJhaWwgZW50cnkgaW4gY29tcGFjdCBtb2RlIChvcGVucyB0aGUgZmx5b3V0IGNvbnRleHQgbWVudSkuICovXG4gIHByb3RlY3RlZCBpc0ZpcnN0TGV2ZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmlzQ29tcGFjdE1vZGUoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBob3N0ID0gdGhpcy5ob3N0RWxlbWVudDtcbiAgICByZXR1cm4gIWhvc3QucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW0gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVudU1vZGUgPSBzaWduYWw8J2Z1bGwnIHwgJ2NvbXBhY3QnPignZnVsbCcpO1xuXG4gIHByaXZhdGUgY2hpbGRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoaWxkSXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oQVhTaWRlTWVudUl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRyZW5TbG90ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignY2hpbGRyZW5TbG90Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRyZW5Db250ZXh0TWVudSA9IHZpZXdDaGlsZDxBWENvbnRleHRNZW51Q29tcG9uZW50PignY2hpbGRyZW5Db250ZXh0TWVudScpO1xuXG4gIHByaXZhdGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAjY2hpbGRDaGVja0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hpbGRJdGVtcygpLmxlbmd0aCkge1xuICAgICAgdGhpcy51cGRhdGVIYXNDaGlsZCgpO1xuICAgIH1cbiAgfSk7XG5cbiAgI2luaXRDaGlsZHJlbiA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCk7XG4gICAgdGhpcy51cGRhdGVIYXNDaGlsZCgpO1xuICAgIHRoaXMuY2hpbGRPYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMucmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCk7XG4gICAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkKCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGlsZE9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0RWxlbWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLmNoaWxkT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSk7XG4gIH0pO1xuXG4gICNjb250ZXh0TWVudVN5bmMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmlzQ29tcGFjdE1vZGUoKSB8fFxuICAgICAgIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHxcbiAgICAgICF0aGlzLmlzRmlyc3RMZXZlbCgpIHx8XG4gICAgICAhdGhpcy5oYXNDaGlsZCgpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudSA9IHRoaXMuY2hpbGRyZW5Db250ZXh0TWVudSgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKCkpIHtcbiAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVNpYmxpbmdDb21wYWN0TWVudXMoKTtcbiAgICAgIHRoaXMub3BlbkNvbXBhY3RDb250ZXh0TWVudShtZW51KTtcbiAgICB9XG4gIH0pO1xuXG4gIHN5bmNNZW51TW9kZShtb2RlOiAnZnVsbCcgfCAnY29tcGFjdCcpIHtcbiAgICBpZiAodGhpcy5tZW51TW9kZSgpID09PSBtb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWVudU1vZGUuc2V0KG1vZGUpO1xuICAgIHRoaXMuY2hpbGRyZW5Db250ZXh0TWVudSgpPy5jbG9zZSgpO1xuICAgIGlmIChtb2RlID09PSAnY29tcGFjdCcpIHtcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBCdWlsZHMgdGhlIGNhc2NhZGluZyBgQVhNZW51SXRlbWAgdHJlZSB1c2VkIGJ5IHRoZSBjb21wYWN0LW1vZGUgY29udGV4dCBtZW51LiAqL1xuICBidWlsZE1lbnVJdGVtc0Zyb21DaGlsZHJlbigpOiBBWE1lbnVJdGVtW10ge1xuICAgIHRoaXMucmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCk7XG5cbiAgICBjb25zdCBzbG90ID0gdGhpcy5jaGlsZHJlblNsb3QoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpdGVtc0Zyb21TbG90ID0gc2xvdCA/IHRoaXMubWFwU2xvdENoaWxkcmVuVG9NZW51SXRlbXMoc2xvdCkgOiBbXTtcblxuICAgIGlmIChpdGVtc0Zyb21TbG90Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpdGVtc0Zyb21TbG90O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoKS5tYXAoKGVsKSA9PiB0aGlzLnRvTWVudUl0ZW0oZWwpKTtcbiAgfVxuXG4gIGFjdGl2YXRlRnJvbUNvbnRleHRNZW51KG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0xvYWRpbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50O1xuICAgIGlmICh0cmlnZ2VyIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpIHtcbiAgICAgIHRyaWdnZXIuY2xpY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgaGFuZGxlZDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuaXNDb21wYWN0TW9kZSgpICYmICghdGhpcy5oYXNDaGlsZCgpIHx8ICF0aGlzLmlzRmlyc3RMZXZlbCgpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQ29sbGFwc2VkLnVwZGF0ZSgoY29sbGFwc2VkKSA9PiAhY29sbGFwc2VkKTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jaGlsZHJlbkNvbnRleHRNZW51KCk/LmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dE1lbnVJdGVtQ2xpY2soZXZlbnQ6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IChldmVudC5pdGVtLmRhdGEgYXMgQVhTaWRlTWVudUNvbnRleHRNZW51SXRlbURhdGEgfCB1bmRlZmluZWQpPy5zaWRlTWVudUl0ZW07XG4gICAgaWYgKCFpbnN0YW5jZSB8fCBpbnN0YW5jZS5oYXNDaGlsZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGluc3RhbmNlLmFjdGl2YXRlRnJvbUNvbnRleHRNZW51KGV2ZW50Lm5hdGl2ZUV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQ29udGV4dE1lbnVDbG9zZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQ29sbGFwc2VkKCkpIHtcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQ2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0xvYWRpbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBldmVudDogQVhTaWRlTWVudUl0ZW1DbGlja0V2ZW50ID0ge1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgaGFuZGxlZDogZmFsc2UsXG4gICAgfTtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgaWYgKCFldmVudC5oYW5kbGVkICYmIHRoaXMudG9nZ2xlT25DbGljaygpICYmICh0aGlzLmhhc0NoaWxkKCkgfHwgIXRoaXMuaXNDb21wYWN0TW9kZSgpKSkge1xuICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICB9XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNvbXBhY3RDb250ZXh0TWVudShtZW51OiBBWENvbnRleHRNZW51Q29tcG9uZW50KSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCk7XG4gICAgaWYgKCFpdGVtcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtZW51LnNob3dBdCh0aGlzLmdldENvbnRleHRNZW51QW5jaG9yUG9pbnQoKSwgdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBzZW5kZXI6IG1lbnUsXG4gICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICB0YXJnZXRFbGVtZW50OiB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBpdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dE1lbnVBbmNob3JQb2ludCgpOiBBWFBvaW50IHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG9mZnNldCA9IDg7XG4gICAgaWYgKEFYSHRtbFV0aWwuaXNSdGwodGhpcy5ob3N0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybiB7IHg6IHJlY3QubGVmdCAtIG9mZnNldCwgeTogcmVjdC50b3AgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgeDogcmVjdC5yaWdodCArIG9mZnNldCwgeTogcmVjdC50b3AgfTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2xvdENoaWxkcmVuVG9NZW51SXRlbXMoc2xvdDogSFRNTEVsZW1lbnQpOiBBWE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWE1lbnVJdGVtW10gPSBbXTtcbiAgICBsZXQgcGVuZGluZ0dyb3VwVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgQXJyYXkuZnJvbShzbG90LmNoaWxkcmVuKSkge1xuICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgPT09ICdBWC1USVRMRScpIHtcbiAgICAgICAgcGVuZGluZ0dyb3VwVGl0bGUgPSBjaGlsZC50ZXh0Q29udGVudD8udHJpbSgpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGQudGFnTmFtZSA9PT0gJ0FYLURJVklERVInKSB7XG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV0gPSB7IC4uLml0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLCBicmVhazogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgIT09ICdBWC1TSURFLU1FTlUtSVRFTScpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy50b01lbnVJdGVtKGNoaWxkIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIGlmIChwZW5kaW5nR3JvdXBUaXRsZSkge1xuICAgICAgICBtZW51SXRlbS5ncm91cCA9IHsgdGl0bGU6IHBlbmRpbmdHcm91cFRpdGxlIH07XG4gICAgICAgIHBlbmRpbmdHcm91cFRpdGxlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSB0b01lbnVJdGVtKGhvc3Q6IEhUTUxFbGVtZW50KTogQVhNZW51SXRlbSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmdldEluc3RhbmNlRnJvbUVsZW1lbnQoaG9zdCk7XG4gICAgY29uc3QgaXRlbTogQVhNZW51SXRlbSA9IHtcbiAgICAgIHRleHQ6IHRoaXMuZ2V0SXRlbUxhYmVsKGhvc3QsIGluc3RhbmNlKSxcbiAgICAgIGRpc2FibGVkOiBpbnN0YW5jZT8uZGlzYWJsZWQgPz8gZmFsc2UsXG4gICAgICBpY29uOiB0aGlzLmdldEl0ZW1JY29uKGhvc3QpLFxuICAgICAgc3VmZml4OiB0aGlzLmdldEl0ZW1TdWZmaXgoaG9zdCksXG4gICAgfTtcblxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgaXRlbS5kYXRhID0geyBzaWRlTWVudUl0ZW06IGluc3RhbmNlIH0gc2F0aXNmaWVzIEFYU2lkZU1lbnVDb250ZXh0TWVudUl0ZW1EYXRhO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc05lc3RlZENoaWxkcmVuKGhvc3QsIGluc3RhbmNlKSkge1xuICAgICAgaXRlbS5pdGVtcyA9IGluc3RhbmNlPy5idWlsZE1lbnVJdGVtc0Zyb21DaGlsZHJlbigpID8/IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cyhob3N0KS5tYXAoKGVsKSA9PiB0aGlzLnRvTWVudUl0ZW0oZWwpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTmVzdGVkQ2hpbGRyZW4oaG9zdDogSFRNTEVsZW1lbnQsIGluc3RhbmNlPzogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGluc3RhbmNlPy5oYXNDaGlsZCgpID8/IGZhbHNlKSB8fCB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoaG9zdCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKiBEaXJlY3QgYGF4LXNpZGUtbWVudS1pdGVtYCBjaGlsZHJlbiBvZiBgbWVudUhvc3RgIChkZWZhdWx0cyB0byB0aGlzIGl0ZW0pLiAqL1xuICBwcml2YXRlIGdldERpcmVjdENoaWxkRWxlbWVudHMobWVudUhvc3Q6IEhUTUxFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKG1lbnVIb3N0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LXNpZGUtbWVudS1pdGVtJykpLmZpbHRlcigoZWwpID0+IHtcbiAgICAgIGlmIChlbCA9PT0gbWVudUhvc3QpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVsLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ2F4LXNpZGUtbWVudS1pdGVtJykgPT09IG1lbnVIb3N0O1xuICAgIH0pIGFzIEhUTUxFbGVtZW50W107XG4gIH1cblxuICBwcml2YXRlIHJlcGFyZW50T3JwaGFuZWRDaGlsZHJlbigpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNoaWxkcmVuU2xvdCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbCBvZiB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoKSkge1xuICAgICAgaWYgKCFjb250YWluZXIuY29udGFpbnMoZWwpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGVsKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSGllcmFyY2h5UmVxdWVzdEVycm9yIHdoZW4gdGhlIG5vZGUgaXMgYWxyZWFkeSBiZWluZyBtb3ZlZC5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbUxhYmVsKGhvc3Q6IEhUTUxFbGVtZW50LCBpbnN0YW5jZT86IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaW5zdGFuY2U/LnRleHQoKSkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLnRleHQoKTtcbiAgICB9XG4gICAgY29uc3Qgc3BhbiA9IGhvc3QucXVlcnlTZWxlY3RvcignLmF4LXN0YXJ0LXNpZGUgc3BhbiwgLmF4LWluc2lkZS10ZXh0IHNwYW4nKTtcbiAgICBpZiAoc3Bhbj8udGV4dENvbnRlbnQ/LnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHNwYW4udGV4dENvbnRlbnQudHJpbSgpO1xuICAgIH1cbiAgICByZXR1cm4gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC10ZXh0Jyk/LnRleHRDb250ZW50Py50cmltKCkgPz8gJyc7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1JY29uKGhvc3Q6IEhUTUxFbGVtZW50KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBheEljb24gPSBob3N0LnF1ZXJ5U2VsZWN0b3IoJ2F4LXByZWZpeCBheC1pY29uJyk7XG4gICAgaWYgKCFheEljb24pIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBheEljb24uZ2V0QXR0cmlidXRlKCdpY29uJykgPz8gYXhJY29uLnF1ZXJ5U2VsZWN0b3IoJ2knKT8uY2xhc3NOYW1lID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbVN1ZmZpeChob3N0OiBIVE1MRWxlbWVudCk6IHsgdGV4dDogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRleHQgPSBob3N0LnF1ZXJ5U2VsZWN0b3IoJ2F4LXN1ZmZpeCBheC10ZXh0Jyk/LnRleHRDb250ZW50Py50cmltKCk7XG4gICAgcmV0dXJuIHRleHQgPyB7IHRleHQgfSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5zdGFuY2VGcm9tRWxlbWVudChlbDogRWxlbWVudCk6IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdHggPSAoZWwgYXMgdW5rbm93biBhcyB7IF9fYXhDb250ZXh0X18/OiB1bmtub3duIH0pLl9fYXhDb250ZXh0X187XG4gICAgcmV0dXJuIGN0eCBpbnN0YW5jZW9mIEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50ID8gY3R4IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVNpYmxpbmdDb21wYWN0TWVudXMoKSB7XG4gICAgY29uc3QgbWVudUhvc3QgPSB0aGlzLmhvc3RFbGVtZW50LmNsb3Nlc3QoJ2F4LXNpZGUtbWVudScpO1xuICAgIGlmICghbWVudUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtZW51SG9zdC5xdWVyeVNlbGVjdG9yQWxsKCc6c2NvcGUgPiBheC1zaWRlLW1lbnUtaXRlbScpLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICBjb25zdCBzaWJsaW5nID0gdGhpcy5nZXRJbnN0YW5jZUZyb21FbGVtZW50KGVsKTtcbiAgICAgIGlmICghc2libGluZyB8fCBzaWJsaW5nID09PSB0aGlzKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNpYmxpbmcuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICAgICAgc2libGluZy5jaGlsZHJlbkNvbnRleHRNZW51KCk/LmNsb3NlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhhc0NoaWxkKCkge1xuICAgIHRoaXMuaGFzQ2hpbGQuc2V0KHRoaXMuY2hpbGRJdGVtcygpLmxlbmd0aCA+IDAgfHwgdGhpcy5nZXREaXJlY3RDaGlsZEVsZW1lbnRzKCkubGVuZ3RoID4gMCk7XG4gIH1cbn1cbiIsIjxkaXYgW2F4VG9vbHRpcF09XCJ0b29sdGlwU3RhdHVzKCkgPyB0b29sdGlwVGV4dCgpIDogbnVsbFwiIGNsYXNzPVwiYXgtc2lkZS1tZW51LXdyYXBwZXJcIj5cbiAgQGlmICghaXNDb21wYWN0TW9kZSgpKSB7XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gIH1cbiAgQGlmIChyb3V0ZXJMaW5rKCkpIHtcbiAgICA8YVxuICAgICAgI21lbnVJdGVtVHJpZ2dlclxuICAgICAgW2F4UmlwcGxlXVxuICAgICAgW3RhcmdldF09XCJ0YXJnZXQoKVwiXG4gICAgICBjbGFzcz1cImF4LXNpZGUtaXRlbVwiXG4gICAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rKClcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cInJvdXRlckxpbmtBY3RpdmUoKVwiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwicm91dGVyTGlua0FjdGl2ZU9wdGlvbnMoKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIH0gQGVsc2UgaWYgKGhyZWYoKSkge1xuICAgIDxhXG4gICAgICAjbWVudUl0ZW1UcmlnZ2VyXG4gICAgICBbYXhSaXBwbGVdXG4gICAgICBbaHJlZl09XCJocmVmKClcIlxuICAgICAgW3RhcmdldF09XCJ0YXJnZXQoKVwiXG4gICAgICBjbGFzcz1cImF4LXNpZGUtaXRlbVwiXG4gICAgICBbY2xhc3MuYXgtc3RhdGUtYWN0aXZlXT1cImFjdGl2ZSgpXCJcbiAgICAgIChjbGljayk9XCJfaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICNtZW51SXRlbVRyaWdnZXJcbiAgICAgIFtheFJpcHBsZV1cbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1pdGVtXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1hY3RpdmVdPVwiYWN0aXZlKClcIlxuICAgICAgKGNsaWNrKT1cIl9oYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICB9XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXgtc2lkZS1jaGlsZHJlblwiXG4gICAgW2NsYXNzLmF4LWNvbGxhcHNlZF09XCIoIWlzQ29tcGFjdE1vZGUoKSAmJiBpc0NvbGxhcHNlZCgpKSB8fCAoaXNDb21wYWN0TW9kZSgpICYmIGlzRmlyc3RMZXZlbCgpKVwiXG4gICAgW2NsYXNzLmF4LWVtcHR5XT1cIiFoYXNDaGlsZCgpICYmICFpc0xvYWRpbmcoKVwiXG4gID5cbiAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICA8cD57eyAnQGFjb3JleDpjb21tb24uc3RhdHVzLmxvYWRpbmcnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gICAgfVxuICAgIDxkaXYgI2NoaWxkcmVuU2xvdCBjbGFzcz1cImF4LXNpZGUtY2hpbGRyZW4tY29udGVudFwiIFtoaWRkZW5dPVwiaXNMb2FkaW5nKClcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXNpZGUtbWVudS1pdGVtLCBuZy1jb250YWluZXIsIFtuZ1RlbXBsYXRlT3V0bGV0XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgQGlmIChpc0NvbXBhY3RNb2RlKCkgJiYgaGFzQ2hpbGQoKSkge1xuICAgIDxheC1jb250ZXh0LW1lbnVcbiAgICAgICNjaGlsZHJlbkNvbnRleHRNZW51XG4gICAgICBjbGFzcz1cImF4LXNpZGUtbWVudS1jaGlsZHJlbi1jb250ZXh0LW1lbnVcIlxuICAgICAgW29wZW5Pbl09XCInaG92ZXInXCJcbiAgICAgIFtjbG9zZU9uXT1cIidjbGljaydcIlxuICAgICAgKG9uSXRlbUNsaWNrKT1cImhhbmRsZUNvbnRleHRNZW51SXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgKG9uQ2xvc2UpPVwiX2hhbmRsZUNvbnRleHRNZW51Q2xvc2VkKClcIlxuICAgIC8+XG4gIH1cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1kaXZpZGVyXCI+PC9uZy1jb250ZW50PlxuICA8bmctdGVtcGxhdGUgI21lbnVJdGVtQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc3RhcnQtc2lkZVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgICAgQGlmICh0ZXh0KCkpIHtcbiAgICAgICAgPHNwYW4+e3sgdGV4dCgpIH19PC9zcGFuPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImF4LWluc2lkZS10ZXh0XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1lbmQtc2lkZVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICAgICAgQGlmIChoYXNDaGlsZCgpICYmICFpc0xvYWRpbmcoKSAmJiB0b2dnbGVPbkNsaWNrKCkgJiYgIWlzRmlyc3RMZXZlbCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tcmlnaHQgYXJyb3ctaWNvblwiIFtjbGFzcy5hcnJvdy1pY29uLWV4cGFuZF09XCIhaXNDb2xsYXBzZWQoKVwiPiA8L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, DestroyRef, effect, ElementRef, HostBinding, inject, input, model, PLATFORM_ID, signal, ViewEncapsulation, } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuBase } from './side-menu-base';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @category\n * A component for displaying a side menu with customizable content.\n */\nexport class AXSideMenuComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.items = model(...(ngDevMode ? [undefined, { debugName: \"items\" }] : []));\n this.look = input('pills', ...(ngDevMode ? [{ debugName: \"look\" }] : []));\n this.location = input('start', ...(ngDevMode ? [{ debugName: \"location\" }] : []));\n this.mode = input('full', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.elementRef = inject(ElementRef);\n /**\n * All `ax-side-menu-item` instances discovered by walking the host DOM.\n *\n * We use DOM discovery (instead of `contentChildren`) because Angular content\n * queries do **not** traverse embedded views created by `ngTemplateOutlet`,\n * and the `AXSideMenuBase` DI token is not reachable from inside those views\n * either (they inherit injection from the template's declaration site, not\n * the insertion site). Walking the DOM works for direct projection,\n * structural directives, and recursive `ngTemplateOutlet`-based templates\n * uniformly.\n */\n this._items = signal([], ...(ngDevMode ? [{ debugName: \"_items\" }] : []));\n /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */\n this.children = this._items.asReadonly();\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.hostElement = this.elementRef.nativeElement;\n this.#init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId))\n return;\n this.refreshItemsFromDom();\n const observer = new MutationObserver(() => this.refreshItemsFromDom());\n observer.observe(this.elementRef.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => observer.disconnect());\n });\n this.#syncTooltips = effect(() => {\n const isCompact = this.mode() === 'compact';\n this._items().forEach((item) => {\n const isFirstLevel = !item.getHostElement().parentElement?.closest('.ax-side-children-content');\n item.tooltipStatus.set(isCompact && isFirstLevel);\n });\n }, ...(ngDevMode ? [{ debugName: \"#syncTooltips\" }] : []));\n /** Push full/compact mode to every menu item whenever mode changes. */\n this.#syncItemMode = effect(() => {\n const mode = this.mode();\n this._items().forEach((item) => item.syncMenuMode(mode));\n }, ...(ngDevMode ? [{ debugName: \"#syncItemMode\" }] : []));\n }\n #init;\n #syncTooltips;\n /** Push full/compact mode to every menu item whenever mode changes. */\n #syncItemMode;\n /**\n * Walks the host DOM to discover every nested `ax-side-menu-item`, looks up\n * the component instance through the `__axContext__` property that\n * `MXBaseComponent.ngOnInit` attaches to each host element, and updates the\n * internal items signal and `.first-level` CSS class accordingly.\n *\n * Triggered both initially and from a `MutationObserver` so recursive\n * templates that add/remove items at runtime stay in sync.\n */\n refreshItemsFromDom() {\n const host = this.elementRef.nativeElement;\n const elements = host.querySelectorAll('ax-side-menu-item');\n const items = [];\n elements.forEach((el) => {\n const instance = el.__axContext__;\n if (instance instanceof AXSideMenuItemComponent) {\n items.push(instance);\n }\n });\n const current = this._items();\n const changed = current.length !== items.length || current.some((it, i) => it !== items[i]);\n if (changed) {\n this._items.set(items);\n }\n this.addFirstLevelClass();\n }\n addFirstLevelClass() {\n const allChildren = this._items();\n allChildren.forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'));\n allChildren\n .filter((item) => {\n const itemElement = item.getHostElement();\n return this.hostElement.contains(itemElement) && !itemElement.parentElement?.closest('.ax-side-children-content');\n })\n .forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.add('first-level'));\n }\n /** @ignore */\n get __hostClass() {\n return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXSideMenuComponent, isStandalone: true, selector: \"ax-side-menu\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: \"location\", publicName: \"location\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: \"itemsChange\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n<ng-template #Recursion let-item>\\n @if (item.title) {\\n <ax-title>{{ item.title }}</ax-title>\\n }\\n @if (item.routerLink) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [target]=\\\"item.target\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [routerLink]=\\\"item.routerLink\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n [routerLinkActive]=\\\"item.routerLinkActive\\\"\\n [routerLinkActiveOptions]=\\\"item.routerLinkActiveOptions\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else if (item.href) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [href]=\\\"item.href\\\"\\n [target]=\\\"item.target\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n }\\n\\n <ng-template #sideMenuItemContent>\\n <ax-prefix>\\n @if (item.icon) {\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n }\\n </ax-prefix>\\n @if (item.data) {\\n <ax-text>{{ item.data }}</ax-text>\\n }\\n @if (item.suffixText) {\\n <ax-suffix>\\n <ax-text>{{ item.suffixText }}</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 </ng-template>\\n</ng-template>\\n\", styles: [\":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\\\"\\\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\\\"\\\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\\\"\\\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu{display:none}\\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: AXSideMenuItemComponent, selector: \"ax-side-menu-item\", inputs: [\"disabled\", \"text\", \"active\", \"isLoading\", \"isCollapsed\", \"tooltipText\", \"toggleOnClick\", \"href\", \"routerLink\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"target\"], outputs: [\"textChange\", \"activeChange\", \"isLoadingChange\", \"isCollapsedChange\", \"onClick\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-side-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXSideMenuItemComponent,\n RouterLink,\n RouterLinkActive,\n AXDecoratorIconComponent,\n ], providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ], template: \"<ng-content select=\\\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n<ng-template #Recursion let-item>\\n @if (item.title) {\\n <ax-title>{{ item.title }}</ax-title>\\n }\\n @if (item.routerLink) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [target]=\\\"item.target\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [routerLink]=\\\"item.routerLink\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n [routerLinkActive]=\\\"item.routerLinkActive\\\"\\n [routerLinkActiveOptions]=\\\"item.routerLinkActiveOptions\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else if (item.href) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [href]=\\\"item.href\\\"\\n [target]=\\\"item.target\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n }\\n\\n <ng-template #sideMenuItemContent>\\n <ax-prefix>\\n @if (item.icon) {\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n }\\n </ax-prefix>\\n @if (item.data) {\\n <ax-text>{{ item.data }}</ax-text>\\n }\\n @if (item.suffixText) {\\n <ax-suffix>\\n <ax-text>{{ item.suffixText }}</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 </ng-template>\\n</ng-template>\\n\", styles: [\":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\\\"\\\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\\\"\\\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\\\"\\\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu{display:none}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFVBQVUsRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUF1QnBGOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQW5CcEQ7O1FBb0JFLFVBQUssR0FBRyxLQUFLLDJEQUFvQixDQUFDO1FBQ3pCLFNBQUksR0FBRyxLQUFLLENBQWlCLE9BQU8sZ0RBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsS0FBSyxDQUFxQixPQUFP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LE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLGVBQWUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBN0ZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG9vQkFMbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1lBQzFELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7U0FDOUQsaURDaEVILDB2RUFvRUEsMmlWRGRJLGdCQUFnQixvSkFDaEIsMkJBQTJCLHlMQUMzQix1QkFBdUIsNlVBQ3ZCLFVBQVUsb09BQ1YsZ0JBQWdCLDhNQUNoQix3QkFBd0I7OzJGQU9mLG1CQUFtQjtrQkFuQi9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQix3QkFBd0I7cUJBQ3pCLGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQzFELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3FCQUM5RDs4QkE2RlcsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXNBY3RpdmVNYXRjaE9wdGlvbnMsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhTaWRlTWVudUJhc2UgfSBmcm9tICcuL3NpZGUtbWVudS1iYXNlJztcbmltcG9ydCB7IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBBWFNpZGVNZW51TG9vayA9ICdwaWxscycgfCAnd2l0aC1saW5lJyB8ICd3aXRoLWxpbmUtY29sb3InIHwgJ2RlZmF1bHQnO1xuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUxvY2F0aW9uID0gJ3N0YXJ0JyB8ICdlbmQnO1xuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUl0ZW0gPSB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICByb3V0ZXJMaW5rPzogc3RyaW5nIHwgYW55W10gfCBVcmxUcmVlO1xuICByb3V0ZXJMaW5rQWN0aXZlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIHJvdXRlckxpbmtBY3RpdmVPcHRpb25zPzogeyBleGFjdDogYm9vbGVhbiB9IHwgSXNBY3RpdmVNYXRjaE9wdGlvbnM7XG4gIGhyZWY/OiBzdHJpbmc7XG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcbiAgdGV4dDogc3RyaW5nO1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIGlzQ29sbGFwc2VkPzogYm9vbGVhbjtcbiAgaWNvbj86IHN0cmluZztcbiAgZGF0YT86IHVua25vd247XG4gIHN1ZmZpeFRleHQ/OiBzdHJpbmc7XG4gIHRvZ2dsZU9uQ2xpY2s/OiBib29sZWFuO1xuICBpdGVtcz86IEFYU2lkZU1lbnVJdGVtW107XG59O1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYSBzaWRlIG1lbnUgd2l0aCBjdXN0b21pemFibGUgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2lkZS1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGUtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50LFxuICAgIFJvdXRlckxpbmssXG4gICAgUm91dGVyTGlua0FjdGl2ZSxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNpZGVNZW51QmFzZSwgdXNlRXhpc3Rpbmc6IEFYU2lkZU1lbnVDb21wb25lbnQgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IGltcGxlbWVudHMgQVhTaWRlTWVudUJhc2Uge1xuICBpdGVtcyA9IG1vZGVsPEFYU2lkZU1lbnVJdGVtW10+KCk7XG4gIHJlYWRvbmx5IGxvb2sgPSBpbnB1dDxBWFNpZGVNZW51TG9vaz4oJ3BpbGxzJyk7XG4gIHJlYWRvbmx5IGxvY2F0aW9uID0gaW5wdXQ8QVhTaWRlTWVudUxvY2F0aW9uPignc3RhcnQnKTtcbiAgcmVhZG9ubHkgbW9kZSA9IGlucHV0PCdmdWxsJyB8ICdjb21wYWN0Jz4oJ2Z1bGwnKTtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgLyoqXG4gICAqIEFsbCBgYXgtc2lkZS1tZW51LWl0ZW1gIGluc3RhbmNlcyBkaXNjb3ZlcmVkIGJ5IHdhbGtpbmcgdGhlIGhvc3QgRE9NLlxuICAgKlxuICAgKiBXZSB1c2UgRE9NIGRpc2NvdmVyeSAoaW5zdGVhZCBvZiBgY29udGVudENoaWxkcmVuYCkgYmVjYXVzZSBBbmd1bGFyIGNvbnRlbnRcbiAgICogcXVlcmllcyBkbyAqKm5vdCoqIHRyYXZlcnNlIGVtYmVkZGVkIHZpZXdzIGNyZWF0ZWQgYnkgYG5nVGVtcGxhdGVPdXRsZXRgLFxuICAgKiBhbmQgdGhlIGBBWFNpZGVNZW51QmFzZWAgREkgdG9rZW4gaXMgbm90IHJlYWNoYWJsZSBmcm9tIGluc2lkZSB0aG9zZSB2aWV3c1xuICAgKiBlaXRoZXIgKHRoZXkgaW5oZXJpdCBpbmplY3Rpb24gZnJvbSB0aGUgdGVtcGxhdGUncyBkZWNsYXJhdGlvbiBzaXRlLCBub3RcbiAgICogdGhlIGluc2VydGlvbiBzaXRlKS4gV2Fsa2luZyB0aGUgRE9NIHdvcmtzIGZvciBkaXJlY3QgcHJvamVjdGlvbixcbiAgICogc3RydWN0dXJhbCBkaXJlY3RpdmVzLCBhbmQgcmVjdXJzaXZlIGBuZ1RlbXBsYXRlT3V0bGV0YC1iYXNlZCB0ZW1wbGF0ZXNcbiAgICogdW5pZm9ybWx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfaXRlbXMgPSBzaWduYWw8QVhTaWRlTWVudUl0ZW1Db21wb25lbnRbXT4oW10pO1xuICAvKiogUmVhZC1vbmx5IHNpZ25hbCBleHBvc2luZyBldmVyeSBkaXNjb3ZlcmVkIGBheC1zaWRlLW1lbnUtaXRlbWAgaW5zdGFuY2UuICovXG4gIHJlYWRvbmx5IGNoaWxkcmVuID0gdGhpcy5faXRlbXMuYXNSZWFkb25seSgpO1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgIHRoaXMucmVmcmVzaEl0ZW1zRnJvbURvbSgpO1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gdGhpcy5yZWZyZXNoSXRlbXNGcm9tRG9tKCkpO1xuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcbiAgfSk7XG5cbiAgI3N5bmNUb29sdGlwcyA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaXNDb21wYWN0ID0gdGhpcy5tb2RlKCkgPT09ICdjb21wYWN0JztcbiAgICB0aGlzLl9pdGVtcygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGlzRmlyc3RMZXZlbCA9ICFpdGVtLmdldEhvc3RFbGVtZW50KCkucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICAgICAgaXRlbS50b29sdGlwU3RhdHVzLnNldChpc0NvbXBhY3QgJiYgaXNGaXJzdExldmVsKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIFB1c2ggZnVsbC9jb21wYWN0IG1vZGUgdG8gZXZlcnkgbWVudSBpdGVtIHdoZW5ldmVyIG1vZGUgY2hhbmdlcy4gKi9cbiAgI3N5bmNJdGVtTW9kZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIHRoaXMuX2l0ZW1zKCkuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zeW5jTWVudU1vZGUobW9kZSkpO1xuICB9KTtcblxuICAvKipcbiAgICogV2Fsa3MgdGhlIGhvc3QgRE9NIHRvIGRpc2NvdmVyIGV2ZXJ5IG5lc3RlZCBgYXgtc2lkZS1tZW51LWl0ZW1gLCBsb29rcyB1cFxuICAgKiB0aGUgY29tcG9uZW50IGluc3RhbmNlIHRocm91Z2ggdGhlIGBfX2F4Q29udGV4dF9fYCBwcm9wZXJ0eSB0aGF0XG4gICAqIGBNWEJhc2VDb21wb25lbnQubmdPbkluaXRgIGF0dGFjaGVzIHRvIGVhY2ggaG9zdCBlbGVtZW50LCBhbmQgdXBkYXRlcyB0aGVcbiAgICogaW50ZXJuYWwgaXRlbXMgc2lnbmFsIGFuZCBgLmZpcnN0LWxldmVsYCBDU1MgY2xhc3MgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIFRyaWdnZXJlZCBib3RoIGluaXRpYWxseSBhbmQgZnJvbSBhIGBNdXRhdGlvbk9ic2VydmVyYCBzbyByZWN1cnNpdmVcbiAgICogdGVtcGxhdGVzIHRoYXQgYWRkL3JlbW92ZSBpdGVtcyBhdCBydW50aW1lIHN0YXkgaW4gc3luYy5cbiAgICovXG4gIHByaXZhdGUgcmVmcmVzaEl0ZW1zRnJvbURvbSgpIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZWxlbWVudHMgPSBob3N0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LXNpZGUtbWVudS1pdGVtJyk7XG4gICAgY29uc3QgaXRlbXM6IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50W10gPSBbXTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSAoZWwgYXMgdW5rbm93biBhcyB7IF9fYXhDb250ZXh0X18/OiB1bmtub3duIH0pLl9fYXhDb250ZXh0X187XG4gICAgICBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9pdGVtcygpO1xuICAgIGNvbnN0IGNoYW5nZWQgPSBjdXJyZW50Lmxlbmd0aCAhPT0gaXRlbXMubGVuZ3RoIHx8IGN1cnJlbnQuc29tZSgoaXQsIGkpID0+IGl0ICE9PSBpdGVtc1tpXSk7XG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX2l0ZW1zLnNldChpdGVtcyk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRGaXJzdExldmVsQ2xhc3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlyc3RMZXZlbENsYXNzKCkge1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gdGhpcy5faXRlbXMoKTtcbiAgICBhbGxDaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PlxuICAgICAgaXRlbS5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1zaWRlLWl0ZW0nKT8uY2xhc3NMaXN0LnJlbW92ZSgnZmlyc3QtbGV2ZWwnKSxcbiAgICApO1xuXG4gICAgYWxsQ2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBpdGVtLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGl0ZW1FbGVtZW50KSAmJiAhaXRlbUVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLmF4LXNpZGUtaXRlbScpPy5jbGFzc0xpc3QuYWRkKCdmaXJzdC1sZXZlbCcpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtgYXgtbG9vay0ke3RoaXMubG9vaygpfWAsIGBheC1sb2NhdGlvbi0ke3RoaXMubG9jYXRpb24oKX1gLCBgYXgtbW9kZS0ke3RoaXMubW9kZSgpfWBdO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxuZy1jb250YWluZXIsW25nVGVtcGxhdGVPdXRsZXRdXCI+PC9uZy1jb250ZW50PlxuXG5AZm9yIChub2RlIG9mIGl0ZW1zKCk7IHRyYWNrIG5vZGUpIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG5vZGUgfVwiPiA8L25nLWNvbnRhaW5lcj5cbn1cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS50aXRsZSB9fTwvYXgtdGl0bGU+XG4gIH1cbiAgQGlmIChpdGVtLnJvdXRlckxpbmspIHtcbiAgICA8YXgtc2lkZS1tZW51LWl0ZW1cbiAgICAgIFt0ZXh0XT1cIml0ZW0udGV4dFwiXG4gICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXRlbS5pc0xvYWRpbmdcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgIFtpc0NvbGxhcHNlZF09XCJpdGVtLmlzQ29sbGFwc2VkXCJcbiAgICAgIFt0b2dnbGVPbkNsaWNrXT1cIml0ZW0udG9nZ2xlT25DbGlja1wiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJpdGVtLnJvdXRlckxpbmtBY3RpdmVcIlxuICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIml0ZW0ucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH0gQGVsc2UgaWYgKGl0ZW0uaHJlZikge1xuICAgIDxheC1zaWRlLW1lbnUtaXRlbVxuICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgIFtocmVmXT1cIml0ZW0uaHJlZlwiXG4gICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpdGVtLmlzTG9hZGluZ1wiXG4gICAgICBbaXNDb2xsYXBzZWRdPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICBbdG9nZ2xlT25DbGlja109XCJpdGVtLnRvZ2dsZU9uQ2xpY2tcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH0gQGVsc2Uge1xuICAgIDxheC1zaWRlLW1lbnUtaXRlbVxuICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpdGVtLmlzTG9hZGluZ1wiXG4gICAgICBbaXNDb2xsYXBzZWRdPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICBbdG9nZ2xlT25DbGlja109XCJpdGVtLnRvZ2dsZU9uQ2xpY2tcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH1cblxuICA8bmctdGVtcGxhdGUgI3NpZGVNZW51SXRlbUNvbnRlbnQ+XG4gICAgPGF4LXByZWZpeD5cbiAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPiA8L2F4LWljb24+XG4gICAgICB9XG4gICAgPC9heC1wcmVmaXg+XG4gICAgQGlmIChpdGVtLmRhdGEpIHtcbiAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uZGF0YSB9fTwvYXgtdGV4dD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnN1ZmZpeFRleHQpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uc3VmZml4VGV4dCB9fTwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIH1cbiAgICBAZm9yIChjaGlsZCBvZiBpdGVtLml0ZW1zOyB0cmFjayBjaGlsZCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXOutlineContainerDirective } from '@acorex/cdk/outline';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { afterNextRender, Directive, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isEqual } from 'lodash-es';\nimport { distinctUntilChanged, map } from 'rxjs';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport * as i0 from \"@angular/core\";\nexport class AXOutlineSideMenuDirective {\n constructor() {\n this.router = inject(Router);\n this.unsubscriber = inject(AXUnsubscriber);\n this.sideMenu = inject(AXSideMenuComponent);\n this.container = inject(AXOutlineContainerDirective);\n this.#anr = afterNextRender(() => {\n this.container.outlineItems$\n .pipe(this.unsubscriber.takeUntilDestroy, map((items) => {\n if (!items || items.length === 0)\n return [];\n return this.buildNestedMenuItems(items);\n }), distinctUntilChanged(isEqual))\n .subscribe((menuItems) => {\n this.updateSideMenu(menuItems);\n });\n });\n }\n #anr;\n updateSideMenu(newMenuItems) {\n const currentMenuItems = this.sideMenu.items();\n const newSignature = this.getStructuralSignature(newMenuItems);\n const currentSignature = this.getStructuralSignature(currentMenuItems || []);\n if (newSignature !== currentSignature) {\n this.sideMenu.items.set(newMenuItems);\n return;\n }\n const currentComponents = this.sideMenu.children();\n const newActiveItem = this.flattenMenuItems(newMenuItems).find((item) => item.active);\n const currentActiveComponent = currentComponents.find((c) => c.active());\n if (newActiveItem?.href === currentActiveComponent?.href()) {\n return;\n }\n currentActiveComponent?.active.set(false);\n if (newActiveItem) {\n const componentToActivate = currentComponents.find((c) => c.href() === newActiveItem.href);\n componentToActivate?.active.set(true);\n }\n }\n /**\n * Creates a string signature that represents the tree structure of the menu.\n * Example: \"href1(href1.1,href1.2),href2,href3\"\n * This will be different for a flat list vs. a nested list.\n */\n getStructuralSignature(items) {\n return items\n .map((item) => {\n let signature = item.href || '';\n if (item.items && item.items.length > 0) {\n signature += `(${this.getStructuralSignature(item.items)})`;\n }\n return signature;\n })\n .join(',');\n }\n flattenMenuItems(items) {\n return items.reduce((acc, item) => {\n acc.push(item);\n if (item.items) {\n acc.push(...this.flattenMenuItems(item.items));\n }\n return acc;\n }, []);\n }\n textReplace(item) {\n const text = item.el.textContent;\n if (item.hasAnchor) {\n const newStr = text?.slice(0, -1);\n return newStr?.trim() || '';\n }\n return text?.trim() || '';\n }\n buildNestedMenuItems(items) {\n const menuItemsMap = new Map();\n const rootItems = [];\n items.forEach((item) => {\n const menuItem = {\n items: [],\n target: '_self',\n active: item.active,\n toggleOnClick: false,\n text: this.textReplace(item),\n href: `${this.router.url.split('#')[0]}#${item.id}`,\n };\n menuItemsMap.set(item.id, menuItem);\n });\n items.forEach((item) => {\n const menuItem = menuItemsMap.get(item.id);\n if (!menuItem)\n return;\n if (item.parentId) {\n const parentMenuItem = menuItemsMap.get(item.parentId);\n if (parentMenuItem) {\n parentMenuItem.items?.push(menuItem);\n }\n else {\n console.warn(`Outline item with id \"${item.id}\" has a parentId \"${item.parentId}\" that does not exist.`);\n rootItems.push(menuItem);\n }\n }\n else {\n rootItems.push(menuItem);\n }\n });\n return rootItems;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXOutlineSideMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXOutlineSideMenuDirective, isStandalone: true, selector: \"[axOutlineSideMenu]\", providers: [AXUnsubscriber], exportAs: [\"axOutlineSideMenu\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXOutlineSideMenuDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axOutlineSideMenu]',\n exportAs: 'axOutlineSideMenu',\n providers: [AXUnsubscriber],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPNUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV4RCxTQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7aUJBQ3pCLElBQUksQ0FDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQzlCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7S0E0Rko7SUF6R0MsSUFBSSxDQWFEO0lBRUssY0FBYyxDQUFDLFlBQThCO1FBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0UsSUFBSSxZQUFZLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsRUFBRSxJQUFJLEtBQUssc0JBQXNCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMzRCxPQUFPO1FBQ1QsQ0FBQztRQUNELHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRixtQkFBbUIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHNCQUFzQixDQUFDLEtBQXVCO1FBQ3BELE9BQU8sS0FBSzthQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLElBQUksSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDOUQsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUF1QjtRQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQXNCLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQXFCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQXdCO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFxQixFQUFFLENBQUM7UUFDdkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFtQjtnQkFDL0IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixhQUFhLEVBQUUsS0FBSztnQkFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTthQUNwRCxDQUFDO1lBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNuQixjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxFQUFFLHFCQUFxQixJQUFJLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO29CQUN6RyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0E5R1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsa0VBRjFCLENBQUMsY0FBYyxDQUFDOzsyRkFFaEIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE91dGxpbmVDb250YWluZXJEaXJlY3RpdmUsIG91dGxpbmVJdGVtVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL291dGxpbmUnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCwgQVhTaWRlTWVudUl0ZW0gfSBmcm9tICcuL3NpZGUtbWVudS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhPdXRsaW5lU2lkZU1lbnVdJyxcbiAgZXhwb3J0QXM6ICdheE91dGxpbmVTaWRlTWVudScsXG4gIHByb3ZpZGVyczogW0FYVW5zdWJzY3JpYmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gIHByaXZhdGUgc2lkZU1lbnUgPSBpbmplY3QoQVhTaWRlTWVudUNvbXBvbmVudCk7XG4gIHByaXZhdGUgY29udGFpbmVyID0gaW5qZWN0KEFYT3V0bGluZUNvbnRhaW5lckRpcmVjdGl2ZSk7XG5cbiAgI2FuciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5jb250YWluZXIub3V0bGluZUl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3ksXG4gICAgICAgIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkTmVzdGVkTWVudUl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzRXF1YWwpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobWVudUl0ZW1zKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU2lkZU1lbnUobWVudUl0ZW1zKTtcbiAgICAgIH0pO1xuICB9KTtcblxuICBwcml2YXRlIHVwZGF0ZVNpZGVNZW51KG5ld01lbnVJdGVtczogQVhTaWRlTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRNZW51SXRlbXMgPSB0aGlzLnNpZGVNZW51Lml0ZW1zKCk7XG4gICAgY29uc3QgbmV3U2lnbmF0dXJlID0gdGhpcy5nZXRTdHJ1Y3R1cmFsU2lnbmF0dXJlKG5ld01lbnVJdGVtcyk7XG4gICAgY29uc3QgY3VycmVudFNpZ25hdHVyZSA9IHRoaXMuZ2V0U3RydWN0dXJhbFNpZ25hdHVyZShjdXJyZW50TWVudUl0ZW1zIHx8IFtdKTtcblxuICAgIGlmIChuZXdTaWduYXR1cmUgIT09IGN1cnJlbnRTaWduYXR1cmUpIHtcbiAgICAgIHRoaXMuc2lkZU1lbnUuaXRlbXMuc2V0KG5ld01lbnVJdGVtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENvbXBvbmVudHMgPSB0aGlzLnNpZGVNZW51LmNoaWxkcmVuKCk7XG4gICAgY29uc3QgbmV3QWN0aXZlSXRlbSA9IHRoaXMuZmxhdHRlbk1lbnVJdGVtcyhuZXdNZW51SXRlbXMpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlQ29tcG9uZW50ID0gY3VycmVudENvbXBvbmVudHMuZmluZCgoYykgPT4gYy5hY3RpdmUoKSk7XG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0/LmhyZWYgPT09IGN1cnJlbnRBY3RpdmVDb21wb25lbnQ/LmhyZWYoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjdXJyZW50QWN0aXZlQ29tcG9uZW50Py5hY3RpdmUuc2V0KGZhbHNlKTtcbiAgICBpZiAobmV3QWN0aXZlSXRlbSkge1xuICAgICAgY29uc3QgY29tcG9uZW50VG9BY3RpdmF0ZSA9IGN1cnJlbnRDb21wb25lbnRzLmZpbmQoKGMpID0+IGMuaHJlZigpID09PSBuZXdBY3RpdmVJdGVtLmhyZWYpO1xuICAgICAgY29tcG9uZW50VG9BY3RpdmF0ZT8uYWN0aXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBzaWduYXR1cmUgdGhhdCByZXByZXNlbnRzIHRoZSB0cmVlIHN0cnVjdHVyZSBvZiB0aGUgbWVudS5cbiAgICogRXhhbXBsZTogXCJocmVmMShocmVmMS4xLGhyZWYxLjIpLGhyZWYyLGhyZWYzXCJcbiAgICogVGhpcyB3aWxsIGJlIGRpZmZlcmVudCBmb3IgYSBmbGF0IGxpc3QgdnMuIGEgbmVzdGVkIGxpc3QuXG4gICAqL1xuICBwcml2YXRlIGdldFN0cnVjdHVyYWxTaWduYXR1cmUoaXRlbXM6IEFYU2lkZU1lbnVJdGVtW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtc1xuICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBsZXQgc2lnbmF0dXJlID0gaXRlbS5ocmVmIHx8ICcnO1xuICAgICAgICBpZiAoaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzaWduYXR1cmUgKz0gYCgke3RoaXMuZ2V0U3RydWN0dXJhbFNpZ25hdHVyZShpdGVtLml0ZW1zKX0pYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5NZW51SXRlbXMoaXRlbXM6IEFYU2lkZU1lbnVJdGVtW10pOiBBWFNpZGVNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGl0ZW0uaXRlbXMpIHtcbiAgICAgICAgYWNjLnB1c2goLi4udGhpcy5mbGF0dGVuTWVudUl0ZW1zKGl0ZW0uaXRlbXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQVhTaWRlTWVudUl0ZW1bXSk7XG4gIH1cblxuICBwcml2YXRlIHRleHRSZXBsYWNlKGl0ZW06IG91dGxpbmVJdGVtVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IGl0ZW0uZWwudGV4dENvbnRlbnQ7XG4gICAgaWYgKGl0ZW0uaGFzQW5jaG9yKSB7XG4gICAgICBjb25zdCBuZXdTdHIgPSB0ZXh0Py5zbGljZSgwLCAtMSk7XG4gICAgICByZXR1cm4gbmV3U3RyPy50cmltKCkgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0Py50cmltKCkgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTmVzdGVkTWVudUl0ZW1zKGl0ZW1zOiBvdXRsaW5lSXRlbVR5cGVbXSk6IEFYU2lkZU1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnVJdGVtc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBWFNpZGVNZW51SXRlbT4oKTtcbiAgICBjb25zdCByb290SXRlbXM6IEFYU2lkZU1lbnVJdGVtW10gPSBbXTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW51SXRlbTogQVhTaWRlTWVudUl0ZW0gPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgdGFyZ2V0OiAnX3NlbGYnLFxuICAgICAgICBhY3RpdmU6IGl0ZW0uYWN0aXZlLFxuICAgICAgICB0b2dnbGVPbkNsaWNrOiBmYWxzZSxcbiAgICAgICAgdGV4dDogdGhpcy50ZXh0UmVwbGFjZShpdGVtKSxcbiAgICAgICAgaHJlZjogYCR7dGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJylbMF19IyR7aXRlbS5pZH1gLFxuICAgICAgfTtcbiAgICAgIG1lbnVJdGVtc01hcC5zZXQoaXRlbS5pZCwgbWVudUl0ZW0pO1xuICAgIH0pO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG1lbnVJdGVtID0gbWVudUl0ZW1zTWFwLmdldChpdGVtLmlkKTtcbiAgICAgIGlmICghbWVudUl0ZW0pIHJldHVybjtcbiAgICAgIGlmIChpdGVtLnBhcmVudElkKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudE1lbnVJdGVtID0gbWVudUl0ZW1zTWFwLmdldChpdGVtLnBhcmVudElkKTtcbiAgICAgICAgaWYgKHBhcmVudE1lbnVJdGVtKSB7XG4gICAgICAgICAgcGFyZW50TWVudUl0ZW0uaXRlbXM/LnB1c2gobWVudUl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgT3V0bGluZSBpdGVtIHdpdGggaWQgXCIke2l0ZW0uaWR9XCIgaGFzIGEgcGFyZW50SWQgXCIke2l0ZW0ucGFyZW50SWR9XCIgdGhhdCBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgICAgICByb290SXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RJdGVtcy5wdXNoKG1lbnVJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcm9vdEl0ZW1zO1xuICB9XG59XG4iXX0=","import { AXCommonModule, AXRippleDirective } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport { AXOutlineSideMenuDirective } from './side-menu.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule,\n];\nexport class AXSideMenuModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective], exports: [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,\n AXCommonModule,\n AXLoadingModule,\n AXTranslationModule,\n AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFbkUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBQzdGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsWUFBWTtJQUNaLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtDQUNsQixDQUFDO0FBT0YsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGlCQUFpQixFQVRBLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixhQUF4RSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEI7K0dBaUI5RSxnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLGNBQWM7WUFFZCxlQUFlO1lBQ2YsbUJBQW1CO1lBR25CLGlCQUFpQixFQVRBLG1CQUFtQixFQUFFLHVCQUF1Qjs7MkZBaUJsRCxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE91dGxpbmVTaWRlTWVudURpcmVjdGl2ZSB9IGZyb20gJy4vc2lkZS1tZW51LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFNpZGVNZW51Q29tcG9uZW50LCBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCwgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmVdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBBWENvbW1vbk1vZHVsZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYTG9hZGluZ01vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgUm91dGVyTGluayxcbiAgUm91dGVyTGlua0FjdGl2ZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtc2lkZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2Fjb3JleC1jb21wb25lbnRzLXNpZGUtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-side-menu.mjs","sources":["../../../../packages/components/side-menu/src/lib/side-menu-base.ts","../../../../packages/components/side-menu/src/lib/side-menu-item/side-menu-item.component.ts","../../../../packages/components/side-menu/src/lib/side-menu-item/side-menu-item.component.html","../../../../packages/components/side-menu/src/lib/side-menu.component.ts","../../../../packages/components/side-menu/src/lib/side-menu.component.html","../../../../packages/components/side-menu/src/lib/side-menu.directive.ts","../../../../packages/components/side-menu/src/lib/side-menu.module.ts","../../../../packages/components/side-menu/src/acorex-components-side-menu.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\n/**\n * DI token for the parent `ax-side-menu`. Child `ax-side-menu-item`s inject this\n * to read shared state (e.g. the current display mode) without creating a\n * circular import on the concrete `AXSideMenuComponent` class.\n */\nexport abstract class AXSideMenuBase {\n abstract readonly mode: Signal<'full' | 'compact'>;\n}\n","import { AXClickEvent, AXComponent, AXRippleDirective, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXContextMenuComponent, AXContextMenuItemsClickEvent, AXMenuItem } from '@acorex/components/menu';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n PLATFORM_ID,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\n\nexport class AXSideMenuItemClickEvent extends AXClickEvent {\n handled = false;\n}\n\n/** Routes context-menu clicks back to the matching `ax-side-menu-item`. */\nexport interface AXSideMenuContextMenuItemData {\n sideMenuItem: AXSideMenuItemComponent;\n}\n\n@Component({\n selector: 'ax-side-menu-item',\n inputs: ['disabled'],\n templateUrl: './side-menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXRippleDirective,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXContextMenuComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }],\n})\nexport class AXSideMenuItemComponent extends MXInteractiveComponent {\n text = model('');\n active = model(false);\n isLoading = model(false);\n isCollapsed = model(true);\n onClick = output<AXSideMenuItemClickEvent>();\n tooltipText = input('');\n\n readonly toggleOnClick = input(true);\n readonly href = input<string | null>();\n readonly routerLink = input<string | any[] | UrlTree | null>();\n readonly routerLinkActive = input<string | string[]>('ax-state-active');\n readonly routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n readonly target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n\n protected menuItemTrigger = viewChild.required<ElementRef<HTMLElement>>('menuItemTrigger');\n protected hasChild = signal(false);\n protected isCompactMode = computed(() => this.menuMode() === 'compact');\n\n /** Top-level rail entry in compact mode (opens the flyout context menu). */\n protected isFirstLevel = computed(() => {\n if (!this.isCompactMode()) {\n return false;\n }\n return !this.hostElement.parentElement?.closest('.ax-side-children-content');\n });\n\n /** Tooltip text for first-level items in compact mode only. */\n protected tooltipContent = computed(() => {\n if (!this.isFirstLevel()) {\n return null;\n }\n return this.tooltipText().trim() || this.text().trim() || this.contentLabel().trim() || null;\n });\n\n private readonly elem = inject(ElementRef<HTMLElement>);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private readonly menuMode = signal<'full' | 'compact'>('full');\n private readonly contentLabel = signal('');\n\n private childObserver: MutationObserver | null = null;\n private childRefreshScheduled = false;\n private readonly childItems = contentChildren(AXSideMenuItemComponent, { descendants: true });\n private readonly childrenSlot = viewChild<ElementRef<HTMLElement>>('childrenSlot');\n private readonly childrenContextMenu = viewChild<AXContextMenuComponent>('childrenContextMenu');\n\n private get hostElement(): HTMLElement {\n return this.elem.nativeElement;\n }\n\n #childCheckEffect = effect(() => {\n if (this.childItems().length) {\n this.updateHasChild();\n }\n });\n\n #initChildren = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.updateContentLabel();\n this.childObserver = new MutationObserver((records) => {\n if (!this.hasRelevantChildMutation(records)) {\n return;\n }\n this.scheduleChildRefresh();\n });\n this.childObserver.observe(this.hostElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n\n #contextMenuSync = effect(() => {\n if (!this.isCompactMode() || !isPlatformBrowser(this.platformId) || !this.isFirstLevel() || !this.hasChild()) {\n return;\n }\n\n const menu = this.childrenContextMenu();\n if (!menu) {\n return;\n }\n\n if (this.isCollapsed()) {\n menu.close();\n } else {\n this.closeSiblingCompactMenus();\n this.openCompactContextMenu(menu);\n }\n });\n\n syncMenuMode(mode: 'full' | 'compact') {\n if (this.menuMode() === mode) {\n return;\n }\n this.menuMode.set(mode);\n this.childrenContextMenu()?.close();\n if (mode === 'compact') {\n this.isCollapsed.set(true);\n }\n }\n\n /** Builds the cascading `AXMenuItem` tree used by the compact-mode context menu. */\n buildMenuItemsFromChildren(): AXMenuItem[] {\n this.reparentOrphanedChildren();\n\n const slot = this.childrenSlot()?.nativeElement;\n const itemsFromSlot = slot ? this.mapSlotChildrenToMenuItems(slot) : [];\n\n if (itemsFromSlot.length > 0) {\n return itemsFromSlot;\n }\n\n return this.getDirectChildElements().map((el) => this.toMenuItem(el));\n }\n\n activateFromContextMenu(nativeEvent: MouseEvent) {\n if (this.disabled || this.isLoading()) {\n return;\n }\n const trigger = this.menuItemTrigger().nativeElement;\n if (trigger instanceof HTMLAnchorElement) {\n trigger.click();\n return;\n }\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent,\n handled: false,\n });\n }\n\n toggle() {\n if (this.isCompactMode() && (!this.hasChild() || !this.isFirstLevel())) {\n return;\n }\n this.isCollapsed.update((collapsed) => !collapsed);\n }\n\n open() {\n this.isCollapsed.set(false);\n }\n\n close() {\n this.isCollapsed.set(true);\n this.childrenContextMenu()?.close();\n }\n\n protected handleContextMenuItemClick(event: AXContextMenuItemsClickEvent) {\n const instance = (event.item.data as AXSideMenuContextMenuItemData | undefined)?.sideMenuItem;\n if (!instance || instance.hasChild()) return;\n instance.activateFromContextMenu(event.nativeEvent);\n }\n\n protected handleContextMenuClosed() {\n if (!this.isCollapsed()) this.isCollapsed.set(true);\n }\n\n protected handleClickEvent(e: MouseEvent) {\n if (this.disabled || this.isLoading()) return;\n\n const event: AXSideMenuItemClickEvent = {\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n handled: false,\n };\n this.onClick.emit(event);\n if (!event.handled && this.toggleOnClick() && (this.hasChild() || !this.isCompactMode())) this.toggle();\n\n e.stopPropagation();\n }\n\n private openCompactContextMenu(menu: AXContextMenuComponent) {\n const items = this.buildMenuItemsFromChildren();\n if (!items.length) return;\n\n menu.showAt(this.getContextMenuAnchorPoint(), this.menuItemTrigger().nativeElement, {\n sender: menu,\n canceled: false,\n targetElement: this.menuItemTrigger().nativeElement,\n items,\n });\n }\n\n private getContextMenuAnchorPoint(): AXPoint {\n const rect = this.menuItemTrigger().nativeElement.getBoundingClientRect();\n const offset = 8;\n if (AXHtmlUtil.isRtl(this.hostElement)) {\n return { x: rect.left - offset, y: rect.top };\n }\n return { x: rect.right + offset, y: rect.top };\n }\n\n private mapSlotChildrenToMenuItems(slot: HTMLElement): AXMenuItem[] {\n const items: AXMenuItem[] = [];\n let pendingGroupTitle: string | undefined;\n\n for (const child of Array.from(slot.children)) {\n if (child.tagName === 'AX-TITLE') {\n pendingGroupTitle = child.textContent?.trim() || undefined;\n continue;\n }\n if (child.tagName === 'AX-DIVIDER') {\n if (items.length > 0) {\n items[items.length - 1] = { ...items[items.length - 1], break: true };\n }\n continue;\n }\n if (child.tagName !== 'AX-SIDE-MENU-ITEM') {\n continue;\n }\n\n const menuItem = this.toMenuItem(child as HTMLElement);\n if (pendingGroupTitle) {\n menuItem.group = { title: pendingGroupTitle };\n pendingGroupTitle = undefined;\n }\n items.push(menuItem);\n }\n\n return items;\n }\n\n private toMenuItem(host: HTMLElement): AXMenuItem {\n const instance = this.getInstanceFromElement(host);\n const item: AXMenuItem = {\n text: this.getItemLabel(host, instance),\n disabled: instance?.disabled ?? false,\n icon: this.getItemIcon(host),\n suffix: this.getItemSuffix(host),\n };\n\n if (instance) {\n item.data = { sideMenuItem: instance } satisfies AXSideMenuContextMenuItemData;\n }\n\n if (this.hasNestedChildren(host, instance)) {\n item.items =\n instance?.buildMenuItemsFromChildren() ?? this.getDirectChildElements(host).map((el) => this.toMenuItem(el));\n }\n\n return item;\n }\n\n private hasNestedChildren(host: HTMLElement, instance?: AXSideMenuItemComponent): boolean {\n return (instance?.hasChild() ?? false) || this.getDirectChildElements(host).length > 0;\n }\n\n /** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */\n private getDirectChildElements(menuHost: HTMLElement = this.hostElement): HTMLElement[] {\n return Array.from(menuHost.querySelectorAll('ax-side-menu-item')).filter((el) => {\n if (el === menuHost) {\n return false;\n }\n return el.parentElement?.closest('ax-side-menu-item') === menuHost;\n }) as HTMLElement[];\n }\n\n private reparentOrphanedChildren() {\n const container = this.childrenSlot()?.nativeElement;\n if (!container) {\n return;\n }\n\n for (const el of this.getDirectChildElements()) {\n if (!container.contains(el)) {\n try {\n container.appendChild(el);\n } catch {\n // HierarchyRequestError when the node is already being moved.\n }\n }\n }\n }\n\n private scheduleChildRefresh() {\n if (this.childRefreshScheduled) {\n return;\n }\n this.childRefreshScheduled = true;\n requestAnimationFrame(() => {\n this.childRefreshScheduled = false;\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.updateContentLabel();\n });\n }\n\n private hasRelevantChildMutation(records: MutationRecord[]): boolean {\n for (const record of records) {\n if (\n this.nodeListContainsMenuStructuralNode(record.addedNodes) ||\n this.nodeListContainsMenuStructuralNode(record.removedNodes)\n ) {\n return true;\n }\n }\n return false;\n }\n\n private nodeListContainsMenuStructuralNode(nodes: NodeList): boolean {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n const tagName = node.tagName;\n if (tagName === 'AX-SIDE-MENU-ITEM' || tagName === 'AX-TITLE' || tagName === 'AX-DIVIDER') {\n return true;\n }\n if (node.querySelector?.('ax-side-menu-item,ax-title,ax-divider')) {\n return true;\n }\n }\n return false;\n }\n\n private getItemLabel(host: HTMLElement, instance?: AXSideMenuItemComponent): string {\n if (instance?.text()) {\n return instance.text();\n }\n const span = host.querySelector('.ax-start-side span, .ax-inside-text span');\n if (span?.textContent?.trim()) {\n return span.textContent.trim();\n }\n return host.querySelector('ax-text')?.textContent?.trim() ?? '';\n }\n\n private getItemIcon(host: HTMLElement): string | undefined {\n const axIcon = host.querySelector('ax-prefix ax-icon');\n if (!axIcon) {\n return undefined;\n }\n return axIcon.getAttribute('icon') ?? axIcon.querySelector('i')?.className ?? undefined;\n }\n\n private getItemSuffix(host: HTMLElement): { text: string } | undefined {\n const text = host.querySelector('ax-suffix ax-text')?.textContent?.trim();\n return text ? { text } : undefined;\n }\n\n private getInstanceFromElement(el: Element): AXSideMenuItemComponent | undefined {\n const ctx = (el as unknown as { __axContext__?: unknown }).__axContext__;\n return ctx instanceof AXSideMenuItemComponent ? ctx : undefined;\n }\n\n private closeSiblingCompactMenus() {\n const menuHost = this.hostElement.closest('ax-side-menu');\n if (!menuHost) {\n return;\n }\n\n menuHost.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {\n const sibling = this.getInstanceFromElement(el);\n if (!sibling || sibling === this) {\n return;\n }\n sibling.isCollapsed.set(true);\n sibling.childrenContextMenu()?.close();\n });\n }\n\n private updateHasChild() {\n this.hasChild.set(this.childItems().length > 0 || this.getDirectChildElements().length > 0);\n }\n\n private updateContentLabel() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const span = this.hostElement.querySelector('.ax-start-side span, .ax-inside-text span');\n const label = span?.textContent?.trim() || this.hostElement.querySelector('ax-text')?.textContent?.trim() || '';\n if (label !== this.contentLabel()) {\n this.contentLabel.set(label);\n }\n }\n}\n","<div [axTooltip]=\"tooltipContent()\" axTooltipPlacement=\"end\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'leave'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n PLATFORM_ID,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nimport { AXSideMenuBase } from './side-menu-base';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\n\nexport type AXSideMenuLook = 'pills' | 'with-line' | 'with-line-color' | 'default';\nexport type AXSideMenuLocation = 'start' | 'end';\nexport type AXSideMenuItem = {\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 text: string;\n active?: boolean;\n disabled?: boolean;\n isLoading?: boolean;\n isCollapsed?: boolean;\n icon?: string;\n data?: unknown;\n suffixText?: string;\n toggleOnClick?: boolean;\n items?: AXSideMenuItem[];\n};\n\n/**\n * @category\n * A component for displaying a side menu with customizable content.\n */\n@Component({\n selector: 'ax-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXSideMenuItemComponent,\n RouterLink,\n RouterLinkActive,\n AXDecoratorIconComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ],\n})\nexport class AXSideMenuComponent extends NXComponent implements AXSideMenuBase {\n items = model<AXSideMenuItem[]>();\n readonly look = input<AXSideMenuLook>('pills');\n readonly location = input<AXSideMenuLocation>('start');\n readonly mode = input<'full' | 'compact'>('full');\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n /**\n * All `ax-side-menu-item` instances discovered by walking the host DOM.\n *\n * We use DOM discovery (instead of `contentChildren`) because Angular content\n * queries do **not** traverse embedded views created by `ngTemplateOutlet`,\n * and the `AXSideMenuBase` DI token is not reachable from inside those views\n * either (they inherit injection from the template's declaration site, not\n * the insertion site). Walking the DOM works for direct projection,\n * structural directives, and recursive `ngTemplateOutlet`-based templates\n * uniformly.\n */\n private _items = signal<AXSideMenuItemComponent[]>([]);\n /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */\n readonly children = this._items.asReadonly();\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n hostElement = this.elementRef.nativeElement;\n private domRefreshScheduled = false;\n private domRefreshObserver: MutationObserver | null = null;\n\n #init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) return;\n this.refreshItemsFromDom();\n this.domRefreshObserver = new MutationObserver((records) => {\n if (!this.hasRelevantMenuItemMutation(records)) {\n return;\n }\n this.scheduleDomRefresh();\n });\n this.domRefreshObserver.observe(this.elementRef.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.domRefreshObserver?.disconnect());\n });\n\n /** Push full/compact mode to every menu item whenever mode changes. */\n #syncItemMode = effect(() => {\n const mode = this.mode();\n this._items().forEach((item) => item.syncMenuMode(mode));\n });\n\n /**\n * Walks the host DOM to discover every nested `ax-side-menu-item`, looks up\n * the component instance through the `__axContext__` property that\n * `MXBaseComponent.ngOnInit` attaches to each host element, and updates the\n * internal items signal and `.first-level` CSS class accordingly.\n *\n * Triggered both initially and from a `MutationObserver` so recursive\n * templates that add/remove items at runtime stay in sync.\n */\n private refreshItemsFromDom() {\n const host = this.elementRef.nativeElement;\n const elements = host.querySelectorAll('ax-side-menu-item');\n const items: AXSideMenuItemComponent[] = [];\n elements.forEach((el) => {\n const instance = (el as unknown as { __axContext__?: unknown }).__axContext__;\n if (instance instanceof AXSideMenuItemComponent) {\n items.push(instance);\n }\n });\n\n const current = this._items();\n const changed = current.length !== items.length || current.some((it, i) => it !== items[i]);\n if (changed) {\n this._items.set(items);\n }\n\n this.addFirstLevelClass();\n }\n\n private scheduleDomRefresh() {\n if (this.domRefreshScheduled) {\n return;\n }\n this.domRefreshScheduled = true;\n\n // Batch multiple rapid mutations (e.g., large template updates or overlays closing)\n // into a single refresh to prevent long main-thread stalls.\n requestAnimationFrame(() => {\n this.domRefreshScheduled = false;\n this.refreshItemsFromDom();\n });\n }\n\n private hasRelevantMenuItemMutation(records: MutationRecord[]): boolean {\n for (const record of records) {\n if (this.nodeListContainsMenuItem(record.addedNodes) || this.nodeListContainsMenuItem(record.removedNodes)) {\n return true;\n }\n }\n return false;\n }\n\n private nodeListContainsMenuItem(nodes: NodeList): boolean {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n if (node.tagName === 'AX-SIDE-MENU-ITEM') {\n return true;\n }\n if (node.querySelector?.('ax-side-menu-item')) {\n return true;\n }\n }\n return false;\n }\n\n private addFirstLevelClass() {\n const allChildren = this._items();\n allChildren.forEach((item) =>\n item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'),\n );\n\n allChildren\n .filter((item) => {\n const itemElement = item.getHostElement();\n return (\n this.hostElement.contains(itemElement) && !itemElement.parentElement?.closest('.ax-side-children-content')\n );\n })\n .forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.add('first-level'));\n }\n\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];\n }\n}\n","<ng-content select=\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n<ng-template #Recursion let-item>\n @if (item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n @if (item.routerLink) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [target]=\"item.target\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [routerLink]=\"item.routerLink\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n [routerLinkActive]=\"item.routerLinkActive\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else if (item.href) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else {\n <ax-side-menu-item\n [text]=\"item.text\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n }\n\n <ng-template #sideMenuItemContent>\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.data) {\n <ax-text>{{ item.data }}</ax-text>\n }\n @if (item.suffixText) {\n <ax-suffix>\n <ax-text>{{ item.suffixText }}</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 </ng-template>\n</ng-template>\n","import { AXOutlineContainerDirective, outlineItemType } from '@acorex/cdk/outline';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { afterNextRender, Directive, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isEqual } from 'lodash-es';\nimport { distinctUntilChanged, map } from 'rxjs';\nimport { AXSideMenuComponent, AXSideMenuItem } from './side-menu.component';\n\n@Directive({\n selector: '[axOutlineSideMenu]',\n exportAs: 'axOutlineSideMenu',\n providers: [AXUnsubscriber],\n})\nexport class AXOutlineSideMenuDirective {\n private router = inject(Router);\n private unsubscriber = inject(AXUnsubscriber);\n private sideMenu = inject(AXSideMenuComponent);\n private container = inject(AXOutlineContainerDirective);\n\n #anr = afterNextRender(() => {\n this.container.outlineItems$\n .pipe(\n this.unsubscriber.takeUntilDestroy,\n map((items) => {\n if (!items || items.length === 0) return [];\n return this.buildNestedMenuItems(items);\n }),\n distinctUntilChanged(isEqual),\n )\n .subscribe((menuItems) => {\n this.updateSideMenu(menuItems);\n });\n });\n\n private updateSideMenu(newMenuItems: AXSideMenuItem[]): void {\n const currentMenuItems = this.sideMenu.items();\n const newSignature = this.getStructuralSignature(newMenuItems);\n const currentSignature = this.getStructuralSignature(currentMenuItems || []);\n\n if (newSignature !== currentSignature) {\n this.sideMenu.items.set(newMenuItems);\n return;\n }\n\n const currentComponents = this.sideMenu.children();\n const newActiveItem = this.flattenMenuItems(newMenuItems).find((item) => item.active);\n const currentActiveComponent = currentComponents.find((c) => c.active());\n if (newActiveItem?.href === currentActiveComponent?.href()) {\n return;\n }\n currentActiveComponent?.active.set(false);\n if (newActiveItem) {\n const componentToActivate = currentComponents.find((c) => c.href() === newActiveItem.href);\n componentToActivate?.active.set(true);\n }\n }\n\n /**\n * Creates a string signature that represents the tree structure of the menu.\n * Example: \"href1(href1.1,href1.2),href2,href3\"\n * This will be different for a flat list vs. a nested list.\n */\n private getStructuralSignature(items: AXSideMenuItem[]): string {\n return items\n .map((item) => {\n let signature = item.href || '';\n if (item.items && item.items.length > 0) {\n signature += `(${this.getStructuralSignature(item.items)})`;\n }\n return signature;\n })\n .join(',');\n }\n\n private flattenMenuItems(items: AXSideMenuItem[]): AXSideMenuItem[] {\n return items.reduce((acc, item) => {\n acc.push(item);\n if (item.items) {\n acc.push(...this.flattenMenuItems(item.items));\n }\n return acc;\n }, [] as AXSideMenuItem[]);\n }\n\n private textReplace(item: outlineItemType): string {\n const text = item.el.textContent;\n if (item.hasAnchor) {\n const newStr = text?.slice(0, -1);\n return newStr?.trim() || '';\n }\n return text?.trim() || '';\n }\n\n private buildNestedMenuItems(items: outlineItemType[]): AXSideMenuItem[] {\n const menuItemsMap = new Map<string, AXSideMenuItem>();\n const rootItems: AXSideMenuItem[] = [];\n items.forEach((item) => {\n const menuItem: AXSideMenuItem = {\n items: [],\n target: '_self',\n active: item.active,\n toggleOnClick: false,\n text: this.textReplace(item),\n href: `${this.router.url.split('#')[0]}#${item.id}`,\n };\n menuItemsMap.set(item.id, menuItem);\n });\n items.forEach((item) => {\n const menuItem = menuItemsMap.get(item.id);\n if (!menuItem) return;\n if (item.parentId) {\n const parentMenuItem = menuItemsMap.get(item.parentId);\n if (parentMenuItem) {\n parentMenuItem.items?.push(menuItem);\n } else {\n console.warn(`Outline item with id \"${item.id}\" has a parentId \"${item.parentId}\" that does not exist.`);\n rootItems.push(menuItem);\n }\n } else {\n rootItems.push(menuItem);\n }\n });\n return rootItems;\n }\n}\n","import { AXCommonModule, AXRippleDirective } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport { AXOutlineSideMenuDirective } from './side-menu.directive';\n\nconst COMPONENT = [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSideMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA;;;;AAIG;MACmB,cAAc,CAAA;AAEnC;;ACkBK,MAAO,wBAAyB,SAAQ,YAAY,CAAA;AAA1D,IAAA,WAAA,GAAA;;QACE,IAAA,CAAA,OAAO,GAAG,KAAK;IACjB;AAAC;AA0BK,MAAO,uBAAwB,SAAQ,sBAAsB,CAAA;AAnBnE,IAAA,WAAA,GAAA;;AAoBE,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,EAAE,gDAAC;AAChB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,kDAAC;AACrB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,qDAAC;AACxB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,uDAAC;QACzB,IAAA,CAAA,OAAO,GAAG,MAAM,EAA4B;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE,uDAAC;AAEd,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,IAAI,yDAAC;QAC3B,IAAA,CAAA,IAAI,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAiB;QAC7B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAmC;AACrD,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAoB,iBAAiB,4DAAC;QAC9D,IAAA,CAAA,uBAAuB,GAAG,KAAK,CAA4C,EAAE,KAAK,EAAE,KAAK,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,yBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC5F,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA0C,OAAO,kDAAC;AAE/D,QAAA,IAAA,CAAA,eAAe,GAAG,SAAS,CAAC,QAAQ,CAA0B,iBAAiB,CAAC;AAChF,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,oDAAC;AACxB,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,yDAAC;;AAG7D,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;AACzB,gBAAA,OAAO,KAAK;YACd;YACA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,2BAA2B,CAAC;AAC9E,QAAA,CAAC,wDAAC;;AAGQ,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACxB,gBAAA,OAAO,IAAI;YACb;YACA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI;AAC9F,QAAA,CAAC,0DAAC;AAEe,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,EAAC,UAAuB,EAAC;AACtC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAqB,MAAM,oDAAC;AAC7C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,EAAE,wDAAC;QAElC,IAAA,CAAA,aAAa,GAA4B,IAAI;QAC7C,IAAA,CAAA,qBAAqB,GAAG,KAAK;QACpB,IAAA,CAAA,UAAU,GAAG,eAAe,CAAC,uBAAuB,uDAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AAC5E,QAAA,IAAA,CAAA,YAAY,GAAG,SAAS,CAA0B,cAAc,wDAAC;AACjE,QAAA,IAAA,CAAA,mBAAmB,GAAG,SAAS,CAAyB,qBAAqB,+DAAC;AAM/F,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,MAAK;AAC9B,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE;gBAC5B,IAAI,CAAC,cAAc,EAAE;YACvB;AACF,QAAA,CAAC,6DAAC;AAEF,QAAA,IAAA,CAAA,aAAa,GAAG,eAAe,CAAC,MAAK;YACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;gBACvC;YACF;YACA,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,KAAI;gBACpD,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE;oBAC3C;gBACF;gBACA,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChF,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;AACnE,QAAA,CAAC,CAAC;AAEF,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,MAAK;YAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;gBAC5G;YACF;AAEA,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE;YACvC,IAAI,CAAC,IAAI,EAAE;gBACT;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE;YACd;iBAAO;gBACL,IAAI,CAAC,wBAAwB,EAAE;AAC/B,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YACnC;AACF,QAAA,CAAC,4DAAC;AAgSH,IAAA;AA3UC,IAAA,IAAY,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa;IAChC;AAEA,IAAA,iBAAiB;AAMjB,IAAA,aAAa;AAiBb,IAAA,gBAAgB;AAkBhB,IAAA,YAAY,CAAC,IAAwB,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5B;QACF;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE;AACnC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AACtB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5B;IACF;;IAGA,0BAA0B,GAAA;QACxB,IAAI,CAAC,wBAAwB,EAAE;QAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa;AAC/C,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,EAAE;AAEvE,QAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACvE;AAEA,IAAA,uBAAuB,CAAC,WAAuB,EAAA;QAC7C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YACrC;QACF;QACA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa;AACpD,QAAA,IAAI,OAAO,YAAY,iBAAiB,EAAE;YACxC,OAAO,CAAC,KAAK,EAAE;YACf;QACF;AACA,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;YAClC,WAAW;AACX,YAAA,OAAO,EAAE,KAAK;AACf,SAAA,CAAC;IACJ;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;YACtE;QACF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,SAAS,CAAC;IACpD;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE;IACrC;AAEU,IAAA,0BAA0B,CAAC,KAAmC,EAAA;QACtE,MAAM,QAAQ,GAAI,KAAK,CAAC,IAAI,CAAC,IAAkD,EAAE,YAAY;AAC7F,QAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAAE;AACtC,QAAA,QAAQ,CAAC,uBAAuB,CAAC,KAAK,CAAC,WAAW,CAAC;IACrD;IAEU,uBAAuB,GAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;IACrD;AAEU,IAAA,gBAAgB,CAAC,CAAa,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE;AAEvC,QAAA,MAAM,KAAK,GAA6B;AACtC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,OAAO,EAAE,KAAK;SACf;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YAAE,IAAI,CAAC,MAAM,EAAE;QAEvG,CAAC,CAAC,eAAe,EAAE;IACrB;AAEQ,IAAA,sBAAsB,CAAC,IAA4B,EAAA;AACzD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,0BAA0B,EAAE;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE;AAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE;AAClF,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa;YACnD,KAAK;AACN,SAAA,CAAC;IACJ;IAEQ,yBAAyB,GAAA;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE;QACzE,MAAM,MAAM,GAAG,CAAC;QAChB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACtC,YAAA,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;QAC/C;AACA,QAAA,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;IAChD;AAEQ,IAAA,0BAA0B,CAAC,IAAiB,EAAA;QAClD,MAAM,KAAK,GAAiB,EAAE;AAC9B,QAAA,IAAI,iBAAqC;AAEzC,QAAA,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7C,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;gBAChC,iBAAiB,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,SAAS;gBAC1D;YACF;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,YAAY,EAAE;AAClC,gBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;gBACvE;gBACA;YACF;AACA,YAAA,IAAI,KAAK,CAAC,OAAO,KAAK,mBAAmB,EAAE;gBACzC;YACF;YAEA,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAoB,CAAC;YACtD,IAAI,iBAAiB,EAAE;gBACrB,QAAQ,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE;gBAC7C,iBAAiB,GAAG,SAAS;YAC/B;AACA,YAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QACtB;AAEA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,UAAU,CAAC,IAAiB,EAAA;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AAClD,QAAA,MAAM,IAAI,GAAe;YACvB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvC,YAAA,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,KAAK;AACrC,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC5B,YAAA,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SACjC;QAED,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,QAAQ,EAA0C;QAChF;QAEA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;AAC1C,YAAA,IAAI,CAAC,KAAK;gBACR,QAAQ,EAAE,0BAA0B,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAChH;AAEA,QAAA,OAAO,IAAI;IACb;IAEQ,iBAAiB,CAAC,IAAiB,EAAE,QAAkC,EAAA;AAC7E,QAAA,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;IACxF;;AAGQ,IAAA,sBAAsB,CAAC,QAAA,GAAwB,IAAI,CAAC,WAAW,EAAA;AACrE,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAI;AAC9E,YAAA,IAAI,EAAE,KAAK,QAAQ,EAAE;AACnB,gBAAA,OAAO,KAAK;YACd;YACA,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,mBAAmB,CAAC,KAAK,QAAQ;AACpE,QAAA,CAAC,CAAkB;IACrB;IAEQ,wBAAwB,GAAA;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa;QACpD,IAAI,CAAC,SAAS,EAAE;YACd;QACF;QAEA,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;YAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC3B,gBAAA,IAAI;AACF,oBAAA,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B;AAAE,gBAAA,MAAM;;gBAER;YACF;QACF;IACF;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B;QACF;AACA,QAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;QACjC,qBAAqB,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK;YAClC,IAAI,CAAC,wBAAwB,EAAE;YAC/B,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,kBAAkB,EAAE;AAC3B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,wBAAwB,CAAC,OAAyB,EAAA;AACxD,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,IACE,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC1D,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,YAAY,CAAC,EAC5D;AACA,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,kCAAkC,CAAC,KAAe,EAAA;QACxD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,IAAI,EAAE,IAAI,YAAY,OAAO,CAAC,EAAE;gBAC9B;YACF;AACA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AAC5B,YAAA,IAAI,OAAO,KAAK,mBAAmB,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,YAAY,EAAE;AACzF,gBAAA,OAAO,IAAI;YACb;YACA,IAAI,IAAI,CAAC,aAAa,GAAG,uCAAuC,CAAC,EAAE;AACjE,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;IAEQ,YAAY,CAAC,IAAiB,EAAE,QAAkC,EAAA;AACxE,QAAA,IAAI,QAAQ,EAAE,IAAI,EAAE,EAAE;AACpB,YAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;QACxB;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,2CAA2C,CAAC;AAC5E,QAAA,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAChC;AACA,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;IACjE;AAEQ,IAAA,WAAW,CAAC,IAAiB,EAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,IAAI,SAAS;IACzF;AAEQ,IAAA,aAAa,CAAC,IAAiB,EAAA;AACrC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;QACzE,OAAO,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS;IACpC;AAEQ,IAAA,sBAAsB,CAAC,EAAW,EAAA;AACxC,QAAA,MAAM,GAAG,GAAI,EAA6C,CAAC,aAAa;QACxE,OAAO,GAAG,YAAY,uBAAuB,GAAG,GAAG,GAAG,SAAS;IACjE;IAEQ,wBAAwB,GAAA;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC;QACzD,IAAI,CAAC,QAAQ,EAAE;YACb;QACF;QAEA,QAAQ,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;YACrE,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE;gBAChC;YACF;AACA,YAAA,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,YAAA,OAAO,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE;AACxC,QAAA,CAAC,CAAC;IACJ;IAEQ,cAAc,GAAA;QACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7F;IAEQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACvC;QACF;QACA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,2CAA2C,CAAC;QACxF,MAAM,KAAK,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/G,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B;IACF;8GAzXW,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,EAAA,cAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAFvB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EA6C7B,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClGvE,i4FA0FA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED/CI,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,gBAAgB,8MAChB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,kBAAkB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGlB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAHtB,SAAS,yCACT,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAAA,MAAA,EACrB,CAAC,UAAU,CAAC,EAAA,eAAA,EAEH,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;wBACP,iBAAiB;wBACjB,UAAU;wBACV,gBAAgB;wBAChB,gBAAgB;wBAChB,kBAAkB;wBAClB,SAAS;wBACT,gBAAgB;wBAChB,eAAe;wBACf,sBAAsB;qBACvB,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,uBAAyB,EAAE,CAAC,EAAA,QAAA,EAAA,i4FAAA,EAAA;44CAiBH,iBAAiB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MA4B3C,uBAAuB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACzB,cAAc,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACR,qBAAqB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEzDhG;;;AAGG;AAoBG,MAAO,mBAAoB,SAAQ,WAAW,CAAA;AAnBpD,IAAA,WAAA,GAAA;;QAoBE,IAAA,CAAA,KAAK,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAoB;AACxB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAiB,OAAO,gDAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAqB,OAAO,oDAAC;AAC7C,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAqB,MAAM,gDAAC;AACzC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAChE;;;;;;;;;;AAUG;AACK,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAA4B,EAAE,kDAAC;;AAE7C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AACpC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QACnC,IAAA,CAAA,mBAAmB,GAAG,KAAK;QAC3B,IAAA,CAAA,kBAAkB,GAA4B,IAAI;AAE1D,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;AAC3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE;YACzC,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAgB,CAAC,CAAC,OAAO,KAAI;gBACzD,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,EAAE;oBAC9C;gBACF;gBACA,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClG,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE,CAAC;AACxE,QAAA,CAAC,CAAC;;AAGF,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,MAAK;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAA,CAAC,yDAAC;AA0FH,IAAA;AA3GC,IAAA,KAAK;;AAcL,IAAA,aAAa;AAKb;;;;;;;;AAQG;IACK,mBAAmB,GAAA;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC;QAC3D,MAAM,KAAK,GAA8B,EAAE;AAC3C,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AACtB,YAAA,MAAM,QAAQ,GAAI,EAA6C,CAAC,aAAa;AAC7E,YAAA,IAAI,QAAQ,YAAY,uBAAuB,EAAE;AAC/C,gBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AAC7B,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB;QAEA,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B;QACF;AACA,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;;;QAI/B,qBAAqB,CAAC,MAAK;AACzB,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;YAChC,IAAI,CAAC,mBAAmB,EAAE;AAC5B,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,2BAA2B,CAAC,OAAyB,EAAA;AAC3D,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AAC1G,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,wBAAwB,CAAC,KAAe,EAAA;QAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACpC,YAAA,IAAI,EAAE,IAAI,YAAY,OAAO,CAAC,EAAE;gBAC9B;YACF;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,EAAE;AACxC,gBAAA,OAAO,IAAI;YACb;YACA,IAAI,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,EAAE;AAC7C,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;IAEQ,kBAAkB,GAAA;AACxB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE;QACjC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KACvB,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CACtF;QAED;AACG,aAAA,MAAM,CAAC,CAAC,IAAI,KAAI;AACf,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YACzC,QACE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,CAAC,2BAA2B,CAAC;AAE9G,QAAA,CAAC;aACA,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1G;;AAGA,IAAA,IACY,WAAW,GAAA;QACrB,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,EAAE,CAAA,YAAA,EAAe,IAAI,CAAC,QAAQ,EAAE,CAAA,CAAE,EAAE,CAAA,QAAA,EAAW,IAAI,CAAC,IAAI,EAAE,CAAA,CAAE,CAAC;IAC/F;8GApIW,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EALnB;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE;AAC1D,YAAA,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE;AAC9D,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChEH,0vEAoEA,EAAA,MAAA,EAAA,CAAA,qoTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDdI,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,2BAA2B,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,uBAAuB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,wBAAwB,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAOf,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAnB/B,SAAS;+BACE,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;wBACP,gBAAgB;wBAChB,2BAA2B;wBAC3B,uBAAuB;wBACvB,UAAU;wBACV,gBAAgB;wBAChB,wBAAwB;qBACzB,EAAA,SAAA,EACU;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,qBAAqB,EAAE;AAC1D,wBAAA,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,qBAAqB,EAAE;AAC9D,qBAAA,EAAA,QAAA,EAAA,0vEAAA,EAAA,MAAA,EAAA,CAAA,qoTAAA,CAAA,EAAA;;sBAmIA,WAAW;uBAAC,OAAO;;;MEtLT,0BAA0B,CAAA;AALvC,IAAA,WAAA,GAAA;AAMU,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACtC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAEvD,QAAA,IAAA,CAAA,IAAI,GAAG,eAAe,CAAC,MAAK;YAC1B,IAAI,CAAC,SAAS,CAAC;AACZ,iBAAA,IAAI,CACH,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAClC,GAAG,CAAC,CAAC,KAAK,KAAI;AACZ,gBAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,oBAAA,OAAO,EAAE;AAC3C,gBAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACzC,YAAA,CAAC,CAAC,EACF,oBAAoB,CAAC,OAAO,CAAC;AAE9B,iBAAA,SAAS,CAAC,CAAC,SAAS,KAAI;AACvB,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AAChC,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;AA4FH,IAAA;AAzGC,IAAA,IAAI;AAeI,IAAA,cAAc,CAAC,YAA8B,EAAA;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;QAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAE5E,QAAA,IAAI,YAAY,KAAK,gBAAgB,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;YACrC;QACF;QAEA,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;AACrF,QAAA,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACxE,IAAI,aAAa,EAAE,IAAI,KAAK,sBAAsB,EAAE,IAAI,EAAE,EAAE;YAC1D;QACF;AACA,QAAA,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QACzC,IAAI,aAAa,EAAE;YACjB,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC;AAC1F,YAAA,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QACvC;IACF;AAEA;;;;AAIG;AACK,IAAA,sBAAsB,CAAC,KAAuB,EAAA;AACpD,QAAA,OAAO;AACJ,aAAA,GAAG,CAAC,CAAC,IAAI,KAAI;AACZ,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AAC/B,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvC,SAAS,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAA,CAAG;YAC7D;AACA,YAAA,OAAO,SAAS;AAClB,QAAA,CAAC;aACA,IAAI,CAAC,GAAG,CAAC;IACd;AAEQ,IAAA,gBAAgB,CAAC,KAAuB,EAAA;QAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;AAChC,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACd,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChD;AACA,YAAA,OAAO,GAAG;QACZ,CAAC,EAAE,EAAsB,CAAC;IAC5B;AAEQ,IAAA,WAAW,CAAC,IAAqB,EAAA;AACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW;AAChC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,YAAA,OAAO,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;QAC7B;AACA,QAAA,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;IAC3B;AAEQ,IAAA,oBAAoB,CAAC,KAAwB,EAAA;AACnD,QAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B;QACtD,MAAM,SAAS,GAAqB,EAAE;AACtC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACrB,YAAA,MAAM,QAAQ,GAAmB;AAC/B,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,aAAa,EAAE,KAAK;AACpB,gBAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC5B,gBAAA,IAAI,EAAE,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAA,CAAE;aACpD;YACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC;AACrC,QAAA,CAAC,CAAC;AACF,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ;gBAAE;AACf,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtD,IAAI,cAAc,EAAE;AAClB,oBAAA,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACtC;qBAAO;AACL,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,sBAAA,EAAyB,IAAI,CAAC,EAAE,CAAA,kBAAA,EAAqB,IAAI,CAAC,QAAQ,CAAA,sBAAA,CAAwB,CAAC;AACxG,oBAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC1B;YACF;iBAAO;AACL,gBAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC1B;AACF,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,SAAS;IAClB;8GA9GW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAF1B,CAAC,cAAc,CAAC,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEhB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBALtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;oBAC7B,SAAS,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA;;;ACDD,MAAM,SAAS,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,0BAA0B,CAAC;AAC5F,MAAM,OAAO,GAAG;IACd,YAAY;IACZ,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,mBAAmB;IACnB,UAAU;IACV,gBAAgB;IAChB,iBAAiB;CAClB;MAOY,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAf3B,YAAY;YACZ,cAAc;YACd,iBAAiB;YACjB,eAAe;YACf,mBAAmB;YACnB,UAAU;YACV,gBAAgB;YAChB,iBAAiB,EATA,mBAAmB,EAAE,uBAAuB,EAAE,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAAxE,mBAAmB,EAAE,uBAAuB,EAAE,0BAA0B,CAAA,EAAA,CAAA,CAAA;AAiB9E,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAf3B,YAAY;YACZ,cAAc;YAEd,eAAe;YACf,mBAAmB;YAGnB,iBAAiB,EATA,mBAAmB,EAAE,uBAAuB,CAAA,EAAA,CAAA,CAAA;;2FAiBlD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;AC3BD;;AAEG;;;;"}
|