UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

739 lines 66.1 kB
/** * @fileoverview added by tsickle * Generated from: tree.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __decorate, __extends, __metadata } from "tslib"; /** * @license * Copyright Alibaba.com All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, forwardRef, Host, Input, Optional, Output, SkipSelf, TemplateRef, ViewChild } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { treeCollapseMotion } from 'ng-zorro-antd/core/animation'; import { NzConfigService, WithConfig } from 'ng-zorro-antd/core/config'; import { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation'; import { flattenTreeData, NzTreeBase, NzTreeBaseService, NzTreeHigherOrderServiceToken } from 'ng-zorro-antd/core/tree'; import { InputBoolean } from 'ng-zorro-antd/core/util'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { NzTreeService } from './tree.service'; /** * @param {?} higherOrderService * @param {?} treeService * @return {?} */ export function NzTreeServiceFactory(higherOrderService, treeService) { return higherOrderService ? higherOrderService : treeService; } /** @type {?} */ var NZ_CONFIG_COMPONENT_NAME = 'tree'; var NzTreeComponent = /** @class */ (function (_super) { __extends(NzTreeComponent, _super); // Handle emit event end function NzTreeComponent(nzTreeService, nzConfigService, cdr, noAnimation) { var _this = _super.call(this, nzTreeService) || this; _this.nzConfigService = nzConfigService; _this.cdr = cdr; _this.noAnimation = noAnimation; _this.nzExpandAll = false; _this.nzSelectMode = false; _this.nzCheckStrictly = false; _this.nzShowExpand = true; _this.nzShowLine = false; _this.nzCheckable = false; _this.nzAsyncData = false; _this.nzDraggable = false; _this.nzMultiple = false; _this.nzVirtualItemSize = 28; _this.nzVirtualMaxBufferPx = 500; _this.nzVirtualMinBufferPx = 28; _this.nzVirtualHeight = false; _this.nzData = []; _this.nzExpandedKeys = []; _this.nzSelectedKeys = []; _this.nzCheckedKeys = []; _this.nzFlattenNodes = []; _this.beforeInit = true; _this.nzExpandedKeysChange = new EventEmitter(); _this.nzSelectedKeysChange = new EventEmitter(); _this.nzCheckedKeysChange = new EventEmitter(); _this.nzSearchValueChange = new EventEmitter(); _this.nzClick = new EventEmitter(); _this.nzDblClick = new EventEmitter(); _this.nzContextMenu = new EventEmitter(); _this.nzCheckBoxChange = new EventEmitter(); _this.nzExpandChange = new EventEmitter(); _this.nzOnDragStart = new EventEmitter(); _this.nzOnDragEnter = new EventEmitter(); _this.nzOnDragOver = new EventEmitter(); _this.nzOnDragLeave = new EventEmitter(); _this.nzOnDrop = new EventEmitter(); _this.nzOnDragEnd = new EventEmitter(); _this.HIDDEN_STYLE = { width: 0, height: 0, display: 'flex', overflow: 'hidden', opacity: 0, border: 0, padding: 0, margin: 0 }; _this.destroy$ = new Subject(); _this.onChange = (/** * @return {?} */ function () { return null; }); _this.onTouched = (/** * @return {?} */ function () { return null; }); return _this; } /** * @param {?} value * @return {?} */ NzTreeComponent.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { this.handleNzData(value); }; /** * @param {?} fn * @return {?} */ NzTreeComponent.prototype.registerOnChange = /** * @param {?} fn * @return {?} */ function (fn) { this.onChange = fn; }; /** * @param {?} fn * @return {?} */ NzTreeComponent.prototype.registerOnTouched = /** * @param {?} fn * @return {?} */ function (fn) { this.onTouched = fn; }; /** * Render all properties of nzTree * @param changes: all changes from @Input */ /** * Render all properties of nzTree * @param {?} changes * @return {?} */ NzTreeComponent.prototype.renderTreeProperties = /** * Render all properties of nzTree * @param {?} changes * @return {?} */ function (changes) { /** @type {?} */ var useDefaultExpandedKeys = false; /** @type {?} */ var expandAll = false; var nzData = changes.nzData, nzExpandedKeys = changes.nzExpandedKeys, nzSelectedKeys = changes.nzSelectedKeys, nzCheckedKeys = changes.nzCheckedKeys, nzCheckStrictly = changes.nzCheckStrictly, nzExpandAll = changes.nzExpandAll, nzMultiple = changes.nzMultiple, nzSearchValue = changes.nzSearchValue; if (nzExpandAll) { useDefaultExpandedKeys = true; expandAll = this.nzExpandAll; } if (nzMultiple) { this.nzTreeService.isMultiple = this.nzMultiple; } if (nzCheckStrictly) { this.nzTreeService.isCheckStrictly = this.nzCheckStrictly; } if (nzData) { this.handleNzData(this.nzData); } if (nzCheckedKeys || nzCheckStrictly) { this.handleCheckedKeys(this.nzCheckedKeys); } if (nzExpandedKeys || nzExpandAll) { useDefaultExpandedKeys = true; this.handleExpandedKeys(expandAll || this.nzExpandedKeys); } if (nzSelectedKeys) { this.handleSelectedKeys(this.nzSelectedKeys, this.nzMultiple); } if (nzSearchValue) { if (!(nzSearchValue.firstChange && !this.nzSearchValue)) { useDefaultExpandedKeys = false; this.handleSearchValue(this.nzSearchValue, this.nzSearchFunc); this.nzSearchValueChange.emit(this.nzTreeService.formatEvent('search', null, null)); } } // flatten data /** @type {?} */ var currentExpandedKeys = this.getExpandedNodeList().map((/** * @param {?} v * @return {?} */ function (v) { return v.key; })); /** @type {?} */ var newExpandedKeys = useDefaultExpandedKeys ? expandAll || this.nzExpandedKeys : currentExpandedKeys; this.handleFlattenNodes(this.nzTreeService.rootNodes, newExpandedKeys); }; /** * @param {?} _ * @param {?} node * @return {?} */ NzTreeComponent.prototype.trackByFlattenNode = /** * @param {?} _ * @param {?} node * @return {?} */ function (_, node) { return node.key; }; // Deal with properties /** * nzData * @param value */ // Deal with properties /** * nzData * @param {?} value * @return {?} */ NzTreeComponent.prototype.handleNzData = // Deal with properties /** * nzData * @param {?} value * @return {?} */ function (value) { if (Array.isArray(value)) { /** @type {?} */ var data = this.coerceTreeNodes(value); this.nzTreeService.initTree(data); } }; /** * @param {?} data * @param {?=} expandKeys * @return {?} */ NzTreeComponent.prototype.handleFlattenNodes = /** * @param {?} data * @param {?=} expandKeys * @return {?} */ function (data, expandKeys) { if (expandKeys === void 0) { expandKeys = []; } this.nzTreeService.flattenTreeData(data, expandKeys); }; /** * @param {?} keys * @return {?} */ NzTreeComponent.prototype.handleCheckedKeys = /** * @param {?} keys * @return {?} */ function (keys) { this.nzTreeService.conductCheck(keys, this.nzCheckStrictly); }; /** * @param {?=} keys * @return {?} */ NzTreeComponent.prototype.handleExpandedKeys = /** * @param {?=} keys * @return {?} */ function (keys) { if (keys === void 0) { keys = []; } this.nzTreeService.conductExpandedKeys(keys); }; /** * @param {?} keys * @param {?} isMulti * @return {?} */ NzTreeComponent.prototype.handleSelectedKeys = /** * @param {?} keys * @param {?} isMulti * @return {?} */ function (keys, isMulti) { this.nzTreeService.conductSelectedKeys(keys, isMulti); }; /** * @param {?} value * @param {?=} searchFunc * @return {?} */ NzTreeComponent.prototype.handleSearchValue = /** * @param {?} value * @param {?=} searchFunc * @return {?} */ function (value, searchFunc) { var _this = this; /** @type {?} */ var dataList = flattenTreeData(this.nzTreeService.rootNodes, true).map((/** * @param {?} v * @return {?} */ function (v) { return v.data; })); /** @type {?} */ var checkIfMatched = (/** * @param {?} node * @return {?} */ function (node) { if (searchFunc) { return searchFunc(node.origin); } return !value || !node.title.toLowerCase().includes(value.toLowerCase()) ? false : true; }); dataList.forEach((/** * @param {?} v * @return {?} */ function (v) { v.isMatched = checkIfMatched(v); v.canHide = !v.isMatched; if (!v.isMatched) { v.setExpanded(false); _this.nzTreeService.setExpandedNodeList(v); } else { // expand _this.nzTreeService.expandNodeAllParentBySearch(v); } _this.nzTreeService.setMatchedNodeList(v); })); }; /** * Handle emit event * @param event * handle each event */ /** * Handle emit event * @param {?} event * handle each event * @return {?} */ NzTreeComponent.prototype.eventTriggerChanged = /** * Handle emit event * @param {?} event * handle each event * @return {?} */ function (event) { /** @type {?} */ var node = (/** @type {?} */ (event.node)); switch (event.eventName) { case 'expand': this.renderTree(); this.nzExpandChange.emit(event); break; case 'click': this.nzClick.emit(event); break; case 'dblclick': this.nzDblClick.emit(event); break; case 'contextmenu': this.nzContextMenu.emit(event); break; case 'check': // Render checked state with nodes' property `isChecked` this.nzTreeService.setCheckedNodeList(node); if (!this.nzCheckStrictly) { this.nzTreeService.conduct(node); } // Cause check method will rerender list, so we need recover it and next the new event to user /** @type {?} */ var eventNext = this.nzTreeService.formatEvent('check', node, (/** @type {?} */ (event.event))); this.nzCheckBoxChange.emit(eventNext); break; case 'dragstart': // if node is expanded if (node.isExpanded) { node.setExpanded(!node.isExpanded); this.renderTree(); } this.nzOnDragStart.emit(event); break; case 'dragenter': /** @type {?} */ var selectedNode = this.nzTreeService.getSelectedNode(); if (selectedNode && selectedNode.key !== node.key && !node.isExpanded && !node.isLeaf) { node.setExpanded(true); this.renderTree(); } this.nzOnDragEnter.emit(event); break; case 'dragover': this.nzOnDragOver.emit(event); break; case 'dragleave': this.nzOnDragLeave.emit(event); break; case 'dragend': this.nzOnDragEnd.emit(event); break; case 'drop': this.renderTree(); this.nzOnDrop.emit(event); break; } }; /** * Click expand icon */ /** * Click expand icon * @return {?} */ NzTreeComponent.prototype.renderTree = /** * Click expand icon * @return {?} */ function () { this.handleFlattenNodes(this.nzTreeService.rootNodes, this.getExpandedNodeList().map((/** * @param {?} v * @return {?} */ function (v) { return v.key; }))); this.cdr.markForCheck(); }; /** * @return {?} */ NzTreeComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.nzTreeService.flattenNodes$.pipe(takeUntil(this.destroy$)).subscribe((/** * @param {?} data * @return {?} */ function (data) { _this.nzFlattenNodes = data; _this.cdr.markForCheck(); })); }; /** * @param {?} changes * @return {?} */ NzTreeComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { this.renderTreeProperties(changes); }; /** * @return {?} */ NzTreeComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { this.beforeInit = false; }; /** * @return {?} */ NzTreeComponent.prototype.ngOnDestroy = /** * @return {?} */ function () { this.destroy$.next(); this.destroy$.complete(); }; NzTreeComponent.decorators = [ { type: Component, args: [{ selector: 'nz-tree', exportAs: 'nzTree', animations: [treeCollapseMotion], template: "\n <div role=\"tree\">\n <input [ngStyle]=\"HIDDEN_STYLE\" />\n </div>\n <div [class.ant-select-tree-list]=\"nzSelectMode\" [class.ant-tree-list]=\"nzSelectMode\">\n <div>\n <cdk-virtual-scroll-viewport\n *ngIf=\"nzVirtualHeight\"\n [class.ant-select-tree-list-holder-inner]=\"nzSelectMode\"\n [class.ant-tree-list-holder-inner]=\"nzSelectMode\"\n [itemSize]=\"nzVirtualItemSize\"\n [minBufferPx]=\"nzVirtualMinBufferPx\"\n [maxBufferPx]=\"nzVirtualMaxBufferPx\"\n [style.height]=\"nzVirtualHeight\"\n >\n <ng-container *cdkVirtualFor=\"let node of nzFlattenNodes; trackBy: trackByFlattenNode\">\n <ng-template [ngTemplateOutlet]=\"nodeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n\n <div\n *ngIf=\"!nzVirtualHeight\"\n [class.ant-select-tree-list-holder-inner]=\"nzSelectMode\"\n [class.ant-tree-list-holder-inner]=\"nzSelectMode\"\n [@.disabled]=\"beforeInit || noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [@treeCollapseMotion]=\"nzFlattenNodes.length\"\n >\n <ng-container *ngFor=\"let node of nzFlattenNodes; trackBy: trackByFlattenNode\">\n <ng-template [ngTemplateOutlet]=\"nodeTemplate\" [ngTemplateOutletContext]=\"{ $implicit: node }\"></ng-template>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-template #nodeTemplate let-treeNode>\n <nz-tree-node\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 [isSelectable]=\"treeNode.isSelectable\"\n [canHide]=\"treeNode.canHide\"\n [nzTreeNode]=\"treeNode\"\n [nzSelectMode]=\"nzSelectMode\"\n [nzShowLine]=\"nzShowLine\"\n [nzExpandedIcon]=\"nzExpandedIcon\"\n [nzDraggable]=\"nzDraggable\"\n [nzCheckable]=\"nzCheckable\"\n [nzShowExpand]=\"nzShowExpand\"\n [nzAsyncData]=\"nzAsyncData\"\n [nzSearchValue]=\"nzSearchValue\"\n [nzHideUnMatched]=\"nzHideUnMatched\"\n [nzBeforeDrop]=\"nzBeforeDrop\"\n [nzShowIcon]=\"nzShowIcon\"\n [nzTreeTemplate]=\"nzTreeTemplate || nzTreeTemplateChild\"\n (nzExpandChange)=\"eventTriggerChanged($event)\"\n (nzClick)=\"eventTriggerChanged($event)\"\n (nzDblClick)=\"eventTriggerChanged($event)\"\n (nzContextMenu)=\"eventTriggerChanged($event)\"\n (nzCheckBoxChange)=\"eventTriggerChanged($event)\"\n (nzOnDragStart)=\"eventTriggerChanged($event)\"\n (nzOnDragEnter)=\"eventTriggerChanged($event)\"\n (nzOnDragOver)=\"eventTriggerChanged($event)\"\n (nzOnDragLeave)=\"eventTriggerChanged($event)\"\n (nzOnDragEnd)=\"eventTriggerChanged($event)\"\n (nzOnDrop)=\"eventTriggerChanged($event)\"\n >\n </nz-tree-node>\n </ng-template>\n ", changeDetection: ChangeDetectionStrategy.OnPush, providers: [ NzTreeService, { provide: NzTreeBaseService, useFactory: NzTreeServiceFactory, deps: [[new SkipSelf(), new Optional(), NzTreeHigherOrderServiceToken], NzTreeService] }, { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ function () { return NzTreeComponent; })), multi: true } ], host: { '[class.ant-select-tree]': "nzSelectMode", '[class.ant-select-tree-show-line]': "nzSelectMode && nzShowLine", '[class.ant-select-tree-icon-hide]': "nzSelectMode && !nzShowIcon", '[class.ant-select-tree-block-node]': "nzSelectMode && nzBlockNode", '[class.ant-tree]': "!nzSelectMode", '[class.ant-tree-show-line]': "!nzSelectMode && nzShowLine", '[class.ant-tree-icon-hide]': "!nzSelectMode && !nzShowIcon", '[class.ant-tree-block-node]': "!nzSelectMode && nzBlockNode", '[class.draggable-tree]': "nzDraggable" } }] } ]; /** @nocollapse */ NzTreeComponent.ctorParameters = function () { return [ { type: NzTreeBaseService }, { type: NzConfigService }, { type: ChangeDetectorRef }, { type: NzNoAnimationDirective, decorators: [{ type: Host }, { type: Optional }] } ]; }; NzTreeComponent.propDecorators = { nzShowIcon: [{ type: Input }], nzHideUnMatched: [{ type: Input }], nzBlockNode: [{ type: Input }], nzExpandAll: [{ type: Input }], nzSelectMode: [{ type: Input }], nzCheckStrictly: [{ type: Input }], nzShowExpand: [{ type: Input }], nzShowLine: [{ type: Input }], nzCheckable: [{ type: Input }], nzAsyncData: [{ type: Input }], nzDraggable: [{ type: Input }], nzMultiple: [{ type: Input }], nzExpandedIcon: [{ type: Input }], nzVirtualItemSize: [{ type: Input }], nzVirtualMaxBufferPx: [{ type: Input }], nzVirtualMinBufferPx: [{ type: Input }], nzVirtualHeight: [{ type: Input }], nzTreeTemplate: [{ type: Input }], nzBeforeDrop: [{ type: Input }], nzData: [{ type: Input }], nzExpandedKeys: [{ type: Input }], nzSelectedKeys: [{ type: Input }], nzCheckedKeys: [{ type: Input }], nzSearchValue: [{ type: Input }], nzSearchFunc: [{ type: Input }], nzTreeTemplateChild: [{ type: ContentChild, args: ['nzTreeTemplate', { static: true },] }], cdkVirtualScrollViewport: [{ type: ViewChild, args: [CdkVirtualScrollViewport, { read: CdkVirtualScrollViewport },] }], nzExpandedKeysChange: [{ type: Output }], nzSelectedKeysChange: [{ type: Output }], nzCheckedKeysChange: [{ type: Output }], nzSearchValueChange: [{ type: Output }], nzClick: [{ type: Output }], nzDblClick: [{ type: Output }], nzContextMenu: [{ type: Output }], nzCheckBoxChange: [{ type: Output }], nzExpandChange: [{ type: Output }], nzOnDragStart: [{ type: Output }], nzOnDragEnter: [{ type: Output }], nzOnDragOver: [{ type: Output }], nzOnDragLeave: [{ type: Output }], nzOnDrop: [{ type: Output }], nzOnDragEnd: [{ type: Output }] }; __decorate([ InputBoolean(), WithConfig(NZ_CONFIG_COMPONENT_NAME, false), __metadata("design:type", Boolean) ], NzTreeComponent.prototype, "nzShowIcon", void 0); __decorate([ InputBoolean(), WithConfig(NZ_CONFIG_COMPONENT_NAME, false), __metadata("design:type", Boolean) ], NzTreeComponent.prototype, "nzHideUnMatched", void 0); __decorate([ InputBoolean(), WithConfig(NZ_CONFIG_COMPONENT_NAME, false), __metadata("design:type", Boolean) ], NzTreeComponent.prototype, "nzBlockNode", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzExpandAll", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzSelectMode", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzCheckStrictly", void 0); __decorate([ InputBoolean(), __metadata("design:type", Boolean) ], NzTreeComponent.prototype, "nzShowExpand", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzShowLine", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzCheckable", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzAsyncData", void 0); __decorate([ InputBoolean(), __metadata("design:type", Boolean) ], NzTreeComponent.prototype, "nzDraggable", void 0); __decorate([ InputBoolean(), __metadata("design:type", Object) ], NzTreeComponent.prototype, "nzMultiple", void 0); return NzTreeComponent; }(NzTreeBase)); export { NzTreeComponent }; if (false) { /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzShowIcon; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzHideUnMatched; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzBlockNode; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzExpandAll; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzSelectMode; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzCheckStrictly; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzShowExpand; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzShowLine; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzCheckable; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzAsyncData; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzDraggable; /** @type {?} */ NzTreeComponent.ngAcceptInputType_nzMultiple; /** @type {?} */ NzTreeComponent.prototype.nzShowIcon; /** @type {?} */ NzTreeComponent.prototype.nzHideUnMatched; /** @type {?} */ NzTreeComponent.prototype.nzBlockNode; /** @type {?} */ NzTreeComponent.prototype.nzExpandAll; /** @type {?} */ NzTreeComponent.prototype.nzSelectMode; /** @type {?} */ NzTreeComponent.prototype.nzCheckStrictly; /** @type {?} */ NzTreeComponent.prototype.nzShowExpand; /** @type {?} */ NzTreeComponent.prototype.nzShowLine; /** @type {?} */ NzTreeComponent.prototype.nzCheckable; /** @type {?} */ NzTreeComponent.prototype.nzAsyncData; /** @type {?} */ NzTreeComponent.prototype.nzDraggable; /** @type {?} */ NzTreeComponent.prototype.nzMultiple; /** @type {?} */ NzTreeComponent.prototype.nzExpandedIcon; /** @type {?} */ NzTreeComponent.prototype.nzVirtualItemSize; /** @type {?} */ NzTreeComponent.prototype.nzVirtualMaxBufferPx; /** @type {?} */ NzTreeComponent.prototype.nzVirtualMinBufferPx; /** @type {?} */ NzTreeComponent.prototype.nzVirtualHeight; /** @type {?} */ NzTreeComponent.prototype.nzTreeTemplate; /** @type {?} */ NzTreeComponent.prototype.nzBeforeDrop; /** @type {?} */ NzTreeComponent.prototype.nzData; /** @type {?} */ NzTreeComponent.prototype.nzExpandedKeys; /** @type {?} */ NzTreeComponent.prototype.nzSelectedKeys; /** @type {?} */ NzTreeComponent.prototype.nzCheckedKeys; /** @type {?} */ NzTreeComponent.prototype.nzSearchValue; /** @type {?} */ NzTreeComponent.prototype.nzSearchFunc; /** @type {?} */ NzTreeComponent.prototype.nzTreeTemplateChild; /** @type {?} */ NzTreeComponent.prototype.cdkVirtualScrollViewport; /** @type {?} */ NzTreeComponent.prototype.nzFlattenNodes; /** @type {?} */ NzTreeComponent.prototype.beforeInit; /** @type {?} */ NzTreeComponent.prototype.nzExpandedKeysChange; /** @type {?} */ NzTreeComponent.prototype.nzSelectedKeysChange; /** @type {?} */ NzTreeComponent.prototype.nzCheckedKeysChange; /** @type {?} */ NzTreeComponent.prototype.nzSearchValueChange; /** @type {?} */ NzTreeComponent.prototype.nzClick; /** @type {?} */ NzTreeComponent.prototype.nzDblClick; /** @type {?} */ NzTreeComponent.prototype.nzContextMenu; /** @type {?} */ NzTreeComponent.prototype.nzCheckBoxChange; /** @type {?} */ NzTreeComponent.prototype.nzExpandChange; /** @type {?} */ NzTreeComponent.prototype.nzOnDragStart; /** @type {?} */ NzTreeComponent.prototype.nzOnDragEnter; /** @type {?} */ NzTreeComponent.prototype.nzOnDragOver; /** @type {?} */ NzTreeComponent.prototype.nzOnDragLeave; /** @type {?} */ NzTreeComponent.prototype.nzOnDrop; /** @type {?} */ NzTreeComponent.prototype.nzOnDragEnd; /** @type {?} */ NzTreeComponent.prototype.HIDDEN_STYLE; /** @type {?} */ NzTreeComponent.prototype.destroy$; /** @type {?} */ NzTreeComponent.prototype.onChange; /** @type {?} */ NzTreeComponent.prototype.onTouched; /** @type {?} */ NzTreeComponent.prototype.nzConfigService; /** * @type {?} * @private */ NzTreeComponent.prototype.cdr; /** @type {?} */ NzTreeComponent.prototype.noAnimation; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkL3RyZWUvIiwic291cmNlcyI6WyJ0cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLElBQUksRUFDSixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsZUFBZSxFQUdmLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsNkJBQTZCLEVBSTlCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRS9DLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxrQkFBcUMsRUFBRSxXQUEwQjtJQUNwRyxPQUFPLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENB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SUFDOUMsd0NBQTZDOztJQUM3Qyx3Q0FBK0I7O0lBQy9CLHVDQUE0RDs7SUFDNUQsOENBQXlJOztJQUN6SSxtREFBNEg7O0lBQzVILHlDQUFrQzs7SUFDbEMscUNBQWtCOztJQUVsQiwrQ0FBK0Y7O0lBQy9GLCtDQUErRjs7SUFDL0YsOENBQThGOztJQUM5Riw4Q0FBK0U7O0lBQy9FLGtDQUFtRTs7SUFDbkUscUNBQXNFOztJQUN0RSx3Q0FBeUU7O0lBQ3pFLDJDQUE0RTs7SUFDNUUseUNBQTBFOztJQUMxRSx3Q0FBeUU7O0lBQ3pFLHdDQUF5RTs7SUFDekUsdUNBQXdFOztJQUN4RSx3Q0FBeUU7O0lBQ3pFLG1DQUFvRTs7SUFDcEUsc0NBQXVFOztJQUV2RSx1Q0FTRTs7SUFFRixtQ0FBeUI7O0lBRXpCLG1DQUFxRDs7SUFDckQsb0NBQW1DOztJQXFNakMsMENBQXVDOzs7OztJQUN2Qyw4QkFBOEI7O0lBQzlCLHNDQUErRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZSxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0cmVlQ29sbGFwc2VNb3Rpb24gfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvYW5pbWF0aW9uJztcbmltcG9ydCB7IE56Q29uZmlnU2VydmljZSwgV2l0aENvbmZpZyB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTnpOb0FuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS9uby1hbmltYXRpb24nO1xuaW1wb3J0IHtcbiAgZmxhdHRlblRyZWVEYXRhLFxuICBOekZvcm1hdEJlZm9yZURyb3BFdmVudCxcbiAgTnpGb3JtYXRFbWl0RXZlbnQsXG4gIE56VHJlZUJhc2UsXG4gIE56VHJlZUJhc2VTZXJ2aWNlLFxuICBOelRyZWVIaWdoZXJPcmRlclNlcnZpY2VUb2tlbixcbiAgTnpUcmVlTm9kZSxcbiAgTnpUcmVlTm9kZUtleSxcbiAgTnpUcmVlTm9kZU9wdGlvbnNcbn0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3RyZWUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTnpUcmVlU2VydmljZSB9IGZyb20gJy4vdHJlZS5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIE56VHJlZVNlcnZpY2VGYWN0b3J5KGhpZ2hlck9yZGVyU2VydmljZTogTnpUcmVlQmFzZVNlcnZpY2UsIHRyZWVTZXJ2aWNlOiBOelRyZWVTZXJ2aWNlKTogTnpUcmVlQmFzZVNlcnZpY2Uge1xuICByZXR1cm4gaGlnaGVyT3JkZXJTZXJ2aWNlID8gaGlnaGVyT3JkZXJTZXJ2aWNlIDogdHJlZVNlcnZpY2U7XG59XG5cbmNvbnN0IE5aX0NPTkZJR19DT01QT05FTlRfTkFNRSA9ICd0cmVlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnotdHJlZScsXG4gIGV4cG9ydEFzOiAnbnpUcmVlJyxcbiAgYW5pbWF0aW9uczogW3RyZWVDb2xsYXBzZU1vdGlvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiByb2xlPVwidHJlZVwiPlxuICAgICAgPGlucHV0IFtuZ1N0eWxlXT1cIkhJRERFTl9TVFlMRVwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbY2xhc3MuYW50LXNlbGVjdC10cmVlLWxpc3RdPVwibnpTZWxlY3RNb2RlXCIgW2NsYXNzLmFudC10cmVlLWxpc3RdPVwibnpTZWxlY3RNb2RlXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgICAgKm5nSWY9XCJuelZpcnR1YWxIZWlnaHRcIlxuICAgICAgICAgIFtjbGFzcy5hbnQtc2VsZWN0LXRyZWUtbGlzdC1ob2xkZXItaW5uZXJdPVwibnpTZWxlY3RNb2RlXCJcbiAgICAgICAgICBbY2xhc3MuYW50LXRyZWUtbGlzdC1ob2xkZXItaW5uZXJdPVwibnpTZWxlY3RNb2RlXCJcbiAgICAgICAgICBbaXRlbVNpemVdPVwibnpWaXJ0dWFsSXRlbVNpemVcIlxuICAgICAgICAgIFttaW5CdWZmZXJQeF09XCJuelZpcnR1YWxNaW5CdWZmZXJQeFwiXG4gICAgICAgICAgW21heEJ1ZmZlclB4XT1cIm56VmlydHVhbE1heEJ1ZmZlclB4XCJcbiAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIm56VmlydHVhbEhlaWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IG5vZGUgb2YgbnpGbGF0dGVuTm9kZXM7IHRyYWNrQnk6IHRyYWNrQnlGbGF0dGVuTm9kZVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5vZGVUZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogbm9kZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiIW56VmlydHVhbEhlaWdodFwiXG4gICAgICAgICAgW2NsYXNzLmFudC1zZWxlY3QtdHJlZS1saXN0LWhvbGRlci1pbm5lcl09XCJuelNlbGVjdE1vZGVcIlxuICAgICAgICAgIFtjbGFzcy5hbnQtdHJlZS1saXN0LWhvbGRlci1pbm5lcl09XCJuelNlbGVjdE1vZGVcIlxuICAgICAgICAgIFtALmRpc2FibGVkXT1cImJlZm9yZUluaXQgfHwgbm9BbmltYXRpb24/Lm56Tm9BbmltYXRpb25cIlxuICAgICAgICAgIFtuek5vQW5pbWF0aW9uXT1cIm5vQW5pbWF0aW9uPy5uek5vQW5pbWF0aW9uXCJcbiAgICAgICAgICBbQHRyZWVDb2xsYXBzZU1vdGlvbl09XCJuekZsYXR0ZW5Ob2Rlcy5sZW5ndGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbm9kZSBvZiBuekZsYXR0ZW5Ob2RlczsgdHJhY2tCeTogdHJhY2tCeUZsYXR0ZW5Ob2RlXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9kZVRlbXBsYXRlIGxldC10cmVlTm9kZT5cbiAgICAgIDxuei10cmVlLW5vZGVcbiAgICAgICAgW2ljb25dPVwidHJlZU5vZGUuaWNvblwiXG4gICAgICAgIFt0aXRsZV09XCJ0cmVlTm9kZS50aXRsZVwiXG4gICAgICAgIFtpc0xvYWRpbmddPVwidHJlZU5vZGUuaXNMb2FkaW5nXCJcbiAgICAgICAgW2lzU2VsZWN0ZWRdPVwidHJlZU5vZGUuaXNTZWxlY3RlZFwiXG4gICAgICAgIFtpc0Rpc2FibGVkXT1cInRyZWVOb2RlLmlzRGlzYWJsZWRcIlxuICAgICAgICBbaXNNYXRjaGVkXT1cInRyZWVOb2RlLmlzTWF0Y2hlZFwiXG4gICAgICAgIFtpc0V4cGFuZGVkXT1cInRyZWVOb2RlLmlzRXhwYW5kZWRcIlxuICAgICAgICBbaXNMZWFmXT1cInRyZWVOb2RlLmlzTGVhZlwiXG4gICAgICAgIFtpc1N0YXJ0XT1cInRyZWVOb2RlLmlzU3RhcnRcIlxuICAgICAgICBbaXNFbmRdPVwidHJlZU5vZGUuaXNFbmRcIlxuICAgICAgICBbaXNDaGVja2VkXT1cInRyZWVOb2RlLmlzQ2hlY2tlZFwiXG4gICAgICAgIFtpc0hhbGZDaGVja2VkXT1cInRyZWVOb2RlLmlzSGFsZkNoZWNrZWRcIlxuICAgICAgICBbaXNEaXNhYmxlQ2hlY2tib3hdPVwidHJlZU5vZGUuaXNEaXNhYmxlQ2hlY2tib3hcIlxuICAgICAgICBbaXNTZWxlY3RhYmxlXT1cInRyZWVOb2RlLmlzU2VsZWN0YWJsZVwiXG4gICAgICAgIFtjYW5IaWRlXT1cInRyZWVOb2RlLmNhbkhpZGVcIlxuICAgICAgICBbbnpUcmVlTm9kZV09XCJ0cmVlTm9kZVwiXG4gICAgICAgIFtuelNlbGVjdE1vZGVdPVwibnpTZWxlY3RNb2RlXCJcbiAgICAgICAgW256U2hvd0xpbmVdPVwibnpTaG93TGluZVwiXG4gICAgICAgIFtuekV4cGFuZGVkSWNvbl09XCJuekV4cGFuZGVkSWNvblwiXG4gICAgICAgIFtuekRyYWdnYWJsZV09XCJuekRyYWdnYWJsZVwiXG4gICAgICAgIFtuekNoZWNrYWJsZV09XCJuekNoZWNrYWJsZVwiXG4gICAgICAgIFtuelNob3dFeHBhbmRdPVwibnpTaG93RXhwYW5kXCJcbiAgICAgICAgW256QXN5bmNEYXRhXT1cIm56QXN5bmNEYXRhXCJcbiAgICAgICAgW256U2VhcmNoVmFsdWVdPVwibnpTZWFyY2hWYWx1ZVwiXG4gICAgICAgIFtuekhpZGVVbk1hdGNoZWRdPVwibnpIaWRlVW5NYXRjaGVkXCJcbiAgICAgICAgW256QmVmb3JlRHJvcF09XCJuekJlZm9yZURyb3BcIlxuICAgICAgICBbbnpTaG93SWNvbl09XCJuelNob3dJY29uXCJcbiAgICAgICAgW256VHJlZVRlbXBsYXRlXT1cIm56VHJlZVRlbXBsYXRlIHx8IG56VHJlZVRlbXBsYXRlQ2hpbGRcIlxuICAgICAgICAobnpFeHBhbmRDaGFuZ2UpPVwiZXZlbnRUcmlnZ2VyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG56Q2xpY2spPVwiZXZlbnRUcmlnZ2VyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG56RGJsQ2xpY2spPVwiZXZlbnRUcmlnZ2VyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG56Q29udGV4dE1lbnUpPVwiZXZlbnRUcmlnZ2VyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG56Q2hlY2tCb3hDaGFuZ2UpPVwiZXZlbnRUcmlnZ2VyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgKG56T25EcmFnU3RhcnQ