@skyux/icon 10.35.0 → 10.36.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.
@@ -30,16 +30,16 @@
30
30
  "sources": [
31
31
  {
32
32
  "fileName": "projects/icon/src/icon/icon.module.ts",
33
- "line": 17,
33
+ "line": 14,
34
34
  "character": 13,
35
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.module.ts#L17"
35
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.module.ts#L14"
36
36
  }
37
37
  ],
38
38
  "decorators": [
39
39
  {
40
40
  "name": "NgModule",
41
41
  "arguments": {
42
- "obj": "@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule, SkyIconSvgComponent],\n exports: [SkyIconComponent, SkyIconStackComponent],\n providers: [provideHttpClient(withFetch()), SkyIconSvgResolverService],\n})"
42
+ "obj": "@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule, SkyIconSvgComponent],\n exports: [SkyIconComponent, SkyIconStackComponent],\n})"
43
43
  }
44
44
  }
45
45
  ]
@@ -83,7 +83,7 @@
83
83
  "fileName": "projects/icon/src/icon/icon.component.ts",
84
84
  "line": 59,
85
85
  "character": 9,
86
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.component.ts#L59"
86
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.component.ts#L59"
87
87
  }
88
88
  ],
89
89
  "type": {
@@ -131,7 +131,7 @@
131
131
  "fileName": "projects/icon/src/icon/icon.component.ts",
132
132
  "line": 26,
133
133
  "character": 9,
134
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.component.ts#L26"
134
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.component.ts#L26"
135
135
  }
136
136
  ],
137
137
  "type": {
@@ -201,7 +201,7 @@
201
201
  "fileName": "projects/icon/src/icon/icon.component.ts",
202
202
  "line": 43,
203
203
  "character": 9,
204
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.component.ts#L43"
204
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.component.ts#L43"
205
205
  }
206
206
  ],
207
207
  "type": {
@@ -245,7 +245,7 @@
245
245
  "fileName": "projects/icon/src/icon/icon.component.ts",
246
246
  "line": 50,
247
247
  "character": 9,
248
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.component.ts#L50"
248
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.component.ts#L50"
249
249
  }
250
250
  ],
251
251
  "type": {
@@ -279,7 +279,7 @@
279
279
  "fileName": "projects/icon/src/icon/icon.component.ts",
280
280
  "line": 66,
281
281
  "character": 9,
282
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.component.ts#L66"
282
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.component.ts#L66"
283
283
  }
284
284
  ],
285
285
  "type": {
@@ -318,7 +318,7 @@
318
318
  "fileName": "projects/icon/src/icon/icon.component.ts",
319
319
  "line": 18,
320
320
  "character": 13,
321
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/icon.component.ts#L18"
321
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/icon.component.ts#L18"
322
322
  }
323
323
  ],
324
324
  "decorators": [
@@ -350,7 +350,7 @@
350
350
  "fileName": "projects/icon/src/icon/types/icon-type.ts",
351
351
  "line": 4,
352
352
  "character": 12,
353
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/types/icon-type.ts#L4"
353
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/types/icon-type.ts#L4"
354
354
  }
355
355
  ],
356
356
  "type": {
@@ -378,7 +378,7 @@
378
378
  "fileName": "projects/icon/src/icon/types/icon-variant-type.ts",
379
379
  "line": 1,
380
380
  "character": 12,
381
- "url": "https://github.com/blackbaud/skyux/blob/67da79b/libs/components/icon/src/lib/icon/types/icon-variant-type.ts#L1"
381
+ "url": "https://github.com/blackbaud/skyux/blob/b0496dc/libs/components/icon/src/lib/icon/types/icon-variant-type.ts#L1"
382
382
  }
383
383
  ],
384
384
  "type": {
@@ -1,12 +1,13 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable, inject } from '@angular/core';
3
- import { map, shareReplay, tap } from 'rxjs';
1
+ import { Injectable } from '@angular/core';
4
2
  import * as i0 from "@angular/core";
