@acorex/components 22.2.8 → 22.2.10

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 (45) hide show
  1. package/fesm2022/acorex-components-audio-wave.mjs +26 -5
  2. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  3. package/fesm2022/acorex-components-combo-box.mjs +12 -2
  4. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  5. package/fesm2022/{acorex-components-conversation-acorex-components-conversation-CjuzzYML.mjs → acorex-components-conversation-acorex-components-conversation-CXf00kvo.mjs} +897 -148
  6. package/fesm2022/acorex-components-conversation-acorex-components-conversation-CXf00kvo.mjs.map +1 -0
  7. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs +87 -0
  8. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-COT96F_v.mjs.map +1 -0
  9. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-r-53kDO7.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DZINTie8.mjs} +2 -2
  10. package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-r-53kDO7.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DZINTie8.mjs.map} +1 -1
  11. package/fesm2022/acorex-components-conversation.mjs +1 -1
  12. package/fesm2022/acorex-components-cron-job.mjs +1 -1
  13. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  14. package/fesm2022/acorex-components-datetime-picker.mjs +1 -1
  15. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  16. package/fesm2022/acorex-components-decorators.mjs +36 -6
  17. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  18. package/fesm2022/acorex-components-file-viewer.mjs +145 -66
  19. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  20. package/fesm2022/acorex-components-image-editor.mjs +87 -8
  21. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  22. package/fesm2022/acorex-components-lookup.mjs +20 -2
  23. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  24. package/fesm2022/acorex-components-menu.mjs +96 -16
  25. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  26. package/fesm2022/acorex-components-rest-api-generator.mjs +1 -1
  27. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  28. package/fesm2022/acorex-components-tabs.mjs +225 -20
  29. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  30. package/fesm2022/acorex-components-tree-view.mjs +36 -4
  31. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  32. package/package.json +3 -3
  33. package/types/acorex-components-audio-wave.d.ts +8 -0
  34. package/types/acorex-components-combo-box.d.ts +4 -0
  35. package/types/acorex-components-conversation.d.ts +121 -11
  36. package/types/acorex-components-decorators.d.ts +13 -1
  37. package/types/acorex-components-file-viewer.d.ts +6 -0
  38. package/types/acorex-components-image-editor.d.ts +15 -0
  39. package/types/acorex-components-lookup.d.ts +4 -0
  40. package/types/acorex-components-menu.d.ts +15 -3
  41. package/types/acorex-components-tabs.d.ts +91 -17
  42. package/types/acorex-components-tree-view.d.ts +17 -0
  43. package/fesm2022/acorex-components-conversation-acorex-components-conversation-CjuzzYML.mjs.map +0 -1
  44. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-AO1evM19.mjs +0 -85
  45. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-AO1evM19.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-tabs.mjs","sources":["../../../../packages/components/tabs/src/lib/tab-content.directive.ts","../../../../packages/components/tabs/src/lib/tab-item.component.ts","../../../../packages/components/tabs/src/lib/tabs.class.ts","../../../../packages/components/tabs/src/lib/tabs.component.ts","../../../../packages/components/tabs/src/lib/tabs.module.ts","../../../../packages/components/tabs/src/acorex-components-tabs.ts"],"sourcesContent":["import { Directive, TemplateRef, ViewContainerRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[axTabContent]',\n exportAs: 'axTabContent',\n inputs: ['portal: axTabContent'],\n})\nexport class AXTabContentDirective {\n private _viewContainerRef = inject(ViewContainerRef);\n\n private _portal: TemplateRef<any> | undefined;\n public get portal(): TemplateRef<any> | undefined {\n return this._portal;\n }\n public set portal(v: TemplateRef<any> | undefined) {\n if (v) {\n this._portal = v;\n this._viewContainerRef.clear();\n this._viewContainerRef.createEmbeddedView(v, null, 0);\n }\n }\n}\n","import { AXDragDirective } from '@acorex/cdk/drag-drop';\nimport { AXClickEvent, AXComponent, MXComponentOptionChanged, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n * @category\n * Represents an individual tab item in a tab component.\n */\n@Component({\n selector: 'ax-tab-item',\n hostDirectives: [\n {\n directive: AXDragDirective,\n inputs: ['dragStartDelay', 'dragClonedTemplate'],\n },\n ],\n template: `\n @if (headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n text: this.text,\n key: this.key,\n active: this.active,\n disabled: this.disabled,\n },\n }\"\n ></ng-container>\n } @else {\n <div>\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-tab-item-text\">{{ text }}</div>\n </div>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n <ng-template #content>\n <ng-content select=\"ax-content\"> </ng-content>\n </ng-template>\n `,\n\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n outputs: ['disabledChange', 'onClick', 'onBlur', 'onFocus'],\n host: { ngSkipHydration: 'true' },\n imports: [NgTemplateOutlet],\n providers: [{ provide: AXComponent, useExisting: AXTabItemComponent }],\n})\nexport class AXTabItemComponent extends MXInteractiveComponent {\n private readonly _drag = inject(AXDragDirective, { self: true });\n\n private _reorderEnabled = false;\n private _panTouchAction: 'none' | 'pan-x' | 'pan-y' = 'none';\n\n constructor() {\n super();\n this._drag.isDragDisabled.set(true);\n this._drag.dragCursorOverride.set('none');\n }\n\n /**\n * Defines the text content to be displayed within the component.\n */\n @Input()\n text: string;\n\n /**\n * Defines a unique identifier for the component instance.\n */\n @Input()\n key: string;\n\n @ViewChild('content')\n template: TemplateRef<unknown>;\n\n /**\n * Defines a custom template for the component's header.\n */\n @Input()\n headerTemplate: TemplateRef<unknown>;\n\n /**\n * Emits an event when the `active` state of the component changes.\n * @event\n */\n @Output()\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * Emits an event when the component is clicked.\n * @event\n */\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n /** @ignore */\n private _active = false;\n\n /**\n * Gets or sets the component's active state, controlling its behavior and appearance.\n * @param value {boolean}\n */\n @Input()\n public get active(): boolean {\n return this._active;\n }\n public set active(value: boolean) {\n this.setOption({\n name: 'active',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /** @ignore */\n setReorderEnabled(\n enabled: boolean,\n delay = 0,\n touchAction: 'none' | 'pan-x' | 'pan-y' = 'none',\n ): void {\n this._reorderEnabled = enabled;\n this._panTouchAction = touchAction;\n this._drag.startDelay.set(enabled ? delay : 0);\n this._drag.dragTouchAction.set(touchAction);\n this._drag.dragCursorOverride.set(enabled ? 'grab' : 'none');\n this.updateDragState();\n }\n\n /** @ignore */\n private updateDragState(): void {\n this._drag.isDragDisabled.set(!this._reorderEnabled || this.disabled);\n this.applyScrollTouchAction();\n }\n\n /** @ignore */\n private applyScrollTouchAction(): void {\n const handle = this.getHostElement();\n if (this._reorderEnabled) {\n return;\n }\n\n if (this._panTouchAction !== 'none') {\n handle.style.touchAction = this._panTouchAction;\n } else {\n handle.style.removeProperty('touch-action');\n }\n }\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.getHostElement().scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n\n /**\n * @ignore\n */\n protected override internalOptionChanged(option: MXComponentOptionChanged<any>): void {\n //TODO: change to hostbind\n const classListRef = this.getHostElement().classList;\n if (option.name == 'disabled') {\n option.value ? classListRef.add('ax-state-disabled') : classListRef.remove('ax-state-disabled');\n this.updateDragState();\n }\n if (option.name == 'active') {\n option.value ? classListRef.add('ax-state-active') : classListRef.remove('ax-state-active');\n }\n }\n\n /**\n * Gets the component's position and size statistics.\n *\n * @returns object with width, height, left, and top properties\n */\n getStats() {\n return {\n width: this.getHostElement().offsetWidth,\n height: this.getHostElement().offsetHeight,\n left: this.getHostElement().offsetLeft,\n top: this.getHostElement().offsetTop,\n };\n }\n}\n","import { AXEvent } from '@acorex/cdk/common';\nimport { AXTabItemComponent } from './tab-item.component';\n\nexport class AXTabStripChangedEvent extends AXEvent {\n tab: AXTabItemComponent;\n index: number;\n}\n\n/** Event emitted when tab items are reordered via drag and drop. */\nexport class AXTabsReorderedEvent extends AXEvent {\n tab: AXTabItemComponent;\n previousIndex: number;\n currentIndex: number;\n}\n\nexport type AXTabLook = 'default' | 'pills' | 'pills-color' | 'with-line' | 'with-line-color' | 'classic' | 'custom';\n\nexport type AXTabLocation = 'top' | 'bottom' | 'start' | 'end';\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDropListDirective, AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';\nimport { AXHorizontalScrollDirective } from '@acorex/cdk/horizontal-scroll';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n Component,\n ContentChildren,\n DestroyRef,\n effect,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n input,\n Input,\n NgZone,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXTabContentDirective } from './tab-content.directive';\nimport { AXTabItemComponent } from './tab-item.component';\nimport { AXTabLocation, AXTabLook, AXTabsReorderedEvent, AXTabStripChangedEvent } from './tabs.class';\n\ninterface TabIndicatorStats {\n width: number;\n height: number;\n left: number;\n top: number;\n}\n\n/**\n * @category\n * A component that serves as a container for tab items.\n */\n@Component({\n selector: 'ax-tabs',\n hostDirectives: [AXDropListDirective, AXHorizontalScrollDirective],\n template: `<ng-content select=\"ax-tab-item\"></ng-content><span class=\"ax-tab-indicator\" #indicator></span>`,\n styleUrl: './tabs.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXTabsComponent }],\n})\nexport class AXTabsComponent extends MXBaseComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly _dropList = inject(AXDropListDirective, { self: true });\n private readonly _scroll = inject(AXHorizontalScrollDirective, { self: true });\n\n /**\n * @ignore\n */\n @ContentChildren(AXTabItemComponent)\n private _contentTabs!: QueryList<AXTabItemComponent>;\n\n /**\n * Sets the appearance style of the tab component.\n * @defaultValue 'default'\n */\n look = input<AXTabLook>('default');\n\n /**\n * Specifies the position of the tab component.\n * @defaultValue 'bottom'\n */\n location = input<AXTabLocation>('bottom');\n\n /**\n * Enables drag-and-drop reordering of tab items. Reordering starts only after the user\n * presses and holds a tab for {@link reorderDelay} milliseconds; a quick swipe without\n * holding scrolls the strip instead.\n * @defaultValue false\n */\n reorderable = input(false, { transform: booleanAttribute });\n\n /**\n * Press-and-hold duration in milliseconds before a tab can be dragged to reorder.\n * After this delay the cursor changes to indicate reorder mode. Moving before the\n * delay ends cancels reorder and allows swipe or pan scrolling instead.\n * @defaultValue 250\n */\n reorderDelay = input(250);\n\n /**\n * @defaultValue 'false'\n * Specifies whether the component should resize to fit its parent container.\n */\n @Input()\n fitParent = false;\n\n /**\n * @defaultValue 'false'\n * Applies a minimum width constraint to the component.\n */\n @Input()\n minWidth = false;\n\n /**\n * The `AXTabContentDirective` associated with the tab.\n */\n @Input()\n content!: AXTabContentDirective;\n\n private indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n\n private zone = inject(NgZone);\n private platformId = inject(PLATFORM_ID);\n\n /** @ignore */\n private _isUserInteraction = false;\n\n /** @ignore */\n private _clickSubscriptions = new WeakSet<AXTabItemComponent>();\n\n get items(): AXTabItemComponent[] {\n const tabs = this._contentTabs?.toArray() ?? [];\n if (!isPlatformBrowser(this.platformId) || tabs.length < 2) {\n return tabs;\n }\n return [...tabs].sort((a, b) =>\n a.getHostElement().compareDocumentPosition(b.getHostElement()) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1,\n );\n }\n\n /** @ignore */\n private _selectedItem!: AXTabItemComponent;\n\n /** @ignore */\n get selectedIndex(): number {\n return this.items.indexOf(this._selectedItem);\n }\n\n /** @ignore */\n get selectedItem(): AXTabItemComponent {\n return this._selectedItem;\n }\n\n private changes: ResizeObserver;\n private activeTab = signal<AXTabItemComponent | null>(null);\n private viewReady = signal(false);\n\n #reorderableEffect = effect(() => {\n this._dropList.isSortingDisabled.set(!this.reorderable());\n this._syncDragState();\n });\n\n #orientationEffect = effect(() => {\n const loc = this.location();\n const vertical = loc === 'start' || loc === 'end';\n const orientation = vertical ? 'vertical' : 'horizontal';\n this._dropList.orientation.set(orientation);\n this._scroll.scrollOrientation.set(orientation);\n });\n\n #tabChange = effect(() => {\n const look = this.look();\n const location = this.location();\n const activeTab = this.activeTab();\n if (!location || !activeTab || !this.viewReady()) {\n return;\n }\n if (look !== 'with-line-color' && look !== 'with-line') {\n return;\n }\n this.scheduleIndicatorUpdate(activeTab);\n });\n\n /**\n * @event\n */\n @Output()\n onActiveTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\n\n /**\n * Emitted when tab items are reordered via drag and drop after the press-and-hold\n * delay has elapsed and the user drags a tab to a new position.\n * @event\n */\n @Output()\n onTabsReordered: EventEmitter<AXTabsReorderedEvent> = new EventEmitter<AXTabsReorderedEvent>();\n\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n const cssClasses: string[] = [];\n cssClasses.push(`ax-${this.look()}`);\n cssClasses.push(`ax-${this.location()}`);\n if (this.fitParent) cssClasses.push(`ax-tabs-fit`);\n if (this.reorderable()) cssClasses.push(`ax-tabs-reorderable`);\n return cssClasses;\n }\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.viewReady.set(true);\n this.scheduleIndicatorUpdate(this.activeTab());\n });\n\n const dropSub = this._dropList.dropListDropped.subscribe((event) => {\n if (this.reorderable()) {\n this._applyReorder(event);\n }\n });\n const previewSub = this._dropList.sortPreviewChanged.subscribe(() => {\n this.scheduleIndicatorUpdate(this.activeTab());\n });\n\n this.destroyRef.onDestroy(() => {\n dropSub.unsubscribe();\n previewSub.unsubscribe();\n });\n }\n\n /** @ignore */\n ngAfterContentInit() {\n this._contentTabs.changes.subscribe(() => {\n this._bindOnClickEvent();\n });\n }\n\n /** @ignore */\n ngAfterViewInit() {\n this._bindOnClickEvent();\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.changes = new ResizeObserver((entries) => {\n const activeTab = this.activeTab();\n if (entries[0].contentRect.width && activeTab) {\n const indicatorEl = this.indicator()?.nativeElement;\n if (!indicatorEl) {\n return;\n }\n this.renderer.setStyle(indicatorEl, 'transition', 'none');\n this.setIndicatorPosition(activeTab);\n this.renderer.removeStyle(indicatorEl, 'transition');\n }\n });\n this._observeActiveTabForResize(this.activeTab());\n });\n }\n }\n\n ngOnDestroy(): void {\n this.changes?.disconnect();\n }\n\n /** @ignore */\n private _bindOnClickEvent() {\n const selected = this.items.find((c) => c.active) || this.items[0];\n this.select(selected);\n this.items.forEach((c) => {\n if (this._clickSubscriptions.has(c)) {\n return;\n }\n this._clickSubscriptions.add(c);\n c.onClick.subscribe((t) => {\n this._isUserInteraction = t.nativeEvent?.isTrusted;\n this.select(c);\n });\n });\n this._syncDragState();\n }\n\n /** @ignore */\n private _syncDragState(): void {\n const reorderEnabled = this.reorderable();\n const vertical = this.location() === 'start' || this.location() === 'end';\n const touchAction = vertical ? 'pan-x' : 'pan-y';\n this.items.forEach((tab) => {\n tab.setReorderEnabled(reorderEnabled, this.reorderDelay(), touchAction);\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (reorderEnabled) {\n this.renderer.setStyle(\n tab.getHostElement(),\n 'transition-property',\n 'transform, opacity, translate, background-color, color',\n );\n } else {\n this.renderer.removeStyle(tab.getHostElement(), 'transition-property');\n }\n });\n }\n\n /** @ignore */\n private _applyReorder(event: AXDropListDroppedEvent): void {\n const { previousIndex, currentIndex, item } = event;\n if (previousIndex === currentIndex || previousIndex < 0 || currentIndex < 0) {\n return;\n }\n\n const movedEl = item.element();\n const parent = movedEl.parentElement;\n if (!parent) {\n return;\n }\n\n const tabsBeforeMove = this.items.map((t) => t.getHostElement());\n const tabItem = this.items[previousIndex];\n const indicator = this.indicator()?.nativeElement;\n\n let refNode: Node | null = null;\n if (currentIndex >= tabsBeforeMove.length - 1) {\n refNode = indicator?.parentElement === parent ? indicator : null;\n } else {\n const refIndex = currentIndex > previousIndex ? currentIndex + 1 : currentIndex;\n refNode = tabsBeforeMove[refIndex] ?? (indicator?.parentElement === parent ? indicator : null);\n }\n\n if (refNode) {\n this.renderer.insertBefore(parent, movedEl, refNode);\n } else {\n this.renderer.appendChild(parent, movedEl);\n }\n\n this.zone.run(() => {\n this.onTabsReordered.emit({\n component: this,\n tab: tabItem,\n previousIndex,\n currentIndex,\n });\n });\n\n this.scheduleIndicatorUpdate(this.activeTab());\n setTimeout(() => this.scheduleIndicatorUpdate(this.activeTab()), 200);\n }\n\n /** @ignore */\n private _observeActiveTabForResize(tab: AXTabItemComponent | null): void {\n if (!this.changes || !isPlatformBrowser(this.platformId)) {\n return;\n }\n\n this.changes.disconnect();\n if (tab) {\n this.changes.observe(tab.getHostElement());\n }\n this.changes.observe(this.getHostElement());\n }\n\n /** @ignore */\n private scheduleIndicatorUpdate(tab: AXTabItemComponent | null): void {\n if (!tab || !this.viewReady()) {\n return;\n }\n\n const look = this.look();\n if (look !== 'with-line' && look !== 'with-line-color') {\n return;\n }\n\n queueMicrotask(() => {\n this.setIndicatorPosition(tab);\n });\n }\n\n /**\n * Activates the specified tab and updates the content.\n *\n * @param tab - The tab to select, either by index (number) or by component instance\n */\n select(tab: number | AXTabItemComponent) {\n const tabItem: AXTabItemComponent = typeof tab == 'number' ? this.items[tab] : tab;\n if (!tabItem) {\n return;\n }\n\n const isSameTab = this._selectedItem === tabItem;\n this.activeTab.set(tabItem);\n if (isSameTab) {\n return;\n }\n\n this._selectedItem = tabItem;\n this.items.forEach((c) => (c.active = false));\n tabItem.active = true;\n if (this.content) {\n this.content.portal = tabItem.template;\n }\n this.cdr.markForCheck();\n this.onActiveTabChanged.emit({\n component: this,\n isUserInteraction: this._isUserInteraction,\n tab: tabItem,\n index: this.selectedIndex,\n });\n this._isUserInteraction = false;\n this._observeActiveTabForResize(tabItem);\n this.scheduleIndicatorUpdate(tabItem);\n }\n\n /** @ignore */\n private getTabIndicatorStats(tabItem: AXTabItemComponent): TabIndicatorStats {\n const tabEl = tabItem.getHostElement();\n const stats = tabItem.getStats();\n\n if (!isPlatformBrowser(this.platformId)) {\n return stats;\n }\n\n const transform = tabEl.style.transform || getComputedStyle(tabEl).transform;\n if (!transform || transform === 'none') {\n return stats;\n }\n\n try {\n const matrix = new DOMMatrixReadOnly(transform);\n return {\n ...stats,\n left: stats.left + matrix.m41,\n top: stats.top + matrix.m42,\n };\n } catch {\n return stats;\n }\n }\n\n private setIndicatorPosition(tabItem: AXTabItemComponent) {\n const indicatorEl = this.indicator()?.nativeElement;\n if (!indicatorEl) {\n return;\n }\n\n const itemStats = this.getTabIndicatorStats(tabItem);\n const indicatorStyle = indicatorEl.style;\n\n if (this.location() === 'top' || this.location() === 'bottom') {\n indicatorStyle.width = `${itemStats.width}px`;\n indicatorStyle.height = `var(--ax-comp-tabs-indicator-size)`;\n indicatorStyle.left = `${itemStats.left}px`;\n indicatorStyle.right = `unset`;\n if (this.location() === 'top') {\n indicatorStyle.top = `0px`;\n indicatorStyle.bottom = `unset`;\n }\n if (this.location() === 'bottom') {\n indicatorStyle.top = `unset`;\n indicatorStyle.bottom = `0px`;\n }\n }\n if (this.location() === 'start' || this.location() === 'end') {\n indicatorStyle.width = ` var(--ax-comp-tabs-indicator-size)`;\n indicatorStyle.height = `${itemStats.height}px`;\n indicatorStyle.top = `${itemStats.top}px`;\n indicatorStyle.bottom = `unset`;\n indicatorStyle.left = `unset`;\n indicatorStyle.right = `unset`;\n if (this.location() === 'start') {\n indicatorStyle.insetInlineStart = `0px`;\n indicatorStyle.insetInlineEnd = `unset`;\n }\n if (this.location() === 'end') {\n indicatorStyle.insetInlineStart = `unset`;\n indicatorStyle.insetInlineEnd = `0px`;\n }\n }\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXTabContentDirective } from './tab-content.directive';\nimport { AXTabItemComponent } from './tab-item.component';\nimport { AXTabsComponent } from './tabs.component';\n\nconst COMPONENT = [AXTabsComponent, AXTabItemComponent, AXTabContentDirective];\nconst MODULES = [CommonModule, PortalModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-tabs.mjs","sources":["../../../../packages/components/tabs/src/lib/tab-content.directive.ts","../../../../packages/components/tabs/src/lib/tab-panel.directive.ts","../../../../packages/components/tabs/src/lib/tab-item.component.ts","../../../../packages/components/tabs/src/lib/tabs.class.ts","../../../../packages/components/tabs/src/lib/tabs.component.ts","../../../../packages/components/tabs/src/lib/tabs.module.ts","../../../../packages/components/tabs/src/acorex-components-tabs.ts"],"sourcesContent":["import {\n Directive,\n EmbeddedViewRef,\n OnDestroy,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { AXTabsRenderMode } from './tabs.class';\n\ninterface TabContentPane {\n view: EmbeddedViewRef<unknown>;\n host: HTMLElement;\n}\n\n@Directive({\n selector: '[axTabContent]',\n exportAs: 'axTabContent',\n inputs: ['portal: axTabContent'],\n})\nexport class AXTabContentDirective implements OnDestroy {\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly renderer = inject(Renderer2);\n\n private readonly panes = new Map<TemplateRef<unknown>, TabContentPane>();\n\n private _portal: TemplateRef<unknown> | undefined;\n private defaultView: EmbeddedViewRef<unknown> | null = null;\n\n public get portal(): TemplateRef<unknown> | undefined {\n return this._portal;\n }\n\n public set portal(v: TemplateRef<unknown> | undefined) {\n if (v) {\n this._portal = v;\n this.activate(v, 'default');\n }\n }\n\n /**\n * Shows the given tab template using the specified render mode.\n */\n activate(template: TemplateRef<unknown> | undefined, mode: AXTabsRenderMode): void {\n if (!template) {\n return;\n }\n\n this._portal = template;\n\n if (mode === 'default') {\n this.destroyDefaultView();\n this.resetKeepAlivePanes();\n this.viewContainerRef.clear();\n this.defaultView = this.viewContainerRef.createEmbeddedView(template, null, 0);\n return;\n }\n\n this.destroyDefaultView();\n this.ensurePane(template);\n this.showPane(template);\n }\n\n /**\n * Ensures embedded views exist for every tab template (all-tabs mode).\n */\n preload(templates: TemplateRef<unknown>[]): void {\n templates.forEach((template) => this.ensurePane(template));\n }\n\n /**\n * Removes panes whose tab templates are no longer present.\n */\n sync(templates: TemplateRef<unknown>[]): void {\n const activeTemplates = new Set(templates);\n\n for (const [template, pane] of this.panes) {\n if (activeTemplates.has(template)) {\n continue;\n }\n\n this.destroyPane(template, pane);\n }\n }\n\n /**\n * Destroys all cached panes and clears the view container.\n */\n reset(): void {\n this.destroyDefaultView();\n this.resetKeepAlivePanes();\n this.viewContainerRef.clear();\n }\n\n ngOnDestroy(): void {\n this.reset();\n }\n\n private destroyDefaultView(): void {\n if (!this.defaultView) {\n return;\n }\n\n this.defaultView.destroy();\n this.defaultView = null;\n }\n\n private resetKeepAlivePanes(): void {\n for (const [template, pane] of this.panes) {\n this.destroyPane(template, pane);\n }\n\n this.panes.clear();\n }\n\n private ensurePane(template: TemplateRef<unknown>): TabContentPane {\n const existing = this.panes.get(template);\n if (existing && !existing.view.destroyed) {\n return existing;\n }\n\n if (existing) {\n this.panes.delete(template);\n this.renderer.removeChild(existing.host.parentElement, existing.host);\n }\n\n const view = this.viewContainerRef.createEmbeddedView(template, null, this.viewContainerRef.length);\n const host = this.renderer.createElement('div') as HTMLElement;\n this.renderer.addClass(host, 'ax-tab-content-pane');\n this.renderer.setAttribute(host, 'hidden', '');\n\n const anchor = this.viewContainerRef.element.nativeElement;\n this.renderer.insertBefore(anchor.parentElement, host, anchor);\n\n for (const node of view.rootNodes) {\n this.renderer.appendChild(host, node);\n }\n\n const pane: TabContentPane = { view, host };\n this.panes.set(template, pane);\n return pane;\n }\n\n private showPane(template: TemplateRef<unknown>): void {\n for (const [paneTemplate, pane] of this.panes) {\n if (paneTemplate === template) {\n this.renderer.removeAttribute(pane.host, 'hidden');\n } else {\n this.renderer.setAttribute(pane.host, 'hidden', '');\n }\n }\n }\n\n private destroyPane(template: TemplateRef<unknown>, pane: TabContentPane): void {\n if (!pane.view.destroyed) {\n pane.view.destroy();\n }\n\n if (pane.host.parentElement) {\n this.renderer.removeChild(pane.host.parentElement, pane.host);\n }\n\n this.panes.delete(template);\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n/**\n * Marks an `ng-template` as tab panel content. Use this instead of projecting\n * components directly into `ax-content` when you need `renderMode=\"default\"`\n * to destroy and recreate panel state on each tab switch.\n *\n * @example\n * ```html\n * <ax-tab-item text=\"Account\">\n * <ng-template axTabPanel>\n * <my-panel />\n * </ng-template>\n * </ax-tab-item>\n * ```\n */\n@Directive({\n selector: 'ng-template[axTabPanel]',\n})\nexport class AXTabPanelDirective {\n constructor(readonly template: TemplateRef<unknown>) {}\n}\n","import { AXClickEvent, AXComponent, MXComponentOptionChanged, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXDragDirective } from '@acorex/cdk/drag-drop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChild,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXTabPanelDirective } from './tab-panel.directive';\n\n/**\n * @category\n * Represents an individual tab item in a tab component.\n */\n@Component({\n selector: 'ax-tab-item',\n hostDirectives: [\n {\n directive: AXDragDirective,\n inputs: ['dragStartDelay', 'dragClonedTemplate'],\n },\n ],\n template: `\n @if (headerTemplate) {\n <ng-container\n [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: {\n text: this.text,\n key: this.key,\n active: this.active,\n disabled: this.disabled,\n },\n }\"\n ></ng-container>\n } @else {\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-tab-item-header\">\n <div class=\"ax-tab-item-text\">{{ text }}</div>\n </div>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n <ng-template #content>\n <ng-content select=\"ax-content\"> </ng-content>\n </ng-template>\n `,\n\n encapsulation: ViewEncapsulation.None,\n inputs: ['disabled'],\n outputs: ['disabledChange', 'onClick', 'onBlur', 'onFocus'],\n host: { ngSkipHydration: 'true' },\n imports: [NgTemplateOutlet],\n providers: [{ provide: AXComponent, useExisting: AXTabItemComponent }],\n})\nexport class AXTabItemComponent extends MXInteractiveComponent {\n private readonly _drag = inject(AXDragDirective, { self: true });\n\n private _reorderEnabled = false;\n private _panTouchAction: 'none' | 'pan-x' | 'pan-y' = 'none';\n\n constructor() {\n super();\n this._drag.isDragDisabled.set(true);\n this._drag.dragCursorOverride.set('none');\n }\n\n /**\n * Defines the text content to be displayed within the component.\n */\n @Input()\n text: string;\n\n /**\n * Defines a unique identifier for the component instance.\n */\n @Input()\n key: string;\n\n @ContentChild(AXTabPanelDirective)\n private _panel?: AXTabPanelDirective;\n\n @ViewChild('content')\n private _contentTemplate!: TemplateRef<unknown>;\n\n /**\n * Template rendered for this tab's content area.\n * Prefer `ng-template[axTabPanel]` so `renderMode=\"default\"` can recreate panel state.\n */\n get template(): TemplateRef<unknown> {\n return this._panel?.template ?? this._contentTemplate;\n }\n\n /**\n * Defines a custom template for the component's header.\n */\n @Input()\n headerTemplate: TemplateRef<unknown>;\n\n /**\n * Emits an event when the `active` state of the component changes.\n * @event\n */\n @Output()\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * Emits an event when the component is clicked.\n * @event\n */\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n /** @ignore */\n private _active = false;\n\n /**\n * Gets or sets the component's active state, controlling its behavior and appearance.\n * @param value {boolean}\n */\n @Input()\n public get active(): boolean {\n return this._active;\n }\n public set active(value: boolean) {\n this.setOption({\n name: 'active',\n value,\n afterCallback: () => {\n this.cdr.markForCheck();\n },\n });\n }\n\n /** @ignore */\n setReorderEnabled(enabled: boolean, delay = 0, touchAction: 'none' | 'pan-x' | 'pan-y' = 'none'): void {\n this._reorderEnabled = enabled;\n this._panTouchAction = touchAction;\n this._drag.startDelay.set(enabled ? delay : 0);\n this._drag.dragTouchAction.set(touchAction);\n this._drag.dragCursorOverride.set(enabled ? 'grab' : 'none');\n this.updateDragState();\n }\n\n /** @ignore */\n private updateDragState(): void {\n this._drag.isDragDisabled.set(!this._reorderEnabled || this.disabled);\n this.applyScrollTouchAction();\n }\n\n /** @ignore */\n private applyScrollTouchAction(): void {\n const handle = this.getHostElement();\n if (this._reorderEnabled) {\n return;\n }\n\n if (this._panTouchAction !== 'none') {\n handle.style.touchAction = this._panTouchAction;\n } else {\n handle.style.removeProperty('touch-action');\n }\n }\n\n /**\n * @ignore\n */\n @HostListener('click', ['$event'])\n __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.getHostElement().scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' });\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n\n /**\n * @ignore\n */\n protected override internalOptionChanged(option: MXComponentOptionChanged<any>): void {\n //TODO: change to hostbind\n const classListRef = this.getHostElement().classList;\n if (option.name == 'disabled') {\n option.value ? classListRef.add('ax-state-disabled') : classListRef.remove('ax-state-disabled');\n this.updateDragState();\n }\n if (option.name == 'active') {\n option.value ? classListRef.add('ax-state-active') : classListRef.remove('ax-state-active');\n }\n }\n\n /**\n * Gets the component's position and size statistics.\n *\n * @returns object with width, height, left, and top properties\n */\n getStats() {\n return {\n width: this.getHostElement().offsetWidth,\n height: this.getHostElement().offsetHeight,\n left: this.getHostElement().offsetLeft,\n top: this.getHostElement().offsetTop,\n };\n }\n}\n","import { AXEvent } from '@acorex/cdk/common';\nimport { AXTabItemComponent } from './tab-item.component';\n\nexport class AXTabStripChangedEvent extends AXEvent {\n tab: AXTabItemComponent;\n index: number;\n}\n\n/** Event emitted when tab items are reordered via drag and drop. */\nexport class AXTabsReorderedEvent extends AXEvent {\n tab: AXTabItemComponent;\n previousIndex: number;\n currentIndex: number;\n}\n\nexport type AXTabLook = 'default' | 'pills' | 'pills-color' | 'with-line' | 'with-line-color' | 'classic' | 'custom';\n\nexport type AXTabLocation = 'top' | 'bottom' | 'start' | 'end';\n\nexport type AXTabsRenderMode = 'default' | 'all-tabs' | 'on-demand';\n","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXDropListDirective, AXDropListDroppedEvent } from '@acorex/cdk/drag-drop';\nimport { AXHorizontalScrollDirective } from '@acorex/cdk/horizontal-scroll';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n Component,\n ContentChildren,\n DestroyRef,\n effect,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n input,\n Input,\n NgZone,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXTabContentDirective } from './tab-content.directive';\nimport { AXTabItemComponent } from './tab-item.component';\nimport { AXTabLocation, AXTabLook, AXTabsRenderMode, AXTabsReorderedEvent, AXTabStripChangedEvent } from './tabs.class';\n\ninterface TabIndicatorStats {\n width: number;\n height: number;\n left: number;\n top: number;\n}\n\n/**\n * @category\n * A component that serves as a container for tab items.\n */\n@Component({\n selector: 'ax-tabs',\n hostDirectives: [AXDropListDirective, AXHorizontalScrollDirective],\n template: `<ng-content select=\"ax-tab-item\"></ng-content><span class=\"ax-tab-indicator\" #indicator></span>`,\n styleUrl: './tabs.component.css',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXComponent, useExisting: AXTabsComponent }],\n})\nexport class AXTabsComponent extends MXBaseComponent implements AfterViewInit, AfterContentInit, OnDestroy {\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly _dropList = inject(AXDropListDirective, { self: true });\n private readonly _scroll = inject(AXHorizontalScrollDirective, { self: true });\n\n /**\n * @ignore\n */\n @ContentChildren(AXTabItemComponent)\n private _contentTabs!: QueryList<AXTabItemComponent>;\n\n /**\n * Sets the appearance style of the tab component.\n * @defaultValue 'default'\n */\n look = input<AXTabLook>('default');\n\n /**\n * Specifies the position of the tab component.\n * @defaultValue 'bottom'\n */\n location = input<AXTabLocation>('bottom');\n\n /**\n * Enables drag-and-drop reordering of tab items. Reordering starts only after the user\n * presses and holds a tab for {@link reorderDelay} milliseconds; a quick swipe without\n * holding scrolls the strip instead.\n * @defaultValue false\n */\n reorderable = input(false, { transform: booleanAttribute });\n\n /**\n * Press-and-hold duration in milliseconds before a tab can be dragged to reorder.\n * After this delay the cursor changes to indicate reorder mode. Moving before the\n * delay ends cancels reorder and allows swipe or pan scrolling instead.\n * @defaultValue 250\n */\n reorderDelay = input(250);\n\n /**\n * Controls how tab content is rendered in the DOM.\n *\n * - `default` — Only the active tab's content is in the DOM. Switching tabs replaces content and does not preserve state.\n * - `all-tabs` — All tab contents are rendered and kept in the DOM. State is preserved; higher memory use.\n * - `on-demand` — Only the active tab is rendered initially. Other tabs are rendered on first visit and then kept; state is preserved.\n *\n * @defaultValue 'default'\n */\n renderMode = input<AXTabsRenderMode>('default');\n\n /**\n * When true, stacks prefix, title, and suffix vertically inside each tab header\n * instead of arranging them in a horizontal row.\n * @defaultValue false\n */\n stacked = input(false, { transform: booleanAttribute });\n\n /**\n * @defaultValue 'false'\n * Specifies whether the component should resize to fit its parent container.\n */\n @Input()\n fitParent = false;\n\n /**\n * @defaultValue 'false'\n * Applies a minimum width constraint to the component.\n */\n @Input()\n minWidth = false;\n\n /**\n * The `AXTabContentDirective` associated with the tab.\n */\n @Input()\n set content(value: AXTabContentDirective) {\n this._content = value;\n if (value && this._selectedItem) {\n this._renderContent(this._selectedItem);\n }\n }\n get content(): AXTabContentDirective {\n return this._content;\n }\n\n private _content!: AXTabContentDirective;\n\n private indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n\n private zone = inject(NgZone);\n private platformId = inject(PLATFORM_ID);\n\n /** @ignore */\n private _isUserInteraction = false;\n\n /** @ignore */\n private _clickSubscriptions = new WeakSet<AXTabItemComponent>();\n\n get items(): AXTabItemComponent[] {\n const tabs = this._contentTabs?.toArray() ?? [];\n if (!isPlatformBrowser(this.platformId) || tabs.length < 2) {\n return tabs;\n }\n return [...tabs].sort((a, b) =>\n a.getHostElement().compareDocumentPosition(b.getHostElement()) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1,\n );\n }\n\n /** @ignore */\n private _selectedItem!: AXTabItemComponent;\n\n /** @ignore */\n get selectedIndex(): number {\n return this.items.indexOf(this._selectedItem);\n }\n\n /** @ignore */\n get selectedItem(): AXTabItemComponent {\n return this._selectedItem;\n }\n\n private changes: ResizeObserver;\n private activeTab = signal<AXTabItemComponent | null>(null);\n private viewReady = signal(false);\n private lastRenderMode: AXTabsRenderMode | null = null;\n\n #reorderableEffect = effect(() => {\n this._dropList.isSortingDisabled.set(!this.reorderable());\n this._syncDragState();\n });\n\n #orientationEffect = effect(() => {\n const loc = this.location();\n const vertical = loc === 'start' || loc === 'end';\n const orientation = vertical ? 'vertical' : 'horizontal';\n this._dropList.orientation.set(orientation);\n this._scroll.scrollOrientation.set(orientation);\n });\n\n #tabChange = effect(() => {\n const look = this.look();\n const location = this.location();\n const activeTab = this.activeTab();\n if (!location || !activeTab || !this.viewReady()) {\n return;\n }\n if (look !== 'with-line-color' && look !== 'with-line') {\n return;\n }\n this.scheduleIndicatorUpdate(activeTab);\n });\n\n #renderModeEffect = effect(() => {\n const mode = this.renderMode();\n const selected = this._selectedItem;\n if (!selected || !this.content) {\n return;\n }\n if (this.lastRenderMode !== null && this.lastRenderMode !== mode) {\n this._renderContent(selected);\n }\n });\n\n /**\n * @event\n */\n @Output()\n onActiveTabChanged: EventEmitter<AXTabStripChangedEvent> = new EventEmitter<AXTabStripChangedEvent>();\n\n /**\n * Emitted when tab items are reordered via drag and drop after the press-and-hold\n * delay has elapsed and the user drags a tab to a new position.\n * @event\n */\n @Output()\n onTabsReordered: EventEmitter<AXTabsReorderedEvent> = new EventEmitter<AXTabsReorderedEvent>();\n\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n const cssClasses: string[] = [];\n cssClasses.push(`ax-${this.look()}`);\n cssClasses.push(`ax-${this.location()}`);\n if (this.fitParent) cssClasses.push(`ax-tabs-fit`);\n if (this.reorderable()) cssClasses.push(`ax-tabs-reorderable`);\n if (this.stacked()) cssClasses.push(`ax-tabs-stacked`);\n return cssClasses;\n }\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.viewReady.set(true);\n this.scheduleIndicatorUpdate(this.activeTab());\n });\n\n const dropSub = this._dropList.dropListDropped.subscribe((event) => {\n if (this.reorderable()) {\n this._applyReorder(event);\n }\n });\n const previewSub = this._dropList.sortPreviewChanged.subscribe(() => {\n this.scheduleIndicatorUpdate(this.activeTab());\n });\n\n this.destroyRef.onDestroy(() => {\n dropSub.unsubscribe();\n previewSub.unsubscribe();\n });\n }\n\n /** @ignore */\n ngAfterContentInit() {\n this._contentTabs.changes.subscribe(() => {\n this._bindOnClickEvent();\n });\n }\n\n /** @ignore */\n ngAfterViewInit() {\n this._bindOnClickEvent();\n if (isPlatformBrowser(this.platformId)) {\n this.zone.runOutsideAngular(() => {\n this.changes = new ResizeObserver((entries) => {\n const activeTab = this.activeTab();\n if (entries[0].contentRect.width && activeTab) {\n const indicatorEl = this.indicator()?.nativeElement;\n if (!indicatorEl) {\n return;\n }\n this.renderer.setStyle(indicatorEl, 'transition', 'none');\n this.setIndicatorPosition(activeTab);\n this.renderer.removeStyle(indicatorEl, 'transition');\n }\n });\n this._observeActiveTabForResize(this.activeTab());\n });\n }\n }\n\n ngOnDestroy(): void {\n this.changes?.disconnect();\n }\n\n /** @ignore */\n private _bindOnClickEvent() {\n const selected = this.items.find((c) => c.active) || this.items[0];\n this.select(selected);\n this.items.forEach((c) => {\n if (this._clickSubscriptions.has(c)) {\n return;\n }\n this._clickSubscriptions.add(c);\n c.onClick.subscribe((t) => {\n this._isUserInteraction = t.nativeEvent?.isTrusted;\n this.select(c);\n });\n });\n this._syncDragState();\n }\n\n /** @ignore */\n private _syncDragState(): void {\n const reorderEnabled = this.reorderable();\n const vertical = this.location() === 'start' || this.location() === 'end';\n const touchAction = vertical ? 'pan-x' : 'pan-y';\n this.items.forEach((tab) => {\n tab.setReorderEnabled(reorderEnabled, this.reorderDelay(), touchAction);\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (reorderEnabled) {\n this.renderer.setStyle(\n tab.getHostElement(),\n 'transition-property',\n 'transform, opacity, translate, background-color, color',\n );\n } else {\n this.renderer.removeStyle(tab.getHostElement(), 'transition-property');\n }\n });\n }\n\n /** @ignore */\n private _applyReorder(event: AXDropListDroppedEvent): void {\n const { previousIndex, currentIndex, item } = event;\n if (previousIndex === currentIndex || previousIndex < 0 || currentIndex < 0) {\n return;\n }\n\n const movedEl = item.element();\n const parent = movedEl.parentElement;\n if (!parent) {\n return;\n }\n\n const tabsBeforeMove = this.items.map((t) => t.getHostElement());\n const tabItem = this.items[previousIndex];\n const indicator = this.indicator()?.nativeElement;\n\n let refNode: Node | null = null;\n if (currentIndex >= tabsBeforeMove.length - 1) {\n refNode = indicator?.parentElement === parent ? indicator : null;\n } else {\n const refIndex = currentIndex > previousIndex ? currentIndex + 1 : currentIndex;\n refNode = tabsBeforeMove[refIndex] ?? (indicator?.parentElement === parent ? indicator : null);\n }\n\n if (refNode) {\n this.renderer.insertBefore(parent, movedEl, refNode);\n } else {\n this.renderer.appendChild(parent, movedEl);\n }\n\n this.zone.run(() => {\n this.onTabsReordered.emit({\n component: this,\n tab: tabItem,\n previousIndex,\n currentIndex,\n });\n });\n\n this.scheduleIndicatorUpdate(this.activeTab());\n setTimeout(() => this.scheduleIndicatorUpdate(this.activeTab()), 200);\n }\n\n /** @ignore */\n private _observeActiveTabForResize(tab: AXTabItemComponent | null): void {\n if (!this.changes || !isPlatformBrowser(this.platformId)) {\n return;\n }\n\n this.changes.disconnect();\n if (tab) {\n this.changes.observe(tab.getHostElement());\n }\n this.changes.observe(this.getHostElement());\n }\n\n /** @ignore */\n private scheduleIndicatorUpdate(tab: AXTabItemComponent | null): void {\n if (!tab || !this.viewReady()) {\n return;\n }\n\n const look = this.look();\n if (look !== 'with-line' && look !== 'with-line-color') {\n return;\n }\n\n queueMicrotask(() => {\n this.setIndicatorPosition(tab);\n });\n }\n\n /**\n * Activates the specified tab and updates the content.\n *\n * @param tab - The tab to select, either by index (number) or by component instance\n */\n select(tab: number | AXTabItemComponent) {\n const tabItem: AXTabItemComponent = typeof tab == 'number' ? this.items[tab] : tab;\n if (!tabItem) {\n return;\n }\n\n const isSameTab = this._selectedItem === tabItem;\n this.activeTab.set(tabItem);\n this._renderContent(tabItem);\n if (isSameTab) {\n return;\n }\n\n this._selectedItem = tabItem;\n this.items.forEach((c) => (c.active = false));\n tabItem.active = true;\n this.cdr.markForCheck();\n this.onActiveTabChanged.emit({\n component: this,\n isUserInteraction: this._isUserInteraction,\n tab: tabItem,\n index: this.selectedIndex,\n });\n this._isUserInteraction = false;\n this._observeActiveTabForResize(tabItem);\n this.scheduleIndicatorUpdate(tabItem);\n }\n\n /** @ignore */\n private _renderContent(tabItem: AXTabItemComponent): void {\n if (!this.content || !tabItem?.template) {\n return;\n }\n\n const mode = this.renderMode();\n const templates = this.items.map((item) => item.template).filter(Boolean);\n\n if (this.lastRenderMode !== null && this.lastRenderMode !== mode) {\n this.content.reset();\n }\n\n this.lastRenderMode = mode;\n\n if (mode === 'default') {\n this.content.activate(tabItem.template, mode);\n return;\n }\n\n this.content.sync(templates);\n\n if (mode === 'all-tabs') {\n this.content.preload(templates);\n }\n\n this.content.activate(tabItem.template, mode);\n }\n\n /** @ignore */\n private getTabIndicatorStats(tabItem: AXTabItemComponent): TabIndicatorStats {\n const tabEl = tabItem.getHostElement();\n const stats = tabItem.getStats();\n\n if (!isPlatformBrowser(this.platformId)) {\n return stats;\n }\n\n const transform = tabEl.style.transform || getComputedStyle(tabEl).transform;\n if (!transform || transform === 'none') {\n return stats;\n }\n\n try {\n const matrix = new DOMMatrixReadOnly(transform);\n return {\n ...stats,\n left: stats.left + matrix.m41,\n top: stats.top + matrix.m42,\n };\n } catch {\n return stats;\n }\n }\n\n private setIndicatorPosition(tabItem: AXTabItemComponent) {\n const indicatorEl = this.indicator()?.nativeElement;\n if (!indicatorEl) {\n return;\n }\n\n const itemStats = this.getTabIndicatorStats(tabItem);\n const indicatorStyle = indicatorEl.style;\n\n if (this.location() === 'top' || this.location() === 'bottom') {\n indicatorStyle.width = `${itemStats.width}px`;\n indicatorStyle.height = `var(--ax-comp-tabs-indicator-size)`;\n indicatorStyle.left = `${itemStats.left}px`;\n indicatorStyle.right = `unset`;\n if (this.location() === 'top') {\n indicatorStyle.top = `0px`;\n indicatorStyle.bottom = `unset`;\n }\n if (this.location() === 'bottom') {\n indicatorStyle.top = `unset`;\n indicatorStyle.bottom = `0px`;\n }\n }\n if (this.location() === 'start' || this.location() === 'end') {\n indicatorStyle.width = ` var(--ax-comp-tabs-indicator-size)`;\n indicatorStyle.height = `${itemStats.height}px`;\n indicatorStyle.top = `${itemStats.top}px`;\n indicatorStyle.bottom = `unset`;\n indicatorStyle.left = `unset`;\n indicatorStyle.right = `unset`;\n if (this.location() === 'start') {\n indicatorStyle.insetInlineStart = `0px`;\n indicatorStyle.insetInlineEnd = `unset`;\n }\n if (this.location() === 'end') {\n indicatorStyle.insetInlineStart = `unset`;\n indicatorStyle.insetInlineEnd = `0px`;\n }\n }\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXTabContentDirective } from './tab-content.directive';\nimport { AXTabItemComponent } from './tab-item.component';\nimport { AXTabPanelDirective } from './tab-panel.directive';\nimport { AXTabsComponent } from './tabs.component';\n\nconst COMPONENT = [AXTabsComponent, AXTabItemComponent, AXTabContentDirective, AXTabPanelDirective];\nconst MODULES = [CommonModule, PortalModule, AXDecoratorModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AXDoubleClickDirective } from '@acorex/cdk/double-click';
1
+ import { AXGestureDirective } from '@acorex/cdk/gesture';
2
2
  import { moveItemInArray, transferArrayItem, AXDragDirective, AXDragHandleDirective, AXDropListDirective } from '@acorex/cdk/drag-drop';
3
3
  import { AXFocusTrapDirective } from '@acorex/cdk/focus-trap';
4
4
  import { AXHighlightTextComponent } from '@acorex/components/highlight';
@@ -2047,6 +2047,38 @@ class AXTreeViewComponent {
2047
2047
  nativeEvent: event,
2048
2048
  });
2049
2049
  }
2050
+ /**
2051
+ * Handle tap gesture on a node (single click).
2052
+ */
2053
+ onNodeGestureTap(node, event) {
2054
+ if (this.isDoubleClickDisabledForNode(node))
2055
+ return;
2056
+ this.onNodeClickHandle(node, event.srcEvent);
2057
+ }
2058
+ /**
2059
+ * Handle double-tap gesture on a node.
2060
+ */
2061
+ onNodeGestureDoubleTap(node, event) {
2062
+ if (this.isDoubleClickDisabledForNode(node))
2063
+ return;
2064
+ void this.onNodeDoubleClickHandle(node, event.srcEvent);
2065
+ }
2066
+ /**
2067
+ * Handle native click when gesture recognition is disabled for the node.
2068
+ */
2069
+ onNodeNativeClick(node, event) {
2070
+ if (!this.isDoubleClickDisabledForNode(node))
2071
+ return;
2072
+ this.onNodeClickHandle(node, event);
2073
+ }
2074
+ /**
2075
+ * Handle native double-click when gesture recognition is disabled for the node.
2076
+ */
2077
+ onNodeNativeDoubleClick(node, event) {
2078
+ if (!this.isDoubleClickDisabledForNode(node))
2079
+ return;
2080
+ void this.onNodeDoubleClickHandle(node, event);
2081
+ }
2050
2082
  /**
2051
2083
  * Handle node click handle
2052
2084
  */
@@ -2703,7 +2735,7 @@ class AXTreeViewComponent {
2703
2735
  }
2704
2736
  }
2705
2737
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2706
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXTreeViewComponent, isStandalone: true, selector: "ax-tree-view", inputs: { datasource: { classPropertyName: "datasource", publicName: "datasource", isSignal: true, isRequired: true, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, selectionBehavior: { classPropertyName: "selectionBehavior", publicName: "selectionBehavior", isSignal: true, isRequired: false, transformFunction: null }, dragArea: { classPropertyName: "dragArea", publicName: "dragArea", isSignal: true, isRequired: false, transformFunction: null }, dragBehavior: { classPropertyName: "dragBehavior", publicName: "dragBehavior", isSignal: true, isRequired: false, transformFunction: null }, showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, showChildrenBadge: { classPropertyName: "showChildrenBadge", publicName: "showChildrenBadge", isSignal: true, isRequired: false, transformFunction: null }, expandedIcon: { classPropertyName: "expandedIcon", publicName: "expandedIcon", isSignal: true, isRequired: false, transformFunction: null }, collapsedIcon: { classPropertyName: "collapsedIcon", publicName: "collapsedIcon", isSignal: true, isRequired: false, transformFunction: null }, indentSize: { classPropertyName: "indentSize", publicName: "indentSize", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, alternate: { classPropertyName: "alternate", publicName: "alternate", isSignal: true, isRequired: false, transformFunction: null }, nodeTemplate: { classPropertyName: "nodeTemplate", publicName: "nodeTemplate", isSignal: true, isRequired: false, transformFunction: null }, idField: { classPropertyName: "idField", publicName: "idField", isSignal: true, isRequired: false, transformFunction: null }, titleField: { classPropertyName: "titleField", publicName: "titleField", isSignal: true, isRequired: false, transformFunction: null }, highlightText: { classPropertyName: "highlightText", publicName: "highlightText", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: "tooltipField", publicName: "tooltipField", isSignal: true, isRequired: false, transformFunction: null }, iconField: { classPropertyName: "iconField", publicName: "iconField", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: "expandedField", publicName: "expandedField", isSignal: true, isRequired: false, transformFunction: null }, selectedField: { classPropertyName: "selectedField", publicName: "selectedField", isSignal: true, isRequired: false, transformFunction: null }, indeterminateField: { classPropertyName: "indeterminateField", publicName: "indeterminateField", isSignal: true, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: true, isRequired: false, transformFunction: null }, hiddenField: { classPropertyName: "hiddenField", publicName: "hiddenField", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: "childrenField", publicName: "childrenField", isSignal: true, isRequired: false, transformFunction: null }, childrenCountField: { classPropertyName: "childrenCountField", publicName: "childrenCountField", isSignal: true, isRequired: false, transformFunction: null }, dataField: { classPropertyName: "dataField", publicName: "dataField", isSignal: true, isRequired: false, transformFunction: null }, inheritDisabled: { classPropertyName: "inheritDisabled", publicName: "inheritDisabled", isSignal: true, isRequired: false, transformFunction: null }, expandOnDoubleClick: { classPropertyName: "expandOnDoubleClick", publicName: "expandOnDoubleClick", isSignal: true, isRequired: false, transformFunction: null }, doubleClickDuration: { classPropertyName: "doubleClickDuration", publicName: "doubleClickDuration", isSignal: true, isRequired: false, transformFunction: null }, tooltipDelay: { classPropertyName: "tooltipDelay", publicName: "tooltipDelay", isSignal: true, isRequired: false, transformFunction: null }, controlledSelection: { classPropertyName: "controlledSelection", publicName: "controlledSelection", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { datasource: "datasourceChange", selectedIds: "selectedIdsChange", onBeforeDrop: "onBeforeDrop", onNodeToggle: "onNodeToggle", onNodeSelect: "onNodeSelect", onNodeDoubleClick: "onNodeDoubleClick", onNodeClick: "onNodeClick", onSelectionChange: "onSelectionChange", onOrderChange: "onOrderChange", onMoveChange: "onMoveChange", onItemsChange: "onItemsChange" }, host: { attributes: { "role": "tree", "tabindex": "0" }, listeners: { "keydown": "handleKeyDown($event)", "focus": "onTreeFocus($event)", "blur": "onTreeBlur($event)" }, properties: { "class.ax-tree-view-default": "look() === 'default'", "class.ax-tree-view-card": "look() === 'card'", "class.ax-tree-view-with-line": "look() === 'with-line'", "class.ax-tree-view-rtl": "isRtl", "style.--ax-tree-view-indent-size": "indentSize() + 'px'", "style.--ax-tree-view-line-offset": "(indentSize() / 2) + 'px'", "attr.aria-label": "\"Tree navigation\"" }, classAttribute: "ax-tree-view" }, providers: [AXTreeViewService], ngImport: i0, template: "<!-- Root loading skeleton -->\n@if (isLoading()) {\n <div class=\"ax-tree-view-drop-list\">\n @for (item of [1, 2, 3, 4, 5, 6, 7]; track item) {\n <div class=\"ax-tree-view-node\">\n <div class=\"ax-tree-view-node-content\">\n <ax-skeleton class=\"ax-tree-view-skeleton-toggle\"></ax-skeleton>\n <ax-skeleton class=\"ax-tree-view-skeleton-label\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n}\n\n<!-- Root drop list -->\n<div\n axFocusTrap\n [axDropList]=\"dragBehavior() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree-view-drop-list\"\n [class.ax-tree-view-card]=\"look() === 'card'\"\n [class.ax-tree-view-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree-view-loading]=\"isLoading()\"\n role=\"group\"\n>\n @for (node of nodes(); track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(0)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axDoubleClick\n [duration]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (onClick)=\"onNodeClickHandle(node, $event)\"\n (onDblClick)=\"onNodeDoubleClickHandle(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), 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]=\"dragBehavior() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"getNodeId(parent)\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree-view-drop-list\"\n role=\"group\"\n >\n @for (node of children; track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(level)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axDoubleClick\n [duration]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (onClick)=\"onNodeClickHandle(node, $event)\"\n (onDblClick)=\"onNodeDoubleClickHandle(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: ["@layer properties;@layer components{.ax-tree-view{display:block;width:100%;--ax-comp-tree-view-indent-size: 12px;--ax-comp-tree-view-node-hover-bg: rgba(var(--ax-sys-color-surface), .5);--ax-comp-tree-view-node-selected-bg: rgba(var(--ax-sys-color-primary-surface), .2);--ax-comp-tree-view-node-active-bg: rgba(var(--ax-sys-color-surface));--ax-comp-tree-view-node-border-radius: 6px;--ax-comp-tree-view-node-margin: .125rem;--ax-comp-tree-view-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree-view-drag-preview-opacity: .9;--ax-comp-tree-view-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree-view-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree-view-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3);--ax-comp-tree-view-content-padding: 0;--ax-comp-tree-view-content-gap: .25rem;--ax-comp-tree-view-drop-list-min-height: 1.5rem;--ax-comp-tree-view-drag-handle-padding: .125rem;--ax-comp-tree-view-badge-padding: .125rem;--ax-comp-tree-view-expand-toggle-padding: .125rem;--ax-comp-tree-view-outline-offset: 2px;--ax-comp-tree-view-outline-offset-negative: -2px;--ax-comp-tree-view-highlight-bg-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-tree-view-highlight-text-color: var(--ax-sys-color-on-warning-lighter-surface);--ax-comp-tree-view-highlight-border-color: var(--ax-sys-color-warning-500)}.ax-tree-view .ax-highlight{display:inline;margin:0;padding:0;background-color:rgb(var(--ax-comp-tree-view-highlight-bg-color));color:rgb(var(--ax-comp-tree-view-highlight-text-color));font-weight:inherit;box-shadow:none}.ax-tree-view-drop-list{min-height:var(--ax-comp-tree-view-drop-list-min-height)}.ax-tree-view-node{position:relative;cursor:move;margin:var(--ax-comp-tree-view-node-margin) 0;border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node:hover:not(.ax-dragging){background:var(--ax-comp-tree-view-node-hover-bg)}.ax-tree-view-node.ax-state-alternate{background-color:rgba(var(--ax-sys-color-light-surface))}.ax-tree-view-node.ax-state-alternate:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-surface))}.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-tree-view-node.ax-tree-view-node-selected,.ax-tree-view-node.ax-state-alternate.ax-tree-view-node-selected{background:var(--ax-comp-tree-view-node-selected-bg)}.ax-tree-view-node.ax-dragging{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-placeholder-opacity)}.ax-tree-view-node.ax-drag-placeholder{background:var(--ax-comp-tree-view-drag-placeholder-bg)}.ax-drag-preview{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;border:2px dashed currentColor!important}.ax-tree-view-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree-view-drop-active-bg);border-radius:var(--ax-comp-tree-view-node-border-radius);outline:2px dashed var(--ax-comp-tree-view-drop-active-outline);outline-offset:var(--ax-comp-tree-view-outline-offset-negative)}.ax-tree-view-node-content{display:flex;cursor:pointer;align-items:center;--tw-outline-style: none;outline-style:none;-webkit-user-select:none;user-select:none;gap:var(--ax-comp-tree-view-content-gap);padding:var(--ax-comp-tree-view-content-padding);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node-content:focus{--tw-outline-style: none;outline-style:none}.ax-tree-view-node-content:focus-visible{outline:2px solid rgba(var(--ax-sys-color-primary-500),.8);outline-offset:var(--ax-comp-tree-view-outline-offset);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-drag-handle{cursor:grab;opacity:60%;padding:var(--ax-comp-tree-view-drag-handle-padding);padding-inline-start:calc(var(--ax-comp-tree-view-drag-handle-padding) * 2)}.ax-tree-view-drag-handle:hover{opacity:100%}.ax-tree-view-drag-handle:active{cursor:grabbing}.ax-tree-view-expand-toggle{padding:var(--ax-comp-tree-view-expand-toggle-padding)}.ax-tree-view-expand-toggle:not(.ax-tree-view-has-children){pointer-events:none;opacity:0%}.ax-tree-view-toggle-icon{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.ax-tree-view-node-icon{flex-shrink:0;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ))}.ax-tree-view-node-label{flex:1;overflow:hidden;--tw-leading: calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.ax-tree-view-node-badge{padding:var(--ax-comp-tree-view-badge-padding);padding-inline-end:calc(var(--ax-comp-tree-view-badge-padding) * 1.5)}.ax-tree-view-children{padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-node-disabled{cursor:not-allowed;opacity:50%}.ax-tree-view-node-disabled .ax-tree-view-node-content{pointer-events:none}.ax-tree-view-node-disabled .ax-tree-view-expand-toggle{pointer-events:auto;cursor:pointer}.ax-tree-view-node-loading{opacity:70%}.ax-tree-view-card .ax-tree-view-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1)}.ax-tree-view-card .ax-tree-view-node.ax-tree-view-node-selected{border:1px solid rgba(var(--ax-sys-color-border-surface),1)}.ax-tree-view-with-lines .ax-tree-view-children{position:relative;padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-with-lines .ax-tree-view-children:before{content:\"\";position:absolute;top:calc(var(--spacing, .25rem) * 0);width:1px;inset-inline-start:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));height:calc(100% - .875rem);background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines .ax-tree-view-node{position:relative}.ax-tree-view-with-lines .ax-tree-view-node:before{content:\"\";position:absolute;height:1px;inset-inline-start:calc(-1 * var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2)));top:60%;width:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines>.ax-tree-view-drop-list>.ax-tree-view-node:before,.ax-tree-view-with-lines>.ax-tree-view-node:before{display:none}.ax-tree-view-skeleton-toggle{height:calc(var(--spacing, .25rem) * 5);min-width:calc(var(--spacing, .25rem) * 5);border-radius:.25rem}.ax-tree-view-skeleton-label{height:calc(var(--spacing, .25rem) * 3.5);flex:1;border-radius:.25rem}.ax-tree-view-drop-list.ax-tree-view-loading{display:none}}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped", "sortPreviewChanged"], exportAs: ["axDropList"] }, { kind: "directive", type: AXDoubleClickDirective, selector: "[axDoubleClick]", inputs: ["duration", "disabled"], outputs: ["onClick", "onDblClick"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXHighlightTextComponent, selector: "ax-highlight-text", inputs: ["text", "query", "highlightDisabled", "highlightOptions"] }], encapsulation: i0.ViewEncapsulation.None }); }
2738
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXTreeViewComponent, isStandalone: true, selector: "ax-tree-view", inputs: { datasource: { classPropertyName: "datasource", publicName: "datasource", isSignal: true, isRequired: true, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null }, selectionBehavior: { classPropertyName: "selectionBehavior", publicName: "selectionBehavior", isSignal: true, isRequired: false, transformFunction: null }, dragArea: { classPropertyName: "dragArea", publicName: "dragArea", isSignal: true, isRequired: false, transformFunction: null }, dragBehavior: { classPropertyName: "dragBehavior", publicName: "dragBehavior", isSignal: true, isRequired: false, transformFunction: null }, showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, showChildrenBadge: { classPropertyName: "showChildrenBadge", publicName: "showChildrenBadge", isSignal: true, isRequired: false, transformFunction: null }, expandedIcon: { classPropertyName: "expandedIcon", publicName: "expandedIcon", isSignal: true, isRequired: false, transformFunction: null }, collapsedIcon: { classPropertyName: "collapsedIcon", publicName: "collapsedIcon", isSignal: true, isRequired: false, transformFunction: null }, indentSize: { classPropertyName: "indentSize", publicName: "indentSize", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, alternate: { classPropertyName: "alternate", publicName: "alternate", isSignal: true, isRequired: false, transformFunction: null }, nodeTemplate: { classPropertyName: "nodeTemplate", publicName: "nodeTemplate", isSignal: true, isRequired: false, transformFunction: null }, idField: { classPropertyName: "idField", publicName: "idField", isSignal: true, isRequired: false, transformFunction: null }, titleField: { classPropertyName: "titleField", publicName: "titleField", isSignal: true, isRequired: false, transformFunction: null }, highlightText: { classPropertyName: "highlightText", publicName: "highlightText", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: "tooltipField", publicName: "tooltipField", isSignal: true, isRequired: false, transformFunction: null }, iconField: { classPropertyName: "iconField", publicName: "iconField", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: "expandedField", publicName: "expandedField", isSignal: true, isRequired: false, transformFunction: null }, selectedField: { classPropertyName: "selectedField", publicName: "selectedField", isSignal: true, isRequired: false, transformFunction: null }, indeterminateField: { classPropertyName: "indeterminateField", publicName: "indeterminateField", isSignal: true, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: "disabledField", publicName: "disabledField", isSignal: true, isRequired: false, transformFunction: null }, hiddenField: { classPropertyName: "hiddenField", publicName: "hiddenField", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: "childrenField", publicName: "childrenField", isSignal: true, isRequired: false, transformFunction: null }, childrenCountField: { classPropertyName: "childrenCountField", publicName: "childrenCountField", isSignal: true, isRequired: false, transformFunction: null }, dataField: { classPropertyName: "dataField", publicName: "dataField", isSignal: true, isRequired: false, transformFunction: null }, inheritDisabled: { classPropertyName: "inheritDisabled", publicName: "inheritDisabled", isSignal: true, isRequired: false, transformFunction: null }, expandOnDoubleClick: { classPropertyName: "expandOnDoubleClick", publicName: "expandOnDoubleClick", isSignal: true, isRequired: false, transformFunction: null }, doubleClickDuration: { classPropertyName: "doubleClickDuration", publicName: "doubleClickDuration", isSignal: true, isRequired: false, transformFunction: null }, tooltipDelay: { classPropertyName: "tooltipDelay", publicName: "tooltipDelay", isSignal: true, isRequired: false, transformFunction: null }, controlledSelection: { classPropertyName: "controlledSelection", publicName: "controlledSelection", isSignal: true, isRequired: false, transformFunction: null }, selectedIds: { classPropertyName: "selectedIds", publicName: "selectedIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { datasource: "datasourceChange", selectedIds: "selectedIdsChange", onBeforeDrop: "onBeforeDrop", onNodeToggle: "onNodeToggle", onNodeSelect: "onNodeSelect", onNodeDoubleClick: "onNodeDoubleClick", onNodeClick: "onNodeClick", onSelectionChange: "onSelectionChange", onOrderChange: "onOrderChange", onMoveChange: "onMoveChange", onItemsChange: "onItemsChange" }, host: { attributes: { "role": "tree", "tabindex": "0" }, listeners: { "keydown": "handleKeyDown($event)", "focus": "onTreeFocus($event)", "blur": "onTreeBlur($event)" }, properties: { "class.ax-tree-view-default": "look() === 'default'", "class.ax-tree-view-card": "look() === 'card'", "class.ax-tree-view-with-line": "look() === 'with-line'", "class.ax-tree-view-rtl": "isRtl", "style.--ax-tree-view-indent-size": "indentSize() + 'px'", "style.--ax-tree-view-line-offset": "(indentSize() / 2) + 'px'", "attr.aria-label": "\"Tree navigation\"" }, classAttribute: "ax-tree-view" }, providers: [AXTreeViewService], ngImport: i0, template: "<!-- Root loading skeleton -->\n@if (isLoading()) {\n <div class=\"ax-tree-view-drop-list\">\n @for (item of [1, 2, 3, 4, 5, 6, 7]; track item) {\n <div class=\"ax-tree-view-node\">\n <div class=\"ax-tree-view-node-content\">\n <ax-skeleton class=\"ax-tree-view-skeleton-toggle\"></ax-skeleton>\n <ax-skeleton class=\"ax-tree-view-skeleton-label\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n}\n\n<!-- Root drop list -->\n<div\n axFocusTrap\n [axDropList]=\"dragBehavior() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree-view-drop-list\"\n [class.ax-tree-view-card]=\"look() === 'card'\"\n [class.ax-tree-view-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree-view-loading]=\"isLoading()\"\n role=\"group\"\n>\n @for (node of nodes(); track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(0)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axGesture\n [tapInterval]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (tap)=\"onNodeGestureTap(node, $event)\"\n (doubletap)=\"onNodeGestureDoubleTap(node, $event)\"\n (click)=\"onNodeNativeClick(node, $event)\"\n (dblclick)=\"onNodeNativeDoubleClick(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), 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]=\"dragBehavior() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"getNodeId(parent)\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree-view-drop-list\"\n role=\"group\"\n >\n @for (node of children; track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(level)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axGesture\n [tapInterval]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (tap)=\"onNodeGestureTap(node, $event)\"\n (doubletap)=\"onNodeGestureDoubleTap(node, $event)\"\n (click)=\"onNodeNativeClick(node, $event)\"\n (dblclick)=\"onNodeNativeDoubleClick(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: ["@layer properties;@layer components{.ax-tree-view{display:block;width:100%;--ax-comp-tree-view-indent-size: 12px;--ax-comp-tree-view-node-hover-bg: rgba(var(--ax-sys-color-surface), .5);--ax-comp-tree-view-node-selected-bg: rgba(var(--ax-sys-color-primary-surface), .2);--ax-comp-tree-view-node-active-bg: rgba(var(--ax-sys-color-surface));--ax-comp-tree-view-node-border-radius: 6px;--ax-comp-tree-view-node-margin: .125rem;--ax-comp-tree-view-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree-view-drag-preview-opacity: .9;--ax-comp-tree-view-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree-view-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree-view-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3);--ax-comp-tree-view-content-padding: 0;--ax-comp-tree-view-content-gap: .25rem;--ax-comp-tree-view-drop-list-min-height: 1.5rem;--ax-comp-tree-view-drag-handle-padding: .125rem;--ax-comp-tree-view-badge-padding: .125rem;--ax-comp-tree-view-expand-toggle-padding: .125rem;--ax-comp-tree-view-outline-offset: 2px;--ax-comp-tree-view-outline-offset-negative: -2px;--ax-comp-tree-view-highlight-bg-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-tree-view-highlight-text-color: var(--ax-sys-color-on-warning-lighter-surface);--ax-comp-tree-view-highlight-border-color: var(--ax-sys-color-warning-500)}.ax-tree-view .ax-highlight{display:inline;margin:0;padding:0;background-color:rgb(var(--ax-comp-tree-view-highlight-bg-color));color:rgb(var(--ax-comp-tree-view-highlight-text-color));font-weight:inherit;box-shadow:none}.ax-tree-view-drop-list{min-height:var(--ax-comp-tree-view-drop-list-min-height)}.ax-tree-view-node{position:relative;cursor:move;margin:var(--ax-comp-tree-view-node-margin) 0;border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node:hover:not(.ax-dragging){background:var(--ax-comp-tree-view-node-hover-bg)}.ax-tree-view-node.ax-state-alternate{background-color:rgba(var(--ax-sys-color-light-surface))}.ax-tree-view-node.ax-state-alternate:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-surface))}.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-tree-view-node.ax-tree-view-node-selected,.ax-tree-view-node.ax-state-alternate.ax-tree-view-node-selected{background:var(--ax-comp-tree-view-node-selected-bg)}.ax-tree-view-node.ax-dragging{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-placeholder-opacity)}.ax-tree-view-node.ax-drag-placeholder{background:var(--ax-comp-tree-view-drag-placeholder-bg)}.ax-drag-preview{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;border:2px dashed currentColor!important}.ax-tree-view-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree-view-drop-active-bg);border-radius:var(--ax-comp-tree-view-node-border-radius);outline:2px dashed var(--ax-comp-tree-view-drop-active-outline);outline-offset:var(--ax-comp-tree-view-outline-offset-negative)}.ax-tree-view-node-content{display:flex;cursor:pointer;align-items:center;--tw-outline-style: none;outline-style:none;-webkit-user-select:none;user-select:none;gap:var(--ax-comp-tree-view-content-gap);padding:var(--ax-comp-tree-view-content-padding);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node-content:focus{--tw-outline-style: none;outline-style:none}.ax-tree-view-node-content:focus-visible{outline:2px solid rgba(var(--ax-sys-color-primary-500),.8);outline-offset:var(--ax-comp-tree-view-outline-offset);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-drag-handle{cursor:grab;opacity:60%;padding:var(--ax-comp-tree-view-drag-handle-padding);padding-inline-start:calc(var(--ax-comp-tree-view-drag-handle-padding) * 2)}.ax-tree-view-drag-handle:hover{opacity:100%}.ax-tree-view-drag-handle:active{cursor:grabbing}.ax-tree-view-expand-toggle{padding:var(--ax-comp-tree-view-expand-toggle-padding)}.ax-tree-view-expand-toggle:not(.ax-tree-view-has-children){pointer-events:none;opacity:0%}.ax-tree-view-toggle-icon{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.ax-tree-view-node-icon{flex-shrink:0;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ))}.ax-tree-view-node-label{flex:1;overflow:hidden;--tw-leading: calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.ax-tree-view-node-badge{padding:var(--ax-comp-tree-view-badge-padding);padding-inline-end:calc(var(--ax-comp-tree-view-badge-padding) * 1.5)}.ax-tree-view-children{padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-node-disabled{cursor:not-allowed;opacity:50%}.ax-tree-view-node-disabled .ax-tree-view-node-content{pointer-events:none}.ax-tree-view-node-disabled .ax-tree-view-expand-toggle{pointer-events:auto;cursor:pointer}.ax-tree-view-node-loading{opacity:70%}.ax-tree-view-card .ax-tree-view-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1)}.ax-tree-view-card .ax-tree-view-node.ax-tree-view-node-selected{border:1px solid rgba(var(--ax-sys-color-border-surface),1)}.ax-tree-view-with-lines .ax-tree-view-children{position:relative;padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-with-lines .ax-tree-view-children:before{content:\"\";position:absolute;top:calc(var(--spacing, .25rem) * 0);width:1px;inset-inline-start:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));height:calc(100% - .875rem);background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines .ax-tree-view-node{position:relative}.ax-tree-view-with-lines .ax-tree-view-node:before{content:\"\";position:absolute;height:1px;inset-inline-start:calc(-1 * var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2)));top:60%;width:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines>.ax-tree-view-drop-list>.ax-tree-view-node:before,.ax-tree-view-with-lines>.ax-tree-view-node:before{display:none}.ax-tree-view-skeleton-toggle{height:calc(var(--spacing, .25rem) * 5);min-width:calc(var(--spacing, .25rem) * 5);border-radius:.25rem}.ax-tree-view-skeleton-label{height:calc(var(--spacing, .25rem) * 3.5);flex:1;border-radius:.25rem}.ax-tree-view-drop-list.ax-tree-view-loading{display:none}}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped", "sortPreviewChanged"], exportAs: ["axDropList"] }, { kind: "directive", type: AXGestureDirective, selector: "[axGesture]", inputs: ["options", "direction", "enablePinch", "enableRotate", "disabled", "tapInterval"], outputs: ["tap", "doubletap", "press", "pan", "panstart", "panmove", "panend", "swipe", "pinch", "rotate"], exportAs: ["axGesture"] }, { kind: "directive", type: AXFocusTrapDirective, selector: "[axFocusTrap]", inputs: ["axFocusTrapArrowNavigation"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "directive", type: AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXHighlightTextComponent, selector: "ax-highlight-text", inputs: ["text", "query", "highlightDisabled", "highlightOptions"] }], encapsulation: i0.ViewEncapsulation.None }); }
2707
2739
  }
