@acorex/components 21.0.2-next.5 → 21.0.2-next.51

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 (225) hide show
  1. package/conversation2/README.md +5 -8
  2. package/fesm2022/acorex-components-accordion.mjs +29 -29
  3. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  4. package/fesm2022/acorex-components-action-sheet.mjs +30 -30
  5. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  6. package/fesm2022/acorex-components-alert.mjs +16 -16
  7. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  8. package/fesm2022/acorex-components-aspect-ratio.mjs +5 -5
  9. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/acorex-components-audio-wave.mjs +11 -11
  11. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  12. package/fesm2022/acorex-components-autocomplete.mjs +14 -14
  13. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  14. package/fesm2022/acorex-components-avatar.mjs +17 -16
  15. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  16. package/fesm2022/acorex-components-badge.mjs +9 -9
  17. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  18. package/fesm2022/acorex-components-bottom-navigation.mjs +14 -14
  19. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  20. package/fesm2022/acorex-components-breadcrumbs.mjs +13 -13
  21. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  22. package/fesm2022/acorex-components-button-group.mjs +40 -20
  23. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  24. package/fesm2022/acorex-components-button.mjs +35 -36
  25. package/fesm2022/acorex-components-button.mjs.map +1 -1
  26. package/fesm2022/acorex-components-calendar.mjs +256 -54
  27. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  28. package/fesm2022/acorex-components-check-box.mjs +10 -10
  29. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  30. package/fesm2022/acorex-components-chips.mjs +9 -9
  31. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  32. package/fesm2022/acorex-components-circular-progress.mjs +13 -13
  33. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  34. package/fesm2022/acorex-components-code-editor.mjs +27 -27
  35. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  36. package/fesm2022/acorex-components-color-box.mjs +14 -14
  37. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  38. package/fesm2022/acorex-components-color-palette.mjs +84 -43
  39. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  40. package/fesm2022/acorex-components-command.mjs +19 -19
  41. package/fesm2022/acorex-components-command.mjs.map +1 -1
  42. package/fesm2022/acorex-components-comment.mjs +35 -35
  43. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  44. package/fesm2022/acorex-components-conversation.mjs +105 -105
  45. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  46. package/fesm2022/acorex-components-conversation2.mjs +11165 -8111
  47. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  48. package/fesm2022/acorex-components-cron-job.mjs +51 -51
  49. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  50. package/fesm2022/acorex-components-data-list.mjs +31 -31
  51. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  52. package/fesm2022/acorex-components-data-pager.mjs +93 -104
  53. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  54. package/fesm2022/acorex-components-data-table.mjs +69 -57
  55. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  56. package/fesm2022/acorex-components-datetime-box.mjs +174 -39
  57. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  58. package/fesm2022/acorex-components-datetime-input.mjs +30 -38
  59. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  60. package/fesm2022/acorex-components-datetime-picker.mjs +62 -55
  61. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  62. package/fesm2022/acorex-components-decorators.mjs +39 -39
  63. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  64. package/fesm2022/acorex-components-dialog.mjs +19 -26
  65. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  66. package/fesm2022/acorex-components-drawer.mjs +23 -23
  67. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  68. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  69. package/fesm2022/acorex-components-dropdown.mjs +19 -19
  70. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  71. package/fesm2022/acorex-components-editor.mjs +12 -12
  72. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  73. package/fesm2022/acorex-components-fab.mjs +15 -15
  74. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  75. package/fesm2022/acorex-components-flow-chart.mjs +74 -58
  76. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  77. package/fesm2022/acorex-components-form.mjs +30 -30
  78. package/fesm2022/acorex-components-form.mjs.map +1 -1
  79. package/fesm2022/acorex-components-grid-layout-builder.mjs +15 -15
  80. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  81. package/fesm2022/acorex-components-image-editor.mjs +87 -87
  82. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  83. package/fesm2022/acorex-components-image.mjs +11 -11
  84. package/fesm2022/acorex-components-image.mjs.map +1 -1
  85. package/fesm2022/acorex-components-json-viewer.mjs +12 -12
  86. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  87. package/fesm2022/acorex-components-kanban.mjs +23 -23
  88. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  89. package/fesm2022/acorex-components-kbd.mjs +15 -15
  90. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  91. package/fesm2022/acorex-components-label.mjs +9 -9
  92. package/fesm2022/acorex-components-list.mjs +15 -15
  93. package/fesm2022/acorex-components-list.mjs.map +1 -1
  94. package/fesm2022/acorex-components-loading-dialog.mjs +19 -19
  95. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  96. package/fesm2022/acorex-components-loading.mjs +21 -21
  97. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  98. package/fesm2022/acorex-components-map.mjs +46 -46
  99. package/fesm2022/acorex-components-map.mjs.map +1 -1
  100. package/fesm2022/acorex-components-media-viewer.mjs +82 -82
  101. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  102. package/fesm2022/acorex-components-menu.mjs +366 -197
  103. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  104. package/fesm2022/{acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs → acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs} +28 -28
  105. package/fesm2022/{acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs.map → acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs.map} +1 -1
  106. package/fesm2022/{acorex-components-modal-modal-content.component-DTZu2zbU.mjs → acorex-components-modal-modal-content.component-DKweXQfl.mjs} +39 -39
  107. package/fesm2022/acorex-components-modal-modal-content.component-DKweXQfl.mjs.map +1 -0
  108. package/fesm2022/acorex-components-modal.mjs +1 -1
  109. package/fesm2022/acorex-components-navbar.mjs +8 -8
  110. package/fesm2022/acorex-components-notification.mjs +28 -28
  111. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  112. package/fesm2022/acorex-components-number-box.mjs +61 -23
  113. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  114. package/fesm2022/acorex-components-otp.mjs +45 -21
  115. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  116. package/fesm2022/acorex-components-page.mjs +10 -10
  117. package/fesm2022/acorex-components-paint.mjs +53 -53
  118. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  119. package/fesm2022/acorex-components-password-box.mjs +28 -28
  120. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  121. package/fesm2022/acorex-components-pdf-reader.mjs +9 -9
  122. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  123. package/fesm2022/acorex-components-phone-box.mjs +19 -19
  124. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  125. package/fesm2022/acorex-components-picker.mjs +31 -31
  126. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  127. package/fesm2022/acorex-components-popover.mjs +11 -11
  128. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  129. package/fesm2022/acorex-components-popup.mjs +48 -24
  130. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  131. package/fesm2022/acorex-components-progress-bar.mjs +8 -8
  132. package/fesm2022/acorex-components-qrcode.mjs +37 -20
  133. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  134. package/fesm2022/acorex-components-query-builder.mjs +15 -14
  135. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  136. package/fesm2022/acorex-components-radio.mjs +9 -9
  137. package/fesm2022/acorex-components-rail-navigation.mjs +28 -28
  138. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  139. package/fesm2022/acorex-components-range-slider.mjs +34 -34
  140. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  141. package/fesm2022/acorex-components-rate-picker.mjs +17 -17
  142. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  143. package/fesm2022/acorex-components-rest-api-generator.mjs +33 -33
  144. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  145. package/fesm2022/acorex-components-result.mjs +8 -8
  146. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  147. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  148. package/fesm2022/acorex-components-rrule.mjs +36 -36
  149. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  150. package/fesm2022/acorex-components-scheduler-picker.mjs +118 -118
  151. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  152. package/fesm2022/acorex-components-scheduler.mjs +398 -326
  153. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  154. package/fesm2022/acorex-components-search-box.mjs +9 -9
  155. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  156. package/fesm2022/acorex-components-select-box.mjs +22 -22
  157. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  158. package/fesm2022/acorex-components-selection-list-2.mjs +12 -12
  159. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  160. package/fesm2022/acorex-components-selection-list.mjs +11 -11
  161. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  162. package/fesm2022/acorex-components-side-menu.mjs +455 -97
  163. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  164. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  165. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/acorex-components-slider.mjs +7 -7
  167. package/fesm2022/acorex-components-sliding-item.mjs +25 -25
  168. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  169. package/fesm2022/acorex-components-step-wizard.mjs +40 -39
  170. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  171. package/fesm2022/acorex-components-switch.mjs +12 -12
  172. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  173. package/fesm2022/acorex-components-tabs.mjs +20 -20
  174. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  175. package/fesm2022/acorex-components-tag-box.mjs +19 -19
  176. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  177. package/fesm2022/acorex-components-tag.mjs +8 -8
  178. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  179. package/fesm2022/acorex-components-text-area.mjs +9 -9
  180. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  181. package/fesm2022/acorex-components-text-box.mjs +12 -12
  182. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  183. package/fesm2022/acorex-components-time-duration.mjs +34 -32
  184. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  185. package/fesm2022/acorex-components-time-line.mjs +19 -19
  186. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  187. package/fesm2022/acorex-components-toast.mjs +26 -26
  188. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  189. package/fesm2022/acorex-components-toolbar.mjs +13 -13
  190. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  191. package/fesm2022/acorex-components-tooltip.mjs +27 -18
  192. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  193. package/fesm2022/acorex-components-tree-view.mjs +326 -67
  194. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  195. package/fesm2022/acorex-components-uploader.mjs +17 -17
  196. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  197. package/fesm2022/acorex-components-video-player.mjs +8 -8
  198. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  199. package/fesm2022/acorex-components-wysiwyg.mjs +60 -53
  200. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  201. package/package.json +5 -4
  202. package/types/acorex-components-button-group.d.ts +9 -3
  203. package/types/acorex-components-button.d.ts +2 -8
  204. package/types/acorex-components-calendar.d.ts +138 -27
  205. package/types/acorex-components-color-palette.d.ts +2 -0
  206. package/types/acorex-components-conversation2.d.ts +1296 -1256
  207. package/types/acorex-components-data-pager.d.ts +6 -25
  208. package/types/acorex-components-data-table.d.ts +12 -2
  209. package/types/acorex-components-datetime-box.d.ts +79 -8
  210. package/types/acorex-components-datetime-input.d.ts +2 -2
  211. package/types/acorex-components-datetime-picker.d.ts +15 -5
  212. package/types/acorex-components-flow-chart.d.ts +4 -0
  213. package/types/acorex-components-menu.d.ts +105 -36
  214. package/types/acorex-components-number-box.d.ts +9 -0
  215. package/types/acorex-components-otp.d.ts +18 -1
  216. package/types/acorex-components-popup.d.ts +11 -1
  217. package/types/acorex-components-qrcode.d.ts +1 -0
  218. package/types/acorex-components-query-builder.d.ts +1 -1
  219. package/types/acorex-components-scheduler.d.ts +23 -2
  220. package/types/acorex-components-side-menu.d.ts +96 -34
  221. package/types/acorex-components-step-wizard.d.ts +2 -1
  222. package/types/acorex-components-time-duration.d.ts +1 -0
  223. package/types/acorex-components-tree-view.d.ts +43 -2
  224. package/types/acorex-components-wysiwyg.d.ts +6 -1
  225. package/fesm2022/acorex-components-modal-modal-content.component-DTZu2zbU.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../packages/components/menu/src/lib/menu.service.ts","../../../../packages/components/menu/src/lib/menu.types.ts","../../../../packages/components/menu/src/lib/menu-item.component.ts","../../../../packages/components/menu/src/lib/menu-item.component.html","../../../../packages/components/menu/src/lib/context-menu.component.ts","../../../../packages/components/menu/src/lib/menu.component.html","../../../../packages/components/menu/src/lib/menu.component.ts","../../../../packages/components/menu/src/lib/menu.module.ts","../../../../packages/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXPoint } from '@acorex/core/utils';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\n@Injectable()\nexport class AXMenuService {\n public closeAll$: Subject<void> = new Subject();\n public open$: Subject<AXMenuItemComponentBase> = new Subject();\n public close$: Subject<AXMenuItemComponentBase> = new Subject();\n public closeExcept$ = new Subject<AXMenuItemComponentBase>();\n\n public openContextMenu$ = new Subject<{ sender: AXRootMenu; point: AXPoint }>();\n public closeAllContextMenu$ = new Subject<{ sender: AXRootMenu }>();\n}\n","import { AXOrientation, AXStyleColorType, NXClickEvent, NXComponent } from '@acorex/cdk/common';\nimport { OutputEmitterRef, WritableSignal } from '@angular/core';\n\nexport type AXMenuOpenTrigger = 'click' | 'hover';\nexport type AXMenuCloseTrigger = 'click' | 'leave';\n\nexport abstract class AXRootMenu {\n orientation: WritableSignal<AXOrientation>;\n openOn: WritableSignal<AXMenuOpenTrigger>;\n closeOn: WritableSignal<AXMenuCloseTrigger>;\n onItemClick: OutputEmitterRef<AXMenuItemClickBaseEvent>;\n nativeElement: HTMLDivElement;\n hasArrow: WritableSignal<boolean>;\n}\n\nexport abstract class AXMenuItemComponentBase {}\n\nexport abstract class AXMenuItem {\n color?: AXStyleColorType;\n name?: string;\n text: string;\n data?: any;\n icon?: string;\n disabled?: boolean;\n items?: AXMenuItem[];\n suffix?: {\n text: string;\n };\n break?: boolean;\n group?: {\n name?: string;\n title?: string;\n };\n}\n\nexport class AXMenuItemClickBaseEvent<T extends NXComponent = NXComponent> extends NXClickEvent<T> {\n item: {\n name?: string;\n text: string;\n data?: any;\n };\n canceled = false;\n}\n","import { AXComponent, AXStyleColorType, NXComponent } from '@acorex/cdk/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostBinding,\n HostListener,\n inject,\n input,\n OnDestroy,\n output,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemClickBaseEvent, AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ],\n})\nexport class AXMenuItemComponent extends NXComponent implements OnDestroy {\n protected isOpen = signal(false);\n protected hasSubItems = signal(false);\n protected isFirstLevel = signal(false);\n private mutationObserver!: MutationObserver;\n\n protected root = inject(AXRootMenu);\n protected parent?: AXMenuItemComponent | null;\n protected isRoot = () => this.parent == null;\n\n private service = inject(AXMenuService);\n private scrollableParents: HTMLElement[] = [];\n\n private unsuscriber = inject(AXUnsubscriber);\n private renderer = inject(Renderer2);\n private zIndexService = inject(AXZIndexService);\n private zToken: AXZToken | null = null;\n\n protected arrowIcon = computed<string>(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n });\n\n onClick = output<AXMenuItemClickEvent>();\n\n name = input<string>();\n data = input<any>();\n disabled = input<boolean>();\n color = input<AXStyleColorType>();\n\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.detectSubItems();\n this.observeMutations();\n this.bindScrollEvents();\n });\n //\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) === item) {\n this.isOpen.set(true);\n this.calculatePosition();\n }\n });\n //\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) == item) {\n this.isOpen.set(false);\n }\n });\n //\n this.service.closeExcept$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n this.closeExcept(item as AXMenuItemComponent);\n });\n }\n\n private closeExcept(item: AXMenuItemComponent) {\n const list: AXMenuItemComponent[] = [item];\n // TODO: Check for better solution\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? (parentEl?.['__axContext__'] as AXMenuItemComponent) : null;\n //\n let parent = item.parent;\n while (parent != null) {\n list.push(parent);\n parent = parent.parent;\n }\n //\n if (!list.includes(this)) {\n this.close();\n }\n }\n\n private observeMutations() {\n this.mutationObserver = new MutationObserver(() => {\n this.detectSubItems();\n });\n\n // Start observing changes in child elements\n this.mutationObserver.observe(this.nativeElement, {\n childList: true,\n subtree: true,\n });\n }\n\n private getText(): string {\n return this.nativeElement.querySelector<HTMLDivElement>('ax-text')?.innerText;\n }\n\n /**\n * Manually detect all `ax-menu-item` elements and check if this menu item has sub-items.\n */\n private detectSubItems() {\n //\n const parentEl = this.nativeElement.parentElement?.parentElement;\n this.parent = parentEl?.tagName == 'AX-MENU-ITEM' ? (parentEl?.['__axContext__'] as AXMenuItemComponent) : null;\n //\n const tag = this.nativeElement.parentElement?.tagName;\n this.isFirstLevel.set(tag == 'AX-MENU' || tag == 'AX-CONTEXT-MENU');\n const subItems = this.nativeElement.querySelectorAll('ax-menu-item');\n if (subItems.length > 0) {\n this.hasSubItems.set(true);\n } else {\n this.hasSubItems.set(false);\n }\n }\n\n /**\n * Opens the submenu of this menu item if it has sub-items and is not disabled.\n *\n * Inherited behavior: Uses the injected service to notify other items to close.\n *\n * @returns void - No return value. Triggers submenu opening side-effects.\n */\n open() {\n this.service.closeExcept$.next(this);\n if (!this.disabled() && this.hasSubItems()) {\n // Acquire z-index token for this submenu\n if (!this.zToken) {\n this.zToken = this.zIndexService.acquire();\n }\n this.service.open$.next(this);\n }\n }\n\n /**\n * Closes the submenu of this menu item if open.\n *\n * @returns void - No return value. Triggers submenu closing side-effects.\n */\n close() {\n this.service.close$.next(this);\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n private calculatePosition() {\n const submenu = this.nativeElement.querySelector<HTMLElement>('.ax-menu-items');\n if (!submenu) return;\n\n // 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\n const submenuRect = submenu.getBoundingClientRect();\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n // Reset temporary styles\n this.renderer.removeStyle(submenu, 'visibility');\n this.renderer.removeStyle(submenu, 'display');\n\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n\n let finalTop: number;\n let finalLeft: number;\n\n // --- 1. VERTICAL POSITIONING ---\n const preferredTop =\n this.isFirstLevel() && this.root.orientation() === 'horizontal'\n ? itemRect.bottom // For horizontal menu, open below\n : itemRect.top; // For vertical menu, align with parent top\n\n const alternateTop = itemRect.top - submenuRect.height; // Position for opening upwards\n\n if (preferredTop + submenuRect.height <= windowHeight) {\n finalTop = preferredTop;\n } else if (this.isFirstLevel() && this.root.orientation() === 'horizontal' && alternateTop >= 0) {\n finalTop = alternateTop;\n } else {\n finalTop = windowHeight - submenuRect.height;\n }\n\n if (finalTop < 0) {\n finalTop = 0;\n }\n\n // --- 2. HORIZONTAL POSITIONING ---\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n const preferredLeft = isRtl ? itemRect.right - submenuRect.width : itemRect.left;\n const alternateLeft = isRtl ? itemRect.left : itemRect.right - submenuRect.width;\n\n if (preferredLeft >= 0 && preferredLeft + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeft;\n } else {\n finalLeft = Math.max(0, Math.min(alternateLeft, windowWidth - submenuRect.width));\n }\n } else {\n const preferredLeftRtl = itemRect.left - submenuRect.width;\n const alternateLeftRtl = itemRect.right;\n\n const preferredLeftLtr = itemRect.right;\n const alternateLeftLtr = itemRect.left - submenuRect.width;\n\n if (isRtl) {\n if (preferredLeftRtl >= 0) {\n finalLeft = preferredLeftRtl;\n } else if (alternateLeftRtl + submenuRect.width <= windowWidth) {\n finalLeft = alternateLeftRtl;\n } else {\n finalLeft = 0;\n }\n } else {\n if (preferredLeftLtr + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeftLtr;\n } else if (alternateLeftLtr >= 0) {\n finalLeft = alternateLeftLtr;\n } else {\n finalLeft = windowWidth - submenuRect.width;\n }\n }\n }\n\n // --- 3. 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\n // --- 4. APPLY FINAL STYLES ---\n this.renderer.setStyle(submenu, 'position', 'fixed');\n this.renderer.setStyle(submenu, 'top', `${finalTop}px`);\n this.renderer.setStyle(submenu, 'left', `${finalLeft}px`);\n // Apply z-index from token\n if (this.zToken) {\n this.renderer.setStyle(submenu, 'z-index', String(this.zToken.zIndex));\n }\n }\n\n @HostListener('click', ['$event'])\n handleClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.disabled()) return;\n //\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n } as AXMenuItemClickEvent;\n //\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root as any } });\n //\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n } else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n handleMouseEnter(event: MouseEvent) {\n event.stopPropagation();\n // Cancel the close delay if the mouse re-enters the element\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null; // Reset the timeout\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n\n private mouseLeaveTimeout: any;\n\n @HostListener('mouseleave', ['$event'])\n handleMouseLeave(event: MouseEvent) {\n event.stopPropagation();\n\n if (this.hasSubItems() && this.root.closeOn() === 'leave') {\n // Clear any previous timeout to avoid multiple triggers\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n\n // Set a delay before closing the submenu\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500); // Adjust the delay (500ms in this case) as per your requirement\n }\n }\n\n @HostListener('window:scroll')\n @HostListener('window:resize')\n onWindowEvent() {\n this.service.closeAll$.next(); // Close all menus on scroll or resize\n }\n\n /**\n * Close all menus if clicking outside the root menu and all sub-items.\n */\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent) {\n const hostElement = this.root.nativeElement;\n if (!hostElement.contains(event.target as Node)) {\n this.service.closeAll$.next(); // Close all menus if click is outside the root and sub-items\n }\n }\n\n ngOnDestroy() {\n this.removeScrollEvents();\n }\n\n private bindScrollEvents() {\n this.scrollableParents = AXHtmlUtil.getScrollableParents(this.nativeElement);\n\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n // Remove scroll event listeners\n private removeScrollEvents() {\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onContainerScroll.bind(this));\n });\n }\n\n /**\n * Handler for scroll events (window or scrollable parent containers)\n */\n private onContainerScroll() {\n this.service.closeAll$.next(); // Close all menus on scroll\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n const list: string[] = ['ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n list.push(`ax-${this.color() ?? 'ax-default'}`);\n\n return list;\n }\n}\n","<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems() && (!isRoot() || root?.hasArrow())) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} \"></i>\n }\n</div>\n<div class=\"ax-menu-items ax-action-list ax-action-list-vertical\" [class.ax-state-open]=\"isOpen()\">\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container\"></ng-content>\n</div>\n","import { AXComponent, AXOrientation, NXComponent, NXEvent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isBrowser } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DOCUMENT,\n HostBinding,\n HostListener,\n inject,\n input,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport class AXContextMenuOpeningEvent extends NXEvent<AXContextMenuComponent> {\n items: AXMenuItem[];\n canceled = false;\n targetElement: HTMLElement;\n}\nexport type AXContextMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXContextMenuComponent>;\n\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\n@Component({\n selector: 'ax-context-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ],\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXContextMenuComponent extends NXComponent {\n // Inputs and Outputs\n\n readonly orientation = input<AXOrientation>('vertical');\n readonly openOn = input<AXMenuOpenTrigger>('hover');\n readonly closeOn = input<AXMenuCloseTrigger>('click');\n readonly originalItems = input<AXMenuItem[]>([], { alias: 'items' });\n readonly target = input<HTMLElement | HTMLElement[] | string>();\n\n onItemClick = output<AXContextMenuItemsClickEvent>();\n onOpening = output<AXContextMenuOpeningEvent>();\n /** Emitted when the menu closes (backdrop, item click, scroll, another menu opening, etc.). */\n onClose = output<void>();\n\n hasArrow = signal<boolean>(true);\n\n // Injected Services\n\n private service = inject(AXMenuService);\n private renderer = inject(Renderer2);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private zIndexService = inject(AXZIndexService);\n private zToken: AXZToken | null = null;\n\n // Constructor (Dependency Injection)\n\n /** @ignore */\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.bindContextEvent();\n });\n\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n\n this.service.openContextMenu$.subscribe((e) => {\n if ((e.sender as any) == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n\n // Lifecycle Hooks\n\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n\n /**\n * Refreshes the context menu by rebinding event listeners to target elements.\n */\n refresh() {\n this.bindContextEvent();\n }\n\n /**\n * Shows the context menu at a specific point.\n * @param point - The coordinates where the menu should appear\n * @param targetElement - Optional target element for the context menu\n * @param event - Optional opening event with menu items\n */\n showAt(point: AXPoint, targetElement?: HTMLElement, event?: AXContextMenuOpeningEvent) {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender });\n this.service.openContextMenu$.next({ sender, point });\n if (isPlatformBrowser(this.platformID)) {\n if (!targetElement) {\n targetElement = this.document.elementFromPoint(point.x, point.y) as HTMLElement;\n }\n if (!event) {\n event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n if (event.canceled) return;\n }\n this.onOpening.emit(event);\n this.items.set(event.items);\n }\n }\n\n /**\n * Closes the context menu and removes the backdrop.\n */\n close() {\n const wasOpen = this.nativeElement.classList.contains('ax-state-open');\n this.nativeElement.classList.remove('ax-state-open');\n this.removeBackdrop();\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n if (wasOpen) {\n this.onClose.emit();\n }\n }\n\n // Private Properties\n\n private backdropElement!: HTMLElement;\n private originalNextSibling: Node | null = null;\n private originalParent: HTMLElement | null = null;\n\n protected items = signal<AXMenuItem[]>([]);\n\n // Private Methods (Internal Logic)\n\n /** @ignore */\n private getTargetElements(): HTMLElement[] {\n if (isPlatformBrowser(this.platformID)) {\n const elements: HTMLElement[] =\n typeof this.target() == 'string'\n ? Array.from(this.document.querySelectorAll<HTMLElement>(this.target() as string))\n : Array.isArray(this.target())\n ? (this.target() as HTMLElement[])\n : [this.target() as HTMLElement];\n\n return elements;\n }\n return null;\n }\n\n /** @ignore */\n private bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n\n /** @ignore */\n private removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n\n /** @ignore */\n private handleContextMenu(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n //\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));\n //\n const event: AXContextMenuOpeningEvent = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY }, targetElement, event);\n }\n }\n }\n\n /** @ignore */\n private internalShowAt(point: AXPoint) {\n 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\n // Detect RTL (Right-To-Left) mode\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n\n let left: number;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n } else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n\n const bottom = point.y + itemRect.height;\n let top: number;\n\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n } else {\n top = point.y;\n }\n\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n\n this.createBackdrop();\n }\n\n /** @ignore */\n private createBackdrop() {\n if (!this.originalParent) {\n this.originalParent = this.nativeElement.parentElement;\n this.originalNextSibling = this.nativeElement.nextSibling;\n }\n\n // Acquire z-index token\n this.zToken = this.zIndexService.acquire();\n\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', String(this.zToken.zIndex));\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n\n this.createEventListeners(this.backdropElement);\n\n this.document.body.appendChild(this.backdropElement);\n this.backdropElement.appendChild(this.nativeElement);\n }\n\n /** @ignore */\n private removeBackdrop() {\n if (this.backdropElement) {\n if (this.originalParent) {\n this.renderer.insertBefore(this.originalParent, this.nativeElement, this.originalNextSibling);\n }\n if (this.backdropElement.parentNode) {\n this.renderer.removeChild(this.backdropElement.parentNode, this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n\n private createEventListeners(el: HTMLElement) {\n const l1 = this.renderer.listen(el, 'click', () => {\n this.close();\n l1();\n });\n\n const l2 = this.renderer.listen(el, 'wheel', () => {\n this.close();\n l2();\n });\n\n const l3 = this.renderer.listen(el, 'contextmenu', (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const x = e.clientX;\n const y = e.clientY;\n\n // Close first so the full-screen backdrop is gone; otherwise the next target never\n // receives contextmenu (conversation list / message list / etc.).\n this.close();\n\n if (isPlatformBrowser(this.platformID)) {\n requestAnimationFrame(() => {\n const under = this.document.elementFromPoint(x, y) as HTMLElement | null;\n if (!under || under === this.document.body || under === this.document.documentElement) {\n return;\n }\n const forward = new MouseEvent('contextmenu', {\n bubbles: true,\n cancelable: true,\n view: this.document.defaultView ?? undefined,\n clientX: x,\n clientY: y,\n screenX: e.screenX,\n screenY: e.screenY,\n button: 2,\n buttons: 2,\n });\n under.dispatchEvent(forward);\n });\n }\n\n l3();\n });\n }\n\n // Host Listeners (UI Interaction Handling)\n\n /** @ignore */\n @HostListener('window:scroll')\n @HostListener('window:resize')\n onWindowEvent() {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): any {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n}\n","<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item [name]=\"item.name\" [data]=\"item.data\" [disabled]=\"item.disabled\" [color]=\"item.color\">\n @if (item.icon) {\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n </ax-prefix>\n }\n @if (item.text) {\n <ax-text>{{ item.text | translate | async }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n","import { AXComponent, AXOrientation, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ],\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXMenuComponent extends NXComponent {\n orientation = input<AXOrientation>('horizontal');\n\n openOn = input<AXMenuOpenTrigger>('hover');\n\n closeOn = input<AXMenuCloseTrigger>('leave');\n\n service = inject(AXMenuService);\n\n onItemClick = output<AXMenuItemsClickEvent>();\n\n items = input<AXMenuItem[]>([]);\n\n hasArrow = input<boolean>(true);\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n return [\n 'ax-root-menu',\n 'ax-action-list',\n `ax-action-list-${this.orientation()}`,\n `${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,\n ];\n }\n\n /**\n * Closes all open menus and submenus for this root menu.\n *\n * @returns void - No return value. All open menu overlays are closed and hidden.\n */\n public close() {\n this.service.closeAll$.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\n@NgModule({\n imports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n})\nexport class AXMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../packages/components/menu/src/lib/menu.service.ts","../../../../packages/components/menu/src/lib/menu.types.ts","../../../../packages/components/menu/src/lib/menu-item.component.ts","../../../../packages/components/menu/src/lib/menu-item.component.html","../../../../packages/components/menu/src/lib/context-menu.component.ts","../../../../packages/components/menu/src/lib/menu.component.html","../../../../packages/components/menu/src/lib/menu.component.ts","../../../../packages/components/menu/src/lib/menu.module.ts","../../../../packages/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { isPlatformBrowser } from '@angular/common';\nimport { DestroyRef, DOCUMENT, inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Subject } from 'rxjs';\nimport { AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\n@Injectable()\nexport class AXMenuService {\n public closeAll$: Subject<void> = new Subject();\n public open$: Subject<AXMenuItemComponentBase> = new Subject();\n public close$: Subject<AXMenuItemComponentBase> = new Subject();\n\n public openContextMenu$ = new Subject<{ sender: AXRootMenu; point: AXPoint }>();\n public closeAllContextMenu$ = new Subject<{ sender: AXRootMenu }>();\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n\n private readonly openItems = new Set<AXMenuItemComponentBase>();\n private globalListenersBound = false;\n private rootElement?: HTMLElement;\n private scrollableParents: HTMLElement[] = [];\n\n private readonly onDocumentClick = (event: MouseEvent) => {\n if (this.rootElement && !this.rootElement.contains(event.target as Node)) {\n this.closeAll$.next();\n }\n };\n\n private readonly onWindowOrScrollEvent = () => {\n this.closeAll$.next();\n };\n\n constructor() {\n this.closeAll$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.openItems.clear();\n });\n }\n\n /**\n * Registers a single set of document/window/scroll listeners for the whole menu tree.\n */\n initGlobalListeners(rootElement: HTMLElement) {\n if (!isPlatformBrowser(this.platformId) || this.globalListenersBound) {\n return;\n }\n this.globalListenersBound = true;\n this.rootElement = rootElement;\n\n this.document.addEventListener('click', this.onDocumentClick);\n window.addEventListener('scroll', this.onWindowOrScrollEvent, { capture: true });\n window.addEventListener('resize', this.onWindowOrScrollEvent);\n\n this.scrollableParents = AXHtmlUtil.getScrollableParents(rootElement);\n this.scrollableParents.forEach((parent) => {\n parent.addEventListener('scroll', this.onWindowOrScrollEvent);\n });\n\n this.destroyRef.onDestroy(() => {\n this.document.removeEventListener('click', this.onDocumentClick);\n window.removeEventListener('scroll', this.onWindowOrScrollEvent, { capture: true });\n window.removeEventListener('resize', this.onWindowOrScrollEvent);\n this.scrollableParents.forEach((parent) => {\n parent.removeEventListener('scroll', this.onWindowOrScrollEvent);\n });\n });\n }\n\n /**\n * Closes open submenus that are not on the ancestor path of the item being opened.\n */\n closeExcept(opener: AXMenuItemComponentBase) {\n const keepOpen = new Set<AXMenuItemComponentBase>();\n let current: AXMenuItemComponentBase | null | undefined = opener;\n while (current) {\n keepOpen.add(current);\n current = current.getParentMenuItem?.() ?? current.parent ?? null;\n }\n\n for (const openItem of [...this.openItems]) {\n if (!keepOpen.has(openItem)) {\n this.markClosed(openItem);\n }\n }\n }\n\n markOpen(item: AXMenuItemComponentBase) {\n this.openItems.add(item);\n this.open$.next(item);\n }\n\n markClosed(item: AXMenuItemComponentBase) {\n this.openItems.delete(item);\n this.close$.next(item);\n }\n}\n","import { AXOrientation, AXStyleColorType, NXClickEvent, NXComponent } from '@acorex/cdk/common';\nimport { OutputEmitterRef, WritableSignal } from '@angular/core';\nimport { IsActiveMatchOptions, UrlTree } from '@angular/router';\n\nexport type AXMenuOpenTrigger = 'click' | 'hover';\nexport type AXMenuCloseTrigger = 'click' | 'leave';\n\nexport abstract class AXRootMenu {\n orientation: WritableSignal<AXOrientation>;\n openOn: WritableSignal<AXMenuOpenTrigger>;\n closeOn: WritableSignal<AXMenuCloseTrigger>;\n onItemClick: OutputEmitterRef<AXMenuItemClickBaseEvent>;\n nativeElement: HTMLDivElement;\n hasArrow: WritableSignal<boolean>;\n}\n\nexport abstract class AXMenuItemComponentBase {\n parent?: AXMenuItemComponentBase | null;\n\n /** Resolves the parent item, including for `ngTemplateOutlet`-created nested items. */\n getParentMenuItem?(): AXMenuItemComponentBase | null | undefined;\n}\n\n/** Shared tree item shape for `ax-menu`, `ax-context-menu`, and `ax-side-menu`. */\nexport interface AXMenuItem {\n text: string;\n name?: string;\n icon?: string;\n data?: unknown;\n disabled?: boolean;\n items?: AXMenuItem[];\n color?: AXStyleColorType;\n suffix?: {\n text: string;\n };\n /** Side-menu alias for `suffix.text`. */\n suffixText?: string;\n break?: boolean;\n group?: {\n name?: string;\n title?: string;\n };\n title?: string;\n routerLink?: string | any[] | UrlTree;\n routerLinkActive?: string | string[];\n routerLinkActiveOptions?: { exact: boolean } | IsActiveMatchOptions;\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n active?: boolean;\n isLoading?: boolean;\n isCollapsed?: boolean;\n toggleOnClick?: boolean;\n}\n\nexport class AXMenuItemClickBaseEvent<T extends NXComponent = NXComponent> extends NXClickEvent<T> {\n item: {\n name?: string;\n text: string;\n data?: any;\n };\n canceled = false;\n}\n","import { AXComponent, AXStyleColorType, NXComponent } from '@acorex/cdk/common';\nimport { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n Injector,\n input,\n OnDestroy,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuItemClickBaseEvent, AXMenuItemComponentBase, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemClickEvent = AXMenuItemClickBaseEvent<AXMenuItemComponent>;\n\n/**\n * Represents a menu item component used within an `ax-menu`.\n * @category Components\n */\n@Component({\n selector: 'ax-menu-item',\n templateUrl: './menu-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXMenuItemComponentBase,\n useExisting: AXMenuItemComponent,\n },\n AXUnsubscriber,\n {\n provide: AXComponent,\n useExisting: AXMenuItemComponent,\n },\n ],\n})\nexport class AXMenuItemComponent extends NXComponent implements OnDestroy {\n protected isOpen = signal(false);\n\n readonly parent = inject(AXMenuItemComponent, { optional: true, skipSelf: true });\n\n protected isFirstLevel = computed(() => this.getParentMenuItem() == null);\n\n private readonly childMenuItems = contentChildren(AXMenuItemComponent, { descendants: false });\n private readonly discoveredSubmenuNodeCount = signal(0);\n private readonly submenuSlot = viewChild<ElementRef<HTMLElement>>('submenuSlot');\n private readonly platformId = inject(PLATFORM_ID);\n private readonly destroyRef = inject(DestroyRef);\n private childObserver: MutationObserver | null = null;\n private childRefreshScheduled = false;\n\n /**\n * Nested items from the data model. Required for recursive `ngTemplateOutlet` templates\n * because `contentChildren` does not traverse those embedded views.\n */\n subItems = input<readonly unknown[]>([]);\n\n protected hasSubItems = computed(\n () =>\n (this.subItems()?.length ?? 0) > 0 ||\n this.childMenuItems().length > 0 ||\n this.discoveredSubmenuNodeCount() > 0,\n );\n\n protected root = inject(AXRootMenu);\n\n private service = inject(AXMenuService);\n\n private unsuscriber = inject(AXUnsubscriber);\n private renderer = inject(Renderer2);\n private injector = inject(Injector);\n private zIndexService = inject(AXZIndexService);\n private zToken: AXZToken | null = null;\n\n protected arrowIcon = computed<string>(() => {\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n return this.root.orientation() == 'horizontal' && this.isFirstLevel()\n ? 'ax-icon-chevron-down'\n : isRtl\n ? 'ax-icon-chevron-left'\n : 'ax-icon-chevron-right';\n });\n\n onClick = output<AXMenuItemClickEvent>();\n\n name = input<string>();\n data = input<any>();\n disabled = input<boolean>();\n color = input<AXStyleColorType>();\n\n constructor() {\n super();\n\n afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.reparentOrphanedChildren();\n this.updateDiscoveredSubmenuNodeCount();\n this.childObserver = new MutationObserver((records) => {\n if (!this.hasRelevantChildMutation(records)) {\n return;\n }\n this.scheduleChildRefresh();\n });\n this.childObserver.observe(this.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n\n this.service.closeAll$.pipe(this.unsuscriber.takeUntilDestroy).subscribe(() => this.close());\n\n this.service.open$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) === item) {\n this.isOpen.set(true);\n this.schedulePositionCalculation();\n }\n });\n\n this.service.close$.pipe(this.unsuscriber.takeUntilDestroy).subscribe((item) => {\n if ((this as any) == item) {\n this.isOpen.set(false);\n }\n });\n }\n\n private getText(): string {\n return this.nativeElement.querySelector<HTMLDivElement>('ax-text')?.innerText;\n }\n\n /**\n * Resolves the parent menu item. Items rendered via recursive `ngTemplateOutlet` do not\n * receive a DI parent, so we fall back to the DOM tree after reparenting.\n */\n getParentMenuItem(): AXMenuItemComponent | null {\n if (this.parent) {\n return this.parent;\n }\n\n const parentHost = this.nativeElement.parentElement?.closest('ax-menu-item');\n if (!parentHost || parentHost === this.nativeElement) {\n return null;\n }\n\n const ctx = (parentHost as HTMLElement & { __axContext__?: unknown }).__axContext__;\n return ctx instanceof AXMenuItemComponent ? ctx : null;\n }\n\n /**\n * Opens the submenu of this menu item if it has sub-items and is not disabled.\n */\n open() {\n if (this.disabled() || !this.hasSubItems()) {\n return;\n }\n\n this.reparentOrphanedChildren();\n this.service.closeExcept(this);\n\n if (!this.zToken) {\n this.zToken = this.zIndexService.acquire();\n }\n this.service.markOpen(this);\n }\n\n /**\n * Closes the submenu of this menu item if open.\n */\n close() {\n this.service.markClosed(this);\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n }\n\n /**\n * Positions the submenu after layout so nested levels measure their full height.\n */\n private schedulePositionCalculation() {\n afterNextRender(\n () => {\n if (this.isOpen()) {\n this.calculatePosition();\n afterNextRender(\n () => {\n if (this.isOpen()) {\n this.calculatePosition();\n }\n },\n { injector: this.injector },\n );\n }\n },\n { injector: this.injector },\n );\n }\n\n /**\n * Calculate the position of the submenu to avoid it going out of the viewport.\n */\n private calculatePosition() {\n const submenu = this.submenuSlot()?.nativeElement;\n if (!submenu) return;\n\n const submenuRect = this.measureSubmenuRect(submenu);\n const itemRect = this.nativeElement.getBoundingClientRect();\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const isRtl = AXHtmlUtil.isRtl(this.nativeElement);\n\n let finalTop: number;\n let finalLeft: number;\n\n const preferredTop =\n this.isFirstLevel() && this.root.orientation() === 'horizontal'\n ? itemRect.bottom\n : itemRect.top;\n\n const alternateTop = itemRect.top - submenuRect.height;\n\n if (preferredTop + submenuRect.height <= windowHeight) {\n finalTop = preferredTop;\n } else if (alternateTop >= 0) {\n finalTop = alternateTop;\n } else {\n finalTop = windowHeight - submenuRect.height;\n }\n\n finalTop = this.clampVerticalPosition(finalTop, submenuRect.height, windowHeight);\n\n if (this.isFirstLevel() && this.root.orientation() === 'horizontal') {\n const preferredLeft = isRtl ? itemRect.right - submenuRect.width : itemRect.left;\n const alternateLeft = isRtl ? itemRect.left : itemRect.right - submenuRect.width;\n\n if (preferredLeft >= 0 && preferredLeft + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeft;\n } else {\n finalLeft = Math.max(0, Math.min(alternateLeft, windowWidth - submenuRect.width));\n }\n } else {\n const preferredLeftRtl = itemRect.left - submenuRect.width;\n const alternateLeftRtl = itemRect.right;\n\n const preferredLeftLtr = itemRect.right;\n const alternateLeftLtr = itemRect.left - submenuRect.width;\n\n if (isRtl) {\n if (preferredLeftRtl >= 0) {\n finalLeft = preferredLeftRtl;\n } else if (alternateLeftRtl + submenuRect.width <= windowWidth) {\n finalLeft = alternateLeftRtl;\n } else {\n finalLeft = 0;\n }\n } else {\n if (preferredLeftLtr + submenuRect.width <= windowWidth) {\n finalLeft = preferredLeftLtr;\n } else if (alternateLeftLtr >= 0) {\n finalLeft = alternateLeftLtr;\n } else {\n finalLeft = windowWidth - submenuRect.width;\n }\n }\n }\n\n const isNestedMenu = !(this.isFirstLevel() && this.root.orientation() === 'horizontal');\n if (isNestedMenu) {\n const overlapsParent = finalLeft < itemRect.right && itemRect.left < finalLeft + submenuRect.width;\n if (overlapsParent) {\n const shiftedTop = itemRect.bottom;\n if (shiftedTop + submenuRect.height <= windowHeight) {\n finalTop = shiftedTop;\n }\n }\n }\n\n finalTop = this.clampVerticalPosition(finalTop, submenuRect.height, windowHeight);\n\n this.renderer.setStyle(submenu, 'position', 'fixed');\n this.renderer.setStyle(submenu, 'top', `${finalTop}px`);\n this.renderer.setStyle(submenu, 'left', `${finalLeft}px`);\n if (this.zToken) {\n this.renderer.setStyle(submenu, 'z-index', String(this.zToken.zIndex));\n }\n }\n\n /** Measures submenu size using the same flex layout as the rendered menu. */\n private measureSubmenuRect(submenu: HTMLElement): DOMRect {\n this.renderer.setStyle(submenu, 'visibility', 'hidden');\n this.renderer.setStyle(submenu, 'display', 'flex');\n const rect = submenu.getBoundingClientRect();\n this.renderer.removeStyle(submenu, 'visibility');\n this.renderer.removeStyle(submenu, 'display');\n return rect;\n }\n\n /**\n * Moves nested `ax-menu-item` nodes rendered by recursive `ngTemplateOutlet` templates\n * into the submenu slot. Angular content queries do not traverse those embedded views.\n */\n private reparentOrphanedChildren() {\n const container = this.submenuSlot()?.nativeElement;\n if (!container) {\n return;\n }\n\n for (const el of this.getDirectSubmenuNodes()) {\n if (!container.contains(el)) {\n try {\n container.appendChild(el);\n } catch {\n // HierarchyRequestError when the node is already being moved.\n }\n }\n }\n }\n\n /**\n * Nested submenu nodes rendered by custom recursive templates (direct children of this item only).\n */\n private getDirectSubmenuNodes(): HTMLElement[] {\n return Array.from(\n this.nativeElement.querySelectorAll<HTMLElement>('ax-menu-item, ax-title, ax-divider'),\n ).filter((el) => {\n if (el === this.nativeElement) {\n return false;\n }\n\n if (el.tagName === 'AX-MENU-ITEM') {\n return el.parentElement?.closest('ax-menu-item') === this.nativeElement;\n }\n\n return el.closest('ax-menu-item') === this.nativeElement;\n });\n }\n\n private updateDiscoveredSubmenuNodeCount() {\n this.discoveredSubmenuNodeCount.set(this.getDirectSubmenuNodes().length);\n }\n\n private scheduleChildRefresh() {\n if (this.childRefreshScheduled) {\n return;\n }\n this.childRefreshScheduled = true;\n requestAnimationFrame(() => {\n this.childRefreshScheduled = false;\n this.reparentOrphanedChildren();\n this.updateDiscoveredSubmenuNodeCount();\n });\n }\n\n private hasRelevantChildMutation(records: MutationRecord[]): boolean {\n for (const record of records) {\n if (\n this.nodeListContainsMenuStructuralNode(record.addedNodes) ||\n this.nodeListContainsMenuStructuralNode(record.removedNodes)\n ) {\n return true;\n }\n }\n return false;\n }\n\n private nodeListContainsMenuStructuralNode(nodes: NodeList): boolean {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n const tagName = node.tagName;\n if (tagName === 'AX-MENU-ITEM' || tagName === 'AX-TITLE' || tagName === 'AX-DIVIDER') {\n return true;\n }\n if (node.querySelector?.('ax-menu-item,ax-title,ax-divider')) {\n return true;\n }\n }\n return false;\n }\n\n /** Keeps the submenu fully inside the viewport vertically. */\n private clampVerticalPosition(top: number, height: number, windowHeight: number): number {\n if (top + height > windowHeight) {\n top = windowHeight - height;\n }\n if (top < 0) {\n top = 0;\n }\n return top;\n }\n\n @HostListener('click', ['$event'])\n handleClick(e: MouseEvent) {\n e.stopPropagation();\n if (this.disabled()) return;\n\n const event = {\n sender: this,\n nativeEvent: e,\n canceled: false,\n item: {\n name: this.name(),\n text: this.getText(),\n data: this.data(),\n },\n } as AXMenuItemClickEvent;\n\n this.onClick.emit(event);\n this.root.onItemClick.emit({ ...event, ...{ sender: this.root as any } });\n\n if (this.hasSubItems() && !event.canceled) {\n this.open();\n } else if (!event.canceled) {\n this.service.closeAll$.next();\n this.service.closeAllContextMenu$.next({ sender: this.root });\n }\n }\n\n @HostListener('mouseenter', ['$event'])\n handleMouseEnter(event: MouseEvent) {\n event.stopPropagation();\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n this.mouseLeaveTimeout = null;\n }\n if (!this.isFirstLevel() || this.root.openOn() == 'hover') {\n this.open();\n }\n }\n\n private mouseLeaveTimeout: ReturnType<typeof setTimeout> | null = null;\n\n @HostListener('mouseleave', ['$event'])\n handleMouseLeave(event: MouseEvent) {\n event.stopPropagation();\n\n if (!this.hasSubItems() || this.root.closeOn() !== 'leave') {\n return;\n }\n\n const relatedTarget = event.relatedTarget;\n if (relatedTarget instanceof Node && this.containsSubmenuPointer(relatedTarget)) {\n return;\n }\n\n if (this.mouseLeaveTimeout) {\n clearTimeout(this.mouseLeaveTimeout);\n }\n\n this.mouseLeaveTimeout = setTimeout(() => {\n this.close();\n }, 500);\n }\n\n /** True when the pointer moved into this item's submenu panel or a nested open submenu. */\n private containsSubmenuPointer(node: Node): boolean {\n const submenu = this.submenuSlot()?.nativeElement;\n if (submenu?.contains(node)) {\n return true;\n }\n\n if (this.nativeElement.contains(node)) {\n return true;\n }\n\n return this.getDirectSubmenuNodes().some((child) => child.contains(node));\n }\n\n ngOnDestroy() {\n if (this.isOpen()) {\n this.close();\n }\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n const list: string[] = ['ax-action-item'];\n if (this.disabled()) {\n list.push('ax-state-disabled');\n }\n list.push(`${this.color() ?? 'ax-default'}`);\n\n return list;\n }\n}\n","<div class=\"ax-action-item-prefix\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-text\"></ng-content>\n</div>\n<div class=\"ax-action-item-suffix\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasSubItems() && (!isFirstLevel() || root.hasArrow())) {\n <i class=\"ax-icon ax-icon-solid {{ arrowIcon() }} \"></i>\n }\n</div>\n<div\n #submenuSlot\n class=\"ax-menu-items ax-action-list ax-action-list-vertical\"\n [class.ax-state-open]=\"isOpen()\"\n>\n <ng-content select=\"ax-menu-item,ax-title,ax-divider,ng-container,[ngTemplateOutlet]\"></ng-content>\n</div>\n","import { AXComponent, AXOrientation, NXComponent, NXEvent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isBrowser } from '@acorex/core/platform';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil, AXPoint } from '@acorex/core/utils';\nimport { AXZIndexService, AXZToken } from '@acorex/core/z-index';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n DOCUMENT,\n HostBinding,\n HostListener,\n inject,\n Injector,\n input,\n output,\n PLATFORM_ID,\n Renderer2,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { cloneDeep } from 'lodash-es';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport class AXContextMenuOpeningEvent extends NXEvent<AXContextMenuComponent> {\n items: AXMenuItem[];\n canceled = false;\n targetElement: HTMLElement;\n}\nexport type AXContextMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXContextMenuComponent>;\n\n/**\n * Represents a menu component that displays context menu.\n * @category Components\n */\n@Component({\n selector: 'ax-context-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXContextMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXContextMenuComponent,\n },\n ],\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXContextMenuComponent extends NXComponent {\n // Inputs and Outputs\n\n readonly orientation = input<AXOrientation>('vertical');\n readonly openOn = input<AXMenuOpenTrigger>('hover');\n readonly closeOn = input<AXMenuCloseTrigger>('click');\n /** When true, closes the menu on router navigation (e.g. side-menu route changes). */\n readonly closeOnRouteChange = input(false);\n readonly originalItems = input<AXMenuItem[]>([], { alias: 'items' });\n readonly target = input<HTMLElement | HTMLElement[] | string>();\n\n onItemClick = output<AXContextMenuItemsClickEvent>();\n onOpening = output<AXContextMenuOpeningEvent>();\n /** Emitted when the menu closes (backdrop, item click, scroll, another menu opening, etc.). */\n onClose = output<void>();\n\n hasArrow = signal<boolean>(true);\n\n // Injected Services\n\n private service = inject(AXMenuService);\n private renderer = inject(Renderer2);\n private document = inject(DOCUMENT);\n private platformID = inject(PLATFORM_ID);\n private zIndexService = inject(AXZIndexService);\n private injector = inject(Injector);\n private zToken: AXZToken | null = null;\n private lastOpenPoint: AXPoint | null = null;\n private router = inject(Router, { optional: true });\n private destroyRef = inject(DestroyRef);\n\n // Constructor (Dependency Injection)\n\n /** @ignore */\n constructor() {\n super();\n //\n afterNextRender(() => {\n this.bindContextEvent();\n this.service.initGlobalListeners(this.nativeElement);\n });\n\n this.setupCloseOnRouteChange();\n\n this.service.closeAllContextMenu$.subscribe(() => {\n this.service.closeAll$.next();\n this.close();\n });\n\n this.service.openContextMenu$.subscribe((e) => {\n if ((e.sender as any) == this) {\n this.internalShowAt(e.point);\n }\n });\n }\n\n // Lifecycle Hooks\n\n ngOnDestroy() {\n if (isBrowser()) {\n this.removeContextEvent();\n }\n }\n\n /**\n * Refreshes the context menu by rebinding event listeners to target elements.\n */\n refresh() {\n this.bindContextEvent();\n }\n\n /**\n * Shows the context menu at a specific point.\n * @param point - The coordinates where the menu should appear\n * @param targetElement - Optional target element for the context menu\n * @param event - Optional opening event with menu items\n */\n showAt(point: AXPoint, targetElement?: HTMLElement, event?: AXContextMenuOpeningEvent) {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender });\n if (isPlatformBrowser(this.platformID)) {\n if (!targetElement) {\n targetElement = this.document.elementFromPoint(point.x, point.y) as HTMLElement;\n }\n if (!event) {\n event = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n if (event.canceled) return;\n }\n this.onOpening.emit(event);\n this.items.set(event.items);\n }\n this.service.openContextMenu$.next({ sender, point });\n }\n\n /**\n * Closes the context menu and removes the backdrop.\n */\n close() {\n const wasOpen = this.nativeElement.classList.contains('ax-state-open');\n this.nativeElement.classList.remove('ax-state-open');\n this.lastOpenPoint = null;\n // Drop rendered items before moving DOM nodes back to the original parent.\n // This prevents a large menu tree from being re-parented/removed as a single heavy DOM operation.\n if (wasOpen) {\n this.items.set([]);\n }\n this.removeBackdrop();\n // Release z-index token\n this.zIndexService.release(this.zToken);\n this.zToken = null;\n if (wasOpen) {\n this.onClose.emit();\n }\n }\n\n // Private Properties\n\n private backdropElement!: HTMLElement;\n private originalNextSibling: Node | null = null;\n private originalParent: HTMLElement | null = null;\n\n protected items = signal<AXMenuItem[]>([]);\n\n // Private Methods (Internal Logic)\n\n /** @ignore */\n private setupCloseOnRouteChange() {\n if (!this.router || !isPlatformBrowser(this.platformID)) {\n return;\n }\n\n this.router.events\n .pipe(\n filter((event): event is NavigationStart => event instanceof NavigationStart),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n if (this.closeOnRouteChange()) {\n this.close();\n }\n });\n }\n\n /** @ignore */\n private getTargetElements(): HTMLElement[] {\n if (isPlatformBrowser(this.platformID)) {\n const elements: HTMLElement[] =\n typeof this.target() == 'string'\n ? Array.from(this.document.querySelectorAll<HTMLElement>(this.target() as string))\n : Array.isArray(this.target())\n ? (this.target() as HTMLElement[])\n : [this.target() as HTMLElement];\n\n return elements;\n }\n return null;\n }\n\n /** @ignore */\n private bindContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n\n /** @ignore */\n private removeContextEvent() {\n this.getTargetElements().forEach((e) => {\n e?.removeEventListener('contextmenu', this.handleContextMenu.bind(this));\n });\n }\n\n /** @ignore */\n private handleContextMenu(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n //\n if (isPlatformBrowser(this.platformID)) {\n const elementsUnderMouse = this.document.elementsFromPoint(e.x, e.y) as HTMLElement[];\n const targetElements = this.getTargetElements();\n const targetElement = elementsUnderMouse.find((target) => targetElements.includes(target));\n //\n const event: AXContextMenuOpeningEvent = {\n sender: this,\n canceled: false,\n targetElement: targetElement,\n items: cloneDeep(this.originalItems()),\n };\n //\n if (!event.canceled) {\n this.showAt({ x: e.clientX, y: e.clientY }, targetElement, event);\n }\n }\n }\n\n /** @ignore */\n private internalShowAt(point: AXPoint) {\n this.lastOpenPoint = point;\n const elementRef = this.nativeElement;\n elementRef.classList.add('ax-state-open');\n this.positionAtPoint(point);\n this.createBackdrop();\n\n // Items may render after the signal update (e.g. compact side-menu); reposition once laid out.\n afterNextRender(\n () => {\n if (this.lastOpenPoint && elementRef.classList.contains('ax-state-open')) {\n this.positionAtPoint(this.lastOpenPoint);\n }\n },\n { injector: this.injector },\n );\n }\n\n /**\n * Positions the menu at `point`, flipping when it would overflow the viewport.\n * Uses a temporary visible layout pass so parents that hide the host (e.g. side-menu `display: none`) do not yield a zero-sized rect.\n */\n private positionAtPoint(point: AXPoint) {\n const elementRef = this.nativeElement;\n const itemRect = this.measureMenuRect(elementRef);\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const isRtl = AXHtmlUtil.isRtl(elementRef);\n\n let left: number;\n if (isRtl) {\n left = point.x - itemRect.width;\n if (left < 0) {\n left = point.x;\n }\n } else {\n left = point.x;\n if (left + itemRect.width > windowWidth) {\n left = point.x - itemRect.width;\n }\n }\n\n const bottom = point.y + itemRect.height;\n let top: number;\n\n if (bottom > windowHeight) {\n top = point.y - itemRect.height;\n if (top < 0) {\n top = 0;\n }\n } else {\n top = point.y;\n }\n\n this.renderer.setStyle(elementRef, 'left', `${left}px`);\n this.renderer.setStyle(elementRef, 'top', `${top}px`);\n this.renderer.setStyle(elementRef, 'position', 'fixed');\n }\n\n /** Measures menu size even when an ancestor hides the host with `display: none`. */\n private measureMenuRect(elementRef: HTMLElement): DOMRect {\n this.renderer.setStyle(elementRef, 'visibility', 'hidden');\n this.renderer.setStyle(elementRef, 'display', 'flex');\n const rect = elementRef.getBoundingClientRect();\n this.renderer.removeStyle(elementRef, 'visibility');\n this.renderer.removeStyle(elementRef, 'display');\n return rect;\n }\n\n /** @ignore */\n private createBackdrop() {\n if (!this.originalParent) {\n this.originalParent = this.nativeElement.parentElement;\n this.originalNextSibling = this.nativeElement.nextSibling;\n }\n\n // Acquire z-index token\n this.zToken = this.zIndexService.acquire();\n\n this.backdropElement = this.renderer.createElement('div');\n this.renderer.setStyle(this.backdropElement, 'position', 'fixed');\n this.renderer.setStyle(this.backdropElement, 'top', '0');\n this.renderer.setStyle(this.backdropElement, 'left', '0');\n this.renderer.setStyle(this.backdropElement, 'width', '100%');\n this.renderer.setStyle(this.backdropElement, 'height', '100%');\n this.renderer.setStyle(this.backdropElement, 'z-index', String(this.zToken.zIndex));\n this.renderer.setStyle(this.backdropElement, 'background', 'transparent');\n\n this.createEventListeners(this.backdropElement);\n\n this.document.body.appendChild(this.backdropElement);\n this.backdropElement.appendChild(this.nativeElement);\n }\n\n /** @ignore */\n private removeBackdrop() {\n if (this.backdropElement) {\n if (this.originalParent) {\n this.renderer.insertBefore(this.originalParent, this.nativeElement, this.originalNextSibling);\n }\n if (this.backdropElement.parentNode) {\n this.renderer.removeChild(this.backdropElement.parentNode, this.backdropElement);\n }\n this.backdropElement = null;\n }\n }\n\n private createEventListeners(el: HTMLElement) {\n const l1 = this.renderer.listen(el, 'click', () => {\n this.close();\n l1();\n });\n\n const l2 = this.renderer.listen(el, 'wheel', () => {\n this.close();\n l2();\n });\n\n const l3 = this.renderer.listen(el, 'contextmenu', (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n\n const x = e.clientX;\n const y = e.clientY;\n\n // Close first so the full-screen backdrop is gone; otherwise the next target never\n // receives contextmenu (conversation list / message list / etc.).\n this.close();\n\n if (isPlatformBrowser(this.platformID)) {\n requestAnimationFrame(() => {\n const under = this.document.elementFromPoint(x, y) as HTMLElement | null;\n if (!under || under === this.document.body || under === this.document.documentElement) {\n return;\n }\n const forward = new MouseEvent('contextmenu', {\n bubbles: true,\n cancelable: true,\n view: this.document.defaultView ?? undefined,\n clientX: x,\n clientY: y,\n screenX: e.screenX,\n screenY: e.screenY,\n button: 2,\n buttons: 2,\n });\n under.dispatchEvent(forward);\n });\n }\n\n l3();\n });\n }\n\n // Host Listeners (UI Interaction Handling)\n\n /** @ignore */\n @HostListener('window:scroll')\n @HostListener('window:resize')\n onWindowEvent() {\n const sender = this as any as AXRootMenu;\n this.service.closeAllContextMenu$.next({ sender: sender }); // Close all menus on scroll or resize\n }\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): any {\n return ['ax-menu-container', `ax-orientation-${this.orientation()}`, 'ax-action-list', 'ax-action-list-vertical'];\n }\n}\n","<ng-content select=\"ax-menu-item,ax-divider,ax-title,ng-container\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n\n<ng-template #Recursion let-item>\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <ax-menu-item\n [name]=\"item.name\"\n [data]=\"item.data\"\n [disabled]=\"item.disabled\"\n [color]=\"item.color\"\n [subItems]=\"item.items ?? []\"\n >\n @if (item.icon) {\n <ax-prefix>\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n </ax-prefix>\n }\n @if (item.text) {\n <ax-text>{{ item.text | translate | async }}</ax-text>\n }\n @if (item.suffix) {\n <ax-suffix>\n <ax-text>{{ item.suffix.text | translate | async }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ax-menu-item>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n</ng-template>\n","import { AXComponent, AXOrientation, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuService } from './menu.service';\nimport { AXMenuCloseTrigger, AXMenuItem, AXMenuItemClickBaseEvent, AXMenuOpenTrigger, AXRootMenu } from './menu.types';\n\nexport type AXMenuItemsClickEvent = AXMenuItemClickBaseEvent<AXMenuComponent>;\n\n/**\n * Represents a menu component that displays menu items.\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.compiled.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n AXMenuService,\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXComponent,\n useExisting: AXMenuComponent,\n },\n ],\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXMenuItemComponent,\n AXDecoratorIconComponent,\n AsyncPipe,\n AXTranslatorPipe,\n ],\n})\nexport class AXMenuComponent extends NXComponent {\n constructor() {\n super();\n afterNextRender(() => {\n this.service.initGlobalListeners(this.nativeElement);\n });\n }\n\n orientation = input<AXOrientation>('horizontal');\n\n openOn = input<AXMenuOpenTrigger>('hover');\n\n closeOn = input<AXMenuCloseTrigger>('leave');\n\n service = inject(AXMenuService);\n\n onItemClick = output<AXMenuItemsClickEvent>();\n\n items = input<AXMenuItem[]>([]);\n\n hasArrow = input<boolean>(true);\n\n /** @ignore */\n @HostBinding('class')\n get __hostClass(): string[] {\n return [\n 'ax-root-menu',\n 'ax-action-list',\n `ax-action-list-${this.orientation()}`,\n `${!this.hasArrow() ? 'ax-hide-arrow' : ''}`,\n ];\n }\n\n /**\n * Closes all open menus and submenus for this root menu.\n *\n * @returns void - No return value. All open menu overlays are closed and hidden.\n */\n public close() {\n this.service.closeAll$.next();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXContextMenuComponent } from './context-menu.component';\nimport { AXMenuItemComponent } from './menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\n@NgModule({\n imports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n exports: [AXMenuItemComponent, AXMenuComponent, AXContextMenuComponent],\n})\nexport class AXMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -6,19 +6,19 @@ import { cloneDeep, set } from 'lodash-es';