5
- function insertSprite(markup) {
3
+ async function getIconMap() {
4
+ const response = await fetch(`https://sky.blackbaudcdn.net/static/skyux-icons/7/assets/svg/skyux-icons.svg`);
5
+ if (!response.ok) {
6
+ throw new Error('Icon sprite could not be loaded.');
7
+ }
8
+ const markup = await response.text();
6
9
  document.body.insertAdjacentHTML('afterbegin', markup);
7
- }
8
- function getIconsSizes() {
9
- const iconsSizes = Array.from(document.querySelectorAll('#sky-icon-svg-sprite symbol')).reduce((map, el) => {
10
+ const iconMap = Array.from(document.querySelectorAll('#sky-icon-svg-sprite symbol')).reduce((map, el) => {
10
11
  const idParts = el.id.split('-');
11
12
  // Construct the icon name by removing `sky-i-` from the beginning
12
13
  // and `-<size>-<variant>` from the end.
@@ -22,14 +23,14 @@ function getIconsSizes() {
22
23
  return map;
23
24
  }, new Map());
24
25
  // Sort all the sizes for later comparison.
25
- for (const id of iconsSizes.keys()) {
26
+ for (const id of iconMap.keys()) {
26
27
  // Dedupe and sort the icon sizes.
27
- iconsSizes.set(id, [...new Set(iconsSizes.get(id))].sort());
28
+ iconMap.set(id, [...new Set(iconMap.get(id))].sort());
28
29
  }
29
- return iconsSizes;
30
+ return iconMap;
30
31
  }
31
- function getNearestSize(iconsSizes, name, pixelSize) {
32
- const sizes = iconsSizes.get(name);
32
+ function getNearestSize(iconMap, name, pixelSize) {
33
+ const sizes = iconMap.get(name);
33
34
  if (sizes) {
34
35
  let nearestSizeUnder = -Infinity;
35
36
  let nearestSizeOver = Infinity;
@@ -57,28 +58,28 @@ function getNearestSize(iconsSizes, name, pixelSize) {
57
58
  * @internal
58
59
  */
59
60
  export class SkyIconSvgResolverService {
60
- #http = inject(HttpClient);
61
- #spriteObs = this.#http
62
- .get(`https://sky.blackbaudcdn.net/static/skyux-icons/7/assets/svg/skyux-icons.svg`, {
63
- responseType: 'text',
64
- })
65
- .pipe(tap(insertSprite), map(getIconsSizes), shareReplay(1));
66
- resolveHref(name, pixelSize = 16, variant = 'line') {
67
- return this.#spriteObs.pipe(map((iconsSizes) => {
68
- let href = `#sky-i-${name}`;
69
- // Find the icon with the optimal size nearest to the requested size.
70
- const nearestSize = getNearestSize(iconsSizes, name, pixelSize);
71
- if (!nearestSize) {
72
- throw new Error(`Icon with name '${name}' was not found.`);
73
- }
74
- href = `${href}-${nearestSize}-${variant}`;
75
- return href;
76
- }));
61
+ #iconMapPromise;
62
+ async resolveHref(name, pixelSize = 16, variant = 'line') {
63
+ if (!this.#iconMapPromise) {
64
+ this.#iconMapPromise = getIconMap();
65
+ }
66
+ const iconMap = await this.#iconMapPromise;
67
+ let href = `#sky-i-${name}`;
68
+ // Find the icon with the optimal size nearest to the requested size.
69
+ const nearestSize = getNearestSize(iconMap, name, pixelSize);
70
+ if (!nearestSize) {
71
+ throw new Error(`Icon with name '${name}' was not found.`);
72
+ }
73
+ href = `${href}-${nearestSize}-${variant}`;
74
+ return href;
77
75
  }
78
76
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
79
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService }); }
77
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService, providedIn: 'root' }); }
80
78
  }
81
79
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService, decorators: [{
82
- type: Injectable
80
+ type: Injectable,
81
+ args: [{
82
+ providedIn: 'root',
83
+ }]
83
84
  }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zdmctcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pY29uL3NyYy9saWIvaWNvbi9pY29uLXN2Zy1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXpELFNBQVMsWUFBWSxDQUFDLE1BQWM7SUFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELFNBQVMsYUFBYTtJQUNwQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUMzQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsQ0FDekQsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDbkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakMsa0VBQWtFO1FBQ2xFLHdDQUF3QztRQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU1RCxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsNkRBQTZEO1FBQzdELGtCQUFrQjtRQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBb0IsQ0FBQyxDQUFDO0lBRWhDLDJDQUEyQztJQUMzQyxLQUFLLE1BQU0sRUFBRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25DLGtDQUFrQztRQUNsQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixVQUFpQyxFQUNqQyxJQUFZLEVBQ1osU0FBaUI7SUFFakIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFFL0IsS0FBSyxNQUFNLGFBQWEsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNsQyxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxJQUFJLGFBQWEsR0FBRyxTQUFTLEVBQUUsQ0FBQztnQkFDckMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFlLEdBQUcsYUFBYSxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBRXZELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsR0FBRyxRQUFRO1lBQzVDLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUMzQixLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTNCLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSztTQUM3QixHQUFHLENBQ0YsOEVBQThFLEVBQzlFO1FBQ0UsWUFBWSxFQUFFLE1BQU07S0FDckIsQ0FDRjtTQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXhELFdBQVcsQ0FDaEIsSUFBWSxFQUNaLFNBQVMsR0FBRyxFQUFFLEVBQ2QsVUFBOEIsTUFBTTtRQUVwQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUN6QixHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQixJQUFJLElBQUksR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO1lBRTVCLHFFQUFxRTtZQUNyRSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUVoRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksa0JBQWtCLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUUzQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzhHQWpDVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBzaGFyZVJlcGxheSwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUljb25WYXJpYW50VHlwZSB9IGZyb20gJy4vdHlwZXMvaWNvbi12YXJpYW50LXR5cGUnO1xuXG5mdW5jdGlvbiBpbnNlcnRTcHJpdGUobWFya3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyYmVnaW4nLCBtYXJrdXApO1xufVxuXG5mdW5jdGlvbiBnZXRJY29uc1NpemVzKCk6IE1hcDxzdHJpbmcsIG51bWJlcltdPiB7XG4gIGNvbnN0IGljb25zU2l6ZXMgPSBBcnJheS5mcm9tPFNWR1N5bWJvbEVsZW1lbnQ+KFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNza3ktaWNvbi1zdmctc3ByaXRlIHN5bWJvbCcpLFxuICApLnJlZHVjZSgobWFwLCBlbCkgPT4ge1xuICAgIGNvbnN0IGlkUGFydHMgPSBlbC5pZC5zcGxpdCgnLScpO1xuXG4gICAgLy8gQ29uc3RydWN0IHRoZSBpY29uIG5hbWUgYnkgcmVtb3ZpbmcgYHNreS1pLWAgZnJvbSB0aGUgYmVnaW5uaW5nXG4gICAgLy8gYW5kIGAtPHNpemU+LTx2YXJpYW50PmAgZnJvbSB0aGUgZW5kLlxuICAgIGNvbnN0IG5hbWUgPSBpZFBhcnRzLnNsaWNlKDIsIGlkUGFydHMubGVuZ3RoIC0gMikuam9pbignLScpO1xuXG4gICAgbGV0IHNpemVzID0gbWFwLmdldChuYW1lKTtcblxuICAgIGlmICghc2l6ZXMpIHtcbiAgICAgIHNpemVzID0gW107XG4gICAgICBtYXAuc2V0KG5hbWUsIHNpemVzKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcGVudWx0aW1hdGUgc2VnbWVudCBpcyB0aGUgc2l6ZSBmb3Igd2hpY2ggdGhlIGljb24gaGFzXG4gICAgLy8gYmVlbiBvcHRpbWl6ZWQuXG4gICAgc2l6ZXMucHVzaCgraWRQYXJ0c1tpZFBhcnRzLmxlbmd0aCAtIDJdKTtcblxuICAgIHJldHVybiBtYXA7XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCBudW1iZXJbXT4oKSk7XG5cbiAgLy8gU29ydCBhbGwgdGhlIHNpemVzIGZvciBsYXRlciBjb21wYXJpc29uLlxuICBmb3IgKGNvbnN0IGlkIG9mIGljb25zU2l6ZXMua2V5cygpKSB7XG4gICAgLy8gRGVkdXBlIGFuZCBzb3J0IHRoZSBpY29uIHNpemVzLlxuICAgIGljb25zU2l6ZXMuc2V0KGlkLCBbLi4ubmV3IFNldChpY29uc1NpemVzLmdldChpZCkpXS5zb3J0KCkpO1xuICB9XG5cbiAgcmV0dXJuIGljb25zU2l6ZXM7XG59XG5cbmZ1bmN0aW9uIGdldE5lYXJlc3RTaXplKFxuICBpY29uc1NpemVzOiBNYXA8c3RyaW5nLCBudW1iZXJbXT4sXG4gIG5hbWU6IHN0cmluZyxcbiAgcGl4ZWxTaXplOiBudW1iZXIsXG4pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBzaXplcyA9IGljb25zU2l6ZXMuZ2V0KG5hbWUpO1xuXG4gIGlmIChzaXplcykge1xuICAgIGxldCBuZWFyZXN0U2l6ZVVuZGVyID0gLUluZmluaXR5O1xuICAgIGxldCBuZWFyZXN0U2l6ZU92ZXIgPSBJbmZpbml0eTtcblxuICAgIGZvciAoY29uc3QgYXZhaWxhYmxlU2l6ZSBvZiBzaXplcykge1xuICAgICAgaWYgKGF2YWlsYWJsZVNpemUgPT09IHBpeGVsU2l6ZSkge1xuICAgICAgICByZXR1cm4gcGl4ZWxTaXplO1xuICAgICAgfSBlbHNlIGlmIChhdmFpbGFibGVTaXplIDwgcGl4ZWxTaXplKSB7XG4gICAgICAgIG5lYXJlc3RTaXplVW5kZXIgPSBhdmFpbGFibGVTaXplO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmVhcmVzdFNpemVPdmVyID0gYXZhaWxhYmxlU2l6ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdW5kZXJEaWZmID0gTWF0aC5hYnMocGl4ZWxTaXplIC0gbmVhcmVzdFNpemVVbmRlcik7XG4gICAgY29uc3Qgb3ZlckRpZmYgPSBNYXRoLmFicyhwaXhlbFNpemUgLSBuZWFyZXN0U2l6ZU92ZXIpO1xuXG4gICAgcmV0dXJuIGlzTmFOKG92ZXJEaWZmKSB8fCB1bmRlckRpZmYgPCBvdmVyRGlmZlxuICAgICAgPyBuZWFyZXN0U2l6ZVVuZGVyXG4gICAgICA6IG5lYXJlc3RTaXplT3ZlcjtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lJY29uU3ZnUmVzb2x2ZXJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgI2h0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcmVhZG9ubHkgI3Nwcml0ZU9icyA9IHRoaXMuI2h0dHBcbiAgICAuZ2V0KFxuICAgICAgYGh0dHBzOi8vc2t5LmJsYWNrYmF1ZGNkbi5uZXQvc3RhdGljL3NreXV4LWljb25zLzcvYXNzZXRzL3N2Zy9za3l1eC1pY29ucy5zdmdgLFxuICAgICAge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIH0sXG4gICAgKVxuICAgIC5waXBlKHRhcChpbnNlcnRTcHJpdGUpLCBtYXAoZ2V0SWNvbnNTaXplcyksIHNoYXJlUmVwbGF5KDEpKTtcblxuICBwdWJsaWMgcmVzb2x2ZUhyZWYoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHBpeGVsU2l6ZSA9IDE2LFxuICAgIHZhcmlhbnQ6IFNreUljb25WYXJpYW50VHlwZSA9ICdsaW5lJyxcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy4jc3ByaXRlT2JzLnBpcGUoXG4gICAgICBtYXAoKGljb25zU2l6ZXMpID0+IHtcbiAgICAgICAgbGV0IGhyZWYgPSBgI3NreS1pLSR7bmFtZX1gO1xuXG4gICAgICAgIC8vIEZpbmQgdGhlIGljb24gd2l0aCB0aGUgb3B0aW1hbCBzaXplIG5lYXJlc3QgdG8gdGhlIHJlcXVlc3RlZCBzaXplLlxuICAgICAgICBjb25zdCBuZWFyZXN0U2l6ZSA9IGdldE5lYXJlc3RTaXplKGljb25zU2l6ZXMsIG5hbWUsIHBpeGVsU2l6ZSk7XG5cbiAgICAgICAgaWYgKCFuZWFyZXN0U2l6ZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSWNvbiB3aXRoIG5hbWUgJyR7bmFtZX0nIHdhcyBub3QgZm91bmQuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBocmVmID0gYCR7aHJlZn0tJHtuZWFyZXN0U2l6ZX0tJHt2YXJpYW50fWA7XG5cbiAgICAgICAgcmV0dXJuIGhyZWY7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zdmctcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pY29uL3NyYy9saWIvaWNvbi9pY29uLXN2Zy1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLEtBQUssVUFBVSxVQUFVO0lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUMxQiw4RUFBOEUsQ0FDL0UsQ0FBQztJQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVyQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV2RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUN4QixRQUFRLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUMsQ0FDekQsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDbkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakMsa0VBQWtFO1FBQ2xFLHdDQUF3QztRQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU1RCxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsNkRBQTZEO1FBQzdELGtCQUFrQjtRQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6QyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBb0IsQ0FBQyxDQUFDO0lBRWhDLDJDQUEyQztJQUMzQyxLQUFLLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLGtDQUFrQztRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUNyQixPQUE4QixFQUM5QixJQUFZLEVBQ1osU0FBaUI7SUFFakIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1YsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFFL0IsS0FBSyxNQUFNLGFBQWEsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNsQyxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxJQUFJLGFBQWEsR0FBRyxTQUFTLEVBQUUsQ0FBQztnQkFDckMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO1lBQ25DLENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFlLEdBQUcsYUFBYSxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxDQUFDO1FBRXZELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsR0FBRyxRQUFRO1lBQzVDLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLGVBQWUsQ0FBQztJQUN0QixDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVEOztHQUVHO0FBSUgsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxlQUFlLENBQTZDO0lBRXJELEtBQUssQ0FBQyxXQUFXLENBQ3RCLElBQVksRUFDWixTQUFTLEdBQUcsRUFBRSxFQUNkLFVBQThCLE1BQU07UUFFcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUM7UUFFM0MsSUFBSSxJQUFJLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUU1QixxRUFBcUU7UUFDckUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLElBQUksa0JBQWtCLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFBSSxHQUFHLEdBQUcsSUFBSSxJQUFJLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBMUJVLHlCQUF5QjtrSEFBekIseUJBQXlCLGNBRnhCLE1BQU07OzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUljb25WYXJpYW50VHlwZSB9IGZyb20gJy4vdHlwZXMvaWNvbi12YXJpYW50LXR5cGUnO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRJY29uTWFwKCk6IFByb21pc2U8TWFwPHN0cmluZywgbnVtYmVyW10+PiB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goXG4gICAgYGh0dHBzOi8vc2t5LmJsYWNrYmF1ZGNkbi5uZXQvc3RhdGljL3NreXV4LWljb25zLzcvYXNzZXRzL3N2Zy9za3l1eC1pY29ucy5zdmdgLFxuICApO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ljb24gc3ByaXRlIGNvdWxkIG5vdCBiZSBsb2FkZWQuJyk7XG4gIH1cblxuICBjb25zdCBtYXJrdXAgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG5cbiAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyYmVnaW4nLCBtYXJrdXApO1xuXG4gIGNvbnN0IGljb25NYXAgPSBBcnJheS5mcm9tPFNWR1N5bWJvbEVsZW1lbnQ+KFxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJyNza3ktaWNvbi1zdmctc3ByaXRlIHN5bWJvbCcpLFxuICApLnJlZHVjZSgobWFwLCBlbCkgPT4ge1xuICAgIGNvbnN0IGlkUGFydHMgPSBlbC5pZC5zcGxpdCgnLScpO1xuXG4gICAgLy8gQ29uc3RydWN0IHRoZSBpY29uIG5hbWUgYnkgcmVtb3ZpbmcgYHNreS1pLWAgZnJvbSB0aGUgYmVnaW5uaW5nXG4gICAgLy8gYW5kIGAtPHNpemU+LTx2YXJpYW50PmAgZnJvbSB0aGUgZW5kLlxuICAgIGNvbnN0IG5hbWUgPSBpZFBhcnRzLnNsaWNlKDIsIGlkUGFydHMubGVuZ3RoIC0gMikuam9pbignLScpO1xuXG4gICAgbGV0IHNpemVzID0gbWFwLmdldChuYW1lKTtcblxuICAgIGlmICghc2l6ZXMpIHtcbiAgICAgIHNpemVzID0gW107XG4gICAgICBtYXAuc2V0KG5hbWUsIHNpemVzKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgcGVudWx0aW1hdGUgc2VnbWVudCBpcyB0aGUgc2l6ZSBmb3Igd2hpY2ggdGhlIGljb24gaGFzXG4gICAgLy8gYmVlbiBvcHRpbWl6ZWQuXG4gICAgc2l6ZXMucHVzaCgraWRQYXJ0c1tpZFBhcnRzLmxlbmd0aCAtIDJdKTtcblxuICAgIHJldHVybiBtYXA7XG4gIH0sIG5ldyBNYXA8c3RyaW5nLCBudW1iZXJbXT4oKSk7XG5cbiAgLy8gU29ydCBhbGwgdGhlIHNpemVzIGZvciBsYXRlciBjb21wYXJpc29uLlxuICBmb3IgKGNvbnN0IGlkIG9mIGljb25NYXAua2V5cygpKSB7XG4gICAgLy8gRGVkdXBlIGFuZCBzb3J0IHRoZSBpY29uIHNpemVzLlxuICAgIGljb25NYXAuc2V0KGlkLCBbLi4ubmV3IFNldChpY29uTWFwLmdldChpZCkpXS5zb3J0KCkpO1xuICB9XG5cbiAgcmV0dXJuIGljb25NYXA7XG59XG5cbmZ1bmN0aW9uIGdldE5lYXJlc3RTaXplKFxuICBpY29uTWFwOiBNYXA8c3RyaW5nLCBudW1iZXJbXT4sXG4gIG5hbWU6IHN0cmluZyxcbiAgcGl4ZWxTaXplOiBudW1iZXIsXG4pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBzaXplcyA9IGljb25NYXAuZ2V0KG5hbWUpO1xuXG4gIGlmIChzaXplcykge1xuICAgIGxldCBuZWFyZXN0U2l6ZVVuZGVyID0gLUluZmluaXR5O1xuICAgIGxldCBuZWFyZXN0U2l6ZU92ZXIgPSBJbmZpbml0eTtcblxuICAgIGZvciAoY29uc3QgYXZhaWxhYmxlU2l6ZSBvZiBzaXplcykge1xuICAgICAgaWYgKGF2YWlsYWJsZVNpemUgPT09IHBpeGVsU2l6ZSkge1xuICAgICAgICByZXR1cm4gcGl4ZWxTaXplO1xuICAgICAgfSBlbHNlIGlmIChhdmFpbGFibGVTaXplIDwgcGl4ZWxTaXplKSB7XG4gICAgICAgIG5lYXJlc3RTaXplVW5kZXIgPSBhdmFpbGFibGVTaXplO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmVhcmVzdFNpemVPdmVyID0gYXZhaWxhYmxlU2l6ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdW5kZXJEaWZmID0gTWF0aC5hYnMocGl4ZWxTaXplIC0gbmVhcmVzdFNpemVVbmRlcik7XG4gICAgY29uc3Qgb3ZlckRpZmYgPSBNYXRoLmFicyhwaXhlbFNpemUgLSBuZWFyZXN0U2l6ZU92ZXIpO1xuXG4gICAgcmV0dXJuIGlzTmFOKG92ZXJEaWZmKSB8fCB1bmRlckRpZmYgPCBvdmVyRGlmZlxuICAgICAgPyBuZWFyZXN0U2l6ZVVuZGVyXG4gICAgICA6IG5lYXJlc3RTaXplT3ZlcjtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJY29uU3ZnUmVzb2x2ZXJTZXJ2aWNlIHtcbiAgI2ljb25NYXBQcm9taXNlOiBQcm9taXNlPE1hcDxzdHJpbmcsIG51bWJlcltdPj4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGFzeW5jIHJlc29sdmVIcmVmKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBwaXhlbFNpemUgPSAxNixcbiAgICB2YXJpYW50OiBTa3lJY29uVmFyaWFudFR5cGUgPSAnbGluZScsXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLiNpY29uTWFwUHJvbWlzZSkge1xuICAgICAgdGhpcy4jaWNvbk1hcFByb21pc2UgPSBnZXRJY29uTWFwKCk7XG4gICAgfVxuXG4gICAgY29uc3QgaWNvbk1hcCA9IGF3YWl0IHRoaXMuI2ljb25NYXBQcm9taXNlO1xuXG4gICAgbGV0IGhyZWYgPSBgI3NreS1pLSR7bmFtZX1gO1xuXG4gICAgLy8gRmluZCB0aGUgaWNvbiB3aXRoIHRoZSBvcHRpbWFsIHNpemUgbmVhcmVzdCB0byB0aGUgcmVxdWVzdGVkIHNpemUuXG4gICAgY29uc3QgbmVhcmVzdFNpemUgPSBnZXROZWFyZXN0U2l6ZShpY29uTWFwLCBuYW1lLCBwaXhlbFNpemUpO1xuXG4gICAgaWYgKCFuZWFyZXN0U2l6ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJY29uIHdpdGggbmFtZSAnJHtuYW1lfScgd2FzIG5vdCBmb3VuZC5gKTtcbiAgICB9XG5cbiAgICBocmVmID0gYCR7aHJlZn0tJHtuZWFyZXN0U2l6ZX0tJHt2YXJpYW50fWA7XG5cbiAgICByZXR1cm4gaHJlZjtcbiAgfVxufVxuIl19
@@ -1,16 +1,14 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { provideHttpClient, withFetch } from '@angular/common/http';
3
2
  import { NgModule } from '@angular/core';
4
3
  import { SkyIconClassListPipe } from './icon-class-list.pipe';
5
4
  import { SkyIconStackComponent } from './icon-stack.component';
6
- import { SkyIconSvgResolverService } from './icon-svg-resolver.service';
7
5
  import { SkyIconSvgComponent } from './icon-svg.component';
8
6
  import { SkyIconComponent } from './icon.component';
9
7
  import * as i0 from "@angular/core";
10
8
  export class SkyIconModule {
11
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
10
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent], imports: [CommonModule, SkyIconSvgComponent], exports: [SkyIconComponent, SkyIconStackComponent] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, providers: [provideHttpClient(withFetch()), SkyIconSvgResolverService], imports: [CommonModule] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, imports: [CommonModule] }); }
14
12
  }
