UNPKG

ng-zorro-antd

Version:

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

1 lines 51.7 kB
{"version":3,"file":"ng-zorro-antd-tree-select.mjs","sources":["../../components/tree-select/tree-select.service.ts","../../components/tree-select/tree-select.component.ts","../../components/tree-select/tree-select.module.ts","../../components/tree-select/public-api.ts","../../components/tree-select/ng-zorro-antd-tree-select.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { NzTreeBaseService } from 'ng-zorro-antd/core/tree';\n\n@Injectable()\nexport class NzTreeSelectService extends NzTreeBaseService {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { BACKSPACE, ESCAPE, TAB } from '@angular/cdk/keycodes';\nimport {\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ConnectedOverlayPositionChange,\n ConnectionPositionPair\n} from '@angular/cdk/overlay';\nimport { _getEventTarget } from '@angular/cdk/platform';\nimport { NgClass, NgStyle, SlicePipe } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n booleanAttribute,\n forwardRef,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject, combineLatest, merge, of as observableOf } from 'rxjs';\nimport { distinctUntilChanged, filter, map, startWith, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { slideMotion } from 'ng-zorro-antd/core/animation';\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzFormNoStatusService, NzFormPatchModule, NzFormStatusService } from 'ng-zorro-antd/core/form';\nimport { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';\nimport { NzOverlayModule, POSITION_MAP } from 'ng-zorro-antd/core/overlay';\nimport { reqAnimFrame } from 'ng-zorro-antd/core/polyfill';\nimport {\n NzFormatEmitEvent,\n NzTreeBase,\n NzTreeHigherOrderServiceToken,\n NzTreeNode,\n NzTreeNodeOptions\n} from 'ng-zorro-antd/core/tree';\nimport {\n NgClassInterface,\n NgStyleInterface,\n NzSizeLDSType,\n NzStatus,\n NzValidateStatus,\n OnChangeType,\n OnTouchedType\n} from 'ng-zorro-antd/core/types';\nimport { getStatusClassNames, isNotNil } from 'ng-zorro-antd/core/util';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzSelectModule, NzSelectSearchComponent } from 'ng-zorro-antd/select';\nimport { NzTreeComponent, NzTreeModule } from 'ng-zorro-antd/tree';\n\nimport { NzTreeSelectService } from './tree-select.service';\n\nexport type NzPlacementType = 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight' | '';\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'treeSelect';\nconst TREE_SELECT_DEFAULT_CLASS = 'ant-select-dropdown ant-select-tree-dropdown';\nconst listOfPositions = [\n POSITION_MAP.bottomLeft,\n POSITION_MAP.bottomRight,\n POSITION_MAP.topRight,\n POSITION_MAP.topLeft\n];\n\n@Component({\n selector: 'nz-tree-select',\n exportAs: 'nzTreeSelect',\n animations: [slideMotion],\n template: `\n <ng-template\n cdkConnectedOverlay\n nzConnectedOverlay\n [cdkConnectedOverlayHasBackdrop]=\"nzBackdrop\"\n [cdkConnectedOverlayOrigin]=\"cdkOverlayOrigin\"\n [cdkConnectedOverlayPositions]=\"nzPlacement ? positions : []\"\n [cdkConnectedOverlayOpen]=\"nzOpen\"\n [cdkConnectedOverlayTransformOriginOn]=\"'.ant-select-tree-dropdown'\"\n [cdkConnectedOverlayMinWidth]=\"$any(nzDropdownMatchSelectWidth ? null : triggerWidth)\"\n [cdkConnectedOverlayWidth]=\"$any(nzDropdownMatchSelectWidth ? triggerWidth : null)\"\n (overlayOutsideClick)=\"onClickOutside($event)\"\n (detach)=\"closeDropDown()\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div\n [@slideMotion]=\"'enter'\"\n [ngClass]=\"dropdownClassName\"\n [@.disabled]=\"!!noAnimation?.nzNoAnimation\"\n [nzNoAnimation]=\"noAnimation?.nzNoAnimation\"\n [class.ant-select-dropdown-placement-bottomLeft]=\"dropDownPosition === 'bottom'\"\n [class.ant-select-dropdown-placement-topLeft]=\"dropDownPosition === 'top'\"\n [class.ant-tree-select-dropdown-rtl]=\"dir === 'rtl'\"\n [dir]=\"dir\"\n [ngStyle]=\"nzDropdownStyle\"\n >\n <nz-tree\n #treeRef\n [hidden]=\"isNotFound\"\n nzNoAnimation\n nzSelectMode\n nzBlockNode\n [nzData]=\"nzNodes\"\n [nzMultiple]=\"nzMultiple\"\n [nzSearchValue]=\"inputValue\"\n [nzHideUnMatched]=\"nzHideUnMatched\"\n [nzShowIcon]=\"nzShowIcon\"\n [nzCheckable]=\"nzCheckable\"\n [nzAsyncData]=\"nzAsyncData\"\n [nzShowExpand]=\"nzShowExpand\"\n [nzShowLine]=\"nzShowLine\"\n [nzExpandedIcon]=\"nzExpandedIcon\"\n [nzExpandAll]=\"nzDefaultExpandAll\"\n [nzExpandedKeys]=\"expandedKeys\"\n [nzCheckedKeys]=\"nzCheckable ? value : []\"\n [nzSelectedKeys]=\"!nzCheckable ? value : []\"\n [nzTreeTemplate]=\"treeTemplate\"\n [nzCheckStrictly]=\"nzCheckStrictly\"\n [nzVirtualItemSize]=\"nzVirtualItemSize\"\n [nzVirtualMaxBufferPx]=\"nzVirtualMaxBufferPx\"\n [nzVirtualMinBufferPx]=\"nzVirtualMinBufferPx\"\n [nzVirtualHeight]=\"nzVirtualHeight\"\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\n (nzClick)=\"nzTreeClick.emit($event)\"\n (nzCheckedKeysChange)=\"updateSelectedNodes()\"\n (nzSelectedKeysChange)=\"updateSelectedNodes()\"\n (nzCheckBoxChange)=\"nzTreeCheckBoxChange.emit($event)\"\n (nzSearchValueChange)=\"setSearchValues($event)\"\n ></nz-tree>\n @if (nzNodes.length === 0 || isNotFound) {\n <span class=\"ant-select-not-found\">\n <nz-embed-empty [nzComponentName]=\"'tree-select'\" [specificContent]=\"nzNotFoundContent\"></nz-embed-empty>\n </span>\n }\n </div>\n </ng-template>\n\n <div cdkOverlayOrigin class=\"ant-select-selector\">\n @if (isMultiple) {\n @for (node of selectedNodes | slice: 0 : nzMaxTagCount; track node.key) {\n <nz-select-item\n [deletable]=\"true\"\n [disabled]=\"node.isDisabled || nzDisabled\"\n [label]=\"nzDisplayWith(node)\"\n (delete)=\"removeSelected(node, true)\"\n ></nz-select-item>\n }\n @if (selectedNodes.length > nzMaxTagCount) {\n <nz-select-item\n [contentTemplateOutlet]=\"nzMaxTagPlaceholder\"\n [contentTemplateOutletContext]=\"selectedNodes | slice: nzMaxTagCount\"\n [deletable]=\"false\"\n [disabled]=\"false\"\n [label]=\"'+ ' + (selectedNodes.length - nzMaxTagCount) + ' ...'\"\n ></nz-select-item>\n }\n }\n\n <nz-select-search\n [nzId]=\"nzId\"\n [showInput]=\"nzShowSearch\"\n (keydown)=\"onKeyDownInput($event)\"\n (isComposingChange)=\"isComposingChange($event)\"\n (valueChange)=\"setInputValue($event)\"\n [value]=\"inputValue\"\n [mirrorSync]=\"isMultiple\"\n [disabled]=\"nzDisabled\"\n [focusTrigger]=\"nzOpen\"\n ></nz-select-search>\n\n @if (nzPlaceHolder && selectedNodes.length === 0) {\n <nz-select-placeholder\n [placeholder]=\"nzPlaceHolder\"\n [style.display]=\"placeHolderDisplay\"\n ></nz-select-placeholder>\n }\n\n @if (!isMultiple && selectedNodes.length === 1 && !isComposing && inputValue === '') {\n <nz-select-item\n [deletable]=\"false\"\n [disabled]=\"false\"\n [label]=\"nzDisplayWith(selectedNodes[0])\"\n ></nz-select-item>\n }\n\n @if (!isMultiple) {\n <nz-select-arrow></nz-select-arrow>\n }\n @if (!isMultiple || (hasFeedback && !!status)) {\n <nz-select-arrow [showArrow]=\"!isMultiple\" [feedbackIcon]=\"feedbackIconTpl\">\n <ng-template #feedbackIconTpl>\n @if (hasFeedback && !!status) {\n <nz-form-item-feedback-icon [status]=\"status\"></nz-form-item-feedback-icon>\n }\n </ng-template>\n </nz-select-arrow>\n }\n @if (nzAllowClear && !nzDisabled && selectedNodes.length) {\n <nz-select-clear (clear)=\"onClearSelection()\"></nz-select-clear>\n }\n </div>\n `,\n providers: [\n NzTreeSelectService,\n {\n provide: NzTreeHigherOrderServiceToken,\n useExisting: NzTreeSelectService\n },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NzTreeSelectComponent),\n multi: true\n }\n ],\n host: {\n class: 'ant-select',\n '[class.ant-select-in-form-item]': '!!nzFormStatusService',\n '[class.ant-select-lg]': 'nzSize===\"large\"',\n '[class.ant-select-rtl]': 'dir===\"rtl\"',\n '[class.ant-select-sm]': 'nzSize===\"small\"',\n '[class.ant-select-disabled]': 'nzDisabled',\n '[class.ant-select-single]': '!isMultiple',\n '[class.ant-select-show-arrow]': '!isMultiple',\n '[class.ant-select-show-search]': '!isMultiple',\n '[class.ant-select-multiple]': 'isMultiple',\n '[class.ant-select-allow-clear]': 'nzAllowClear',\n '[class.ant-select-open]': 'nzOpen',\n '[class.ant-select-focused]': 'nzOpen || focused',\n '(click)': 'trigger()',\n '(keydown)': 'onKeydown($event)'\n },\n imports: [\n NzOverlayModule,\n CdkConnectedOverlay,\n NgClass,\n NzNoAnimationDirective,\n NgStyle,\n NzTreeModule,\n NzEmptyModule,\n CdkOverlayOrigin,\n SlicePipe,\n NzSelectModule,\n NzFormPatchModule\n ],\n standalone: true\n})\nexport class NzTreeSelectComponent extends NzTreeBase implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n @Input() nzId: string | null = null;\n @Input({ transform: booleanAttribute }) nzAllowClear: boolean = true;\n @Input({ transform: booleanAttribute }) nzShowExpand: boolean = true;\n @Input({ transform: booleanAttribute }) nzShowLine: boolean = false;\n @Input({ transform: booleanAttribute }) @WithConfig() nzDropdownMatchSelectWidth: boolean = true;\n @Input({ transform: booleanAttribute }) nzCheckable: boolean = false;\n @Input({ transform: booleanAttribute }) @WithConfig() nzHideUnMatched: boolean = false;\n @Input({ transform: booleanAttribute }) @WithConfig() nzShowIcon: boolean = false;\n @Input({ transform: booleanAttribute }) nzShowSearch: boolean = false;\n @Input({ transform: booleanAttribute }) nzDisabled = false;\n @Input({ transform: booleanAttribute }) nzAsyncData = false;\n @Input({ transform: booleanAttribute }) nzMultiple = false;\n @Input({ transform: booleanAttribute }) nzDefaultExpandAll = false;\n @Input({ transform: booleanAttribute }) nzCheckStrictly = false;\n @Input() nzVirtualItemSize = 28;\n @Input() nzVirtualMaxBufferPx = 500;\n @Input() nzVirtualMinBufferPx = 28;\n @Input() nzVirtualHeight: string | null = null;\n @Input() nzExpandedIcon?: TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>;\n @Input() nzNotFoundContent?: string | TemplateRef<void>;\n @Input() nzNodes: NzTreeNodeOptions[] | NzTreeNode[] = [];\n @Input() nzOpen = false;\n @Input() @WithConfig() nzSize: NzSizeLDSType = 'default';\n @Input() nzPlaceHolder = '';\n @Input() nzDropdownStyle: NgStyleInterface | null = null;\n @Input() nzDropdownClassName?: string;\n @Input() @WithConfig() nzBackdrop = false;\n @Input() nzStatus: NzStatus = '';\n @Input() nzPlacement: NzPlacementType = '';\n @Input()\n set nzExpandedKeys(value: string[]) {\n this.expandedKeys = value;\n }\n get nzExpandedKeys(): string[] {\n return this.expandedKeys;\n }\n\n @Input() nzDisplayWith: (node: NzTreeNode) => string | undefined = (node: NzTreeNode) => node.title;\n @Input({ transform: numberAttribute }) nzMaxTagCount!: number;\n @Input() nzMaxTagPlaceholder: TemplateRef<{ $implicit: NzTreeNode[] }> | null = null;\n @Output() readonly nzOpenChange = new EventEmitter<boolean>();\n @Output() readonly nzCleared = new EventEmitter<void>();\n @Output() readonly nzRemoved = new EventEmitter<NzTreeNode>();\n @Output() readonly nzExpandChange = new EventEmitter<NzFormatEmitEvent>();\n @Output() readonly nzTreeClick = new EventEmitter<NzFormatEmitEvent>();\n @Output() readonly nzTreeCheckBoxChange = new EventEmitter<NzFormatEmitEvent>();\n\n @ViewChild(NzSelectSearchComponent, { static: false }) nzSelectSearchComponent!: NzSelectSearchComponent;\n @ViewChild('treeRef', { static: false }) treeRef!: NzTreeComponent;\n @ViewChild(CdkOverlayOrigin, { static: true }) cdkOverlayOrigin!: CdkOverlayOrigin;\n @ViewChild(CdkConnectedOverlay, { static: false }) cdkConnectedOverlay!: CdkConnectedOverlay;\n\n @Input() nzTreeTemplate!: TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }>;\n @ContentChild('nzTreeTemplate', { static: true }) nzTreeTemplateChild!: TemplateRef<{\n $implicit: NzTreeNode;\n origin: NzTreeNodeOptions;\n }>;\n get treeTemplate(): TemplateRef<{ $implicit: NzTreeNode; origin: NzTreeNodeOptions }> {\n return this.nzTreeTemplate || this.nzTreeTemplateChild;\n }\n\n prefixCls: string = 'ant-select';\n statusCls: NgClassInterface = {};\n status: NzValidateStatus = '';\n hasFeedback: boolean = false;\n\n dropdownClassName = TREE_SELECT_DEFAULT_CLASS;\n triggerWidth?: number;\n isComposing = false;\n isDestroy = true;\n isNotFound = false;\n focused = false;\n inputValue = '';\n dropDownPosition: 'top' | 'center' | 'bottom' = 'bottom';\n selectedNodes: NzTreeNode[] = [];\n expandedKeys: string[] = [];\n value: string[] = [];\n dir: Direction = 'ltr';\n positions: ConnectionPositionPair[] = [];\n\n private destroy$ = new Subject<void>();\n private isNzDisableFirstChange: boolean = true;\n\n private isComposingChange$ = new Subject<boolean>();\n private searchValueChange$ = new Subject<string>();\n\n onChange: OnChangeType = _value => {};\n onTouched: OnTouchedType = () => {};\n\n get placeHolderDisplay(): string {\n return this.inputValue || this.isComposing || this.selectedNodes.length ? 'none' : 'block';\n }\n\n get isMultiple(): boolean {\n return this.nzMultiple || this.nzCheckable;\n }\n\n noAnimation = inject(NzNoAnimationDirective, { host: true, optional: true });\n nzFormStatusService = inject(NzFormStatusService, { optional: true });\n private nzFormNoStatusService = inject(NzFormNoStatusService, { optional: true });\n\n constructor(\n nzTreeService: NzTreeSelectService,\n public nzConfigService: NzConfigService,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n private elementRef: ElementRef,\n private directionality: Directionality,\n private focusMonitor: FocusMonitor\n ) {\n super(nzTreeService);\n\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-select');\n this.renderer.addClass(this.elementRef.nativeElement, 'ant-tree-select');\n }\n\n ngOnInit(): void {\n this.nzFormStatusService?.formStatusChanges\n .pipe(\n distinctUntilChanged((pre, cur) => {\n return pre.status === cur.status && pre.hasFeedback === cur.hasFeedback;\n }),\n withLatestFrom(this.nzFormNoStatusService ? this.nzFormNoStatusService.noFormStatus : observableOf(false)),\n map(([{ status, hasFeedback }, noStatus]) => ({ status: noStatus ? '' : status, hasFeedback })),\n takeUntil(this.destroy$)\n )\n .subscribe(({ status, hasFeedback }) => {\n this.setStatusStyles(status, hasFeedback);\n });\n\n this.isDestroy = false;\n this.subscribeSelectionChange();\n\n this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n this.dir = direction;\n this.cdr.detectChanges();\n });\n this.dir = this.directionality.value;\n\n this.focusMonitor\n .monitor(this.elementRef, true)\n .pipe(takeUntil(this.destroy$))\n .subscribe(focusOrigin => {\n if (!focusOrigin) {\n this.focused = false;\n this.cdr.markForCheck();\n Promise.resolve().then(() => {\n this.onTouched();\n });\n } else {\n this.focused = true;\n this.cdr.markForCheck();\n }\n });\n\n // setInputValue method executed earlier than isComposingChange\n combineLatest([this.searchValueChange$, this.isComposingChange$.pipe(startWith(false))])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([searchValue, isComposing]) => {\n this.isComposing = isComposing;\n if (!isComposing) {\n this.inputValue = searchValue;\n this.updatePosition();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.isDestroy = true;\n this.closeDropDown();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n isComposingChange(isComposing: boolean): void {\n this.isComposingChange$.next(isComposing);\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.nzDisabled = (this.isNzDisableFirstChange && this.nzDisabled) || isDisabled;\n this.closeDropDown();\n this.isNzDisableFirstChange = false;\n }\n\n private setStatusStyles(status: NzValidateStatus, hasFeedback: boolean): void {\n // set inner status\n this.status = status;\n this.hasFeedback = hasFeedback;\n this.cdr.markForCheck();\n // render status if nzStatus is set\n this.statusCls = getStatusClassNames(this.prefixCls, status, hasFeedback);\n Object.keys(this.statusCls).forEach(status => {\n if (this.statusCls[status]) {\n this.renderer.addClass(this.elementRef.nativeElement, status);\n } else {\n this.renderer.removeClass(this.elementRef.nativeElement, status);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { nzNodes, nzDropdownClassName, nzStatus, nzPlacement } = changes;\n if (nzNodes) {\n this.updateSelectedNodes(true);\n }\n if (nzDropdownClassName) {\n const className = this.nzDropdownClassName && this.nzDropdownClassName.trim();\n this.dropdownClassName = className ? `${TREE_SELECT_DEFAULT_CLASS} ${className}` : TREE_SELECT_DEFAULT_CLASS;\n }\n if (nzStatus) {\n this.setStatusStyles(this.nzStatus, this.hasFeedback);\n }\n\n if (nzPlacement && this.nzPlacement) {\n if (POSITION_MAP[this.nzPlacement]) {\n this.positions = [POSITION_MAP[this.nzPlacement]];\n }\n }\n }\n\n writeValue(value: string[] | string): void {\n if (isNotNil(value)) {\n if (this.isMultiple && Array.isArray(value)) {\n this.value = value;\n } else {\n this.value = [value as string];\n }\n // need clear selected nodes when user set value before updating\n this.clearSelectedNodes();\n this.updateSelectedNodes(true);\n } else {\n this.value = [];\n this.clearSelectedNodes();\n this.selectedNodes = [];\n }\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (_: string[] | string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onKeydown(event: KeyboardEvent): void {\n if (this.nzDisabled) {\n return;\n }\n switch (event.keyCode) {\n case ESCAPE:\n /**\n * Skip the ESCAPE processing, it will be handled in {@link onOverlayKeyDown}.\n */\n break;\n case TAB:\n this.closeDropDown();\n break;\n default:\n if (!this.nzOpen) {\n this.openDropdown();\n }\n }\n }\n\n trigger(): void {\n if (this.nzDisabled || (!this.nzDisabled && this.nzOpen)) {\n this.closeDropDown();\n } else {\n this.openDropdown();\n }\n }\n\n openDropdown(): void {\n if (!this.nzDisabled) {\n this.nzOpen = true;\n this.nzOpenChange.emit(this.nzOpen);\n this.updateCdkConnectedOverlayStatus();\n if (this.nzShowSearch || this.isMultiple) {\n this.focusOnInput();\n }\n }\n }\n\n closeDropDown(): void {\n this.onTouched();\n this.nzOpen = false;\n this.inputValue = '';\n this.isNotFound = false;\n this.nzOpenChange.emit(this.nzOpen);\n this.cdr.markForCheck();\n }\n\n onKeyDownInput(e: KeyboardEvent): void {\n const keyCode = e.keyCode;\n const eventTarget = e.target as HTMLInputElement;\n if (this.isMultiple && !eventTarget.value && keyCode === BACKSPACE) {\n e.preventDefault();\n if (this.selectedNodes.length) {\n const removeNode = this.selectedNodes[this.selectedNodes.length - 1];\n if (removeNode && !removeNode.isDisabled) {\n this.removeSelected(removeNode);\n }\n }\n }\n }\n\n onExpandedKeysChange(value: NzFormatEmitEvent): void {\n this.nzExpandChange.emit(value);\n this.expandedKeys = [...value.keys!];\n }\n\n setInputValue(value: string): void {\n this.searchValueChange$.next(value);\n }\n\n removeSelected(node: NzTreeNode, emit: boolean = true): void {\n node.isSelected = false;\n node.isChecked = false;\n if (this.nzCheckable) {\n this.nzTreeService.conduct(node, this.nzCheckStrictly);\n } else {\n this.nzTreeService.setSelectedNodeList(node, this.nzMultiple);\n }\n\n if (emit) {\n this.nzRemoved.emit(node);\n }\n }\n\n focusOnInput(): void {\n if (this.nzSelectSearchComponent) {\n this.nzSelectSearchComponent.focus();\n }\n }\n\n subscribeSelectionChange(): void {\n merge(\n this.nzTreeClick.pipe(\n tap((event: NzFormatEmitEvent) => {\n const node = event.node!;\n if (this.nzCheckable && !node.isDisabled && !node.isDisableCheckbox) {\n node.isChecked = !node.isChecked;\n node.isHalfChecked = false;\n if (!this.nzCheckStrictly) {\n this.nzTreeService.conduct(node);\n }\n }\n if (this.nzCheckable) {\n node.isSelected = false;\n }\n }),\n filter((event: NzFormatEmitEvent) => {\n const node = event.node!;\n return this.nzCheckable ? !node.isDisabled && !node.isDisableCheckbox : !node.isDisabled && node.isSelectable;\n })\n ),\n this.nzCheckable ? this.nzTreeCheckBoxChange.asObservable() : observableOf(),\n this.nzCleared,\n this.nzRemoved\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.updateSelectedNodes();\n const value = this.selectedNodes.map(node => node.key!);\n this.value = [...value];\n if (this.nzShowSearch || this.isMultiple) {\n this.inputValue = '';\n this.isNotFound = false;\n }\n if (this.isMultiple) {\n this.onChange(value);\n this.focusOnInput();\n this.updatePosition();\n } else {\n this.closeDropDown();\n this.onChange(value.length ? value[0] : null);\n }\n });\n }\n\n updateSelectedNodes(init: boolean = false): void {\n if (init) {\n const nodes = this.coerceTreeNodes(this.nzNodes);\n this.nzTreeService.isMultiple = this.isMultiple;\n this.nzTreeService.isCheckStrictly = this.nzCheckStrictly;\n this.nzTreeService.initTree(nodes);\n if (this.nzCheckable) {\n this.nzTreeService.conductCheck(this.value, this.nzCheckStrictly);\n } else {\n this.nzTreeService.conductSelectedKeys(this.value, this.isMultiple);\n }\n }\n\n this.selectedNodes = [...(this.nzCheckable ? this.getCheckedNodeList() : this.getSelectedNodeList())].sort(\n (a, b) => {\n const indexA = this.value.indexOf(a.key);\n const indexB = this.value.indexOf(b.key);\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n }\n if (indexA !== -1) {\n return -1;\n }\n if (indexB !== -1) {\n return 1;\n }\n return 0;\n }\n );\n }\n\n updatePosition(): void {\n reqAnimFrame(() => {\n this.cdkConnectedOverlay?.overlayRef?.updatePosition();\n });\n }\n\n onPositionChange(position: ConnectedOverlayPositionChange): void {\n this.dropDownPosition = position.connectionPair.originY;\n }\n\n onClearSelection(): void {\n this.selectedNodes.forEach(node => {\n this.removeSelected(node, false);\n });\n this.nzCleared.emit();\n }\n\n onClickOutside(event: MouseEvent): void {\n const target = _getEventTarget(event);\n if (!this.elementRef.nativeElement.contains(target)) {\n this.closeDropDown();\n }\n }\n\n setSearchValues($event: NzFormatEmitEvent): void {\n Promise.resolve().then(() => {\n this.isNotFound = (this.nzShowSearch || this.isMultiple) && !!this.inputValue && $event.matchedKeys!.length === 0;\n });\n }\n\n updateCdkConnectedOverlayStatus(): void {\n if (!this.nzPlacement || !listOfPositions.includes(POSITION_MAP[this.nzPlacement])) {\n this.triggerWidth = this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n }\n }\n\n clearSelectedNodes(): void {\n this.selectedNodes.forEach(node => {\n this.removeSelected(node, false);\n });\n }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { NzTreeSelectComponent } from './tree-select.component';\n\n@NgModule({\n imports: [NzTreeSelectComponent],\n exports: [NzTreeSelectComponent]\n})\nexport class NzTreeSelectModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './tree-select.component';\nexport * from './tree-select.module';\nexport * from './tree-select.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf","i1.NzTreeSelectService"],"mappings":"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