2708
2740
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXTreeViewComponent, decorators: [{
2709
2741
  type: Component,
@@ -2713,7 +2745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2713
2745
  AXDragDirective,
2714
2746
  AXDragHandleDirective,
2715
2747
  AXDropListDirective,
2716
- AXDoubleClickDirective,
2748
+ AXGestureDirective,
2717
2749
  AXFocusTrapDirective,
2718
2750
  NgTemplateOutlet,
2719
2751
  AXButtonComponent,
@@ -2737,7 +2769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2737
2769
  '(keydown)': 'handleKeyDown($event)',
2738
2770
  '(focus)': 'onTreeFocus($event)',
2739
2771
  '(blur)': 'onTreeBlur($event)',
2740
- }, template: "<!-- Root loading skeleton -->\n@if (isLoading()) {\n <div class=\"ax-tree-view-drop-list\">\n @for (item of [1, 2, 3, 4, 5, 6, 7]; track item) {\n <div class=\"ax-tree-view-node\">\n <div class=\"ax-tree-view-node-content\">\n <ax-skeleton class=\"ax-tree-view-skeleton-toggle\"></ax-skeleton>\n <ax-skeleton class=\"ax-tree-view-skeleton-label\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n}\n\n<!-- Root drop list -->\n<div\n axFocusTrap\n [axDropList]=\"dragBehavior() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree-view-drop-list\"\n [class.ax-tree-view-card]=\"look() === 'card'\"\n [class.ax-tree-view-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree-view-loading]=\"isLoading()\"\n role=\"group\"\n>\n @for (node of nodes(); track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(0)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axDoubleClick\n [duration]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (onClick)=\"onNodeClickHandle(node, $event)\"\n (onDblClick)=\"onNodeDoubleClickHandle(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), 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]=\"dragBehavior() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"getNodeId(parent)\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree-view-drop-list\"\n role=\"group\"\n >\n @for (node of children; track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(level)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axDoubleClick\n [duration]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (onClick)=\"onNodeClickHandle(node, $event)\"\n (onDblClick)=\"onNodeDoubleClickHandle(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: ["@layer properties;@layer components{.ax-tree-view{display:block;width:100%;--ax-comp-tree-view-indent-size: 12px;--ax-comp-tree-view-node-hover-bg: rgba(var(--ax-sys-color-surface), .5);--ax-comp-tree-view-node-selected-bg: rgba(var(--ax-sys-color-primary-surface), .2);--ax-comp-tree-view-node-active-bg: rgba(var(--ax-sys-color-surface));--ax-comp-tree-view-node-border-radius: 6px;--ax-comp-tree-view-node-margin: .125rem;--ax-comp-tree-view-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree-view-drag-preview-opacity: .9;--ax-comp-tree-view-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree-view-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree-view-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3);--ax-comp-tree-view-content-padding: 0;--ax-comp-tree-view-content-gap: .25rem;--ax-comp-tree-view-drop-list-min-height: 1.5rem;--ax-comp-tree-view-drag-handle-padding: .125rem;--ax-comp-tree-view-badge-padding: .125rem;--ax-comp-tree-view-expand-toggle-padding: .125rem;--ax-comp-tree-view-outline-offset: 2px;--ax-comp-tree-view-outline-offset-negative: -2px;--ax-comp-tree-view-highlight-bg-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-tree-view-highlight-text-color: var(--ax-sys-color-on-warning-lighter-surface);--ax-comp-tree-view-highlight-border-color: var(--ax-sys-color-warning-500)}.ax-tree-view .ax-highlight{display:inline;margin:0;padding:0;background-color:rgb(var(--ax-comp-tree-view-highlight-bg-color));color:rgb(var(--ax-comp-tree-view-highlight-text-color));font-weight:inherit;box-shadow:none}.ax-tree-view-drop-list{min-height:var(--ax-comp-tree-view-drop-list-min-height)}.ax-tree-view-node{position:relative;cursor:move;margin:var(--ax-comp-tree-view-node-margin) 0;border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node:hover:not(.ax-dragging){background:var(--ax-comp-tree-view-node-hover-bg)}.ax-tree-view-node.ax-state-alternate{background-color:rgba(var(--ax-sys-color-light-surface))}.ax-tree-view-node.ax-state-alternate:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-surface))}.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-tree-view-node.ax-tree-view-node-selected,.ax-tree-view-node.ax-state-alternate.ax-tree-view-node-selected{background:var(--ax-comp-tree-view-node-selected-bg)}.ax-tree-view-node.ax-dragging{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-placeholder-opacity)}.ax-tree-view-node.ax-drag-placeholder{background:var(--ax-comp-tree-view-drag-placeholder-bg)}.ax-drag-preview{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;border:2px dashed currentColor!important}.ax-tree-view-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree-view-drop-active-bg);border-radius:var(--ax-comp-tree-view-node-border-radius);outline:2px dashed var(--ax-comp-tree-view-drop-active-outline);outline-offset:var(--ax-comp-tree-view-outline-offset-negative)}.ax-tree-view-node-content{display:flex;cursor:pointer;align-items:center;--tw-outline-style: none;outline-style:none;-webkit-user-select:none;user-select:none;gap:var(--ax-comp-tree-view-content-gap);padding:var(--ax-comp-tree-view-content-padding);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node-content:focus{--tw-outline-style: none;outline-style:none}.ax-tree-view-node-content:focus-visible{outline:2px solid rgba(var(--ax-sys-color-primary-500),.8);outline-offset:var(--ax-comp-tree-view-outline-offset);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-drag-handle{cursor:grab;opacity:60%;padding:var(--ax-comp-tree-view-drag-handle-padding);padding-inline-start:calc(var(--ax-comp-tree-view-drag-handle-padding) * 2)}.ax-tree-view-drag-handle:hover{opacity:100%}.ax-tree-view-drag-handle:active{cursor:grabbing}.ax-tree-view-expand-toggle{padding:var(--ax-comp-tree-view-expand-toggle-padding)}.ax-tree-view-expand-toggle:not(.ax-tree-view-has-children){pointer-events:none;opacity:0%}.ax-tree-view-toggle-icon{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.ax-tree-view-node-icon{flex-shrink:0;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ))}.ax-tree-view-node-label{flex:1;overflow:hidden;--tw-leading: calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.ax-tree-view-node-badge{padding:var(--ax-comp-tree-view-badge-padding);padding-inline-end:calc(var(--ax-comp-tree-view-badge-padding) * 1.5)}.ax-tree-view-children{padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-node-disabled{cursor:not-allowed;opacity:50%}.ax-tree-view-node-disabled .ax-tree-view-node-content{pointer-events:none}.ax-tree-view-node-disabled .ax-tree-view-expand-toggle{pointer-events:auto;cursor:pointer}.ax-tree-view-node-loading{opacity:70%}.ax-tree-view-card .ax-tree-view-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1)}.ax-tree-view-card .ax-tree-view-node.ax-tree-view-node-selected{border:1px solid rgba(var(--ax-sys-color-border-surface),1)}.ax-tree-view-with-lines .ax-tree-view-children{position:relative;padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-with-lines .ax-tree-view-children:before{content:\"\";position:absolute;top:calc(var(--spacing, .25rem) * 0);width:1px;inset-inline-start:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));height:calc(100% - .875rem);background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines .ax-tree-view-node{position:relative}.ax-tree-view-with-lines .ax-tree-view-node:before{content:\"\";position:absolute;height:1px;inset-inline-start:calc(-1 * var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2)));top:60%;width:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines>.ax-tree-view-drop-list>.ax-tree-view-node:before,.ax-tree-view-with-lines>.ax-tree-view-node:before{display:none}.ax-tree-view-skeleton-toggle{height:calc(var(--spacing, .25rem) * 5);min-width:calc(var(--spacing, .25rem) * 5);border-radius:.25rem}.ax-tree-view-skeleton-label{height:calc(var(--spacing, .25rem) * 3.5);flex:1;border-radius:.25rem}.ax-tree-view-drop-list.ax-tree-view-loading{display:none}}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
2772
+ }, template: "<!-- Root loading skeleton -->\n@if (isLoading()) {\n <div class=\"ax-tree-view-drop-list\">\n @for (item of [1, 2, 3, 4, 5, 6, 7]; track item) {\n <div class=\"ax-tree-view-node\">\n <div class=\"ax-tree-view-node-content\">\n <ax-skeleton class=\"ax-tree-view-skeleton-toggle\"></ax-skeleton>\n <ax-skeleton class=\"ax-tree-view-skeleton-label\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n}\n\n<!-- Root drop list -->\n<div\n axFocusTrap\n [axDropList]=\"dragBehavior() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree-view-drop-list\"\n [class.ax-tree-view-card]=\"look() === 'card'\"\n [class.ax-tree-view-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree-view-loading]=\"isLoading()\"\n role=\"group\"\n>\n @for (node of nodes(); track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(0)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axGesture\n [tapInterval]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (tap)=\"onNodeGestureTap(node, $event)\"\n (doubletap)=\"onNodeGestureDoubleTap(node, $event)\"\n (click)=\"onNodeNativeClick(node, $event)\"\n (dblclick)=\"onNodeNativeDoubleClick(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), 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]=\"dragBehavior() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"getNodeId(parent)\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree-view-drop-list\"\n role=\"group\"\n >\n @for (node of children; track getNodeId(node)) {\n @if (getNodeHidden(node) !== true) {\n <div\n [axDrag]=\"dragBehavior() !== 'none'\"\n [dragDisabled]=\"isNodeEffectivelyDisabled(node)\"\n [dragData]=\"node\"\n class=\"ax-tree-view-node\"\n [class.ax-tree-view-node-active]=\"activeNodeId() === getNodeId(node)\"\n [class.ax-tree-view-node-selected]=\"getNodeSelected(node)\"\n [class.ax-tree-view-node-disabled]=\"isNodeEffectivelyDisabled(node)\"\n [class.ax-tree-view-node-loading]=\"getNodeLoading(node)\"\n [class.ax-tree-view-node-focused]=\"isNodeFocused(getNodeId(node))\"\n [class.ax-state-alternate]=\"isAlternateNode(node)\"\n role=\"treeitem\"\n [attr.aria-level]=\"getNodeAriaLevel(level)\"\n [attr.aria-expanded]=\"getNodeAriaExpanded(node)\"\n [attr.aria-selected]=\"getNodeAriaSelected(node)\"\n [attr.aria-disabled]=\"\n isNodeEffectivelyDisabled(node) || (isLeafOnlyMode() && !isLeafNode(node)) ? 'true' : null\n \"\n >\n <div\n class=\"ax-tree-view-node-content\"\n [axDropList]=\"dragBehavior() !== 'none'\"\n [id]=\"'ax-tree-view-node-drop-' + getNodeId(node)\"\n [attr.data-node-id]=\"getNodeId(node)\"\n [attr.data-tree-node-id]=\"getNodeId(node)\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-view-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n axGesture\n [tapInterval]=\"doubleClickDuration()\"\n [disabled]=\"isDoubleClickDisabledForNode(node)\"\n (tap)=\"onNodeGestureTap(node, $event)\"\n (doubletap)=\"onNodeGestureDoubleTap(node, $event)\"\n (click)=\"onNodeNativeClick(node, $event)\"\n (dblclick)=\"onNodeNativeDoubleClick(node, $event)\"\n (focus)=\"onNodeFocus(getNodeId(node))\"\n (blur)=\"focusedNodeId.set(null)\"\n [tabindex]=\"isNodeFocused(getNodeId(node)) ? 0 : -1\"\n >\n @if (shouldShowDragHandle()) {\n <span\n class=\"ax-tree-view-drag-handle\"\n axDragHandle\n title=\"Drag to reorder\"\n (click)=\"$event.stopPropagation()\"\n >\n \u22EE\u22EE\n </span>\n }\n <ax-button\n look=\"link\"\n class=\"ax-tree-view-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n (click)=\"$event.stopPropagation()\"\n [class.ax-tree-view-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree-view-expanded]=\"getNodeExpanded(node)\"\n [disabled]=\"getNodeLoading(node)\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (getNodeLoading(node)) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree-view-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i\n [class]=\"getNodeExpanded(node) ? directionExpandedIcon() : directionCollapsedIcon()\"\n class=\"ax-tree-view-toggle-icon\"\n ></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (nodeTemplate()) {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (shouldShowCheckboxForNode(node)) {\n <ax-check-box\n class=\"ax-tree-view-checkbox\"\n [ngModel]=\"getNodeIndeterminate(node) ? null : getNodeSelected(node) || false\"\n [indeterminate]=\"getNodeIndeterminate(node) || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n ></ax-check-box>\n }\n @if (showIcons() && getNodeIcon(node)) {\n <i [class]=\"getNodeIcon(node)\" class=\"ax-tree-view-node-icon\"></i>\n }\n <span\n class=\"ax-tree-view-node-label\"\n [axTooltip]=\"getNodeTooltip(node) || ''\"\n [axTooltipOpenAfter]=\"tooltipDelay()\"\n [axTooltipDisabled]=\"!getNodeTooltip(node)\"\n [axTooltipPlacement]=\"'top-start'\"\n >\n <ax-highlight-text [text]=\"getNodeTitle(node)\" [query]=\"highlightText()\" />\n </span>\n @if (showChildrenBadge() && (getNodeChildrenCount(node) || getNodeChildren(node)?.length)) {\n <span class=\"ax-tree-view-node-badge\">\n <ax-badge\n class=\"ax-tree-view-children-badge\"\n [text]=\"(getNodeChildrenCount(node) ?? getNodeChildren(node)?.length ?? 0).toString()\"\n ></ax-badge>\n </span>\n }\n }\n </div>\n </div>\n @if (getNodeExpanded(node) && getNodeChildren(node)?.length) {\n <div class=\"ax-tree-view-children\" role=\"group\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: getNodeChildren(node), parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: ["@layer properties;@layer components{.ax-tree-view{display:block;width:100%;--ax-comp-tree-view-indent-size: 12px;--ax-comp-tree-view-node-hover-bg: rgba(var(--ax-sys-color-surface), .5);--ax-comp-tree-view-node-selected-bg: rgba(var(--ax-sys-color-primary-surface), .2);--ax-comp-tree-view-node-active-bg: rgba(var(--ax-sys-color-surface));--ax-comp-tree-view-node-border-radius: 6px;--ax-comp-tree-view-node-margin: .125rem;--ax-comp-tree-view-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree-view-drag-preview-opacity: .9;--ax-comp-tree-view-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree-view-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree-view-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3);--ax-comp-tree-view-content-padding: 0;--ax-comp-tree-view-content-gap: .25rem;--ax-comp-tree-view-drop-list-min-height: 1.5rem;--ax-comp-tree-view-drag-handle-padding: .125rem;--ax-comp-tree-view-badge-padding: .125rem;--ax-comp-tree-view-expand-toggle-padding: .125rem;--ax-comp-tree-view-outline-offset: 2px;--ax-comp-tree-view-outline-offset-negative: -2px;--ax-comp-tree-view-highlight-bg-color: var(--ax-sys-color-warning-lighter-surface);--ax-comp-tree-view-highlight-text-color: var(--ax-sys-color-on-warning-lighter-surface);--ax-comp-tree-view-highlight-border-color: var(--ax-sys-color-warning-500)}.ax-tree-view .ax-highlight{display:inline;margin:0;padding:0;background-color:rgb(var(--ax-comp-tree-view-highlight-bg-color));color:rgb(var(--ax-comp-tree-view-highlight-text-color));font-weight:inherit;box-shadow:none}.ax-tree-view-drop-list{min-height:var(--ax-comp-tree-view-drop-list-min-height)}.ax-tree-view-node{position:relative;cursor:move;margin:var(--ax-comp-tree-view-node-margin) 0;border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node:hover:not(.ax-dragging){background:var(--ax-comp-tree-view-node-hover-bg)}.ax-tree-view-node.ax-state-alternate{background-color:rgba(var(--ax-sys-color-light-surface))}.ax-tree-view-node.ax-state-alternate:where(.ax-dark,.ax-dark *):not(:where(.ax-light,.ax-light *)){background-color:rgba(var(--ax-sys-color-surface))}.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:rgba(var(--ax-sys-color-on-surface))}@supports (color: color-mix(in lab,red,red)){.ax-tree-view-node.ax-state-alternate:hover:not(.ax-dragging){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 15%,transparent)}}.ax-tree-view-node.ax-tree-view-node-selected,.ax-tree-view-node.ax-state-alternate.ax-tree-view-node-selected{background:var(--ax-comp-tree-view-node-selected-bg)}.ax-tree-view-node.ax-dragging{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-placeholder-opacity)}.ax-tree-view-node.ax-drag-placeholder{background:var(--ax-comp-tree-view-drag-placeholder-bg)}.ax-drag-preview{cursor:grabbing!important;opacity:var(--ax-comp-tree-view-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;border:2px dashed currentColor!important}.ax-tree-view-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree-view-drop-active-bg);border-radius:var(--ax-comp-tree-view-node-border-radius);outline:2px dashed var(--ax-comp-tree-view-drop-active-outline);outline-offset:var(--ax-comp-tree-view-outline-offset-negative)}.ax-tree-view-node-content{display:flex;cursor:pointer;align-items:center;--tw-outline-style: none;outline-style:none;-webkit-user-select:none;user-select:none;gap:var(--ax-comp-tree-view-content-gap);padding:var(--ax-comp-tree-view-content-padding);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-node-content:focus{--tw-outline-style: none;outline-style:none}.ax-tree-view-node-content:focus-visible{outline:2px solid rgba(var(--ax-sys-color-primary-500),.8);outline-offset:var(--ax-comp-tree-view-outline-offset);border-radius:var(--ax-comp-tree-view-node-border-radius)}.ax-tree-view-drag-handle{cursor:grab;opacity:60%;padding:var(--ax-comp-tree-view-drag-handle-padding);padding-inline-start:calc(var(--ax-comp-tree-view-drag-handle-padding) * 2)}.ax-tree-view-drag-handle:hover{opacity:100%}.ax-tree-view-drag-handle:active{cursor:grabbing}.ax-tree-view-expand-toggle{padding:var(--ax-comp-tree-view-expand-toggle-padding)}.ax-tree-view-expand-toggle:not(.ax-tree-view-has-children){pointer-events:none;opacity:0%}.ax-tree-view-toggle-icon{font-size:var(--text-xs, .75rem);line-height:var(--tw-leading, var(--text-xs--line-height, calc(1 / .75)))}.ax-tree-view-node-icon{flex-shrink:0;font-size:var(--text-base, 1rem);line-height:var(--tw-leading, var(--text-base--line-height, 1.5 ))}.ax-tree-view-node-label{flex:1;overflow:hidden;--tw-leading: calc(var(--spacing, .25rem) * 4);line-height:calc(var(--spacing, .25rem) * 4);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem}.ax-tree-view-node-badge{padding:var(--ax-comp-tree-view-badge-padding);padding-inline-end:calc(var(--ax-comp-tree-view-badge-padding) * 1.5)}.ax-tree-view-children{padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-node-disabled{cursor:not-allowed;opacity:50%}.ax-tree-view-node-disabled .ax-tree-view-node-content{pointer-events:none}.ax-tree-view-node-disabled .ax-tree-view-expand-toggle{pointer-events:auto;cursor:pointer}.ax-tree-view-node-loading{opacity:70%}.ax-tree-view-card .ax-tree-view-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1)}.ax-tree-view-card .ax-tree-view-node.ax-tree-view-node-selected{border:1px solid rgba(var(--ax-sys-color-border-surface),1)}.ax-tree-view-with-lines .ax-tree-view-children{position:relative;padding-inline-start:var(--ax-tree-view-indent-size, var(--ax-comp-tree-view-indent-size))}.ax-tree-view-with-lines .ax-tree-view-children:before{content:\"\";position:absolute;top:calc(var(--spacing, .25rem) * 0);width:1px;inset-inline-start:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));height:calc(100% - .875rem);background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines .ax-tree-view-node{position:relative}.ax-tree-view-with-lines .ax-tree-view-node:before{content:\"\";position:absolute;height:1px;inset-inline-start:calc(-1 * var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2)));top:60%;width:var(--ax-tree-view-line-offset, calc(var(--ax-comp-tree-view-indent-size) / 2));background:var(--ax-tree-view-line-color, var(--ax-comp-tree-view-line-color))}.ax-tree-view-with-lines>.ax-tree-view-drop-list>.ax-tree-view-node:before,.ax-tree-view-with-lines>.ax-tree-view-node:before{display:none}.ax-tree-view-skeleton-toggle{height:calc(var(--spacing, .25rem) * 5);min-width:calc(var(--spacing, .25rem) * 5);border-radius:.25rem}.ax-tree-view-skeleton-label{height:calc(var(--spacing, .25rem) * 3.5);flex:1;border-radius:.25rem}.ax-tree-view-drop-list.ax-tree-view-loading{display:none}}@property --tw-leading{syntax: \"*\"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
2741
2773
  }], propDecorators: { datasource: [{ type: i0.Input, args: [{ isSignal: true, alias: "datasource", required: true }] }, { type: i0.Output, args: ["datasourceChange"] }], selectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMode", required: false }] }], selectionBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionBehavior", required: false }] }], dragArea: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragArea", required: false }] }], dragBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragBehavior", required: false }] }], showIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcons", required: false }] }], showChildrenBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChildrenBadge", required: false }] }], expandedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIcon", required: false }] }], collapsedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedIcon", required: false }] }], indentSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentSize", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], alternate: [{ type: i0.Input, args: [{ isSignal: true, alias: "alternate", required: false }] }], nodeTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeTemplate", required: false }] }], idField: [{ type: i0.Input, args: [{ isSignal: true, alias: "idField", required: false }] }], titleField: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleField", required: false }] }], highlightText: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightText", required: false }] }], tooltipField: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipField", required: false }] }], iconField: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconField", required: false }] }], expandedField: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedField", required: false }] }], selectedField: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedField", required: false }] }], indeterminateField: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminateField", required: false }] }], disabledField: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabledField", required: false }] }], hiddenField: [{ type: i0.Input, args: [{ isSignal: true, alias: "hiddenField", required: false }] }], childrenField: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenField", required: false }] }], childrenCountField: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenCountField", required: false }] }], dataField: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataField", required: false }] }], inheritDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "inheritDisabled", required: false }] }], expandOnDoubleClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandOnDoubleClick", required: false }] }], doubleClickDuration: [{ type: i0.Input, args: [{ isSignal: true, alias: "doubleClickDuration", required: false }] }], tooltipDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipDelay", required: false }] }], controlledSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "controlledSelection", required: false }] }], selectedIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedIds", required: false }] }, { type: i0.Output, args: ["selectedIdsChange"] }], onBeforeDrop: [{ type: i0.Output, args: ["onBeforeDrop"] }], onNodeToggle: [{ type: i0.Output, args: ["onNodeToggle"] }], onNodeSelect: [{ type: i0.Output, args: ["onNodeSelect"] }], onNodeDoubleClick: [{
2742
2774
  type: Output
2743
2775
  }], onNodeClick: [{ type: i0.Output, args: ["onNodeClick"] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }], onOrderChange: [{ type: i0.Output, args: ["onOrderChange"] }], onMoveChange: [{ type: i0.Output, args: ["onMoveChange"] }], onItemsChange: [{ type: i0.Output, args: ["onItemsChange"] }] } });