@acorex/components 21.0.0-next.3 → 21.0.0-next.31

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 (273) hide show
  1. package/accordion/index.d.ts +0 -1
  2. package/autocomplete/index.d.ts +23 -9
  3. package/button/index.d.ts +38 -17
  4. package/chips/index.d.ts +3 -8
  5. package/code-editor/README.md +291 -1
  6. package/code-editor/index.d.ts +260 -12
  7. package/command/index.d.ts +1 -0
  8. package/conversation2/README.md +426 -0
  9. package/conversation2/index.d.ts +6139 -0
  10. package/data-table/index.d.ts +79 -7
  11. package/dialog/index.d.ts +1 -1
  12. package/drawer/README.md +2 -2
  13. package/drawer/index.d.ts +33 -57
  14. package/drawer-legacy/README.md +3 -0
  15. package/drawer-legacy/index.d.ts +86 -0
  16. package/editor/README.md +3 -0
  17. package/editor/index.d.ts +79 -0
  18. package/fesm2022/acorex-components-accordion.mjs +19 -24
  19. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  20. package/fesm2022/acorex-components-action-sheet.mjs +12 -12
  21. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  22. package/fesm2022/acorex-components-alert.mjs +14 -14
  23. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  24. package/fesm2022/acorex-components-aspect-ratio.mjs +4 -4
  25. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  26. package/fesm2022/acorex-components-audio-wave.mjs +12 -11
  27. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  28. package/fesm2022/acorex-components-autocomplete.mjs +30 -13
  29. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  30. package/fesm2022/acorex-components-avatar.mjs +13 -13
  31. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  32. package/fesm2022/acorex-components-badge.mjs +10 -10
  33. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  34. package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
  35. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  36. package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
  37. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  38. package/fesm2022/acorex-components-button-group.mjs +17 -19
  39. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  40. package/fesm2022/acorex-components-button.mjs +78 -29
  41. package/fesm2022/acorex-components-button.mjs.map +1 -1
  42. package/fesm2022/acorex-components-calendar.mjs +18 -18
  43. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  44. package/fesm2022/acorex-components-check-box.mjs +11 -11
  45. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  46. package/fesm2022/acorex-components-chips.mjs +12 -14
  47. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  48. package/fesm2022/acorex-components-circular-progress.mjs +13 -11
  49. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  50. package/fesm2022/acorex-components-code-editor.mjs +494 -162
  51. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  52. package/fesm2022/acorex-components-collapse.mjs +13 -28
  53. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  54. package/fesm2022/acorex-components-color-box.mjs +11 -11
  55. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  56. package/fesm2022/acorex-components-color-palette.mjs +32 -32
  57. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  58. package/fesm2022/acorex-components-command.mjs +18 -11
  59. package/fesm2022/acorex-components-command.mjs.map +1 -1
  60. package/fesm2022/acorex-components-comment.mjs +34 -34
  61. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  62. package/fesm2022/acorex-components-conversation.mjs +56 -65
  63. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  64. package/fesm2022/acorex-components-conversation2.mjs +17641 -0
  65. package/fesm2022/acorex-components-conversation2.mjs.map +1 -0
  66. package/fesm2022/acorex-components-cron-job.mjs +53 -53
  67. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  68. package/fesm2022/acorex-components-data-list.mjs +5 -5
  69. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  70. package/fesm2022/acorex-components-data-pager.mjs +53 -41
  71. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  72. package/fesm2022/acorex-components-data-table.mjs +462 -105
  73. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  74. package/fesm2022/acorex-components-datetime-box.mjs +10 -10
  75. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  76. package/fesm2022/acorex-components-datetime-input.mjs +8 -8
  77. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  78. package/fesm2022/acorex-components-datetime-picker.mjs +11 -11
  79. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  80. package/fesm2022/acorex-components-decorators.mjs +96 -54
  81. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  82. package/fesm2022/acorex-components-dialog.mjs +26 -16
  83. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  84. package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
  85. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
  86. package/fesm2022/acorex-components-drawer.mjs +66 -150
  87. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  88. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  89. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  90. package/fesm2022/acorex-components-dropdown.mjs +18 -16
  91. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  92. package/fesm2022/acorex-components-editor.mjs +195 -0
  93. package/fesm2022/acorex-components-editor.mjs.map +1 -0
  94. package/fesm2022/acorex-components-file-explorer.mjs +28 -28
  95. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  96. package/fesm2022/acorex-components-flow-chart.mjs +18 -18
  97. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  98. package/fesm2022/acorex-components-form.mjs +52 -35
  99. package/fesm2022/acorex-components-form.mjs.map +1 -1
  100. package/fesm2022/acorex-components-grid-layout-builder.mjs +14 -15
  101. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  102. package/fesm2022/acorex-components-image-editor.mjs +166 -126
  103. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  104. package/fesm2022/acorex-components-image.mjs +10 -10
  105. package/fesm2022/acorex-components-image.mjs.map +1 -1
  106. package/fesm2022/acorex-components-json-viewer.mjs +9 -9
  107. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  108. package/fesm2022/acorex-components-kanban.mjs +9 -7
  109. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  110. package/fesm2022/acorex-components-kbd.mjs +8 -8
  111. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  112. package/fesm2022/acorex-components-label.mjs +9 -9
  113. package/fesm2022/acorex-components-label.mjs.map +1 -1
  114. package/fesm2022/acorex-components-list.mjs +10 -10
  115. package/fesm2022/acorex-components-list.mjs.map +1 -1
  116. package/fesm2022/acorex-components-loading-dialog.mjs +22 -13
  117. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  118. package/fesm2022/acorex-components-loading.mjs +23 -23
  119. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  120. package/fesm2022/acorex-components-map.mjs +16 -15
  121. package/fesm2022/acorex-components-map.mjs.map +1 -1
  122. package/fesm2022/acorex-components-media-viewer.mjs +78 -97
  123. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  124. package/fesm2022/acorex-components-menu.mjs +24 -24
  125. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  126. package/fesm2022/{acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs → acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs} +24 -24
  127. package/fesm2022/acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs.map +1 -0
  128. package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs +214 -0
  129. package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs.map +1 -0
  130. package/fesm2022/acorex-components-modal.mjs +1 -1
  131. package/fesm2022/acorex-components-navbar.mjs +9 -9
  132. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  133. package/fesm2022/acorex-components-notification.mjs +16 -23
  134. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  135. package/fesm2022/acorex-components-number-box-legacy.mjs +412 -0
  136. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
  137. package/fesm2022/acorex-components-number-box.mjs +98 -331
  138. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  139. package/fesm2022/acorex-components-otp.mjs +10 -10
  140. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  141. package/fesm2022/acorex-components-page.mjs +10 -10
  142. package/fesm2022/acorex-components-page.mjs.map +1 -1
  143. package/fesm2022/acorex-components-paint.mjs +35 -40
  144. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  145. package/fesm2022/acorex-components-password-box.mjs +13 -13
  146. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  147. package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
  148. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  149. package/fesm2022/acorex-components-phone-box.mjs +10 -10
  150. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  151. package/fesm2022/acorex-components-picker.mjs +17 -17
  152. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  153. package/fesm2022/acorex-components-popover.mjs +12 -12
  154. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  155. package/fesm2022/acorex-components-popup.mjs +13 -13
  156. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  157. package/fesm2022/acorex-components-progress-bar.mjs +11 -9
  158. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  159. package/fesm2022/acorex-components-qrcode.mjs +8 -8
  160. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  161. package/fesm2022/acorex-components-query-builder.mjs +9 -9
  162. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  163. package/fesm2022/acorex-components-radio.mjs +7 -7
  164. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  165. package/fesm2022/acorex-components-rail-navigation.mjs +40 -38
  166. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  167. package/fesm2022/acorex-components-range-slider.mjs +11 -11
  168. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  169. package/fesm2022/acorex-components-rate-picker.mjs +20 -35
  170. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  171. package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
  172. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  173. package/fesm2022/acorex-components-result.mjs +8 -8
  174. package/fesm2022/acorex-components-result.mjs.map +1 -1
  175. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  176. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  177. package/fesm2022/acorex-components-rrule.mjs +111 -16
  178. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  179. package/fesm2022/acorex-components-scheduler-picker.mjs +2339 -0
  180. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -0
  181. package/fesm2022/acorex-components-scheduler.mjs +52 -52
  182. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  183. package/fesm2022/acorex-components-scss.mjs +4 -4
  184. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  185. package/fesm2022/acorex-components-search-box.mjs +23 -12
  186. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  187. package/fesm2022/acorex-components-select-box.mjs +36 -17
  188. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  189. package/fesm2022/acorex-components-selection-list-2.mjs +10 -10
  190. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  191. package/fesm2022/acorex-components-selection-list.mjs +10 -10
  192. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  193. package/fesm2022/acorex-components-side-menu.mjs +31 -38
  194. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  195. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  196. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  197. package/fesm2022/acorex-components-slider.mjs +11 -11
  198. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  199. package/fesm2022/acorex-components-sliding-item.mjs +17 -17
  200. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  201. package/fesm2022/acorex-components-step-wizard.mjs +16 -16
  202. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  203. package/fesm2022/acorex-components-switch.mjs +14 -14
  204. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  205. package/fesm2022/acorex-components-tabs.mjs +20 -16
  206. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  207. package/fesm2022/acorex-components-tag-box.mjs +51 -21
  208. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  209. package/fesm2022/acorex-components-tag.mjs +47 -11
  210. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  211. package/fesm2022/acorex-components-text-area.mjs +9 -9
  212. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  213. package/fesm2022/acorex-components-text-box.mjs +13 -13
  214. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  215. package/fesm2022/acorex-components-time-duration.mjs +54 -14
  216. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  217. package/fesm2022/acorex-components-time-line.mjs +14 -29
  218. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  219. package/fesm2022/acorex-components-toast.mjs +14 -14
  220. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  221. package/fesm2022/acorex-components-toolbar.mjs +9 -9
  222. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  223. package/fesm2022/acorex-components-tooltip.mjs +12 -12
  224. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  225. package/fesm2022/acorex-components-tree-view.mjs +16 -45
  226. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  227. package/fesm2022/acorex-components-tree2.mjs +689 -0
  228. package/fesm2022/acorex-components-tree2.mjs.map +1 -0
  229. package/fesm2022/acorex-components-uploader.mjs +28 -641
  230. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  231. package/fesm2022/acorex-components-video-player.mjs +8 -8
  232. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  233. package/fesm2022/acorex-components-wysiwyg.mjs +213 -462
  234. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  235. package/fesm2022/acorex-components.mjs.map +1 -1
  236. package/form/index.d.ts +3 -3
  237. package/grid-layout-builder/index.d.ts +1 -2
  238. package/image-editor/index.d.ts +8 -5
  239. package/loading/index.d.ts +1 -1
  240. package/media-viewer/index.d.ts +2 -3
  241. package/notification/index.d.ts +0 -2
  242. package/number-box/README.md +2 -2
  243. package/number-box/index.d.ts +31 -171
  244. package/number-box-legacy/README.md +3 -0
  245. package/number-box-legacy/index.d.ts +191 -0
  246. package/package.json +53 -26
  247. package/paint/index.d.ts +1 -6
  248. package/phone-box/index.d.ts +4 -4
  249. package/rate-picker/index.d.ts +5 -15
  250. package/rrule/index.d.ts +96 -1
  251. package/scheduler-picker/README.md +15 -0
  252. package/scheduler-picker/index.d.ts +1360 -0
  253. package/search-box/index.d.ts +6 -1
  254. package/select-box/index.d.ts +15 -10
  255. package/side-menu/index.d.ts +3 -2
  256. package/tag/index.d.ts +8 -2
  257. package/tag-box/index.d.ts +12 -3
  258. package/time-duration/index.d.ts +19 -3
  259. package/tree2/README.md +3 -0
  260. package/tree2/index.d.ts +337 -0
  261. package/uploader/index.d.ts +4 -331
  262. package/wysiwyg/index.d.ts +57 -159
  263. package/drawer-2/README.md +0 -3
  264. package/drawer-2/index.d.ts +0 -62
  265. package/fesm2022/acorex-components-drawer-2.mjs +0 -134
  266. package/fesm2022/acorex-components-drawer-2.mjs.map +0 -1
  267. package/fesm2022/acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs.map +0 -1
  268. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs +0 -235
  269. package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs.map +0 -1
  270. package/fesm2022/acorex-components-number-box-2.mjs +0 -183
  271. package/fesm2022/acorex-components-number-box-2.mjs.map +0 -1
  272. package/number-box-2/README.md +0 -3
  273. package/number-box-2/index.d.ts +0 -41
