{"version":3,"file":"angular-fontawesome.mjs","sources":["../../../src/lib/config.ts","../../../src/lib/icon-library.ts","../../../src/lib/shared/errors/warn-if-icon-html-missing.ts","../../../src/lib/shared/errors/warn-if-icon-spec-missing.ts","../../../src/lib/shared/utils/classlist.util.ts","../../../src/lib/shared/utils/css.ts","../../../src/lib/shared/utils/is-icon-lookup.util.ts","../../../src/lib/shared/utils/normalize-icon-spec.util.ts","../../../src/lib/stack/stack-item-size.directive.ts","../../../src/lib/stack/stack.component.ts","../../../src/lib/icon/icon.component.ts","../../../src/lib/icon/duotone-icon.component.ts","../../../src/lib/shared/errors/warn-if-parent-not-exist.ts","../../../src/lib/layers/layers.component.ts","../../../src/lib/layers/layers-counter.component.ts","../../../src/lib/layers/layers-text.component.ts","../../../src/lib/fontawesome.module.ts","../../../src/lib/angular-fontawesome.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { config } from '@fortawesome/fontawesome-svg-core';\nimport { IconDefinition, IconPrefix } from './types';\n\n@Injectable({ providedIn: 'root' })\nexport class FaConfig {\n  /**\n   * Default prefix to use, when one is not provided with the icon name.\n   *\n   * @default 'fas'\n   */\n  defaultPrefix: IconPrefix = 'fas';\n\n  /**\n   * Provides a fallback icon to use whilst main icon is being loaded asynchronously.\n   * When value is null, then fa-icon component will throw an error if icon input is missing.\n   * When value is not null, then the provided icon will be used as a fallback icon if icon input is missing.\n   *\n   * @default null\n   */\n  fallbackIcon: IconDefinition | null = null;\n\n  /**\n   * Set icons to the same fixed width.\n   *\n   * @see {@link: https://fontawesome.com/how-to-use/on-the-web/styling/fixed-width-icons}\n   * @default false\n   */\n  fixedWidth?: boolean;\n\n  /**\n   * Automatically add Font Awesome styles to the document when icon is rendered.\n   *\n   * For the majority of the cases the automatically added CSS is sufficient,\n   * please refer to the linked guide for more information on when to disable\n   * this feature.\n   *\n   * @see {@link: https://github.com/FortAwesome/angular-fontawesome/blob/main/docs/guide/adding-css.md}\n   * @default true\n   */\n  set autoAddCss(value: boolean) {\n    config.autoAddCss = value;\n    this._autoAddCss = value;\n  }\n\n  get autoAddCss() {\n    return this._autoAddCss;\n  }\n\n  private _autoAddCss = true;\n}\n","import { Injectable } from '@angular/core';\nimport { IconDefinition, IconName, IconPack, IconPrefix } from './types';\n\nexport interface FaIconLibraryInterface {\n  addIcons(...icons: IconDefinition[]): void;\n  addIconPacks(...packs: IconPack[]): void;\n  getIconDefinition(prefix: IconPrefix, name: IconName): IconDefinition | null;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FaIconLibrary implements FaIconLibraryInterface {\n  private definitions: { [prefix: string]: { [name: string]: IconDefinition } } = {};\n\n  addIcons(...icons: IconDefinition[]) {\n    for (const icon of icons) {\n      if (!(icon.prefix in this.definitions)) {\n        this.definitions[icon.prefix] = {};\n      }\n      this.definitions[icon.prefix][icon.iconName] = icon;\n      for (const alias of icon.icon[2]) {\n        if (typeof alias === 'string') {\n          this.definitions[icon.prefix][alias] = icon;\n        }\n      }\n    }\n  }\n\n  addIconPacks(...packs: IconPack[]) {\n    for (const pack of packs) {\n      const icons = Object.keys(pack).map((key) => pack[key]);\n      this.addIcons(...icons);\n    }\n  }\n\n  getIconDefinition(prefix: IconPrefix, name: IconName): IconDefinition | null {\n    if (prefix in this.definitions && name in this.definitions[prefix]) {\n      return this.definitions[prefix][name];\n    }\n    return null;\n  }\n}\n","import { IconLookup } from '../../types';\n\nexport const faWarnIfIconDefinitionMissing = (iconSpec: IconLookup) => {\n  throw new Error(\n    `Could not find icon with iconName=${iconSpec.iconName} and prefix=${iconSpec.prefix} in the icon library.`,\n  );\n};\n","export const faWarnIfIconSpecMissing = () => {\n  throw new Error('Property `icon` is required for `fa-icon`/`fa-duotone-icon` components.');\n};\n","import { RotateProp } from '@fortawesome/fontawesome-svg-core';\nimport { FaProps } from '../models/props.model';\n\nexport const isKnownRotateValue = (rotate: RotateProp | string | undefined) =>\n  rotate != null &&\n  (rotate === 90 || rotate === 180 || rotate === 270 || rotate === '90' || rotate === '180' || rotate === '270');\n\n/**\n * Fontawesome class list.\n * Returns classes array by props.\n */\nexport const faClassList = (props: FaProps): string[] => {\n  const knownRotateValue = isKnownRotateValue(props.rotate);\n\n  const classes = {\n    [`fa-${props.animation}`]: props.animation != null && !props.animation.startsWith('spin'),\n    'fa-spin': props.animation === 'spin' || props.animation === 'spin-reverse',\n    'fa-spin-pulse': props.animation === 'spin-pulse' || props.animation === 'spin-pulse-reverse',\n    'fa-spin-reverse': props.animation === 'spin-reverse' || props.animation === 'spin-pulse-reverse',\n    // According to https://fontawesome.com/docs/web/style/animate#spin fa-pulse\n    // class is deprecated, remove the below line when Font Awesome 5 support\n    // is dropped.\n    'fa-pulse': props.animation === 'spin-pulse' || props.animation === 'spin-pulse-reverse',\n    'fa-fw': props.fixedWidth,\n    'fa-border': props.border,\n    'fa-inverse': props.inverse,\n    'fa-layers-counter': props.counter,\n    'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n    'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both',\n    [`fa-${props.size}`]: props.size !== null,\n    [`fa-rotate-${props.rotate}`]: knownRotateValue,\n    'fa-rotate-by': props.rotate != null && !knownRotateValue,\n    [`fa-pull-${props.pull}`]: props.pull !== null,\n    [`fa-stack-${props.stackItemSize}`]: props.stackItemSize != null,\n  };\n\n  return Object.keys(classes)\n    .map((key) => (classes[key] ? key : null))\n    .filter((key): key is string => key != null);\n};\n","import { dom } from '@fortawesome/fontawesome-svg-core';\nimport { FaConfig } from '../../config';\n\nconst cssInserted = new WeakSet();\nexport const autoCssId = 'fa-auto-css';\n\n/**\n * Ensure that Font Awesome CSS is inserted into the page.\n *\n * SVG Core has the same logic to insert the same styles into the page, however\n * it's not aware of Angular SSR and therefore styles won't be added in that\n * context leading to https://github.com/FortAwesome/angular-fontawesome/issues/48.\n * That's why the same logic is duplicated here.\n *\n * @param document - Document.\n * @param config - Font Awesome configuration.\n */\nexport function ensureCss(document: Document, config: FaConfig): void {\n  if (!config.autoAddCss) {\n    return;\n  }\n\n  if (cssInserted.has(document)) {\n    return;\n  }\n\n  // Prevent adding the same styles again after hydration.\n  if (document.getElementById(autoCssId) != null) {\n    config.autoAddCss = false;\n    cssInserted.add(document);\n    return;\n  }\n\n  const style = document.createElement('style');\n  style.setAttribute('type', 'text/css');\n  style.setAttribute('id', autoCssId);\n  style.innerHTML = dom.css();\n  const headChildren = document.head.childNodes;\n  let beforeChild = null;\n\n  for (let i = headChildren.length - 1; i > -1; i--) {\n    const child = headChildren[i];\n    const tagName = child.nodeName.toUpperCase();\n\n    if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n      beforeChild = child;\n    }\n  }\n\n  document.head.insertBefore(style, beforeChild);\n\n  // Prevent SVG Core from adding the same styles.\n  //\n  // As the logic is present in two places and SVG Core is not aware about\n  // this library, it may lead to styles being added twice. This can only\n  // occur when icon is rendered by SVG Core before the Angular component\n  // and should not have any significant negative impact. This is a rare\n  // use case, and it's tricky to prevent, so we accept this behavior. Consumer\n  // can choose to disable `FaConfig.autoAddCss` and add styles manually to\n  // prevent this from happening.\n  config.autoAddCss = false;\n  cssInserted.add(document);\n}\n","import { IconLookup, IconProp } from '../../types';\n\n/**\n * Returns if is IconLookup or not.\n */\nexport const isIconLookup = (i: IconProp): i is IconLookup =>\n  (i as IconLookup).prefix !== undefined && (i as IconLookup).iconName !== undefined;\n","import { IconDefinition, IconLookup, IconPrefix, IconProp } from '../../types';\nimport { isIconLookup } from './is-icon-lookup.util';\n\n/**\n * Normalizing icon spec.\n */\nexport const faNormalizeIconSpec = (\n  iconSpec: IconProp | IconDefinition,\n  defaultPrefix: IconPrefix,\n): IconLookup | IconDefinition => {\n  if (isIconLookup(iconSpec)) {\n    return iconSpec;\n  }\n\n  if (Array.isArray(iconSpec) && iconSpec.length === 2) {\n    return { prefix: iconSpec[0], iconName: iconSpec[1] };\n  }\n\n  return { prefix: defaultPrefix, iconName: iconSpec };\n};\n","import { Directive, effect, input } from '@angular/core';\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\nimport { FaStackComponent } from './stack.component';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'fa-icon[stackItemSize],fa-duotone-icon[stackItemSize]',\n})\nexport class FaStackItemSizeDirective {\n  /**\n   * Specify whether icon inside {@link FaStackComponent} should be rendered in\n   * regular size (1x) or as a larger icon (2x).\n   */\n  readonly stackItemSize = input<'1x' | '2x'>('1x');\n\n  /**\n   * @internal\n   */\n  readonly size = input<SizeProp>();\n\n  _effect = effect(() => {\n    const size = this.size();\n    if (size) {\n      throw new Error(\n        'fa-icon is not allowed to customize size when used inside fa-stack. ' +\n          'Set size on the enclosing fa-stack instead: <fa-stack size=\"4x\">...</fa-stack>.',\n      );\n    }\n  });\n}\n","import { Component, input, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\n\n@Component({\n  selector: 'fa-stack',\n  template: `<ng-content />`,\n  host: {\n    '[class]': 'classes()',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FaStackComponent {\n  /**\n   * Size of the stacked icon.\n   * Note that stacked icon is by default 2 times bigger, than non-stacked icon.\n   * You'll need to set size using custom CSS to align stacked icon with a\n   * simple one. E.g. `fa-stack { font-size: 0.5em; }`.\n   */\n  readonly size = input<SizeProp>();\n\n  readonly classes = computed(() => {\n    const sizeValue = this.size();\n    const sizeClass = sizeValue ? { [`fa-${sizeValue}`]: true } : {};\n    return {\n      ...sizeClass,\n      'fa-stack': true,\n    };\n  });\n}\n","import { ChangeDetectionStrategy, Component, computed, DOCUMENT, inject, model } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n  Attributes,\n  FaSymbol,\n  FlipProp,\n  icon,\n  IconDefinition as CoreIconDefinition,\n  IconParams,\n  parse,\n  PullProp,\n  RotateProp,\n  SizeProp,\n  Styles,\n  Transform,\n} from '@fortawesome/fontawesome-svg-core';\nimport { FaConfig } from '../config';\nimport { FaIconLibrary } from '../icon-library';\nimport { faWarnIfIconDefinitionMissing } from '../shared/errors/warn-if-icon-html-missing';\nimport { faWarnIfIconSpecMissing } from '../shared/errors/warn-if-icon-spec-missing';\nimport { AnimationProp, FaProps } from '../shared/models/props.model';\nimport { faClassList, isKnownRotateValue } from '../shared/utils/classlist.util';\nimport { ensureCss } from '../shared/utils/css';\nimport { faNormalizeIconSpec } from '../shared/utils/normalize-icon-spec.util';\nimport { FaStackItemSizeDirective } from '../stack/stack-item-size.directive';\nimport { FaStackComponent } from '../stack/stack.component';\nimport { IconDefinition, IconProp } from '../types';\n\n@Component({\n  selector: 'fa-icon',\n  template: ``,\n  host: {\n    class: 'ng-fa-icon',\n    '[attr.title]': 'title() ?? undefined',\n    '[innerHTML]': 'renderedIconHTML()',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FaIconComponent {\n  readonly icon = model<IconProp>();\n\n  /**\n   * Specify a title for the icon.\n   *\n   * This text will be displayed in a tooltip on hover and presented to the\n   * screen readers.\n   */\n  readonly title = model<string>();\n\n  /**\n   * Icon animation.\n   *\n   * Most of the animations are only available when using Font Awesome 6. With\n   * Font Awesome 5, only 'spin' and 'spin-pulse' are supported.\n   */\n  readonly animation = model<AnimationProp>();\n\n  readonly mask = model<IconProp>();\n  readonly flip = model<FlipProp>();\n  readonly size = model<SizeProp>();\n  readonly pull = model<PullProp>();\n  readonly border = model<boolean>();\n  readonly inverse = model<boolean>();\n  readonly symbol = model<FaSymbol>();\n  readonly rotate = model<RotateProp | string>();\n  readonly fixedWidth = model<boolean>();\n  readonly transform = model<string | Transform>();\n\n  /**\n   * Specify the `role` attribute for the rendered <svg> element.\n   *\n   * @default 'img'\n   */\n  readonly a11yRole = model<string>();\n\n  readonly renderedIconHTML = computed(() => {\n    const iconValue = this.icon() ?? this.config.fallbackIcon;\n    if (!iconValue) {\n      faWarnIfIconSpecMissing();\n      return '';\n    }\n\n    const iconDefinition = this.findIconDefinition(iconValue);\n    if (!iconDefinition) {\n      return '';\n    }\n    const params = this.buildParams();\n    ensureCss(this.document, this.config);\n    const renderedIcon = icon(iconDefinition, params);\n    return this.sanitizer.bypassSecurityTrustHtml(renderedIcon.html.join('\\n'));\n  });\n\n  private readonly document = inject(DOCUMENT);\n  private readonly sanitizer = inject(DomSanitizer);\n  private readonly config = inject(FaConfig);\n  private readonly iconLibrary = inject(FaIconLibrary);\n  private readonly stackItem = inject(FaStackItemSizeDirective, { optional: true });\n  private readonly stack = inject(FaStackComponent, { optional: true });\n\n  constructor() {\n    if (this.stack != null && this.stackItem == null) {\n      console.error(\n        'FontAwesome: fa-icon and fa-duotone-icon elements must specify stackItemSize attribute when wrapped into ' +\n          'fa-stack. Example: <fa-icon stackItemSize=\"2x\" />.',\n      );\n    }\n  }\n\n  protected findIconDefinition(i: IconProp | IconDefinition): CoreIconDefinition | null {\n    const lookup = faNormalizeIconSpec(i, this.config.defaultPrefix);\n    if ('icon' in lookup) {\n      return lookup as CoreIconDefinition;\n    }\n\n    const definition = this.iconLibrary.getIconDefinition(lookup.prefix, lookup.iconName);\n    if (definition != null) {\n      return definition as CoreIconDefinition;\n    }\n\n    faWarnIfIconDefinitionMissing(lookup);\n    return null;\n  }\n\n  protected buildParams(): IconParams {\n    const fixedWidth = this.fixedWidth();\n    const classOpts: FaProps = {\n      flip: this.flip(),\n      animation: this.animation(),\n      border: this.border(),\n      inverse: this.inverse(),\n      size: this.size(),\n      pull: this.pull(),\n      rotate: this.rotate(),\n      fixedWidth: typeof fixedWidth === 'boolean' ? fixedWidth : this.config.fixedWidth,\n      stackItemSize: this.stackItem != null ? this.stackItem.stackItemSize() : undefined,\n    };\n\n    const transform = this.transform();\n    const parsedTransform = typeof transform === 'string' ? parse.transform(transform) : transform;\n\n    const mask = this.mask();\n    const maskIconDefinition = mask != null ? this.findIconDefinition(mask) : null;\n\n    const attributes: Attributes = {};\n    const a11yRole = this.a11yRole();\n    if (a11yRole != null) {\n      attributes['role'] = a11yRole;\n    }\n\n    const styles: Styles = {};\n    if (classOpts.rotate != null && !isKnownRotateValue(classOpts.rotate)) {\n      styles['--fa-rotate-angle'] = `${classOpts.rotate}`;\n    }\n\n    return {\n      title: this.title(),\n      transform: parsedTransform,\n      classes: faClassList(classOpts),\n      mask: maskIconDefinition ?? undefined,\n      symbol: this.symbol(),\n      attributes,\n      styles,\n    };\n  }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { IconDefinition as CoreIconDefinition, IconParams } from '@fortawesome/fontawesome-svg-core';\nimport { IconDefinition, IconProp } from '../types';\nimport { FaIconComponent } from './icon.component';\n\n@Component({\n  selector: 'fa-duotone-icon',\n  template: ``,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FaDuotoneIconComponent extends FaIconComponent {\n  /**\n   * Swap the default opacity of each duotone icon’s layers. This will make an\n   * icon’s primary layer have the default opacity of 40% rather than its\n   * secondary layer.\n   *\n   * @default false\n   */\n  readonly swapOpacity = input<'true' | 'false' | boolean>();\n\n  /**\n   * Customize the opacity of the primary icon layer.\n   * Valid values are in range [0, 1.0].\n   *\n   * @default 1.0\n   */\n  readonly primaryOpacity = input<string | number>();\n\n  /**\n   * Customize the opacity of the secondary icon layer.\n   * Valid values are in range [0, 1.0].\n   *\n   * @default 0.4\n   */\n  readonly secondaryOpacity = input<string | number>();\n\n  /**\n   * Customize the color of the primary icon layer.\n   * Accepts any valid CSS color value.\n   *\n   * @default CSS inherited color\n   */\n  readonly primaryColor = input<string>();\n\n  /**\n   * Customize the color of the secondary icon layer.\n   * Accepts any valid CSS color value.\n   *\n   * @default CSS inherited color\n   */\n  readonly secondaryColor = input<string>();\n\n  protected override findIconDefinition(i: IconProp | IconDefinition): CoreIconDefinition | null {\n    const definition = super.findIconDefinition(i);\n\n    if (definition != null && !Array.isArray(definition.icon[4])) {\n      throw new Error(\n        'The specified icon does not appear to be a Duotone icon. ' +\n          'Check that you specified the correct style: ' +\n          `<fa-duotone-icon [icon]=\"['fad', '${definition.iconName}']\" /> ` +\n          `or use: <fa-icon icon=\"${definition.iconName}\" /> instead.`,\n      );\n    }\n\n    return definition;\n  }\n\n  protected override buildParams(): IconParams {\n    const params = super.buildParams();\n\n    const swapOpacity = this.swapOpacity();\n    if (swapOpacity === true || swapOpacity === 'true') {\n      if (Array.isArray(params.classes)) {\n        params.classes.push('fa-swap-opacity');\n      } else if (typeof params.classes === 'string') {\n        params.classes = [params.classes, 'fa-swap-opacity'];\n      } else {\n        params.classes = ['fa-swap-opacity'];\n      }\n    }\n\n    if (params.styles == null) {\n      params.styles = {};\n    }\n    const primaryOpacity = this.primaryOpacity();\n    if (primaryOpacity != null) {\n      params.styles['--fa-primary-opacity'] = primaryOpacity.toString();\n    }\n    const secondaryOpacity = this.secondaryOpacity();\n    if (secondaryOpacity != null) {\n      params.styles['--fa-secondary-opacity'] = secondaryOpacity.toString();\n    }\n    const primaryColor = this.primaryColor();\n    if (primaryColor != null) {\n      params.styles['--fa-primary-color'] = primaryColor;\n    }\n    const secondaryColor = this.secondaryColor();\n    if (secondaryColor != null) {\n      params.styles['--fa-secondary-color'] = secondaryColor;\n    }\n\n    return params;\n  }\n}\n","/**\n * Warns if parent component not existing.\n */\nexport const faWarnIfParentNotExist = (parent: any, parentName: string, childName: string) => {\n  if (!parent) {\n    throw new Error(`${childName} should be used as child of ${parentName} only.`);\n  }\n};\n","import { Component, inject, OnInit, input, computed, ChangeDetectionStrategy, DOCUMENT } from '@angular/core';\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\nimport { FaConfig } from '../config';\nimport { ensureCss } from '../shared/utils/css';\n\n/**\n * Fontawesome layers.\n */\n@Component({\n  selector: 'fa-layers',\n  template: `<ng-content />`,\n  host: {\n    '[class]': 'classes()',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FaLayersComponent implements OnInit {\n  readonly size = input<SizeProp>();\n  readonly fixedWidth = input<boolean>();\n  readonly faFw = computed(() => {\n    const fixedWidth = this.fixedWidth();\n    return typeof fixedWidth === 'boolean' ? fixedWidth : this.config.fixedWidth;\n  });\n  readonly classes = computed(() => {\n    const sizeValue = this.size();\n    const sizeClass = sizeValue ? { [`fa-${sizeValue}`]: true } : {};\n    return {\n      ...sizeClass,\n      'fa-fw': this.faFw(),\n      'fa-layers': true,\n    };\n  });\n\n  private readonly document = inject(DOCUMENT);\n  private readonly config = inject(FaConfig);\n\n  ngOnInit() {\n    ensureCss(this.document, this.config);\n  }\n}\n","import { ChangeDetectionStrategy, Component, computed, DOCUMENT, inject, input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { counter, CounterParams } from '@fortawesome/fontawesome-svg-core';\nimport { FaConfig } from '../config';\nimport { faWarnIfParentNotExist } from '../shared/errors/warn-if-parent-not-exist';\nimport { ensureCss } from '../shared/utils/css';\nimport { FaLayersComponent } from './layers.component';\n\n@Component({\n  selector: 'fa-layers-counter',\n  template: '',\n  host: {\n    class: 'ng-fa-layers-counter',\n    '[innerHTML]': 'renderedHTML()',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FaLayersCounterComponent {\n  readonly content = input.required<string>();\n  readonly title = input<string>();\n  readonly position = input<'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'>();\n\n  readonly renderedHTML = computed(() => {\n    const params = this.buildParams();\n    return this.updateContent(params);\n  });\n\n  private document = inject(DOCUMENT);\n  private config = inject(FaConfig);\n  private parent = inject(FaLayersComponent, { optional: true });\n  private sanitizer = inject(DomSanitizer);\n\n  constructor() {\n    faWarnIfParentNotExist(this.parent, 'FaLayersComponent', 'FaLayersCounterComponent');\n  }\n\n  protected buildParams(): CounterParams {\n    const position = this.position();\n    return {\n      title: this.title(),\n      classes: position != null ? [`fa-layers-${position}`] : undefined,\n    };\n  }\n\n  private updateContent(params: CounterParams) {\n    ensureCss(this.document, this.config);\n    return this.sanitizer.bypassSecurityTrustHtml(counter(this.content() || '', params).html.join(''));\n  }\n}\n","import { ChangeDetectionStrategy, Component, computed, DOCUMENT, inject, input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n  FlipProp,\n  parse,\n  PullProp,\n  RotateProp,\n  SizeProp,\n  Styles,\n  text,\n  TextParams,\n  Transform,\n} from '@fortawesome/fontawesome-svg-core';\nimport { FaConfig } from '../config';\nimport { faWarnIfParentNotExist } from '../shared/errors/warn-if-parent-not-exist';\nimport { FaProps } from '../shared/models/props.model';\nimport { faClassList, isKnownRotateValue } from '../shared/utils/classlist.util';\nimport { ensureCss } from '../shared/utils/css';\nimport { FaLayersComponent } from './layers.component';\n\n@Component({\n  selector: 'fa-layers-text',\n  template: '',\n  host: {\n    class: 'ng-fa-layers-text',\n    '[innerHTML]': 'renderedHTML()',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FaLayersTextComponent {\n  readonly content = input.required<string>();\n  readonly title = input<string>();\n  readonly flip = input<FlipProp>();\n  readonly size = input<SizeProp>();\n  readonly pull = input<PullProp>();\n  readonly border = input<boolean>();\n  readonly inverse = input<boolean>();\n  readonly rotate = input<RotateProp | string>();\n  readonly fixedWidth = input<boolean>();\n  readonly transform = input<string | Transform>();\n\n  readonly renderedHTML = computed(() => {\n    const params = this.buildParams();\n    return this.updateContent(params);\n  });\n\n  private readonly document = inject(DOCUMENT);\n  private readonly config = inject(FaConfig);\n  private readonly parent = inject(FaLayersComponent, { optional: true });\n  private readonly sanitizer = inject(DomSanitizer);\n\n  constructor() {\n    faWarnIfParentNotExist(this.parent, 'FaLayersComponent', 'FaLayersTextComponent');\n  }\n\n  /**\n   * Updating params by component props.\n   */\n  protected buildParams(): TextParams {\n    const classOpts: FaProps = {\n      flip: this.flip(),\n      border: this.border(),\n      inverse: this.inverse(),\n      size: this.size(),\n      pull: this.pull(),\n      rotate: this.rotate(),\n      fixedWidth: this.fixedWidth(),\n    };\n\n    const transform = this.transform();\n    const parsedTransform = typeof transform === 'string' ? parse.transform(transform) : transform;\n\n    const styles: Styles = {};\n    if (classOpts.rotate != null && !isKnownRotateValue(classOpts.rotate)) {\n      styles['--fa-rotate-angle'] = `${classOpts.rotate}`;\n    }\n\n    return {\n      transform: parsedTransform,\n      classes: faClassList(classOpts),\n      title: this.title(),\n      styles,\n    };\n  }\n\n  private updateContent(params: TextParams) {\n    ensureCss(this.document, this.config);\n    return this.sanitizer.bypassSecurityTrustHtml(text(this.content() || '', params).html.join('\\n'));\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { FaDuotoneIconComponent } from './icon/duotone-icon.component';\nimport { FaIconComponent } from './icon/icon.component';\nimport { FaLayersCounterComponent } from './layers/layers-counter.component';\nimport { FaLayersTextComponent } from './layers/layers-text.component';\nimport { FaLayersComponent } from './layers/layers.component';\nimport { FaStackItemSizeDirective } from './stack/stack-item-size.directive';\nimport { FaStackComponent } from './stack/stack.component';\n\n@NgModule({\n  imports: [\n    FaIconComponent,\n    FaDuotoneIconComponent,\n    FaLayersComponent,\n    FaLayersTextComponent,\n    FaLayersCounterComponent,\n    FaStackComponent,\n    FaStackItemSizeDirective,\n  ],\n  exports: [\n    FaIconComponent,\n    FaDuotoneIconComponent,\n    FaLayersComponent,\n    FaLayersTextComponent,\n    FaLayersCounterComponent,\n    FaStackComponent,\n    FaStackItemSizeDirective,\n  ],\n})\nexport class FontAwesomeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}