@acorex/components 21.0.2-next.22 → 21.0.2-next.23

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 (340) hide show
  1. package/{types/acorex-components-accordion.d.ts → accordion/index.d.ts} +1 -0
  2. package/{types/acorex-components-button.d.ts → button/index.d.ts} +3 -3
  3. package/{types/acorex-components-button-group.d.ts → button-group/index.d.ts} +12 -20
  4. package/{types/acorex-components-check-box.d.ts → check-box/index.d.ts} +1 -1
  5. package/{types/acorex-components-chips.d.ts → chips/index.d.ts} +8 -3
  6. package/collapse/README.md +3 -0
  7. package/collapse/index.d.ts +174 -0
  8. package/{types/acorex-components-color-palette.d.ts → color-palette/index.d.ts} +0 -2
  9. package/conversation2/README.md +4 -5
  10. package/{types/acorex-components-conversation2.d.ts → conversation2/index.d.ts} +2216 -2326
  11. package/{types/acorex-components-data-table.d.ts → data-table/index.d.ts} +253 -4
  12. package/drawer-legacy/README.md +3 -0
  13. package/drawer-legacy/index.d.ts +86 -0
  14. package/{types/acorex-components-dropdown-button.d.ts → dropdown-button/index.d.ts} +2 -4
  15. package/fesm2022/acorex-components-accordion.mjs +22 -17
  16. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  17. package/fesm2022/acorex-components-action-sheet.mjs +17 -17
  18. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  19. package/fesm2022/acorex-components-alert.mjs +14 -14
  20. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  21. package/fesm2022/acorex-components-aspect-ratio.mjs +4 -4
  22. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  23. package/fesm2022/acorex-components-audio-wave.mjs +11 -12
  24. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  25. package/fesm2022/acorex-components-autocomplete.mjs +9 -9
  26. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  27. package/fesm2022/acorex-components-avatar.mjs +13 -13
  28. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  29. package/fesm2022/acorex-components-badge.mjs +10 -10
  30. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  31. package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
  32. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  33. package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
  34. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  35. package/fesm2022/acorex-components-button-group.mjs +26 -61
  36. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  37. package/fesm2022/acorex-components-button.mjs +22 -22
  38. package/fesm2022/acorex-components-button.mjs.map +1 -1
  39. package/fesm2022/acorex-components-calendar.mjs +18 -18
  40. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  41. package/fesm2022/acorex-components-check-box.mjs +11 -11
  42. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  43. package/fesm2022/acorex-components-chips.mjs +14 -12
  44. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  45. package/fesm2022/acorex-components-circular-progress.mjs +11 -13
  46. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  47. package/fesm2022/acorex-components-code-editor.mjs +14 -14
  48. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  49. package/fesm2022/acorex-components-collapse.mjs +366 -0
  50. package/fesm2022/acorex-components-collapse.mjs.map +1 -0
  51. package/fesm2022/acorex-components-color-box.mjs +11 -11
  52. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  53. package/fesm2022/acorex-components-color-palette.mjs +40 -81
  54. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  55. package/fesm2022/acorex-components-command.mjs +11 -11
  56. package/fesm2022/acorex-components-command.mjs.map +1 -1
  57. package/fesm2022/acorex-components-comment.mjs +33 -33
  58. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  59. package/fesm2022/acorex-components-conversation.mjs +63 -63
  60. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  61. package/fesm2022/acorex-components-conversation2.mjs +8629 -8309
  62. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  63. package/fesm2022/acorex-components-cron-job.mjs +55 -55
  64. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-list.mjs +6 -6
  66. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  67. package/fesm2022/acorex-components-data-pager.mjs +33 -33
  68. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  69. package/fesm2022/acorex-components-data-table.mjs +486 -50
  70. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-box.mjs +10 -10
  72. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  73. package/fesm2022/acorex-components-datetime-input.mjs +10 -10
  74. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  75. package/fesm2022/acorex-components-datetime-picker.mjs +11 -11
  76. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  77. package/fesm2022/acorex-components-decorators.mjs +41 -48
  78. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  79. package/fesm2022/acorex-components-dialog.mjs +13 -13
  80. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  81. package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
  82. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
  83. package/fesm2022/acorex-components-drawer.mjs +17 -16
  84. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  85. package/fesm2022/acorex-components-dropdown-button.mjs +11 -19
  86. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  87. package/fesm2022/acorex-components-dropdown.mjs +18 -18
  88. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  89. package/fesm2022/acorex-components-editor.mjs +12 -12
  90. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  91. package/fesm2022/acorex-components-fab.mjs +9 -9
  92. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  93. package/fesm2022/acorex-components-file-explorer.mjs +307 -0
  94. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -0
  95. package/fesm2022/acorex-components-flow-chart.mjs +47 -64
  96. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  97. package/fesm2022/acorex-components-form.mjs +27 -35
  98. package/fesm2022/acorex-components-form.mjs.map +1 -1
  99. package/fesm2022/acorex-components-grid-layout-builder.mjs +14 -13
  100. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  101. package/fesm2022/acorex-components-image-editor.mjs +48 -48
  102. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  103. package/fesm2022/acorex-components-image.mjs +10 -10
  104. package/fesm2022/acorex-components-image.mjs.map +1 -1
  105. package/fesm2022/acorex-components-json-viewer.mjs +9 -9
  106. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-kanban.mjs +7 -9
  108. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  109. package/fesm2022/acorex-components-kbd.mjs +10 -10
  110. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  111. package/fesm2022/acorex-components-label.mjs +9 -9
  112. package/fesm2022/acorex-components-label.mjs.map +1 -1
  113. package/fesm2022/acorex-components-list.mjs +10 -10
  114. package/fesm2022/acorex-components-list.mjs.map +1 -1
  115. package/fesm2022/acorex-components-loading-dialog.mjs +12 -12
  116. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  117. package/fesm2022/acorex-components-loading.mjs +21 -21
  118. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  119. package/fesm2022/acorex-components-map.mjs +15 -15
  120. package/fesm2022/acorex-components-map.mjs.map +1 -1
  121. package/fesm2022/acorex-components-media-viewer.mjs +45 -45
  122. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  123. package/fesm2022/acorex-components-menu.mjs +30 -30
  124. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  125. package/fesm2022/{acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs → acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs} +25 -25
  126. package/fesm2022/acorex-components-modal-acorex-components-modal-DwBY73dZ.mjs.map +1 -0
  127. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs +212 -0
  128. package/fesm2022/acorex-components-modal-modal-content.component-DPMt_zaI.mjs.map +1 -0
  129. package/fesm2022/acorex-components-modal.mjs +1 -1
  130. package/fesm2022/acorex-components-navbar.mjs +9 -9
  131. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  132. package/fesm2022/acorex-components-notification.mjs +13 -13
  133. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  134. package/fesm2022/acorex-components-number-box-legacy.mjs +430 -0
  135. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
  136. package/fesm2022/acorex-components-number-box.mjs +10 -10
  137. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  138. package/fesm2022/acorex-components-otp.mjs +10 -10
  139. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  140. package/fesm2022/acorex-components-page.mjs +10 -10
  141. package/fesm2022/acorex-components-page.mjs.map +1 -1
  142. package/fesm2022/acorex-components-paint.mjs +40 -35
  143. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  144. package/fesm2022/acorex-components-password-box.mjs +23 -15
  145. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  146. package/fesm2022/acorex-components-pdf-reader.mjs +9 -9
  147. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  148. package/fesm2022/acorex-components-phone-box.mjs +10 -10
  149. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  150. package/fesm2022/acorex-components-picker.mjs +20 -20
  151. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  152. package/fesm2022/acorex-components-popover.mjs +8 -8
  153. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  154. package/fesm2022/acorex-components-popup.mjs +17 -17
  155. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  156. package/fesm2022/acorex-components-progress-bar.mjs +9 -11
  157. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  158. package/fesm2022/acorex-components-qrcode.mjs +12 -29
  159. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  160. package/fesm2022/acorex-components-query-builder.mjs +10 -11
  161. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  162. package/fesm2022/acorex-components-radio.mjs +9 -10
  163. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  164. package/fesm2022/acorex-components-rail-navigation.mjs +38 -40
  165. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  166. package/fesm2022/acorex-components-range-slider.mjs +11 -11
  167. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  168. package/fesm2022/acorex-components-rate-picker.mjs +35 -20
  169. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  170. package/fesm2022/acorex-components-rest-api-generator.mjs +28 -28
  171. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  172. package/fesm2022/acorex-components-result.mjs +8 -8
  173. package/fesm2022/acorex-components-result.mjs.map +1 -1
  174. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  175. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  176. package/fesm2022/acorex-components-rrule.mjs +11 -11
  177. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  178. package/fesm2022/acorex-components-scheduler-picker.mjs +179 -173
  179. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  180. package/fesm2022/acorex-components-scheduler.mjs +52 -53
  181. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  182. package/fesm2022/acorex-components-scss.mjs +22 -0
  183. package/fesm2022/acorex-components-scss.mjs.map +1 -0
  184. package/fesm2022/acorex-components-search-box.mjs +11 -17
  185. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  186. package/fesm2022/acorex-components-select-box.mjs +14 -16
  187. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  188. package/fesm2022/acorex-components-selection-list-2.mjs +12 -12
  189. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  190. package/fesm2022/acorex-components-selection-list.mjs +10 -10
  191. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  192. package/fesm2022/acorex-components-side-menu.mjs +233 -285
  193. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  194. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  195. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  196. package/fesm2022/acorex-components-slider.mjs +13 -13
  197. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  198. package/fesm2022/acorex-components-sliding-item.mjs +19 -19
  199. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  200. package/fesm2022/acorex-components-step-wizard.mjs +16 -16
  201. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  202. package/fesm2022/acorex-components-switch.mjs +14 -14
  203. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  204. package/fesm2022/acorex-components-tabs.mjs +17 -17
  205. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  206. package/fesm2022/acorex-components-tag-box.mjs +10 -10
  207. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  208. package/fesm2022/acorex-components-tag.mjs +10 -10
  209. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  210. package/fesm2022/acorex-components-text-area.mjs +9 -9
  211. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  212. package/fesm2022/acorex-components-text-box.mjs +12 -12
  213. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  214. package/fesm2022/acorex-components-time-duration.mjs +13 -11
  215. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  216. package/fesm2022/acorex-components-time-line.mjs +14 -14
  217. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  218. package/fesm2022/acorex-components-toast.mjs +13 -13
  219. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  220. package/fesm2022/acorex-components-toolbar.mjs +10 -10
  221. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  222. package/fesm2022/acorex-components-tooltip.mjs +14 -14
  223. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  224. package/fesm2022/acorex-components-tree-view-legacy.mjs +515 -0
  225. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -0
  226. package/fesm2022/acorex-components-tree-view.mjs +13 -13
  227. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  228. package/fesm2022/acorex-components-uploader.mjs +17 -17
  229. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  230. package/fesm2022/acorex-components-video-player.mjs +9 -9
  231. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  232. package/fesm2022/acorex-components-wysiwyg.mjs +45 -45
  233. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  234. package/fesm2022/acorex-components.mjs.map +1 -1
  235. package/file-explorer/README.md +3 -0
  236. package/file-explorer/index.d.ts +103 -0
  237. package/{types/acorex-components-flow-chart.d.ts → flow-chart/index.d.ts} +0 -4
  238. package/{types/acorex-components-form.d.ts → form/index.d.ts} +24 -24
  239. package/{types/acorex-components-grid-layout-builder.d.ts → grid-layout-builder/index.d.ts} +1 -0
  240. package/{types/acorex-components-loading.d.ts → loading/index.d.ts} +1 -1
  241. package/{types/acorex-components-menu.d.ts → menu/index.d.ts} +6 -6
  242. package/number-box-legacy/README.md +3 -0
  243. package/number-box-legacy/index.d.ts +191 -0
  244. package/package.json +137 -113
  245. package/{types/acorex-components-paint.d.ts → paint/index.d.ts} +6 -1
  246. package/{types/acorex-components-qrcode.d.ts → qrcode/index.d.ts} +0 -1
  247. package/{types/acorex-components-radio.d.ts → radio/index.d.ts} +1 -1
  248. package/{types/acorex-components-rate-picker.d.ts → rate-picker/index.d.ts} +15 -5
  249. package/{types/acorex-components-scheduler-picker.d.ts → scheduler-picker/index.d.ts} +81 -82
  250. package/scss/README.md +3 -0
  251. package/scss/index.d.ts +10 -0
  252. package/{types/acorex-components-select-box.d.ts → select-box/index.d.ts} +1 -2
  253. package/{types/acorex-components-side-menu.d.ts → side-menu/index.d.ts} +40 -55
  254. package/{types/acorex-components-slider.d.ts → slider/index.d.ts} +2 -2
  255. package/{types/acorex-components-tabs.d.ts → tabs/index.d.ts} +1 -1
  256. package/{types/acorex-components-tag.d.ts → tag/index.d.ts} +3 -3
  257. package/tree-view-legacy/README.md +3 -0
  258. package/tree-view-legacy/index.d.ts +185 -0
  259. package/fesm2022/acorex-components-modal-acorex-components-modal-CcXuJ4IW.mjs.map +0 -1
  260. package/fesm2022/acorex-components-modal-modal-content.component-DTZu2zbU.mjs +0 -214
  261. package/fesm2022/acorex-components-modal-modal-content.component-DTZu2zbU.mjs.map +0 -1
  262. package/{types/acorex-components-action-sheet.d.ts → action-sheet/index.d.ts} +0 -0
  263. package/{types/acorex-components-alert.d.ts → alert/index.d.ts} +0 -0
  264. package/{types/acorex-components-aspect-ratio.d.ts → aspect-ratio/index.d.ts} +0 -0
  265. package/{types/acorex-components-audio-wave.d.ts → audio-wave/index.d.ts} +0 -0
  266. package/{types/acorex-components-autocomplete.d.ts → autocomplete/index.d.ts} +0 -0
  267. package/{types/acorex-components-avatar.d.ts → avatar/index.d.ts} +0 -0
  268. package/{types/acorex-components-badge.d.ts → badge/index.d.ts} +0 -0
  269. package/{types/acorex-components-bottom-navigation.d.ts → bottom-navigation/index.d.ts} +0 -0
  270. package/{types/acorex-components-breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
  271. package/{types/acorex-components-calendar.d.ts → calendar/index.d.ts} +0 -0
  272. package/{types/acorex-components-circular-progress.d.ts → circular-progress/index.d.ts} +0 -0
  273. package/{types/acorex-components-code-editor.d.ts → code-editor/index.d.ts} +0 -0
  274. package/{types/acorex-components-color-box.d.ts → color-box/index.d.ts} +0 -0
  275. package/{types/acorex-components-command.d.ts → command/index.d.ts} +0 -0
  276. package/{types/acorex-components-comment.d.ts → comment/index.d.ts} +0 -0
  277. package/{types/acorex-components-conversation.d.ts → conversation/index.d.ts} +0 -0
  278. package/{types/acorex-components-cron-job.d.ts → cron-job/index.d.ts} +0 -0
  279. package/{types/acorex-components-data-list.d.ts → data-list/index.d.ts} +0 -0
  280. package/{types/acorex-components-data-pager.d.ts → data-pager/index.d.ts} +0 -0
  281. package/{types/acorex-components-datetime-box.d.ts → datetime-box/index.d.ts} +0 -0
  282. package/{types/acorex-components-datetime-input.d.ts → datetime-input/index.d.ts} +0 -0
  283. package/{types/acorex-components-datetime-picker.d.ts → datetime-picker/index.d.ts} +0 -0
  284. package/{types/acorex-components-decorators.d.ts → decorators/index.d.ts} +0 -0
  285. package/{types/acorex-components-dialog.d.ts → dialog/index.d.ts} +0 -0
  286. package/{types/acorex-components-drawer.d.ts → drawer/index.d.ts} +0 -0
  287. package/{types/acorex-components-dropdown.d.ts → dropdown/index.d.ts} +0 -0
  288. package/{types/acorex-components-editor.d.ts → editor/index.d.ts} +0 -0
  289. package/{types/acorex-components-fab.d.ts → fab/index.d.ts} +0 -0
  290. package/{types/acorex-components-image.d.ts → image/index.d.ts} +0 -0
  291. package/{types/acorex-components-image-editor.d.ts → image-editor/index.d.ts} +0 -0
  292. package/{types/acorex-components.d.ts → index.d.ts} +0 -0
  293. package/{types/acorex-components-json-viewer.d.ts → json-viewer/index.d.ts} +0 -0
  294. package/{types/acorex-components-kanban.d.ts → kanban/index.d.ts} +0 -0
  295. package/{types/acorex-components-kbd.d.ts → kbd/index.d.ts} +0 -0
  296. package/{types/acorex-components-label.d.ts → label/index.d.ts} +0 -0
  297. package/{types/acorex-components-list.d.ts → list/index.d.ts} +0 -0
  298. package/{types/acorex-components-loading-dialog.d.ts → loading-dialog/index.d.ts} +0 -0
  299. package/{types/acorex-components-map.d.ts → map/index.d.ts} +0 -0
  300. package/{types/acorex-components-media-viewer.d.ts → media-viewer/index.d.ts} +0 -0
  301. package/{types/acorex-components-modal.d.ts → modal/index.d.ts} +0 -0
  302. package/{types/acorex-components-navbar.d.ts → navbar/index.d.ts} +0 -0
  303. package/{types/acorex-components-notification.d.ts → notification/index.d.ts} +0 -0
  304. package/{types/acorex-components-number-box.d.ts → number-box/index.d.ts} +0 -0
  305. package/{types/acorex-components-otp.d.ts → otp/index.d.ts} +0 -0
  306. package/{types/acorex-components-page.d.ts → page/index.d.ts} +0 -0
  307. package/{types/acorex-components-password-box.d.ts → password-box/index.d.ts} +0 -0
  308. package/{types/acorex-components-pdf-reader.d.ts → pdf-reader/index.d.ts} +0 -0
  309. package/{types/acorex-components-phone-box.d.ts → phone-box/index.d.ts} +0 -0
  310. package/{types/acorex-components-picker.d.ts → picker/index.d.ts} +0 -0
  311. package/{types/acorex-components-popover.d.ts → popover/index.d.ts} +0 -0
  312. package/{types/acorex-components-popup.d.ts → popup/index.d.ts} +0 -0
  313. package/{types/acorex-components-progress-bar.d.ts → progress-bar/index.d.ts} +0 -0
  314. package/{types/acorex-components-query-builder.d.ts → query-builder/index.d.ts} +1 -1
  315. /package/{types/acorex-components-rail-navigation.d.ts → rail-navigation/index.d.ts} +0 -0
  316. /package/{types/acorex-components-range-slider.d.ts → range-slider/index.d.ts} +0 -0
  317. /package/{types/acorex-components-rest-api-generator.d.ts → rest-api-generator/index.d.ts} +0 -0
  318. /package/{types/acorex-components-result.d.ts → result/index.d.ts} +0 -0
  319. /package/{types/acorex-components-routing-progress.d.ts → routing-progress/index.d.ts} +0 -0
  320. /package/{types/acorex-components-rrule.d.ts → rrule/index.d.ts} +0 -0
  321. /package/{types/acorex-components-scheduler.d.ts → scheduler/index.d.ts} +0 -0
  322. /package/{types/acorex-components-search-box.d.ts → search-box/index.d.ts} +0 -0
  323. /package/{types/acorex-components-selection-list.d.ts → selection-list/index.d.ts} +0 -0
  324. /package/{types/acorex-components-selection-list-2.d.ts → selection-list-2/index.d.ts} +0 -0
  325. /package/{types/acorex-components-skeleton.d.ts → skeleton/index.d.ts} +0 -0
  326. /package/{types/acorex-components-sliding-item.d.ts → sliding-item/index.d.ts} +0 -0
  327. /package/{types/acorex-components-step-wizard.d.ts → step-wizard/index.d.ts} +0 -0
  328. /package/{types/acorex-components-switch.d.ts → switch/index.d.ts} +0 -0
  329. /package/{types/acorex-components-tag-box.d.ts → tag-box/index.d.ts} +0 -0
  330. /package/{types/acorex-components-text-area.d.ts → text-area/index.d.ts} +0 -0
  331. /package/{types/acorex-components-text-box.d.ts → text-box/index.d.ts} +0 -0
  332. /package/{types/acorex-components-time-duration.d.ts → time-duration/index.d.ts} +0 -0
  333. /package/{types/acorex-components-time-line.d.ts → time-line/index.d.ts} +0 -0
  334. /package/{types/acorex-components-toast.d.ts → toast/index.d.ts} +0 -0
  335. /package/{types/acorex-components-toolbar.d.ts → toolbar/index.d.ts} +0 -0
  336. /package/{types/acorex-components-tooltip.d.ts → tooltip/index.d.ts} +0 -0
  337. /package/{types/acorex-components-tree-view.d.ts → tree-view/index.d.ts} +0 -0
  338. /package/{types/acorex-components-uploader.d.ts → uploader/index.d.ts} +0 -0
  339. /package/{types/acorex-components-video-player.d.ts → video-player/index.d.ts} +0 -0
  340. /package/{types/acorex-components-wysiwyg.d.ts → wysiwyg/index.d.ts} +0 -0
@@ -1,16 +1,16 @@
1
1
  import { AXClickEvent, MXInteractiveComponent, AXRippleDirective, AXComponent, NXComponent, AXCommonModule } from '@acorex/cdk/common';
2
2
  import { AXLoadingComponent, AXLoadingModule } from '@acorex/components/loading';
3
- import { AXPopoverComponent } from '@acorex/components/popover';
3
+ import { AXContextMenuComponent } from '@acorex/components/menu';
4
4
  import * as i1 from '@acorex/components/tooltip';
5
5
  import { AXTooltipModule } from '@acorex/components/tooltip';
6
6
  import { AXTranslatorPipe, AXTranslationModule } from '@acorex/core/translation';
7
- import { DOCUMENT, isPlatformBrowser, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
7
+ import { AXHtmlUtil, AXUnsubscriber } from '@acorex/core/utils';
8
+ import { isPlatformBrowser, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
8
9
  import * as i0 from '@angular/core';
9
- import { model, output, signal, input, inject, ElementRef, PLATFORM_ID, DestroyRef, viewChild, computed, contentChildren, effect, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, HostBinding, Directive, NgModule } from '@angular/core';
10
+ import { model, output, signal, input, viewChild, computed, inject, ElementRef, PLATFORM_ID, DestroyRef, contentChildren, effect, afterNextRender, ViewEncapsulation, ChangeDetectionStrategy, Component, HostBinding, Directive, NgModule } from '@angular/core';
10
11
  import { RouterLink, RouterLinkActive, Router } from '@angular/router';
11
12
  import { AXDecoratorGenericComponent, AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';
12
13
  import { AXOutlineContainerDirective } from '@acorex/cdk/outline';
13
- import { AXUnsubscriber } from '@acorex/core/utils';
14
14
  import { isEqual } from 'lodash-es';
15
15
  import { map, distinctUntilChanged } from 'rxjs';
16
16
 
@@ -38,308 +38,140 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
38
38
  this.onClick = output();
39
39
  this.tooltipStatus = signal(false, ...(ngDevMode ? [{ debugName: "tooltipStatus" }] : []));
40
40
  this.tooltipText = input('', ...(ngDevMode ? [{ debugName: "tooltipText" }] : []));
41
- this.elem = inject(ElementRef);
42
- this.document = inject(DOCUMENT);
43
- this.platformId = inject(PLATFORM_ID);
44
- this.destroyRef = inject(DestroyRef);
45
- this.childObserver = null;
46
- this.childrenPopover = viewChild('childrenPopover', ...(ngDevMode ? [{ debugName: "childrenPopover" }] : []));
41
+ this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : []));
42
+ this.href = input(...(ngDevMode ? [undefined, { debugName: "href" }] : []));
43
+ this.routerLink = input(...(ngDevMode ? [undefined, { debugName: "routerLink" }] : []));
44
+ this.routerLinkActive = input('ax-state-active', ...(ngDevMode ? [{ debugName: "routerLinkActive" }] : []));
45
+ this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: "routerLinkActiveOptions" }] : []));
46
+ this.target = input('_self', ...(ngDevMode ? [{ debugName: "target" }] : []));
47
47
  this.menuItemTrigger = viewChild.required('menuItemTrigger');