@@ -30,6 +30,11 @@ declare class AXSearchBoxComponent extends AXSearchBoxComponent_base {
30
30
  */
31
31
  delayTime: number;
32
32
  readonly type: i0.InputSignal<string>;
33
+ /**
34
+ * Determines whether executing the parent search logic is allowed.
35
+ * @defaultValue true
36
+ */
37
+ readonly autoSearch: i0.InputSignal<boolean>;
33
38
  /**
34
39
  * Handles changes to the model and triggers a search in the parent component if available.
35
40
  *
@@ -40,7 +45,7 @@ declare class AXSearchBoxComponent extends AXSearchBoxComponent_base {
40
45
  get __hostClass(): string[];
41
46
  private get __hostName();
42
47
  static ɵfac: i0.ɵɵFactoryDeclaration<AXSearchBoxComponent, never>;
43
- static ɵcmp: i0.ɵɵComponentDeclaration<AXSearchBoxComponent, "ax-search-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "look": { "alias": "look"; "required": false; }; "classNames": { "alias": "class"; "required": false; }; "delayTime": { "alias": "delayTime"; "required": false; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix"], true, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXSearchBoxComponent, "ax-search-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "look": { "alias": "look"; "required": false; }; "classNames": { "alias": "class"; "required": false; }; "delayTime": { "alias": "delayTime"; "required": false; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "autoSearch": { "alias": "autoSearch"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix"], true, never>;
44
49
  }
45
50
 
46
51
  declare class AXSearchBoxModule {
@@ -1,4 +1,4 @@
1
- import * as i0 from '@angular/core';
1
+ import * as _angular_core from '@angular/core';
2
2
  import { OnDestroy, WritableSignal, TemplateRef, ElementRef } from '@angular/core';
3
3
  import * as polytype from 'polytype';
4
4
  import * as i2 from '@acorex/cdk/common';
@@ -26,18 +26,23 @@ declare const AXSelectBoxComponent_base: polytype.Polytype.ClusteredConstructor<
26
26
  * @category
27
27
  */
28
28
  declare class AXSelectBoxComponent extends AXSelectBoxComponent_base implements OnDestroy {
29
+ #private;
29
30
  /**
30
31
  * Determines if an item is truncated.
31
32
  *
32
33
  * @defaultValue true
33
34
  */
34
- readonly isItemTruncated: i0.InputSignal<boolean>;
35
+ readonly isItemTruncated: _angular_core.InputSignal<boolean>;
35
36
  /**
36
37
  * Determines if a tooltip is shown for an item.
37
38
  *
38
39
  * @defaultValue false
39
40
  */
40
- readonly showItemTooltip: i0.InputSignal<boolean>;
41
+ readonly showItemTooltip: _angular_core.InputSignal<boolean>;
42
+ /** Height of each list item in pixels, or 'auto' to let list measure. */
43
+ itemHeight: _angular_core.InputSignal<number | "auto">;
44
+ /** Maximum number of visible items before scrolling. */
45
+ maxVisibleItems: _angular_core.InputSignal<number>;
41
46
  /** @ignore */
42
47
  private hotKeyService;
43
48
  /** @ignore */
@@ -107,14 +112,14 @@ declare class AXSelectBoxComponent extends AXSelectBoxComponent_base implements
107
112
  * The width of the dropdown in pixels.
108
113
  * @defaultValue null
109
114
  */
110
- dropdownWidth: i0.InputSignal<string>;
115
+ dropdownWidth: _angular_core.InputSignal<string>;
111
116
  /** @ignore */
112
117
  panel: ElementRef<HTMLDivElement>;
113
118
  /** @ignore */
114
119
  list: AXListComponent;
115
120
  /** @ignore */
116
121
  searchBox: AXSearchBoxComponent;
117
- searchBoxAutoFocus: i0.InputSignal<boolean>;
122
+ searchBoxAutoFocus: _angular_core.InputSignal<boolean>;
118
123
  /** @ignore */
119
124
  protected dropdown: AXDropdownBoxComponent;
120
125
  /**
@@ -171,14 +176,14 @@ declare class AXSelectBoxComponent extends AXSelectBoxComponent_base implements
171
176
  */
172
177
  refresh(): void;
173
178
  private hostClickListener;
174
- static ɵfac: i0.ɵɵFactoryDeclaration<AXSelectBoxComponent, never>;
175
- static ɵcmp: i0.ɵɵComponentDeclaration<AXSelectBoxComponent, "ax-select-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "disabledField": { "alias": "disabledField"; "required": false; }; "textTemplate": { "alias": "textTemplate"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "isItemTruncated": { "alias": "isItemTruncated"; "required": false; "isSignal": true; }; "showItemTooltip": { "alias": "showItemTooltip"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; }; "minRecordsForSearch": { "alias": "minRecordsForSearch"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; }; "dropdownWidth": { "alias": "dropdownWidth"; "required": false; "isSignal": true; }; "searchBoxAutoFocus": { "alias": "searchBoxAutoFocus"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onOpened": "onOpened"; "onClosed": "onClosed"; "onItemSelected": "onItemSelected"; "onItemClick": "onItemClick"; }, ["searchBox"], ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-search-box", "ax-footer", "ax-validation-rule"], true, never>;
179
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSelectBoxComponent, never>;
180
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSelectBoxComponent, "ax-select-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minValue": { "alias": "minValue"; "required": false; }; "maxValue": { "alias": "maxValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "disabledField": { "alias": "disabledField"; "required": false; }; "textTemplate": { "alias": "textTemplate"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "isItemTruncated": { "alias": "isItemTruncated"; "required": false; "isSignal": true; }; "showItemTooltip": { "alias": "showItemTooltip"; "required": false; "isSignal": true; }; "itemHeight": { "alias": "itemHeight"; "required": false; "isSignal": true; }; "maxVisibleItems": { "alias": "maxVisibleItems"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; }; "minRecordsForSearch": { "alias": "minRecordsForSearch"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "loadingTemplate": { "alias": "loadingTemplate"; "required": false; }; "dropdownWidth": { "alias": "dropdownWidth"; "required": false; "isSignal": true; }; "searchBoxAutoFocus": { "alias": "searchBoxAutoFocus"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "onBlur": "onBlur"; "onFocus": "onFocus"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onOpened": "onOpened"; "onClosed": "onClosed"; "onItemSelected": "onItemSelected"; "onItemClick": "onItemClick"; }, ["searchBox"], ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-search-box", "ax-footer", "ax-validation-rule"], true, never>;
176
181
  }
