UNPKG

ng-devui

Version:

DevUI components based on Angular

1 lines 50.2 kB
{"version":3,"file":"ng-devui-tree-select.mjs","sources":["../../devui/tree-select/tree-default-icons.ts","../../devui/tree-select/tree-select.component.ts","../../devui/tree-select/tree-select.component.html","../../devui/tree-select/tree-select.module.ts","../../devui/tree-select/ng-devui-tree-select.ts"],"sourcesContent":["const DefaultIcons = {\n iconParentClose:\n `\n <span style=\"width: 14px; display: inline-block; content: '';\">\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 >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M3,2 L13,2 C13.5522847,2 14,2.44771525 14,3 L14,13 C14,13.5522847 13.5522847,14 13,14 L3,14 C2.44771525,14 2,13.5522847 2,\n 13 L2,3 C2,2.44771525 2.44771525,2 3,2 Z M7,7 L4,7 L4,9 L7,9 L7,12 L9,12 L9,9 L12,9 L12,7 L9,7 L9,4 L7,4 L7,7 Z\"\n fill=\"#5E6678\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n </span>\n `,\n iconParentOpen:\n `\n <span style=\"width: 14px; display: inline-block; content: '';\">\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 >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M3,2 L13,2 C13.5522847,2 14,2.44771525 14,3 L14,13 C14,13.5522847 13.5522847,14 13,14 L3,14 C2.44771525,14 2,13.5522847 2,\n 13 L2,3 C2,2.44771525 2.44771525,2 3,2 Z M12,7 L4,7 L4,9 L12,9 L12,7 Z\"\n fill=\"#5E6678\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n </span>\n `,\n iconLeaf: `\n <span style=\"width: 14px; display: inline-block; content: '';\"></span>\n `\n};\n\nexport default {\n ...DefaultIcons\n};\n\nexport {\n DefaultIcons\n};\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { I18nInterface, I18nService } from 'ng-devui/i18n';\nimport { SearchComponent } from 'ng-devui/search';\nimport { ICheckboxInput, ITreeItem, OperableTreeComponent, TreeNode } from 'ng-devui/tree';\nimport { addClassToOrigin, DevConfigService, removeClassFromOrigin, WithConfig } from 'ng-devui/utils';\nimport { trim } from 'lodash-es';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport DefaultIcons from './tree-default-icons';\n\n@Component({\n selector: 'd-tree-select',\n templateUrl: './tree-select.component.html',\n styleUrls: [`./tree-select.component.scss`],\n exportAs: 'select',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TreeSelectComponent),\n multi: true,\n },\n ],\n preserveWhitespaces: false,\n})\nexport class TreeSelectComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy, OnChanges {\n @Input() checkableRelation: 'upward' | 'downward' | 'both' | 'none' = 'both';\n @Input() set allowClear(allowClear) {\n // 废弃\n this._allowClear = allowClear;\n }\n\n get allowClear() {\n return !this.disabled && !this.multiple && !this.enableLabelization && this.allowUnselect && this._allowClear && !!this.selectedValue;\n }\n\n @Input() set treeData(treeData) {\n this._sourceTree = treeData;\n this.refreshTree(treeData);\n }\n\n get treeData() {\n return this._treeData;\n }\n\n get isOpen() {\n return this._isOpen;\n }\n\n set isOpen(value) {\n if (this._isOpen !== value) {\n this._isOpen = value;\n if (!value) {\n removeClassFromOrigin(this.selectHost);\n this.onTouch();\n } else {\n addClassToOrigin(this.selectHost);\n }\n this.changeDetectorRef.detectChanges();\n }\n }\n\n set value(val) {\n this._value = val;\n if (val && Array.isArray(val) && val.length) {\n this.valueType = 'array';\n this.valueLength = val.length;\n } else if (val && Object.keys(val).length) {\n this.valueType = 'object';\n } else {\n this.valueType = undefined;\n }\n }\n\n get value() {\n return this._value;\n }\n\n constructor(\n protected renderer: Renderer2,\n protected changeDetectorRef: ChangeDetectorRef,\n private i18n: I18nService,\n private devConfigService: DevConfigService\n ) {}\n @Input() @WithConfig() showAnimation = true;\n @Input() @WithConfig() styleType = 'default';\n @Input() @WithConfig() showGlowStyle = true;\n @HostBinding('class.devui-glow-style') get hasGlowStyle() {\n return this.showGlowStyle;\n }\n @Input() placeholder = '';\n @Input() searchPlaceholder = '';\n @Input() disabled = false;\n @Input() expandTree = false;\n @Input() multiple = false;\n @Input() treeNodeIdKey = 'id';\n @Input() treeNodeChildrenKey = 'children';\n @Input() treeNodeTitleKey = 'title';\n @Input() disabledKey = 'disabled';\n @Input() leafOnly = false;\n @Input() delimiter = ', '; // 废弃\n @Input() iconParentOpen: string = DefaultIcons.iconParentOpen;\n @Input() iconParentClose: string = DefaultIcons.iconParentClose;\n @Input() iconLeaf: string = DefaultIcons.iconLeaf;\n @Input() closeOnNodeSelected = true;\n @Input() width: string = null;\n @Input() searchable = false;\n @Input() appendTo = 'body';\n @Input() allowUnselect = true;\n @Input() enableLabelization = true;\n @Input() iconTemplatePosition: string;\n @Input() iconTemplateInput: TemplateRef<any>;\n @Input() customItemTemplate: TemplateRef<any>;\n @Input() customNoDataTemplate: TemplateRef<any>;\n @Input() customViewTemplate: TemplateRef<any>;\n @Input() customSearchFn: (treeData: TreeNode[], keyword: string) => boolean | TreeNode[];\n @Input() customViewDirection: 'top' | 'bottom' | 'right' | 'left' = 'bottom';\n @ViewChild('selectHost', { static: true }) selectHost: ElementRef;\n @ViewChild('optionsContainer', { static: true }) optionsContainer: ElementRef;\n @ViewChild('tree', { static: true }) tree: OperableTreeComponent;\n @ViewChild('searchInput') searchInput: SearchComponent;\n @ViewChild('searchInputModel') searchInputModel;\n @ViewChild('popper', { static: true }) popper;\n @ContentChild('iconTemplate') iconTemplatePassThrough;\n // TODO: need to change to nodeToggledEvent\n @Output() nodeToggleEvent = new EventEmitter<any>();\n @Output() valueChanged = new EventEmitter<any>();\n @Output() toggleChange = new EventEmitter<boolean>();\n @Input() virtualScroll = false;\n @Input() virtualScrollItemSize = 30;\n @Input() virtualScrollMinBufferPx = 300;\n @Input() virtualScrollMaxBufferPx = 600;\n @Input() virtualScrollHeightPx = 300;\n checkboxInput: ICheckboxInput;\n _treeData: Array<ITreeItem> = [];\n currentActiveNode: ITreeItem;\n searchString: string = null;\n i18nCommonText: I18nInterface['common'];\n i18nSubscription: Subscription;\n noRecord = false;\n valueType: 'array' | 'object' | undefined;\n displayValue: string | Array<string>;\n valueLength: number;\n userAgent: string;\n destroy$ = new Subject<void>();\n validVirtualScrollHeight: number;\n private _value: object | Array<any> | any;\n private _isOpen = false;\n private _sourceTree = [];\n private _allowClear: boolean;\n private timer: any;\n @Input() readyEvent = (treeSelect: TreeSelectComponent) => {};\n\n private onChange = (_: any) => null;\n private onTouch = () => null;\n\n ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n this.readyEvent(this);\n if (this.searchable) {\n this.registerSearchListener();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n ngOnDestroy(): void {\n if (this.i18nSubscription) {\n this.i18nSubscription.unsubscribe();\n }\n this.isOpen = false; // 销毁Popper\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n ngOnInit(): void {\n this.setI18nText();\n this.queryMedia();\n }\n\n afterTreeInit() {\n if (this.virtualScroll) {\n this.tree.treeFactory.flattenNodes.pipe(takeUntil(this.destroy$)).subscribe((data) => {\n const treeNodeOnDisplay = data.filter((node) => !(node.data.isHide || node.data.hideInVirtualScroll));\n this.validVirtualScrollHeight = Math.min(treeNodeOnDisplay.length * this.virtualScrollItemSize, this.virtualScrollHeightPx);\n });\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: any): void {\n this.value = this.multiple ? Object.assign([], value) : value;\n this.refreshTree(this.treeData);\n // Trigger visualization after tree data is fulfilled.\n this.changeDetectorRef.detectChanges();\n this.visualizeSelectedItems();\n }\n\n toggle() {\n if (this.disabled) {\n return;\n }\n if (this.timer) {\n clearTimeout(this.timer);\n }\n const applyNow = !this.timer;\n this.timer = setTimeout(() => {\n this.timer = null;\n }, 200);\n if (applyNow) {\n this.isOpen = !this.isOpen;\n }\n }\n\n private setI18nText() {\n this.i18nCommonText = this.i18n.getI18nText().common;\n this.i18nSubscription = this.i18n.langChange().subscribe((data) => {\n this.i18nCommonText = data.common;\n });\n }\n\n private queryMedia() {\n if (typeof window === 'undefined') {\n return;\n }\n const userAgent = window.navigator.userAgent;\n if (userAgent.indexOf('Edge') > -1) {\n this.userAgent = 'edge';\n } else if (userAgent.indexOf('MSIE') > -1 || userAgent.indexOf('Trident/') > -1) {\n this.userAgent = 'ie';\n } else if (userAgent.indexOf('Firefox') > -1) {\n this.userAgent = 'firefox';\n } else {\n this.userAgent = 'chrome';\n }\n }\n\n private prepareTree(treeNode: any, expandTree = false) {\n if (Array.isArray(treeNode)) {\n return treeNode.map((node) => this.prepareTree(node, expandTree));\n } else if (treeNode) {\n let parentCheckedByChildren = false;\n if (Object.prototype.hasOwnProperty.call(treeNode, this.treeNodeChildrenKey)) {\n treeNode.open = expandTree ? true : treeNode.open;\n treeNode[this.treeNodeChildrenKey] = this.prepareTree(treeNode[this.treeNodeChildrenKey], expandTree);\n if (this.multiple) {\n [parentCheckedByChildren, treeNode.halfChecked] = this.resolveParentNode(treeNode[this.treeNodeChildrenKey]);\n }\n }\n if (Object.prototype.hasOwnProperty.call(treeNode, this.treeNodeIdKey)) {\n const nodeId = treeNode[this.treeNodeIdKey];\n if (this.multiple) {\n const selectedByValue = this.nodeSelected(nodeId);\n treeNode.isActive = false;\n treeNode.isChecked = selectedByValue || parentCheckedByChildren;\n if (!this.leafOnly && !selectedByValue && parentCheckedByChildren) {\n const insertObject = {};\n insertObject[this.treeNodeIdKey] = treeNode[this.treeNodeIdKey];\n insertObject[this.treeNodeTitleKey] = treeNode[this.treeNodeTitleKey];\n (this.value as any[]).push(insertObject);\n // 赋值触发setValue设置valueType和valueLength\n /* eslint-disable-next-line no-self-assign*/\n this.value = this.value;\n }\n } else {\n treeNode.isChecked = false;\n treeNode.isActive = this.nodeSelected(nodeId);\n if (treeNode.isActive) {\n this.currentActiveNode = treeNode;\n }\n }\n }\n\n return treeNode;\n }\n }\n\n private nodeSelected(treeNodeId: any) {\n if (!this.value) {\n return false;\n }\n\n if (this.multiple && Array.isArray(this.value)) {\n // polyfill Array.prototype.includes()\n return this.value.map((_) => _[this.treeNodeIdKey]).indexOf(treeNodeId) > -1;\n } else {\n return this.value[this.treeNodeIdKey] && treeNodeId === this.value[this.treeNodeIdKey];\n }\n }\n\n private resolveParentNode(treeNodes: ITreeItem[]): boolean[] {\n const enableParentNodeCheckByChild = this.checkableRelation === 'both' || this.checkableRelation === 'upward';\n const childrenFullCheckedCount = enableParentNodeCheckByChild && treeNodes.filter((_) => _.isChecked).length;\n const childrenCheckedCount = enableParentNodeCheckByChild && treeNodes.filter((_) => _.isChecked || _.halfChecked).length;\n return [\n childrenFullCheckedCount > 0 && treeNodes.length === childrenFullCheckedCount,\n childrenCheckedCount > 0 && treeNodes.length > childrenFullCheckedCount,\n ];\n }\n\n private refreshTree(treeData: Array<any>) {\n this._treeData = Object.assign([], this.prepareTree(treeData, this.expandTree));\n }\n\n onOperableNodeChecked(selectedNodes: ITreeItem[]) {\n const selectedValueExtractor = (_selectedNodes) => {\n return this.leafOnly\n ? _selectedNodes.filter((_) => !_.data.isParent).map((_) => _.data.originItem)\n : _selectedNodes.map((_) => _.data.originItem);\n };\n if (this.multiple) {\n this.value = selectedValueExtractor(selectedNodes);\n this.emitEvents();\n }\n }\n\n onOperableNodeSelected(selectedNode: TreeNode | TreeNode[]) {\n const node = selectedNode as TreeNode;\n if (!this.multiple) {\n if (this.leafOnly && node.data.isParent) {\n return;\n }\n if (node.data.isActive) {\n this.currentActiveNode = node.data.originItem;\n this.value = node.data.originItem;\n // Configurable close on node selected\n if (this.closeOnNodeSelected) {\n this.isOpen = false;\n }\n } else {\n if (this.allowUnselect) {\n this.currentActiveNode = null;\n this.value = null;\n } else {\n node.data.isActive = true;\n if (this.closeOnNodeSelected) {\n this.isOpen = false;\n }\n }\n }\n\n this.emitEvents();\n }\n }\n\n emitEvents() {\n this.visualizeSelectedItems();\n this.onChange(this.value);\n this.valueChanged.emit(this.selectedValue());\n }\n\n visualizeSelectedItems() {\n if (this.multiple) {\n this.visualizeMultipleValue();\n } else {\n this.visualizeSingleValue();\n }\n }\n\n visualizeMultipleValue() {\n if (this.tree && this.tree.treeFactory) {\n const selectedNodes = this.selectedValue() as any[];\n const valueText = selectedNodes.map((_) => _[this.treeNodeTitleKey]);\n this.displayValue = valueText;\n } else {\n this.emptyInput();\n }\n }\n\n visualizeSingleValue() {\n if (this.value && this.value[this.treeNodeTitleKey]) {\n const valueText = this.value[this.treeNodeTitleKey];\n this.displayValue = valueText;\n } else {\n this.emptyInput();\n }\n }\n\n emptyInput() {\n this.displayValue = '';\n }\n\n selectedValue() {\n return this.value;\n }\n\n responsePopperChange(popperState: any) {\n if (popperState && this.searchable) {\n this.focusSearchInput();\n }\n if (popperState && this.virtualScroll && this.tree) {\n this.tree.operableTree.viewPort.checkViewportSize();\n }\n this.toggleChange.emit(popperState);\n }\n\n private focusSearchInput() {\n if (this.searchInput.filterInputElement.nativeElement) {\n this.searchInput.filterInputElement.nativeElement.focus();\n }\n }\n\n search(searchString) {\n const searchRes = this.customSearchFn ? this.customSearchFnHandle(searchString) : this.tree.treeFactory.searchTree(searchString, true);\n if (typeof searchRes === 'boolean') {\n this.noRecord = searchRes;\n } else if (Array.isArray(searchRes)) {\n this.noRecord = searchRes.every((res) => !res);\n }\n this.tree.treeFactory.getFlattenNodes();\n this.popper.update();\n }\n\n customSearchFnHandle(searchString) {\n const keyword = trim(searchString).toLowerCase();\n this.tree.treeFactory.resetSearchResults();\n return this.customSearchFn(this.tree.treeFactory.treeRoot, keyword);\n }\n\n private registerSearchListener() {\n this.searchInputModel.valueChanges.pipe(debounceTime(500), distinctUntilChanged()).subscribe((searchString) => {\n this.search(searchString);\n });\n }\n\n clearValue(event, item, index?) {\n event.preventDefault();\n event.stopPropagation();\n if (this.multiple) {\n this.tree.treeFactory.checkNodesById(item[this.treeNodeIdKey], false, this.checkableRelation);\n const curValue = this.tree.treeFactory.getCheckedNodes();\n this.value = this.leafOnly\n ? curValue.filter((node) => !node.data.isParent).map((node) => node.data.originItem)\n : curValue.map((node) => node.data.originItem);\n } else {\n this.clearAll();\n }\n this.emitEvents();\n }\n\n clearAll() {\n this.tree.treeFactory.deactivateAllNodes();\n this.currentActiveNode = null;\n this.value = null;\n }\n\n onNodeToggled($event) {\n if (this.popper) {\n this.popper.update();\n }\n this.nodeToggleEvent.emit($event);\n }\n}\n","<div class=\"devui-tree-select {{ userAgent }}\">\n <d-popper-component\n [poppoverAppendDirection]=\"customViewDirection\"\n [(open)]=\"isOpen\"\n [fluidPopper]=\"!width\"\n (openChange)=\"responsePopperChange($event)\"\n [appendTo]=\"appendTo\"\n [showAnimation]=\"showAnimation\"\n #popper\n >\n <div\n #selectHost\n class=\"devui-select-input devui-form-control devui-tree-select-input devui-dropdown-origin\"\n [class.devui-gray-style]=\"styleType === 'gray'\"\n (click)=\"toggle()\"\n autocomplete=\"off\"\n [ngClass]=\"{ disabled: disabled, 'devui-select-no-label': !enableLabelization }\"\n readonly\n popper-activator\n >\n <span class=\"devui-tree-select-placeholder\">{{ !valueType ? placeholder : '' }}</span>\n <div class=\"devui-select-item\" *ngIf=\"valueType === 'object' && enableLabelization && !customItemTemplate\">\n <span class=\"devui-select-item-content\">{{ value[treeNodeTitleKey] }}</span>\n <span *ngIf=\"!disabled\" class=\"devui-select-item-clear-icon\" (click)=\"clearValue($event, value)\">\n <svg\n width=\"6px\"\n height=\"6px\"\n viewBox=\"0 0 10 10\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(-3.000000, -3.000000)\" fill-rule=\"nonzero\">\n <path\n d=\"M11.6426,3.19816936 C11.9239974,2.91574512 12.4131626,2.93784891 12.7352108,3.24751057 C13.0571998,3.5572302 13.0901298,4.03723416 12.8087324,4.31965839 L9.14064666,7.99900183 L12.8087324,11.6803416 C13.0645482,11.9370909 13.0605893,12.3571292 12.8158402,12.6640749 L12.7352108,12.7524894 C12.4131626,13.0621511 11.9239974,13.0842548 11.6426,12.8018306 L8,9.14489021 L4.35740003,12.8018306 C4.10158422,13.05858 3.6740594,13.0636532 3.35648225,12.8298003 L3.26478919,12.7524894 C2.94280021,12.4427698 2.90987023,11.9627658 3.19126762,11.6803416 L6.8583349,7.99900183 L3.19126762,4.31965839 C2.93545181,4.06290908 2.93941068,3.64287076 3.18415975,3.3359251 L3.26478919,3.24751057 C3.58683735,2.93784891 4.07600264,2.91574512 4.35740003,3.19816936 L8,6.85411161 L11.6426,3.19816936 Z\"\n ></path>\n </g>\n </g>\n </svg>\n </span>\n </div>\n <div class=\"devui-select-item devui-no-label-item\" *ngIf=\"valueType === 'object' && !enableLabelization && !customItemTemplate\">\n {{ value[treeNodeTitleKey] }}\n </div>\n <div class=\"devui-select-item devui-no-label-item\" *ngIf=\"valueType === 'object' && customItemTemplate\">\n <ng-template [ngTemplateOutlet]=\"customItemTemplate\" [ngTemplateOutletContext]=\"{ item: value }\"></ng-template>\n </div>\n <ul class=\"devui-select-list\" *ngIf=\"valueType === 'array' && enableLabelization && !customItemTemplate\">\n <li class=\"devui-select-item\" *ngFor=\"let item of value; let i = index\">\n <span class=\"devui-select-item-content\">{{ item[treeNodeTitleKey] }}</span>\n <span *ngIf=\"!disabled\" class=\"devui-select-item-clear-icon\" (click)=\"clearValue($event, item, i)\">\n <svg\n width=\"6px\"\n height=\"6px\"\n viewBox=\"0 0 10 10\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(-3.000000, -3.000000)\" fill-rule=\"nonzero\">\n <path\n d=\"M11.6426,3.19816936 C11.9239974,2.91574512 12.4131626,2.93784891 12.7352108,3.24751057 C13.0571998,3.5572302 13.0901298,4.03723416 12.8087324,4.31965839 L9.14064666,7.99900183 L12.8087324,11.6803416 C13.0645482,11.9370909 13.0605893,12.3571292 12.8158402,12.6640749 L12.7352108,12.7524894 C12.4131626,13.0621511 11.9239974,13.0842548 11.6426,12.8018306 L8,9.14489021 L4.35740003,12.8018306 C4.10158422,13.05858 3.6740594,13.0636532 3.35648225,12.8298003 L3.26478919,12.7524894 C2.94280021,12.4427698 2.90987023,11.9627658 3.19126762,11.6803416 L6.8583349,7.99900183 L3.19126762,4.31965839 C2.93545181,4.06290908 2.93941068,3.64287076 3.18415975,3.3359251 L3.26478919,3.24751057 C3.58683735,2.93784891 4.07600264,2.91574512 4.35740003,3.19816936 L8,6.85411161 L11.6426,3.19816936 Z\"\n ></path>\n </g>\n </g>\n </svg>\n </span>\n </li>\n </ul>\n <ul class=\"devui-select-list\" *ngIf=\"valueType === 'array' && !enableLabelization && !customItemTemplate\">\n <li class=\"devui-select-item devui-no-label-item\" *ngFor=\"let item of value; let i = index\">\n {{ item[treeNodeTitleKey] }}\n <span *ngIf=\"valueLength && i < valueLength - 1\">, </span>\n </li>\n </ul>\n <ul class=\"devui-select-list\" *ngIf=\"valueType === 'array' && customItemTemplate\">\n <li class=\"devui-select-item devui-no-label-item\" *ngFor=\"let item of value\">\n <ng-template [ngTemplateOutlet]=\"customItemTemplate\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-template>\n </li>\n </ul>\n </div>\n <div popper-prepend class=\"devui-tree-select devui-search-container devui-form-group devui-has-feedback\" *ngIf=\"searchable\">\n <d-search #searchInputModel=\"ngModel\" #searchInput [(ngModel)]=\"searchString\" [placeholder]=\"searchPlaceholder\"></d-search>\n </div>\n <div\n class=\"devui-tree-select devui-options-container\"\n #optionsContainer\n popper-container\n [ngStyle]=\"{ width: width, maxHeight: validVirtualScrollHeight === undefined ? '300px' : validVirtualScrollHeight + 'px' }\"\n >\n <d-operable-tree\n #tree\n [style.display]=\"treeData && treeData.length > 0 && !noRecord ? 'block' : 'none'\"\n [tree]=\"treeData\"\n [treeNodeIdKey]=\"treeNodeIdKey\"\n [treeNodeChildrenKey]=\"treeNodeChildrenKey\"\n [checkboxDisabledKey]=\"disabledKey\"\n [checkboxInput]=\"checkboxInput\"\n [checkable]=\"multiple\"\n [checkableRelation]=\"checkableRelation\"\n [canActivateNode]=\"!multiple\"\n [canActivateParentNode]=\"!leafOnly\"\n (nodeChecked)=\"onOperableNodeChecked($event)\"\n (nodeSelected)=\"onOperableNodeSelected($event)\"\n (nodeToggled)=\"onNodeToggled($event)\"\n [iconParentOpen]=\"iconParentOpen\"\n [iconParentClose]=\"iconParentClose\"\n [iconLeaf]=\"iconLeaf\"\n [treeNodeTitleKey]=\"treeNodeTitleKey\"\n [iconTemplatePosition]=\"iconTemplatePosition\"\n [virtualScroll]=\"virtualScroll\"\n [itemSize]=\"virtualScrollItemSize\"\n [minBufferPx]=\"virtualScrollMinBufferPx\"\n [maxBufferPx]=\"virtualScrollMaxBufferPx\"\n [virtualScrollHeight]=\"validVirtualScrollHeight + 'px'\"\n (afterTreeInit)=\"afterTreeInit()\"\n class=\"devui-tree\"\n >\n <ng-template *ngIf=\"iconTemplateInput || iconTemplatePassThrough\" #iconTemplate let-node=\"node\">\n <ng-template [ngTemplateOutlet]=\"iconTemplateInput || iconTemplatePassThrough\" [ngTemplateOutletContext]=\"{ node: node }\">\n </ng-template>\n </ng-template>\n </d-operable-tree>\n <ng-template\n *ngIf=\"!treeData || treeData.length <= 0 || noRecord\"\n [ngTemplateOutlet]=\"customNoDataTemplate || defaultNoResult\"\n [ngTemplateOutletContext]=\"{ $implicit: this, isSearchResult: noRecord }\"\n ></ng-template>\n </div>\n\n <!-- 自定义区域 -->\n <div popper-append *ngIf=\"customViewTemplate\">\n <ng-template [ngTemplateOutlet]=\"customViewTemplate\" [ngTemplateOutletContext]=\"{ $implicit: this }\"></ng-template>\n </div>\n </d-popper-component>\n <div\n [ngClass]=\"{ disabled: disabled, clear: allowClear }\"\n (click)=\"$event.stopPropagation(); $event.preventDefault(); clearAll(); emitEvents()\"\n ></div>\n <span\n class=\"devui-select-chevron-icon\"\n [class.open]=\"isOpen\"\n [ngClass]=\"{ disabled: disabled, 'allow-clear': allowClear, 'devui-select-chevron-icon-animation': showAnimation }\"\n >\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 >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M3.64644661,5.64644661 C3.82001296,5.47288026 4.08943736,5.45359511 4.2843055,5.58859116 L4.35355339,5.64644661 L8,9.293 L11.6464466,5.64644661 C11.820013,5.47288026 12.0894374,5.45359511 12.2843055,5.58859116 L12.3535534,5.64644661 C12.5271197,5.82001296 12.5464049,6.08943736 12.4114088,6.2843055 L12.3535534,6.35355339 L8.35355339,10.3535534 C8.17998704,10.5271197 7.91056264,10.5464049 7.7156945,10.4114088 L7.64644661,10.3535534 L3.64644661,6.35355339 C3.45118446,6.15829124 3.45118446,5.84170876 3.64644661,5.64644661 Z\"\n ></path>\n </g>\n </svg>\n </span>\n</div>\n\n<ng-template #defaultNoResult>\n <div class=\"devui-no-data-tip\">\n {{ noRecord ? i18nCommonText?.noRecordsFound : i18nCommonText?.noData }}\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckBoxModule } from 'ng-devui/checkbox';\nimport { LoadingModule } from 'ng-devui/loading';\nimport { SearchModule } from 'ng-devui/search';\nimport { TreeModule } from 'ng-devui/tree';\nimport { PopperModule } from 'ng-devui/utils';\nimport { TreeSelectComponent } from './tree-select.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, CheckBoxModule, LoadingModule, TreeModule, PopperModule, SearchModule],\n exports: [TreeSelectComponent],\n declarations: [TreeSelectComponent],\n providers: [],\n})\nexport class TreeSelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DefaultIcons"],"mappings":"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