@acorex/components 20.1.25 → 20.1.27

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.
Files changed (139) hide show
  1. package/action-sheet/index.d.ts +1 -10
  2. package/alert/index.d.ts +1 -3
  3. package/avatar/index.d.ts +1 -2
  4. package/badge/index.d.ts +1 -2
  5. package/bottom-navigation/index.d.ts +10 -2
  6. package/breadcrumbs/index.d.ts +1 -3
  7. package/button/index.d.ts +56 -17
  8. package/button-group/index.d.ts +1 -4
  9. package/calendar/index.d.ts +2 -7
  10. package/check-box/index.d.ts +1 -4
  11. package/chips/index.d.ts +1 -2
  12. package/collapse/index.d.ts +1 -3
  13. package/color-box/index.d.ts +4 -8
  14. package/color-palette/index.d.ts +19 -24
  15. package/datetime-box/index.d.ts +1 -7
  16. package/datetime-input/index.d.ts +1 -4
  17. package/datetime-picker/index.d.ts +1 -10
  18. package/fesm2022/acorex-components-action-sheet.mjs +10 -39
  19. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  20. package/fesm2022/acorex-components-alert.mjs +6 -8
  21. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  22. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  23. package/fesm2022/acorex-components-avatar.mjs +5 -7
  24. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  25. package/fesm2022/acorex-components-badge.mjs +5 -6
  26. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  27. package/fesm2022/acorex-components-bottom-navigation.mjs +9 -5
  28. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  29. package/fesm2022/acorex-components-breadcrumbs.mjs +4 -5
  30. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  31. package/fesm2022/acorex-components-button-group.mjs +4 -7
  32. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  33. package/fesm2022/acorex-components-button.mjs +66 -23
  34. package/fesm2022/acorex-components-button.mjs.map +1 -1
  35. package/fesm2022/acorex-components-calendar.mjs +11 -11
  36. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  37. package/fesm2022/acorex-components-check-box.mjs +5 -7
  38. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  39. package/fesm2022/acorex-components-chips.mjs +5 -6
  40. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  41. package/fesm2022/acorex-components-circular-progress.mjs +2 -2
  42. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  43. package/fesm2022/acorex-components-collapse.mjs +6 -7
  44. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  45. package/fesm2022/acorex-components-color-box.mjs +23 -25
  46. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  47. package/fesm2022/acorex-components-color-palette.mjs +30 -50
  48. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  49. package/fesm2022/acorex-components-datetime-box.mjs +8 -23
  50. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  51. package/fesm2022/acorex-components-datetime-input.mjs +5 -8
  52. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  53. package/fesm2022/acorex-components-datetime-picker.mjs +11 -32
  54. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  55. package/fesm2022/acorex-components-dialog.mjs +2 -2
  56. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  57. package/fesm2022/acorex-components-dropdown-button.mjs +2 -2
  58. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  59. package/fesm2022/acorex-components-flow-chart.mjs +24 -0
  60. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  61. package/fesm2022/acorex-components-form.mjs +10 -1
  62. package/fesm2022/acorex-components-form.mjs.map +1 -1
  63. package/fesm2022/acorex-components-image-editor.mjs +5 -5
  64. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  65. package/fesm2022/acorex-components-kanban.mjs +2 -2
  66. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  67. package/fesm2022/acorex-components-kbd.mjs +8 -7
  68. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  69. package/fesm2022/acorex-components-label.mjs +2 -2
  70. package/fesm2022/acorex-components-label.mjs.map +1 -1
  71. package/fesm2022/acorex-components-list.mjs +1 -1
  72. package/fesm2022/acorex-components-list.mjs.map +1 -1
  73. package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
  74. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  75. package/fesm2022/acorex-components-loading.mjs +2 -2
  76. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  77. package/fesm2022/acorex-components-media-viewer.mjs +4 -4
  78. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  79. package/fesm2022/acorex-components-menu.mjs +15 -6
  80. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  81. package/fesm2022/{acorex-components-modal-acorex-components-modal-DykbEbg0.mjs → acorex-components-modal-acorex-components-modal-yzX5PZMM.mjs} +83 -4
  82. package/fesm2022/acorex-components-modal-acorex-components-modal-yzX5PZMM.mjs.map +1 -0
  83. package/fesm2022/{acorex-components-modal-modal-content.component-73xLTLTg.mjs → acorex-components-modal-modal-content.component-Bt8c43qi.mjs} +2 -2
  84. package/fesm2022/{acorex-components-modal-modal-content.component-73xLTLTg.mjs.map → acorex-components-modal-modal-content.component-Bt8c43qi.mjs.map} +1 -1
  85. package/fesm2022/acorex-components-modal.mjs +1 -1
  86. package/fesm2022/acorex-components-navbar.mjs +6 -1
  87. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  88. package/fesm2022/acorex-components-notification.mjs +7 -4
  89. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  90. package/fesm2022/acorex-components-otp.mjs +2 -2
  91. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  92. package/fesm2022/acorex-components-paint.mjs +3 -3
  93. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  94. package/fesm2022/acorex-components-password-box.mjs +1 -1
  95. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  96. package/fesm2022/acorex-components-phone-box.mjs +7 -4
  97. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  98. package/fesm2022/acorex-components-progress-bar.mjs +2 -2
  99. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  100. package/fesm2022/acorex-components-rail-navigation.mjs +11 -0
  101. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  102. package/fesm2022/acorex-components-range-slider.mjs +2 -2
  103. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  104. package/fesm2022/acorex-components-scheduler.mjs +134 -57
  105. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  106. package/fesm2022/acorex-components-side-menu.mjs +2 -2
  107. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  108. package/fesm2022/acorex-components-slider.mjs +2 -2
  109. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  110. package/fesm2022/acorex-components-sliding-item.mjs +2 -2
  111. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  112. package/fesm2022/acorex-components-switch.mjs +2 -2
  113. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  114. package/fesm2022/acorex-components-tag.mjs +2 -2
  115. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  116. package/fesm2022/acorex-components-toast.mjs +2 -2
  117. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  118. package/fesm2022/acorex-components-tooltip.mjs +3 -2
  119. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  120. package/fesm2022/acorex-components-tree-view.mjs +1 -1
  121. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  122. package/fesm2022/acorex-components-wysiwyg.mjs +27 -29
  123. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  124. package/flow-chart/index.d.ts +24 -0
  125. package/form/index.d.ts +4 -0
  126. package/kbd/index.d.ts +4 -3
  127. package/menu/index.d.ts +2 -0
  128. package/modal/index.d.ts +43 -0
  129. package/navbar/index.d.ts +6 -1
  130. package/package.json +18 -17
  131. package/paint/index.d.ts +1 -1
  132. package/password-box/index.d.ts +6 -6
  133. package/phone-box/index.d.ts +10 -8
  134. package/rail-navigation/index.d.ts +11 -0
  135. package/scheduler/index.d.ts +182 -96
  136. package/side-menu/index.d.ts +1 -1
  137. package/tooltip/index.d.ts +2 -1
  138. package/wysiwyg/index.d.ts +0 -5
  139. package/fesm2022/acorex-components-modal-acorex-components-modal-DykbEbg0.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-menu.mjs","sources":["../tmp-esm2022/menu/lib/menu.service.js","../tmp-esm2022/menu/lib/menu.types.js","../tmp-esm2022/menu/lib/menu-item.component.js","../tmp-esm2022/menu/lib/context-menu.component.js","../tmp-esm2022/menu/lib/menu.component.js","../tmp-esm2022/menu/lib/menu.module.js","../tmp-esm2022/menu/acorex-components-menu.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXMenuService {\n constructor() {\n this.closeAll$ = new Subject();\n this.open$ = new Subject();\n this.close$ = new Subject();\n this.closeExcept$ = new Subject();\n this.openContextMenu$ = new Subject();\n this.closeAllContextMenu$ = new Subject();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJL0IsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFUyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDekMsVUFBSyxHQUFxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBcUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBQ3pFLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0tBQ3JFOzhHQVJZLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNZW51U2VydmljZSB7XG4gIHB1YmxpYyBjbG9zZUFsbCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgb3BlbiQ6IFN1YmplY3Q8QVhNZW51SXRlbUNvbXBvbmVudEJhc2U+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGNsb3NlJDogU3ViamVjdDxBWE1lbnVJdGVtQ29tcG9uZW50QmFzZT4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgY2xvc2VFeGNlcHQkID0gbmV3IFN1YmplY3Q8QVhNZW51SXRlbUNvbXBvbmVudEJhc2U+KCk7XG5cbiAgcHVibGljIG9wZW5Db250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDx7IHNlbmRlcjogQVhSb290TWVudTsgcG9pbnQ6IEFYUG9pbnQgfT4oKTtcbiAgcHVibGljIGNsb3NlQWxsQ29udGV4dE1lbnUkID0gbmV3IFN1YmplY3Q8eyBzZW5kZXI6IEFYUm9vdE1lbnUgfT4oKTtcbn1cbiJdfQ==","import { NXClickEvent } from '@acorex/cdk/common';\nexport class AXRootMenu {\n}\nexport class AXMenuItemComponentBase {\n}\nexport class AXMenuItem {\n}\nexport class AXMenuItemClickBaseEvent extends NXClickEvent {\n constructor() {\n super(...arguments);\n this.canceled = false;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQyxZQUFZLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQU1oRyxNQUFNLE9BQWdCLFVBQVU7Q0FPL0I7QUFFRCxNQUFNLE9BQWdCLHVCQUF1QjtDQUFHO0FBRWhELE1BQU0sT0FBZ0IsVUFBVTtDQWdCL0I7QUFFRCxNQUFNLE9BQU8sd0JBQThELFNBQVEsWUFBZTtJQUFsRzs7UUFNRSxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ25CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIEFYU3R5bGVDb2xvclR5cGUsIE5YQ2xpY2tFdmVudCwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgT3V0cHV0RW1pdHRlclJlZiwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhNZW51T3BlblRyaWdnZXIgPSAnY2xpY2snIHwgJ2hvdmVyJztcbmV4cG9ydCB0eXBlIEFYTWVudUNsb3NlVHJpZ2dlciA9ICdjbGljaycgfCAnbGVhdmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhSb290TWVudSB7XG4gIG9yaWVudGF0aW9uOiBXcml0YWJsZVNpZ25hbDxBWE9yaWVudGF0aW9uPjtcbiAgb3Blbk9uOiBXcml0YWJsZVNpZ25hbDxBWE1lbnVPcGVuVHJpZ2dlcj47XG4gIGNsb3NlT246IFdyaXRhYmxlU2lnbmFsPEFYTWVudUNsb3NlVHJpZ2dlcj47XG4gIG9uSXRlbUNsaWNrOiBPdXRwdXRFbWl0dGVyUmVmPEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudD47XG4gIG5hdGl2ZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBoYXNBcnJvdzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNZW51SXRlbSB7XG4gIGNvbG9yPzogQVhTdHlsZUNvbG9yVHlwZTtcbiAgbmFtZT86IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBkYXRhPzogYW55O1xuICBpY29uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGl0ZW1zPzogQVhNZW51SXRlbVtdO1xuICBzdWZmaXg/OiB7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9O1xuICBicmVhaz86IGJvb2xlYW47XG4gIGdyb3VwPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ2xpY2tCYXNlRXZlbnQ8VCBleHRlbmRzIE5YQ29tcG9uZW50ID0gTlhDb21wb25lbnQ+IGV4dGVuZHMgTlhDbGlja0V2ZW50PFQ+IHtcbiAgaXRlbToge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGRhdGE/OiBhbnk7XG4gIH07XG4gIGNhbmNlbGVkID0gZmFsc2U7XG59XG4iXX0=","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, HostBinding, HostListener, inject, input, output, Renderer2, signal, ViewEncapsulation, } from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\nexport class AXMenuItemComponent extends NXComponent {\n constructor() {\n super();\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.hasSubItems = signal(false, ...(ngDevMode ? [{ debugName: \"hasSubItems\" }] : []));\n this.isFirstLevel = signal(false, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\n this.root = inject(AXRootMenu);\n this.isRoot = () => this.parent == null;\n this.service = inject(AXMenuService);\n this.scrollableParents = [];\n this.unsuscriber = inject(AXUnsubscriber);\n this.renderer = inject(Renderer2);\n this.arrowIcon = computed(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n }, ...(ngDevMode ? [{ debugName: \"arrowIcon\" }] : []));\n this.onClick = output();\n this.name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n this.data = input(...(ngDevMode ? [undefined, { debugName: \"data\" }] : []));\n this.disabled = input(...(ngDevMode ? [undefined, { debugName: \"disabled\" }] : []));\n this.color = input(...(ngDevMode ? [undefined, { debugName: \"color\" }] : []));\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if (this === item) {\n this.isOpen.set(true);\n this.calculatePosition();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if (this == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item);\n });\n }\n closeExcept(item) {\n const list = [item];\n // TODO: Check for better solution\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? parentEl?.['__axContext__'] : null;\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n getText() {\n return this.nativeElement.querySelector('ax-text')?.innerText;\n }\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? parentEl?.['__axContext__'] : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n }\n else {\n this.hasSubItems.set(false);\n }\n }\n /**\n * Opens the submenu of this menu item if it has sub-items and is not disabled.\n *\n * Inherited behavior: Uses the injected service to notify other items to close.\n *\n * @returns void - No return value. Triggers submenu opening side-effects.\n */\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n this.service.open$.next(this);\n }\n }\n /**\n * Closes the submenu of this menu item if open.\n *\n * @returns void - No return value. Triggers submenu closing side-effects.\n */\n close() {\n this.service.close$.next(this);\n }\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n calculatePosition() {\n const submenu = this.nativeElement.querySelector('.ax-menu-items');\n if (!submenu)\n return;\n // Temporarily show the menu to measure its dimensions, but keep it invisible\n this.renderer.setStyle(submenu, 'visibility', 'hidden');\n this.renderer.setStyle(submenu, 'display', 'block');\n const submenuRect = submenu.getBoundingClientRect();\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n // Reset temporary styles\n this.renderer.removeStyle(submenu, 'visibility');\n this.renderer.removeStyle(submenu, 'display');\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n let finalTop;\n let finalLeft;\n // --- 1. VERTICAL POSITIONING ---\n const preferredTop = this.isFirstLevel() && this.root.orientation() === 'horizontal'\n ? itemRect.bottom // For horizontal menu, open below\n : itemRect.top; // For vertical menu, align with parent top\n const alternateTop = itemRect.top - submenuRect.height; // Position for opening upwards\n if (preferredTop + submenuRect.height <= windowHeight) {\n finalTop = preferredTop;\n }\n else if (this.isFirstLevel() && this.root.orientation() === 'horizontal' && alternateTop >= 0) {\n finalTop = alternateTop;\n }\n else {\n finalTop = windowHeight - submenuRect.height;\n }\n if (finalTop < 0) {\n finalTop = 0;\n }\n // --- 2. HORIZONTAL POSITIONING ---\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n const preferredLeft = isRtl ? itemRect.right - submenuRect.width : itemRect.left;\n const alternateLeft = isRtl ? itemRect.left : itemRect.right - submenuRect.width;\n if (preferredLeft >= 0 && preferredLeft + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeft;\n }\n else {\n finalLeft = Math.max(0, Math.min(alternateLeft, windowWidth - submenuRect.width));\n }\n }\n else {\n const preferredLeftRtl = itemRect.left - submenuRect.width;\n const alternateLeftRtl = itemRect.right;\n const preferredLeftLtr = itemRect.right;\n const alternateLeftLtr = itemRect.left - submenuRect.width;\n if (isRtl) {\n if (preferredLeftRtl >= 0) {\n finalLeft = preferredLeftRtl;\n }\n else if (alternateLeftRtl + submenuRect.width <= windowWidth) {\n finalLeft = alternateLeftRtl;\n }\n else {\n finalLeft = 0;\n }\n }\n else {\n if (preferredLeftLtr + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeftLtr;\n }\n else if (alternateLeftLtr >= 0) {\n finalLeft = alternateLeftLtr;\n }\n else {\n finalLeft = windowWidth - submenuRect.width;\n }\n }\n }\n // --- 3. NEW: OVERLAP-AWARE VERTICAL SHIFT ---\n const isNestedMenu = !(this.isFirstLevel() && this.root.orientation() === 'horizontal');\n if (isNestedMenu) {\n const overlapsParent = finalLeft < itemRect.right && itemRect.left < finalLeft + submenuRect.width;\n if (overlapsParent) {\n const shiftedTop = itemRect.bottom;\n if (shiftedTop + submenuRect.height <= windowHeight) {\n finalTop = shiftedTop;\n }\n }\n }\n // --- 4. APPLY FINAL STYLES ---\n this.renderer.setStyle(submenu, 'position', 'fixed');\n this.renderer.setStyle(submenu, 'top', `${finalTop}px`);\n this.renderer.setStyle(submenu, 'left', `${finalLeft}px`);\n }\n handleClick(e) {\n e.stopPropagation();\n if (this.disabled())\n return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n };\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n }\n else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n handleMouseEnter(event) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n handleMouseLeave(event) {\n event.stopPropagation();\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n onClickOutside(event) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n // Remove scroll event listeners\n removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n /** @ignore */\n get __hostClass() {\n const list = ['ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n list.push(`ax-${this.color() ?? 'default'}`);\n return list;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXMenuItemComponent, isStandalone: true, selector: \"ax-menu-item\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: \"data\", publicName: \"data\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: \"onClick\" }, host: { listeners: { \"click\": \"handleClick($event)\", \"mouseenter\": \"handleMouseEnter($event)\", \"mouseleave\": \"handleMouseLeave($event)\", \"window:scroll\": \"onWindowEvent($event)\", \"window:resize\": \"onWindowEvent($event)\", \"document:click\": \"onClickOutside($event)\" }, properties: { \"class\": \"this.__hostClass\" } }, providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-action-item-prefix\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n</div>\\n<div class=\\\"ax-action-item-suffix\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\\n <i class=\\\"ax-icon ax-icon-solid {{ arrowIcon() }} \\\"></i>\\n }\\n</div>\\n<div class=\\\"ax-menu-items ax-action-list ax-action-list-vertical\\\" [class.ax-state-open]=\\\"isOpen()\\\">\\n <ng-content select=\\\"ax-menu-item,ax-title,ax-divider,ng-container\\\"></ng-content>\\n</div>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-menu-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ], template: \"<div class=\\\"ax-action-item-prefix\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n</div>\\n<div class=\\\"ax-action-item-suffix\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\\n <i class=\\\"ax-icon ax-icon-solid {{ arrowIcon() }} \\\"></i>\\n }\\n</div>\\n<div class=\\\"ax-menu-items ax-action-list ax-action-list-vertical\\\" [class.ax-state-open]=\\\"isOpen()\\\">\\n <ng-content select=\\\"ax-menu-item,ax-title,ax-divider,ng-container\\\"></ng-content>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { handleClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], handleMouseEnter: [{\n type: HostListener,\n args: ['mouseenter', ['$event']]\n }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }], onWindowEvent: [{\n type: HostListener,\n args: ['window:scroll', ['$event']]\n }, {\n type: HostListener,\n args: ['window:resize', ['$event']]\n }], onClickOutside: [{\n type: HostListener,\n args: ['document:click', ['$event']]\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBb0IsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBNEIsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUk3Rjs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFnQ2xEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFoQ0EsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLGtEQUFDLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssd0RBQUMsQ0FBQztRQUc3QixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFCLFdBQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUVyQyxZQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hDLHNCQUFpQixHQUFrQixFQUFFLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUzQixjQUFTLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUMxQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ25FLENBQUMsQ0FBQyxzQkFBc0I7Z0JBQ3hCLENBQUMsQ0FBQyxLQUFLO29CQUNMLENBQUMsQ0FBQyxzQkFBc0I7b0JBQ3hCLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztRQUNoQyxDQUFDLHFEQUFDLENBQUM7UUFFSCxZQUFPLEdBQUcsTUFBTSxFQUF3QixDQUFDO1FBRXpDLFNBQUksR0FBRyxLQUFLLDBEQUFVLENBQUM7UUFDdkIsU0FBSSxHQUFHLEtBQUssMERBQU8sQ0FBQztRQUNwQixhQUFRLEdBQUcsS0FBSyw4REFBVyxDQUFDO1FBQzVCLFVBQUssR0FBRyxLQUFLLDJEQUFvQixDQUFDO1FBSWhDLEVBQUU7UUFDRixlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILEVBQUU7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUU3RixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVFLElBQUssSUFBWSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsRUFBRTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0UsSUFBSyxJQUFZLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUU7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBMkIsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUF5QjtRQUMzQyxNQUFNLElBQUksR0FBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxrQ0FBa0M7UUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxFQUFFLE9BQU8sSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFFLFFBQVEsRUFBRSxDQUFDLGVBQWUsQ0FBeUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hILEVBQUU7UUFDRixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pCLE9BQU8sTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDekIsQ0FBQztRQUNELEVBQUU7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtZQUNoRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCw0Q0FBNEM7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sT0FBTztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQWlCLFNBQVMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUNoRixDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLEVBQUU7UUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7UUFDakUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLEVBQUUsT0FBTyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUUsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUF5QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEgsRUFBRTtRQUNGLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksU0FBUyxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFJO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFjLGdCQUFnQixDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXJCLDZFQUE2RTtRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUV4Qyx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUU5QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVuRCxJQUFJLFFBQWdCLENBQUM7UUFDckIsSUFBSSxTQUFpQixDQUFDO1FBRXRCLGtDQUFrQztRQUNsQyxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssWUFBWTtZQUM3RCxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0M7WUFDcEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQywyQ0FBMkM7UUFFL0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsK0JBQStCO1FBRXZGLElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksWUFBWSxFQUFFLENBQUM7WUFDdEQsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUMxQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxZQUFZLElBQUksWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2hHLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixRQUFRLEdBQUcsWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBRUQsb0NBQW9DO1FBQ3BDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDcEUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDakYsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFFakYsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLGFBQWEsR0FBRyxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUMzRSxTQUFTLEdBQUcsYUFBYSxDQUFDO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzNELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUV4QyxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFFM0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLGdCQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMxQixTQUFTLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sSUFBSSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUMvRCxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sQ0FBQztvQkFDTixTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLEVBQUUsQ0FBQztvQkFDeEQsU0FBUyxHQUFHLGdCQUFnQixDQUFDO2dCQUMvQixDQUFDO3FCQUFNLElBQUksZ0JBQWdCLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2pDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztnQkFDL0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLFNBQVMsR0FBRyxXQUFXLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztnQkFDOUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsK0NBQStDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxZQUFZLENBQUMsQ0FBQztRQUN4RixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sY0FBYyxHQUFHLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDbkcsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDcEQsUUFBUSxHQUFHLFVBQVUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUdPLFdBQVcsQ0FBQyxDQUFhO1FBQy9CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFPO1FBQzVCLEVBQUU7UUFDRixNQUFNLEtBQUssR0FBRztZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osV0FBVyxFQUFFLENBQUM7WUFDZCxRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2FBQ2xCO1NBQ3NCLENBQUM7UUFDMUIsRUFBRTtRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxRSxFQUFFO1FBQ0YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNILENBQUM7SUFHTyxnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsNERBQTREO1FBQzVELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQyxvQkFBb0I7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUtPLGdCQUFnQixDQUFDLEtBQWlCO1FBQ3hDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFELHdEQUF3RDtZQUN4RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUVELHlDQUF5QztZQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQzNFLENBQUM7SUFDSCxDQUFDO0lBSU8sYUFBYTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLHNDQUFzQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFFSyxjQUFjLENBQUMsS0FBaUI7UUFDdEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWMsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyw2REFBNkQ7UUFDOUYsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ3hCLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDeEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7SUFDN0QsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFdBQVc7UUFDYixNQUFNLElBQUksR0FBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBMVZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHE0QkFabkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsdUJBQXVCO2dCQUNoQyxXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1lBQ0QsY0FBYztZQUNkO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixXQUFXLEVBQUUsbUJBQW1CO2FBQ2pDO1NBQ0YsaURDekNILDRqQkFhQTs7MkZEOEJhLG1CQUFtQjtrQkFqQi9CLFNBQVM7K0JBQ0UsY0FBYyxpQkFFVCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFdBQVcscUJBQXFCO3lCQUNqQzt3QkFDRCxjQUFjO3dCQUNkOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7d0RBNk9PLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCekIsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQjlCLGdCQUFnQjtzQkFEdkIsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI5QixhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNqQyxjQUFjO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9DdEMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhTdHlsZUNvbG9yVHlwZSwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYTWVudUl0ZW1DbGlja0V2ZW50ID0gQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50PEFYTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGl0ZW0gY29tcG9uZW50IHVzZWQgd2l0aGluIGFuIGBheC1tZW51YC5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51SXRlbUNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYTWVudUl0ZW1Db21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51SXRlbUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBoYXNTdWJJdGVtcyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBpc0ZpcnN0TGV2ZWwgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXIhOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByb3RlY3RlZCByb290ID0gaW5qZWN0KEFYUm9vdE1lbnUpO1xuICBwcm90ZWN0ZWQgcGFyZW50PzogQVhNZW51SXRlbUNvbXBvbmVudCB8IG51bGw7XG4gIHByb3RlY3RlZCBpc1Jvb3QgPSAoKSA9PiB0aGlzLnBhcmVudCA9PSBudWxsO1xuXG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWE1lbnVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzY3JvbGxhYmxlUGFyZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgdW5zdXNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgcHJvdGVjdGVkIGFycm93SWNvbiA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzLnJvb3Qub3JpZW50YXRpb24oKSA9PSAnaG9yaXpvbnRhbCcgJiYgdGhpcy5pc0ZpcnN0TGV2ZWwoKVxuICAgICAgPyAnYXgtaWNvbi1jaGV2cm9uLWRvd24nXG4gICAgICA6IGlzUnRsXG4gICAgICAgID8gJ2F4LWljb24tY2hldnJvbi1sZWZ0J1xuICAgICAgICA6ICdheC1pY29uLWNoZXZyb24tcmlnaHQnO1xuICB9KTtcblxuICBvbkNsaWNrID0gb3V0cHV0PEFYTWVudUl0ZW1DbGlja0V2ZW50PigpO1xuXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGRhdGEgPSBpbnB1dDxhbnk+KCk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgY29sb3IgPSBpbnB1dDxBWFN0eWxlQ29sb3JUeXBlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy9cbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5kZXRlY3RTdWJJdGVtcygpO1xuICAgICAgdGhpcy5vYnNlcnZlTXV0YXRpb25zKCk7XG4gICAgICB0aGlzLmJpbmRTY3JvbGxFdmVudHMoKTtcbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQucGlwZSh0aGlzLnVuc3VzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuXG4gICAgdGhpcy5zZXJ2aWNlLm9wZW4kLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIGlmICgodGhpcyBhcyBhbnkpID09PSBpdGVtKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlJC5waXBlKHRoaXMudW5zdXNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICBpZiAoKHRoaXMgYXMgYW55KSA9PSBpdGVtKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VFeGNlcHQkLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIHRoaXMuY2xvc2VFeGNlcHQoaXRlbSBhcyBBWE1lbnVJdGVtQ29tcG9uZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VFeGNlcHQoaXRlbTogQVhNZW51SXRlbUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGxpc3Q6IEFYTWVudUl0ZW1Db21wb25lbnRbXSA9IFtpdGVtXTtcbiAgICAvLyBUT0RPOiBDaGVjayBmb3IgYmV0dGVyIHNvbHV0aW9uXG4gICAgY29uc3QgcGFyZW50RWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudDtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudEVsPy50YWdOYW1lID09ICdBWC1NRU5VLUlURU0nID8gKHBhcmVudEVsPy5bJ19fYXhDb250ZXh0X18nXSBhcyBBWE1lbnVJdGVtQ29tcG9uZW50KSA6IG51bGw7XG4gICAgLy9cbiAgICBsZXQgcGFyZW50ID0gaXRlbS5wYXJlbnQ7XG4gICAgd2hpbGUgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICBsaXN0LnB1c2gocGFyZW50KTtcbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCFsaXN0LmluY2x1ZGVzKHRoaXMpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlTXV0YXRpb25zKCkge1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0U3ViSXRlbXMoKTtcbiAgICB9KTtcblxuICAgIC8vIFN0YXJ0IG9ic2VydmluZyBjaGFuZ2VzIGluIGNoaWxkIGVsZW1lbnRzXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignYXgtdGV4dCcpPy5pbm5lclRleHQ7XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgZGV0ZWN0IGFsbCBgYXgtbWVudS1pdGVtYCBlbGVtZW50cyBhbmQgY2hlY2sgaWYgdGhpcyBtZW51IGl0ZW0gaGFzIHN1Yi1pdGVtcy5cbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0U3ViSXRlbXMoKSB7XG4gICAgLy9cbiAgICBjb25zdCBwYXJlbnRFbCA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50RWw/LnRhZ05hbWUgPT0gJ0FYLU1FTlUtSVRFTScgPyAocGFyZW50RWw/LlsnX19heENvbnRleHRfXyddIGFzIEFYTWVudUl0ZW1Db21wb25lbnQpIDogbnVsbDtcbiAgICAvL1xuICAgIGNvbnN0IHRhZyA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py50YWdOYW1lO1xuICAgIHRoaXMuaXNGaXJzdExldmVsLnNldCh0YWcgPT0gJ0FYLU1FTlUnIHx8IHRhZyA9PSAnQVgtQ09OVEVYVC1NRU5VJyk7XG4gICAgY29uc3Qgc3ViSXRlbXMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXgtbWVudS1pdGVtJyk7XG4gICAgaWYgKHN1Ykl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaGFzU3ViSXRlbXMuc2V0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1N1Ykl0ZW1zLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBzdWJtZW51IG9mIHRoaXMgbWVudSBpdGVtIGlmIGl0IGhhcyBzdWItaXRlbXMgYW5kIGlzIG5vdCBkaXNhYmxlZC5cbiAgICpcbiAgICogSW5oZXJpdGVkIGJlaGF2aW9yOiBVc2VzIHRoZSBpbmplY3RlZCBzZXJ2aWNlIHRvIG5vdGlmeSBvdGhlciBpdGVtcyB0byBjbG9zZS5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVHJpZ2dlcnMgc3VibWVudSBvcGVuaW5nIHNpZGUtZWZmZWN0cy5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlRXhjZXB0JC5uZXh0KHRoaXMpO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCgpICYmIHRoaXMuaGFzU3ViSXRlbXMoKSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLm9wZW4kLm5leHQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgc3VibWVudSBvZiB0aGlzIG1lbnUgaXRlbSBpZiBvcGVuLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBUcmlnZ2VycyBzdWJtZW51IGNsb3Npbmcgc2lkZS1lZmZlY3RzLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlJC5uZXh0KHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIHN1Ym1lbnUgdG8gYXZvaWQgaXQgZ29pbmcgb3V0IG9mIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgY29uc3Qgc3VibWVudSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmF4LW1lbnUtaXRlbXMnKTtcbiAgICBpZiAoIXN1Ym1lbnUpIHJldHVybjtcblxuICAgIC8vIFRlbXBvcmFyaWx5IHNob3cgdGhlIG1lbnUgdG8gbWVhc3VyZSBpdHMgZGltZW5zaW9ucywgYnV0IGtlZXAgaXQgaW52aXNpYmxlXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG5cbiAgICBjb25zdCBzdWJtZW51UmVjdCA9IHN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaXRlbVJlY3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAvLyBSZXNldCB0ZW1wb3Jhcnkgc3R5bGVzXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShzdWJtZW51LCAndmlzaWJpbGl0eScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoc3VibWVudSwgJ2Rpc3BsYXknKTtcblxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgbGV0IGZpbmFsVG9wOiBudW1iZXI7XG4gICAgbGV0IGZpbmFsTGVmdDogbnVtYmVyO1xuXG4gICAgLy8gLS0tIDEuIFZFUlRJQ0FMIFBPU0lUSU9OSU5HIC0tLVxuICAgIGNvbnN0IHByZWZlcnJlZFRvcCA9XG4gICAgICB0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgPyBpdGVtUmVjdC5ib3R0b20gLy8gRm9yIGhvcml6b250YWwgbWVudSwgb3BlbiBiZWxvd1xuICAgICAgICA6IGl0ZW1SZWN0LnRvcDsgLy8gRm9yIHZlcnRpY2FsIG1lbnUsIGFsaWduIHdpdGggcGFyZW50IHRvcFxuXG4gICAgY29uc3QgYWx0ZXJuYXRlVG9wID0gaXRlbVJlY3QudG9wIC0gc3VibWVudVJlY3QuaGVpZ2h0OyAvLyBQb3NpdGlvbiBmb3Igb3BlbmluZyB1cHdhcmRzXG5cbiAgICBpZiAocHJlZmVycmVkVG9wICsgc3VibWVudVJlY3QuaGVpZ2h0IDw9IHdpbmRvd0hlaWdodCkge1xuICAgICAgZmluYWxUb3AgPSBwcmVmZXJyZWRUb3A7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCcgJiYgYWx0ZXJuYXRlVG9wID49IDApIHtcbiAgICAgIGZpbmFsVG9wID0gYWx0ZXJuYXRlVG9wO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbFRvcCA9IHdpbmRvd0hlaWdodCAtIHN1Ym1lbnVSZWN0LmhlaWdodDtcbiAgICB9XG5cbiAgICBpZiAoZmluYWxUb3AgPCAwKSB7XG4gICAgICBmaW5hbFRvcCA9IDA7XG4gICAgfVxuXG4gICAgLy8gLS0tIDIuIEhPUklaT05UQUwgUE9TSVRJT05JTkcgLS0tXG4gICAgaWYgKHRoaXMuaXNGaXJzdExldmVsKCkgJiYgdGhpcy5yb290Lm9yaWVudGF0aW9uKCkgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgY29uc3QgcHJlZmVycmVkTGVmdCA9IGlzUnRsID8gaXRlbVJlY3QucmlnaHQgLSBzdWJtZW51UmVjdC53aWR0aCA6IGl0ZW1SZWN0LmxlZnQ7XG4gICAgICBjb25zdCBhbHRlcm5hdGVMZWZ0ID0gaXNSdGwgPyBpdGVtUmVjdC5sZWZ0IDogaXRlbVJlY3QucmlnaHQgLSBzdWJtZW51UmVjdC53aWR0aDtcblxuICAgICAgaWYgKHByZWZlcnJlZExlZnQgPj0gMCAmJiBwcmVmZXJyZWRMZWZ0ICsgc3VibWVudVJlY3Qud2lkdGggPD0gd2luZG93V2lkdGgpIHtcbiAgICAgICAgZmluYWxMZWZ0ID0gcHJlZmVycmVkTGVmdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmFsTGVmdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKGFsdGVybmF0ZUxlZnQsIHdpbmRvd1dpZHRoIC0gc3VibWVudVJlY3Qud2lkdGgpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJlZmVycmVkTGVmdFJ0bCA9IGl0ZW1SZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aDtcbiAgICAgIGNvbnN0IGFsdGVybmF0ZUxlZnRSdGwgPSBpdGVtUmVjdC5yaWdodDtcblxuICAgICAgY29uc3QgcHJlZmVycmVkTGVmdEx0ciA9IGl0ZW1SZWN0LnJpZ2h0O1xuICAgICAgY29uc3QgYWx0ZXJuYXRlTGVmdEx0ciA9IGl0ZW1SZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aDtcblxuICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgIGlmIChwcmVmZXJyZWRMZWZ0UnRsID49IDApIHtcbiAgICAgICAgICBmaW5hbExlZnQgPSBwcmVmZXJyZWRMZWZ0UnRsO1xuICAgICAgICB9IGVsc2UgaWYgKGFsdGVybmF0ZUxlZnRSdGwgKyBzdWJtZW51UmVjdC53aWR0aCA8PSB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgIGZpbmFsTGVmdCA9IGFsdGVybmF0ZUxlZnRSdGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmluYWxMZWZ0ID0gMDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByZWZlcnJlZExlZnRMdHIgKyBzdWJtZW51UmVjdC53aWR0aCA8PSB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgIGZpbmFsTGVmdCA9IHByZWZlcnJlZExlZnRMdHI7XG4gICAgICAgIH0gZWxzZSBpZiAoYWx0ZXJuYXRlTGVmdEx0ciA+PSAwKSB7XG4gICAgICAgICAgZmluYWxMZWZ0ID0gYWx0ZXJuYXRlTGVmdEx0cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaW5hbExlZnQgPSB3aW5kb3dXaWR0aCAtIHN1Ym1lbnVSZWN0LndpZHRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tIDMuIE5FVzogT1ZFUkxBUC1BV0FSRSBWRVJUSUNBTCBTSElGVCAtLS1cbiAgICBjb25zdCBpc05lc3RlZE1lbnUgPSAhKHRoaXMuaXNGaXJzdExldmVsKCkgJiYgdGhpcy5yb290Lm9yaWVudGF0aW9uKCkgPT09ICdob3Jpem9udGFsJyk7XG4gICAgaWYgKGlzTmVzdGVkTWVudSkge1xuICAgICAgY29uc3Qgb3ZlcmxhcHNQYXJlbnQgPSBmaW5hbExlZnQgPCBpdGVtUmVjdC5yaWdodCAmJiBpdGVtUmVjdC5sZWZ0IDwgZmluYWxMZWZ0ICsgc3VibWVudVJlY3Qud2lkdGg7XG4gICAgICBpZiAob3ZlcmxhcHNQYXJlbnQpIHtcbiAgICAgICAgY29uc3Qgc2hpZnRlZFRvcCA9IGl0ZW1SZWN0LmJvdHRvbTtcbiAgICAgICAgaWYgKHNoaWZ0ZWRUb3AgKyBzdWJtZW51UmVjdC5oZWlnaHQgPD0gd2luZG93SGVpZ2h0KSB7XG4gICAgICAgICAgZmluYWxUb3AgPSBzaGlmdGVkVG9wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tIDQuIEFQUExZIEZJTkFMIFNUWUxFUyAtLS1cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3VibWVudSwgJ3RvcCcsIGAke2ZpbmFsVG9wfXB4YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAnbGVmdCcsIGAke2ZpbmFsTGVmdH1weGApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHJldHVybjtcbiAgICAvL1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICBpdGVtOiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSgpLFxuICAgICAgICB0ZXh0OiB0aGlzLmdldFRleHQoKSxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhKCksXG4gICAgICB9LFxuICAgIH0gYXMgQVhNZW51SXRlbUNsaWNrRXZlbnQ7XG4gICAgLy9cbiAgICB0aGlzLm9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgdGhpcy5yb290Lm9uSXRlbUNsaWNrLmVtaXQoeyAuLi5ldmVudCwgLi4ueyBzZW5kZXI6IHRoaXMucm9vdCBhcyBhbnkgfSB9KTtcbiAgICAvL1xuICAgIGlmICh0aGlzLmhhc1N1Ykl0ZW1zKCkgJiYgIWV2ZW50LmNhbmNlbGVkKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlcjogdGhpcy5yb290IH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyBDYW5jZWwgdGhlIGNsb3NlIGRlbGF5IGlmIHRoZSBtb3VzZSByZS1lbnRlcnMgdGhlIGVsZW1lbnRcbiAgICBpZiAodGhpcy5tb3VzZUxlYXZlVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubW91c2VMZWF2ZVRpbWVvdXQpO1xuICAgICAgdGhpcy5tb3VzZUxlYXZlVGltZW91dCA9IG51bGw7IC8vIFJlc2V0IHRoZSB0aW1lb3V0XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0ZpcnN0TGV2ZWwoKSB8fCB0aGlzLnJvb3Qub3Blbk9uKCkgPT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VzZUxlYXZlVGltZW91dDogYW55O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmhhc1N1Ykl0ZW1zKCkgJiYgdGhpcy5yb290LmNsb3NlT24oKSA9PT0gJ2xlYXZlJykge1xuICAgICAgLy8gQ2xlYXIgYW55IHByZXZpb3VzIHRpbWVvdXQgdG8gYXZvaWQgbXVsdGlwbGUgdHJpZ2dlcnNcbiAgICAgIGlmICh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IGEgZGVsYXkgYmVmb3JlIGNsb3NpbmcgdGhlIHN1Ym1lbnVcbiAgICAgIHRoaXMubW91c2VMZWF2ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkZWxheSAoNTAwbXMgaW4gdGhpcyBjYXNlKSBhcyBwZXIgeW91ciByZXF1aXJlbWVudFxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbldpbmRvd0V2ZW50KCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsIG9yIHJlc2l6ZVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGFsbCBtZW51cyBpZiBjbGlja2luZyBvdXRzaWRlIHRoZSByb290IG1lbnUgYW5kIGFsbCBzdWItaXRlbXMuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25DbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMucm9vdC5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTsgLy8gQ2xvc2UgYWxsIG1lbnVzIGlmIGNsaWNrIGlzIG91dHNpZGUgdGhlIHJvb3QgYW5kIHN1Yi1pdGVtc1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnRzKCk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRTY3JvbGxFdmVudHMoKSB7XG4gICAgdGhpcy5zY3JvbGxhYmxlUGFyZW50cyA9IEFYSHRtbFV0aWwuZ2V0U2Nyb2xsYWJsZVBhcmVudHModGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRhaW5lclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBzY3JvbGwgZXZlbnQgbGlzdGVuZXJzXG4gIHByaXZhdGUgcmVtb3ZlU2Nyb2xsRXZlbnRzKCkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICBwYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRhaW5lclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVyIGZvciBzY3JvbGwgZXZlbnRzICh3aW5kb3cgb3Igc2Nyb2xsYWJsZSBwYXJlbnQgY29udGFpbmVycylcbiAgICovXG4gIHByaXZhdGUgb25Db250YWluZXJTY3JvbGwoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7IC8vIENsb3NlIGFsbCBtZW51cyBvbiBzY3JvbGxcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpc3Q6IHN0cmluZ1tdID0gWydheC1hY3Rpb24taXRlbSddO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIGxpc3QucHVzaCgnYXgtc3RhdGUtZGlzYWJsZWQnKTtcbiAgICB9XG4gICAgbGlzdC5wdXNoKGBheC0ke3RoaXMuY29sb3IoKSA/PyAnZGVmYXVsdCd9YCk7XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWFjdGlvbi1pdGVtLXByZWZpeFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRleHRcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hY3Rpb24taXRlbS1zdWZmaXhcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICBAaWYgKGhhc1N1Ykl0ZW1zKCkgJiYgKCFpc1Jvb3QoKSB8fCByb290Py5oYXNBcnJvdygpKSkge1xuICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNvbGlkIHt7IGFycm93SWNvbigpIH19IFwiPjwvaT5cbiAgfVxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtcyBheC1hY3Rpb24tbGlzdCBheC1hY3Rpb24tbGlzdC12ZXJ0aWNhbFwiIFtjbGFzcy5heC1zdGF0ZS1vcGVuXT1cImlzT3BlbigpXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxheC10aXRsZSxheC1kaXZpZGVyLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19","import { AXComponent, NXComponent, NXEvent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isBrowser } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, DOCUMENT, HostBinding, HostListener, inject, input, output, PLATFORM_ID, Renderer2, signal, ViewEncapsulation, } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\nexport class AXContextMenuOpeningEvent extends NXEvent {\n constructor() {\n super(...arguments);\n this.canceled = false;\n }\n}\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\nexport class AXContextMenuComponent extends NXComponent {\n // Constructor (Dependency Injection)\n /** @ignore */\n constructor() {\n super();\n // Inputs and Outputs\n this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.openOn = input('hover', ...(ngDevMode ? [{ debugName: \"openOn\" }] : []));\n this.closeOn = input('click', ...(ngDevMode ? [{ debugName: \"closeOn\" }] : []));\n this.orginalItems = input([], ...(ngDevMode ? [{ debugName: \"orginalItems\", alias: 'items' }] : [{ alias: 'items' }]));\n this.target = input(...(ngDevMode ? [undefined, { debugName: \"target\" }] : []));\n this.onItemClick = output();\n this.onOpening = output();\n this.hasArrow = signal(true, ...(ngDevMode ? [{ debugName: \"hasArrow\" }] : []));\n // Injected Services\n this.service = inject(AXMenuService);\n this.renderer = inject(Renderer2);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.items = signal([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n this.service.openContextMenu$.subscribe((e) => {\n if (e.sender == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n // Lifecycle Hooks\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n refresh() {\n this.bindContextEvent();\n }\n // Public Methods\n showAt(point, targetElement, event) {\n const sender = this;\n this.service.closeAllContextMenu$.next({ sender });\n this.service.openContextMenu$.next({ sender, point });\n if (isPlatformBrowser(this.platformID)) {\n if (!targetElement) {\n targetElement = this.document.elementFromPoint(point.x, point.y);\n }\n if (!event) {\n event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.orginalItems()),\n };\n if (event.canceled)\n return;\n }\n this.onOpening.emit(event);\n this.items.set(event.items);\n }\n }\n close() {\n this.nativeElement.classList.remove('ax-state-open');\n this.removeBackdrop();\n }\n // Private Methods (Internal Logic)\n /** @ignore */\n getTargetElements() {\n if (isPlatformBrowser(this.platformID)) {\n const elements = typeof this.target() == 'string'\n ? Array.from(this.document.querySelectorAll(this.target()))\n : Array.isArray(this.target())\n ? this.target()\n : [this.target()];\n return elements;\n }\n return null;\n }\n /** @ignore */\n bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n /** @ignore */\n removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n /** @ignore */\n handleContextMenu(e) {\n e.preventDefault();\n e.stopPropagation();\n //\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));\n //\n const event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.orginalItems()),\n };\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY }, targetElement, event);\n }\n }\n }\n /** @ignore */\n internalShowAt(point) {\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n const itemRect = elementRef.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n // Detect RTL (Right-To-Left) mode\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n let left;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n }\n else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n const bottom = point.y + itemRect.height;\n let top;\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n }\n else {\n top = point.y;\n }\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n this.createBackdrop();\n }\n /** @ignore */\n createBackdrop() {\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', '1000'); // Ensure it's below the context menu\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n this.createEventListeners(this.backdropElement);\n this.document.body.appendChild(this.backdropElement);\n this.backdropElement.appendChild(this.nativeElement);\n }\n /** @ignore */\n removeBackdrop() {\n if (this.backdropElement) {\n if (this.backdropElement.parentNode) {\n this.backdropElement.parentNode.removeChild(this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n createEventListeners(el) {\n const l1 = this.renderer.listen(el, 'click', () => {\n this.close();\n l1();\n });\n const l2 = this.renderer.listen(el, 'wheel', () => {\n this.close();\n l2();\n });\n const l3 = this.renderer.listen(el, 'contextmenu', (e) => {\n this.close();\n // Get all elements under the mouse pointer\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);\n const targetElements = this.getTargetElements();\n if (targetElements.some((target) => elementsUnderMouse.includes(target))) {\n e.preventDefault();\n setTimeout(() => {\n //this.internalShowAt({ x: e.x, y: e.y });\n this.handleContextMenu(e);\n });\n }\n }\n l3();\n });\n }\n // Host Listeners (UI Interaction Handling)\n /** @ignore */\n onWindowEvent() {\n const sender = this;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n /** @ignore */\n get __hostClass() {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXContextMenuComponent, isStandalone: true, selector: \"ax-context-menu\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: true, isRequired: false, transformFunction: null }, orginalItems: { classPropertyName: \"orginalItems\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: \"onItemClick\", onOpening: \"onOpening\" }, host: { listeners: { \"window:scroll\": \"onWindowEvent($event)\", \"window:resize\": \"onWindowEvent($event)\" }, properties: { \"class\": \"this.__hostClass\" } }, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accnt6,ax-menu ax-menu-item.ax-accnt6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accnt6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accnt6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXContextMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ], imports: [NgTemplateOutlet, AXDecoratorGenericComponent, AXMenuItemComponent, AXDecoratorIconComponent], template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accnt6,ax-menu ax-menu-item.ax-accnt6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accnt6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accnt6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { onWindowEvent: [{\n type: HostListener,\n args: ['window:scroll', ['$event']]\n }, {\n type: HostListener,\n args: ['window:resize', ['$event']]\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUErRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXZILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxPQUErQjtJQUE5RTs7UUFFRSxh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QUFRLENBQUM7O3NCQUN4QyxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRckMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhPcmllbnRhdGlvbiwgTlhDb21wb25lbnQsIE5YRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LCBBWERlY29yYXRvckljb25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhQb2ludCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERPQ1VNRU5ULFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUNsb3NlVHJpZ2dlciwgQVhNZW51SXRlbSwgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVPcGVuVHJpZ2dlciwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50IGV4dGVuZHMgTlhFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PiB7XG4gIGl0ZW1zOiBBWE1lbnVJdGVtW107XG4gIGNhbmNlbGVkID0gZmFsc2U7XG4gIHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuZXhwb3J0IHR5cGUgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWENvbnRleHRNZW51Q29tcG9uZW50PjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWVudSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBjb250ZXh0IG1lbnUuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb250ZXh0LW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIEFYTWVudVNlcnZpY2UsXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhSb290TWVudSxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWENvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldCwgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LCBBWE1lbnVJdGVtQ29tcG9uZW50LCBBWERlY29yYXRvckljb25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgTlhDb21wb25lbnQge1xuICAvLyBJbnB1dHMgYW5kIE91dHB1dHNcblxuICBvcmllbnRhdGlvbiA9IGlucHV0PEFYT3JpZW50YXRpb24+KCd2ZXJ0aWNhbCcpO1xuICBvcGVuT24gPSBpbnB1dDxBWE1lbnVPcGVuVHJpZ2dlcj4oJ2hvdmVyJyk7XG4gIGNsb3NlT24gPSBpbnB1dDxBWE1lbnVDbG9zZVRyaWdnZXI+KCdjbGljaycpO1xuICBvcmdpbmFsSXRlbXMgPSBpbnB1dDxBWE1lbnVJdGVtW10+KFtdLCB7IGFsaWFzOiAnaXRlbXMnIH0pO1xuICB0YXJnZXQgPSBpbnB1dDxIVE1MRWxlbWVudCB8IEhUTUxFbGVtZW50W10gfCBzdHJpbmc+KCk7XG5cbiAgb25JdGVtQ2xpY2sgPSBvdXRwdXQ8QVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudD4oKTtcbiAgb25PcGVuaW5nID0gb3V0cHV0PEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQ+KCk7XG5cbiAgaGFzQXJyb3cgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgLy8gSW5qZWN0ZWQgU2VydmljZXNcblxuICBwcml2YXRlIHNlcnZpY2UgPSBpbmplY3QoQVhNZW51U2VydmljZSk7XG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLy8gQ29uc3RydWN0b3IgKERlcGVuZGVuY3kgSW5qZWN0aW9uKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy9cbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXJ2aWNlLm9wZW5Db250ZXh0TWVudSQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICBpZiAoKGUuc2VuZGVyIGFzIGFueSkgPT0gdGhpcykge1xuICAgICAgICB0aGlzLmludGVybmFsU2hvd0F0KGUucG9pbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gTGlmZWN5Y2xlIEhvb2tzXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKGlzQnJvd3NlcigpKSB7XG4gICAgICB0aGlzLnJlbW92ZUNvbnRleHRFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCkge1xuICAgIHRoaXMuYmluZENvbnRleHRFdmVudCgpO1xuICB9XG5cbiAgLy8gUHVibGljIE1ldGhvZHNcblxuICBwdWJsaWMgc2hvd0F0KHBvaW50OiBBWFBvaW50LCB0YXJnZXRFbGVtZW50PzogSFRNTEVsZW1lbnQsIGV2ZW50PzogQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCkge1xuICAgIGNvbnN0IHNlbmRlciA9IHRoaXMgYXMgYW55IGFzIEFYUm9vdE1lbnU7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXIgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLm9wZW5Db250ZXh0TWVudSQubmV4dCh7IHNlbmRlciwgcG9pbnQgfSk7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGlmICghdGFyZ2V0RWxlbWVudCkge1xuICAgICAgICB0YXJnZXRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHBvaW50LngsIHBvaW50LnkpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgfVxuICAgICAgaWYgKCFldmVudCkge1xuICAgICAgICBldmVudCA9IHtcbiAgICAgICAgICBzZW5kZXI6IHRoaXMsXG4gICAgICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgICAgIHRhcmdldEVsZW1lbnQ6IHRhcmdldEVsZW1lbnQsXG4gICAgICAgICAgaXRlbXM6IGNsb25lRGVlcCh0aGlzLm9yZ2luYWxJdGVtcygpKSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGV2ZW50LmNhbmNlbGVkKSByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm9uT3BlbmluZy5lbWl0KGV2ZW50KTtcbiAgICAgIHRoaXMuaXRlbXMuc2V0KGV2ZW50Lml0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2F4LXN0YXRlLW9wZW4nKTtcbiAgICB0aGlzLnJlbW92ZUJhY2tkcm9wKCk7XG4gIH1cblxuICAvLyBQcml2YXRlIFByb3BlcnRpZXNcblxuICBwcml2YXRlIGJhY2tkcm9wRWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4gIHByb3RlY3RlZCBpdGVtcyA9IHNpZ25hbDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICAvLyBQcml2YXRlIE1ldGhvZHMgKEludGVybmFsIExvZ2ljKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZ2V0VGFyZ2V0RWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID1cbiAgICAgICAgdHlwZW9mIHRoaXMudGFyZ2V0KCkgPT0gJ3N0cmluZydcbiAgICAgICAgICA/IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pih0aGlzLnRhcmdldCgpIGFzIHN0cmluZykpXG4gICAgICAgICAgOiBBcnJheS5pc0FycmF5KHRoaXMudGFyZ2V0KCkpXG4gICAgICAgICAgICA/ICh0aGlzLnRhcmdldCgpIGFzIEhUTUxFbGVtZW50W10pXG4gICAgICAgICAgICA6IFt0aGlzLnRhcmdldCgpIGFzIEhUTUxFbGVtZW50XTtcblxuICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgYmluZENvbnRleHRFdmVudCgpIHtcbiAgICB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCkuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZT8uYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVDb250ZXh0RXZlbnQoKSB7XG4gICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgdGhpcy5oYW5kbGVDb250ZXh0TWVudS5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dE1lbnUoZTogTW91c2VFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzVW5kZXJNb3VzZSA9IHRoaXMuZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKTtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlbGVtZW50c1VuZGVyTW91c2UuZmluZCgodGFyZ2V0KSA9PiB0YXJnZXRFbGVtZW50cy5pbmNsdWRlcyh0YXJnZXQpKTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBldmVudDogQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCA9IHtcbiAgICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICAgIHRhcmdldEVsZW1lbnQ6IHRhcmdldEVsZW1lbnQsXG4gICAgICAgIGl0ZW1zOiBjbG9uZURlZXAodGhpcy5vcmdpbmFsSXRlbXMoKSksXG4gICAgICB9O1xuICAgICAgLy9cbiAgICAgIGlmICghZXZlbnQuY2FuY2VsZWQpIHtcbiAgICAgICAgdGhpcy5zaG93QXQoeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9LCB0YXJnZXRFbGVtZW50LCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxlbWVudFJlZi5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1vcGVuJyk7XG4gICAgY29uc3QgaXRlbVJlY3QgPSBlbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgLy8gRGV0ZWN0IFJUTCAoUmlnaHQtVG8tTGVmdCkgbW9kZVxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bChlbGVtZW50UmVmKTtcblxuICAgIGxldCBsZWZ0OiBudW1iZXI7XG4gICAgaWYgKGlzUnRsKSB7XG4gICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgIGxlZnQgPSBwb2ludC54O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgIGlmIChsZWZ0ICsgaXRlbVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aCkge1xuICAgICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJvdHRvbSA9IHBvaW50LnkgKyBpdGVtUmVjdC5oZWlnaHQ7XG4gICAgbGV0IHRvcDogbnVtYmVyO1xuXG4gICAgaWYgKGJvdHRvbSA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgdG9wID0gcG9pbnQueSAtIGl0ZW1SZWN0LmhlaWdodDtcbiAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgIHRvcCA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvcCA9IHBvaW50Lnk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuXG4gICAgdGhpcy5jcmVhdGVCYWNrZHJvcCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCYWNrZHJvcCgpIHtcbiAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3RvcCcsICcwJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2xlZnQnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2hlaWdodCcsICcxMDAlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ3otaW5kZXgnLCAnMTAwMCcpOyAvLyBFbnN1cmUgaXQncyBiZWxvdyB0aGUgY29udGV4dCBtZW51XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJhY2tkcm9wRWxlbWVudCwgJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcblxuICAgIHRoaXMuY3JlYXRlRXZlbnRMaXN0ZW5lcnModGhpcy5iYWNrZHJvcEVsZW1lbnQpO1xuXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuYmFja2Ryb3BFbGVtZW50KTtcbiAgICB0aGlzLmJhY2tkcm9wRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVCYWNrZHJvcCgpIHtcbiAgICBpZiAodGhpcy5iYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLmJhY2tkcm9wRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgIHRoaXMuYmFja2Ryb3BFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5iYWNrZHJvcEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRXZlbnRMaXN0ZW5lcnMoZWw6IEhUTUxFbGVtZW50KSB7XG4gICAgY29uc3QgbDEgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbCwgJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgbDEoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGwyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICd3aGVlbCcsICgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIGwyKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBsMyA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAnY29udGV4dG1lbnUnLCAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgLy8gR2V0IGFsbCBlbGVtZW50cyB1bmRlciB0aGUgbW91c2UgcG9pbnRlclxuICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHNVbmRlck1vdXNlID0gdGhpcy5kb2N1bWVudC5lbGVtZW50c0Zyb21Qb2ludChlLngsIGUueSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudHMgPSB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCk7XG4gICAgICAgIGlmICh0YXJnZXRFbGVtZW50cy5zb21lKCh0YXJnZXQpID0+IGVsZW1lbnRzVW5kZXJNb3VzZS5pbmNsdWRlcyh0YXJnZXQpKSkge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vdGhpcy5pbnRlcm5hbFNob3dBdCh7IHg6IGUueCwgeTogZS55IH0pO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDb250ZXh0TWVudShlKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbDMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEhvc3QgTGlzdGVuZXJzIChVSSBJbnRlcmFjdGlvbiBIYW5kbGluZylcblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25XaW5kb3dFdmVudCgpIHtcbiAgICBjb25zdCBzZW5kZXIgPSB0aGlzIGFzIGFueSBhcyBBWFJvb3RNZW51O1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbENvbnRleHRNZW51JC5uZXh0KHsgc2VuZGVyOiBzZW5kZXIgfSk7IC8vIENsb3NlIGFsbCBtZW51cyBvbiBzY3JvbGwgb3IgcmVzaXplXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IGFueSB7XG4gICAgcmV0dXJuIFsnYXgtbWVudS1jb250YWluZXInLCBgYXgtb3JpZW50YXRpb24tJHt0aGlzLm9yaWVudGF0aW9uKCl9YCwgJ2F4LWFjdGlvbi1saXN0JywgJ2F4LWFjdGlvbi1saXN0LXZlcnRpY2FsJ107XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxheC1kaXZpZGVyLGF4LXRpdGxlLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cblxuQGZvciAobm9kZSBvZiBpdGVtcygpOyB0cmFjayBub2RlKSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj4gPC9uZy1jb250YWluZXI+XG59XG5cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW0uZ3JvdXA/LnRpdGxlKSB7XG4gICAgPGF4LXRpdGxlPnt7IGl0ZW0uZ3JvdXA/LnRpdGxlIH19PC9heC10aXRsZT5cbiAgfVxuICA8YXgtbWVudS1pdGVtIFtuYW1lXT1cIml0ZW0ubmFtZVwiIFtkYXRhXT1cIml0ZW0uZGF0YVwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIj5cbiAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaXRlbS5pY29uXCI+IDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0udGV4dCkge1xuICAgICAgPGF4LXRleHQ+e3sgaXRlbS50ZXh0IH19PC9heC10ZXh0PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0uc3VmZml4KSB7XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnN1ZmZpeC50ZXh0IH19PC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgfVxuICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0uaXRlbXM7IHRyYWNrIGNoaWxkKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9heC1tZW51LWl0ZW0+XG4gIEBpZiAoaXRlbS5icmVhaykge1xuICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, inject, input, output, ViewEncapsulation, } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\nexport class AXMenuComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.openOn = input('hover', ...(ngDevMode ? [{ debugName: \"openOn\" }] : []));\n this.closeOn = input('leave', ...(ngDevMode ? [{ debugName: \"closeOn\" }] : []));\n this.service = inject(AXMenuService);\n this.onItemClick = output();\n this.items = input([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.hasArrow = input(true, ...(ngDevMode ? [{ debugName: \"hasArrow\" }] : []));\n }\n /** @ignore */\n get __hostClass() {\n return [\n 'ax-root-menu',\n 'ax-action-list',\n `ax-action-list-${this.orientation()}`,\n `${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,\n ];\n }\n /**\n * Closes all open menus and submenus for this root menu.\n *\n * @returns void - No return value. All open menu overlays are closed and hidden.\n */\n close() {\n this.service.closeAll$.next();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXMenuComponent, isStandalone: true, selector: \"ax-menu\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, hasArrow: { classPropertyName: \"hasArrow\", publicName: \"hasArrow\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: \"onItemClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accnt6,ax-menu ax-menu-item.ax-accnt6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accnt6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accnt6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ], imports: [NgTemplateOutlet, AXDecoratorGenericComponent, AXMenuItemComponent, AXDecoratorIconComponent], template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accnt6,ax-menu ax-menu-item.ax-accnt6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accnt6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accnt6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accnt6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBaUIsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUErRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBSXZIOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBbkJoRDs7UUFvQkUsZ0JBQVcsR0FBRyxLQUFLLENBQWdCLFlBQVksdURBQUMsQ0FBQztRQUVqRCxXQUFNLEdBQUcsS0FBSyxDQUFvQixPQUFPLGtEQUFDLENBQUM7UUFFM0MsWUFBTyxHQUFHLEtBQUssQ0FBcUIsT0FBTyxtREFBQyxDQUFDO1FBRTdDLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEMsZ0JBQVcsR0FBRyxNQUFNLEVBQXlCLENBQUM7UUFFOUMsVUFBSyxHQUFHLEtBQUssQ0FBZSxFQUFFLGlEQUFDLENBQUM7UUFFaEMsYUFBUSxHQUFHLEtBQUssQ0FBVSxJQUFJLG9EQUFDLENBQUM7S0FxQmpDO0lBbkJDLGNBQWM7SUFDZCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixrQkFBa0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1NBQzdDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQWpDVSxlQUFlO2tHQUFmLGVBQWUsOHhCQWJmO1lBQ1QsYUFBYTtZQUNiO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsZUFBZTthQUM3QjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixXQUFXLEVBQUUsZUFBZTthQUM3QjtTQUNGLGlEQ3RDSCxxaUNBZ0NBLDI1VERPWSxnQkFBZ0Isb0pBQUUsMkJBQTJCLHlMQUFFLG1CQUFtQiw4SEFBRSx3QkFBd0I7OzJGQUUzRixlQUFlO2tCQW5CM0IsU0FBUzsrQkFDRSxTQUFTLGlCQUdKLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QsYUFBYTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyxpQkFBaUI7eUJBQzdCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0YsV0FDUSxDQUFDLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDOzhCQW1CbkcsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhPcmllbnRhdGlvbiwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LCBBWERlY29yYXRvckljb25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUNsb3NlVHJpZ2dlciwgQVhNZW51SXRlbSwgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVPcGVuVHJpZ2dlciwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYTWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWE1lbnVDb21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIG1lbnUgaXRlbXMuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWE1lbnVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYTWVudUl0ZW1Db21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgb3JpZW50YXRpb24gPSBpbnB1dDxBWE9yaWVudGF0aW9uPignaG9yaXpvbnRhbCcpO1xuXG4gIG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcblxuICBjbG9zZU9uID0gaW5wdXQ8QVhNZW51Q2xvc2VUcmlnZ2VyPignbGVhdmUnKTtcblxuICBzZXJ2aWNlID0gaW5qZWN0KEFYTWVudVNlcnZpY2UpO1xuXG4gIG9uSXRlbUNsaWNrID0gb3V0cHV0PEFYTWVudUl0ZW1zQ2xpY2tFdmVudD4oKTtcblxuICBpdGVtcyA9IGlucHV0PEFYTWVudUl0ZW1bXT4oW10pO1xuXG4gIGhhc0Fycm93ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdheC1yb290LW1lbnUnLFxuICAgICAgJ2F4LWFjdGlvbi1saXN0JyxcbiAgICAgIGBheC1hY3Rpb24tbGlzdC0ke3RoaXMub3JpZW50YXRpb24oKX1gLFxuICAgICAgYCR7IXRoaXMuaGFzQXJyb3coKSA/ICdheC1oaWRlLWFycm93JyA6ICcnfWAsXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG9wZW4gbWVudXMgYW5kIHN1Ym1lbnVzIGZvciB0aGlzIHJvb3QgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gQWxsIG9wZW4gbWVudSBvdmVybGF5cyBhcmUgY2xvc2VkIGFuZCBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxheC1kaXZpZGVyLGF4LXRpdGxlLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cblxuQGZvciAobm9kZSBvZiBpdGVtcygpOyB0cmFjayBub2RlKSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj4gPC9uZy1jb250YWluZXI+XG59XG5cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW0uZ3JvdXA/LnRpdGxlKSB7XG4gICAgPGF4LXRpdGxlPnt7IGl0ZW0uZ3JvdXA/LnRpdGxlIH19PC9heC10aXRsZT5cbiAgfVxuICA8YXgtbWVudS1pdGVtIFtuYW1lXT1cIml0ZW0ubmFtZVwiIFtkYXRhXT1cIml0ZW0uZGF0YVwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIj5cbiAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaXRlbS5pY29uXCI+IDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0udGV4dCkge1xuICAgICAgPGF4LXRleHQ+e3sgaXRlbS50ZXh0IH19PC9heC10ZXh0PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0uc3VmZml4KSB7XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnN1ZmZpeC50ZXh0IH19PC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgfVxuICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0uaXRlbXM7IHRyYWNrIGNoaWxkKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9heC1tZW51LWl0ZW0+XG4gIEBpZiAoaXRlbS5icmVhaykge1xuICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuComponent } from './menu.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\nexport class AXMenuModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule, AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent], exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES, AXMenuComponent, AXContextMenuComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, ...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRW5ELE1BQU0sU0FBUyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDakYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBTzFHLE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQUpiLFlBQVksRUFIUCxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFEckYsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixhQUE1RCxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsc0JBQXNCOytHQVFsRSxZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU8sRUFKSSxlQUFlLEVBQUUsc0JBQXNCOzsyRkFRbEUsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYTWVudUl0ZW1Db21wb25lbnQsIEFYTWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW0FYRGVjb3JhdG9yTW9kdWxlLCBBWExvYWRpbmdNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIEFYUG9wb3Zlck1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLk1PRFVMRVMsIC4uLkNPTVBPTkVOVF0sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvYWNvcmV4LWNvbXBvbmVudHMtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-menu.mjs","sources":["../tmp-esm2022/menu/lib/menu.service.js","../tmp-esm2022/menu/lib/menu.types.js","../tmp-esm2022/menu/lib/menu-item.component.js","../tmp-esm2022/menu/lib/context-menu.component.js","../tmp-esm2022/menu/lib/menu.component.js","../tmp-esm2022/menu/lib/menu.module.js","../tmp-esm2022/menu/acorex-components-menu.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXMenuService {\n constructor() {\n this.closeAll$ = new Subject();\n this.open$ = new Subject();\n this.close$ = new Subject();\n this.closeExcept$ = new Subject();\n this.openContextMenu$ = new Subject();\n this.closeAllContextMenu$ = new Subject();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJL0IsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFUyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDekMsVUFBSyxHQUFxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBcUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN6RCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO1FBRXRELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUEwQyxDQUFDO1FBQ3pFLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0tBQ3JFOzhHQVJZLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsIEFYUm9vdE1lbnUgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNZW51U2VydmljZSB7XG4gIHB1YmxpYyBjbG9zZUFsbCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgb3BlbiQ6IFN1YmplY3Q8QVhNZW51SXRlbUNvbXBvbmVudEJhc2U+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGNsb3NlJDogU3ViamVjdDxBWE1lbnVJdGVtQ29tcG9uZW50QmFzZT4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgY2xvc2VFeGNlcHQkID0gbmV3IFN1YmplY3Q8QVhNZW51SXRlbUNvbXBvbmVudEJhc2U+KCk7XG5cbiAgcHVibGljIG9wZW5Db250ZXh0TWVudSQgPSBuZXcgU3ViamVjdDx7IHNlbmRlcjogQVhSb290TWVudTsgcG9pbnQ6IEFYUG9pbnQgfT4oKTtcbiAgcHVibGljIGNsb3NlQWxsQ29udGV4dE1lbnUkID0gbmV3IFN1YmplY3Q8eyBzZW5kZXI6IEFYUm9vdE1lbnUgfT4oKTtcbn1cbiJdfQ==","import { NXClickEvent } from '@acorex/cdk/common';\nexport class AXRootMenu {\n}\nexport class AXMenuItemComponentBase {\n}\nexport class AXMenuItem {\n}\nexport class AXMenuItemClickBaseEvent extends NXClickEvent {\n constructor() {\n super(...arguments);\n this.canceled = false;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQyxZQUFZLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQU1oRyxNQUFNLE9BQWdCLFVBQVU7Q0FPL0I7QUFFRCxNQUFNLE9BQWdCLHVCQUF1QjtDQUFHO0FBRWhELE1BQU0sT0FBZ0IsVUFBVTtDQWdCL0I7QUFFRCxNQUFNLE9BQU8sd0JBQThELFNBQVEsWUFBZTtJQUFsRzs7UUFNRSxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ25CLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIEFYU3R5bGVDb2xvclR5cGUsIE5YQ2xpY2tFdmVudCwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgT3V0cHV0RW1pdHRlclJlZiwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhNZW51T3BlblRyaWdnZXIgPSAnY2xpY2snIHwgJ2hvdmVyJztcbmV4cG9ydCB0eXBlIEFYTWVudUNsb3NlVHJpZ2dlciA9ICdjbGljaycgfCAnbGVhdmUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhSb290TWVudSB7XG4gIG9yaWVudGF0aW9uOiBXcml0YWJsZVNpZ25hbDxBWE9yaWVudGF0aW9uPjtcbiAgb3Blbk9uOiBXcml0YWJsZVNpZ25hbDxBWE1lbnVPcGVuVHJpZ2dlcj47XG4gIGNsb3NlT246IFdyaXRhYmxlU2lnbmFsPEFYTWVudUNsb3NlVHJpZ2dlcj47XG4gIG9uSXRlbUNsaWNrOiBPdXRwdXRFbWl0dGVyUmVmPEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudD47XG4gIG5hdGl2ZUVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBoYXNBcnJvdzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNZW51SXRlbSB7XG4gIGNvbG9yPzogQVhTdHlsZUNvbG9yVHlwZTtcbiAgbmFtZT86IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xuICBkYXRhPzogYW55O1xuICBpY29uPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGl0ZW1zPzogQVhNZW51SXRlbVtdO1xuICBzdWZmaXg/OiB7XG4gICAgdGV4dDogc3RyaW5nO1xuICB9O1xuICBicmVhaz86IGJvb2xlYW47XG4gIGdyb3VwPzoge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ2xpY2tCYXNlRXZlbnQ8VCBleHRlbmRzIE5YQ29tcG9uZW50ID0gTlhDb21wb25lbnQ+IGV4dGVuZHMgTlhDbGlja0V2ZW50PFQ+IHtcbiAgaXRlbToge1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGRhdGE/OiBhbnk7XG4gIH07XG4gIGNhbmNlbGVkID0gZmFsc2U7XG59XG4iXX0=","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, HostBinding, HostListener, inject, input, output, Renderer2, signal, ViewEncapsulation, } from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\nexport class AXMenuItemComponent extends NXComponent {\n constructor() {\n super();\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.hasSubItems = signal(false, ...(ngDevMode ? [{ debugName: \"hasSubItems\" }] : []));\n this.isFirstLevel = signal(false, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\n this.root = inject(AXRootMenu);\n this.isRoot = () => this.parent == null;\n this.service = inject(AXMenuService);\n this.scrollableParents = [];\n this.unsuscriber = inject(AXUnsubscriber);\n this.renderer = inject(Renderer2);\n this.arrowIcon = computed(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n }, ...(ngDevMode ? [{ debugName: \"arrowIcon\" }] : []));\n this.onClick = output();\n this.name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n this.data = input(...(ngDevMode ? [undefined, { debugName: \"data\" }] : []));\n this.disabled = input(...(ngDevMode ? [undefined, { debugName: \"disabled\" }] : []));\n this.color = input(...(ngDevMode ? [undefined, { debugName: \"color\" }] : []));\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if (this === item) {\n this.isOpen.set(true);\n this.calculatePosition();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if (this == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item);\n });\n }\n closeExcept(item) {\n const list = [item];\n // TODO: Check for better solution\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? parentEl?.['__axContext__'] : null;\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n getText() {\n return this.nativeElement.querySelector('ax-text')?.innerText;\n }\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? parentEl?.['__axContext__'] : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n }\n else {\n this.hasSubItems.set(false);\n }\n }\n /**\n * Opens the submenu of this menu item if it has sub-items and is not disabled.\n *\n * Inherited behavior: Uses the injected service to notify other items to close.\n *\n * @returns void - No return value. Triggers submenu opening side-effects.\n */\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n this.service.open$.next(this);\n }\n }\n /**\n * Closes the submenu of this menu item if open.\n *\n * @returns void - No return value. Triggers submenu closing side-effects.\n */\n close() {\n this.service.close$.next(this);\n }\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n calculatePosition() {\n const submenu = this.nativeElement.querySelector('.ax-menu-items');\n if (!submenu)\n return;\n // Temporarily show the menu to measure its dimensions, but keep it invisible\n this.renderer.setStyle(submenu, 'visibility', 'hidden');\n this.renderer.setStyle(submenu, 'display', 'block');\n const submenuRect = submenu.getBoundingClientRect();\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n // Reset temporary styles\n this.renderer.removeStyle(submenu, 'visibility');\n this.renderer.removeStyle(submenu, 'display');\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n let finalTop;\n let finalLeft;\n // --- 1. VERTICAL POSITIONING ---\n const preferredTop = this.isFirstLevel() && this.root.orientation() === 'horizontal'\n ? itemRect.bottom // For horizontal menu, open below\n : itemRect.top; // For vertical menu, align with parent top\n const alternateTop = itemRect.top - submenuRect.height; // Position for opening upwards\n if (preferredTop + submenuRect.height <= windowHeight) {\n finalTop = preferredTop;\n }\n else if (this.isFirstLevel() && this.root.orientation() === 'horizontal' && alternateTop >= 0) {\n finalTop = alternateTop;\n }\n else {\n finalTop = windowHeight - submenuRect.height;\n }\n if (finalTop < 0) {\n finalTop = 0;\n }\n // --- 2. HORIZONTAL POSITIONING ---\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n const preferredLeft = isRtl ? itemRect.right - submenuRect.width : itemRect.left;\n const alternateLeft = isRtl ? itemRect.left : itemRect.right - submenuRect.width;\n if (preferredLeft >= 0 && preferredLeft + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeft;\n }\n else {\n finalLeft = Math.max(0, Math.min(alternateLeft, windowWidth - submenuRect.width));\n }\n }\n else {\n const preferredLeftRtl = itemRect.left - submenuRect.width;\n const alternateLeftRtl = itemRect.right;\n const preferredLeftLtr = itemRect.right;\n const alternateLeftLtr = itemRect.left - submenuRect.width;\n if (isRtl) {\n if (preferredLeftRtl >= 0) {\n finalLeft = preferredLeftRtl;\n }\n else if (alternateLeftRtl + submenuRect.width <= windowWidth) {\n finalLeft = alternateLeftRtl;\n }\n else {\n finalLeft = 0;\n }\n }\n else {\n if (preferredLeftLtr + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeftLtr;\n }\n else if (alternateLeftLtr >= 0) {\n finalLeft = alternateLeftLtr;\n }\n else {\n finalLeft = windowWidth - submenuRect.width;\n }\n }\n }\n // --- 3. NEW: OVERLAP-AWARE VERTICAL SHIFT ---\n const isNestedMenu = !(this.isFirstLevel() && this.root.orientation() === 'horizontal');\n if (isNestedMenu) {\n const overlapsParent = finalLeft < itemRect.right && itemRect.left < finalLeft + submenuRect.width;\n if (overlapsParent) {\n const shiftedTop = itemRect.bottom;\n if (shiftedTop + submenuRect.height <= windowHeight) {\n finalTop = shiftedTop;\n }\n }\n }\n // --- 4. APPLY FINAL STYLES ---\n this.renderer.setStyle(submenu, 'position', 'fixed');\n this.renderer.setStyle(submenu, 'top', `${finalTop}px`);\n this.renderer.setStyle(submenu, 'left', `${finalLeft}px`);\n }\n handleClick(e) {\n e.stopPropagation();\n if (this.disabled())\n return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n };\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n }\n else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n handleMouseEnter(event) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n handleMouseLeave(event) {\n event.stopPropagation();\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n onClickOutside(event) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n // Remove scroll event listeners\n removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n /** @ignore */\n get __hostClass() {\n const list = ['ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n list.push(`ax-${this.color() ?? 'default'}`);\n return list;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXMenuItemComponent, isStandalone: true, selector: \"ax-menu-item\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: \"data\", publicName: \"data\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onClick: \"onClick\" }, host: { listeners: { \"click\": \"handleClick($event)\", \"mouseenter\": \"handleMouseEnter($event)\", \"mouseleave\": \"handleMouseLeave($event)\", \"window:scroll\": \"onWindowEvent($event)\", \"window:resize\": \"onWindowEvent($event)\", \"document:click\": \"onClickOutside($event)\" }, properties: { \"class\": \"this.__hostClass\" } }, providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-action-item-prefix\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n</div>\\n<div class=\\\"ax-action-item-suffix\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\\n <i class=\\\"ax-icon ax-icon-solid {{ arrowIcon() }} \\\"></i>\\n }\\n</div>\\n<div class=\\\"ax-menu-items ax-action-list ax-action-list-vertical\\\" [class.ax-state-open]=\\\"isOpen()\\\">\\n <ng-content select=\\\"ax-menu-item,ax-title,ax-divider,ng-container\\\"></ng-content>\\n</div>\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-menu-item', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ], template: \"<div class=\\\"ax-action-item-prefix\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <ng-content select=\\\"ax-text\\\"></ng-content>\\n</div>\\n<div class=\\\"ax-action-item-suffix\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\\n <i class=\\\"ax-icon ax-icon-solid {{ arrowIcon() }} \\\"></i>\\n }\\n</div>\\n<div class=\\\"ax-menu-items ax-action-list ax-action-list-vertical\\\" [class.ax-state-open]=\\\"isOpen()\\\">\\n <ng-content select=\\\"ax-menu-item,ax-title,ax-divider,ng-container\\\"></ng-content>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { handleClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], handleMouseEnter: [{\n type: HostListener,\n args: ['mouseenter', ['$event']]\n }], handleMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event']]\n }], onWindowEvent: [{\n type: HostListener,\n args: ['window:scroll', ['$event']]\n }, {\n type: HostListener,\n args: ['window:resize', ['$event']]\n }], onClickOutside: [{\n type: HostListener,\n args: ['document:click', ['$event']]\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBb0IsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBNEIsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUk3Rjs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFdBQVc7SUFnQ2xEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFoQ0EsV0FBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLGtEQUFDLENBQUM7UUFDdkIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyx1REFBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssd0RBQUMsQ0FBQztRQUc3QixTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFCLFdBQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJ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QUNUOzRCQUNFLE9BQU8sRUFBRSx1QkFBdUI7NEJBQ2hDLFdBQVcscUJBQXFCO3lCQUNqQzt3QkFDRCxjQUFjO3dCQUNkOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLHFCQUFxQjt5QkFDakM7cUJBQ0Y7d0RBNk9PLFdBQVc7c0JBRGxCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCekIsZ0JBQWdCO3NCQUR2QixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQjlCLGdCQUFnQjtzQkFEdkIsWUFBWTt1QkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI5QixhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVNqQyxjQUFjO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW9DdEMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhTdHlsZUNvbG9yVHlwZSwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVJdGVtQ29tcG9uZW50QmFzZSwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYTWVudUl0ZW1DbGlja0V2ZW50ID0gQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50PEFYTWVudUl0ZW1Db21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGl0ZW0gY29tcG9uZW50IHVzZWQgd2l0aGluIGFuIGBheC1tZW51YC5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhNZW51SXRlbUNvbXBvbmVudEJhc2UsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51SXRlbUNvbXBvbmVudCxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYQ29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYTWVudUl0ZW1Db21wb25lbnQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51SXRlbUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBoYXNTdWJJdGVtcyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBpc0ZpcnN0TGV2ZWwgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXIhOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByb3RlY3RlZCByb290ID0gaW5qZWN0KEFYUm9vdE1lbnUpO1xuICBwcm90ZWN0ZWQgcGFyZW50PzogQVhNZW51SXRlbUNvbXBvbmVudCB8IG51bGw7XG4gIHByb3RlY3RlZCBpc1Jvb3QgPSAoKSA9PiB0aGlzLnBhcmVudCA9PSBudWxsO1xuXG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWE1lbnVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzY3JvbGxhYmxlUGFyZW50czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgdW5zdXNjcmliZXIgPSBpbmplY3QoQVhVbnN1YnNjcmliZXIpO1xuICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgcHJvdGVjdGVkIGFycm93SWNvbiA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzLnJvb3Qub3JpZW50YXRpb24oKSA9PSAnaG9yaXpvbnRhbCcgJiYgdGhpcy5pc0ZpcnN0TGV2ZWwoKVxuICAgICAgPyAnYXgtaWNvbi1jaGV2cm9uLWRvd24nXG4gICAgICA6IGlzUnRsXG4gICAgICAgID8gJ2F4LWljb24tY2hldnJvbi1sZWZ0J1xuICAgICAgICA6ICdheC1pY29uLWNoZXZyb24tcmlnaHQnO1xuICB9KTtcblxuICBvbkNsaWNrID0gb3V0cHV0PEFYTWVudUl0ZW1DbGlja0V2ZW50PigpO1xuXG4gIG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGRhdGEgPSBpbnB1dDxhbnk+KCk7XG4gIGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgY29sb3IgPSBpbnB1dDxBWFN0eWxlQ29sb3JUeXBlPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLy9cbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5kZXRlY3RTdWJJdGVtcygpO1xuICAgICAgdGhpcy5vYnNlcnZlTXV0YXRpb25zKCk7XG4gICAgICB0aGlzLmJpbmRTY3JvbGxFdmVudHMoKTtcbiAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQucGlwZSh0aGlzLnVuc3VzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuXG4gICAgdGhpcy5zZXJ2aWNlLm9wZW4kLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIGlmICgodGhpcyBhcyBhbnkpID09PSBpdGVtKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vXG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlJC5waXBlKHRoaXMudW5zdXNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICBpZiAoKHRoaXMgYXMgYW55KSA9PSBpdGVtKSB7XG4gICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VFeGNlcHQkLnBpcGUodGhpcy51bnN1c2NyaWJlci50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIHRoaXMuY2xvc2VFeGNlcHQoaXRlbSBhcyBBWE1lbnVJdGVtQ29tcG9uZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VFeGNlcHQoaXRlbTogQVhNZW51SXRlbUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGxpc3Q6IEFYTWVudUl0ZW1Db21wb25lbnRbXSA9IFtpdGVtXTtcbiAgICAvLyBUT0RPOiBDaGVjayBmb3IgYmV0dGVyIHNvbHV0aW9uXG4gICAgY29uc3QgcGFyZW50RWwgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8ucGFyZW50RWxlbWVudDtcbiAgICB0aGlzLnBhcmVudCA9IHBhcmVudEVsPy50YWdOYW1lID09ICdBWC1NRU5VLUlURU0nID8gKHBhcmVudEVsPy5bJ19fYXhDb250ZXh0X18nXSBhcyBBWE1lbnVJdGVtQ29tcG9uZW50KSA6IG51bGw7XG4gICAgLy9cbiAgICBsZXQgcGFyZW50ID0gaXRlbS5wYXJlbnQ7XG4gICAgd2hpbGUgKHBhcmVudCAhPSBudWxsKSB7XG4gICAgICBsaXN0LnB1c2gocGFyZW50KTtcbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQ7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCFsaXN0LmluY2x1ZGVzKHRoaXMpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlTXV0YXRpb25zKCkge1xuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIHRoaXMuZGV0ZWN0U3ViSXRlbXMoKTtcbiAgICB9KTtcblxuICAgIC8vIFN0YXJ0IG9ic2VydmluZyBjaGFuZ2VzIGluIGNoaWxkIGVsZW1lbnRzXG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignYXgtdGV4dCcpPy5pbm5lclRleHQ7XG4gIH1cblxuICAvKipcbiAgICogTWFudWFsbHkgZGV0ZWN0IGFsbCBgYXgtbWVudS1pdGVtYCBlbGVtZW50cyBhbmQgY2hlY2sgaWYgdGhpcyBtZW51IGl0ZW0gaGFzIHN1Yi1pdGVtcy5cbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0U3ViSXRlbXMoKSB7XG4gICAgLy9cbiAgICBjb25zdCBwYXJlbnRFbCA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMucGFyZW50ID0gcGFyZW50RWw/LnRhZ05hbWUgPT0gJ0FYLU1FTlUtSVRFTScgPyAocGFyZW50RWw/LlsnX19heENvbnRleHRfXyddIGFzIEFYTWVudUl0ZW1Db21wb25lbnQpIDogbnVsbDtcbiAgICAvL1xuICAgIGNvbnN0IHRhZyA9IHRoaXMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50Py50YWdOYW1lO1xuICAgIHRoaXMuaXNGaXJzdExldmVsLnNldCh0YWcgPT0gJ0FYLU1FTlUnIHx8IHRhZyA9PSAnQVgtQ09OVEVYVC1NRU5VJyk7XG4gICAgY29uc3Qgc3ViSXRlbXMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXgtbWVudS1pdGVtJyk7XG4gICAgaWYgKHN1Ykl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaGFzU3ViSXRlbXMuc2V0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc1N1Ykl0ZW1zLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBzdWJtZW51IG9mIHRoaXMgbWVudSBpdGVtIGlmIGl0IGhhcyBzdWItaXRlbXMgYW5kIGlzIG5vdCBkaXNhYmxlZC5cbiAgICpcbiAgICogSW5oZXJpdGVkIGJlaGF2aW9yOiBVc2VzIHRoZSBpbmplY3RlZCBzZXJ2aWNlIHRvIG5vdGlmeSBvdGhlciBpdGVtcyB0byBjbG9zZS5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gVHJpZ2dlcnMgc3VibWVudSBvcGVuaW5nIHNpZGUtZWZmZWN0cy5cbiAgICovXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlRXhjZXB0JC5uZXh0KHRoaXMpO1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCgpICYmIHRoaXMuaGFzU3ViSXRlbXMoKSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLm9wZW4kLm5leHQodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgc3VibWVudSBvZiB0aGlzIG1lbnUgaXRlbSBpZiBvcGVuLlxuICAgKlxuICAgKiBAcmV0dXJucyB2b2lkIC0gTm8gcmV0dXJuIHZhbHVlLiBUcmlnZ2VycyBzdWJtZW51IGNsb3Npbmcgc2lkZS1lZmZlY3RzLlxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlJC5uZXh0KHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIHN1Ym1lbnUgdG8gYXZvaWQgaXQgZ29pbmcgb3V0IG9mIHRoZSB2aWV3cG9ydC5cbiAgICovXG4gIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oKSB7XG4gICAgY29uc3Qgc3VibWVudSA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmF4LW1lbnUtaXRlbXMnKTtcbiAgICBpZiAoIXN1Ym1lbnUpIHJldHVybjtcblxuICAgIC8vIFRlbXBvcmFyaWx5IHNob3cgdGhlIG1lbnUgdG8gbWVhc3VyZSBpdHMgZGltZW5zaW9ucywgYnV0IGtlZXAgaXQgaW52aXNpYmxlXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAndmlzaWJpbGl0eScsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XG5cbiAgICBjb25zdCBzdWJtZW51UmVjdCA9IHN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgaXRlbVJlY3QgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAvLyBSZXNldCB0ZW1wb3Jhcnkgc3R5bGVzXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShzdWJtZW51LCAndmlzaWJpbGl0eScpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoc3VibWVudSwgJ2Rpc3BsYXknKTtcblxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgbGV0IGZpbmFsVG9wOiBudW1iZXI7XG4gICAgbGV0IGZpbmFsTGVmdDogbnVtYmVyO1xuXG4gICAgLy8gLS0tIDEuIFZFUlRJQ0FMIFBPU0lUSU9OSU5HIC0tLVxuICAgIGNvbnN0IHByZWZlcnJlZFRvcCA9XG4gICAgICB0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgPyBpdGVtUmVjdC5ib3R0b20gLy8gRm9yIGhvcml6b250YWwgbWVudSwgb3BlbiBiZWxvd1xuICAgICAgICA6IGl0ZW1SZWN0LnRvcDsgLy8gRm9yIHZlcnRpY2FsIG1lbnUsIGFsaWduIHdpdGggcGFyZW50IHRvcFxuXG4gICAgY29uc3QgYWx0ZXJuYXRlVG9wID0gaXRlbVJlY3QudG9wIC0gc3VibWVudVJlY3QuaGVpZ2h0OyAvLyBQb3NpdGlvbiBmb3Igb3BlbmluZyB1cHdhcmRzXG5cbiAgICBpZiAocHJlZmVycmVkVG9wICsgc3VibWVudVJlY3QuaGVpZ2h0IDw9IHdpbmRvd0hlaWdodCkge1xuICAgICAgZmluYWxUb3AgPSBwcmVmZXJyZWRUb3A7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzRmlyc3RMZXZlbCgpICYmIHRoaXMucm9vdC5vcmllbnRhdGlvbigpID09PSAnaG9yaXpvbnRhbCcgJiYgYWx0ZXJuYXRlVG9wID49IDApIHtcbiAgICAgIGZpbmFsVG9wID0gYWx0ZXJuYXRlVG9wO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaW5hbFRvcCA9IHdpbmRvd0hlaWdodCAtIHN1Ym1lbnVSZWN0LmhlaWdodDtcbiAgICB9XG5cbiAgICBpZiAoZmluYWxUb3AgPCAwKSB7XG4gICAgICBmaW5hbFRvcCA9IDA7XG4gICAgfVxuXG4gICAgLy8gLS0tIDIuIEhPUklaT05UQUwgUE9TSVRJT05JTkcgLS0tXG4gICAgaWYgKHRoaXMuaXNGaXJzdExldmVsKCkgJiYgdGhpcy5yb290Lm9yaWVudGF0aW9uKCkgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgY29uc3QgcHJlZmVycmVkTGVmdCA9IGlzUnRsID8gaXRlbVJlY3QucmlnaHQgLSBzdWJtZW51UmVjdC53aWR0aCA6IGl0ZW1SZWN0LmxlZnQ7XG4gICAgICBjb25zdCBhbHRlcm5hdGVMZWZ0ID0gaXNSdGwgPyBpdGVtUmVjdC5sZWZ0IDogaXRlbVJlY3QucmlnaHQgLSBzdWJtZW51UmVjdC53aWR0aDtcblxuICAgICAgaWYgKHByZWZlcnJlZExlZnQgPj0gMCAmJiBwcmVmZXJyZWRMZWZ0ICsgc3VibWVudVJlY3Qud2lkdGggPD0gd2luZG93V2lkdGgpIHtcbiAgICAgICAgZmluYWxMZWZ0ID0gcHJlZmVycmVkTGVmdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbmFsTGVmdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKGFsdGVybmF0ZUxlZnQsIHdpbmRvd1dpZHRoIC0gc3VibWVudVJlY3Qud2lkdGgpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcHJlZmVycmVkTGVmdFJ0bCA9IGl0ZW1SZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aDtcbiAgICAgIGNvbnN0IGFsdGVybmF0ZUxlZnRSdGwgPSBpdGVtUmVjdC5yaWdodDtcblxuICAgICAgY29uc3QgcHJlZmVycmVkTGVmdEx0ciA9IGl0ZW1SZWN0LnJpZ2h0O1xuICAgICAgY29uc3QgYWx0ZXJuYXRlTGVmdEx0ciA9IGl0ZW1SZWN0LmxlZnQgLSBzdWJtZW51UmVjdC53aWR0aDtcblxuICAgICAgaWYgKGlzUnRsKSB7XG4gICAgICAgIGlmIChwcmVmZXJyZWRMZWZ0UnRsID49IDApIHtcbiAgICAgICAgICBmaW5hbExlZnQgPSBwcmVmZXJyZWRMZWZ0UnRsO1xuICAgICAgICB9IGVsc2UgaWYgKGFsdGVybmF0ZUxlZnRSdGwgKyBzdWJtZW51UmVjdC53aWR0aCA8PSB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgIGZpbmFsTGVmdCA9IGFsdGVybmF0ZUxlZnRSdGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmluYWxMZWZ0ID0gMDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByZWZlcnJlZExlZnRMdHIgKyBzdWJtZW51UmVjdC53aWR0aCA8PSB3aW5kb3dXaWR0aCkge1xuICAgICAgICAgIGZpbmFsTGVmdCA9IHByZWZlcnJlZExlZnRMdHI7XG4gICAgICAgIH0gZWxzZSBpZiAoYWx0ZXJuYXRlTGVmdEx0ciA+PSAwKSB7XG4gICAgICAgICAgZmluYWxMZWZ0ID0gYWx0ZXJuYXRlTGVmdEx0cjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaW5hbExlZnQgPSB3aW5kb3dXaWR0aCAtIHN1Ym1lbnVSZWN0LndpZHRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tIDMuIE5FVzogT1ZFUkxBUC1BV0FSRSBWRVJUSUNBTCBTSElGVCAtLS1cbiAgICBjb25zdCBpc05lc3RlZE1lbnUgPSAhKHRoaXMuaXNGaXJzdExldmVsKCkgJiYgdGhpcy5yb290Lm9yaWVudGF0aW9uKCkgPT09ICdob3Jpem9udGFsJyk7XG4gICAgaWYgKGlzTmVzdGVkTWVudSkge1xuICAgICAgY29uc3Qgb3ZlcmxhcHNQYXJlbnQgPSBmaW5hbExlZnQgPCBpdGVtUmVjdC5yaWdodCAmJiBpdGVtUmVjdC5sZWZ0IDwgZmluYWxMZWZ0ICsgc3VibWVudVJlY3Qud2lkdGg7XG4gICAgICBpZiAob3ZlcmxhcHNQYXJlbnQpIHtcbiAgICAgICAgY29uc3Qgc2hpZnRlZFRvcCA9IGl0ZW1SZWN0LmJvdHRvbTtcbiAgICAgICAgaWYgKHNoaWZ0ZWRUb3AgKyBzdWJtZW51UmVjdC5oZWlnaHQgPD0gd2luZG93SGVpZ2h0KSB7XG4gICAgICAgICAgZmluYWxUb3AgPSBzaGlmdGVkVG9wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gLS0tIDQuIEFQUExZIEZJTkFMIFNUWUxFUyAtLS1cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHN1Ym1lbnUsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc3VibWVudSwgJ3RvcCcsIGAke2ZpbmFsVG9wfXB4YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShzdWJtZW51LCAnbGVmdCcsIGAke2ZpbmFsTGVmdH1weGApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZUNsaWNrKGU6IE1vdXNlRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHJldHVybjtcbiAgICAvL1xuICAgIGNvbnN0IGV2ZW50ID0ge1xuICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICBpdGVtOiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSgpLFxuICAgICAgICB0ZXh0OiB0aGlzLmdldFRleHQoKSxcbiAgICAgICAgZGF0YTogdGhpcy5kYXRhKCksXG4gICAgICB9LFxuICAgIH0gYXMgQVhNZW51SXRlbUNsaWNrRXZlbnQ7XG4gICAgLy9cbiAgICB0aGlzLm9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgdGhpcy5yb290Lm9uSXRlbUNsaWNrLmVtaXQoeyAuLi5ldmVudCwgLi4ueyBzZW5kZXI6IHRoaXMucm9vdCBhcyBhbnkgfSB9KTtcbiAgICAvL1xuICAgIGlmICh0aGlzLmhhc1N1Ykl0ZW1zKCkgJiYgIWV2ZW50LmNhbmNlbGVkKSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9IGVsc2UgaWYgKCFldmVudC5jYW5jZWxlZCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlcjogdGhpcy5yb290IH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlRW50ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyBDYW5jZWwgdGhlIGNsb3NlIGRlbGF5IGlmIHRoZSBtb3VzZSByZS1lbnRlcnMgdGhlIGVsZW1lbnRcbiAgICBpZiAodGhpcy5tb3VzZUxlYXZlVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubW91c2VMZWF2ZVRpbWVvdXQpO1xuICAgICAgdGhpcy5tb3VzZUxlYXZlVGltZW91dCA9IG51bGw7IC8vIFJlc2V0IHRoZSB0aW1lb3V0XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0ZpcnN0TGV2ZWwoKSB8fCB0aGlzLnJvb3Qub3Blbk9uKCkgPT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtb3VzZUxlYXZlVGltZW91dDogYW55O1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxuICBwcml2YXRlIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmhhc1N1Ykl0ZW1zKCkgJiYgdGhpcy5yb290LmNsb3NlT24oKSA9PT0gJ2xlYXZlJykge1xuICAgICAgLy8gQ2xlYXIgYW55IHByZXZpb3VzIHRpbWVvdXQgdG8gYXZvaWQgbXVsdGlwbGUgdHJpZ2dlcnNcbiAgICAgIGlmICh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vdXNlTGVhdmVUaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgLy8gU2V0IGEgZGVsYXkgYmVmb3JlIGNsb3NpbmcgdGhlIHN1Ym1lbnVcbiAgICAgIHRoaXMubW91c2VMZWF2ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkZWxheSAoNTAwbXMgaW4gdGhpcyBjYXNlKSBhcyBwZXIgeW91ciByZXF1aXJlbWVudFxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbldpbmRvd0V2ZW50KCkge1xuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbCQubmV4dCgpOyAvLyBDbG9zZSBhbGwgbWVudXMgb24gc2Nyb2xsIG9yIHJlc2l6ZVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIGFsbCBtZW51cyBpZiBjbGlja2luZyBvdXRzaWRlIHRoZSByb290IG1lbnUgYW5kIGFsbCBzdWItaXRlbXMuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgb25DbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMucm9vdC5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghaG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGwkLm5leHQoKTsgLy8gQ2xvc2UgYWxsIG1lbnVzIGlmIGNsaWNrIGlzIG91dHNpZGUgdGhlIHJvb3QgYW5kIHN1Yi1pdGVtc1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlU2Nyb2xsRXZlbnRzKCk7XG4gIH1cblxuICBwcml2YXRlIGJpbmRTY3JvbGxFdmVudHMoKSB7XG4gICAgdGhpcy5zY3JvbGxhYmxlUGFyZW50cyA9IEFYSHRtbFV0aWwuZ2V0U2Nyb2xsYWJsZVBhcmVudHModGhpcy5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRhaW5lclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlbW92ZSBzY3JvbGwgZXZlbnQgbGlzdGVuZXJzXG4gIHByaXZhdGUgcmVtb3ZlU2Nyb2xsRXZlbnRzKCkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZVBhcmVudHMuZm9yRWFjaCgocGFyZW50KSA9PiB7XG4gICAgICBwYXJlbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vbkNvbnRhaW5lclNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVyIGZvciBzY3JvbGwgZXZlbnRzICh3aW5kb3cgb3Igc2Nyb2xsYWJsZSBwYXJlbnQgY29udGFpbmVycylcbiAgICovXG4gIHByaXZhdGUgb25Db250YWluZXJTY3JvbGwoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7IC8vIENsb3NlIGFsbCBtZW51cyBvbiBzY3JvbGxcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGxpc3Q6IHN0cmluZ1tdID0gWydheC1hY3Rpb24taXRlbSddO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIGxpc3QucHVzaCgnYXgtc3RhdGUtZGlzYWJsZWQnKTtcbiAgICB9XG4gICAgbGlzdC5wdXNoKGBheC0ke3RoaXMuY29sb3IoKSA/PyAnZGVmYXVsdCd9YCk7XG5cbiAgICByZXR1cm4gbGlzdDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWFjdGlvbi1pdGVtLXByZWZpeFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRleHRcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1hY3Rpb24taXRlbS1zdWZmaXhcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICBAaWYgKGhhc1N1Ykl0ZW1zKCkgJiYgKCFpc1Jvb3QoKSB8fCByb290Py5oYXNBcnJvdygpKSkge1xuICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNvbGlkIHt7IGFycm93SWNvbigpIH19IFwiPjwvaT5cbiAgfVxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtcyBheC1hY3Rpb24tbGlzdCBheC1hY3Rpb24tbGlzdC12ZXJ0aWNhbFwiIFtjbGFzcy5heC1zdGF0ZS1vcGVuXT1cImlzT3BlbigpXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxheC10aXRsZSxheC1kaXZpZGVyLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19","import { AXComponent, NXComponent, NXEvent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isBrowser } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, DOCUMENT, HostBinding, HostListener, inject, input, output, PLATFORM_ID, Renderer2, signal, ViewEncapsulation, } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\nexport class AXContextMenuOpeningEvent extends NXEvent {\n constructor() {\n super(...arguments);\n this.canceled = false;\n }\n}\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\nexport class AXContextMenuComponent extends NXComponent {\n // Constructor (Dependency Injection)\n /** @ignore */\n constructor() {\n super();\n // Inputs and Outputs\n this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.openOn = input('hover', ...(ngDevMode ? [{ debugName: \"openOn\" }] : []));\n this.closeOn = input('click', ...(ngDevMode ? [{ debugName: \"closeOn\" }] : []));\n this.orginalItems = input([], ...(ngDevMode ? [{ debugName: \"orginalItems\", alias: 'items' }] : [{ alias: 'items' }]));\n this.target = input(...(ngDevMode ? [undefined, { debugName: \"target\" }] : []));\n this.onItemClick = output();\n this.onOpening = output();\n this.hasArrow = signal(true, ...(ngDevMode ? [{ debugName: \"hasArrow\" }] : []));\n // Injected Services\n this.service = inject(AXMenuService);\n this.renderer = inject(Renderer2);\n this.document = inject(DOCUMENT);\n this.platformID = inject(PLATFORM_ID);\n this.originalNextSibling = null;\n this.originalParent = null;\n this.items = signal([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n this.service.openContextMenu$.subscribe((e) => {\n if (e.sender == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n // Lifecycle Hooks\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n refresh() {\n this.bindContextEvent();\n }\n // Public Methods\n showAt(point, targetElement, event) {\n const sender = this;\n this.service.closeAllContextMenu$.next({ sender });\n this.service.openContextMenu$.next({ sender, point });\n if (isPlatformBrowser(this.platformID)) {\n if (!targetElement) {\n targetElement = this.document.elementFromPoint(point.x, point.y);\n }\n if (!event) {\n event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.orginalItems()),\n };\n if (event.canceled)\n return;\n }\n this.onOpening.emit(event);\n this.items.set(event.items);\n }\n }\n close() {\n this.nativeElement.classList.remove('ax-state-open');\n this.removeBackdrop();\n }\n // Private Methods (Internal Logic)\n /** @ignore */\n getTargetElements() {\n if (isPlatformBrowser(this.platformID)) {\n const elements = typeof this.target() == 'string'\n ? Array.from(this.document.querySelectorAll(this.target()))\n : Array.isArray(this.target())\n ? this.target()\n : [this.target()];\n return elements;\n }\n return null;\n }\n /** @ignore */\n bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n /** @ignore */\n removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n /** @ignore */\n handleContextMenu(e) {\n e.preventDefault();\n e.stopPropagation();\n //\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));\n //\n const event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.orginalItems()),\n };\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY }, targetElement, event);\n }\n }\n }\n /** @ignore */\n internalShowAt(point) {\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n const itemRect = elementRef.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n // Detect RTL (Right-To-Left) mode\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n let left;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n }\n else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n const bottom = point.y + itemRect.height;\n let top;\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n }\n else {\n top = point.y;\n }\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n this.createBackdrop();\n }\n /** @ignore */\n createBackdrop() {\n if (!this.originalParent) {\n this.originalParent = this.nativeElement.parentElement;\n this.originalNextSibling = this.nativeElement.nextSibling;\n }\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', '1000');\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n this.createEventListeners(this.backdropElement);\n this.document.body.appendChild(this.backdropElement);\n this.backdropElement.appendChild(this.nativeElement);\n }\n /** @ignore */\n removeBackdrop() {\n if (this.backdropElement) {\n if (this.originalParent) {\n this.renderer.insertBefore(this.originalParent, this.nativeElement, this.originalNextSibling);\n }\n if (this.backdropElement.parentNode) {\n this.renderer.removeChild(this.backdropElement.parentNode, this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n createEventListeners(el) {\n const l1 = this.renderer.listen(el, 'click', () => {\n this.close();\n l1();\n });\n const l2 = this.renderer.listen(el, 'wheel', () => {\n this.close();\n l2();\n });\n const l3 = this.renderer.listen(el, 'contextmenu', (e) => {\n this.close();\n // Get all elements under the mouse pointer\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y);\n const targetElements = this.getTargetElements();\n if (targetElements.some((target) => elementsUnderMouse.includes(target))) {\n e.preventDefault();\n setTimeout(() => {\n //this.internalShowAt({ x: e.x, y: e.y });\n this.handleContextMenu(e);\n });\n }\n }\n l3();\n });\n }\n // Host Listeners (UI Interaction Handling)\n /** @ignore */\n onWindowEvent() {\n const sender = this;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n /** @ignore */\n get __hostClass() {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXContextMenuComponent, isStandalone: true, selector: \"ax-context-menu\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: true, isRequired: false, transformFunction: null }, orginalItems: { classPropertyName: \"orginalItems\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: \"onItemClick\", onOpening: \"onOpening\" }, host: { listeners: { \"window:scroll\": \"onWindowEvent($event)\", \"window:resize\": \"onWindowEvent($event)\" }, properties: { \"class\": \"this.__hostClass\" } }, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXContextMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ], imports: [NgTemplateOutlet, AXDecoratorGenericComponent, AXMenuItemComponent, AXDecoratorIconComponent], template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { onWindowEvent: [{\n type: HostListener,\n args: ['window:scroll', ['$event']]\n }, {\n type: HostListener,\n args: ['window:resize', ['$event']]\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWlCLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBVyxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUErRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRXZILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxPQUErQjtJQUE5RTs7UUFFRSxh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Z0NBLGk2VERxQlksZ0JBQWdCLG9KQUFFLDJCQUEyQix5TEFBRSxtQkFBbUIsOEhBQUUsd0JBQXdCOzsyRkFFM0Ysc0JBQXNCO2tCQW5CbEMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVCxhQUFhO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxVQUFVOzRCQUNuQixXQUFXLHdCQUF3Qjt5QkFDcEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLFdBQVc7NEJBQ3BCLFdBQVcsd0JBQXdCO3lCQUNwQztxQkFDRixXQUNRLENBQUMsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUM7d0RBbVEvRixhQUFhO3NCQUZwQixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3hDLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFyQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBBWE9yaWVudGF0aW9uLCBOWENvbXBvbmVudCwgTlhFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFBvaW50IH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRE9DVU1FTlQsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNZW51Q2xvc2VUcmlnZ2VyLCBBWE1lbnVJdGVtLCBBWE1lbnVJdGVtQ2xpY2tCYXNlRXZlbnQsIEFYTWVudU9wZW5UcmlnZ2VyLCBBWFJvb3RNZW51IH0gZnJvbSAnLi9tZW51LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVPcGVuaW5nRXZlbnQgZXh0ZW5kcyBOWEV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+IHtcbiAgaXRlbXM6IEFYTWVudUl0ZW1bXTtcbiAgY2FuY2VsZWQgPSBmYWxzZTtcbiAgdGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5leHBvcnQgdHlwZSBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50ID0gQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50PEFYQ29udGV4dE1lbnVDb21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGNvbnRleHQgbWVudS5cbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhNZW51U2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFJvb3RNZW51LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWENvbXBvbmVudCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBWENvbnRleHRNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYTWVudUl0ZW1Db21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udGV4dE1lbnVDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCB7XG4gIC8vIElucHV0cyBhbmQgT3V0cHV0c1xuXG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ3ZlcnRpY2FsJyk7XG4gIG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcbiAgY2xvc2VPbiA9IGlucHV0PEFYTWVudUNsb3NlVHJpZ2dlcj4oJ2NsaWNrJyk7XG4gIG9yZ2luYWxJdGVtcyA9IGlucHV0PEFYTWVudUl0ZW1bXT4oW10sIHsgYWxpYXM6ICdpdGVtcycgfSk7XG4gIHRhcmdldCA9IGlucHV0PEhUTUxFbGVtZW50IHwgSFRNTEVsZW1lbnRbXSB8IHN0cmluZz4oKTtcblxuICBvbkl0ZW1DbGljayA9IG91dHB1dDxBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50PigpO1xuICBvbk9wZW5pbmcgPSBvdXRwdXQ8QVhDb250ZXh0TWVudU9wZW5pbmdFdmVudD4oKTtcblxuICBoYXNBcnJvdyA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcblxuICAvLyBJbmplY3RlZCBTZXJ2aWNlc1xuXG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChBWE1lbnVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlEID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuICAvLyBDb25zdHJ1Y3RvciAoRGVwZW5kZW5jeSBJbmplY3Rpb24pXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvL1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmJpbmRDb250ZXh0RXZlbnQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VydmljZS5jbG9zZUFsbENvbnRleHRNZW51JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2Uub3BlbkNvbnRleHRNZW51JC5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmICgoZS5zZW5kZXIgYXMgYW55KSA9PSB0aGlzKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxTaG93QXQoZS5wb2ludCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvLyBMaWZlY3ljbGUgSG9va3NcblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAoaXNCcm93c2VyKCkpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ29udGV4dEV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5iaW5kQ29udGV4dEV2ZW50KCk7XG4gIH1cblxuICAvLyBQdWJsaWMgTWV0aG9kc1xuXG4gIHB1YmxpYyBzaG93QXQocG9pbnQ6IEFYUG9pbnQsIHRhcmdldEVsZW1lbnQ/OiBIVE1MRWxlbWVudCwgZXZlbnQ/OiBBWENvbnRleHRNZW51T3BlbmluZ0V2ZW50KSB7XG4gICAgY29uc3Qgc2VuZGVyID0gdGhpcyBhcyBhbnkgYXMgQVhSb290TWVudTtcbiAgICB0aGlzLnNlcnZpY2UuY2xvc2VBbGxDb250ZXh0TWVudSQubmV4dCh7IHNlbmRlciB9KTtcbiAgICB0aGlzLnNlcnZpY2Uub3BlbkNvbnRleHRNZW51JC5uZXh0KHsgc2VuZGVyLCBwb2ludCB9KTtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgaWYgKCF0YXJnZXRFbGVtZW50KSB7XG4gICAgICAgIHRhcmdldEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQocG9pbnQueCwgcG9pbnQueSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICB9XG4gICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgIGV2ZW50ID0ge1xuICAgICAgICAgIHNlbmRlcjogdGhpcyxcbiAgICAgICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICAgICAgdGFyZ2V0RWxlbWVudDogdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICBpdGVtczogY2xvbmVEZWVwKHRoaXMub3JnaW5hbEl0ZW1zKCkpLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsZWQpIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMub25PcGVuaW5nLmVtaXQoZXZlbnQpO1xuICAgICAgdGhpcy5pdGVtcy5zZXQoZXZlbnQuaXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpIHtcbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYXgtc3RhdGUtb3BlbicpO1xuICAgIHRoaXMucmVtb3ZlQmFja2Ryb3AoKTtcbiAgfVxuXG4gIC8vIFByaXZhdGUgUHJvcGVydGllc1xuXG4gIHByaXZhdGUgYmFja2Ryb3BFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgb3JpZ2luYWxOZXh0U2libGluZzogTm9kZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9yaWdpbmFsUGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBpdGVtcyA9IHNpZ25hbDxBWE1lbnVJdGVtW10+KFtdKTtcblxuICAvLyBQcml2YXRlIE1ldGhvZHMgKEludGVybmFsIExvZ2ljKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgZ2V0VGFyZ2V0RWxlbWVudHMoKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID1cbiAgICAgICAgdHlwZW9mIHRoaXMudGFyZ2V0KCkgPT0gJ3N0cmluZydcbiAgICAgICAgICA/IEFycmF5LmZyb20odGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50Pih0aGlzLnRhcmdldCgpIGFzIHN0cmluZykpXG4gICAgICAgICAgOiBBcnJheS5pc0FycmF5KHRoaXMudGFyZ2V0KCkpXG4gICAgICAgICAgICA/ICh0aGlzLnRhcmdldCgpIGFzIEhUTUxFbGVtZW50W10pXG4gICAgICAgICAgICA6IFt0aGlzLnRhcmdldCgpIGFzIEhUTUxFbGVtZW50XTtcblxuICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgYmluZENvbnRleHRFdmVudCgpIHtcbiAgICB0aGlzLmdldFRhcmdldEVsZW1lbnRzKCkuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgZT8uYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLmhhbmRsZUNvbnRleHRNZW51LmJpbmQodGhpcykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSByZW1vdmVDb250ZXh0RXZlbnQoKSB7XG4gICAgdGhpcy5nZXRUYXJnZXRFbGVtZW50cygpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGU/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgdGhpcy5oYW5kbGVDb250ZXh0TWVudS5iaW5kKHRoaXMpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dE1lbnUoZTogTW91c2VFdmVudCkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzVW5kZXJNb3VzZSA9IHRoaXMuZG9jdW1lbnQuZWxlbWVudHNGcm9tUG9pbnQoZS54LCBlLnkpIGFzIEhUTUxFbGVtZW50W107XG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKTtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlbGVtZW50c1VuZGVyTW91c2UuZmluZCgodGFyZ2V0KSA9PiB0YXJnZXRFbGVtZW50cy5pbmNsdWRlcyh0YXJnZXQpKTtcbiAgICAgIC8vXG4gICAgICBjb25zdCBldmVudDogQVhDb250ZXh0TWVudU9wZW5pbmdFdmVudCA9IHtcbiAgICAgICAgc2VuZGVyOiB0aGlzLFxuICAgICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICAgIHRhcmdldEVsZW1lbnQ6IHRhcmdldEVsZW1lbnQsXG4gICAgICAgIGl0ZW1zOiBjbG9uZURlZXAodGhpcy5vcmdpbmFsSXRlbXMoKSksXG4gICAgICB9O1xuICAgICAgLy9cbiAgICAgIGlmICghZXZlbnQuY2FuY2VsZWQpIHtcbiAgICAgICAgdGhpcy5zaG93QXQoeyB4OiBlLmNsaWVudFgsIHk6IGUuY2xpZW50WSB9LCB0YXJnZXRFbGVtZW50LCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbFNob3dBdChwb2ludDogQVhQb2ludCkge1xuICAgIGNvbnN0IGVsZW1lbnRSZWYgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgZWxlbWVudFJlZi5jbGFzc0xpc3QuYWRkKCdheC1zdGF0ZS1vcGVuJyk7XG4gICAgY29uc3QgaXRlbVJlY3QgPSBlbGVtZW50UmVmLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgLy8gRGV0ZWN0IFJUTCAoUmlnaHQtVG8tTGVmdCkgbW9kZVxuICAgIGNvbnN0IGlzUnRsID0gQVhIdG1sVXRpbC5pc1J0bChlbGVtZW50UmVmKTtcblxuICAgIGxldCBsZWZ0OiBudW1iZXI7XG4gICAgaWYgKGlzUnRsKSB7XG4gICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgIGxlZnQgPSBwb2ludC54O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZWZ0ID0gcG9pbnQueDtcbiAgICAgIGlmIChsZWZ0ICsgaXRlbVJlY3Qud2lkdGggPiB3aW5kb3dXaWR0aCkge1xuICAgICAgICBsZWZ0ID0gcG9pbnQueCAtIGl0ZW1SZWN0LndpZHRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGJvdHRvbSA9IHBvaW50LnkgKyBpdGVtUmVjdC5oZWlnaHQ7XG4gICAgbGV0IHRvcDogbnVtYmVyO1xuXG4gICAgaWYgKGJvdHRvbSA+IHdpbmRvd0hlaWdodCkge1xuICAgICAgdG9wID0gcG9pbnQueSAtIGl0ZW1SZWN0LmhlaWdodDtcbiAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgIHRvcCA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvcCA9IHBvaW50Lnk7XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGVtZW50UmVmLCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICd0b3AnLCBgJHt0b3B9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnRSZWYsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuXG4gICAgdGhpcy5jcmVhdGVCYWNrZHJvcCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBjcmVhdGVCYWNrZHJvcCgpIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxQYXJlbnQpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxQYXJlbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgIHRoaXMub3JpZ2luYWxOZXh0U2libGluZyA9IHRoaXMubmF0aXZlRWxlbWVudC5uZXh0U2libGluZztcbiAgICB9XG4gICAgdGhpcy5iYWNrZHJvcEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdwb3NpdGlvbicsICdmaXhlZCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICd0b3AnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdsZWZ0JywgJzAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnd2lkdGgnLCAnMTAwJScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICdoZWlnaHQnLCAnMTAwJScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iYWNrZHJvcEVsZW1lbnQsICd6LWluZGV4JywgJzEwMDAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmFja2Ryb3BFbGVtZW50LCAnYmFja2dyb3VuZCcsICd0cmFuc3BhcmVudCcpO1xuXG4gICAgdGhpcy5jcmVhdGVFdmVudExpc3RlbmVycyh0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG5cbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5iYWNrZHJvcEVsZW1lbnQpO1xuICAgIHRoaXMuYmFja2Ryb3BFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHJlbW92ZUJhY2tkcm9wKCkge1xuICAgIGlmICh0aGlzLmJhY2tkcm9wRWxlbWVudCkge1xuICAgICAgaWYgKHRoaXMub3JpZ2luYWxQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUodGhpcy5vcmlnaW5hbFBhcmVudCwgdGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLm9yaWdpbmFsTmV4dFNpYmxpbmcpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYmFja2Ryb3BFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmJhY2tkcm9wRWxlbWVudC5wYXJlbnROb2RlLCB0aGlzLmJhY2tkcm9wRWxlbWVudCk7XG4gICAgICB9XG4gICAgICB0aGlzLmJhY2tkcm9wRWxlbWVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVFdmVudExpc3RlbmVycyhlbDogSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBsMSA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAnY2xpY2snLCAoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICBsMSgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbDIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihlbCwgJ3doZWVsJywgKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgbDIoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGwzID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdjb250ZXh0bWVudScsIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAvLyBHZXQgYWxsIGVsZW1lbnRzIHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyXG4gICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgICBjb25zdCBlbGVtZW50c1VuZGVyTW91c2UgPSB0aGlzLmRvY3VtZW50LmVsZW1lbnRzRnJvbVBvaW50KGUueCwgZS55KSBhcyBIVE1MRWxlbWVudFtdO1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50cyA9IHRoaXMuZ2V0VGFyZ2V0RWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHRhcmdldEVsZW1lbnRzLnNvbWUoKHRhcmdldCkgPT4gZWxlbWVudHNVbmRlck1vdXNlLmluY2x1ZGVzKHRhcmdldCkpKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy90aGlzLmludGVybmFsU2hvd0F0KHsgeDogZS54LCB5OiBlLnkgfSk7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnRleHRNZW51KGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsMygpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gSG9zdCBMaXN0ZW5lcnMgKFVJIEludGVyYWN0aW9uIEhhbmRsaW5nKVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvbldpbmRvd0V2ZW50KCkge1xuICAgIGNvbnN0IHNlbmRlciA9IHRoaXMgYXMgYW55IGFzIEFYUm9vdE1lbnU7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsQ29udGV4dE1lbnUkLm5leHQoeyBzZW5kZXI6IHNlbmRlciB9KTsgLy8gQ2xvc2UgYWxsIG1lbnVzIG9uIHNjcm9sbCBvciByZXNpemVcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogYW55IHtcbiAgICByZXR1cm4gWydheC1tZW51LWNvbnRhaW5lcicsIGBheC1vcmllbnRhdGlvbi0ke3RoaXMub3JpZW50YXRpb24oKX1gLCAnYXgtYWN0aW9uLWxpc3QnLCAnYXgtYWN0aW9uLWxpc3QtdmVydGljYWwnXTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtbWVudS1pdGVtLGF4LWRpdmlkZXIsYXgtdGl0bGUsbmctY29udGFpbmVyXCI+PC9uZy1jb250ZW50PlxuXG5AZm9yIChub2RlIG9mIGl0ZW1zKCk7IHRyYWNrIG5vZGUpIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG5vZGUgfVwiPiA8L25nLWNvbnRhaW5lcj5cbn1cblxuPG5nLXRlbXBsYXRlICNSZWN1cnNpb24gbGV0LWl0ZW0+XG4gIEBpZiAoaXRlbS5ncm91cD8udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS5ncm91cD8udGl0bGUgfX08L2F4LXRpdGxlPlxuICB9XG4gIDxheC1tZW51LWl0ZW0gW25hbWVdPVwiaXRlbS5uYW1lXCIgW2RhdGFdPVwiaXRlbS5kYXRhXCIgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICA8YXgtcHJlZml4PlxuICAgICAgICA8YXgtaWNvbiBbaWNvbl09XCJpdGVtLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgPC9heC1wcmVmaXg+XG4gICAgfVxuICAgIEBpZiAoaXRlbS50ZXh0KSB7XG4gICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgfVxuICAgIEBpZiAoaXRlbS5zdWZmaXgpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uc3VmZml4LnRleHQgfX08L2F4LXRleHQ+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICB9XG4gICAgQGZvciAoY2hpbGQgb2YgaXRlbS5pdGVtczsgdHJhY2sgY2hpbGQpIHtcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBjaGlsZCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgfVxuICA8L2F4LW1lbnUtaXRlbT5cbiAgQGlmIChpdGVtLmJyZWFrKSB7XG4gICAgPGF4LWRpdmlkZXI+PC9heC1kaXZpZGVyPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, inject, input, output, ViewEncapsulation, } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXRootMenu } from './menu.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\nexport class AXMenuComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.orientation = input('horizontal', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.openOn = input('hover', ...(ngDevMode ? [{ debugName: \"openOn\" }] : []));\n this.closeOn = input('leave', ...(ngDevMode ? [{ debugName: \"closeOn\" }] : []));\n this.service = inject(AXMenuService);\n this.onItemClick = output();\n this.items = input([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.hasArrow = input(true, ...(ngDevMode ? [{ debugName: \"hasArrow\" }] : []));\n }\n /** @ignore */\n get __hostClass() {\n return [\n 'ax-root-menu',\n 'ax-action-list',\n `ax-action-list-${this.orientation()}`,\n `${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,\n ];\n }\n /**\n * Closes all open menus and submenus for this root menu.\n *\n * @returns void - No return value. All open menu overlays are closed and hidden.\n */\n close() {\n this.service.closeAll$.next();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXMenuComponent, isStandalone: true, selector: \"ax-menu\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: \"openOn\", publicName: \"openOn\", isSignal: true, isRequired: false, transformFunction: null }, closeOn: { classPropertyName: \"closeOn\", publicName: \"closeOn\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, hasArrow: { classPropertyName: \"hasArrow\", publicName: \"hasArrow\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onItemClick: \"onItemClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-menu', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ], imports: [NgTemplateOutlet, AXDecoratorGenericComponent, AXMenuItemComponent, AXDecoratorIconComponent], template: \"<ng-content select=\\\"ax-menu-item,ax-divider,ax-title,ng-container\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n\\n<ng-template #Recursion let-item>\\n @if (item.group?.title) {\\n <ax-title>{{ item.group?.title }}</ax-title>\\n }\\n <ax-menu-item [name]=\\\"item.name\\\" [data]=\\\"item.data\\\" [disabled]=\\\"item.disabled\\\" [color]=\\\"item.color\\\">\\n @if (item.icon) {\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n </ax-prefix>\\n }\\n @if (item.text) {\\n <ax-text>{{ item.text }}</ax-text>\\n }\\n @if (item.suffix) {\\n <ax-suffix>\\n <ax-text>{{ item.suffix.text }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ax-menu-item>\\n @if (item.break) {\\n <ax-divider></ax-divider>\\n }\\n</ng-template>\\n\", styles: [\"ax-context-menu,ax-menu{--ax-comp-menu-items-min-width: 12rem;--ax-comp-menu-action-list-hover-decorator-opacity: .7;--ax-comp-menu-action-list-horizontal-min-width: 12rem;--ax-comp-menu-action-list-horizontal-gap: 1.25rem;--ax-comp-menu-action-list-vertical-min-width: 12rem}ax-context-menu ax-menu-item.ax-primary,ax-menu ax-menu-item.ax-primary{--ax-comp-menu-item-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-primary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-primary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-primary-surface)}ax-context-menu ax-menu-item.ax-secondary,ax-menu ax-menu-item.ax-secondary{--ax-comp-menu-item-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-secondary-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-secondary-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-secondary-surface)}ax-context-menu ax-menu-item.ax-success,ax-menu ax-menu-item.ax-success{--ax-comp-menu-item-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-success-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-success-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-success-surface)}ax-context-menu ax-menu-item.ax-warning,ax-menu ax-menu-item.ax-warning{--ax-comp-menu-item-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-warning-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-warning-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-warning-surface)}ax-context-menu ax-menu-item.ax-danger,ax-menu ax-menu-item.ax-danger{--ax-comp-menu-item-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-danger-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-danger-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-danger-surface)}ax-context-menu ax-menu-item.ax-accent1,ax-menu ax-menu-item.ax-accent1{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent1-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent1-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent1-surface)}ax-context-menu ax-menu-item.ax-accent2,ax-menu ax-menu-item.ax-accent2{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent2-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent2-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent2-surface)}ax-context-menu ax-menu-item.ax-accent3,ax-menu ax-menu-item.ax-accent3{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent3-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent3-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent3-surface)}ax-context-menu ax-menu-item.ax-accent4,ax-menu ax-menu-item.ax-accent4{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent4-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent4-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent4-surface)}ax-context-menu ax-menu-item.ax-accent5,ax-menu ax-menu-item.ax-accent5{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent5-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent5-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent5-surface)}ax-context-menu ax-menu-item.ax-accent6,ax-menu ax-menu-item.ax-accent6{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent6-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent6-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent6-surface)}ax-context-menu ax-menu-item.ax-accent7,ax-menu ax-menu-item.ax-accent7{--ax-comp-menu-item-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-text-color: var(--ax-sys-color-accent7-surface);--ax-comp-menu-item-hover-bg-color: var(--ax-sys-color-accent7-surface), .1;--ax-comp-menu-item-hover-suffix-text-color: var(--ax-sys-color-accent7-surface)}ax-context-menu,ax-menu{width:100%;color:inherit;display:flex;width:max-content}ax-context-menu.ax-menu-container,ax-context-menu .ax-menu-items,ax-menu.ax-menu-container,ax-menu .ax-menu-items{--ax-comp-action-item-padding-inline: .875rem;opacity:0;z-index:9999;display:flex;position:fixed;visibility:hidden;width:max-content;height:max-content;flex-direction:column;min-width:var(--ax-comp-menu-items-min-width);color:rgba(var(--ax-comp-menu-items-text-color, var(--ax-sys-color-on-lightest-surface)));background-color:rgba(var(--ax-comp-menu-sub-item-bg-color, var(--ax-sys-color-lightest-surface)));padding-block:var(--ax-comp-menu-items-padding-block, .5rem);border-width:var(--ax-comp-menu-items-border-width, 1px);border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius));border-color:rgba(var(--ax-comp-menu-items-border-color, var(--ax-sys-color-border-lightest-surface)));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);transition-property:opacity,color;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-context-menu.ax-menu-container.ax-state-open,ax-context-menu .ax-menu-items.ax-state-open,ax-menu.ax-menu-container.ax-state-open,ax-menu .ax-menu-items.ax-state-open{opacity:1;visibility:visible}ax-context-menu.ax-menu-container ax-menu-item,ax-context-menu .ax-menu-items ax-menu-item,ax-menu.ax-menu-container ax-menu-item,ax-menu .ax-menu-items ax-menu-item{color:rgba(var(--ax-comp-menu-item-text-color, var(--ax-sys-color-on-surface)))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled),ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled),ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled){color:rgba(var(--ax-comp-menu-item-hover-text-color, var(--ax-sys-color-on-surface)));background-color:rgba(var(--ax-comp-menu-item-hover-bg-color, var(--ax-sys-color-surface)))!important}ax-context-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item:hover:not(.ax-state-disabled) ax-suffix ax-text{color:rgba(var(--ax-comp-menu-item-hover-suffix-text-color))}ax-context-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-context-menu .ax-menu-items ax-menu-item ax-suffix ax-text,ax-menu.ax-menu-container ax-menu-item ax-suffix ax-text,ax-menu .ax-menu-items ax-menu-item ax-suffix ax-text{font-weight:400!important}ax-context-menu.ax-action-list-horizontal{padding-inline:var(--ax-comp-menu-action-list-horizontal-padding-inline, 1rem)}ax-menu>ax-menu-item{--ax-comp-action-item-padding-inline: 0}ax-menu>ax-menu-item:has(>.ax-action-item-suffix:not(:empty)){gap:.5rem}ax-menu.ax-action-list-horizontal{min-width:var(--ax-comp-menu-action-list-horizontal-min-width);gap:var(--ax-comp-menu-action-list-horizontal-gap)}ax-menu.ax-action-list-horizontal>ax-title{display:none}ax-menu.ax-action-list-horizontal>ax-menu-item{font-weight:500}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-prefix{padding-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:not(ax-menu.ax-action-list-horizontal>ax-menu-item>.ax-action-item-suffix:empty){padding-inline-end:0!important;margin-inline-start:0!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-horizontal>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu.ax-action-list-vertical{width:max-content;min-width:var(--ax-comp-menu-action-list-vertical-min-width)}ax-menu.ax-action-list-vertical>ax-menu-item{font-weight:500}ax-menu.ax-action-list-vertical>ax-menu-item:hover{background-color:transparent!important}ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-prefix,ax-menu.ax-action-list-vertical>ax-menu-item:hover>.ax-action-item-suffix{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}ax-menu>ax-menu-item{padding-block:var(--ax-comp-menu-items-padding-block, .5rem)}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled){border-radius:var(--ax-comp-menu-items-border-radius, var(--ax-sys-border-radius))}ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-icon,ax-menu>ax-menu-item:hover:not(ax-menu>ax-menu-item:hover.ax-state-disabled)>ax-text{opacity:var(--ax-comp-menu-action-list-hover-decorator-opacity)}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBaUIsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUErRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBSXZIOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBbkJoRDs7UUFvQkUsZ0JBQVcsR0FBRyxLQUFLLENBQWdCLFlBQVksdURBQUMsQ0FBQztRQUVqRCxXQUFNLEdBQUcsS0FBSyxDQUFvQixPQUFPLGtEQUFDLENBQUM7UUFFM0MsWUFBTyxHQUFHLEtBQUssQ0FBcUIsT0FBTyxtREFBQyxDQUFDO1FBRTdDLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEMsZ0JBQVcsR0FBRyxNQUFNLEVBQXlCLENBQUM7UUFFOUMsVUFBSyxHQUFHLEtBQUssQ0FBZSxFQUFFLGlEQUFDLENBQUM7UUFFaEMsYUFBUSxHQUFHLEtBQUssQ0FBVSxJQUFJLG9EQUFDLENBQUM7S0FxQmpDO0lBbkJDLGNBQWM7SUFDZCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixrQkFBa0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3RDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1NBQzdDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQWpDVSxlQUFlO2tHQUFmLGVBQWUsOHhCQWJmO1lBQ1QsYUFBYTtZQUNiO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsZUFBZTthQUM3QjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixXQUFXLEVBQUUsZUFBZTthQUM3QjtTQUNGLGlEQ3RDSCxxaUNBZ0NBLGk2VERPWSxnQkFBZ0Isb0pBQUUsMkJBQTJCLHlMQUFFLG1CQUFtQiw4SEFBRSx3QkFBd0I7OzJGQUUzRixlQUFlO2tCQW5CM0IsU0FBUzsrQkFDRSxTQUFTLGlCQUdKLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QsYUFBYTt3QkFDYjs0QkFDRSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyxpQkFBaUI7eUJBQzdCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxXQUFXOzRCQUNwQixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0YsV0FDUSxDQUFDLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixDQUFDOzhCQW1CbkcsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCwgQVhPcmllbnRhdGlvbiwgTlhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LCBBWERlY29yYXRvckljb25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYTWVudUNsb3NlVHJpZ2dlciwgQVhNZW51SXRlbSwgQVhNZW51SXRlbUNsaWNrQmFzZUV2ZW50LCBBWE1lbnVPcGVuVHJpZ2dlciwgQVhSb290TWVudSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYTWVudUl0ZW1zQ2xpY2tFdmVudCA9IEFYTWVudUl0ZW1DbGlja0Jhc2VFdmVudDxBWE1lbnVDb21wb25lbnQ+O1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBtZW51IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIG1lbnUgaXRlbXMuXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICBBWE1lbnVTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYTWVudUl0ZW1Db21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IHtcbiAgb3JpZW50YXRpb24gPSBpbnB1dDxBWE9yaWVudGF0aW9uPignaG9yaXpvbnRhbCcpO1xuXG4gIG9wZW5PbiA9IGlucHV0PEFYTWVudU9wZW5UcmlnZ2VyPignaG92ZXInKTtcblxuICBjbG9zZU9uID0gaW5wdXQ8QVhNZW51Q2xvc2VUcmlnZ2VyPignbGVhdmUnKTtcblxuICBzZXJ2aWNlID0gaW5qZWN0KEFYTWVudVNlcnZpY2UpO1xuXG4gIG9uSXRlbUNsaWNrID0gb3V0cHV0PEFYTWVudUl0ZW1zQ2xpY2tFdmVudD4oKTtcblxuICBpdGVtcyA9IGlucHV0PEFYTWVudUl0ZW1bXT4oW10pO1xuXG4gIGhhc0Fycm93ID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdheC1yb290LW1lbnUnLFxuICAgICAgJ2F4LWFjdGlvbi1saXN0JyxcbiAgICAgIGBheC1hY3Rpb24tbGlzdC0ke3RoaXMub3JpZW50YXRpb24oKX1gLFxuICAgICAgYCR7IXRoaXMuaGFzQXJyb3coKSA/ICdheC1oaWRlLWFycm93JyA6ICcnfWAsXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIG9wZW4gbWVudXMgYW5kIHN1Ym1lbnVzIGZvciB0aGlzIHJvb3QgbWVudS5cbiAgICpcbiAgICogQHJldHVybnMgdm9pZCAtIE5vIHJldHVybiB2YWx1ZS4gQWxsIG9wZW4gbWVudSBvdmVybGF5cyBhcmUgY2xvc2VkIGFuZCBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNsb3NlQWxsJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxheC1kaXZpZGVyLGF4LXRpdGxlLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5cblxuQGZvciAobm9kZSBvZiBpdGVtcygpOyB0cmFjayBub2RlKSB7XG4gIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiUmVjdXJzaW9uXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj4gPC9uZy1jb250YWluZXI+XG59XG5cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW0uZ3JvdXA/LnRpdGxlKSB7XG4gICAgPGF4LXRpdGxlPnt7IGl0ZW0uZ3JvdXA/LnRpdGxlIH19PC9heC10aXRsZT5cbiAgfVxuICA8YXgtbWVudS1pdGVtIFtuYW1lXT1cIml0ZW0ubmFtZVwiIFtkYXRhXT1cIml0ZW0uZGF0YVwiIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIj5cbiAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaXRlbS5pY29uXCI+IDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0udGV4dCkge1xuICAgICAgPGF4LXRleHQ+e3sgaXRlbS50ZXh0IH19PC9heC10ZXh0PlxuICAgIH1cbiAgICBAaWYgKGl0ZW0uc3VmZml4KSB7XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnN1ZmZpeC50ZXh0IH19PC9heC10ZXh0PlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgfVxuICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0uaXRlbXM7IHRyYWNrIGNoaWxkKSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlJlY3Vyc2lvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgPC9heC1tZW51LWl0ZW0+XG4gIEBpZiAoaXRlbS5icmVhaykge1xuICAgIDxheC1kaXZpZGVyPjwvYXgtZGl2aWRlcj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuComponent } from './menu.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\nexport class AXMenuModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule, AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent], exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES, AXMenuComponent, AXContextMenuComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, ...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRW5ELE1BQU0sU0FBUyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDakYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBTzFHLE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQUpiLFlBQVksRUFIUCxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFEckYsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixhQUE1RCxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsc0JBQXNCOytHQVFsRSxZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU8sRUFKSSxlQUFlLEVBQUUsc0JBQXNCOzsyRkFRbEUsWUFBWTtrQkFMeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYTWVudUl0ZW1Db21wb25lbnQsIEFYTWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW0FYRGVjb3JhdG9yTW9kdWxlLCBBWExvYWRpbmdNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIEFYUG9wb3Zlck1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLk1PRFVMRVMsIC4uLkNPTVBPTkVOVF0sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbWVudS9zcmMvYWNvcmV4LWNvbXBvbmVudHMtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}