@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.
- package/accordion/index.d.ts +0 -1
- package/autocomplete/index.d.ts +23 -9
- package/button/index.d.ts +38 -17
- package/chips/index.d.ts +3 -8
- package/code-editor/README.md +291 -1
- package/code-editor/index.d.ts +260 -12
- package/command/index.d.ts +1 -0
- package/conversation2/README.md +426 -0
- package/conversation2/index.d.ts +6139 -0
- package/data-table/index.d.ts +79 -7
- package/dialog/index.d.ts +1 -1
- package/drawer/README.md +2 -2
- package/drawer/index.d.ts +33 -57
- package/drawer-legacy/README.md +3 -0
- package/drawer-legacy/index.d.ts +86 -0
- package/editor/README.md +3 -0
- package/editor/index.d.ts +79 -0
- package/fesm2022/acorex-components-accordion.mjs +19 -24
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +12 -12
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +14 -14
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs +4 -4
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +12 -11
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +30 -13
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +13 -13
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +10 -10
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +12 -12
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +12 -12
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +17 -19
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +78 -29
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +18 -18
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +11 -11
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +12 -14
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +13 -11
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs +494 -162
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +13 -28
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +11 -11
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +32 -32
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +18 -11
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +34 -34
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +56 -65
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +17641 -0
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -0
- package/fesm2022/acorex-components-cron-job.mjs +53 -53
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +5 -5
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +53 -41
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +462 -105
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +10 -10
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +8 -8
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +11 -11
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +96 -54
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +26 -16
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer-legacy.mjs +218 -0
- package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -0
- package/fesm2022/acorex-components-drawer.mjs +66 -150
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +18 -16
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +195 -0
- package/fesm2022/acorex-components-editor.mjs.map +1 -0
- package/fesm2022/acorex-components-file-explorer.mjs +28 -28
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +18 -18
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +52 -35
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +14 -15
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +166 -126
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +10 -10
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +9 -9
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +9 -7
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +8 -8
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +9 -9
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +10 -10
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +22 -13
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +23 -23
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +16 -15
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +78 -97
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +24 -24
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs → acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs} +24 -24
- package/fesm2022/acorex-components-modal-acorex-components-modal-BmmAkCKJ.mjs.map +1 -0
- package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs +214 -0
- package/fesm2022/acorex-components-modal-modal-content.component-5GqTzNOs.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +9 -9
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +16 -23
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box-legacy.mjs +412 -0
- package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -0
- package/fesm2022/acorex-components-number-box.mjs +98 -331
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +10 -10
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +35 -40
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +13 -13
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +10 -10
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +17 -17
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +12 -12
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +13 -13
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +11 -9
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +8 -8
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +9 -9
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +7 -7
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +40 -38
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +11 -11
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +20 -35
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +8 -8
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +8 -8
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +111 -16
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +2339 -0
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -0
- package/fesm2022/acorex-components-scheduler.mjs +52 -52
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-scss.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +23 -12
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +36 -17
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +10 -10
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +10 -10
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +31 -38
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +8 -8
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +11 -11
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +17 -17
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +16 -16
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +14 -14
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +20 -16
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +51 -21
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +47 -11
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +9 -9
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +13 -13
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +54 -14
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +14 -29
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +14 -14
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +9 -9
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +12 -12
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +16 -45
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-tree2.mjs +689 -0
- package/fesm2022/acorex-components-tree2.mjs.map +1 -0
- package/fesm2022/acorex-components-uploader.mjs +28 -641
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +8 -8
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +213 -462
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/form/index.d.ts +3 -3
- package/grid-layout-builder/index.d.ts +1 -2
- package/image-editor/index.d.ts +8 -5
- package/loading/index.d.ts +1 -1
- package/media-viewer/index.d.ts +2 -3
- package/notification/index.d.ts +0 -2
- package/number-box/README.md +2 -2
- package/number-box/index.d.ts +31 -171
- package/number-box-legacy/README.md +3 -0
- package/number-box-legacy/index.d.ts +191 -0
- package/package.json +53 -26
- package/paint/index.d.ts +1 -6
- package/phone-box/index.d.ts +4 -4
- package/rate-picker/index.d.ts +5 -15
- package/rrule/index.d.ts +96 -1
- package/scheduler-picker/README.md +15 -0
- package/scheduler-picker/index.d.ts +1360 -0
- package/search-box/index.d.ts +6 -1
- package/select-box/index.d.ts +15 -10
- package/side-menu/index.d.ts +3 -2
- package/tag/index.d.ts +8 -2
- package/tag-box/index.d.ts +12 -3
- package/time-duration/index.d.ts +19 -3
- package/tree2/README.md +3 -0
- package/tree2/index.d.ts +337 -0
- package/uploader/index.d.ts +4 -331
- package/wysiwyg/index.d.ts +57 -159
- package/drawer-2/README.md +0 -3
- package/drawer-2/index.d.ts +0 -62
- package/fesm2022/acorex-components-drawer-2.mjs +0 -134
- package/fesm2022/acorex-components-drawer-2.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-acorex-components-modal-h5Y-qcbh.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs +0 -235
- package/fesm2022/acorex-components-modal-modal-content.component-B6tyMLdU.mjs.map +0 -1
- package/fesm2022/acorex-components-number-box-2.mjs +0 -183
- package/fesm2022/acorex-components-number-box-2.mjs.map +0 -1
- package/number-box-2/README.md +0 -3
- package/number-box-2/index.d.ts +0 -41
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-tree2.mjs","sources":["../../../../packages/components/tree2/src/lib/tree2.component.ts","../../../../packages/components/tree2/src/lib/tree2.component.html","../../../../packages/components/tree2/src/lib/tree2.module.ts","../../../../packages/components/tree2/src/acorex-components-tree2.ts"],"sourcesContent":["import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport {\n AXDragDirective,\n AXDragHandleDirective,\n AXDropListDirective,\n AXDropListDroppedEvent,\n moveItemInArray,\n transferArrayItem,\n} from '@acorex/cdk/drag-drop';\nimport { AXBadgeComponent } from '@acorex/components/badge';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewEncapsulation,\n effect,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n AXTreeBeforeDropEvent,\n AXTreeDragMode,\n AXTreeDragOperationType,\n AXTreeDropEvent,\n AXTreeItemTemplateContext,\n AXTreeNode,\n AXTreeNodeSelectEvent,\n AXTreeNodeToggleEvent,\n AXTreeViewLook,\n} from './tree2.types';\n\n@Component({\n selector: 'ax-tree2',\n standalone: true,\n templateUrl: './tree2.component.html',\n styleUrls: ['./tree2.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n FormsModule,\n AXDragDirective,\n AXDragHandleDirective,\n AXDropListDirective,\n NgTemplateOutlet,\n AXButtonComponent,\n AXCheckBoxComponent,\n AXBadgeComponent,\n AXDecoratorIconComponent,\n ],\n host: {\n class: 'ax-tree2',\n '[class.ax-tree2-default]': \"look() === 'default'\",\n '[class.ax-tree2-card]': \"look() === 'card'\",\n '[class.ax-tree2-with-line]': \"look() === 'with-line'\",\n '[style.--ax-tree-indent-size]': \"indentSize() + 'px'\",\n '[style.--ax-tree-line-offset]': \"(indentSize() / 2) + 'px'\",\n },\n})\nexport class AXTree2Component {\n // Constants for list ID generation\n private readonly ROOT_LIST_ID = 'ax-tree-root-list';\n private readonly NODE_DROP_PREFIX = 'ax-tree-node-drop-';\n private readonly LIST_PREFIX = 'ax-tree-list-';\n /** Tree data nodes */\n nodes = model.required<AXTreeNode[]>();\n\n /** Whether to show checkboxes for selection */\n showCheckbox = input(true);\n\n /** Drag and drop mode: 'none' (disabled), 'handler' (drag handle), 'item' (entire item) */\n dragMode = input<AXTreeDragMode>('handler');\n\n /** Drag operation type: 'order-only' (reorder only), 'move' (move between parents), 'both' (allow both) */\n dragOperationType = input<AXTreeDragOperationType>('both');\n\n /** Whether to show icons */\n showIcons = input(true);\n\n /** Whether to show children count badge */\n showChildrenBadge = input(true);\n\n /** Custom icon for expanded nodes */\n expandedIcon = input('fa-solid fa-chevron-down');\n\n /** Custom icon for collapsed nodes */\n collapsedIcon = input('fa-solid fa-chevron-right');\n\n /** Indent size in pixels for each level */\n indentSize = input(12);\n\n /** Node height in pixels */\n nodeHeight = input<'compact' | 'normal' | 'comfortable'>('normal');\n\n /** Visual style variant */\n look = input<AXTreeViewLook>('default');\n\n /** Custom template for tree items */\n itemTemplate = input<TemplateRef<AXTreeItemTemplateContext>>();\n\n /** Lazy load function for fetching children */\n lazyLoad = input<(node: AXTreeNode) => Promise<AXTreeNode[]>>();\n\n /** Whether to enable lazy loading */\n enableLazyLoad = input(false);\n\n /** Emitted before a drop operation - set canceled to true to prevent drop */\n onBeforeDrop = output<AXTreeBeforeDropEvent>();\n\n /** Emitted when a node is toggled (expanded/collapsed) */\n onNodeToggle = output<AXTreeNodeToggleEvent>();\n\n /** Emitted when a node is selected/deselected */\n onNodeSelect = output<AXTreeNodeSelectEvent>();\n\n /** Emitted when nodes are reordered within the same parent */\n onOrderChange = output<AXTreeDropEvent>();\n\n /** Emitted when a node is moved to a different parent */\n onMoveChange = output<AXTreeDropEvent>();\n\n /** Emitted for any item change (order or move) */\n onItemsChange = output<AXTreeDropEvent>();\n\n /** Internal signal for tracking loading state */\n protected readonly loadingNodes = signal<Set<string>>(new Set());\n\n /** Effect to handle lazy load function changes */\n #lazyLoadEffect = effect(() => {\n const lazyLoadFn = this.lazyLoad();\n const enabled = this.enableLazyLoad();\n if (lazyLoadFn && enabled) {\n // Initialize lazy loading state\n this.updateHasChildrenFlags(this.nodes());\n }\n });\n\n /**\n * Toggle node expansion state with lazy loading support\n */\n async toggleNode(node: AXTreeNode, event: Event): Promise<void> {\n if (node.disabled) return;\n\n const hasChildren = this.hasChildren(node);\n const canLazyLoad = this.canLazyLoad(node);\n\n if (hasChildren || canLazyLoad) {\n const willExpand = !node.expanded;\n\n if (willExpand && canLazyLoad) {\n // Lazy load children before expanding\n await this.loadNodeChildren(node);\n }\n\n node.expanded = willExpand;\n this.nodes.set([...this.nodes()]);\n this.onNodeToggle.emit({ component: this, node, nativeEvent: event });\n }\n }\n\n /**\n * Load children for a node using lazy loading\n */\n private async loadNodeChildren(node: AXTreeNode): Promise<void> {\n const lazyLoadFn = this.lazyLoad();\n if (!lazyLoadFn || node.loading) return;\n\n try {\n node.loading = true;\n this.loadingNodes.update((set) => new Set(set).add(node.id));\n this.nodes.set([...this.nodes()]);\n\n const children = await lazyLoadFn(node);\n node.children = children;\n node.childrenCount = children.length;\n } catch (error) {\n console.error('Failed to load children:', error);\n node.childrenCount = 0;\n } finally {\n node.loading = false;\n this.loadingNodes.update((set) => {\n const newSet = new Set(set);\n newSet.delete(node.id);\n return newSet;\n });\n this.nodes.set([...this.nodes()]);\n }\n }\n\n /**\n * Update childrenCount flags for lazy loading\n */\n private updateHasChildrenFlags(nodes: AXTreeNode[]): void {\n nodes.forEach((node) => {\n if (node.childrenCount === undefined && !node.children) {\n node.childrenCount = 0;\n }\n if (node.children) {\n this.updateHasChildrenFlags(node.children);\n }\n });\n }\n\n /**\n * Toggle node selection state with indeterminate support\n */\n toggleSelection(node: AXTreeNode, event: AXValueChangedEvent): void {\n // CRITICAL: Only process if this is a real user interaction\n // Prevents cascade when parent state changes trigger checkbox ngModelChange\n if (!event.isUserInteraction) {\n return;\n }\n\n // Handle null value (indeterminate state clicked) - treat as select\n const newValue = event.value === null ? true : event.value;\n\n node.selected = newValue;\n node.indeterminate = false; // Clear indeterminate when explicitly toggled\n\n // Select/deselect all children recursively\n if (node.children) {\n this.selectAllChildren(node.children, newValue);\n }\n\n // Update parent states up the tree\n this.updateParentStates(this.nodes(), node);\n\n this.nodes.set([...this.nodes()]);\n this.onNodeSelect.emit({\n component: this,\n node,\n isUserInteraction: event.isUserInteraction,\n });\n }\n\n /**\n * Recursively select/deselect all children\n */\n private selectAllChildren(children: AXTreeNode[], selected: boolean): void {\n children.forEach((child) => {\n child.selected = selected;\n child.indeterminate = false;\n if (child.children) {\n this.selectAllChildren(child.children, selected);\n }\n });\n }\n\n /**\n * Update parent node states based on children selection\n */\n private updateParentStates(nodes: AXTreeNode[], changedNode: AXTreeNode): void {\n const parent = this.findParentNode(nodes, changedNode);\n if (!parent || !parent.children) return;\n\n const { allSelected, someSelected } = this.getChildrenSelectionState(parent.children);\n\n if (allSelected) {\n // All children selected → parent is selected\n parent.selected = true;\n parent.indeterminate = false;\n } else if (someSelected) {\n // Some children selected → parent is indeterminate\n // Keep selected=true to maintain consistent state and prevent issues with deleteSelected()\n parent.selected = true;\n parent.indeterminate = true;\n } else {\n // No children selected → parent is unselected\n parent.selected = false;\n parent.indeterminate = false;\n }\n\n // Recursively update grandparents\n this.updateParentStates(nodes, parent);\n }\n\n /**\n * Get selection state of children\n */\n private getChildrenSelectionState(children: AXTreeNode[]): { allSelected: boolean; someSelected: boolean } {\n let selectedCount = 0;\n let indeterminateCount = 0;\n\n children.forEach((child) => {\n // Only count fully selected children (not indeterminate)\n if (child.selected && !child.indeterminate) selectedCount++;\n if (child.indeterminate) indeterminateCount++;\n });\n\n const allSelected = selectedCount === children.length;\n const someSelected = selectedCount > 0 || indeterminateCount > 0;\n\n return { allSelected, someSelected };\n }\n\n /**\n * Find parent node of a given node\n */\n private findParentNode(nodes: AXTreeNode[], targetNode: AXTreeNode): AXTreeNode | undefined {\n for (const node of nodes) {\n if (node.children?.some((child) => child.id === targetNode.id)) {\n return node;\n }\n if (node.children) {\n const found = this.findParentNode(node.children, targetNode);\n if (found) return found;\n }\n }\n return undefined;\n }\n\n /**\n * Handle drop events for tree nodes\n */\n onDrop(event: AXDropListDroppedEvent, parentNode?: AXTreeNode): void {\n const targetArray = parentNode?.children ?? this.nodes();\n const isReordering = event.previousContainer === event.container;\n\n if (isReordering) {\n this.handleReorder(event, targetArray, parentNode);\n } else {\n this.handleMove(event, targetArray, parentNode);\n }\n\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Handle drop events when dropping directly onto a node (to make it a child)\n */\n onDropOntoNode(event: AXDropListDroppedEvent, targetNode: AXTreeNode): void {\n if (!this.canMoveToParent()) return;\n\n const sourceListId = event.previousContainer.element.id;\n const sourceArray = this.getArrayByListId(sourceListId);\n if (!sourceArray) return;\n\n const movedNode = sourceArray[event.previousIndex];\n\n if (!this.isValidDropTarget(movedNode, targetNode)) return;\n if (!this.emitBeforeDropEvent(movedNode, sourceListId, targetNode, event.previousIndex, 0)) return;\n\n // Initialize children array and perform transfer\n targetNode.children ??= [];\n sourceArray.splice(event.previousIndex, 1);\n targetNode.children.unshift(movedNode);\n targetNode.expanded = true;\n\n // Emit events\n this.emitDropEvents(movedNode, this.findParentByListId(sourceListId), targetNode, event.previousIndex, 0, false);\n\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Get array reference by drop list ID\n */\n private getArrayByListId(listId: string): AXTreeNode[] | null {\n if (listId === this.ROOT_LIST_ID) {\n return this.nodes();\n }\n\n if (listId.startsWith(this.NODE_DROP_PREFIX)) {\n const nodeId = listId.replace(this.NODE_DROP_PREFIX, '');\n const node = this.findNodeById(this.nodes(), nodeId);\n return node ? [node] : null;\n }\n\n const nodeId = listId.replace(this.LIST_PREFIX, '');\n const node = this.findNodeById(this.nodes(), nodeId);\n return node?.children ?? null;\n }\n\n /**\n * Find parent node by list ID\n */\n private findParentByListId(listId: string): AXTreeNode | undefined {\n if (listId === this.ROOT_LIST_ID) {\n return undefined;\n }\n\n const prefix = listId.startsWith(this.NODE_DROP_PREFIX) ? this.NODE_DROP_PREFIX : this.LIST_PREFIX;\n const nodeId = listId.replace(prefix, '');\n return this.findNodeById(this.nodes(), nodeId) ?? undefined;\n }\n\n /**\n * Find a node by ID in the tree\n */\n private findNodeById(nodes: AXTreeNode[], id: string): AXTreeNode | null {\n for (const node of nodes) {\n if (node.id === id) return node;\n if (node.children) {\n const found = this.findNodeById(node.children, id);\n if (found) return found;\n }\n }\n return null;\n }\n\n /**\n * Check if targetNode is a descendant of ancestorNode (or the same node)\n * Prevents circular references by checking if target exists in ancestor's children tree\n */\n private isNodeDescendantOf(targetNode: AXTreeNode, ancestorNode: AXTreeNode): boolean {\n // First check: prevent dropping a node into itself\n if (targetNode.id === ancestorNode.id) {\n return true;\n }\n\n if (!ancestorNode.children || ancestorNode.children.length === 0) {\n return false;\n }\n\n for (const child of ancestorNode.children) {\n // Direct child match\n if (child.id === targetNode.id) {\n return true;\n }\n // Recursive check in deeper levels\n if (this.isNodeDescendantOf(targetNode, child)) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Generate unique list ID for each node\n */\n getListId(node?: AXTreeNode): string {\n return node ? `${this.LIST_PREFIX}${node.id}` : this.ROOT_LIST_ID;\n }\n\n /**\n * Expand all nodes in the tree (with lazy loading support)\n */\n async expandAll(): Promise<void> {\n await this.setExpandedState(this.nodes(), true);\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Collapse all nodes in the tree\n */\n collapseAll(): void {\n this.setExpandedState(this.nodes(), false);\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Recursively set expanded state (with lazy loading)\n */\n private async setExpandedState(nodes: AXTreeNode[], expanded: boolean): Promise<void> {\n for (const node of nodes) {\n const hasChildren = this.hasChildren(node);\n const canLazyLoad = this.canLazyLoad(node);\n\n if (hasChildren || canLazyLoad) {\n if (expanded && canLazyLoad) {\n await this.loadNodeChildren(node);\n }\n node.expanded = expanded;\n if (node.children) {\n await this.setExpandedState(node.children, expanded);\n }\n }\n }\n }\n\n /**\n * Get count of selected nodes\n */\n getSelectedCount(): number {\n return this.countSelected(this.nodes());\n }\n\n /**\n * Check if any nodes are selected\n */\n hasSelection(): boolean {\n return this.getSelectedCount() > 0;\n }\n\n /**\n * Recursively count selected nodes\n */\n private countSelected(nodes: AXTreeNode[]): number {\n let count = 0;\n nodes.forEach((node) => {\n if (node.selected) count++;\n if (node.children) {\n count += this.countSelected(node.children);\n }\n });\n return count;\n }\n\n /**\n * Get all selected nodes\n */\n getSelectedNodes(): AXTreeNode[] {\n const selected: AXTreeNode[] = [];\n this.collectSelected(this.nodes(), selected);\n return selected;\n }\n\n /**\n * Recursively collect selected nodes\n */\n private collectSelected(nodes: AXTreeNode[], result: AXTreeNode[]): void {\n nodes.forEach((node) => {\n if (node.selected) result.push(node);\n if (node.children) {\n this.collectSelected(node.children, result);\n }\n });\n }\n\n /**\n * Delete selected nodes from the tree\n */\n deleteSelected(): void {\n this.removeSelected(this.nodes());\n // Update all parent states after deletion to clear stale indeterminate states\n this.updateAllParentStates(this.nodes());\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Select all nodes in the tree\n */\n selectAll(): void {\n this.setAllSelection(this.nodes(), true);\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Deselect all nodes in the tree\n */\n deselectAll(): void {\n this.setAllSelection(this.nodes(), false);\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Find a node by ID in the tree\n */\n findNode(id: string): AXTreeNode | null {\n return this.findNodeById(this.nodes(), id);\n }\n\n /**\n * Refresh the tree to trigger change detection\n */\n refresh(): void {\n this.nodes.set([...this.nodes()]);\n }\n\n /**\n * Recursively set selection state for all nodes\n */\n private setAllSelection(nodes: AXTreeNode[], selected: boolean): void {\n nodes.forEach((node) => {\n node.selected = selected;\n node.indeterminate = false;\n if (node.children) {\n this.setAllSelection(node.children, selected);\n }\n });\n }\n\n /**\n * Recursively remove selected nodes\n */\n private removeSelected(nodes: AXTreeNode[]): void {\n for (let i = nodes.length - 1; i >= 0; i--) {\n // Only delete nodes that are fully selected (not indeterminate)\n // Indeterminate parents should not be deleted\n if (nodes[i].selected && !nodes[i].indeterminate) {\n nodes.splice(i, 1);\n } else if (nodes[i].children) {\n this.removeSelected(nodes[i].children ?? []);\n }\n }\n }\n\n /**\n * Recursively update all parent states in the tree (used after deletion)\n */\n private updateAllParentStates(nodes: AXTreeNode[]): void {\n nodes.forEach((node) => {\n if (node.children && node.children.length > 0) {\n // First, recursively update nested children (bottom-up)\n this.updateAllParentStates(node.children);\n\n // Then update this node's state based on its children\n const { allSelected, someSelected } = this.getChildrenSelectionState(node.children);\n\n if (allSelected) {\n node.selected = true;\n node.indeterminate = false;\n } else if (someSelected) {\n node.selected = true;\n node.indeterminate = true;\n } else {\n node.selected = false;\n node.indeterminate = false;\n }\n }\n });\n }\n\n /**\n * Check if a node is currently loading\n */\n isNodeLoading(nodeId: string): boolean {\n return this.loadingNodes().has(nodeId);\n }\n\n /**\n * Get template context for a node\n */\n getTemplateContext(node: AXTreeNode, level = 0): AXTreeItemTemplateContext {\n return {\n $implicit: node,\n node,\n level,\n expanded: node.expanded ?? false,\n childrenCount: node.childrenCount ?? node.children?.length ?? 0,\n loading: node.loading ?? false,\n };\n }\n\n /**\n * Check if node should show expand toggle\n */\n shouldShowExpandToggle(node: AXTreeNode): boolean {\n return this.hasChildren(node) || this.canLazyLoad(node);\n }\n\n // Helper methods for improved code reusability\n\n /**\n * Check if node has children\n */\n private hasChildren(node: AXTreeNode): boolean {\n return Boolean(node.children?.length);\n }\n\n /**\n * Check if node can be lazy loaded\n */\n private canLazyLoad(node: AXTreeNode): boolean {\n return this.enableLazyLoad() && Boolean(node.childrenCount && node.childrenCount > 0 && !this.hasChildren(node));\n }\n\n /**\n * Check if move operation is allowed based on dragOperationType\n */\n private canMoveToParent(): boolean {\n if (this.dragOperationType() === 'order-only') {\n console.warn('Moving between parents is disabled when dragOperationType is \"order-only\"');\n return false;\n }\n return true;\n }\n\n /**\n * Check if reorder operation is allowed based on dragOperationType\n */\n private canReorder(): boolean {\n if (this.dragOperationType() === 'move') {\n console.warn('Reordering is disabled when dragOperationType is \"move\"');\n return false;\n }\n return true;\n }\n\n /**\n * Validate if drop target is valid (prevent circular references)\n */\n private isValidDropTarget(movedNode: AXTreeNode, targetNode: AXTreeNode): boolean {\n if (movedNode.id === targetNode.id || this.isNodeDescendantOf(targetNode, movedNode)) {\n console.warn('Cannot drop a node onto itself or its descendants');\n return false;\n }\n return true;\n }\n\n /**\n * Handle reordering within the same list\n */\n private handleReorder(event: AXDropListDroppedEvent, targetArray: AXTreeNode[], parentNode?: AXTreeNode): void {\n if (!this.canReorder()) return;\n\n const movedNode = targetArray[event.previousIndex];\n moveItemInArray(targetArray, event.previousIndex, event.currentIndex);\n\n this.emitDropEvents(movedNode, parentNode, parentNode, event.previousIndex, event.currentIndex, true);\n }\n\n /**\n * Handle moving between different lists\n */\n private handleMove(event: AXDropListDroppedEvent, targetArray: AXTreeNode[], parentNode?: AXTreeNode): void {\n if (!this.canMoveToParent()) return;\n\n const sourceListId = event.previousContainer.element.id;\n const sourceArray = this.getArrayByListId(sourceListId);\n if (!sourceArray) return;\n\n const movedNode = sourceArray[event.previousIndex];\n\n // Prevent circular references\n if (parentNode && !this.isValidDropTarget(movedNode, parentNode)) return;\n\n // Check if user wants to cancel\n if (!this.emitBeforeDropEvent(movedNode, sourceListId, parentNode, event.previousIndex, event.currentIndex)) {\n return;\n }\n\n transferArrayItem(sourceArray, targetArray, event.previousIndex, event.currentIndex);\n\n this.emitDropEvents(\n movedNode,\n this.findParentByListId(sourceListId),\n parentNode,\n event.previousIndex,\n event.currentIndex,\n false,\n );\n }\n\n /**\n * Emit beforeDrop event and return whether to continue\n */\n private emitBeforeDropEvent(\n movedNode: AXTreeNode,\n sourceListId: string,\n currentParent: AXTreeNode | undefined,\n previousIndex: number,\n currentIndex: number,\n ): boolean {\n const beforeDropEvent: AXTreeBeforeDropEvent = {\n component: this,\n movedNode,\n previousParent: this.findParentByListId(sourceListId),\n currentParent,\n previousIndex,\n currentIndex,\n canceled: false,\n };\n this.onBeforeDrop.emit(beforeDropEvent);\n\n if (beforeDropEvent.canceled) {\n console.warn('Drop canceled by user in onBeforeDrop event');\n return false;\n }\n return true;\n }\n\n /**\n * Emit drop events based on operation type\n */\n private emitDropEvents(\n node: AXTreeNode,\n previousParent: AXTreeNode | undefined,\n currentParent: AXTreeNode | undefined,\n previousIndex: number,\n currentIndex: number,\n isReorder: boolean,\n ): void {\n const dropEvent: AXTreeDropEvent = {\n component: this,\n node,\n previousParent,\n currentParent,\n previousIndex,\n currentIndex,\n };\n\n if (isReorder) {\n this.onOrderChange.emit(dropEvent);\n } else {\n this.onMoveChange.emit(dropEvent);\n }\n this.onItemsChange.emit(dropEvent);\n }\n}\n","<!-- Root drop list -->\n<div\n [axDropList]=\"dragMode() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree2-drop-list\"\n [class.ax-tree2-card]=\"look() === 'card'\"\n [class.ax-tree2-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree2-compact]=\"nodeHeight() === 'compact'\"\n [class.ax-tree2-comfortable]=\"nodeHeight() === 'comfortable'\"\n>\n @for (node of nodes(); track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> ⋮⋮ </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n</div>\n\n<!-- Recursive children template -->\n<ng-template #childrenList let-children=\"children\" let-parent=\"parent\" let-level=\"level\">\n <div\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"parent.id\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree2-drop-list\"\n >\n @for (node of children; track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [style.padding-left.px]=\"(level * indentSize()) / (look() === 'with-line' ? 3 : 1)\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> ⋮⋮ </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { AXTree2Component } from './tree2.component';\n\n@NgModule({\n imports: [AXTree2Component],\n})\nexport class Tree2Module {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|