15
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, decorators: [{
16
14
  type: NgModule,
@@ -18,7 +16,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
18
16
  declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],
19
17
  imports: [CommonModule, SkyIconSvgComponent],
20
18
  exports: [SkyIconComponent, SkyIconStackComponent],
21
- providers: [provideHttpClient(withFetch()), SkyIconSvgResolverService],
22
19
  }]
23
20
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi9zcmMvbGliL2ljb24vaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQVFwRCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBTFQsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLGFBQ2xFLFlBQVksRUFBRSxtQkFBbUIsYUFDakMsZ0JBQWdCLEVBQUUscUJBQXFCOytHQUd0QyxhQUFhLGFBRmIsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLHlCQUF5QixDQUFDLFlBRjVELFlBQVk7OzJGQUlYLGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztvQkFDNUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7b0JBQ2xELFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUseUJBQXlCLENBQUM7aUJBQ3ZFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHByb3ZpZGVIdHRwQ2xpZW50LCB3aXRoRmV0Y2ggfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lJY29uQ2xhc3NMaXN0UGlwZSB9IGZyb20gJy4vaWNvbi1jbGFzcy1saXN0LnBpcGUnO1xuaW1wb3J0IHsgU2t5SWNvblN0YWNrQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLXN0YWNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lJY29uU3ZnUmVzb2x2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9pY29uLXN2Zy1yZXNvbHZlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUljb25TdmdDb21wb25lbnQgfSBmcm9tICcuL2ljb24tc3ZnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreUljb25DbGFzc0xpc3RQaXBlLCBTa3lJY29uQ29tcG9uZW50LCBTa3lJY29uU3RhY2tDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTa3lJY29uU3ZnQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1NreUljb25Db21wb25lbnQsIFNreUljb25TdGFja0NvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVIdHRwQ2xpZW50KHdpdGhGZXRjaCgpKSwgU2t5SWNvblN2Z1Jlc29sdmVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUljb25Nb2R1bGUge31cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvaWNvbi9zcmMvbGliL2ljb24vaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBT3BELE1BQU0sT0FBTyxhQUFhOzhHQUFiLGFBQWE7K0dBQWIsYUFBYSxpQkFKVCxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsYUFDbEUsWUFBWSxFQUFFLG1CQUFtQixhQUNqQyxnQkFBZ0IsRUFBRSxxQkFBcUI7K0dBRXRDLGFBQWEsWUFIZCxZQUFZOzsyRkFHWCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDO29CQUM3RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUM7b0JBQzVDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLHFCQUFxQixDQUFDO2lCQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lJY29uQ2xhc3NMaXN0UGlwZSB9IGZyb20gJy4vaWNvbi1jbGFzcy1saXN0LnBpcGUnO1xuaW1wb3J0IHsgU2t5SWNvblN0YWNrQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLXN0YWNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lJY29uU3ZnQ29tcG9uZW50IH0gZnJvbSAnLi9pY29uLXN2Zy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5SWNvbkNvbXBvbmVudCB9IGZyb20gJy4vaWNvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTa3lJY29uQ2xhc3NMaXN0UGlwZSwgU2t5SWNvbkNvbXBvbmVudCwgU2t5SWNvblN0YWNrQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2t5SWNvblN2Z0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTa3lJY29uQ29tcG9uZW50LCBTa3lJY29uU3RhY2tDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lJY29uTW9kdWxlIHt9XG4iXX0=
@@ -1,11 +1,10 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { NgClass, NgStyle, CommonModule } from '@angular/common';
3
- import { HttpClient, provideHttpClient, withFetch } from '@angular/common/http';
4
3
  import * as i0 from '@angular/core';