48
- /** Synced from the parent `ax-side-menu` (source of truth for full vs compact). */
49
- this.menuMode = signal('full', ...(ngDevMode ? [{ debugName: "menuMode" }] : []));
50
- /** True when this item should use compact flyout popovers (rail or inside a flyout). */
51
- this.isCompactMode = computed(() => {
52
- if (this.menuMode() === 'compact') {
53
- return true;
54
- }
55
- if (!isPlatformBrowser(this.platformId)) {
56
- return false;
57
- }
58
- const host = this.elem.nativeElement;
59
- if (host.closest('.ax-side-menu-popover')) {
60
- return !!this.document.querySelector('ax-side-menu.ax-mode-compact');
61
- }
62
- return !!host.closest('ax-side-menu.ax-mode-compact');
63
- }, ...(ngDevMode ? [{ debugName: "isCompactMode" }] : []));
64
- /** Top-level rail button in compact mode (icon only, opens flyout). */
48
+ this.hasChild = signal(false, ...(ngDevMode ? [{ debugName: "hasChild" }] : []));
49
+ this.isCompactMode = computed(() => this.menuMode() === 'compact', ...(ngDevMode ? [{ debugName: "isCompactMode" }] : []));
50
+ /** Top-level rail entry in compact mode (opens the flyout context menu). */
65
51
  this.isFirstLevel = computed(() => {
66
52
  if (!this.isCompactMode()) {
67
53
  return false;
68
54
  }
69
- const host = this.elem.nativeElement;
70
- if (host.closest('.ax-side-menu-popover')) {
71
- return false;
72
- }
55
+ const host = this.hostElement;
73
56
  return !host.parentElement?.closest('.ax-side-children-content');
74
57
  }, ...(ngDevMode ? [{ debugName: "isFirstLevel" }] : []));
