@acorex/components 21.0.0-next.37 → 21.0.0-next.38

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 (240) hide show
  1. package/accordion/index.d.ts +1 -0
  2. package/button-group/index.d.ts +4 -6
  3. package/chips/index.d.ts +8 -3
  4. package/dialog/index.d.ts +1 -1
  5. package/fesm2022/acorex-components-accordion.mjs +21 -16
  6. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  7. package/fesm2022/acorex-components-action-sheet.mjs +12 -12
  8. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  9. package/fesm2022/acorex-components-alert.mjs +13 -13
  10. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  11. package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
  12. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  13. package/fesm2022/acorex-components-audio-wave.mjs +10 -11
  14. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  15. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  16. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/acorex-components-avatar.mjs +12 -12
  18. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  19. package/fesm2022/acorex-components-badge.mjs +9 -9
  20. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  21. package/fesm2022/acorex-components-bottom-navigation.mjs +11 -11
  22. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  23. package/fesm2022/acorex-components-breadcrumbs.mjs +11 -11
  24. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  25. package/fesm2022/acorex-components-button-group.mjs +19 -23
  26. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  27. package/fesm2022/acorex-components-button.mjs +18 -18
  28. package/fesm2022/acorex-components-button.mjs.map +1 -1
  29. package/fesm2022/acorex-components-calendar.mjs +17 -17
  30. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-check-box.mjs +10 -10
  32. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  33. package/fesm2022/acorex-components-chips.mjs +14 -12
  34. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  35. package/fesm2022/acorex-components-circular-progress.mjs +10 -12
  36. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  37. package/fesm2022/acorex-components-code-editor.mjs +10 -10
  38. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  39. package/fesm2022/acorex-components-collapse.mjs +13 -13
  40. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  41. package/fesm2022/acorex-components-color-box.mjs +9 -9
  42. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  43. package/fesm2022/acorex-components-color-palette.mjs +30 -30
  44. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  45. package/fesm2022/acorex-components-command.mjs +9 -9
  46. package/fesm2022/acorex-components-command.mjs.map +1 -1
  47. package/fesm2022/acorex-components-comment.mjs +32 -32
  48. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  49. package/fesm2022/acorex-components-conversation.mjs +51 -51
  50. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  51. package/fesm2022/acorex-components-conversation2.mjs +186 -186
  52. package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
  53. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  54. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  55. package/fesm2022/acorex-components-data-list.mjs +3 -3
  56. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  57. package/fesm2022/acorex-components-data-pager.mjs +33 -33
  58. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  59. package/fesm2022/acorex-components-data-table.mjs +43 -43
  60. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  61. package/fesm2022/acorex-components-datetime-box.mjs +9 -9
  62. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  63. package/fesm2022/acorex-components-datetime-input.mjs +9 -9
  64. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  65. package/fesm2022/acorex-components-datetime-picker.mjs +9 -9
  66. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  67. package/fesm2022/acorex-components-decorators.mjs +36 -43
  68. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  69. package/fesm2022/acorex-components-dialog.mjs +14 -15
  70. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  71. package/fesm2022/acorex-components-drawer-legacy.mjs +13 -13
  72. package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
  73. package/fesm2022/acorex-components-drawer.mjs +16 -15
  74. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  75. package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
  76. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  77. package/fesm2022/acorex-components-dropdown.mjs +16 -18
  78. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  79. package/fesm2022/acorex-components-editor.mjs +11 -11
  80. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  81. package/fesm2022/acorex-components-file-explorer.mjs +32 -32
  82. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  83. package/fesm2022/acorex-components-flow-chart.mjs +16 -16
  84. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  85. package/fesm2022/acorex-components-form.mjs +24 -32
  86. package/fesm2022/acorex-components-form.mjs.map +1 -1
  87. package/fesm2022/acorex-components-grid-layout-builder.mjs +13 -12
  88. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  89. package/fesm2022/acorex-components-image-editor.mjs +47 -46
  90. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  91. package/fesm2022/acorex-components-image.mjs +9 -9
  92. package/fesm2022/acorex-components-image.mjs.map +1 -1
  93. package/fesm2022/acorex-components-json-viewer.mjs +8 -8
  94. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  95. package/fesm2022/acorex-components-kanban.mjs +6 -8
  96. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  97. package/fesm2022/acorex-components-kbd.mjs +7 -7
  98. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  99. package/fesm2022/acorex-components-label.mjs +9 -9
  100. package/fesm2022/acorex-components-label.mjs.map +1 -1
  101. package/fesm2022/acorex-components-list.mjs +9 -9
  102. package/fesm2022/acorex-components-list.mjs.map +1 -1
  103. package/fesm2022/acorex-components-loading-dialog.mjs +12 -12
  104. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  105. package/fesm2022/acorex-components-loading.mjs +23 -23
  106. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  107. package/fesm2022/acorex-components-map.mjs +289 -31
  108. package/fesm2022/acorex-components-map.mjs.map +1 -1
  109. package/fesm2022/acorex-components-media-viewer.mjs +41 -41
  110. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  111. package/fesm2022/acorex-components-menu.mjs +21 -21
  112. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  113. package/fesm2022/{acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs → acorex-components-modal-acorex-components-modal-iYSPzoLn.mjs} +22 -22
  114. package/fesm2022/acorex-components-modal-acorex-components-modal-iYSPzoLn.mjs.map +1 -0
  115. package/fesm2022/acorex-components-modal-modal-content.component-sZWKhYM-.mjs +212 -0
  116. package/fesm2022/acorex-components-modal-modal-content.component-sZWKhYM-.mjs.map +1 -0
  117. package/fesm2022/acorex-components-modal.mjs +1 -1
  118. package/fesm2022/acorex-components-navbar.mjs +9 -9
  119. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  120. package/fesm2022/acorex-components-notification.mjs +23 -16
  121. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  122. package/fesm2022/acorex-components-number-box-legacy.mjs +9 -9
  123. package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
  124. package/fesm2022/acorex-components-number-box.mjs +9 -9
  125. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  126. package/fesm2022/acorex-components-otp.mjs +9 -9
  127. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  128. package/fesm2022/acorex-components-page.mjs +10 -10
  129. package/fesm2022/acorex-components-page.mjs.map +1 -1
  130. package/fesm2022/acorex-components-paint.mjs +39 -34
  131. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  132. package/fesm2022/acorex-components-password-box.mjs +12 -12
  133. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  134. package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
  135. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  136. package/fesm2022/acorex-components-phone-box.mjs +9 -9
  137. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  138. package/fesm2022/acorex-components-picker.mjs +15 -15
  139. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  140. package/fesm2022/acorex-components-popover.mjs +11 -11
  141. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  142. package/fesm2022/acorex-components-popup.mjs +13 -13
  143. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  144. package/fesm2022/acorex-components-progress-bar.mjs +9 -11
  145. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  147. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  148. package/fesm2022/acorex-components-query-builder.mjs +8 -8
  149. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  150. package/fesm2022/acorex-components-radio.mjs +7 -7
  151. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  152. package/fesm2022/acorex-components-rail-navigation.mjs +36 -38
  153. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  154. package/fesm2022/acorex-components-range-slider.mjs +10 -10
  155. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  156. package/fesm2022/acorex-components-rate-picker.mjs +35 -20
  157. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  158. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  159. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  160. package/fesm2022/acorex-components-result.mjs +8 -8
  161. package/fesm2022/acorex-components-result.mjs.map +1 -1
  162. package/fesm2022/acorex-components-routing-progress.mjs +8 -8
  163. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  164. package/fesm2022/acorex-components-rrule.mjs +9 -9
  165. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  166. package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
  167. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  168. package/fesm2022/acorex-components-scheduler.mjs +43 -43
  169. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  170. package/fesm2022/acorex-components-scss.mjs +4 -4
  171. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  172. package/fesm2022/acorex-components-search-box.mjs +10 -16
  173. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  174. package/fesm2022/acorex-components-select-box.mjs +9 -11
  175. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  176. package/fesm2022/acorex-components-selection-list-2.mjs +11 -11
  177. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  178. package/fesm2022/acorex-components-selection-list.mjs +9 -9
  179. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  180. package/fesm2022/acorex-components-side-menu.mjs +14 -14
  181. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  182. package/fesm2022/acorex-components-skeleton.mjs +8 -8
  183. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  184. package/fesm2022/acorex-components-slider.mjs +10 -10
  185. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  186. package/fesm2022/acorex-components-sliding-item.mjs +14 -14
  187. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  188. package/fesm2022/acorex-components-step-wizard.mjs +14 -14
  189. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  190. package/fesm2022/acorex-components-switch.mjs +14 -14
  191. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  192. package/fesm2022/acorex-components-tabs.mjs +15 -15
  193. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  194. package/fesm2022/acorex-components-tag-box.mjs +9 -9
  195. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  196. package/fesm2022/acorex-components-tag.mjs +9 -9
  197. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  198. package/fesm2022/acorex-components-text-area.mjs +9 -9
  199. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  200. package/fesm2022/acorex-components-text-box.mjs +12 -12
  201. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  202. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  203. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  204. package/fesm2022/acorex-components-time-line.mjs +12 -12
  205. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  206. package/fesm2022/acorex-components-toast.mjs +14 -14
  207. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  208. package/fesm2022/acorex-components-toolbar.mjs +8 -8
  209. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  210. package/fesm2022/acorex-components-tooltip.mjs +11 -11
  211. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  212. package/fesm2022/acorex-components-tree-view-legacy.mjs +511 -0
  213. package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -0
  214. package/fesm2022/acorex-components-tree-view.mjs +1126 -400
  215. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  216. package/fesm2022/acorex-components-uploader.mjs +16 -16
  217. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  218. package/fesm2022/acorex-components-video-player.mjs +7 -7
  219. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  220. package/fesm2022/acorex-components-wysiwyg.mjs +42 -42
  221. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  222. package/fesm2022/acorex-components.mjs.map +1 -1
  223. package/file-explorer/index.d.ts +6 -6
  224. package/grid-layout-builder/index.d.ts +2 -1
  225. package/loading/index.d.ts +1 -1
  226. package/map/index.d.ts +28 -1
  227. package/notification/index.d.ts +2 -0
  228. package/package.json +6 -6
  229. package/paint/index.d.ts +6 -1
  230. package/rate-picker/index.d.ts +15 -5
  231. package/tree-view/index.d.ts +499 -168
  232. package/tree-view-legacy/README.md +3 -0
  233. package/tree-view-legacy/index.d.ts +184 -0
  234. package/fesm2022/acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs.map +0 -1
  235. package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs +0 -214
  236. package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs.map +0 -1
  237. package/fesm2022/acorex-components-tree2.mjs +0 -730
  238. package/fesm2022/acorex-components-tree2.mjs.map +0 -1
  239. package/tree2/README.md +0 -3
  240. package/tree2/index.d.ts +0 -346