6
6
  import { Subject } from 'rxjs';
7
7
 
8
8
  class AXModalFooterComponent {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: AXModalFooterComponent, isStandalone: true, selector: "ax-modal-footer", providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }], ngImport: i0, template: "<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n", styles: ["@layer components{ax-modal-footer{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: AXModalFooterComponent, isStandalone: true, selector: "ax-modal-footer", providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }], ngImport: i0, template: "<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n", styles: ["@layer components{ax-modal-footer{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalFooterComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalFooterComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ selector: 'ax-modal-footer', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }], template: "<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n", styles: ["@layer components{ax-modal-footer{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
14
+ args: [{ selector: 'ax-modal-footer', imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }], template: "<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n", styles: ["@layer components{ax-modal-footer{justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}}\n/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */\n"] }]
15
15
  }] });
16
16
 
17
17
  class AXModalStateService {
18
18
  constructor() {
19
19
  this.modalList = new Map();
20
20
  this.overlayService = inject(AXOverlayService);
21
- this.modalOption = signal(null, ...(ngDevMode ? [{ debugName: "modalOption" }] : []));
21
+ this.modalOption = signal(null, ...(ngDevMode ? [{ debugName: "modalOption" }] : /* istanbul ignore next */ []));
22
22
  }
23
23
  /**
24
24
  * Opens a modal with the specified content and options.
@@ -29,7 +29,7 @@ class AXModalStateService {
29
29
  async open(content, options) {
30
30
  this.modalOption.set(options);
31
31
  const randomId = Math.floor(Math.random() * 100000000000);
32
- const modalContentComp = (await import('./acorex-components-modal-modal-content.component-DTZu2zbU.mjs')).AXModalContentComponent;
32
+ const modalContentComp = (await import('./acorex-components-modal-modal-content.component-DKweXQfl.mjs')).AXModalContentComponent;
33
33
  const onClose = new Subject();
34
34
  const returnRef = {
35
35
  close: (data) => {
@@ -170,10 +170,10 @@ class AXModalStateService {
170
170
  return;
171
171
  ref.overlay.bringToFront();
172
172
  }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
174
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalStateService, providedIn: 'root' }); }
173
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
174
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalStateService, providedIn: 'root' }); }
175
175
  }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalStateService, decorators: [{
176
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalStateService, decorators: [{
177
177
  type: Injectable,
178
178
  args: [{
179
179
  providedIn: 'root',
@@ -184,8 +184,8 @@ class AXModalComponent extends NXComponent {
184
184
  constructor() {
185
185
  super(...arguments);
186
186
  this.service = inject(AXModalStateService);
187
- this.template = viewChild(TemplateRef, ...(ngDevMode ? [{ debugName: "template" }] : []));
188
- this.ref = signal(null, ...(ngDevMode ? [{ debugName: "ref" }] : []));
187
+ this.template = viewChild(TemplateRef, ...(ngDevMode ? [{ debugName: "template" }] : /* istanbul ignore next */ []));
188
+ this.ref = signal(null, ...(ngDevMode ? [{ debugName: "ref" }] : /* istanbul ignore next */ []));
189
189
  }