75
- this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : []));
76
- this.href = input(...(ngDevMode ? [undefined, { debugName: "href" }] : []));
77
- this.routerLink = input(...(ngDevMode ? [undefined, { debugName: "routerLink" }] : []));
78
- this.routerLinkActive = input('ax-state-active', ...(ngDevMode ? [{ debugName: "routerLinkActive" }] : []));
79
- this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: "routerLinkActiveOptions" }] : []));
80
- this.target = input('_self', ...(ngDevMode ? [{ debugName: "target" }] : []));
81
- this.childItems = contentChildren(AXSideMenuItemComponent, { ...(ngDevMode ? { debugName: "childItems" } : {}), descendants: true });
58
+ this.elem = inject((ElementRef));
59
+ this.platformId = inject(PLATFORM_ID);
60
+ this.destroyRef = inject(DestroyRef);
61
+ this.menuMode = signal('full', ...(ngDevMode ? [{ debugName: "menuMode" }] : []));
62
+ this.childObserver = null;
63
+ this.childItems = contentChildren(AXSideMenuItemComponent, ...(ngDevMode ? [{ debugName: "childItems", descendants: true }] : [{ descendants: true }]));
82
64
  this.childrenSlot = viewChild('childrenSlot', ...(ngDevMode ? [{ debugName: "childrenSlot" }] : []));