177
182
 
178
183
  declare class AXSelectBoxModule {
179
- static ɵfac: i0.ɵɵFactoryDeclaration<AXSelectBoxModule, never>;
180
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXSelectBoxModule, never, [typeof i1.CommonModule, typeof i2.AXCommonModule, typeof i3.FormsModule, typeof i4.AXCheckBoxModule, typeof i5.AXBadgeModule, typeof i6.AXDecoratorModule, typeof i7.AXTranslationModule, typeof i8.AXPopoverModule, typeof i9.AXLoadingModule, typeof i10.A11yModule, typeof i11.AXTextBoxModule, typeof i12.AXDropdownModule, typeof i13.AXListModule, typeof AXSelectBoxComponent], [typeof AXSelectBoxComponent]>;
181
- static ɵinj: i0.ɵɵInjectorDeclaration<AXSelectBoxModule>;
184
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSelectBoxModule, never>;
185
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXSelectBoxModule, never, [typeof i1.CommonModule, typeof i2.AXCommonModule, typeof i3.FormsModule, typeof i4.AXCheckBoxModule, typeof i5.AXBadgeModule, typeof i6.AXDecoratorModule, typeof i7.AXTranslationModule, typeof i8.AXPopoverModule, typeof i9.AXLoadingModule, typeof i10.A11yModule, typeof i11.AXTextBoxModule, typeof i12.AXDropdownModule, typeof i13.AXListModule, typeof AXSelectBoxComponent], [typeof AXSelectBoxComponent]>;
186
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXSelectBoxModule>;
182
187
  }
