@fortawesome/angular-fontawesome
Version:
Angular Fontawesome, an Angular library
284 lines (270 loc) • 15.5 kB
TypeScript
import * as _angular_core from '@angular/core';
import { OnInit } from '@angular/core';
import * as _angular_platform_browser from '@angular/platform-browser';
import { FlipProp, SizeProp, PullProp, RotateProp, IconName as IconName$1, IconPrefix as IconPrefix$1, FaSymbol, Transform, IconDefinition as IconDefinition$1, IconParams, TextParams, CounterParams } from '@fortawesome/fontawesome-svg-core';
export { CounterParams, FaSymbol, FlipProp, IconParams, PullProp, RotateProp, SizeProp, TextParams, Transform } from '@fortawesome/fontawesome-svg-core';
/**
* Fontawesome props.
*/
interface FaProps {
className?: string;
animation?: AnimationProp;
border?: boolean;
fixedWidth?: boolean;
counter?: boolean;
inverse?: boolean;
flip?: FlipProp;
size?: SizeProp;
pull?: PullProp;
rotate?: RotateProp | string;
stackItemSize?: '1x' | '2x';
}
type AnimationProp = 'beat' | 'fade' | 'beat-fade' | 'bounce' | 'flip' | 'shake' | 'spin' | 'spin-reverse' | 'spin-pulse' | 'spin-pulse-reverse';
type IconPrefix = IconPrefix$1 | (string & {});
type IconName = IconName$1 | (string & {});
interface IconLookup {
prefix: IconPrefix;
iconName: IconName;
}
interface IconDefinition {
prefix: IconPrefix;
iconName: IconName;
icon: [
number,
number,
string[],
string,
// unicode
string | string[]
];
}
interface IconPack {
[key: string]: IconDefinition;
}
type IconProp = IconName | [IconPrefix, IconName] | IconLookup;
declare class FaIconComponent {
readonly icon: _angular_core.ModelSignal<IconProp>;
/**
* Specify a title for the icon.
*
* This text will be displayed in a tooltip on hover and presented to the
* screen readers.
*/
readonly title: _angular_core.ModelSignal<string | undefined>;
/**
* Icon animation.
*
* Most of the animations are only available when using Font Awesome 6. With
* Font Awesome 5, only 'spin' and 'spin-pulse' are supported.
*/
readonly animation: _angular_core.ModelSignal<AnimationProp | undefined>;
readonly mask: _angular_core.ModelSignal<IconProp | undefined>;
readonly flip: _angular_core.ModelSignal<FlipProp | undefined>;
readonly size: _angular_core.ModelSignal<SizeProp | undefined>;
readonly pull: _angular_core.ModelSignal<PullProp | undefined>;
readonly border: _angular_core.ModelSignal<boolean | undefined>;
readonly inverse: _angular_core.ModelSignal<boolean | undefined>;
readonly symbol: _angular_core.ModelSignal<FaSymbol | undefined>;
readonly rotate: _angular_core.ModelSignal<string | RotateProp | undefined>;
readonly fixedWidth: _angular_core.ModelSignal<boolean | undefined>;
readonly transform: _angular_core.ModelSignal<string | Transform | undefined>;
/**
* Specify the `role` attribute for the rendered <svg> element.
*
* @default 'img'
*/
readonly a11yRole: _angular_core.ModelSignal<string | undefined>;
readonly renderedIconHTML: _angular_core.Signal<_angular_platform_browser.SafeHtml>;
private readonly document;
private readonly sanitizer;
private readonly config;
private readonly iconLibrary;
private readonly stackItem;
private readonly stack;
constructor();
protected findIconDefinition(i: IconProp | IconDefinition): IconDefinition$1 | null;
protected buildParams(): IconParams;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaIconComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FaIconComponent, "fa-icon", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "pull": { "alias": "pull"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "inverse": { "alias": "inverse"; "required": false; "isSignal": true; }; "symbol": { "alias": "symbol"; "required": false; "isSignal": true; }; "rotate": { "alias": "rotate"; "required": false; "isSignal": true; }; "fixedWidth": { "alias": "fixedWidth"; "required": false; "isSignal": true; }; "transform": { "alias": "transform"; "required": false; "isSignal": true; }; "a11yRole": { "alias": "a11yRole"; "required": false; "isSignal": true; }; }, { "icon": "iconChange"; "title": "titleChange"; "animation": "animationChange"; "mask": "maskChange"; "flip": "flipChange"; "size": "sizeChange"; "pull": "pullChange"; "border": "borderChange"; "inverse": "inverseChange"; "symbol": "symbolChange"; "rotate": "rotateChange"; "fixedWidth": "fixedWidthChange"; "transform": "transformChange"; "a11yRole": "a11yRoleChange"; }, never, never, true, never>;
}
declare class FaDuotoneIconComponent extends FaIconComponent {
/**
* Swap the default opacity of each duotone icon’s layers. This will make an
* icon’s primary layer have the default opacity of 40% rather than its
* secondary layer.
*
* @default false
*/
readonly swapOpacity: _angular_core.InputSignal<boolean | "true" | "false" | undefined>;
/**
* Customize the opacity of the primary icon layer.
* Valid values are in range [0, 1.0].
*
* @default 1.0
*/
readonly primaryOpacity: _angular_core.InputSignal<string | number | undefined>;
/**
* Customize the opacity of the secondary icon layer.
* Valid values are in range [0, 1.0].
*
* @default 0.4
*/
readonly secondaryOpacity: _angular_core.InputSignal<string | number | undefined>;
/**
* Customize the color of the primary icon layer.
* Accepts any valid CSS color value.
*
* @default CSS inherited color
*/
readonly primaryColor: _angular_core.InputSignal<string | undefined>;
/**
* Customize the color of the secondary icon layer.
* Accepts any valid CSS color value.
*
* @default CSS inherited color
*/
readonly secondaryColor: _angular_core.InputSignal<string | undefined>;
protected findIconDefinition(i: IconProp | IconDefinition): IconDefinition$1 | null;
protected buildParams(): IconParams;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaDuotoneIconComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FaDuotoneIconComponent, "fa-duotone-icon", never, { "swapOpacity": { "alias": "swapOpacity"; "required": false; "isSignal": true; }; "primaryOpacity": { "alias": "primaryOpacity"; "required": false; "isSignal": true; }; "secondaryOpacity": { "alias": "secondaryOpacity"; "required": false; "isSignal": true; }; "primaryColor": { "alias": "primaryColor"; "required": false; "isSignal": true; }; "secondaryColor": { "alias": "secondaryColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
/**
* Fontawesome layers.
*/
declare class FaLayersComponent implements OnInit {
readonly size: _angular_core.InputSignal<SizeProp | undefined>;
readonly fixedWidth: _angular_core.InputSignal<boolean | undefined>;
readonly faFw: _angular_core.Signal<boolean | undefined>;
readonly classes: _angular_core.Signal<{
'fa-fw': boolean | undefined;
'fa-layers': boolean;
}>;
private readonly document;
private readonly config;
ngOnInit(): void;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaLayersComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FaLayersComponent, "fa-layers", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "fixedWidth": { "alias": "fixedWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}
declare class FaLayersTextComponent {
readonly content: _angular_core.InputSignal<string>;
readonly title: _angular_core.InputSignal<string | undefined>;
readonly flip: _angular_core.InputSignal<FlipProp | undefined>;
readonly size: _angular_core.InputSignal<SizeProp | undefined>;
readonly pull: _angular_core.InputSignal<PullProp | undefined>;
readonly border: _angular_core.InputSignal<boolean | undefined>;
readonly inverse: _angular_core.InputSignal<boolean | undefined>;
readonly rotate: _angular_core.InputSignal<string | RotateProp | undefined>;
readonly fixedWidth: _angular_core.InputSignal<boolean | undefined>;
readonly transform: _angular_core.InputSignal<string | Transform | undefined>;
readonly renderedHTML: _angular_core.Signal<_angular_platform_browser.SafeHtml>;
private readonly document;
private readonly config;
private readonly parent;
private readonly sanitizer;
constructor();
/**
* Updating params by component props.
*/
protected buildParams(): TextParams;
private updateContent;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaLayersTextComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FaLayersTextComponent, "fa-layers-text", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "flip": { "alias": "flip"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "pull": { "alias": "pull"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "inverse": { "alias": "inverse"; "required": false; "isSignal": true; }; "rotate": { "alias": "rotate"; "required": false; "isSignal": true; }; "fixedWidth": { "alias": "fixedWidth"; "required": false; "isSignal": true; }; "transform": { "alias": "transform"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class FaLayersCounterComponent {
readonly content: _angular_core.InputSignal<string>;
readonly title: _angular_core.InputSignal<string | undefined>;
readonly position: _angular_core.InputSignal<"bottom-right" | "bottom-left" | "top-right" | "top-left" | undefined>;
readonly renderedHTML: _angular_core.Signal<_angular_platform_browser.SafeHtml>;
private document;
private config;
private parent;
private sanitizer;
constructor();
protected buildParams(): CounterParams;
private updateContent;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaLayersCounterComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FaLayersCounterComponent, "fa-layers-counter", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class FaStackComponent {
/**
* Size of the stacked icon.
* Note that stacked icon is by default 2 times bigger, than non-stacked icon.
* You'll need to set size using custom CSS to align stacked icon with a
* simple one. E.g. `fa-stack { font-size: 0.5em; }`.
*/
readonly size: _angular_core.InputSignal<SizeProp | undefined>;
readonly classes: _angular_core.Signal<{
'fa-stack': boolean;
}>;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaStackComponent, never>;
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FaStackComponent, "fa-stack", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}
declare class FaStackItemSizeDirective {
/**
* Specify whether icon inside {@link FaStackComponent} should be rendered in
* regular size (1x) or as a larger icon (2x).
*/
readonly stackItemSize: _angular_core.InputSignal<"1x" | "2x">;
_effect: _angular_core.EffectRef;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaStackItemSizeDirective, never>;
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FaStackItemSizeDirective, "fa-icon[stackItemSize],fa-duotone-icon[stackItemSize]", never, { "stackItemSize": { "alias": "stackItemSize"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
declare class FontAwesomeModule {
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FontAwesomeModule, never>;
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<FontAwesomeModule, never, [typeof FaIconComponent, typeof FaDuotoneIconComponent, typeof FaLayersComponent, typeof FaLayersTextComponent, typeof FaLayersCounterComponent, typeof FaStackComponent, typeof FaStackItemSizeDirective], [typeof FaIconComponent, typeof FaDuotoneIconComponent, typeof FaLayersComponent, typeof FaLayersTextComponent, typeof FaLayersCounterComponent, typeof FaStackComponent, typeof FaStackItemSizeDirective]>;
static ɵinj: _angular_core.ɵɵInjectorDeclaration<FontAwesomeModule>;
}
declare class FaConfig {
/**
* Default prefix to use, when one is not provided with the icon name.
*
* @default 'fas'
*/
defaultPrefix: IconPrefix;
/**
* Provides a fallback icon to use whilst main icon is being loaded asynchronously.
* When value is null, then fa-icon component will throw an error if icon input is missing.
* When value is not null, then the provided icon will be used as a fallback icon if icon input is missing.
*
* @default null
*/
fallbackIcon: IconDefinition | null;
/**
* Set icons to the same fixed width.
*
* @see {@link: https://fontawesome.com/how-to-use/on-the-web/styling/fixed-width-icons}
* @default false
*/
fixedWidth?: boolean;
/**
* Automatically add Font Awesome styles to the document when icon is rendered.
*
* For the majority of the cases the automatically added CSS is sufficient,
* please refer to the linked guide for more information on when to disable
* this feature.
*
* @see {@link: https://github.com/FortAwesome/angular-fontawesome/blob/main/docs/guide/adding-css.md}
* @default true
*/
set autoAddCss(value: boolean);
get autoAddCss(): boolean;
private _autoAddCss;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaConfig, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FaConfig>;
}
interface FaIconLibraryInterface {
addIcons(...icons: IconDefinition[]): void;
addIconPacks(...packs: IconPack[]): void;
getIconDefinition(prefix: IconPrefix, name: IconName): IconDefinition | null;
}
declare class FaIconLibrary implements FaIconLibraryInterface {
private definitions;
addIcons(...icons: IconDefinition[]): void;
addIconPacks(...packs: IconPack[]): void;
getIconDefinition(prefix: IconPrefix, name: IconName): IconDefinition | null;
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FaIconLibrary, never>;
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FaIconLibrary>;
}
export { FaConfig, FaDuotoneIconComponent, FaIconComponent, FaIconLibrary, FaLayersComponent, FaLayersCounterComponent, FaLayersTextComponent, FaStackComponent, FaStackItemSizeDirective, FontAwesomeModule };
export type { AnimationProp, FaIconLibraryInterface, FaProps, IconDefinition, IconLookup, IconName, IconPack, IconPrefix };