UNPKG

40.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"angular-fontawesome.mjs","sources":["../../../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/is-icon-lookup.util.ts","../../../src/lib/shared/utils/normalize-icon-spec.util.ts","../../../src/lib/config.ts","../../../src/lib/icon-library.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 { IconLookup } from '@fortawesome/fontawesome-svg-core';\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 { FaProps } from '../models/props.model';\n\n/**\n * Fontawesome class list.\n * Returns classes array by props.\n */\nexport const faClassList = (props: FaProps): string[] => {\n const classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\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}`]: props.rotate !== null,\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);\n};\n","import { IconLookup, IconProp } from '@fortawesome/fontawesome-svg-core';\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 '@fortawesome/fontawesome-svg-core';\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 as string[]).length === 2) {\n return { prefix: iconSpec[0], iconName: iconSpec[1] };\n }\n\n if (typeof iconSpec === 'string') {\n return { prefix: defaultPrefix, iconName: iconSpec };\n }\n};\n","import { Injectable } from '@angular/core';\nimport { IconDefinition, IconPrefix } from '@fortawesome/fontawesome-common-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;\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","import { Injectable } from '@angular/core';\nimport { IconDefinition, IconName, IconPack, IconPrefix } from '@fortawesome/fontawesome-svg-core';\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 { Directive, Input, OnChanges, SimpleChanges } 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 implements OnChanges {\n /**\n * Specify whether icon inside {@link FaStackComponent} should be rendered in\n * regular size (1x) or as a larger icon (2x).\n */\n @Input() stackItemSize: '1x' | '2x' = '1x';\n\n /**\n * @internal\n */\n @Input() size?: SizeProp;\n\n ngOnChanges(changes: SimpleChanges) {\n if ('size' in changes) {\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, ElementRef, Input, OnChanges, OnInit, Renderer2, SimpleChanges } from '@angular/core';\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\n\n@Component({\n selector: 'fa-stack',\n template: `<ng-content></ng-content>`,\n})\nexport class FaStackComponent implements OnInit, OnChanges {\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 @Input() size?: SizeProp;\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {}\n\n ngOnInit() {\n this.renderer.addClass(this.elementRef.nativeElement, 'fa-stack');\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('size' in changes) {\n if (changes.size.currentValue != null) {\n this.renderer.addClass(this.elementRef.nativeElement, `fa-${changes.size.currentValue}`);\n }\n if (changes.size.previousValue != null) {\n this.renderer.removeClass(this.elementRef.nativeElement, `fa-${changes.size.previousValue}`);\n }\n }\n }\n}\n","import { Component, HostBinding, Input, OnChanges, Optional, SimpleChanges } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport {\n FaSymbol,\n findIconDefinition,\n FlipProp,\n icon,\n IconDefinition,\n IconParams,\n IconProp,\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 { FaProps } from '../shared/models/props.model';\nimport { faClassList } from '../shared/utils/classlist.util';\nimport { faNormalizeIconSpec } from '../shared/utils/normalize-icon-spec.util';\nimport { FaStackItemSizeDirective } from '../stack/stack-item-size.directive';\nimport { FaStackComponent } from '../stack/stack.component';\n\n@Component({\n selector: 'fa-icon',\n template: ``,\n host: {\n class: 'ng-fa-icon',\n '[attr.title]': 'title',\n },\n})\nexport class FaIconComponent implements OnChanges {\n @Input() icon: IconProp;\n\n /**\n * Specify a title for the icon.\n * This text will be displayed in a tooltip on hover and presented to the\n * screen readers.\n */\n @Input() title?: string;\n @Input() spin?: boolean;\n @Input() pulse?: boolean;\n @Input() mask?: IconProp;\n @Input() styles?: Styles;\n @Input() flip?: FlipProp;\n @Input() size?: SizeProp;\n @Input() pull?: PullProp;\n @Input() border?: boolean;\n @Input() inverse?: boolean;\n @Input() symbol?: FaSymbol;\n @Input() rotate?: RotateProp;\n @Input() fixedWidth?: boolean;\n @Input() classes?: string[] = [];\n @Input() transform?: string | Transform;\n\n /**\n * Specify the `role` attribute for the rendered <svg> element.\n *\n * @default 'img'\n */\n @Input() a11yRole: string;\n\n @HostBinding('innerHTML') renderedIconHTML: SafeHtml;\n\n constructor(\n private sanitizer: DomSanitizer,\n private config: FaConfig,\n private iconLibrary: FaIconLibrary,\n @Optional() private stackItem: FaStackItemSizeDirective,\n @Optional() stack: FaStackComponent,\n ) {\n if (stack != null && 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\"></fa-icon>.',\n );\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.icon == null && this.config.fallbackIcon == null) {\n return faWarnIfIconSpecMissing();\n }\n\n let iconToBeRendered: IconProp = null;\n if (this.icon == null) {\n iconToBeRendered = this.config.fallbackIcon;\n } else {\n iconToBeRendered = this.icon;\n }\n\n if (changes) {\n const iconDefinition = this.findIconDefinition(iconToBeRendered);\n if (iconDefinition != null) {\n const params = this.buildParams();\n this.renderIcon(iconDefinition, params);\n }\n }\n }\n\n /**\n * Programmatically trigger rendering of the icon.\n *\n * This method is useful, when creating {@link FaIconComponent} dynamically or\n * changing its inputs programmatically as in these cases icon won't be\n * re-rendered automatically.\n */\n render() {\n this.ngOnChanges({});\n }\n\n protected findIconDefinition(i: IconProp | IconDefinition): IconDefinition | null {\n const lookup = faNormalizeIconSpec(i, this.config.defaultPrefix);\n if ('icon' in lookup) {\n return lookup;\n }\n\n const definition = this.iconLibrary.getIconDefinition(lookup.prefix, lookup.iconName);\n if (definition != null) {\n return definition;\n }\n\n faWarnIfIconDefinitionMissing(lookup);\n return null;\n }\n\n protected buildParams() {\n const classOpts: FaProps = {\n flip: this.flip,\n spin: this.spin,\n pulse: this.pulse,\n border: this.border,\n inverse: this.inverse,\n size: this.size || null,\n pull: this.pull || null,\n rotate: this.rotate || null,\n fixedWidth: typeof this.fixedWidth === 'boolean' ? this.fixedWidth : this.config.fixedWidth,\n stackItemSize: this.stackItem != null ? this.stackItem.stackItemSize : null,\n };\n\n const parsedTransform = typeof this.transform === 'string' ? parse.transform(this.transform) : this.transform;\n\n return {\n title: this.title,\n transform: parsedTransform,\n classes: [...faClassList(classOpts), ...this.classes],\n mask: this.mask != null ? this.findIconDefinition(this.mask) : null,\n styles: this.styles != null ? this.styles : {},\n symbol: this.symbol,\n attributes: {\n role: this.a11yRole,\n },\n };\n }\n\n private renderIcon(definition: IconDefinition, params: IconParams) {\n const renderedIcon = icon(definition, params);\n this.renderedIconHTML = this.sanitizer.bypassSecurityTrustHtml(renderedIcon.html.join('\\n'));\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { IconDefinition, IconProp } from '@fortawesome/fontawesome-svg-core';\nimport { FaIconComponent } from './icon.component';\n\n@Component({\n selector: 'fa-duotone-icon',\n template: ``,\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 @Input() swapOpacity?: '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 @Input() primaryOpacity?: 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 @Input() secondaryOpacity?: 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 @Input() primaryColor?: 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 @Input() secondaryColor?: string;\n\n protected findIconDefinition(i: IconProp | IconDefinition): IconDefinition | 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}']\"></fa-duotone-icon> ` +\n `or use: <fa-icon icon=\"${definition.iconName}\"></fa-icon> instead.`,\n );\n }\n\n return definition;\n }\n\n protected buildParams() {\n const params = super.buildParams();\n\n if (this.swapOpacity === true || this.swapOpacity === 'true') {\n params.classes.push('fa-swap-opacity');\n }\n if (this.primaryOpacity != null) {\n params.styles['--fa-primary-opacity'] = this.primaryOpacity.toString();\n }\n if (this.secondaryOpacity != null) {\n params.styles['--fa-secondary-opacity'] = this.secondaryOpacity.toString();\n }\n if (this.primaryColor != null) {\n params.styles['--fa-primary-color'] = this.primaryColor;\n }\n if (this.secondaryColor != null) {\n params.styles['--fa-secondary-color'] = this.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, ElementRef, HostBinding, Input, OnChanges, OnInit, Renderer2, SimpleChanges } from '@angular/core';\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core';\nimport { FaConfig } from '../config';\n\n/**\n * Fontawesome layers.\n */\n@Component({\n selector: 'fa-layers',\n template: `<ng-content></ng-content>`,\n})\nexport class FaLayersComponent implements OnInit, OnChanges {\n @Input() size?: SizeProp;\n\n @Input() @HostBinding('class.fa-fw') fixedWidth?: boolean;\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef, private config: FaConfig) {}\n\n ngOnInit() {\n this.renderer.addClass(this.elementRef.nativeElement, 'fa-layers');\n this.fixedWidth = typeof this.fixedWidth === 'boolean' ? this.fixedWidth : this.config.fixedWidth;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('size' in changes) {\n if (changes.size.currentValue != null) {\n this.renderer.addClass(this.elementRef.nativeElement, `fa-${changes.size.currentValue}`);\n }\n if (changes.size.previousValue != null) {\n this.renderer.removeClass(this.elementRef.nativeElement, `fa-${changes.size.previousValue}`);\n }\n }\n }\n}\n","import { Component, HostBinding, Input, OnChanges, Optional, SimpleChanges } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { counter, CounterParams, Styles } from '@fortawesome/fontawesome-svg-core';\nimport { faWarnIfParentNotExist } from '../shared/errors/warn-if-parent-not-exist';\nimport { FaLayersComponent } from './layers.component';\n\n@Component({\n selector: 'fa-layers-counter',\n template: '',\n host: {\n class: 'ng-fa-layers-counter',\n },\n})\nexport class FaLayersCounterComponent implements OnChanges {\n @Input() content: string;\n @Input() title?: string;\n @Input() styles?: Styles;\n @Input() classes?: string[] = [];\n @Input() position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';\n\n @HostBinding('innerHTML') renderedHTML: SafeHtml;\n\n constructor(@Optional() private parent: FaLayersComponent, private sanitizer: DomSanitizer) {\n faWarnIfParentNotExist(this.parent, 'FaLayersComponent', this.constructor.name);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes) {\n const params = this.buildParams();\n this.updateContent(params);\n }\n }\n\n protected buildParams(): CounterParams {\n const classes = [];\n if (this.classes != null) {\n classes.push(...this.classes);\n }\n if (this.position != null) {\n classes.push(`fa-layers-${this.position}`);\n }\n return {\n title: this.title,\n classes,\n styles: this.styles,\n };\n }\n\n private updateContent(params: CounterParams) {\n this.renderedHTML = this.sanitizer.bypassSecurityTrustHtml(counter(this.content || '', params).html.join(''));\n }\n}\n","import { Component, HostBinding, Input, OnChanges, Optional, SimpleChanges } from '@angular/core';\nimport { DomSanitizer, SafeHtml } 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 { faWarnIfParentNotExist } from '../shared/errors/warn-if-parent-not-exist';\nimport { FaProps } from '../shared/models/props.model';\nimport { faClassList } from '../shared/utils/classlist.util';\nimport { FaLayersComponent } from './layers.component';\n\n@Component({\n selector: 'fa-layers-text',\n template: '',\n host: {\n class: 'ng-fa-layers-text',\n },\n})\nexport class FaLayersTextComponent implements OnChanges {\n @Input() content: string;\n @Input() title?: string;\n @Input() styles?: Styles;\n @Input() classes?: string[] = [];\n @Input() spin?: boolean;\n @Input() pulse?: boolean;\n @Input() flip?: FlipProp;\n @Input() size?: SizeProp;\n @Input() pull?: PullProp;\n @Input() border?: boolean;\n @Input() inverse?: boolean;\n @Input() rotate?: RotateProp;\n @Input() fixedWidth?: boolean;\n @Input() transform?: string | Transform;\n\n @HostBinding('innerHTML') renderedHTML: SafeHtml;\n\n constructor(@Optional() private parent: FaLayersComponent, private sanitizer: DomSanitizer) {\n faWarnIfParentNotExist(this.parent, 'FaLayersComponent', this.constructor.name);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes) {\n const params = this.buildParams();\n this.updateContent(params);\n }\n }\n\n /**\n * Updating params by component props.\n */\n protected buildParams(): TextParams {\n const classOpts: FaProps = {\n flip: this.flip,\n spin: this.spin,\n pulse: this.pulse,\n border: this.border,\n inverse: this.inverse,\n size: this.size || null,\n pull: this.pull || null,\n rotate: this.rotate || null,\n fixedWidth: this.fixedWidth,\n };\n\n const parsedTransform = typeof this.transform === 'string' ? parse.transform(this.transform) : this.transform;\n\n return {\n transform: parsedTransform,\n classes: [...faClassList(classOpts), ...this.classes],\n title: this.title,\n styles: this.styles,\n };\n }\n\n private updateContent(params: TextParams) {\n this.renderedHTML = 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 declarations: [\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":["i1","i2.FaConfig","i3.FaIconLibrary","i4.FaStackItemSizeDirective","i5.FaStackComponent","i1.FaConfig","i1.FaLayersComponent"],"mappings":"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"}
\No newline at end of file