@ngstarter-ui/components 21.0.25 → 21.0.27
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 +72 -13
- package/fesm2022/ngstarter-ui-components-notifications.mjs +53 -26
- package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-tree.mjs +960 -37
- package/fesm2022/ngstarter-ui-components-tree.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngstarter-ui-components-notifications.d.ts +21 -8
- package/types/ngstarter-ui-components-tree.d.ts +167 -24
|
@@ -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 ChangeDetectionStrategy,\n Component,\n Directive,\n inject,\n ViewContainerRef,\n viewChild\n} from '@angular/core';\nimport { CDK_TREE_NODE_OUTLET_NODE, CdkTree, CdkTreeNodeOutlet } from '@angular/cdk/tree';\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\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 // Outlets within the tree's template where the dataNodes will be inserted.\n // We need an initializer here to avoid a TS error. The value will be set in `ngAfterViewInit`.\n override readonly _nodeOutlet = viewChild(TreeNodeOutlet) as any;\n}\n","import {\n CDK_TREE_NODE_OUTLET_NODE, CdkNestedTreeNode,\n CdkTreeNode,\n} from '@angular/cdk/tree';\nimport {\n booleanAttribute,\n Directive,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n OnDestroy,\n OnInit,\n effect\n} from '@angular/core';\n\nfunction isNoopTreeKeyManager(keyManager: any) {\n return !!keyManager._isNoopTreeKeyManager;\n}\n\n@Directive({\n selector: 'ngs-tree-node',\n exportAs: 'ngsTreeNode',\n outputs: ['activation', 'expandedChange'],\n providers: [{ provide: CdkTreeNode, useExisting: TreeNode }],\n host: {\n 'class': 'ngs-tree-node',\n '[attr.aria-expanded]': '_getAriaExpanded()',\n '[attr.aria-level]': 'level + 1',\n '[attr.aria-posinset]': '_getPositionInSet()',\n '[attr.aria-setsize]': '_getSetSize()',\n '(click)': '_focusItem()',\n '[tabindex]': '_getTabindexAttribute()',\n },\n standalone: true\n})\nexport class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {\n tabIndexInputBinding = input<number, any>(0, {\n transform: (value: unknown) => (value == null ? 0 : numberAttribute(value)),\n alias: 'tabIndex',\n });\n\n disabled = input(false, {\n transform: booleanAttribute\n });\n\n defaultTabIndex = 0;\n\n constructor() {\n super();\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 }\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 override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n\n@Directive({\n selector: 'ngs-nested-tree-node',\n exportAs: 'ngsNestedTreeNode',\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 },\n standalone: true\n})\nexport class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implements OnInit, OnDestroy {\n node = input<T>(undefined!, {\n alias: 'ngsNestedTreeNode'\n });\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 effect(() => {\n this.isDisabled = this.disabled();\n });\n }\n\n get tabIndex(): number {\n return this.isDisabled ? -1 : this.tabIndexInput();\n }\n\n override ngOnInit() {\n super.ngOnInit();\n }\n\n override ngAfterContentInit() {\n super.ngAfterContentInit();\n }\n\n override ngOnDestroy() {\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 Component,\n Directive,\n effect,\n inject,\n input,\n output,\n signal,\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 type TreeNodeDropPosition = 'before' | 'inside' | 'after';\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@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 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 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 @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 && this.draggable() && !this._isNodeDisabled(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 _startNodeDrag(node: T, event: DragEvent) {\n if (!this._canDragNode(node)) {\n event.preventDefault();\n return;\n }\n\n this._draggedNode = 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._moveNode(source, node, position);\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 _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 }\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._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\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-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 _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 }\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 _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-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 _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 }\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 _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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"}
|
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.27",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/elementarlabsdev/ngstarter.git"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
declare class NotificationDefDirective {
|
|
5
5
|
readonly templateRef: TemplateRef<any>;
|
|
@@ -14,26 +14,39 @@ declare class NotificationControlsDefDirective {
|
|
|
14
14
|
static ɵdir: i0.ɵɵDirectiveDeclaration<NotificationControlsDefDirective, "[ngsNotificationControlsDef]", never, {}, {}, never, never, true, never>;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
interface
|
|
18
|
-
|
|
17
|
+
interface NotificationActorLike {
|
|
18
|
+
id: string | number;
|
|
19
|
+
name: string;
|
|
20
|
+
username?: string;
|
|
21
|
+
avatarUrl: string;
|
|
22
|
+
}
|
|
23
|
+
interface NotificationInterface<TActor extends {
|
|
24
|
+
id: string | number;
|
|
25
|
+
} = NotificationActorLike, TPayload = any> {
|
|
26
|
+
actor: TActor;
|
|
19
27
|
type: string;
|
|
20
28
|
createdAt: string;
|
|
21
29
|
isUnread?: boolean;
|
|
30
|
+
payload?: TPayload;
|
|
22
31
|
[propName: string]: any;
|
|
23
32
|
}
|
|
24
33
|
|
|
25
|
-
declare class NotificationList<T extends NotificationInterface>
|
|
34
|
+
declare class NotificationList<T extends NotificationInterface> {
|
|
26
35
|
readonly defs: i0.Signal<readonly NotificationDefDirective[]>;
|
|
27
36
|
readonly controlsDef: i0.Signal<NotificationControlsDefDirective | undefined>;
|
|
28
37
|
notifications: i0.InputSignal<T[]>;
|
|
29
38
|
static: i0.InputSignalWithTransform<boolean, unknown>;
|
|
39
|
+
readonly notificationClick: i0.OutputEmitterRef<T>;
|
|
30
40
|
protected _initialized: boolean;
|
|
31
|
-
protected _defsMap: Map<string, TemplateRef<any
|
|
41
|
+
protected readonly _defsMap: i0.Signal<Map<string, TemplateRef<any>>>;
|
|
32
42
|
get controlsTpl(): TemplateRef<any>;
|
|
33
|
-
ngAfterContentInit(): void;
|
|
34
43
|
getNotificationTemplate(type: string): TemplateRef<any>;
|
|
44
|
+
protected handleNotificationClick(notification: T, event: Event): void;
|
|
45
|
+
protected handleNotificationKeydown(notification: T, event: KeyboardEvent): void;
|
|
46
|
+
protected stopControlsEvent(event: Event): void;
|
|
47
|
+
private isEventFromInteractiveElement;
|
|
35
48
|
static ɵfac: i0.ɵɵFactoryDeclaration<NotificationList<any>, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationList<any>, "ngs-notification-list", ["ngsNotificationList"], { "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "static": { "alias": "static"; "required": false; "isSignal": true; }; }, {}, ["defs", "controlsDef"], never, true, never>;
|
|
49
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<NotificationList<any>, "ngs-notification-list", ["ngsNotificationList"], { "notifications": { "alias": "notifications"; "required": false; "isSignal": true; }; "static": { "alias": "static"; "required": false; "isSignal": true; }; }, { "notificationClick": "notificationClick"; }, ["defs", "controlsDef"], never, true, never>;
|
|
37
50
|
}
|
|
38
51
|
|
|
39
52
|
declare class NotificationSkeleton {
|
|
@@ -81,4 +94,4 @@ declare class NotificationAvatarDirective {
|
|
|
81
94
|
}
|
|
82
95
|
|
|
83
96
|
export { Notification, NotificationActor, NotificationAvatarDirective, NotificationContent, NotificationControlsDefDirective, NotificationDefDirective, NotificationList, NotificationMessage, NotificationPropsDirective, NotificationSkeleton, NotificationTime };
|
|
84
|
-
export type { NotificationInterface };
|
|
97
|
+
export type { NotificationActorLike, NotificationInterface };
|
|
@@ -1,60 +1,203 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { ViewContainerRef, OnInit, OnDestroy } from '@angular/core';
|
|
3
|
+
import { DataSource } from '@angular/cdk/collections';
|
|
3
4
|
import { CdkTree, CdkTreeNodeOutlet, CdkNestedTreeNode, CdkTreeNode, CdkTreeNodePadding, CdkTreeNodeToggle, CdkTreeNodeDef } from '@angular/cdk/tree';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
4
6
|
|
|
5
7
|
declare class TreeNodeOutlet implements CdkTreeNodeOutlet {
|
|
6
8
|
viewContainer: ViewContainerRef;
|
|
7
9
|
_node: {} | null;
|
|
8
|
-
static ɵfac:
|
|
9
|
-
static ɵdir:
|
|
10
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNodeOutlet, never>;
|
|
11
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeNodeOutlet, "[ngsTreeNodeOutlet]", never, {}, {}, never, never, true, never>;
|
|
10
12
|
}
|
|
13
|
+
interface TreeNodeDrop<T> {
|
|
14
|
+
source: T;
|
|
15
|
+
target: T;
|
|
16
|
+
position: TreeNodeDropPosition;
|
|
17
|
+
sourceValue: unknown;
|
|
18
|
+
targetValue: unknown;
|
|
19
|
+
dataSource: T[];
|
|
20
|
+
}
|
|
21
|
+
type TreeNodeDropPosition = 'before' | 'inside' | 'after';
|
|
22
|
+
type TreeFilterMode = 'includeAncestors' | 'includeDescendants';
|
|
23
|
+
type TreeFilterPredicate<T> = (node: T, filterValue: string) => boolean;
|
|
11
24
|
declare class Tree<T, K = T> extends CdkTree<T, K> {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
25
|
+
get dataSource(): DataSource<T> | Observable<T[]> | T[];
|
|
26
|
+
set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]);
|
|
27
|
+
checkable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
28
|
+
selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
29
|
+
draggable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
30
|
+
childrenKey: _angular_core.InputSignal<string>;
|
|
31
|
+
filterValue: _angular_core.InputSignalWithTransform<string, unknown>;
|
|
32
|
+
filterPredicate: _angular_core.InputSignal<TreeFilterPredicate<T>>;
|
|
33
|
+
filterMode: _angular_core.InputSignal<TreeFilterMode>;
|
|
34
|
+
readonly checkedChange: _angular_core.OutputEmitterRef<unknown[]>;
|
|
35
|
+
readonly selectedChange: _angular_core.OutputEmitterRef<unknown>;
|
|
36
|
+
readonly nodeDrop: _angular_core.OutputEmitterRef<TreeNodeDrop<T>>;
|
|
37
|
+
readonly _checkStateVersion: _angular_core.WritableSignal<number>;
|
|
38
|
+
readonly _selectedKey: _angular_core.WritableSignal<unknown>;
|
|
39
|
+
readonly _dropTargetKey: _angular_core.WritableSignal<unknown>;
|
|
40
|
+
readonly _dropTargetPosition: _angular_core.WritableSignal<TreeNodeDropPosition | undefined>;
|
|
41
|
+
private _checkedKeys;
|
|
42
|
+
private _nodeValueByDataKey;
|
|
43
|
+
private _disabledDataKeys;
|
|
44
|
+
private _enabledDataKeys;
|
|
45
|
+
private _draggedNode?;
|
|
46
|
+
private _sourceDataSource?;
|
|
47
|
+
private _filteredNodeOriginals;
|
|
48
|
+
_nodeOutlet: TreeNodeOutlet;
|
|
49
|
+
constructor();
|
|
50
|
+
_toggleNodeChecked(node: T, checked: boolean): void;
|
|
51
|
+
_isNodeChecked(node: T): boolean;
|
|
52
|
+
_isNodeIndeterminate(node: T): boolean;
|
|
53
|
+
_selectNode(node: T): void;
|
|
54
|
+
_isNodeSelected(node: T): boolean;
|
|
55
|
+
_canDragNode(node: T): boolean;
|
|
56
|
+
_isNodeDropTarget(node: T): boolean;
|
|
57
|
+
_isNodeDropTargetPosition(node: T, position: TreeNodeDropPosition): boolean;
|
|
58
|
+
_startNodeDrag(node: T, event: DragEvent): void;
|
|
59
|
+
_dragNodeOver(node: T, event: DragEvent): void;
|
|
60
|
+
_dragNodeLeave(node: T, event: DragEvent): void;
|
|
61
|
+
_dropNodeInto(node: T, event: DragEvent): void;
|
|
62
|
+
_endNodeDrag(): void;
|
|
63
|
+
_registerNodeValue(node: T, value: unknown): void;
|
|
64
|
+
_unregisterNodeValueByDataKey(key: unknown): void;
|
|
65
|
+
_registerNodeDisabled(node: T, disabled: boolean): void;
|
|
66
|
+
_unregisterNodeDisabledByDataKey(key: unknown): void;
|
|
67
|
+
_isNodeDisabled(node: T): boolean;
|
|
68
|
+
_getTreeNodeDataKey(node: T): unknown;
|
|
69
|
+
_getTreeNodeValue(node: T): unknown;
|
|
70
|
+
private _canDropNode;
|
|
71
|
+
private _moveNode;
|
|
72
|
+
private _moveNodeInto;
|
|
73
|
+
private _moveNodeBeside;
|
|
74
|
+
private _findNodeLocation;
|
|
75
|
+
private _removeNodeFrom;
|
|
76
|
+
private _getRootNodes;
|
|
77
|
+
private _getDataNodeChildren;
|
|
78
|
+
private _getMutableNodeChildren;
|
|
79
|
+
private _refreshTreeData;
|
|
80
|
+
private _applyFilteredDataSource;
|
|
81
|
+
private _getFilteredDataSource;
|
|
82
|
+
private _filterNode;
|
|
83
|
+
private _cloneNodeWithChildren;
|
|
84
|
+
private _expandFilteredNodes;
|
|
85
|
+
private _isFilterActive;
|
|
86
|
+
private _isNodeDescendantOf;
|
|
87
|
+
private _isSameNode;
|
|
88
|
+
private _getDropPosition;
|
|
89
|
+
private _clearNodeDrag;
|
|
90
|
+
private _getCheckableDescendants;
|
|
91
|
+
private _getCheckableNodeKey;
|
|
92
|
+
private _getCheckedValues;
|
|
93
|
+
private _syncCheckedParentKeys;
|
|
94
|
+
private _getCheckableNodes;
|
|
95
|
+
private _getTreeNodeKey;
|
|
96
|
+
private _getOriginalFilterNode;
|
|
97
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree<any, any>, never>;
|
|
98
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tree<any, any>, "ngs-tree", ["ngsTree"], { "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; "filterValue": { "alias": "filterValue"; "required": false; "isSignal": true; }; "filterPredicate": { "alias": "filterPredicate"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; "selectedChange": "selectedChange"; "nodeDrop": "nodeDrop"; }, never, never, true, never>;
|
|
15
99
|
}
|
|
16
100
|
|
|
17
101
|
declare class TreeNode<T, K = T> extends CdkTreeNode<T, K> implements OnInit, OnDestroy {
|
|
18
|
-
|
|
19
|
-
|
|
102
|
+
private _hostElementRef;
|
|
103
|
+
private _renderer;
|
|
104
|
+
private _appRef;
|
|
105
|
+
private _environmentInjector;
|
|
106
|
+
private _platformId;
|
|
107
|
+
private _checkbox;
|
|
108
|
+
private _dataChangesSubscription?;
|
|
109
|
+
private _checkboxEnableHandle?;
|
|
110
|
+
private _registeredDataKey;
|
|
111
|
+
tabIndexInputBinding: _angular_core.InputSignalWithTransform<number, any>;
|
|
112
|
+
value: _angular_core.InputSignal<unknown>;
|
|
113
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
20
114
|
defaultTabIndex: number;
|
|
21
115
|
constructor();
|
|
22
116
|
_getTabindexAttribute(): any;
|
|
117
|
+
_handleNodeClick(event: MouseEvent): void;
|
|
118
|
+
_isSelectable(): boolean;
|
|
119
|
+
_isSelected(): boolean;
|
|
120
|
+
_getAriaSelected(): boolean | null;
|
|
121
|
+
_isDraggable(): boolean;
|
|
122
|
+
_isDropTarget(): boolean;
|
|
123
|
+
_isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean;
|
|
124
|
+
_getDraggableAttribute(): true | null;
|
|
125
|
+
_getAriaGrabbed(): boolean | null;
|
|
126
|
+
_handleDragStart(event: DragEvent): void;
|
|
127
|
+
_handleDragOver(event: DragEvent): void;
|
|
128
|
+
_handleDragLeave(event: DragEvent): void;
|
|
129
|
+
_handleDrop(event: DragEvent): void;
|
|
130
|
+
_handleDragEnd(): void;
|
|
131
|
+
private _selectNodeFromEvent;
|
|
132
|
+
private _isTreeControlClick;
|
|
133
|
+
private _syncNodeState;
|
|
134
|
+
private _syncNodeValueRegistration;
|
|
135
|
+
private _syncNodeDisabledRegistration;
|
|
23
136
|
ngOnInit(): void;
|
|
24
137
|
ngOnDestroy(): void;
|
|
25
|
-
static ɵfac:
|
|
26
|
-
static
|
|
138
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNode<any, any>, never>;
|
|
139
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeNode<any, any>, "ngs-tree-node", ["ngsTreeNode"], { "tabIndexInputBinding": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "activation": "activation"; "expandedChange": "expandedChange"; }, never, ["*"], true, never>;
|
|
27
140
|
}
|
|
28
141
|
declare class NestedTreeNode<T, K = T> extends CdkNestedTreeNode<T, K> implements OnInit, OnDestroy {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
142
|
+
private _hostElementRef;
|
|
143
|
+
private _renderer;
|
|
144
|
+
private _appRef;
|
|
145
|
+
private _environmentInjector;
|
|
146
|
+
private _platformId;
|
|
147
|
+
private _checkbox;
|
|
148
|
+
private _dataChangesSubscription?;
|
|
149
|
+
private _checkboxEnableHandle?;
|
|
150
|
+
private _registeredDataKey;
|
|
151
|
+
node: _angular_core.InputSignal<T>;
|
|
152
|
+
value: _angular_core.InputSignal<unknown>;
|
|
153
|
+
disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
154
|
+
tabIndexInput: _angular_core.InputSignalWithTransform<number, any>;
|
|
32
155
|
constructor();
|
|
33
156
|
get tabIndex(): number;
|
|
157
|
+
_handleNodeClick(event: MouseEvent): void;
|
|
158
|
+
_isSelectable(): boolean;
|
|
159
|
+
_isSelected(): boolean;
|
|
160
|
+
_getAriaSelected(): boolean | null;
|
|
161
|
+
_isDraggable(): boolean;
|
|
162
|
+
_isDropTarget(): boolean;
|
|
163
|
+
_isDropTargetPosition(position: 'before' | 'inside' | 'after'): boolean;
|
|
164
|
+
_getDraggableAttribute(): true | null;
|
|
165
|
+
_getAriaGrabbed(): boolean | null;
|
|
166
|
+
_handleDragStart(event: DragEvent): void;
|
|
167
|
+
_handleDragOver(event: DragEvent): void;
|
|
168
|
+
_handleDragLeave(event: DragEvent): void;
|
|
169
|
+
_handleDrop(event: DragEvent): void;
|
|
170
|
+
_handleDragEnd(): void;
|
|
171
|
+
private _selectNodeFromEvent;
|
|
172
|
+
private _isTreeControlClick;
|
|
173
|
+
private _syncNodeState;
|
|
174
|
+
private _syncNodeValueRegistration;
|
|
175
|
+
private _syncNodeDisabledRegistration;
|
|
34
176
|
ngOnInit(): void;
|
|
35
177
|
ngAfterContentInit(): void;
|
|
36
178
|
ngOnDestroy(): void;
|
|
37
|
-
static ɵfac:
|
|
38
|
-
static
|
|
179
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NestedTreeNode<any, any>, never>;
|
|
180
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NestedTreeNode<any, any>, "ngs-nested-tree-node", ["ngsNestedTreeNode"], { "node": { "alias": "ngsNestedTreeNode"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "tabIndexInput": { "alias": "tabIndex"; "required": false; "isSignal": true; }; }, { "activation": "activation"; "expandedChange": "expandedChange"; }, never, ["*"], true, never>;
|
|
39
181
|
}
|
|
40
182
|
|
|
41
183
|
declare class TreeNodePadding<T, K = T> extends CdkTreeNodePadding<T, K> {
|
|
42
|
-
levelInput:
|
|
43
|
-
indentInput:
|
|
184
|
+
levelInput: _angular_core.InputSignalWithTransform<number, any>;
|
|
185
|
+
indentInput: _angular_core.InputSignal<string | number>;
|
|
44
186
|
constructor();
|
|
45
|
-
static ɵfac:
|
|
46
|
-
static ɵdir:
|
|
187
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNodePadding<any, any>, never>;
|
|
188
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeNodePadding<any, any>, "[ngsTreeNodePadding]", never, { "levelInput": { "alias": "ngsTreeNodePadding"; "required": false; "isSignal": true; }; "indentInput": { "alias": "ngsTreeNodePaddingIndent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
47
189
|
}
|
|
48
190
|
|
|
49
191
|
declare class TreeNodeToggle<T, K = T> extends CdkTreeNodeToggle<T, K> {
|
|
50
|
-
static ɵfac:
|
|
51
|
-
static ɵdir:
|
|
192
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNodeToggle<any, any>, never>;
|
|
193
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeNodeToggle<any, any>, "[ngsTreeNodeToggle]", never, { "recursive": { "alias": "ngsTreeNodeToggleRecursive"; "required": false; }; }, {}, never, never, true, never>;
|
|
52
194
|
}
|
|
53
195
|
|
|
54
196
|
declare class TreeNodeDef<T> extends CdkTreeNodeDef<T> {
|
|
55
|
-
data:
|
|
56
|
-
static ɵfac:
|
|
57
|
-
static ɵdir:
|
|
197
|
+
data: _angular_core.InputSignal<T>;
|
|
198
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNodeDef<any>, never>;
|
|
199
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TreeNodeDef<any>, "[ngsTreeNodeDef]", never, { "when": { "alias": "ngsTreeNodeDefWhen"; "required": false; }; "data": { "alias": "ngsTreeNode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
58
200
|
}
|
|
59
201
|
|
|
60
202
|
export { NestedTreeNode, Tree, TreeNode, TreeNodeDef, TreeNodeOutlet, TreeNodePadding, TreeNodeToggle };
|
|
203
|
+
export type { TreeFilterMode, TreeFilterPredicate, TreeNodeDrop, TreeNodeDropPosition };
|