import { __decorate, __metadata } from "tslib";
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { Component, EventEmitter, Input, Output, QueryList, TemplateRef, ViewChild, ViewChildren } from '@angular/core';
import { I18nService } from 'ng-devui/i18n';
import { DevConfigService, expandCollapseForDomDestroy, WithConfig } from 'ng-devui/utils';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { TreeFactory } from './tree-factory.class';
import * as i0 from "@angular/core";
import * as i1 from "ng-devui/i18n";
import * as i2 from "ng-devui/utils";
import * as i3 from "@angular/common";
import * as i4 from "ng-devui/loading";
import * as i5 from "@angular/cdk/scrolling";
import * as i6 from "./tree-nodes.component";
import * as i7 from "./pipe/transfer-to-array.pipe";
export class TreeComponent {
    constructor(i18n, devConfigService) {
        this.i18n = i18n;
        this.devConfigService = devConfigService;
        this.treeNodeTitleKey = 'title';
        this.checkboxDisabledKey = 'disabled';
        this.selectDisabledKey = 'disabled';
        this.toggleDisabledKey = 'disableToggle';
        this.virtualScroll = false;
        this.virtualScrollHeight = '800px';
        this.showAnimation = true;
        this.minBufferPx = 600;
        this.maxBufferPx = 900;
        this.itemSize = 30;
        this.nodeSelected = new EventEmitter();
        this.nodeDblClicked = new EventEmitter();
        this.nodeRightClicked = new EventEmitter();
        this.nodeToggled = new EventEmitter();
        this.afterTreeInit = new EventEmitter();
        this.treeNodes = [];
        this.destroy$ = new Subject();
        this.afterInitAnimate = true;
    }
    ngOnInit() {
        this.initTree();
        this.i18nCommonText = this.i18n.getI18nText().common;
        this.i18nSubscription = this.i18n.langChange().subscribe((data) => {
            this.i18nCommonText = data.common;
        });
    }
    ngOnChanges(changes) {
        if (changes && changes.tree && !changes.tree.isFirstChange()) {
            this.initTree();
        }
    }
    initTree() {
        this.treeFactory = TreeFactory.fromTree({
            treeItems: this.tree,
            isVirtualScroll: this.virtualScroll,
            treeNodeChildrenKey: this.treeNodeChildrenKey,
            treeNodeIdKey: this.treeNodeIdKey,
            treeNodeTitleKey: this.treeNodeTitleKey,
            checkboxDisabledKey: this.checkboxDisabledKey,
            selectDisabledKey: this.selectDisabledKey,
            toggleDisabledKey: this.toggleDisabledKey
        });
        if (this.virtualScroll) {
            this.treeFactory.flattenNodes.pipe(takeUntil(this.destroy$)).subscribe(data => {
                this.treeNodes = data;
            });
            this.treeFactory.getFlattenNodes();
        }
        this.afterTreeInit.emit(this.treeFactory.nodes);
    }
    ngAfterViewInit() {
        setTimeout(() => {
            this.afterInitAnimate = false;
        });
    }
    contextmenuEvent(event, node) {
        this.nodeRightClicked.emit({ node: node, event: event });
    }
    selectNode(event, treeNode) {
        if (treeNode.data.disableSelect) {
            return;
        }
        if (!this.isSelectableRegion(event.target)) {
            return;
        }
        this.nodeSelected.emit(treeNode);
        this.treeFactory.activeNodeById(treeNode.id);
    }
    toggleNode(event, treeNode) {
        if (treeNode.data.disableToggle) {
            return;
        }
        this.treeFactory.toggleNodeById(treeNode.id);
        this.nodeToggled.emit(treeNode);
    }
    scrollToIndex(index) {
        this.viewPort.scrollToIndex(index, 'smooth');
    }
    appendTreeItems(treeItems, parentId) {
        if (!this.treeFactory.nodes[parentId]) {
            throw new Error('parent node does not exist.');
        }
        this.treeFactory.mapTreeItems({
            treeItems: treeItems,
            parentId: parentId,
            treeNodeChildrenKey: this.treeNodeChildrenKey,
            treeNodeIdKey: this.treeNodeIdKey,
            treeNodeTitleKey: this.treeNodeTitleKey,
            checkboxDisabledKey: this.checkboxDisabledKey,
            selectDisabledKey: this.selectDisabledKey,
            toggleDisabledKey: this.toggleDisabledKey
        });
    }
    nodeDblClick(event, node) {
        this.nodeDblClicked.emit(node);
    }
    isSelectableRegion(ele) {
        if (ele && !ele.classList.contains('devui-tree-node__content--value-wrapper')
            && !ele.classList.contains('devui-tree-node__content')
            && !ele.classList.contains('devui-tree-node__title')
            && ele.tagName !== 'D-HIGHLIGHT'
            && ele.parentNode?.tagName !== 'D-HIGHLIGHT') {
            return false;
        }
        return true;
    }
    ngOnDestroy() {
        if (this.i18nSubscription) {
            this.i18nSubscription.unsubscribe();
        }
        this.destroy$.next();
        this.destroy$.complete();
    }
}
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TreeComponent, deps: [{ token: i1.I18nService }, { token: i2.DevConfigService }], target: i0.ɵɵFactoryTarget.Component });
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: TreeComponent, selector: "d-tree", inputs: { tree: "tree", treeNodesRef: "treeNodesRef", treeNodeIdKey: "treeNodeIdKey", treeNodeChildrenKey: "treeNodeChildrenKey", iconParentOpen: "iconParentOpen", iconParentClose: "iconParentClose", iconLeaf: "iconLeaf", loadingTemplateRef: "loadingTemplateRef", treeNodeTitleKey: "treeNodeTitleKey", checkboxDisabledKey: "checkboxDisabledKey", selectDisabledKey: "selectDisabledKey", toggleDisabledKey: "toggleDisabledKey", virtualScroll: "virtualScroll", virtualScrollHeight: "virtualScrollHeight", showAnimation: "showAnimation", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", itemSize: "itemSize" }, outputs: { nodeSelected: "nodeSelected", nodeDblClicked: "nodeDblClicked", nodeRightClicked: "nodeRightClicked", nodeToggled: "nodeToggled", afterTreeInit: "afterTreeInit" }, viewQueries: [{ propertyName: "viewPort", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "treeNodeContent", predicate: ["treeNodeContent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<cdk-virtual-scroll-viewport\n  *ngIf=\"virtualScroll\"\n  [itemSize]=\"itemSize\"\n  [minBufferPx]=\"minBufferPx\"\n  [maxBufferPx]=\"maxBufferPx\"\n  [style.height]=\"virtualScrollHeight\"\n>\n  <d-tree-nodes\n    [virtualScroll]=\"true\"\n    [treeList]=\"treeNodes\"\n    [treeNodesRef]=\"treeNodesRef ? treeNodesRef : virtualScrollRef\"\n    [treeFactory]=\"treeFactory\"\n  >\n  </d-tree-nodes>\n</cdk-virtual-scroll-viewport>\n\n<d-tree-nodes\n  *ngIf=\"!virtualScroll\"\n  [treeList]=\"treeFactory.treeRoot\"\n  [treeNodesRef]=\"treeNodesRef ? treeNodesRef : default\"\n  [treeFactory]=\"treeFactory\"\n>\n</d-tree-nodes>\n<!-- TODO: \u865A\u62DF\u6EDA\u52A8\u652F\u6301\u52A8\u6548 -->\n<ng-template #virtualScrollRef let-treeNode=\"treeNode\" let-treeFactory=\"treeFactory\">\n  <div\n    class=\"devui-tree-node\"\n    [style.paddingLeft.px]=\"treeNode.data.depth * 24\"\n    [ngClass]=\"{\n      'devui-tree-node__open': treeNode.data.isOpen,\n      'devui-tree-node__customIcon': iconParentClose\n    }\"\n    #treeNodeContent\n  >\n    <div\n      class=\"devui-tree-vertical-line\"\n      *ngFor=\"let item of treeNode.data.depth | transferToArrayPipe; let i = index\"\n      [style.marginLeft.px]=\"i === 0 ? -16 : -16 - 24 * i\"\n      [ngStyle]=\"{ height: i === 0 && treeNode.data.isLast && !treeNode.data.isOpen ? '15px' : '30px' }\"\n    ></div>\n    <div\n      *ngIf=\"treeNode.data.depth\"\n      [ngStyle]=\"{ width: treeNode.data.isParent ? '8px' : '16px' }\"\n      class=\"devui-tree-horizontal-line\"\n    ></div>\n    <div\n      class=\"devui-tree-node__content\"\n      [class.active]=\"treeNode.data.isActive\"\n      [class.devui-tree-node--parent]=\"(treeNode.data.children || []).length > 0\"\n      (click)=\"selectNode($event, treeNode)\"\n    >\n      <div class=\"devui-tree-node__content--value-wrapper\" [class.isMatch]=\"treeNode.data.isMatch\">\n        <span\n          (click)=\"toggleNode($event, treeNode)\"\n          *ngIf=\"(treeNode.data.children || []).length > 0 || treeNode.data.isParent\"\n          class=\"devui-tree-node__folder\"\n          [class.toggle-disabled]=\"treeNode.data.disableToggle\"\n        >\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentClose && !treeNode.data.isOpen\" [innerHTML]=\"iconParentClose\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentOpen && treeNode.data.isOpen\" [innerHTML]=\"iconParentOpen\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentClose && !treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <path\n                  d=\"M8.75,4 L8.75,7.25 L12,7.25 L12,8.75 L8.749,8.75 L8.75,12 L7.25,12 L7.249,8.75 L4,8.75 L4,7.25 L7.25,7.25 L7.25,4 L8.75,4 Z\"\n                ></path>\n              </g>\n            </svg>\n          </span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentOpen && treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon svg-icon-close\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <rect x=\"4\" y=\"7\" width=\"8\" height=\"2\"></rect>\n              </g>\n            </svg>\n          </span>\n        </span>\n        <span class=\"devui-tree-node__leaf\" *ngIf=\"(treeNode.data.children || []).length === 0 && !treeNode.data.isParent\">\n          <span *ngIf=\"!iconLeaf\" class=\"devui-leaf-icon-none\"></span>\n          <span *ngIf=\"iconLeaf\" [innerHTML]=\"iconLeaf\"></span>\n        </span>\n        <span\n          (dblclick)=\"nodeDblClick($event, treeNode)\"\n          (contextmenu)=\"contextmenuEvent($event, treeNode)\"\n          class=\"devui-tree-node__title\"\n          [class.select-disabled]=\"treeNode.data.disableSelect\"\n          title=\"{{ treeNode.data.title }}\"\n          >{{ treeNode.data.title }}</span\n        >\n        <span\n          dLoading\n          [showLoading]=\"treeNode.data.loading\"\n          [loadingTemplateRef]=\"loadingTemplateRef ? loadingTemplateRef : defaultLoadingTmpl\"\n        >\n        </span>\n      </div>\n    </div>\n  </div>\n</ng-template>\n<ng-template #default let-treeNode=\"treeNode\" let-treeFactory=\"treeFactory\">\n  <div\n    class=\"devui-tree-node devui-tree-without-virtual-scroll\"\n    [ngClass]=\"{\n      'devui-tree-node__open': treeNode.data.isOpen,\n      'devui-tree-node__customIcon': iconParentClose\n    }\"\n    #treeNodeContent\n  >\n    <div\n      class=\"devui-tree-node__content\"\n      [class.active]=\"treeNode.data.isActive\"\n      [class.devui-tree-node--parent]=\"(treeNode.data.children || []).length > 0\"\n      (click)=\"selectNode($event, treeNode)\"\n    >\n      <div class=\"devui-tree-node__content--value-wrapper\" [class.isMatch]=\"treeNode.data.isMatch\">\n        <span\n          (click)=\"toggleNode($event, treeNode)\"\n          *ngIf=\"(treeNode.data.children || []).length > 0 || treeNode.data.isParent\"\n          class=\"devui-tree-node__folder\"\n          [class.toggle-disabled]=\"treeNode.data.disableToggle\"\n        >\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentClose && !treeNode.data.isOpen\" [innerHTML]=\"iconParentClose\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentOpen && treeNode.data.isOpen\" [innerHTML]=\"iconParentOpen\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentClose && !treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <path\n                  d=\"M8.75,4 L8.75,7.25 L12,7.25 L12,8.75 L8.749,8.75 L8.75,12 L7.25,12 L7.249,8.75 L4,8.75 L4,7.25 L7.25,7.25 L7.25,4 L8.75,4 Z\"\n                ></path>\n              </g>\n            </svg>\n          </span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentOpen && treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon svg-icon-close\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <rect x=\"4\" y=\"7\" width=\"8\" height=\"2\"></rect>\n              </g>\n            </svg>\n          </span>\n        </span>\n        <span class=\"devui-tree-node__leaf\" *ngIf=\"(treeNode.data.children || []).length === 0 && !treeNode.data.isParent\">\n          <span *ngIf=\"!iconLeaf\" class=\"devui-leaf-icon-none\"></span>\n          <span *ngIf=\"iconLeaf\" [innerHTML]=\"iconLeaf\"></span>\n        </span>\n        <span\n          (dblclick)=\"nodeDblClick($event, treeNode)\"\n          (contextmenu)=\"contextmenuEvent($event, treeNode)\"\n          class=\"devui-tree-node__title\"\n          [class.select-disabled]=\"treeNode.data.disableSelect\"\n          title=\"{{ treeNode.data.title }}\"\n          >{{ treeNode.data.title }}</span\n        >\n        <span\n          dLoading\n          [showLoading]=\"treeNode.data.loading\"\n          [loadingTemplateRef]=\"loadingTemplateRef ? loadingTemplateRef : defaultLoadingTmpl\"\n        >\n        </span>\n      </div>\n    </div>\n    <div\n      *ngIf=\"treeNode.data.isOpen\"\n      class=\"devui-tree-node__children\"\n      @collapseForDomDestroy\n      [@.disabled]=\"afterInitAnimate || !showAnimation\"\n    >\n      <d-tree-nodes [treeList]=\"treeNode.data.children || []\" [treeNodesRef]=\"default\" [treeFactory]=\"treeFactory\"> </d-tree-nodes>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #defaultLoadingTmpl>\n  <span class=\"devui-loading-children\">{{ i18nCommonText?.loading }}</span>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.devui-font-size-base{font-size:12px;font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:12px;font-size:var(--devui-font-size, 12px);font-weight:400;line-height:1.5}.devui-font-size-modal-title{font-size:18px;font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:18px;font-size:var(--devui-font-size-modal-title, 18px);font-weight:700;line-height:1.5}.devui-font-size-page-title{font-size:16px;font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:16px;font-size:var(--devui-font-size-page-title, 16px);font-weight:700;line-height:1.5}.devui-font-size-secondary-title{font-size:14px;font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:14px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700;line-height:1.5}:host{display:block}.devui-text-ellipsis,.devui-tree-node .devui-tree-node__title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.devui-tree-node{color:#575d6c;color:var(--devui-text-weak, #575d6c);line-height:1.5;white-space:nowrap;position:relative}.devui-tree-node .devui-tree-node__content{display:inline-flex;align-items:center;font-size:12px;font-size:var(--devui-font-size, 12px);padding-right:10px;width:100%;border-radius:2px;border-radius:var(--devui-border-radius, 2px);padding-left:6px}.devui-tree-node .devui-tree-node__content.active{background-color:#f2f5fc;background-color:var(--devui-list-item-selected-bg, #f2f5fc);text-decoration:none;border-color:transparent}.devui-tree-node .devui-tree-node__content:not(.active):hover{background-color:#f2f2f3;background-color:var(--devui-list-item-hover-bg, #f2f2f3)}.devui-tree-node .devui-tree-node__content--value-wrapper{display:inline-flex;align-items:center;height:30px;width:100%}.devui-tree-node .devui-tree-node__children{padding-left:10px}.devui-tree-node .devui-tree-node__children:first-child{border-left-color:transparent}.devui-tree-node .devui-tree-node__children .devui-tree-node{margin-left:8px;content:\"\";position:relative}.devui-tree-node .devui-tree-node__children .devui-tree-node:last-child{border-left-color:transparent}.devui-tree-node .devui-tree-node__title{margin-left:4px;display:inline-block;border:1px dashed transparent;border-radius:2px;border-radius:var(--devui-border-radius, 2px);max-width:100%}.devui-tree-node .devui-tree-node__title:not(.disabled){cursor:pointer}.devui-tree-node .devui-tree-node__edit{margin-left:.4em;padding:.1em}.devui-tree-node .devui-tree-node__edit>.devui-input-sm{height:26px}.devui-tree-node .devui-tree-node__edit>.devui-input-sm.error,.devui-tree-node .devui-tree-node__edit>.devui-input-sm.error:hover,.devui-tree-node .devui-tree-node__edit>.devui-input-sm.error:focus{border-color:#f66f6a;border-color:var(--devui-danger, #f66f6a)}.devui-tree-node .devui-tree-node__leaf:not(.disabled){cursor:default}.devui-tree-node .devui-tree-node__leaf .devui-tree-node__leaf--default{color:#f2a71f}.devui-tree-node .devui-tree-node__leaf .devui-leaf-icon-none{display:inline-block;width:8px;height:16px}.devui-tree-node .devui-tree-node__folder{display:inline-block;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:16px;font-size:var(--devui-font-size-icon, 16px);height:16px;line-height:16px}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--icon{display:inline-block;height:16px;line-height:16px}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--icon:hover svg g path{fill:#252b3a;fill:var(--devui-icon-fill-hover, #252b3a)}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--icon:hover svg g rect{stroke:#252b3a;stroke:var(--devui-icon-fill-hover, #252b3a)}.devui-tree-node .devui-tree-node__folder:not(.disabled){cursor:pointer}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--default{color:#f2b806}.devui-tree-node .devui-loading-children{display:inline-block;vertical-align:middle;margin-left:.5em;margin-top:.15em;color:#5e7ce0;color:var(--devui-info, #5e7ce0);font-style:italic;font-size:1em;-webkit-animation-name:devui-loading-children;animation-name:devui-loading-children;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes devui-loading-children{0%{color:#627fe1}12.5%{color:#627fe1}25%{color:#617fe1}37.5%{color:#617ee1}50%{color:#607ee0}62.5%{color:#607ee0}75%{color:#5f7de0}87.5%{color:#5e7ce0}to{color:#5e7ce0}}@keyframes devui-loading-children{0%{color:#627fe1}12.5%{color:#627fe1}25%{color:#617fe1}37.5%{color:#617ee1}50%{color:#607ee0}62.5%{color:#607ee0}75%{color:#5f7de0}87.5%{color:#5e7ce0}to{color:#5e7ce0}}.devui-tree-node svg.svg-icon path{fill:#71757f;fill:var(--devui-icon-fill, #71757f)}.devui-tree-node svg.svg-icon rect{stroke:#71757f;stroke:var(--devui-icon-fill, #71757f)}.devui-tree-node.devui-tree-node__open:not(.devui-tree-node__customIcon)>.devui-tree-node__content svg.svg-icon path{fill:#252b3a;fill:var(--devui-icon-fill-active, #252b3a)}.devui-tree-node.devui-tree-node__open:not(.devui-tree-node__customIcon)>.devui-tree-node__content svg.svg-icon rect{stroke:#252b3a;stroke:var(--devui-icon-fill-active, #252b3a)}.devui-tree-node.devui-tree-node__open:not(.devui-tree-node__customIcon)>.devui-tree-node__content svg.svg-icon.svg-icon-close rect:last-child{stroke:none;fill:#252b3a;fill:var(--devui-icon-fill-active, #252b3a)}.devui-tree-node svg.svg-icon.svg-icon-close rect:last-child{stroke:none;fill:#71757f;fill:var(--devui-icon-text, #71757f)}::ng-deep .devui-tree-mask{background:#f2f2f3;background:var(--devui-list-item-hover-bg, #f2f2f3)}.devui-tree-node.devui-tree-without-virtual-scroll.devui-tree-node__open>.devui-tree-node__content{position:relative}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children{position:relative}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children:before{content:\"\";width:1px;height:calc(100% - 15px);background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute;left:9px;top:0}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children .devui-tree-node__content{position:relative}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children .devui-tree-node__content:before{content:\"\";width:8px;height:1px;background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute;left:-9px;top:50%}.devui-tree-vertical-line{width:1px;background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute}.devui-tree-horizontal-line{height:1px;background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute;top:50%;margin-left:-16px}.toggle-disabled{cursor:not-allowed!important}.toggle-disabled svg.svg-icon rect{stroke:#cfd0d3!important;stroke:var(--devui-disabled-text, #cfd0d3)!important}.toggle-disabled svg.svg-icon.svg-icon-close rect:last-child{stroke:none!important;fill:#cfd0d3!important;fill:var(--devui-disabled-text, #cfd0d3)!important}.toggle-disabled svg.svg-icon path{fill:#cfd0d3!important;fill:var(--devui-disabled-text, #cfd0d3)!important}.select-disabled{color:#cfd0d3!important;color:var(--devui-disabled-text, #cfd0d3)!important;cursor:not-allowed!important;background-color:transparent!important}.devui-tree-node__content{transition:color .1s cubic-bezier(.645,.045,.355,1),background-color .1s cubic-bezier(.645,.045,.355,1);transition:color var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)),background-color var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}::ng-deep d-tree .cdk-virtual-scroll-content-wrapper{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.LoadingDirective, selector: "[dLoading]", inputs: ["message", "backdrop", "loadingTemplateRef", "positionType", "view", "showLoading", "loading", "zIndex", "loadingStyle"], exportAs: ["dLoading"] }, { kind: "directive", type: i5.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i5.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i6.TreeNodesComponent, selector: "d-tree-nodes", inputs: ["treeList", "treeNodesRef", "treeFactory", "virtualScroll"] }, { kind: "pipe", type: i7.TransferToArrayPipe, name: "transferToArrayPipe" }], animations: [expandCollapseForDomDestroy] });
__decorate([
    WithConfig(),
    __metadata("design:type", Object)
], TreeComponent.prototype, "showAnimation", void 0);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TreeComponent, decorators: [{
            type: Component,
            args: [{ selector: 'd-tree', preserveWhitespaces: false, animations: [expandCollapseForDomDestroy], template: "<cdk-virtual-scroll-viewport\n  *ngIf=\"virtualScroll\"\n  [itemSize]=\"itemSize\"\n  [minBufferPx]=\"minBufferPx\"\n  [maxBufferPx]=\"maxBufferPx\"\n  [style.height]=\"virtualScrollHeight\"\n>\n  <d-tree-nodes\n    [virtualScroll]=\"true\"\n    [treeList]=\"treeNodes\"\n    [treeNodesRef]=\"treeNodesRef ? treeNodesRef : virtualScrollRef\"\n    [treeFactory]=\"treeFactory\"\n  >\n  </d-tree-nodes>\n</cdk-virtual-scroll-viewport>\n\n<d-tree-nodes\n  *ngIf=\"!virtualScroll\"\n  [treeList]=\"treeFactory.treeRoot\"\n  [treeNodesRef]=\"treeNodesRef ? treeNodesRef : default\"\n  [treeFactory]=\"treeFactory\"\n>\n</d-tree-nodes>\n<!-- TODO: \u865A\u62DF\u6EDA\u52A8\u652F\u6301\u52A8\u6548 -->\n<ng-template #virtualScrollRef let-treeNode=\"treeNode\" let-treeFactory=\"treeFactory\">\n  <div\n    class=\"devui-tree-node\"\n    [style.paddingLeft.px]=\"treeNode.data.depth * 24\"\n    [ngClass]=\"{\n      'devui-tree-node__open': treeNode.data.isOpen,\n      'devui-tree-node__customIcon': iconParentClose\n    }\"\n    #treeNodeContent\n  >\n    <div\n      class=\"devui-tree-vertical-line\"\n      *ngFor=\"let item of treeNode.data.depth | transferToArrayPipe; let i = index\"\n      [style.marginLeft.px]=\"i === 0 ? -16 : -16 - 24 * i\"\n      [ngStyle]=\"{ height: i === 0 && treeNode.data.isLast && !treeNode.data.isOpen ? '15px' : '30px' }\"\n    ></div>\n    <div\n      *ngIf=\"treeNode.data.depth\"\n      [ngStyle]=\"{ width: treeNode.data.isParent ? '8px' : '16px' }\"\n      class=\"devui-tree-horizontal-line\"\n    ></div>\n    <div\n      class=\"devui-tree-node__content\"\n      [class.active]=\"treeNode.data.isActive\"\n      [class.devui-tree-node--parent]=\"(treeNode.data.children || []).length > 0\"\n      (click)=\"selectNode($event, treeNode)\"\n    >\n      <div class=\"devui-tree-node__content--value-wrapper\" [class.isMatch]=\"treeNode.data.isMatch\">\n        <span\n          (click)=\"toggleNode($event, treeNode)\"\n          *ngIf=\"(treeNode.data.children || []).length > 0 || treeNode.data.isParent\"\n          class=\"devui-tree-node__folder\"\n          [class.toggle-disabled]=\"treeNode.data.disableToggle\"\n        >\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentClose && !treeNode.data.isOpen\" [innerHTML]=\"iconParentClose\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentOpen && treeNode.data.isOpen\" [innerHTML]=\"iconParentOpen\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentClose && !treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <path\n                  d=\"M8.75,4 L8.75,7.25 L12,7.25 L12,8.75 L8.749,8.75 L8.75,12 L7.25,12 L7.249,8.75 L4,8.75 L4,7.25 L7.25,7.25 L7.25,4 L8.75,4 Z\"\n                ></path>\n              </g>\n            </svg>\n          </span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentOpen && treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon svg-icon-close\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <rect x=\"4\" y=\"7\" width=\"8\" height=\"2\"></rect>\n              </g>\n            </svg>\n          </span>\n        </span>\n        <span class=\"devui-tree-node__leaf\" *ngIf=\"(treeNode.data.children || []).length === 0 && !treeNode.data.isParent\">\n          <span *ngIf=\"!iconLeaf\" class=\"devui-leaf-icon-none\"></span>\n          <span *ngIf=\"iconLeaf\" [innerHTML]=\"iconLeaf\"></span>\n        </span>\n        <span\n          (dblclick)=\"nodeDblClick($event, treeNode)\"\n          (contextmenu)=\"contextmenuEvent($event, treeNode)\"\n          class=\"devui-tree-node__title\"\n          [class.select-disabled]=\"treeNode.data.disableSelect\"\n          title=\"{{ treeNode.data.title }}\"\n          >{{ treeNode.data.title }}</span\n        >\n        <span\n          dLoading\n          [showLoading]=\"treeNode.data.loading\"\n          [loadingTemplateRef]=\"loadingTemplateRef ? loadingTemplateRef : defaultLoadingTmpl\"\n        >\n        </span>\n      </div>\n    </div>\n  </div>\n</ng-template>\n<ng-template #default let-treeNode=\"treeNode\" let-treeFactory=\"treeFactory\">\n  <div\n    class=\"devui-tree-node devui-tree-without-virtual-scroll\"\n    [ngClass]=\"{\n      'devui-tree-node__open': treeNode.data.isOpen,\n      'devui-tree-node__customIcon': iconParentClose\n    }\"\n    #treeNodeContent\n  >\n    <div\n      class=\"devui-tree-node__content\"\n      [class.active]=\"treeNode.data.isActive\"\n      [class.devui-tree-node--parent]=\"(treeNode.data.children || []).length > 0\"\n      (click)=\"selectNode($event, treeNode)\"\n    >\n      <div class=\"devui-tree-node__content--value-wrapper\" [class.isMatch]=\"treeNode.data.isMatch\">\n        <span\n          (click)=\"toggleNode($event, treeNode)\"\n          *ngIf=\"(treeNode.data.children || []).length > 0 || treeNode.data.isParent\"\n          class=\"devui-tree-node__folder\"\n          [class.toggle-disabled]=\"treeNode.data.disableToggle\"\n        >\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentClose && !treeNode.data.isOpen\" [innerHTML]=\"iconParentClose\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"iconParentOpen && treeNode.data.isOpen\" [innerHTML]=\"iconParentOpen\"></span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentClose && !treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <path\n                  d=\"M8.75,4 L8.75,7.25 L12,7.25 L12,8.75 L8.749,8.75 L8.75,12 L7.25,12 L7.249,8.75 L4,8.75 L4,7.25 L7.25,7.25 L7.25,4 L8.75,4 Z\"\n                ></path>\n              </g>\n            </svg>\n          </span>\n          <span class=\"devui-tree-node__folder--icon\" *ngIf=\"!iconParentOpen && treeNode.data.isOpen\">\n            <svg\n              width=\"16px\"\n              height=\"16px\"\n              viewBox=\"0 0 16 16\"\n              version=\"1.1\"\n              xmlns=\"http://www.w3.org/2000/svg\"\n              xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n              class=\"svg-icon svg-icon-close\"\n            >\n              <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n                <rect x=\"0.5\" y=\"0.5\" width=\"15\" height=\"15\" rx=\"2\"></rect>\n                <rect x=\"4\" y=\"7\" width=\"8\" height=\"2\"></rect>\n              </g>\n            </svg>\n          </span>\n        </span>\n        <span class=\"devui-tree-node__leaf\" *ngIf=\"(treeNode.data.children || []).length === 0 && !treeNode.data.isParent\">\n          <span *ngIf=\"!iconLeaf\" class=\"devui-leaf-icon-none\"></span>\n          <span *ngIf=\"iconLeaf\" [innerHTML]=\"iconLeaf\"></span>\n        </span>\n        <span\n          (dblclick)=\"nodeDblClick($event, treeNode)\"\n          (contextmenu)=\"contextmenuEvent($event, treeNode)\"\n          class=\"devui-tree-node__title\"\n          [class.select-disabled]=\"treeNode.data.disableSelect\"\n          title=\"{{ treeNode.data.title }}\"\n          >{{ treeNode.data.title }}</span\n        >\n        <span\n          dLoading\n          [showLoading]=\"treeNode.data.loading\"\n          [loadingTemplateRef]=\"loadingTemplateRef ? loadingTemplateRef : defaultLoadingTmpl\"\n        >\n        </span>\n      </div>\n    </div>\n    <div\n      *ngIf=\"treeNode.data.isOpen\"\n      class=\"devui-tree-node__children\"\n      @collapseForDomDestroy\n      [@.disabled]=\"afterInitAnimate || !showAnimation\"\n    >\n      <d-tree-nodes [treeList]=\"treeNode.data.children || []\" [treeNodesRef]=\"default\" [treeFactory]=\"treeFactory\"> </d-tree-nodes>\n    </div>\n  </div>\n</ng-template>\n\n<ng-template #defaultLoadingTmpl>\n  <span class=\"devui-loading-children\">{{ i18nCommonText?.loading }}</span>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.devui-font-size-base{font-size:12px;font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:12px;font-size:var(--devui-font-size, 12px);font-weight:400;line-height:1.5}.devui-font-size-modal-title{font-size:18px;font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:18px;font-size:var(--devui-font-size-modal-title, 18px);font-weight:700;line-height:1.5}.devui-font-size-page-title{font-size:16px;font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:16px;font-size:var(--devui-font-size-page-title, 16px);font-weight:700;line-height:1.5}.devui-font-size-secondary-title{font-size:14px;font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:14px;font-size:var(--devui-font-size-card-title, 14px);font-weight:700;line-height:1.5}:host{display:block}.devui-text-ellipsis,.devui-tree-node .devui-tree-node__title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.devui-tree-node{color:#575d6c;color:var(--devui-text-weak, #575d6c);line-height:1.5;white-space:nowrap;position:relative}.devui-tree-node .devui-tree-node__content{display:inline-flex;align-items:center;font-size:12px;font-size:var(--devui-font-size, 12px);padding-right:10px;width:100%;border-radius:2px;border-radius:var(--devui-border-radius, 2px);padding-left:6px}.devui-tree-node .devui-tree-node__content.active{background-color:#f2f5fc;background-color:var(--devui-list-item-selected-bg, #f2f5fc);text-decoration:none;border-color:transparent}.devui-tree-node .devui-tree-node__content:not(.active):hover{background-color:#f2f2f3;background-color:var(--devui-list-item-hover-bg, #f2f2f3)}.devui-tree-node .devui-tree-node__content--value-wrapper{display:inline-flex;align-items:center;height:30px;width:100%}.devui-tree-node .devui-tree-node__children{padding-left:10px}.devui-tree-node .devui-tree-node__children:first-child{border-left-color:transparent}.devui-tree-node .devui-tree-node__children .devui-tree-node{margin-left:8px;content:\"\";position:relative}.devui-tree-node .devui-tree-node__children .devui-tree-node:last-child{border-left-color:transparent}.devui-tree-node .devui-tree-node__title{margin-left:4px;display:inline-block;border:1px dashed transparent;border-radius:2px;border-radius:var(--devui-border-radius, 2px);max-width:100%}.devui-tree-node .devui-tree-node__title:not(.disabled){cursor:pointer}.devui-tree-node .devui-tree-node__edit{margin-left:.4em;padding:.1em}.devui-tree-node .devui-tree-node__edit>.devui-input-sm{height:26px}.devui-tree-node .devui-tree-node__edit>.devui-input-sm.error,.devui-tree-node .devui-tree-node__edit>.devui-input-sm.error:hover,.devui-tree-node .devui-tree-node__edit>.devui-input-sm.error:focus{border-color:#f66f6a;border-color:var(--devui-danger, #f66f6a)}.devui-tree-node .devui-tree-node__leaf:not(.disabled){cursor:default}.devui-tree-node .devui-tree-node__leaf .devui-tree-node__leaf--default{color:#f2a71f}.devui-tree-node .devui-tree-node__leaf .devui-leaf-icon-none{display:inline-block;width:8px;height:16px}.devui-tree-node .devui-tree-node__folder{display:inline-block;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:16px;font-size:var(--devui-font-size-icon, 16px);height:16px;line-height:16px}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--icon{display:inline-block;height:16px;line-height:16px}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--icon:hover svg g path{fill:#252b3a;fill:var(--devui-icon-fill-hover, #252b3a)}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--icon:hover svg g rect{stroke:#252b3a;stroke:var(--devui-icon-fill-hover, #252b3a)}.devui-tree-node .devui-tree-node__folder:not(.disabled){cursor:pointer}.devui-tree-node .devui-tree-node__folder .devui-tree-node__folder--default{color:#f2b806}.devui-tree-node .devui-loading-children{display:inline-block;vertical-align:middle;margin-left:.5em;margin-top:.15em;color:#5e7ce0;color:var(--devui-info, #5e7ce0);font-style:italic;font-size:1em;-webkit-animation-name:devui-loading-children;animation-name:devui-loading-children;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}@-webkit-keyframes devui-loading-children{0%{color:#627fe1}12.5%{color:#627fe1}25%{color:#617fe1}37.5%{color:#617ee1}50%{color:#607ee0}62.5%{color:#607ee0}75%{color:#5f7de0}87.5%{color:#5e7ce0}to{color:#5e7ce0}}@keyframes devui-loading-children{0%{color:#627fe1}12.5%{color:#627fe1}25%{color:#617fe1}37.5%{color:#617ee1}50%{color:#607ee0}62.5%{color:#607ee0}75%{color:#5f7de0}87.5%{color:#5e7ce0}to{color:#5e7ce0}}.devui-tree-node svg.svg-icon path{fill:#71757f;fill:var(--devui-icon-fill, #71757f)}.devui-tree-node svg.svg-icon rect{stroke:#71757f;stroke:var(--devui-icon-fill, #71757f)}.devui-tree-node.devui-tree-node__open:not(.devui-tree-node__customIcon)>.devui-tree-node__content svg.svg-icon path{fill:#252b3a;fill:var(--devui-icon-fill-active, #252b3a)}.devui-tree-node.devui-tree-node__open:not(.devui-tree-node__customIcon)>.devui-tree-node__content svg.svg-icon rect{stroke:#252b3a;stroke:var(--devui-icon-fill-active, #252b3a)}.devui-tree-node.devui-tree-node__open:not(.devui-tree-node__customIcon)>.devui-tree-node__content svg.svg-icon.svg-icon-close rect:last-child{stroke:none;fill:#252b3a;fill:var(--devui-icon-fill-active, #252b3a)}.devui-tree-node svg.svg-icon.svg-icon-close rect:last-child{stroke:none;fill:#71757f;fill:var(--devui-icon-text, #71757f)}::ng-deep .devui-tree-mask{background:#f2f2f3;background:var(--devui-list-item-hover-bg, #f2f2f3)}.devui-tree-node.devui-tree-without-virtual-scroll.devui-tree-node__open>.devui-tree-node__content{position:relative}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children{position:relative}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children:before{content:\"\";width:1px;height:calc(100% - 15px);background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute;left:9px;top:0}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children .devui-tree-node__content{position:relative}.devui-tree-node.devui-tree-without-virtual-scroll>.devui-tree-node__children .devui-tree-node__content:before{content:\"\";width:8px;height:1px;background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute;left:-9px;top:50%}.devui-tree-vertical-line{width:1px;background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute}.devui-tree-horizontal-line{height:1px;background-color:#f2f2f3;background-color:var(--devui-dividing-line, #f2f2f3);position:absolute;top:50%;margin-left:-16px}.toggle-disabled{cursor:not-allowed!important}.toggle-disabled svg.svg-icon rect{stroke:#cfd0d3!important;stroke:var(--devui-disabled-text, #cfd0d3)!important}.toggle-disabled svg.svg-icon.svg-icon-close rect:last-child{stroke:none!important;fill:#cfd0d3!important;fill:var(--devui-disabled-text, #cfd0d3)!important}.toggle-disabled svg.svg-icon path{fill:#cfd0d3!important;fill:var(--devui-disabled-text, #cfd0d3)!important}.select-disabled{color:#cfd0d3!important;color:var(--devui-disabled-text, #cfd0d3)!important;cursor:not-allowed!important;background-color:transparent!important}.devui-tree-node__content{transition:color .1s cubic-bezier(.645,.045,.355,1),background-color .1s cubic-bezier(.645,.045,.355,1);transition:color var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1)),background-color var(--devui-animation-duration-fast, .1s) var(--devui-animation-ease-in-out-smooth, cubic-bezier(.645, .045, .355, 1))}::ng-deep d-tree .cdk-virtual-scroll-content-wrapper{width:100%}\n"] }]
        }], ctorParameters: function () { return [{ type: i1.I18nService }, { type: i2.DevConfigService }]; }, propDecorators: { tree: [{
                type: Input
            }], treeNodesRef: [{
                type: Input
            }], treeNodeIdKey: [{
                type: Input
            }], treeNodeChildrenKey: [{
                type: Input
            }], iconParentOpen: [{
                type: Input
            }], iconParentClose: [{
                type: Input
            }], iconLeaf: [{
                type: Input
            }], loadingTemplateRef: [{
                type: Input
            }], treeNodeTitleKey: [{
                type: Input
            }], checkboxDisabledKey: [{
                type: Input
            }], selectDisabledKey: [{
                type: Input
            }], toggleDisabledKey: [{
                type: Input
            }], virtualScroll: [{
                type: Input
            }], virtualScrollHeight: [{
                type: Input
            }], showAnimation: [{
                type: Input
            }], minBufferPx: [{
                type: Input
            }], maxBufferPx: [{
                type: Input
            }], itemSize: [{
                type: Input
            }], nodeSelected: [{
                type: Output
            }], nodeDblClicked: [{
                type: Output
            }], nodeRightClicked: [{
                type: Output
            }], nodeToggled: [{
                type: Output
            }], afterTreeInit: [{
                type: Output
            }], treeNodeContent: [{
                type: ViewChildren,
                args: ['treeNodeContent']
            }], viewPort: [{
                type: ViewChild,
                args: [CdkVirtualScrollViewport]
            }] } });
//# sourceMappingURL=data:application/json;base64, 