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