5
4
  import { inject, Injectable, Pipe, Component, Input, input, computed, ChangeDetectionStrategy, NgModule } from '@angular/core';
6
5
  import { SkyThemeIconManifestService, SkyThemeService } from '@skyux/theme';
7
- import { tap, map, shareReplay, switchMap, catchError, of } from 'rxjs';
8
6
  import { toSignal, toObservable } from '@angular/core/rxjs-interop';
7
+ import { switchMap, catchError, of } from 'rxjs';
9
8
 
10
9
  /**
11
10
  * @internal
@@ -136,11 +135,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
136
135
  type: Input
137
136
  }] } });
138
137
 
139
- function insertSprite(markup) {
138
+ async function getIconMap() {
139
+ const response = await fetch(`https://sky.blackbaudcdn.net/static/skyux-icons/7/assets/svg/skyux-icons.svg`);
140
+ if (!response.ok) {
141
+ throw new Error('Icon sprite could not be loaded.');
142
+ }
143
+ const markup = await response.text();
140
144
  document.body.insertAdjacentHTML('afterbegin', markup);
141
- }
142
- function getIconsSizes() {
143
- const iconsSizes = Array.from(document.querySelectorAll('#sky-icon-svg-sprite symbol')).reduce((map, el) => {
145
+ const iconMap = Array.from(document.querySelectorAll('#sky-icon-svg-sprite symbol')).reduce((map, el) => {
144
146
  const idParts = el.id.split('-');
145
147
  // Construct the icon name by removing `sky-i-` from the beginning
146
148
  // and `-<size>-<variant>` from the end.
@@ -156,14 +158,14 @@ function getIconsSizes() {
156
158
  return map;
157
159
  }, new Map());
158
160
  // Sort all the sizes for later comparison.
159
- for (const id of iconsSizes.keys()) {
161
+ for (const id of iconMap.keys()) {
160
162
  // Dedupe and sort the icon sizes.
161
- iconsSizes.set(id, [...new Set(iconsSizes.get(id))].sort());
163
+ iconMap.set(id, [...new Set(iconMap.get(id))].sort());
162
164
  }
163
- return iconsSizes;
165
+ return iconMap;
164
166
  }
165
- function getNearestSize(iconsSizes, name, pixelSize) {
166
- const sizes = iconsSizes.get(name);
167
+ function getNearestSize(iconMap, name, pixelSize) {
168
+ const sizes = iconMap.get(name);
167
169
  if (sizes) {
168
170
  let nearestSizeUnder = -Infinity;
169
171
  let nearestSizeOver = Infinity;
@@ -191,29 +193,29 @@ function getNearestSize(iconsSizes, name, pixelSize) {
191
193
  * @internal
192
194
  */
