@skyux/icon 10.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +3 -0
  2. package/documentation.json +467 -0
  3. package/esm2022/index.mjs +4 -0
  4. package/esm2022/lib/icon/icon-class-list.pipe.mjs +35 -0
  5. package/esm2022/lib/icon/icon-resolver.service.mjs +79 -0
  6. package/esm2022/lib/icon/icon-stack-item.mjs +2 -0
  7. package/esm2022/lib/icon/icon-stack.component.mjs +26 -0
  8. package/esm2022/lib/icon/icon.component.mjs +27 -0
  9. package/esm2022/lib/icon/icon.module.mjs +20 -0
  10. package/esm2022/lib/icon/types/icon-resolved.mjs +2 -0
  11. package/esm2022/lib/icon/types/icon-type.mjs +2 -0
  12. package/esm2022/lib/icon/types/icon-variant-type.mjs +2 -0
  13. package/esm2022/skyux-icon.mjs +5 -0
  14. package/esm2022/testing/icon/icon-harness-filters.mjs +2 -0
  15. package/esm2022/testing/icon/icon-harness.mjs +87 -0
  16. package/esm2022/testing/index.mjs +2 -0
  17. package/esm2022/testing/skyux-icon-testing.mjs +5 -0
  18. package/fesm2022/skyux-icon-testing.mjs +94 -0
  19. package/fesm2022/skyux-icon-testing.mjs.map +1 -0
  20. package/fesm2022/skyux-icon.mjs +177 -0
  21. package/fesm2022/skyux-icon.mjs.map +1 -0
  22. package/index.d.ts +6 -0
  23. package/lib/icon/icon-class-list.pipe.d.ts +13 -0
  24. package/lib/icon/icon-resolver.service.d.ts +14 -0
  25. package/lib/icon/icon-stack-item.d.ts +20 -0
  26. package/lib/icon/icon-stack.component.d.ts +24 -0
  27. package/lib/icon/icon.component.d.ts +41 -0
  28. package/lib/icon/icon.module.d.ts +10 -0
  29. package/lib/icon/types/icon-resolved.d.ts +7 -0
  30. package/lib/icon/types/icon-type.d.ts +4 -0
  31. package/lib/icon/types/icon-variant-type.d.ts +1 -0
  32. package/package.json +51 -0
  33. package/testing/icon/icon-harness-filters.d.ts +6 -0
  34. package/testing/icon/icon-harness.d.ts +39 -0
  35. package/testing/index.d.ts +2 -0
