{"version":3,"file":"daffodil-design-tag.mjs","sources":["../../../libs/design/tag/src/tag/tag-sizable.directive.ts","../../../libs/design/tag/src/tag/tag.component.ts","../../../libs/design/tag/src/tag/tag.component.html","../../../libs/design/tag/src/tag.ts","../../../libs/design/tag/src/daffodil-design-tag.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\nimport {\n  DaffSizableDirective,\n  DaffSizeLargeType,\n  DaffSizeMediumType,\n  DaffSizeSmallType,\n} from '@daffodil/design';\n\n/**\n * The size types that the DaffTagComponent can implement.\n */\nexport type DaffTagSize = DaffSizeSmallType | DaffSizeMediumType | DaffSizeLargeType;\n\n@Directive({})\n\nexport class DaffTagSizableDirective extends DaffSizableDirective<DaffTagSize> {}\n\n","import {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport {\n  DaffArticleEncapsulatedDirective,\n  DaffColorableDirective,\n  DaffDisableable,\n  DaffDisableableDirective,\n  DaffPrefixDirective,\n  DaffStatus,\n  DaffStatusableDirective,\n} from '@daffodil/design';\n\nimport { DaffTagSizableDirective } from './tag-sizable.directive';\n\n/**\n * DaffTagComponent is an interactive indicator and filter that can be edited or removed, used to represent selections, categories, or applied filters.\n *\n * @example\n * ```html\n * <daff-tag [dismissible]=\"true\" (closeTag)=\"onCloseTag()\">\n *   <fa-icon daffPrefix [icon]=\"faCircleCheck\"></fa-icon>\n *   Label\n * </daff-tag>\n * ```\n */\n\n@Component({\n  selector: 'daff-tag',\n  templateUrl: './tag.component.html',\n  styleUrl: './tag.component.scss',\n  hostDirectives: [\n    { directive: DaffArticleEncapsulatedDirective },\n    {\n      directive: DaffTagSizableDirective,\n      inputs: ['size'],\n    },\n    {\n      directive: DaffColorableDirective,\n      inputs: ['color'],\n    },\n    {\n      directive: DaffStatusableDirective,\n    },\n    {\n      directive: DaffDisableableDirective,\n      inputs: ['disabled'],\n    },\n  ],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    class: 'daff-tag',\n    '[attr.aria-disabled]': 'disabled ? true : null',\n    '[class.dismissible]': 'dismissible',\n  },\n  imports: [\n    FaIconComponent,\n    DaffPrefixDirective,\n  ],\n})\nexport class DaffTagComponent implements DaffDisableable {\n  /**\n   * @docs-private\n   */\n  faTimes = faTimes;\n\n  /**\n   * @docs-private\n   */\n  @ContentChild(DaffPrefixDirective, { static: true }) _prefix: DaffPrefixDirective;\n\n  /**\n   * @docs-private\n   *\n   * Internal function to access the disabled property of the DaffDisableableDirective.\n   */\n  get disabled() {\n    return this.disabledDirective.disabled;\n  }\n\n  /**\n   * @deprecated Deprecated in version 0.93.0. Deprecated in version 0.93.1. Will be removed in version 0.96.0.\n   *\n   * Sets the status on the tag.\n   */\n  @Input()\n  get status(): DaffStatus {\n    return this.statusable.status;\n  }\n  set status(value: DaffStatus) {\n    this.statusable.status = value;\n  }\n\n  /**\n   * Whether the tag can be dismissed by the user.\n   * Displays a close icon if `true`.\n   */\n  @Input({ transform: booleanAttribute }) dismissible = false;\n\n  /**\n   * Emits when the tag is closed.\n   */\n  @Output() closeTag: EventEmitter<void> = new EventEmitter();\n\n  /**\n   * @docs-private\n   *\n   * Internal handler for the close icon click.\n   */\n  onCloseTag(event: Event) {\n    if (this.disabled) {\n      return;\n    }\n    this.closeTag.emit();\n  }\n\n  constructor(\n    private size: DaffTagSizableDirective,\n    private disabledDirective: DaffDisableableDirective,\n    private statusable: DaffStatusableDirective,\n  ) {\n    /**\n     * Sets the default size of a tag to medium.\n     */\n    this.size.defaultSize = 'md';\n  }\n}\n","@if (_prefix) {\n  <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-tag__label\">\n  <ng-content></ng-content>\n</div>\n@if (dismissible) {\n  <button class=\"daff-tag__close-icon\" (click)=\"onCloseTag($event)\" aria-label=\"Dismiss\" [attr.tabindex]=\"disabled ? -1 : null\">\n    <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n  </button>\n}\n","import { DaffPrefixDirective } from '@daffodil/design';\n\nimport { DaffTagSizableDirective } from './tag/tag-sizable.directive';\nimport { DaffTagComponent } from './tag/tag.component';\n\n/**\n * @docs-private\n *\n * `DAFF_TAG_COMPONENTS` imports all the available components and directives.\n */\nexport const DAFF_TAG_COMPONENTS = <const> [\n  DaffTagComponent,\n  DaffTagSizableDirective,\n  DaffPrefixDirective,\n];\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DaffTagSizableDirective"],"mappings":"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"}