@ng-icons/core 32.0.0 → 32.2.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.
- package/fesm2022/ng-icons-core.mjs +31 -31
- package/fesm2022/ng-icons-core.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-icons-core.mjs","sources":["../tmp-esm2022/lib/providers/glyph-config.provider.js","../tmp-esm2022/lib/providers/glyph.provider.js","../tmp-esm2022/lib/utils/coercion.js","../tmp-esm2022/lib/components/glyph/glyph.component.js","../tmp-esm2022/lib/providers/features/features.js","../tmp-esm2022/lib/providers/features/csp.js","../tmp-esm2022/lib/providers/features/logger.js","../tmp-esm2022/lib/providers/icon-config.provider.js","../tmp-esm2022/lib/providers/icon-loader.provider.js","../tmp-esm2022/lib/providers/icon.provider.js","../tmp-esm2022/lib/utils/async.js","../tmp-esm2022/lib/utils/format.js","../tmp-esm2022/lib/components/icon/icon.component.js","../tmp-esm2022/lib/icon.module.js","../tmp-esm2022/lib/components/icon-stack/icon-stack.component.js","../tmp-esm2022/ng-icons-core.js"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nexport const NgGlyphConfigToken = new InjectionToken('Ng Glyph Config');\nconst defaultConfig = {\n size: '1em',\n opticalSize: 20,\n weight: 400,\n grade: 0,\n fill: false,\n};\n/**\n * Provide the configuration for the glyph\n * @param config The configuration to use\n */\nexport function provideNgGlyphsConfig(config) {\n return {\n provide: NgGlyphConfigToken,\n useValue: { ...defaultConfig, ...config },\n };\n}\n/**\n * Inject the configuration for the glyphs\n * @returns The configuration to use\n * @internal\n */\nexport function injectNgGlyphsConfig() {\n return (inject(NgGlyphConfigToken, { optional: true }) ??\n defaultConfig);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGgtY29uZmlnLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9nbHlwaC1jb25maWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpQmpFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNsRCxpQkFBaUIsQ0FDbEIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFrQjtJQUNuQyxJQUFJLEVBQUUsS0FBSztJQUNYLFdBQVcsRUFBRSxFQUFFO0lBQ2YsTUFBTSxFQUFFLEdBQUc7SUFDWCxLQUFLLEVBQUUsQ0FBQztJQUNSLElBQUksRUFBRSxLQUFLO0NBQ1osQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsTUFBOEI7SUFFOUIsT0FBTztRQUNMLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUU7S0FDMUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BELGFBQWEsQ0FBNEIsQ0FBQztBQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ0dseXBoQ29uZmlnIHtcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCBzaXplIG9mIGdseXBoICovXG4gIHNpemU6IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqIERlZmluZSB0aGUgb3B0aWNhbCBzaXplIG9mIHRoZSBnbHlwaCAqL1xuICBvcHRpY2FsU2l6ZT86IG51bWJlcjtcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCBjb2xvciBvZiBnbHlwaCAqL1xuICBjb2xvcj86IHN0cmluZztcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCB3ZWlnaHQgb2YgZ2x5cGggKi9cbiAgd2VpZ2h0PzogbnVtYmVyO1xuICAvKiogRGVmaW5lIHRoZSBkZWZhdWx0IGdyYWRlIG9mIGdseXBoICovXG4gIGdyYWRlPzogbnVtYmVyO1xuICAvKiogRGVmaW5lIHRoZSBkZWZhdWx0IGZpbGwgb2YgZ2x5cGggKi9cbiAgZmlsbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBOZ0dseXBoQ29uZmlnVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVxdWlyZWQ8TmdHbHlwaENvbmZpZz4+KFxuICAnTmcgR2x5cGggQ29uZmlnJyxcbik7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IE5nR2x5cGhDb25maWcgPSB7XG4gIHNpemU6ICcxZW0nLFxuICBvcHRpY2FsU2l6ZTogMjAsXG4gIHdlaWdodDogNDAwLFxuICBncmFkZTogMCxcbiAgZmlsbDogZmFsc2UsXG59O1xuXG4vKipcbiAqIFByb3ZpZGUgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnbHlwaFxuICogQHBhcmFtIGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiB0byB1c2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0dseXBoc0NvbmZpZyhcbiAgY29uZmlnOiBQYXJ0aWFsPE5nR2x5cGhDb25maWc+LFxuKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IE5nR2x5cGhDb25maWdUb2tlbixcbiAgICB1c2VWYWx1ZTogeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBJbmplY3QgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnbHlwaHNcbiAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0dseXBoc0NvbmZpZygpOiBSZXF1aXJlZDxOZ0dseXBoQ29uZmlnPiB7XG4gIHJldHVybiAoaW5qZWN0KE5nR2x5cGhDb25maWdUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/P1xuICAgIGRlZmF1bHRDb25maWcpIGFzIFJlcXVpcmVkPE5nR2x5cGhDb25maWc+O1xufVxuIl19","import { InjectionToken, inject } from '@angular/core';\nexport const NgGlyphsToken = new InjectionToken('NgGlyphsToken');\nexport function provideNgGlyphs(...glyphsets) {\n // if there are no glyphsets, throw an error\n if (!glyphsets.length) {\n throw new Error('Please provide at least one glyphset.');\n }\n // the default glyphset is the first one\n const defaultGlyphset = glyphsets[0].name;\n return [{ provide: NgGlyphsToken, useValue: { defaultGlyphset, glyphsets } }];\n}\nexport function injectNgGlyphs() {\n const glyphs = inject(NgGlyphsToken, { optional: true });\n if (!glyphs) {\n throw new Error('Please provide the glyphs using the provideNgGlyphs() function.');\n }\n return glyphs;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGgucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2dseXBoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVcsZUFBZSxDQUFDLENBQUM7QUFFM0UsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFHLFNBQXVCO0lBQ3hELDRDQUE0QztJQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFMUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFZhbHVlUHJvdmlkZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgTmdHbHlwaHNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0dseXBocz4oJ05nR2x5cGhzVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0dseXBocyguLi5nbHlwaHNldHM6IE5nR2x5cGhzZXRbXSk6IFZhbHVlUHJvdmlkZXJbXSB7XG4gIC8vIGlmIHRoZXJlIGFyZSBubyBnbHlwaHNldHMsIHRocm93IGFuIGVycm9yXG4gIGlmICghZ2x5cGhzZXRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGUgYXQgbGVhc3Qgb25lIGdseXBoc2V0LicpO1xuICB9XG5cbiAgLy8gdGhlIGRlZmF1bHQgZ2x5cGhzZXQgaXMgdGhlIGZpcnN0IG9uZVxuICBjb25zdCBkZWZhdWx0R2x5cGhzZXQgPSBnbHlwaHNldHNbMF0ubmFtZTtcblxuICByZXR1cm4gW3sgcHJvdmlkZTogTmdHbHlwaHNUb2tlbiwgdXNlVmFsdWU6IHsgZGVmYXVsdEdseXBoc2V0LCBnbHlwaHNldHMgfSB9XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nR2x5cGhzKCk6IE5nR2x5cGhzIHtcbiAgY29uc3QgZ2x5cGhzID0gaW5qZWN0KE5nR2x5cGhzVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgaWYgKCFnbHlwaHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnUGxlYXNlIHByb3ZpZGUgdGhlIGdseXBocyB1c2luZyB0aGUgcHJvdmlkZU5nR2x5cGhzKCkgZnVuY3Rpb24uJyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGdseXBocztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ0dseXBoc2V0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYXNlQ2xhc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ0dseXBocyB7XG4gIGRlZmF1bHRHbHlwaHNldDogc3RyaW5nO1xuICBnbHlwaHNldHM6IE5nR2x5cGhzZXRbXTtcbn1cbiJdfQ==","export function coerceCssPixelValue(value) {\n return value == null ? '' : /^\\d+$/.test(value) ? `${value}px` : value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvY29lcmNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWE7SUFDL0MsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiAvXlxcZCskLy50ZXN0KHZhbHVlKSA/IGAke3ZhbHVlfXB4YCA6IHZhbHVlO1xufVxuIl19","import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input, numberAttribute, } from '@angular/core';\nimport { injectNgGlyphsConfig } from '../../providers/glyph-config.provider';\nimport { injectNgGlyphs } from '../../providers/glyph.provider';\nimport { coerceCssPixelValue } from '../../utils/coercion';\nimport * as i0 from \"@angular/core\";\nexport class NgGlyph {\n constructor() {\n /**\n * Access the available glyphsets\n */\n this.glyphsets = injectNgGlyphs();\n /**\n * Access the default configuration\n */\n this.config = injectNgGlyphsConfig();\n /**\n * Define the name of the glyph to display\n */\n this.name = input.required();\n /**\n * Define the glyphset to use\n */\n this.glyphset = input(this.glyphsets.defaultGlyphset);\n /**\n * Define the optical size of the glyph\n */\n this.opticalSize = input(this.config.opticalSize, {\n transform: numberAttribute,\n });\n /**\n * Define the weight of the glyph\n */\n this.weight = input(this.config.weight, { transform: numberAttribute });\n /**\n * Define the grade of the glyph\n */\n this.grade = input(this.config.grade, { transform: numberAttribute });\n /**\n * Define the fill of the glyph\n */\n this.fill = input(this.config.fill, { transform: booleanAttribute });\n /**\n * Define the size of the glyph\n */\n this.size = input(this.config.size, { transform: coerceCssPixelValue });\n /**\n * Define the color of the glyph\n */\n this.color = input(this.config.color);\n /**\n * Derive the glyphset class from the glyphset name\n */\n this.glyphsetClass = computed(() => {\n const glyphset = this.glyphsets.glyphsets.find(glyphset => glyphset.name === this.glyphset());\n if (!glyphset) {\n throw new Error(`The glyphset \"${this.glyphset()}\" does not exist. Please provide a valid glyphset.`);\n }\n return glyphset.baseClass;\n });\n /**\n * Define the font variation settings of the glyph\n */\n this.fontVariationSettings = computed(() => {\n return `'FILL' ${this.fill() ? 1 : 0}, 'wght' ${this.weight()}, 'GRAD' ${this.grade()}, 'opsz' ${this.opticalSize()}`;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgGlyph, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.0\", type: NgGlyph, isStandalone: true, selector: \"ng-glyph\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: true, transformFunction: null }, glyphset: { classPropertyName: \"glyphset\", publicName: \"glyphset\", isSignal: true, isRequired: false, transformFunction: null }, opticalSize: { classPropertyName: \"opticalSize\", publicName: \"opticalSize\", isSignal: true, isRequired: false, transformFunction: null }, weight: { classPropertyName: \"weight\", publicName: \"weight\", isSignal: true, isRequired: false, transformFunction: null }, grade: { classPropertyName: \"grade\", publicName: \"grade\", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: \"fill\", publicName: \"fill\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class\": \"glyphsetClass()\", \"textContent\": \"name()\", \"style.--ng-glyph__size\": \"size()\", \"style.color\": \"color()\", \"style.font-variation-settings\": \"fontVariationSettings()\" } }, ngImport: i0, template: ``, isInline: true, styles: [\":host{display:inline-block;width:var(--ng-glyph__size);height:var(--ng-glyph__size);font-size:var(--ng-glyph__size);overflow:hidden}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgGlyph, decorators: [{\n type: Component,\n args: [{ selector: 'ng-glyph', standalone: true, template: ``, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[class]': 'glyphsetClass()',\n '[textContent]': 'name()',\n '[style.--ng-glyph__size]': 'size()',\n '[style.color]': 'color()',\n '[style.font-variation-settings]': 'fontVariationSettings()',\n }, styles: [\":host{display:inline-block;width:var(--ng-glyph__size);height:var(--ng-glyph__size);font-size:var(--ng-glyph__size);overflow:hidden}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZ2x5cGgvZ2x5cGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsS0FBSyxFQUNMLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWdCM0QsTUFBTSxPQUFPLE9BQU87SUFkcEI7UUFlRTs7V0FFRztRQUNjLGNBQVMsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUU5Qzs7V0FFRztRQUNjLFdBQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUV6Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxRDs7V0FFRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3BELFNBQVMsRUFBRSxlQUFlO1NBQzNCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ00sV0FBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRTVFOztXQUVHO1FBQ00sVUFBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRTFFOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFekU7O1dBRUc7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUU1RTs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQzs7V0FFRztRQUNnQixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM1QyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM5QyxDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUJBQWlCLElBQUksQ0FBQyxRQUFRLEVBQUUsb0RBQW9ELENBQ3JGLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDZ0IsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2RCxPQUFPLFVBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BCLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNwRixDQUFDLENBQUMsQ0FBQztLQUNKOzhHQTlFWSxPQUFPO2tHQUFQLE9BQU8sNnVDQVhSLEVBQUU7OzJGQVdELE9BQU87a0JBZG5CLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksWUFDTixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osU0FBUyxFQUFFLGlCQUFpQjt3QkFDNUIsZUFBZSxFQUFFLFFBQVE7d0JBQ3pCLDBCQUEwQixFQUFFLFFBQVE7d0JBQ3BDLGVBQWUsRUFBRSxTQUFTO3dCQUMxQixpQ0FBaUMsRUFBRSx5QkFBeUI7cUJBQzdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TmdHbHlwaHNDb25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZ2x5cGgtY29uZmlnLnByb3ZpZGVyJztcbmltcG9ydCB7IGluamVjdE5nR2x5cGhzIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2dseXBoLnByb3ZpZGVyJztcbmltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9jb2VyY2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWdseXBoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdHlsZVVybDogJy4vZ2x5cGguY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2dseXBoc2V0Q2xhc3MoKScsXG4gICAgJ1t0ZXh0Q29udGVudF0nOiAnbmFtZSgpJyxcbiAgICAnW3N0eWxlLi0tbmctZ2x5cGhfX3NpemVdJzogJ3NpemUoKScsXG4gICAgJ1tzdHlsZS5jb2xvcl0nOiAnY29sb3IoKScsXG4gICAgJ1tzdHlsZS5mb250LXZhcmlhdGlvbi1zZXR0aW5nc10nOiAnZm9udFZhcmlhdGlvblNldHRpbmdzKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ0dseXBoIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgYXZhaWxhYmxlIGdseXBoc2V0c1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBnbHlwaHNldHMgPSBpbmplY3ROZ0dseXBocygpO1xuXG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3ROZ0dseXBoc0NvbmZpZygpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGdseXBoIHRvIGRpc3BsYXlcbiAgICovXG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZ2x5cGhzZXQgdG8gdXNlXG4gICAqL1xuICByZWFkb25seSBnbHlwaHNldCA9IGlucHV0KHRoaXMuZ2x5cGhzZXRzLmRlZmF1bHRHbHlwaHNldCk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgb3B0aWNhbCBzaXplIG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcmVhZG9ubHkgb3B0aWNhbFNpemUgPSBpbnB1dCh0aGlzLmNvbmZpZy5vcHRpY2FsU2l6ZSwge1xuICAgIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSB3ZWlnaHQgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSB3ZWlnaHQgPSBpbnB1dCh0aGlzLmNvbmZpZy53ZWlnaHQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgZ3JhZGUgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSBncmFkZSA9IGlucHV0KHRoaXMuY29uZmlnLmdyYWRlLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGZpbGwgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSBmaWxsID0gaW5wdXQodGhpcy5jb25maWcuZmlsbCwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgc2l6ZSBvZiB0aGUgZ2x5cGhcbiAgICovXG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dCh0aGlzLmNvbmZpZy5zaXplLCB7IHRyYW5zZm9ybTogY29lcmNlQ3NzUGl4ZWxWYWx1ZSB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBjb2xvciBvZiB0aGUgZ2x5cGhcbiAgICovXG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQodGhpcy5jb25maWcuY29sb3IpO1xuXG4gIC8qKlxuICAgKiBEZXJpdmUgdGhlIGdseXBoc2V0IGNsYXNzIGZyb20gdGhlIGdseXBoc2V0IG5hbWVcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBnbHlwaHNldENsYXNzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGdseXBoc2V0ID0gdGhpcy5nbHlwaHNldHMuZ2x5cGhzZXRzLmZpbmQoXG4gICAgICBnbHlwaHNldCA9PiBnbHlwaHNldC5uYW1lID09PSB0aGlzLmdseXBoc2V0KCksXG4gICAgKTtcblxuICAgIGlmICghZ2x5cGhzZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBnbHlwaHNldCBcIiR7dGhpcy5nbHlwaHNldCgpfVwiIGRvZXMgbm90IGV4aXN0LiBQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGdseXBoc2V0LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBnbHlwaHNldC5iYXNlQ2xhc3M7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGZvbnQgdmFyaWF0aW9uIHNldHRpbmdzIG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvbnRWYXJpYXRpb25TZXR0aW5ncyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gYCdGSUxMJyAke1xuICAgICAgdGhpcy5maWxsKCkgPyAxIDogMFxuICAgIH0sICd3Z2h0JyAke3RoaXMud2VpZ2h0KCl9LCAnR1JBRCcgJHt0aGlzLmdyYWRlKCl9LCAnb3BzeicgJHt0aGlzLm9wdGljYWxTaXplKCl9YDtcbiAgfSk7XG59XG4iXX0=","/**\n * Helper function to create an object that represents a feature.\n */\nexport function createFeature(kind, providers) {\n return { ɵkind: kind, ɵproviders: providers };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2ZlYXR1cmVzL2ZlYXR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQTs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLElBQWlCLEVBQ2pCLFNBQXFCO0lBRXJCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZSA9XG4gIE5nSWNvbkZlYXR1cmU8TmdJY29uRmVhdHVyZUtpbmQuQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZT47XG5cbmV4cG9ydCB0eXBlIEV4Y2VwdGlvbkxvZ2dlckZlYXR1cmUgPVxuICBOZ0ljb25GZWF0dXJlPE5nSWNvbkZlYXR1cmVLaW5kLkV4Y2VwdGlvbkxvZ2dlckZlYXR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ0ljb25GZWF0dXJlcyA9XG4gIHwgQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZVxuICB8IEV4Y2VwdGlvbkxvZ2dlckZlYXR1cmU7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgZmVhdHVyZXMgYXMgYW4gZW51bSB0byB1bmlxdWVseSB0eXBlIGVhY2ggZmVhdHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gTmdJY29uRmVhdHVyZUtpbmQge1xuICBDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlLFxuICBFeGNlcHRpb25Mb2dnZXJGZWF0dXJlLFxufVxuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIHJlcHJlc2VudCBhIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmdJY29uRmVhdHVyZTxGZWF0dXJlS2luZCBleHRlbmRzIE5nSWNvbkZlYXR1cmVLaW5kPiB7XG4gIMm1a2luZDogRmVhdHVyZUtpbmQ7XG4gIMm1cHJvdmlkZXJzOiBQcm92aWRlcltdO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGZWF0dXJlPEZlYXR1cmVLaW5kIGV4dGVuZHMgTmdJY29uRmVhdHVyZUtpbmQ+KFxuICBraW5kOiBGZWF0dXJlS2luZCxcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdLFxuKTogTmdJY29uRmVhdHVyZTxGZWF0dXJlS2luZD4ge1xuICByZXR1cm4geyDJtWtpbmQ6IGtpbmQsIMm1cHJvdmlkZXJzOiBwcm92aWRlcnMgfTtcbn1cbiJdfQ==","import { InjectionToken, inject } from '@angular/core';\nimport { createFeature, } from './features';\nexport const NgIconPreProcessorToken = new InjectionToken('Ng Icon Pre Processor');\nexport const NgIconPostProcessorToken = new InjectionToken('Ng Icon Post Processor');\nexport function injectNgIconPreProcessor() {\n return inject(NgIconPreProcessorToken, { optional: true }) ?? (icon => icon);\n}\nexport function injectNgIconPostProcessor() {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return inject(NgIconPostProcessorToken, { optional: true }) ?? (() => { });\n}\nfunction preprocessIcon(icon) {\n // rename all style attributes to data-style to avoid being blocked by the CSP\n return icon.replace(/style\\s*=/g, 'data-style=');\n}\nfunction postprocessIcon(element) {\n // find all elements with a data-style attribute and get the styles from it\n // and apply them to the element using the style property and remove the data-style attribute\n const elements = element.querySelectorAll('[data-style]');\n for (const element of Array.from(elements)) {\n const styles = element.getAttribute('data-style');\n styles?.split(';').forEach(style => {\n const [property, value] = style.split(':');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.style[property.trim()] = value.trim();\n });\n element.removeAttribute('data-style');\n }\n}\n/**\n * Process icons in a way that is compliant with the content security policy\n */\nexport function withContentSecurityPolicy() {\n return createFeature(0 /* NgIconFeatureKind.ContentSecurityPolicyFeature */, [\n { provide: NgIconPreProcessorToken, useValue: preprocessIcon },\n { provide: NgIconPostProcessorToken, useValue: postprocessIcon },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9mZWF0dXJlcy9jc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUtwQixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQsdUJBQXVCLENBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLGdFQUFnRTtJQUNoRSxPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLElBQVk7SUFDbEMsOEVBQThFO0lBQzlFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQWlDO0lBQ3hELDJFQUEyRTtJQUMzRSw2RkFBNkY7SUFDN0YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUN2QyxjQUFjLENBQ2YsQ0FBQztJQUVGLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLDhEQUE4RDtZQUM5RCxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTyxhQUFhLHlEQUFpRDtRQUNuRSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFO1FBQzlELEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUU7S0FDakUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmUsXG4gIE5nSWNvbkZlYXR1cmVLaW5kLFxuICBjcmVhdGVGZWF0dXJlLFxufSBmcm9tICcuL2ZlYXR1cmVzJztcblxuZXhwb3J0IHR5cGUgTmdJY29uUHJlUHJvY2Vzc29yID0gKGljb246IHN0cmluZykgPT4gc3RyaW5nO1xuZXhwb3J0IHR5cGUgTmdJY29uUG9zdFByb2Nlc3NvciA9IChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBOZ0ljb25QcmVQcm9jZXNzb3JUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0ljb25QcmVQcm9jZXNzb3I+KFxuICAnTmcgSWNvbiBQcmUgUHJvY2Vzc29yJyxcbik7XG5cbmV4cG9ydCBjb25zdCBOZ0ljb25Qb3N0UHJvY2Vzc29yVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdJY29uUG9zdFByb2Nlc3Nvcj4oXG4gICdOZyBJY29uIFBvc3QgUHJvY2Vzc29yJyxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0ljb25QcmVQcm9jZXNzb3IoKTogTmdJY29uUHJlUHJvY2Vzc29yIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25QcmVQcm9jZXNzb3JUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyAoaWNvbiA9PiBpY29uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nSWNvblBvc3RQcm9jZXNzb3IoKTogTmdJY29uUG9zdFByb2Nlc3NvciB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcmV0dXJuIGluamVjdChOZ0ljb25Qb3N0UHJvY2Vzc29yVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gKCgpID0+IHt9KTtcbn1cblxuZnVuY3Rpb24gcHJlcHJvY2Vzc0ljb24oaWNvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gcmVuYW1lIGFsbCBzdHlsZSBhdHRyaWJ1dGVzIHRvIGRhdGEtc3R5bGUgdG8gYXZvaWQgYmVpbmcgYmxvY2tlZCBieSB0aGUgQ1NQXG4gIHJldHVybiBpY29uLnJlcGxhY2UoL3N0eWxlXFxzKj0vZywgJ2RhdGEtc3R5bGU9Jyk7XG59XG5cbmZ1bmN0aW9uIHBvc3Rwcm9jZXNzSWNvbihlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiB2b2lkIHtcbiAgLy8gZmluZCBhbGwgZWxlbWVudHMgd2l0aCBhIGRhdGEtc3R5bGUgYXR0cmlidXRlIGFuZCBnZXQgdGhlIHN0eWxlcyBmcm9tIGl0XG4gIC8vIGFuZCBhcHBseSB0aGVtIHRvIHRoZSBlbGVtZW50IHVzaW5nIHRoZSBzdHlsZSBwcm9wZXJ0eSBhbmQgcmVtb3ZlIHRoZSBkYXRhLXN0eWxlIGF0dHJpYnV0ZVxuICBjb25zdCBlbGVtZW50cyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+KFxuICAgICdbZGF0YS1zdHlsZV0nLFxuICApO1xuXG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBBcnJheS5mcm9tKGVsZW1lbnRzKSkge1xuICAgIGNvbnN0IHN0eWxlcyA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXN0eWxlJyk7XG5cbiAgICBzdHlsZXM/LnNwbGl0KCc7JykuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICBjb25zdCBbcHJvcGVydHksIHZhbHVlXSA9IHN0eWxlLnNwbGl0KCc6Jyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgZWxlbWVudC5zdHlsZVtwcm9wZXJ0eS50cmltKCkgYXMgYW55XSA9IHZhbHVlLnRyaW0oKTtcbiAgICB9KTtcblxuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXN0eWxlJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9jZXNzIGljb25zIGluIGEgd2F5IHRoYXQgaXMgY29tcGxpYW50IHdpdGggdGhlIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ29udGVudFNlY3VyaXR5UG9saWN5KCk6IENvbnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmUge1xuICByZXR1cm4gY3JlYXRlRmVhdHVyZShOZ0ljb25GZWF0dXJlS2luZC5Db250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlLCBbXG4gICAgeyBwcm92aWRlOiBOZ0ljb25QcmVQcm9jZXNzb3JUb2tlbiwgdXNlVmFsdWU6IHByZXByb2Nlc3NJY29uIH0sXG4gICAgeyBwcm92aWRlOiBOZ0ljb25Qb3N0UHJvY2Vzc29yVG9rZW4sIHVzZVZhbHVlOiBwb3N0cHJvY2Vzc0ljb24gfSxcbiAgXSk7XG59XG4iXX0=","import { InjectionToken, inject } from '@angular/core';\nimport { createFeature, } from './features';\nexport const LoggerToken = new InjectionToken('Ng Icon Logger');\n/**\n * The default logger implementation that logs to the console\n */\nexport class DefaultLogger {\n log(message) {\n console.log(message);\n }\n warn(message) {\n console.warn(message);\n }\n error(message) {\n console.error(message);\n }\n}\n/**\n * A logger implementation that throws an error on warnings and errors\n */\nexport class ExceptionLogger {\n log(message) {\n console.log(message);\n }\n warn(message) {\n throw new Error(message);\n }\n error(message) {\n throw new Error(message);\n }\n}\nexport function injectLogger() {\n return inject(LoggerToken, { optional: true }) ?? new DefaultLogger();\n}\n/**\n * Throw exceptions on warnings and errors\n */\nexport function withExceptionLogger() {\n return createFeature(1 /* NgIconFeatureKind.ExceptionLoggerFeature */, [\n { provide: LoggerToken, useClass: ExceptionLogger },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9mZWF0dXJlcy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQVFwQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLEdBQUcsQ0FBQyxPQUFlO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFlO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFlO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixHQUFHLENBQUMsT0FBZTtRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZTtRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZTtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLGFBQWEsbURBQTJDO1FBQzdELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFO0tBQ3BELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFeGNlcHRpb25Mb2dnZXJGZWF0dXJlLFxuICBOZ0ljb25GZWF0dXJlS2luZCxcbiAgY3JlYXRlRmVhdHVyZSxcbn0gZnJvbSAnLi9mZWF0dXJlcyc7XG5cbmludGVyZmFjZSBMb2dnZXIge1xuICBsb2cobWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgTG9nZ2VyVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9nZ2VyPignTmcgSWNvbiBMb2dnZXInKTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBsb2dnZXIgaW1wbGVtZW50YXRpb24gdGhhdCBsb2dzIHRvIHRoZSBjb25zb2xlXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0TG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyIHtcbiAgbG9nKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpO1xuICB9XG4gIHdhcm4obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICB9XG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGxvZ2dlciBpbXBsZW1lbnRhdGlvbiB0aGF0IHRocm93cyBhbiBlcnJvciBvbiB3YXJuaW5ncyBhbmQgZXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBFeGNlcHRpb25Mb2dnZXIgaW1wbGVtZW50cyBMb2dnZXIge1xuICBsb2cobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TG9nZ2VyKCk6IExvZ2dlciB7XG4gIHJldHVybiBpbmplY3QoTG9nZ2VyVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gbmV3IERlZmF1bHRMb2dnZXIoKTtcbn1cblxuLyoqXG4gKiBUaHJvdyBleGNlcHRpb25zIG9uIHdhcm5pbmdzIGFuZCBlcnJvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhFeGNlcHRpb25Mb2dnZXIoKTogRXhjZXB0aW9uTG9nZ2VyRmVhdHVyZSB7XG4gIHJldHVybiBjcmVhdGVGZWF0dXJlKE5nSWNvbkZlYXR1cmVLaW5kLkV4Y2VwdGlvbkxvZ2dlckZlYXR1cmUsIFtcbiAgICB7IHByb3ZpZGU6IExvZ2dlclRva2VuLCB1c2VDbGFzczogRXhjZXB0aW9uTG9nZ2VyIH0sXG4gIF0pO1xufVxuIl19","import { InjectionToken, inject } from '@angular/core';\nexport const NgIconConfigToken = new InjectionToken('Ng Icon Config');\n/**\n * Provide the configuration for the icons\n * @param config The configuration to use\n */\nexport function provideNgIconsConfig(config, ...features) {\n return [\n {\n provide: NgIconConfigToken,\n useValue: config,\n },\n features.map(feature => feature.ɵproviders),\n ];\n}\n/**\n * Inject the configuration for the icons\n * @returns The configuration to use\n * @internal\n */\nexport function injectNgIconConfig() {\n return inject(NgIconConfigToken, { optional: true }) ?? {};\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1jb25maWcucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2ljb24tY29uZmlnLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWWpFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxnQkFBZ0IsQ0FDakIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBNkIsRUFDN0IsR0FBRyxRQUEwQjtJQUU3QixPQUFPO1FBQ0w7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO1FBQ0QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWNvbkZlYXR1cmVzIH0gZnJvbSAnLi9mZWF0dXJlcy9mZWF0dXJlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdJY29uQ29uZmlnIHtcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCBzaXplIG9mIGljb25zICovXG4gIHNpemU/OiBzdHJpbmc7XG4gIC8qKiBEZWZpbmUgdGhlIGRlZmF1bHQgY29sb3Igb2YgaWNvbnMgKi9cbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8qKiBEZWZpbmUgdGhlIGRlZmF1bHQgc3Ryb2tlIHdpZHRoIG9mIGljb25zICovXG4gIHN0cm9rZVdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTmdJY29uQ29uZmlnVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdJY29uQ29uZmlnPihcbiAgJ05nIEljb24gQ29uZmlnJyxcbik7XG5cbi8qKlxuICogUHJvdmlkZSB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGljb25zXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU5nSWNvbnNDb25maWcoXG4gIGNvbmZpZzogUGFydGlhbDxOZ0ljb25Db25maWc+LFxuICAuLi5mZWF0dXJlczogTmdJY29uRmVhdHVyZXNbXVxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTmdJY29uQ29uZmlnVG9rZW4sXG4gICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgIH0sXG4gICAgZmVhdHVyZXMubWFwKGZlYXR1cmUgPT4gZmVhdHVyZS7JtXByb3ZpZGVycyksXG4gIF07XG59XG5cbi8qKlxuICogSW5qZWN0IHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgaWNvbnNcbiAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0ljb25Db25maWcoKTogTmdJY29uQ29uZmlnIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25Db25maWdUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyB7fTtcbn1cbiJdfQ==","import { inject, InjectionToken } from '@angular/core';\nexport const NgIconLoaderToken = new InjectionToken('Ng Icon Loader Token');\n/**\n * Helper function to create an object that represents a Loader feature.\n */\nfunction loaderFeature(kind, providers) {\n return { kind: kind, providers: providers };\n}\nexport const NgIconCacheToken = new InjectionToken('Ng Icon Cache Token');\n/**\n * Add caching to the loader. This will prevent the loader from being called multiple times for the same icon name.\n */\nexport function withCaching() {\n return loaderFeature(0 /* NgIconLoaderFeatureKind.CachingFeature */, [\n { provide: NgIconCacheToken, useValue: new Map() },\n ]);\n}\n/**\n * Provide a function that will return the SVG content for a given icon name.\n * @param loader The function that will return the SVG content for a given icon name.\n * @param features The list of features to apply to the loader.\n * @returns The SVG content for a given icon name.\n */\nexport function provideNgIconLoader(loader, ...features) {\n return [\n { provide: NgIconLoaderToken, useValue: loader },\n features.map(feature => feature.providers),\n ];\n}\n/**\n * Inject the function that will return the SVG content for a given icon name.\n */\nexport function injectNgIconLoader() {\n return inject(NgIconLoaderToken, { optional: true });\n}\n/**\n * Inject the cache that will store the SVG content for a given icon name.\n */\nexport function injectNgIconLoaderCache() {\n return inject(NgIconCacheToken, { optional: true });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1sb2FkZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2ljb24tbG9hZGVyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBT2pFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxzQkFBc0IsQ0FDdkIsQ0FBQztBQWNGOztHQUVHO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLElBQWlCLEVBQ2pCLFNBQXFCO0lBRXJCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBU0QsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQ2hELHFCQUFxQixDQUN0QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLGFBQWEsaURBQXlDO1FBQzNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUcsRUFBa0IsRUFBRTtLQUNuRSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLE1BQW9CLEVBQ3BCLEdBQUcsUUFBZ0M7SUFFbkMsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDaEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7S0FDM0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgTmdJY29uTG9hZGVyID0gKFxuICBuYW1lOiBzdHJpbmcsXG4pID0+IFByb21pc2U8c3RyaW5nPiB8IE9ic2VydmFibGU8c3RyaW5nPiB8IHN0cmluZztcblxuZXhwb3J0IGNvbnN0IE5nSWNvbkxvYWRlclRva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5nSWNvbkxvYWRlcj4oXG4gICdOZyBJY29uIExvYWRlciBUb2tlbicsXG4pO1xuXG4vKipcbiAqIFRoZSBsaXN0IG9mIGZlYXR1cmVzIGFzIGFuIGVudW0gdG8gdW5pcXVlbHkgdHlwZSBlYWNoIGZlYXR1cmUuXG4gKi9cbmNvbnN0IGVudW0gTmdJY29uTG9hZGVyRmVhdHVyZUtpbmQge1xuICBDYWNoaW5nRmVhdHVyZSxcbn1cblxuaW50ZXJmYWNlIE5nSWNvbkxvYWRlckZlYXR1cmU8RmVhdHVyZUtpbmQgZXh0ZW5kcyBOZ0ljb25Mb2FkZXJGZWF0dXJlS2luZD4ge1xuICBraW5kOiBGZWF0dXJlS2luZDtcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIExvYWRlciBmZWF0dXJlLlxuICovXG5mdW5jdGlvbiBsb2FkZXJGZWF0dXJlPEZlYXR1cmVLaW5kIGV4dGVuZHMgTmdJY29uTG9hZGVyRmVhdHVyZUtpbmQ+KFxuICBraW5kOiBGZWF0dXJlS2luZCxcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdLFxuKTogTmdJY29uTG9hZGVyRmVhdHVyZTxGZWF0dXJlS2luZD4ge1xuICByZXR1cm4geyBraW5kOiBraW5kLCBwcm92aWRlcnM6IHByb3ZpZGVycyB9O1xufVxuXG50eXBlIENhY2hpbmdGZWF0dXJlID1cbiAgTmdJY29uTG9hZGVyRmVhdHVyZTxOZ0ljb25Mb2FkZXJGZWF0dXJlS2luZC5DYWNoaW5nRmVhdHVyZT47XG5cbnR5cGUgTmdJY29uTG9hZGVyRmVhdHVyZXMgPSBDYWNoaW5nRmVhdHVyZTtcblxuZXhwb3J0IHR5cGUgTmdJY29uTG9hZGVyQ2FjaGUgPSBNYXA8c3RyaW5nLCBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4+O1xuXG5leHBvcnQgY29uc3QgTmdJY29uQ2FjaGVUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0ljb25Mb2FkZXJDYWNoZT4oXG4gICdOZyBJY29uIENhY2hlIFRva2VuJyxcbik7XG5cbi8qKlxuICogQWRkIGNhY2hpbmcgdG8gdGhlIGxvYWRlci4gVGhpcyB3aWxsIHByZXZlbnQgdGhlIGxvYWRlciBmcm9tIGJlaW5nIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgaWNvbiBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aENhY2hpbmcoKTogQ2FjaGluZ0ZlYXR1cmUge1xuICByZXR1cm4gbG9hZGVyRmVhdHVyZShOZ0ljb25Mb2FkZXJGZWF0dXJlS2luZC5DYWNoaW5nRmVhdHVyZSwgW1xuICAgIHsgcHJvdmlkZTogTmdJY29uQ2FjaGVUb2tlbiwgdXNlVmFsdWU6IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkgfSxcbiAgXSk7XG59XG5cbi8qKlxuICogUHJvdmlkZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqIEBwYXJhbSBsb2FkZXIgVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqIEBwYXJhbSBmZWF0dXJlcyBUaGUgbGlzdCBvZiBmZWF0dXJlcyB0byBhcHBseSB0byB0aGUgbG9hZGVyLlxuICogQHJldHVybnMgVGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0ljb25Mb2FkZXIoXG4gIGxvYWRlcjogTmdJY29uTG9hZGVyLFxuICAuLi5mZWF0dXJlczogTmdJY29uTG9hZGVyRmVhdHVyZXNbXVxuKSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBOZ0ljb25Mb2FkZXJUb2tlbiwgdXNlVmFsdWU6IGxvYWRlciB9LFxuICAgIGZlYXR1cmVzLm1hcChmZWF0dXJlID0+IGZlYXR1cmUucHJvdmlkZXJzKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBJbmplY3QgdGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nSWNvbkxvYWRlcigpOiBOZ0ljb25Mb2FkZXIgfCBudWxsIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25Mb2FkZXJUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBJbmplY3QgdGhlIGNhY2hlIHRoYXQgd2lsbCBzdG9yZSB0aGUgU1ZHIGNvbnRlbnQgZm9yIGEgZ2l2ZW4gaWNvbiBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TmdJY29uTG9hZGVyQ2FjaGUoKTogTmdJY29uTG9hZGVyQ2FjaGUgfCBudWxsIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25DYWNoZVRva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuIl19","import { InjectionToken, inject } from '@angular/core';\n/**\n * Define the icons to use\n * @param icons The icons to provide\n */\nexport function provideIcons(icons) {\n return [\n {\n provide: NgIconsToken,\n useFactory: (parentIcons = inject(NgIconsToken, {\n optional: true,\n skipSelf: true,\n })) => ({\n ...parentIcons?.reduce((acc, icons) => ({ ...acc, ...icons }), {}),\n ...icons,\n }),\n multi: true,\n },\n ];\n}\nexport const NgIconsToken = new InjectionToken('Icons Token');\n/**\n * Inject the icons to use\n * @returns The icons to use\n * @internal\n */\nexport function injectNgIcons() {\n return inject(NgIconsToken, { optional: true }) ?? [];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9wcm92aWRlcnMvaWNvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQTZCO0lBQ3hELE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxDQUNWLGNBQWMsTUFBTSxDQUEyQixZQUFZLEVBQUU7Z0JBQzNELFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxDQUFDO2dCQUNKLEdBQUcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNsRSxHQUFHLEtBQUs7YUFDVCxDQUFDO1lBQ0YsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUM1QyxhQUFhLENBQ2QsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGVmaW5lIHRoZSBpY29ucyB0byB1c2VcbiAqIEBwYXJhbSBpY29ucyBUaGUgaWNvbnMgdG8gcHJvdmlkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUljb25zKGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTmdJY29uc1Rva2VuLFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBwYXJlbnRJY29ucyA9IGluamVjdDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+KE5nSWNvbnNUb2tlbiwge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICkgPT4gKHtcbiAgICAgICAgLi4ucGFyZW50SWNvbnM/LnJlZHVjZSgoYWNjLCBpY29ucykgPT4gKHsgLi4uYWNjLCAuLi5pY29ucyB9KSwge30pLFxuICAgICAgICAuLi5pY29ucyxcbiAgICAgIH0pLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXTtcbn1cblxuZXhwb3J0IGNvbnN0IE5nSWNvbnNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+KFxuICAnSWNvbnMgVG9rZW4nLFxuKTtcblxuLyoqXG4gKiBJbmplY3QgdGhlIGljb25zIHRvIHVzZVxuICogQHJldHVybnMgVGhlIGljb25zIHRvIHVzZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0ljb25zKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5bXSB7XG4gIHJldHVybiBpbmplY3QoTmdJY29uc1Rva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IFtdO1xufVxuIl19","import { isObservable } from 'rxjs';\n/**\n * A loader may return a promise, an observable or a string. This function will coerce the result into a promise.\n * @returns\n */\nexport function coerceLoaderResult(result) {\n if (typeof result === 'string') {\n return Promise.resolve(result);\n }\n if (isObservable(result)) {\n // toPromise is deprecated, but we can't use lastValueFrom because it's not available in RxJS 6\n // so for now we'll just use toPromise\n return result.toPromise();\n }\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQXFEO0lBRXJELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pCLCtGQUErRjtRQUMvRixzQ0FBc0M7UUFDdEMsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFxQixDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQSBsb2FkZXIgbWF5IHJldHVybiBhIHByb21pc2UsIGFuIG9ic2VydmFibGUgb3IgYSBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gd2lsbCBjb2VyY2UgdGhlIHJlc3VsdCBpbnRvIGEgcHJvbWlzZS5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VMb2FkZXJSZXN1bHQoXG4gIHJlc3VsdDogUHJvbWlzZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxzdHJpbmc+IHwgc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICB9XG5cbiAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XG4gICAgLy8gdG9Qcm9taXNlIGlzIGRlcHJlY2F0ZWQsIGJ1dCB3ZSBjYW4ndCB1c2UgbGFzdFZhbHVlRnJvbSBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiBSeEpTIDZcbiAgICAvLyBzbyBmb3Igbm93IHdlJ2xsIGp1c3QgdXNlIHRvUHJvbWlzZVxuICAgIHJldHVybiByZXN1bHQudG9Qcm9taXNlKCkgYXMgUHJvbWlzZTxzdHJpbmc+O1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","/**\n * Hyphenated to lowerCamelCase\n */\nexport function toPropertyName(str) {\n return str\n .replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) => chr ? chr.toUpperCase() : '')\n .replace(/[^a-zA-Z\\d]/g, '')\n .replace(/^([A-Z])/, m => m.toLowerCase());\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUc7U0FDUCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCO1NBQ0EsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEh5cGhlbmF0ZWQgdG8gbG93ZXJDYW1lbENhc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHJvcGVydHlOYW1lKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC8oW15hLXpBLVowLTldKSsoLik/L2csIChfLCBfXywgY2hyKSA9PlxuICAgICAgY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAnJyxcbiAgICApXG4gICAgLnJlcGxhY2UoL1teYS16QS1aXFxkXS9nLCAnJylcbiAgICAucmVwbGFjZSgvXihbQS1aXSkvLCBtID0+IG0udG9Mb3dlckNhc2UoKSk7XG59XG4iXX0=","import { isPlatformServer } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, HostAttributeToken, inject, Injector, input, PLATFORM_ID, Renderer2, runInInjectionContext, } from '@angular/core';\nimport { injectNgIconPostProcessor, injectNgIconPreProcessor, } from '../../providers/features/csp';\nimport { injectLogger } from '../../providers/features/logger';\nimport { injectNgIconConfig } from '../../providers/icon-config.provider';\nimport { injectNgIconLoader, injectNgIconLoaderCache, } from '../../providers/icon-loader.provider';\nimport { injectNgIcons } from '../../providers/icon.provider';\nimport { coerceLoaderResult } from '../../utils/async';\nimport { coerceCssPixelValue } from '../../utils/coercion';\nimport { toPropertyName } from '../../utils/format';\nimport * as i0 from \"@angular/core\";\nlet uniqueId = 0;\nexport class NgIcon {\n constructor() {\n /** Access the global icon config */\n this.config = injectNgIconConfig();\n /** Access the icons */\n this.icons = injectNgIcons();\n /** Access the icon loader if defined */\n this.loader = injectNgIconLoader();\n /** Access the icon cache if defined */\n this.cache = injectNgIconLoaderCache();\n /** Access the pre-processor */\n this.preProcessor = injectNgIconPreProcessor();\n /** Access the post-processor */\n this.postProcessor = injectNgIconPostProcessor();\n /** Access the injector */\n this.injector = inject(Injector);\n /** Access the renderer */\n this.renderer = inject(Renderer2);\n /** Determine the platform we are rendering on */\n this.platform = inject(PLATFORM_ID);\n /** Access the element ref */\n this.elementRef = inject(ElementRef);\n /** A unique id for this instance */\n this.uniqueId = uniqueId++;\n /** Access the logger */\n this.logger = injectLogger();\n /** Define the name of the icon to display */\n this.name = input();\n /** Define the svg of the icon to display */\n this.svg = input();\n /** Define the size of the icon */\n this.size = input(this.config.size, { transform: coerceCssPixelValue });\n /** Define the stroke-width of the icon */\n this.strokeWidth = input(this.config.strokeWidth);\n /** Define the color of the icon */\n this.color = input(this.config.color);\n // update the icon anytime the name or svg changes\n effect(() => this.updateIcon());\n const ariaHidden = inject(new HostAttributeToken('aria-hidden'), {\n optional: true,\n });\n // If the user has not explicitly set aria-hidden, mark the icon as hidden, as this is\n // the right thing to do for the majority of icon use-cases.\n if (!ariaHidden) {\n this.elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n }\n }\n ngOnDestroy() {\n this.svgElement = undefined;\n }\n async updateIcon() {\n const name = this.name();\n const svg = this.svg();\n // if the svg is defined, insert it into the template\n if (svg !== undefined) {\n this.setSvg(svg);\n return;\n }\n if (name === undefined) {\n return;\n }\n const propertyName = toPropertyName(name);\n for (const icons of [...this.icons].reverse()) {\n if (icons[propertyName]) {\n // insert the SVG into the template\n this.setSvg(icons[propertyName]);\n return;\n }\n }\n // if there is a loader defined, use it to load the icon\n if (this.loader) {\n const result = await this.requestIconFromLoader(name);\n // if the result is a string, insert the SVG into the template\n if (result !== null) {\n this.setSvg(result);\n return;\n }\n }\n // if there is no icon with this name warn the user as they probably forgot to import it\n this.logger.warn(`No icon named ${name} was found. You may need to import it using the withIcons function.`);\n }\n setSvg(svg) {\n // if we are on the server, simply innerHTML the svg as we don't have the\n // level of control over the DOM that we do on the client, in otherwords\n // the approach we take to insert the svg on the client will not work on the server\n if (isPlatformServer(this.platform)) {\n this.elementRef.nativeElement.innerHTML = svg;\n // mark this component as server side rendered\n this.elementRef.nativeElement.setAttribute('data-ng-icon-ssr', '');\n return;\n }\n // if this was previously server side rendered, we should check if the svg is the same\n // if it is, we don't need to do anything\n if (this.elementRef.nativeElement.hasAttribute('data-ng-icon-ssr')) {\n // if it is different, we need to remove the server side rendered flag\n this.elementRef.nativeElement.removeAttribute('data-ng-icon-ssr');\n // retrieve the svg element\n this.svgElement =\n this.elementRef.nativeElement.querySelector('svg') ??\n undefined;\n if (this.elementRef.nativeElement.innerHTML === svg) {\n return;\n }\n }\n // remove the old element\n if (this.svgElement) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.svgElement);\n }\n // if the svg is empty, don't insert anything\n if (svg === '') {\n return;\n }\n const template = this.renderer.createElement('template');\n svg = this.replaceIds(svg);\n this.renderer.setProperty(template, 'innerHTML', this.preProcessor(svg));\n this.svgElement = template.content.firstElementChild;\n this.postProcessor(this.svgElement);\n // insert the element into the dom\n this.renderer.appendChild(this.elementRef.nativeElement, this.svgElement);\n }\n replaceIds(svg) {\n // ids are defined like ID_PLACEHOLDER_0, ID_PLACEHOLDER_1, etc.\n // we need to replace these with the actual ids e.g. ng-icon-0-0, ng-icon-0-1, etc.\n // if there are no ids, we don't need to do anything\n if (!svg.includes('ID_PLACEHOLDER_')) {\n return svg;\n }\n // we can just retain the trailing number as the prefix is always the same\n const regex = /ID_PLACEHOLDER_(\\d+)/g;\n // we need to keep track of the ids we have replaced\n const idMap = new Map();\n // find all the matches\n const matches = new Set(svg.match(regex));\n if (matches === null) {\n return svg;\n }\n // replace the ids\n for (const match of matches) {\n const id = match.replace('ID_PLACEHOLDER_', '');\n const placeholder = `ng-icon-${this.uniqueId}-${idMap.size}`;\n idMap.set(id, placeholder);\n svg = svg.replace(new RegExp(match, 'g'), placeholder);\n }\n return svg;\n }\n /**\n * Request the icon from the loader.\n * @param name The name of the icon to load.\n * @returns The SVG content for a given icon name.\n */\n requestIconFromLoader(name) {\n return new Promise(resolve => {\n runInInjectionContext(this.injector, async () => {\n // if we have a cache, check if the icon is already loaded (i.e, it is a string)\n if (this.cache) {\n const cachedResult = this.cache.get(name);\n if (typeof cachedResult === 'string') {\n resolve(cachedResult);\n return;\n }\n // it may be a promise, so we need to await it\n if (cachedResult instanceof Promise) {\n const result = await cachedResult;\n resolve(result);\n return;\n }\n }\n const promise = coerceLoaderResult(this.loader(name));\n // store the promise in the cache so if we get repeated calls (e.g. in a loop) before the loader has resolved\n // then don't call the loader function multiple times\n this.cache?.set(name, promise);\n // await the result of the promise\n const result = await promise;\n // if we have a cache, store the result\n this.cache?.set(name, result);\n resolve(result);\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.0\", type: NgIcon, isStandalone: true, selector: \"ng-icon\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, svg: { classPropertyName: \"svg\", publicName: \"svg\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: \"strokeWidth\", publicName: \"strokeWidth\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"img\" }, properties: { \"style.--ng-icon__stroke-width\": \"strokeWidth()\", \"style.--ng-icon__size\": \"size()\", \"style.--ng-icon__color\": \"color()\" } }, ngImport: i0, template: '', isInline: true, styles: [\":host{display:inline-block;width:var(--ng-icon__size, 1em);height:var(--ng-icon__size, 1em);line-height:initial;vertical-align:initial;overflow:hidden}:host ::ng-deep svg{width:inherit;height:inherit;vertical-align:inherit}@layer ng-icon{:host{color:var(--ng-icon__color, currentColor)}}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIcon, decorators: [{\n type: Component,\n args: [{ selector: 'ng-icon', template: '', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n role: 'img',\n '[style.--ng-icon__stroke-width]': 'strokeWidth()',\n '[style.--ng-icon__size]': 'size()',\n '[style.--ng-icon__color]': 'color()',\n }, styles: [\":host{display:inline-block;width:var(--ng-icon__size, 1em);height:var(--ng-icon__size, 1em);line-height:initial;vertical-align:initial;overflow:hidden}:host ::ng-deep svg{width:inherit;height:inherit;vertical-align:inherit}@layer ng-icon{:host{color:var(--ng-icon__color, currentColor)}}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QscUJBQXFCLEdBQ3RCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsd0JBQXdCLEdBQ3pCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQ3hCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLcEQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxNQUFNO0lBeURqQjtRQXhEQSxvQ0FBb0M7UUFDbkIsV0FBTSxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFFL0MsdUJBQXVCO1FBQ04sVUFBSyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRXpD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O29CQUVELDhDQUE4QztvQkFDOUMsSUFBSSxZQUFZLFlBQVksT0FBTyxFQUFFLENBQUM7d0JBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDO3dCQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ2hCLE9BQU87b0JBQ1QsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFdkQsNkdBQTZHO2dCQUM3RyxxREFBcUQ7Z0JBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFL0Isa0NBQWtDO2dCQUNsQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQztnQkFFN0IsdUNBQXVDO2dCQUN2QyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRTlCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvT1UsTUFBTTtrR0FBTixNQUFNLGcyQkFYUCxFQUFFOzsyRkFXRCxNQUFNO2tCQWJsQixTQUFTOytCQUNFLFNBQVMsWUFDVCxFQUFFLGNBQ0EsSUFBSSxtQkFFQyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLElBQUksRUFBRSxLQUFLO3dCQUNYLGlDQUFpQyxFQUFFLGVBQWU7d0JBQ2xELHlCQUF5QixFQUFFLFFBQVE7d0JBQ25DLDBCQUEwQixFQUFFLFNBQVM7cUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RBdHRyaWJ1dGVUb2tlbixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgUExBVEZPUk1fSUQsXG4gIFJlbmRlcmVyMixcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ljb24vaWNvbi1uYW1lJztcbmltcG9ydCB7XG4gIGluamVjdE5nSWNvblBvc3RQcm9jZXNzb3IsXG4gIGluamVjdE5nSWNvblByZVByb2Nlc3Nvcixcbn0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2ZlYXR1cmVzL2NzcCc7XG5pbXBvcnQgeyBpbmplY3RMb2dnZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZmVhdHVyZXMvbG9nZ2VyJztcbmltcG9ydCB7IGluamVjdE5nSWNvbkNvbmZpZyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pY29uLWNvbmZpZy5wcm92aWRlcic7XG5pbXBvcnQge1xuICBpbmplY3ROZ0ljb25Mb2FkZXIsXG4gIGluamVjdE5nSWNvbkxvYWRlckNhY2hlLFxufSBmcm9tICcuLi8uLi9wcm92aWRlcnMvaWNvbi1sb2FkZXIucHJvdmlkZXInO1xuaW1wb3J0IHsgaW5qZWN0TmdJY29ucyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9pY29uLnByb3ZpZGVyJztcbmltcG9ydCB7IGNvZXJjZUxvYWRlclJlc3VsdCB9IGZyb20gJy4uLy4uL3V0aWxzL2FzeW5jJztcbmltcG9ydCB7IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9jb2VyY2lvbic7XG5pbXBvcnQgeyB0b1Byb3BlcnR5TmFtZSB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1hdCc7XG5cbi8vIFRoaXMgaXMgYSB0eXBlc2NyaXB0IHR5cGUgdG8gcHJldmVudCBpbmZlcmVuY2UgZnJvbSBjb2xsYXBzaW5nIHRoZSB1bmlvbiB0eXBlIHRvIGEgc3RyaW5nIHRvIGltcHJvdmUgdHlwZSBzYWZldHlcbmV4cG9ydCB0eXBlIEljb25UeXBlID0gSWNvbk5hbWUgfCAoc3RyaW5nICYge30pO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1pY29uJyxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ2ltZycsXG4gICAgJ1tzdHlsZS4tLW5nLWljb25fX3N0cm9rZS13aWR0aF0nOiAnc3Ryb2tlV2lkdGgoKScsXG4gICAgJ1tzdHlsZS4tLW5nLWljb25fX3NpemVdJzogJ3NpemUoKScsXG4gICAgJ1tzdHlsZS4tLW5nLWljb25fX2NvbG9yXSc6ICdjb2xvcigpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdJY29uIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqIEFjY2VzcyB0aGUgZ2xvYmFsIGljb24gY29uZmlnICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0TmdJY29uQ29uZmlnKCk7XG5cbiAgLyoqIEFjY2VzcyB0aGUgaWNvbnMgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpY29ucyA9IGluamVjdE5nSWNvbnMoKTtcblxuICAvKiogQWNjZXNzIHRoZSBpY29uIGxvYWRlciBpZiBkZWZpbmVkICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZGVyID0gaW5qZWN0TmdJY29uTG9hZGVyKCk7XG5cbiAgLyoqIEFjY2VzcyB0aGUgaWNvbiBjYWNoZSBpZiBkZWZpbmVkICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBpbmplY3ROZ0ljb25Mb2FkZXJDYWNoZSgpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIHByZS1wcm9jZXNzb3IgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcmVQcm9jZXNzb3IgPSBpbmplY3ROZ0ljb25QcmVQcm9jZXNzb3IoKTtcblxuICAvKiogQWNjZXNzIHRoZSBwb3N0LXByb2Nlc3NvciAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHBvc3RQcm9jZXNzb3IgPSBpbmplY3ROZ0ljb25Qb3N0UHJvY2Vzc29yKCk7XG5cbiAgLyoqIEFjY2VzcyB0aGUgaW5qZWN0b3IgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqIEFjY2VzcyB0aGUgcmVuZGVyZXIgKi9cbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIC8qKiBEZXRlcm1pbmUgdGhlIHBsYXRmb3JtIHdlIGFyZSByZW5kZXJpbmcgb24gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybSA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqIEFjY2VzcyB0aGUgZWxlbWVudCByZWYgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAvKiogQSB1bmlxdWUgaWQgZm9yIHRoaXMgaW5zdGFuY2UgKi9cbiAgcHJpdmF0ZSByZWFkb25seSB1bmlxdWVJZCA9IHVuaXF1ZUlkKys7XG5cbiAgLyoqIEFjY2VzcyB0aGUgbG9nZ2VyICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0TG9nZ2VyKCk7XG5cbiAgLyoqIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgaWNvbiB0byBkaXNwbGF5ICovXG4gIHJlYWRvbmx5IG5hbWUgPSBpbnB1dDxJY29uVHlwZT4oKTtcblxuICAvKiogRGVmaW5lIHRoZSBzdmcgb2YgdGhlIGljb24gdG8gZGlzcGxheSAqL1xuICByZWFkb25seSBzdmcgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgLyoqIERlZmluZSB0aGUgc2l6ZSBvZiB0aGUgaWNvbiAqL1xuICByZWFkb25seSBzaXplID0gaW5wdXQodGhpcy5jb25maWcuc2l6ZSwgeyB0cmFuc2Zvcm06IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSk7XG5cbiAgLyoqIERlZmluZSB0aGUgc3Ryb2tlLXdpZHRoIG9mIHRoZSBpY29uICovXG4gIHJlYWRvbmx5IHN0cm9rZVdpZHRoID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkPihcbiAgICB0aGlzLmNvbmZpZy5zdHJva2VXaWR0aCxcbiAgKTtcblxuICAvKiogRGVmaW5lIHRoZSBjb2xvciBvZiB0aGUgaWNvbiAqL1xuICByZWFkb25seSBjb2xvciA9IGlucHV0KHRoaXMuY29uZmlnLmNvbG9yKTtcblxuICAvKiogU3RvcmUgdGhlIGluc2VydGVkIFNWRyAqL1xuICBwcml2YXRlIHN2Z0VsZW1lbnQ/OiBTVkdFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIHVwZGF0ZSB0aGUgaWNvbiBhbnl0aW1lIHRoZSBuYW1lIG9yIHN2ZyBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHRoaXMudXBkYXRlSWNvbigpKTtcblxuICAgIGNvbnN0IGFyaWFIaWRkZW4gPSBpbmplY3QobmV3IEhvc3RBdHRyaWJ1dGVUb2tlbignYXJpYS1oaWRkZW4nKSwge1xuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSk7XG4gICAgLy8gSWYgdGhlIHVzZXIgaGFzIG5vdCBleHBsaWNpdGx5IHNldCBhcmlhLWhpZGRlbiwgbWFyayB0aGUgaWNvbiBhcyBoaWRkZW4sIGFzIHRoaXMgaXNcbiAgICAvLyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gZm9yIHRoZSBtYWpvcml0eSBvZiBpY29uIHVzZS1jYXNlcy5cbiAgICBpZiAoIWFyaWFIaWRkZW4pIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ZnRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlSWNvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lKCk7XG4gICAgY29uc3Qgc3ZnID0gdGhpcy5zdmcoKTtcblxuICAgIC8vIGlmIHRoZSBzdmcgaXMgZGVmaW5lZCwgaW5zZXJ0IGl0IGludG8gdGhlIHRlbXBsYXRlXG4gICAgaWYgKHN2ZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNldFN2ZyhzdmcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSB0b1Byb3BlcnR5TmFtZShuYW1lKTtcblxuICAgIGZvciAoY29uc3QgaWNvbnMgb2YgWy4uLnRoaXMuaWNvbnNdLnJldmVyc2UoKSkge1xuICAgICAgaWYgKGljb25zW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgLy8gaW5zZXJ0IHRoZSBTVkcgaW50byB0aGUgdGVtcGxhdGVcbiAgICAgICAgdGhpcy5zZXRTdmcoaWNvbnNbcHJvcGVydHlOYW1lXSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiB0aGVyZSBpcyBhIGxvYWRlciBkZWZpbmVkLCB1c2UgaXQgdG8gbG9hZCB0aGUgaWNvblxuICAgIGlmICh0aGlzLmxvYWRlcikge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0SWNvbkZyb21Mb2FkZXIobmFtZSk7XG5cbiAgICAgIC8vIGlmIHRoZSByZXN1bHQgaXMgYSBzdHJpbmcsIGluc2VydCB0aGUgU1ZHIGludG8gdGhlIHRlbXBsYXRlXG4gICAgICBpZiAocmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuc2V0U3ZnKHJlc3VsdCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpZiB0aGVyZSBpcyBubyBpY29uIHdpdGggdGhpcyBuYW1lIHdhcm4gdGhlIHVzZXIgYXMgdGhleSBwcm9iYWJseSBmb3Jnb3QgdG8gaW1wb3J0IGl0XG4gICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgIGBObyBpY29uIG5hbWVkICR7bmFtZX0gd2FzIGZvdW5kLiBZb3UgbWF5IG5lZWQgdG8gaW1wb3J0IGl0IHVzaW5nIHRoZSB3aXRoSWNvbnMgZnVuY3Rpb24uYCxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTdmcoc3ZnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBpZiB3ZSBhcmUgb24gdGhlIHNlcnZlciwgc2ltcGx5IGlubmVySFRNTCB0aGUgc3ZnIGFzIHdlIGRvbid0IGhhdmUgdGhlXG4gICAgLy8gbGV2ZWwgb2YgY29udHJvbCBvdmVyIHRoZSBET00gdGhhdCB3ZSBkbyBvbiB0aGUgY2xpZW50LCBpbiBvdGhlcndvcmRzXG4gICAgLy8gdGhlIGFwcHJvYWNoIHdlIHRha2UgdG8gaW5zZXJ0IHRoZSBzdmcgb24gdGhlIGNsaWVudCB3aWxsIG5vdCB3b3JrIG9uIHRoZSBzZXJ2ZXJcbiAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcih0aGlzLnBsYXRmb3JtKSkge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gc3ZnO1xuICAgICAgLy8gbWFyayB0aGlzIGNvbXBvbmVudCBhcyBzZXJ2ZXIgc2lkZSByZW5kZXJlZFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLW5nLWljb24tc3NyJywgJycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGlmIHRoaXMgd2FzIHByZXZpb3VzbHkgc2VydmVyIHNpZGUgcmVuZGVyZWQsIHdlIHNob3VsZCBjaGVjayBpZiB0aGUgc3ZnIGlzIHRoZSBzYW1lXG4gICAgLy8gaWYgaXQgaXMsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLW5nLWljb24tc3NyJykpIHtcbiAgICAgIC8vIGlmIGl0IGlzIGRpZmZlcmVudCwgd2UgbmVlZCB0byByZW1vdmUgdGhlIHNlcnZlciBzaWRlIHJlbmRlcmVkIGZsYWdcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1uZy1pY29uLXNzcicpO1xuXG4gICAgICAvLyByZXRyaWV2ZSB0aGUgc3ZnIGVsZW1lbnRcbiAgICAgIHRoaXMuc3ZnRWxlbWVudCA9XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8U1ZHRWxlbWVudD4oJ3N2ZycpID8/XG4gICAgICAgIHVuZGVmaW5lZDtcblxuICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9PT0gc3ZnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyByZW1vdmUgdGhlIG9sZCBlbGVtZW50XG4gICAgaWYgKHRoaXMuc3ZnRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5zdmdFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGUgc3ZnIGlzIGVtcHR5LCBkb24ndCBpbnNlcnQgYW55dGhpbmdcbiAgICBpZiAoc3ZnID09PSAnJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRlbXBsYXRlOiBIVE1MVGVtcGxhdGVFbGVtZW50ID1cbiAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcblxuICAgIHN2ZyA9IHRoaXMucmVwbGFjZUlkcyhzdmcpO1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0ZW1wbGF0ZSwgJ2lubmVySFRNTCcsIHRoaXMucHJlUHJvY2Vzc29yKHN2ZykpO1xuXG4gICAgdGhpcy5zdmdFbGVtZW50ID0gdGVtcGxhdGUuY29udGVudC5maXJzdEVsZW1lbnRDaGlsZCBhcyBTVkdFbGVtZW50O1xuICAgIHRoaXMucG9zdFByb2Nlc3Nvcih0aGlzLnN2Z0VsZW1lbnQpO1xuXG4gICAgLy8gaW5zZXJ0IHRoZSBlbGVtZW50IGludG8gdGhlIGRvbVxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3ZnRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VJZHMoc3ZnOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIGlkcyBhcmUgZGVmaW5lZCBsaWtlIElEX1BMQUNFSE9MREVSXzAsIElEX1BMQUNFSE9MREVSXzEsIGV0Yy5cbiAgICAvLyB3ZSBuZWVkIHRvIHJlcGxhY2UgdGhlc2Ugd2l0aCB0aGUgYWN0dWFsIGlkcyBlLmcuIG5nLWljb24tMC0wLCBuZy1pY29uLTAtMSwgZXRjLlxuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBpZHMsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICBpZiAoIXN2Zy5pbmNsdWRlcygnSURfUExBQ0VIT0xERVJfJykpIHtcbiAgICAgIHJldHVybiBzdmc7XG4gICAgfVxuXG4gICAgLy8gd2UgY2FuIGp1c3QgcmV0YWluIHRoZSB0cmFpbGluZyBudW1iZXIgYXMgdGhlIHByZWZpeCBpcyBhbHdheXMgdGhlIHNhbWVcbiAgICBjb25zdCByZWdleCA9IC9JRF9QTEFDRUhPTERFUl8oXFxkKykvZztcblxuICAgIC8vIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgaWRzIHdlIGhhdmUgcmVwbGFjZWRcbiAgICBjb25zdCBpZE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgICAvLyBmaW5kIGFsbCB0aGUgbWF0Y2hlc1xuICAgIGNvbnN0IG1hdGNoZXMgPSBuZXcgU2V0KHN2Zy5tYXRjaChyZWdleCkpO1xuXG4gICAgaWYgKG1hdGNoZXMgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBzdmc7XG4gICAgfVxuXG4gICAgLy8gcmVwbGFjZSB0aGUgaWRzXG4gICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICBjb25zdCBpZCA9IG1hdGNoLnJlcGxhY2UoJ0lEX1BMQUNFSE9MREVSXycsICcnKTtcbiAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gYG5nLWljb24tJHt0aGlzLnVuaXF1ZUlkfS0ke2lkTWFwLnNpemV9YDtcbiAgICAgIGlkTWFwLnNldChpZCwgcGxhY2Vob2xkZXIpO1xuICAgICAgc3ZnID0gc3ZnLnJlcGxhY2UobmV3IFJlZ0V4cChtYXRjaCwgJ2cnKSwgcGxhY2Vob2xkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBzdmc7XG4gIH1cblxuICAvKipcbiAgICogUmVxdWVzdCB0aGUgaWNvbiBmcm9tIHRoZSBsb2FkZXIuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBpY29uIHRvIGxvYWQuXG4gICAqIEByZXR1cm5zIFRoZSBTVkcgY29udGVudCBmb3IgYSBnaXZlbiBpY29uIG5hbWUuXG4gICAqL1xuICBwcml2YXRlIHJlcXVlc3RJY29uRnJvbUxvYWRlcihuYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYSBjYWNoZSwgY2hlY2sgaWYgdGhlIGljb24gaXMgYWxyZWFkeSBsb2FkZWQgKGkuZSwgaXQgaXMgYSBzdHJpbmcpXG4gICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgY29uc3QgY2FjaGVkUmVzdWx0ID0gdGhpcy5jYWNoZS5nZXQobmFtZSk7XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZFJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJlc29sdmUoY2FjaGVkUmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBpdCBtYXkgYmUgYSBwcm9taXNlLCBzbyB3ZSBuZWVkIHRvIGF3YWl0IGl0XG4gICAgICAgICAgaWYgKGNhY2hlZFJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNhY2hlZFJlc3VsdDtcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwcm9taXNlID0gY29lcmNlTG9hZGVyUmVzdWx0KHRoaXMubG9hZGVyIShuYW1lKSk7XG5cbiAgICAgICAgLy8gc3RvcmUgdGhlIHByb21pc2UgaW4gdGhlIGNhY2hlIHNvIGlmIHdlIGdldCByZXBlYXRlZCBjYWxscyAoZS5nLiBpbiBhIGxvb3ApIGJlZm9yZSB0aGUgbG9hZGVyIGhhcyByZXNvbHZlZFxuICAgICAgICAvLyB0aGVuIGRvbid0IGNhbGwgdGhlIGxvYWRlciBmdW5jdGlvbiBtdWx0aXBsZSB0aW1lc1xuICAgICAgICB0aGlzLmNhY2hlPy5zZXQobmFtZSwgcHJvbWlzZSk7XG5cbiAgICAgICAgLy8gYXdhaXQgdGhlIHJlc3VsdCBvZiB0aGUgcHJvbWlzZVxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlO1xuXG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYSBjYWNoZSwgc3RvcmUgdGhlIHJlc3VsdFxuICAgICAgICB0aGlzLmNhY2hlPy5zZXQobmFtZSwgcmVzdWx0KTtcblxuICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19","import { Inject, NgModule } from '@angular/core';\nimport { NgIcon } from './components/icon/icon.component';\nimport { NgIconsToken, provideIcons } from './providers/icon.provider';\nimport * as i0 from \"@angular/core\";\nexport class NgIconsModule {\n constructor(icons) {\n if (Object.keys(icons).length === 0) {\n throw new Error('No icons have been provided. Ensure to include some icons by importing them using NgIconsModule.withIcons({ ... }).');\n }\n }\n /**\n * Define the icons that will be included in the application. This allows unused icons to\n * be tree-shaken away to reduce bundle size\n * @param icons The object containing the required icons\n */\n static withIcons(icons) {\n return { ngModule: NgIconsModule, providers: provideIcons(icons) };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIconsModule, deps: [{ token: NgIconsToken }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIconsModule, imports: [NgIcon], exports: [NgIcon] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIconsModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIconsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgIcon],\n exports: [NgIcon],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [NgIconsToken]\n }] }] });\nexport const NG_ICON_DIRECTIVES = [NgIcon];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU12RSxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFrQyxLQUE2QjtRQUM3RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IscUhBQXFILENBQ3RILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUNkLEtBQTZCO1FBRTdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxDQUFDOzhHQWxCVSxhQUFhLGtCQUNKLFlBQVk7K0dBRHJCLGFBQWEsWUFIZCxNQUFNLGFBQ04sTUFBTTsrR0FFTCxhQUFhOzsyRkFBYixhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztvQkFDakIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO2lCQUNsQjs7MEJBRWMsTUFBTTsyQkFBQyxZQUFZOztBQW9CbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUFNLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWNvbiB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWNvbnNUb2tlbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnLi9wcm92aWRlcnMvaWNvbi5wcm92aWRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtOZ0ljb25dLFxuICBleHBvcnRzOiBbTmdJY29uXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdJY29uc01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTmdJY29uc1Rva2VuKSBpY29uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIGlmIChPYmplY3Qua2V5cyhpY29ucykubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdObyBpY29ucyBoYXZlIGJlZW4gcHJvdmlkZWQuIEVuc3VyZSB0byBpbmNsdWRlIHNvbWUgaWNvbnMgYnkgaW1wb3J0aW5nIHRoZW0gdXNpbmcgTmdJY29uc01vZHVsZS53aXRoSWNvbnMoeyAuLi4gfSkuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgaWNvbnMgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBhbGxvd3MgdW51c2VkIGljb25zIHRvXG4gICAqIGJlIHRyZWUtc2hha2VuIGF3YXkgdG8gcmVkdWNlIGJ1bmRsZSBzaXplXG4gICAqIEBwYXJhbSBpY29ucyBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIGljb25zXG4gICAqL1xuICBzdGF0aWMgd2l0aEljb25zKFxuICAgIGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nSWNvbnNNb2R1bGU+IHtcbiAgICByZXR1cm4geyBuZ01vZHVsZTogTmdJY29uc01vZHVsZSwgcHJvdmlkZXJzOiBwcm92aWRlSWNvbnMoaWNvbnMpIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5HX0lDT05fRElSRUNUSVZFUyA9IFtOZ0ljb25dIGFzIGNvbnN0O1xuIl19","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class NgIconStack {\n constructor() {\n /** The size of the child icons */\n this.size = input.required();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIconStack, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.0\", type: NgIconStack, isStandalone: true, selector: \"ng-icon-stack\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { \"style.--ng-icon__size\": \"size()\" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [\":host{display:inline-flex;justify-content:center;align-items:center;position:relative;width:var(--ng-icon__size);height:var(--ng-icon__size)}:host ::ng-deep ng-icon{position:absolute}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.0\", ngImport: i0, type: NgIconStack, decorators: [{\n type: Component,\n args: [{ selector: 'ng-icon-stack', standalone: true, template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[style.--ng-icon__size]': 'size()',\n }, styles: [\":host{display:inline-flex;justify-content:center;align-items:center;position:relative;width:var(--ng-icon__size);height:var(--ng-icon__size)}:host ::ng-deep ng-icon{position:absolute}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zdGFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9pY29uLXN0YWNrL2ljb24tc3RhY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVkxRSxNQUFNLE9BQU8sV0FBVztJQVZ4QjtRQVdFLGtDQUFrQztRQUN6QixTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0tBQzFDOzhHQUhZLFdBQVc7a0dBQVgsV0FBVyxzUUFQWixnQkFBZ0I7OzJGQU9mLFdBQVc7a0JBVnZCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksWUFDTixnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSix5QkFBeUIsRUFBRSxRQUFRO3FCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLWljb24tc3RhY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+JyxcbiAgc3R5bGVVcmw6ICcuL2ljb24tc3RhY2suY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbc3R5bGUuLS1uZy1pY29uX19zaXplXSc6ICdzaXplKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ0ljb25TdGFjayB7XG4gIC8qKiBUaGUgc2l6ZSBvZiB0aGUgY2hpbGQgaWNvbnMgKi9cbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaWNvbnMtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL25nLWljb25zLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-icons-core.mjs","sources":["../tmp-esm2022/lib/providers/glyph-config.provider.js","../tmp-esm2022/lib/providers/glyph.provider.js","../tmp-esm2022/lib/utils/coercion.js","../tmp-esm2022/lib/components/glyph/glyph.component.js","../tmp-esm2022/lib/providers/features/features.js","../tmp-esm2022/lib/providers/features/csp.js","../tmp-esm2022/lib/providers/features/logger.js","../tmp-esm2022/lib/providers/icon-config.provider.js","../tmp-esm2022/lib/providers/icon-loader.provider.js","../tmp-esm2022/lib/providers/icon.provider.js","../tmp-esm2022/lib/utils/async.js","../tmp-esm2022/lib/utils/format.js","../tmp-esm2022/lib/components/icon/icon.component.js","../tmp-esm2022/lib/icon.module.js","../tmp-esm2022/lib/components/icon-stack/icon-stack.component.js","../tmp-esm2022/ng-icons-core.js"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nexport const NgGlyphConfigToken = new InjectionToken('Ng Glyph Config');\nconst defaultConfig = {\n size: '1em',\n opticalSize: 20,\n weight: 400,\n grade: 0,\n fill: false,\n};\n/**\n * Provide the configuration for the glyph\n * @param config The configuration to use\n */\nexport function provideNgGlyphsConfig(config) {\n return {\n provide: NgGlyphConfigToken,\n useValue: { ...defaultConfig, ...config },\n };\n}\n/**\n * Inject the configuration for the glyphs\n * @returns The configuration to use\n * @internal\n */\nexport function injectNgGlyphsConfig() {\n return (inject(NgGlyphConfigToken, { optional: true }) ??\n defaultConfig);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGgtY29uZmlnLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9nbHlwaC1jb25maWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFpQmpFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUNsRCxpQkFBaUIsQ0FDbEIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFrQjtJQUNuQyxJQUFJLEVBQUUsS0FBSztJQUNYLFdBQVcsRUFBRSxFQUFFO0lBQ2YsTUFBTSxFQUFFLEdBQUc7SUFDWCxLQUFLLEVBQUUsQ0FBQztJQUNSLElBQUksRUFBRSxLQUFLO0NBQ1osQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsTUFBOEI7SUFFOUIsT0FBTztRQUNMLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUU7S0FDMUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BELGFBQWEsQ0FBNEIsQ0FBQztBQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ0dseXBoQ29uZmlnIHtcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCBzaXplIG9mIGdseXBoICovXG4gIHNpemU6IHN0cmluZyB8IG51bWJlcjtcbiAgLyoqIERlZmluZSB0aGUgb3B0aWNhbCBzaXplIG9mIHRoZSBnbHlwaCAqL1xuICBvcHRpY2FsU2l6ZT86IG51bWJlcjtcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCBjb2xvciBvZiBnbHlwaCAqL1xuICBjb2xvcj86IHN0cmluZztcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCB3ZWlnaHQgb2YgZ2x5cGggKi9cbiAgd2VpZ2h0PzogbnVtYmVyO1xuICAvKiogRGVmaW5lIHRoZSBkZWZhdWx0IGdyYWRlIG9mIGdseXBoICovXG4gIGdyYWRlPzogbnVtYmVyO1xuICAvKiogRGVmaW5lIHRoZSBkZWZhdWx0IGZpbGwgb2YgZ2x5cGggKi9cbiAgZmlsbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBOZ0dseXBoQ29uZmlnVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVxdWlyZWQ8TmdHbHlwaENvbmZpZz4+KFxuICAnTmcgR2x5cGggQ29uZmlnJyxcbik7XG5cbmNvbnN0IGRlZmF1bHRDb25maWc6IE5nR2x5cGhDb25maWcgPSB7XG4gIHNpemU6ICcxZW0nLFxuICBvcHRpY2FsU2l6ZTogMjAsXG4gIHdlaWdodDogNDAwLFxuICBncmFkZTogMCxcbiAgZmlsbDogZmFsc2UsXG59O1xuXG4vKipcbiAqIFByb3ZpZGUgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnbHlwaFxuICogQHBhcmFtIGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiB0byB1c2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0dseXBoc0NvbmZpZyhcbiAgY29uZmlnOiBQYXJ0aWFsPE5nR2x5cGhDb25maWc+LFxuKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IE5nR2x5cGhDb25maWdUb2tlbixcbiAgICB1c2VWYWx1ZTogeyAuLi5kZWZhdWx0Q29uZmlnLCAuLi5jb25maWcgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBJbmplY3QgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBnbHlwaHNcbiAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0dseXBoc0NvbmZpZygpOiBSZXF1aXJlZDxOZ0dseXBoQ29uZmlnPiB7XG4gIHJldHVybiAoaW5qZWN0KE5nR2x5cGhDb25maWdUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/P1xuICAgIGRlZmF1bHRDb25maWcpIGFzIFJlcXVpcmVkPE5nR2x5cGhDb25maWc+O1xufVxuIl19","import { InjectionToken, inject } from '@angular/core';\nexport const NgGlyphsToken = new InjectionToken('NgGlyphsToken');\nexport function provideNgGlyphs(...glyphsets) {\n // if there are no glyphsets, throw an error\n if (!glyphsets.length) {\n throw new Error('Please provide at least one glyphset.');\n }\n // the default glyphset is the first one\n const defaultGlyphset = glyphsets[0].name;\n return [{ provide: NgGlyphsToken, useValue: { defaultGlyphset, glyphsets } }];\n}\nexport function injectNgGlyphs() {\n const glyphs = inject(NgGlyphsToken, { optional: true });\n if (!glyphs) {\n throw new Error('Please provide the glyphs using the provideNgGlyphs() function.');\n }\n return glyphs;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGgucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2dseXBoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVcsZUFBZSxDQUFDLENBQUM7QUFFM0UsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFHLFNBQXVCO0lBQ3hELDRDQUE0QztJQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFMUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFZhbHVlUHJvdmlkZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgTmdHbHlwaHNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0dseXBocz4oJ05nR2x5cGhzVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0dseXBocyguLi5nbHlwaHNldHM6IE5nR2x5cGhzZXRbXSk6IFZhbHVlUHJvdmlkZXJbXSB7XG4gIC8vIGlmIHRoZXJlIGFyZSBubyBnbHlwaHNldHMsIHRocm93IGFuIGVycm9yXG4gIGlmICghZ2x5cGhzZXRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHByb3ZpZGUgYXQgbGVhc3Qgb25lIGdseXBoc2V0LicpO1xuICB9XG5cbiAgLy8gdGhlIGRlZmF1bHQgZ2x5cGhzZXQgaXMgdGhlIGZpcnN0IG9uZVxuICBjb25zdCBkZWZhdWx0R2x5cGhzZXQgPSBnbHlwaHNldHNbMF0ubmFtZTtcblxuICByZXR1cm4gW3sgcHJvdmlkZTogTmdHbHlwaHNUb2tlbiwgdXNlVmFsdWU6IHsgZGVmYXVsdEdseXBoc2V0LCBnbHlwaHNldHMgfSB9XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nR2x5cGhzKCk6IE5nR2x5cGhzIHtcbiAgY29uc3QgZ2x5cGhzID0gaW5qZWN0KE5nR2x5cGhzVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgaWYgKCFnbHlwaHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnUGxlYXNlIHByb3ZpZGUgdGhlIGdseXBocyB1c2luZyB0aGUgcHJvdmlkZU5nR2x5cGhzKCkgZnVuY3Rpb24uJyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGdseXBocztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ0dseXBoc2V0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBiYXNlQ2xhc3M6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ0dseXBocyB7XG4gIGRlZmF1bHRHbHlwaHNldDogc3RyaW5nO1xuICBnbHlwaHNldHM6IE5nR2x5cGhzZXRbXTtcbn1cbiJdfQ==","export function coerceCssPixelValue(value) {\n return value == null ? '' : /^\\d+$/.test(value) ? `${value}px` : value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvY29lcmNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWE7SUFDL0MsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiAvXlxcZCskLy50ZXN0KHZhbHVlKSA/IGAke3ZhbHVlfXB4YCA6IHZhbHVlO1xufVxuIl19","import { ChangeDetectionStrategy, Component, booleanAttribute, computed, input, numberAttribute, } from '@angular/core';\nimport { injectNgGlyphsConfig } from '../../providers/glyph-config.provider';\nimport { injectNgGlyphs } from '../../providers/glyph.provider';\nimport { coerceCssPixelValue } from '../../utils/coercion';\nimport * as i0 from \"@angular/core\";\nexport class NgGlyph {\n constructor() {\n /**\n * Access the available glyphsets\n */\n this.glyphsets = injectNgGlyphs();\n /**\n * Access the default configuration\n */\n this.config = injectNgGlyphsConfig();\n /**\n * Define the name of the glyph to display\n */\n this.name = input.required(...(ngDevMode ? [{ debugName: \"name\" }] : []));\n /**\n * Define the glyphset to use\n */\n this.glyphset = input(this.glyphsets.defaultGlyphset, ...(ngDevMode ? [{ debugName: \"glyphset\" }] : []));\n /**\n * Define the optical size of the glyph\n */\n this.opticalSize = input(this.config.opticalSize, ...(ngDevMode ? [{ debugName: \"opticalSize\", transform: numberAttribute }] : [{\n transform: numberAttribute,\n }]));\n /**\n * Define the weight of the glyph\n */\n this.weight = input(this.config.weight, ...(ngDevMode ? [{ debugName: \"weight\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /**\n * Define the grade of the glyph\n */\n this.grade = input(this.config.grade, ...(ngDevMode ? [{ debugName: \"grade\", transform: numberAttribute }] : [{ transform: numberAttribute }]));\n /**\n * Define the fill of the glyph\n */\n this.fill = input(this.config.fill, ...(ngDevMode ? [{ debugName: \"fill\", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));\n /**\n * Define the size of the glyph\n */\n this.size = input(this.config.size, ...(ngDevMode ? [{ debugName: \"size\", transform: coerceCssPixelValue }] : [{ transform: coerceCssPixelValue }]));\n /**\n * Define the color of the glyph\n */\n this.color = input(this.config.color, ...(ngDevMode ? [{ debugName: \"color\" }] : []));\n /**\n * Derive the glyphset class from the glyphset name\n */\n this.glyphsetClass = computed(() => {\n const glyphset = this.glyphsets.glyphsets.find(glyphset => glyphset.name === this.glyphset());\n if (!glyphset) {\n throw new Error(`The glyphset \"${this.glyphset()}\" does not exist. Please provide a valid glyphset.`);\n }\n return glyphset.baseClass;\n }, ...(ngDevMode ? [{ debugName: \"glyphsetClass\" }] : []));\n /**\n * Define the font variation settings of the glyph\n */\n this.fontVariationSettings = computed(() => {\n return `'FILL' ${this.fill() ? 1 : 0}, 'wght' ${this.weight()}, 'GRAD' ${this.grade()}, 'opsz' ${this.opticalSize()}`;\n }, ...(ngDevMode ? [{ debugName: \"fontVariationSettings\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgGlyph, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.2\", type: NgGlyph, isStandalone: true, selector: \"ng-glyph\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: true, transformFunction: null }, glyphset: { classPropertyName: \"glyphset\", publicName: \"glyphset\", isSignal: true, isRequired: false, transformFunction: null }, opticalSize: { classPropertyName: \"opticalSize\", publicName: \"opticalSize\", isSignal: true, isRequired: false, transformFunction: null }, weight: { classPropertyName: \"weight\", publicName: \"weight\", isSignal: true, isRequired: false, transformFunction: null }, grade: { classPropertyName: \"grade\", publicName: \"grade\", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: \"fill\", publicName: \"fill\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class\": \"glyphsetClass()\", \"textContent\": \"name()\", \"style.--ng-glyph__size\": \"size()\", \"style.color\": \"color()\", \"style.font-variation-settings\": \"fontVariationSettings()\" } }, ngImport: i0, template: ``, isInline: true, styles: [\":host{display:inline-block;width:var(--ng-glyph__size);height:var(--ng-glyph__size);font-size:var(--ng-glyph__size);overflow:hidden}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgGlyph, decorators: [{\n type: Component,\n args: [{ selector: 'ng-glyph', standalone: true, template: ``, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[class]': 'glyphsetClass()',\n '[textContent]': 'name()',\n '[style.--ng-glyph__size]': 'size()',\n '[style.color]': 'color()',\n '[style.font-variation-settings]': 'fontVariationSettings()',\n }, styles: [\":host{display:inline-block;width:var(--ng-glyph__size);height:var(--ng-glyph__size);font-size:var(--ng-glyph__size);overflow:hidden}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x5cGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZ2x5cGgvZ2x5cGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsS0FBSyxFQUNMLGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQWdCM0QsTUFBTSxPQUFPLE9BQU87SUFkcEI7UUFlRTs7V0FFRztRQUNjLGNBQVMsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUU5Qzs7V0FFRztRQUNjLFdBQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBRWpEOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLCtDQUFVLENBQUM7UUFFekM7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxvREFBQyxDQUFDO1FBRTFEOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLCtDQUNsRCxTQUFTLEVBQUUsZUFBZSxPQUQwQjtnQkFDcEQsU0FBUyxFQUFFLGVBQWU7YUFDM0IsR0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSwwQ0FBSSxTQUFTLEVBQUUsZUFBZSxPQUE1QixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO1FBRTVFOztXQUVHO1FBQ00sVUFBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUsseUNBQUksU0FBUyxFQUFFLGVBQWUsT0FBNUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEdBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNNLFNBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLHdDQUFJLFNBQVMsRUFBRSxnQkFBZ0IsT0FBN0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBQyxDQUFDO1FBRXpFOztXQUVHO1FBQ00sU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksd0NBQUksU0FBUyxFQUFFLG1CQUFtQixPQUFoQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxHQUFDLENBQUM7UUFFNUU7O1dBRUc7UUFDTSxVQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxpREFBQyxDQUFDO1FBRTFDOztXQUVHO1FBQ2dCLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzVDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQzlDLENBQUM7WUFFRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYixpQkFBaUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxvREFBb0QsQ0FDckYsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDNUIsQ0FBQyx5REFBQyxDQUFDO1FBRUg7O1dBRUc7UUFDZ0IsMEJBQXFCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2RCxPQUFPLFVBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BCLFlBQVksSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztRQUNwRixDQUFDLGlFQUFDLENBQUM7S0FDSjs4R0E5RVksT0FBTztrR0FBUCxPQUFPLDZ1Q0FYUixFQUFFOzsyRkFXRCxPQUFPO2tCQWRuQixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFlBQ04sRUFBRSxtQkFFSyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLGVBQWUsRUFBRSxRQUFRO3dCQUN6QiwwQkFBMEIsRUFBRSxRQUFRO3dCQUNwQyxlQUFlLEVBQUUsU0FBUzt3QkFDMUIsaUNBQWlDLEVBQUUseUJBQXlCO3FCQUM3RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5nR2x5cGhzQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2dseXBoLWNvbmZpZy5wcm92aWRlcic7XG5pbXBvcnQgeyBpbmplY3ROZ0dseXBocyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9nbHlwaC5wcm92aWRlcic7XG5pbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1nbHlwaCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiBgYCxcbiAgc3R5bGVVcmw6ICcuL2dseXBoLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6ICdnbHlwaHNldENsYXNzKCknLFxuICAgICdbdGV4dENvbnRlbnRdJzogJ25hbWUoKScsXG4gICAgJ1tzdHlsZS4tLW5nLWdseXBoX19zaXplXSc6ICdzaXplKCknLFxuICAgICdbc3R5bGUuY29sb3JdJzogJ2NvbG9yKCknLFxuICAgICdbc3R5bGUuZm9udC12YXJpYXRpb24tc2V0dGluZ3NdJzogJ2ZvbnRWYXJpYXRpb25TZXR0aW5ncygpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdHbHlwaCB7XG4gIC8qKlxuICAgKiBBY2Nlc3MgdGhlIGF2YWlsYWJsZSBnbHlwaHNldHNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZ2x5cGhzZXRzID0gaW5qZWN0TmdHbHlwaHMoKTtcblxuICAvKipcbiAgICogQWNjZXNzIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0TmdHbHlwaHNDb25maWcoKTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBnbHlwaCB0byBkaXNwbGF5XG4gICAqL1xuICByZWFkb25seSBuYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGdseXBoc2V0IHRvIHVzZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2x5cGhzZXQgPSBpbnB1dCh0aGlzLmdseXBoc2V0cy5kZWZhdWx0R2x5cGhzZXQpO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIG9wdGljYWwgc2l6ZSBvZiB0aGUgZ2x5cGhcbiAgICovXG4gIHJlYWRvbmx5IG9wdGljYWxTaXplID0gaW5wdXQodGhpcy5jb25maWcub3B0aWNhbFNpemUsIHtcbiAgICB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgd2VpZ2h0IG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcmVhZG9ubHkgd2VpZ2h0ID0gaW5wdXQodGhpcy5jb25maWcud2VpZ2h0LCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGdyYWRlIG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhZGUgPSBpbnB1dCh0aGlzLmNvbmZpZy5ncmFkZSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBmaWxsIG9mIHRoZSBnbHlwaFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsbCA9IGlucHV0KHRoaXMuY29uZmlnLmZpbGwsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHNpemUgb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSBzaXplID0gaW5wdXQodGhpcy5jb25maWcuc2l6ZSwgeyB0cmFuc2Zvcm06IGNvZXJjZUNzc1BpeGVsVmFsdWUgfSk7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgY29sb3Igb2YgdGhlIGdseXBoXG4gICAqL1xuICByZWFkb25seSBjb2xvciA9IGlucHV0KHRoaXMuY29uZmlnLmNvbG9yKTtcblxuICAvKipcbiAgICogRGVyaXZlIHRoZSBnbHlwaHNldCBjbGFzcyBmcm9tIHRoZSBnbHlwaHNldCBuYW1lXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2x5cGhzZXRDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBnbHlwaHNldCA9IHRoaXMuZ2x5cGhzZXRzLmdseXBoc2V0cy5maW5kKFxuICAgICAgZ2x5cGhzZXQgPT4gZ2x5cGhzZXQubmFtZSA9PT0gdGhpcy5nbHlwaHNldCgpLFxuICAgICk7XG5cbiAgICBpZiAoIWdseXBoc2V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgZ2x5cGhzZXQgXCIke3RoaXMuZ2x5cGhzZXQoKX1cIiBkb2VzIG5vdCBleGlzdC4gUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBnbHlwaHNldC5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2x5cGhzZXQuYmFzZUNsYXNzO1xuICB9KTtcblxuICAvKipcbiAgICogRGVmaW5lIHRoZSBmb250IHZhcmlhdGlvbiBzZXR0aW5ncyBvZiB0aGUgZ2x5cGhcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBmb250VmFyaWF0aW9uU2V0dGluZ3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIGAnRklMTCcgJHtcbiAgICAgIHRoaXMuZmlsbCgpID8gMSA6IDBcbiAgICB9LCAnd2dodCcgJHt0aGlzLndlaWdodCgpfSwgJ0dSQUQnICR7dGhpcy5ncmFkZSgpfSwgJ29wc3onICR7dGhpcy5vcHRpY2FsU2l6ZSgpfWA7XG4gIH0pO1xufVxuIl19","/**\n * Helper function to create an object that represents a feature.\n */\nexport function createFeature(kind, providers) {\n return { ɵkind: kind, ɵproviders: providers };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2ZlYXR1cmVzL2ZlYXR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQTs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLElBQWlCLEVBQ2pCLFNBQXFCO0lBRXJCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZSA9XG4gIE5nSWNvbkZlYXR1cmU8TmdJY29uRmVhdHVyZUtpbmQuQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZT47XG5cbmV4cG9ydCB0eXBlIEV4Y2VwdGlvbkxvZ2dlckZlYXR1cmUgPVxuICBOZ0ljb25GZWF0dXJlPE5nSWNvbkZlYXR1cmVLaW5kLkV4Y2VwdGlvbkxvZ2dlckZlYXR1cmU+O1xuXG5leHBvcnQgdHlwZSBOZ0ljb25GZWF0dXJlcyA9XG4gIHwgQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZVxuICB8IEV4Y2VwdGlvbkxvZ2dlckZlYXR1cmU7XG5cbi8qKlxuICogVGhlIGxpc3Qgb2YgZmVhdHVyZXMgYXMgYW4gZW51bSB0byB1bmlxdWVseSB0eXBlIGVhY2ggZmVhdHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gTmdJY29uRmVhdHVyZUtpbmQge1xuICBDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlLFxuICBFeGNlcHRpb25Mb2dnZXJGZWF0dXJlLFxufVxuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIHJlcHJlc2VudCBhIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmdJY29uRmVhdHVyZTxGZWF0dXJlS2luZCBleHRlbmRzIE5nSWNvbkZlYXR1cmVLaW5kPiB7XG4gIMm1a2luZDogRmVhdHVyZUtpbmQ7XG4gIMm1cHJvdmlkZXJzOiBQcm92aWRlcltdO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGZWF0dXJlPEZlYXR1cmVLaW5kIGV4dGVuZHMgTmdJY29uRmVhdHVyZUtpbmQ+KFxuICBraW5kOiBGZWF0dXJlS2luZCxcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdLFxuKTogTmdJY29uRmVhdHVyZTxGZWF0dXJlS2luZD4ge1xuICByZXR1cm4geyDJtWtpbmQ6IGtpbmQsIMm1cHJvdmlkZXJzOiBwcm92aWRlcnMgfTtcbn1cbiJdfQ==","import { InjectionToken, inject } from '@angular/core';\nimport { createFeature, } from './features';\nexport const NgIconPreProcessorToken = new InjectionToken('Ng Icon Pre Processor');\nexport const NgIconPostProcessorToken = new InjectionToken('Ng Icon Post Processor');\nexport function injectNgIconPreProcessor() {\n return inject(NgIconPreProcessorToken, { optional: true }) ?? (icon => icon);\n}\nexport function injectNgIconPostProcessor() {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n return inject(NgIconPostProcessorToken, { optional: true }) ?? (() => { });\n}\nfunction preprocessIcon(icon) {\n // rename all style attributes to data-style to avoid being blocked by the CSP\n return icon.replace(/style\\s*=/g, 'data-style=');\n}\nfunction postprocessIcon(element) {\n // find all elements with a data-style attribute and get the styles from it\n // and apply them to the element using the style property and remove the data-style attribute\n const elements = element.querySelectorAll('[data-style]');\n for (const element of Array.from(elements)) {\n const styles = element.getAttribute('data-style');\n styles?.split(';').forEach(style => {\n const [property, value] = style.split(':');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.style[property.trim()] = value.trim();\n });\n element.removeAttribute('data-style');\n }\n}\n/**\n * Process icons in a way that is compliant with the content security policy\n */\nexport function withContentSecurityPolicy() {\n return createFeature(0 /* NgIconFeatureKind.ContentSecurityPolicyFeature */, [\n { provide: NgIconPreProcessorToken, useValue: preprocessIcon },\n { provide: NgIconPostProcessorToken, useValue: postprocessIcon },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9mZWF0dXJlcy9jc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUtwQixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQsdUJBQXVCLENBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDeEQsd0JBQXdCLENBQ3pCLENBQUM7QUFFRixNQUFNLFVBQVUsd0JBQXdCO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0lBQ3ZDLGdFQUFnRTtJQUNoRSxPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLElBQVk7SUFDbEMsOEVBQThFO0lBQzlFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQWlDO0lBQ3hELDJFQUEyRTtJQUMzRSw2RkFBNkY7SUFDN0YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUN2QyxjQUFjLENBQ2YsQ0FBQztJQUVGLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEQsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNDLDhEQUE4RDtZQUM5RCxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTyxhQUFhLHlEQUFpRDtRQUNuRSxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFO1FBQzlELEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUU7S0FDakUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmUsXG4gIE5nSWNvbkZlYXR1cmVLaW5kLFxuICBjcmVhdGVGZWF0dXJlLFxufSBmcm9tICcuL2ZlYXR1cmVzJztcblxuZXhwb3J0IHR5cGUgTmdJY29uUHJlUHJvY2Vzc29yID0gKGljb246IHN0cmluZykgPT4gc3RyaW5nO1xuZXhwb3J0IHR5cGUgTmdJY29uUG9zdFByb2Nlc3NvciA9IChlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpID0+IHZvaWQ7XG5cbmV4cG9ydCBjb25zdCBOZ0ljb25QcmVQcm9jZXNzb3JUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0ljb25QcmVQcm9jZXNzb3I+KFxuICAnTmcgSWNvbiBQcmUgUHJvY2Vzc29yJyxcbik7XG5cbmV4cG9ydCBjb25zdCBOZ0ljb25Qb3N0UHJvY2Vzc29yVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdJY29uUG9zdFByb2Nlc3Nvcj4oXG4gICdOZyBJY29uIFBvc3QgUHJvY2Vzc29yJyxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0ljb25QcmVQcm9jZXNzb3IoKTogTmdJY29uUHJlUHJvY2Vzc29yIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25QcmVQcm9jZXNzb3JUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyAoaWNvbiA9PiBpY29uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nSWNvblBvc3RQcm9jZXNzb3IoKTogTmdJY29uUG9zdFByb2Nlc3NvciB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcmV0dXJuIGluamVjdChOZ0ljb25Qb3N0UHJvY2Vzc29yVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gKCgpID0+IHt9KTtcbn1cblxuZnVuY3Rpb24gcHJlcHJvY2Vzc0ljb24oaWNvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gcmVuYW1lIGFsbCBzdHlsZSBhdHRyaWJ1dGVzIHRvIGRhdGEtc3R5bGUgdG8gYXZvaWQgYmVpbmcgYmxvY2tlZCBieSB0aGUgQ1NQXG4gIHJldHVybiBpY29uLnJlcGxhY2UoL3N0eWxlXFxzKj0vZywgJ2RhdGEtc3R5bGU9Jyk7XG59XG5cbmZ1bmN0aW9uIHBvc3Rwcm9jZXNzSWNvbihlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiB2b2lkIHtcbiAgLy8gZmluZCBhbGwgZWxlbWVudHMgd2l0aCBhIGRhdGEtc3R5bGUgYXR0cmlidXRlIGFuZCBnZXQgdGhlIHN0eWxlcyBmcm9tIGl0XG4gIC8vIGFuZCBhcHBseSB0aGVtIHRvIHRoZSBlbGVtZW50IHVzaW5nIHRoZSBzdHlsZSBwcm9wZXJ0eSBhbmQgcmVtb3ZlIHRoZSBkYXRhLXN0eWxlIGF0dHJpYnV0ZVxuICBjb25zdCBlbGVtZW50cyA9IGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+KFxuICAgICdbZGF0YS1zdHlsZV0nLFxuICApO1xuXG4gIGZvciAoY29uc3QgZWxlbWVudCBvZiBBcnJheS5mcm9tKGVsZW1lbnRzKSkge1xuICAgIGNvbnN0IHN0eWxlcyA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLXN0eWxlJyk7XG5cbiAgICBzdHlsZXM/LnNwbGl0KCc7JykuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICBjb25zdCBbcHJvcGVydHksIHZhbHVlXSA9IHN0eWxlLnNwbGl0KCc6Jyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgZWxlbWVudC5zdHlsZVtwcm9wZXJ0eS50cmltKCkgYXMgYW55XSA9IHZhbHVlLnRyaW0oKTtcbiAgICB9KTtcblxuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXN0eWxlJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9jZXNzIGljb25zIGluIGEgd2F5IHRoYXQgaXMgY29tcGxpYW50IHdpdGggdGhlIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQ29udGVudFNlY3VyaXR5UG9saWN5KCk6IENvbnRlbnRTZWN1cml0eVBvbGljeUZlYXR1cmUge1xuICByZXR1cm4gY3JlYXRlRmVhdHVyZShOZ0ljb25GZWF0dXJlS2luZC5Db250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlLCBbXG4gICAgeyBwcm92aWRlOiBOZ0ljb25QcmVQcm9jZXNzb3JUb2tlbiwgdXNlVmFsdWU6IHByZXByb2Nlc3NJY29uIH0sXG4gICAgeyBwcm92aWRlOiBOZ0ljb25Qb3N0UHJvY2Vzc29yVG9rZW4sIHVzZVZhbHVlOiBwb3N0cHJvY2Vzc0ljb24gfSxcbiAgXSk7XG59XG4iXX0=","import { InjectionToken, inject } from '@angular/core';\nimport { createFeature, } from './features';\nexport const LoggerToken = new InjectionToken('Ng Icon Logger');\n/**\n * The default logger implementation that logs to the console\n */\nexport class DefaultLogger {\n log(message) {\n console.log(message);\n }\n warn(message) {\n console.warn(message);\n }\n error(message) {\n console.error(message);\n }\n}\n/**\n * A logger implementation that throws an error on warnings and errors\n */\nexport class ExceptionLogger {\n log(message) {\n console.log(message);\n }\n warn(message) {\n throw new Error(message);\n }\n error(message) {\n throw new Error(message);\n }\n}\nexport function injectLogger() {\n return inject(LoggerToken, { optional: true }) ?? new DefaultLogger();\n}\n/**\n * Throw exceptions on warnings and errors\n */\nexport function withExceptionLogger() {\n return createFeature(1 /* NgIconFeatureKind.ExceptionLoggerFeature */, [\n { provide: LoggerToken, useClass: ExceptionLogger },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9mZWF0dXJlcy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUdMLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQVFwQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLEdBQUcsQ0FBQyxPQUFlO1FBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksQ0FBQyxPQUFlO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELEtBQUssQ0FBQyxPQUFlO1FBQ25CLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixHQUFHLENBQUMsT0FBZTtRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZTtRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZTtRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7QUFDeEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLGFBQWEsbURBQTJDO1FBQzdELEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFO0tBQ3BELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFeGNlcHRpb25Mb2dnZXJGZWF0dXJlLFxuICBOZ0ljb25GZWF0dXJlS2luZCxcbiAgY3JlYXRlRmVhdHVyZSxcbn0gZnJvbSAnLi9mZWF0dXJlcyc7XG5cbmludGVyZmFjZSBMb2dnZXIge1xuICBsb2cobWVzc2FnZTogc3RyaW5nKTogdm9pZDtcbiAgd2FybihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xuICBlcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgTG9nZ2VyVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9nZ2VyPignTmcgSWNvbiBMb2dnZXInKTtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBsb2dnZXIgaW1wbGVtZW50YXRpb24gdGhhdCBsb2dzIHRvIHRoZSBjb25zb2xlXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0TG9nZ2VyIGltcGxlbWVudHMgTG9nZ2VyIHtcbiAgbG9nKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKG1lc3NhZ2UpO1xuICB9XG4gIHdhcm4obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xuICB9XG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIGxvZ2dlciBpbXBsZW1lbnRhdGlvbiB0aGF0IHRocm93cyBhbiBlcnJvciBvbiB3YXJuaW5ncyBhbmQgZXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBFeGNlcHRpb25Mb2dnZXIgaW1wbGVtZW50cyBMb2dnZXIge1xuICBsb2cobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2cobWVzc2FnZSk7XG4gIH1cblxuICB3YXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TG9nZ2VyKCk6IExvZ2dlciB7XG4gIHJldHVybiBpbmplY3QoTG9nZ2VyVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gbmV3IERlZmF1bHRMb2dnZXIoKTtcbn1cblxuLyoqXG4gKiBUaHJvdyBleGNlcHRpb25zIG9uIHdhcm5pbmdzIGFuZCBlcnJvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhFeGNlcHRpb25Mb2dnZXIoKTogRXhjZXB0aW9uTG9nZ2VyRmVhdHVyZSB7XG4gIHJldHVybiBjcmVhdGVGZWF0dXJlKE5nSWNvbkZlYXR1cmVLaW5kLkV4Y2VwdGlvbkxvZ2dlckZlYXR1cmUsIFtcbiAgICB7IHByb3ZpZGU6IExvZ2dlclRva2VuLCB1c2VDbGFzczogRXhjZXB0aW9uTG9nZ2VyIH0sXG4gIF0pO1xufVxuIl19","import { InjectionToken, inject } from '@angular/core';\nexport const NgIconConfigToken = new InjectionToken('Ng Icon Config');\n/**\n * Provide the configuration for the icons\n * @param config The configuration to use\n */\nexport function provideNgIconsConfig(config, ...features) {\n return [\n {\n provide: NgIconConfigToken,\n useValue: config,\n },\n features.map(feature => feature.ɵproviders),\n ];\n}\n/**\n * Inject the configuration for the icons\n * @returns The configuration to use\n * @internal\n */\nexport function injectNgIconConfig() {\n return inject(NgIconConfigToken, { optional: true }) ?? {};\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1jb25maWcucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2ljb24tY29uZmlnLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWWpFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxnQkFBZ0IsQ0FDakIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsTUFBNkIsRUFDN0IsR0FBRyxRQUEwQjtJQUU3QixPQUFPO1FBQ0w7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO1FBQ0QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWNvbkZlYXR1cmVzIH0gZnJvbSAnLi9mZWF0dXJlcy9mZWF0dXJlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmdJY29uQ29uZmlnIHtcbiAgLyoqIERlZmluZSB0aGUgZGVmYXVsdCBzaXplIG9mIGljb25zICovXG4gIHNpemU/OiBzdHJpbmc7XG4gIC8qKiBEZWZpbmUgdGhlIGRlZmF1bHQgY29sb3Igb2YgaWNvbnMgKi9cbiAgY29sb3I/OiBzdHJpbmc7XG4gIC8qKiBEZWZpbmUgdGhlIGRlZmF1bHQgc3Ryb2tlIHdpZHRoIG9mIGljb25zICovXG4gIHN0cm9rZVdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgTmdJY29uQ29uZmlnVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TmdJY29uQ29uZmlnPihcbiAgJ05nIEljb24gQ29uZmlnJyxcbik7XG5cbi8qKlxuICogUHJvdmlkZSB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGljb25zXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU5nSWNvbnNDb25maWcoXG4gIGNvbmZpZzogUGFydGlhbDxOZ0ljb25Db25maWc+LFxuICAuLi5mZWF0dXJlczogTmdJY29uRmVhdHVyZXNbXVxuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTmdJY29uQ29uZmlnVG9rZW4sXG4gICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgIH0sXG4gICAgZmVhdHVyZXMubWFwKGZlYXR1cmUgPT4gZmVhdHVyZS7JtXByb3ZpZGVycyksXG4gIF07XG59XG5cbi8qKlxuICogSW5qZWN0IHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgaWNvbnNcbiAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0ljb25Db25maWcoKTogTmdJY29uQ29uZmlnIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25Db25maWdUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyB7fTtcbn1cbiJdfQ==","import { inject, InjectionToken } from '@angular/core';\nexport const NgIconLoaderToken = new InjectionToken('Ng Icon Loader Token');\n/**\n * Helper function to create an object that represents a Loader feature.\n */\nfunction loaderFeature(kind, providers) {\n return { kind: kind, providers: providers };\n}\nexport const NgIconCacheToken = new InjectionToken('Ng Icon Cache Token');\n/**\n * Add caching to the loader. This will prevent the loader from being called multiple times for the same icon name.\n */\nexport function withCaching() {\n return loaderFeature(0 /* NgIconLoaderFeatureKind.CachingFeature */, [\n { provide: NgIconCacheToken, useValue: new Map() },\n ]);\n}\n/**\n * Provide a function that will return the SVG content for a given icon name.\n * @param loader The function that will return the SVG content for a given icon name.\n * @param features The list of features to apply to the loader.\n * @returns The SVG content for a given icon name.\n */\nexport function provideNgIconLoader(loader, ...features) {\n return [\n { provide: NgIconLoaderToken, useValue: loader },\n features.map(feature => feature.providers),\n ];\n}\n/**\n * Inject the function that will return the SVG content for a given icon name.\n */\nexport function injectNgIconLoader() {\n return inject(NgIconLoaderToken, { optional: true });\n}\n/**\n * Inject the cache that will store the SVG content for a given icon name.\n */\nexport function injectNgIconLoaderCache() {\n return inject(NgIconCacheToken, { optional: true });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1sb2FkZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJvdmlkZXJzL2ljb24tbG9hZGVyLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBT2pFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxzQkFBc0IsQ0FDdkIsQ0FBQztBQWNGOztHQUVHO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLElBQWlCLEVBQ2pCLFNBQXFCO0lBRXJCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM5QyxDQUFDO0FBU0QsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQ2hELHFCQUFxQixDQUN0QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLGFBQWEsaURBQXlDO1FBQzNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxJQUFJLEdBQUcsRUFBa0IsRUFBRTtLQUNuRSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLE1BQW9CLEVBQ3BCLEdBQUcsUUFBZ0M7SUFFbkMsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7UUFDaEQsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7S0FDM0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgTmdJY29uTG9hZGVyID0gKFxuICBuYW1lOiBzdHJpbmcsXG4pID0+IFByb21pc2U8c3RyaW5nPiB8IE9ic2VydmFibGU8c3RyaW5nPiB8IHN0cmluZztcblxuZXhwb3J0IGNvbnN0IE5nSWNvbkxvYWRlclRva2VuID0gbmV3IEluamVjdGlvblRva2VuPE5nSWNvbkxvYWRlcj4oXG4gICdOZyBJY29uIExvYWRlciBUb2tlbicsXG4pO1xuXG4vKipcbiAqIFRoZSBsaXN0IG9mIGZlYXR1cmVzIGFzIGFuIGVudW0gdG8gdW5pcXVlbHkgdHlwZSBlYWNoIGZlYXR1cmUuXG4gKi9cbmNvbnN0IGVudW0gTmdJY29uTG9hZGVyRmVhdHVyZUtpbmQge1xuICBDYWNoaW5nRmVhdHVyZSxcbn1cblxuaW50ZXJmYWNlIE5nSWNvbkxvYWRlckZlYXR1cmU8RmVhdHVyZUtpbmQgZXh0ZW5kcyBOZ0ljb25Mb2FkZXJGZWF0dXJlS2luZD4ge1xuICBraW5kOiBGZWF0dXJlS2luZDtcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdO1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIExvYWRlciBmZWF0dXJlLlxuICovXG5mdW5jdGlvbiBsb2FkZXJGZWF0dXJlPEZlYXR1cmVLaW5kIGV4dGVuZHMgTmdJY29uTG9hZGVyRmVhdHVyZUtpbmQ+KFxuICBraW5kOiBGZWF0dXJlS2luZCxcbiAgcHJvdmlkZXJzOiBQcm92aWRlcltdLFxuKTogTmdJY29uTG9hZGVyRmVhdHVyZTxGZWF0dXJlS2luZD4ge1xuICByZXR1cm4geyBraW5kOiBraW5kLCBwcm92aWRlcnM6IHByb3ZpZGVycyB9O1xufVxuXG50eXBlIENhY2hpbmdGZWF0dXJlID1cbiAgTmdJY29uTG9hZGVyRmVhdHVyZTxOZ0ljb25Mb2FkZXJGZWF0dXJlS2luZC5DYWNoaW5nRmVhdHVyZT47XG5cbnR5cGUgTmdJY29uTG9hZGVyRmVhdHVyZXMgPSBDYWNoaW5nRmVhdHVyZTtcblxuZXhwb3J0IHR5cGUgTmdJY29uTG9hZGVyQ2FjaGUgPSBNYXA8c3RyaW5nLCBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4+O1xuXG5leHBvcnQgY29uc3QgTmdJY29uQ2FjaGVUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ0ljb25Mb2FkZXJDYWNoZT4oXG4gICdOZyBJY29uIENhY2hlIFRva2VuJyxcbik7XG5cbi8qKlxuICogQWRkIGNhY2hpbmcgdG8gdGhlIGxvYWRlci4gVGhpcyB3aWxsIHByZXZlbnQgdGhlIGxvYWRlciBmcm9tIGJlaW5nIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgaWNvbiBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aENhY2hpbmcoKTogQ2FjaGluZ0ZlYXR1cmUge1xuICByZXR1cm4gbG9hZGVyRmVhdHVyZShOZ0ljb25Mb2FkZXJGZWF0dXJlS2luZC5DYWNoaW5nRmVhdHVyZSwgW1xuICAgIHsgcHJvdmlkZTogTmdJY29uQ2FjaGVUb2tlbiwgdXNlVmFsdWU6IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCkgfSxcbiAgXSk7XG59XG5cbi8qKlxuICogUHJvdmlkZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqIEBwYXJhbSBsb2FkZXIgVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqIEBwYXJhbSBmZWF0dXJlcyBUaGUgbGlzdCBvZiBmZWF0dXJlcyB0byBhcHBseSB0byB0aGUgbG9hZGVyLlxuICogQHJldHVybnMgVGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVOZ0ljb25Mb2FkZXIoXG4gIGxvYWRlcjogTmdJY29uTG9hZGVyLFxuICAuLi5mZWF0dXJlczogTmdJY29uTG9hZGVyRmVhdHVyZXNbXVxuKSB7XG4gIHJldHVybiBbXG4gICAgeyBwcm92aWRlOiBOZ0ljb25Mb2FkZXJUb2tlbiwgdXNlVmFsdWU6IGxvYWRlciB9LFxuICAgIGZlYXR1cmVzLm1hcChmZWF0dXJlID0+IGZlYXR1cmUucHJvdmlkZXJzKSxcbiAgXTtcbn1cblxuLyoqXG4gKiBJbmplY3QgdGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCByZXR1cm4gdGhlIFNWRyBjb250ZW50IGZvciBhIGdpdmVuIGljb24gbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5nSWNvbkxvYWRlcigpOiBOZ0ljb25Mb2FkZXIgfCBudWxsIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25Mb2FkZXJUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBJbmplY3QgdGhlIGNhY2hlIHRoYXQgd2lsbCBzdG9yZSB0aGUgU1ZHIGNvbnRlbnQgZm9yIGEgZ2l2ZW4gaWNvbiBuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0TmdJY29uTG9hZGVyQ2FjaGUoKTogTmdJY29uTG9hZGVyQ2FjaGUgfCBudWxsIHtcbiAgcmV0dXJuIGluamVjdChOZ0ljb25DYWNoZVRva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xufVxuIl19","import { InjectionToken, inject } from '@angular/core';\n/**\n * Define the icons to use\n * @param icons The icons to provide\n */\nexport function provideIcons(icons) {\n return [\n {\n provide: NgIconsToken,\n useFactory: (parentIcons = inject(NgIconsToken, {\n optional: true,\n skipSelf: true,\n })) => ({\n ...parentIcons?.reduce((acc, icons) => ({ ...acc, ...icons }), {}),\n ...icons,\n }),\n multi: true,\n },\n ];\n}\nexport const NgIconsToken = new InjectionToken('Icons Token');\n/**\n * Inject the icons to use\n * @returns The icons to use\n * @internal\n */\nexport function injectNgIcons() {\n return inject(NgIconsToken, { optional: true }) ?? [];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9wcm92aWRlcnMvaWNvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQTZCO0lBQ3hELE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFVBQVUsRUFBRSxDQUNWLGNBQWMsTUFBTSxDQUEyQixZQUFZLEVBQUU7Z0JBQzNELFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxFQUNGLEVBQUUsQ0FBQyxDQUFDO2dCQUNKLEdBQUcsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNsRSxHQUFHLEtBQUs7YUFDVCxDQUFDO1lBQ0YsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUM1QyxhQUFhLENBQ2QsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGVmaW5lIHRoZSBpY29ucyB0byB1c2VcbiAqIEBwYXJhbSBpY29ucyBUaGUgaWNvbnMgdG8gcHJvdmlkZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUljb25zKGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTmdJY29uc1Rva2VuLFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBwYXJlbnRJY29ucyA9IGluamVjdDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+KE5nSWNvbnNUb2tlbiwge1xuICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICkgPT4gKHtcbiAgICAgICAgLi4ucGFyZW50SWNvbnM/LnJlZHVjZSgoYWNjLCBpY29ucykgPT4gKHsgLi4uYWNjLCAuLi5pY29ucyB9KSwge30pLFxuICAgICAgICAuLi5pY29ucyxcbiAgICAgIH0pLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXTtcbn1cblxuZXhwb3J0IGNvbnN0IE5nSWNvbnNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+KFxuICAnSWNvbnMgVG9rZW4nLFxuKTtcblxuLyoqXG4gKiBJbmplY3QgdGhlIGljb25zIHRvIHVzZVxuICogQHJldHVybnMgVGhlIGljb25zIHRvIHVzZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ0ljb25zKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5bXSB7XG4gIHJldHVybiBpbmplY3QoTmdJY29uc1Rva2VuLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IFtdO1xufVxuIl19","import { isObservable } from 'rxjs';\n/**\n * A loader may return a promise, an observable or a string. This function will coerce the result into a promise.\n * @returns\n */\nexport function coerceLoaderResult(result) {\n if (typeof result === 'string') {\n return Promise.resolve(result);\n }\n if (isObservable(result)) {\n // toPromise is deprecated, but we can't use lastValueFrom because it's not available in RxJS 6\n // so for now we'll just use toPromise\n return result.toPromise();\n }\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLE1BQXFEO0lBRXJELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3pCLCtGQUErRjtRQUMvRixzQ0FBc0M7UUFDdEMsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFxQixDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogQSBsb2FkZXIgbWF5IHJldHVybiBhIHByb21pc2UsIGFuIG9ic2VydmFibGUgb3IgYSBzdHJpbmcuIFRoaXMgZnVuY3Rpb24gd2lsbCBjb2VyY2UgdGhlIHJlc3VsdCBpbnRvIGEgcHJvbWlzZS5cbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VMb2FkZXJSZXN1bHQoXG4gIHJlc3VsdDogUHJvbWlzZTxzdHJpbmc+IHwgT2JzZXJ2YWJsZTxzdHJpbmc+IHwgc3RyaW5nLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXN1bHQpO1xuICB9XG5cbiAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XG4gICAgLy8gdG9Qcm9taXNlIGlzIGRlcHJlY2F0ZWQsIGJ1dCB3ZSBjYW4ndCB1c2UgbGFzdFZhbHVlRnJvbSBiZWNhdXNlIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiBSeEpTIDZcbiAgICAvLyBzbyBmb3Igbm93IHdlJ2xsIGp1c3QgdXNlIHRvUHJvbWlzZVxuICAgIHJldHVybiByZXN1bHQudG9Qcm9taXNlKCkgYXMgUHJvbWlzZTxzdHJpbmc+O1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","/**\n * Hyphenated to lowerCamelCase\n */\nexport function toPropertyName(str) {\n return str\n .replace(/([^a-zA-Z0-9])+(.)?/g, (_, __, chr) => chr ? chr.toUpperCase() : '')\n .replace(/[^a-zA-Z\\d]/g, '')\n .replace(/^([A-Z])/, m => m.toLowerCase());\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBVztJQUN4QyxPQUFPLEdBQUc7U0FDUCxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCO1NBQ0EsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEh5cGhlbmF0ZWQgdG8gbG93ZXJDYW1lbENhc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUHJvcGVydHlOYW1lKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKC8oW15hLXpBLVowLTldKSsoLik/L2csIChfLCBfXywgY2hyKSA9PlxuICAgICAgY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAnJyxcbiAgICApXG4gICAgLnJlcGxhY2UoL1teYS16QS1aXFxkXS9nLCAnJylcbiAgICAucmVwbGFjZSgvXihbQS1aXSkvLCBtID0+IG0udG9Mb3dlckNhc2UoKSk7XG59XG4iXX0=","import { isPlatformServer } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, HostAttributeToken, inject, Injector, input, PLATFORM_ID, Renderer2, runInInjectionContext, } from '@angular/core';\nimport { injectNgIconPostProcessor, injectNgIconPreProcessor, } from '../../providers/features/csp';\nimport { injectLogger } from '../../providers/features/logger';\nimport { injectNgIconConfig } from '../../providers/icon-config.provider';\nimport { injectNgIconLoader, injectNgIconLoaderCache, } from '../../providers/icon-loader.provider';\nimport { injectNgIcons } from '../../providers/icon.provider';\nimport { coerceLoaderResult } from '../../utils/async';\nimport { coerceCssPixelValue } from '../../utils/coercion';\nimport { toPropertyName } from '../../utils/format';\nimport * as i0 from \"@angular/core\";\nlet uniqueId = 0;\nexport class NgIcon {\n constructor() {\n /** Access the global icon config */\n this.config = injectNgIconConfig();\n /** Access the icons */\n this.icons = injectNgIcons();\n /** Access the icon loader if defined */\n this.loader = injectNgIconLoader();\n /** Access the icon cache if defined */\n this.cache = injectNgIconLoaderCache();\n /** Access the pre-processor */\n this.preProcessor = injectNgIconPreProcessor();\n /** Access the post-processor */\n this.postProcessor = injectNgIconPostProcessor();\n /** Access the injector */\n this.injector = inject(Injector);\n /** Access the renderer */\n this.renderer = inject(Renderer2);\n /** Determine the platform we are rendering on */\n this.platform = inject(PLATFORM_ID);\n /** Access the element ref */\n this.elementRef = inject(ElementRef);\n /** A unique id for this instance */\n this.uniqueId = uniqueId++;\n /** Access the logger */\n this.logger = injectLogger();\n /** Define the name of the icon to display */\n this.name = input(...(ngDevMode ? [undefined, { debugName: \"name\" }] : []));\n /** Define the svg of the icon to display */\n this.svg = input(...(ngDevMode ? [undefined, { debugName: \"svg\" }] : []));\n /** Define the size of the icon */\n this.size = input(this.config.size, ...(ngDevMode ? [{ debugName: \"size\", transform: coerceCssPixelValue }] : [{ transform: coerceCssPixelValue }]));\n /** Define the stroke-width of the icon */\n this.strokeWidth = input(this.config.strokeWidth, ...(ngDevMode ? [{ debugName: \"strokeWidth\" }] : []));\n /** Define the color of the icon */\n this.color = input(this.config.color, ...(ngDevMode ? [{ debugName: \"color\" }] : []));\n // update the icon anytime the name or svg changes\n effect(() => this.updateIcon());\n const ariaHidden = inject(new HostAttributeToken('aria-hidden'), {\n optional: true,\n });\n // If the user has not explicitly set aria-hidden, mark the icon as hidden, as this is\n // the right thing to do for the majority of icon use-cases.\n if (!ariaHidden) {\n this.elementRef.nativeElement.setAttribute('aria-hidden', 'true');\n }\n }\n ngOnDestroy() {\n this.svgElement = undefined;\n }\n async updateIcon() {\n const name = this.name();\n const svg = this.svg();\n // if the svg is defined, insert it into the template\n if (svg !== undefined) {\n this.setSvg(svg);\n return;\n }\n if (name === undefined) {\n return;\n }\n const propertyName = toPropertyName(name);\n for (const icons of [...this.icons].reverse()) {\n if (icons[propertyName]) {\n // insert the SVG into the template\n this.setSvg(icons[propertyName]);\n return;\n }\n }\n // if there is a loader defined, use it to load the icon\n if (this.loader) {\n const result = await this.requestIconFromLoader(name);\n // if the result is a string, insert the SVG into the template\n if (result !== null) {\n this.setSvg(result);\n return;\n }\n }\n // if there is no icon with this name warn the user as they probably forgot to import it\n this.logger.warn(`No icon named ${name} was found. You may need to import it using the withIcons function.`);\n }\n setSvg(svg) {\n // if we are on the server, simply innerHTML the svg as we don't have the\n // level of control over the DOM that we do on the client, in otherwords\n // the approach we take to insert the svg on the client will not work on the server\n if (isPlatformServer(this.platform)) {\n this.elementRef.nativeElement.innerHTML = svg;\n // mark this component as server side rendered\n this.elementRef.nativeElement.setAttribute('data-ng-icon-ssr', '');\n return;\n }\n // if this was previously server side rendered, we should check if the svg is the same\n // if it is, we don't need to do anything\n if (this.elementRef.nativeElement.hasAttribute('data-ng-icon-ssr')) {\n // if it is different, we need to remove the server side rendered flag\n this.elementRef.nativeElement.removeAttribute('data-ng-icon-ssr');\n // retrieve the svg element\n this.svgElement =\n this.elementRef.nativeElement.querySelector('svg') ??\n undefined;\n if (this.elementRef.nativeElement.innerHTML === svg) {\n return;\n }\n }\n // remove the old element\n if (this.svgElement) {\n this.renderer.removeChild(this.elementRef.nativeElement, this.svgElement);\n }\n // if the svg is empty, don't insert anything\n if (svg === '') {\n return;\n }\n const template = this.renderer.createElement('template');\n svg = this.replaceIds(svg);\n this.renderer.setProperty(template, 'innerHTML', this.preProcessor(svg));\n this.svgElement = template.content.firstElementChild;\n this.postProcessor(this.svgElement);\n // insert the element into the dom\n this.renderer.appendChild(this.elementRef.nativeElement, this.svgElement);\n }\n replaceIds(svg) {\n // ids are defined like ID_PLACEHOLDER_0, ID_PLACEHOLDER_1, etc.\n // we need to replace these with the actual ids e.g. ng-icon-0-0, ng-icon-0-1, etc.\n // if there are no ids, we don't need to do anything\n if (!svg.includes('ID_PLACEHOLDER_')) {\n return svg;\n }\n // we can just retain the trailing number as the prefix is always the same\n const regex = /ID_PLACEHOLDER_(\\d+)/g;\n // we need to keep track of the ids we have replaced\n const idMap = new Map();\n // find all the matches\n const matches = new Set(svg.match(regex));\n if (matches === null) {\n return svg;\n }\n // replace the ids\n for (const match of matches) {\n const id = match.replace('ID_PLACEHOLDER_', '');\n const placeholder = `ng-icon-${this.uniqueId}-${idMap.size}`;\n idMap.set(id, placeholder);\n svg = svg.replace(new RegExp(match, 'g'), placeholder);\n }\n return svg;\n }\n /**\n * Request the icon from the loader.\n * @param name The name of the icon to load.\n * @returns The SVG content for a given icon name.\n */\n requestIconFromLoader(name) {\n return new Promise(resolve => {\n runInInjectionContext(this.injector, async () => {\n // if we have a cache, check if the icon is already loaded (i.e, it is a string)\n if (this.cache) {\n const cachedResult = this.cache.get(name);\n if (typeof cachedResult === 'string') {\n resolve(cachedResult);\n return;\n }\n // it may be a promise, so we need to await it\n if (cachedResult instanceof Promise) {\n const result = await cachedResult;\n resolve(result);\n return;\n }\n }\n const promise = coerceLoaderResult(this.loader(name));\n // store the promise in the cache so if we get repeated calls (e.g. in a loop) before the loader has resolved\n // then don't call the loader function multiple times\n this.cache?.set(name, promise);\n // await the result of the promise\n const result = await promise;\n // if we have a cache, store the result\n this.cache?.set(name, result);\n resolve(result);\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.2\", type: NgIcon, isStandalone: true, selector: \"ng-icon\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, svg: { classPropertyName: \"svg\", publicName: \"svg\", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: \"strokeWidth\", publicName: \"strokeWidth\", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: \"color\", publicName: \"color\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"img\" }, properties: { \"style.--ng-icon__stroke-width\": \"strokeWidth()\", \"style.--ng-icon__size\": \"size()\", \"style.--ng-icon__color\": \"color()\" } }, ngImport: i0, template: '', isInline: true, styles: [\":host{display:inline-block;width:var(--ng-icon__size, 1em);height:var(--ng-icon__size, 1em);line-height:initial;vertical-align:initial;overflow:hidden}:host ::ng-deep svg{width:inherit;height:inherit;vertical-align:inherit}@layer ng-icon{:host{color:var(--ng-icon__color, currentColor)}}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIcon, decorators: [{\n type: Component,\n args: [{ selector: 'ng-icon', template: '', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n role: 'img',\n '[style.--ng-icon__stroke-width]': 'strokeWidth()',\n '[style.--ng-icon__size]': 'size()',\n '[style.--ng-icon__color]': 'color()',\n }, styles: [\":host{display:inline-block;width:var(--ng-icon__size, 1em);height:var(--ng-icon__size, 1em);line-height:initial;vertical-align:initial;overflow:hidden}:host ::ng-deep svg{width:inherit;height:inherit;vertical-align:inherit}@layer ng-icon{:host{color:var(--ng-icon__color, currentColor)}}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QscUJBQXFCLEdBQ3RCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsd0JBQXdCLEdBQ3pCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQ3hCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLcEQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZWpCLE1BQU0sT0FBTyxNQUFNO0lBeURqQjtRQXhEQSxvQ0FBb0M7UUFDbkIsV0FBTSxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFFL0MsdUJBQXVCO1FBQ04sVUFBSyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRXpD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LENBQUM7d0JBQ3RCLE9BQU87b0JBQ1QsQ0FBQztvQkFFRCw4Q0FBOEM7b0JBQzlDLElBQUksWUFBWSxZQUFZLE9BQU8sRUFBRSxDQUFDO3dCQUNwQyxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQzt3QkFDbEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNoQixPQUFPO29CQUNULENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBRXZELDZHQUE2RztnQkFDN0cscURBQXFEO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRS9CLGtDQUFrQztnQkFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUM7Z0JBRTdCLHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUU5QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBL09VLE1BQU07a0dBQU4sTUFBTSxnMkJBWFAsRUFBRTs7MkZBV0QsTUFBTTtrQkFibEIsU0FBUzsrQkFDRSxTQUFTLFlBQ1QsRUFBRSxjQUNBLElBQUksbUJBRUMsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixJQUFJLEVBQUUsS0FBSzt3QkFDWCxpQ0FBaUMsRUFBRSxlQUFlO3dCQUNsRCx5QkFBeUIsRUFBRSxRQUFRO3dCQUNuQywwQkFBMEIsRUFBRSxTQUFTO3FCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QXR0cmlidXRlVG9rZW4sXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjIsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pY29uL2ljb24tbmFtZSc7XG5pbXBvcnQge1xuICBpbmplY3ROZ0ljb25Qb3N0UHJvY2Vzc29yLFxuICBpbmplY3ROZ0ljb25QcmVQcm9jZXNzb3IsXG59IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9mZWF0dXJlcy9jc3AnO1xuaW1wb3J0IHsgaW5qZWN0TG9nZ2VyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2ZlYXR1cmVzL2xvZ2dlcic7XG5pbXBvcnQgeyBpbmplY3ROZ0ljb25Db25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvaWNvbi1jb25maWcucHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgaW5qZWN0TmdJY29uTG9hZGVyLFxuICBpbmplY3ROZ0ljb25Mb2FkZXJDYWNoZSxcbn0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2ljb24tbG9hZGVyLnByb3ZpZGVyJztcbmltcG9ydCB7IGluamVjdE5nSWNvbnMgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvaWNvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBjb2VyY2VMb2FkZXJSZXN1bHQgfSBmcm9tICcuLi8uLi91dGlscy9hc3luYyc7XG5pbXBvcnQgeyBjb2VyY2VDc3NQaXhlbFZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvY29lcmNpb24nO1xuaW1wb3J0IHsgdG9Qcm9wZXJ0eU5hbWUgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtYXQnO1xuXG4vLyBUaGlzIGlzIGEgdHlwZXNjcmlwdCB0eXBlIHRvIHByZXZlbnQgaW5mZXJlbmNlIGZyb20gY29sbGFwc2luZyB0aGUgdW5pb24gdHlwZSB0byBhIHN0cmluZyB0byBpbXByb3ZlIHR5cGUgc2FmZXR5XG5leHBvcnQgdHlwZSBJY29uVHlwZSA9IEljb25OYW1lIHwgKHN0cmluZyAmIHt9KTtcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctaWNvbicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc3R5bGVVcmxzOiBbJy4vaWNvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIHJvbGU6ICdpbWcnLFxuICAgICdbc3R5bGUuLS1uZy1pY29uX19zdHJva2Utd2lkdGhdJzogJ3N0cm9rZVdpZHRoKCknLFxuICAgICdbc3R5bGUuLS1uZy1pY29uX19zaXplXSc6ICdzaXplKCknLFxuICAgICdbc3R5bGUuLS1uZy1pY29uX19jb2xvcl0nOiAnY29sb3IoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIE5nSWNvbiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKiBBY2Nlc3MgdGhlIGdsb2JhbCBpY29uIGNvbmZpZyAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdE5nSWNvbkNvbmZpZygpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGljb25zICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaWNvbnMgPSBpbmplY3ROZ0ljb25zKCk7XG5cbiAgLyoqIEFjY2VzcyB0aGUgaWNvbiBsb2FkZXIgaWYgZGVmaW5lZCAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRlciA9IGluamVjdE5nSWNvbkxvYWRlcigpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGljb24gY2FjaGUgaWYgZGVmaW5lZCAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlID0gaW5qZWN0TmdJY29uTG9hZGVyQ2FjaGUoKTtcblxuICAvKiogQWNjZXNzIHRoZSBwcmUtcHJvY2Vzc29yICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlUHJvY2Vzc29yID0gaW5qZWN0TmdJY29uUHJlUHJvY2Vzc29yKCk7XG5cbiAgLyoqIEFjY2VzcyB0aGUgcG9zdC1wcm9jZXNzb3IgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwb3N0UHJvY2Vzc29yID0gaW5qZWN0TmdJY29uUG9zdFByb2Nlc3NvcigpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGluamVjdG9yICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIHJlbmRlcmVyICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAvKiogRGV0ZXJtaW5lIHRoZSBwbGF0Zm9ybSB3ZSBhcmUgcmVuZGVyaW5nIG9uICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm0gPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGVsZW1lbnQgcmVmICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgLyoqIEEgdW5pcXVlIGlkIGZvciB0aGlzIGluc3RhbmNlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pcXVlSWQgPSB1bmlxdWVJZCsrO1xuXG4gIC8qKiBBY2Nlc3MgdGhlIGxvZ2dlciAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdExvZ2dlcigpO1xuXG4gIC8qKiBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGljb24gdG8gZGlzcGxheSAqL1xuICByZWFkb25seSBuYW1lID0gaW5wdXQ8SWNvblR5cGU+KCk7XG5cbiAgLyoqIERlZmluZSB0aGUgc3ZnIG9mIHRoZSBpY29uIHRvIGRpc3BsYXkgKi9cbiAgcmVhZG9ubHkgc3ZnID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBEZWZpbmUgdGhlIHNpemUgb2YgdGhlIGljb24gKi9cbiAgcmVhZG9ubHkgc2l6ZSA9IGlucHV0KHRoaXMuY29uZmlnLnNpemUsIHsgdHJhbnNmb3JtOiBjb2VyY2VDc3NQaXhlbFZhbHVlIH0pO1xuXG4gIC8qKiBEZWZpbmUgdGhlIHN0cm9rZS13aWR0aCBvZiB0aGUgaWNvbiAqL1xuICByZWFkb25seSBzdHJva2VXaWR0aCA9IGlucHV0PHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZD4oXG4gICAgdGhpcy5jb25maWcuc3Ryb2tlV2lkdGgsXG4gICk7XG5cbiAgLyoqIERlZmluZSB0aGUgY29sb3Igb2YgdGhlIGljb24gKi9cbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dCh0aGlzLmNvbmZpZy5jb2xvcik7XG5cbiAgLyoqIFN0b3JlIHRoZSBpbnNlcnRlZCBTVkcgKi9cbiAgcHJpdmF0ZSBzdmdFbGVtZW50PzogU1ZHRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyB1cGRhdGUgdGhlIGljb24gYW55dGltZSB0aGUgbmFtZSBvciBzdmcgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB0aGlzLnVwZGF0ZUljb24oKSk7XG5cbiAgICBjb25zdCBhcmlhSGlkZGVuID0gaW5qZWN0KG5ldyBIb3N0QXR0cmlidXRlVG9rZW4oJ2FyaWEtaGlkZGVuJyksIHtcbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuICAgIC8vIElmIHRoZSB1c2VyIGhhcyBub3QgZXhwbGljaXRseSBzZXQgYXJpYS1oaWRkZW4sIG1hcmsgdGhlIGljb24gYXMgaGlkZGVuLCBhcyB0aGlzIGlzXG4gICAgLy8gdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGZvciB0aGUgbWFqb3JpdHkgb2YgaWNvbiB1c2UtY2FzZXMuXG4gICAgaWYgKCFhcmlhSGlkZGVuKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN2Z0VsZW1lbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUljb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZSgpO1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc3ZnKCk7XG5cbiAgICAvLyBpZiB0aGUgc3ZnIGlzIGRlZmluZWQsIGluc2VydCBpdCBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgIGlmIChzdmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZXRTdmcoc3ZnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydHlOYW1lID0gdG9Qcm9wZXJ0eU5hbWUobmFtZSk7XG5cbiAgICBmb3IgKGNvbnN0IGljb25zIG9mIFsuLi50aGlzLmljb25zXS5yZXZlcnNlKCkpIHtcbiAgICAgIGlmIChpY29uc1twcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIC8vIGluc2VydCB0aGUgU1ZHIGludG8gdGhlIHRlbXBsYXRlXG4gICAgICAgIHRoaXMuc2V0U3ZnKGljb25zW3Byb3BlcnR5TmFtZV0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlcmUgaXMgYSBsb2FkZXIgZGVmaW5lZCwgdXNlIGl0IHRvIGxvYWQgdGhlIGljb25cbiAgICBpZiAodGhpcy5sb2FkZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucmVxdWVzdEljb25Gcm9tTG9hZGVyKG5hbWUpO1xuXG4gICAgICAvLyBpZiB0aGUgcmVzdWx0IGlzIGEgc3RyaW5nLCBpbnNlcnQgdGhlIFNWRyBpbnRvIHRoZSB0ZW1wbGF0ZVxuICAgICAgaWYgKHJlc3VsdCAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLnNldFN2ZyhyZXN1bHQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlcmUgaXMgbm8gaWNvbiB3aXRoIHRoaXMgbmFtZSB3YXJuIHRoZSB1c2VyIGFzIHRoZXkgcHJvYmFibHkgZm9yZ290IHRvIGltcG9ydCBpdFxuICAgIHRoaXMubG9nZ2VyLndhcm4oXG4gICAgICBgTm8gaWNvbiBuYW1lZCAke25hbWV9IHdhcyBmb3VuZC4gWW91IG1heSBuZWVkIHRvIGltcG9ydCBpdCB1c2luZyB0aGUgd2l0aEljb25zIGZ1bmN0aW9uLmAsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3ZnKHN2Zzogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gaWYgd2UgYXJlIG9uIHRoZSBzZXJ2ZXIsIHNpbXBseSBpbm5lckhUTUwgdGhlIHN2ZyBhcyB3ZSBkb24ndCBoYXZlIHRoZVxuICAgIC8vIGxldmVsIG9mIGNvbnRyb2wgb3ZlciB0aGUgRE9NIHRoYXQgd2UgZG8gb24gdGhlIGNsaWVudCwgaW4gb3RoZXJ3b3Jkc1xuICAgIC8vIHRoZSBhcHByb2FjaCB3ZSB0YWtlIHRvIGluc2VydCB0aGUgc3ZnIG9uIHRoZSBjbGllbnQgd2lsbCBub3Qgd29yayBvbiB0aGUgc2VydmVyXG4gICAgaWYgKGlzUGxhdGZvcm1TZXJ2ZXIodGhpcy5wbGF0Zm9ybSkpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHN2ZztcbiAgICAgIC8vIG1hcmsgdGhpcyBjb21wb25lbnQgYXMgc2VydmVyIHNpZGUgcmVuZGVyZWRcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YS1uZy1pY29uLXNzcicsICcnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBpZiB0aGlzIHdhcyBwcmV2aW91c2x5IHNlcnZlciBzaWRlIHJlbmRlcmVkLCB3ZSBzaG91bGQgY2hlY2sgaWYgdGhlIHN2ZyBpcyB0aGUgc2FtZVxuICAgIC8vIGlmIGl0IGlzLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGF0YS1uZy1pY29uLXNzcicpKSB7XG4gICAgICAvLyBpZiBpdCBpcyBkaWZmZXJlbnQsIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBzZXJ2ZXIgc2lkZSByZW5kZXJlZCBmbGFnXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbmctaWNvbi1zc3InKTtcblxuICAgICAgLy8gcmV0cmlldmUgdGhlIHN2ZyBlbGVtZW50XG4gICAgICB0aGlzLnN2Z0VsZW1lbnQgPVxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPFNWR0VsZW1lbnQ+KCdzdmcnKSA/P1xuICAgICAgICB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPT09IHN2Zykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gcmVtb3ZlIHRoZSBvbGQgZWxlbWVudFxuICAgIGlmICh0aGlzLnN2Z0VsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3ZnRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHN2ZyBpcyBlbXB0eSwgZG9uJ3QgaW5zZXJ0IGFueXRoaW5nXG4gICAgaWYgKHN2ZyA9PT0gJycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTogSFRNTFRlbXBsYXRlRWxlbWVudCA9XG4gICAgICB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJyk7XG5cbiAgICBzdmcgPSB0aGlzLnJlcGxhY2VJZHMoc3ZnKTtcblxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGVtcGxhdGUsICdpbm5lckhUTUwnLCB0aGlzLnByZVByb2Nlc3NvcihzdmcpKTtcblxuICAgIHRoaXMuc3ZnRWxlbWVudCA9IHRlbXBsYXRlLmNvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQgYXMgU1ZHRWxlbWVudDtcbiAgICB0aGlzLnBvc3RQcm9jZXNzb3IodGhpcy5zdmdFbGVtZW50KTtcblxuICAgIC8vIGluc2VydCB0aGUgZWxlbWVudCBpbnRvIHRoZSBkb21cbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnN2Z0VsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBsYWNlSWRzKHN2Zzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBpZHMgYXJlIGRlZmluZWQgbGlrZSBJRF9QTEFDRUhPTERFUl8wLCBJRF9QTEFDRUhPTERFUl8xLCBldGMuXG4gICAgLy8gd2UgbmVlZCB0byByZXBsYWNlIHRoZXNlIHdpdGggdGhlIGFjdHVhbCBpZHMgZS5nLiBuZy1pY29uLTAtMCwgbmctaWNvbi0wLTEsIGV0Yy5cbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gaWRzLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nXG4gICAgaWYgKCFzdmcuaW5jbHVkZXMoJ0lEX1BMQUNFSE9MREVSXycpKSB7XG4gICAgICByZXR1cm4gc3ZnO1xuICAgIH1cblxuICAgIC8vIHdlIGNhbiBqdXN0IHJldGFpbiB0aGUgdHJhaWxpbmcgbnVtYmVyIGFzIHRoZSBwcmVmaXggaXMgYWx3YXlzIHRoZSBzYW1lXG4gICAgY29uc3QgcmVnZXggPSAvSURfUExBQ0VIT0xERVJfKFxcZCspL2c7XG5cbiAgICAvLyB3ZSBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGlkcyB3ZSBoYXZlIHJlcGxhY2VkXG4gICAgY29uc3QgaWRNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgLy8gZmluZCBhbGwgdGhlIG1hdGNoZXNcbiAgICBjb25zdCBtYXRjaGVzID0gbmV3IFNldChzdmcubWF0Y2gocmVnZXgpKTtcblxuICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gc3ZnO1xuICAgIH1cblxuICAgIC8vIHJlcGxhY2UgdGhlIGlkc1xuICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgICAgY29uc3QgaWQgPSBtYXRjaC5yZXBsYWNlKCdJRF9QTEFDRUhPTERFUl8nLCAnJyk7XG4gICAgICBjb25zdCBwbGFjZWhvbGRlciA9IGBuZy1pY29uLSR7dGhpcy51bmlxdWVJZH0tJHtpZE1hcC5zaXplfWA7XG4gICAgICBpZE1hcC5zZXQoaWQsIHBsYWNlaG9sZGVyKTtcbiAgICAgIHN2ZyA9IHN2Zy5yZXBsYWNlKG5ldyBSZWdFeHAobWF0Y2gsICdnJyksIHBsYWNlaG9sZGVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3ZnO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgdGhlIGljb24gZnJvbSB0aGUgbG9hZGVyLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaWNvbiB0byBsb2FkLlxuICAgKiBAcmV0dXJucyBUaGUgU1ZHIGNvbnRlbnQgZm9yIGEgZ2l2ZW4gaWNvbiBuYW1lLlxuICAgKi9cbiAgcHJpdmF0ZSByZXF1ZXN0SWNvbkZyb21Mb2FkZXIobmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgY2FjaGUsIGNoZWNrIGlmIHRoZSBpY29uIGlzIGFscmVhZHkgbG9hZGVkIChpLmUsIGl0IGlzIGEgc3RyaW5nKVxuICAgICAgICBpZiAodGhpcy5jYWNoZSkge1xuICAgICAgICAgIGNvbnN0IGNhY2hlZFJlc3VsdCA9IHRoaXMuY2FjaGUuZ2V0KG5hbWUpO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWRSZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXNvbHZlKGNhY2hlZFJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gaXQgbWF5IGJlIGEgcHJvbWlzZSwgc28gd2UgbmVlZCB0byBhd2FpdCBpdFxuICAgICAgICAgIGlmIChjYWNoZWRSZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjYWNoZWRSZXN1bHQ7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJvbWlzZSA9IGNvZXJjZUxvYWRlclJlc3VsdCh0aGlzLmxvYWRlciEobmFtZSkpO1xuXG4gICAgICAgIC8vIHN0b3JlIHRoZSBwcm9taXNlIGluIHRoZSBjYWNoZSBzbyBpZiB3ZSBnZXQgcmVwZWF0ZWQgY2FsbHMgKGUuZy4gaW4gYSBsb29wKSBiZWZvcmUgdGhlIGxvYWRlciBoYXMgcmVzb2x2ZWRcbiAgICAgICAgLy8gdGhlbiBkb24ndCBjYWxsIHRoZSBsb2FkZXIgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXNcbiAgICAgICAgdGhpcy5jYWNoZT8uc2V0KG5hbWUsIHByb21pc2UpO1xuXG4gICAgICAgIC8vIGF3YWl0IHRoZSByZXN1bHQgb2YgdGhlIHByb21pc2VcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvbWlzZTtcblxuICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgY2FjaGUsIHN0b3JlIHRoZSByZXN1bHRcbiAgICAgICAgdGhpcy5jYWNoZT8uc2V0KG5hbWUsIHJlc3VsdCk7XG5cbiAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Inject, NgModule } from '@angular/core';\nimport { NgIcon } from './components/icon/icon.component';\nimport { NgIconsToken, provideIcons } from './providers/icon.provider';\nimport * as i0 from \"@angular/core\";\nexport class NgIconsModule {\n constructor(icons) {\n if (Object.keys(icons).length === 0) {\n throw new Error('No icons have been provided. Ensure to include some icons by importing them using NgIconsModule.withIcons({ ... }).');\n }\n }\n /**\n * Define the icons that will be included in the application. This allows unused icons to\n * be tree-shaken away to reduce bundle size\n * @param icons The object containing the required icons\n */\n static withIcons(icons) {\n return { ngModule: NgIconsModule, providers: provideIcons(icons) };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIconsModule, deps: [{ token: NgIconsToken }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIconsModule, imports: [NgIcon], exports: [NgIcon] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIconsModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIconsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgIcon],\n exports: [NgIcon],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [NgIconsToken]\n }] }] });\nexport const NG_ICON_DIRECTIVES = [NgIcon];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaWNvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU12RSxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFrQyxLQUE2QjtRQUM3RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IscUhBQXFILENBQ3RILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUNkLEtBQTZCO1FBRTdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxDQUFDOzhHQWxCVSxhQUFhLGtCQUNKLFlBQVk7K0dBRHJCLGFBQWEsWUFIZCxNQUFNLGFBQ04sTUFBTTsrR0FFTCxhQUFhOzsyRkFBYixhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztvQkFDakIsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDO2lCQUNsQjs7MEJBRWMsTUFBTTsyQkFBQyxZQUFZOztBQW9CbEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUFNLENBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nSWNvbiB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWNvbnNUb2tlbiwgcHJvdmlkZUljb25zIH0gZnJvbSAnLi9wcm92aWRlcnMvaWNvbi5wcm92aWRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtOZ0ljb25dLFxuICBleHBvcnRzOiBbTmdJY29uXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdJY29uc01vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTmdJY29uc1Rva2VuKSBpY29uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgIGlmIChPYmplY3Qua2V5cyhpY29ucykubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdObyBpY29ucyBoYXZlIGJlZW4gcHJvdmlkZWQuIEVuc3VyZSB0byBpbmNsdWRlIHNvbWUgaWNvbnMgYnkgaW1wb3J0aW5nIHRoZW0gdXNpbmcgTmdJY29uc01vZHVsZS53aXRoSWNvbnMoeyAuLi4gfSkuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgaWNvbnMgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBhcHBsaWNhdGlvbi4gVGhpcyBhbGxvd3MgdW51c2VkIGljb25zIHRvXG4gICAqIGJlIHRyZWUtc2hha2VuIGF3YXkgdG8gcmVkdWNlIGJ1bmRsZSBzaXplXG4gICAqIEBwYXJhbSBpY29ucyBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVpcmVkIGljb25zXG4gICAqL1xuICBzdGF0aWMgd2l0aEljb25zKFxuICAgIGljb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nSWNvbnNNb2R1bGU+IHtcbiAgICByZXR1cm4geyBuZ01vZHVsZTogTmdJY29uc01vZHVsZSwgcHJvdmlkZXJzOiBwcm92aWRlSWNvbnMoaWNvbnMpIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IE5HX0lDT05fRElSRUNUSVZFUyA9IFtOZ0ljb25dIGFzIGNvbnN0O1xuIl19","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class NgIconStack {\n constructor() {\n /** The size of the child icons */\n this.size = input.required(...(ngDevMode ? [{ debugName: \"size\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIconStack, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.2\", type: NgIconStack, isStandalone: true, selector: \"ng-icon-stack\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { \"style.--ng-icon__size\": \"size()\" } }, ngImport: i0, template: '<ng-content />', isInline: true, styles: [\":host{display:inline-flex;justify-content:center;align-items:center;position:relative;width:var(--ng-icon__size);height:var(--ng-icon__size)}:host ::ng-deep ng-icon{position:absolute}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: NgIconStack, decorators: [{\n type: Component,\n args: [{ selector: 'ng-icon-stack', standalone: true, template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, host: {\n '[style.--ng-icon__size]': 'size()',\n }, styles: [\":host{display:inline-flex;justify-content:center;align-items:center;position:relative;width:var(--ng-icon__size);height:var(--ng-icon__size)}:host ::ng-deep ng-icon{position:absolute}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1zdGFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9pY29uLXN0YWNrL2ljb24tc3RhY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVkxRSxNQUFNLE9BQU8sV0FBVztJQVZ4QjtRQVdFLGtDQUFrQztRQUN6QixTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsK0NBQVUsQ0FBQztLQUMxQzs4R0FIWSxXQUFXO2tHQUFYLFdBQVcsc1FBUFosZ0JBQWdCOzsyRkFPZixXQUFXO2tCQVZ2QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFlBQ04sZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0oseUJBQXlCLEVBQUUsUUFBUTtxQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1pY29uLXN0YWNrJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCAvPicsXG4gIHN0eWxlVXJsOiAnLi9pY29uLXN0YWNrLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW3N0eWxlLi0tbmctaWNvbl9fc2l6ZV0nOiAnc2l6ZSgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTmdJY29uU3RhY2sge1xuICAvKiogVGhlIHNpemUgb2YgdGhlIGNoaWxkIGljb25zICovXG4gIHJlYWRvbmx5IHNpemUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctaWNvbnMtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL25nLWljb25zLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|