183
188
 
184
189
  export { AXSelectBoxComponent, AXSelectBoxModule };
@@ -12,12 +12,13 @@ declare class AXSideMenuItemClickEvent extends AXClickEvent {
12
12
  handled: boolean;
13
13
  }
14
14
  declare class AXSideMenuItemComponent extends MXInteractiveComponent {
15
- private elem;
15
+ #private;
16
16
  text: _angular_core.ModelSignal<string>;
17
17
  active: _angular_core.ModelSignal<boolean>;
18
18
  isLoading: _angular_core.ModelSignal<boolean>;
19
19
  isCollapsed: _angular_core.ModelSignal<boolean>;
20
20
  onClick: _angular_core.OutputEmitterRef<AXSideMenuItemClickEvent>;
21
+ private elem;
21
22
  readonly toggleOnClick: _angular_core.InputSignal<boolean>;
22
23
  readonly href: _angular_core.InputSignal<string>;
23
24
  readonly routerLink: _angular_core.InputSignal<string | any[] | UrlTree>;
@@ -27,7 +28,7 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
27
28
  } | IsActiveMatchOptions>;
28
29
  readonly target: _angular_core.InputSignal<"_blank" | "_self" | "_parent" | "_top">;
29
30
  protected hasChild: _angular_core.WritableSignal<boolean>;
30
- constructor();
31
+ private checkForChildren;
31
32
  protected _handleClickEvent(e: MouseEvent): void;
32
33
  toggle(): void;
33
34
  open(): void;
package/tag/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { MXColorLookComponent } from '@acorex/cdk/common';
2
1
  import * as i0 from '@angular/core';
2
+ import { MXColorLookComponent, AXClickEvent } from '@acorex/cdk/common';
3
3
  import * as i1 from '@angular/common';
4
4
 
5
5
  /**
@@ -11,10 +11,16 @@ declare class AXTagComponent extends MXColorLookComponent {
11
11
  * Represents the text content to be displayed or used within the component.
12
12
  */
13
13
  text: string;
14
+ onClick: i0.OutputEmitterRef<AXClickEvent>;
15
+ onDblClick: i0.OutputEmitterRef<AXClickEvent>;
16
+ onContextMenu: i0.OutputEmitterRef<AXClickEvent>;
14
17
  /** @ignore */
15
18
  private get __hostClass();