190
190
  /**
191
191
  * Opens the modal with the specified options.
@@ -239,14 +239,14 @@ class AXModalComponent extends NXComponent {
239
239
  return;
240
240
  this.ref().restore();
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.3", type: AXModalComponent, isStandalone: true, selector: "ax-modal", providers: [{ provide: AXComponent, useExisting: AXModalComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: AXModalComponent, isStandalone: true, selector: "ax-modal", providers: [{ provide: AXComponent, useExisting: AXModalComponent }], viewQueries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
244
244
  <ng-template #contentTemplate>
245
245
  <ng-content></ng-content>
246
246
  </ng-template>
247
247
  `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
248
248
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalComponent, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalComponent, decorators: [{
250
250
  type: Component,
251
251
  args: [{
252
252
  selector: 'ax-modal',
@@ -262,11 +262,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
262
262
  }], propDecorators: { template: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TemplateRef), { isSignal: true }] }] } });
263
263
 
264
264
  class AXModalModule {
265
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
266
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXModalModule, imports: [AXModalComponent, AXModalFooterComponent], exports: [AXModalComponent, AXModalFooterComponent] }); }
267
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalModule }); }
265
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
266
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXModalModule, imports: [AXModalComponent, AXModalFooterComponent], exports: [AXModalComponent, AXModalFooterComponent] }); }
267
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalModule }); }
268
268
  }
269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalModule, decorators: [{
269
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalModule, decorators: [{
270
270
  type: NgModule,
271
271
  args: [{
272
272
  imports: [AXModalComponent, AXModalFooterComponent],
@@ -277,7 +277,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
277
277
  class AXModalService {
278
278
  constructor() {
279
279
  this.stateService = inject(AXModalStateService);
280
- this.ref = signal(null, ...(ngDevMode ? [{ debugName: "ref" }] : []));
280
+ this.ref = signal(null, ...(ngDevMode ? [{ debugName: "ref" }] : /* istanbul ignore next */ []));
281
281
  }