193
195
  class SkyIconSvgResolverService {
194
- #http = inject(HttpClient);
195
- #spriteObs = this.#http
196
- .get(`https://sky.blackbaudcdn.net/static/skyux-icons/7/assets/svg/skyux-icons.svg`, {
197
- responseType: 'text',
198
- })
199
- .pipe(tap(insertSprite), map(getIconsSizes), shareReplay(1));
200
- resolveHref(name, pixelSize = 16, variant = 'line') {
201
- return this.#spriteObs.pipe(map((iconsSizes) => {
202
- let href = `#sky-i-${name}`;
203
- // Find the icon with the optimal size nearest to the requested size.
204
- const nearestSize = getNearestSize(iconsSizes, name, pixelSize);
205
- if (!nearestSize) {
206
- throw new Error(`Icon with name '${name}' was not found.`);
207
- }
208
- href = `${href}-${nearestSize}-${variant}`;
209
- return href;
210
- }));
196
+ #iconMapPromise;
197
+ async resolveHref(name, pixelSize = 16, variant = 'line') {
198
+ if (!this.#iconMapPromise) {
199
+ this.#iconMapPromise = getIconMap();
200
+ }
201
+ const iconMap = await this.#iconMapPromise;
202
+ let href = `#sky-i-${name}`;
203
+ // Find the icon with the optimal size nearest to the requested size.
204
+ const nearestSize = getNearestSize(iconMap, name, pixelSize);
205
+ if (!nearestSize) {
206
+ throw new Error(`Icon with name '${name}' was not found.`);
207
+ }
208
+ href = `${href}-${nearestSize}-${variant}`;
209
+ return href;
211
210
  }
