@ngstarter-ui/components 21.0.40 → 21.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-registry.json +54 -14
- package/fesm2022/ngstarter-ui-components-country-select.mjs +59 -16
- package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-form-builder.mjs +725 -291
- package/fesm2022/ngstarter-ui-components-form-builder.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs → ngstarter-ui-components-form-renderer-radio-group-field-DugkPKYU.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs.map → ngstarter-ui-components-form-renderer-radio-group-field-DugkPKYU.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-radio.mjs +8 -5
- package/fesm2022/ngstarter-ui-components-radio.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs +2 -1
- package/fesm2022/ngstarter-ui-components-scrollbar-area.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs +12 -1
- package/fesm2022/ngstarter-ui-components-slide-toggle.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tabs.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tree.mjs +7 -5
- package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngstarter-ui-components-country-select.d.ts +20 -9
- package/types/ngstarter-ui-components-form-builder.d.ts +114 -21
- package/types/ngstarter-ui-components-radio.d.ts +4 -1
- package/types/ngstarter-ui-components-slide-toggle.d.ts +6 -1
- package/types/ngstarter-ui-components-tree.d.ts +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-tree.mjs","sources":["../../../projects/components/tree/src/tree/tree.ts","../../../projects/components/tree/src/tree-node/tree-node.ts","../../../projects/components/tree/src/tree-node-padding.ts","../../../projects/components/tree/src/tree-node-toggle.ts","../../../projects/components/tree/src/tree-node-def.ts","../../../projects/components/tree/ngstarter-ui-components-tree.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n ContentChild,\n Component,\n Directive,\n effect,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n ViewContainerRef,\n ViewChild\n} from '@angular/core';\nimport { DataSource } from '@angular/cdk/collections';\nimport { CDK_TREE_NODE_OUTLET_NODE, CdkTree, CdkTreeNodeOutlet } from '@angular/cdk/tree';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[ngsTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: TreeNodeOutlet,\n },\n ],\n standalone: true\n})\nexport class TreeNodeOutlet implements CdkTreeNodeOutlet {\n viewContainer = inject(ViewContainerRef);\n _node = inject(CDK_TREE_NODE_OUTLET_NODE, { optional: true });\n}\n\nexport interface TreeNodeDrop<T> {\n source: T;\n target: T;\n position: TreeNodeDropPosition;\n sourceValue: unknown;\n targetValue: unknown;\n dataSource: T[];\n}\n\nexport interface TreeNodeDropContext<T> {\n source: T;\n target: T;\n position: TreeNodeDropPosition;\n}\n\nexport interface TreeNodeDragPlaceholderContext<T> {\n $implicit: T;\n source: T;\n target?: T;\n position?: TreeNodeDropPosition;\n}\n\nexport type TreeNodeDropPosition = 'before' | 'inside' | 'after';\nexport type TreeNodeDragPredicate<T> = (node: T) => boolean;\nexport type TreeNodeDropPredicate<T> = (source: T, target: T, position: TreeNodeDropPosition) => boolean;\nexport type TreeDragPreview = 'node' | 'none';\nexport type TreeFilterMode = 'includeAncestors' | 'includeDescendants';\nexport type TreeFilterPredicate<T> = (node: T, filterValue: string) => boolean;\n\nconst NGS_TREE_DEFAULT_FILTER_PREDICATE = <T,>(node: T, filterValue: string): boolean => {\n const query = filterValue.trim().toLowerCase();\n if (!query) {\n return true;\n }\n\n const candidates = node && typeof node === 'object'\n ? [\n (node as Record<string, unknown>)['name'],\n (node as Record<string, unknown>)['label'],\n (node as Record<string, unknown>)['title'],\n (node as Record<string, unknown>)['value'],\n ]\n : [node];\n\n return candidates.some(value => value != null && String(value).toLowerCase().includes(query));\n};\n\n@Directive({\n selector: 'ng-template[ngsTreeDragPlaceholder]',\n standalone: true\n})\nexport class TreeDragPlaceholder<T> {\n readonly templateRef = inject<TemplateRef<TreeNodeDragPlaceholderContext<T>>>(TemplateRef);\n\n static ngTemplateContextGuard<T>(\n _directive: TreeDragPlaceholder<T>,\n _context: unknown,\n ): _context is TreeNodeDragPlaceholderContext<T> {\n return true;\n }\n}\n\n@Component({\n selector: 'ngs-tree',\n exportAs: 'ngsTree',\n imports: [\n TreeNodeOutlet\n ],\n template: `<ng-container ngsTreeNodeOutlet />`,\n styleUrl: './tree.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CdkTree, useExisting: Tree }],\n host: {\n 'class': 'ngs-tree',\n },\n})\nexport class Tree<T, K = T> extends CdkTree<T, K> {\n override get dataSource(): DataSource<T> | Observable<T[]> | T[] {\n return this._sourceDataSource ?? [];\n }\n\n override set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n if (this._sourceDataSource !== dataSource) {\n this._sourceDataSource = dataSource;\n this._applyFilteredDataSource();\n }\n }\n\n checkable = input(false, {\n transform: booleanAttribute\n });\n\n selectable = input(false, {\n transform: booleanAttribute\n });\n\n draggable = input(false, {\n transform: booleanAttribute\n });\n\n draggablePredicate = input<TreeNodeDragPredicate<T>>(() => true);\n\n dropPredicate = input<TreeNodeDropPredicate<T>>(() => true);\n\n reorderOnDrop = input(true, {\n transform: booleanAttribute\n });\n\n dragPreview = input<TreeDragPreview>('node');\n\n childrenKey = input('children');\n\n filterValue = input('', {\n transform: (value: unknown) => value == null ? '' : String(value)\n });\n\n filterPredicate = input<TreeFilterPredicate<T>>(NGS_TREE_DEFAULT_FILTER_PREDICATE);\n\n filterMode = input<TreeFilterMode>('includeAncestors');\n\n readonly checkedChange = output<unknown[]>();\n readonly selectedChange = output<unknown>();\n readonly nodeDrop = output<TreeNodeDrop<T>>();\n\n readonly _checkStateVersion = signal(0);\n readonly _selectedKey = signal<unknown>(undefined);\n readonly _dropTargetKey = signal<unknown>(undefined);\n readonly _dropTargetPosition = signal<TreeNodeDropPosition | undefined>(undefined);\n readonly _draggedNodeKey = signal<unknown>(undefined);\n private _checkedKeys = new Set<unknown>();\n private _nodeValueByDataKey = new Map<unknown, unknown>();\n private _disabledDataKeys = new Set<unknown>();\n private _enabledDataKeys = new Set<unknown>();\n private _draggedNode?: T;\n private _sourceDataSource?: DataSource<T> | Observable<T[]> | T[];\n private _filteredNodeOriginals = new WeakMap<object, T>();\n\n @ContentChild(TreeDragPlaceholder)\n private _dragPlaceholder?: TreeDragPlaceholder<T>;\n\n @ViewChild(TreeNodeOutlet, { static: true })\n override _nodeOutlet: TreeNodeOutlet = undefined!;\n\n constructor() {\n super();\n effect(() => {\n this.filterValue();\n this.filterPredicate();\n this.filterMode();\n this._applyFilteredDataSource();\n });\n }\n\n _toggleNodeChecked(node: T, checked: boolean) {\n if (this._isNodeDisabled(node)) {\n return;\n }\n\n const nodes = [node, ...this._getCheckableDescendants(node)].filter(item => !this._isNodeDisabled(item));\n for (const item of nodes) {\n const key = this._getCheckableNodeKey(item);\n if (checked) {\n this._checkedKeys.add(key);\n } else {\n this._checkedKeys.delete(key);\n }\n }\n this._syncCheckedParentKeys();\n this._checkStateVersion.update(value => value + 1);\n this.checkedChange.emit(this._getCheckedValues());\n }\n\n _isNodeChecked(node: T): boolean {\n if (this._isNodeDisabled(node)) {\n return false;\n }\n\n const descendants = this._getCheckableDescendants(node).filter(item => !this._isNodeDisabled(item));\n if (!descendants.length) {\n return this._checkedKeys.has(this._getCheckableNodeKey(node));\n }\n\n return descendants.every(item => this._checkedKeys.has(this._getCheckableNodeKey(item)));\n }\n\n _isNodeIndeterminate(node: T): boolean {\n if (this._isNodeDisabled(node)) {\n return false;\n }\n\n const descendants = this._getCheckableDescendants(node).filter(item => !this._isNodeDisabled(item));\n if (!descendants.length) {\n return false;\n }\n\n const selectedCount = descendants.filter(item => this._checkedKeys.has(this._getCheckableNodeKey(item))).length;\n return selectedCount > 0 && selectedCount < descendants.length;\n }\n\n _selectNode(node: T) {\n if (this._isNodeDisabled(node)) {\n return;\n }\n\n const value = this._getTreeNodeValue(node);\n if (Object.is(this._selectedKey(), value)) {\n return;\n }\n\n this._selectedKey.set(value);\n this.selectedChange.emit(value);\n }\n\n _isNodeSelected(node: T): boolean {\n return !this._isNodeDisabled(node) && Object.is(this._selectedKey(), this._getTreeNodeValue(node));\n }\n\n _canDragNode(node: T): boolean {\n return node !== undefined\n && this.draggable()\n && !this._isNodeDisabled(node)\n && this.draggablePredicate()(node);\n }\n\n _isNodeDropTarget(node: T): boolean {\n return node !== undefined && Object.is(this._dropTargetKey(), this._getTreeNodeDataKey(node));\n }\n\n _isNodeDropTargetPosition(node: T, position: TreeNodeDropPosition): boolean {\n return this._isNodeDropTarget(node) && this._dropTargetPosition() === position;\n }\n\n _isNodeDraggingSource(node: T): boolean {\n return node !== undefined && Object.is(this._draggedNodeKey(), this._getTreeNodeDataKey(node));\n }\n\n _startNodeDrag(node: T, event: DragEvent) {\n if (!this._canDragNode(node)) {\n event.preventDefault();\n return;\n }\n\n this._draggedNode = node;\n this._draggedNodeKey.set(this._getTreeNodeDataKey(node));\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', String(this._getTreeNodeValue(node) ?? ''));\n }\n }\n\n _dragNodeOver(node: T, event: DragEvent) {\n const position = this._getDropPosition(event);\n if (!this._canDropNode(node, position)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'move';\n }\n this._dropTargetKey.set(this._getTreeNodeDataKey(node));\n this._dropTargetPosition.set(position);\n }\n\n _dragNodeLeave(node: T, event: DragEvent) {\n event.stopPropagation();\n if (Object.is(this._dropTargetKey(), this._getTreeNodeDataKey(node))) {\n this._dropTargetKey.set(undefined);\n this._dropTargetPosition.set(undefined);\n }\n }\n\n _dropNodeInto(node: T, event: DragEvent) {\n const position = this._dropTargetPosition() ?? this._getDropPosition(event);\n if (!this._canDropNode(node, position)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const source = this._draggedNode!;\n const moved = this.reorderOnDrop() ? this._moveNode(source, node, position) : true;\n this._clearNodeDrag();\n\n if (moved) {\n this.nodeDrop.emit({\n source,\n target: node,\n position,\n sourceValue: this._getTreeNodeValue(source),\n targetValue: this._getTreeNodeValue(node),\n dataSource: this._getRootNodes() ?? [],\n });\n }\n }\n\n _endNodeDrag() {\n this._clearNodeDrag();\n }\n\n _getDragPreview(): TreeDragPreview {\n return this.dragPreview();\n }\n\n _hasDragPlaceholder(): boolean {\n return !!this._dragPlaceholder;\n }\n\n _setDragPlaceholderImage(node: T, event: DragEvent, host: HTMLElement): boolean {\n const template = this._dragPlaceholder?.templateRef;\n const dataTransfer = event.dataTransfer;\n const body = host.ownerDocument.body;\n\n if (!template || !dataTransfer || !body) {\n return false;\n }\n\n const viewRef = template.createEmbeddedView({\n $implicit: node,\n source: node,\n });\n viewRef.detectChanges();\n\n const dragImage = host.ownerDocument.createElement('div');\n dragImage.classList.add('ngs-tree-drag-placeholder-image');\n dragImage.style.position = 'fixed';\n dragImage.style.insetBlockStart = '0';\n dragImage.style.insetInlineStart = '0';\n dragImage.style.zIndex = '-1';\n dragImage.style.pointerEvents = 'none';\n dragImage.style.transform = 'translate(-200vw, -200vh)';\n\n for (const rootNode of viewRef.rootNodes) {\n if (rootNode instanceof Node) {\n dragImage.appendChild(rootNode);\n }\n }\n\n body.appendChild(dragImage);\n dataTransfer.setDragImage(dragImage, 12, 12);\n window.setTimeout(() => {\n viewRef.destroy();\n dragImage.remove();\n });\n return true;\n }\n\n _registerNodeValue(node: T, value: unknown) {\n const key = this._getTreeNodeDataKey(node);\n this._nodeValueByDataKey.set(key, value);\n }\n\n _unregisterNodeValueByDataKey(key: unknown) {\n this._nodeValueByDataKey.delete(key);\n }\n\n _registerNodeDisabled(node: T, disabled: boolean) {\n const key = this._getTreeNodeDataKey(node);\n if (disabled) {\n const checkedKey = this._getCheckableNodeKey(node);\n const wasChecked = this._checkedKeys.has(checkedKey);\n this._disabledDataKeys.add(key);\n this._enabledDataKeys.delete(key);\n this._checkedKeys.delete(checkedKey);\n if (Object.is(this._selectedKey(), this._getTreeNodeValue(node))) {\n this._selectedKey.set(undefined);\n this.selectedChange.emit(undefined);\n }\n if (wasChecked) {\n this._syncCheckedParentKeys();\n this._checkStateVersion.update(value => value + 1);\n this.checkedChange.emit(this._getCheckedValues());\n }\n } else {\n this._disabledDataKeys.delete(key);\n this._enabledDataKeys.add(key);\n }\n }\n\n _unregisterNodeDisabledByDataKey(key: unknown) {\n this._disabledDataKeys.delete(key);\n this._enabledDataKeys.delete(key);\n }\n\n _isNodeDisabled(node: T): boolean {\n const key = this._getTreeNodeDataKey(node);\n if (this._enabledDataKeys.has(key)) {\n return false;\n }\n\n return this._disabledDataKeys.has(key) || (node as { disabled?: boolean } | null | undefined)?.disabled === true;\n }\n\n _getTreeNodeDataKey(node: T): unknown {\n return this._getTreeNodeKey(node);\n }\n\n _getTreeNodeValue(node: T): unknown {\n const key = this._getTreeNodeDataKey(node);\n return this._nodeValueByDataKey.has(key) ? this._nodeValueByDataKey.get(key) : key;\n }\n\n private _canDropNode(target: T, position: TreeNodeDropPosition): boolean {\n const source = this._draggedNode;\n return !!source\n && this.draggable()\n && !this._isNodeDisabled(target)\n && !this._isSameNode(source, target)\n && !this._isNodeDescendantOf(target, source)\n && this.dropPredicate()(source, target, position);\n }\n\n private _moveNode(source: T, target: T, position: TreeNodeDropPosition): boolean {\n const rootNodes = this._getRootNodes();\n if (!rootNodes) {\n return false;\n }\n\n const moved = position === 'inside'\n ? this._moveNodeInto(source, target, rootNodes)\n : this._moveNodeBeside(source, target, position, rootNodes);\n if (!moved) {\n return false;\n }\n\n this._refreshTreeData(rootNodes);\n this._syncCheckedParentKeys();\n this._checkStateVersion.update(value => value + 1);\n return true;\n }\n\n private _moveNodeInto(source: T, target: T, rootNodes: T[]): boolean {\n const sourceLocation = this._removeNodeFrom(rootNodes, source);\n if (!sourceLocation) {\n return false;\n }\n\n const targetChildren = this._getMutableNodeChildren(target);\n if (!targetChildren) {\n sourceLocation.items.splice(sourceLocation.index, 0, source);\n return false;\n }\n\n targetChildren.push(source);\n (this as { expand?: (node: T) => void }).expand?.(target);\n return true;\n }\n\n private _moveNodeBeside(\n source: T,\n target: T,\n position: Exclude<TreeNodeDropPosition, 'inside'>,\n rootNodes: T[],\n ): boolean {\n const sourceLocation = this._removeNodeFrom(rootNodes, source);\n if (!sourceLocation) {\n return false;\n }\n\n const targetLocation = this._findNodeLocation(rootNodes, target);\n if (!targetLocation) {\n sourceLocation.items.splice(sourceLocation.index, 0, source);\n return false;\n }\n\n const insertIndex = position === 'before' ? targetLocation.index : targetLocation.index + 1;\n targetLocation.items.splice(insertIndex, 0, source);\n return true;\n }\n\n private _findNodeLocation(nodes: T[], target: T): { items: T[]; index: number } | undefined {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (this._isSameNode(node, target)) {\n return { items: nodes, index: i };\n }\n\n const children = this._getDataNodeChildren(node);\n if (Array.isArray(children)) {\n const location = this._findNodeLocation(children, target);\n if (location) {\n return location;\n }\n }\n }\n\n return undefined;\n }\n\n private _removeNodeFrom(nodes: T[], source: T): { items: T[]; index: number } | undefined {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (this._isSameNode(node, source)) {\n nodes.splice(i, 1);\n return { items: nodes, index: i };\n }\n\n const children = this._getDataNodeChildren(node);\n if (Array.isArray(children)) {\n const location = this._removeNodeFrom(children, source);\n if (location) {\n return location;\n }\n }\n }\n\n return undefined;\n }\n\n private _getRootNodes(): T[] | undefined {\n return Array.isArray(this.dataSource) ? this.dataSource : undefined;\n }\n\n private _getDataNodeChildren(node: T): T[] | undefined {\n const childrenAccessor = this.childrenAccessor as ((node: T) => T[] | undefined | null) | undefined;\n const children = childrenAccessor?.(node);\n return Array.isArray(children) ? children : undefined;\n }\n\n private _getMutableNodeChildren(node: T): T[] | undefined {\n const existingChildren = this._getDataNodeChildren(node);\n if (existingChildren?.length) {\n return existingChildren;\n }\n\n const childrenKey = this.childrenKey();\n const nodeRecord = node as Record<string, unknown> | null | undefined;\n if (!nodeRecord || typeof nodeRecord !== 'object') {\n return existingChildren;\n }\n\n if (!Array.isArray(nodeRecord[childrenKey])) {\n nodeRecord[childrenKey] = [];\n }\n\n return nodeRecord[childrenKey] as T[];\n }\n\n private _refreshTreeData(rootNodes: T[]) {\n if (Array.isArray(this.dataSource)) {\n this.dataSource = [];\n this.dataSource = [...rootNodes];\n return;\n }\n\n this.renderNodeChanges(rootNodes);\n }\n\n private _applyFilteredDataSource() {\n const source = this._sourceDataSource;\n if (!source) {\n super.dataSource = [];\n return;\n }\n\n super.dataSource = this._getFilteredDataSource(source);\n }\n\n private _getFilteredDataSource(dataSource: DataSource<T> | Observable<T[]> | T[]): DataSource<T> | Observable<T[]> | T[] {\n this._filteredNodeOriginals = new WeakMap<object, T>();\n if (!Array.isArray(dataSource) || !this._isFilterActive()) {\n return dataSource;\n }\n\n const filteredData = dataSource\n .map(node => this._filterNode(node))\n .filter((node): node is T => node !== undefined);\n this._expandFilteredNodes(filteredData);\n return filteredData;\n }\n\n private _filterNode(node: T): T | undefined {\n const filterValue = this.filterValue().trim();\n const children = this._getDataNodeChildren(node) ?? [];\n const matches = this.filterPredicate()(node, filterValue);\n\n if (matches && this.filterMode() === 'includeDescendants') {\n return node;\n }\n\n const filteredChildren = children\n .map(child => this._filterNode(child))\n .filter((child): child is T => child !== undefined);\n if (!matches && !filteredChildren.length) {\n return undefined;\n }\n\n if (filteredChildren.length === children.length) {\n return node;\n }\n\n return this._cloneNodeWithChildren(node, filteredChildren);\n }\n\n private _cloneNodeWithChildren(node: T, children: T[]): T {\n const nodeRecord = node as Record<string, unknown> | null | undefined;\n if (!nodeRecord || typeof nodeRecord !== 'object') {\n return node;\n }\n\n const clone = {\n ...nodeRecord,\n [this.childrenKey()]: children,\n } as T;\n this._filteredNodeOriginals.set(clone as object, node);\n return clone;\n }\n\n private _expandFilteredNodes(nodes: T[]) {\n (this as any)._getExpansionModel?.();\n for (const node of nodes) {\n const children = this._getDataNodeChildren(node);\n if (!children?.length) {\n continue;\n }\n\n this.expand(node);\n this._expandFilteredNodes(children);\n }\n }\n\n private _isFilterActive(): boolean {\n return this.filterValue().trim().length > 0;\n }\n\n private _isNodeDescendantOf(node: T, maybeAncestor: T): boolean {\n return this._getCheckableDescendants(maybeAncestor).some(item => this._isSameNode(item, node));\n }\n\n private _isSameNode(first: T, second: T): boolean {\n return first === second || Object.is(this._getTreeNodeDataKey(first), this._getTreeNodeDataKey(second));\n }\n\n private _getDropPosition(event: DragEvent): TreeNodeDropPosition {\n const element = event.currentTarget instanceof HTMLElement\n ? event.currentTarget\n : event.target instanceof HTMLElement\n ? event.target\n : null;\n const rect = element?.getBoundingClientRect();\n if (!rect?.height) {\n return 'inside';\n }\n\n const relativeY = event.clientY - rect.top;\n if (relativeY < rect.height * 0.25) {\n return 'before';\n }\n\n if (relativeY > rect.height * 0.75) {\n return 'after';\n }\n\n return 'inside';\n }\n\n private _clearNodeDrag() {\n this._draggedNode = undefined;\n this._draggedNodeKey.set(undefined);\n this._dropTargetKey.set(undefined);\n this._dropTargetPosition.set(undefined);\n }\n\n private _getCheckableDescendants(node: T): T[] {\n const treeControl = this.treeControl as {\n dataNodes?: T[];\n getDescendants?: (node: T) => T[];\n getLevel?: (node: T) => number;\n } | undefined;\n const flatNodes = treeControl?.dataNodes?.length\n ? treeControl.dataNodes\n : ((this as any)._keyManagerNodes?.value ?? (this as any)._flattenedNodes?.value ?? []) as T[];\n\n if (flatNodes.length && treeControl?.getLevel) {\n const nodeKey = this._getTreeNodeKey(node);\n const startIndex = flatNodes.findIndex(item => (\n item === node || this._getTreeNodeKey(item) === nodeKey\n ));\n\n if (startIndex > -1) {\n const descendants: T[] = [];\n const level = treeControl.getLevel(flatNodes[startIndex]);\n for (\n let i = startIndex + 1;\n i < flatNodes.length && treeControl.getLevel(flatNodes[i]) > level;\n i++\n ) {\n descendants.push(flatNodes[i]);\n }\n return descendants;\n }\n }\n\n if (treeControl?.getDescendants) {\n return treeControl.getDescendants(node);\n }\n\n const childrenAccessor = this.childrenAccessor as ((node: T) => T[] | undefined | null) | undefined;\n if (!childrenAccessor) {\n return [];\n }\n\n const descendants: T[] = [];\n const collect = (current: T) => {\n const children = childrenAccessor(current);\n if (!Array.isArray(children)) {\n return;\n }\n\n for (const child of children) {\n descendants.push(child);\n collect(child);\n }\n };\n\n collect(node);\n return descendants;\n }\n\n private _getCheckableNodeKey(node: T): unknown {\n return this._getTreeNodeValue(node);\n }\n\n private _getCheckedValues(): unknown[] {\n return Array.from(this._checkedKeys);\n }\n\n private _syncCheckedParentKeys() {\n const nodes = this._getCheckableNodes();\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i];\n if (this._isNodeDisabled(node)) {\n this._checkedKeys.delete(this._getCheckableNodeKey(node));\n continue;\n }\n\n const descendants = this._getCheckableDescendants(node).filter(item => !this._isNodeDisabled(item));\n if (!descendants.length) {\n continue;\n }\n\n const key = this._getCheckableNodeKey(node);\n if (descendants.every(item => this._checkedKeys.has(this._getCheckableNodeKey(item)))) {\n this._checkedKeys.add(key);\n } else {\n this._checkedKeys.delete(key);\n }\n }\n }\n\n private _getCheckableNodes(): T[] {\n const treeControl = this.treeControl as { dataNodes?: T[] } | undefined;\n const flatNodes = treeControl?.dataNodes?.length\n ? treeControl.dataNodes\n : ((this as any)._keyManagerNodes?.value ?? (this as any)._flattenedNodes?.value ?? []) as T[];\n\n if (flatNodes.length) {\n return flatNodes;\n }\n\n const data = this.dataSource;\n if (!Array.isArray(data)) {\n return [];\n }\n\n const childrenAccessor = this.childrenAccessor as ((node: T) => T[] | undefined | null) | undefined;\n if (!childrenAccessor) {\n return data;\n }\n\n const nodes: T[] = [];\n const collect = (items: T[]) => {\n for (const item of items) {\n nodes.push(item);\n const children = childrenAccessor(item);\n if (Array.isArray(children)) {\n collect(children);\n }\n }\n };\n\n collect(data);\n return nodes;\n }\n\n private _getTreeNodeKey(node: T): unknown {\n const originalNode = this._getOriginalFilterNode(node);\n const treeControl = this.treeControl as { trackBy?: (node: T) => K } | undefined;\n if (treeControl?.trackBy) {\n return treeControl.trackBy(originalNode);\n }\n\n if (this.expansionKey) {\n return this.expansionKey(originalNode);\n }\n\n if (this.trackBy) {\n return this.trackBy(-1, originalNode);\n }\n\n return originalNode;\n }\n\n private _getOriginalFilterNode(node: T): T {\n if (node && typeof node === 'object') {\n return this._filteredNodeOriginals.get(node as object) ?? node;\n }\n\n return node;\n }\n}\n","import {\n CDK_TREE_NODE_OUTLET_NODE, CdkNestedTreeNode,\n CdkTreeNode,\n} from '@angular/cdk/tree';\nimport {\n ApplicationRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n createComponent,\n ElementRef,\n EnvironmentInjector,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n effect,\n Renderer2\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Checkbox, CheckboxChange } from '@ngstarter-ui/components/checkbox';\nimport { Tree } from '../tree/tree';\n\nconst NGS_TREE_NODE_VALUE_UNSET = Symbol('ngs-tree-node-value-unset');\n\nfunction isNoopTreeKeyManager(keyManager: any) {\n return !!keyManager._isNoopTreeKeyManager;\n}\n\nfunction isTreeNodeControlClick(event: MouseEvent, host: HTMLElement): boolean {\n const target = event.target;\n if (!(target instanceof Element)) {\n return false;\n }\n\n const control = target.closest(\n '.ngs-tree-node-checkbox, [ngsTreeNodeToggle], [ngstreenodetoggle]',\n );\n\n return !!control && control !== host;\n}\n\nfunction setTreeNodeDragImage(event: DragEvent, host: HTMLElement): void {\n const dataTransfer = event.dataTransfer;\n const body = host.ownerDocument.body;\n\n if (!dataTransfer || !body) {\n return;\n }\n\n const rect = host.getBoundingClientRect();\n const clone = host.cloneNode(true);\n\n if (!(clone instanceof HTMLElement)) {\n return;\n }\n\n clone.classList.add('ngs-tree-node-drag-image');\n clone.style.width = `${rect.width}px`;\n body.appendChild(clone);\n dataTransfer.setDragImage(\n clone,\n Math.max(0, Math.min(event.clientX - rect.left, rect.width)),\n Math.max(0, Math.min(event.clientY - rect.top, rect.height)),\n );\n window.setTimeout(() => clone.remove());\n}\n\nfunction setEmptyTreeNodeDragImage(event: DragEvent): void {\n const dataTransfer = event.dataTransfer;\n\n if (!dataTransfer) {\n return;\n }\n\n const image = new Image();\n image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';\n dataTransfer.setDragImage(image, 0, 0);\n}\n\nclass TreeNodeCheckbox<T, K = T> {\n private _isReady = false;\n private _wrapperElement?: HTMLElement;\n private _componentRef?: ComponentRef<Checkbox>;\n private _unlistenClick?: () => void;\n private _unlistenKeydown?: () => void;\n private _changeSubscription?: { unsubscribe: () => void };\n\n constructor(\n private _node: CdkTreeNode<T, K>,\n private _tree: Tree<T, K>,\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _appRef: ApplicationRef,\n private _environmentInjector: EnvironmentInjector,\n private _disabled: () => boolean,\n ) {}\n\n enable() {\n this._isReady = true;\n this.sync();\n }\n\n sync() {\n if (!this._isReady) {\n return;\n }\n\n if (!this._tree.checkable()) {\n this.destroy();\n return;\n }\n\n const checkbox = this._ensureCheckbox();\n const node = this._node.data;\n const checked = this._tree._isNodeChecked(node);\n const indeterminate = this._tree._isNodeIndeterminate(node);\n\n checkbox.checked.set(checked);\n checkbox.indeterminate.set(indeterminate);\n checkbox.disabled.set(this._disabled());\n this._componentRef?.changeDetectorRef.detectChanges();\n }\n\n destroy() {\n this._unlistenClick?.();\n this._unlistenClick = undefined;\n this._unlistenKeydown?.();\n this._unlistenKeydown = undefined;\n this._changeSubscription?.unsubscribe();\n this._changeSubscription = undefined;\n if (this._componentRef) {\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = undefined;\n }\n this._wrapperElement?.remove();\n this._wrapperElement = undefined;\n }\n\n private _ensureCheckbox(): Checkbox {\n if (this._componentRef) {\n return this._componentRef.instance;\n }\n\n const existingWrapper = this._elementRef.nativeElement.querySelector(\n ':scope > .ngs-tree-node-checkbox',\n ) as HTMLElement | null;\n const wrapper = existingWrapper ?? this._renderer.createElement('span') as HTMLElement;\n let checkboxHost = wrapper.querySelector(':scope > ngs-checkbox') as HTMLElement | null;\n\n if (!existingWrapper) {\n this._renderer.addClass(wrapper, 'ngs-tree-node-checkbox');\n checkboxHost = this._renderer.createElement('ngs-checkbox') as HTMLElement;\n this._renderer.appendChild(wrapper, checkboxHost);\n this._renderer.insertBefore(\n this._elementRef.nativeElement,\n wrapper,\n this._getCheckboxInsertionReference(),\n );\n } else if (!checkboxHost) {\n checkboxHost = this._renderer.createElement('ngs-checkbox') as HTMLElement;\n this._renderer.appendChild(wrapper, checkboxHost);\n }\n\n while (checkboxHost.firstChild) {\n checkboxHost.firstChild.remove();\n }\n\n this._wrapperElement = wrapper;\n this._componentRef = createComponent(Checkbox, {\n environmentInjector: this._environmentInjector,\n hostElement: checkboxHost,\n });\n this._componentRef.setInput('aria-label', 'Select tree node');\n this._componentRef.setInput('tabIndex', -1);\n this._appRef.attachView(this._componentRef.hostView);\n this._bindCheckboxEvents(wrapper, this._componentRef);\n\n return this._componentRef.instance;\n }\n\n private _getCheckboxInsertionReference(): ChildNode | null {\n const host = this._elementRef.nativeElement;\n const firstElement = host.firstElementChild;\n if (\n firstElement?.matches(\n 'button, [ngsTreeNodeToggle], [ngstreenodetoggle], [ngsIconButton], [ngsiconbutton]',\n )\n ) {\n return firstElement.nextSibling;\n }\n\n return host.firstChild;\n }\n\n private _bindCheckboxEvents(checkboxElement: HTMLElement, checkboxRef: ComponentRef<Checkbox>) {\n this._unlistenClick = this._renderer.listen(checkboxElement, 'click', (event: Event) => {\n event.stopPropagation();\n });\n this._unlistenKeydown = this._renderer.listen(checkboxElement, 'keydown', (event: Event) => {\n event.stopPropagation();\n });\n this._changeSubscription = checkboxRef.instance.change.subscribe((event: CheckboxChange) => {\n this._tree._toggleNodeChecked(this._node.data, event.checked);\n });\n }\n}\n\n@Component({\n selector: 'ngs-tree-node',\n exportAs: 'ngsTreeNode',\n template: `<ng-content />`,\n styleUrl: './tree-node.scss',\n standalone: true,\n outputs: ['activation', 'expandedChange'],\n providers: [{ provide: CdkTreeNode, useExisting: TreeNode }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-tree-node',\n '[class.ngs-tree-node-selectable]': '_isSelectable()',\n '[class.ngs-tree-node-selected]': '_isSelected()',\n '[class.ngs-tree-node-disabled]': 'disabled()',\n '[class.ngs-tree-node-draggable]': '_isDraggable()',\n '[class.ngs-tree-node-dragging-source]': '_isDraggingSource()',\n '[class.ngs-tree-node-drop-target]': '_isDropTarget()',\n '[class.ngs-tree-node-drop-before]': '_isDropTargetPosition(\"before\")',\n '[class.ngs-tree-node-drop-inside]': '_isDropTargetPosition(\"inside\")',\n '[class.ngs-tree-node-drop-after]': '_isDropTargetPosition(\"after\")',\n '[attr.draggable]': '_getDraggableAttribute()',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.aria-grabbed]': '_getAriaGrabbed()',\n '(click)': '_handleNodeClick($event)',\n '(dragstart)': '_handleDragStart($event)',\n '(dragover)': '_handleDragOver($event)',\n '(dragleave)': '_handleDragLeave($event)',\n '(drop)': '_handleDrop($event)',\n '(dragend)': '_handleDragEnd()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n})\nexport class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n private _hostElementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _appRef = inject(ApplicationRef);\n private _environmentInjector = inject(EnvironmentInjector);\n private _platformId = inject(PLATFORM_ID);\n private _checkbox: TreeNodeCheckbox<T, K>;\n private _dataChangesSubscription?: { unsubscribe: () => void };\n private _checkboxEnableHandle?: ReturnType<typeof setTimeout>;\n private _registeredDataKey: unknown = NGS_TREE_NODE_VALUE_UNSET;\n\n tabIndexInputBinding = input<number, any>(0, {\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n });\n\n value = input<unknown>(NGS_TREE_NODE_VALUE_UNSET);\n\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n defaultTabIndex = 0;\n\n constructor() {\n super();\n const tree = this._tree as Tree<T, K>;\n this._checkbox = new TreeNodeCheckbox(\n this,\n tree,\n this._hostElementRef,\n this._renderer,\n this._appRef,\n this._environmentInjector,\n () => this.disabled(),\n );\n this._dataChangesSubscription = this._dataChanges.subscribe(() => this._syncNodeState());\n if (isPlatformBrowser(this._platformId)) {\n this._checkboxEnableHandle = setTimeout(() => this._checkbox.enable());\n }\n const tabIndex = inject(new HostAttributeToken('tabindex'), { optional: true });\n (this as any)._tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n effect(() => {\n this.isDisabled = this.disabled();\n });\n effect(() => {\n tree.checkable();\n tree._checkStateVersion();\n this.disabled();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n });\n effect(() => {\n this.value();\n this._syncNodeState();\n });\n }\n\n _getTabindexAttribute() {\n if (isNoopTreeKeyManager((this._tree as any)._keyManager)) {\n return this.tabIndexInputBinding();\n }\n return (this as any)._tabindex;\n }\n\n _handleNodeClick(event: MouseEvent) {\n this._focusItem();\n this._selectNodeFromEvent(event);\n }\n\n _isSelectable(): boolean {\n return (this._tree as Tree<T, K>).selectable() && !this.disabled();\n }\n\n _isSelected(): boolean {\n const tree = this._tree as Tree<T, K>;\n return tree.selectable() && tree._isNodeSelected(this.data);\n }\n\n _getAriaSelected(): boolean | null {\n return (this._tree as Tree<T, K>).selectable() ? this._isSelected() : null;\n }\n\n _isDraggable(): boolean {\n return (this._tree as Tree<T, K>)._canDragNode(this.data);\n }\n\n _isDropTarget(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTarget(this.data);\n }\n\n _isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTargetPosition(this.data, position);\n }\n\n _isDraggingSource(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDraggingSource(this.data);\n }\n\n _getDraggableAttribute(): true | null {\n return this._isDraggable() ? true : null;\n }\n\n _getAriaGrabbed(): boolean | null {\n return (this._tree as Tree<T, K>).draggable() ? false : null;\n }\n\n _handleDragStart(event: DragEvent) {\n (this._tree as Tree<T, K>)._startNodeDrag(this.data, event);\n if (!event.defaultPrevented) {\n this._setDragImage(event);\n }\n }\n\n _handleDragOver(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeOver(this.data, event);\n }\n\n _handleDragLeave(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeLeave(this.data, event);\n }\n\n _handleDrop(event: DragEvent) {\n (this._tree as Tree<T, K>)._dropNodeInto(this.data, event);\n }\n\n _handleDragEnd() {\n (this._tree as Tree<T, K>)._endNodeDrag();\n }\n\n private _setDragImage(event: DragEvent) {\n if ((this._tree as Tree<T, K>)._getDragPreview() === 'none') {\n setEmptyTreeNodeDragImage(event);\n return;\n }\n\n if ((this._tree as Tree<T, K>)._setDragPlaceholderImage(this.data, event, this._hostElementRef.nativeElement)) {\n return;\n }\n\n setTreeNodeDragImage(event, this._hostElementRef.nativeElement);\n }\n\n private _selectNodeFromEvent(event: MouseEvent) {\n if (!this._isSelectable() || this._isTreeControlClick(event)) {\n return;\n }\n\n (this._tree as Tree<T, K>)._selectNode(this.data);\n }\n\n private _isTreeControlClick(event: MouseEvent): boolean {\n return isTreeNodeControlClick(event, this._hostElementRef.nativeElement);\n }\n\n private _syncNodeState() {\n this._syncNodeValueRegistration();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n }\n\n private _syncNodeValueRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n const tree = this._tree as Tree<T, K>;\n const key = tree._getTreeNodeDataKey(this.data);\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET && !Object.is(this._registeredDataKey, key)) {\n tree._unregisterNodeValueByDataKey(this._registeredDataKey);\n tree._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n\n this._registeredDataKey = key;\n if (this.value() === NGS_TREE_NODE_VALUE_UNSET) {\n tree._unregisterNodeValueByDataKey(key);\n } else {\n tree._registerNodeValue(this.data, this.value());\n }\n }\n\n private _syncNodeDisabledRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n (this._tree as Tree<T, K>)._registerNodeDisabled(this.data, this.disabled());\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._syncNodeState();\n }\n\n override ngOnDestroy() {\n if (this._checkboxEnableHandle) {\n clearTimeout(this._checkboxEnableHandle);\n }\n this._dataChangesSubscription?.unsubscribe();\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET) {\n (this._tree as Tree<T, K>)._unregisterNodeValueByDataKey(this._registeredDataKey);\n (this._tree as Tree<T, K>)._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n this._checkbox.destroy();\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: 'ngs-nested-tree-node',\n exportAs: 'ngsNestedTreeNode',\n template: `<ng-content />`,\n styleUrl: './tree-node.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n outputs: ['activation', 'expandedChange'],\n providers: [\n { provide: CdkNestedTreeNode, useExisting: NestedTreeNode },\n { provide: CdkTreeNode, useExisting: NestedTreeNode },\n { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: NestedTreeNode },\n ],\n host: {\n 'class': 'ngs-nested-tree-node',\n '[class.ngs-tree-node-selectable]': '_isSelectable()',\n '[class.ngs-tree-node-selected]': '_isSelected()',\n '[class.ngs-tree-node-disabled]': 'disabled()',\n '[class.ngs-tree-node-draggable]': '_isDraggable()',\n '[class.ngs-tree-node-dragging-source]': '_isDraggingSource()',\n '[class.ngs-tree-node-drop-target]': '_isDropTarget()',\n '[class.ngs-tree-node-drop-before]': '_isDropTargetPosition(\"before\")',\n '[class.ngs-tree-node-drop-inside]': '_isDropTargetPosition(\"inside\")',\n '[class.ngs-tree-node-drop-after]': '_isDropTargetPosition(\"after\")',\n '[attr.draggable]': '_getDraggableAttribute()',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.aria-grabbed]': '_getAriaGrabbed()',\n '(click)': '_handleNodeClick($event)',\n '(dragstart)': '_handleDragStart($event)',\n '(dragover)': '_handleDragOver($event)',\n '(dragleave)': '_handleDragLeave($event)',\n '(drop)': '_handleDrop($event)',\n '(dragend)': '_handleDragEnd()',\n },\n})\nexport class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implements OnInit, OnDestroy {\n private _hostElementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _appRef = inject(ApplicationRef);\n private _environmentInjector = inject(EnvironmentInjector);\n private _platformId = inject(PLATFORM_ID);\n private _checkbox: TreeNodeCheckbox<T, K>;\n private _dataChangesSubscription?: { unsubscribe: () => void };\n private _checkboxEnableHandle?: ReturnType<typeof setTimeout>;\n private _registeredDataKey: unknown = NGS_TREE_NODE_VALUE_UNSET;\n\n node = input<T>(undefined!, {\n alias: 'ngsNestedTreeNode'\n });\n\n value = input<unknown>(NGS_TREE_NODE_VALUE_UNSET);\n\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n tabIndexInput = input<number, any>(0, {\n alias: 'tabIndex',\n transform: (value: any) => (value == null ? 0 : numberAttribute(value))\n });\n\n constructor() {\n super();\n const tree = this._tree as Tree<T, K>;\n this._checkbox = new TreeNodeCheckbox(\n this,\n tree,\n this._hostElementRef,\n this._renderer,\n this._appRef,\n this._environmentInjector,\n () => this.disabled(),\n );\n this._dataChangesSubscription = this._dataChanges.subscribe(() => this._syncNodeState());\n if (isPlatformBrowser(this._platformId)) {\n this._checkboxEnableHandle = setTimeout(() => this._checkbox.enable());\n }\n effect(() => {\n this.isDisabled = this.disabled();\n });\n effect(() => {\n tree.checkable();\n tree._checkStateVersion();\n this.disabled();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n });\n effect(() => {\n this.value();\n this._syncNodeState();\n });\n }\n\n get tabIndex(): number {\n return this.isDisabled ? -1 : this.tabIndexInput();\n }\n\n _handleNodeClick(event: MouseEvent) {\n (this as any)._focusItem?.();\n this._selectNodeFromEvent(event);\n }\n\n _isSelectable(): boolean {\n return (this._tree as Tree<T, K>).selectable() && !this.disabled();\n }\n\n _isSelected(): boolean {\n const tree = this._tree as Tree<T, K>;\n return tree.selectable() && tree._isNodeSelected(this.data);\n }\n\n _getAriaSelected(): boolean | null {\n return (this._tree as Tree<T, K>).selectable() ? this._isSelected() : null;\n }\n\n _isDraggable(): boolean {\n return (this._tree as Tree<T, K>)._canDragNode(this.data);\n }\n\n _isDropTarget(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTarget(this.data);\n }\n\n _isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTargetPosition(this.data, position);\n }\n\n _isDraggingSource(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDraggingSource(this.data);\n }\n\n _getDraggableAttribute(): true | null {\n return this._isDraggable() ? true : null;\n }\n\n _getAriaGrabbed(): boolean | null {\n return (this._tree as Tree<T, K>).draggable() ? false : null;\n }\n\n _handleDragStart(event: DragEvent) {\n (this._tree as Tree<T, K>)._startNodeDrag(this.data, event);\n if (!event.defaultPrevented) {\n this._setDragImage(event);\n }\n }\n\n _handleDragOver(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeOver(this.data, event);\n }\n\n _handleDragLeave(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeLeave(this.data, event);\n }\n\n _handleDrop(event: DragEvent) {\n (this._tree as Tree<T, K>)._dropNodeInto(this.data, event);\n }\n\n _handleDragEnd() {\n (this._tree as Tree<T, K>)._endNodeDrag();\n }\n\n private _setDragImage(event: DragEvent) {\n if ((this._tree as Tree<T, K>)._getDragPreview() === 'none') {\n setEmptyTreeNodeDragImage(event);\n return;\n }\n\n if ((this._tree as Tree<T, K>)._setDragPlaceholderImage(this.data, event, this._hostElementRef.nativeElement)) {\n return;\n }\n\n setTreeNodeDragImage(event, this._hostElementRef.nativeElement);\n }\n\n private _selectNodeFromEvent(event: MouseEvent) {\n if (!this._isSelectable() || this._isTreeControlClick(event)) {\n return;\n }\n\n (this._tree as Tree<T, K>)._selectNode(this.data);\n }\n\n private _isTreeControlClick(event: MouseEvent): boolean {\n return isTreeNodeControlClick(event, this._hostElementRef.nativeElement);\n }\n\n private _syncNodeState() {\n this._syncNodeValueRegistration();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n }\n\n private _syncNodeValueRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n const tree = this._tree as Tree<T, K>;\n const key = tree._getTreeNodeDataKey(this.data);\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET && !Object.is(this._registeredDataKey, key)) {\n tree._unregisterNodeValueByDataKey(this._registeredDataKey);\n tree._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n\n this._registeredDataKey = key;\n if (this.value() === NGS_TREE_NODE_VALUE_UNSET) {\n tree._unregisterNodeValueByDataKey(key);\n } else {\n tree._registerNodeValue(this.data, this.value());\n }\n }\n\n private _syncNodeDisabledRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n (this._tree as Tree<T, K>)._registerNodeDisabled(this.data, this.disabled());\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._syncNodeState();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\n if (this._checkboxEnableHandle) {\n clearTimeout(this._checkboxEnableHandle);\n }\n this._dataChangesSubscription?.unsubscribe();\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET) {\n (this._tree as Tree<T, K>)._unregisterNodeValueByDataKey(this._registeredDataKey);\n (this._tree as Tree<T, K>)._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n this._checkbox.destroy();\n super.ngOnDestroy();\n }\n}\n","import { CdkTreeNodePadding } from '@angular/cdk/tree';\nimport { Directive, effect, input, numberAttribute } from '@angular/core';\n\n@Directive({\n selector: '[ngsTreeNodePadding]',\n providers: [{ provide: CdkTreeNodePadding, useExisting: TreeNodePadding }],\n standalone: true\n})\nexport class TreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n levelInput = input<number, any>(0, {\n alias: 'ngsTreeNodePadding',\n transform: numberAttribute\n });\n\n indentInput = input<number | string>(40, {\n alias: 'ngsTreeNodePaddingIndent'\n });\n\n constructor() {\n super();\n effect(() => {\n this.level = this.levelInput();\n });\n effect(() => {\n this._setIndentInput(this.indentInput());\n });\n }\n}\n","import { CdkTreeNodeToggle } from '@angular/cdk/tree';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[ngsTreeNodeToggle]',\n providers: [{ provide: CdkTreeNodeToggle, useExisting: TreeNodeToggle }],\n inputs: [{ name: 'recursive', alias: 'ngsTreeNodeToggleRecursive' }],\n standalone: true\n})\nexport class TreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {\n}\n","import { CdkTreeNodeDef } from '@angular/cdk/tree';\nimport { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[ngsTreeNodeDef]',\n inputs: [{ name: 'when', alias: 'ngsTreeNodeDefWhen' }],\n providers: [{ provide: CdkTreeNodeDef, useExisting: TreeNodeDef }],\n standalone: true\n})\nexport class TreeNodeDef<T> extends CdkTreeNodeDef<T> {\n data = input<T>(undefined!, {\n alias: 'ngsTreeNode'\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-tree.mjs","sources":["../../../projects/components/tree/src/tree/tree.ts","../../../projects/components/tree/src/tree-node/tree-node.ts","../../../projects/components/tree/src/tree-node-padding.ts","../../../projects/components/tree/src/tree-node-toggle.ts","../../../projects/components/tree/src/tree-node-def.ts","../../../projects/components/tree/ngstarter-ui-components-tree.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n ContentChild,\n Component,\n Directive,\n effect,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n ViewContainerRef,\n ViewChild\n} from '@angular/core';\nimport { DataSource } from '@angular/cdk/collections';\nimport { CDK_TREE_NODE_OUTLET_NODE, CdkTree, CdkTreeNodeOutlet } from '@angular/cdk/tree';\nimport { Observable } from 'rxjs';\n\n@Directive({\n selector: '[ngsTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: TreeNodeOutlet,\n },\n ],\n standalone: true\n})\nexport class TreeNodeOutlet implements CdkTreeNodeOutlet {\n viewContainer = inject(ViewContainerRef);\n _node = inject(CDK_TREE_NODE_OUTLET_NODE, { optional: true });\n}\n\nexport interface TreeNodeDrop<T> {\n source: T;\n target: T;\n position: TreeNodeDropPosition;\n sourceValue: unknown;\n targetValue: unknown;\n dataSource: T[];\n}\n\nexport interface TreeNodeDropContext<T> {\n source: T;\n target: T;\n position: TreeNodeDropPosition;\n}\n\nexport interface TreeNodeDragPlaceholderContext<T> {\n $implicit: T;\n source: T;\n target?: T;\n position?: TreeNodeDropPosition;\n}\n\nexport type TreeNodeDropPosition = 'before' | 'inside' | 'after';\nexport type TreeNodeDragPredicate<T> = (node: T) => boolean;\nexport type TreeNodeDropPredicate<T> = (source: T, target: T, position: TreeNodeDropPosition) => boolean;\nexport type TreeDragPreview = 'node' | 'none';\nexport type TreeFilterMode = 'includeAncestors' | 'includeDescendants';\nexport type TreeFilterPredicate<T> = (node: T, filterValue: string) => boolean;\n\nconst NGS_TREE_DEFAULT_FILTER_PREDICATE = <T,>(node: T, filterValue: string): boolean => {\n const query = filterValue.trim().toLowerCase();\n if (!query) {\n return true;\n }\n\n const candidates = node && typeof node === 'object'\n ? [\n (node as Record<string, unknown>)['name'],\n (node as Record<string, unknown>)['label'],\n (node as Record<string, unknown>)['title'],\n (node as Record<string, unknown>)['value'],\n ]\n : [node];\n\n return candidates.some(value => value != null && String(value).toLowerCase().includes(query));\n};\n\n@Directive({\n selector: 'ng-template[ngsTreeDragPlaceholder]',\n standalone: true\n})\nexport class TreeDragPlaceholder<T> {\n readonly templateRef = inject<TemplateRef<TreeNodeDragPlaceholderContext<T>>>(TemplateRef);\n\n static ngTemplateContextGuard<T>(\n _directive: TreeDragPlaceholder<T>,\n _context: unknown,\n ): _context is TreeNodeDragPlaceholderContext<T> {\n return true;\n }\n}\n\n@Component({\n selector: 'ngs-tree',\n exportAs: 'ngsTree',\n imports: [\n TreeNodeOutlet\n ],\n template: `<ng-container ngsTreeNodeOutlet />`,\n styleUrl: './tree.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CdkTree, useExisting: Tree }],\n host: {\n 'class': 'ngs-tree',\n },\n})\nexport class Tree<T, K = T> extends CdkTree<T, K> {\n override get dataSource(): DataSource<T> | Observable<T[]> | T[] {\n return this._sourceDataSource ?? [];\n }\n\n override set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n if (this._sourceDataSource !== dataSource) {\n this._sourceDataSource = dataSource;\n this._applyFilteredDataSource();\n }\n }\n\n checkable = input(false, {\n transform: booleanAttribute\n });\n\n selectable = input(false, {\n transform: booleanAttribute\n });\n\n draggable = input(false, {\n transform: booleanAttribute\n });\n\n draggablePredicate = input<TreeNodeDragPredicate<T>>(() => true);\n\n dropPredicate = input<TreeNodeDropPredicate<T>>(() => true);\n\n reorderOnDrop = input(true, {\n transform: booleanAttribute\n });\n\n dragPreview = input<TreeDragPreview>('node');\n\n nodePaddingIndent = input<number | string>(48);\n\n childrenKey = input('children');\n\n filterValue = input('', {\n transform: (value: unknown) => value == null ? '' : String(value)\n });\n\n filterPredicate = input<TreeFilterPredicate<T>>(NGS_TREE_DEFAULT_FILTER_PREDICATE);\n\n filterMode = input<TreeFilterMode>('includeAncestors');\n\n readonly checkedChange = output<unknown[]>();\n readonly selectedChange = output<unknown>();\n readonly nodeDrop = output<TreeNodeDrop<T>>();\n\n readonly _checkStateVersion = signal(0);\n readonly _selectedKey = signal<unknown>(undefined);\n readonly _dropTargetKey = signal<unknown>(undefined);\n readonly _dropTargetPosition = signal<TreeNodeDropPosition | undefined>(undefined);\n readonly _draggedNodeKey = signal<unknown>(undefined);\n private _checkedKeys = new Set<unknown>();\n private _nodeValueByDataKey = new Map<unknown, unknown>();\n private _disabledDataKeys = new Set<unknown>();\n private _enabledDataKeys = new Set<unknown>();\n private _draggedNode?: T;\n private _sourceDataSource?: DataSource<T> | Observable<T[]> | T[];\n private _filteredNodeOriginals = new WeakMap<object, T>();\n\n @ContentChild(TreeDragPlaceholder)\n private _dragPlaceholder?: TreeDragPlaceholder<T>;\n\n @ViewChild(TreeNodeOutlet, { static: true })\n override _nodeOutlet: TreeNodeOutlet = undefined!;\n\n constructor() {\n super();\n effect(() => {\n this.filterValue();\n this.filterPredicate();\n this.filterMode();\n this._applyFilteredDataSource();\n });\n }\n\n _toggleNodeChecked(node: T, checked: boolean) {\n if (this._isNodeDisabled(node)) {\n return;\n }\n\n const nodes = [node, ...this._getCheckableDescendants(node)].filter(item => !this._isNodeDisabled(item));\n for (const item of nodes) {\n const key = this._getCheckableNodeKey(item);\n if (checked) {\n this._checkedKeys.add(key);\n } else {\n this._checkedKeys.delete(key);\n }\n }\n this._syncCheckedParentKeys();\n this._checkStateVersion.update(value => value + 1);\n this.checkedChange.emit(this._getCheckedValues());\n }\n\n _isNodeChecked(node: T): boolean {\n if (this._isNodeDisabled(node)) {\n return false;\n }\n\n const descendants = this._getCheckableDescendants(node).filter(item => !this._isNodeDisabled(item));\n if (!descendants.length) {\n return this._checkedKeys.has(this._getCheckableNodeKey(node));\n }\n\n return descendants.every(item => this._checkedKeys.has(this._getCheckableNodeKey(item)));\n }\n\n _isNodeIndeterminate(node: T): boolean {\n if (this._isNodeDisabled(node)) {\n return false;\n }\n\n const descendants = this._getCheckableDescendants(node).filter(item => !this._isNodeDisabled(item));\n if (!descendants.length) {\n return false;\n }\n\n const selectedCount = descendants.filter(item => this._checkedKeys.has(this._getCheckableNodeKey(item))).length;\n return selectedCount > 0 && selectedCount < descendants.length;\n }\n\n _selectNode(node: T) {\n if (this._isNodeDisabled(node)) {\n return;\n }\n\n const value = this._getTreeNodeValue(node);\n if (Object.is(this._selectedKey(), value)) {\n return;\n }\n\n this._selectedKey.set(value);\n this.selectedChange.emit(value);\n }\n\n _isNodeSelected(node: T): boolean {\n return !this._isNodeDisabled(node) && Object.is(this._selectedKey(), this._getTreeNodeValue(node));\n }\n\n _canDragNode(node: T): boolean {\n return node !== undefined\n && this.draggable()\n && !this._isNodeDisabled(node)\n && this.draggablePredicate()(node);\n }\n\n _isNodeDropTarget(node: T): boolean {\n return node !== undefined && Object.is(this._dropTargetKey(), this._getTreeNodeDataKey(node));\n }\n\n _isNodeDropTargetPosition(node: T, position: TreeNodeDropPosition): boolean {\n return this._isNodeDropTarget(node) && this._dropTargetPosition() === position;\n }\n\n _isNodeDraggingSource(node: T): boolean {\n return node !== undefined && Object.is(this._draggedNodeKey(), this._getTreeNodeDataKey(node));\n }\n\n _startNodeDrag(node: T, event: DragEvent) {\n if (!this._canDragNode(node)) {\n event.preventDefault();\n return;\n }\n\n this._draggedNode = node;\n this._draggedNodeKey.set(this._getTreeNodeDataKey(node));\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', String(this._getTreeNodeValue(node) ?? ''));\n }\n }\n\n _dragNodeOver(node: T, event: DragEvent) {\n const position = this._getDropPosition(event);\n if (!this._canDropNode(node, position)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'move';\n }\n this._dropTargetKey.set(this._getTreeNodeDataKey(node));\n this._dropTargetPosition.set(position);\n }\n\n _dragNodeLeave(node: T, event: DragEvent) {\n event.stopPropagation();\n if (Object.is(this._dropTargetKey(), this._getTreeNodeDataKey(node))) {\n this._dropTargetKey.set(undefined);\n this._dropTargetPosition.set(undefined);\n }\n }\n\n _dropNodeInto(node: T, event: DragEvent) {\n const position = this._dropTargetPosition() ?? this._getDropPosition(event);\n if (!this._canDropNode(node, position)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const source = this._draggedNode!;\n const moved = this.reorderOnDrop() ? this._moveNode(source, node, position) : true;\n this._clearNodeDrag();\n\n if (moved) {\n this.nodeDrop.emit({\n source,\n target: node,\n position,\n sourceValue: this._getTreeNodeValue(source),\n targetValue: this._getTreeNodeValue(node),\n dataSource: this._getRootNodes() ?? [],\n });\n }\n }\n\n _endNodeDrag() {\n this._clearNodeDrag();\n }\n\n _getDragPreview(): TreeDragPreview {\n return this.dragPreview();\n }\n\n _hasDragPlaceholder(): boolean {\n return !!this._dragPlaceholder;\n }\n\n _setDragPlaceholderImage(node: T, event: DragEvent, host: HTMLElement): boolean {\n const template = this._dragPlaceholder?.templateRef;\n const dataTransfer = event.dataTransfer;\n const body = host.ownerDocument.body;\n\n if (!template || !dataTransfer || !body) {\n return false;\n }\n\n const viewRef = template.createEmbeddedView({\n $implicit: node,\n source: node,\n });\n viewRef.detectChanges();\n\n const dragImage = host.ownerDocument.createElement('div');\n dragImage.classList.add('ngs-tree-drag-placeholder-image');\n dragImage.style.position = 'fixed';\n dragImage.style.insetBlockStart = '0';\n dragImage.style.insetInlineStart = '0';\n dragImage.style.zIndex = '-1';\n dragImage.style.pointerEvents = 'none';\n dragImage.style.transform = 'translate(-200vw, -200vh)';\n\n for (const rootNode of viewRef.rootNodes) {\n if (rootNode instanceof Node) {\n dragImage.appendChild(rootNode);\n }\n }\n\n body.appendChild(dragImage);\n dataTransfer.setDragImage(dragImage, 12, 12);\n window.setTimeout(() => {\n viewRef.destroy();\n dragImage.remove();\n });\n return true;\n }\n\n _registerNodeValue(node: T, value: unknown) {\n const key = this._getTreeNodeDataKey(node);\n this._nodeValueByDataKey.set(key, value);\n }\n\n _unregisterNodeValueByDataKey(key: unknown) {\n this._nodeValueByDataKey.delete(key);\n }\n\n _registerNodeDisabled(node: T, disabled: boolean) {\n const key = this._getTreeNodeDataKey(node);\n if (disabled) {\n const checkedKey = this._getCheckableNodeKey(node);\n const wasChecked = this._checkedKeys.has(checkedKey);\n this._disabledDataKeys.add(key);\n this._enabledDataKeys.delete(key);\n this._checkedKeys.delete(checkedKey);\n if (Object.is(this._selectedKey(), this._getTreeNodeValue(node))) {\n this._selectedKey.set(undefined);\n this.selectedChange.emit(undefined);\n }\n if (wasChecked) {\n this._syncCheckedParentKeys();\n this._checkStateVersion.update(value => value + 1);\n this.checkedChange.emit(this._getCheckedValues());\n }\n } else {\n this._disabledDataKeys.delete(key);\n this._enabledDataKeys.add(key);\n }\n }\n\n _unregisterNodeDisabledByDataKey(key: unknown) {\n this._disabledDataKeys.delete(key);\n this._enabledDataKeys.delete(key);\n }\n\n _isNodeDisabled(node: T): boolean {\n const key = this._getTreeNodeDataKey(node);\n if (this._enabledDataKeys.has(key)) {\n return false;\n }\n\n return this._disabledDataKeys.has(key) || (node as { disabled?: boolean } | null | undefined)?.disabled === true;\n }\n\n _getTreeNodeDataKey(node: T): unknown {\n return this._getTreeNodeKey(node);\n }\n\n _getTreeNodeValue(node: T): unknown {\n const key = this._getTreeNodeDataKey(node);\n return this._nodeValueByDataKey.has(key) ? this._nodeValueByDataKey.get(key) : key;\n }\n\n private _canDropNode(target: T, position: TreeNodeDropPosition): boolean {\n const source = this._draggedNode;\n return !!source\n && this.draggable()\n && !this._isNodeDisabled(target)\n && !this._isSameNode(source, target)\n && !this._isNodeDescendantOf(target, source)\n && this.dropPredicate()(source, target, position);\n }\n\n private _moveNode(source: T, target: T, position: TreeNodeDropPosition): boolean {\n const rootNodes = this._getRootNodes();\n if (!rootNodes) {\n return false;\n }\n\n const moved = position === 'inside'\n ? this._moveNodeInto(source, target, rootNodes)\n : this._moveNodeBeside(source, target, position, rootNodes);\n if (!moved) {\n return false;\n }\n\n this._refreshTreeData(rootNodes);\n this._syncCheckedParentKeys();\n this._checkStateVersion.update(value => value + 1);\n return true;\n }\n\n private _moveNodeInto(source: T, target: T, rootNodes: T[]): boolean {\n const sourceLocation = this._removeNodeFrom(rootNodes, source);\n if (!sourceLocation) {\n return false;\n }\n\n const targetChildren = this._getMutableNodeChildren(target);\n if (!targetChildren) {\n sourceLocation.items.splice(sourceLocation.index, 0, source);\n return false;\n }\n\n targetChildren.push(source);\n (this as { expand?: (node: T) => void }).expand?.(target);\n return true;\n }\n\n private _moveNodeBeside(\n source: T,\n target: T,\n position: Exclude<TreeNodeDropPosition, 'inside'>,\n rootNodes: T[],\n ): boolean {\n const sourceLocation = this._removeNodeFrom(rootNodes, source);\n if (!sourceLocation) {\n return false;\n }\n\n const targetLocation = this._findNodeLocation(rootNodes, target);\n if (!targetLocation) {\n sourceLocation.items.splice(sourceLocation.index, 0, source);\n return false;\n }\n\n const insertIndex = position === 'before' ? targetLocation.index : targetLocation.index + 1;\n targetLocation.items.splice(insertIndex, 0, source);\n return true;\n }\n\n private _findNodeLocation(nodes: T[], target: T): { items: T[]; index: number } | undefined {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (this._isSameNode(node, target)) {\n return { items: nodes, index: i };\n }\n\n const children = this._getDataNodeChildren(node);\n if (Array.isArray(children)) {\n const location = this._findNodeLocation(children, target);\n if (location) {\n return location;\n }\n }\n }\n\n return undefined;\n }\n\n private _removeNodeFrom(nodes: T[], source: T): { items: T[]; index: number } | undefined {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (this._isSameNode(node, source)) {\n nodes.splice(i, 1);\n return { items: nodes, index: i };\n }\n\n const children = this._getDataNodeChildren(node);\n if (Array.isArray(children)) {\n const location = this._removeNodeFrom(children, source);\n if (location) {\n return location;\n }\n }\n }\n\n return undefined;\n }\n\n private _getRootNodes(): T[] | undefined {\n return Array.isArray(this.dataSource) ? this.dataSource : undefined;\n }\n\n private _getDataNodeChildren(node: T): T[] | undefined {\n const childrenAccessor = this.childrenAccessor as ((node: T) => T[] | undefined | null) | undefined;\n const children = childrenAccessor?.(node);\n return Array.isArray(children) ? children : undefined;\n }\n\n private _getMutableNodeChildren(node: T): T[] | undefined {\n const existingChildren = this._getDataNodeChildren(node);\n if (existingChildren?.length) {\n return existingChildren;\n }\n\n const childrenKey = this.childrenKey();\n const nodeRecord = node as Record<string, unknown> | null | undefined;\n if (!nodeRecord || typeof nodeRecord !== 'object') {\n return existingChildren;\n }\n\n if (!Array.isArray(nodeRecord[childrenKey])) {\n nodeRecord[childrenKey] = [];\n }\n\n return nodeRecord[childrenKey] as T[];\n }\n\n private _refreshTreeData(rootNodes: T[]) {\n if (Array.isArray(this.dataSource)) {\n this.dataSource = [];\n this.dataSource = [...rootNodes];\n return;\n }\n\n this.renderNodeChanges(rootNodes);\n }\n\n private _applyFilteredDataSource() {\n const source = this._sourceDataSource;\n if (!source) {\n super.dataSource = [];\n return;\n }\n\n super.dataSource = this._getFilteredDataSource(source);\n }\n\n private _getFilteredDataSource(dataSource: DataSource<T> | Observable<T[]> | T[]): DataSource<T> | Observable<T[]> | T[] {\n this._filteredNodeOriginals = new WeakMap<object, T>();\n if (!Array.isArray(dataSource) || !this._isFilterActive()) {\n return dataSource;\n }\n\n const filteredData = dataSource\n .map(node => this._filterNode(node))\n .filter((node): node is T => node !== undefined);\n this._expandFilteredNodes(filteredData);\n return filteredData;\n }\n\n private _filterNode(node: T): T | undefined {\n const filterValue = this.filterValue().trim();\n const children = this._getDataNodeChildren(node) ?? [];\n const matches = this.filterPredicate()(node, filterValue);\n\n if (matches && this.filterMode() === 'includeDescendants') {\n return node;\n }\n\n const filteredChildren = children\n .map(child => this._filterNode(child))\n .filter((child): child is T => child !== undefined);\n if (!matches && !filteredChildren.length) {\n return undefined;\n }\n\n if (filteredChildren.length === children.length) {\n return node;\n }\n\n return this._cloneNodeWithChildren(node, filteredChildren);\n }\n\n private _cloneNodeWithChildren(node: T, children: T[]): T {\n const nodeRecord = node as Record<string, unknown> | null | undefined;\n if (!nodeRecord || typeof nodeRecord !== 'object') {\n return node;\n }\n\n const clone = {\n ...nodeRecord,\n [this.childrenKey()]: children,\n } as T;\n this._filteredNodeOriginals.set(clone as object, node);\n return clone;\n }\n\n private _expandFilteredNodes(nodes: T[]) {\n (this as any)._getExpansionModel?.();\n for (const node of nodes) {\n const children = this._getDataNodeChildren(node);\n if (!children?.length) {\n continue;\n }\n\n this.expand(node);\n this._expandFilteredNodes(children);\n }\n }\n\n private _isFilterActive(): boolean {\n return this.filterValue().trim().length > 0;\n }\n\n private _isNodeDescendantOf(node: T, maybeAncestor: T): boolean {\n return this._getCheckableDescendants(maybeAncestor).some(item => this._isSameNode(item, node));\n }\n\n private _isSameNode(first: T, second: T): boolean {\n return first === second || Object.is(this._getTreeNodeDataKey(first), this._getTreeNodeDataKey(second));\n }\n\n private _getDropPosition(event: DragEvent): TreeNodeDropPosition {\n const element = event.currentTarget instanceof HTMLElement\n ? event.currentTarget\n : event.target instanceof HTMLElement\n ? event.target\n : null;\n const rect = element?.getBoundingClientRect();\n if (!rect?.height) {\n return 'inside';\n }\n\n const relativeY = event.clientY - rect.top;\n if (relativeY < rect.height * 0.25) {\n return 'before';\n }\n\n if (relativeY > rect.height * 0.75) {\n return 'after';\n }\n\n return 'inside';\n }\n\n private _clearNodeDrag() {\n this._draggedNode = undefined;\n this._draggedNodeKey.set(undefined);\n this._dropTargetKey.set(undefined);\n this._dropTargetPosition.set(undefined);\n }\n\n private _getCheckableDescendants(node: T): T[] {\n const treeControl = this.treeControl as {\n dataNodes?: T[];\n getDescendants?: (node: T) => T[];\n getLevel?: (node: T) => number;\n } | undefined;\n const flatNodes = treeControl?.dataNodes?.length\n ? treeControl.dataNodes\n : ((this as any)._keyManagerNodes?.value ?? (this as any)._flattenedNodes?.value ?? []) as T[];\n\n if (flatNodes.length && treeControl?.getLevel) {\n const nodeKey = this._getTreeNodeKey(node);\n const startIndex = flatNodes.findIndex(item => (\n item === node || this._getTreeNodeKey(item) === nodeKey\n ));\n\n if (startIndex > -1) {\n const descendants: T[] = [];\n const level = treeControl.getLevel(flatNodes[startIndex]);\n for (\n let i = startIndex + 1;\n i < flatNodes.length && treeControl.getLevel(flatNodes[i]) > level;\n i++\n ) {\n descendants.push(flatNodes[i]);\n }\n return descendants;\n }\n }\n\n if (treeControl?.getDescendants) {\n return treeControl.getDescendants(node);\n }\n\n const childrenAccessor = this.childrenAccessor as ((node: T) => T[] | undefined | null) | undefined;\n if (!childrenAccessor) {\n return [];\n }\n\n const descendants: T[] = [];\n const collect = (current: T) => {\n const children = childrenAccessor(current);\n if (!Array.isArray(children)) {\n return;\n }\n\n for (const child of children) {\n descendants.push(child);\n collect(child);\n }\n };\n\n collect(node);\n return descendants;\n }\n\n private _getCheckableNodeKey(node: T): unknown {\n return this._getTreeNodeValue(node);\n }\n\n private _getCheckedValues(): unknown[] {\n return Array.from(this._checkedKeys);\n }\n\n private _syncCheckedParentKeys() {\n const nodes = this._getCheckableNodes();\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i];\n if (this._isNodeDisabled(node)) {\n this._checkedKeys.delete(this._getCheckableNodeKey(node));\n continue;\n }\n\n const descendants = this._getCheckableDescendants(node).filter(item => !this._isNodeDisabled(item));\n if (!descendants.length) {\n continue;\n }\n\n const key = this._getCheckableNodeKey(node);\n if (descendants.every(item => this._checkedKeys.has(this._getCheckableNodeKey(item)))) {\n this._checkedKeys.add(key);\n } else {\n this._checkedKeys.delete(key);\n }\n }\n }\n\n private _getCheckableNodes(): T[] {\n const treeControl = this.treeControl as { dataNodes?: T[] } | undefined;\n const flatNodes = treeControl?.dataNodes?.length\n ? treeControl.dataNodes\n : ((this as any)._keyManagerNodes?.value ?? (this as any)._flattenedNodes?.value ?? []) as T[];\n\n if (flatNodes.length) {\n return flatNodes;\n }\n\n const data = this.dataSource;\n if (!Array.isArray(data)) {\n return [];\n }\n\n const childrenAccessor = this.childrenAccessor as ((node: T) => T[] | undefined | null) | undefined;\n if (!childrenAccessor) {\n return data;\n }\n\n const nodes: T[] = [];\n const collect = (items: T[]) => {\n for (const item of items) {\n nodes.push(item);\n const children = childrenAccessor(item);\n if (Array.isArray(children)) {\n collect(children);\n }\n }\n };\n\n collect(data);\n return nodes;\n }\n\n private _getTreeNodeKey(node: T): unknown {\n const originalNode = this._getOriginalFilterNode(node);\n const treeControl = this.treeControl as { trackBy?: (node: T) => K } | undefined;\n if (treeControl?.trackBy) {\n return treeControl.trackBy(originalNode);\n }\n\n if (this.expansionKey) {\n return this.expansionKey(originalNode);\n }\n\n if (this.trackBy) {\n return this.trackBy(-1, originalNode);\n }\n\n return originalNode;\n }\n\n private _getOriginalFilterNode(node: T): T {\n if (node && typeof node === 'object') {\n return this._filteredNodeOriginals.get(node as object) ?? node;\n }\n\n return node;\n }\n}\n","import {\n CDK_TREE_NODE_OUTLET_NODE, CdkNestedTreeNode,\n CdkTreeNode,\n} from '@angular/cdk/tree';\nimport {\n ApplicationRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n createComponent,\n ElementRef,\n EnvironmentInjector,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n effect,\n Renderer2\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Checkbox, CheckboxChange } from '@ngstarter-ui/components/checkbox';\nimport { Tree } from '../tree/tree';\n\nconst NGS_TREE_NODE_VALUE_UNSET = Symbol('ngs-tree-node-value-unset');\n\nfunction isNoopTreeKeyManager(keyManager: any) {\n return !!keyManager._isNoopTreeKeyManager;\n}\n\nfunction isTreeNodeControlClick(event: MouseEvent, host: HTMLElement): boolean {\n const target = event.target;\n if (!(target instanceof Element)) {\n return false;\n }\n\n const control = target.closest(\n '.ngs-tree-node-checkbox, [ngsTreeNodeToggle], [ngstreenodetoggle]',\n );\n\n return !!control && control !== host;\n}\n\nfunction setTreeNodeDragImage(event: DragEvent, host: HTMLElement): void {\n const dataTransfer = event.dataTransfer;\n const body = host.ownerDocument.body;\n\n if (!dataTransfer || !body) {\n return;\n }\n\n const rect = host.getBoundingClientRect();\n const clone = host.cloneNode(true);\n\n if (!(clone instanceof HTMLElement)) {\n return;\n }\n\n clone.classList.add('ngs-tree-node-drag-image');\n clone.style.width = `${rect.width}px`;\n body.appendChild(clone);\n dataTransfer.setDragImage(\n clone,\n Math.max(0, Math.min(event.clientX - rect.left, rect.width)),\n Math.max(0, Math.min(event.clientY - rect.top, rect.height)),\n );\n window.setTimeout(() => clone.remove());\n}\n\nfunction setEmptyTreeNodeDragImage(event: DragEvent): void {\n const dataTransfer = event.dataTransfer;\n\n if (!dataTransfer) {\n return;\n }\n\n const image = new Image();\n image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';\n dataTransfer.setDragImage(image, 0, 0);\n}\n\nclass TreeNodeCheckbox<T, K = T> {\n private _isReady = false;\n private _wrapperElement?: HTMLElement;\n private _componentRef?: ComponentRef<Checkbox>;\n private _unlistenClick?: () => void;\n private _unlistenKeydown?: () => void;\n private _changeSubscription?: { unsubscribe: () => void };\n\n constructor(\n private _node: CdkTreeNode<T, K>,\n private _tree: Tree<T, K>,\n private _elementRef: ElementRef<HTMLElement>,\n private _renderer: Renderer2,\n private _appRef: ApplicationRef,\n private _environmentInjector: EnvironmentInjector,\n private _disabled: () => boolean,\n ) {}\n\n enable() {\n this._isReady = true;\n this.sync();\n }\n\n sync() {\n if (!this._isReady) {\n return;\n }\n\n if (!this._tree.checkable()) {\n this.destroy();\n return;\n }\n\n const checkbox = this._ensureCheckbox();\n const node = this._node.data;\n const checked = this._tree._isNodeChecked(node);\n const indeterminate = this._tree._isNodeIndeterminate(node);\n\n checkbox.checked.set(checked);\n checkbox.indeterminate.set(indeterminate);\n checkbox.disabled.set(this._disabled());\n this._componentRef?.changeDetectorRef.detectChanges();\n }\n\n destroy() {\n this._unlistenClick?.();\n this._unlistenClick = undefined;\n this._unlistenKeydown?.();\n this._unlistenKeydown = undefined;\n this._changeSubscription?.unsubscribe();\n this._changeSubscription = undefined;\n if (this._componentRef) {\n this._appRef.detachView(this._componentRef.hostView);\n this._componentRef.destroy();\n this._componentRef = undefined;\n }\n this._wrapperElement?.remove();\n this._wrapperElement = undefined;\n }\n\n private _ensureCheckbox(): Checkbox {\n if (this._componentRef) {\n return this._componentRef.instance;\n }\n\n const existingWrapper = this._elementRef.nativeElement.querySelector(\n ':scope > .ngs-tree-node-checkbox',\n ) as HTMLElement | null;\n const wrapper = existingWrapper ?? this._renderer.createElement('span') as HTMLElement;\n let checkboxHost = wrapper.querySelector(':scope > ngs-checkbox') as HTMLElement | null;\n\n if (!existingWrapper) {\n this._renderer.addClass(wrapper, 'ngs-tree-node-checkbox');\n checkboxHost = this._renderer.createElement('ngs-checkbox') as HTMLElement;\n this._renderer.appendChild(wrapper, checkboxHost);\n this._renderer.insertBefore(\n this._elementRef.nativeElement,\n wrapper,\n this._getCheckboxInsertionReference(),\n );\n } else if (!checkboxHost) {\n checkboxHost = this._renderer.createElement('ngs-checkbox') as HTMLElement;\n this._renderer.appendChild(wrapper, checkboxHost);\n }\n\n while (checkboxHost.firstChild) {\n checkboxHost.firstChild.remove();\n }\n\n this._wrapperElement = wrapper;\n this._componentRef = createComponent(Checkbox, {\n environmentInjector: this._environmentInjector,\n hostElement: checkboxHost,\n });\n this._componentRef.setInput('aria-label', 'Select tree node');\n this._componentRef.setInput('tabIndex', -1);\n this._appRef.attachView(this._componentRef.hostView);\n this._bindCheckboxEvents(wrapper, this._componentRef);\n\n return this._componentRef.instance;\n }\n\n private _getCheckboxInsertionReference(): ChildNode | null {\n const host = this._elementRef.nativeElement;\n const firstElement = host.firstElementChild;\n if (\n firstElement?.matches(\n 'button, [ngsTreeNodeToggle], [ngstreenodetoggle], [ngsIconButton], [ngsiconbutton]',\n )\n ) {\n return firstElement.nextSibling;\n }\n\n return host.firstChild;\n }\n\n private _bindCheckboxEvents(checkboxElement: HTMLElement, checkboxRef: ComponentRef<Checkbox>) {\n this._unlistenClick = this._renderer.listen(checkboxElement, 'click', (event: Event) => {\n event.stopPropagation();\n });\n this._unlistenKeydown = this._renderer.listen(checkboxElement, 'keydown', (event: Event) => {\n event.stopPropagation();\n });\n this._changeSubscription = checkboxRef.instance.change.subscribe((event: CheckboxChange) => {\n this._tree._toggleNodeChecked(this._node.data, event.checked);\n });\n }\n}\n\n@Component({\n selector: 'ngs-tree-node',\n exportAs: 'ngsTreeNode',\n template: `<ng-content />`,\n styleUrl: './tree-node.scss',\n standalone: true,\n outputs: ['activation', 'expandedChange'],\n providers: [{ provide: CdkTreeNode, useExisting: TreeNode }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'ngs-tree-node',\n '[class.ngs-tree-node-selectable]': '_isSelectable()',\n '[class.ngs-tree-node-selected]': '_isSelected()',\n '[class.ngs-tree-node-disabled]': 'disabled()',\n '[class.ngs-tree-node-draggable]': '_isDraggable()',\n '[class.ngs-tree-node-dragging-source]': '_isDraggingSource()',\n '[class.ngs-tree-node-drop-target]': '_isDropTarget()',\n '[class.ngs-tree-node-drop-before]': '_isDropTargetPosition(\"before\")',\n '[class.ngs-tree-node-drop-inside]': '_isDropTargetPosition(\"inside\")',\n '[class.ngs-tree-node-drop-after]': '_isDropTargetPosition(\"after\")',\n '[attr.draggable]': '_getDraggableAttribute()',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.aria-grabbed]': '_getAriaGrabbed()',\n '(click)': '_handleNodeClick($event)',\n '(dragstart)': '_handleDragStart($event)',\n '(dragover)': '_handleDragOver($event)',\n '(dragleave)': '_handleDragLeave($event)',\n '(drop)': '_handleDrop($event)',\n '(dragend)': '_handleDragEnd()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n})\nexport class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n private _hostElementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _appRef = inject(ApplicationRef);\n private _environmentInjector = inject(EnvironmentInjector);\n private _platformId = inject(PLATFORM_ID);\n private _checkbox: TreeNodeCheckbox<T, K>;\n private _dataChangesSubscription?: { unsubscribe: () => void };\n private _checkboxEnableHandle?: ReturnType<typeof setTimeout>;\n private _registeredDataKey: unknown = NGS_TREE_NODE_VALUE_UNSET;\n\n tabIndexInputBinding = input<number, any>(0, {\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n });\n\n value = input<unknown>(NGS_TREE_NODE_VALUE_UNSET);\n\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n defaultTabIndex = 0;\n\n constructor() {\n super();\n const tree = this._tree as Tree<T, K>;\n this._checkbox = new TreeNodeCheckbox(\n this,\n tree,\n this._hostElementRef,\n this._renderer,\n this._appRef,\n this._environmentInjector,\n () => this.disabled(),\n );\n this._dataChangesSubscription = this._dataChanges.subscribe(() => this._syncNodeState());\n if (isPlatformBrowser(this._platformId)) {\n this._checkboxEnableHandle = setTimeout(() => this._checkbox.enable());\n }\n const tabIndex = inject(new HostAttributeToken('tabindex'), { optional: true });\n (this as any)._tabIndexInputBinding = Number(tabIndex) || this.defaultTabIndex;\n effect(() => {\n this.isDisabled = this.disabled();\n });\n effect(() => {\n tree.checkable();\n tree._checkStateVersion();\n this.disabled();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n });\n effect(() => {\n this.value();\n this._syncNodeState();\n });\n }\n\n _getTabindexAttribute() {\n if (isNoopTreeKeyManager((this._tree as any)._keyManager)) {\n return this.tabIndexInputBinding();\n }\n return (this as any)._tabindex;\n }\n\n _handleNodeClick(event: MouseEvent) {\n this._focusItem();\n this._selectNodeFromEvent(event);\n }\n\n _isSelectable(): boolean {\n return (this._tree as Tree<T, K>).selectable() && !this.disabled();\n }\n\n _isSelected(): boolean {\n const tree = this._tree as Tree<T, K>;\n return tree.selectable() && tree._isNodeSelected(this.data);\n }\n\n _getAriaSelected(): boolean | null {\n return (this._tree as Tree<T, K>).selectable() ? this._isSelected() : null;\n }\n\n _isDraggable(): boolean {\n return (this._tree as Tree<T, K>)._canDragNode(this.data);\n }\n\n _isDropTarget(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTarget(this.data);\n }\n\n _isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTargetPosition(this.data, position);\n }\n\n _isDraggingSource(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDraggingSource(this.data);\n }\n\n _getDraggableAttribute(): true | null {\n return this._isDraggable() ? true : null;\n }\n\n _getAriaGrabbed(): boolean | null {\n return (this._tree as Tree<T, K>).draggable() ? false : null;\n }\n\n _handleDragStart(event: DragEvent) {\n (this._tree as Tree<T, K>)._startNodeDrag(this.data, event);\n if (!event.defaultPrevented) {\n this._setDragImage(event);\n }\n }\n\n _handleDragOver(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeOver(this.data, event);\n }\n\n _handleDragLeave(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeLeave(this.data, event);\n }\n\n _handleDrop(event: DragEvent) {\n (this._tree as Tree<T, K>)._dropNodeInto(this.data, event);\n }\n\n _handleDragEnd() {\n (this._tree as Tree<T, K>)._endNodeDrag();\n }\n\n private _setDragImage(event: DragEvent) {\n if ((this._tree as Tree<T, K>)._getDragPreview() === 'none') {\n setEmptyTreeNodeDragImage(event);\n return;\n }\n\n if ((this._tree as Tree<T, K>)._setDragPlaceholderImage(this.data, event, this._hostElementRef.nativeElement)) {\n return;\n }\n\n setTreeNodeDragImage(event, this._hostElementRef.nativeElement);\n }\n\n private _selectNodeFromEvent(event: MouseEvent) {\n if (!this._isSelectable() || this._isTreeControlClick(event)) {\n return;\n }\n\n (this._tree as Tree<T, K>)._selectNode(this.data);\n }\n\n private _isTreeControlClick(event: MouseEvent): boolean {\n return isTreeNodeControlClick(event, this._hostElementRef.nativeElement);\n }\n\n private _syncNodeState() {\n this._syncNodeValueRegistration();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n }\n\n private _syncNodeValueRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n const tree = this._tree as Tree<T, K>;\n const key = tree._getTreeNodeDataKey(this.data);\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET && !Object.is(this._registeredDataKey, key)) {\n tree._unregisterNodeValueByDataKey(this._registeredDataKey);\n tree._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n\n this._registeredDataKey = key;\n if (this.value() === NGS_TREE_NODE_VALUE_UNSET) {\n tree._unregisterNodeValueByDataKey(key);\n } else {\n tree._registerNodeValue(this.data, this.value());\n }\n }\n\n private _syncNodeDisabledRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n (this._tree as Tree<T, K>)._registerNodeDisabled(this.data, this.disabled());\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._syncNodeState();\n }\n\n override ngOnDestroy() {\n if (this._checkboxEnableHandle) {\n clearTimeout(this._checkboxEnableHandle);\n }\n this._dataChangesSubscription?.unsubscribe();\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET) {\n (this._tree as Tree<T, K>)._unregisterNodeValueByDataKey(this._registeredDataKey);\n (this._tree as Tree<T, K>)._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n this._checkbox.destroy();\n super.ngOnDestroy();\n }\n}\n\n@Component({\n selector: 'ngs-nested-tree-node',\n exportAs: 'ngsNestedTreeNode',\n template: `<ng-content />`,\n styleUrl: './tree-node.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n outputs: ['activation', 'expandedChange'],\n providers: [\n { provide: CdkNestedTreeNode, useExisting: NestedTreeNode },\n { provide: CdkTreeNode, useExisting: NestedTreeNode },\n { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: NestedTreeNode },\n ],\n host: {\n 'class': 'ngs-nested-tree-node',\n '[class.ngs-tree-node-selectable]': '_isSelectable()',\n '[class.ngs-tree-node-selected]': '_isSelected()',\n '[class.ngs-tree-node-disabled]': 'disabled()',\n '[class.ngs-tree-node-draggable]': '_isDraggable()',\n '[class.ngs-tree-node-dragging-source]': '_isDraggingSource()',\n '[class.ngs-tree-node-drop-target]': '_isDropTarget()',\n '[class.ngs-tree-node-drop-before]': '_isDropTargetPosition(\"before\")',\n '[class.ngs-tree-node-drop-inside]': '_isDropTargetPosition(\"inside\")',\n '[class.ngs-tree-node-drop-after]': '_isDropTargetPosition(\"after\")',\n '[attr.draggable]': '_getDraggableAttribute()',\n '[attr.aria-selected]': '_getAriaSelected()',\n '[attr.aria-disabled]': 'disabled()',\n '[attr.aria-grabbed]': '_getAriaGrabbed()',\n '(click)': '_handleNodeClick($event)',\n '(dragstart)': '_handleDragStart($event)',\n '(dragover)': '_handleDragOver($event)',\n '(dragleave)': '_handleDragLeave($event)',\n '(drop)': '_handleDrop($event)',\n '(dragend)': '_handleDragEnd()',\n },\n})\nexport class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implements OnInit, OnDestroy {\n private _hostElementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private _renderer = inject(Renderer2);\n private _appRef = inject(ApplicationRef);\n private _environmentInjector = inject(EnvironmentInjector);\n private _platformId = inject(PLATFORM_ID);\n private _checkbox: TreeNodeCheckbox<T, K>;\n private _dataChangesSubscription?: { unsubscribe: () => void };\n private _checkboxEnableHandle?: ReturnType<typeof setTimeout>;\n private _registeredDataKey: unknown = NGS_TREE_NODE_VALUE_UNSET;\n\n node = input<T>(undefined!, {\n alias: 'ngsNestedTreeNode'\n });\n\n value = input<unknown>(NGS_TREE_NODE_VALUE_UNSET);\n\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n tabIndexInput = input<number, any>(0, {\n alias: 'tabIndex',\n transform: (value: any) => (value == null ? 0 : numberAttribute(value))\n });\n\n constructor() {\n super();\n const tree = this._tree as Tree<T, K>;\n this._checkbox = new TreeNodeCheckbox(\n this,\n tree,\n this._hostElementRef,\n this._renderer,\n this._appRef,\n this._environmentInjector,\n () => this.disabled(),\n );\n this._dataChangesSubscription = this._dataChanges.subscribe(() => this._syncNodeState());\n if (isPlatformBrowser(this._platformId)) {\n this._checkboxEnableHandle = setTimeout(() => this._checkbox.enable());\n }\n effect(() => {\n this.isDisabled = this.disabled();\n });\n effect(() => {\n tree.checkable();\n tree._checkStateVersion();\n this.disabled();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n });\n effect(() => {\n this.value();\n this._syncNodeState();\n });\n }\n\n get tabIndex(): number {\n return this.isDisabled ? -1 : this.tabIndexInput();\n }\n\n _handleNodeClick(event: MouseEvent) {\n (this as any)._focusItem?.();\n this._selectNodeFromEvent(event);\n }\n\n _isSelectable(): boolean {\n return (this._tree as Tree<T, K>).selectable() && !this.disabled();\n }\n\n _isSelected(): boolean {\n const tree = this._tree as Tree<T, K>;\n return tree.selectable() && tree._isNodeSelected(this.data);\n }\n\n _getAriaSelected(): boolean | null {\n return (this._tree as Tree<T, K>).selectable() ? this._isSelected() : null;\n }\n\n _isDraggable(): boolean {\n return (this._tree as Tree<T, K>)._canDragNode(this.data);\n }\n\n _isDropTarget(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTarget(this.data);\n }\n\n _isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean {\n return (this._tree as Tree<T, K>)._isNodeDropTargetPosition(this.data, position);\n }\n\n _isDraggingSource(): boolean {\n return (this._tree as Tree<T, K>)._isNodeDraggingSource(this.data);\n }\n\n _getDraggableAttribute(): true | null {\n return this._isDraggable() ? true : null;\n }\n\n _getAriaGrabbed(): boolean | null {\n return (this._tree as Tree<T, K>).draggable() ? false : null;\n }\n\n _handleDragStart(event: DragEvent) {\n (this._tree as Tree<T, K>)._startNodeDrag(this.data, event);\n if (!event.defaultPrevented) {\n this._setDragImage(event);\n }\n }\n\n _handleDragOver(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeOver(this.data, event);\n }\n\n _handleDragLeave(event: DragEvent) {\n (this._tree as Tree<T, K>)._dragNodeLeave(this.data, event);\n }\n\n _handleDrop(event: DragEvent) {\n (this._tree as Tree<T, K>)._dropNodeInto(this.data, event);\n }\n\n _handleDragEnd() {\n (this._tree as Tree<T, K>)._endNodeDrag();\n }\n\n private _setDragImage(event: DragEvent) {\n if ((this._tree as Tree<T, K>)._getDragPreview() === 'none') {\n setEmptyTreeNodeDragImage(event);\n return;\n }\n\n if ((this._tree as Tree<T, K>)._setDragPlaceholderImage(this.data, event, this._hostElementRef.nativeElement)) {\n return;\n }\n\n setTreeNodeDragImage(event, this._hostElementRef.nativeElement);\n }\n\n private _selectNodeFromEvent(event: MouseEvent) {\n if (!this._isSelectable() || this._isTreeControlClick(event)) {\n return;\n }\n\n (this._tree as Tree<T, K>)._selectNode(this.data);\n }\n\n private _isTreeControlClick(event: MouseEvent): boolean {\n return isTreeNodeControlClick(event, this._hostElementRef.nativeElement);\n }\n\n private _syncNodeState() {\n this._syncNodeValueRegistration();\n this._syncNodeDisabledRegistration();\n this._checkbox.sync();\n }\n\n private _syncNodeValueRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n const tree = this._tree as Tree<T, K>;\n const key = tree._getTreeNodeDataKey(this.data);\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET && !Object.is(this._registeredDataKey, key)) {\n tree._unregisterNodeValueByDataKey(this._registeredDataKey);\n tree._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n\n this._registeredDataKey = key;\n if (this.value() === NGS_TREE_NODE_VALUE_UNSET) {\n tree._unregisterNodeValueByDataKey(key);\n } else {\n tree._registerNodeValue(this.data, this.value());\n }\n }\n\n private _syncNodeDisabledRegistration() {\n if (this.data === undefined) {\n return;\n }\n\n (this._tree as Tree<T, K>)._registerNodeDisabled(this.data, this.disabled());\n }\n\n override ngOnInit() {\n super.ngOnInit();\n this._syncNodeState();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\n if (this._checkboxEnableHandle) {\n clearTimeout(this._checkboxEnableHandle);\n }\n this._dataChangesSubscription?.unsubscribe();\n if (this._registeredDataKey !== NGS_TREE_NODE_VALUE_UNSET) {\n (this._tree as Tree<T, K>)._unregisterNodeValueByDataKey(this._registeredDataKey);\n (this._tree as Tree<T, K>)._unregisterNodeDisabledByDataKey(this._registeredDataKey);\n }\n this._checkbox.destroy();\n super.ngOnDestroy();\n }\n}\n","import { CdkTreeNodePadding } from '@angular/cdk/tree';\nimport { Directive, effect, inject, input, numberAttribute } from '@angular/core';\nimport { Tree } from './tree/tree';\n\n@Directive({\n selector: '[ngsTreeNodePadding]',\n providers: [{ provide: CdkTreeNodePadding, useExisting: TreeNodePadding }],\n standalone: true\n})\nexport class TreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {\n private readonly tree = inject<Tree<T, K>>(Tree, { optional: true });\n\n levelInput = input<number, any>(0, {\n alias: 'ngsTreeNodePadding',\n transform: numberAttribute\n });\n\n indentInput = input<number | string | undefined>(undefined, {\n alias: 'ngsTreeNodePaddingIndent'\n });\n\n constructor() {\n super();\n effect(() => {\n this.level = this.levelInput();\n });\n effect(() => {\n this._setIndentInput(this.indentInput() ?? this.tree?.nodePaddingIndent() ?? 48);\n });\n }\n}\n","import { CdkTreeNodeToggle } from '@angular/cdk/tree';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[ngsTreeNodeToggle]',\n providers: [{ provide: CdkTreeNodeToggle, useExisting: TreeNodeToggle }],\n inputs: [{ name: 'recursive', alias: 'ngsTreeNodeToggleRecursive' }],\n standalone: true\n})\nexport class TreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {\n}\n","import { CdkTreeNodeDef } from '@angular/cdk/tree';\nimport { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[ngsTreeNodeDef]',\n inputs: [{ name: 'when', alias: 'ngsTreeNodeDefWhen' }],\n providers: [{ provide: CdkTreeNodeDef, useExisting: TreeNodeDef }],\n standalone: true\n})\nexport class TreeNodeDef<T> extends CdkTreeNodeDef<T> {\n data = input<T>(undefined!, {\n alias: 'ngsTreeNode'\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ngstarter-ui/components",
|
|
3
3
|
"description": "NgStarter - AI-friendly Enterprise Angular UI Components and Admin Panel",
|
|
4
|
-
"version": "21.0.
|
|
4
|
+
"version": "21.0.42",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/elementarlabsdev/ngstarter.git"
|
|
@@ -11,28 +11,37 @@ interface Country {
|
|
|
11
11
|
flag?: string;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
type CountrySelectValue = string | string[] | null;
|
|
15
|
+
declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor, FormFieldControl<CountrySelectValue> {
|
|
15
16
|
private static readonly COUNTRY_RENDER_CHUNK_SIZE;
|
|
16
17
|
private static readonly COUNTRY_RENDER_CHUNK_DELAY;
|
|
17
18
|
private _elementRef;
|
|
18
19
|
private _renderer;
|
|
19
20
|
private _formField;
|
|
20
21
|
static nextId: number;
|
|
21
|
-
id: string;
|
|
22
22
|
readonly stateChanges: Subject<void>;
|
|
23
23
|
protected searchTerm: _angular_core.ModelSignal<string>;
|
|
24
24
|
protected visibleCountryCount: _angular_core.WritableSignal<number>;
|
|
25
|
-
|
|
25
|
+
readonly valueSignal: _angular_core.ModelSignal<CountrySelectValue>;
|
|
26
26
|
private readonly _focusedSignal;
|
|
27
27
|
private _touched;
|
|
28
|
+
readonly idSignal: _angular_core.InputSignal<string>;
|
|
28
29
|
placeholderInputSignal: _angular_core.InputSignal<string>;
|
|
29
30
|
isRequiredSignal: _angular_core.ModelSignal<boolean>;
|
|
30
31
|
isDisabledSignal: _angular_core.ModelSignal<boolean>;
|
|
32
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
33
|
+
readonly hideCheckIcon: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
34
|
+
readonly clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
35
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
36
|
+
readonly tabIndex: _angular_core.InputSignalWithTransform<number, any>;
|
|
37
|
+
readonly ariaDescribedby: _angular_core.InputSignal<string | null>;
|
|
31
38
|
readonly showCountryCode: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
32
39
|
readonly internalCountries: Country[];
|
|
33
40
|
readonly filteredCountries: _angular_core.Signal<Country[]>;
|
|
34
41
|
readonly visibleCountries: _angular_core.Signal<Country[]>;
|
|
35
|
-
readonly
|
|
42
|
+
readonly selectedCountryDisplays: _angular_core.Signal<Country[]>;
|
|
43
|
+
readonly selectedCountryDisplay: _angular_core.Signal<Country>;
|
|
44
|
+
readonly selectedCountriesText: _angular_core.Signal<string>;
|
|
36
45
|
readonly ngsSelect: _angular_core.Signal<Select>;
|
|
37
46
|
readonly searchInput: _angular_core.Signal<ElementRef<HTMLInputElement>>;
|
|
38
47
|
private readonly fm;
|
|
@@ -41,6 +50,7 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
|
|
|
41
50
|
private readonly destroyRef;
|
|
42
51
|
readonly opened: _angular_core.OutputEmitterRef<void>;
|
|
43
52
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
53
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<SelectChange>;
|
|
44
54
|
private onChangeFn;
|
|
45
55
|
private onTouchedFn;
|
|
46
56
|
private _countryRenderTimeout;
|
|
@@ -48,8 +58,9 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
|
|
|
48
58
|
constructor();
|
|
49
59
|
ngOnInit(): void;
|
|
50
60
|
ngOnDestroy(): void;
|
|
51
|
-
get
|
|
52
|
-
|
|
61
|
+
get id(): string;
|
|
62
|
+
get value(): CountrySelectValue;
|
|
63
|
+
set value(val: CountrySelectValue);
|
|
53
64
|
get focused(): boolean;
|
|
54
65
|
onFocusIn(): void;
|
|
55
66
|
onFocusOut(event: any): void;
|
|
@@ -65,7 +76,7 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
|
|
|
65
76
|
get touched(): boolean;
|
|
66
77
|
setDescribedByIds(ids: string[]): void;
|
|
67
78
|
onContainerClick(): void;
|
|
68
|
-
writeValue(value:
|
|
79
|
+
writeValue(value: CountrySelectValue): void;
|
|
69
80
|
registerOnChange(fn: any): void;
|
|
70
81
|
registerOnTouched(fn: any): void;
|
|
71
82
|
setDisabledState(isDisabled: boolean): void;
|
|
@@ -81,10 +92,10 @@ declare class CountrySelect implements OnInit, OnDestroy, ControlValueAccessor,
|
|
|
81
92
|
private clearCountryRenderTimeout;
|
|
82
93
|
private clearCountrySearchFocusTimeout;
|
|
83
94
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CountrySelect, never>;
|
|
84
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CountrySelect, "ngs-country-select", ["ngsCountrySelect"], { "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "placeholderInputSignal": { "alias": "placeholder"; "required": false; "isSignal": true; }; "isRequiredSignal": { "alias": "required"; "required": false; "isSignal": true; }; "isDisabledSignal": { "alias": "disabled"; "required": false; "isSignal": true; }; "showCountryCode": { "alias": "showCountryCode"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; "isRequiredSignal": "requiredChange"; "isDisabledSignal": "disabledChange"; "opened": "opened"; "closed": "closed"; }, never, never, true, never>;
|
|
95
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CountrySelect, "ngs-country-select", ["ngsCountrySelect"], { "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "valueSignal": { "alias": "value"; "required": false; "isSignal": true; }; "idSignal": { "alias": "id"; "required": false; "isSignal": true; }; "placeholderInputSignal": { "alias": "placeholder"; "required": false; "isSignal": true; }; "isRequiredSignal": { "alias": "required"; "required": false; "isSignal": true; }; "isDisabledSignal": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "hideCheckIcon": { "alias": "hideCheckIcon"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "showCountryCode": { "alias": "showCountryCode"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; "valueSignal": "valueChange"; "isRequiredSignal": "requiredChange"; "isDisabledSignal": "disabledChange"; "opened": "opened"; "closed": "closed"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
85
96
|
}
|
|
86
97
|
|
|
87
98
|
declare const countries: Country[];
|
|
88
99
|
|
|
89
100
|
export { CountrySelect, countries };
|
|
90
|
-
export type { Country };
|
|
101
|
+
export type { Country, CountrySelectValue };
|