@skyux/icon 13.12.0 → 14.0.0-alpha.1
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.
package/fesm2022/skyux-icon.mjs
CHANGED
|
@@ -89,10 +89,10 @@ class SkyIconSvgResolverService {
|
|
|
89
89
|
resetIconMap() {
|
|
90
90
|
iconMapPromise = undefined;
|
|
91
91
|
}
|
|
92
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
93
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconSvgResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
93
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconSvgResolverService, providedIn: 'root' }); }
|
|
94
94
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconSvgResolverService, decorators: [{
|
|
96
96
|
type: Injectable,
|
|
97
97
|
args: [{
|
|
98
98
|
providedIn: 'root',
|
|
@@ -121,9 +121,7 @@ class SkyIconSvgComponent {
|
|
|
121
121
|
constructor() {
|
|
122
122
|
this.#resolverSvc = inject(SkyIconSvgResolverService);
|
|
123
123
|
this.iconName = input.required(...(ngDevMode ? [{ debugName: "iconName" }] : []));
|
|
124
|
-
this.iconSize = input('m', ...(ngDevMode ?
|
|
125
|
-
transform: defaultSize,
|
|
126
|
-
}]));
|
|
124
|
+
this.iconSize = input('m', { ...(ngDevMode ? { debugName: "iconSize" } : {}), transform: defaultSize });
|
|
127
125
|
this.iconVariant = input(...(ngDevMode ? [undefined, { debugName: "iconVariant" }] : []));
|
|
128
126
|
this.#iconInfo = computed(() => {
|
|
129
127
|
return {
|
|
@@ -136,14 +134,14 @@ class SkyIconSvgComponent {
|
|
|
136
134
|
}
|
|
137
135
|
#resolverSvc;
|
|
138
136
|
#iconInfo;
|
|
139
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
140
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconSvgComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
138
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.2", type: SkyIconSvgComponent, isStandalone: true, selector: "sky-icon-svg", inputs: { iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: true, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, iconVariant: { classPropertyName: "iconVariant", publicName: "iconVariant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "\"sky-icon-svg-\" + iconSize()" } }, hostDirectives: [{ directive: i1.SkyThemeComponentClassDirective }], ngImport: i0, template: "<div class=\"sky-icon-svg-container\">\n <svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [attr.data-sky-icon]=\"iconName()\"\n [attr.data-sky-icon-variant]=\"iconVariant()\"\n >\n <use [attr.xlink:href]=\"iconHref()\" />\n </svg>\n</div>\n", styles: ["@charset \"UTF-8\";:host.sky-cmp-theme-default{--sky-override-sky-icon-svg-size-xxxs: 4px;--sky-override-sky-icon-svg-size-xxs: 8px;--sky-override-sky-icon-svg-size-xs: 12px;--sky-override-sky-icon-svg-size-s: 16px;--sky-override-sky-icon-svg-size-m: 20px;--sky-override-sky-icon-svg-size-l: 24px;--sky-override-sky-icon-svg-size-xl: 32px;--sky-override-sky-icon-svg-size-xxl: 40px;--sky-override-sky-icon-svg-size-xxxl: 48px}:host{display:inline-flex;--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-s, var(--sky-size-icon-s) )}:host.sky-icon-svg-relative-md{--sky-icon-svg-img-size: 1em}:host.sky-icon-svg-relative-lg .sky-icon-svg-img{transform:scale(1.33)}:host.sky-icon-svg-relative-lg .sky-icon-svg-container{margin:0 .166em}:host.sky-icon-svg-relative-2x{--sky-icon-svg-img-size: 2em}:host.sky-icon-svg-relative-3x{--sky-icon-svg-img-size: 3em}:host.sky-icon-svg-relative-4x{--sky-icon-svg-img-size: 4em}:host.sky-icon-svg-relative-5x{--sky-icon-svg-img-size: 5em}:host.sky-icon-svg-xxxs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxxs, var(--sky-size-icon-xxxs) )}:host.sky-icon-svg-xxs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxs, var(--sky-size-icon-xxs) )}:host.sky-icon-svg-xs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xs, var(--sky-size-icon-xs) )}:host.sky-icon-svg-m{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-m, var(--sky-size-icon-m) )}:host.sky-icon-svg-l{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-l, var(--sky-size-icon-l) )}:host.sky-icon-svg-xl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xl, var(--sky-size-icon-xl) )}:host.sky-icon-svg-xxl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxl, var(--sky-size-icon-xxl) )}:host.sky-icon-svg-xxxl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxxl, var(--sky-size-icon-xxxl) )}.sky-icon-svg-container:before{content:\"\\200b\"}.sky-icon-svg-container{height:var(--sky-icon-svg-img-size);width:var(--sky-icon-svg-img-size);display:inline-flex;align-items:center}.sky-icon-svg-container svg{height:100%;width:100%}\n"] }); }
|
|
141
139
|
}
|
|
142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconSvgComponent, decorators: [{
|
|
143
141
|
type: Component,
|
|
144
142
|
args: [{ selector: 'sky-icon-svg', host: {
|
|
145
143
|
'[class]': '"sky-icon-svg-" + iconSize()',
|
|
146
|
-
}, hostDirectives: [SkyThemeComponentClassDirective], template: "<div class=\"sky-icon-svg-container\">\n <svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [attr.data-sky-icon]=\"iconName()\"\n [attr.data-sky-icon-variant]=\"iconVariant()\"\n >\n <use [attr.xlink:href]=\"iconHref()\" />\n </svg>\n</div>\n", styles: ["@charset \"UTF-8\";:host.sky-cmp-theme-default{--sky-override-sky-icon-svg-size-xxxs: 4px;--sky-override-sky-icon-svg-size-xxs: 8px;--sky-override-sky-icon-svg-size-xs: 12px;--sky-override-sky-icon-svg-size-s: 16px;--sky-override-sky-icon-svg-size-m: 20px;--sky-override-sky-icon-svg-size-l: 24px;--sky-override-sky-icon-svg-size-xl: 32px;--sky-override-sky-icon-svg-size-xxl: 40px;--sky-override-sky-icon-svg-size-xxxl: 48px}:host{display:inline-flex;--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-s, var(--sky-size-icon-s) )}:host.sky-icon-svg-relative-md{--sky-icon-svg-img-size: 1em}:host.sky-icon-svg-relative-lg .sky-icon-svg-img{transform:scale(1.33)}:host.sky-icon-svg-relative-lg .sky-icon-svg-container{margin:0 .166em}:host.sky-icon-svg-relative-2x{--sky-icon-svg-img-size: 2em}:host.sky-icon-svg-relative-3x{--sky-icon-svg-img-size: 3em}:host.sky-icon-svg-relative-4x{--sky-icon-svg-img-size: 4em}:host.sky-icon-svg-relative-5x{--sky-icon-svg-img-size: 5em}:host.sky-icon-svg-xxxs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxxs, var(--sky-size-icon-xxxs) )}:host.sky-icon-svg-xxs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxs, var(--sky-size-icon-xxs) )}:host.sky-icon-svg-xs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xs, var(--sky-size-icon-xs) )}:host.sky-icon-svg-m{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-m, var(--sky-size-icon-m) )}:host.sky-icon-svg-l{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-l, var(--sky-size-icon-l) )}:host.sky-icon-svg-xl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xl, var(--sky-size-icon-xl) )}:host.sky-icon-svg-xxl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxl, var(--sky-size-icon-xxl) )}:host.sky-icon-svg-xxxl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxxl, var(--sky-size-icon-xxxl) )}.sky-icon-svg-container{height:var(--sky-icon-svg-img-size);width:var(--sky-icon-svg-img-size);display:inline-flex;align-items:center}.sky-icon-svg-container
|
|
144
|
+
}, hostDirectives: [SkyThemeComponentClassDirective], template: "<div class=\"sky-icon-svg-container\">\n <svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [attr.data-sky-icon]=\"iconName()\"\n [attr.data-sky-icon-variant]=\"iconVariant()\"\n >\n <use [attr.xlink:href]=\"iconHref()\" />\n </svg>\n</div>\n", styles: ["@charset \"UTF-8\";:host.sky-cmp-theme-default{--sky-override-sky-icon-svg-size-xxxs: 4px;--sky-override-sky-icon-svg-size-xxs: 8px;--sky-override-sky-icon-svg-size-xs: 12px;--sky-override-sky-icon-svg-size-s: 16px;--sky-override-sky-icon-svg-size-m: 20px;--sky-override-sky-icon-svg-size-l: 24px;--sky-override-sky-icon-svg-size-xl: 32px;--sky-override-sky-icon-svg-size-xxl: 40px;--sky-override-sky-icon-svg-size-xxxl: 48px}:host{display:inline-flex;--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-s, var(--sky-size-icon-s) )}:host.sky-icon-svg-relative-md{--sky-icon-svg-img-size: 1em}:host.sky-icon-svg-relative-lg .sky-icon-svg-img{transform:scale(1.33)}:host.sky-icon-svg-relative-lg .sky-icon-svg-container{margin:0 .166em}:host.sky-icon-svg-relative-2x{--sky-icon-svg-img-size: 2em}:host.sky-icon-svg-relative-3x{--sky-icon-svg-img-size: 3em}:host.sky-icon-svg-relative-4x{--sky-icon-svg-img-size: 4em}:host.sky-icon-svg-relative-5x{--sky-icon-svg-img-size: 5em}:host.sky-icon-svg-xxxs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxxs, var(--sky-size-icon-xxxs) )}:host.sky-icon-svg-xxs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxs, var(--sky-size-icon-xxs) )}:host.sky-icon-svg-xs{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xs, var(--sky-size-icon-xs) )}:host.sky-icon-svg-m{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-m, var(--sky-size-icon-m) )}:host.sky-icon-svg-l{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-l, var(--sky-size-icon-l) )}:host.sky-icon-svg-xl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xl, var(--sky-size-icon-xl) )}:host.sky-icon-svg-xxl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxl, var(--sky-size-icon-xxl) )}:host.sky-icon-svg-xxxl{--sky-icon-svg-img-size: var( --sky-override-sky-icon-svg-size-xxxl, var(--sky-size-icon-xxxl) )}.sky-icon-svg-container:before{content:\"\\200b\"}.sky-icon-svg-container{height:var(--sky-icon-svg-img-size);width:var(--sky-icon-svg-img-size);display:inline-flex;align-items:center}.sky-icon-svg-container svg{height:100%;width:100%}\n"] }]
|
|
147
145
|
}], propDecorators: { iconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconName", required: true }] }], iconSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconSize", required: false }] }], iconVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconVariant", required: false }] }] } });
|
|
148
146
|
|
|
149
147
|
class SkyIconComponent {
|
|
@@ -154,10 +152,10 @@ class SkyIconComponent {
|
|
|
154
152
|
*/
|
|
155
153
|
this.iconSize = input(...(ngDevMode ? [undefined, { debugName: "iconSize" }] : []));
|
|
156
154
|
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
155
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
156
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.2", type: SkyIconComponent, isStandalone: false, selector: "sky-icon", inputs: { iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: false, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: false, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<sky-icon-svg\n [iconName]=\"iconName\"\n [iconSize]=\"iconSize()\"\n [iconVariant]=\"variant\"\n [attr.data-sky-icon]=\"iconName\"\n [attr.data-sky-icon-variant]=\"variant\"\n/>\n", styles: [":host{display:inline-flex}i{display:inherit}\n"], dependencies: [{ kind: "component", type: SkyIconSvgComponent, selector: "sky-icon-svg", inputs: ["iconName", "iconSize", "iconVariant"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
159
157
|
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconComponent, decorators: [{
|
|
161
159
|
type: Component,
|
|
162
160
|
args: [{ selector: 'sky-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<sky-icon-svg\n [iconName]=\"iconName\"\n [iconSize]=\"iconSize()\"\n [iconVariant]=\"variant\"\n [attr.data-sky-icon]=\"iconName\"\n [attr.data-sky-icon-variant]=\"variant\"\n/>\n", styles: [":host{display:inline-flex}i{display:inherit}\n"] }]
|
|
163
161
|
}], propDecorators: { iconName: [{
|
|
@@ -168,11 +166,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
168
166
|
}], iconSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconSize", required: false }] }] } });
|
|
169
167
|
|
|
170
168
|
class SkyIconModule {
|
|
171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
172
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
173
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
169
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
170
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.2", ngImport: i0, type: SkyIconModule, declarations: [SkyIconComponent], imports: [CommonModule, SkyIconSvgComponent], exports: [SkyIconComponent] }); }
|
|
171
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconModule, imports: [CommonModule] }); }
|
|
174
172
|
}
|
|
175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: SkyIconModule, decorators: [{
|
|
176
174
|
type: NgModule,
|
|
177
175
|
args: [{
|
|
178
176
|
declarations: [SkyIconComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-icon.mjs","sources":["../../../../../libs/components/icon/src/lib/modules/icon/icon-svg-resolver.service.ts","../../../../../libs/components/icon/src/lib/modules/icon/icon-svg.component.ts","../../../../../libs/components/icon/src/lib/modules/icon/icon-svg.component.html","../../../../../libs/components/icon/src/lib/modules/icon/icon.component.ts","../../../../../libs/components/icon/src/lib/modules/icon/icon.component.html","../../../../../libs/components/icon/src/lib/modules/icon/icon.module.ts","../../../../../libs/components/icon/src/skyux-icon.ts"],"sourcesContent":["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/10/assets/svg/skyux-icons.svg`,\n );\n\n /* istanbul ignore next */\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 return buildIconMap();\n}\n\nfunction buildIconMap(): Map<string, number[]> {\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\nlet iconMapPromise: Promise<Map<string, number[]>> | undefined;\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyIconSvgResolverService {\n public async resolveHref(\n name: string,\n pixelSize = 16,\n variant: SkyIconVariantType = 'line',\n ): Promise<string> {\n if (!iconMapPromise) {\n iconMapPromise = getIconMap();\n }\n\n const iconMap = await 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 public refreshIconMap(): void {\n iconMapPromise = Promise.resolve(buildIconMap());\n }\n\n public resetIconMap(): void {\n iconMapPromise = undefined;\n }\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { catchError, of, switchMap } from 'rxjs';\n\nimport { SkyIconSvgResolverService } from './icon-svg-resolver.service';\nimport { SkyIconSize } from './types/icon-size';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\nconst SIZE_BASE = 16;\n\nconst FIXED_SIZES = new Map([\n ['xxxs', 4],\n ['xxs', 8],\n ['xs', 12],\n ['s', SIZE_BASE],\n ['m', 20],\n ['l', 24],\n ['xl', 32],\n ['xxl', 40],\n ['xxxl', 48],\n]);\n\nfunction defaultSize(value: SkyIconSize | undefined): SkyIconSize {\n return value ?? 'm';\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-icon-svg',\n templateUrl: './icon-svg.component.html',\n styleUrls: ['./icon-svg.component.scss'],\n host: {\n '[class]': '\"sky-icon-svg-\" + iconSize()',\n },\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyIconSvgComponent {\n readonly #resolverSvc = inject(SkyIconSvgResolverService);\n\n public readonly iconName = input.required<string>();\n public readonly iconSize = input<SkyIconSize, SkyIconSize | undefined>('m', {\n transform: defaultSize,\n });\n public readonly iconVariant = input<SkyIconVariantType>();\n\n readonly #iconInfo = computed(() => {\n return {\n src: this.iconName(),\n iconSize: 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 FIXED_SIZES.get(info.iconSize),\n info.variant,\n ),\n ),\n catchError(() => of('')),\n ),\n );\n}\n","<div class=\"sky-icon-svg-container\">\n <svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [attr.data-sky-icon]=\"iconName()\"\n [attr.data-sky-icon-variant]=\"iconVariant()\"\n >\n <use [attr.xlink:href]=\"iconHref()\" />\n </svg>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n input,\n} from '@angular/core';\n\nimport { SkyIconSize } from './types/icon-size';\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 standalone: false,\n})\nexport class SkyIconComponent {\n /**\n * The name of the Blackbaud SVG icon to display.\n */\n @Input({ required: true })\n public iconName!: string;\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 /**\n * The icon size. Size is independent of font size.\n * @default \"m\"\n */\n public readonly iconSize = input<SkyIconSize | undefined>();\n}\n","<sky-icon-svg\n [iconName]=\"iconName\"\n [iconSize]=\"iconSize()\"\n [iconVariant]=\"variant\"\n [attr.data-sky-icon]=\"iconName\"\n [attr.data-sky-icon-variant]=\"variant\"\n/>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyIconSvgComponent } from './icon-svg.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconComponent],\n imports: [CommonModule, SkyIconSvgComponent],\n exports: [SkyIconComponent],\n})\nexport class SkyIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyIconSvgComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-icon.mjs","sources":["../../../../../libs/components/icon/src/lib/modules/icon/icon-svg-resolver.service.ts","../../../../../libs/components/icon/src/lib/modules/icon/icon-svg.component.ts","../../../../../libs/components/icon/src/lib/modules/icon/icon-svg.component.html","../../../../../libs/components/icon/src/lib/modules/icon/icon.component.ts","../../../../../libs/components/icon/src/lib/modules/icon/icon.component.html","../../../../../libs/components/icon/src/lib/modules/icon/icon.module.ts","../../../../../libs/components/icon/src/skyux-icon.ts"],"sourcesContent":["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/10/assets/svg/skyux-icons.svg`,\n );\n\n /* istanbul ignore next */\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 return buildIconMap();\n}\n\nfunction buildIconMap(): Map<string, number[]> {\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\nlet iconMapPromise: Promise<Map<string, number[]>> | undefined;\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyIconSvgResolverService {\n public async resolveHref(\n name: string,\n pixelSize = 16,\n variant: SkyIconVariantType = 'line',\n ): Promise<string> {\n if (!iconMapPromise) {\n iconMapPromise = getIconMap();\n }\n\n const iconMap = await 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 public refreshIconMap(): void {\n iconMapPromise = Promise.resolve(buildIconMap());\n }\n\n public resetIconMap(): void {\n iconMapPromise = undefined;\n }\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { catchError, of, switchMap } from 'rxjs';\n\nimport { SkyIconSvgResolverService } from './icon-svg-resolver.service';\nimport { SkyIconSize } from './types/icon-size';\nimport { SkyIconVariantType } from './types/icon-variant-type';\n\nconst SIZE_BASE = 16;\n\nconst FIXED_SIZES = new Map([\n ['xxxs', 4],\n ['xxs', 8],\n ['xs', 12],\n ['s', SIZE_BASE],\n ['m', 20],\n ['l', 24],\n ['xl', 32],\n ['xxl', 40],\n ['xxxl', 48],\n]);\n\nfunction defaultSize(value: SkyIconSize | undefined): SkyIconSize {\n return value ?? 'm';\n}\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-icon-svg',\n templateUrl: './icon-svg.component.html',\n styleUrls: ['./icon-svg.component.scss'],\n host: {\n '[class]': '\"sky-icon-svg-\" + iconSize()',\n },\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyIconSvgComponent {\n readonly #resolverSvc = inject(SkyIconSvgResolverService);\n\n public readonly iconName = input.required<string>();\n public readonly iconSize = input<SkyIconSize, SkyIconSize | undefined>('m', {\n transform: defaultSize,\n });\n public readonly iconVariant = input<SkyIconVariantType>();\n\n readonly #iconInfo = computed(() => {\n return {\n src: this.iconName(),\n iconSize: 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 FIXED_SIZES.get(info.iconSize),\n info.variant,\n ),\n ),\n catchError(() => of('')),\n ),\n );\n}\n","<div class=\"sky-icon-svg-container\">\n <svg\n aria-hidden=\"true\"\n class=\"sky-icon-svg-img\"\n [attr.data-sky-icon]=\"iconName()\"\n [attr.data-sky-icon-variant]=\"iconVariant()\"\n >\n <use [attr.xlink:href]=\"iconHref()\" />\n </svg>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n input,\n} from '@angular/core';\n\nimport { SkyIconSize } from './types/icon-size';\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 standalone: false,\n})\nexport class SkyIconComponent {\n /**\n * The name of the Blackbaud SVG icon to display.\n */\n @Input({ required: true })\n public iconName!: string;\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 /**\n * The icon size. Size is independent of font size.\n * @default \"m\"\n */\n public readonly iconSize = input<SkyIconSize | undefined>();\n}\n","<sky-icon-svg\n [iconName]=\"iconName\"\n [iconSize]=\"iconSize()\"\n [iconVariant]=\"variant\"\n [attr.data-sky-icon]=\"iconName\"\n [attr.data-sky-icon-variant]=\"variant\"\n/>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyIconSvgComponent } from './icon-svg.component';\nimport { SkyIconComponent } from './icon.component';\n\n@NgModule({\n declarations: [SkyIconComponent],\n imports: [CommonModule, SkyIconSvgComponent],\n exports: [SkyIconComponent],\n})\nexport class SkyIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyIconSvgComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/icon",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.0-alpha.1",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -16,28 +16,28 @@
|
|
|
16
16
|
},
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/cdk": "^
|
|
20
|
-
"@angular/common": "^
|
|
21
|
-
"@angular/core": "^
|
|
22
|
-
"@skyux/core": "
|
|
23
|
-
"@skyux/theme": "
|
|
19
|
+
"@angular/cdk": "^21.1.2",
|
|
20
|
+
"@angular/common": "^21.1.2",
|
|
21
|
+
"@angular/core": "^21.1.2",
|
|
22
|
+
"@skyux/core": "14.0.0-alpha.1",
|
|
23
|
+
"@skyux/theme": "14.0.0-alpha.1"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"tslib": "^2.8.1"
|
|
27
27
|
},
|
|
28
28
|
"sideEffects": false,
|
|
29
29
|
"module": "fesm2022/skyux-icon.mjs",
|
|
30
|
-
"typings": "
|
|
30
|
+
"typings": "types/skyux-icon.d.ts",
|
|
31
31
|
"exports": {
|
|
32
32
|
"./package.json": {
|
|
33
33
|
"default": "./package.json"
|
|
34
34
|
},
|
|
35
35
|
".": {
|
|
36
|
-
"types": "./
|
|
36
|
+
"types": "./types/skyux-icon.d.ts",
|
|
37
37
|
"default": "./fesm2022/skyux-icon.mjs"
|
|
38
38
|
},
|
|
39
39
|
"./testing": {
|
|
40
|
-
"types": "./testing
|
|
40
|
+
"types": "./types/skyux-icon-testing.d.ts",
|
|
41
41
|
"default": "./fesm2022/skyux-icon-testing.mjs"
|
|
42
42
|
}
|
|
43
43
|
}
|
|
File without changes
|
|
File without changes
|