{"version":3,"file":"ng-nest-ui-tag.mjs","sources":["../../../../lib/ng-nest/ui/tag/tag.property.ts","../../../../lib/ng-nest/ui/tag/tag.component.ts","../../../../lib/ng-nest/ui/tag/tag.component.html","../../../../lib/ng-nest/ui/tag/tag.module.ts","../../../../lib/ng-nest/ui/tag/ng-nest-ui-tag.ts"],"sourcesContent":["import { XPropertyFunction, XToBoolean } from '@ng-nest/ui/core';\r\nimport { Component, input, output, model } from '@angular/core';\r\nimport type { XType, XSize, XBoolean } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Tag\r\n * @selector x-tag\r\n * @decorator component\r\n */\r\nexport const XTagPrefix = 'x-tag';\r\nconst X_TAG_CONFIG_NAME = 'tag';\r\n\r\n/**\r\n * Tag Property\r\n */\r\n@Component({ selector: `${XTagPrefix}-property`, template: '' })\r\nexport class XTagProperty extends XPropertyFunction(X_TAG_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 标签样式类型\r\n   * @en_US Label style type\r\n   */\r\n  readonly type = input<XType>('initial');\r\n  /**\r\n   * @zh_CN 尺寸\r\n   * @en_US Size\r\n   */\r\n  readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n  /**\r\n   * @zh_CN 显示边框\r\n   * @en_US Display Border\r\n   */\r\n  readonly bordered = input<boolean, XBoolean>(this.config?.bordered ?? true, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 显示关闭按钮\r\n   * @en_US Show close button\r\n   */\r\n  readonly closable = input<boolean, XBoolean>(this.config?.closable ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 深色主题\r\n   * @en_US Dark theme\r\n   */\r\n  readonly dark = input<boolean, XBoolean>(this.config?.dark ?? false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 可选择标签\r\n   * @en_US checked\r\n   */\r\n  readonly checked = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 手动控制选择标签是否选中\r\n   * @en_US Manual control\r\n   */\r\n  readonly manual = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 选中\r\n   * @en_US Selected\r\n   */\r\n  readonly selected = model<boolean>(false);\r\n  /**\r\n   * @zh_CN 样式\r\n   * @en_US Style\r\n   */\r\n  readonly style = input<{ [cssStyle: string]: any }>();\r\n  /**\r\n   * @zh_CN 点击关闭的事件\r\n   * @en_US Click to close the event\r\n   */\r\n  readonly close = output<Event>();\r\n}\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  HostBinding,\r\n  HostListener,\r\n  computed,\r\n  signal,\r\n  viewChild,\r\n  ElementRef\r\n} from '@angular/core';\r\nimport { XTagPrefix, XTagProperty } from './tag.property';\r\nimport { XIsEmpty } from '@ng-nest/ui/core';\r\nimport { NgClass } from '@angular/common';\r\nimport { XIconComponent } from '@ng-nest/ui/icon';\r\n\r\n@Component({\r\n  selector: `${XTagPrefix}`,\r\n  imports: [NgClass, XIconComponent],\r\n  templateUrl: './tag.component.html',\r\n  styleUrls: ['./tag.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XTagComponent extends XTagProperty {\r\n  animating = signal(false);\r\n  hasContent = signal(true);\r\n  tag = viewChild.required<ElementRef<HTMLElement>>('tag');\r\n\r\n  @HostBinding('animate.enter') animateEnter = 'x-base-enter';\r\n  @HostBinding('animate.leave') animateLeave = 'x-base-leave';\r\n\r\n  @HostListener('animationend') done() {\r\n    this.animating.set(false);\r\n  }\r\n  @HostListener('animationstart') start() {\r\n    this.animating.set(true);\r\n  }\r\n\r\n  classMap = computed(() => ({\r\n    [`${XTagPrefix}-${this.type()}`]: !XIsEmpty(this.type()),\r\n    [`${XTagPrefix}-${this.size()}`]: !XIsEmpty(this.size()),\r\n    [`${XTagPrefix}-dark`]: this.dark(),\r\n    [`${XTagPrefix}-checked`]: this.checked()\r\n  }));\r\n\r\n  onClick() {\r\n    if (!this.checked() || this.manual()) return;\r\n    this.selected.update((x) => !x);\r\n  }\r\n\r\n  onClose(event: Event) {\r\n    if (this.disabled()) return;\r\n    this.close.emit(event);\r\n  }\r\n\r\n  ngAfterContentChecked() {\r\n    const el = this.tag().nativeElement;\r\n    this.hasContent.set(el.children.length > 0 || el.textContent!.trim().length > 0);\r\n  }\r\n}\r\n","<div\r\n  #tag\r\n  class=\"x-tag\"\r\n  [ngClass]=\"classMap()\"\r\n  [style]=\"style()\"\r\n  [class.x-disabled]=\"disabled()\"\r\n  [class.x-tag-bordered]=\"bordered()\"\r\n  [class.x-tag-selected]=\"selected()\"\r\n  [class.x-tag-content-empty]=\"!hasContent()\"\r\n  (click)=\"onClick()\"\r\n>\r\n  <ng-content></ng-content>\r\n  @if (closable()) {\r\n    <x-icon type=\"fto-x\" (click)=\"onClose($event)\"></x-icon>\r\n  }\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XTagComponent } from './tag.component';\r\n\r\n@NgModule({\r\n  exports: [XTagComponent],\r\n  imports: [XTagComponent]\r\n})\r\nexport class XTagModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}