{"version":3,"file":"ui-vts-kit-ng-vts-tree.mjs","sources":["../../components/tree/tree-drop-indicator.component.ts","../../components/tree/tree-indent.component.ts","../../components/tree/tree-node-checkbox.component.ts","../../components/tree/tree-node-switcher.component.ts","../../components/tree/tree-node-title.component.ts","../../components/tree/tree-node.component.ts","../../components/tree/tree.service.ts","../../components/tree/tree.component.ts","../../components/tree/tree.module.ts","../../components/tree/public-api.ts","../../components/tree/ui-vts-kit-ng-vts-tree.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  Input,\n  OnChanges,\n  SimpleChanges\n} from '@angular/core';\nimport { NgStyleInterface } from '@ui-vts-kit/ng-vts/core/types';\n\n@Component({\n  selector: 'vts-tree-drop-indicator',\n  exportAs: 'VtsTreeDropIndicator',\n  template: ``,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '[class.vts-tree-drop-indicator]': 'true',\n    '[style]': 'style'\n  }\n})\nexport class VtsTreeDropIndicatorComponent implements OnChanges {\n  @Input() dropPosition?: number;\n  @Input() level: number = 1;\n  @Input() direction: string = 'ltr';\n  style: NgStyleInterface = {};\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngOnChanges(_changes: SimpleChanges): void {\n    this.renderIndicator(this.dropPosition!, this.direction);\n  }\n\n  renderIndicator(dropPosition: number, direction: string = 'ltr'): void {\n    const offset = 4;\n    const startPosition = direction === 'ltr' ? 'left' : 'right';\n    const endPosition = direction === 'ltr' ? 'right' : 'left';\n    const style: NgStyleInterface = {\n      [startPosition]: `${offset}px`,\n      [endPosition]: '0px'\n    };\n    switch (dropPosition) {\n      case -1:\n        style.top = `${-1}px`;\n        break;\n      case 1:\n        style.bottom = `${-1}px`;\n        break;\n      case 0:\n        // dropPosition === 0\n        style.bottom = `${-1}px`;\n        style[startPosition] = `${offset + 24}px`;\n        break;\n      default:\n        style.display = 'none';\n        break;\n    }\n    this.style = style;\n    this.cdr.markForCheck();\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  Input,\n  OnChanges,\n  OnInit,\n  SimpleChanges\n} from '@angular/core';\n\n@Component({\n  selector: 'vts-tree-indent',\n  exportAs: 'vtsTreeIndent',\n  template: `\n    <span\n      [class.vts-tree-indent-unit]=\"!vtsSelectMode\"\n      [class.vts-select-tree-indent-unit]=\"vtsSelectMode\"\n      [class.vts-select-tree-indent-unit-start]=\"vtsSelectMode && first\"\n      [class.vts-tree-indent-unit-start]=\"!vtsSelectMode && first\"\n      [class.vts-select-tree-indent-unit-end]=\"vtsSelectMode && last\"\n      [class.vts-tree-indent-unit-end]=\"!vtsSelectMode && last\"\n      [class.vts-select-tree-indent-unit-elimated]=\"vtsSelectMode && !last && vtsIsEnd[i + 1]\"\n      [class.vts-tree-indent-unit-eliminated]=\"!vtsSelectMode && !last && vtsIsEnd[i + 1]\"\n      *ngFor=\"let _ of listOfUnit; let i = index; let last = last; let first = first\"\n    ></span>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '[attr.aria-hidden]': 'true',\n    '[class.vts-tree-indent]': '!vtsSelectMode',\n    '[class.vts-select-tree-indent]': 'vtsSelectMode'\n  }\n})\nexport class VtsTreeIndentComponent implements OnInit, OnChanges {\n  @Input() vtsTreeLevel = 0;\n  @Input() vtsIsStart: boolean[] = [];\n  @Input() vtsIsEnd: boolean[] = [];\n  @Input() vtsSelectMode = false;\n\n  listOfUnit: number[] = [];\n\n  ngOnInit(): void {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsTreeLevel } = changes;\n    if (vtsTreeLevel) {\n      this.listOfUnit = [...new Array(vtsTreeLevel.currentValue || 0)];\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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'vts-tree-node-checkbox[builtin]',\n  template: `\n    <span\n      [class.vts-tree-checkbox-inner]=\"!vtsSelectMode\"\n      [class.vts-select-tree-checkbox-inner]=\"vtsSelectMode\"\n    ></span>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '[class.vts-select-tree-checkbox]': `vtsSelectMode`,\n    '[class.vts-select-tree-checkbox-checked]': `vtsSelectMode && isChecked`,\n    '[class.vts-select-tree-checkbox-indeterminate]': `vtsSelectMode && isHalfChecked`,\n    '[class.vts-select-tree-checkbox-disabled]': `vtsSelectMode && (isDisabled || isDisableCheckbox)`,\n    '[class.vts-tree-checkbox]': `!vtsSelectMode`,\n    '[class.vts-tree-checkbox-checked]': `!vtsSelectMode && isChecked`,\n    '[class.vts-tree-checkbox-indeterminate]': `!vtsSelectMode && isHalfChecked`,\n    '[class.vts-tree-checkbox-disabled]': `!vtsSelectMode && (isDisabled || isDisableCheckbox)`\n  }\n})\nexport class VtsTreeNodeBuiltinCheckboxComponent {\n  @Input() vtsSelectMode = false;\n  @Input() isChecked?: boolean;\n  @Input() isHalfChecked?: boolean;\n  @Input() isDisabled?: boolean;\n  @Input() isDisableCheckbox?: 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 { ChangeDetectionStrategy, Component, Input, TemplateRef } from '@angular/core';\nimport { VtsTreeNode, VtsTreeNodeOptions } from '@ui-vts-kit/ng-vts/core/tree';\n\n@Component({\n  selector: 'vts-tree-node-switcher',\n  template: `\n    <ng-container *ngIf=\"!isLeaf\">\n      <ng-container *ngIf=\"!isLoading; else loadingTemplate\">\n        <ng-container\n          *vtsStringTemplateOutlet=\"\n            vtsExpandedIcon;\n            context: { $implicit: context, origin: context.origin }\n          \"\n        >\n          <i\n            vts-icon\n            vtsType=\"CaretDownFill:bootstrap\"\n            [class.vts-select-tree-switcher-icon]=\"vtsSelectMode\"\n            [class.vts-tree-switcher-icon]=\"!vtsSelectMode\"\n          ></i>\n        </ng-container>\n      </ng-container>\n    </ng-container>\n    <ng-template #loadingTemplate>\n      <i vts-icon vtsType=\"BxLoaderAlt:boxIcon\" vtsSpin class=\"vts-tree-switcher-loading-icon\"></i>\n    </ng-template>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '[class.vts-select-tree-switcher]': 'vtsSelectMode',\n    '[class.vts-select-tree-switcher-noop]': 'vtsSelectMode && isLeaf',\n    '[class.vts-select-tree-switcher_open]': 'vtsSelectMode && isSwitcherOpen',\n    '[class.vts-select-tree-switcher_close]': 'vtsSelectMode && isSwitcherClose',\n    '[class.vts-select-tree-switcher-disabled]': `vtsSelectMode && (isDisabled || isDisableExpand)`,\n    '[class.vts-tree-switcher]': '!vtsSelectMode',\n    '[class.vts-tree-switcher-noop]': '!vtsSelectMode && isLeaf',\n    '[class.vts-tree-switcher_open]': '!vtsSelectMode && isSwitcherOpen',\n    '[class.vts-tree-switcher_close]': '!vtsSelectMode && isSwitcherClose',\n    '[class.vts-tree-switcher-disabled]': `!vtsSelectMode && (isDisabled || isDisableExpand)`\n  }\n})\nexport class VtsTreeNodeSwitcherComponent {\n  @Input() vtsShowExpand?: boolean;\n  @Input() vtsShowLine?: boolean;\n  @Input() vtsExpandedIcon?: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @Input() vtsSelectMode = false;\n  @Input() context!: VtsTreeNode;\n  @Input() isLeaf?: boolean;\n  @Input() isLoading?: boolean;\n  @Input() isExpanded?: boolean;\n  @Input() isDisabled?: boolean;\n  @Input() isDisableExpand?: boolean;\n\n  get isSwitcherOpen(): boolean {\n    return !!this.isExpanded && !this.isLeaf;\n  }\n\n  get isSwitcherClose(): boolean {\n    return !this.isExpanded && !this.isLeaf;\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  ChangeDetectorRef,\n  Component,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  TemplateRef\n} from '@angular/core';\nimport { VtsTreeNode, VtsTreeNodeOptions } from '@ui-vts-kit/ng-vts/core/tree';\n\n@Component({\n  selector: 'vts-tree-node-title',\n  template: `\n    <ng-template\n      [ngTemplateOutlet]=\"treeTemplate\"\n      [ngTemplateOutletContext]=\"{\n        $implicit: context,\n        origin: context.origin\n      }\"\n    ></ng-template>\n    <ng-container *ngIf=\"!treeTemplate\">\n      <span\n        *ngIf=\"icon && showIcon\"\n        [class.vts-tree-icon__open]=\"isSwitcherOpen\"\n        [class.vts-tree-icon__close]=\"isSwitcherClose\"\n        [class.vts-tree-icon_loading]=\"isLoading\"\n        [class.vts-select-tree-custom-icon]=\"selectMode\"\n        [class.vts-tree-custom-icon]=\"!selectMode\"\n      >\n        <span\n          [class.vts-select-tree-icon__customize]=\"selectMode\"\n          [class.vts-tree-icon__customize]=\"!selectMode\"\n        >\n          <i vts-icon *ngIf=\"icon\" [vtsType]=\"icon\"></i>\n        </span>\n      </span>\n      <span\n        class=\"vts-tree-title\"\n        [innerHTML]=\"title | vtsHighlight : matchedValue : 'i' : 'font-highlight'\"\n      ></span>\n      <vts-tree-drop-indicator\n        *ngIf=\"showIndicator\"\n        [dropPosition]=\"dragPosition\"\n        [level]=\"context.level\"\n      ></vts-tree-drop-indicator>\n    </ng-container>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '[class.vts-select-tree-node-content-wrapper]': `selectMode`,\n    '[class.vts-select-tree-node-content-wrapper-open]': `selectMode && isSwitcherOpen`,\n    '[class.vts-select-tree-node-content-wrapper-close]': `selectMode && isSwitcherClose`,\n    '[class.vts-select-tree-node-selected]': `selectMode && isSelected`,\n    '[class.vts-tree-node-content-wrapper]': `!selectMode`,\n    '[class.vts-tree-node-content-wrapper-open]': `!selectMode && isSwitcherOpen`,\n    '[class.vts-tree-node-content-wrapper-close]': `!selectMode && isSwitcherClose`,\n    '[class.vts-tree-node-selected]': `!selectMode && isSelected`\n  }\n})\nexport class VtsTreeNodeTitleComponent implements OnChanges {\n  @Input() searchValue!: string;\n  @Input() treeTemplate: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }> | null = null;\n  @Input() showIcon!: boolean;\n  @Input() selectMode = false;\n  @Input() context!: VtsTreeNode;\n  @Input() icon!: string;\n  @Input() title!: string;\n  @Input() isLoading!: boolean;\n  @Input() isSelected!: boolean;\n  @Input() isDisabled!: boolean;\n  @Input() isMatched!: boolean;\n  @Input() isExpanded!: boolean;\n  @Input() isLeaf!: boolean;\n  // Drag indicator\n  @Input() showIndicator = true;\n  @Input() dragPosition?: number;\n\n  get matchedValue(): string {\n    return this.isMatched ? this.searchValue : '';\n  }\n\n  get isSwitcherOpen(): boolean {\n    return this.isExpanded && !this.isLeaf;\n  }\n\n  get isSwitcherClose(): boolean {\n    return !this.isExpanded && !this.isLeaf;\n  }\n\n  constructor(private cdr: ChangeDetectorRef) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { showIndicator, dragPosition } = changes;\n    if (showIndicator || dragPosition) {\n      this.cdr.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 {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Host,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  SimpleChange,\n  TemplateRef\n} from '@angular/core';\nimport { VtsNoAnimationDirective } from '@ui-vts-kit/ng-vts/core/no-animation';\n\nimport {\n  VtsFormatBeforeDropEvent,\n  VtsFormatEmitEvent,\n  VtsTreeBaseService,\n  VtsTreeNode,\n  VtsTreeNodeOptions\n} from '@ui-vts-kit/ng-vts/core/tree';\nimport { BooleanInput } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\nimport { fromEvent, Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'vts-tree-node[builtin]',\n  exportAs: 'vtsTreeBuiltinNode',\n  template: `\n    <vts-tree-indent\n      [vtsTreeLevel]=\"vtsTreeNode.level\"\n      [vtsSelectMode]=\"vtsSelectMode\"\n      [vtsIsStart]=\"isStart\"\n      [vtsIsEnd]=\"isEnd\"\n    ></vts-tree-indent>\n    <vts-tree-node-switcher\n      *ngIf=\"vtsShowExpand\"\n      [vtsShowExpand]=\"vtsShowExpand\"\n      [vtsShowLine]=\"vtsShowLine\"\n      [vtsExpandedIcon]=\"vtsExpandedIcon\"\n      [vtsSelectMode]=\"vtsSelectMode\"\n      [context]=\"vtsTreeNode\"\n      [isLeaf]=\"isLeaf\"\n      [isExpanded]=\"isExpanded\"\n      [isLoading]=\"isLoading\"\n      [isDisabled]=\"isDisabled\"\n      [isDisableExpand]=\"isDisableExpand\"\n      (click)=\"clickExpand($event)\"\n    ></vts-tree-node-switcher>\n    <vts-tree-node-checkbox\n      builtin\n      *ngIf=\"vtsCheckable\"\n      (click)=\"clickCheckBox($event)\"\n      (dblclick)=\"dblClickCheckBox($event)\"\n      [vtsSelectMode]=\"vtsSelectMode\"\n      [isChecked]=\"isChecked\"\n      [isHalfChecked]=\"isHalfChecked\"\n      [isDisabled]=\"isDisabled\"\n      [isDisableCheckbox]=\"isDisableCheckbox\"\n    ></vts-tree-node-checkbox>\n    <vts-tree-node-title\n      [icon]=\"icon\"\n      [title]=\"title\"\n      [isLoading]=\"isLoading\"\n      [isSelected]=\"isSelected\"\n      [isDisabled]=\"isDisabled\"\n      [isMatched]=\"isMatched\"\n      [isExpanded]=\"isExpanded\"\n      [isLeaf]=\"isLeaf\"\n      [searchValue]=\"vtsSearchValue\"\n      [treeTemplate]=\"vtsTreeTemplate\"\n      [showIcon]=\"vtsShowIcon\"\n      [selectMode]=\"vtsSelectMode\"\n      [context]=\"vtsTreeNode\"\n      [showIndicator]=\"showIndicator\"\n      [dragPosition]=\"dragPos\"\n      (contextmenu)=\"contextMenu($event)\"\n    ></vts-tree-node-title>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n  host: {\n    '[class.vts-select-tree-treenode]': `vtsSelectMode`,\n    '[class.vts-select-tree-treenode-disabled]': `vtsSelectMode && isDisabled`,\n    '[class.vts-select-tree-treenode-switcher-open]': `vtsSelectMode && isSwitcherOpen`,\n    '[class.vts-select-tree-treenode-switcher-close]': `vtsSelectMode && isSwitcherClose`,\n    '[class.vts-select-tree-treenode-checkbox-checked]': `vtsSelectMode && isChecked`,\n    '[class.vts-select-tree-treenode-checkbox-indeterminate]': `vtsSelectMode && isHalfChecked`,\n    '[class.vts-select-tree-treenode-selected]': `vtsSelectMode && isSelected`,\n    '[class.vts-select-tree-treenode-loading]': `vtsSelectMode && isLoading`,\n    '[class.vts-tree-treenode]': `!vtsSelectMode`,\n    '[class.vts-tree-treenode-disabled]': `!vtsSelectMode && isDisabled`,\n    '[class.vts-tree-treenode-switcher-open]': `!vtsSelectMode && isSwitcherOpen`,\n    '[class.vts-tree-treenode-switcher-close]': `!vtsSelectMode && isSwitcherClose`,\n    '[class.vts-tree-treenode-checkbox-checked]': `!vtsSelectMode && isChecked`,\n    '[class.vts-tree-treenode-checkbox-indeterminate]': `!vtsSelectMode && isHalfChecked`,\n    '[class.vts-tree-treenode-selected]': `!vtsSelectMode && isSelected`,\n    '[class.vts-tree-treenode-loading]': `!vtsSelectMode && isLoading`,\n    '[class.vts-tree-treenode-start]': `isStart?.[vtsTreeNode.level]`,\n    '[class.vts-tree-treenode-end]': `isEnd?.[vtsTreeNode.level]`,\n    '[class.vts-tree-treenode-end-of-expand]': `vtsTreeNode.level > 1 && isEnd?.[vtsTreeNode.level - 1]`,\n    '[attr.tabindex]': 'isDisabled ? null : 0',\n    '[style.display]': 'displayStyle',\n    '(mousedown)': 'onMousedown($event)',\n    '(dblclick)': 'dblClick($event)',\n    '(click)': 'clickSelect($event)',\n\n    '[class.draggable]': 'vtsDraggable && !isDisabled',\n    '[attr.aria-grabbed]': 'vtsDraggable && !isDisabled',\n    '[attr.draggable]': 'vtsDraggable && !isDisabled',\n    '[attr.title]': 'title'\n  }\n})\nexport class VtsTreeNodeBuiltinComponent implements OnInit, OnChanges, OnDestroy {\n  static ngAcceptInputType_vtsShowLine: BooleanInput;\n  static ngAcceptInputType_vtsShowExpand: BooleanInput;\n  static ngAcceptInputType_vtsCheckable: BooleanInput;\n  static ngAcceptInputType_vtsAsyncData: BooleanInput;\n  static ngAcceptInputType_vtsHideUnMatched: BooleanInput;\n  static ngAcceptInputType_vtsNoAnimation: BooleanInput;\n  static ngAcceptInputType_vtsSelectMode: BooleanInput;\n  static ngAcceptInputType_vtsShowIcon: BooleanInput;\n\n  /**\n   * for global property\n   */\n  @Input() icon: string = '';\n  @Input() title: string = '';\n  @Input() isLoading: boolean = false;\n  @Input() isSelected: boolean = false;\n  @Input() isDisabled: boolean = false;\n  @Input() isMatched: boolean = false;\n  @Input() isExpanded!: boolean;\n  @Input() isLeaf!: boolean;\n  @Input() isChecked?: boolean;\n  @Input() isHalfChecked?: boolean;\n  @Input() isDisableCheckbox?: boolean;\n  @Input() isDisableExpand?: boolean;\n  @Input() isSelectable?: boolean;\n  @Input() canHide?: boolean;\n  @Input() isStart: boolean[] = [];\n  @Input() isEnd: boolean[] = [];\n  @Input() vtsTreeNode!: VtsTreeNode;\n  @Input() @InputBoolean() vtsShowLine?: boolean;\n  @Input() @InputBoolean() vtsShowExpand?: boolean;\n  @Input() @InputBoolean() vtsCheckable?: boolean;\n  @Input() @InputBoolean() vtsSelectable?: boolean;\n  @Input() @InputBoolean() vtsAsyncData?: boolean;\n  @Input() @InputBoolean() vtsHideUnMatched = false;\n  @Input() @InputBoolean() vtsNoAnimation = false;\n  @Input() @InputBoolean() vtsSelectMode = false;\n  @Input() @InputBoolean() vtsShowIcon = false;\n  @Input() vtsExpandedIcon?: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @Input() vtsTreeTemplate: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }> | null = null;\n  @Input() vtsBeforeDrop?: (confirm: VtsFormatBeforeDropEvent) => Observable<boolean>;\n  @Input() vtsSearchValue = '';\n  @Input() vtsDraggable: boolean = false;\n  @Output() readonly vtsClick = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsDblClick = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsContextMenu = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsCheckBoxChange = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsExpandChange = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragStart = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragEnter = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragOver = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragLeave = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDrop = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragEnd = new EventEmitter<VtsFormatEmitEvent>();\n\n  /**\n   * drag var\n   */\n  destroy$ = new Subject();\n  dragPos = 2;\n  dragPosClass: { [key: string]: string } = {\n    '0': 'drag-over',\n    '1': 'drag-over-gap-bottom',\n    '-1': 'drag-over-gap-top',\n    '2': 'drag-noop'\n  };\n  showIndicator = false;\n  /**\n   * default set\n   */\n  get displayStyle(): string {\n    // to hide unmatched nodes\n    return this.vtsSearchValue &&\n      this.vtsHideUnMatched &&\n      !this.isMatched &&\n      !this.isExpanded &&\n      this.canHide\n      ? 'none'\n      : '';\n  }\n\n  get isSwitcherOpen(): boolean {\n    return this.isExpanded && !this.isLeaf;\n  }\n\n  get isSwitcherClose(): boolean {\n    return !this.isExpanded && !this.isLeaf;\n  }\n\n  onMousedown(event: MouseEvent): void {\n    if (this.vtsSelectMode) {\n      event.preventDefault();\n    }\n  }\n\n  /**\n   * collapse node\n   * @param event\n   */\n  clickExpand(event: MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    if (this.isDisabled || this.isDisableExpand) return;\n    if (this.isLeaf) {\n      this.clickSelect(event);\n      return;\n    }\n    if (!this.isLoading && !this.isLeaf) {\n      // set async state\n      if (this.vtsAsyncData && this.vtsTreeNode.children.length === 0 && !this.isExpanded) {\n        this.vtsTreeNode.isLoading = true;\n      }\n      this.vtsTreeNode.setExpanded(!this.isExpanded);\n    }\n    this.vtsTreeService.setExpandedNodeList(this.vtsTreeNode);\n    const eventNext = this.vtsTreeService.formatEvent('expand', this.vtsTreeNode, event);\n    this.vtsExpandChange.emit(eventNext);\n  }\n\n  /**\n   * Double click debounce\n   */\n  clickSelect(event: MouseEvent): void {\n    event.preventDefault();\n    if (this.vtsSelectable && this.isSelectable && !this.isDisabled) {\n      this.vtsTreeNode.isSelected = !this.vtsTreeNode.isSelected;\n      this.vtsTreeService.setSelectedNodeList(this.vtsTreeNode);\n    }\n    const eventNext = this.vtsTreeService.formatEvent('click', this.vtsTreeNode, event);\n    this.vtsClick.emit(eventNext);\n  }\n\n  dblClick(event: MouseEvent): void {\n    event.preventDefault();\n    if (!this.isLeaf) this.clickExpand(event);\n    const eventNext = this.vtsTreeService.formatEvent('dblclick', this.vtsTreeNode, event);\n    this.vtsDblClick.emit(eventNext);\n  }\n\n  contextMenu(event: MouseEvent): void {\n    event.preventDefault();\n    const eventNext = this.vtsTreeService.formatEvent('contextmenu', this.vtsTreeNode, event);\n    this.vtsContextMenu.emit(eventNext);\n  }\n\n  /**\n   * check node\n   * @param event\n   */\n  clickCheckBox(event: MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n    // return if node is disabled\n    if (this.isDisabled || this.isDisableCheckbox) {\n      return;\n    }\n    this.vtsTreeNode.isChecked = !this.vtsTreeNode.isChecked;\n    this.vtsTreeNode.isHalfChecked = false;\n    this.vtsTreeService.setCheckedNodeList(this.vtsTreeNode);\n    const eventNext = this.vtsTreeService.formatEvent('check', this.vtsTreeNode, event);\n    this.vtsCheckBoxChange.emit(eventNext);\n  }\n\n  dblClickCheckBox(event: MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  clearDragClass(): void {\n    const dragClass = ['drag-over-gap-top', 'drag-over-gap-bottom', 'drag-over', 'drop-target'];\n    dragClass.forEach(e => {\n      this.renderer.removeClass(this.elementRef.nativeElement, e);\n    });\n  }\n\n  /**\n   * drag event\n   * @param e\n   */\n  handleDragStart(e: DragEvent): void {\n    try {\n      // ie throw error\n      // firefox-need-it\n      e.dataTransfer!.setData('text/plain', this.vtsTreeNode.key!);\n      e.dataTransfer!.setDragImage(new Image(), 0, 0);\n    } catch (error) {\n      // empty\n    }\n    this.renderer.addClass(this.elementRef.nativeElement, 'dragging');\n    this.vtsTreeService.setSelectedNode(this.vtsTreeNode);\n    const eventNext = this.vtsTreeService.formatEvent('dragstart', this.vtsTreeNode, e);\n    this.vtsOnDragStart.emit(eventNext);\n  }\n\n  handleDragEnter(e: DragEvent): void {\n    e.preventDefault();\n    // reset position\n    this.showIndicator = this.vtsTreeNode.key !== this.vtsTreeService.getSelectedNode()?.key;\n    this.renderIndicator(2);\n    this.ngZone.run(() => {\n      const eventNext = this.vtsTreeService.formatEvent('dragenter', this.vtsTreeNode, e);\n      this.vtsOnDragEnter.emit(eventNext);\n    });\n  }\n\n  handleDragOver(e: DragEvent): void {\n    e.preventDefault();\n    const dropPosition = this.vtsTreeService.calcDropPosition(e);\n    if (this.dragPos !== dropPosition) {\n      this.clearDragClass();\n      this.renderIndicator(dropPosition);\n      // leaf node will pass\n      if (!(this.dragPos === 0 && this.isLeaf)) {\n        this.renderer.addClass(this.elementRef.nativeElement, this.dragPosClass[this.dragPos]);\n        this.renderer.addClass(this.elementRef.nativeElement, 'drop-target');\n      }\n    }\n    const eventNext = this.vtsTreeService.formatEvent('dragover', this.vtsTreeNode, e);\n    this.vtsOnDragOver.emit(eventNext);\n  }\n\n  handleDragLeave(e: DragEvent): void {\n    e.preventDefault();\n    this.renderIndicator(2);\n    this.clearDragClass();\n    const eventNext = this.vtsTreeService.formatEvent('dragleave', this.vtsTreeNode, e);\n    this.vtsOnDragLeave.emit(eventNext);\n  }\n\n  handleDragDrop(e: DragEvent): void {\n    this.ngZone.run(() => {\n      this.showIndicator = false;\n      this.clearDragClass();\n      const node = this.vtsTreeService.getSelectedNode();\n      if (\n        !node ||\n        (node && node.key === this.vtsTreeNode.key) ||\n        (this.dragPos === 0 && this.isLeaf)\n      ) {\n        return;\n      }\n      // pass if node is leafNo\n      const dropEvent = this.vtsTreeService.formatEvent('drop', this.vtsTreeNode, e);\n      const dragEndEvent = this.vtsTreeService.formatEvent('dragend', this.vtsTreeNode, e);\n      if (this.vtsBeforeDrop) {\n        this.vtsBeforeDrop({\n          dragNode: this.vtsTreeService.getSelectedNode()!,\n          node: this.vtsTreeNode,\n          pos: this.dragPos\n        }).subscribe((canDrop: boolean) => {\n          if (canDrop) {\n            this.vtsTreeService.dropAndApply(this.vtsTreeNode, this.dragPos);\n          }\n          this.vtsOnDrop.emit(dropEvent);\n          this.vtsOnDragEnd.emit(dragEndEvent);\n        });\n      } else if (this.vtsTreeNode) {\n        this.vtsTreeService.dropAndApply(this.vtsTreeNode, this.dragPos);\n        this.vtsOnDrop.emit(dropEvent);\n      }\n    });\n  }\n\n  handleDragEnd(e: DragEvent): void {\n    e.preventDefault();\n    this.ngZone.run(() => {\n      // if user do not custom beforeDrop\n      if (!this.vtsBeforeDrop) {\n        const eventNext = this.vtsTreeService.formatEvent('dragend', this.vtsTreeNode, e);\n        this.vtsOnDragEnd.emit(eventNext);\n      }\n    });\n    this.renderer.removeClass(this.elementRef.nativeElement, 'dragging');\n  }\n\n  /**\n   * Listening to dragging events.\n   */\n  handDragEvent(): void {\n    this.ngZone.runOutsideAngular(() => {\n      if (this.vtsDraggable) {\n        const nativeElement = this.elementRef.nativeElement;\n        this.destroy$ = new Subject();\n        fromEvent<DragEvent>(nativeElement, 'dragstart')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe((e: DragEvent) => this.handleDragStart(e));\n        fromEvent<DragEvent>(nativeElement, 'dragenter')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe((e: DragEvent) => this.handleDragEnter(e));\n        fromEvent<DragEvent>(nativeElement, 'dragover')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe((e: DragEvent) => this.handleDragOver(e));\n        fromEvent<DragEvent>(nativeElement, 'dragleave')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe((e: DragEvent) => this.handleDragLeave(e));\n        fromEvent<DragEvent>(nativeElement, 'drop')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe((e: DragEvent) => this.handleDragDrop(e));\n        fromEvent<DragEvent>(nativeElement, 'dragend')\n          .pipe(takeUntil(this.destroy$))\n          .subscribe((e: DragEvent) => this.handleDragEnd(e));\n      } else {\n        this.destroy$.next();\n        this.destroy$.complete();\n      }\n    });\n  }\n\n  markForCheck(): void {\n    this.cdr.markForCheck();\n  }\n\n  constructor(\n    public vtsTreeService: VtsTreeBaseService,\n    private ngZone: NgZone,\n    private renderer: Renderer2,\n    private elementRef: ElementRef,\n    private cdr: ChangeDetectorRef,\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective\n  ) {}\n\n  ngOnInit(): void {\n    this.vtsTreeNode.component = this;\n  }\n\n  ngOnChanges(changes: { [propertyName: string]: SimpleChange }): void {\n    const { vtsDraggable } = changes;\n    if (vtsDraggable) {\n      this.handDragEvent();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private renderIndicator(dropPosition: number): void {\n    this.ngZone.run(() => {\n      this.showIndicator = dropPosition !== 2;\n      if (\n        this.vtsTreeNode.key === this.vtsTreeService.getSelectedNode()?.key ||\n        (dropPosition === 0 && this.isLeaf)\n      ) {\n        return;\n      }\n      this.dragPos = dropPosition;\n      this.cdr.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 { Injectable } from '@angular/core';\nimport { VtsTreeBaseService } from '@ui-vts-kit/ng-vts/core/tree';\n\n@Injectable()\nexport class VtsTreeService extends VtsTreeBaseService {\n  constructor() {\n    super();\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 */\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  EventEmitter,\n  forwardRef,\n  Host,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  SimpleChange,\n  SkipSelf,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { treeAccordionMotion } from '@ui-vts-kit/ng-vts/core/animation';\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { VtsNoAnimationDirective } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport {\n  flattenTreeData,\n  VtsFormatBeforeDropEvent,\n  VtsFormatEmitEvent,\n  VtsTreeBase,\n  VtsTreeBaseService,\n  VtsTreeHigherOrderServiceToken,\n  VtsTreeNode,\n  VtsTreeNodeKey,\n  VtsTreeNodeOptions\n} from '@ui-vts-kit/ng-vts/core/tree';\nimport { BooleanInput, VtsSafeAny, VtsSizeLMSType } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { VtsTreeService } from './tree.service';\n\nexport function VtsTreeServiceFactory(\n  higherOrderService: VtsTreeBaseService,\n  treeService: VtsTreeService\n): VtsTreeBaseService {\n  return higherOrderService ? higherOrderService : treeService;\n}\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'tree';\n\nconst SIZE: { [k in VtsSizeLMSType]: number } = {\n  sm: 32,\n  md: 40,\n  lg: 48\n};\nconst DEFAULT_SIZE = SIZE.md;\n\n@Component({\n  selector: 'vts-tree',\n  exportAs: 'vtsTree',\n  animations: [treeAccordionMotion],\n  template: `\n    <div role=\"tree\">\n      <input [ngStyle]=\"HIDDEN_STYLE\" />\n    </div>\n    <div class=\"vts-tree-list\" [class.vts-select-tree-list]=\"vtsSelectMode\">\n      <div>\n        <cdk-virtual-scroll-viewport\n          *ngIf=\"vtsVirtualHeight\"\n          [class.vts-select-tree-list-holder-inner]=\"vtsSelectMode\"\n          [class.vts-tree-list-holder-inner]=\"!vtsSelectMode\"\n          [itemSize]=\"vtsVirtualItemSize\"\n          [minBufferPx]=\"vtsVirtualMinBufferPx\"\n          [maxBufferPx]=\"vtsVirtualMaxBufferPx\"\n          [style.height]=\"vtsVirtualHeight\"\n        >\n          <ng-container *cdkVirtualFor=\"let node of vtsFlattenNodes; trackBy: trackByFlattenNode\">\n            <ng-template\n              [ngTemplateOutlet]=\"nodeTemplate\"\n              [ngTemplateOutletContext]=\"{ $implicit: node }\"\n            ></ng-template>\n          </ng-container>\n        </cdk-virtual-scroll-viewport>\n\n        <div\n          *ngIf=\"!vtsVirtualHeight\"\n          [class.vts-select-tree-list-holder-inner]=\"vtsSelectMode\"\n          [class.vts-tree-list-holder-inner]=\"!vtsSelectMode\"\n          [@.disabled]=\"beforeInit || noAnimation?.vtsNoAnimation\"\n          [vtsNoAnimation]=\"noAnimation?.vtsNoAnimation\"\n          [@treeAccordionMotion]=\"vtsFlattenNodes.length\"\n        >\n          <ng-container *ngFor=\"let node of vtsFlattenNodes; trackBy: trackByFlattenNode\">\n            <ng-template\n              [ngTemplateOutlet]=\"nodeTemplate\"\n              [ngTemplateOutletContext]=\"{ $implicit: node }\"\n            ></ng-template>\n          </ng-container>\n        </div>\n      </div>\n    </div>\n    <ng-template #nodeTemplate let-treeNode>\n      <vts-tree-node\n        builtin\n        [icon]=\"treeNode.icon\"\n        [title]=\"treeNode.title\"\n        [isLoading]=\"treeNode.isLoading\"\n        [isSelected]=\"treeNode.isSelected\"\n        [isDisabled]=\"treeNode.isDisabled\"\n        [isMatched]=\"treeNode.isMatched\"\n        [isExpanded]=\"treeNode.isExpanded\"\n        [isLeaf]=\"treeNode.isLeaf\"\n        [isStart]=\"treeNode.isStart\"\n        [isEnd]=\"treeNode.isEnd\"\n        [isChecked]=\"treeNode.isChecked\"\n        [isHalfChecked]=\"treeNode.isHalfChecked\"\n        [isDisableCheckbox]=\"treeNode.isDisableCheckbox\"\n        [isDisableExpand]=\"treeNode.isDisableExpand\"\n        [isSelectable]=\"treeNode.isSelectable\"\n        [canHide]=\"treeNode.canHide\"\n        [vtsTreeNode]=\"treeNode\"\n        [vtsSelectMode]=\"vtsSelectMode\"\n        [vtsShowLine]=\"vtsShowLine\"\n        [vtsExpandedIcon]=\"vtsExpandedIcon\"\n        [vtsDraggable]=\"vtsDraggable\"\n        [vtsCheckable]=\"vtsCheckable\"\n        [vtsSelectable]=\"vtsSelectable\"\n        [vtsShowExpand]=\"vtsShowExpand\"\n        [vtsAsyncData]=\"vtsAsyncData\"\n        [vtsSearchValue]=\"vtsSearchValue\"\n        [vtsHideUnMatched]=\"vtsHideUnMatched\"\n        [vtsBeforeDrop]=\"vtsBeforeDrop\"\n        [vtsShowIcon]=\"vtsShowIcon\"\n        [vtsTreeTemplate]=\"vtsTreeTemplate || vtsTreeTemplateChild\"\n        (vtsExpandChange)=\"eventTriggerChanged($event)\"\n        (vtsClick)=\"eventTriggerChanged($event)\"\n        (vtsDblClick)=\"eventTriggerChanged($event)\"\n        (vtsContextMenu)=\"eventTriggerChanged($event)\"\n        (vtsCheckBoxChange)=\"eventTriggerChanged($event)\"\n        (vtsOnDragStart)=\"eventTriggerChanged($event)\"\n        (vtsOnDragEnter)=\"eventTriggerChanged($event)\"\n        (vtsOnDragOver)=\"eventTriggerChanged($event)\"\n        (vtsOnDragLeave)=\"eventTriggerChanged($event)\"\n        (vtsOnDragEnd)=\"eventTriggerChanged($event)\"\n        (vtsOnDrop)=\"eventTriggerChanged($event)\"\n      ></vts-tree-node>\n    </ng-template>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    VtsTreeService,\n    {\n      provide: VtsTreeBaseService,\n      useFactory: VtsTreeServiceFactory,\n      deps: [[new SkipSelf(), new Optional(), VtsTreeHigherOrderServiceToken], VtsTreeService]\n    },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VtsTreeComponent),\n      multi: true\n    }\n  ],\n  host: {\n    '[class.vts-select-tree]': `vtsSelectMode`,\n    '[class.vts-select-tree-show-line]': `vtsSelectMode && vtsShowLine`,\n    '[class.vts-select-tree-icon-hide]': `vtsSelectMode && !vtsShowIcon`,\n    '[class.vts-select-tree-block-node]': `vtsSelectMode && vtsBlockNode`,\n    '[class.vts-tree]': `!vtsSelectMode`,\n    '[class.vts-tree-rtl]': `dir === 'rtl'`,\n    '[class.vts-tree-show-line]': `!vtsSelectMode && vtsShowLine`,\n    '[class.vts-tree-icon-hide]': `!vtsSelectMode && !vtsShowIcon`,\n    '[class.vts-tree-block-node]': `!vtsSelectMode && vtsBlockNode`,\n    '[class.draggable-tree]': `vtsDraggable`,\n    '[class.vts-tree-sm]': '!vtsSelectMode && vtsSize === \"sm\"',\n    '[class.vts-tree-md]': '!vtsSelectMode && vtsSize === \"md\"',\n    '[class.vts-tree-lg]': '!vtsSelectMode && vtsSize === \"lg\"',\n    '[class.vts-select-tree-sm]': 'vtsSelectMode && vtsSize === \"sm\"',\n    '[class.vts-select-tree-md]': 'vtsSelectMode && vtsSize === \"md\"',\n    '[class.vts-select-tree-lg]': 'vtsSelectMode && vtsSize === \"lg\"'\n  }\n})\nexport class VtsTreeComponent\n  extends VtsTreeBase\n  implements OnInit, OnDestroy, ControlValueAccessor, OnChanges, AfterViewInit\n{\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_vtsShowIcon: BooleanInput;\n  static ngAcceptInputType_vtsHideUnMatched: BooleanInput;\n  static ngAcceptInputType_vtsExpandAll: BooleanInput;\n  static ngAcceptInputType_vtsSelectMode: BooleanInput;\n  static ngAcceptInputType_vtsCheckStrictly: BooleanInput;\n  static ngAcceptInputType_vtsShowExpand: BooleanInput;\n  static ngAcceptInputType_vtsShowLine: BooleanInput;\n  static ngAcceptInputType_vtsCheckable: BooleanInput;\n  static ngAcceptInputType_vtsSelectable: BooleanInput;\n  static ngAcceptInputType_vtsAsyncData: BooleanInput;\n  static ngAcceptInputType_vtsDraggable: BooleanInput;\n  static ngAcceptInputType_vtsMultiple: BooleanInput;\n\n  @Input() @InputBoolean() @WithConfig() vtsShowIcon: boolean = true;\n  @Input() @InputBoolean() @WithConfig() vtsHideUnMatched: boolean = false;\n  @Input() @InputBoolean() vtsExpandAll = false;\n  @Input() @InputBoolean() vtsSelectMode = false;\n  @Input() @InputBoolean() vtsCheckStrictly = false;\n  @Input() @InputBoolean() vtsShowExpand: boolean = true;\n  @Input() @InputBoolean() vtsShowLine = false;\n  @Input() @InputBoolean() vtsCheckable = false;\n  @Input() @InputBoolean() vtsSelectable = false;\n  @Input() @InputBoolean() vtsAsyncData = false;\n  @Input() @InputBoolean() vtsDraggable: boolean = false;\n  @Input() @InputBoolean() vtsMultiple = false;\n  @Input() @WithConfig() vtsSize: VtsSizeLMSType = 'md';\n  @Input() vtsExpandedIcon?: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @Input() vtsVirtualItemSize = DEFAULT_SIZE;\n  @Input() vtsVirtualMaxBufferPx = DEFAULT_SIZE * 10;\n  @Input() vtsVirtualMinBufferPx = DEFAULT_SIZE * 5;\n  @Input() vtsVirtualHeight: string | null = null;\n  @Input() vtsTreeTemplate?: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @Input() vtsBeforeDrop?: (confirm: VtsFormatBeforeDropEvent) => Observable<boolean>;\n  @Input() vtsData: VtsTreeNodeOptions[] | VtsTreeNode[] = [];\n  @Input() vtsExpandedKeys: VtsTreeNodeKey[] = [];\n  @Input() vtsSelectedKeys: VtsTreeNodeKey[] = [];\n  @Input() vtsCheckedKeys: VtsTreeNodeKey[] = [];\n  @Input() vtsSearchValue: string = '';\n  @Input() vtsSearchFunc?: (node: VtsTreeNodeOptions) => boolean;\n  @ContentChild('vtsTreeTemplate', { static: true })\n  vtsTreeTemplateChild!: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @ViewChild(CdkVirtualScrollViewport, { read: CdkVirtualScrollViewport })\n  cdkVirtualScrollViewport!: CdkVirtualScrollViewport;\n  vtsFlattenNodes: VtsTreeNode[] = [];\n  beforeInit = true;\n  dir: Direction = 'ltr';\n\n  @Output() readonly vtsExpandedKeysChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n  @Output() readonly vtsSelectedKeysChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n  @Output() readonly vtsCheckedKeysChange: EventEmitter<string[]> = new EventEmitter<string[]>();\n  @Output()\n  readonly vtsSearchValueChange = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsClick = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsDblClick = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsContextMenu = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsCheckBoxChange = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsExpandChange = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragStart = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragEnter = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragOver = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragLeave = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDrop = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsOnDragEnd = new EventEmitter<VtsFormatEmitEvent>();\n\n  HIDDEN_STYLE = {\n    width: 0,\n    height: 0,\n    display: 'flex',\n    overflow: 'hidden',\n    opacity: 0,\n    border: 0,\n    padding: 0,\n    margin: 0\n  };\n\n  destroy$ = new Subject();\n\n  onChange: (value: VtsTreeNode[]) => void = () => null;\n  onTouched: () => void = () => null;\n\n  writeValue(value: VtsTreeNode[]): void {\n    this.handleVtsData(value);\n  }\n\n  registerOnChange(fn: (_: VtsTreeNode[]) => void): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  /**\n   * Render all properties of vtsTree\n   * @param changes: all changes from @Input\n   */\n  renderTreeProperties(changes: { [propertyName: string]: SimpleChange }): void {\n    let useDefaultExpandedKeys = false;\n    let expandAll = false;\n    const {\n      vtsSize,\n      vtsData,\n      vtsExpandedKeys,\n      vtsSelectedKeys,\n      vtsCheckedKeys,\n      vtsCheckStrictly,\n      vtsExpandAll,\n      vtsMultiple,\n      vtsSearchValue\n    } = changes;\n\n    if (vtsSize) {\n      const size = SIZE[vtsSize.currentValue as VtsSizeLMSType];\n      this.vtsVirtualItemSize = size;\n      this.vtsVirtualMinBufferPx = size * 5;\n      this.vtsVirtualMaxBufferPx = size * 10;\n    }\n\n    if (vtsExpandAll) {\n      useDefaultExpandedKeys = true;\n      expandAll = this.vtsExpandAll;\n    }\n\n    if (vtsMultiple) {\n      this.vtsTreeService.isMultiple = this.vtsMultiple;\n    }\n\n    if (vtsCheckStrictly) {\n      this.vtsTreeService.isCheckStrictly = this.vtsCheckStrictly;\n    }\n\n    if (vtsData) {\n      this.handleVtsData(this.vtsData);\n    }\n\n    if (vtsCheckedKeys) {\n      this.handleCheckedKeys(this.vtsCheckedKeys);\n    }\n\n    if (vtsCheckStrictly) {\n      this.handleCheckedKeys(null);\n    }\n\n    if (vtsExpandedKeys || vtsExpandAll) {\n      useDefaultExpandedKeys = true;\n      this.handleExpandedKeys(expandAll || this.vtsExpandedKeys);\n    }\n\n    if (vtsSelectedKeys) {\n      this.handleSelectedKeys(this.vtsSelectedKeys, this.vtsMultiple);\n    }\n\n    if (vtsSearchValue) {\n      if (!(vtsSearchValue.firstChange && !this.vtsSearchValue)) {\n        useDefaultExpandedKeys = false;\n        this.handleSearchValue(vtsSearchValue.currentValue, this.vtsSearchFunc);\n        this.vtsSearchValueChange.emit(this.vtsTreeService.formatEvent('search', null, null));\n      }\n    }\n\n    // flatten data\n    const currentExpandedKeys = this.getExpandedNodeList().map(v => v.key);\n    const newExpandedKeys = useDefaultExpandedKeys\n      ? expandAll || this.vtsExpandedKeys\n      : currentExpandedKeys;\n    this.handleFlattenNodes(this.vtsTreeService.rootNodes, newExpandedKeys);\n  }\n\n  trackByFlattenNode(_: number, node: VtsTreeNode): string {\n    return node.key;\n  }\n  // Deal with properties\n  /**\n   * vtsData\n   * @param value\n   */\n  handleVtsData(value: VtsSafeAny[]): void {\n    if (Array.isArray(value)) {\n      const data = this.coerceTreeNodes(value);\n      this.vtsTreeService.initTree(data);\n    }\n  }\n\n  handleFlattenNodes(data: VtsTreeNode[], expandKeys: VtsTreeNodeKey[] | true = []): void {\n    this.vtsTreeService.flattenTreeData(data, expandKeys);\n  }\n\n  handleCheckedKeys(keys: VtsTreeNodeKey[] | null): void {\n    this.vtsTreeService.conductCheck(keys, this.vtsCheckStrictly);\n  }\n\n  handleExpandedKeys(keys: VtsTreeNodeKey[] | true = []): void {\n    this.vtsTreeService.conductExpandedKeys(keys);\n  }\n\n  handleSelectedKeys(keys: VtsTreeNodeKey[], isMulti: boolean): void {\n    this.vtsTreeService.conductSelectedKeys(keys, isMulti);\n  }\n\n  handleSearchValue(value: string, searchFunc?: (node: VtsTreeNodeOptions) => boolean): void {\n    const dataList = flattenTreeData(this.vtsTreeService.rootNodes, true).map(v => v.data);\n    const checkIfMatched = (node: VtsTreeNode): boolean => {\n      if (searchFunc) {\n        return searchFunc(node.origin);\n      }\n      return !value || !node.title.toLowerCase().includes(value.toLowerCase()) ? false : true;\n    };\n    dataList.forEach(v => {\n      v.isMatched = checkIfMatched(v);\n      v.canHide = !v.isMatched;\n      if (!v.isMatched) {\n        v.setExpanded(false);\n        this.vtsTreeService.setExpandedNodeList(v);\n      } else {\n        // expand\n        this.vtsTreeService.expandNodeAllParentBySearch(v);\n      }\n      this.vtsTreeService.setMatchedNodeList(v);\n    });\n  }\n\n  /**\n   * Handle emit event\n   * @param event\n   * handle each event\n   */\n  eventTriggerChanged(event: VtsFormatEmitEvent): void {\n    const node = event.node!;\n    switch (event.eventName) {\n      case 'expand':\n        this.renderTree();\n        this.vtsExpandChange.emit(event);\n        break;\n      case 'click':\n        this.vtsClick.emit(event);\n        break;\n      case 'dblclick':\n        this.vtsDblClick.emit(event);\n        break;\n      case 'contextmenu':\n        this.vtsContextMenu.emit(event);\n        break;\n      case 'check':\n        // Render checked state with nodes' property `isChecked`\n        this.vtsTreeService.setCheckedNodeList(node);\n        if (!this.vtsCheckStrictly) {\n          this.vtsTreeService.conduct(node);\n        }\n        // Cause check method will rerender list, so we need recover it and next the new event to user\n        const eventNext = this.vtsTreeService.formatEvent('check', node, event.event!);\n        this.vtsCheckBoxChange.emit(eventNext);\n        break;\n      case 'dragstart':\n        // if node is expanded\n        if (node.isExpanded) {\n          node.setExpanded(!node.isExpanded);\n          this.renderTree();\n        }\n        this.vtsOnDragStart.emit(event);\n        break;\n      case 'dragenter':\n        const selectedNode = this.vtsTreeService.getSelectedNode();\n        if (selectedNode && selectedNode.key !== node.key && !node.isExpanded && !node.isLeaf) {\n          node.setExpanded(true);\n          this.renderTree();\n        }\n        this.vtsOnDragEnter.emit(event);\n        break;\n      case 'dragover':\n        this.vtsOnDragOver.emit(event);\n        break;\n      case 'dragleave':\n        this.vtsOnDragLeave.emit(event);\n        break;\n      case 'dragend':\n        this.vtsOnDragEnd.emit(event);\n        break;\n      case 'drop':\n        this.renderTree();\n        this.vtsOnDrop.emit(event);\n        break;\n    }\n  }\n\n  /**\n   * Click expand icon\n   */\n  renderTree(): void {\n    this.handleFlattenNodes(\n      this.vtsTreeService.rootNodes,\n      this.getExpandedNodeList().map(v => v.key)\n    );\n    this.cdr.markForCheck();\n  }\n  // Handle emit event end\n\n  constructor(\n    vtsTreeService: VtsTreeBaseService,\n    public vtsConfigService: VtsConfigService,\n    private cdr: ChangeDetectorRef,\n    @Optional() private directionality: Directionality,\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective\n  ) {\n    super(vtsTreeService);\n  }\n\n  ngOnInit(): void {\n    this.vtsTreeService.flattenNodes$.pipe(takeUntil(this.destroy$)).subscribe(data => {\n      this.vtsFlattenNodes = data;\n      this.cdr.markForCheck();\n    });\n\n    this.dir = this.directionality.value;\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n  }\n\n  ngOnChanges(changes: { [propertyName: string]: SimpleChange }): void {\n    this.renderTreeProperties(changes);\n  }\n\n  ngAfterViewInit(): void {\n    this.beforeInit = false;\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\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';\nimport { VtsHighlightModule } from '@ui-vts-kit/ng-vts/core/highlight';\nimport { VtsNoAnimationModule } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { VtsOutletModule } from '@ui-vts-kit/ng-vts/core/outlet';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\n\nimport { VtsTreeDropIndicatorComponent } from './tree-drop-indicator.component';\nimport { VtsTreeIndentComponent } from './tree-indent.component';\nimport { VtsTreeNodeBuiltinCheckboxComponent } from './tree-node-checkbox.component';\nimport { VtsTreeNodeSwitcherComponent } from './tree-node-switcher.component';\nimport { VtsTreeNodeTitleComponent } from './tree-node-title.component';\nimport { VtsTreeNodeBuiltinComponent } from './tree-node.component';\nimport { VtsTreeComponent } from './tree.component';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    VtsOutletModule,\n    VtsIconModule,\n    VtsNoAnimationModule,\n    VtsHighlightModule,\n    ScrollingModule\n  ],\n  declarations: [\n    VtsTreeComponent,\n    VtsTreeNodeBuiltinComponent,\n    VtsTreeIndentComponent,\n    VtsTreeNodeSwitcherComponent,\n    VtsTreeNodeBuiltinCheckboxComponent,\n    VtsTreeNodeTitleComponent,\n    VtsTreeDropIndicatorComponent\n  ],\n  exports: [VtsTreeComponent, VtsTreeNodeBuiltinComponent, VtsTreeIndentComponent]\n})\nexport class VtsTreeModule {}\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.module';\nexport * from './tree.component';\nexport * from './tree-node.component';\nexport * from './tree-indent.component';\nexport * from './tree.service';\nexport * from './tree-node-switcher.component';\nexport * from './tree-node-checkbox.component';\nexport * from './tree-node-title.component';\nexport {\n  VtsTreeNodeOptions,\n  VtsFormatEmitEvent,\n  VtsFormatBeforeDropEvent,\n  VtsTreeNode\n} from '@ui-vts-kit/ng-vts/core/tree';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3.VtsTreeDropIndicatorComponent","i1","i3","i4.VtsTreeIndentComponent","i5.VtsTreeNodeSwitcherComponent","i6.VtsTreeNodeBuiltinCheckboxComponent","i7.VtsTreeNodeTitleComponent","i4","i5","i7.VtsTreeNodeBuiltinComponent"],"mappings":"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"}