{"version":3,"file":"ng-zorro-antd-tree-view.mjs","sources":["../../components/tree-view/checkbox.ts","../../components/tree-view/utils.ts","../../components/tree-view/node-base.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/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  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnInit,\n  Output\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } 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  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\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  providers: [NzDestroyService]\n})\nexport class NzTreeNodeCheckboxComponent implements OnInit {\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n\n  @Input() nzChecked?: boolean;\n  @Input() nzIndeterminate?: boolean;\n  @Input() @InputBoolean() nzDisabled?: boolean;\n  @Output() readonly nzClick = new EventEmitter<MouseEvent>();\n\n  constructor(\n    private ngZone: NgZone,\n    private ref: ChangeDetectorRef,\n    private host: ElementRef<HTMLElement>,\n    private destroy$: NzDestroyService\n  ) {}\n\n  ngOnInit(): void {\n    this.ngZone.runOutsideAngular(() =>\n      fromEvent<MouseEvent>(this.host.nativeElement, 'click')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe((event: MouseEvent) => {\n          if (!this.nzDisabled && this.nzClick.observers.length) {\n            this.ngZone.run(() => {\n              this.nzClick.emit(event);\n              this.ref.markForCheck();\n            });\n          }\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\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 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","/**\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  abstract setIndents(indents: boolean[]): void;\n  abstract isLeaf: boolean;\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 { Direction, Directionality } from '@angular/cdk/bidi';\nimport { DataSource } from '@angular/cdk/collections';\nimport { CdkTree, TreeControl } from '@angular/cdk/tree';\nimport {\n  ChangeDetectorRef,\n  Component,\n  Host,\n  Input,\n  IterableDiffer,\n  IterableDiffers,\n  OnDestroy,\n  OnInit,\n  Optional,\n  ViewContainerRef\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { BooleanInput, NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\n@Component({ template: '' })\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class NzTreeView<T> extends CdkTree<T> implements OnInit, OnDestroy {\n  static ngAcceptInputType_nzDirectoryTree: BooleanInput;\n  static ngAcceptInputType_nzBlockNode: BooleanInput;\n\n  private destroy$ = new Subject();\n  dir: Direction = 'ltr';\n  _dataSourceChanged = new Subject<void>();\n  @Input('nzTreeControl') override treeControl!: TreeControl<T, NzSafeAny>;\n  @Input('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() @InputBoolean() nzDirectoryTree = false;\n  @Input() @InputBoolean() nzBlockNode = false;\n\n  constructor(\n    protected differs: IterableDiffers,\n    protected changeDetectorRef: ChangeDetectorRef,\n    @Host() @Optional() public noAnimation?: NzNoAnimationDirective,\n    @Optional() private directionality?: Directionality\n  ) {\n    super(differs, changeDetectorRef);\n  }\n\n  override ngOnInit(): void {\n    super.ngOnInit();\n\n    if (this.directionality) {\n      this.dir = this.directionality.value;\n      this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n        this.dir = direction;\n        this.changeDetectorRef.detectChanges();\n      });\n    }\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy();\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  override renderNodeChanges(\n    data: T[] | readonly T[],\n    dataDiffer?: IterableDiffer<T>,\n    viewContainer?: ViewContainerRef,\n    parentData?: T\n  ): void {\n    super.renderNodeChanges(data, dataDiffer, viewContainer, parentData);\n    this._dataSourceChanged.next();\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 { ChangeDetectionStrategy, ChangeDetectorRef, Component, Directive, Input, OnDestroy } from '@angular/core';\nimport { animationFrameScheduler, asapScheduler, merge, Subscription } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { NzNodeBase } from './node-base';\nimport { NzTreeView } from './tree';\nimport { getNextSibling, getParent } 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    <span class=\"ant-tree-indent-unit\" [class.ant-tree-indent-unit-end]=\"!isEnd\" *ngFor=\"let isEnd of indents\"></span>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\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> implements OnDestroy {\n  isLast: boolean | 'unset' = 'unset';\n  isLeaf = false;\n  private preNodeRef: T | null = null;\n  private nextNodeRef: T | null = null;\n  private currentIndents: string = '';\n  private changeSubscription: Subscription;\n\n  constructor(private treeNode: NzNodeBase<T>, private tree: NzTreeView<T>, private cdr: ChangeDetectorRef) {\n    this.buildIndents();\n    this.checkLast();\n\n    /**\n     * The dependent data (TreeControl.dataNodes) can be set after node instantiation,\n     * and setting the indents can cause frame rate loss if it is set too often.\n     */\n    this.changeSubscription = merge(this.treeNode._dataChanges, tree._dataSourceChanged)\n      .pipe(auditTime(0, BUILD_INDENTS_SCHEDULER))\n      .subscribe(() => {\n        this.buildIndents();\n        this.checkAdjacent();\n        this.cdr.markForCheck();\n      });\n  }\n\n  private getIndents(): boolean[] {\n    const indents = [];\n    const nodes = this.tree.treeControl.dataNodes;\n    const getLevel = this.tree.treeControl.getLevel;\n    let parent = getParent(nodes, this.treeNode.data, 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 buildIndents(): void {\n    if (this.treeNode.data) {\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 an 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    const nodes = this.tree.treeControl.dataNodes;\n    const index = nodes.indexOf(this.treeNode.data);\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    const nodes = this.tree.treeControl.dataNodes;\n    this.isLeaf = this.treeNode.isLeaf;\n    this.isLast = !getNextSibling(nodes, this.treeNode.data, this.tree.treeControl.getLevel, index);\n  }\n\n  ngOnDestroy(): void {\n    this.preNodeRef = null;\n    this.nextNodeRef = null;\n    this.changeSubscription.unsubscribe();\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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkTreeNodeToggle } from '@angular/cdk/tree';\nimport { Directive, Input } from '@angular/core';\n\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\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: 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  static ngAcceptInputType_recursive: BooleanInput;\n\n  @Input('nzTreeNodeToggleRecursive')\n  override get recursive(): boolean {\n    return this._recursive;\n  }\n  override set recursive(value: boolean) {\n    this._recursive = coerceBooleanProperty(value);\n  }\n\n  get isExpanded(): boolean {\n    return this._treeNode.isExpanded;\n  }\n}\n\n@Directive({\n  selector: '[nz-icon][nzTreeNodeToggleRotateIcon]',\n  host: {\n    class: 'ant-tree-switcher-icon'\n  }\n})\nexport class NzTreeNodeToggleRotateIconDirective {}\n\n@Directive({\n  selector: '[nz-icon][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  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Renderer2,\n  SimpleChange,\n  SimpleChanges,\n  ViewContainerRef\n} from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { NzNodeBase } from './node-base';\nimport { NzTreeView } from './tree';\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  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: CdkTreeNode, useExisting: NzTreeNodeComponent },\n    { provide: NzNodeBase, useExisting: NzTreeNodeComponent }\n  ],\n  template: `\n    <nz-tree-node-indents [indents]=\"indents\" *ngIf=\"indents.length\"></nz-tree-node-indents>\n    <ng-content select=\"nz-tree-node-toggle, [nz-tree-node-toggle]\"></ng-content>\n    <nz-tree-node-toggle class=\"nz-tree-leaf-line-icon\" *ngIf=\"indents.length && isLeaf\" nzTreeNodeNoopToggle>\n      <span class=\"ant-tree-switcher-leaf-line\"></span>\n    </nz-tree-node-toggle>\n    <ng-content select=\"nz-tree-node-checkbox\"></ng-content>\n    <ng-content select=\"nz-tree-node-option\"></ng-content>\n    <ng-content></ng-content>\n  `,\n  host: {\n    '[class.ant-tree-treenode-switcher-open]': 'isExpanded',\n    '[class.ant-tree-treenode-switcher-close]': '!isExpanded'\n  }\n})\nexport class NzTreeNodeComponent<T> extends NzNodeBase<T> implements OnDestroy, OnInit {\n  indents: boolean[] = [];\n  disabled = false;\n  selected = false;\n  isLeaf = false;\n\n  constructor(\n    protected elementRef: ElementRef<HTMLElement>,\n    protected tree: NzTreeView<T>,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef\n  ) {\n    super(elementRef, tree);\n    this._elementRef.nativeElement.classList.add('ant-tree-treenode');\n  }\n\n  override ngOnInit(): void {\n    this.isLeaf = !this.tree.treeControl.isExpandable(this.data);\n  }\n\n  disable(): void {\n    this.disabled = true;\n    this.updateDisabledClass();\n  }\n\n  enable(): void {\n    this.disabled = false;\n    this.updateDisabledClass();\n  }\n\n  select(): void {\n    this.selected = true;\n    this.updateSelectedClass();\n  }\n\n  deselect(): void {\n    this.selected = false;\n    this.updateSelectedClass();\n  }\n\n  setIndents(indents: boolean[]): void {\n    this.indents = indents;\n    this.cdr.markForCheck();\n  }\n\n  private updateSelectedClass(): void {\n    if (this.selected) {\n      this.renderer.addClass(this.elementRef.nativeElement, 'ant-tree-treenode-selected');\n    } else {\n      this.renderer.removeClass(this.elementRef.nativeElement, 'ant-tree-treenode-selected');\n    }\n  }\n\n  private updateDisabledClass(): void {\n    if (this.disabled) {\n      this.renderer.addClass(this.elementRef.nativeElement, 'ant-tree-treenode-disabled');\n    } else {\n      this.renderer.removeClass(this.elementRef.nativeElement, 'ant-tree-treenode-disabled');\n    }\n  }\n}\n\n@Directive({\n  selector: '[nzTreeNodeDef]',\n  providers: [{ provide: CdkTreeNodeDef, useExisting: NzTreeNodeDefDirective }]\n})\nexport class NzTreeNodeDefDirective<T> extends CdkTreeNodeDef<T> {\n  @Input('nzTreeNodeDefWhen') override when!: (index: number, nodeData: T) => boolean;\n}\n\n@Directive({\n  selector: '[nzTreeVirtualScrollNodeOutlet]'\n})\nexport class NzTreeVirtualScrollNodeOutletDirective<T> implements OnChanges {\n  private _viewRef: EmbeddedViewRef<NzSafeAny> | null = null;\n  @Input() data!: NzTreeVirtualNodeData<T>;\n\n  constructor(private _viewContainerRef: ViewContainerRef) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const recreateView = this.shouldRecreateView(changes);\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 = this.data\n        ? viewContainerRef.createEmbeddedView(this.data.nodeDef.template, this.data.context)\n        : null;\n\n      if (CdkTreeNode.mostRecentTreeNode && this._viewRef) {\n        CdkTreeNode.mostRecentTreeNode.data = this.data.data;\n      }\n    } else if (this._viewRef && this.data.context) {\n      this.updateExistingContext(this.data.context);\n    }\n  }\n\n  private shouldRecreateView(changes: SimpleChanges): boolean {\n    const ctxChange = changes.data;\n    return ctxChange && this.hasContextShapeChanged(ctxChange);\n  }\n\n  private hasContextShapeChanged(ctxChange: SimpleChange): boolean {\n    const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\n    const currCtxKeys = Object.keys(ctxChange.currentValue || {});\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 ctxChange.previousValue?.data !== ctxChange.currentValue?.data;\n    }\n    return true;\n  }\n\n  private updateExistingContext(ctx: NzSafeAny): void {\n    for (const propName of Object.keys(ctx)) {\n      this._viewRef!.context[propName] = (this.data.context as NzSafeAny)[propName];\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  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges\n} from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } 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></ng-content></span> `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\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  providers: [NzDestroyService]\n})\nexport class NzTreeNodeOptionComponent<T> implements OnChanges, OnInit {\n  static ngAcceptInputType_nzSelected: BooleanInput;\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n\n  @Input() @InputBoolean() nzSelected = false;\n  @Input() @InputBoolean() nzDisabled = false;\n  @Output() readonly nzClick = new EventEmitter<MouseEvent>();\n\n  constructor(\n    private ngZone: NgZone,\n    private host: ElementRef<HTMLElement>,\n    private destroy$: NzDestroyService,\n    private treeNode: NzTreeNodeComponent<T>\n  ) {}\n\n  get isExpanded(): boolean {\n    return this.treeNode.isExpanded;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzDisabled, nzSelected } = changes;\n    if (nzDisabled) {\n      if (nzDisabled.currentValue) {\n        this.treeNode.disable();\n      } else {\n        this.treeNode.enable();\n      }\n    }\n\n    if (nzSelected) {\n      if (nzSelected.currentValue) {\n        this.treeNode.select();\n      } else {\n        this.treeNode.deselect();\n      }\n    }\n  }\n\n  ngOnInit(): void {\n    this.ngZone.runOutsideAngular(() =>\n      fromEvent<MouseEvent>(this.host.nativeElement, 'click')\n        .pipe(\n          filter(() => !this.nzDisabled && this.nzClick.observers.length > 0),\n          takeUntil(this.destroy$)\n        )\n        .subscribe(event => {\n          this.ngZone.run(() => 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 { CdkTreeNodeOutlet, CDK_TREE_NODE_OUTLET_NODE } from '@angular/cdk/tree';\nimport { Directive, Inject, Optional, ViewContainerRef } from '@angular/core';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Directive({\n  selector: '[nzTreeNodeOutlet]',\n  providers: [\n    {\n      provide: CdkTreeNodeOutlet,\n      useExisting: NzTreeNodeOutletDirective\n    }\n  ]\n})\nexport class NzTreeNodeOutletDirective implements CdkTreeNodeOutlet {\n  constructor(\n    public viewContainer: ViewContainerRef,\n    @Inject(CDK_TREE_NODE_OUTLET_NODE) @Optional() public _node?: NzSafeAny\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 { NumberInput } from '@angular/cdk/coercion';\nimport { CdkTreeNodePadding } from '@angular/cdk/tree';\nimport { Directive, Input } from '@angular/core';\n\n@Directive({\n  selector: '[nzTreeNodePadding]',\n  providers: [{ provide: CdkTreeNodePadding, useExisting: NzTreeNodePaddingDirective }]\n})\nexport class NzTreeNodePaddingDirective<T> extends CdkTreeNodePadding<T> {\n  override _indent = 24;\n\n  @Input('nzTreeNodePadding')\n  override get level(): number {\n    return this._level;\n  }\n  override set level(value: NumberInput) {\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 { AfterViewInit, ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { treeCollapseMotion } 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  template: `\n    <div class=\"ant-tree-list-holder\">\n      <div\n        [@.disabled]=\"!_afterViewInit || noAnimation?.nzNoAnimation\"\n        [@treeCollapseMotion]=\"_nodeOutlet.viewContainer.length\"\n        class=\"ant-tree-list-holder-inner\"\n      >\n        <ng-container nzTreeNodeOutlet></ng-container>\n      </div>\n    </div>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: CdkTree, useExisting: NzTreeViewComponent },\n    { provide: NzTreeView, useExisting: 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  animations: [treeCollapseMotion]\n})\nexport class NzTreeViewComponent<T> extends NzTreeView<T> implements AfterViewInit {\n  @ViewChild(NzTreeNodeOutletDirective, { static: true }) nodeOutlet!: NzTreeNodeOutletDirective;\n  _afterViewInit = false;\n  ngAfterViewInit(): void {\n    Promise.resolve().then(() => {\n      this._afterViewInit = true;\n      this.changeDetectorRef.markForCheck();\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 { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { CdkTree, CdkTreeNodeOutletContext } from '@angular/cdk/tree';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  TrackByFunction,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { NzTreeVirtualNodeData } 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\"></ng-template>\n        </ng-container>\n      </cdk-virtual-scroll-viewport>\n    </div>\n    <ng-container nzTreeNodeOutlet></ng-container>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: NzTreeView, useExisting: NzTreeVirtualScrollViewComponent },\n    { provide: CdkTree, useExisting: 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})\nexport class NzTreeVirtualScrollViewComponent<T> extends NzTreeView<T> implements OnChanges {\n  @ViewChild(NzTreeNodeOutletDirective, { static: true }) readonly nodeOutlet!: NzTreeNodeOutletDirective;\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  @Input() override trackBy!: TrackByFunction<T>;\n  nodes: Array<NzTreeVirtualNodeData<T>> = [];\n  innerTrackBy: TrackByFunction<NzTreeVirtualNodeData<T>> = i => i;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.trackBy) {\n      if (typeof changes.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  override renderNodeChanges(data: T[] | readonly T[]): void {\n    this.nodes = new Array(...data).map((n, i) => this.createNode(n, i));\n    this._dataSourceChanged.next();\n    this.changeDetectorRef.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    if (this.treeControl.getLevel) {\n      context.level = this.treeControl.getLevel(nodeData);\n    } else {\n      context.level = 0;\n    }\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 { BidiModule } from '@angular/cdk/bidi';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\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: [BidiModule, CommonModule, NzNoAnimationModule, ScrollingModule],\n  declarations: [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 { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { FlatTreeControl, TreeControl } from '@angular/cdk/tree';\nimport { BehaviorSubject, merge, Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nexport class NzTreeFlattener<T, F, K = 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   * Expand flattened node with current expansion status.\n   * The returned list may have different length.\n   */\n  expandFlattenedNodes(nodes: F[], treeControl: TreeControl<F, K>): F[] {\n    const results: F[] = [];\n    const currentExpand: boolean[] = [];\n    currentExpand[0] = true;\n\n    nodes.forEach(node => {\n      let expand = true;\n      for (let i = 0; i <= this.getLevel(node); i++) {\n        expand = expand && currentExpand[i];\n      }\n      if (expand) {\n        results.push(node);\n      }\n      if (this.isExpandable(node)) {\n        currentExpand[this.getLevel(node) + 1] = treeControl.isExpanded(node);\n      }\n    });\n    return results;\n  }\n}\n\nexport class NzTreeFlatDataSource<T, F, K = F> extends DataSource<F> {\n  _flattenedData = new BehaviorSubject<F[]>([]);\n\n  _expandedData = new BehaviorSubject<F[]>([]);\n\n  _data: BehaviorSubject<T[]>;\n\n  constructor(\n    private _treeControl: FlatTreeControl<F, K>,\n    private _treeFlattener: NzTreeFlattener<T, F, K>,\n    initialData: T[] = []\n  ) {\n    super();\n    this._data = new BehaviorSubject<T[]>(initialData);\n    this.flatNodes();\n  }\n\n  setData(value: T[]): void {\n    this._data.next(value);\n    this.flatNodes();\n  }\n\n  getData(): T[] {\n    return this._data.getValue();\n  }\n\n  connect(collectionViewer: CollectionViewer): Observable<F[]> {\n    const changes = [collectionViewer.viewChange, this._treeControl.expansionModel.changed, this._flattenedData];\n    return merge(...changes).pipe(\n      map(() => {\n        this._expandedData.next(this._treeFlattener.expandFlattenedNodes(this._flattenedData.value, this._treeControl));\n        return this._expandedData.value;\n      })\n    );\n  }\n\n  disconnect(): void {\n    // no op\n  }\n\n  private flatNodes(): void {\n    this._flattenedData.next(this._treeFlattener.flattenNodes(this.getData()));\n    this._treeControl.dataNodes = this._flattenedData.value;\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 './data-source';\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';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.NzNodeBase","i3.NzTreeView","i1.NzTreeView","i2","i3.NzTreeNodeNoopToggleDirective","i4.NzTreeNodeIndentsComponent","i2.NzTreeNodeComponent","i1.NzTreeNodeOutletDirective","i2.NzTreeNodeOutletDirective","i3.NzTreeVirtualScrollNodeOutletDirective"],"mappings":"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"}