@@ -1,184 +1,515 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { EventEmitter, TemplateRef } from '@angular/core';
3
- import * as i4 from '@acorex/cdk/common';
4
- import { AXClickEvent, NXComponent, AXExpandToggleIcons, AXValueChangedEvent } from '@acorex/cdk/common';
5
- import { AXPlatform } from '@acorex/core/platform';
6
- import * as i3 from '@angular/common';
7
- import * as i5 from '@acorex/components/decorators';
8
- import * as i6 from '@acorex/components/check-box';
9
- import * as i7 from '@acorex/components/form';
10
- import * as i8 from '@angular/forms';
11
- import * as i9 from '@acorex/components/tooltip';
12
- import * as i10 from '@acorex/components/loading';
2
+ import { TemplateRef } from '@angular/core';
3
+ import { AXEvent, AXHtmlEvent, AXValueChangedEvent } from '@acorex/cdk/common';
4
+ import { AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';
13
5
 
14
- declare class AXTreeItemClickBaseEvent extends AXClickEvent {
15
- nativeElement: any;
6
+ /**
7
+ * TreeView Component - Design Tokens
8
+ *
9
+ * The component supports the following CSS custom properties (design tokens):
10
+ *
11
+ * **Layout & Spacing:**
12
+ * - `--ax-comp-tree-view-indent-size`: Indentation size for each tree level.
13
+ * Default: `12px`
14
+ * - `--ax-comp-tree-view-node-margin`: Vertical margin between nodes.
15
+ * Default: `0.125rem`
16
+ *
17
+ * **Node Styling:**
18
+ * - `--ax-comp-tree-view-node-border-radius`: Border radius for tree nodes.
19
+ * Default: `6px`
20
+ * - `--ax-comp-tree-view-node-hover-bg`: Background color on node hover.
21
+ * Default: `rgba(var(--ax-sys-color-on-lightest-surface), 0.04)`
22
+ * - `--ax-comp-tree-view-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-tree-view-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-tree-view-drag-preview-opacity`: Opacity of dragged element preview.
31
+ * Default: `0.9`
32
+ * - `--ax-comp-tree-view-drag-placeholder-bg`: Background for drag placeholder.
33
+ * Default: `rgba(var(--ax-sys-color-on-lightest-surface), 0.02)`
34
+ * - `--ax-comp-tree-view-drop-active-bg`: Background when hovering over valid drop zone.
35
+ * Default: `rgba(var(--ax-sys-color-primary-500), 0.08)`
36
+ * - `--ax-comp-tree-view-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-view-indent-size`: Dynamically set from `indentSize` input
41
+ * - `--ax-tree-view-line-offset`: Dynamically calculated as `indentSize / 2`
42
+ * - `--ax-tree-view-line-color`: Optional override for line color
43
+ *
44
+ * @example
45
+ * ```css
46
+ * // Customize tree appearance
47
+ * ax-tree-view {
48
+ * --ax-comp-tree-view-indent-size: 16px;
49
+ * --ax-comp-tree-view-node-selected-bg: rgba(var(--ax-sys-color-primary-600), 0.15);
50
+ * --ax-comp-tree-view-line-color: rgba(var(--ax-sys-color-on-lightest-surface), 0.1);
51
+ * --ax-comp-tree-view-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 AXTreeViewBeforeDropEvent extends AXEvent {
60
+ movedNode: AXTreeViewNode;
61
+ previousParent?: AXTreeViewNode;
62
+ currentParent?: AXTreeViewNode;
63
+ previousIndex: number;
64
+ currentIndex: number;
65
+ canceled: boolean;
16
66
  }
17
- type AXTreeViewSelectionBehavior = 'autoExpand' | 'cascade' | 'indeterminate';
18
- type AXTreeViewExpandBehavior = 'click' | 'dbClick' | 'defult';
19
- type AXTreeViewOperationMethod = 'expand' | 'active' | 'visible' | 'disabled';
20
- type AXTreeViewLook = 'with-line' | 'defult';
21
- type AXTreeViewSelectionScope = 'all' | 'parent' | 'children';
22
- declare abstract class AXTreeViewBase {
23
- abstract getChildren(item: unknown): unknown[];
24
- abstract hasChildren(item: unknown): boolean;
25
- abstract itemTemplate: any;
26
- abstract disableField(): string;
27
- abstract childrenField(): string;
28
- abstract valueField(): string;
29
- abstract activeField(): string;
30
- abstract hasChildField(): string;
31
- abstract tooltipField(): string;
32
- abstract showEmptyNodeMassage(): boolean;
33
- abstract expandOn(): AXTreeViewExpandBehavior;
34
- abstract focusNodeEnabled(): boolean;
35
- abstract toggleIcons(): {
36
- expanded: string;
37
- collapsed: string;
38
- } | null;
39
- abstract itemsPromise: boolean;
40
- abstract itemsSignal(): unknown[];
41
- abstract fetchData(item: unknown): void;
42
- abstract setNodeLoading(value: unknown, loading: boolean): void;
43
- abstract handleUnActiveNode(items: unknown[]): void;
44
- abstract onCollapsedChanged: EventEmitter<{
45
- component: any;
46
- data: unknown;
47
- nativeElement: any;
48
- }>;
49
- abstract onNodeClick: EventEmitter<{
50
- component: any;
51
- data: unknown;
52
- nativeElement: any;
53
- }>;
54
- abstract onNodedbClick: EventEmitter<{
55
- component: any;
56
- data: unknown;
57
- nativeElement: any;
58
- }>;
67
+ interface AXTreeViewNode {
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?: AXTreeViewNode[];
77
+ childrenCount?: number;
78
+ loading?: boolean;
79
+ data?: unknown;
59
80
  }
60
-
61
- declare class AXTreeViewItemComponent extends NXComponent {
62
- constructor();
63
- treeView: AXTreeViewBase;
64
- item: _angular_core.InputSignal<unknown>;
65
- isExpanded: _angular_core.ModelSignal<boolean>;
66
- isActive: _angular_core.ModelSignal<boolean>;
67
- isLoading: _angular_core.InputSignal<boolean>;
68
- executorChanges: _angular_core.InputSignal<AXTreeViewOperationMethod>;
69
- protected platformService: AXPlatform;
70
- protected arrowIcon: _angular_core.Signal<string>;
71
- protected handleArrowNodeClick(): void;
72
- protected handleTextClick(): void;
73
- protected handleTextDbClick(): void;
74
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewItemComponent, never>;
75
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewItemComponent, "ax-tree-view-item", never, { "item": { "alias": "item"; "required": false; "isSignal": true; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "executorChanges": { "alias": "executorChanges"; "required": false; "isSignal": true; }; }, { "isExpanded": "isExpandedChange"; "isActive": "isActiveChange"; }, never, ["ax-check-box", "ax-prefix", "ax-text", "ax-suffix", "*"], true, never>;
81
+ interface AXTreeViewNodeToggleEvent extends AXHtmlEvent {
82
+ node: AXTreeViewNode;
83
+ }
84
+ interface AXTreeViewNodeSelectEvent extends AXHtmlEvent {
85
+ node: AXTreeViewNode;
86
+ }
87
+ interface AXTreeViewDropEvent extends AXEvent {
88
+ node: AXTreeViewNode;
89
+ previousParent?: AXTreeViewNode;
90
+ currentParent?: AXTreeViewNode;
91
+ previousIndex: number;
92
+ currentIndex: number;
93
+ }
94
+ interface AXTreeViewItemTemplateContext {
95
+ $implicit: AXTreeViewNode;
96
+ node: AXTreeViewNode;
97
+ level: number;
98
+ expanded: boolean;
99
+ childrenCount: number;
100
+ loading: boolean;
101
+ }
102
+ type AXTreeViewViewLook = 'default' | 'card' | 'with-line';
103
+ type AXTreeViewDragMode = 'none' | 'handler' | 'item';
104
+ type AXTreeViewDragOperationType = 'order-only' | 'move' | 'both';
105
+ type AXTreeViewSelectMode = 'single' | 'multiple';
106
+ /**
107
+ * Function type for lazy loading tree nodes
108
+ */
109
+ type AXTreeViewCallback = (id?: string) => AXTreeViewNode[] | Promise<AXTreeViewNode[]>;
110
+ /**
111
+ * Data source type - can be static array or lazy loading function
112
+ */
113
+ type AXTreeViewDataSource = AXTreeViewNode[] | AXTreeViewCallback;
114
+ /**
115
+ * Flat node representation for keyboard navigation
116
+ */
117
+ interface AXTreeViewFlatNode {
118
+ node: AXTreeViewNode;
119
+ level: number;
120
+ parent?: AXTreeViewNode;
121
+ }
122
+ /**
123
+ * Children selection state for parent node calculation
124
+ */
125
+ interface AXTreeViewChildrenSelectionState {
126
+ allSelected: boolean;
127
+ someSelected: boolean;
76
128
  }
77
129
 
78
- declare class AXTreeViewComponent extends NXComponent {
130
+ declare class AXTreeViewComponent {
79
131
  #private;
80
- /** @ignore */
81
- private get __hostClass();
82
- itemsSignal: _angular_core.WritableSignal<unknown[]>;
83
- itemsPromise: any;
84
- items: _angular_core.InputSignal<unknown[] | ((selectedItemId?: string | number) => unknown[] | Promise<unknown[]>)>;
85
- protected get resolvedItems(): unknown[];
86
- showCheckbox: _angular_core.InputSignal<boolean>;
87
- hasCheckboxField: _angular_core.InputSignal<string>;
88
- selectionMode: _angular_core.InputSignal<"single" | "multiple">;
89
- selectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
90
- selectionScope: _angular_core.InputSignal<AXTreeViewSelectionScope>;
91
- focusNodeEnabled: _angular_core.InputSignal<boolean>;
92
- valueField: _angular_core.InputSignal<string>;
93
- textField: _angular_core.InputSignal<string>;
94
- visibleField: _angular_core.InputSignal<string>;
95
- disableField: _angular_core.InputSignal<string>;
96
- hasChildField: _angular_core.InputSignal<string>;
97
- selectedField: _angular_core.InputSignal<string>;
98
- expandedField: _angular_core.InputSignal<string>;
99
- tooltipField: _angular_core.InputSignal<string>;
100
- childrenField: _angular_core.InputSignal<string>;
101
- activeField: _angular_core.InputSignal<string>;
102
- indeterminateField: _angular_core.InputSignal<string>;
103
- parentField: _angular_core.InputSignal<string>;
104
- iconField: _angular_core.InputSignal<string>;
105
- toggleIcons: _angular_core.InputSignal<AXExpandToggleIcons>;
106
- look: _angular_core.InputSignal<AXTreeViewLook>;
107
- showEmptyNodeMassage: _angular_core.InputSignal<boolean>;
108
- onSelectionChanged: _angular_core.OutputEmitterRef<AXTreeItemClickBaseEvent>;
109
- onItemSelectedChanged: _angular_core.OutputEmitterRef<AXTreeItemClickBaseEvent>;
110
- onNodeClick: _angular_core.OutputEmitterRef<AXTreeItemClickBaseEvent>;
111
- onCollapsedChanged: _angular_core.OutputEmitterRef<AXTreeItemClickBaseEvent>;
112
- onNodedbClick: _angular_core.OutputEmitterRef<AXTreeItemClickBaseEvent>;
113
- executorChanges: _angular_core.WritableSignal<AXTreeViewOperationMethod>;
114
- itemTemplate?: TemplateRef<unknown>;
115
- emptyTemplate?: TemplateRef<unknown>;
116
- protected platformService: AXPlatform;
117
- expandOn: _angular_core.InputSignal<AXTreeViewExpandBehavior>;
118
- protected handleNodeSelectionClick(event: AXValueChangedEvent, item: unknown): void;
119
- /**
120
- *
121
- * auto expand
122
- *
123
- */
124
- private toggleExpand;
125
- /**
126
- *
127
- * expand and change value parent change
128
- *
129
- */
130
- private expandAndToggleSelection;
131
- private applySelectionToChildren;
132
- /**
133
- *
134
- * indeterminate logic
135
- *
136
- */
137
- private updateParentSelection;
138
- private findParent;
139
- /**
140
- *
141
- * find node selected true for emit Selections
142
- *
143
- */
144
- private findSelectedNodes;
145
- /**
146
- *
147
- * find for emit Selections single mode
148
- *
149
- */
150
- private handleUnSelectNode;
151
- /**
152
- *
153
- * lazy load logic
154
- *
155
- */
156
- fetchData(selectedNode?: unknown): void;
157
- private findNode;
158
- /**
159
- *
160
- * emit when arrow click
161
- *
162
- */
163
- protected handleNodeExpandClick(node: AXTreeItemClickBaseEvent): void;
164
- handleUnActiveNode(unActiveSource: unknown[]): void;
165
- private loadingState;
166
- protected isNodeLoading(nodeId: string | number): boolean;
167
- setNodeLoading(nodeId: string | number, isLoading: boolean): void;
168
- executeOnTreeNode(node: unknown, operation: AXTreeViewOperationMethod, value: boolean): void;
132
+ private readonly treeService;
133
+ private readonly platformService;
134
+ private readonly destroyRef;
135
+ /** Tree data source - can be static array or lazy loading function */
136
+ readonly datasource: _angular_core.ModelSignal<AXTreeViewDataSource>;
137
+ /** Selection mode: 'single' (click to select) or 'multiple' (checkbox selection) */
138
+ readonly selectMode: _angular_core.InputSignal<AXTreeViewSelectMode>;
139
+ /** Whether to show checkboxes for selection (only applies to multiple mode) */
140
+ readonly showCheckbox: _angular_core.InputSignal<boolean>;
141
+ /** When true, selecting a parent also selects all loaded children (only for multiple mode) */
142
+ readonly checkChildrenOnSelect: _angular_core.InputSignal<boolean>;
143
+ /** When true, selecting a child makes parents indeterminate (only for multiple mode) */
144
+ readonly intermediateState: _angular_core.InputSignal<boolean>;
145
+ /** When true, clicking on a node toggles its selection (works for both single and multiple modes) */
146
+ readonly checkOnClick: _angular_core.InputSignal<boolean>;
147
+ /** Drag and drop mode: 'none' (disabled), 'handler' (drag handle), 'item' (entire item) */
148
+ readonly dragMode: _angular_core.InputSignal<AXTreeViewDragMode>;
149
+ /** Drag operation type: 'order-only' (reorder only), 'move' (move between parents), 'both' (allow both) */
150
+ readonly dragOperationType: _angular_core.InputSignal<AXTreeViewDragOperationType>;
151
+ /** Whether to show icons */
152
+ readonly showIcons: _angular_core.InputSignal<boolean>;
153
+ /** Whether to show children count badge */
154
+ readonly showChildrenBadge: _angular_core.InputSignal<boolean>;
155
+ /** Custom icon for expanded nodes */
156
+ readonly expandedIcon: _angular_core.InputSignal<string>;
157
+ /** Custom icon for collapsed nodes */
158
+ readonly collapsedIcon: _angular_core.InputSignal<string>;
159
+ /** Indent size in pixels for each level */
160
+ readonly indentSize: _angular_core.InputSignal<number>;
161
+ /** Node height in pixels */
162
+ readonly nodeHeight: _angular_core.InputSignal<"compact" | "normal" | "comfortable">;
163
+ /** Visual style variant */
164
+ readonly look: _angular_core.InputSignal<AXTreeViewViewLook>;
165
+ /** Custom template for tree items */
166
+ readonly itemTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
167
+ /** Emitted before a drop operation - set canceled to true to prevent drop */
168
+ readonly onBeforeDrop: _angular_core.OutputEmitterRef<AXTreeViewBeforeDropEvent>;
169
+ /** Emitted when a node is toggled (expanded/collapsed) */
170
+ readonly onNodeToggle: _angular_core.OutputEmitterRef<AXTreeViewNodeToggleEvent>;
171
+ /** Emitted when a node is selected/deselected */
172
+ readonly onNodeSelect: _angular_core.OutputEmitterRef<AXTreeViewNodeSelectEvent>;
173
+ /** Emitted when nodes are reordered within the same parent */
174
+ readonly onOrderChange: _angular_core.OutputEmitterRef<AXTreeViewDropEvent>;
175
+ /** Emitted when a node is moved to a different parent */
176
+ readonly onMoveChange: _angular_core.OutputEmitterRef<AXTreeViewDropEvent>;
177
+ /** Emitted for any item change (order or move) */
178
+ readonly onItemsChange: _angular_core.OutputEmitterRef<AXTreeViewDropEvent>;
179
+ /** Internal signal for tree nodes */
180
+ protected readonly nodes: _angular_core.WritableSignal<AXTreeViewNode[]>;
181
+ /** Internal signal for tracking loading state */
182
+ protected readonly loadingNodes: _angular_core.WritableSignal<Set<string>>;
183
+ /** Currently focused node ID for keyboard navigation */
184
+ protected readonly focusedNodeId: _angular_core.WritableSignal<string>;
185
+ /** RTL detection signal */
186
+ protected readonly isRtl: _angular_core.WritableSignal<boolean>;
187
+ /** Computed chevron icons that flip for RTL */
188
+ protected readonly directionExpandedIcon: _angular_core.Signal<string>;
189
+ protected readonly directionCollapsedIcon: _angular_core.Signal<string>;
190
+ /** Flag to prevent infinite loops when syncing datasource */
191
+ private isUpdatingFromDatasource;
192
+ /** Computed to check if datasource is a function */
193
+ private readonly isLazyDataSource;
194
+ /**
195
+ * Expand all nodes in the tree (with lazy loading support)
196
+ */
197
+ expandAll(): Promise<void>;
198
+ /**
199
+ * Collapse all nodes in the tree
200
+ */
201
+ collapseAll(): void;
202
+ /**
203
+ * Get count of selected nodes
204
+ */
205
+ getSelectedCount(): number;
206
+ /**
207
+ * Check if any nodes are selected
208
+ */
209
+ hasSelection(): boolean;
210
+ /**
211
+ * Get all selected nodes
212
+ */
213
+ getSelectedNodes(): AXTreeViewNode[];
214
+ /**
215
+ * Delete selected nodes from the tree
216
+ */
217
+ deleteSelected(): void;
218
+ /**
219
+ * Select all nodes in the tree
220
+ */
221
+ selectAll(): void;
222
+ /**
223
+ * Deselect all nodes in the tree
224
+ */
225
+ deselectAll(): void;
226
+ /**
227
+ * Find a node by ID in the tree
228
+ */
229
+ findNode(id: string): AXTreeViewNode | null;
230
+ /**
231
+ * Refresh the tree to trigger change detection
232
+ */
169
233
  refresh(): void;
170
- setNodeExpandAndChildren(valueFields: (number | string)[], value: boolean): Promise<void>;
171
- private findNodesByValueField;
172
- private expandNodeAndAllChildren;
234
+ /**
235
+ * Check if a node is currently loading
236
+ */
237
+ isNodeLoading(nodeId: string): boolean;
238
+ /**
239
+ * Get template context for a node
240
+ */
241
+ getTemplateContext(node: AXTreeViewNode, level?: number): AXTreeViewItemTemplateContext;
242
+ /**
243
+ * Calculate padding-inline for a node based on its level
244
+ */
245
+ getNodePaddingInline(level: number): number;
246
+ /**
247
+ * Check if node should show expand toggle
248
+ */
249
+ shouldShowExpandToggle(node: AXTreeViewNode): boolean;
250
+ /**
251
+ * Check if checkboxes should be shown (only for multiple mode)
252
+ */
253
+ shouldShowCheckbox(): boolean;
254
+ /**
255
+ * Generate unique list ID for each node
256
+ */
257
+ getListId(node?: AXTreeViewNode): string;
258
+ /**
259
+ * Check if a node is currently focused
260
+ */
261
+ isNodeFocused(nodeId: string): boolean;
262
+ /**
263
+ * Get ARIA level for a node
264
+ */
265
+ getNodeAriaLevel(level: number): number;
266
+ /**
267
+ * Get ARIA expanded state for a node
268
+ */
269
+ getNodeAriaExpanded(node: AXTreeViewNode): string | null;
270
+ /**
271
+ * Get ARIA selected state for a node
272
+ */
273
+ getNodeAriaSelected(node: AXTreeViewNode): string | null;
274
+ /**
275
+ * Handle node click - for single selection mode or multiple mode with checkOnClick enabled
276
+ */
277
+ onNodeClick(node: AXTreeViewNode, event: Event): void;
278
+ /**
279
+ * Toggle node expansion state with lazy loading support
280
+ */
281
+ toggleNode(node: AXTreeViewNode, event: Event): Promise<void>;
282
+ /**
283
+ * Toggle node selection state with indeterminate support (for multiple mode)
284
+ */
285
+ toggleSelection(node: AXTreeViewNode, event: AXValueChangedEvent): void;
286
+ /**
287
+ * Handle drop events for tree nodes
288
+ */
289
+ onDrop(event: AXDropListDroppedEvent, parentNode?: AXTreeViewNode): void;
290
+ /**
291
+ * Handle drop events when dropping directly onto a node (to make it a child)
292
+ */
293
+ onDropOntoNode(event: AXDropListDroppedEvent, targetNode: AXTreeViewNode): void;
294
+ /**
295
+ * Handle node focus event
296
+ */
297
+ onNodeFocus(nodeId: string): void;
298
+ /**
299
+ * Handle tree container focus - focus first node if none is focused
300
+ */
301
+ onTreeFocus(event: FocusEvent): void;
302
+ /**
303
+ * Handle tree container blur
304
+ */
305
+ onTreeBlur(event: FocusEvent): void;
306
+ /**
307
+ * Handle keyboard navigation
308
+ */
309
+ handleKeyDown(event: KeyboardEvent): void;
310
+ /**
311
+ * Load root items when datasource is a function
312
+ */
313
+ private loadRootItems;
314
+ /**
315
+ * Load children for a node using lazy loading
316
+ */
317
+ private loadNodeChildren;
318
+ /**
319
+ * Internal method to refresh nodes signal and sync back to datasource if it's an array
320
+ * Creates new array references for all nested children to ensure reactivity
321
+ */
322
+ private refreshNodes;
323
+ /**
324
+ * Recursively ensure all children arrays have new references to trigger change detection
325
+ * Mutates the tree structure by replacing children arrays with new array references
326
+ */
327
+ private ensureNewArrayReferences;
328
+ /**
329
+ * Handle single selection mode
330
+ */
331
+ private handleSingleSelection;
332
+ /**
333
+ * Handle multiple selection mode with checkOnClick
334
+ */
335
+ private handleMultipleSelection;
336
+ /**
337
+ * Get array reference by drop list ID
338
+ */
339
+ private getArrayByListId;
340
+ /**
341
+ * Find parent node by list ID
342
+ */
343
+ private findParentByListId;
344
+ /**
345
+ * Check if move operation is allowed based on dragOperationType
346
+ */
347
+ private canMoveToParent;
348
+ /**
349
+ * Check if reorder operation is allowed based on dragOperationType
350
+ */
351
+ private canReorder;
352
+ /**
353
+ * Handle reordering within the same list */
354
+ private handleReorder;
355
+ /**
356
+ * Handle moving between different lists
357
+ */
358
+ private handleMove;
359
+ /**
360
+ * Emit beforeDrop event and return whether to continue
361
+ */
362
+ private emitBeforeDropEvent;
363
+ /**
364
+ * Emit drop events based on operation type
365
+ */
366
+ private emitDropEvents;
367
+ /**
368
+ * Get the currently focused node
369
+ */
370
+ private getFocusedNode;
371
+ /**
372
+ * Set focus to a node by ID
373
+ */
374
+ private focusNodeById;
375
+ /**
376
+ * Handle keyboard navigation keys
377
+ */
378
+ private handleNavigationKey;
379
+ /**
380
+ * Handle Space key selection
381
+ */
382
+ private handleSpaceKeySelection;
383
+ /**
384
+ * Handle Enter key selection
385
+ */
386
+ private handleEnterKeySelection;
387
+ /**
388
+ * Handle Ctrl/Cmd + Enter key selection
389
+ */
390
+ private handleCtrlEnterSelection;
391
+ /**
392
+ * Type guard to check if value is an Event
393
+ */
394
+ private isEvent;
395
+ /**
396
+ * Handle errors consistently
397
+ */
398
+ private handleError;
173
399
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewComponent, never>;
174
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "hasCheckboxField": { "alias": "hasCheckboxField"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "selectionScope": { "alias": "selectionScope"; "required": false; "isSignal": true; }; "focusNodeEnabled": { "alias": "focusNodeEnabled"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "visibleField": { "alias": "visibleField"; "required": false; "isSignal": true; }; "disableField": { "alias": "disableField"; "required": false; "isSignal": true; }; "hasChildField": { "alias": "hasChildField"; "required": false; "isSignal": true; }; "selectedField": { "alias": "selectedField"; "required": false; "isSignal": true; }; "expandedField": { "alias": "expandedField"; "required": false; "isSignal": true; }; "tooltipField": { "alias": "tooltipField"; "required": false; "isSignal": true; }; "childrenField": { "alias": "childrenField"; "required": false; "isSignal": true; }; "activeField": { "alias": "activeField"; "required": false; "isSignal": true; }; "indeterminateField": { "alias": "indeterminateField"; "required": false; "isSignal": true; }; "parentField": { "alias": "parentField"; "required": false; "isSignal": true; }; "iconField": { "alias": "iconField"; "required": false; "isSignal": true; }; "toggleIcons": { "alias": "toggleIcons"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "showEmptyNodeMassage": { "alias": "showEmptyNodeMassage"; "required": false; "isSignal": true; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; }; "expandOn": { "alias": "expandOn"; "required": false; "isSignal": true; }; }, { "onSelectionChanged": "onSelectionChanged"; "onItemSelectedChanged": "onItemSelectedChanged"; "onNodeClick": "onNodeClick"; "onCollapsedChanged": "onCollapsedChanged"; "onNodedbClick": "onNodedbClick"; }, never, never, true, never>;
400
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "checkChildrenOnSelect": { "alias": "checkChildrenOnSelect"; "required": false; "isSignal": true; }; "intermediateState": { "alias": "intermediateState"; "required": false; "isSignal": true; }; "checkOnClick": { "alias": "checkOnClick"; "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; }; }, { "datasource": "datasourceChange"; "onBeforeDrop": "onBeforeDrop"; "onNodeToggle": "onNodeToggle"; "onNodeSelect": "onNodeSelect"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
175
401
  }
176
402
 
177
403
  declare class AXTreeViewModule {
178
404
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewModule, never>;
179
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXTreeViewModule, never, [typeof AXTreeViewComponent, typeof AXTreeViewItemComponent, typeof i3.CommonModule, typeof i4.AXCommonModule, typeof i5.AXDecoratorModule, typeof i6.AXCheckBoxModule, typeof i7.AXFormModule, typeof i8.FormsModule, typeof i9.AXTooltipModule, typeof i10.AXLoadingModule], [typeof AXTreeViewComponent, typeof AXTreeViewItemComponent]>;
405
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXTreeViewModule, never, [typeof AXTreeViewComponent], never>;
180
406
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXTreeViewModule>;
181
407
  }
182
408
 
183
- export { AXTreeItemClickBaseEvent, AXTreeViewBase, AXTreeViewComponent, AXTreeViewItemComponent, AXTreeViewModule };
184
- export type { AXTreeViewExpandBehavior, AXTreeViewLook, AXTreeViewOperationMethod, AXTreeViewSelectionBehavior, AXTreeViewSelectionScope };
409
+ /**
410
+ * Service for tree node operations
411
+ * Handles all business logic for tree node manipulation
412
+ */
413
+ declare class AXTreeViewService {
414
+ private static readonly ROOT_LIST_ID;
415
+ private static readonly NODE_DROP_PREFIX;
416
+ private static readonly LIST_PREFIX;
417
+ /**
418
+ * Find a node by ID in the tree
419
+ */
420
+ findNodeById(nodes: AXTreeViewNode[], id: string): AXTreeViewNode | null;
421
+ /**
422
+ * Find parent node of a given node
423
+ */
424
+ findParentNode(nodes: AXTreeViewNode[], targetNode: AXTreeViewNode): AXTreeViewNode | undefined;
425
+ /**
426
+ * Check if targetNode is a descendant of ancestorNode (or the same node)
427
+ * Prevents circular references by checking if target exists in ancestor's children tree
428
+ */
429
+ isValidDropTarget(movedNode: AXTreeViewNode, targetNode: AXTreeViewNode): boolean;
430
+ /**
431
+ * Check if targetNode is a descendant of ancestorNode
432
+ */
433
+ private isNodeDescendantOf;
434
+ /**
435
+ * Build a flat list of all visible focusable nodes
436
+ */
437
+ buildFlatNodeList(nodes: AXTreeViewNode[]): AXTreeViewFlatNode[];
438
+ /**
439
+ * Check if node has children
440
+ */
441
+ hasChildren(node: AXTreeViewNode): boolean;
442
+ /**
443
+ * Check if node can be lazy loaded
444
+ */
445
+ canLazyLoad(node: AXTreeViewNode, isLazyDataSource: boolean): boolean;
446
+ /**
447
+ * Recursively select/deselect all children
448
+ */
449
+ selectAllChildren(children: AXTreeViewNode[], selected: boolean): void;
450
+ /**
451
+ * Get selection state of children
452
+ */
453
+ getChildrenSelectionState(children: AXTreeViewNode[]): AXTreeViewChildrenSelectionState;
454
+ /**
455
+ * Update parent node states based on children selection (with intermediate state support)
456
+ */
457
+ updateParentStates(nodes: AXTreeViewNode[], changedNode: AXTreeViewNode, intermediateState: boolean): void;
458
+ /**
459
+ * Recursively deselect all nodes
460
+ */
461
+ deselectAllNodes(nodes: AXTreeViewNode[]): void;
462
+ /**
463
+ * Recursively set selection state for all nodes
464
+ */
465
+ setAllSelection(nodes: AXTreeViewNode[], selected: boolean): void;
466
+ /**
467
+ * Recursively count selected nodes
468
+ */
469
+ countSelected(nodes: AXTreeViewNode[]): number;
470
+ /**
471
+ * Recursively collect selected nodes
472
+ */
473
+ collectSelected(nodes: AXTreeViewNode[], result: AXTreeViewNode[]): void;
474
+ /**
475
+ * Recursively remove selected nodes
476
+ */
477
+ removeSelected(nodes: AXTreeViewNode[]): void;
478
+ /**
479
+ * Recursively update all parent states in the tree (used after deletion)
480
+ */
481
+ updateAllParentStates(nodes: AXTreeViewNode[], intermediateState: boolean): void;
482
+ /**
483
+ * Recursively set expanded state (with lazy loading)
484
+ */
485
+ setExpandedState(nodes: AXTreeViewNode[], expanded: boolean, isLazyDataSource: boolean, loadNodeChildren: (node: AXTreeViewNode) => Promise<void>): Promise<void>;
486
+ /**
487
+ * Get array reference by drop list ID
488
+ */
489
+ getArrayByListId(nodes: AXTreeViewNode[], listId: string): AXTreeViewNode[] | null;
490
+ /**
491
+ * Find parent node by list ID
492
+ */
493
+ findParentByListId(nodes: AXTreeViewNode[], listId: string): AXTreeViewNode | undefined;
494
+ /**
495
+ * Generate unique list ID for each node
496
+ */
497
+ getListId(node?: AXTreeViewNode): string;
498
+ /**
499
+ * Get root list ID constant
500
+ */
501
+ getRootListId(): string;
502
+ /**
503
+ * Get node drop prefix constant
504
+ */
505
+ getNodeDropPrefix(): string;
506
+ /**
507
+ * Get list prefix constant
508
+ */
509
+ getListPrefix(): string;
510
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewService, never>;
511
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXTreeViewService>;
512
+ }
513
+
514
+ export { AXTreeViewComponent, AXTreeViewModule, AXTreeViewService };
515
+ export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource, AXTreeViewDragMode, AXTreeViewDragOperationType, AXTreeViewDropEvent, AXTreeViewFlatNode, AXTreeViewItemTemplateContext, AXTreeViewNode, AXTreeViewNodeSelectEvent, AXTreeViewNodeToggleEvent, AXTreeViewSelectMode, AXTreeViewViewLook };