{"version":3,"file":"ng-devui-auto-complete.mjs","sources":["../../devui/auto-complete/auto-complete-config.ts","../../devui/auto-complete/auto-complete-popup.component.ts","../../devui/auto-complete/auto-complete-popup.component.html","../../devui/auto-complete/auto-complete.directive.ts","../../devui/auto-complete/auto-complete.module.ts","../../devui/auto-complete/ng-devui-auto-complete.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class AutoCompleteConfig {\n  autoComplete = {\n    delay: 300,\n    minLength: 1,\n    itemTemplate: null,\n    noResultItemTemplate: null,\n    formatter: (item) => (item ? item.label || item.toString() : ''),\n    valueParser: (item) => (item ? item.label || item.toString() : ''),\n  };\n}\n","import {\n  CdkConnectedOverlay,\n  CdkOverlayOrigin,\n  ConnectedOverlayPositionChange,\n  ConnectedPosition,\n  ScrollStrategy,\n  VerticalConnectionPos\n} from '@angular/cdk/overlay';\nimport { Component, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { fadeInOut } from 'ng-devui/utils';\nimport { AutoCompleteConfig } from './auto-complete-config';\n\n@Component({\n  selector: 'd-auto-complete-popup',\n  templateUrl: './auto-complete-popup.component.html',\n  styleUrls: ['auto-complete-popup.component.scss'],\n  animations: [fadeInOut],\n  preserveWhitespaces: false,\n})\nexport class AutoCompletePopupComponent implements ControlValueAccessor {\n  @Input() width: number;\n  @Input() cssClass: string;\n  @Input() maxHeight = 300;\n  @Input() disabled = false;\n  @Input() disabledKey: string;\n  @Input() source: any[];\n  @Input() position: any;\n  @Input() isOpen: boolean;\n  @Input() term: string;\n  @Input() popTipsText: string;\n  /**\n   * @deprecated\n   */\n  @Input() overview: string;\n  @Input() itemTemplate: TemplateRef<any>;\n  @Input() noResultItemTemplate: TemplateRef<any>;\n  @Input() customViewTemplate: TemplateRef<any>;\n  @Input() customViewDirection: 'bottom' | 'right' | 'left' | 'top' = 'bottom';\n  @Input() searchingTemplate: TemplateRef<any>;\n  @Input() isSearching = false;\n  @Input() formatter: (item: any) => string;\n  @Input() dropdown: boolean;\n  @Input() selectWidth: any;\n  @Input() enableLazyLoad: boolean;\n  @Input() appendToBody = false;\n  @Input() cdkOverlayOffsetY = 0;\n  @Input() origin: CdkOverlayOrigin | undefined;\n  @Input() showAnimation = true;\n  @Output() hoverItem: EventEmitter<any> = new EventEmitter();\n  @ViewChild('selectMenuElement') selectMenuElement: ElementRef;\n  @ViewChild('dropdownUl') dropdownUl: ElementRef;\n  @ViewChild(CdkConnectedOverlay) connectedOverlay: CdkConnectedOverlay;\n  activeIndex = 0;\n  hoverIndex = 0;\n  labelMinHeight = 20; // position.top小于20px时候，表示光标在第一行\n  showLoading = false;\n  overlayPositions: Array<ConnectedPosition>;\n  popPosition: VerticalConnectionPos = 'bottom';\n  popDirection: 'top' | 'bottom';\n  scrollStrategy: ScrollStrategy;\n\n  private value: any;\n  private onChange = (_: any) => null;\n  private onTouched = () => null;\n\n  constructor(private autoCompleteConfig: AutoCompleteConfig, public elementRef: ElementRef) {\n    this.formatter = this.autoCompleteConfig.autoComplete.formatter;\n  }\n\n  writeValue(obj): void {\n    this.value = obj;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  registerOnChange(fn): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn): void {\n    this.onTouched = fn;\n  }\n\n  onSelect(event, item) {\n    if (this.disabledKey && item && item[this.disabledKey]) {\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    if (this.overview === 'single') {\n      // 单选场景和单行场景不需要冒泡\n      event.preventDefault();\n      event.stopPropagation();\n    }\n\n    this.value = item;\n    this.onTouched();\n    this.onChange({ type: 'select', value: this.value });\n  }\n\n  selectCurrentItem(event) {\n    this.activeIndex = this.hoverIndex;\n    this.onSelect(event, this.source[this.hoverIndex]);\n  }\n\n  onActiveIndexChange(index) {\n    this.activeIndex = index;\n  }\n\n  reset() {\n    this.activeIndex = 0;\n    this.hoverIndex = 0;\n  }\n\n  scrollToActive(index?): void {\n    const that = this;\n    setTimeout(() => {\n      const scrollIndex = index === undefined ? this.activeIndex : index;\n      const selectIndex = scrollIndex;\n      const scrollPane: any = that.dropdownUl.nativeElement.children[selectIndex];\n      if (scrollPane.scrollIntoViewIfNeeded) {\n        scrollPane.scrollIntoViewIfNeeded(false);\n      } else {\n        const containerInfo = that.dropdownUl.nativeElement.getBoundingClientRect();\n        const elementInfo = scrollPane.getBoundingClientRect();\n        if (elementInfo.bottom > containerInfo.bottom || elementInfo.top < containerInfo.top) {\n          scrollPane.scrollIntoView(false);\n        }\n      }\n    });\n  }\n\n  next() {\n    if (this.isOpen && this.source && this.source.length) {\n      if (this.hoverIndex === this.source.length - 1) {\n        this.hoverIndex = 0;\n        this.scrollToActive(this.hoverIndex);\n        return;\n      }\n      this.hoverIndex = this.hoverIndex + 1;\n      this.scrollToActive(this.hoverIndex);\n    }\n  }\n\n  prev() {\n    if (this.isOpen && this.source && this.source.length) {\n      if (this.hoverIndex === 0) {\n        this.hoverIndex = this.source.length - 1;\n        this.scrollToActive(this.hoverIndex);\n        return;\n      }\n      this.hoverIndex = this.hoverIndex - 1;\n      this.scrollToActive(this.hoverIndex);\n    }\n  }\n\n  trackByFn(index, item) {\n    return index;\n  }\n\n  animationEnd($event) {\n    if (!this.isOpen && this.selectMenuElement) {\n      const targetElement = this.selectMenuElement.nativeElement;\n      setTimeout(() => {\n        targetElement.style.display = 'none';\n      });\n    }\n  }\n\n  loadMoreEvent($event) {\n    this.showLoading = true;\n    this.onChange({ type: 'loadMore', value: this });\n  }\n\n  loadFinish($event) {\n    this.showLoading = false;\n  }\n\n  onPositionChange(position: ConnectedOverlayPositionChange) {\n    this.popPosition = position.connectionPair.originY;\n  }\n\n  onMouseOver(event: MouseEvent, item: any) {\n    this.hoverItem.emit(item);\n  }\n\n  hidePopup() {}\n}\n","<ng-container *ngIf=\"appendToBody\">\n  <ng-template\n    cdk-connected-overlay\n    [cdkConnectedOverlayOrigin]=\"origin\"\n    [cdkConnectedOverlayWidth]=\"width\"\n    [cdkConnectedOverlayOpen]=\"isOpen && !disabled\"\n    [cdkConnectedOverlayOffsetY]=\"cdkOverlayOffsetY\"\n    [cdkConnectedOverlayPositions]=\"overlayPositions\"\n    [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n    (positionChange)=\"onPositionChange($event)\"\n    (detach)=\"isOpen && hidePopup()\"\n  >\n    <ng-template [ngTemplateOutlet]=\"popTpl\"> </ng-template>\n  </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"!appendToBody\">\n  <ng-template [ngTemplateOutlet]=\"popTpl\"> </ng-template>\n</ng-container>\n\n<ng-template #popTpl>\n  <div\n    class=\"devui-dropdown-menu\"\n    [ngClass]=\"{\n      'devui-dropdown-menu-cdk': appendToBody,\n      'devui-custom-right': customViewTemplate && customViewDirection === 'right',\n      'devui-custom-left': customViewTemplate && customViewDirection === 'left',\n      'devui-custom-top': customViewTemplate && customViewDirection === 'top'\n    }\"\n    [style.display]=\"isOpen && (source?.length || noResultItemTemplate) && !disabled ? 'inline-block' : 'none'\"\n    [style.top]=\"overview === 'multiline' ? (position?.top < labelMinHeight ? '50%' : '100%') : '100%'\"\n    [style.left]=\"overview === 'multiline' ? position?.left + 'px' : '0'\"\n    [@fadeInOut]=\"isOpen && !disabled ? (appendToBody ? popPosition : 'bottom') : 'void'\"\n    (@fadeInOut.done)=\"animationEnd($event)\"\n    [@.disabled]=\"!showAnimation\"\n    #selectMenuElement\n    dLoading\n    [showLoading]=\"showLoading\"\n    [backdrop]=\"true\"\n  >\n    <ul\n      class=\"devui-list-unstyled devui-scrollbar scroll-height devui-dropdown-menu-wrap devui-auto-complete-list\"\n      [style.maxHeight]=\"maxHeight + 'px'\"\n      dLazyLoad\n      [enableLazyLoad]=\"enableLazyLoad\"\n      (loadMore)=\"loadMoreEvent($event)\"\n      #dropdownUl\n    >\n      <ng-container *ngIf=\"!isSearching || !searchingTemplate\">\n        <li *ngIf=\"popTipsText && popTipsText.length > 0\" class=\"devui-popup-tips\">\n          {{ popTipsText }}\n        </li>\n        <li\n          *ngFor=\"let item of source; let $index = index; trackBy: trackByFn\"\n          class=\"devui-dropdown-item\"\n          [title]=\"formatter(item)\"\n          [ngClass]=\"{\n            selected: $index == activeIndex,\n            'devui-dropdown-bg': $index == hoverIndex,\n            disabled: disabledKey && item[disabledKey]\n          }\"\n          (click)=\"onSelect($event, item)\"\n          (mouseover)=\"onMouseOver($event, item)\"\n        >\n          <ng-template\n            [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n            [ngTemplateOutletContext]=\"{\n              formatter: formatter,\n              term: term,\n              source: source,\n              item: item,\n              $index: $index\n            }\"\n          >\n          </ng-template>\n        </li>\n        <div class=\"devui-no-data-tip\" *ngIf=\"!source?.length && noResultItemTemplate\">\n          <ng-template [ngTemplateOutlet]=\"noResultItemTemplate\" [ngTemplateOutletContext]=\"{ term: term, source: source }\"> </ng-template>\n        </div>\n      </ng-container>\n      <div class=\"devui-no-data-tip\" *ngIf=\"isSearching && searchingTemplate\">\n        <ng-template [ngTemplateOutlet]=\"searchingTemplate\" [ngTemplateOutletContext]=\"{ term: term }\"> </ng-template>\n      </div>\n    </ul>\n    <ng-container *ngIf=\"customViewTemplate\">\n      <div class=\"devui-select-custom-area\">\n        <ng-template [ngTemplateOutlet]=\"customViewTemplate\" [ngTemplateOutletContext]=\"{ $implicit: this }\"></ng-template>\n      </div>\n    </ng-container>\n  </div>\n</ng-template>\n\n<ng-template #defaultItemTemplate let-item=\"item\" let-term=\"term\">\n  <d-highlight [value]=\"formatter(item)\" [term]=\"term\"></d-highlight>\n</ng-template>\n","import { CdkOverlayOrigin, ConnectedPosition, ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\r\nimport {\r\n  ChangeDetectorRef,\r\n  ComponentFactoryResolver,\r\n  ComponentRef,\r\n  Directive,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  HostBinding,\r\n  HostListener,\r\n  Injector,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewContainerRef\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { I18nInterface, I18nService } from 'ng-devui/i18n';\r\nimport { PositionService } from 'ng-devui/position';\r\nimport {\r\n  addClassToOrigin,\r\n  AppendToBodyDirection,\r\n  AppendToBodyDirectionsConfig,\r\n  AppendToBodyScrollStrategyType,\r\n  DevConfigService,\r\n  removeClassFromOrigin,\r\n  WithConfig\r\n} from 'ng-devui/utils';\r\nimport { fromEvent, Observable, of, Subject, Subscription } from 'rxjs';\r\nimport { debounceTime, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\r\nimport { AutoCompleteConfig } from './auto-complete-config';\r\nimport { AutoCompletePopupComponent } from './auto-complete-popup.component';\r\n\r\n// select(下拉框) select-extend(editable-select用,下拉聚焦时不搜索，变更inputValue后手动搜索) suggest(联想)\r\nexport type autoCompleteSceneType = '' | 'select' | 'select-extend' | 'suggest';\r\n\r\n@Directive({\r\n  selector: '[dAutoComplete]',\r\n  exportAs: 'autoComplete',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => AutoCompleteDirective),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class AutoCompleteDirective implements OnInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n  @HostBinding('attr.autocomplete') autocomplete = 'off';\r\n  @HostBinding('attr.autocapitalize') autocapitalize = 'off';\r\n  @HostBinding('attr.autocorrect') autocorrect = 'off';\r\n  @Input() disabled: boolean;\r\n  /**\r\n   * @deprecated\r\n   */\r\n  @Input() cssClass: string;\r\n  @Input() delay = 300;\r\n  @Input() @WithConfig() showGlowStyle = true;\r\n  @HostBinding('class.devui-glow-style') get hasGlowStyle() {\r\n    return this.showGlowStyle;\r\n  }\r\n  /**\r\n   * @deprecated\r\n   */\r\n  @Input() minLength: number;\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() noResultItemTemplate: TemplateRef<any>;\r\n  @Input() searchingTemplate: TemplateRef<any>;\r\n  @Input() set isSearching(isSearching) {\r\n    if (this.popupRef && this.searchingTemplate) {\r\n      const pop = this.popupRef.instance;\r\n      pop.isSearching = isSearching;\r\n      pop.searchingTemplate = this.searchingTemplate;\r\n      if (isSearching) {\r\n        pop.isOpen = true;\r\n      }\r\n    }\r\n  }\r\n\r\n  @Input() appendToBody = false;\r\n  @Input() appendToBodyDirections: Array<AppendToBodyDirection | ConnectedPosition> = ['rightDown', 'leftDown', 'rightUp', 'leftUp'];\r\n  @Input() @WithConfig() appendToBodyScrollStrategy: AppendToBodyScrollStrategyType;\r\n  @Input() cdkOverlayOffsetY = 0; // 内部使用不开放\r\n  @Input() dAutoCompleteWidth: number;\r\n  @Input() formatter: (item: any) => string;\r\n  @Input() sceneType: autoCompleteSceneType = '';\r\n  @Input() tipsText = ''; // 提示文字\r\n  /*\r\n overview: border none multiline single\r\n */\r\n  @Input() overview: string;\r\n  @Input() latestSource: any[]; // 最近输入\r\n  @Input() source: any[];\r\n  @Input() valueParser: (item: any) => any;\r\n  @Input() searchFn: (term: string, target?: AutoCompleteDirective) => Observable<any[]>;\r\n  /**\r\n   * @deprecated\r\n   */\r\n  @Input() dropdown: boolean;\r\n  @Input() maxHeight = 300;\r\n  @Input() disabledKey: string;\r\n  @Input() @WithConfig() showAnimation = true;\r\n  /**\r\n   *  【可选】启用数据懒加载，默认不启用\r\n   */\r\n  @Input() enableLazyLoad = false;\r\n  @Input() retainInputValue = false;\r\n  @Input() allowEmptyValueSearch = false; // 在value为空时，是否允许进行搜索\r\n  @Input() customViewTemplate: TemplateRef<any>;\r\n  @Input() customViewDirection: 'bottom' | 'right' | 'left' | 'top' = 'bottom';\r\n  @Output() loadMore = new EventEmitter<any>();\r\n  @Output() selectValue = new EventEmitter<any>();\r\n  @Output() transInputFocusEmit = new EventEmitter<any>(); // input状态传给父组件函数\r\n  /**\r\n   * @deprecated\r\n   */\r\n  @Output() changeDropDownStatus = new EventEmitter<any>();\r\n  @Output() toggleChange = new EventEmitter<boolean>();\r\n  @Output() hoverItem: EventEmitter<any> = new EventEmitter();\r\n  KEYBOARD_EVENT_NOT_REFRESH = ['escape', 'enter', 'arrowup', 'arrowdown', /* ie 10 edge */ 'esc', 'up', 'down'];\r\n  popupRef: ComponentRef<AutoCompletePopupComponent>;\r\n  i18nText: I18nInterface['autoComplete'];\r\n  popTipsText = '';\r\n  position: any;\r\n  focus = false;\r\n  scrollStrategy: ScrollStrategy;\r\n  SELECT_TYPES = ['select', 'select-extend'];\r\n\r\n  private destroy$ = new Subject<void>();\r\n  private valueChanges: Observable<any[]>;\r\n  private value: any;\r\n  private subscription: Subscription;\r\n  private onChange = (_: any) => null;\r\n  private onTouched = () => null;\r\n\r\n  constructor(\r\n    private autoCompleteConfig: AutoCompleteConfig,\r\n    private elementRef: ElementRef,\r\n    private viewContainerRef: ViewContainerRef,\r\n    private componentFactoryResolver: ComponentFactoryResolver,\r\n    private renderer: Renderer2,\r\n    private injector: Injector,\r\n    private positionService: PositionService,\r\n    private changeDetectorRef: ChangeDetectorRef,\r\n    private i18n: I18nService,\r\n    private devConfigService: DevConfigService,\r\n    private scrollStrategyOption: ScrollStrategyOptions\r\n  ) {\r\n    this.scrollStrategy = this.scrollStrategyOption.reposition();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.init();\r\n    this.setI18nText();\r\n    this.valueChanges = this.registerInputEvent(this.elementRef);\r\n    // 调用时机：input keyup\r\n    this.subscription = this.valueChanges.subscribe((source) => this.onSourceChange(source));\r\n\r\n    // 动态的创建了popup组件，\r\n    const factory = this.componentFactoryResolver.resolveComponentFactory(AutoCompletePopupComponent);\r\n    this.popupRef = this.viewContainerRef.createComponent(factory, this.viewContainerRef.length, this.injector);\r\n    this.popupRef.instance.hoverItem.subscribe((item) => this.hoverItem.emit(item));\r\n    this.fillPopup(this.source);\r\n\r\n    if (!this.searchFn) {\r\n      this.searchFn = (term) => {\r\n        return of(this.source.filter((item) => this.formatter(item).toLowerCase().indexOf(term.toLowerCase()) !== -1));\r\n      };\r\n    }\r\n\r\n    // 调用时机：选中回车或者鼠标单击下拉选项\r\n    this.popupRef.instance.registerOnChange((item) => {\r\n      if (item.type === 'loadMore') {\r\n        this.loadMore.emit(item.value);\r\n        return;\r\n      }\r\n      this.writeValue(item.value);\r\n      this.onChange(item.value);\r\n      this.hidePopup();\r\n      this.selectValue.emit(item.value);\r\n      if (this.overview && this.overview !== 'single') {\r\n        setTimeout(() => {\r\n          // 这里稍微延迟一下，等待光标的位置发生变化，好重新获取光标的位置\r\n          this.restLatestSource();\r\n        }, 0);\r\n      }\r\n    });\r\n\r\n    this.setPositions();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const { appendToBodyDirections, appendToBodyScrollStrategy, source } = changes;\r\n    const globalScrollStrategy = this.devConfigService.getConfigForApi('appendToBodyScrollStrategy');\r\n    if (source && this.popupRef) {\r\n      this.fillPopup(this.source);\r\n    }\r\n    if (appendToBodyDirections) {\r\n      this.setPositions();\r\n    }\r\n    if (this.appendToBodyScrollStrategy && (appendToBodyScrollStrategy || globalScrollStrategy)) {\r\n      const func = this.scrollStrategyOption[this.appendToBodyScrollStrategy];\r\n      this.scrollStrategy = func();\r\n      if (this.popupRef) {\r\n        this.popupRef.instance.scrollStrategy = this.scrollStrategy;\r\n      }\r\n    }\r\n  }\r\n\r\n  init() {\r\n    this.minLength = this.minLength ?? this.autoCompleteConfig.autoComplete.minLength;\r\n    this.itemTemplate = this.itemTemplate || this.autoCompleteConfig.autoComplete.itemTemplate;\r\n    this.noResultItemTemplate = this.noResultItemTemplate || this.autoCompleteConfig.autoComplete.noResultItemTemplate;\r\n    this.formatter = this.formatter || this.autoCompleteConfig.autoComplete.formatter;\r\n    this.valueParser = this.valueParser || this.autoCompleteConfig.autoComplete.valueParser;\r\n  }\r\n\r\n  setPositions() {\r\n    if (this.popupRef) {\r\n      this.popupRef.instance.overlayPositions =\r\n        this.appendToBodyDirections && this.appendToBodyDirections.length > 0\r\n          ? this.appendToBodyDirections\r\n            .map((position) => {\r\n              if (typeof position === 'string') {\r\n                return AppendToBodyDirectionsConfig[position];\r\n              } else {\r\n                return position;\r\n              }\r\n            })\r\n            .filter((position) => position !== undefined)\r\n          : undefined;\r\n    }\r\n  }\r\n\r\n  setI18nText() {\r\n    this.i18nText = this.i18n.getI18nText().autoComplete;\r\n    this.i18n\r\n      .langChange()\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe((data) => {\r\n        this.i18nText = data.autoComplete;\r\n      });\r\n  }\r\n\r\n  restLatestSource() {\r\n    if (this.latestSource && this.latestSource.length > 0) {\r\n      this.writeValue('');\r\n      this.clearInputValue();\r\n      this.showLatestSource();\r\n    }\r\n  }\r\n\r\n  // 调用时机：input keyup\r\n  onSourceChange(source) {\r\n    if (!this.elementRef.nativeElement.value) {\r\n      if (!this.SELECT_TYPES.includes(this.sceneType) && !this.allowEmptyValueSearch) {\r\n        // 下拉场景不展示最近输入\r\n        this.showLatestSource();\r\n      } else {\r\n        this.showSource(source, true, true);\r\n      }\r\n    } else {\r\n      this.showSource(source, true, true);\r\n    }\r\n  }\r\n\r\n  private showLatestSource() {\r\n    let tempSource = [];\r\n    if (this.latestSource && this.latestSource.length > 0) {\r\n      this.searchFn('').subscribe((source) => {\r\n        const t = this.latestSource;\r\n        tempSource = t.filter((data) => {\r\n          if (!data.label) {\r\n            return source.find((item) => item === data);\r\n          } else {\r\n            return source.find((item) => item.label === data.label);\r\n          }\r\n        });\r\n\r\n        const pop = this.popupRef.instance;\r\n        pop.reset();\r\n        this.popTipsText = this.i18nText.latestInput;\r\n        this.fillPopup(tempSource);\r\n        this.openPopup();\r\n        this.changeDetectorRef.markForCheck();\r\n        this.updatePosition();\r\n      });\r\n    }\r\n\r\n    if (tempSource.length <= 0) {\r\n      this.hidePopup();\r\n    }\r\n  }\r\n\r\n  private showSource(source, setOpen, isReset) {\r\n    if ((source && source.length) || this.noResultItemTemplate) {\r\n      const pop = this.popupRef.instance;\r\n      if (isReset) {\r\n        pop.reset();\r\n      }\r\n      this.popTipsText = this.tipsText || '';\r\n      this.fillPopup(source, this.value);\r\n      if (setOpen) {\r\n        this.openPopup(isReset ? 0 : -1);\r\n      }\r\n      this.changeDetectorRef.markForCheck();\r\n      this.updatePosition();\r\n    } else {\r\n      this.hidePopup();\r\n    }\r\n  }\r\n\r\n  private updatePosition() {\r\n    if (this.appendToBody) {\r\n      setTimeout(() => {\r\n        if (this.popupRef.instance.connectedOverlay && this.popupRef.instance.connectedOverlay.overlayRef) {\r\n          this.popupRef.instance.connectedOverlay.overlayRef.updatePosition();\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  public openPopup(activeIndex?: number) {\r\n    const index = activeIndex >= 0 ? activeIndex : this.popupRef.instance.activeIndex;\r\n    this.popupRef.instance.activeIndex = index;\r\n    this.popupRef.instance.hoverIndex = index;\r\n    this.popupRef.instance.disabled = this.disabled;\r\n    if (!this.popupRef.instance.isOpen) {\r\n      this.popupRef.instance.isOpen = true;\r\n      addClassToOrigin(this.elementRef);\r\n      this.changeDropDownStatus.emit(true);\r\n      this.toggleChange.emit(true);\r\n    }\r\n  }\r\n\r\n  writeValue(obj): void {\r\n    this.value = this.valueParser(obj) || '';\r\n    if (!this.retainInputValue) {\r\n      this.writeInputValue(this.value);\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n    this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\r\n    if (this.popupRef) {\r\n      this.popupRef.instance.setDisabledState(isDisabled);\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.unSubscription();\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  @HostListener('focus', ['$event'])\r\n  onFocus($event) {\r\n    this.focus = true;\r\n    this.transInputFocusEmit.emit({\r\n      focus: true,\r\n      popupRef: this.popupRef,\r\n    });\r\n    if (this.sceneType === 'select') {\r\n      this.searchValue(this.value ?? '', false);\r\n    }\r\n  }\r\n\r\n  @HostListener('blur', ['$event'])\r\n  onBlur($event) {\r\n    this.focus = false;\r\n    this.onTouched();\r\n  }\r\n\r\n  @HostListener('keydown.esc', ['$event'])\r\n  onEscKeyup($event) {\r\n    this.hidePopup();\r\n  }\r\n\r\n  @HostListener('keydown.Enter', ['$event'])\r\n  onEnterKeyDown($event) {\r\n    if (!this.popupRef.instance.source?.length || !this.popupRef.instance.isOpen) {\r\n      return;\r\n    }\r\n    if (this.popupRef) {\r\n      this.popupRef.instance.selectCurrentItem($event);\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown.ArrowUp', ['$event'])\r\n  onArrowUpKeyDown($event) {\r\n    if (this.popupRef) {\r\n      $event.preventDefault();\r\n      $event.stopPropagation();\r\n      this.popupRef.instance.prev();\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown.ArrowDown', ['$event'])\r\n  onArrowDownKeyDown($event) {\r\n    if (this.popupRef) {\r\n      $event.preventDefault();\r\n      $event.stopPropagation();\r\n      this.popupRef.instance.next();\r\n    }\r\n  }\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  onDocumentClick($event: Event) {\r\n    if (this.focus) {\r\n      this.transInputFocusEmit.emit({\r\n        focus: this.focus,\r\n        popupRef: this.popupRef,\r\n      });\r\n    }\r\n\r\n    // TODO: sceneType为'select'时，自定义了太多处理，十分不优雅，需要合一化\r\n    const hostElement = this.elementRef.nativeElement;\r\n    const isInside = hostElement.contains($event.target);\r\n    const isSelect = this.SELECT_TYPES.includes(this.sceneType);\r\n    const value = this.elementRef.nativeElement.value;\r\n    if (this.popupRef && this.popupRef.instance.isOpen) {\r\n      if ((!isInside && isSelect) || !isSelect) {\r\n        this.hidePopup();\r\n      }\r\n      if (!isInside) {\r\n        this.transInputFocusEmit.emit({\r\n          focus: false,\r\n          popupRef: this.popupRef,\r\n        });\r\n      }\r\n    } else if (isInside && !isSelect) {\r\n      if (!value && !this.allowEmptyValueSearch) {\r\n        this.showLatestSource();\r\n      } else {\r\n        this.searchValue(value, true);\r\n      }\r\n    }\r\n  }\r\n\r\n  searchValue(value: any, isOpen: boolean) {\r\n    this.searchFn(value).subscribe((source) => {\r\n      const searchStr = this.formatter(value) ?? '';\r\n      if (searchStr) {\r\n        const activeIndex = source.map((item) => this.formatter(item).toLowerCase()).indexOf(searchStr.toLowerCase());\r\n        this.popupRef.instance.activeIndex = activeIndex > -1 ? activeIndex : 0;\r\n      }\r\n      this.showSource(source, isOpen, false);\r\n    });\r\n  }\r\n\r\n  hidePopup = () => {\r\n    if (this.popupRef) {\r\n      this.popupRef.instance.isOpen = false;\r\n      removeClassFromOrigin(this.elementRef);\r\n      this.changeDropDownStatus.emit(false);\r\n      this.toggleChange.emit(false);\r\n    }\r\n  };\r\n\r\n  private fillPopup(source?, term?: string) {\r\n    this.position = this.positionService.position(this.elementRef.nativeElement);\r\n    const pop = this.popupRef.instance;\r\n    pop.source = source;\r\n    pop.maxHeight = this.maxHeight;\r\n    pop.term = term;\r\n    pop.disabledKey = this.disabledKey;\r\n    pop.enableLazyLoad = this.enableLazyLoad;\r\n    pop.disabled = this.disabled;\r\n    pop.scrollStrategy = this.scrollStrategy;\r\n    pop.hidePopup = this.hidePopup;\r\n    if (this.appendToBody) {\r\n      pop.appendToBody = true;\r\n      pop.origin = new CdkOverlayOrigin(this.elementRef);\r\n      pop.width = this.dAutoCompleteWidth ? this.dAutoCompleteWidth : this.elementRef.nativeElement.offsetWidth;\r\n      pop.cdkOverlayOffsetY = this.cdkOverlayOffsetY;\r\n    } else {\r\n      pop.appendToBody = false;\r\n    }\r\n    [\r\n      'formatter',\r\n      'itemTemplate',\r\n      'noResultItemTemplate',\r\n      'cssClass',\r\n      'dropdown',\r\n      'popTipsText',\r\n      'position',\r\n      'overview',\r\n      'showAnimation',\r\n      'customViewTemplate',\r\n      'customViewDirection',\r\n    ].forEach((key) => {\r\n      if (this[key] !== undefined) {\r\n        pop[key] = this[key];\r\n      }\r\n    });\r\n  }\r\n\r\n  private writeInputValue(value) {\r\n    this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\r\n  }\r\n\r\n  private clearInputValue() {\r\n    this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');\r\n  }\r\n\r\n  private unSubscription() {\r\n    if (this.subscription) {\r\n      this.subscription.unsubscribe();\r\n      this.subscription = null;\r\n    }\r\n  }\r\n\r\n  onTermChange(term) {\r\n    this.value = term;\r\n    if (this.popupRef) {\r\n      this.popupRef.instance.term = term;\r\n    }\r\n    this.onChange(term);\r\n  }\r\n\r\n  private registerInputEvent(elementRef: ElementRef) {\r\n    return fromEvent(elementRef.nativeElement, 'input').pipe(\r\n      map((e: any) => e.target.value),\r\n      filter((term) => !this.disabled && this.searchFn && term.length >= 0),\r\n      debounceTime(this.delay),\r\n      tap((term) => this.onTermChange(term)),\r\n      switchMap((term) => this.searchFn(term, this))\r\n    );\r\n  }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LoadingModule } from 'ng-devui/loading';\nimport { PositioningModule } from 'ng-devui/position';\nimport { HighlightModule, LazyLoadModule } from 'ng-devui/utils';\nimport { AutoCompleteConfig } from './auto-complete-config';\nimport { AutoCompletePopupComponent } from './auto-complete-popup.component';\nimport { AutoCompleteDirective } from './auto-complete.directive';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, OverlayModule, LazyLoadModule, LoadingModule, PositioningModule, HighlightModule],\n  exports: [AutoCompleteDirective, AutoCompletePopupComponent],\n  declarations: [AutoCompleteDirective, AutoCompletePopupComponent],\n  providers: [AutoCompleteConfig],\n\n})\nexport class AutoCompleteModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AutoCompleteConfig","i3","i5","i2"],"mappings":"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"}