282
282
  /**
283
283
  * Opens a modal with the specified content and options.
@@ -340,10 +340,10 @@ class AXModalService {
340
340
  return;
341
341
  this.ref().bringToFront();
342
342
  }
343
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
344
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalService, providedIn: 'root' }); }
343
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
344
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalService, providedIn: 'root' }); }
345
345
  }
346
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalService, decorators: [{
346
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalService, decorators: [{
347
347
  type: Injectable,
348
348
  args: [{
349
349
  providedIn: 'root',
@@ -352,7 +352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
352
352
 
353
353
  class AXModalComponentBase {
354
354
  constructor() {
355
- this.__modal__ = input(...(ngDevMode ? [undefined, { debugName: "__modal__" }] : []));
355
+ this.__modal__ = input(...(ngDevMode ? [undefined, { debugName: "__modal__" }] : /* istanbul ignore next */ []));
356
356
  }
357
357
  close(data = null) {
358
358
  this.__modal__().close(data);
@@ -369,10 +369,10 @@ class AXModalComponentBase {
369
369
  bringToFront() {
370
370
  this.__modal__().bringToFront();
371
371
  }
372
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
373
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.3", type: AXModalComponentBase, isStandalone: true, inputs: { __modal__: { classPropertyName: "__modal__", publicName: "__modal__", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
372
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
373
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: AXModalComponentBase, isStandalone: true, inputs: { __modal__: { classPropertyName: "__modal__", publicName: "__modal__", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
374
374
  }
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXModalComponentBase, decorators: [{
375
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXModalComponentBase, decorators: [{
376
376
  type: Directive
377
377
  }], propDecorators: { __modal__: [{ type: i0.Input, args: [{ isSignal: true, alias: "__modal__", required: false }] }] } });
378
378
 
@@ -380,5 +380,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
380
380
  * Generated bundle index. Do not edit.
381
381
  */
382
382
 
383
- export { AXModalComponent as A, AXModalComponentBase as a, AXModalFooterComponent as b, AXModalModule as c, AXModalService as d, AXModalStateService as e };
384
- //# sourceMappingURL=acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs.map
383
+ export { AXModalStateService as A, AXModalFooterComponent as a, AXModalComponent as b, AXModalComponentBase as c, AXModalModule as d, AXModalService as e };
384
+ //# sourceMappingURL=acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs","sources":["../../../../packages/components/modal/src/lib/modal-footer/modal-footer.component.ts","../../../../packages/components/modal/src/lib/modal-footer/modal-footer.component.html","../../../../packages/components/modal/src/lib/modal-state.service.ts","../../../../packages/components/modal/src/lib/modal.component.ts","../../../../packages/components/modal/src/lib/modal.module.ts","../../../../packages/components/modal/src/lib/modal.service.ts","../../../../packages/components/modal/src/lib/modal.types.ts","../../../../packages/components/modal/src/acorex-components-modal.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrl: './modal-footer.component.compiled.css',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }],\n})\nexport class AXModalFooterComponent {}\n","<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n","import { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXModalContentComponent } from './modal-content/modal-content.component';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalStateService {\n private modalList = new Map<number, { overlay: AXOverlayRef<AXModalContentComponent>; modal: AXModalRef }>();\n private overlayService = inject(AXOverlayService);\n modalOption = signal<AXModalOptions>(null);\n\n /**\n * Opens a modal with the specified content and options.\n * @param content - Component, template, or HTML element to display\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open<TResult = any>(\n content: AXComponentContent | HTMLElement,\n options?: AXModalOptions,\n ): Promise<AXModalRef<TResult>> {\n this.modalOption.set(options);\n const randomId = Math.floor(Math.random() * 100000000000);\n const modalContentComp = (await import('./modal-content/modal-content.component')).AXModalContentComponent;\n const onClose = new Subject<TResult>();\n\n const returnRef: AXModalRef = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n const finalInputs = { ...(cloneDeep(options?.inputs) ?? {}), ...{ __modal__: returnRef } };\n const finalOptions = set(cloneDeep(options) ?? {}, 'inputs', finalInputs);\n\n const ref = await this.overlayService.create(modalContentComp, {\n position: options?.position,\n backdrop: options?.backdrop,\n inputs: {\n __content__: content,\n inputs: {\n ...finalOptions?.inputs,\n },\n id: randomId,\n },\n });\n\n this.modalList.set(randomId, { overlay: ref, modal: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a modal by its ID.\n * @param id - The modal ID to close\n * @param data - Optional data to pass to the close event\n */\n async close<TResult = any>(id: number, data?: TResult) {\n const ref = this.modalList.get(id);\n if (!ref) return;\n ref.modal.onClose.next(data);\n ref.overlay.dispose();\n this.modalList.delete(id);\n }\n\n /**\n * Sets input values for a modal by its ID.\n * @param id - The modal ID\n * @param values - Object containing input values to set\n */\n async setInputs(id: number, values: AXComponentInputs) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const comRef = ref as ComponentRef<any>;\n Object.entries(values).forEach((v) => {\n comRef.setInput(v[0], v[1]);\n });\n } else {\n ref.context.inputs.set(values);\n }\n }\n\n /**\n * Minimizes a modal by its ID.\n * @param id - The modal ID to minimize\n */\n async minimize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.minimize();\n } else {\n ref.context.minimize();\n }\n }\n\n /**\n * Maximizes a modal by its ID.\n * @param id - The modal ID to maximize\n */\n async maximize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.maximize();\n } else {\n ref.context.maximize();\n }\n }\n\n /**\n * Restores a modal by its ID.\n * @param id - The modal ID to restore\n */\n async restore(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.restore();\n } else {\n ref.context.restore();\n }\n }\n\n /**\n * Gets the index of a modal in the minimized stack.\n * @param targetKey - The modal ID to find\n * @returns number - The index position in the stack\n */\n getMapIndexOf(targetKey: any) {\n let index = 0;\n for (const key of this.modalList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n /**\n * Brings a modal to the front of all other overlays.\n * @param id - The modal ID to bring to front\n */\n bringToFront(id: number) {\n const ref = this.modalList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Component({\n selector: 'ax-modal',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXModalComponent }],\n})\nexport class AXModalComponent extends NXComponent {\n private service = inject(AXModalStateService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXModalRef<any>>(null);\n\n /**\n * Opens the modal with the specified options.\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open(options?: AXModalOptions) {\n const ref = await this.service.open(this.template(), options);\n this.ref.set(ref);\n return ref;\n }\n\n /**\n * Closes the currently open modal.\n */\n async close() {\n if (this.ref()) return;\n this.ref().close();\n }\n\n /**\n * Sets input values for the modal content component.\n * @param values - Object containing input values to set\n */\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n /**\n * Minimizes the modal to the bottom bar.\n */\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n /**\n * Maximizes the modal to fullscreen.\n */\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n /**\n * Restores the modal from minimized or maximized state.\n */\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXModalFooterComponent } from './modal-footer/modal-footer.component';\nimport { AXModalComponent } from './modal.component';\n\n@NgModule({\n imports: [AXModalComponent, AXModalFooterComponent],\n exports: [AXModalComponent, AXModalFooterComponent],\n})\nexport class AXModalModule {}\n","import { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalService {\n private stateService = inject(AXModalStateService);\n private ref = signal<AXModalRef<any>>(null);\n\n /**\n * Opens a modal with the specified content and options.\n * @param content - Component, template, or HTML element to display\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open(content: AXComponentContent | HTMLElement, options?: AXModalOptions): Promise<AXModalRef> {\n const ref = await this.stateService.open(content, options);\n this.ref.set(ref);\n return ref;\n }\n\n /**\n * Closes the currently open modal.\n */\n async close() {\n if (!this.ref()) return;\n this.ref().close();\n }\n\n /**\n * Sets input values for the modal content component.\n * @param values - Object containing input values to set\n */\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n /**\n * Minimizes the modal to the bottom bar.\n */\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n /**\n * Maximizes the modal to fullscreen.\n */\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n /**\n * Restores the modal from minimized or maximized state.\n */\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n\n /**\n * Brings the modal to the front of all other overlays.\n */\n bringToFront() {\n if (!this.ref()) return;\n this.ref().bringToFront();\n }\n}\n","import { AXOverlayOptions } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Directive, input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface AXModalOptions extends AXOverlayOptions {\n title?: string;\n buttons?: {\n minimize?: {\n enable: boolean;\n position: 'bottom-right' | 'bottom-left';\n };\n maximize?: boolean;\n close?: boolean;\n };\n draggable?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'full' | 'fit';\n header?: boolean;\n footer?: boolean;\n panelClass?: string;\n closeOnEscape?: boolean;\n}\n\nexport interface AXModalRef<TResult = any> {\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n /** Brings this modal to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n}\n\n@Directive()\nexport abstract class AXModalComponentBase {\n __modal__ = input<AXModalRef>();\n\n public close(data: any = null) {\n this.__modal__().close(data);\n }\n\n public minimize() {\n this.__modal__().minimize();\n }\n\n public restore() {\n this.__modal__().restore();\n }\n\n public maximize() {\n this.__modal__().maximize();\n }\n\n public bringToFront() {\n this.__modal__().bringToFront();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-modal-acorex-components-modal-JpPBSiVh.mjs","sources":["../../../../packages/components/modal/src/lib/modal-footer/modal-footer.component.ts","../../../../packages/components/modal/src/lib/modal-footer/modal-footer.component.html","../../../../packages/components/modal/src/lib/modal-state.service.ts","../../../../packages/components/modal/src/lib/modal.component.ts","../../../../packages/components/modal/src/lib/modal.module.ts","../../../../packages/components/modal/src/lib/modal.service.ts","../../../../packages/components/modal/src/lib/modal.types.ts","../../../../packages/components/modal/src/acorex-components-modal.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrl: './modal-footer.component.compiled.css',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }],\n})\nexport class AXModalFooterComponent {}\n","<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n","import { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXModalContentComponent } from './modal-content/modal-content.component';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalStateService {\n private modalList = new Map<number, { overlay: AXOverlayRef<AXModalContentComponent>; modal: AXModalRef }>();\n private overlayService = inject(AXOverlayService);\n modalOption = signal<AXModalOptions>(null);\n\n /**\n * Opens a modal with the specified content and options.\n * @param content - Component, template, or HTML element to display\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open<TResult = any>(\n content: AXComponentContent | HTMLElement,\n options?: AXModalOptions,\n ): Promise<AXModalRef<TResult>> {\n this.modalOption.set(options);\n const randomId = Math.floor(Math.random() * 100000000000);\n const modalContentComp = (await import('./modal-content/modal-content.component')).AXModalContentComponent;\n const onClose = new Subject<TResult>();\n\n const returnRef: AXModalRef = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n bringToFront: () => {\n this.bringToFront(randomId);\n },\n onClose,\n };\n\n const finalInputs = { ...(cloneDeep(options?.inputs) ?? {}), ...{ __modal__: returnRef } };\n const finalOptions = set(cloneDeep(options) ?? {}, 'inputs', finalInputs);\n\n const ref = await this.overlayService.create(modalContentComp, {\n position: options?.position,\n backdrop: options?.backdrop,\n inputs: {\n __content__: content,\n inputs: {\n ...finalOptions?.inputs,\n },\n id: randomId,\n },\n });\n\n this.modalList.set(randomId, { overlay: ref, modal: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a modal by its ID.\n * @param id - The modal ID to close\n * @param data - Optional data to pass to the close event\n */\n async close<TResult = any>(id: number, data?: TResult) {\n const ref = this.modalList.get(id);\n if (!ref) return;\n ref.modal.onClose.next(data);\n ref.overlay.dispose();\n this.modalList.delete(id);\n }\n\n /**\n * Sets input values for a modal by its ID.\n * @param id - The modal ID\n * @param values - Object containing input values to set\n */\n async setInputs(id: number, values: AXComponentInputs) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const comRef = ref as ComponentRef<any>;\n Object.entries(values).forEach((v) => {\n comRef.setInput(v[0], v[1]);\n });\n } else {\n ref.context.inputs.set(values);\n }\n }\n\n /**\n * Minimizes a modal by its ID.\n * @param id - The modal ID to minimize\n */\n async minimize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.minimize();\n } else {\n ref.context.minimize();\n }\n }\n\n /**\n * Maximizes a modal by its ID.\n * @param id - The modal ID to maximize\n */\n async maximize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.maximize();\n } else {\n ref.context.maximize();\n }\n }\n\n /**\n * Restores a modal by its ID.\n * @param id - The modal ID to restore\n */\n async restore(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.restore();\n } else {\n ref.context.restore();\n }\n }\n\n /**\n * Gets the index of a modal in the minimized stack.\n * @param targetKey - The modal ID to find\n * @returns number - The index position in the stack\n */\n getMapIndexOf(targetKey: any) {\n let index = 0;\n for (const key of this.modalList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n\n /**\n * Brings a modal to the front of all other overlays.\n * @param id - The modal ID to bring to front\n */\n bringToFront(id: number) {\n const ref = this.modalList.get(id);\n if (!ref) return;\n ref.overlay.bringToFront();\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Component({\n selector: 'ax-modal',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXModalComponent }],\n})\nexport class AXModalComponent extends NXComponent {\n private service = inject(AXModalStateService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXModalRef<any>>(null);\n\n /**\n * Opens the modal with the specified options.\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open(options?: AXModalOptions) {\n const ref = await this.service.open(this.template(), options);\n this.ref.set(ref);\n return ref;\n }\n\n /**\n * Closes the currently open modal.\n */\n async close() {\n if (this.ref()) return;\n this.ref().close();\n }\n\n /**\n * Sets input values for the modal content component.\n * @param values - Object containing input values to set\n */\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n /**\n * Minimizes the modal to the bottom bar.\n */\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n /**\n * Maximizes the modal to fullscreen.\n */\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n /**\n * Restores the modal from minimized or maximized state.\n */\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXModalFooterComponent } from './modal-footer/modal-footer.component';\nimport { AXModalComponent } from './modal.component';\n\n@NgModule({\n imports: [AXModalComponent, AXModalFooterComponent],\n exports: [AXModalComponent, AXModalFooterComponent],\n})\nexport class AXModalModule {}\n","import { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalService {\n private stateService = inject(AXModalStateService);\n private ref = signal<AXModalRef<any>>(null);\n\n /**\n * Opens a modal with the specified content and options.\n * @param content - Component, template, or HTML element to display\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open(content: AXComponentContent | HTMLElement, options?: AXModalOptions): Promise<AXModalRef> {\n const ref = await this.stateService.open(content, options);\n this.ref.set(ref);\n return ref;\n }\n\n /**\n * Closes the currently open modal.\n */\n async close() {\n if (!this.ref()) return;\n this.ref().close();\n }\n\n /**\n * Sets input values for the modal content component.\n * @param values - Object containing input values to set\n */\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n /**\n * Minimizes the modal to the bottom bar.\n */\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n /**\n * Maximizes the modal to fullscreen.\n */\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n /**\n * Restores the modal from minimized or maximized state.\n */\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n\n /**\n * Brings the modal to the front of all other overlays.\n */\n bringToFront() {\n if (!this.ref()) return;\n this.ref().bringToFront();\n }\n}\n","import { AXOverlayOptions } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Directive, input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface AXModalOptions extends AXOverlayOptions {\n title?: string;\n buttons?: {\n minimize?: {\n enable: boolean;\n position: 'bottom-right' | 'bottom-left';\n };\n maximize?: boolean;\n close?: boolean;\n };\n draggable?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'full' | 'fit';\n header?: boolean;\n footer?: boolean;\n panelClass?: string;\n closeOnEscape?: boolean;\n}\n\nexport interface AXModalRef<TResult = any> {\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n /** Brings this modal to the front of all other overlays */\n bringToFront: () => void;\n onClose: Subject<TResult>;\n}\n\n@Directive()\nexport abstract class AXModalComponentBase {\n __modal__ = input<AXModalRef>();\n\n public close(data: any = null) {\n this.__modal__().close(data);\n }\n\n public minimize() {\n this.__modal__().minimize();\n }\n\n public restore() {\n this.__modal__().restore();\n }\n\n public maximize() {\n this.__modal__().maximize();\n }\n\n public bringToFront() {\n this.__modal__().bringToFront();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}