212
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
213
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService }); }
212
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService, providedIn: 'root' }); }
214
213
  }
215
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconSvgResolverService, decorators: [{
216
- type: Injectable
215
+ type: Injectable,
216
+ args: [{
217
+ providedIn: 'root',
218
+ }]
217
219
  }] });
218
220
 
219
221
  const SIZE_BASE = 16;
@@ -280,7 +282,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
280
282
  class SkyIconModule {
281
283
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
282
284
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent], imports: [CommonModule, SkyIconSvgComponent], exports: [SkyIconComponent, SkyIconStackComponent] }); }
283
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, providers: [provideHttpClient(withFetch()), SkyIconSvgResolverService], imports: [CommonModule] }); }
285
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, imports: [CommonModule] }); }
284
286
  }
285
287
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: SkyIconModule, decorators: [{
286
288
  type: NgModule,
@@ -288,7 +290,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
288
290
  declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],
289
291
  imports: [CommonModule, SkyIconSvgComponent],
290
292
  exports: [SkyIconComponent, SkyIconStackComponent],
291
- providers: [provideHttpClient(withFetch()), SkyIconSvgResolverService],
292
293
  }]
293
294
  }] });
294
295
 
@@ -1 +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-svg-resolver.service.ts","../../../../../libs/components/icon/src/lib/icon/icon-svg.component.ts","../../../../../libs/components/icon/src/lib/icon/icon-svg.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 { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { Observable, map, shareReplay, tap } from 'rxjs';\n\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\nfunction insertSprite(markup: string): void {\n document.body.insertAdjacentHTML('afterbegin', markup);\n}\n\nfunction getIconsSizes(): Map<string, number[]> {\n const iconsSizes = Array.from<SVGSymbolElement>(\n document.querySelectorAll('#sky-icon-svg-sprite symbol'),\n ).reduce((map, el) => {\n const idParts = el.id.split('-');\n\n // Construct the icon name by removing `sky-i-` from the beginning\n // and `-<size>-<variant>` from the end.\n const name = idParts.slice(2, idParts.length - 2).join('-');\n\n let sizes = map.get(name);\n\n if (!sizes) {\n sizes = [];\n map.set(name, sizes);\n }\n\n // The penultimate segment is the size for which the icon has\n // been optimized.\n sizes.push(+idParts[idParts.length - 2]);\n\n return map;\n }, new Map<string, number[]>());\n\n // Sort all the sizes for later comparison.\n for (const id of iconsSizes.keys()) {\n // Dedupe and sort the icon sizes.\n iconsSizes.set(id, [...new Set(iconsSizes.get(id))].sort());\n }\n\n return iconsSizes;\n}\n\nfunction getNearestSize(\n iconsSizes: Map<string, number[]>,\n name: string,\n pixelSize: number,\n): number | undefined {\n const sizes = iconsSizes.get(name);\n\n if (sizes) {\n let nearestSizeUnder = -Infinity;\n let nearestSizeOver = Infinity;\n\n for (const availableSize of sizes) {\n if (availableSize === pixelSize) {\n return pixelSize;\n } else if (availableSize < pixelSize) {\n nearestSizeUnder = availableSize;\n } else {\n nearestSizeOver = availableSize;\n break;\n }\n }\n\n const underDiff = Math.abs(pixelSize - nearestSizeUnder);\n const overDiff = Math.abs(pixelSize - nearestSizeOver);\n\n return isNaN(overDiff) || underDiff < overDiff\n ? nearestSizeUnder\n : nearestSizeOver;\n }\n\n return undefined;\n}\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyIconSvgResolverService {\n readonly #http = inject(HttpClient);\n\n readonly #spriteObs = this.#http\n .get(\n `https://sky.blackbaudcdn.net/static/skyux-icons/7/assets/svg/skyux-icons.svg`,\n {\n responseType: 'text',\n },\n )\n .pipe(tap(insertSprite), map(getIconsSizes), shareReplay(1));\n\n public resolveHref(\n name: string,\n pixelSize = 16,\n variant: SkyIconVariantType = 'line',\n ): Observable<string> {\n return this.#spriteObs.pipe(\n map((iconsSizes) => {\n let href = `#sky-i-${name}`;\n\n // Find the icon with the optimal size nearest to the requested size.\n const nearestSize = getNearestSize(iconsSizes, name, pixelSize);\n\n if (!nearestSize) {\n throw new Error(`Icon with name '${name}' was not found.`);\n }\n\n href = `${href}-${nearestSize}-${variant}`;\n\n return href;\n }),\n );\n }\n}\n","import { NgClass, NgStyle } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\nimport { catchError, of, switchMap } from 'rxjs';\n\nimport { SkyIconSvgResolverService } from './icon-svg-resolver.service';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\nconst SIZE_BASE = 16;\n\nconst SIZES = new Map([\n ['', SIZE_BASE],\n ['lg', 21.333 /* SIZE_BASE * (4/3) */],\n ['2x', 32 /* SIZE_BASE * 2 */],\n ['3x', 48 /* SIZE_BASE * 3 */],\n ['4x', 64 /* SIZE_BASE * 4 */],\n ['5x', 80 /* SIZE_BASE * 5 */],\n]);\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-icon-svg',\n standalone: true,\n imports: [NgClass, NgStyle],\n templateUrl: './icon-svg.component.html',\n styleUrls: [\n './icon-svg.default.component.scss',\n './icon-svg.modern.component.scss',\n ],\n})\nexport class SkyIconSvgComponent {\n readonly #resolverSvc = inject(SkyIconSvgResolverService);\n\n public readonly iconName = input.required<string>();\n public readonly iconSize = input<string>();\n public readonly iconVariant = input<SkyIconVariantType>();\n\n readonly #iconInfo = computed(() => {\n return {\n src: this.iconName(),\n size: this.iconSize(),\n variant: this.iconVariant(),\n };\n });\n\n protected readonly iconHref = toSignal(\n toObservable(this.#iconInfo).pipe(\n switchMap((info) =>\n this.#resolverSvc.resolveHref(\n info.src,\n SIZES.get(info.size ?? ''),\n info.variant,\n ),\n ),\n catchError(() => of('')),\n ),\n );\n}\n","<svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [ngClass]=\"iconSize() && 'sky-icon-svg-img-' + iconSize()\"\n>\n <use [attr.xlink:href]=\"iconHref()\"></use>\n</svg>\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 name of the Blackbaud SVG icon to display. For internal use only.\n * @internal\n */\n @Input()\n public iconName: 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","@if (iconName) {\n <sky-icon-svg [iconName]=\"iconName\" [iconSize]=\"size\" />\n} @else {\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}\n","import { CommonModule } from '@angular/common';\nimport { provideHttpClient, withFetch } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\n\nimport { SkyIconClassListPipe } from './icon-class-list.pipe';\nimport { SkyIconStackComponent } from './icon-stack.component';\nimport { SkyIconSvgResolverService } from './icon-svg-resolver.service';\nimport { SkyIconSvgComponent } from './icon-svg.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule, SkyIconSvgComponent],\n exports: [SkyIconComponent, SkyIconStackComponent],\n providers: [provideHttpClient(withFetch()), SkyIconSvgResolverService],\n})\nexport class SkyIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SkyIconClassListPipe","i2.SkyIconSvgComponent","i3.SkyIconClassListPipe"],"mappings":"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"}
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-svg-resolver.service.ts","../../../../../libs/components/icon/src/lib/icon/icon-svg.component.ts","../../../../../libs/components/icon/src/lib/icon/icon-svg.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 { Injectable } from '@angular/core';\n\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\nasync function getIconMap(): Promise<Map<string, number[]>> {\n const response = await fetch(\n `https://sky.blackbaudcdn.net/static/skyux-icons/7/assets/svg/skyux-icons.svg`,\n );\n\n if (!response.ok) {\n throw new Error('Icon sprite could not be loaded.');\n }\n\n const markup = await response.text();\n\n document.body.insertAdjacentHTML('afterbegin', markup);\n\n const iconMap = Array.from<SVGSymbolElement>(\n document.querySelectorAll('#sky-icon-svg-sprite symbol'),\n ).reduce((map, el) => {\n const idParts = el.id.split('-');\n\n // Construct the icon name by removing `sky-i-` from the beginning\n // and `-<size>-<variant>` from the end.\n const name = idParts.slice(2, idParts.length - 2).join('-');\n\n let sizes = map.get(name);\n\n if (!sizes) {\n sizes = [];\n map.set(name, sizes);\n }\n\n // The penultimate segment is the size for which the icon has\n // been optimized.\n sizes.push(+idParts[idParts.length - 2]);\n\n return map;\n }, new Map<string, number[]>());\n\n // Sort all the sizes for later comparison.\n for (const id of iconMap.keys()) {\n // Dedupe and sort the icon sizes.\n iconMap.set(id, [...new Set(iconMap.get(id))].sort());\n }\n\n return iconMap;\n}\n\nfunction getNearestSize(\n iconMap: Map<string, number[]>,\n name: string,\n pixelSize: number,\n): number | undefined {\n const sizes = iconMap.get(name);\n\n if (sizes) {\n let nearestSizeUnder = -Infinity;\n let nearestSizeOver = Infinity;\n\n for (const availableSize of sizes) {\n if (availableSize === pixelSize) {\n return pixelSize;\n } else if (availableSize < pixelSize) {\n nearestSizeUnder = availableSize;\n } else {\n nearestSizeOver = availableSize;\n break;\n }\n }\n\n const underDiff = Math.abs(pixelSize - nearestSizeUnder);\n const overDiff = Math.abs(pixelSize - nearestSizeOver);\n\n return isNaN(overDiff) || underDiff < overDiff\n ? nearestSizeUnder\n : nearestSizeOver;\n }\n\n return undefined;\n}\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyIconSvgResolverService {\n #iconMapPromise: Promise<Map<string, number[]>> | undefined;\n\n public async resolveHref(\n name: string,\n pixelSize = 16,\n variant: SkyIconVariantType = 'line',\n ): Promise<string> {\n if (!this.#iconMapPromise) {\n this.#iconMapPromise = getIconMap();\n }\n\n const iconMap = await this.#iconMapPromise;\n\n let href = `#sky-i-${name}`;\n\n // Find the icon with the optimal size nearest to the requested size.\n const nearestSize = getNearestSize(iconMap, name, pixelSize);\n\n if (!nearestSize) {\n throw new Error(`Icon with name '${name}' was not found.`);\n }\n\n href = `${href}-${nearestSize}-${variant}`;\n\n return href;\n }\n}\n","import { NgClass, NgStyle } from '@angular/common';\nimport { Component, computed, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\nimport { catchError, of, switchMap } from 'rxjs';\n\nimport { SkyIconSvgResolverService } from './icon-svg-resolver.service';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\nconst SIZE_BASE = 16;\n\nconst SIZES = new Map([\n ['', SIZE_BASE],\n ['lg', 21.333 /* SIZE_BASE * (4/3) */],\n ['2x', 32 /* SIZE_BASE * 2 */],\n ['3x', 48 /* SIZE_BASE * 3 */],\n ['4x', 64 /* SIZE_BASE * 4 */],\n ['5x', 80 /* SIZE_BASE * 5 */],\n]);\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-icon-svg',\n standalone: true,\n imports: [NgClass, NgStyle],\n templateUrl: './icon-svg.component.html',\n styleUrls: [\n './icon-svg.default.component.scss',\n './icon-svg.modern.component.scss',\n ],\n})\nexport class SkyIconSvgComponent {\n readonly #resolverSvc = inject(SkyIconSvgResolverService);\n\n public readonly iconName = input.required<string>();\n public readonly iconSize = input<string>();\n public readonly iconVariant = input<SkyIconVariantType>();\n\n readonly #iconInfo = computed(() => {\n return {\n src: this.iconName(),\n size: this.iconSize(),\n variant: this.iconVariant(),\n };\n });\n\n protected readonly iconHref = toSignal(\n toObservable(this.#iconInfo).pipe(\n switchMap((info) =>\n this.#resolverSvc.resolveHref(\n info.src,\n SIZES.get(info.size ?? ''),\n info.variant,\n ),\n ),\n catchError(() => of('')),\n ),\n );\n}\n","<svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [ngClass]=\"iconSize() && 'sky-icon-svg-img-' + iconSize()\"\n>\n <use [attr.xlink:href]=\"iconHref()\"></use>\n</svg>\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 name of the Blackbaud SVG icon to display. For internal use only.\n * @internal\n */\n @Input()\n public iconName: 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","@if (iconName) {\n <sky-icon-svg [iconName]=\"iconName\" [iconSize]=\"size\" />\n} @else {\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}\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 { SkyIconSvgComponent } from './icon-svg.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconClassListPipe, SkyIconComponent, SkyIconStackComponent],\n imports: [CommonModule, SkyIconSvgComponent],\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","i2.SkyIconSvgComponent","i3.SkyIconClassListPipe"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { Observable } from 'rxjs';
2
1
  import { SkyIconVariantType } from './types/icon-variant-type';
3
2
  import * as i0 from "@angular/core";
4
3
  /**
@@ -6,7 +5,7 @@ import * as i0 from "@angular/core";
6
5
  */
7
6
  export declare class SkyIconSvgResolverService {
8
7
  #private;
9
- resolveHref(name: string, pixelSize?: number, variant?: SkyIconVariantType): Observable<string>;
8
+ resolveHref(name: string, pixelSize?: number, variant?: SkyIconVariantType): Promise<string>;
10
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyIconSvgResolverService, never>;
11
10
  static ɵprov: i0.ɵɵInjectableDeclaration<SkyIconSvgResolverService>;
12
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/icon",
3
- "version": "10.35.0",
3
+ "version": "10.36.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -39,8 +39,8 @@
39
39
  "@angular/cdk": "^17.3.4",
40
40
  "@angular/common": "^17.3.4",
41
41
  "@angular/core": "^17.3.4",
42
- "@skyux/core": "10.35.0",
43
- "@skyux/theme": "10.35.0"
42
+ "@skyux/core": "10.36.0",
43
+ "@skyux/theme": "10.36.0"
44
44
  },
45
45
  "dependencies": {
46
46
  "tslib": "^2.6.2"