ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
1 lines • 72.3 kB
Source Map (JSON)
{"version":3,"file":"ng-zorro-antd-tree-view.mjs","sources":["../../components/tree-view/checkbox.ts","../../components/tree-view/node-base.ts","../../components/tree-view/utils.ts","../../components/tree-view/tree.ts","../../components/tree-view/indent.ts","../../components/tree-view/toggle.ts","../../components/tree-view/node.ts","../../components/tree-view/option.ts","../../components/tree-view/outlet.ts","../../components/tree-view/padding.ts","../../components/tree-view/tree-view.ts","../../components/tree-view/tree-virtual-scroll-view.ts","../../components/tree-view/tree-view.module.ts","../../components/tree-view/flattener.ts","../../components/tree-view/flat-data-source.ts","../../components/tree-view/nested-data-source.ts","../../components/tree-view/public-api.ts","../../components/tree-view/ng-zorro-antd-tree-view.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n NgZone,\n OnInit,\n booleanAttribute,\n inject,\n DestroyRef,\n input,\n output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\n\nimport { fromEventOutsideAngular } from 'ng-zorro-antd/core/util';\n\n@Component({\n selector: 'nz-tree-node-checkbox:not([builtin])',\n template: `<span class=\"ant-tree-checkbox-inner\"></span>`,\n host: {\n class: 'ant-tree-checkbox',\n '[class.ant-tree-checkbox-checked]': `nzChecked()`,\n '[class.ant-tree-checkbox-indeterminate]': `nzIndeterminate()`,\n '[class.ant-tree-checkbox-disabled]': `nzDisabled()`\n }\n})\nexport class NzTreeNodeCheckboxComponent implements OnInit {\n readonly nzChecked = input(false, { transform: booleanAttribute });\n readonly nzIndeterminate = input(false, { transform: booleanAttribute });\n readonly nzDisabled = input(false, { transform: booleanAttribute });\n readonly nzClick = output<MouseEvent>();\n\n protected readonly cdr = inject(ChangeDetectorRef);\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly elementRef = inject(ElementRef);\n protected readonly ngZone = inject(NgZone);\n\n ngOnInit(): void {\n fromEventOutsideAngular<MouseEvent>(this.elementRef.nativeElement, 'click')\n .pipe(\n filter(() => !this.nzDisabled()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((event: MouseEvent) => {\n this.ngZone.run(() => {\n this.nzClick.emit(event);\n });\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkTreeNode } from '@angular/cdk/tree';\n\nexport abstract class NzNodeBase<T> extends CdkTreeNode<T> {\n // Distinguish the isLeafNode of CdkTreeNode, isLeafNode is only used for Tree Control\n abstract get isLeaf(): boolean;\n abstract setIndents(indents: boolean[]): void;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport const getParent = <T>(nodes: T[], node: T, getLevel: (dataNode: T) => number): T | null => {\n let index = nodes.indexOf(node);\n if (index < 0) {\n return null;\n }\n const level = getLevel(node);\n for (index--; index >= 0; index--) {\n const preLevel = getLevel(nodes[index]);\n if (preLevel + 1 === level) {\n return nodes[index];\n }\n if (preLevel + 1 < level) {\n return null;\n }\n }\n return null;\n};\n\nexport const getDescendants = <T>(nodes: T[], node: T, getLevel: (dataNode: T) => number): T[] => {\n let index = nodes.indexOf(node);\n if (index < 0) {\n return [];\n }\n const result = [];\n const level = getLevel(nodes[index]);\n for (index++; index < nodes.length; index++) {\n if (getLevel(nodes[index]) > level) {\n result.push(nodes[index]);\n } else {\n break;\n }\n }\n return result;\n};\n\nexport const getNextSibling = <T>(\n nodes: T[],\n node: T,\n getLevel: (dataNode: T) => number,\n _index?: number\n): T | null => {\n let index = typeof _index !== 'undefined' ? _index : nodes.indexOf(node);\n if (index < 0) {\n return null;\n }\n const level = getLevel(node);\n\n for (index++; index < nodes.length; index++) {\n const nextLevel = getLevel(nodes[index]);\n if (nextLevel < level) {\n return null;\n }\n if (nextLevel === level) {\n return nodes[index];\n }\n }\n return null;\n};\n\nexport const getParentForNestedData = <T>(nodes: T[], node: T, getChildren: (dataNode: T) => T[]): T | null => {\n for (const parent of flattenNestedNodes(nodes, getChildren)) {\n if (getChildren(parent)?.includes(node)) {\n return parent;\n }\n }\n\n return null;\n};\n\nexport const getNextSiblingForNestedData = <T>(nodes: T[], node: T, getChildren: (dataNode: T) => T[]): T | null => {\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n if (nodes[i] === node) {\n return i + 1 < len ? nodes[i + 1] : null;\n }\n\n const children = getChildren(nodes[i]);\n if (children && children.length > 0) {\n const sibling = getNextSiblingForNestedData(children, node, getChildren);\n if (sibling) {\n return sibling;\n }\n }\n }\n return null;\n};\n\nexport const getDescendantsForNestedData = <T>(node: T, getChildren: (dataNode: T) => T[]): T[] => {\n let result: T[] = [];\n const children = getChildren(node);\n if (children && children.length > 0) {\n children.forEach(child => {\n result.push(child);\n result = result.concat(getDescendantsForNestedData(child, getChildren));\n });\n }\n\n return result;\n};\n\nexport const flattenNestedNodes = <T>(nodes: T[], getChildren: (dataNode: T) => T[]): T[] => {\n const flattenedNodes = [];\n for (const node of nodes) {\n flattenedNodes.push(node);\n if (getChildren(node)) {\n flattenedNodes.push(...flattenNestedNodes(getChildren(node), getChildren));\n }\n }\n return flattenedNodes;\n};\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DataSource } from '@angular/cdk/collections';\nimport { CdkTree } from '@angular/cdk/tree';\nimport {\n ChangeDetectorRef,\n Component,\n Input,\n IterableDiffer,\n ViewContainerRef,\n booleanAttribute,\n inject,\n DestroyRef,\n TrackByFunction\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/animation';\n\nimport { getDescendants } from './utils';\n\n@Component({\n template: ''\n})\nexport class NzTreeView<T> extends CdkTree<T> {\n /* eslint-disable @angular-eslint/no-input-rename */\n @Input({ alias: 'nzLevelAccessor' }) override levelAccessor?: (dataNode: T) => number = undefined;\n @Input({ alias: 'nzChildrenAccessor' }) override childrenAccessor?: (dataNode: T) => T[] = undefined;\n @Input({ alias: 'nzDataSource' })\n override get dataSource(): DataSource<T> | Observable<T[]> | T[] {\n return super.dataSource;\n }\n override set dataSource(dataSource: DataSource<T> | Observable<T[]> | T[]) {\n super.dataSource = dataSource;\n }\n @Input({ alias: 'nzTrackBy' }) override trackBy: TrackByFunction<T> = (_index, item: T) => item;\n @Input({ transform: booleanAttribute }) nzDirectoryTree = false;\n @Input({ transform: booleanAttribute }) nzBlockNode = false;\n\n protected readonly noAnimation = inject(NzNoAnimationDirective, { host: true, optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly directionality = inject(Directionality);\n protected readonly cdr = inject(ChangeDetectorRef);\n\n protected readonly dir = inject(Directionality).valueSignal;\n readonly dataSourceChanged$ = new Subject<void>();\n\n dataNodes: T[] = [];\n\n override renderNodeChanges(\n data: T[],\n dataDiffer?: IterableDiffer<T>,\n viewContainer?: ViewContainerRef,\n parentData?: T\n ): void {\n /* https://github.com/angular/components/blob/21cc21ea3b280c3f82a19f5ec1b679eb1eee1358/src/cdk/tree/tree.ts#L1103\n * If levelAccessor is used, renderNodes needs to be recalculated, because flattenData (i.e., dataNodes) is used as renderNodes by default in the @angular/components library\n * If childrenAccessor is used, @angular/cdk library inner will calculate renderNodes.\n */\n const renderNodes = this.levelAccessor ? this.getRenderNodes(data) : [...data];\n super.renderNodeChanges(renderNodes, dataDiffer, viewContainer, parentData);\n this.dataSourceChanged$.next();\n this.cdr.markForCheck();\n }\n\n /**\n * get render nodes (length <= flattenData.length)>\n * @param nodes all flatten nodes\n */\n protected getRenderNodes(nodes: T[]): T[] {\n const getLevel = this.levelAccessor!;\n const results: T[] = [];\n const currentExpand: boolean[] = [];\n currentExpand[0] = true;\n\n nodes.forEach(node => {\n let expand = true;\n for (let i = 0; i <= getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (getDescendants(nodes, node, getLevel)) {\n currentExpand[getLevel(node) + 1] = this.isExpanded(node);\n }\n });\n return results;\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ChangeDetectorRef, Component, DestroyRef, Directive, inject, Input } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { animationFrameScheduler, asapScheduler, merge } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { NzNodeBase } from './node-base';\nimport { NzTreeView } from './tree';\nimport {\n flattenNestedNodes,\n getNextSibling,\n getNextSiblingForNestedData,\n getParent,\n getParentForNestedData\n} from './utils';\n\n/**\n * [true, false, false, true] => 1001\n */\nfunction booleanArrayToString(arr: boolean[]): string {\n return arr.map(i => (i ? 1 : 0)).join('');\n}\n\nconst BUILD_INDENTS_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n\n@Component({\n selector: 'nz-tree-node-indents',\n template: `\n @for (isEnd of indents; track isEnd) {\n <span class=\"ant-tree-indent-unit\" [class.ant-tree-indent-unit-end]=\"!isEnd\"></span>\n }\n `,\n host: {\n class: 'ant-tree-indent'\n }\n})\nexport class NzTreeNodeIndentsComponent {\n @Input() indents: boolean[] = [];\n}\n\n@Directive({\n selector: 'nz-tree-node[nzTreeNodeIndentLine]',\n host: {\n class: 'ant-tree-show-line',\n '[class.ant-tree-treenode-leaf-last]': 'isLast && isLeaf'\n }\n})\nexport class NzTreeNodeIndentLineDirective<T> {\n private readonly treeNode = inject(NzNodeBase<T>);\n private readonly tree = inject(NzTreeView<T>);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n\n private preNodeRef: T | null = null;\n private nextNodeRef: T | null = null;\n private currentIndents: string = '';\n\n isLast: boolean | 'unset' = 'unset';\n\n get isLeaf(): boolean {\n return this.treeNode.isLeaf;\n }\n\n get dataNodes(): T[] {\n return this.tree.dataNodes;\n }\n\n get currentDataNode(): T {\n return this.treeNode.data;\n }\n\n constructor() {\n this.buildIndents();\n this.checkLast();\n\n /**\n * setting the indents can cause frame rate loss if it is set too often.\n */\n merge(this.treeNode._dataChanges, this.tree.dataSourceChanged$)\n .pipe(auditTime(0, BUILD_INDENTS_SCHEDULER), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.buildIndents();\n this.checkAdjacent();\n this.cdr.markForCheck();\n });\n }\n\n /**\n * The true and false in indents indicate whether there should be a vertical line to the left of the current node.\n * if there is no nextSibling, there is no vertical line.\n */\n private getIndents(): boolean[] {\n if (this.tree.levelAccessor) {\n return this.getIndentsForFlatData(this.dataNodes, this.currentDataNode, this.tree.levelAccessor);\n } else if (this.tree.childrenAccessor) {\n return this.getIndentsForNestedData(this.dataNodes, this.currentDataNode, this.tree.childrenAccessor);\n } else {\n return [];\n }\n }\n\n private getIndentsForFlatData(nodes: T[], node: T, getLevel: (dataNode: T) => number): boolean[] {\n const indents: boolean[] = [];\n let parent = getParent(nodes, node, getLevel);\n while (parent) {\n const parentNextSibling = getNextSibling(nodes, parent, getLevel);\n if (parentNextSibling) {\n indents.unshift(true);\n } else {\n indents.unshift(false);\n }\n parent = getParent(nodes, parent, getLevel);\n }\n return indents;\n }\n\n private getIndentsForNestedData(nodes: T[], node: T, getChildren: (dataNode: T) => T[]): boolean[] {\n const indents: boolean[] = [];\n let parent = getParentForNestedData(nodes, node, getChildren);\n while (parent) {\n const parentNextSibling = getNextSiblingForNestedData(nodes, parent, getChildren);\n if (parentNextSibling) {\n indents.unshift(true);\n } else {\n indents.unshift(false);\n }\n parent = getParentForNestedData(nodes, parent, getChildren);\n }\n return indents;\n }\n\n private buildIndents(): void {\n if (this.currentDataNode) {\n const indents = this.getIndents();\n const diffString = booleanArrayToString(indents);\n if (diffString !== this.currentIndents) {\n this.treeNode.setIndents(this.getIndents());\n this.currentIndents = diffString;\n }\n }\n }\n\n /**\n * We need to add a class name for the last child node,\n * this result can also be affected when the adjacent nodes are changed.\n */\n private checkAdjacent(): void {\n let nodes = [] as T[];\n if (this.tree.levelAccessor) {\n nodes = this.dataNodes;\n } else if (this.tree.childrenAccessor) {\n nodes = flattenNestedNodes(this.dataNodes, this.tree.childrenAccessor);\n }\n this.checkAdjacentNodeChanged(nodes);\n }\n\n private checkAdjacentNodeChanged(nodes: T[]): void {\n const index = nodes.indexOf(this.currentDataNode);\n const preNode = nodes[index - 1] || null;\n const nextNode = nodes[index + 1] || null;\n if (this.nextNodeRef !== nextNode || this.preNodeRef !== preNode) {\n this.checkLast(index);\n }\n this.preNodeRef = preNode;\n this.nextNodeRef = nextNode;\n }\n\n private checkLast(index?: number): void {\n if (this.tree.levelAccessor) {\n this.isLast = !getNextSibling(this.dataNodes, this.currentDataNode, this.tree.levelAccessor, index);\n } else if (this.tree.childrenAccessor) {\n this.isLast = !getNextSiblingForNestedData(this.dataNodes, this.currentDataNode, this.tree.childrenAccessor);\n } else {\n return;\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkTreeNodeToggle } from '@angular/cdk/tree';\nimport { booleanAttribute, Directive, forwardRef, Input } from '@angular/core';\n\n@Directive({\n selector: 'nz-tree-node-toggle[nzTreeNodeNoopToggle], [nzTreeNodeNoopToggle]',\n host: {\n class: 'ant-tree-switcher ant-tree-switcher-noop'\n }\n})\nexport class NzTreeNodeNoopToggleDirective {}\n\n@Directive({\n selector: 'nz-tree-node-toggle:not([nzTreeNodeNoopToggle]), [nzTreeNodeToggle]',\n providers: [{ provide: CdkTreeNodeToggle, useExisting: forwardRef(() => NzTreeNodeToggleDirective) }],\n host: {\n class: 'ant-tree-switcher',\n '[class.ant-tree-switcher_open]': 'isExpanded',\n '[class.ant-tree-switcher_close]': '!isExpanded'\n }\n})\nexport class NzTreeNodeToggleDirective<T> extends CdkTreeNodeToggle<T> {\n @Input({ alias: 'nzTreeNodeToggleRecursive', transform: booleanAttribute }) override recursive = false;\n\n get isExpanded(): boolean {\n return this._treeNode.isExpanded;\n }\n}\n\n@Directive({\n selector: '[nzTreeNodeToggleRotateIcon]',\n host: {\n class: 'ant-tree-switcher-icon'\n }\n})\nexport class NzTreeNodeToggleRotateIconDirective {}\n\n@Directive({\n selector: '[nzTreeNodeToggleActiveIcon]',\n host: {\n class: 'ant-tree-switcher-loading-icon'\n }\n})\nexport class NzTreeNodeToggleActiveIconDirective {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkTreeNode, CdkTreeNodeDef, CdkTreeNodeOutletContext } from '@angular/cdk/tree';\nimport {\n booleanAttribute,\n Component,\n Directive,\n effect,\n EmbeddedViewRef,\n forwardRef,\n inject,\n input,\n Input,\n OnDestroy,\n OnInit,\n signal,\n ViewContainerRef\n} from '@angular/core';\n\nimport { NzAnimationTreeCollapseDirective } from 'ng-zorro-antd/core/animation';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzTreeNodeIndentsComponent } from './indent';\nimport { NzNodeBase } from './node-base';\nimport { NzTreeNodeNoopToggleDirective } from './toggle';\n\nexport interface NzTreeVirtualNodeData<T> {\n data: T;\n context: CdkTreeNodeOutletContext<T>;\n nodeDef: CdkTreeNodeDef<T>;\n}\n\n@Component({\n selector: 'nz-tree-node:not([builtin])',\n exportAs: 'nzTreeNode',\n providers: [\n {\n provide: CdkTreeNode,\n useExisting: forwardRef(() => NzTreeNodeComponent)\n },\n {\n provide: NzNodeBase,\n useExisting: forwardRef(() => NzTreeNodeComponent)\n }\n ],\n template: `\n @if (indents().length) {\n <nz-tree-node-indents [indents]=\"indents()\" />\n }\n <ng-content select=\"nz-tree-node-toggle, [nz-tree-node-toggle]\" />\n @if (indents().length && isLeaf) {\n <nz-tree-node-toggle class=\"nz-tree-leaf-line-icon\" nzTreeNodeNoopToggle>\n <span class=\"ant-tree-switcher-leaf-line\"></span>\n </nz-tree-node-toggle>\n }\n <ng-content select=\"nz-tree-node-checkbox\" />\n <ng-content select=\"nz-tree-node-option\" />\n <ng-content />\n `,\n hostDirectives: [NzAnimationTreeCollapseDirective],\n host: {\n class: 'ant-tree-treenode',\n '[class.ant-tree-treenode-switcher-open]': 'isExpanded',\n '[class.ant-tree-treenode-switcher-close]': '!isExpanded',\n '[class.ant-tree-treenode-selected]': 'selected()',\n '[class.ant-tree-treenode-disabled]': 'disabled()'\n },\n imports: [NzTreeNodeIndentsComponent, NzTreeNodeNoopToggleDirective]\n})\nexport class NzTreeNodeComponent<T> extends NzNodeBase<T> implements OnDestroy, OnInit {\n // Used to determine whether it is a leaf node\n @Input({ alias: 'nzExpandable', transform: booleanAttribute })\n override get isExpandable(): boolean {\n return super.isExpandable;\n }\n override set isExpandable(value: boolean) {\n super.isExpandable = value;\n }\n\n indents = signal<boolean[]>([]);\n disabled = signal(false);\n selected = signal(false);\n\n get isLeaf(): boolean {\n return !this.isExpandable;\n }\n\n disable(): void {\n this.disabled.set(true);\n }\n\n enable(): void {\n this.disabled.set(false);\n }\n\n select(): void {\n this.selected.set(true);\n }\n\n deselect(): void {\n this.selected.set(false);\n }\n\n setIndents(indents: boolean[]): void {\n this.indents.set(indents);\n }\n}\n\n@Directive({\n selector: '[nzTreeNodeDef]',\n providers: [\n {\n provide: CdkTreeNodeDef,\n useExisting: forwardRef(() => NzTreeNodeDefDirective)\n }\n ]\n})\nexport class NzTreeNodeDefDirective<T> extends CdkTreeNodeDef<T> {\n @Input({ alias: 'nzTreeNodeDefWhen' }) override when: (index: number, nodeData: T) => boolean = null!;\n}\n\n@Directive({\n selector: '[nzTreeVirtualScrollNodeOutlet]'\n})\nexport class NzTreeVirtualScrollNodeOutletDirective<T> {\n readonly data = input.required<NzTreeVirtualNodeData<T>>();\n readonly compareBy = input.required<(value: T) => NzSafeAny>();\n\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private _viewRef: EmbeddedViewRef<NzSafeAny> | null = null;\n private _previousData: NzTreeVirtualNodeData<T> | null = null;\n\n constructor() {\n effect(() => {\n const currentData = this.data();\n\n const recreateView = this.shouldRecreateView(this._previousData, currentData, this.compareBy());\n if (recreateView) {\n const viewContainerRef = this._viewContainerRef;\n\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n\n this._viewRef = currentData\n ? viewContainerRef.createEmbeddedView(currentData.nodeDef.template, currentData.context)\n : null;\n\n if (CdkTreeNode.mostRecentTreeNode && this._viewRef) {\n CdkTreeNode.mostRecentTreeNode.data = currentData.data;\n }\n } else if (this._viewRef && currentData.context) {\n this.updateExistingContext(currentData.context);\n }\n\n // Save the current value as the previous value for the next iteration\n this._previousData = currentData;\n });\n }\n\n private shouldRecreateView(\n previousData: NzTreeVirtualNodeData<T> | null,\n currentData: NzTreeVirtualNodeData<T>,\n compareByFn: (value: T) => NzSafeAny\n ): boolean {\n const prevCtxKeys = Object.keys(previousData || {});\n const currCtxKeys = Object.keys(currentData || {});\n\n if (prevCtxKeys.length === currCtxKeys.length) {\n for (const propName of currCtxKeys) {\n if (prevCtxKeys.indexOf(propName) === -1) {\n return true;\n }\n }\n return compareByFn((previousData?.data ?? null) as T) !== compareByFn((currentData?.data ?? null) as T);\n }\n return true;\n }\n\n private updateExistingContext(ctx: CdkTreeNodeOutletContext<T>): void {\n for (const [key, value] of Object.entries(ctx)) {\n this._viewRef!.context[key] = value;\n }\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n Component,\n ElementRef,\n NgZone,\n OnInit,\n booleanAttribute,\n inject,\n DestroyRef,\n input,\n output,\n effect\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\n\nimport { fromEventOutsideAngular } from 'ng-zorro-antd/core/util';\n\nimport { NzTreeNodeComponent } from './node';\n\n@Component({\n selector: 'nz-tree-node-option',\n template: `<span class=\"ant-tree-title\"><ng-content /></span>`,\n host: {\n class: 'ant-tree-node-content-wrapper',\n '[class.ant-tree-node-content-wrapper-open]': 'isExpanded',\n '[class.ant-tree-node-selected]': 'nzSelected()'\n }\n})\nexport class NzTreeNodeOptionComponent<T> implements OnInit {\n readonly nzSelected = input(false, { transform: booleanAttribute });\n readonly nzDisabled = input(false, { transform: booleanAttribute });\n readonly nzClick = output<MouseEvent>();\n\n private readonly ngZone = inject(NgZone);\n private readonly element: HTMLElement = inject(ElementRef<HTMLElement>).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n private readonly treeNode = inject(NzTreeNodeComponent<T>);\n\n get isExpanded(): boolean {\n return this.treeNode.isExpanded;\n }\n\n constructor() {\n effect(() => {\n if (this.nzSelected()) {\n this.treeNode.select();\n } else {\n this.treeNode.deselect();\n }\n });\n\n effect(() => {\n if (this.nzDisabled()) {\n this.treeNode.disable();\n } else {\n this.treeNode.enable();\n }\n });\n }\n\n ngOnInit(): void {\n fromEventOutsideAngular<MouseEvent>(this.element, 'click')\n .pipe(\n filter(() => !this.nzDisabled()),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(event => {\n this.ngZone.run(() => this.nzClick.emit(event));\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkTreeNodeOutlet } from '@angular/cdk/tree';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n selector: '[nzTreeNodeOutlet]',\n providers: [\n {\n provide: CdkTreeNodeOutlet,\n useExisting: forwardRef(() => NzTreeNodeOutletDirective)\n }\n ]\n})\nexport class NzTreeNodeOutletDirective extends CdkTreeNodeOutlet {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkTreeNodePadding } from '@angular/cdk/tree';\nimport { Directive, forwardRef, Input, numberAttribute } from '@angular/core';\n\n@Directive({\n selector: '[nzTreeNodePadding]',\n providers: [\n {\n provide: CdkTreeNodePadding,\n useExisting: forwardRef(() => NzTreeNodePaddingDirective)\n }\n ]\n})\nexport class NzTreeNodePaddingDirective<T> extends CdkTreeNodePadding<T> {\n override _indent = 24;\n\n @Input({ alias: 'nzTreeNodePadding', transform: numberAttribute })\n override get level(): number {\n return this._level;\n }\n override set level(value: number) {\n this._setLevelInput(value);\n }\n\n @Input('nzTreeNodePaddingIndent')\n override get indent(): number | string {\n return this._indent;\n }\n override set indent(indent: number | string) {\n this._setIndentInput(indent);\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkTree } from '@angular/cdk/tree';\nimport { Component, forwardRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { NzAnimationTreeCollapseService } from 'ng-zorro-antd/core/animation';\n\nimport { NzTreeNodeOutletDirective } from './outlet';\nimport { NzTreeView } from './tree';\n\n@Component({\n selector: 'nz-tree-view',\n exportAs: 'nzTreeView',\n imports: [NzTreeNodeOutletDirective],\n template: `\n <div class=\"ant-tree-list-holder\">\n <div class=\"ant-tree-list-holder-inner\">\n <ng-container nzTreeNodeOutlet />\n </div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [\n NzAnimationTreeCollapseService,\n { provide: CdkTree, useExisting: forwardRef(() => NzTreeViewComponent) },\n { provide: NzTreeView, useExisting: forwardRef(() => NzTreeViewComponent) }\n ],\n host: {\n class: 'ant-tree',\n '[class.ant-tree-block-node]': 'nzDirectoryTree || nzBlockNode',\n '[class.ant-tree-directory]': 'nzDirectoryTree',\n '[class.ant-tree-rtl]': `dir() === 'rtl'`\n }\n})\nexport class NzTreeViewComponent<T> extends NzTreeView<T> {\n @ViewChild(NzTreeNodeOutletDirective, { static: true }) nodeOutlet!: NzTreeNodeOutletDirective;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { CdkTree, CdkTreeNodeOutletContext } from '@angular/cdk/tree';\nimport {\n Component,\n forwardRef,\n inject,\n Input,\n OnChanges,\n SimpleChanges,\n TrackByFunction,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NzAnimationTreeCollapseService } from 'ng-zorro-antd/core/animation';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzTreeVirtualNodeData, NzTreeVirtualScrollNodeOutletDirective } from './node';\nimport { NzTreeNodeOutletDirective } from './outlet';\nimport { NzTreeView } from './tree';\n\nconst DEFAULT_SIZE = 28;\n\n@Component({\n selector: 'nz-tree-virtual-scroll-view',\n exportAs: 'nzTreeVirtualScrollView',\n template: `\n <div class=\"ant-tree-list\">\n <cdk-virtual-scroll-viewport\n class=\"ant-tree-list-holder\"\n [itemSize]=\"nzItemSize\"\n [minBufferPx]=\"nzMinBufferPx\"\n [maxBufferPx]=\"nzMaxBufferPx\"\n >\n <ng-container *cdkVirtualFor=\"let item of nodes; let i = index; trackBy: innerTrackBy\">\n <ng-template nzTreeVirtualScrollNodeOutlet [data]=\"item\" [compareBy]=\"compareBy(i)\" />\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </div>\n <ng-container nzTreeNodeOutlet />\n `,\n encapsulation: ViewEncapsulation.None,\n providers: [\n NzAnimationTreeCollapseService,\n { provide: NzTreeView, useExisting: forwardRef(() => NzTreeVirtualScrollViewComponent) },\n { provide: CdkTree, useExisting: forwardRef(() => NzTreeVirtualScrollViewComponent) }\n ],\n host: {\n class: 'ant-tree',\n '[class.ant-tree-block-node]': 'nzDirectoryTree || nzBlockNode',\n '[class.ant-tree-directory]': 'nzDirectoryTree',\n '[class.ant-tree-rtl]': `dir() === 'rtl'`\n },\n imports: [\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n NzTreeNodeOutletDirective,\n NzTreeVirtualScrollNodeOutletDirective\n ]\n})\nexport class NzTreeVirtualScrollViewComponent<T> extends NzTreeView<T> implements OnChanges {\n @ViewChild(NzTreeNodeOutletDirective, { static: true }) override readonly _nodeOutlet: NzTreeNodeOutletDirective =\n undefined!;\n @ViewChild(CdkVirtualScrollViewport, { static: true }) readonly virtualScrollViewport!: CdkVirtualScrollViewport;\n\n @Input() nzItemSize = DEFAULT_SIZE;\n @Input() nzMinBufferPx = DEFAULT_SIZE * 5;\n @Input() nzMaxBufferPx = DEFAULT_SIZE * 10;\n\n nodes: Array<NzTreeVirtualNodeData<T>> = [];\n\n innerTrackBy: TrackByFunction<NzTreeVirtualNodeData<T>> = i => i;\n\n constructor() {\n super();\n const treeCollapseService = inject(NzAnimationTreeCollapseService);\n treeCollapseService.virtualScroll = true;\n }\n\n ngOnChanges({ trackBy }: SimpleChanges): void {\n if (trackBy) {\n if (typeof trackBy.currentValue === 'function') {\n this.innerTrackBy = (index: number, n) => this.trackBy(index, n.data);\n } else {\n this.innerTrackBy = i => i;\n }\n }\n }\n\n compareBy(index: number): (value: T) => NzSafeAny {\n return (value: T) => (this.trackBy ? this.trackBy(index, value) : value);\n }\n\n override renderNodeChanges(data: T[]): void {\n /* https://github.com/angular/components/blob/21cc21ea3b280c3f82a19f5ec1b679eb1eee1358/src/cdk/tree/tree.ts#L1103\n * If levelAccessor is used, renderNodes needs to be recalculated, because flattenData (i.e., dataNodes) is used as renderNodes by default in the @angular/components library\n * If childrenAccessor is used, @angular/components library inner will calculate renderNodes.\n */\n const renderNodes = this.levelAccessor ? this.getRenderNodes(data) : [...data];\n this.nodes = renderNodes.map((n, i) => this.createNode(n, i));\n this.dataSourceChanged$.next();\n this.cdr.markForCheck();\n }\n\n private createNode(nodeData: T, index: number): NzTreeVirtualNodeData<T> {\n const node = this._getNodeDef(nodeData, index);\n const context = new CdkTreeNodeOutletContext<T>(nodeData);\n return {\n data: nodeData,\n context,\n nodeDef: node\n };\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzTreeNodeCheckboxComponent } from './checkbox';\nimport { NzTreeNodeIndentLineDirective, NzTreeNodeIndentsComponent } from './indent';\nimport { NzTreeNodeComponent, NzTreeNodeDefDirective, NzTreeVirtualScrollNodeOutletDirective } from './node';\nimport { NzTreeNodeOptionComponent } from './option';\nimport { NzTreeNodeOutletDirective } from './outlet';\nimport { NzTreeNodePaddingDirective } from './padding';\nimport {\n NzTreeNodeNoopToggleDirective,\n NzTreeNodeToggleActiveIconDirective,\n NzTreeNodeToggleDirective,\n NzTreeNodeToggleRotateIconDirective\n} from './toggle';\nimport { NzTreeView } from './tree';\nimport { NzTreeViewComponent } from './tree-view';\nimport { NzTreeVirtualScrollViewComponent } from './tree-virtual-scroll-view';\n\nconst treeWithControlComponents = [\n NzTreeView,\n NzTreeNodeOutletDirective,\n NzTreeViewComponent,\n NzTreeNodeDefDirective,\n NzTreeNodeComponent,\n NzTreeNodeToggleDirective,\n NzTreeNodePaddingDirective,\n NzTreeNodeToggleRotateIconDirective,\n NzTreeNodeToggleActiveIconDirective,\n NzTreeNodeOptionComponent,\n NzTreeNodeNoopToggleDirective,\n NzTreeNodeCheckboxComponent,\n NzTreeNodeIndentsComponent,\n NzTreeVirtualScrollViewComponent,\n NzTreeVirtualScrollNodeOutletDirective,\n NzTreeNodeIndentLineDirective\n];\n\n@NgModule({\n imports: [treeWithControlComponents],\n exports: [treeWithControlComponents]\n})\nexport class NzTreeViewModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Observable } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nexport class NzTreeFlattener<T, F> {\n constructor(\n public transformFunction: (node: T, level: number) => F,\n public getLevel: (node: F) => number,\n public isExpandable: (node: F) => boolean,\n public getChildren: (node: T) => Observable<T[]> | T[] | undefined | null\n ) {}\n\n private flattenNode(node: T, level: number, resultNodes: F[], parentMap: boolean[]): F[] {\n const flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n\n if (this.isExpandable(flatNode)) {\n const childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this.flattenChildren(childrenNodes, level, resultNodes, parentMap);\n } else {\n childrenNodes.pipe(take(1)).subscribe(children => {\n this.flattenChildren(children, level, resultNodes, parentMap);\n });\n }\n }\n }\n return resultNodes;\n }\n\n private flattenChildren(children: T[], level: number, resultNodes: F[], parentMap: boolean[]): void {\n children.forEach((child, index) => {\n const childParentMap: boolean[] = parentMap.slice();\n childParentMap.push(index !== children.length - 1);\n this.flattenNode(child, level + 1, resultNodes, childParentMap);\n });\n }\n\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n flattenNodes(structuredData: T[]): F[] {\n const resultNodes: F[] = [];\n structuredData.forEach(node => this.flattenNode(node, 0, resultNodes, []));\n return resultNodes;\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { NzTreeFlattener } from './flattener';\nimport { NzTreeView } from './tree';\n\nexport class NzTreeViewFlatDataSource<T, F> extends DataSource<F> {\n private _flattenedData = new BehaviorSubject<F[]>([]);\n private _data = new BehaviorSubject<T[]>([]);\n\n constructor(\n private readonly _tree: NzTreeView<F>,\n private readonly _treeFlattener: NzTreeFlattener<T, F>,\n readonly initialData: T[] = []\n ) {\n super();\n this.setData(initialData);\n }\n\n setData(data: T[]): void {\n this._data.next(data);\n this.setFlattenedData(this.flatten(data));\n }\n\n getData(): T[] {\n return this._data.getValue();\n }\n\n getFlattenData(): F[] {\n return this._flattenedData.getValue();\n }\n\n setFlattenedData(nodes: F[]): void {\n this._flattenedData.next(nodes);\n this.setDataNodes(nodes);\n }\n\n connect(collectionViewer: CollectionViewer): Observable<F[]> {\n return merge(collectionViewer.viewChange, this._flattenedData.asObservable()).pipe(\n map(() => this.getFlattenData())\n );\n }\n\n disconnect(): void {\n // no op\n }\n\n private setDataNodes(nodes: F[]): void {\n this._tree.dataNodes = nodes;\n }\n\n private flatten(data: T[]): F[] {\n return this._treeFlattener.flattenNodes(data);\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { Observable, BehaviorSubject, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { NzTreeView } from './tree';\n\nexport class NzTreeViewNestedDataSource<T> extends DataSource<T> {\n private _data = new BehaviorSubject<T[]>([]);\n\n constructor(\n private _tree: NzTreeView<T>,\n readonly initialData: T[] = []\n ) {\n super();\n this.setData(initialData);\n }\n\n setData(value: T[]): void {\n this._data.next(value);\n this.setTreeDataNodes(value);\n }\n\n getData(): T[] {\n return this._data.getValue();\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n return merge(collectionViewer.viewChange, this._data.asObservable()).pipe(map(() => this.getData()));\n }\n\n disconnect(): void {\n // no op\n }\n\n private setTreeDataNodes(nodes: T[]): void {\n this._tree.dataNodes = nodes;\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './tree-view.module';\nexport * from './checkbox';\nexport * from './utils';\nexport * from './indent';\nexport * from './node';\nexport * from './option';\nexport * from './outlet';\nexport * from './padding';\nexport * from './toggle';\nexport * from './tree-view';\nexport * from './tree';\nexport * from './tree-virtual-scroll-view';\nexport * from './flattener';\nexport * from './flat-data-source';\nexport * from './nested-data-source';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}