@@ -0,0 +1,27 @@
1
+ import { ChangeDetectionStrategy, Component, Input, inject, } from '@angular/core';
2
+ import { SkyThemeService } from '@skyux/theme';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "./icon-class-list.pipe";
6
+ export class SkyIconComponent {
7
+ constructor() {
8
+ this.themeSvc = inject(SkyThemeService, { optional: true });
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: SkyIconComponent, selector: "sky-icon", inputs: { icon: "icon", iconType: "iconType", size: "size", fixedWidth: "fixedWidth", variant: "variant" }, ngImport: i0, template: "<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [attr.data-sky-icon]=\"icon\"\n [attr.data-sky-icon-type]=\"iconType\"\n [attr.data-sky-icon-variant]=\"variant\"\n [ngClass]=\"\n icon\n | skyIconClassList\n : (themeSvc?.settingsChange | async)?.currentSettings\n : size\n : fixedWidth\n : variant\n \"\n></i>\n", styles: [":host{display:inline-block}i{display:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.SkyIconClassListPipe, name: "skyIconClassList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'sky-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [attr.data-sky-icon]=\"icon\"\n [attr.data-sky-icon-type]=\"iconType\"\n [attr.data-sky-icon-variant]=\"variant\"\n [ngClass]=\"\n icon\n | skyIconClassList\n : (themeSvc?.settingsChange | async)?.currentSettings\n : size\n : fixedWidth\n : variant\n \"\n></i>\n", styles: [":host{display:inline-block}i{display:inherit}\n"] }]
16
+ }], propDecorators: { icon: [{
17
+ type: Input
18
+ }], iconType: [{
19
+ type: Input
20
+ }], size: [{
21
+ type: Input
22
+ }], fixedWidth: [{
23
+ type: Input
24
+ }], variant: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi9zcmMvbGliL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFXL0MsTUFBTSxPQUFPLGdCQUFnQjtJQU43QjtRQWlEWSxhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ2xFOzhHQTVDWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQiw0SkNqQjdCLHNYQWdCQTs7MkZEQ2EsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLFVBQVUsbUJBR0gsdUJBQXVCLENBQUMsTUFBTTs4QkFVeEMsSUFBSTtzQkFEVixLQUFLO2dCQVdDLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsVUFBVTtzQkFEaEIsS0FBSztnQkFRQyxPQUFPO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IFNreUljb25UeXBlIH0gZnJvbSAnLi90eXBlcy9pY29uLXR5cGUnO1xuaW1wb3J0IHsgU2t5SWNvblZhcmlhbnRUeXBlIH0gZnJvbSAnLi90eXBlcy9pY29uLXZhcmlhbnQtdHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJY29uQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mXG4gICAqIFt0aGUgRm9udCBBd2Vzb21lIDQuNyBpY29uXShodHRwczovL2ZvbnRhd2Vzb21lLmNvbS92NC43L2ljb25zLykgb3IgdGhlIFNLWSBVWCBpY29uIHRvXG4gICAqIGRpc3BsYXkuIFdoZW4gc3BlY2lmeWluZyBhIEZvbnQgQXdlc29tZSBpY29uLCBkbyBub3QgcHJlZml4IHRoZSBuYW1lIHdpdGggYGZhLWAuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgaWNvbiB0byBkaXNwbGF5LiBTcGVjaWZ5aW5nIGBcImZhXCJgIGRpc3BsYXlzIGEgRm9udCBBd2Vzb21lIGljb24sXG4gICAqIHdoaWxlIHNwZWNpZnlpbmcgYFwic2t5dXhcImAgZGlzcGxheXMgYW4gaWNvbiBmcm9tIHRoZSBjdXN0b20gU0tZIFVYIGljb24gZm9udC4gTm90ZSB0aGF0XG4gICAqIHRoZSBjdXN0b20gU0tZIFVYIGljb24gZm9udCBpcyBjdXJyZW50bHkgaW4gYmV0YS5cbiAgICogQGRlZmF1bHQgXCJmYVwiXG4gICAqIEBkZXByZWNhdGVkIFRoZSBpY29uIGNvbXBvbmVudCBub3cgYXV0b21hdGljYWxseSBpbmZlcnMgd2hpY2ggdHlwZSBvZiBpY29uIHRvIHVzZSBiYXNlZCBvbiB0aGUgY3VycmVudCB0aGVtZS4gVGhpcyBpbnB1dCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpY29uVHlwZTogU2t5SWNvblR5cGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBpY29uIHVzaW5nXG4gICAqIFtGb250IEF3ZXNvbWUgc2l6ZXNdKGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL3Y0L2V4YW1wbGVzLykuIERvIG5vdCBwcmVmaXggdGhlIHNpemUgd2l0aCBgZmEtYC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaXplOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5mb3JjZSBhIGZpeGVkIHdpZHRoIGJhc2VkIG9uIGljb24gc2l6ZS4gQnkgZGVmYXVsdCwgaWNvbnMgb2YgYSBzcGVjaWZpZWQgc2l6ZSBzaGFyZSBhXG4gICAqIGNvbnNpc3RlbnQgaGVpZ2h0LCBidXQgdGhlaXIgd2lkdGhzIHZhcnkgYW5kIGNhbiB0aHJvdyBvZmYgdmVydGljYWwgYWxpZ25tZW50LiBVc2UgYSBmaXhlZCB3aWR0aCB3aGVuXG4gICAqIHlvdSBzdGFjayBpY29ucyB2ZXJ0aWNhbGx5LCBzdWNoIGFzIGluIGxpc3RzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGZpeGVkV2lkdGg6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpY29uIHZhcmlhbnQuIElmIHRoZSB2YXJpYW50IGRvZXNuJ3QgZXhpc3QgZm9yIHRoZVxuICAgKiBzcGVjaWZpZWQgaWNvbiwgdGhlIG5vcm1hbCBpY29uIGlzIGRpc3BsYXllZC4gVGhpcyBwcm9wZXJ0eSBvbmx5IGFwcGxpZXMgd2hlbiB1c2luZyBTS1kgVVggaWNvbnMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgdmFyaWFudDogU2t5SWNvblZhcmlhbnRUeXBlIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCB0aGVtZVN2YyA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG59XG4iLCI8aVxuICAqbmdJZj1cImljb25cIlxuICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICBjbGFzcz1cInNreS1pY29uXCJcbiAgW2F0dHIuZGF0YS1za3ktaWNvbl09XCJpY29uXCJcbiAgW2F0dHIuZGF0YS1za3ktaWNvbi10eXBlXT1cImljb25UeXBlXCJcbiAgW2F0dHIuZGF0YS1za3ktaWNvbi12YXJpYW50XT1cInZhcmlhbnRcIlxuICBbbmdDbGFzc109XCJcbiAgICBpY29uXG4gICAgICB8IHNreUljb25DbGFzc0xpc3RcbiAgICAgICAgOiAodGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlIHwgYXN5bmMpPy5jdXJyZW50U2V0dGluZ3NcbiAgICAgICAgOiBzaXplXG4gICAgICAgIDogZml4ZWRXaWR0aFxuICAgICAgICA6IHZhcmlhbnRcbiAgXCJcbj48L2k+XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SkyIconClassListPipe } from './icon-class-list.pipe';
4
+ import { SkyIconStackComponent } from './icon-stack.component';
5
+ import { SkyIconComponent } from './icon.component';
6
+ import * as i0 from "@angular/core";
7
+ export class SkyIconModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent], imports: [CommonModule], exports: [SkyIconComponent, SkyIconStackComponent] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, imports: [CommonModule] }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],
16
+ imports: [CommonModule],
17
+ exports: [SkyIconComponent, SkyIconStackComponent],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi9zcmMvbGliL2ljb24vaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBT3BELE1BQU0sT0FBTyxhQUFhOzhHQUFiLGFBQWE7K0dBQWIsYUFBYSxpQkFKVCxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsYUFDbEUsWUFBWSxhQUNaLGdCQUFnQixFQUFFLHFCQUFxQjsrR0FFdEMsYUFBYSxZQUhkLFlBQVk7OzJGQUdYLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUljb25DbGFzc0xpc3RQaXBlIH0gZnJvbSAnLi9pY29uLWNsYXNzLWxpc3QucGlwZSc7XG5pbXBvcnQgeyBTa3lJY29uU3RhY2tDb21wb25lbnQgfSBmcm9tICcuL2ljb24tc3RhY2suY29tcG9uZW50JztcbmltcG9ydCB7IFNreUljb25Db21wb25lbnQgfSBmcm9tICcuL2ljb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5SWNvbkNsYXNzTGlzdFBpcGUsIFNreUljb25Db21wb25lbnQsIFNreUljb25TdGFja0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5SWNvbkNvbXBvbmVudCwgU2t5SWNvblN0YWNrQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5SWNvbk1vZHVsZSB7fVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1yZXNvbHZlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pY29uL3NyYy9saWIvaWNvbi90eXBlcy9pY29uLXJlc29sdmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreUljb25SZXNvbHZlZCB7XG4gIGljb246IHN0cmluZztcbiAgaWNvblR5cGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ljb24vc3JjL2xpYi9pY29uL3R5cGVzL2ljb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgdHlwZSBTa3lJY29uVHlwZSA9ICdmYScgfCAnc2t5dXgnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi12YXJpYW50LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi9zcmMvbGliL2ljb24vdHlwZXMvaWNvbi12YXJpYW50LXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNreUljb25WYXJpYW50VHlwZSA9ICdsaW5lJyB8ICdzb2xpZCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pY29uL3NyYy9za3l1eC1pY29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1oYXJuZXNzLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi90ZXN0aW5nL3NyYy9pY29uL2ljb24taGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBTa3lJY29uSGFybmVzcyBpbnN0YW5jZXMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFNreUljb25IYXJuZXNzRmlsdGVycyBleHRlbmRzIFNreUhhcm5lc3NGaWx0ZXJzIHt9XG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness for interacting with an icon component in tests.
4
+ */
5
+ export class SkyIconHarness extends SkyComponentHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'sky-icon'; }
10
+ /**
11
+ * Gets a `HarnessPredicate` that can be used to search for a
12
+ * `SkyIconHarness` that meets certain criteria.
13
+ */
14
+ static with(filters) {
15
+ return SkyIconHarness.getDataSkyIdPredicate(filters);
16
+ }
17
+ /**
18
+ * Gets the icon name.
19
+ */
20
+ async getIconName() {
21
+ // No need to check for null here since #getIcon() will throw an error when
22
+ // icon name is null.
23
+ return (await this.#getSpecifiedIconInfo()).icon;
24
+ }
25
+ /**
26
+ * Gets the icon size.
27
+ */
28
+ async getIconSize() {
29
+ const iconClasses = await this.#getIconClasses();
30
+ for (const iconClass of iconClasses) {
31
+ // match a class name that starts with `fa-` and follows with `lg`, `2x`, `3x`, `4x`, `5x`
32
+ if (/^fa-(?=2xs|lg|[2-5]+x)/.test(iconClass)) {
33
+ return iconClass.replace('fa-', '');
34
+ }
35
+ }
36
+ return undefined;
37
+ }
38
+ /**
39
+ * Gets the icon type.
40
+ * @deprecated The `iconType` input is no longer used. This method will be removed in a future version.
41
+ */
42
+ async getIconType() {
43
+ return (await this.#getSpecifiedIconInfo()).iconType || 'fa';
44
+ }
45
+ /**
46
+ * Gets if the icon is a variant.
47
+ */
48
+ async getVariant() {
49
+ const iconInfo = await this.#getSpecifiedIconInfo();
50
+ if (iconInfo.iconType === 'skyux') {
51
+ return iconInfo.variant || 'line';
52
+ }
53
+ throw new Error('Variant cannot be determined because variants are only assigned to icons with type `skyux`.');
54
+ }
55
+ /**
56
+ * Whether the icon has fixed width.
57
+ */
58
+ async isFixedWidth() {
59
+ const icon = await this.#getIcon();
60
+ return icon.hasClass(`fa-fw`);
61
+ }
62
+ async #getIcon() {
63
+ const icon = await this.locatorForOptional('.sky-icon')();
64
+ if (icon) {
65
+ return icon;
66
+ }
67
+ throw new Error('Icon could not be rendered.');
68
+ }
69
+ async #getIconClasses() {
70
+ const iconClasses = await (await this.#getIcon()).getProperty('classList');
71
+ return Array.from(iconClasses);
72
+ }
73
+ async #getSpecifiedIconInfo() {
74
+ // Since SKY UX icons have Font Awesome alternatives that may be used
75
+ // in default theme instead of the icon specified by the consumer, we
76
+ // need to get the specified values using data- attributes added by
77
+ // the icon component. This conflicts with the usual pattern of giving
78
+ // the effective state of the component but is necessary in this case.
79
+ const icon = await this.#getIcon();
80
+ return {
81
+ icon: await icon.getAttribute('data-sky-icon'),
82
+ iconType: await icon.getAttribute('data-sky-icon-type'),
83
+ variant: await icon.getAttribute('data-sky-icon-variant'),
84
+ };
85
+ }
86
+ }
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ljb24vdGVzdGluZy9zcmMvaWNvbi9pY29uLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUFtQjtJQUNyRDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsVUFBVSxDQUFDO0lBRXhDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQThCO1FBRTlCLE9BQU8sY0FBYyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLDJFQUEyRTtRQUMzRSxxQkFBcUI7UUFDckIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxJQUFjLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFakQsS0FBSyxNQUFNLFNBQVMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNwQywwRkFBMEY7WUFDMUYsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsV0FBVztRQUN0QixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUVwRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxRQUFRLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQztRQUNwQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYiw2RkFBNkYsQ0FDOUYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBRTFELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlO1FBQ25CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxxQkFBcUI7UUFLekIscUVBQXFFO1FBQ3JFLHFFQUFxRTtRQUNyRSxtRUFBbUU7UUFDbkUsc0VBQXNFO1FBQ3RFLHNFQUFzRTtRQUN0RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVuQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7WUFDOUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztZQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDO1NBQzFELENBQUM7SUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSwgVGVzdEVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreUljb25IYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vaWNvbi1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYW4gaWNvbiBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lJY29uSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktaWNvbic7XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreUljb25IYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5SWNvbkhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUljb25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUljb25IYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBpY29uIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SWNvbk5hbWUoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBObyBuZWVkIHRvIGNoZWNrIGZvciBudWxsIGhlcmUgc2luY2UgI2dldEljb24oKSB3aWxsIHRocm93IGFuIGVycm9yIHdoZW5cbiAgICAvLyBpY29uIG5hbWUgaXMgbnVsbC5cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldFNwZWNpZmllZEljb25JbmZvKCkpLmljb24gYXMgc3RyaW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGljb24gc2l6ZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRJY29uU2l6ZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGljb25DbGFzc2VzID0gYXdhaXQgdGhpcy4jZ2V0SWNvbkNsYXNzZXMoKTtcblxuICAgIGZvciAoY29uc3QgaWNvbkNsYXNzIG9mIGljb25DbGFzc2VzKSB7XG4gICAgICAvLyBtYXRjaCBhIGNsYXNzIG5hbWUgdGhhdCBzdGFydHMgd2l0aCBgZmEtYCBhbmQgZm9sbG93cyB3aXRoIGBsZ2AsIGAyeGAsIGAzeGAsIGA0eGAsIGA1eGBcbiAgICAgIGlmICgvXmZhLSg/PTJ4c3xsZ3xbMi01XSt4KS8udGVzdChpY29uQ2xhc3MpKSB7XG4gICAgICAgIHJldHVybiBpY29uQ2xhc3MucmVwbGFjZSgnZmEtJywgJycpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaWNvbiB0eXBlLlxuICAgKiBAZGVwcmVjYXRlZCBUaGUgYGljb25UeXBlYCBpbnB1dCBpcyBubyBsb25nZXIgdXNlZC4gVGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SWNvblR5cGUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuI2dldFNwZWNpZmllZEljb25JbmZvKCkpLmljb25UeXBlIHx8ICdmYSc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBpZiB0aGUgaWNvbiBpcyBhIHZhcmlhbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0VmFyaWFudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGljb25JbmZvID0gYXdhaXQgdGhpcy4jZ2V0U3BlY2lmaWVkSWNvbkluZm8oKTtcblxuICAgIGlmIChpY29uSW5mby5pY29uVHlwZSA9PT0gJ3NreXV4Jykge1xuICAgICAgcmV0dXJuIGljb25JbmZvLnZhcmlhbnQgfHwgJ2xpbmUnO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdWYXJpYW50IGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJlY2F1c2UgdmFyaWFudHMgYXJlIG9ubHkgYXNzaWduZWQgdG8gaWNvbnMgd2l0aCB0eXBlIGBza3l1eGAuJyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGljb24gaGFzIGZpeGVkIHdpZHRoLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRml4ZWRXaWR0aCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBpY29uID0gYXdhaXQgdGhpcy4jZ2V0SWNvbigpO1xuICAgIHJldHVybiBpY29uLmhhc0NsYXNzKGBmYS1md2ApO1xuICB9XG5cbiAgYXN5bmMgI2dldEljb24oKTogUHJvbWlzZTxUZXN0RWxlbWVudD4ge1xuICAgIGNvbnN0IGljb24gPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnLnNreS1pY29uJykoKTtcblxuICAgIGlmIChpY29uKSB7XG4gICAgICByZXR1cm4gaWNvbjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ljb24gY291bGQgbm90IGJlIHJlbmRlcmVkLicpO1xuICB9XG5cbiAgYXN5bmMgI2dldEljb25DbGFzc2VzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCBpY29uQ2xhc3NlcyA9IGF3YWl0IChhd2FpdCB0aGlzLiNnZXRJY29uKCkpLmdldFByb3BlcnR5KCdjbGFzc0xpc3QnKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShpY29uQ2xhc3Nlcyk7XG4gIH1cblxuICBhc3luYyAjZ2V0U3BlY2lmaWVkSWNvbkluZm8oKTogUHJvbWlzZTx7XG4gICAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICBpY29uVHlwZTogc3RyaW5nIHwgbnVsbDtcbiAgICB2YXJpYW50OiBzdHJpbmcgfCBudWxsO1xuICB9PiB7XG4gICAgLy8gU2luY2UgU0tZIFVYIGljb25zIGhhdmUgRm9udCBBd2Vzb21lIGFsdGVybmF0aXZlcyB0aGF0IG1heSBiZSB1c2VkXG4gICAgLy8gaW4gZGVmYXVsdCB0aGVtZSBpbnN0ZWFkIG9mIHRoZSBpY29uIHNwZWNpZmllZCBieSB0aGUgY29uc3VtZXIsIHdlXG4gICAgLy8gbmVlZCB0byBnZXQgdGhlIHNwZWNpZmllZCB2YWx1ZXMgdXNpbmcgZGF0YS0gYXR0cmlidXRlcyBhZGRlZCBieVxuICAgIC8vIHRoZSBpY29uIGNvbXBvbmVudC4gVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgdXN1YWwgcGF0dGVybiBvZiBnaXZpbmdcbiAgICAvLyB0aGUgZWZmZWN0aXZlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQgYnV0IGlzIG5lY2Vzc2FyeSBpbiB0aGlzIGNhc2UuXG4gICAgY29uc3QgaWNvbiA9IGF3YWl0IHRoaXMuI2dldEljb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpY29uOiBhd2FpdCBpY29uLmdldEF0dHJpYnV0ZSgnZGF0YS1za3ktaWNvbicpLFxuICAgICAgaWNvblR5cGU6IGF3YWl0IGljb24uZ2V0QXR0cmlidXRlKCdkYXRhLXNreS1pY29uLXR5cGUnKSxcbiAgICAgIHZhcmlhbnQ6IGF3YWl0IGljb24uZ2V0QXR0cmlidXRlKCdkYXRhLXNreS1pY29uLXZhcmlhbnQnKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { SkyIconHarness } from './icon/icon-harness';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi90ZXN0aW5nL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lJY29uSGFybmVzcyB9IGZyb20gJy4vaWNvbi9pY29uLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5SWNvbkhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9pY29uL2ljb24taGFybmVzcy1maWx0ZXJzJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtaWNvbi10ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ljb24vdGVzdGluZy9zcmMvc2t5dXgtaWNvbi10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,94 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+
3
+ /**
4
+ * Harness for interacting with an icon component in tests.
5
+ */
6
+ class SkyIconHarness extends SkyComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static { this.hostSelector = 'sky-icon'; }
11
+ /**
12
+ * Gets a `HarnessPredicate` that can be used to search for a
13
+ * `SkyIconHarness` that meets certain criteria.
14
+ */
15
+ static with(filters) {
16
+ return SkyIconHarness.getDataSkyIdPredicate(filters);
17
+ }
18
+ /**
19
+ * Gets the icon name.
20
+ */
21
+ async getIconName() {
22
+ // No need to check for null here since #getIcon() will throw an error when
23
+ // icon name is null.
24
+ return (await this.#getSpecifiedIconInfo()).icon;
25
+ }
26
+ /**
27
+ * Gets the icon size.
28
+ */
29
+ async getIconSize() {
30
+ const iconClasses = await this.#getIconClasses();
31
+ for (const iconClass of iconClasses) {
32
+ // match a class name that starts with `fa-` and follows with `lg`, `2x`, `3x`, `4x`, `5x`
33
+ if (/^fa-(?=2xs|lg|[2-5]+x)/.test(iconClass)) {
34
+ return iconClass.replace('fa-', '');
35
+ }
36
+ }
37
+ return undefined;
38
+ }
39
+ /**
40
+ * Gets the icon type.
41
+ * @deprecated The `iconType` input is no longer used. This method will be removed in a future version.
42
+ */
43
+ async getIconType() {
44
+ return (await this.#getSpecifiedIconInfo()).iconType || 'fa';
45
+ }
46
+ /**
47
+ * Gets if the icon is a variant.
48
+ */
49
+ async getVariant() {
50
+ const iconInfo = await this.#getSpecifiedIconInfo();
51
+ if (iconInfo.iconType === 'skyux') {
52
+ return iconInfo.variant || 'line';
53
+ }
54
+ throw new Error('Variant cannot be determined because variants are only assigned to icons with type `skyux`.');
55
+ }
56
+ /**
57
+ * Whether the icon has fixed width.
58
+ */
59
+ async isFixedWidth() {
60
+ const icon = await this.#getIcon();
61
+ return icon.hasClass(`fa-fw`);
62
+ }
63
+ async #getIcon() {
64
+ const icon = await this.locatorForOptional('.sky-icon')();
65
+ if (icon) {
66
+ return icon;
67
+ }
68
+ throw new Error('Icon could not be rendered.');
69
+ }
70
+ async #getIconClasses() {
71
+ const iconClasses = await (await this.#getIcon()).getProperty('classList');
72
+ return Array.from(iconClasses);
73
+ }
74
+ async #getSpecifiedIconInfo() {
75
+ // Since SKY UX icons have Font Awesome alternatives that may be used
76
+ // in default theme instead of the icon specified by the consumer, we
77
+ // need to get the specified values using data- attributes added by
78
+ // the icon component. This conflicts with the usual pattern of giving
79
+ // the effective state of the component but is necessary in this case.
80
+ const icon = await this.#getIcon();
81
+ return {
82
+ icon: await icon.getAttribute('data-sky-icon'),
83
+ iconType: await icon.getAttribute('data-sky-icon-type'),
84
+ variant: await icon.getAttribute('data-sky-icon-variant'),
85
+ };
86
+ }
87
+ }
88
+
89
+ /**
90
+ * Generated bundle index. Do not edit.
91
+ */
92
+
93
+ export { SkyIconHarness };
94
+ //# sourceMappingURL=skyux-icon-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-icon-testing.mjs","sources":["../../../../../libs/components/icon/testing/src/icon/icon-harness.ts","../../../../../libs/components/icon/testing/src/skyux-icon-testing.ts"],"sourcesContent":["import { HarnessPredicate, TestElement } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\n\nimport { SkyIconHarnessFilters } from './icon-harness-filters';\n\n/**\n * Harness for interacting with an icon component in tests.\n */\nexport class SkyIconHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-icon';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyIconHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyIconHarnessFilters,\n ): HarnessPredicate<SkyIconHarness> {\n return SkyIconHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets the icon name.\n */\n public async getIconName(): Promise<string | undefined> {\n // No need to check for null here since #getIcon() will throw an error when\n // icon name is null.\n return (await this.#getSpecifiedIconInfo()).icon as string;\n }\n\n /**\n * Gets the icon size.\n */\n public async getIconSize(): Promise<string | undefined> {\n const iconClasses = await this.#getIconClasses();\n\n for (const iconClass of iconClasses) {\n // match a class name that starts with `fa-` and follows with `lg`, `2x`, `3x`, `4x`, `5x`\n if (/^fa-(?=2xs|lg|[2-5]+x)/.test(iconClass)) {\n return iconClass.replace('fa-', '');\n }\n }\n\n return undefined;\n }\n\n /**\n * Gets the icon type.\n * @deprecated The `iconType` input is no longer used. This method will be removed in a future version.\n */\n public async getIconType(): Promise<string> {\n return (await this.#getSpecifiedIconInfo()).iconType || 'fa';\n }\n\n /**\n * Gets if the icon is a variant.\n */\n public async getVariant(): Promise<string | undefined> {\n const iconInfo = await this.#getSpecifiedIconInfo();\n\n if (iconInfo.iconType === 'skyux') {\n return iconInfo.variant || 'line';\n }\n\n throw new Error(\n 'Variant cannot be determined because variants are only assigned to icons with type `skyux`.',\n );\n }\n\n /**\n * Whether the icon has fixed width.\n */\n public async isFixedWidth(): Promise<boolean> {\n const icon = await this.#getIcon();\n return icon.hasClass(`fa-fw`);\n }\n\n async #getIcon(): Promise<TestElement> {\n const icon = await this.locatorForOptional('.sky-icon')();\n\n if (icon) {\n return icon;\n }\n\n throw new Error('Icon could not be rendered.');\n }\n\n async #getIconClasses(): Promise<string[]> {\n const iconClasses = await (await this.#getIcon()).getProperty('classList');\n return Array.from(iconClasses);\n }\n\n async #getSpecifiedIconInfo(): Promise<{\n icon: string | null;\n iconType: string | null;\n variant: string | null;\n }> {\n // Since SKY UX icons have Font Awesome alternatives that may be used\n // in default theme instead of the icon specified by the consumer, we\n // need to get the specified values using data- attributes added by\n // the icon component. This conflicts with the usual pattern of giving\n // the effective state of the component but is necessary in this case.\n const icon = await this.#getIcon();\n\n return {\n icon: await icon.getAttribute('data-sky-icon'),\n iconType: await icon.getAttribute('data-sky-icon-type'),\n variant: await icon.getAttribute('data-sky-icon-variant'),\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAKA;;AAEG;AACG,MAAO,cAAe,SAAQ,mBAAmB,CAAA;AACrD;;AAEG;aACW,IAAY,CAAA,YAAA,GAAG,UAAU,CAAC,EAAA;AAExC;;;AAGG;IACI,OAAO,IAAI,CAChB,OAA8B,EAAA;AAE9B,QAAA,OAAO,cAAc,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;KACtD;AAED;;AAEG;AACI,IAAA,MAAM,WAAW,GAAA;;;QAGtB,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,IAAc,CAAC;KAC5D;AAED;;AAEG;AACI,IAAA,MAAM,WAAW,GAAA;AACtB,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAEjD,QAAA,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE;;AAEnC,YAAA,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC5C,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;aACrC;SACF;AAED,QAAA,OAAO,SAAS,CAAC;KAClB;AAED;;;AAGG;AACI,IAAA,MAAM,WAAW,GAAA;QACtB,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC;KAC9D;AAED;;AAEG;AACI,IAAA,MAAM,UAAU,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAEpD,QAAA,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,EAAE;AACjC,YAAA,OAAO,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC;SACnC;AAED,QAAA,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;KACH;AAED;;AAEG;AACI,IAAA,MAAM,YAAY,GAAA;AACvB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAA,KAAA,CAAO,CAAC,CAAC;KAC/B;AAED,IAAA,MAAM,QAAQ,GAAA;QACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;QAE1D,IAAI,IAAI,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;SACb;AAED,QAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;AAED,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;AAC3E,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAChC;AAED,IAAA,MAAM,qBAAqB,GAAA;;;;;;AAUzB,QAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEnC,OAAO;AACL,YAAA,IAAI,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;AAC9C,YAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC;AACvD,YAAA,OAAO,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC;SAC1D,CAAC;KACH;;;AChHH;;AAEG;;;;"}
@@ -0,0 +1,177 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Injectable, Pipe, Component, Input, ChangeDetectionStrategy, NgModule } from '@angular/core';
5
+ import { SkyThemeIconManifestService, SkyThemeService } from '@skyux/theme';
6
+
7
+ /**
8
+ * @internal
9
+ */
10
+ class SkyIconResolverService {
11
+ #glyphMap = new Map();
12
+ #manifestSvc = inject(SkyThemeIconManifestService);
13
+ constructor() {
14
+ // Map the icons by name for more efficient lookup.
15
+ for (const glyph of this.#manifestSvc.getManifest().glyphs) {
16
+ // TODO: keep this until `faName` is removed just in case any icons get added with the wrong shape
17
+ if (glyph.faName && !glyph.faNames) {
18
+ glyph.faNames = [glyph.faName];
19
+ }
20
+ this.#glyphMap.set(glyph.name, glyph);
21
+ }
22
+ }
23
+ resolveIcon(icon, variant, themeSettings) {
24
+ let iconType = 'fa';
25
+ const variantIcon = variant && `${icon}-${variant}`;
26
+ const lineIcon = `${icon}-line`;
27
+ // Get the specified variant, or fall back to the icon name.
28
+ // If the pure icon name doesn't exist, try the line variant.
29
+ let glyph = this.#glyphMap.get(variantIcon) ??
30
+ this.#glyphMap.get(icon) ??
31
+ this.#glyphMap.get(lineIcon) ??
32
+ Array.from(this.#glyphMap.values()).find((glyph) => glyph.aliases?.includes(variantIcon) ||
33
+ glyph.aliases?.includes(lineIcon) ||
34
+ glyph.aliases?.includes(icon));
35
+ // If still no icon is found, search through the icons that match the FA name.
36
+ if (!glyph) {
37
+ let glyphs = Array.from(this.#glyphMap.values()).filter((g) => g.faNames?.includes(icon));
38
+ if (glyphs.length) {
39
+ if (glyphs.length > 1) {
40
+ // If multiples are found, make sure we select the correct variant, if requested.
41
+ // The icons are ordered such that the "default" variant will be the first one.
42
+ if (variant) {
43
+ const variantGlyph = glyphs.find((g) => g.name.endsWith(variant));
44
+ if (variantGlyph) {
45
+ glyphs = [variantGlyph];
46
+ }
47
+ }
48
+ }
49
+ glyph = glyphs[0];
50
+ }
51
+ // If none of the above works, no matching icon was found
52
+ }
53
+ if (glyph) {
54
+ // If a glyph is found, use it for modern theme or if no FA fallback exists.
55
+ if (themeSettings?.theme.name === 'modern' || !glyph.faNames?.length) {
56
+ icon = glyph.name;
57
+ iconType = 'skyux';
58
+ }
59
+ else {
60
+ // For default theme, use a known FA fallback.
61
+ // If the icon name requested is already a FA icon, just use it. Otherwise use the first one.
62
+ if (!glyph.faNames?.includes(icon)) {
63
+ icon = glyph.faNames[0];
64
+ }
65
+ }
66
+ }
67
+ // If no SKY UX glyph is found, assume icon is part of FA and pass it along.
68
+ return {
69
+ icon,
70
+ iconType,
71
+ };
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconResolverService, providedIn: 'root' }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconResolverService, decorators: [{
77
+ type: Injectable,
78
+ args: [{
79
+ providedIn: 'root',
80
+ }]
81
+ }], ctorParameters: () => [] });
82
+
83
+ /**
84
+ * @internal
85
+ */
86
+ class SkyIconClassListPipe {
87
+ #resolver = inject(SkyIconResolverService);
88
+ transform(icon, themeSettings, size, fixedWidth, variant) {
89
+ let classList;
90
+ const { icon: resolvedIcon, iconType: resolvedIconType } = this.#resolver.resolveIcon(icon, variant, themeSettings);
91
+ if (resolvedIconType === 'skyux') {
92
+ classList = ['sky-i-' + resolvedIcon];
93
+ }
94
+ else {
95
+ classList = ['fa', 'fa-' + resolvedIcon];
96
+ }
97
+ if (size) {
98
+ classList.push('fa-' + size);
99
+ }
100
+ if (fixedWidth) {
101
+ classList.push('fa-fw');
102
+ }
103
+ return classList;
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconClassListPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
106
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyIconClassListPipe, name: "skyIconClassList" }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconClassListPipe, decorators: [{
109
+ type: Pipe,
110
+ args: [{
111
+ name: 'skyIconClassList',
112
+ }]
113
+ }] });
114
+
115
+ /**
116
+ * @internal
117
+ */
118
+ class SkyIconStackComponent {
119
+ constructor() {
120
+ this.themeSvc = inject(SkyThemeService, { optional: true });
121
+ }
122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconStackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
123
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: SkyIconStackComponent, selector: "sky-icon-stack", inputs: { size: "size", baseIcon: "baseIcon", topIcon: "topIcon" }, ngImport: i0, template: "<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"\n baseIcon.icon\n | skyIconClassList: (themeSvc?.settingsChange | async)?.currentSettings\n \"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"\n topIcon.icon\n | skyIconClassList: (themeSvc?.settingsChange | async)?.currentSettings\n \"\n ></i>\n</span>\n", styles: [":host{display:inline-block;vertical-align:bottom}.sky-icon-stack-size-xs.fa-stack{width:1.25em;height:1.25em;line-height:1.25em}.sky-icon-stack-size-xs .fa-stack-2x{font-size:1.25em}.sky-icon-stack-size-xs .fa-stack-1x{font-size:.625em}.fa-stack-1x.sky-i-check:before{position:relative;top:.5px}.fa-stack-1x.sky-i-exclamation:before{position:relative;top:1.5px}.sky-icon-inverse{color:var(--sky-icon-stack-top-icon-color-override, #ffffff)}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-icon-inverse{color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-icon-inverse{color:#121212}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: SkyIconClassListPipe, name: "skyIconClassList" }] }); }
124
+ }
125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconStackComponent, decorators: [{
126
+ type: Component,
127
+ args: [{ selector: 'sky-icon-stack', template: "<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"\n baseIcon.icon\n | skyIconClassList: (themeSvc?.settingsChange | async)?.currentSettings\n \"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"\n topIcon.icon\n | skyIconClassList: (themeSvc?.settingsChange | async)?.currentSettings\n \"\n ></i>\n</span>\n", styles: [":host{display:inline-block;vertical-align:bottom}.sky-icon-stack-size-xs.fa-stack{width:1.25em;height:1.25em;line-height:1.25em}.sky-icon-stack-size-xs .fa-stack-2x{font-size:1.25em}.sky-icon-stack-size-xs .fa-stack-1x{font-size:.625em}.fa-stack-1x.sky-i-check:before{position:relative;top:.5px}.fa-stack-1x.sky-i-exclamation:before{position:relative;top:1.5px}.sky-icon-inverse{color:var(--sky-icon-stack-top-icon-color-override, #ffffff)}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-icon-inverse{color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-icon-inverse{color:#121212}\n"] }]
128
+ }], propDecorators: { size: [{
129
+ type: Input
130
+ }], baseIcon: [{
131
+ type: Input
132
+ }], topIcon: [{
133
+ type: Input
134
+ }] } });
135
+
136
+ class SkyIconComponent {
137
+ constructor() {
138
+ this.themeSvc = inject(SkyThemeService, { optional: true });
139
+ }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: SkyIconComponent, selector: "sky-icon", inputs: { icon: "icon", iconType: "iconType", size: "size", fixedWidth: "fixedWidth", variant: "variant" }, ngImport: i0, template: "<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [attr.data-sky-icon]=\"icon\"\n [attr.data-sky-icon-type]=\"iconType\"\n [attr.data-sky-icon-variant]=\"variant\"\n [ngClass]=\"\n icon\n | skyIconClassList\n : (themeSvc?.settingsChange | async)?.currentSettings\n : size\n : fixedWidth\n : variant\n \"\n></i>\n", styles: [":host{display:inline-block}i{display:inherit}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: SkyIconClassListPipe, name: "skyIconClassList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
+ }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconComponent, decorators: [{
144
+ type: Component,
145
+ args: [{ selector: 'sky-icon', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [attr.data-sky-icon]=\"icon\"\n [attr.data-sky-icon-type]=\"iconType\"\n [attr.data-sky-icon-variant]=\"variant\"\n [ngClass]=\"\n icon\n | skyIconClassList\n : (themeSvc?.settingsChange | async)?.currentSettings\n : size\n : fixedWidth\n : variant\n \"\n></i>\n", styles: [":host{display:inline-block}i{display:inherit}\n"] }]
146
+ }], propDecorators: { icon: [{
147
+ type: Input
148
+ }], iconType: [{
149
+ type: Input
150
+ }], size: [{
151
+ type: Input
152
+ }], fixedWidth: [{
153
+ type: Input
154
+ }], variant: [{
155
+ type: Input
156
+ }] } });
157
+
158
+ class SkyIconModule {
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
160
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent], imports: [CommonModule], exports: [SkyIconComponent, SkyIconStackComponent] }); }
161
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, imports: [CommonModule] }); }
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, decorators: [{
164
+ type: NgModule,
165
+ args: [{
166
+ declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],
167
+ imports: [CommonModule],
168
+ exports: [SkyIconComponent, SkyIconStackComponent],
169
+ }]
170
+ }] });
171
+
172
+ /**
173
+ * Generated bundle index. Do not edit.
174
+ */
175
+
176
+ export { SkyIconModule, SkyIconComponent as λ1, SkyIconStackComponent as λ2 };
177
+ //# sourceMappingURL=skyux-icon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-icon.mjs","sources":["../../../../../libs/components/icon/src/lib/icon/icon-resolver.service.ts","../../../../../libs/components/icon/src/lib/icon/icon-class-list.pipe.ts","../../../../../libs/components/icon/src/lib/icon/icon-stack.component.ts","../../../../../libs/components/icon/src/lib/icon/icon-stack.component.html","../../../../../libs/components/icon/src/lib/icon/icon.component.ts","../../../../../libs/components/icon/src/lib/icon/icon.component.html","../../../../../libs/components/icon/src/lib/icon/icon.module.ts","../../../../../libs/components/icon/src/skyux-icon.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport {\n SkyThemeIconManifestGlyph,\n SkyThemeIconManifestService,\n SkyThemeSettings,\n} from '@skyux/theme';\n\nimport { SkyIconResolved } from './types/icon-resolved';\nimport type { SkyIconVariantType } from './types/icon-variant-type';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyIconResolverService {\n #glyphMap = new Map<string, SkyThemeIconManifestGlyph>();\n\n #manifestSvc = inject(SkyThemeIconManifestService);\n\n constructor() {\n // Map the icons by name for more efficient lookup.\n for (const glyph of this.#manifestSvc.getManifest().glyphs) {\n // TODO: keep this until `faName` is removed just in case any icons get added with the wrong shape\n if (glyph.faName && !glyph.faNames) {\n glyph.faNames = [glyph.faName];\n }\n this.#glyphMap.set(glyph.name, glyph);\n }\n }\n\n public resolveIcon(\n icon: string,\n variant?: SkyIconVariantType,\n themeSettings?: SkyThemeSettings,\n ): SkyIconResolved {\n let iconType = 'fa';\n const variantIcon = variant && `${icon}-${variant}`;\n const lineIcon = `${icon}-line`;\n\n // Get the specified variant, or fall back to the icon name.\n // If the pure icon name doesn't exist, try the line variant.\n let glyph =\n this.#glyphMap.get(variantIcon as string) ??\n this.#glyphMap.get(icon) ??\n this.#glyphMap.get(lineIcon) ??\n Array.from(this.#glyphMap.values()).find(\n (glyph) =>\n glyph.aliases?.includes(variantIcon as string) ||\n glyph.aliases?.includes(lineIcon) ||\n glyph.aliases?.includes(icon),\n );\n\n // If still no icon is found, search through the icons that match the FA name.\n if (!glyph) {\n let glyphs = Array.from(this.#glyphMap.values()).filter((g) =>\n g.faNames?.includes(icon),\n );\n if (glyphs.length) {\n if (glyphs.length > 1) {\n // If multiples are found, make sure we select the correct variant, if requested.\n // The icons are ordered such that the \"default\" variant will be the first one.\n if (variant) {\n const variantGlyph = glyphs.find((g) => g.name.endsWith(variant));\n if (variantGlyph) {\n glyphs = [variantGlyph];\n }\n }\n }\n glyph = glyphs[0];\n }\n // If none of the above works, no matching icon was found\n }\n\n if (glyph) {\n // If a glyph is found, use it for modern theme or if no FA fallback exists.\n if (themeSettings?.theme.name === 'modern' || !glyph.faNames?.length) {\n icon = glyph.name;\n iconType = 'skyux';\n } else {\n // For default theme, use a known FA fallback.\n // If the icon name requested is already a FA icon, just use it. Otherwise use the first one.\n if (!glyph.faNames?.includes(icon)) {\n icon = glyph.faNames[0];\n }\n }\n }\n\n // If no SKY UX glyph is found, assume icon is part of FA and pass it along.\n return {\n icon,\n iconType,\n };\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { SkyThemeSettings } from '@skyux/theme';\n\nimport { SkyIconResolverService } from './icon-resolver.service';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n/**\n * @internal\n */\n@Pipe({\n name: 'skyIconClassList',\n})\nexport class SkyIconClassListPipe implements PipeTransform {\n #resolver = inject(SkyIconResolverService);\n\n public transform(\n icon: string,\n themeSettings?: SkyThemeSettings,\n size?: string,\n fixedWidth?: boolean,\n variant?: SkyIconVariantType,\n ): string[] {\n let classList: string[];\n\n const { icon: resolvedIcon, iconType: resolvedIconType } =\n this.#resolver.resolveIcon(icon, variant, themeSettings);\n\n if (resolvedIconType === 'skyux') {\n classList = ['sky-i-' + resolvedIcon];\n } else {\n classList = ['fa', 'fa-' + resolvedIcon];\n }\n\n if (size) {\n classList.push('fa-' + size);\n }\n\n if (fixedWidth) {\n classList.push('fa-fw');\n }\n\n return classList;\n }\n}\n","import { Component, Input, inject } from '@angular/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { SkyIconStackItem } from './icon-stack-item';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-icon-stack',\n templateUrl: './icon-stack.component.html',\n styleUrls: ['./icon-stack.component.scss'],\n})\nexport class SkyIconStackComponent {\n /**\n * The size of the icon using\n * [Font Awesome sizes](https://fontawesome.com/v4/examples/).\n */\n @Input()\n public size: string | undefined;\n\n /**\n * The icon to display at the bottom of the stack.\n */\n @Input()\n public baseIcon: SkyIconStackItem | undefined;\n\n /**\n * The icon to display at the top of the stack.\n */\n @Input()\n public topIcon: SkyIconStackItem | undefined;\n\n protected themeSvc = inject(SkyThemeService, { optional: true });\n}\n","<span\n aria-hidden=\"true\"\n class=\"sky-icon-stack fa-stack\"\n [ngClass]=\"size ? 'fa-' + size + ' sky-icon-stack-size-' + size : ''\"\n>\n <i\n *ngIf=\"baseIcon\"\n class=\"sky-icon fa-stack-2x\"\n [ngClass]=\"\n baseIcon.icon\n | skyIconClassList: (themeSvc?.settingsChange | async)?.currentSettings\n \"\n ></i>\n <i\n *ngIf=\"topIcon\"\n class=\"sky-icon fa-stack-1x fa-inverse sky-icon-inverse\"\n [ngClass]=\"\n topIcon.icon\n | skyIconClassList: (themeSvc?.settingsChange | async)?.currentSettings\n \"\n ></i>\n</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n inject,\n} from '@angular/core';\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { SkyIconType } from './types/icon-type';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\n@Component({\n selector: 'sky-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyIconComponent {\n /**\n * The name of\n * [the Font Awesome 4.7 icon](https://fontawesome.com/v4.7/icons/) or the SKY UX icon to\n * display. When specifying a Font Awesome icon, do not prefix the name with `fa-`.\n * @required\n */\n @Input()\n public icon: string | undefined;\n\n /**\n * The type of icon to display. Specifying `\"fa\"` displays a Font Awesome icon,\n * while specifying `\"skyux\"` displays an icon from the custom SKY UX icon font. Note that\n * the custom SKY UX icon font is currently in beta.\n * @default \"fa\"\n * @deprecated The icon component now automatically infers which type of icon to use based on the current theme. This input will be removed in a future version.\n */\n @Input()\n public iconType: SkyIconType | undefined;\n\n /**\n * The size of the icon using\n * [Font Awesome sizes](https://fontawesome.com/v4/examples/). Do not prefix the size with `fa-`.\n */\n @Input()\n public size: string | undefined;\n\n /**\n * Whether to enforce a fixed width based on icon size. By default, icons of a specified size share a\n * consistent height, but their widths vary and can throw off vertical alignment. Use a fixed width when\n * you stack icons vertically, such as in lists.\n * @default false\n */\n @Input()\n public fixedWidth: boolean | undefined;\n\n /**\n * The icon variant. If the variant doesn't exist for the\n * specified icon, the normal icon is displayed. This property only applies when using SKY UX icons.\n */\n @Input()\n public variant: SkyIconVariantType | undefined;\n\n protected themeSvc = inject(SkyThemeService, { optional: true });\n}\n","<i\n *ngIf=\"icon\"\n aria-hidden=\"true\"\n class=\"sky-icon\"\n [attr.data-sky-icon]=\"icon\"\n [attr.data-sky-icon-type]=\"iconType\"\n [attr.data-sky-icon-variant]=\"variant\"\n [ngClass]=\"\n icon\n | skyIconClassList\n : (themeSvc?.settingsChange | async)?.currentSettings\n : size\n : fixedWidth\n : variant\n \"\n></i>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyIconClassListPipe } from './icon-class-list.pipe';\nimport { SkyIconStackComponent } from './icon-stack.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule],\n exports: [SkyIconComponent, SkyIconStackComponent],\n})\nexport class SkyIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyIconClassListPipe"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export { SkyIconStackItem } from './lib/icon/icon-stack-item';
2
+ export { SkyIconModule } from './lib/icon/icon.module';
3
+ export { SkyIconType } from './lib/icon/types/icon-type';
4
+ export { SkyIconVariantType } from './lib/icon/types/icon-variant-type';
5
+ export { SkyIconComponent as λ1 } from './lib/icon/icon.component';
6
+ export { SkyIconStackComponent as λ2 } from './lib/icon/icon-stack.component';
@@ -0,0 +1,13 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { SkyThemeSettings } from '@skyux/theme';
3
+ import { SkyIconVariantType } from './types/icon-variant-type';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class SkyIconClassListPipe implements PipeTransform {
9
+ #private;
10
+ transform(icon: string, themeSettings?: SkyThemeSettings, size?: string, fixedWidth?: boolean, variant?: SkyIconVariantType): string[];
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkyIconClassListPipe, never>;
12
+ static ɵpipe: i0.ɵɵPipeDeclaration<SkyIconClassListPipe, "skyIconClassList", false>;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { SkyThemeSettings } from '@skyux/theme';
2
+ import { SkyIconResolved } from './types/icon-resolved';
3
+ import type { SkyIconVariantType } from './types/icon-variant-type';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * @internal
7
+ */
8
+ export declare class SkyIconResolverService {
9
+ #private;
10
+ constructor();
11
+ resolveIcon(icon: string, variant?: SkyIconVariantType, themeSettings?: SkyThemeSettings): SkyIconResolved;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkyIconResolverService, never>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<SkyIconResolverService>;
14
+ }
@@ -0,0 +1,20 @@
1
+ import { SkyIconType } from './types/icon-type';
2
+ /**
3
+ * @internal
4
+ */
5
+ export interface SkyIconStackItem {
6
+ /**
7
+ * The name of
8
+ * [the Font Awesome 4.7 icon](https://fontawesome.com/v4.7/icons/) to
9
+ * display. Do not specify the `fa fa-` classes.
10
+ * @required
11
+ */
12
+ icon: string;
13
+ /**
14
+ * The type of icon to display. Specifying `fa` displays a Font Awesome icon,
15
+ * while specifying `skyux` displays an icon from the custom SKY UX icon font. Note that
16
+ * the custom SKY UX icon font is currently in beta.
17
+ * @deprecated
18
+ */
19
+ iconType?: SkyIconType;
20
+ }
@@ -0,0 +1,24 @@
1
+ import { SkyThemeService } from '@skyux/theme';
2
+ import { SkyIconStackItem } from './icon-stack-item';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare class SkyIconStackComponent {
8
+ /**
9
+ * The size of the icon using
10
+ * [Font Awesome sizes](https://fontawesome.com/v4/examples/).
11
+ */
12
+ size: string | undefined;
13
+ /**
14
+ * The icon to display at the bottom of the stack.
15
+ */
16
+ baseIcon: SkyIconStackItem | undefined;
17
+ /**
18
+ * The icon to display at the top of the stack.
19
+ */
20
+ topIcon: SkyIconStackItem | undefined;
21
+ protected themeSvc: SkyThemeService | null;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkyIconStackComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyIconStackComponent, "sky-icon-stack", never, { "size": { "alias": "size"; "required": false; }; "baseIcon": { "alias": "baseIcon"; "required": false; }; "topIcon": { "alias": "topIcon"; "required": false; }; }, {}, never, never, false, never>;
24
+ }