{"version":3,"file":"ng-devui-tags.mjs","sources":["../../devui/tags/tag.component.ts","../../devui/tags/tag.component.html","../../devui/tags/tags.component.ts","../../devui/tags/tags.component.html","../../devui/tags/tags.module.ts","../../devui/tags/ng-devui-tags.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport type ITagMode = 'default' | 'checkable' | 'closeable';\nexport type ITagSize = 'md' | 'lg';\n\n@Component({\n  selector: 'd-tag',\n  templateUrl: './tag.component.html',\n  styleUrls: ['./tag.component.scss'],\n  exportAs: 'Tag',\n  preserveWhitespaces: false,\n})\nexport class TagComponent implements OnChanges {\n  /**\n   * 【必选】记录输入的标签\n   */\n  @Input() tag: any;\n  @Input() labelStyle = '';\n  @Input() customColor = '';\n  // @deprecated\n  @Input() deletable = false;\n  @Input() titleContent: string;\n  @Input() mode: ITagMode = 'default';\n  @Input() size: ITagSize = 'md';\n  @Input() checked = false;\n  @Input() maxWidth: string;\n  @Input() customViewTemplate: TemplateRef<any>;\n  @Input() beforeDelete: (tag?: any) => boolean | Promise<boolean> | Observable<boolean>;\n  /**\n   * tag被删除后触发\n   */\n  @Output() tagDelete = new EventEmitter<any>();\n  @Output() checkedChange = new EventEmitter<boolean>();\n\n  currentTag: string;\n  deleteTag = false;\n  colorMap = {\n    'blue-w98': '#3383ff',\n    'aqua-w98': '#39afcc',\n    'olivine-w98': '#2fa898',\n    'green-w98': '#4eb15e',\n    'yellow-w98': '#b08d1a',\n    'orange-w98': '#d47f35',\n    'red-w98': '#f66f6a',\n    'pink-w98': '#f3689a',\n    'purple-w98': '#a97af8',\n  };\n\n  get isColorfulTag(): boolean {\n    return !!(this.colorMap[this.labelStyle] || (this.customColor && this.customColor !== ''));\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { tag } = changes;\n    if (tag) {\n      this.currentTag = typeof this.tag === 'string' ? this.tag : '';\n    }\n  }\n\n  removeTag($event, tag) {\n    this.canDeleteTag(tag).then((canDelete) => {\n      if (!canDelete) {\n        return;\n      }\n      this.deleteTag = true;\n      this.tagDelete.emit({ tag: tag, event: $event });\n    });\n  }\n\n  tagClick() {\n    if (this.mode === 'checkable') {\n      this.checked = !this.checked;\n      this.checkedChange.emit(this.checked);\n    }\n  }\n\n  canDeleteTag(tag) {\n    let closeResult = Promise.resolve(true);\n\n    if (this.beforeDelete) {\n      const result: any = this.beforeDelete(tag);\n      if (typeof result !== 'undefined') {\n        if (result.then) {\n          closeResult = result;\n        } else if (result.subscribe) {\n          closeResult = (result as Observable<boolean>).toPromise();\n        } else {\n          closeResult = Promise.resolve(result);\n        }\n      }\n    }\n\n    return closeResult;\n  }\n}\n","<span\r\n  class=\"devui-tag-item {{ size }}-size {{ labelStyle }}\"\r\n  [style.display]=\"deleteTag ? 'none' : 'block'\"\r\n  [ngClass]=\"{\r\n    'devui-colorful-tag': isColorfulTag,\r\n    'devui-selected-tag': checked,\r\n    'devui-deletable-tag': mode === 'closeable' || deletable,\r\n    'devui-checkable-tag': mode === 'checkable'\r\n  }\"\r\n  [ngStyle]=\"{\r\n    'border-color': customColor,\r\n    'background-color': isColorfulTag ? (checked ? customColor : '') : '',\r\n    color: isColorfulTag ? (checked ? '#fff' : customColor) : '',\r\n    cursor: this.mode === 'checkable' ? 'pointer' : ''\r\n  }\"\r\n  title=\"{{ titleContent ? titleContent : currentTag }}\"\r\n  (click)=\"tagClick()\"\r\n>\r\n  <div class=\"content-wrapper\" [ngStyle]=\"{ 'background-color': colorMap[labelStyle] || customColor }\"></div>\r\n  <span *ngIf=\"!customViewTemplate\" [class.devui-max-width-tag]=\"maxWidth\" [style.maxWidth]=\"maxWidth || ''\">{{ currentTag }}</span>\r\n  <ng-template *ngIf=\"customViewTemplate\" [ngTemplateOutlet]=\"customViewTemplate\" [ngTemplateOutletContext]=\"{ tag: tag }\"></ng-template>\r\n  <a class=\"remove-button\" *ngIf=\"mode === 'closeable' || deletable\" (click)=\"removeTag($event, tag)\">\r\n    <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n      <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n        <g transform=\"translate(3.000000, 3.000000)\" fill=\"#71757F\" fill-rule=\"nonzero\">\r\n          <path\r\n            [ngStyle]=\"{ fill: isColorfulTag ? (checked ? '#fff' : customColor) : '' }\"\r\n            d=\"M-0.353553391,-0.353553391 C-0.179987039,-0.527119742 0.0894373624,-0.546404893 0.284305503,-0.411408841 L0.353553391,-0.353553391 L10.3535534,9.64644661 C10.5488155,9.84170876 10.5488155,10.1582912 10.3535534,10.3535534 C10.179987,10.5271197 9.91056264,10.5464049 9.7156945,10.4114088 L9.64644661,10.3535534 L-0.353553391,0.353553391 C-0.548815536,0.158291245 -0.548815536,-0.158291245 -0.353553391,-0.353553391 Z\"\r\n          ></path>\r\n          <path\r\n            [ngStyle]=\"{ fill: isColorfulTag ? (checked ? '#fff' : customColor) : '' }\"\r\n            d=\"M9.64644661,-0.353553391 C9.84170876,-0.548815536 10.1582912,-0.548815536 10.3535534,-0.353553391 C10.5271197,-0.179987039 10.5464049,0.0894373624 10.4114088,0.284305503 L10.3535534,0.353553391 L0.353553391,10.3535534 C0.158291245,10.5488155 -0.158291245,10.5488155 -0.353553391,10.3535534 C-0.527119742,10.179987 -0.546404893,9.91056264 -0.411408841,9.7156945 L-0.353553391,9.64644661 L9.64644661,-0.353553391 Z\"\r\n          ></path>\r\n        </g>\r\n      </g>\r\n    </svg>\r\n  </a>\r\n</span>\r\n","import {\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChild,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  Output,\r\n  QueryList,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewChild,\r\n  ViewChildren,\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ITagMode, ITagSize } from './tag.component';\r\n\r\n@Component({\r\n  selector: 'd-tags',\r\n  templateUrl: './tags.component.html',\r\n  styleUrls: ['./tags.component.scss'],\r\n  exportAs: 'Tags',\r\n  preserveWhitespaces: false,\r\n})\r\nexport class TagsComponent implements OnInit, AfterViewInit, OnChanges {\r\n  /**\r\n   * 【必选】记录输入的标签\r\n   */\r\n  @Input() tags = [];\r\n  /**\r\n   * 【可选】使用的属性名\r\n   */\r\n  @Input() displayProperty = '';\r\n\r\n  /**\r\n   * @deprecated\r\n   */\r\n  @Input() deletable = false;\r\n  @Input() mode: ITagMode = 'default';\r\n  @Input() size: ITagSize = 'md';\r\n  @Input() titleProperty = '';\r\n  @Input() hideBeyondTags = false;\r\n  @Input() beforeDelete: () => boolean | Promise<boolean> | Observable<boolean>;\r\n  @ContentChild(TemplateRef) customViewTemplate: TemplateRef<any>;\r\n  @ViewChild('suffixElement') suffixElement: ElementRef;\r\n  @ViewChild('tagsElement') tagsElement: ElementRef;\r\n  @ViewChildren('tagElement', { read: ElementRef }) viewChildren!: QueryList<ElementRef>;\r\n  /**\r\n   * tag被删除后触发\r\n   */\r\n  @Output() tagDelete = new EventEmitter<any>();\r\n\r\n  @Output() checkedChange = new EventEmitter<any>();\r\n\r\n  /**\r\n   * 多标签超出显示相关数据\r\n   */\r\n  showTags = [];\r\n  beyondTags = [];\r\n  showMore = false;\r\n  maxShowNumber: number;\r\n  tagsFatherWidth: number;\r\n  MORE_TAG_WIDTH = 30;\r\n  TAG_MARGIN = 4;\r\n\r\n  constructor(private cdr: ChangeDetectorRef) {}\r\n\r\n  ngOnInit() {\r\n    this.maxShowNumber = 0;\r\n    // TODO: 使用cloneDeep导致category-search卡顿，lodash-es报Illegal invocation非法调用错误，需调查原因，暂用循环方式替代深拷贝\r\n    if (this.hideBeyondTags) {\r\n      this.tags.forEach((item) => this.showTags.push(typeof item === 'object' ? { ...item } : item));\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (this.hideBeyondTags) {\r\n      this.calculateHideTagsStatus();\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (this.hideBeyondTags && changes.tags && !changes.tags.firstChange) {\r\n      this.maxShowNumber = 0;\r\n      this.showTags = [...this.tags];\r\n      this.calculateHideTagsStatus();\r\n    }\r\n  }\r\n\r\n  calculateHideTagsStatus() {\r\n    this.cdr.detectChanges();\r\n    let curWidth = 0;\r\n    const viewChildrenArr = this.viewChildren.toArray();\r\n    // 通过suffix添加ng-content至tags末尾，判断总宽度时不计算该部分，使得百分比宽度场景tags后可添加内容\r\n    const suffixWidth = this.suffixElement?.nativeElement.offsetWidth || 0;\r\n    this.tagsFatherWidth = this.tagsElement.nativeElement.getBoundingClientRect().width - suffixWidth;\r\n\r\n    for (let i = 0; i < viewChildrenArr.length; i++) {\r\n      if (curWidth + viewChildrenArr[i].nativeElement.offsetWidth + this.TAG_MARGIN < this.tagsFatherWidth - this.MORE_TAG_WIDTH) {\r\n        curWidth += viewChildrenArr[i].nativeElement.offsetWidth;\r\n        curWidth += this.TAG_MARGIN;\r\n        this.maxShowNumber = i + 1;\r\n      } else {\r\n        break;\r\n      }\r\n    }\r\n    if (this.maxShowNumber !== this.tags.length) {\r\n      this.showMore = true;\r\n      this.beyondTags = this.showTags.slice(this.maxShowNumber);\r\n      this.showTags.splice(this.maxShowNumber);\r\n      this.cdr.detectChanges();\r\n    } else {\r\n      this.showMore = false;\r\n    }\r\n  }\r\n\r\n  removeTag($event, tag, index) {\r\n    this.tagDelete.emit({ tag: tag, index: index, event: $event });\r\n  }\r\n\r\n  tagChecked($event, tag, index) {\r\n    this.checkedChange.emit({ tag: tag, index: index, checked: $event });\r\n  }\r\n}\r\n","<div class=\"devui-tags\" #tagsElement>\r\n  <d-tag\r\n    #tagElement\r\n    *ngFor=\"let tag of hideBeyondTags ? showTags : tags; let index = index\"\r\n    [tag]=\"displayProperty ? tag[displayProperty] : tag\"\r\n    [mode]=\"mode\"\r\n    [size]=\"size\"\r\n    [deletable]=\"deletable\"\r\n    [checked]=\"tag['checked']\"\r\n    [labelStyle]=\"tag['labelStyle']\"\r\n    [customColor]=\"tag['customColor']\"\r\n    [titleContent]=\"titleProperty ? tag[titleProperty] : displayProperty ? tag[displayProperty] : tag\"\r\n    [customViewTemplate]=\"customViewTemplate\"\r\n    [beforeDelete]=\"beforeDelete\"\r\n    (tagDelete)=\"removeTag($event, tag, index)\"\r\n    (checkedChange)=\"tagChecked($event, tag, index)\"\r\n  >\r\n  </d-tag>\r\n  <d-tag\r\n    class=\"show-more-tag\"\r\n    *ngIf=\"hideBeyondTags && showMore\"\r\n    dPopover\r\n    [content]=\"beyondTagsTpl\"\r\n    [controlled]=\"true\"\r\n    [trigger]=\"'hover'\"\r\n    [tag]=\"'+ ' + beyondTags.length\"\r\n    [mode]=\"'checkable'\"\r\n    [size]=\"size\"\r\n    [popoverStyle]=\"{ backgroundColor: 'var(--devui-base-bg)' }\"\r\n  ></d-tag>\r\n  <div #suffixElement class=\"devui-tags-suffix\">\r\n    <ng-content select=\"[suffix]\"></ng-content>\r\n  </div>\r\n</div>\r\n\r\n<ng-template #beyondTagsTpl>\r\n  <div class=\"beyond-tags-wrapper\">\r\n    <d-tag\r\n      class=\"beyond-tag-style\"\r\n      *ngFor=\"let tag of beyondTags; let index = index\"\r\n      [tag]=\"displayProperty ? tag[displayProperty] : tag\"\r\n      [mode]=\"mode\"\r\n      [size]=\"size\"\r\n      [deletable]=\"deletable\"\r\n      [checked]=\"tag['checked']\"\r\n      [labelStyle]=\"tag['labelStyle']\"\r\n      [customColor]=\"tag['customColor']\"\r\n      [titleContent]=\"titleProperty ? tag[titleProperty] : displayProperty ? tag[displayProperty] : tag\"\r\n      [customViewTemplate]=\"customViewTemplate\"\r\n      [beforeDelete]=\"beforeDelete\"\r\n      (tagDelete)=\"removeTag($event, tag, index)\"\r\n      (checkedChange)=\"tagChecked($event, tag, index)\"\r\n    >\r\n    </d-tag>\r\n  </div>\r\n</ng-template>\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { PopoverModule } from 'ng-devui/popover';\nimport { TagComponent } from './tag.component';\nimport { TagsComponent } from './tags.component';\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    PopoverModule\n  ],\n  exports: [\n    TagsComponent,\n    TagComponent\n  ],\n  declarations: [\n    TagsComponent,\n    TagComponent\n  ]\n})\nexport class TagsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.TagComponent"],"mappings":"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"}