83
- this.popoverSlot = viewChild('popoverSlot', ...(ngDevMode ? [{ debugName: "popoverSlot" }] : []));
84
- this.hasChild = signal(false, ...(ngDevMode ? [{ debugName: "hasChild" }] : []));
65
+ this.childrenContextMenu = viewChild('childrenContextMenu', ...(ngDevMode ? [{ debugName: "childrenContextMenu" }] : []));
85
66
  this.#childCheckEffect = effect(() => {
86
- if (this.childItems().length)
87
- this.checkForChildren();
67
+ if (this.childItems().length) {
68
+ this.updateHasChild();
69
+ }
88
70
  }, ...(ngDevMode ? [{ debugName: "#childCheckEffect" }] : []));
89
- /**
90
- * Run after view init so any nested items projected through `ngTemplateOutlet`
91
- * (which `contentChildren` does not see) are already in the DOM. A
92
- * `MutationObserver` on the whole host keeps `hasChild` in sync as recursive
93
- * content is added/removed at runtime and also relocates any projected
94
- * `<ax-side-menu-item>` that ended up outside `.ax-side-children-content`
95
- * (this happens when `<ng-container [ngTemplateOutlet]>` is nested inside
96
- * `@if`/`@for` and Angular falls back to the catch-all `<ng-content>`).
97
- */
98
71
  this.#initChildren = afterNextRender(() => {
99
- if (!isPlatformBrowser(this.platformId))
72
+ if (!isPlatformBrowser(this.platformId)) {
100
73
  return;
74
+ }
101
75
  this.reparentOrphanedChildren();
102
- this.checkForChildren();
76
+ this.updateHasChild();
103
77
  this.childObserver = new MutationObserver(() => {
104
78
  this.reparentOrphanedChildren();
105
- this.checkForChildren();
79
+ this.updateHasChild();
106
80
  });
107
- this.childObserver.observe(this.elem.nativeElement, { childList: true, subtree: true });
81
+ this.childObserver.observe(this.hostElement, { childList: true, subtree: true });
108
82
  this.destroyRef.onDestroy(() => this.childObserver?.disconnect());
109
83
  });
110
- // In compact mode submenus open in an overlay popover; keep collapse state in sync.
111
- this.#popoverSync = effect(() => {
112
- const compact = this.isCompactMode();
113
- this.isCollapsed();
114
- this.hasChild();
115
- const popover = this.childrenPopover();
116
- if (!popover || !isPlatformBrowser(this.platformId)) {
84
+ this.#contextMenuSync = effect(() => {
85
+ if (!this.isCompactMode() ||
86
+ !isPlatformBrowser(this.platformId) ||
87
+ !this.isFirstLevel() ||
88
+ !this.hasChild()) {
117
89
  return;
118
90
  }
119
- if (!compact) {
120
- this.moveChildrenToInlineSlot();
121
- if (popover.isOpen) {
122
- popover.close();
123
- }
91
+ const menu = this.childrenContextMenu();
92
+ if (!menu) {
124
93
  return;
125
94
  }
126
- this.syncCompactPopover();
127
- }, ...(ngDevMode ? [{ debugName: "#popoverSync" }] : []));
95
+ if (this.isCollapsed()) {
96
+ menu.close();
97
+ }
98
+ else {
99
+ this.closeSiblingCompactMenus();
100
+ this.openCompactContextMenu(menu);
101
+ }
102
+ }, ...(ngDevMode ? [{ debugName: "#contextMenuSync" }] : []));
103
+ }
104
+ get hostElement() {
105
+ return this.elem.nativeElement;
128
106
  }
