{"version":3,"file":"ui-vts-kit-ng-vts-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/ui-vts-kit-ng-vts-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 { VtsTreeBaseService } from '@ui-vts-kit/ng-vts/core/tree';\n\n@Injectable()\nexport class VtsTreeSelectService extends VtsTreeBaseService {}\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';\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { BACKSPACE, ESCAPE, TAB } from '@angular/cdk/keycodes';\nimport {\n  CdkConnectedOverlay,\n  CdkOverlayOrigin,\n  ConnectedOverlayPositionChange\n} from '@angular/cdk/overlay';\nimport {\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Host,\n  Injector,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  Self,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { slideMotion } from '@ui-vts-kit/ng-vts/core/animation';\nimport { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { VtsNoAnimationDirective } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { reqAnimFrame } from '@ui-vts-kit/ng-vts/core/polyfill';\n\nimport {\n  VtsFormatEmitEvent,\n  VtsTreeBase,\n  VtsTreeBaseService,\n  VtsTreeHigherOrderServiceToken,\n  VtsTreeNode,\n  VtsTreeNodeOptions\n} from '@ui-vts-kit/ng-vts/core/tree';\nimport {\n  BooleanInput,\n  NgStyleInterface,\n  OnChangeType,\n  OnTouchedType,\n  VtsSizeLMSType,\n  VtsSizeXLMSType\n} from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean, isNotNil } from '@ui-vts-kit/ng-vts/core/util';\nimport { VtsSelectSearchComponent } from '@ui-vts-kit/ng-vts/select';\nimport { VtsTreeComponent } from '@ui-vts-kit/ng-vts/tree';\n\nimport { merge, of as observableOf, Subject, Subscription } from 'rxjs';\nimport { filter, takeUntil, tap } from 'rxjs/operators';\nimport { VtsTreeSelectService } from './tree-select.service';\n\nexport function higherOrderServiceFactory(injector: Injector): VtsTreeBaseService {\n  return injector.get(VtsTreeSelectService);\n}\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'treeSelect';\nconst TREE_SELECT_DEFAULT_CLASS = 'vts-select-dropdown vts-select-tree-dropdown';\n\n@Component({\n  selector: 'vts-tree-select',\n  exportAs: 'vtsTreeSelect',\n  animations: [slideMotion],\n  template: `\n    <ng-template\n      cdkConnectedOverlay\n      vtsConnectedOverlay\n      [cdkConnectedOverlayHasBackdrop]=\"vtsBackdrop\"\n      [cdkConnectedOverlayOrigin]=\"cdkOverlayOrigin\"\n      [cdkConnectedOverlayOpen]=\"vtsOpen\"\n      [cdkConnectedOverlayTransformOriginOn]=\"'.vts-select-tree-dropdown'\"\n      [cdkConnectedOverlayMinWidth]=\"$any(vtsDropdownMatchSelectWidth ? null : triggerWidth)\"\n      [cdkConnectedOverlayWidth]=\"$any(vtsDropdownMatchSelectWidth ? 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?.vtsNoAnimation\"\n        [vtsNoAnimation]=\"noAnimation?.vtsNoAnimation\"\n        [class.vts-select-dropdown-placement-bottomLeft]=\"dropDownPosition === 'bottom'\"\n        [class.vts-select-dropdown-placement-topLeft]=\"dropDownPosition === 'top'\"\n        [class.vts-tree-select-dropdown-rtl]=\"dir === 'rtl'\"\n        [dir]=\"dir\"\n        [ngStyle]=\"vtsDropdownStyle\"\n      >\n        <vts-tree\n          #treeRef\n          [hidden]=\"isNotFound\"\n          vtsNoAnimation\n          vtsSelectMode\n          vtsBlockNode\n          vtsSelectable\n          [vtsData]=\"vtsNodes\"\n          [vtsSize]=\"vtsTreeSize\"\n          [vtsMultiple]=\"vtsMultiple\"\n          [vtsSearchValue]=\"inputValue\"\n          [vtsHideUnMatched]=\"vtsHideUnMatched\"\n          [vtsShowIcon]=\"vtsShowIcon\"\n          [vtsCheckable]=\"vtsCheckable\"\n          [vtsAsyncData]=\"vtsAsyncData\"\n          [vtsShowExpand]=\"vtsShowExpand\"\n          [vtsShowLine]=\"vtsShowLine\"\n          [vtsExpandedIcon]=\"vtsExpandedIcon\"\n          [vtsExpandAll]=\"vtsExpandAll\"\n          [vtsExpandedKeys]=\"expandedKeys\"\n          [vtsCheckedKeys]=\"vtsCheckable ? value : []\"\n          [vtsSelectedKeys]=\"!vtsCheckable ? value : []\"\n          [vtsTreeTemplate]=\"treeTemplate\"\n          [vtsCheckStrictly]=\"vtsCheckStrictly\"\n          [vtsVirtualItemSize]=\"vtsVirtualItemSize\"\n          [vtsVirtualMaxBufferPx]=\"vtsVirtualMaxBufferPx\"\n          [vtsVirtualMinBufferPx]=\"vtsVirtualMinBufferPx\"\n          [vtsVirtualHeight]=\"vtsVirtualHeight\"\n          (vtsExpandChange)=\"onExpandedKeysChange($event)\"\n          (vtsClick)=\"vtsTreeClick.emit($event)\"\n          (vtsCheckedKeysChange)=\"updateSelectedNodes()\"\n          (vtsSelectedKeysChange)=\"updateSelectedNodes()\"\n          (vtsCheckBoxChange)=\"vtsTreeCheckBoxChange.emit($event)\"\n          (vtsSearchValueChange)=\"setSearchValues($event)\"\n        ></vts-tree>\n        <span *ngIf=\"vtsNodes.length === 0 || isNotFound\" class=\"vts-select-not-found\">\n          <vts-embed-empty\n            [vtsComponentName]=\"'tree-select'\"\n            [specificContent]=\"vtsNoResult\"\n          ></vts-embed-empty>\n        </span>\n      </div>\n    </ng-template>\n\n    <div cdkOverlayOrigin class=\"vts-select-selector\">\n      <ng-container *ngIf=\"isMultiple\">\n        <vts-select-item\n          *ngFor=\"let node of selectedNodes | slice : 0 : vtsMaxTagCount; trackBy: trackValue\"\n          [deletable]=\"true\"\n          [disabled]=\"node.isDisabled || vtsDisabled\"\n          [label]=\"vtsDisplayWith(node)\"\n          (delete)=\"removeSelected(node, true)\"\n        ></vts-select-item>\n\n        <vts-select-item\n          *ngIf=\"selectedNodes.length > vtsMaxTagCount\"\n          [contentTemplateOutlet]=\"vtsMaxTagPlaceholder\"\n          [contentTemplateOutletContext]=\"selectedNodes | slice : vtsMaxTagCount\"\n          [deletable]=\"false\"\n          [disabled]=\"false\"\n          [label]=\"'+ ' + (selectedNodes.length - vtsMaxTagCount) + ' ...'\"\n        ></vts-select-item>\n      </ng-container>\n\n      <vts-select-search\n        [vtsId]=\"vtsId\"\n        [showInput]=\"vtsShowSearch\"\n        (keydown)=\"onKeyDownInput($event)\"\n        (isComposingChange)=\"isComposing = $event\"\n        (valueChange)=\"setInputValue($event)\"\n        [value]=\"inputValue\"\n        [mirrorSync]=\"isMultiple\"\n        [disabled]=\"vtsDisabled\"\n        [focusTrigger]=\"vtsOpen\"\n      ></vts-select-search>\n\n      <vts-select-placeholder\n        *ngIf=\"vtsPlaceHolder && selectedNodes.length === 0\"\n        [placeholder]=\"vtsPlaceHolder\"\n        [style.display]=\"placeHolderDisplay\"\n      ></vts-select-placeholder>\n\n      <vts-select-item\n        *ngIf=\"!isMultiple && selectedNodes.length === 1 && !isComposing && inputValue === ''\"\n        [deletable]=\"false\"\n        [disabled]=\"false\"\n        [label]=\"vtsDisplayWith(selectedNodes[0])\"\n      ></vts-select-item>\n\n      <vts-select-arrow></vts-select-arrow>\n\n      <vts-select-clear\n        *ngIf=\"vtsAllowClear && !vtsDisabled && selectedNodes.length\"\n        (clear)=\"onClearSelection()\"\n      ></vts-select-clear>\n\n      <vts-select-multiple-count\n        *ngIf=\"isMultiple && !vtsDisabled && !!value?.length\"\n        [count]=\"value.length\"\n      ></vts-select-multiple-count>\n    </div>\n  `,\n  providers: [\n    VtsTreeSelectService,\n    {\n      provide: VtsTreeHigherOrderServiceToken,\n      useFactory: higherOrderServiceFactory,\n      deps: [[new Self(), Injector]]\n    },\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VtsTreeSelectComponent),\n      multi: true\n    }\n  ],\n  host: {\n    '[class.vts-select-xl]': 'vtsSize===\"xl\"',\n    '[class.vts-select-lg]': 'vtsSize===\"lg\"',\n    '[class.vts-select-md]': 'vtsSize===\"md\"',\n    '[class.vts-select-sm]': 'vtsSize===\"sm\"',\n    '[class.vts-select-rtl]': 'dir===\"rtl\"',\n    '[class.vts-select-disabled]': 'vtsDisabled',\n    '[class.vts-select-single]': '!isMultiple',\n    '[class.vts-select-show-arrow]': '!isMultiple',\n    '[class.vts-select-show-search]': '!isMultiple',\n    '[class.vts-select-multiple]': 'isMultiple',\n    '[class.vts-select-allow-clear]': 'vtsAllowClear',\n    '[class.vts-select-open]': 'vtsOpen',\n    '[class.vts-select-focused]': 'vtsOpen || focused',\n    '(click)': 'trigger()',\n    '(keydown)': 'onKeydown($event)'\n  }\n})\nexport class VtsTreeSelectComponent\n  extends VtsTreeBase\n  implements ControlValueAccessor, OnInit, OnDestroy, OnChanges\n{\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_vtsAllowClear: BooleanInput;\n  static ngAcceptInputType_vtsShowExpand: BooleanInput;\n  static ngAcceptInputType_vtsShowLine: BooleanInput;\n  static ngAcceptInputType_vtsDropdownMatchSelectWidth: BooleanInput;\n  static ngAcceptInputType_vtsCheckable: BooleanInput;\n  static ngAcceptInputType_vtsHideUnMatched: BooleanInput;\n  static ngAcceptInputType_vtsShowIcon: BooleanInput;\n  static ngAcceptInputType_vtsShowSearch: BooleanInput;\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsAsyncData: BooleanInput;\n  static ngAcceptInputType_vtsMultiple: BooleanInput;\n  static ngAcceptInputType_vtsExpandAll: BooleanInput;\n  static ngAcceptInputType_vtsCheckStrictly: BooleanInput;\n\n  @Input() vtsId: string | null = null;\n  @Input() @InputBoolean() vtsAllowClear: boolean = true;\n  @Input() @InputBoolean() vtsShowExpand: boolean = true;\n  @Input() @InputBoolean() vtsShowLine: boolean = false;\n  @Input()\n  @InputBoolean()\n  @WithConfig()\n  vtsDropdownMatchSelectWidth: boolean = true;\n  @Input() @InputBoolean() vtsCheckable: boolean = false;\n  @Input() @InputBoolean() @WithConfig() vtsHideUnMatched: boolean = false;\n  @Input() @InputBoolean() @WithConfig() vtsShowIcon: boolean = false;\n  @Input() @InputBoolean() vtsShowSearch: boolean = false;\n  @Input() @InputBoolean() vtsDisabled = false;\n  @Input() @InputBoolean() vtsAsyncData = false;\n  @Input() @InputBoolean() vtsMultiple = false;\n  @Input() @InputBoolean() vtsExpandAll = false;\n  @Input() @InputBoolean() vtsCheckStrictly = false;\n  @Input() vtsVirtualItemSize = 28;\n  @Input() vtsVirtualMaxBufferPx = 500;\n  @Input() vtsVirtualMinBufferPx = 28;\n  @Input() vtsVirtualHeight: string | null = null;\n  @Input() vtsExpandedIcon?: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @Input() vtsNoResult?: string;\n  @Input() vtsNodes: Array<VtsTreeNode | VtsTreeNodeOptions> = [];\n  @Input() vtsOpen = false;\n  @Input() vtsTreeSize: VtsSizeLMSType = 'md';\n  @Input() vtsSize: VtsSizeXLMSType = 'md';\n  @Input() vtsPlaceHolder = '';\n  @Input() vtsDropdownStyle: NgStyleInterface | null = null;\n  @Input() vtsDropdownClassName?: string;\n  @Input() @WithConfig() vtsBackdrop = false;\n  @Input()\n  set vtsExpandedKeys(value: string[]) {\n    this.expandedKeys = value;\n  }\n  get vtsExpandedKeys(): string[] {\n    return this.expandedKeys;\n  }\n\n  @Input() vtsDisplayWith: (node: VtsTreeNode) => string | undefined = (node: VtsTreeNode) =>\n    node.title;\n  @Input() vtsMaxTagCount!: number;\n  @Input() vtsMaxTagPlaceholder: TemplateRef<{\n    $implicit: VtsTreeNode[];\n  }> | null = null;\n  @Output() readonly vtsOpenChange = new EventEmitter<boolean>();\n  @Output() readonly vtsCleared = new EventEmitter<void>();\n  @Output() readonly vtsRemoved = new EventEmitter<VtsTreeNode>();\n  @Output() readonly vtsExpandChange = new EventEmitter<VtsFormatEmitEvent>();\n  @Output() readonly vtsTreeClick = new EventEmitter<VtsFormatEmitEvent>();\n  @Output()\n  readonly vtsTreeCheckBoxChange = new EventEmitter<VtsFormatEmitEvent>();\n\n  @ViewChild(VtsSelectSearchComponent, { static: false })\n  vtsSelectSearchComponent!: VtsSelectSearchComponent;\n  @ViewChild('treeRef', { static: false }) treeRef!: VtsTreeComponent;\n  @ViewChild(CdkOverlayOrigin, { static: true })\n  cdkOverlayOrigin!: CdkOverlayOrigin;\n  @ViewChild(CdkConnectedOverlay, { static: false })\n  cdkConnectedOverlay!: CdkConnectedOverlay;\n\n  @Input() vtsTreeTemplate!: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  @ContentChild('vtsTreeTemplate', { static: true })\n  vtsTreeTemplateChild!: TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }>;\n  get treeTemplate(): TemplateRef<{\n    $implicit: VtsTreeNode;\n    origin: VtsTreeNodeOptions;\n  }> {\n    return this.vtsTreeTemplate || this.vtsTreeTemplateChild;\n  }\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  selectionChangeSubscription!: Subscription;\n  focusChangeSubscription!: Subscription;\n  selectedNodes: VtsTreeNode[] = [];\n  expandedKeys: string[] = [];\n  value: string[] = [];\n  dir: Direction = 'ltr';\n\n  private destroy$ = new Subject<void>();\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.vtsMultiple || this.vtsCheckable;\n  }\n\n  constructor(\n    vtsTreeService: VtsTreeSelectService,\n    public vtsConfigService: VtsConfigService,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef,\n    private elementRef: ElementRef,\n    @Optional() private directionality: Directionality,\n    private focusMonitor: FocusMonitor,\n    @Host() @Optional() public noAnimation?: VtsNoAnimationDirective\n  ) {\n    super(vtsTreeService);\n    // TODO: move to host after View Engine deprecation\n    this.elementRef.nativeElement.classList.add('vts-select');\n    this.renderer.addClass(this.elementRef.nativeElement, 'vts-select');\n    this.renderer.addClass(this.elementRef.nativeElement, 'vts-tree-select');\n  }\n\n  ngOnInit(): void {\n    this.isDestroy = false;\n    this.selectionChangeSubscription = 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.focusChangeSubscription = this.focusMonitor\n      .monitor(this.elementRef, true)\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\n  ngOnDestroy(): void {\n    this.isDestroy = true;\n    this.closeDropDown();\n    this.selectionChangeSubscription.unsubscribe();\n    this.destroy$.next();\n    this.destroy$.complete();\n    this.focusChangeSubscription.unsubscribe();\n  }\n\n  isComposingChange(isComposing: boolean): void {\n    this.isComposing = isComposing;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.vtsDisabled = isDisabled;\n    this.closeDropDown();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsNodes, vtsDropdownClassName } = changes;\n    if (vtsNodes) {\n      this.updateSelectedNodes(true);\n    }\n    if (vtsDropdownClassName) {\n      const className = this.vtsDropdownClassName && this.vtsDropdownClassName.trim();\n      this.dropdownClassName = className\n        ? `${TREE_SELECT_DEFAULT_CLASS} ${className}`\n        : TREE_SELECT_DEFAULT_CLASS;\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      this.updateSelectedNodes(true);\n    } else {\n      this.value = [];\n      this.selectedNodes.forEach(node => {\n        this.removeSelected(node, false);\n      });\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.vtsDisabled) {\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.vtsOpen) {\n          this.openDropdown();\n        }\n    }\n  }\n\n  trigger(): void {\n    if (this.vtsDisabled || (!this.vtsDisabled && this.vtsOpen)) {\n      this.closeDropDown();\n    } else {\n      this.openDropdown();\n    }\n  }\n\n  openDropdown(): void {\n    if (!this.vtsDisabled) {\n      this.vtsOpen = true;\n      this.vtsOpenChange.emit(this.vtsOpen);\n      this.updateCdkConnectedOverlayStatus();\n      if (this.vtsShowSearch || this.isMultiple) {\n        this.focusOnInput();\n      }\n    }\n  }\n\n  closeDropDown(): void {\n    this.onTouched();\n    this.vtsOpen = false;\n    this.inputValue = '';\n    this.isNotFound = false;\n    this.vtsOpenChange.emit(this.vtsOpen);\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        this.removeSelected(removeNode);\n      }\n    }\n  }\n\n  onExpandedKeysChange(value: VtsFormatEmitEvent): void {\n    this.vtsExpandChange.emit(value);\n    this.expandedKeys = [...value.keys!];\n  }\n\n  setInputValue(value: string): void {\n    this.inputValue = value;\n    this.updatePosition();\n  }\n\n  removeSelected(node: VtsTreeNode, emit: boolean = true): void {\n    node.isSelected = false;\n    node.isChecked = false;\n    if (this.vtsCheckable) {\n      this.vtsTreeService.conduct(node, this.vtsCheckStrictly);\n    } else {\n      this.vtsTreeService.setSelectedNodeList(node, this.vtsMultiple);\n    }\n\n    if (emit) {\n      this.vtsRemoved.emit(node);\n    }\n  }\n\n  focusOnInput(): void {\n    if (this.vtsSelectSearchComponent) {\n      this.vtsSelectSearchComponent.focus();\n    }\n  }\n\n  subscribeSelectionChange(): Subscription {\n    return merge(\n      this.vtsTreeClick.pipe(\n        tap((event: VtsFormatEmitEvent) => {\n          const node = event.node!;\n          if (this.vtsCheckable && !node.isDisabled && !node.isDisableCheckbox) {\n            node.isChecked = !node.isChecked;\n            node.isHalfChecked = false;\n            if (!this.vtsCheckStrictly) {\n              this.vtsTreeService.conduct(node);\n            }\n          }\n          if (this.vtsCheckable) {\n            node.isSelected = false;\n          }\n        }),\n        filter((event: VtsFormatEmitEvent) => {\n          const node = event.node!;\n          return this.vtsCheckable\n            ? !node.isDisabled && !node.isDisableCheckbox\n            : !node.isDisabled && node.isSelectable;\n        })\n      ),\n      this.vtsCheckable ? this.vtsTreeCheckBoxChange : observableOf(),\n      this.vtsCleared,\n      this.vtsRemoved\n    ).subscribe(() => {\n      this.updateSelectedNodes();\n      const value = this.selectedNodes.map(node => node.key!);\n      this.value = [...value];\n      if (this.vtsShowSearch || 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.vtsNodes);\n      this.vtsTreeService.isMultiple = this.isMultiple;\n      this.vtsTreeService.isCheckStrictly = this.vtsCheckStrictly;\n      this.vtsTreeService.initTree(nodes);\n      if (this.vtsCheckable) {\n        this.vtsTreeService.conductCheck(this.value, this.vtsCheckStrictly);\n      } else {\n        this.vtsTreeService.conductSelectedKeys(this.value, this.isMultiple);\n      }\n    }\n\n    this.selectedNodes = [\n      ...(this.vtsCheckable ? this.getCheckedNodeList() : this.getSelectedNodeList())\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.vtsCleared.emit();\n  }\n\n  onClickOutside(event: MouseEvent): void {\n    if (!this.elementRef.nativeElement.contains(event.target)) {\n      this.closeDropDown();\n    }\n  }\n\n  setSearchValues($event: VtsFormatEmitEvent): void {\n    Promise.resolve().then(() => {\n      this.isNotFound =\n        (this.vtsShowSearch || this.isMultiple) &&\n        !!this.inputValue &&\n        $event.matchedKeys!.length === 0;\n    });\n  }\n\n  updateCdkConnectedOverlayStatus(): void {\n    this.triggerWidth =\n      this.cdkOverlayOrigin.elementRef.nativeElement.getBoundingClientRect().width;\n  }\n\n  trackValue(_index: number, option: VtsTreeNode): string {\n    return option.key!;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { VtsNoAnimationModule } from '@ui-vts-kit/ng-vts/core/no-animation';\nimport { VtsOverlayModule } from '@ui-vts-kit/ng-vts/core/overlay';\n\nimport { VtsEmptyModule } from '@ui-vts-kit/ng-vts/empty';\nimport { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\nimport { VtsSelectModule } from '@ui-vts-kit/ng-vts/select';\nimport { VtsTreeModule } from '@ui-vts-kit/ng-vts/tree';\n\nimport { VtsTreeSelectComponent } from './tree-select.component';\n\n@NgModule({\n  imports: [\n    BidiModule,\n    CommonModule,\n    OverlayModule,\n    FormsModule,\n    VtsSelectModule,\n    VtsTreeModule,\n    VtsIconModule,\n    VtsEmptyModule,\n    VtsOverlayModule,\n    VtsNoAnimationModule\n  ],\n  declarations: [VtsTreeSelectComponent],\n  exports: [VtsTreeSelectComponent]\n})\nexport class VtsTreeSelectModule {}\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.VtsTreeSelectService"],"mappings":"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"}