19
+ private hostClickListener;
20
+ private hostDblClickListener;
21
+ private hostContextMenuListener;
16
22
  static ɵfac: i0.ɵɵFactoryDeclaration<AXTagComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<AXTagComponent, "ax-tag", never, { "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "text": { "alias": "text"; "required": false; }; }, {}, never, ["ax-prefix", "ax-suffix"], true, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXTagComponent, "ax-tag", never, { "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "text": { "alias": "text"; "required": false; }; }, { "onClick": "onClick"; "onDblClick": "onDblClick"; "onContextMenu": "onContextMenu"; }, never, ["ax-prefix", "ax-suffix"], true, never>;
18
24
  }
19
25
 
20
26
  declare class AXTagModule {
@@ -1,7 +1,7 @@
1
1
  import * as polytype from 'polytype';
2
2
  import * as _angular_core from '@angular/core';
3
- import { OnInit } from '@angular/core';
4
- import { MXInputBaseValueComponent, MXLookComponent, AXAutocompleteParentComponent } from '@acorex/cdk/common';
3
+ import { OnInit, TemplateRef } from '@angular/core';
4
+ import { MXInputBaseValueComponent, MXLookComponent, AXAutocompleteParentComponent, AXClickEvent } from '@acorex/cdk/common';
5
5
  import { AXUnsubscriber } from '@acorex/core/utils';
6
6
 
7
7
  declare const AXTagBoxComponent_base: polytype.Polytype.ClusteredConstructor<[{
@@ -21,7 +21,12 @@ declare class AXTagBoxComponent extends AXTagBoxComponent_base implements OnInit
21
21
  textField: _angular_core.InputSignal<string>;
22
22
  readonlyField: _angular_core.InputSignal<string>;
23
23
  allowDuplicateValues: _angular_core.InputSignal<boolean>;
24
+ tagTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
25
+ onTagClick: _angular_core.OutputEmitterRef<AXClickEvent>;
26
+ onTagDblClick: _angular_core.OutputEmitterRef<AXClickEvent>;
27
+ onTagContextMenu: _angular_core.OutputEmitterRef<AXClickEvent>;
24
28
  inputValue: _angular_core.WritableSignal<string>;
29
+ private autocompleteComponent;
25
30
  ngOnInit(): void;
26
31
  /**
27
32
  * Adds items to the tag box.
@@ -43,10 +48,14 @@ declare class AXTagBoxComponent extends AXTagBoxComponent_base implements OnInit
43
48
  */
44
49
  convertString(v: unknown): object[];
45
50
  getFieldValue(item: unknown, path: string): unknown;
51
+ /**
52
+ * Keep autocomplete selected values in sync with current tags
53
+ */
54
+ private syncAutocompleteSelection;
46
55
  protected internalSetValue(value: unknown): unknown[];
47
56
  private get __hostName();
48
57
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTagBoxComponent, never>;
49
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTagBoxComponent, "ax-tag-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "addOnComma": { "alias": "addOnComma"; "required": false; "isSignal": true; }; "addOnEnter": { "alias": "addOnEnter"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "readonlyField": { "alias": "readonlyField"; "required": false; "isSignal": true; }; "allowDuplicateValues": { "alias": "allowDuplicateValues"; "required": false; "isSignal": true; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; }, never, ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-autocomplete", "ax-validation-rule"], true, never>;
58
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTagBoxComponent, "ax-tag-box", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "value": { "alias": "value"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; "id": { "alias": "id"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "allowNull": { "alias": "allowNull"; "required": false; }; "type": { "alias": "type"; "required": false; }; "look": { "alias": "look"; "required": false; }; "addOnComma": { "alias": "addOnComma"; "required": false; "isSignal": true; }; "addOnEnter": { "alias": "addOnEnter"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "readonlyField": { "alias": "readonlyField"; "required": false; "isSignal": true; }; "allowDuplicateValues": { "alias": "allowDuplicateValues"; "required": false; "isSignal": true; }; "tagTemplate": { "alias": "tagTemplate"; "required": false; "isSignal": true; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "valueChange": "valueChange"; "stateChange": "stateChange"; "onValueChanged": "onValueChanged"; "readonlyChange": "readonlyChange"; "disabledChange": "disabledChange"; "onKeyDown": "onKeyDown"; "onKeyUp": "onKeyUp"; "onKeyPress": "onKeyPress"; "onTagClick": "onTagClick"; "onTagDblClick": "onTagDblClick"; "onTagContextMenu": "onTagContextMenu"; }, ["autocompleteComponent"], ["ax-prefix", "ax-clear-button", "ax-suffix", "ax-autocomplete", "ax-validation-rule"], true, never>;
50
59
  }
51
60
 
52
61
  declare class AXTagBoxModule {
@@ -1,6 +1,6 @@
1
1
  import * as polytype from 'polytype';
2
2
  import * as _angular_core from '@angular/core';
3
- import { MXInputBaseValueComponent, MXLookComponent } from '@acorex/cdk/common';
3
+ import { MXInputBaseValueComponent, MXLookComponent, AXFocusEvent } from '@acorex/cdk/common';
4
4
 
5
5
  type AXTimeDurationUnit = 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' | 'MILLISECOND';
6
6
 
@@ -16,9 +16,12 @@ declare class AXTimeDurationComponent extends AXTimeDurationComponent_base {
16
16
  readonly valueEnd: _angular_core.InputSignal<AXTimeDurationUnit>;
17
17
  readonly label: _angular_core.InputSignal<boolean>;
18
18
  readonly maskDigits: _angular_core.InputSignal<string>;
19
+ readonly minValue: _angular_core.InputSignal<number>;
20
+ readonly maxValue: _angular_core.InputSignal<number>;
19
21
  protected maskOptions: _angular_core.WritableSignal<any>;
20
22
  private translationService;
21
23
  private timeDurationFormatter;
24
+ private translation;
22
25
  private onInputFire;
23
26
  private onInternalValueChangedFire;
24
27
  private YEAR;
@@ -31,14 +34,27 @@ declare class AXTimeDurationComponent extends AXTimeDurationComponent_base {
31
34
  private MILLISECOND;
32
35
  private isTranslationInit;
33
36
  initTranslation(): Promise<void>;
34
- protected onInput(event: any): void;
37
+ protected onInput(event: any): Promise<void>;
35
38
  protected internalValueChanged(value: number): Promise<void>;
36
39
  private replacePersianLabels;
37
40
  private maskToMilliseconds;
38
41
  private updateMask;
42
+ protected focusHandler(e: AXFocusEvent): void;
43
+ protected blurHandler(e: AXFocusEvent): void;
44
+ protected validateFn: (val: number) => Promise<{
45
+ rule: string;
46
+ result: boolean;
47
+ message: string;
48
+ value: number;
49
+ } | {
50
+ rule: string;
51
+ result: boolean;
52
+ value: number;
53
+ message?: undefined;
54
+ }>;
39
55
  private get __hostName();
40
56
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTimeDurationComponent, never>;
41
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTimeDurationComponent, "ax-time-duration", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "look": { "alias": "look"; "required": false; }; "valueStart": { "alias": "valueStart"; "required": false; "isSignal": true; }; "valueEnd": { "alias": "valueEnd"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "maskDigits": { "alias": "maskDigits"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
57
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTimeDurationComponent, "ax-time-duration", never, { "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "look": { "alias": "look"; "required": false; }; "valueStart": { "alias": "valueStart"; "required": false; "isSignal": true; }; "valueEnd": { "alias": "valueEnd"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "maskDigits": { "alias": "maskDigits"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, never, true, never>;
42
58
  }
43
59
 
44
60
  declare class AXTimeDurationModule {
@@ -0,0 +1,3 @@
1
+ # @acorex/components/tree2
2
+
3
+ Secondary entry point of `@acorex/components`. It can be used by importing from `@acorex/components/tree2`.
@@ -0,0 +1,337 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { AXEvent, AXHtmlEvent, AXValueChangedEvent } from '@acorex/cdk/common';
4
+ import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
5
+
6
+ /**
7
+ * Tree2 Component - Design Tokens
8
+ *
9
+ * The component supports the following CSS custom properties (design tokens):
10
+ *
11
+ * **Layout & Spacing:**
12
+ * - `--ax-comp-tree2-indent-size`: Indentation size for each tree level.
13
+ * Default: `12px`
14
+ * - `--ax-comp-tree2-node-margin`: Vertical margin between nodes.
15
+ * Default: `0.125rem`
16
+ *
17
+ * **Node Styling:**
18
+ * - `--ax-comp-tree2-node-border-radius`: Border radius for tree nodes.
19
+ * Default: `6px`
20
+ * - `--ax-comp-tree2-node-hover-bg`: Background color on node hover.
21
+ * Default: `rgba(var(--ax-sys-color-on-lightest-surface), 0.04)`
22
+ * - `--ax-comp-tree2-node-selected-bg`: Background color for selected nodes.
23
+ * Default: `rgba(var(--ax-sys-color-primary-500), 0.12)`
24
+ *
25
+ * **Tree Lines (with-line look):**
26
+ * - `--ax-comp-tree2-line-color`: Color for tree structure lines.
27
+ * Default: `rgba(var(--ax-sys-color-on-lightest-surface), 0.15)`
28
+ *
29
+ * **Drag & Drop:**
30
+ * - `--ax-comp-tree2-drag-preview-opacity`: Opacity of dragged element preview.
31
+ * Default: `0.9`
32
+ * - `--ax-comp-tree2-drag-placeholder-bg`: Background for drag placeholder.
33
+ * Default: `rgba(var(--ax-sys-color-on-lightest-surface), 0.02)`
34
+ * - `--ax-comp-tree2-drop-active-bg`: Background when hovering over valid drop zone.
35
+ * Default: `rgba(var(--ax-sys-color-primary-500), 0.08)`
36
+ * - `--ax-comp-tree2-drop-active-outline`: Outline color for active drop zones.
37
+ * Default: `rgba(var(--ax-sys-color-primary-500), 0.3)`
38
+ *
39
+ * **Dynamic Tokens (set via TypeScript):**
40
+ * - `--ax-tree-indent-size`: Dynamically set from `indentSize` input
41
+ * - `--ax-tree-line-offset`: Dynamically calculated as `indentSize / 2`
42
+ * - `--ax-tree-line-color`: Optional override for line color
43
+ *
44
+ * @example
45
+ * ```css
46
+ * // Customize tree appearance
47
+ * ax-tree2 {
48
+ * --ax-comp-tree2-indent-size: 16px;
49
+ * --ax-comp-tree2-node-selected-bg: rgba(var(--ax-sys-color-primary-600), 0.15);
50
+ * --ax-comp-tree2-line-color: rgba(var(--ax-sys-color-on-lightest-surface), 0.1);
51
+ * --ax-comp-tree2-node-hover-bg: rgba(var(--ax-sys-color-primary-500), 0.06);
52
+ * }
53
+ * ```
54
+ *
55
+ * @remarks
56
+ * All color tokens use Acorex design system variables (`--ax-sys-color-*`) for automatic
57
+ * light/dark mode support. Colors adapt based on the active theme without additional configuration.
58
+ */
59
+ interface AXTreeBeforeDropEvent extends AXEvent {
60
+ movedNode: AXTreeNode;
61
+ previousParent?: AXTreeNode;
62
+ currentParent?: AXTreeNode;
63
+ previousIndex: number;
64
+ currentIndex: number;
65
+ canceled: boolean;
66
+ }
67
+ interface AXTreeNode {
68
+ id: string;
69
+ label: string;
70
+ icon?: string;
71
+ expanded?: boolean;
72
+ selected?: boolean;
73
+ indeterminate?: boolean;
74
+ disabled?: boolean;
75
+ visible?: boolean;
76
+ children?: AXTreeNode[];
77
+ childrenCount?: number;
78
+ loading?: boolean;
79
+ data?: unknown;
80
+ }
81
+ interface AXTreeNodeToggleEvent extends AXHtmlEvent {
82
+ node: AXTreeNode;
83
+ }
84
+ interface AXTreeNodeSelectEvent extends AXHtmlEvent {
85
+ node: AXTreeNode;
86
+ }
87
+ interface AXTreeDropEvent extends AXEvent {
88
+ node: AXTreeNode;
89
+ previousParent?: AXTreeNode;
90
+ currentParent?: AXTreeNode;
91
+ previousIndex: number;
92
+ currentIndex: number;
93
+ }
94
+ interface AXTreeItemTemplateContext {
95
+ $implicit: AXTreeNode;
96
+ node: AXTreeNode;
97
+ level: number;
98
+ expanded: boolean;
99
+ childrenCount: number;
100
+ loading: boolean;
101
+ }
102
+ type AXTreeViewLook = 'default' | 'card' | 'with-line';
103
+ type AXTreeDragMode = 'none' | 'handler' | 'item';
104
+ type AXTreeDragOperationType = 'order-only' | 'move' | 'both';
105
+
106
+ declare class AXTree2Component {
107
+ #private;
108
+ private readonly ROOT_LIST_ID;
109
+ private readonly NODE_DROP_PREFIX;
110
+ private readonly LIST_PREFIX;
111
+ /** Tree data nodes */
112
+ nodes: _angular_core.ModelSignal<AXTreeNode[]>;
113
+ /** Whether to show checkboxes for selection */
114
+ showCheckbox: _angular_core.InputSignal<boolean>;
115
+ /** Drag and drop mode: 'none' (disabled), 'handler' (drag handle), 'item' (entire item) */
116
+ dragMode: _angular_core.InputSignal<AXTreeDragMode>;
117
+ /** Drag operation type: 'order-only' (reorder only), 'move' (move between parents), 'both' (allow both) */
118
+ dragOperationType: _angular_core.InputSignal<AXTreeDragOperationType>;
119
+ /** Whether to show icons */
120
+ showIcons: _angular_core.InputSignal<boolean>;
121
+ /** Whether to show children count badge */
122
+ showChildrenBadge: _angular_core.InputSignal<boolean>;
123
+ /** Custom icon for expanded nodes */
124
+ expandedIcon: _angular_core.InputSignal<string>;
125
+ /** Custom icon for collapsed nodes */
126
+ collapsedIcon: _angular_core.InputSignal<string>;
127
+ /** Indent size in pixels for each level */
128
+ indentSize: _angular_core.InputSignal<number>;
129
+ /** Node height in pixels */
130
+ nodeHeight: _angular_core.InputSignal<"compact" | "normal" | "comfortable">;
131
+ /** Visual style variant */
132
+ look: _angular_core.InputSignal<AXTreeViewLook>;
133
+ /** Custom template for tree items */
134
+ itemTemplate: _angular_core.InputSignal<TemplateRef<AXTreeItemTemplateContext>>;
135
+ /** Lazy load function for fetching children */
136
+ lazyLoad: _angular_core.InputSignal<(node: AXTreeNode) => Promise<AXTreeNode[]>>;
137
+ /** Whether to enable lazy loading */
138
+ enableLazyLoad: _angular_core.InputSignal<boolean>;
139
+ /** Emitted before a drop operation - set canceled to true to prevent drop */
140
+ onBeforeDrop: _angular_core.OutputEmitterRef<AXTreeBeforeDropEvent>;
141
+ /** Emitted when a node is toggled (expanded/collapsed) */
142
+ onNodeToggle: _angular_core.OutputEmitterRef<AXTreeNodeToggleEvent>;
143
+ /** Emitted when a node is selected/deselected */
144
+ onNodeSelect: _angular_core.OutputEmitterRef<AXTreeNodeSelectEvent>;
145
+ /** Emitted when nodes are reordered within the same parent */
146
+ onOrderChange: _angular_core.OutputEmitterRef<AXTreeDropEvent>;
147
+ /** Emitted when a node is moved to a different parent */
148
+ onMoveChange: _angular_core.OutputEmitterRef<AXTreeDropEvent>;
149
+ /** Emitted for any item change (order or move) */
150
+ onItemsChange: _angular_core.OutputEmitterRef<AXTreeDropEvent>;
151
+ /** Internal signal for tracking loading state */
152
+ protected readonly loadingNodes: _angular_core.WritableSignal<Set<string>>;
153
+ /**
154
+ * Toggle node expansion state with lazy loading support
155
+ */
156
+ toggleNode(node: AXTreeNode, event: Event): Promise<void>;
157
+ /**
158
+ * Load children for a node using lazy loading
159
+ */
160
+ private loadNodeChildren;
161
+ /**
162
+ * Update childrenCount flags for lazy loading
163
+ */
164
+ private updateHasChildrenFlags;
165
+ /**
166
+ * Toggle node selection state with indeterminate support
167
+ */
168
+ toggleSelection(node: AXTreeNode, event: AXValueChangedEvent): void;
169
+ /**
170
+ * Recursively select/deselect all children
171
+ */
172
+ private selectAllChildren;
173
+ /**
174
+ * Update parent node states based on children selection
175
+ */
176
+ private updateParentStates;
177
+ /**
178
+ * Get selection state of children
179
+ */
180
+ private getChildrenSelectionState;
181
+ /**
182
+ * Find parent node of a given node
183
+ */
184
+ private findParentNode;
185
+ /**
186
+ * Handle drop events for tree nodes
187
+ */
188
+ onDrop(event: AXDropListDroppedEvent, parentNode?: AXTreeNode): void;
189
+ /**
190
+ * Handle drop events when dropping directly onto a node (to make it a child)
191
+ */
192
+ onDropOntoNode(event: AXDropListDroppedEvent, targetNode: AXTreeNode): void;
193
+ /**
194
+ * Get array reference by drop list ID
195
+ */
196
+ private getArrayByListId;
197
+ /**
198
+ * Find parent node by list ID
199
+ */
200
+ private findParentByListId;
201
+ /**
202
+ * Find a node by ID in the tree
203
+ */
204
+ private findNodeById;
205
+ /**
206
+ * Check if targetNode is a descendant of ancestorNode (or the same node)
207
+ * Prevents circular references by checking if target exists in ancestor's children tree
208
+ */
209
+ private isNodeDescendantOf;
210
+ /**
211
+ * Generate unique list ID for each node
212
+ */
213
+ getListId(node?: AXTreeNode): string;
214
+ /**
215
+ * Expand all nodes in the tree (with lazy loading support)
216
+ */
217
+ expandAll(): Promise<void>;
218
+ /**
219
+ * Collapse all nodes in the tree
220
+ */
221
+ collapseAll(): void;
222
+ /**
223
+ * Recursively set expanded state (with lazy loading)
224
+ */
225
+ private setExpandedState;
226
+ /**
227
+ * Get count of selected nodes
228
+ */
229
+ getSelectedCount(): number;
230
+ /**
231
+ * Check if any nodes are selected
232
+ */
233
+ hasSelection(): boolean;
234
+ /**
235
+ * Recursively count selected nodes
236
+ */
237
+ private countSelected;
238
+ /**
239
+ * Get all selected nodes
240
+ */
241
+ getSelectedNodes(): AXTreeNode[];
242
+ /**
243
+ * Recursively collect selected nodes
244
+ */
245
+ private collectSelected;
246
+ /**
247
+ * Delete selected nodes from the tree
248
+ */
249
+ deleteSelected(): void;
250
+ /**
251
+ * Select all nodes in the tree
252
+ */
253
+ selectAll(): void;
254
+ /**
255
+ * Deselect all nodes in the tree
256
+ */
257
+ deselectAll(): void;
258
+ /**
259
+ * Find a node by ID in the tree
260
+ */
261
+ findNode(id: string): AXTreeNode | null;
262
+ /**
263
+ * Refresh the tree to trigger change detection
264
+ */
265
+ refresh(): void;
266
+ /**
267
+ * Recursively set selection state for all nodes
268
+ */
269
+ private setAllSelection;
270
+ /**
271
+ * Recursively remove selected nodes
272
+ */
273
+ private removeSelected;
274
+ /**
275
+ * Recursively update all parent states in the tree (used after deletion)
276
+ */
277
+ private updateAllParentStates;
278
+ /**
279
+ * Check if a node is currently loading
280
+ */
281
+ isNodeLoading(nodeId: string): boolean;
282
+ /**
283
+ * Get template context for a node
284
+ */
285
+ getTemplateContext(node: AXTreeNode, level?: number): AXTreeItemTemplateContext;
286
+ /**
287
+ * Check if node should show expand toggle
288
+ */
289
+ shouldShowExpandToggle(node: AXTreeNode): boolean;
290
+ /**
291
+ * Check if node has children
292
+ */
293
+ private hasChildren;
294
+ /**
295
+ * Check if node can be lazy loaded
296
+ */
297
+ private canLazyLoad;
298
+ /**
299
+ * Check if move operation is allowed based on dragOperationType
300
+ */
301
+ private canMoveToParent;
302
+ /**
303
+ * Check if reorder operation is allowed based on dragOperationType
304
+ */
305
+ private canReorder;
306
+ /**
307
+ * Validate if drop target is valid (prevent circular references)
308
+ */
309
+ private isValidDropTarget;
310
+ /**
311
+ * Handle reordering within the same list
312
+ */
313
+ private handleReorder;
314
+ /**
315
+ * Handle moving between different lists
316
+ */
317
+ private handleMove;
318
+ /**
319
+ * Emit beforeDrop event and return whether to continue
320
+ */
321
+ private emitBeforeDropEvent;
322
+ /**
323
+ * Emit drop events based on operation type
324
+ */
325
+ private emitDropEvents;
326
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTree2Component, never>;
327
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTree2Component, "ax-tree2", never, { "nodes": { "alias": "nodes"; "required": true; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "dragMode": { "alias": "dragMode"; "required": false; "isSignal": true; }; "dragOperationType": { "alias": "dragOperationType"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "showChildrenBadge": { "alias": "showChildrenBadge"; "required": false; "isSignal": true; }; "expandedIcon": { "alias": "expandedIcon"; "required": false; "isSignal": true; }; "collapsedIcon": { "alias": "collapsedIcon"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "nodeHeight": { "alias": "nodeHeight"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "lazyLoad": { "alias": "lazyLoad"; "required": false; "isSignal": true; }; "enableLazyLoad": { "alias": "enableLazyLoad"; "required": false; "isSignal": true; }; }, { "nodes": "nodesChange"; "onBeforeDrop": "onBeforeDrop"; "onNodeToggle": "onNodeToggle"; "onNodeSelect": "onNodeSelect"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
328
+ }
329
+
330
+ declare class Tree2Module {
331
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree2Module, never>;
332
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<Tree2Module, never, [typeof AXTree2Component], never>;
333
+ static ɵinj: _angular_core.ɵɵInjectorDeclaration<Tree2Module>;
334
+ }
335
+
336
+ export { AXTree2Component, Tree2Module };
337
+ export type { AXTreeBeforeDropEvent, AXTreeDragMode, AXTreeDragOperationType, AXTreeDropEvent, AXTreeItemTemplateContext, AXTreeNode, AXTreeNodeSelectEvent, AXTreeNodeToggleEvent, AXTreeViewLook };