129
- /** Called by `ax-side-menu` so items always know the current display mode. */
107
+ #childCheckEffect;
108
+ #initChildren;
109
+ #contextMenuSync;
130
110
  syncMenuMode(mode) {
131
111
  if (this.menuMode() === mode) {
132
112
  return;
133
113
  }
134
114
  this.menuMode.set(mode);
135
- if (mode === 'full') {
136
- this.moveChildrenToInlineSlot();
137
- this.childrenPopover()?.close();
138
- }
139
- else {
140
- this.moveChildrenToInlineSlot();
141
- this.childrenPopover()?.close();
115
+ this.childrenContextMenu()?.close();
116
+ if (mode === 'compact') {
142
117
  this.isCollapsed.set(true);
143
118
  }
144
119
  }
145
- #childCheckEffect;
146
- /**
147
- * Run after view init so any nested items projected through `ngTemplateOutlet`
148
- * (which `contentChildren` does not see) are already in the DOM. A
149
- * `MutationObserver` on the whole host keeps `hasChild` in sync as recursive
150
- * content is added/removed at runtime and also relocates any projected
151
- * `<ax-side-menu-item>` that ended up outside `.ax-side-children-content`
152
- * (this happens when `<ng-container [ngTemplateOutlet]>` is nested inside
153
- * `@if`/`@for` and Angular falls back to the catch-all `<ng-content>`).
154
- */
155
- #initChildren;
156
- /**
157
- * Walks up the DOM to find the enclosing `<ax-side-menu>` host element and
158
- * reads its component instance from `__axContext__`. Needed because items
159
- * rendered inside `ngTemplateOutlet` embedded views cannot inject the
160
- * `AXSideMenuBase` token (DI scope is the template's declaration site).
161
- */
162
- resolveMenuHostElement() {
163
- const host = this.elem.nativeElement;
164
- return (host.closest('ax-side-menu') ??
165
- (host.closest('.ax-side-menu-popover')
166
- ? this.document.querySelector('ax-side-menu.ax-mode-compact')
167
- : null));
168
- }
169
- /**
170
- * Moves any `<ax-side-menu-item>` that belongs to this item (its nearest
171
- * `<ax-side-menu-item>` ancestor in the projected DOM is this host) but is
172
- * NOT inside our own `.ax-side-children-content` container. Without this
173
- * step a content-projection edge case in Angular 21+ leaves recursive items
174
- * stranded inside `.ax-inside-text` (the catch-all `<ng-content>` slot) and
175
- * the submenu cannot expand.
176
- */
177
- getActiveChildrenSlot() {
178
- if (this.isCompactMode() && this.isFirstLevel()) {
179
- const popover = this.childrenPopover();
180
- if (popover?.isOpen) {
181
- return this.popoverSlot()?.nativeElement ?? this.childrenSlot()?.nativeElement;
182
- }
183
- return this.childrenSlot()?.nativeElement;
120
+ /** Builds the cascading `AXMenuItem` tree used by the compact-mode context menu. */
121
+ buildMenuItemsFromChildren() {
122
+ this.reparentOrphanedChildren();
123
+ const slot = this.childrenSlot()?.nativeElement;
124
+ const itemsFromSlot = slot ? this.mapSlotChildrenToMenuItems(slot) : [];
125
+ if (itemsFromSlot.length > 0) {
126
+ return itemsFromSlot;
184
127
  }
185
- return this.childrenSlot()?.nativeElement;
128
+ return this.getDirectChildElements().map((el) => this.toMenuItem(el));
186
129
  }
187
- reparentOrphanedChildren() {
188
- const host = this.elem.nativeElement;
189
- const container = this.getActiveChildrenSlot();
190
- if (!container)
130
+ activateFromContextMenu(nativeEvent) {
131
+ if (this.disabled || this.isLoading()) {
191
132
  return;
192
- // Only look at this host's *direct* descendants in projection terms:
193
- // recursive ax-side-menu-items whose nearest ax-side-menu-item ancestor
194
- // is `host`. Iterate over a static array because we mutate the DOM.
195
- const items = Array.from(host.querySelectorAll('ax-side-menu-item'));
196
- for (const el of items) {
197
- if (el === host)
198
- continue;
199
- if (container.contains(el))
200
- continue;
201
- const nearestParent = el.parentElement?.closest('ax-side-menu-item');
202
- if (nearestParent !== host)
203
- continue;
204
- try {
205
- container.appendChild(el);
206
- }
207
- catch {
208
- // Guard against HierarchyRequestError (shouldn't happen since we
209
- // resolve the container via the view-child, not querySelector).
210
- }
211
133
  }
212
- }
213
- // In compact mode submenus open in an overlay popover; keep collapse state in sync.
214
- #popoverSync;
215
- syncCompactPopover() {
216
- if (!isPlatformBrowser(this.platformId) || !this.isCompactMode() || !this.hasChild())
217
- return;
218
- const popover = this.childrenPopover();
219
- if (!popover || popover.disabled)
134
+ const trigger = this.menuItemTrigger().nativeElement;
135
+ if (trigger instanceof HTMLAnchorElement) {
136
+ trigger.click();
220
137
  return;
221
- if (this.isCollapsed()) {
222
- this.closeCompactFlyout(popover);
223
- }
224
- else {
225
- if (this.isFirstLevel()) {
226
- this.closeSiblingCompactPopovers();
227
- }
228
- this.relocateChildren(true);
229
- void popover.open().then(() => popover.bringToFront());
230
- }
231
- }
232
- /** Restores submenu nodes to the inline slot before the overlay is disposed. */
233
- closeCompactFlyout(popover) {
234
- if (popover.isOpen) {
235
- this.moveChildrenToInlineSlot();
236
- popover.close();
237
- }
238
- else {
239
- this.moveChildrenToInlineSlot();
240
138
  }
241
- }
242
- /** Closes other top-level compact flyouts when a rail item is opened. */
243
- closeSiblingCompactPopovers() {
244
- const menuEl = this.resolveMenuHostElement();
245
- if (!menuEl)
246
- return;
247
- menuEl.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {
248
- const instance = el.__axContext__;
249
- if (!(instance instanceof AXSideMenuItemComponent) || instance === this) {
250
- return;
251
- }
252
- instance.isCollapsed.set(true);
253
- const siblingPopover = instance.childrenPopover();
254
- if (siblingPopover) {
255
- instance.closeCompactFlyout(siblingPopover);
256
- }
139
+ this.onClick.emit({
140
+ component: this,
141
+ htmlElement: this.getHostElement(),
142
+ nativeEvent,
143
+ handled: false,
257
144
  });
258
145
  }
259
- /**
260
- * Moves projected submenu nodes into the popover panel when opening in compact mode.
261
- * They are not moved back to the inline slot on close (that caused a full-mode flash below the rail).
262
- */
263
- relocateChildren(toPopover) {
264
- const source = this.childrenSlot()?.nativeElement;
265
- const target = this.popoverSlot()?.nativeElement;
266
- if (!source || !target) {
146
+ toggle() {
147
+ if (this.isCompactMode() && (!this.hasChild() || !this.isFirstLevel())) {
267
148
  return;
268
149
  }
269
- const from = toPopover ? source : target;
270
- const to = toPopover ? target : source;
271
- while (from.firstChild) {
272
- to.appendChild(from.firstChild);
273
- }
150
+ this.isCollapsed.update((collapsed) => !collapsed);
274
151
  }
275
- /**
276
- * Pulls direct submenu nodes back into the inline slot from the popover host and
277
- * from any open flyout overlay panel so they are not destroyed on overlay dispose.
278
- */
279
- moveChildrenToInlineSlot() {
280
- const slot = this.childrenSlot()?.nativeElement;
281
- if (!slot || !isPlatformBrowser(this.platformId)) {
152
+ open() {
153
+ this.isCollapsed.set(false);
154
+ }
155
+ close() {
156
+ this.isCollapsed.set(true);
157
+ this.childrenContextMenu()?.close();
158
+ }
159
+ handleContextMenuItemClick(event) {
160
+ const instance = event.item.data?.sideMenuItem;
161
+ if (!instance || instance.hasChild()) {
282
162
  return;
283
163
  }
284
- const host = this.elem.nativeElement;
285
- const sources = [];
286
- const flyoutHost = this.popoverSlot()?.nativeElement;
287
- if (flyoutHost) {
288
- sources.push(flyoutHost);
289
- }
290
- this.document.querySelectorAll('.ax-side-menu-popover .ax-side-children-content').forEach((el) => {
291
- if (el instanceof HTMLElement && el !== slot && !slot.contains(el)) {
292
- sources.push(el);
293
- }
294
- });
295
- for (const source of sources) {
296
- const items = Array.from(source.querySelectorAll(':scope > ax-side-menu-item'));
297
- for (const el of items) {
298
- if (el === host) {
299
- continue;
300
- }
301
- const nearestParent = el.parentElement?.closest('ax-side-menu-item');
302
- if (nearestParent !== host) {
303
- continue;
304
- }
305
- slot.appendChild(el);
306
- }
307
- }
164
+ instance.activateFromContextMenu(event.nativeEvent);
308
165
  }
309
- _handlePopoverClosed() {
310
- this.moveChildrenToInlineSlot();
166
+ _handleContextMenuClosed() {
311
167
  if (!this.isCollapsed()) {
312
168
  this.isCollapsed.set(true);
313
169
  }
314
170
  }
315
- checkForChildren() {
316
- const host = this.elem.nativeElement;
317
- const inlineSlot = this.childrenSlot()?.nativeElement ?? null;
318
- const flyoutSlot = this.popoverSlot()?.nativeElement ?? null;
319
- const inlineCount = inlineSlot?.querySelectorAll('ax-side-menu-item').length ?? 0;
320
- const flyoutCount = flyoutSlot?.querySelectorAll('ax-side-menu-item').length ?? 0;
321
- const contentEl = inlineSlot ?? flyoutSlot;
322
- this.hasChild.set(this.hasNestedMenuItems(host, contentEl, inlineCount + flyoutCount));
323
- }
324
- hasNestedMenuItems(host, contentEl, domChildCount) {
325
- const inlineSlot = this.childrenSlot()?.nativeElement ?? null;
326
- const flyoutSlot = this.popoverSlot()?.nativeElement ?? null;
327
- let strandedCount = 0;
328
- const all = host.querySelectorAll('ax-side-menu-item');
329
- all.forEach((el) => {
330
- if (el === host)
331
- return;
332
- if (inlineSlot?.contains(el) || flyoutSlot?.contains(el))
333
- return;
334
- const nearestParent = el.parentElement?.closest('ax-side-menu-item');
335
- if (nearestParent === host)
336
- strandedCount++;
337
- });
338
- return this.childItems().length > 0 || domChildCount > 0 || strandedCount > 0;
339
- }
340
171
  _handleClickEvent(e) {
341
- if (this.disabled || this.isLoading())
172
+ if (this.disabled || this.isLoading()) {
342
173
  return;
174
+ }
343
175
  const event = {
344
176
  component: this,
345
177
  htmlElement: this.getHostElement(),
@@ -352,26 +184,142 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
352
184
  }
353
185
  e.stopPropagation();
354
186
  }
355
- toggle() {
356
- if (this.isCompactMode()) {
357
- if (!this.hasChild())
358
- return;
359
- this.isCollapsed.update((prev) => !prev);
360
- this.syncCompactPopover();
187
+ openCompactContextMenu(menu) {
188
+ const items = this.buildMenuItemsFromChildren();
189
+ if (!items.length) {
361
190
  return;
362
191
  }
363
- this.isCollapsed.update((prev) => !prev);
192
+ menu.showAt(this.getContextMenuAnchorPoint(), this.menuItemTrigger().nativeElement, {
193
+ sender: menu,
194
+ canceled: false,
195
+ targetElement: this.menuItemTrigger().nativeElement,
196
+ items,
197
+ });
364
198
  }
365
- open() {
366
- this.isCollapsed.set(true);
199
+ getContextMenuAnchorPoint() {
200
+ const rect = this.menuItemTrigger().nativeElement.getBoundingClientRect();
201
+ const offset = 8;
202
+ if (AXHtmlUtil.isRtl(this.hostElement)) {
203
+ return { x: rect.left - offset, y: rect.top };
204
+ }
205
+ return { x: rect.right + offset, y: rect.top };
367
206
  }
368
- close() {
369
- this.isCollapsed.set(false);
207
+ mapSlotChildrenToMenuItems(slot) {
208
+ const items = [];
209
+ let pendingGroupTitle;
210
+ for (const child of Array.from(slot.children)) {
211
+ if (child.tagName === 'AX-TITLE') {
212
+ pendingGroupTitle = child.textContent?.trim() || undefined;
213
+ continue;
214
+ }
215
+ if (child.tagName === 'AX-DIVIDER') {
216
+ if (items.length > 0) {
217
+ items[items.length - 1] = { ...items[items.length - 1], break: true };
218
+ }
219
+ continue;
220
+ }
221
+ if (child.tagName !== 'AX-SIDE-MENU-ITEM') {
222
+ continue;
223
+ }
224
+ const menuItem = this.toMenuItem(child);
225
+ if (pendingGroupTitle) {
226
+ menuItem.group = { title: pendingGroupTitle };
227
+ pendingGroupTitle = undefined;
228
+ }
229
+ items.push(menuItem);
230
+ }
231
+ return items;
232
+ }
233
+ toMenuItem(host) {
234
+ const instance = this.getInstanceFromElement(host);
235
+ const item = {
236
+ text: this.getItemLabel(host, instance),
237
+ disabled: instance?.disabled ?? false,
238
+ icon: this.getItemIcon(host),
239
+ suffix: this.getItemSuffix(host),
240
+ };
241
+ if (instance) {
242
+ item.data = { sideMenuItem: instance };
243
+ }
244
+ if (this.hasNestedChildren(host, instance)) {
245
+ item.items = instance?.buildMenuItemsFromChildren() ?? this.getDirectChildElements(host).map((el) => this.toMenuItem(el));
246
+ }
247
+ return item;
248
+ }
249
+ hasNestedChildren(host, instance) {
250
+ return (instance?.hasChild() ?? false) || this.getDirectChildElements(host).length > 0;
370
251
  }
371
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
372
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXSideMenuItemComponent, isStandalone: true, selector: "ax-side-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: "routerLinkActive", publicName: "routerLinkActive", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: "textChange", active: "activeChange", isLoading: "isLoadingChange", isCollapsed: "isCollapsedChange", onClick: "onClick" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: "childItems", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "childrenPopover", first: true, predicate: ["childrenPopover"], descendants: true, isSignal: true }, { propertyName: "menuItemTrigger", first: true, predicate: ["menuItemTrigger"], descendants: true, isSignal: true }, { propertyName: "childrenSlot", first: true, predicate: ["childrenSlot"], descendants: true, isSignal: true }, { propertyName: "popoverSlot", first: true, predicate: ["popoverSlot"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
252
+ /** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */
253
+ getDirectChildElements(menuHost = this.hostElement) {
254
+ return Array.from(menuHost.querySelectorAll('ax-side-menu-item')).filter((el) => {
255
+ if (el === menuHost) {
256
+ return false;
257
+ }
258
+ return el.parentElement?.closest('ax-side-menu-item') === menuHost;
259
+ });
260
+ }
261
+ reparentOrphanedChildren() {
262
+ const container = this.childrenSlot()?.nativeElement;
263
+ if (!container) {
264
+ return;
265
+ }
266
+ for (const el of this.getDirectChildElements()) {
267
+ if (!container.contains(el)) {
268
+ try {
269
+ container.appendChild(el);
270
+ }
271
+ catch {
272
+ // HierarchyRequestError when the node is already being moved.
273
+ }
274
+ }
275
+ }
276
+ }
277
+ getItemLabel(host, instance) {
278
+ if (instance?.text()) {
279
+ return instance.text();
280
+ }
281
+ const span = host.querySelector('.ax-start-side span, .ax-inside-text span');
282
+ if (span?.textContent?.trim()) {
283
+ return span.textContent.trim();
284
+ }
285
+ return host.querySelector('ax-text')?.textContent?.trim() ?? '';
286
+ }
287
+ getItemIcon(host) {
288
+ const axIcon = host.querySelector('ax-prefix ax-icon');
289
+ if (!axIcon) {
290
+ return undefined;
291
+ }
292
+ return axIcon.getAttribute('icon') ?? axIcon.querySelector('i')?.className ?? undefined;
293
+ }
294
+ getItemSuffix(host) {
295
+ const text = host.querySelector('ax-suffix ax-text')?.textContent?.trim();
296
+ return text ? { text } : undefined;
297
+ }
298
+ getInstanceFromElement(el) {
299
+ const ctx = el.__axContext__;
300
+ return ctx instanceof AXSideMenuItemComponent ? ctx : undefined;
301
+ }
302
+ closeSiblingCompactMenus() {
303
+ const menuHost = this.hostElement.closest('ax-side-menu');
304
+ if (!menuHost) {
305
+ return;
306
+ }
307
+ menuHost.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {
308
+ const sibling = this.getInstanceFromElement(el);
309
+ if (!sibling || sibling === this) {
310
+ return;
311
+ }
312
+ sibling.isCollapsed.set(true);
313
+ sibling.childrenContextMenu()?.close();
314
+ });
315
+ }
316
+ updateHasChild() {
317
+ this.hasChild.set(this.childItems().length > 0 || this.getDirectChildElements().length > 0);
318
+ }
319
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
320
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSideMenuItemComponent, isStandalone: true, selector: "ax-side-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: "routerLinkActive", publicName: "routerLinkActive", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: "textChange", active: "activeChange", isLoading: "isLoadingChange", isCollapsed: "isCollapsedChange", onClick: "onClick" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: "childItems", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuItemTrigger", first: true, predicate: ["menuItemTrigger"], descendants: true, isSignal: true }, { propertyName: "childrenSlot", first: true, predicate: ["childrenSlot"], descendants: true, isSignal: true }, { propertyName: "childrenContextMenu", first: true, predicate: ["childrenContextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'click'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"_handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
373
321
  }
374
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{
322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{
375
323
  type: Component,
376
324
  args: [{ selector: 'ax-side-menu-item', inputs: ['disabled'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
377
325
  AXRippleDirective,
@@ -382,9 +330,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
382
330
  AsyncPipe,
383
331
  AXTranslatorPipe,
384
332
  AXTooltipModule,
385
- AXPopoverComponent,
386
- ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n" }]
387
- }], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }, { type: i0.Output, args: ["textChange"] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }, { type: i0.Output, args: ["activeChange"] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }, { type: i0.Output, args: ["isLoadingChange"] }], isCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCollapsed", required: false }] }, { type: i0.Output, args: ["isCollapsedChange"] }], onClick: [{ type: i0.Output, args: ["onClick"] }], tooltipText: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipText", required: false }] }], childrenPopover: [{ type: i0.ViewChild, args: ['childrenPopover', { isSignal: true }] }], menuItemTrigger: [{ type: i0.ViewChild, args: ['menuItemTrigger', { isSignal: true }] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], routerLinkActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActive", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], childItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXSideMenuItemComponent), { ...{ descendants: true }, isSignal: true }] }], childrenSlot: [{ type: i0.ViewChild, args: ['childrenSlot', { isSignal: true }] }], popoverSlot: [{ type: i0.ViewChild, args: ['popoverSlot', { isSignal: true }] }] } });
333
+ AXContextMenuComponent,
334
+ ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"_handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'click'\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"_handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n" }]
335
+ }] });
388
336
 
389
337
  /**
390
338
  * @category
@@ -480,13 +428,13 @@ class AXSideMenuComponent extends NXComponent {
480
428
  get __hostClass() {
481
429
  return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];
482
430
  }
483
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
484
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: AXSideMenuComponent, isStandalone: true, selector: "ax-side-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
431
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
432
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSideMenuComponent, isStandalone: true, selector: "ax-side-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: "location", publicName: "location", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: "itemsChange" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
485
433
  { provide: AXComponent, useExisting: AXSideMenuComponent },
486
434
  { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },
487
- ], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n<ng-template #Recursion let-item>\n @if (item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n @if (item.routerLink) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [target]=\"item.target\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [routerLink]=\"item.routerLink\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n [routerLinkActive]=\"item.routerLinkActive\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else if (item.href) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else {\n <ax-side-menu-item\n [text]=\"item.text\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n }\n\n <ng-template #sideMenuItemContent>\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.data) {\n <ax-text>{{ item.data }}</ax-text>\n }\n @if (item.suffixText) {\n <ax-suffix>\n <ax-text>{{ item.suffixText }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ng-template>\n</ng-template>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-content:\"\";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer base{:root{--ax-comp-side-menu-indicator-size:2px}}@layer components{ax-side-menu{gap:calc(var(--spacing,.25rem) * 2);width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}ax-side-menu>ax-title{margin-block:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-title{margin-block:calc(var(--spacing,.25rem) * 2);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-divider{margin-block:calc(var(--spacing,.25rem) * 1);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:100%;height:1px;display:block}ax-side-menu ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:inherit;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:flex;position:relative}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active):not(:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active).ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:-90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface))!important}@supports (color:color-mix(in lab,red,red)){ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 30%,transparent)!important}}ax-side-menu ax-side-menu-item .ax-side-children{opacity:1;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:1fr;padding-inline-start:calc(var(--spacing,.25rem) * 5);display:grid}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{opacity:0;grid-template-rows:0fr}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:var(--ax-comp-side-menu-children-gap,.5rem);padding-top:calc(var(--spacing,.25rem) * 2)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:calc(var(--spacing,.25rem) * 4)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400)}ax-side-menu ax-side-menu-item .ax-side-children-content{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover.ax-state-d isabled){background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-ripple{display:none}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-start:calc(var(--spacing,.25rem) * 0)}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-end:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item{position:relative}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item):before{background-color:rgba(var(--ax-sys-color-border-lightest-surface));height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item:hover:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-disabled),:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled):before{height:100%;width:var(--ax-comp-side-menu-indicator-size);background-color:rgba(var(--ax-comp-side-menu-indicator-active-color,var(--ax-comp-side-menu-bg-color,var(--ax-sys-color-primary-surface))));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children{gap:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}ax-side-menu.ax-look-default{gap:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 50%,transparent)}}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 10%,transparent)}}ax-side-menu.ax-look-default .ax-side-children{gap:calc(var(--spacing,.25rem) * 1);padding-inline-start:calc(var(--spacing,.25rem) * 9);position:relative}ax-side-menu.ax-look-default .ax-side-children:before{background-color:rgba(var(--ax-sys-color-border-light-surface));--tw-content:\"\";content:var(--tw-content);width:1px;height:100%;margin-inline-start:calc(var(--spacing,.25rem) * 6);position:absolute}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-mode-compact{width:fit-content!important}ax-side-menu.ax-mode-compact>ax-side-menu-item>.ax-side-children,ax-side-menu.ax-mode-compact>ax-side-menu-item>ax-popover.ax-side-menu-children-popover .ax-side-children-content,ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:calc(var(--spacing,.25rem) * .5)!important}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.ax-side-menu-popover{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none}.ax-side-menu-popover .ax-side-children-content{min-width:calc(var(--spacing,.25rem) * 40);gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex;overflow:visible}.ax-side-menu-popover ax-side-menu-item{width:100%;padding:calc(var(--spacing,.25rem) * 0);display:block;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-children.ax-empty,.ax-side-menu-popover ax-side-menu-item>ax-popover.ax-side-menu-children-popover>.ax-side-menu-popover-host{display:none}.ax-side-menu-popover ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-radius:var(--ax-sys-border-radius);width:100%;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);white-space:nowrap;display:flex;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-start-side,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block;rotate:90deg}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:0deg}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "text", "active", "isLoading", "isCollapsed", "tooltipText", "toggleOnClick", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["textChange", "activeChange", "isLoadingChange", "isCollapsedChange", "onClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
435
+ ], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n<ng-template #Recursion let-item>\n @if (item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n @if (item.routerLink) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [target]=\"item.target\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [routerLink]=\"item.routerLink\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n [routerLinkActive]=\"item.routerLinkActive\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else if (item.href) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else {\n <ax-side-menu-item\n [text]=\"item.text\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n }\n\n <ng-template #sideMenuItemContent>\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.data) {\n <ax-text>{{ item.data }}</ax-text>\n }\n @if (item.suffixText) {\n <ax-suffix>\n <ax-text>{{ item.suffixText }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ng-template>\n</ng-template>\n", styles: [":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\"\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\"\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\"\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu{display:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXSideMenuItemComponent, selector: "ax-side-menu-item", inputs: ["disabled", "text", "active", "isLoading", "isCollapsed", "tooltipText", "toggleOnClick", "href", "routerLink", "routerLinkActive", "routerLinkActiveOptions", "target"], outputs: ["textChange", "activeChange", "isLoadingChange", "isCollapsedChange", "onClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
488
436
  }
489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuComponent, decorators: [{
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuComponent, decorators: [{
490
438
  type: Component,
491
439
  args: [{ selector: 'ax-side-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
492
440
  NgTemplateOutlet,
@@ -498,8 +446,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
498
446
  ], providers: [
499
447
  { provide: AXComponent, useExisting: AXSideMenuComponent },
500
448
  { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },
501
- ], template: "<ng-content select=\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n<ng-template #Recursion let-item>\n @if (item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n @if (item.routerLink) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [target]=\"item.target\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [routerLink]=\"item.routerLink\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n [routerLinkActive]=\"item.routerLinkActive\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else if (item.href) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else {\n <ax-side-menu-item\n [text]=\"item.text\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n }\n\n <ng-template #sideMenuItemContent>\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.data) {\n <ax-text>{{ item.data }}</ax-text>\n }\n @if (item.suffixText) {\n <ax-suffix>\n <ax-text>{{ item.suffixText }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ng-template>\n</ng-template>\n", styles: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-content:\"\";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer base{:root{--ax-comp-side-menu-indicator-size:2px}}@layer components{ax-side-menu{gap:calc(var(--spacing,.25rem) * 2);width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}ax-side-menu>ax-title{margin-block:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-title{margin-block:calc(var(--spacing,.25rem) * 2);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-divider{margin-block:calc(var(--spacing,.25rem) * 1);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:100%;height:1px;display:block}ax-side-menu ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:inherit;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:flex;position:relative}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active):not(:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active).ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:-90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface))!important}@supports (color:color-mix(in lab,red,red)){ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 30%,transparent)!important}}ax-side-menu ax-side-menu-item .ax-side-children{opacity:1;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:1fr;padding-inline-start:calc(var(--spacing,.25rem) * 5);display:grid}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{opacity:0;grid-template-rows:0fr}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:var(--ax-comp-side-menu-children-gap,.5rem);padding-top:calc(var(--spacing,.25rem) * 2)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:calc(var(--spacing,.25rem) * 4)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400)}ax-side-menu ax-side-menu-item .ax-side-children-content{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover.ax-state-d isabled){background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-ripple{display:none}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-start:calc(var(--spacing,.25rem) * 0)}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-end:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item{position:relative}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item):before{background-color:rgba(var(--ax-sys-color-border-lightest-surface));height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item:hover:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-disabled),:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled):before{height:100%;width:var(--ax-comp-side-menu-indicator-size);background-color:rgba(var(--ax-comp-side-menu-indicator-active-color,var(--ax-comp-side-menu-bg-color,var(--ax-sys-color-primary-surface))));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children{gap:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}ax-side-menu.ax-look-default{gap:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 50%,transparent)}}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 10%,transparent)}}ax-side-menu.ax-look-default .ax-side-children{gap:calc(var(--spacing,.25rem) * 1);padding-inline-start:calc(var(--spacing,.25rem) * 9);position:relative}ax-side-menu.ax-look-default .ax-side-children:before{background-color:rgba(var(--ax-sys-color-border-light-surface));--tw-content:\"\";content:var(--tw-content);width:1px;height:100%;margin-inline-start:calc(var(--spacing,.25rem) * 6);position:absolute}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-mode-compact{width:fit-content!important}ax-side-menu.ax-mode-compact>ax-side-menu-item>.ax-side-children,ax-side-menu.ax-mode-compact>ax-side-menu-item>ax-popover.ax-side-menu-children-popover .ax-side-children-content,ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:calc(var(--spacing,.25rem) * .5)!important}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.ax-side-menu-popover{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none}.ax-side-menu-popover .ax-side-children-content{min-width:calc(var(--spacing,.25rem) * 40);gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex;overflow:visible}.ax-side-menu-popover ax-side-menu-item{width:100%;padding:calc(var(--spacing,.25rem) * 0);display:block;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-children.ax-empty,.ax-side-menu-popover ax-side-menu-item>ax-popover.ax-side-menu-children-popover>.ax-side-menu-popover-host{display:none}.ax-side-menu-popover ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-radius:var(--ax-sys-border-radius);width:100%;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);white-space:nowrap;display:flex;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-start-side,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block;rotate:90deg}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:0deg}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
502
- }], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }, { type: i0.Output, args: ["itemsChange"] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], __hostClass: [{
449
+ ], template: "<ng-content select=\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\"></ng-content>\n\n@for (node of items(); track node) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: node }\"> </ng-container>\n}\n<ng-template #Recursion let-item>\n @if (item.title) {\n <ax-title>{{ item.title }}</ax-title>\n }\n @if (item.routerLink) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [target]=\"item.target\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [routerLink]=\"item.routerLink\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n [routerLinkActive]=\"item.routerLinkActive\"\n [routerLinkActiveOptions]=\"item.routerLinkActiveOptions\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else if (item.href) {\n <ax-side-menu-item\n [text]=\"item.text\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n } @else {\n <ax-side-menu-item\n [text]=\"item.text\"\n [active]=\"item.active\"\n [disabled]=\"item.disabled\"\n [isLoading]=\"item.isLoading\"\n [isCollapsed]=\"item.isCollapsed\"\n [toggleOnClick]=\"item.toggleOnClick\"\n >\n <ng-container [ngTemplateOutlet]=\"sideMenuItemContent\"></ng-container>\n </ax-side-menu-item>\n }\n\n <ng-template #sideMenuItemContent>\n <ax-prefix>\n @if (item.icon) {\n <ax-icon [icon]=\"item.icon\"> </ax-icon>\n }\n </ax-prefix>\n @if (item.data) {\n <ax-text>{{ item.data }}</ax-text>\n }\n @if (item.suffixText) {\n <ax-suffix>\n <ax-text>{{ item.suffixText }}</ax-text>\n </ax-suffix>\n }\n @for (child of item.items; track child) {\n <ng-container [ngTemplateOutlet]=\"Recursion\" [ngTemplateOutletContext]=\"{ $implicit: child }\"></ng-container>\n }\n </ng-template>\n</ng-template>\n", styles: [":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\"\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\"\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\"\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu{display:none}\n"] }]
450
+ }], propDecorators: { __hostClass: [{
503
451
  type: HostBinding,
504
452
  args: ['class']
505
453
  }] } });
@@ -610,10 +558,10 @@ class AXOutlineSideMenuDirective {
610
558
  });
611
559
  return rootItems;
612
560
  }
613
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXOutlineSideMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
614
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.3", type: AXOutlineSideMenuDirective, isStandalone: true, selector: "[axOutlineSideMenu]", providers: [AXUnsubscriber], exportAs: ["axOutlineSideMenu"], ngImport: i0 }); }
561
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXOutlineSideMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
562
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: AXOutlineSideMenuDirective, isStandalone: true, selector: "[axOutlineSideMenu]", providers: [AXUnsubscriber], exportAs: ["axOutlineSideMenu"], ngImport: i0 }); }
615
563
  }
616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXOutlineSideMenuDirective, decorators: [{
564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXOutlineSideMenuDirective, decorators: [{
617
565
  type: Directive,
618
566
  args: [{
619
567
  selector: '[axOutlineSideMenu]',
@@ -634,8 +582,8 @@ const MODULES = [
634
582
  AXDecoratorModule,
635
583
  ];
636
584
  class AXSideMenuModule {
637
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
638
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,
585
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
586
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,
639
587
  AXCommonModule,
640
588
  AXRippleDirective,
641
589
  AXLoadingModule,
@@ -643,13 +591,13 @@ class AXSideMenuModule {
643
591
  RouterLink,
644
592
  RouterLinkActive,
645
593
  AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective], exports: [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective] }); }
646
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,
594
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,
647
595
  AXCommonModule,
648
596
  AXLoadingModule,
649
597
  AXTranslationModule,
650
598
  AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent] }); }
651
599
  }
652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuModule, decorators: [{
600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuModule, decorators: [{
653
601
  type: NgModule,
654
602
  args: [{
655
603
  imports: [...MODULES, ...COMPONENT],