{"version":3,"file":"ng-devui-tags-input.mjs","sources":["../../devui/tags-input/tags.input.component.ts","../../devui/tags-input/tags.input.component.html","../../devui/tags-input/tags.input.module.ts","../../devui/tags-input/ng-devui-tags-input.ts"],"sourcesContent":["import { ConnectedPosition } from '@angular/cdk/overlay';\r\nimport {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\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 { I18nInterface, I18nService } from 'ng-devui/i18n';\r\nimport { ToggleMenuContainerComponent, ToggleMenuListComponent, ToggleMenuSearchComponent } from 'ng-devui/toggle-menu';\r\nimport { AppendToBodyDirection, AppendToBodyScrollStrategyType, DevConfigService, WithConfig } from 'ng-devui/utils';\r\nimport { isEmpty } from 'lodash-es';\r\nimport { BehaviorSubject, fromEvent, Observable, of, Subscription } from 'rxjs';\r\nimport { debounceTime, map, switchMap } from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'd-tags-input',\r\n  templateUrl: './tags.input.component.html',\r\n  styleUrls: ['./tags.input.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => TagsInputComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n  exportAs: 'TagsInput',\r\n  preserveWhitespaces: false,\r\n})\r\nexport class TagsInputComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges, AfterViewInit {\r\n  /**\r\n   * 【必选】记录输入的标签\r\n   */\r\n  @Input() tags = [];\r\n  /**\r\n   * 【可选】disabled 灰化状态\r\n   */\r\n  @Input() disabled = false;\r\n  /**\r\n   * 【可选】使用的属性名\r\n   */\r\n  @Input() displayProperty = 'name';\r\n  /**\r\n   * 【可选】输入的placeholder\r\n   */\r\n  @Input() placeholder = '';\r\n  /**\r\n   * 【可选】达到最大值时可自定义placeholder\r\n   */\r\n  @Input() maxPlaceholder: string;\r\n  /**\r\n   * 【可选】输入标签的最小长度\r\n   */\r\n  @Input() minLength = 3;\r\n  /**\r\n   * 【可选】输入标签的最大长度, 524288为 input 支持最大值\r\n   */\r\n  @Input() maxLength = 524288;\r\n  /**\r\n   * 【可选】标签的最小个数\r\n   */\r\n  @Input() minTags = 0;\r\n  /**\r\n   * 【可选】标签的最大个数\r\n   */\r\n  @Input() maxTags: number = Number.MAX_SAFE_INTEGER;\r\n  /**\r\n   * 【可选】输入框的spellcheck\r\n   */\r\n  @Input() spellcheck = true;\r\n  /**\r\n   * 【可选】是否appendToBody\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  /**\r\n   * 【可选】是否虚拟滚动\r\n   */\r\n  @Input() virtualScroll = false;\r\n  /**\r\n   * 【可选】是否使用下拉列表\r\n   */\r\n  @Input() showSuggestion = true;\r\n  /**\r\n   * 【可选】下拉选项\r\n   */\r\n  @Input() suggestionList: any = [];\r\n  /**\r\n   * 【可选】是否按空格添加tag\r\n   */\r\n  @Input() isAddBySpace = true;\r\n  /**\r\n   * 【可选】默认两行显示，false 则单行显示\r\n   */\r\n  @Input() multiline = true;\r\n  /**\r\n   * 【可选】已选中标签容器最大高度\r\n   */\r\n  @Input() maxHeight: string;\r\n  @Input() generateOptionFromInput = true;\r\n  /**\r\n   * 【可选】大小写敏感\r\n   */\r\n  @Input() caseSensitivity = false;\r\n  @Input() itemTemplate: TemplateRef<any>;\r\n  @Input() tagTemplate: TemplateRef<any>;\r\n  @Input() noResultItemTemplate: TemplateRef<any>;\r\n  @Input() checkBeforeGenerate: (newTag: string) => boolean;\r\n  @Input() checkBeforeAdd: (newTag: string) => boolean | Promise<boolean> | Observable<boolean>;\r\n  @Input() @WithConfig() showAnimation = true;\r\n  @Input() @WithConfig() styleType = 'default';\r\n  /**\r\n   * 输出函数，当选中某个选项项后，将会调用此函数，参数为当前选择项的值。如果需要获取所有选择状态的值，请参考(ngModelChange)方法\r\n   */\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  @Output() searchChange = new EventEmitter<any>();\r\n  @ViewChild('tagsInputWrapper', { static: true }) tagsInputWrapperItem: ElementRef;\r\n  @ViewChild(ToggleMenuContainerComponent) selectBoxContainer: ToggleMenuContainerComponent;\r\n  @ViewChild(ToggleMenuListComponent) selectBox: ToggleMenuListComponent;\r\n  @ViewChild(ToggleMenuSearchComponent) searchBox: ToggleMenuSearchComponent;\r\n\r\n  get getPlaceHolder() {\r\n    const maxPlaceholder =\r\n      this.maxPlaceholder === undefined ? `${this.i18nTagsInputText.tagsReachMaxNumber}${this.maxTags}` : this.maxPlaceholder;\r\n    return this.selectedItems.length >= this.maxTags ? maxPlaceholder : this.placeholder;\r\n  }\r\n\r\n  newTag = '';\r\n  availableOptions = [];\r\n  selectedItems = [];\r\n  /**\r\n   * 对于用户传入的suggestionList不做修改，数据的操作在_suggestionList上进行\r\n   */\r\n  _suggestionList = [];\r\n  newTagValid = false;\r\n  isReduce = false;\r\n  isOpen = false;\r\n  inputEvent: any;\r\n  blurEventSubscription: Subscription;\r\n  valueParser: (item: any) => any;\r\n  searchFn: (term: string) => Observable<Array<{ id: string | number; option: any }>>;\r\n\r\n  private DEBOUNCE_TIME = 300;\r\n  private sourceSubscription: BehaviorSubject<any>;\r\n  private KEYS: any = {\r\n    backspace: 8,\r\n    tab: 9,\r\n    enter: 13,\r\n    escape: 27,\r\n    space: 32,\r\n    up: 38,\r\n    down: 40,\r\n    left: 37,\r\n    right: 39,\r\n    delete: 46,\r\n    comma: 188,\r\n  };\r\n  private i18nSubscription: Subscription;\r\n  public i18nCommonText: I18nInterface['common'];\r\n  public i18nTagsInputText: I18nInterface['tagsInput'];\r\n  private onChange = (_: any) => null;\r\n  private onTouch = () => null;\r\n\r\n  constructor(private i18n: I18nService, private devConfigService: DevConfigService, private cdr: ChangeDetectorRef) {}\r\n\r\n  private setI18nText() {\r\n    this.i18nCommonText = this.i18n.getI18nText().common;\r\n    this.i18nTagsInputText = this.i18n.getI18nText().tagsInput;\r\n    this.i18nSubscription = this.i18n.langChange().subscribe((data) => {\r\n      this.i18nCommonText = data.common;\r\n      this.i18nTagsInputText = data.tagsInput;\r\n    });\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    if (!value) {\r\n      return;\r\n    }\r\n    this.tags = value;\r\n    this.isReduce = false;\r\n    this.reduceSuggestionList();\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouch = fn;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.setI18nText();\r\n    this.valueParser = (item) => {\r\n      const str = String(item) ? item.toString() : '';\r\n      const obj = typeof item === 'object' ? item[this.displayProperty] || '' : str;\r\n      return this.tagTemplate ? item : obj;\r\n    };\r\n    this.newTag = '';\r\n    this._suggestionList = [...this.suggestionList];\r\n    this.searchFn = (term: any) => {\r\n      const data = this.showSuggestion && this._suggestionList ? this._suggestionList : [];\r\n      const matchItem = data.find((item) =>\r\n        this.caseSensitivity ? item[this.displayProperty] === term : item[this.displayProperty].toLowerCase() === term.toLowerCase()\r\n      );\r\n      const result = data.filter((item) => {\r\n        const str = this.caseSensitivity\r\n          ? item[this.displayProperty].indexOf(term) !== -1\r\n          : item[this.displayProperty].toLowerCase().indexOf(term.toLowerCase()) !== -1;\r\n        return term === '' ? true : str;\r\n      });\r\n      return of(matchItem ? [matchItem] : result);\r\n    };\r\n    this.registerFilterChange();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (this.searchBox) {\r\n      const inputDom = this.searchBox.el.nativeElement.querySelector('input');\r\n      // input失焦不冒泡，直接监听事件处理会早于list中点击事件传递到该组件，因此增加debounceTime待下拉列表关闭后判断是否插入标签\r\n      this.blurEventSubscription = fromEvent(inputDom, 'blur')\r\n        .pipe(debounceTime(this.DEBOUNCE_TIME))\r\n        .subscribe(() => {\r\n          if (this.isOpen) {\r\n            return;\r\n          }\r\n          if (this.generateOptionFromInput && !isEmpty(this.newTag)) {\r\n            this.addTag();\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes && changes.suggestionList && changes.suggestionList.currentValue) {\r\n      this._suggestionList = [...this.suggestionList];\r\n      this.reduceSuggestionList();\r\n      if (this.sourceSubscription && this.searchFn) {\r\n        this.sourceSubscription.next('');\r\n      }\r\n    }\r\n    if (changes && changes.tags && changes.tags.currentValue) {\r\n      this.reduceSuggestionList();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.sourceSubscription) {\r\n      this.sourceSubscription.unsubscribe();\r\n    }\r\n    if (this.blurEventSubscription) {\r\n      this.blurEventSubscription.unsubscribe();\r\n    }\r\n    if (this.i18nSubscription) {\r\n      this.i18nSubscription.unsubscribe();\r\n    }\r\n  }\r\n\r\n  registerFilterChange() {\r\n    this.sourceSubscription = new BehaviorSubject<any>('');\r\n    this.sourceSubscription\r\n      .pipe(\r\n        map((term) => {\r\n          this.tagIsValid();\r\n          return term;\r\n        }),\r\n        switchMap((term) => this.searchFn(term))\r\n      )\r\n      .subscribe((options) => {\r\n        this.availableOptions = options;\r\n        const flag = this.checkBeforeGenerate?.(this.newTag);\r\n        const flags = [this.generateOptionFromInput, !!this.newTag, this.newTagValid, flag];\r\n        if (!flags.includes(false)) {\r\n          const obj = { isDevuiTagsInputCreated: true };\r\n          obj[this.displayProperty] = this.newTag;\r\n          if (this.availableOptions.length && this.availableOptions[0].isDevuiTagsInputCreated) {\r\n            this.availableOptions[0] = obj;\r\n          } else {\r\n            this.availableOptions.unshift(obj);\r\n          }\r\n        }\r\n        if (this.selectBoxContainer) {\r\n          this.selectBoxContainer.updatePosition();\r\n        }\r\n        if (this.selectBox) {\r\n          this.selectBox.resetIndex(!options.length);\r\n        }\r\n      });\r\n  }\r\n\r\n  checkIsIncludes(option, item, isString?) {\r\n    const key = this.displayProperty;\r\n    const value = isString ? item : item[key];\r\n    return this.caseSensitivity ? option[key] === value : option[key].toLowerCase() === value.toLowerCase();\r\n  }\r\n\r\n  reduceSuggestionList() {\r\n    this.selectedItems = this.tags.map((option, id) => ({ option, id }));\r\n    if (this.isReduce) {\r\n      return;\r\n    }\r\n    if (this.suggestionList.length > 0) {\r\n      this.isReduce = true;\r\n      // 使用用户最初传入的数据来进行过滤\r\n      this._suggestionList = this.suggestionList.filter((suggestion) => {\r\n        return this.selectedItems.findIndex(({ option }) => this.checkIsIncludes(option, suggestion)) === -1;\r\n      });\r\n      if (this.sourceSubscription && this.searchFn) {\r\n        this.sourceSubscription.next('');\r\n      }\r\n    }\r\n  }\r\n\r\n  host_click() {\r\n    if (!this.disabled) {\r\n      const dom = this.searchBox.el.nativeElement.querySelector('input');\r\n      if (dom && this.selectBox) {\r\n        dom.focus();\r\n        if (this.selectBox.availableOptions.length) {\r\n          this.selectBox.resetIndex(false);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  passEvent(data) {\r\n    const { event, type } = data;\r\n    switch (type) {\r\n    case 'keydown.enter':\r\n    case 'blur':\r\n      // keydown.enter 和 keydown 都接收会重复处理\r\n      // 点击会聚焦input，input失焦事件不会冒泡，单独处理\r\n      break;\r\n    case 'keydown': {\r\n      const hotkeys = [this.KEYS.enter, this.KEYS.tab];\r\n      if (this.isAddBySpace) {\r\n        hotkeys.push(this.KEYS.space);\r\n      }\r\n      if (hotkeys.includes(event.keyCode)) {\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        if (this.selectBox?.selectIndex !== -1) {\r\n          this.addSuggestionByIndex(this.selectBox.selectIndex, this.availableOptions[this.selectBox.selectIndex]);\r\n        } else if (this.generateOptionFromInput) {\r\n          this.addTag();\r\n        }\r\n      }\r\n      break;\r\n    }\r\n    default:\r\n      this.inputEvent = { event, type };\r\n    }\r\n  }\r\n\r\n  addSuggestionByIndex(index, value) {\r\n    if (\r\n      index < 0 ||\r\n      index >= this.availableOptions.length ||\r\n      this.maxTags <= this.selectedItems.length ||\r\n      this.selectedItems.findIndex(({ option }) => this.checkIsIncludes(option, value)) !== -1\r\n    ) {\r\n      return;\r\n    }\r\n    this.canAdd(value).then((result) => {\r\n      if (!result) {\r\n        return;\r\n      }\r\n      const tag = this.availableOptions[index];\r\n      const isCreated = tag.isDevuiTagsInputCreated;\r\n      delete tag.isDevuiTagsInputCreated;\r\n      this.checkMaxTags(tag);\r\n      this.onChange(this.selectedItems.map((tagItem) => tagItem.option));\r\n      this.valueChange.emit(tag);\r\n      if (!isCreated) {\r\n        const suggestionListIndex = this._suggestionList.findIndex((item) => this.checkIsIncludes(item, value));\r\n        this._suggestionList.splice(suggestionListIndex, 1);\r\n      }\r\n      this.delayResetNewTag();\r\n      this.sourceSubscription.next('');\r\n    });\r\n  }\r\n\r\n  removeTag(data) {\r\n    const { index } = data;\r\n    // 立即移除会导致toggle-menu-container无法判断event.target是否在容器中，从而关闭下拉菜单\r\n    setTimeout(() => {\r\n      if (index < 0 || index >= this.selectedItems.length) {\r\n        return;\r\n      }\r\n      // onPush下 数组长度变化不会触发变更检测\r\n      this.availableOptions = [...this.availableOptions, this.selectedItems[index]?.option];\r\n      this._suggestionList = [...this._suggestionList, this.selectedItems[index]?.option];\r\n      const tag = this.selectedItems[index].option;\r\n      this.selectedItems.splice(index, 1);\r\n      if (this.selectedItems.length === 0) {\r\n        this.selectBoxContainer.updatePosition();\r\n      }\r\n      this.onChange(this.selectedItems.map((tagItem) => tagItem.option));\r\n      this.valueChange.emit(tag);\r\n    });\r\n  }\r\n\r\n  tagIsValid() {\r\n    const tag = this.newTag;\r\n    const result =\r\n      tag &&\r\n      tag.length >= this.minLength &&\r\n      tag.length <= this.maxLength &&\r\n      (this.showSuggestion ? this._suggestionList.findIndex((item) => this.checkIsIncludes(item, tag, true)) === -1 : true) &&\r\n      this.selectedItems.findIndex(({ option }) => this.checkIsIncludes(option, tag, true)) === -1 &&\r\n      !this.isEmptyString(tag);\r\n    this.newTagValid = tag === '' || !!result;\r\n    return result;\r\n  }\r\n\r\n  isEmptyString(tag) {\r\n    const temp = tag.match(/\\s/g);\r\n    if (temp) {\r\n      return tag.length === temp.length;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  addTag() {\r\n    this.canAdd()\r\n      .then((result) => {\r\n        if (result && this.maxTags > this.selectedItems.length) {\r\n          if (this.tagIsValid()) {\r\n            const obj = {};\r\n            obj[this.displayProperty] = this.newTag;\r\n            this.checkMaxTags(obj);\r\n            this.onChange(this.selectedItems.map((tagItem) => tagItem.option));\r\n            this.valueChange.emit(this.newTag);\r\n          }\r\n        } else {\r\n          this.newTagValid = false;\r\n        }\r\n      })\r\n      .finally(() => {\r\n        if (this.newTag && this.newTagValid) {\r\n          this.delayResetNewTag();\r\n          this.sourceSubscription.next('');\r\n        }\r\n      });\r\n  }\r\n\r\n  canAdd(value?) {\r\n    let checkResult = Promise.resolve(true);\r\n    if (this.checkBeforeAdd) {\r\n      const result: any = this.checkBeforeAdd(value || this.newTag);\r\n      if (typeof result !== 'undefined') {\r\n        if (result.then) {\r\n          checkResult = result;\r\n        } else if (result.subscribe) {\r\n          checkResult = (result as Observable<boolean>).toPromise();\r\n        } else {\r\n          checkResult = Promise.resolve(result);\r\n        }\r\n      }\r\n    }\r\n    return checkResult;\r\n  }\r\n\r\n  checkMaxTags(tag) {\r\n    this.selectedItems.push({ id: this.selectedItems.length, option: tag });\r\n    if (this.selectedItems.length >= this.maxTags) {\r\n      this.isOpen = false;\r\n    }\r\n  }\r\n\r\n  setValue({ option, index }) {\r\n    this.addSuggestionByIndex(index, option);\r\n  }\r\n\r\n  searchInputValueChange(event) {\r\n    if (this.selectBox) {\r\n      this.selectBox.selectIndex = -1;\r\n    }\r\n    this.newTag = (event || '').trim();\r\n    this.searchChange.emit(this.newTag);\r\n    this.sourceSubscription.next(this.newTag);\r\n  }\r\n\r\n  toggleChangeFn(event) {\r\n    if (!event) {\r\n      this.onTouch();\r\n      this.cdr.detectChanges();\r\n    }\r\n    this.isOpen = event;\r\n  }\r\n\r\n  delayResetNewTag() {\r\n    setTimeout(() => {\r\n      // 放在timeout里是因为如果用空格添加tag，会导致添加之后输入框里有个空格。\r\n      this.newTag = '';\r\n    }, 50);\r\n  }\r\n}\r\n","<div\r\n  #tagsInputWrapper\r\n  class=\"devui-tags-host {{ multiline ? 'multi-inline' : 'init-inline' }}\"\r\n  [class.devui-gray-style]=\"styleType === 'gray'\"\r\n  [class.disabled]=\"disabled || selectedItems?.length >= maxTags\"\r\n  tabindex=\"-1\"\r\n  (click)=\"host_click()\"\r\n>\r\n  <d-toggle-menu-container\r\n    [isOpen]=\"isOpen\"\r\n    [appendToBody]=\"appendToBody\"\r\n    [appendToBodyDirections]=\"appendToBodyDirections\"\r\n    [appendToBodyScrollStrategy]=\"appendToBodyScrollStrategy\"\r\n    [selectWrapper]=\"tagsInputWrapperItem\"\r\n    [disabled]=\"disabled || selectedItems?.length >= maxTags\"\r\n    [paused]=\"!showSuggestion\"\r\n    [toggleOnFocus]=\"true\"\r\n    [showAnimation]=\"showAnimation\"\r\n    [closeScope]=\"'blank'\"\r\n    (passEvent)=\"passEvent($event)\"\r\n    (toggleChange)=\"toggleChangeFn($event)\"\r\n  >\r\n    <d-toggle-menu-label\r\n      [multiItems]=\"selectedItems\"\r\n      [valueParser]=\"valueParser\"\r\n      [disabled]=\"disabled\"\r\n      [maxHeight]=\"maxHeight\"\r\n      [maxWidth]=\"'100%'\"\r\n      [mode]=\"multiline ? 'multiple-line' : 'scroll-y'\"\r\n      [customViewTemplate]=\"tagTemplate\"\r\n      (removeChange)=\"removeTag($event)\"\r\n    ></d-toggle-menu-label>\r\n    <d-toggle-menu-search\r\n      *ngIf=\"!disabled || selectedItems?.length === 0\"\r\n      [inputValue]=\"newTag\"\r\n      [maxLength]=\"maxLength\"\r\n      [searchPlaceholder]=\"getPlaceHolder\"\r\n      [searchFn]=\"searchFn\"\r\n      [spellcheck]=\"spellcheck\"\r\n      [isShowSearchIcon]=\"false\"\r\n      [disabled]=\"disabled || selectedItems?.length >= maxTags\"\r\n      [delay]=\"0\"\r\n      (searchInputValueChange)=\"searchInputValueChange($event)\"\r\n    ></d-toggle-menu-search>\r\n    <d-toggle-menu-list\r\n      [eventHandle]=\"inputEvent\"\r\n      [options]=\"availableOptions\"\r\n      [value]=\"selectedItems\"\r\n      [virtualScroll]=\"virtualScroll\"\r\n      [hasSelectIndex]=\"true\"\r\n      [isFiltering]=\"newTag?.length > 0\"\r\n      [listItemTemplate]=\"listItem\"\r\n      [noResultItemTemplate]=\"noResultItemTemplate\"\r\n      [closeScope]=\"'blank'\"\r\n      (toggleChange)=\"toggleChangeFn($event)\"\r\n      (valueChange)=\"setValue($event)\"\r\n    >\r\n      <ng-template #listItem let-item=\"item\" let-index=\"index\" let-selectIndex=\"selectIndex\" let-choose=\"choose\">\r\n        <d-toggle-menu-list-item\r\n          [item]=\"item\"\r\n          [index]=\"index\"\r\n          [selectIndex]=\"selectIndex\"\r\n          [highlightToggle]=\"false\"\r\n          [customTemplate]=\"itemTemplate\"\r\n          [filterKey]=\"displayProperty\"\r\n          (chooseItem)=\"choose($event)\"\r\n        >\r\n          <span itemSuffix *ngIf=\"index === 0 && item.option.isDevuiTagsInputCreated\" class=\"devui-tags-create-item\">\r\n            {{ i18nTagsInputText?.create }}\r\n          </span>\r\n        </d-toggle-menu-list-item>\r\n      </ng-template>\r\n    </d-toggle-menu-list>\r\n  </d-toggle-menu-container>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ToggleMenuModule } from 'ng-devui/toggle-menu';\nimport { TagsInputComponent } from './tags.input.component';\n@NgModule({\n  imports: [CommonModule, FormsModule, ToggleMenuModule],\n  exports: [TagsInputComponent],\n  declarations: [TagsInputComponent],\n})\nexport class TagsInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}