@skyux/theme 13.0.0 → 13.1.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.
@@ -1820,6 +1820,15 @@
1820
1820
  --sky-background-color-disabled: var(
1821
1821
  --sky-color-background-action-primary-disabled
1822
1822
  );
1823
+ --sky-background-color-selected: var(--sky-color-background-selected-soft);
1824
+ --sky-background-color-info: var(--sky-color-background-container-info);
1825
+ --sky-background-color-info-light: var(--sky-color-background-selected-soft);
1826
+ --sky-background-color-success: var(--sky-color-background-container-success);
1827
+ --sky-background-color-warning: var(--sky-color-background-container-warning);
1828
+ --sky-background-color-danger: var(--sky-color-background-container-danger);
1829
+ --sky-background-color-danger-dark: var(
1830
+ --sky-color-background-action-danger-base
1831
+ );
1823
1832
  --sky-border-color-neutral-medium: var(--sky-color-border-container-base);
1824
1833
  --sky-border-color-neutral-medium-dark: var(--sky-color-border-switch-base);
1825
1834
  --sky-category-color-green: var(--sky-color-category-green);
@@ -1835,6 +1844,7 @@
1835
1844
  --sky-highlight-color-danger: var(--sky-color-border-danger);
1836
1845
  --sky-text-color-default: var(--sky-color-text-default);
1837
1846
  --sky-text-color-deemphasized: var(--sky-color-text-deemphasized);
1847
+ --sky-text-color-on-dark: var(--sky-color-text-inverse);
1838
1848
  --sky-text-color-action-primary: var(--sky-color-text-action);
1839
1849
  --sky-text-color-action-primary-hover: darken(
1840
1850
  var(--sky-color-text-action),
@@ -1862,6 +1872,9 @@
1862
1872
  --sky-background-color-item-selected: var(
1863
1873
  --sky-color-background-selected-soft
1864
1874
  );
1875
+ /* headings */
1876
+ --sky-theme-modern-font-heading-4-weight: var(--sky-font-style-heading-4);
1877
+ --sky-theme-modern-font-heading-5-weight: var(--sky-font-style-heading-5);
1865
1878
  /* switch */
1866
1879
  --sky-switch-size: 26px;
1867
1880
  /* viewkeeper */
@@ -1,32 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, DOCUMENT, Optional, Input, Directive, NgModule, ChangeDetectorRef, HostBinding, NgZone, DestroyRef, makeEnvironmentProviders, provideAppInitializer, RendererFactory2 } from '@angular/core';
3
- import { getIconManifest } from '@skyux/icons';
2
+ import { inject, DOCUMENT, Injectable, Optional, Input, Directive, NgModule, ChangeDetectorRef, HostBinding, NgZone, DestroyRef, makeEnvironmentProviders, provideAppInitializer, RendererFactory2 } from '@angular/core';
4
3
  import FontFaceObserver from 'fontfaceobserver';
5
4
  import { take, takeUntil } from 'rxjs/operators';
6
5
  import { ReplaySubject, Subject } from 'rxjs';
7
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
7
 
9
- /**
10
- * Provides a method for retrieving metadata about the SKY UX icon font.
11
- * @internal
12
- */
13
- class SkyThemeIconManifestService {
14
- /**
15
- * Gets metadata about the SKY UX icon font.
16
- */
17
- getManifest() {
18
- return getIconManifest();
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyThemeIconManifestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
21
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyThemeIconManifestService, providedIn: 'root' }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SkyThemeIconManifestService, decorators: [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root',
27
- }]
28
- }] });
29
-
30
8
  /**
31
9
  * Defines properties of a SKY UX theme mode.
32
10
  */
@@ -1182,5 +1160,5 @@ function provideInitialTheme(name = 'default', options) {
1182
1160
  * Generated bundle index. Do not edit.
1183
1161
  */
1184
1162
 
1185
- export { SkyAppStyleLoader, SkyAppViewportService, SkyTheme, SkyThemeBrand, SkyThemeComponentClassDirective, SkyThemeIconManifestService, SkyThemeMode, SkyThemeModule, SkyThemeService, SkyThemeSettings, SkyThemeSpacing, provideInitialTheme, SkyThemeDirective as λ1, SkyThemeClassDirective as λ2, SkyThemeIfDirective as λ3 };
1163
+ export { SkyAppStyleLoader, SkyAppViewportService, SkyTheme, SkyThemeBrand, SkyThemeComponentClassDirective, SkyThemeMode, SkyThemeModule, SkyThemeService, SkyThemeSettings, SkyThemeSpacing, provideInitialTheme, SkyThemeDirective as λ1, SkyThemeClassDirective as λ2, SkyThemeIfDirective as λ3 };
1186
1164
  //# sourceMappingURL=skyux-theme.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-theme.mjs","sources":["../tmp-esm2022/lib/icons/icon-manifest.service.js","../tmp-esm2022/lib/theming/theme-mode.js","../tmp-esm2022/lib/theming/theme-spacing.js","../tmp-esm2022/lib/theming/theme.js","../tmp-esm2022/lib/theming/theme-brand.js","../tmp-esm2022/lib/theming/theme-brand.service.js","../tmp-esm2022/lib/theming/theme-settings.js","../tmp-esm2022/lib/theming/theme.service.js","../tmp-esm2022/lib/style-loader.js","../tmp-esm2022/lib/theming/theme-class.directive.js","../tmp-esm2022/lib/theming/theme-if.directive.js","../tmp-esm2022/lib/theming/theme.directive.js","../tmp-esm2022/lib/theme.module.js","../tmp-esm2022/lib/theming/theme-component-class.directive.js","../tmp-esm2022/lib/viewport/viewport.service.js","../tmp-esm2022/lib/providers/provide-initial-theme.js","../tmp-esm2022/skyux-theme.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { getIconManifest } from '@skyux/icons';\nimport * as i0 from \"@angular/core\";\n/**\n * Provides a method for retrieving metadata about the SKY UX icon font.\n * @internal\n */\nexport class SkyThemeIconManifestService {\n /**\n * Gets metadata about the SKY UX icon font.\n */\n getManifest() {\n return getIconManifest();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIconManifestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIconManifestService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIconManifestService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1tYW5pZmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvaWNvbnMvaWNvbi1tYW5pZmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFJL0M7OztHQUdHO0FBSUgsTUFBTSxPQUFPLDJCQUEyQjtJQUN0Qzs7T0FFRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQU5VLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRJY29uTWFuaWZlc3QgfSBmcm9tICdAc2t5dXgvaWNvbnMnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZUljb25NYW5pZmVzdCB9IGZyb20gJy4vaWNvbi1tYW5pZmVzdCc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBtZXRob2QgZm9yIHJldHJpZXZpbmcgbWV0YWRhdGEgYWJvdXQgdGhlIFNLWSBVWCBpY29uIGZvbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRoZW1lSWNvbk1hbmlmZXN0U2VydmljZSB7XG4gIC8qKlxuICAgKiBHZXRzIG1ldGFkYXRhIGFib3V0IHRoZSBTS1kgVVggaWNvbiBmb250LlxuICAgKi9cbiAgcHVibGljIGdldE1hbmlmZXN0KCk6IFNreVRoZW1lSWNvbk1hbmlmZXN0IHtcbiAgICByZXR1cm4gZ2V0SWNvbk1hbmlmZXN0KCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Defines properties of a SKY UX theme mode.\n */\nexport class SkyThemeMode {\n /**\n * The preset themes available in SKY UX.\n */\n static { this.presets = {\n light: new SkyThemeMode('light', 'sky-theme-mode-light'),\n dark: new SkyThemeMode('dark', 'sky-theme-mode-dark'),\n }; }\n /**\n * Creates a new theme mode.\n * @param name The name of the theme mode.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme mode.\n */\n constructor(name, hostClass) {\n this.name = name;\n this.hostClass = hostClass;\n }\n /**\n * @internal\n * Serializes the theme mode to a JSON-compatible object.\n */\n serialize() {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyThemeMode.presets).find(([, preset]) => preset === this);\n if (presetEntry) {\n return {\n name: this.name,\n isPreset: true,\n };\n }\n return {\n name: this.name,\n hostClass: this.hostClass,\n };\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeMode instance.\n */\n static deserialize(data) {\n if (data.isPreset) {\n const preset = SkyThemeMode.presets[data.name];\n if (preset) {\n return preset;\n }\n throw new Error(`Unknown theme mode preset: ${data.name}`);\n }\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset theme modes');\n }\n return new SkyThemeMode(data.name, data.hostClass);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOztPQUVHO2FBQ29CLFlBQU8sR0FBRztRQUMvQixLQUFLLEVBQUUsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO1FBQ3hELElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7S0FDdEQsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsWUFDa0IsSUFBWSxFQUNaLFNBQWlCO1FBRGpCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ2hDLENBQUM7SUFFSjs7O09BR0c7SUFDSSxTQUFTO1FBQ2QscUNBQXFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0QsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQ2hDLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFzQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FDVixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUF5QyxDQUFDLENBQUM7WUFFdkUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lUaGVtZU1vZGVEYXRhIH0gZnJvbSAnLi90aGVtZS1zZXJpYWxpemF0aW9uLXR5cGVzJztcblxuLyoqXG4gKiBEZWZpbmVzIHByb3BlcnRpZXMgb2YgYSBTS1kgVVggdGhlbWUgbW9kZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRoZW1lTW9kZSB7XG4gIC8qKlxuICAgKiBUaGUgcHJlc2V0IHRoZW1lcyBhdmFpbGFibGUgaW4gU0tZIFVYLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBwcmVzZXRzID0ge1xuICAgIGxpZ2h0OiBuZXcgU2t5VGhlbWVNb2RlKCdsaWdodCcsICdza3ktdGhlbWUtbW9kZS1saWdodCcpLFxuICAgIGRhcms6IG5ldyBTa3lUaGVtZU1vZGUoJ2RhcmsnLCAnc2t5LXRoZW1lLW1vZGUtZGFyaycpLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRoZW1lIG1vZGUuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZSBtb2RlLlxuICAgKiBAcGFyYW0gaG9zdENsYXNzIFRoZSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50IHdoaWNoIGNoaWxkIGNvbXBvbmVudHMgc2hvdWxkIHJlZmVyZW5jZSB3aGVuXG4gICAqIGFkanVzdGluZyBmb3IgYSBzcGVjaWZpZWQgdGhlbWUgbW9kZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGhvc3RDbGFzczogc3RyaW5nLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBTZXJpYWxpemVzIHRoZSB0aGVtZSBtb2RlIHRvIGEgSlNPTi1jb21wYXRpYmxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogU2t5VGhlbWVNb2RlRGF0YSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpbnN0YW5jZSBpcyBhIHByZXNldFxuICAgIGNvbnN0IHByZXNldEVudHJ5ID0gT2JqZWN0LmVudHJpZXMoU2t5VGhlbWVNb2RlLnByZXNldHMpLmZpbmQoXG4gICAgICAoWywgcHJlc2V0XSkgPT4gcHJlc2V0ID09PSB0aGlzLFxuICAgICk7XG5cbiAgICBpZiAocHJlc2V0RW50cnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgaXNQcmVzZXQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBob3N0Q2xhc3M6IHRoaXMuaG9zdENsYXNzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERlc2VyaWFsaXplcyBhIEpTT04gb2JqZWN0IHRvIGEgU2t5VGhlbWVNb2RlIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShkYXRhOiBTa3lUaGVtZU1vZGVEYXRhKTogU2t5VGhlbWVNb2RlIHtcbiAgICBpZiAoZGF0YS5pc1ByZXNldCkge1xuICAgICAgY29uc3QgcHJlc2V0ID1cbiAgICAgICAgU2t5VGhlbWVNb2RlLnByZXNldHNbZGF0YS5uYW1lIGFzIGtleW9mIHR5cGVvZiBTa3lUaGVtZU1vZGUucHJlc2V0c107XG5cbiAgICAgIGlmIChwcmVzZXQpIHtcbiAgICAgICAgcmV0dXJuIHByZXNldDtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRoZW1lIG1vZGUgcHJlc2V0OiAke2RhdGEubmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEuaG9zdENsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hvc3RDbGFzcyBpcyByZXF1aXJlZCBmb3Igbm9uLXByZXNldCB0aGVtZSBtb2RlcycpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5VGhlbWVNb2RlKGRhdGEubmFtZSwgZGF0YS5ob3N0Q2xhc3MpO1xuICB9XG59XG4iXX0=","/**\n * Defines properties of SKY UX theme spacing.\n */\nexport class SkyThemeSpacing {\n /**\n * The preset spacing available in SKY UX.\n */\n static { this.presets = {\n standard: new SkyThemeSpacing('standard', 'sky-theme-spacing-standard'),\n compact: new SkyThemeSpacing('compact', 'sky-theme-spacing-compact'),\n }; }\n /**\n * Creates a new theme spacing.\n * @param name The name of the theme spacing.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme spacing.\n */\n constructor(name, hostClass) {\n this.name = name;\n this.hostClass = hostClass;\n }\n /**\n * @internal\n * Serializes the theme spacing to a JSON-compatible object.\n */\n serialize() {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyThemeSpacing.presets).find(([, preset]) => preset === this);\n if (presetEntry) {\n return {\n name: this.name,\n isPreset: true,\n };\n }\n return {\n name: this.name,\n hostClass: this.hostClass,\n };\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeSpacing instance.\n */\n static deserialize(data) {\n if (data.isPreset) {\n const preset = SkyThemeSpacing.presets[data.name];\n if (preset) {\n return preset;\n }\n throw new Error(`Unknown theme spacing preset: ${data.name}`);\n }\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset theme spacing');\n }\n return new SkyThemeSpacing(data.name, data.hostClass);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3BhY2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtc3BhY2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCOztPQUVHO2FBQ29CLFlBQU8sR0FBRztRQUMvQixRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsVUFBVSxFQUFFLDRCQUE0QixDQUFDO1FBQ3ZFLE9BQU8sRUFBRSxJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUUsMkJBQTJCLENBQUM7S0FDckUsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsWUFDa0IsSUFBWSxFQUNaLFNBQWlCO1FBRGpCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ2hDLENBQUM7SUFFSjs7O09BR0c7SUFDSSxTQUFTO1FBQ2QscUNBQXFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUQsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQ2hDLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUF5QjtRQUNqRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FDVixlQUFlLENBQUMsT0FBTyxDQUNyQixJQUFJLENBQUMsSUFBNEMsQ0FDbEQsQ0FBQztZQUVKLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztZQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWVTcGFjaW5nRGF0YSB9IGZyb20gJy4vdGhlbWUtc2VyaWFsaXphdGlvbi10eXBlcyc7XG5cbi8qKlxuICogRGVmaW5lcyBwcm9wZXJ0aWVzIG9mIFNLWSBVWCB0aGVtZSBzcGFjaW5nLlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVTcGFjaW5nIHtcbiAgLyoqXG4gICAqIFRoZSBwcmVzZXQgc3BhY2luZyBhdmFpbGFibGUgaW4gU0tZIFVYLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBwcmVzZXRzID0ge1xuICAgIHN0YW5kYXJkOiBuZXcgU2t5VGhlbWVTcGFjaW5nKCdzdGFuZGFyZCcsICdza3ktdGhlbWUtc3BhY2luZy1zdGFuZGFyZCcpLFxuICAgIGNvbXBhY3Q6IG5ldyBTa3lUaGVtZVNwYWNpbmcoJ2NvbXBhY3QnLCAnc2t5LXRoZW1lLXNwYWNpbmctY29tcGFjdCcpLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRoZW1lIHNwYWNpbmcuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZSBzcGFjaW5nLlxuICAgKiBAcGFyYW0gaG9zdENsYXNzIFRoZSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50IHdoaWNoIGNoaWxkIGNvbXBvbmVudHMgc2hvdWxkIHJlZmVyZW5jZSB3aGVuXG4gICAqIGFkanVzdGluZyBmb3IgYSBzcGVjaWZpZWQgdGhlbWUgc3BhY2luZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGhvc3RDbGFzczogc3RyaW5nLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBTZXJpYWxpemVzIHRoZSB0aGVtZSBzcGFjaW5nIHRvIGEgSlNPTi1jb21wYXRpYmxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogU2t5VGhlbWVTcGFjaW5nRGF0YSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpbnN0YW5jZSBpcyBhIHByZXNldFxuICAgIGNvbnN0IHByZXNldEVudHJ5ID0gT2JqZWN0LmVudHJpZXMoU2t5VGhlbWVTcGFjaW5nLnByZXNldHMpLmZpbmQoXG4gICAgICAoWywgcHJlc2V0XSkgPT4gcHJlc2V0ID09PSB0aGlzLFxuICAgICk7XG5cbiAgICBpZiAocHJlc2V0RW50cnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgaXNQcmVzZXQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBob3N0Q2xhc3M6IHRoaXMuaG9zdENsYXNzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERlc2VyaWFsaXplcyBhIEpTT04gb2JqZWN0IHRvIGEgU2t5VGhlbWVTcGFjaW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShkYXRhOiBTa3lUaGVtZVNwYWNpbmdEYXRhKTogU2t5VGhlbWVTcGFjaW5nIHtcbiAgICBpZiAoZGF0YS5pc1ByZXNldCkge1xuICAgICAgY29uc3QgcHJlc2V0ID1cbiAgICAgICAgU2t5VGhlbWVTcGFjaW5nLnByZXNldHNbXG4gICAgICAgICAgZGF0YS5uYW1lIGFzIGtleW9mIHR5cGVvZiBTa3lUaGVtZVNwYWNpbmcucHJlc2V0c1xuICAgICAgICBdO1xuXG4gICAgICBpZiAocHJlc2V0KSB7XG4gICAgICAgIHJldHVybiBwcmVzZXQ7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0aGVtZSBzcGFjaW5nIHByZXNldDogJHtkYXRhLm5hbWV9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhLmhvc3RDbGFzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdob3N0Q2xhc3MgaXMgcmVxdWlyZWQgZm9yIG5vbi1wcmVzZXQgdGhlbWUgc3BhY2luZycpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5VGhlbWVTcGFjaW5nKGRhdGEubmFtZSwgZGF0YS5ob3N0Q2xhc3MpO1xuICB9XG59XG4iXX0=","import { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSpacing } from './theme-spacing';\n/**\n * Defines properties of a SKY UX theme.\n */\nexport class SkyTheme {\n /**\n * The preset themes available in SKY UX.\n */\n static { this.presets = {\n default: new SkyTheme('default', 'sky-theme-default', [SkyThemeMode.presets.light], [SkyThemeSpacing.presets.standard]),\n modern: new SkyTheme('modern', 'sky-theme-modern', [SkyThemeMode.presets.light, SkyThemeMode.presets.dark], [SkyThemeSpacing.presets.standard, SkyThemeSpacing.presets.compact], true),\n }; }\n /**\n * Creates a new theme.\n * @param name The name of the theme.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme.\n * @param supportedModes An array of modes supported by the theme.\n * @param supportedSpacing An array of spacing modes supported by the theme.\n */\n constructor(name, hostClass, supportedModes, supportedSpacing = [SkyThemeSpacing.presets.standard], supportsBranding = false) {\n this.name = name;\n this.hostClass = hostClass;\n this.supportedModes = supportedModes;\n this.supportedSpacing = supportedSpacing;\n this.supportsBranding = supportsBranding;\n }\n /**\n * @internal\n * Serializes the theme to a JSON-compatible object.\n */\n serialize() {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyTheme.presets).find(([, preset]) => preset === this);\n if (presetEntry) {\n return {\n name: this.name,\n supportedModes: this.supportedModes.map((mode) => mode.serialize()),\n isPreset: true,\n };\n }\n const result = {\n name: this.name,\n hostClass: this.hostClass,\n supportedModes: this.supportedModes.map((mode) => mode.serialize()),\n };\n // Only include supportedSpacing if it's not the default\n if (this.supportedSpacing.length !== 1 ||\n this.supportedSpacing[0] !== SkyThemeSpacing.presets.standard) {\n result.supportedSpacing = this.supportedSpacing.map((spacing) => spacing.serialize());\n }\n // Only include supportsBranding if it's true\n if (this.supportsBranding) {\n result.supportsBranding = this.supportsBranding;\n }\n return result;\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyTheme instance.\n */\n static deserialize(data) {\n if (data.isPreset) {\n const preset = SkyTheme.presets[data.name];\n if (preset) {\n return preset;\n }\n throw new Error(`Unknown theme preset: ${data.name}`);\n }\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset themes');\n }\n const supportedModes = data.supportedModes.map((modeData) => SkyThemeMode.deserialize(modeData));\n const supportedSpacing = data.supportedSpacing\n ? data.supportedSpacing.map((spacingData) => SkyThemeSpacing.deserialize(spacingData))\n : [SkyThemeSpacing.presets.standard];\n return new SkyTheme(data.name, data.hostClass, supportedModes, supportedSpacing, data.supportsBranding ?? false);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL2xpYi90aGVtaW5nL3RoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFDbkI7O09BRUc7YUFDb0IsWUFBTyxHQUFHO1FBQy9CLE9BQU8sRUFBRSxJQUFJLFFBQVEsQ0FDbkIsU0FBUyxFQUNULG1CQUFtQixFQUNuQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQzVCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDbkM7UUFDRCxNQUFNLEVBQUUsSUFBSSxRQUFRLENBQ2xCLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUN2RCxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQ25FLElBQUksQ0FDTDtLQUNGLENBQUM7SUFFRjs7Ozs7OztPQU9HO0lBQ0gsWUFDa0IsSUFBWSxFQUNaLFNBQWlCLEVBQ2pCLGNBQThCLEVBQzlCLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQ3JELG1CQUFtQixLQUFLO1FBSnhCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFDO1FBQ3JELHFCQUFnQixHQUFoQixn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QUFJLEtBQUssQ0FDL0IsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lUaGVtZU1vZGUgfSBmcm9tICcuL3RoZW1lLW1vZGUnO1xuaW1wb3J0IHsgU2t5VGhlbWVEYXRhIH0gZnJvbSAnLi90aGVtZS1zZXJpYWxpemF0aW9uLXR5cGVzJztcbmltcG9ydCB7IFNreVRoZW1lU3BhY2luZyB9IGZyb20gJy4vdGhlbWUtc3BhY2luZyc7XG5cbi8qKlxuICogRGVmaW5lcyBwcm9wZXJ0aWVzIG9mIGEgU0tZIFVYIHRoZW1lLlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGhlbWUge1xuICAvKipcbiAgICogVGhlIHByZXNldCB0aGVtZXMgYXZhaWxhYmxlIGluIFNLWSBVWC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcHJlc2V0cyA9IHtcbiAgICBkZWZhdWx0OiBuZXcgU2t5VGhlbWUoXG4gICAgICAnZGVmYXVsdCcsXG4gICAgICAnc2t5LXRoZW1lLWRlZmF1bHQnLFxuICAgICAgW1NreVRoZW1lTW9kZS5wcmVzZXRzLmxpZ2h0XSxcbiAgICAgIFtTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZF0sXG4gICAgKSxcbiAgICBtb2Rlcm46IG5ldyBTa3lUaGVtZShcbiAgICAgICdtb2Rlcm4nLFxuICAgICAgJ3NreS10aGVtZS1tb2Rlcm4nLFxuICAgICAgW1NreVRoZW1lTW9kZS5wcmVzZXRzLmxpZ2h0LCBTa3lUaGVtZU1vZGUucHJlc2V0cy5kYXJrXSxcbiAgICAgIFtTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZCwgU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuY29tcGFjdF0sXG4gICAgICB0cnVlLFxuICAgICksXG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdGhlbWUuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZS5cbiAgICogQHBhcmFtIGhvc3RDbGFzcyBUaGUgY2xhc3Mgb24gdGhlIGhvc3QgZWxlbWVudCB3aGljaCBjaGlsZCBjb21wb25lbnRzIHNob3VsZCByZWZlcmVuY2Ugd2hlblxuICAgKiBhZGp1c3RpbmcgZm9yIGEgc3BlY2lmaWVkIHRoZW1lLlxuICAgKiBAcGFyYW0gc3VwcG9ydGVkTW9kZXMgQW4gYXJyYXkgb2YgbW9kZXMgc3VwcG9ydGVkIGJ5IHRoZSB0aGVtZS5cbiAgICogQHBhcmFtIHN1cHBvcnRlZFNwYWNpbmcgQW4gYXJyYXkgb2Ygc3BhY2luZyBtb2RlcyBzdXBwb3J0ZWQgYnkgdGhlIHRoZW1lLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaG9zdENsYXNzOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRlZE1vZGVzOiBTa3lUaGVtZU1vZGVbXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydGVkU3BhY2luZyA9IFtTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZF0sXG4gICAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRzQnJhbmRpbmcgPSBmYWxzZSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogU2VyaWFsaXplcyB0aGUgdGhlbWUgdG8gYSBKU09OLWNvbXBhdGlibGUgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHNlcmlhbGl6ZSgpOiBTa3lUaGVtZURhdGEge1xuICAgIC8vIENoZWNrIGlmIHRoaXMgaW5zdGFuY2UgaXMgYSBwcmVzZXRcbiAgICBjb25zdCBwcmVzZXRFbnRyeSA9IE9iamVjdC5lbnRyaWVzKFNreVRoZW1lLnByZXNldHMpLmZpbmQoXG4gICAgICAoWywgcHJlc2V0XSkgPT4gcHJlc2V0ID09PSB0aGlzLFxuICAgICk7XG5cbiAgICBpZiAocHJlc2V0RW50cnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgc3VwcG9ydGVkTW9kZXM6IHRoaXMuc3VwcG9ydGVkTW9kZXMubWFwKChtb2RlKSA9PiBtb2RlLnNlcmlhbGl6ZSgpKSxcbiAgICAgICAgaXNQcmVzZXQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogU2t5VGhlbWVEYXRhID0ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgaG9zdENsYXNzOiB0aGlzLmhvc3RDbGFzcyxcbiAgICAgIHN1cHBvcnRlZE1vZGVzOiB0aGlzLnN1cHBvcnRlZE1vZGVzLm1hcCgobW9kZSkgPT4gbW9kZS5zZXJpYWxpemUoKSksXG4gICAgfTtcblxuICAgIC8vIE9ubHkgaW5jbHVkZSBzdXBwb3J0ZWRTcGFjaW5nIGlmIGl0J3Mgbm90IHRoZSBkZWZhdWx0XG4gICAgaWYgKFxuICAgICAgdGhpcy5zdXBwb3J0ZWRTcGFjaW5nLmxlbmd0aCAhPT0gMSB8fFxuICAgICAgdGhpcy5zdXBwb3J0ZWRTcGFjaW5nWzBdICE9PSBTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZFxuICAgICkge1xuICAgICAgcmVzdWx0LnN1cHBvcnRlZFNwYWNpbmcgPSB0aGlzLnN1cHBvcnRlZFNwYWNpbmcubWFwKChzcGFjaW5nKSA9PlxuICAgICAgICBzcGFjaW5nLnNlcmlhbGl6ZSgpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBPbmx5IGluY2x1ZGUgc3VwcG9ydHNCcmFuZGluZyBpZiBpdCdzIHRydWVcbiAgICBpZiAodGhpcy5zdXBwb3J0c0JyYW5kaW5nKSB7XG4gICAgICByZXN1bHQuc3VwcG9ydHNCcmFuZGluZyA9IHRoaXMuc3VwcG9ydHNCcmFuZGluZztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEZXNlcmlhbGl6ZXMgYSBKU09OIG9iamVjdCB0byBhIFNreVRoZW1lIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShkYXRhOiBTa3lUaGVtZURhdGEpOiBTa3lUaGVtZSB7XG4gICAgaWYgKGRhdGEuaXNQcmVzZXQpIHtcbiAgICAgIGNvbnN0IHByZXNldCA9XG4gICAgICAgIFNreVRoZW1lLnByZXNldHNbZGF0YS5uYW1lIGFzIGtleW9mIHR5cGVvZiBTa3lUaGVtZS5wcmVzZXRzXTtcblxuICAgICAgaWYgKHByZXNldCkge1xuICAgICAgICByZXR1cm4gcHJlc2V0O1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdGhlbWUgcHJlc2V0OiAke2RhdGEubmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEuaG9zdENsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hvc3RDbGFzcyBpcyByZXF1aXJlZCBmb3Igbm9uLXByZXNldCB0aGVtZXMnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdXBwb3J0ZWRNb2RlcyA9IGRhdGEuc3VwcG9ydGVkTW9kZXMubWFwKChtb2RlRGF0YSkgPT5cbiAgICAgIFNreVRoZW1lTW9kZS5kZXNlcmlhbGl6ZShtb2RlRGF0YSksXG4gICAgKTtcblxuICAgIGNvbnN0IHN1cHBvcnRlZFNwYWNpbmcgPSBkYXRhLnN1cHBvcnRlZFNwYWNpbmdcbiAgICAgID8gZGF0YS5zdXBwb3J0ZWRTcGFjaW5nLm1hcCgoc3BhY2luZ0RhdGEpID0+XG4gICAgICAgICAgU2t5VGhlbWVTcGFjaW5nLmRlc2VyaWFsaXplKHNwYWNpbmdEYXRhKSxcbiAgICAgICAgKVxuICAgICAgOiBbU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmRdO1xuXG4gICAgcmV0dXJuIG5ldyBTa3lUaGVtZShcbiAgICAgIGRhdGEubmFtZSxcbiAgICAgIGRhdGEuaG9zdENsYXNzLFxuICAgICAgc3VwcG9ydGVkTW9kZXMsXG4gICAgICBzdXBwb3J0ZWRTcGFjaW5nLFxuICAgICAgZGF0YS5zdXBwb3J0c0JyYW5kaW5nID8/IGZhbHNlLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","/**\n * @internal\n * Defines properties of SKY UX theme branding.\n */\nexport class SkyThemeBrand {\n get hostClass() {\n return this.#hostClass || this.#buildDefaultHostClassName();\n }\n set hostClass(value) {\n this.#hostClass = value;\n }\n #hostClass;\n /**\n * Creates a new theme brand.\n * @param name The name of the theme brand.\n * @param version The version of the theme brand.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme brand. This defaults to `sky-theme-brand-<name>`\n * @param styleUrl The URL of the stylesheet to load for this brand\n * @param sriHash The subresource integrity hash for the stylesheet\n * @param title The title to display for this brand\n * @param faviconUrl The URL of the favicon to use for this brand\n * @param maskIcon The mask icon configuration for this brand\n */\n constructor(name, version, hostClass, styleUrl, sriHash, title, faviconUrl, maskIcon) {\n this.name = name;\n this.version = version;\n this.styleUrl = styleUrl;\n this.sriHash = sriHash;\n this.title = title;\n this.faviconUrl = faviconUrl;\n this.maskIcon = maskIcon;\n this.hostClass = hostClass;\n if (!/^(\\d+|\\d+\\.\\d+\\.\\d+)(?:-(?:alpha|beta|rc)\\.\\d+)*$/.test(version)) {\n throw new Error(`Invalid version format \"${version}\" for theme brand \"${name}\".`);\n }\n }\n /**\n * @internal\n * Serializes the theme brand to a JSON-compatible object.\n */\n serialize() {\n const result = {\n name: this.name,\n version: this.version,\n };\n // Only include hostClass if it's different from the default\n const defaultHostClass = this.#buildDefaultHostClassName();\n if (this.hostClass !== defaultHostClass) {\n result.hostClass = this.hostClass;\n }\n if (this.styleUrl) {\n result.styleUrl = this.styleUrl;\n }\n if (this.sriHash) {\n result.sriHash = this.sriHash;\n }\n if (this.title) {\n result.title = this.title;\n }\n if (this.faviconUrl) {\n result.faviconUrl = this.faviconUrl;\n }\n if (this.maskIcon) {\n result.maskIcon = this.maskIcon;\n }\n return result;\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeBrand instance.\n */\n static deserialize(data) {\n return new SkyThemeBrand(data.name, data.version, data.hostClass, data.styleUrl, data.sriHash, data.title, data.faviconUrl, data.maskIcon);\n }\n #buildDefaultHostClassName() {\n return `sky-theme-brand-${this.name}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYnJhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL2xpYi90aGVtaW5nL3RoZW1lLWJyYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUN4QixJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFZLFNBQVMsQ0FBQyxLQUF5QjtRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFxQjtJQUMvQjs7Ozs7Ozs7Ozs7T0FXRztJQUNILFlBQ2tCLElBQVksRUFDWixPQUFlLEVBQy9CLFNBQWtCLEVBQ0YsUUFBaUIsRUFDakIsT0FBZ0IsRUFDaEIsS0FBYyxFQUNkLFVBQW1CLEVBQ25CLFFBQWdDO1FBUGhDLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRWYsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVM7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQXdCO1FBRWhELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUNiLDJCQUEyQixPQUFPLHNCQUFzQixJQUFJLElBQUksQ0FDakUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE1BQU0sTUFBTSxHQUFzQjtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztRQUVGLDREQUE0RDtRQUM1RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBRTNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBdUI7UUFDL0MsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lUaGVtZUJyYW5kRGF0YSB9IGZyb20gJy4vdGhlbWUtc2VyaWFsaXphdGlvbi10eXBlcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBEZWZpbmVzIHByb3BlcnRpZXMgZm9yIGEgbWFzayBpY29uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreVRoZW1lQnJhbmRNYXNrSWNvbiB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBtYXNrIGljb24uXG4gICAqL1xuICB1cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgbWFzayBpY29uLlxuICAgKi9cbiAgY29sb3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIERlZmluZXMgcHJvcGVydGllcyBvZiBTS1kgVVggdGhlbWUgYnJhbmRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaGVtZUJyYW5kIHtcbiAgcHVibGljIGdldCBob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jaG9zdENsYXNzIHx8IHRoaXMuI2J1aWxkRGVmYXVsdEhvc3RDbGFzc05hbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0IGhvc3RDbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jaG9zdENsYXNzID0gdmFsdWU7XG4gIH1cblxuICAjaG9zdENsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRoZW1lIGJyYW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgdGhlbWUgYnJhbmQuXG4gICAqIEBwYXJhbSB2ZXJzaW9uIFRoZSB2ZXJzaW9uIG9mIHRoZSB0aGVtZSBicmFuZC5cbiAgICogQHBhcmFtIGhvc3RDbGFzcyBUaGUgY2xhc3Mgb24gdGhlIGhvc3QgZWxlbWVudCB3aGljaCBjaGlsZCBjb21wb25lbnRzIHNob3VsZCByZWZlcmVuY2Ugd2hlblxuICAgKiBhZGp1c3RpbmcgZm9yIGEgc3BlY2lmaWVkIHRoZW1lIGJyYW5kLiBUaGlzIGRlZmF1bHRzIHRvIGBza3ktdGhlbWUtYnJhbmQtPG5hbWU+YFxuICAgKiBAcGFyYW0gc3R5bGVVcmwgVGhlIFVSTCBvZiB0aGUgc3R5bGVzaGVldCB0byBsb2FkIGZvciB0aGlzIGJyYW5kXG4gICAqIEBwYXJhbSBzcmlIYXNoIFRoZSBzdWJyZXNvdXJjZSBpbnRlZ3JpdHkgaGFzaCBmb3IgdGhlIHN0eWxlc2hlZXRcbiAgICogQHBhcmFtIHRpdGxlIFRoZSB0aXRsZSB0byBkaXNwbGF5IGZvciB0aGlzIGJyYW5kXG4gICAqIEBwYXJhbSBmYXZpY29uVXJsIFRoZSBVUkwgb2YgdGhlIGZhdmljb24gdG8gdXNlIGZvciB0aGlzIGJyYW5kXG4gICAqIEBwYXJhbSBtYXNrSWNvbiBUaGUgbWFzayBpY29uIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgYnJhbmRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZyxcbiAgICBob3N0Q2xhc3M/OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0eWxlVXJsPzogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBzcmlIYXNoPzogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSB0aXRsZT86IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmF2aWNvblVybD86IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFza0ljb24/OiBTa3lUaGVtZUJyYW5kTWFza0ljb24sXG4gICkge1xuICAgIHRoaXMuaG9zdENsYXNzID0gaG9zdENsYXNzO1xuXG4gICAgaWYgKCEvXihcXGQrfFxcZCtcXC5cXGQrXFwuXFxkKykoPzotKD86YWxwaGF8YmV0YXxyYylcXC5cXGQrKSokLy50ZXN0KHZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIHZlcnNpb24gZm9ybWF0IFwiJHt2ZXJzaW9ufVwiIGZvciB0aGVtZSBicmFuZCBcIiR7bmFtZX1cIi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFNlcmlhbGl6ZXMgdGhlIHRoZW1lIGJyYW5kIHRvIGEgSlNPTi1jb21wYXRpYmxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogU2t5VGhlbWVCcmFuZERhdGEge1xuICAgIGNvbnN0IHJlc3VsdDogU2t5VGhlbWVCcmFuZERhdGEgPSB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgfTtcblxuICAgIC8vIE9ubHkgaW5jbHVkZSBob3N0Q2xhc3MgaWYgaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdFxuICAgIGNvbnN0IGRlZmF1bHRIb3N0Q2xhc3MgPSB0aGlzLiNidWlsZERlZmF1bHRIb3N0Q2xhc3NOYW1lKCk7XG5cbiAgICBpZiAodGhpcy5ob3N0Q2xhc3MgIT09IGRlZmF1bHRIb3N0Q2xhc3MpIHtcbiAgICAgIHJlc3VsdC5ob3N0Q2xhc3MgPSB0aGlzLmhvc3RDbGFzcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdHlsZVVybCkge1xuICAgICAgcmVzdWx0LnN0eWxlVXJsID0gdGhpcy5zdHlsZVVybDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zcmlIYXNoKSB7XG4gICAgICByZXN1bHQuc3JpSGFzaCA9IHRoaXMuc3JpSGFzaDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50aXRsZSkge1xuICAgICAgcmVzdWx0LnRpdGxlID0gdGhpcy50aXRsZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mYXZpY29uVXJsKSB7XG4gICAgICByZXN1bHQuZmF2aWNvblVybCA9IHRoaXMuZmF2aWNvblVybDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXNrSWNvbikge1xuICAgICAgcmVzdWx0Lm1hc2tJY29uID0gdGhpcy5tYXNrSWNvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEZXNlcmlhbGl6ZXMgYSBKU09OIG9iamVjdCB0byBhIFNreVRoZW1lQnJhbmQgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGRhdGE6IFNreVRoZW1lQnJhbmREYXRhKTogU2t5VGhlbWVCcmFuZCB7XG4gICAgcmV0dXJuIG5ldyBTa3lUaGVtZUJyYW5kKFxuICAgICAgZGF0YS5uYW1lLFxuICAgICAgZGF0YS52ZXJzaW9uLFxuICAgICAgZGF0YS5ob3N0Q2xhc3MsXG4gICAgICBkYXRhLnN0eWxlVXJsLFxuICAgICAgZGF0YS5zcmlIYXNoLFxuICAgICAgZGF0YS50aXRsZSxcbiAgICAgIGRhdGEuZmF2aWNvblVybCxcbiAgICAgIGRhdGEubWFza0ljb24sXG4gICAgKTtcbiAgfVxuXG4gICNidWlsZERlZmF1bHRIb3N0Q2xhc3NOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBza3ktdGhlbWUtYnJhbmQtJHt0aGlzLm5hbWV9YDtcbiAgfVxufVxuIl19","import { DOCUMENT, Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst BRAND_BLACKBAUD = 'blackbaud';\n// Commonly-used icon configurations. Appending these to the head element will\n// override any existing link elements with the same attribute values. When\n// they are removed, the previous favicon link elements will take effect again.\nconst FAVICON_CONFIGS = [\n { rel: 'apple-touch-icon', sizes: '180x180' },\n { rel: 'icon', sizes: '32x32' },\n { rel: 'icon', sizes: '16x16' },\n];\n/**\n * @internal\n * Provides methods for managing theme branding including brand registration,\n * stylesheet management, and host class updates.\n */\nexport class SkyThemeBrandService {\n #document = inject(DOCUMENT);\n #stylesheetEl;\n #faviconEls = [];\n #maskIconEl;\n #registeredBrands = new Map();\n /**\n * Registers a brand for use in themes.\n * @param brand The brand to register.\n */\n registerBrand(brand) {\n this.#registeredBrands.set(brand.name, brand);\n }\n /**\n * Unregisters a brand.\n * @param name The name of the brand to unregister.\n */\n unregisterBrand(name) {\n this.#registeredBrands.delete(name);\n }\n /**\n * Updates all brand-related styling and classes for the host element.\n * This consolidates brand stylesheet updates and host class management,\n * and automatically resolves registered brands.\n * @param hostEl The host element to update.\n * @param renderer The renderer to use for DOM manipulation.\n * @param brand The brand to apply (will be resolved if registered version exists).\n * @param previousBrand The previous brand to clean up.\n */\n updateBrand(hostEl, renderer, brand, previousBrand) {\n // Resolve to registered brand if available\n if (brand) {\n brand = this.#registeredBrands.get(brand.name) ?? brand;\n }\n const previousClass = previousBrand?.hostClass;\n const currentClass = brand?.hostClass;\n // Update host classes if they've changed\n if (!previousClass || previousClass !== currentClass) {\n this.#updateBrandHostClass(hostEl, renderer, previousClass, currentClass);\n this.#updateBrandStylesheet(renderer, brand, previousBrand);\n }\n this.#updateFavicon(renderer, brand);\n }\n /**\n * Destroys the brand service, cleaning up any brand stylesheets.\n */\n destroy() {\n this.#removeBrandStylesheet();\n }\n #updateBrandStylesheet(renderer, currentBrand, previousBrand) {\n if (previousBrand && previousBrand.name !== BRAND_BLACKBAUD) {\n this.#removeBrandStylesheet();\n }\n if (currentBrand && currentBrand.name !== BRAND_BLACKBAUD) {\n this.#addBrandStylesheet(renderer, currentBrand);\n }\n }\n #updateBrandHostClass(hostEl, renderer, previousClass, currentClass) {\n if (previousClass) {\n renderer.removeClass(hostEl, previousClass);\n }\n if (currentClass && !previousClass) {\n renderer.addClass(hostEl, 'sky-theme-brand-base');\n }\n else if (!currentClass && previousClass) {\n renderer.removeClass(hostEl, 'sky-theme-brand-base');\n }\n if (currentClass) {\n renderer.addClass(hostEl, currentClass);\n }\n }\n #addBrandStylesheet(renderer, brand) {\n if (brand.name !== BRAND_BLACKBAUD) {\n // Use styleUrl if provided, otherwise build the default URL\n const styleUrl = brand.styleUrl ||\n `https://sky.blackbaudcdn.net/static/skyux-brand-${brand.name}/${brand.version}/assets/scss/${brand.name}.css`;\n this.#stylesheetEl = renderer.createElement('link');\n renderer.setAttribute(this.#stylesheetEl, 'rel', 'stylesheet');\n renderer.setAttribute(this.#stylesheetEl, 'href', styleUrl);\n if (brand.sriHash) {\n renderer.setAttribute(this.#stylesheetEl, 'integrity', brand.sriHash);\n renderer.setAttribute(this.#stylesheetEl, 'crossorigin', 'anonymous');\n }\n this.#appendToHead(renderer, this.#stylesheetEl);\n }\n }\n #removeBrandStylesheet() {\n if (this.#stylesheetEl) {\n this.#stylesheetEl.remove();\n this.#stylesheetEl = undefined;\n }\n }\n #updateFavicon(renderer, brand) {\n if (brand?.faviconUrl) {\n const faviconUrl = brand.faviconUrl;\n // Create favicon elements if they don't exist, or reuse existing ones\n while (this.#faviconEls.length < FAVICON_CONFIGS.length) {\n const faviconEl = renderer.createElement('link');\n this.#faviconEls.push(faviconEl);\n this.#appendToHead(renderer, faviconEl);\n }\n // Update each favicon element with its configuration\n for (let i = 0; i < FAVICON_CONFIGS.length; i++) {\n const config = FAVICON_CONFIGS[i];\n const faviconEl = this.#faviconEls[i];\n renderer.setAttribute(faviconEl, 'rel', config.rel);\n renderer.setAttribute(faviconEl, 'sizes', config.sizes);\n renderer.setAttribute(faviconEl, 'href', faviconUrl);\n }\n }\n else {\n // Remove all favicon elements when no favicon URL is provided\n for (const faviconEl of this.#faviconEls) {\n faviconEl.remove();\n }\n this.#faviconEls = [];\n }\n // Handle mask icon\n if (brand?.maskIcon) {\n if (!this.#maskIconEl) {\n this.#maskIconEl = renderer.createElement('link');\n this.#appendToHead(renderer, this.#maskIconEl);\n }\n renderer.setAttribute(this.#maskIconEl, 'rel', 'mask-icon');\n renderer.setAttribute(this.#maskIconEl, 'href', brand.maskIcon.url);\n renderer.setAttribute(this.#maskIconEl, 'color', brand.maskIcon.color);\n }\n else if (this.#maskIconEl) {\n this.#maskIconEl.remove();\n this.#maskIconEl = undefined;\n }\n }\n #appendToHead(renderer, el) {\n renderer.appendChild(this.#document.head, el);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeBrandService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeBrandService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeBrandService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYnJhbmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtYnJhbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXhFLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUVwQyw4RUFBOEU7QUFDOUUsMkVBQTJFO0FBQzNFLCtFQUErRTtBQUMvRSxNQUFNLGVBQWUsR0FBRztJQUN0QixFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzdDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQy9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0NBQ2hDLENBQUM7QUFFRjs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdCLGFBQWEsQ0FBOEI7SUFDM0MsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFDcEMsV0FBVyxDQUE4QjtJQUV6QyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUVyRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsSUFBWTtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7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QUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFtQixFQUFFLEVBQWU7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQTlLVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIEluamVjdGFibGUsIFJlbmRlcmVyMiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcblxuY29uc3QgQlJBTkRfQkxBQ0tCQVVEID0gJ2JsYWNrYmF1ZCc7XG5cbi8vIENvbW1vbmx5LXVzZWQgaWNvbiBjb25maWd1cmF0aW9ucy4gQXBwZW5kaW5nIHRoZXNlIHRvIHRoZSBoZWFkIGVsZW1lbnQgd2lsbFxuLy8gb3ZlcnJpZGUgYW55IGV4aXN0aW5nIGxpbmsgZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGUgdmFsdWVzLiBXaGVuXG4vLyB0aGV5IGFyZSByZW1vdmVkLCB0aGUgcHJldmlvdXMgZmF2aWNvbiBsaW5rIGVsZW1lbnRzIHdpbGwgdGFrZSBlZmZlY3QgYWdhaW4uXG5jb25zdCBGQVZJQ09OX0NPTkZJR1MgPSBbXG4gIHsgcmVsOiAnYXBwbGUtdG91Y2gtaWNvbicsIHNpemVzOiAnMTgweDE4MCcgfSxcbiAgeyByZWw6ICdpY29uJywgc2l6ZXM6ICczMngzMicgfSxcbiAgeyByZWw6ICdpY29uJywgc2l6ZXM6ICcxNngxNicgfSxcbl07XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBQcm92aWRlcyBtZXRob2RzIGZvciBtYW5hZ2luZyB0aGVtZSBicmFuZGluZyBpbmNsdWRpbmcgYnJhbmQgcmVnaXN0cmF0aW9uLFxuICogc3R5bGVzaGVldCBtYW5hZ2VtZW50LCBhbmQgaG9zdCBjbGFzcyB1cGRhdGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVCcmFuZFNlcnZpY2Uge1xuICAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICNzdHlsZXNoZWV0RWw6IEhUTUxMaW5rRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgI2Zhdmljb25FbHM6IEhUTUxMaW5rRWxlbWVudFtdID0gW107XG4gICNtYXNrSWNvbkVsOiBIVE1MTGlua0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI3JlZ2lzdGVyZWRCcmFuZHMgPSBuZXcgTWFwPHN0cmluZywgU2t5VGhlbWVCcmFuZD4oKTtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgYnJhbmQgZm9yIHVzZSBpbiB0aGVtZXMuXG4gICAqIEBwYXJhbSBicmFuZCBUaGUgYnJhbmQgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJCcmFuZChicmFuZDogU2t5VGhlbWVCcmFuZCk6IHZvaWQge1xuICAgIHRoaXMuI3JlZ2lzdGVyZWRCcmFuZHMuc2V0KGJyYW5kLm5hbWUsIGJyYW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIGJyYW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnJhbmQgdG8gdW5yZWdpc3Rlci5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQnJhbmQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVnaXN0ZXJlZEJyYW5kcy5kZWxldGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbGwgYnJhbmQtcmVsYXRlZCBzdHlsaW5nIGFuZCBjbGFzc2VzIGZvciB0aGUgaG9zdCBlbGVtZW50LlxuICAgKiBUaGlzIGNvbnNvbGlkYXRlcyBicmFuZCBzdHlsZXNoZWV0IHVwZGF0ZXMgYW5kIGhvc3QgY2xhc3MgbWFuYWdlbWVudCxcbiAgICogYW5kIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXMgcmVnaXN0ZXJlZCBicmFuZHMuXG4gICAqIEBwYXJhbSBob3N0RWwgVGhlIGhvc3QgZWxlbWVudCB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSByZW5kZXJlciBUaGUgcmVuZGVyZXIgdG8gdXNlIGZvciBET00gbWFuaXB1bGF0aW9uLlxuICAgKiBAcGFyYW0gYnJhbmQgVGhlIGJyYW5kIHRvIGFwcGx5ICh3aWxsIGJlIHJlc29sdmVkIGlmIHJlZ2lzdGVyZWQgdmVyc2lvbiBleGlzdHMpLlxuICAgKiBAcGFyYW0gcHJldmlvdXNCcmFuZCBUaGUgcHJldmlvdXMgYnJhbmQgdG8gY2xlYW4gdXAuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQnJhbmQoXG4gICAgaG9zdEVsOiBFbGVtZW50LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgYnJhbmQ6IFNreVRoZW1lQnJhbmQgfCB1bmRlZmluZWQsXG4gICAgcHJldmlvdXNCcmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgLy8gUmVzb2x2ZSB0byByZWdpc3RlcmVkIGJyYW5kIGlmIGF2YWlsYWJsZVxuICAgIGlmIChicmFuZCkge1xuICAgICAgYnJhbmQgPSB0aGlzLiNyZWdpc3RlcmVkQnJhbmRzLmdldChicmFuZC5uYW1lKSA/PyBicmFuZDtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0NsYXNzID0gcHJldmlvdXNCcmFuZD8uaG9zdENsYXNzO1xuICAgIGNvbnN0IGN1cnJlbnRDbGFzcyA9IGJyYW5kPy5ob3N0Q2xhc3M7XG5cbiAgICAvLyBVcGRhdGUgaG9zdCBjbGFzc2VzIGlmIHRoZXkndmUgY2hhbmdlZFxuICAgIGlmICghcHJldmlvdXNDbGFzcyB8fCBwcmV2aW91c0NsYXNzICE9PSBjdXJyZW50Q2xhc3MpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUJyYW5kSG9zdENsYXNzKGhvc3RFbCwgcmVuZGVyZXIsIHByZXZpb3VzQ2xhc3MsIGN1cnJlbnRDbGFzcyk7XG4gICAgICB0aGlzLiN1cGRhdGVCcmFuZFN0eWxlc2hlZXQocmVuZGVyZXIsIGJyYW5kLCBwcmV2aW91c0JyYW5kKTtcbiAgICB9XG5cbiAgICB0aGlzLiN1cGRhdGVGYXZpY29uKHJlbmRlcmVyLCBicmFuZCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGJyYW5kIHNlcnZpY2UsIGNsZWFuaW5nIHVwIGFueSBicmFuZCBzdHlsZXNoZWV0cy5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbW92ZUJyYW5kU3R5bGVzaGVldCgpO1xuICB9XG5cbiAgI3VwZGF0ZUJyYW5kU3R5bGVzaGVldChcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGN1cnJlbnRCcmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCxcbiAgICBwcmV2aW91c0JyYW5kOiBTa3lUaGVtZUJyYW5kIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBpZiAocHJldmlvdXNCcmFuZCAmJiBwcmV2aW91c0JyYW5kLm5hbWUgIT09IEJSQU5EX0JMQUNLQkFVRCkge1xuICAgICAgdGhpcy4jcmVtb3ZlQnJhbmRTdHlsZXNoZWV0KCk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRCcmFuZCAmJiBjdXJyZW50QnJhbmQubmFtZSAhPT0gQlJBTkRfQkxBQ0tCQVVEKSB7XG4gICAgICB0aGlzLiNhZGRCcmFuZFN0eWxlc2hlZXQocmVuZGVyZXIsIGN1cnJlbnRCcmFuZCk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUJyYW5kSG9zdENsYXNzKFxuICAgIGhvc3RFbDogRWxlbWVudCxcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByZXZpb3VzQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjdXJyZW50Q2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHByZXZpb3VzQ2xhc3MpIHtcbiAgICAgIHJlbmRlcmVyLnJlbW92ZUNsYXNzKGhvc3RFbCwgcHJldmlvdXNDbGFzcyk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRDbGFzcyAmJiAhcHJldmlvdXNDbGFzcykge1xuICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsLCAnc2t5LXRoZW1lLWJyYW5kLWJhc2UnKTtcbiAgICB9IGVsc2UgaWYgKCFjdXJyZW50Q2xhc3MgJiYgcHJldmlvdXNDbGFzcykge1xuICAgICAgcmVuZGVyZXIucmVtb3ZlQ2xhc3MoaG9zdEVsLCAnc2t5LXRoZW1lLWJyYW5kLWJhc2UnKTtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudENsYXNzKSB7XG4gICAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWwsIGN1cnJlbnRDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgI2FkZEJyYW5kU3R5bGVzaGVldChyZW5kZXJlcjogUmVuZGVyZXIyLCBicmFuZDogU2t5VGhlbWVCcmFuZCk6IHZvaWQge1xuICAgIGlmIChicmFuZC5uYW1lICE9PSBCUkFORF9CTEFDS0JBVUQpIHtcbiAgICAgIC8vIFVzZSBzdHlsZVVybCBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIGJ1aWxkIHRoZSBkZWZhdWx0IFVSTFxuICAgICAgY29uc3Qgc3R5bGVVcmwgPVxuICAgICAgICBicmFuZC5zdHlsZVVybCB8fFxuICAgICAgICBgaHR0cHM6Ly9za3kuYmxhY2tiYXVkY2RuLm5ldC9zdGF0aWMvc2t5dXgtYnJhbmQtJHticmFuZC5uYW1lfS8ke2JyYW5kLnZlcnNpb259L2Fzc2V0cy9zY3NzLyR7YnJhbmQubmFtZX0uY3NzYDtcblxuICAgICAgdGhpcy4jc3R5bGVzaGVldEVsID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcblxuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI3N0eWxlc2hlZXRFbCwgJ3JlbCcsICdzdHlsZXNoZWV0Jyk7XG4gICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jc3R5bGVzaGVldEVsLCAnaHJlZicsIHN0eWxlVXJsKTtcblxuICAgICAgaWYgKGJyYW5kLnNyaUhhc2gpIHtcbiAgICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI3N0eWxlc2hlZXRFbCwgJ2ludGVncml0eScsIGJyYW5kLnNyaUhhc2gpO1xuICAgICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jc3R5bGVzaGVldEVsLCAnY3Jvc3NvcmlnaW4nLCAnYW5vbnltb3VzJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2FwcGVuZFRvSGVhZChyZW5kZXJlciwgdGhpcy4jc3R5bGVzaGVldEVsKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQnJhbmRTdHlsZXNoZWV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNzdHlsZXNoZWV0RWwpIHtcbiAgICAgIHRoaXMuI3N0eWxlc2hlZXRFbC5yZW1vdmUoKTtcbiAgICAgIHRoaXMuI3N0eWxlc2hlZXRFbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlRmF2aWNvbihyZW5kZXJlcjogUmVuZGVyZXIyLCBicmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChicmFuZD8uZmF2aWNvblVybCkge1xuICAgICAgY29uc3QgZmF2aWNvblVybCA9IGJyYW5kLmZhdmljb25Vcmw7XG5cbiAgICAgIC8vIENyZWF0ZSBmYXZpY29uIGVsZW1lbnRzIGlmIHRoZXkgZG9uJ3QgZXhpc3QsIG9yIHJldXNlIGV4aXN0aW5nIG9uZXNcbiAgICAgIHdoaWxlICh0aGlzLiNmYXZpY29uRWxzLmxlbmd0aCA8IEZBVklDT05fQ09ORklHUy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmF2aWNvbkVsID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcbiAgICAgICAgdGhpcy4jZmF2aWNvbkVscy5wdXNoKGZhdmljb25FbCk7XG4gICAgICAgIHRoaXMuI2FwcGVuZFRvSGVhZChyZW5kZXJlciwgZmF2aWNvbkVsKTtcbiAgICAgIH1cblxuICAgICAgLy8gVXBkYXRlIGVhY2ggZmF2aWNvbiBlbGVtZW50IHdpdGggaXRzIGNvbmZpZ3VyYXRpb25cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgRkFWSUNPTl9DT05GSUdTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IEZBVklDT05fQ09ORklHU1tpXTtcbiAgICAgICAgY29uc3QgZmF2aWNvbkVsID0gdGhpcy4jZmF2aWNvbkVsc1tpXTtcblxuICAgICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUoZmF2aWNvbkVsLCAncmVsJywgY29uZmlnLnJlbCk7XG4gICAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShmYXZpY29uRWwsICdzaXplcycsIGNvbmZpZy5zaXplcyk7XG4gICAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShmYXZpY29uRWwsICdocmVmJywgZmF2aWNvblVybCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbW92ZSBhbGwgZmF2aWNvbiBlbGVtZW50cyB3aGVuIG5vIGZhdmljb24gVVJMIGlzIHByb3ZpZGVkXG4gICAgICBmb3IgKGNvbnN0IGZhdmljb25FbCBvZiB0aGlzLiNmYXZpY29uRWxzKSB7XG4gICAgICAgIGZhdmljb25FbC5yZW1vdmUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jZmF2aWNvbkVscyA9IFtdO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBtYXNrIGljb25cbiAgICBpZiAoYnJhbmQ/Lm1hc2tJY29uKSB7XG4gICAgICBpZiAoIXRoaXMuI21hc2tJY29uRWwpIHtcbiAgICAgICAgdGhpcy4jbWFza0ljb25FbCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG4gICAgICAgIHRoaXMuI2FwcGVuZFRvSGVhZChyZW5kZXJlciwgdGhpcy4jbWFza0ljb25FbCk7XG4gICAgICB9XG5cbiAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLiNtYXNrSWNvbkVsLCAncmVsJywgJ21hc2staWNvbicpO1xuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI21hc2tJY29uRWwsICdocmVmJywgYnJhbmQubWFza0ljb24udXJsKTtcbiAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLiNtYXNrSWNvbkVsLCAnY29sb3InLCBicmFuZC5tYXNrSWNvbi5jb2xvcik7XG4gICAgfSBlbHNlIGlmICh0aGlzLiNtYXNrSWNvbkVsKSB7XG4gICAgICB0aGlzLiNtYXNrSWNvbkVsLnJlbW92ZSgpO1xuICAgICAgdGhpcy4jbWFza0ljb25FbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjYXBwZW5kVG9IZWFkKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuI2RvY3VtZW50LmhlYWQsIGVsKTtcbiAgfVxufVxuIl19","import { SkyTheme } from './theme';\nimport { SkyThemeBrand } from './theme-brand';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSpacing } from './theme-spacing';\n/**\n * Specifies the theme and mode to be applied to a host element.\n */\nexport class SkyThemeSettings {\n /**\n * Creates a new SkyThemeSettings instance.\n * @param theme The theme configuration.\n * @param mode The theme mode.\n */\n constructor(theme, mode, spacing = SkyThemeSpacing.presets.standard, brand) {\n this.theme = theme;\n this.mode = mode;\n this.spacing = spacing;\n this.brand = brand;\n }\n /**\n * Serializes the theme settings to a string.\n */\n serialize() {\n const result = {\n theme: this.theme.serialize(),\n mode: this.mode.serialize(),\n };\n // Only include spacing if it's not the default\n if (this.spacing !== SkyThemeSpacing.presets.standard) {\n result.spacing = this.spacing.serialize();\n }\n // Only include brand if it exists\n if (this.brand) {\n result.brand = this.brand.serialize();\n }\n return JSON.stringify(result);\n }\n /**\n * Deserializes a string to a SkyThemeSettings instance.\n */\n static deserialize(value) {\n const settingsData = JSON.parse(value);\n const theme = SkyTheme.deserialize(settingsData.theme);\n const mode = SkyThemeMode.deserialize(settingsData.mode);\n const spacing = settingsData.spacing\n ? SkyThemeSpacing.deserialize(settingsData.spacing)\n : SkyThemeSpacing.presets.standard;\n const brand = settingsData.brand\n ? SkyThemeBrand.deserialize(settingsData.brand)\n : undefined;\n return new SkyThemeSettings(theme, mode, spacing, brand);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL2xpYi90aGVtaW5nL3RoZW1lLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7T0FJRztJQUNILFlBQ2tCLEtBQWUsRUFDZixJQUFrQixFQUNsQixVQUFVLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUMxQyxLQUFxQjtRQUhyQixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFtQztRQUMxQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUNwQyxDQUFDO0lBRUo7O09BRUc7SUFDSSxTQUFTO1FBQ2QsTUFBTSxNQUFNLEdBQXlCO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7U0FDNUIsQ0FBQztRQUVGLCtDQUErQztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0RCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBeUIsQ0FBQztRQUUvRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTztZQUNsQyxDQUFDLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSztZQUM5QixDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWUgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcbmltcG9ydCB7IFNreVRoZW1lTW9kZSB9IGZyb20gJy4vdGhlbWUtbW9kZSc7XG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzRGF0YSB9IGZyb20gJy4vdGhlbWUtc2VyaWFsaXphdGlvbi10eXBlcyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNwYWNpbmcgfSBmcm9tICcuL3RoZW1lLXNwYWNpbmcnO1xuXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdGhlbWUgYW5kIG1vZGUgdG8gYmUgYXBwbGllZCB0byBhIGhvc3QgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRoZW1lU2V0dGluZ3Mge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBTa3lUaGVtZVNldHRpbmdzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gdGhlbWUgVGhlIHRoZW1lIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBtb2RlIFRoZSB0aGVtZSBtb2RlLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHRoZW1lOiBTa3lUaGVtZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZTogU2t5VGhlbWVNb2RlLFxuICAgIHB1YmxpYyByZWFkb25seSBzcGFjaW5nID0gU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmQsXG4gICAgcHVibGljIHJlYWRvbmx5IGJyYW5kPzogU2t5VGhlbWVCcmFuZCxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIHRoZSB0aGVtZSBzZXR0aW5ncyB0byBhIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQ6IFNreVRoZW1lU2V0dGluZ3NEYXRhID0ge1xuICAgICAgdGhlbWU6IHRoaXMudGhlbWUuc2VyaWFsaXplKCksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUuc2VyaWFsaXplKCksXG4gICAgfTtcblxuICAgIC8vIE9ubHkgaW5jbHVkZSBzcGFjaW5nIGlmIGl0J3Mgbm90IHRoZSBkZWZhdWx0XG4gICAgaWYgKHRoaXMuc3BhY2luZyAhPT0gU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmQpIHtcbiAgICAgIHJlc3VsdC5zcGFjaW5nID0gdGhpcy5zcGFjaW5nLnNlcmlhbGl6ZSgpO1xuICAgIH1cblxuICAgIC8vIE9ubHkgaW5jbHVkZSBicmFuZCBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5icmFuZCkge1xuICAgICAgcmVzdWx0LmJyYW5kID0gdGhpcy5icmFuZC5zZXJpYWxpemUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZXMgYSBzdHJpbmcgdG8gYSBTa3lUaGVtZVNldHRpbmdzIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogc3RyaW5nKTogU2t5VGhlbWVTZXR0aW5ncyB7XG4gICAgY29uc3Qgc2V0dGluZ3NEYXRhID0gSlNPTi5wYXJzZSh2YWx1ZSkgYXMgU2t5VGhlbWVTZXR0aW5nc0RhdGE7XG5cbiAgICBjb25zdCB0aGVtZSA9IFNreVRoZW1lLmRlc2VyaWFsaXplKHNldHRpbmdzRGF0YS50aGVtZSk7XG4gICAgY29uc3QgbW9kZSA9IFNreVRoZW1lTW9kZS5kZXNlcmlhbGl6ZShzZXR0aW5nc0RhdGEubW9kZSk7XG4gICAgY29uc3Qgc3BhY2luZyA9IHNldHRpbmdzRGF0YS5zcGFjaW5nXG4gICAgICA/IFNreVRoZW1lU3BhY2luZy5kZXNlcmlhbGl6ZShzZXR0aW5nc0RhdGEuc3BhY2luZylcbiAgICAgIDogU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmQ7XG4gICAgY29uc3QgYnJhbmQgPSBzZXR0aW5nc0RhdGEuYnJhbmRcbiAgICAgID8gU2t5VGhlbWVCcmFuZC5kZXNlcmlhbGl6ZShzZXR0aW5nc0RhdGEuYnJhbmQpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBuZXcgU2t5VGhlbWVTZXR0aW5ncyh0aGVtZSwgbW9kZSwgc3BhY2luZywgYnJhbmQpO1xuICB9XG59XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { SkyTheme } from './theme';\nimport { SkyThemeBrand } from './theme-brand';\nimport { SkyThemeBrandService } from './theme-brand.service';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeSpacing } from './theme-spacing';\nimport * as i0 from \"@angular/core\";\nfunction assertCurrentSettings(currentSettings) {\n if (!currentSettings) {\n throw new Error('Theme service is not initialized. Call init() first.');\n }\n}\n/**\n * Provides methods for updating and handling changes to the current theme.\n */\nexport class SkyThemeService {\n #brandSvc = inject(SkyThemeBrandService);\n /**\n * Notifies consumers when the current theme settings have changed.\n */\n get settingsChange() {\n return this.#_settingsObs;\n }\n #current;\n #hostEl;\n #renderer;\n #settings;\n #_settingsObs;\n constructor() {\n this.#settings = new ReplaySubject(1);\n this.#_settingsObs = this.#settings.asObservable();\n }\n /**\n * Initializes the theme service with the specified parameters. This should only be called\n * from a host component that provides its own theme to child components.\n * @param hostEl The host element under which themed components are rendered.\n * @param renderer A Renderer2 instance for updating the host element with theme changes.\n * @param theme The initial theme.\n * @param registeredBrands An initial set of brands to register. Additional brands can\n * be registered later via the registerBrand() method.\n */\n init(hostEl, renderer, theme, registeredBrands) {\n this.#hostEl = hostEl;\n this.#renderer = renderer;\n if (registeredBrands) {\n for (const brand of registeredBrands) {\n this.#brandSvc.registerBrand(brand);\n }\n }\n this.setTheme(theme);\n }\n /**\n * Destroys the current theme service. This should only be called from a host component that\n * provides its own theme to child components.\n */\n destroy() {\n this.#settings.complete();\n this.#brandSvc.destroy();\n this.#hostEl = this.#renderer = undefined;\n }\n /**\n * Updates the current theme mode.\n * @param mode The new theme mode to apply.\n */\n setThemeMode(mode) {\n this.#updateThemeProperty('mode', mode);\n }\n /**\n * Updates the current theme spacing.\n * @param spacing The new theme spacing to apply.\n */\n setThemeSpacing(spacing) {\n this.#updateThemeProperty('spacing', spacing);\n }\n /**\n * Updates the current theme brand.\n * @param brand The new theme brand to apply, or undefined to clear the current brand.\n */\n setThemeBrand(brand) {\n this.#updateThemeProperty('brand', brand);\n }\n setTheme(settingsOrTheme) {\n let settings;\n if (settingsOrTheme instanceof SkyThemeSettings) {\n settings = settingsOrTheme;\n }\n else {\n const current = this.#current;\n assertCurrentSettings(current);\n settings = new SkyThemeSettings(settingsOrTheme, current.mode, current.spacing, settingsOrTheme.supportsBranding ? current.brand : undefined);\n }\n const previous = this.#current;\n this.#applyThemeClass(previous, settings, 'theme');\n this.#applyThemeClass(previous, settings, 'mode', 'supportedModes');\n this.#applyThemeClass(previous, settings, 'spacing', 'supportedSpacing');\n if (this.#hostEl) {\n // Validate branding support\n if (settings.brand && !settings.theme.supportsBranding) {\n throw new Error('Branding is not supported for the given theme.');\n }\n this.#brandSvc.updateBrand(this.#hostEl, this.#getRenderer(), settings.brand ??\n (settings.theme === SkyTheme.presets.modern\n ? new SkyThemeBrand('blackbaud', '1.0.0')\n : undefined), previous?.brand);\n }\n this.#settings.next({\n currentSettings: settings,\n previousSettings: previous,\n });\n this.#current = settings;\n }\n registerBrand(brand) {\n this.#brandSvc.registerBrand(brand);\n }\n unregisterBrand(name) {\n this.#brandSvc.unregisterBrand(name);\n }\n #updateThemeProperty(property, value) {\n const current = this.#current;\n assertCurrentSettings(current);\n const currentTheme = current.theme;\n let supportedValues = undefined;\n switch (property) {\n case 'mode':\n supportedValues = currentTheme.supportedModes;\n break;\n case 'spacing':\n supportedValues = currentTheme.supportedSpacing;\n break;\n default:\n }\n if (supportedValues && value && !supportedValues.includes(value)) {\n throw new Error(`The current theme does not support the specified ${property}.`);\n }\n const updatedSettings = {\n theme: current.theme,\n mode: current.mode,\n spacing: current.spacing,\n brand: current.brand,\n [property]: value,\n };\n this.setTheme(new SkyThemeSettings(updatedSettings.theme, updatedSettings.mode, updatedSettings.spacing, updatedSettings.brand));\n }\n #applyThemeClass(previous, current, prop, supportedProp) {\n const currentSetting = current[prop];\n const previousClass = previous?.[prop]?.hostClass;\n const currentClass = currentSetting?.hostClass;\n if (!previousClass || previousClass !== currentClass) {\n this.#updateHostClass(previousClass, currentClass, currentSetting, current, supportedProp);\n }\n }\n #updateHostClass(previousClass, currentClass, currentSetting, current, supportedProp) {\n if (previousClass) {\n this.#removeHostClass(previousClass);\n }\n if (currentClass &&\n this.#isSupportedProperty(currentSetting, current, supportedProp)) {\n this.#addHostClass(currentClass);\n }\n }\n #addHostClass(className) {\n this.#getRenderer().addClass(this.#hostEl, className);\n }\n #removeHostClass(className) {\n this.#getRenderer().removeClass(this.#hostEl, className);\n }\n #getRenderer() {\n if (!this.#renderer) {\n throw new Error('Renderer is not initialized. Have you called the theme service `init` method?');\n }\n return this.#renderer;\n }\n #isSupportedProperty(currentSetting, current, supportedProp) {\n return (!supportedProp ||\n ((currentSetting instanceof SkyThemeMode ||\n currentSetting instanceof SkyThemeSpacing) &&\n current.theme[supportedProp].includes(currentSetting)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbEQsU0FBUyxxQkFBcUIsQ0FDNUIsZUFBNkM7SUFFN0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXpDOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUErQjtJQUV2QyxPQUFPLENBQWtCO0lBRXpCLFNBQVMsQ0FBd0I7SUFFakMsU0FBUyxDQUF3QztJQUVqRCxhQUFhLENBQXFDO0lBRWxEO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJ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YUFBYSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELElBQ0UsWUFBWTtZQUNaLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxFQUNqRSxDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRUFBK0UsQ0FDaEYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELG9CQUFvQixDQUNsQixjQUthLEVBQ2IsT0FBeUIsRUFDekIsYUFBcUQ7UUFFckQsT0FBTyxDQUNMLENBQUMsYUFBYTtZQUNkLENBQUMsQ0FBQyxjQUFjLFlBQVksWUFBWTtnQkFDdEMsY0FBYyxZQUFZLGVBQWUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7OEdBelJVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFJlbmRlcmVyMiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5VGhlbWUgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcbmltcG9ydCB7IFNreVRoZW1lQnJhbmRTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS1icmFuZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRoZW1lTW9kZSB9IGZyb20gJy4vdGhlbWUtbW9kZSc7XG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnLi90aGVtZS1zZXR0aW5ncyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlIH0gZnJvbSAnLi90aGVtZS1zZXR0aW5ncy1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5VGhlbWVTcGFjaW5nIH0gZnJvbSAnLi90aGVtZS1zcGFjaW5nJztcblxuZnVuY3Rpb24gYXNzZXJ0Q3VycmVudFNldHRpbmdzKFxuICBjdXJyZW50U2V0dGluZ3M6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQsXG4pOiBhc3NlcnRzIGN1cnJlbnRTZXR0aW5ncyBpcyBTa3lUaGVtZVNldHRpbmdzIHtcbiAgaWYgKCFjdXJyZW50U2V0dGluZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZW1lIHNlcnZpY2UgaXMgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3ZpZGVzIG1ldGhvZHMgZm9yIHVwZGF0aW5nIGFuZCBoYW5kbGluZyBjaGFuZ2VzIHRvIHRoZSBjdXJyZW50IHRoZW1lLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVTZXJ2aWNlIHtcbiAgI2JyYW5kU3ZjID0gaW5qZWN0KFNreVRoZW1lQnJhbmRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogTm90aWZpZXMgY29uc3VtZXJzIHdoZW4gdGhlIGN1cnJlbnQgdGhlbWUgc2V0dGluZ3MgaGF2ZSBjaGFuZ2VkLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc0NoYW5nZSgpOiBPYnNlcnZhYmxlPFNreVRoZW1lU2V0dGluZ3NDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy4jX3NldHRpbmdzT2JzO1xuICB9XG5cbiAgI2N1cnJlbnQ6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQ7XG5cbiAgI2hvc3RFbDogYW55IHwgdW5kZWZpbmVkO1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyIHwgdW5kZWZpbmVkO1xuXG4gICNzZXR0aW5nczogUmVwbGF5U3ViamVjdDxTa3lUaGVtZVNldHRpbmdzQ2hhbmdlPjtcblxuICAjX3NldHRpbmdzT2JzOiBPYnNlcnZhYmxlPFNreVRoZW1lU2V0dGluZ3NDaGFuZ2U+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3NldHRpbmdzID0gbmV3IFJlcGxheVN1YmplY3Q8U2t5VGhlbWVTZXR0aW5nc0NoYW5nZT4oMSk7XG4gICAgdGhpcy4jX3NldHRpbmdzT2JzID0gdGhpcy4jc2V0dGluZ3MuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHRoZW1lIHNlcnZpY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkXG4gICAqIGZyb20gYSBob3N0IGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGl0cyBvd24gdGhlbWUgdG8gY2hpbGQgY29tcG9uZW50cy5cbiAgICogQHBhcmFtIGhvc3RFbCBUaGUgaG9zdCBlbGVtZW50IHVuZGVyIHdoaWNoIHRoZW1lZCBjb21wb25lbnRzIGFyZSByZW5kZXJlZC5cbiAgICogQHBhcmFtIHJlbmRlcmVyIEEgUmVuZGVyZXIyIGluc3RhbmNlIGZvciB1cGRhdGluZyB0aGUgaG9zdCBlbGVtZW50IHdpdGggdGhlbWUgY2hhbmdlcy5cbiAgICogQHBhcmFtIHRoZW1lIFRoZSBpbml0aWFsIHRoZW1lLlxuICAgKiBAcGFyYW0gcmVnaXN0ZXJlZEJyYW5kcyBBbiBpbml0aWFsIHNldCBvZiBicmFuZHMgdG8gcmVnaXN0ZXIuIEFkZGl0aW9uYWwgYnJhbmRzIGNhblxuICAgKiBiZSByZWdpc3RlcmVkIGxhdGVyIHZpYSB0aGUgcmVnaXN0ZXJCcmFuZCgpIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBpbml0KFxuICAgIGhvc3RFbDogYW55LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgdGhlbWU6IFNreVRoZW1lU2V0dGluZ3MsXG4gICAgcmVnaXN0ZXJlZEJyYW5kcz86IFNreVRoZW1lQnJhbmRbXSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jaG9zdEVsID0gaG9zdEVsO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG5cbiAgICBpZiAocmVnaXN0ZXJlZEJyYW5kcykge1xuICAgICAgZm9yIChjb25zdCBicmFuZCBvZiByZWdpc3RlcmVkQnJhbmRzKSB7XG4gICAgICAgIHRoaXMuI2JyYW5kU3ZjLnJlZ2lzdGVyQnJhbmQoYnJhbmQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0VGhlbWUodGhlbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBjdXJyZW50IHRoZW1lIHNlcnZpY2UuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gYSBob3N0IGNvbXBvbmVudCB0aGF0XG4gICAqIHByb3ZpZGVzIGl0cyBvd24gdGhlbWUgdG8gY2hpbGQgY29tcG9uZW50cy5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3NldHRpbmdzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jYnJhbmRTdmMuZGVzdHJveSgpO1xuXG4gICAgdGhpcy4jaG9zdEVsID0gdGhpcy4jcmVuZGVyZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCB0aGVtZSBtb2RlLlxuICAgKiBAcGFyYW0gbW9kZSBUaGUgbmV3IHRoZW1lIG1vZGUgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWVNb2RlKG1vZGU6IFNreVRoZW1lTW9kZSk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVRoZW1lUHJvcGVydHkoJ21vZGUnLCBtb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHRoZW1lIHNwYWNpbmcuXG4gICAqIEBwYXJhbSBzcGFjaW5nIFRoZSBuZXcgdGhlbWUgc3BhY2luZyB0byBhcHBseS5cbiAgICovXG4gIHB1YmxpYyBzZXRUaGVtZVNwYWNpbmcoc3BhY2luZzogU2t5VGhlbWVTcGFjaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlVGhlbWVQcm9wZXJ0eSgnc3BhY2luZycsIHNwYWNpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgdGhlbWUgYnJhbmQuXG4gICAqIEBwYXJhbSBicmFuZCBUaGUgbmV3IHRoZW1lIGJyYW5kIHRvIGFwcGx5LCBvciB1bmRlZmluZWQgdG8gY2xlYXIgdGhlIGN1cnJlbnQgYnJhbmQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWVCcmFuZChicmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVRoZW1lUHJvcGVydHkoJ2JyYW5kJywgYnJhbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgdGhlbWUgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgbmV3IHRoZW1lIHNldHRpbmdzIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHNldFRoZW1lKHNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzKTogdm9pZDtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCB0aGVtZS5cbiAgICogQHBhcmFtIHRoZW1lIFRoZSBuZXcgdGhlbWUgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWUodGhlbWU6IFNreVRoZW1lKTogdm9pZDtcblxuICBwdWJsaWMgc2V0VGhlbWUoc2V0dGluZ3NPclRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgU2t5VGhlbWUpOiB2b2lkIHtcbiAgICBsZXQgc2V0dGluZ3M6IFNreVRoZW1lU2V0dGluZ3M7XG5cbiAgICBpZiAoc2V0dGluZ3NPclRoZW1lIGluc3RhbmNlb2YgU2t5VGhlbWVTZXR0aW5ncykge1xuICAgICAgc2V0dGluZ3MgPSBzZXR0aW5nc09yVGhlbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLiNjdXJyZW50O1xuXG4gICAgICBhc3NlcnRDdXJyZW50U2V0dGluZ3MoY3VycmVudCk7XG5cbiAgICAgIHNldHRpbmdzID0gbmV3IFNreVRoZW1lU2V0dGluZ3MoXG4gICAgICAgIHNldHRpbmdzT3JUaGVtZSxcbiAgICAgICAgY3VycmVudC5tb2RlLFxuICAgICAgICBjdXJyZW50LnNwYWNpbmcsXG4gICAgICAgIHNldHRpbmdzT3JUaGVtZS5zdXBwb3J0c0JyYW5kaW5nID8gY3VycmVudC5icmFuZCA6IHVuZGVmaW5lZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLiNjdXJyZW50O1xuXG4gICAgdGhpcy4jYXBwbHlUaGVtZUNsYXNzKHByZXZpb3VzLCBzZXR0aW5ncywgJ3RoZW1lJyk7XG4gICAgdGhpcy4jYXBwbHlUaGVtZUNsYXNzKHByZXZpb3VzLCBzZXR0aW5ncywgJ21vZGUnLCAnc3VwcG9ydGVkTW9kZXMnKTtcbiAgICB0aGlzLiNhcHBseVRoZW1lQ2xhc3MocHJldmlvdXMsIHNldHRpbmdzLCAnc3BhY2luZycsICdzdXBwb3J0ZWRTcGFjaW5nJyk7XG5cbiAgICBpZiAodGhpcy4jaG9zdEVsKSB7XG4gICAgICAvLyBWYWxpZGF0ZSBicmFuZGluZyBzdXBwb3J0XG4gICAgICBpZiAoc2V0dGluZ3MuYnJhbmQgJiYgIXNldHRpbmdzLnRoZW1lLnN1cHBvcnRzQnJhbmRpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCcmFuZGluZyBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgZ2l2ZW4gdGhlbWUuJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2JyYW5kU3ZjLnVwZGF0ZUJyYW5kKFxuICAgICAgICB0aGlzLiNob3N0RWwsXG4gICAgICAgIHRoaXMuI2dldFJlbmRlcmVyKCksXG4gICAgICAgIHNldHRpbmdzLmJyYW5kID8/XG4gICAgICAgICAgKHNldHRpbmdzLnRoZW1lID09PSBTa3lUaGVtZS5wcmVzZXRzLm1vZGVyblxuICAgICAgICAgICAgPyBuZXcgU2t5VGhlbWVCcmFuZCgnYmxhY2tiYXVkJywgJzEuMC4wJylcbiAgICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgICAgcHJldmlvdXM/LmJyYW5kLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNzZXR0aW5ncy5uZXh0KHtcbiAgICAgIGN1cnJlbnRTZXR0aW5nczogc2V0dGluZ3MsXG4gICAgICBwcmV2aW91c1NldHRpbmdzOiBwcmV2aW91cyxcbiAgICB9KTtcblxuICAgIHRoaXMuI2N1cnJlbnQgPSBzZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckJyYW5kKGJyYW5kOiBTa3lUaGVtZUJyYW5kKTogdm9pZCB7XG4gICAgdGhpcy4jYnJhbmRTdmMucmVnaXN0ZXJCcmFuZChicmFuZCk7XG4gIH1cblxuICBwdWJsaWMgdW5yZWdpc3RlckJyYW5kKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2JyYW5kU3ZjLnVucmVnaXN0ZXJCcmFuZChuYW1lKTtcbiAgfVxuXG4gICN1cGRhdGVUaGVtZVByb3BlcnR5KFxuICAgIHByb3BlcnR5OiAnbW9kZScgfCAnc3BhY2luZycgfCAnYnJhbmQnLFxuICAgIHZhbHVlOiBTa3lUaGVtZU1vZGUgfCBTa3lUaGVtZVNwYWNpbmcgfCBTa3lUaGVtZUJyYW5kIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy4jY3VycmVudDtcblxuICAgIGFzc2VydEN1cnJlbnRTZXR0aW5ncyhjdXJyZW50KTtcblxuICAgIGNvbnN0IGN1cnJlbnRUaGVtZSA9IGN1cnJlbnQudGhlbWU7XG5cbiAgICBsZXQgc3VwcG9ydGVkVmFsdWVzOiBTa3lUaGVtZU1vZGVbXSB8IFNreVRoZW1lU3BhY2luZ1tdIHwgdW5kZWZpbmVkID1cbiAgICAgIHVuZGVmaW5lZDtcblxuICAgIHN3aXRjaCAocHJvcGVydHkpIHtcbiAgICAgIGNhc2UgJ21vZGUnOlxuICAgICAgICBzdXBwb3J0ZWRWYWx1ZXMgPSBjdXJyZW50VGhlbWUuc3VwcG9ydGVkTW9kZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3BhY2luZyc6XG4gICAgICAgIHN1cHBvcnRlZFZhbHVlcyA9IGN1cnJlbnRUaGVtZS5zdXBwb3J0ZWRTcGFjaW5nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnRlZFZhbHVlcyAmJiB2YWx1ZSAmJiAhc3VwcG9ydGVkVmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIGN1cnJlbnQgdGhlbWUgZG9lcyBub3Qgc3VwcG9ydCB0aGUgc3BlY2lmaWVkICR7cHJvcGVydHl9LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTZXR0aW5ncyA9IHtcbiAgICAgIHRoZW1lOiBjdXJyZW50LnRoZW1lLFxuICAgICAgbW9kZTogY3VycmVudC5tb2RlLFxuICAgICAgc3BhY2luZzogY3VycmVudC5zcGFjaW5nLFxuICAgICAgYnJhbmQ6IGN1cnJlbnQuYnJhbmQsXG4gICAgICBbcHJvcGVydHldOiB2YWx1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRUaGVtZShcbiAgICAgIG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgICB1cGRhdGVkU2V0dGluZ3MudGhlbWUsXG4gICAgICAgIHVwZGF0ZWRTZXR0aW5ncy5tb2RlLFxuICAgICAgICB1cGRhdGVkU2V0dGluZ3Muc3BhY2luZyxcbiAgICAgICAgdXBkYXRlZFNldHRpbmdzLmJyYW5kLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgI2FwcGx5VGhlbWVDbGFzcyhcbiAgICBwcmV2aW91czogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCxcbiAgICBjdXJyZW50OiBTa3lUaGVtZVNldHRpbmdzLFxuICAgIHByb3A6ICd0aGVtZScgfCAnbW9kZScgfCAnc3BhY2luZycsXG4gICAgc3VwcG9ydGVkUHJvcD86ICdzdXBwb3J0ZWRNb2RlcycgfCAnc3VwcG9ydGVkU3BhY2luZycsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRTZXR0aW5nID0gY3VycmVudFtwcm9wXTtcbiAgICBjb25zdCBwcmV2aW91c0NsYXNzID0gcHJldmlvdXM/Lltwcm9wXT8uaG9zdENsYXNzO1xuICAgIGNvbnN0IGN1cnJlbnRDbGFzcyA9IGN1cnJlbnRTZXR0aW5nPy5ob3N0Q2xhc3M7XG5cbiAgICBpZiAoIXByZXZpb3VzQ2xhc3MgfHwgcHJldmlvdXNDbGFzcyAhPT0gY3VycmVudENsYXNzKSB7XG4gICAgICB0aGlzLiN1cGRhdGVIb3N0Q2xhc3MoXG4gICAgICAgIHByZXZpb3VzQ2xhc3MsXG4gICAgICAgIGN1cnJlbnRDbGFzcyxcbiAgICAgICAgY3VycmVudFNldHRpbmcsXG4gICAgICAgIGN1cnJlbnQsXG4gICAgICAgIHN1cHBvcnRlZFByb3AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVIb3N0Q2xhc3MoXG4gICAgcHJldmlvdXNDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnRDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnRTZXR0aW5nOlxuICAgICAgfCBTa3lUaGVtZVxuICAgICAgfCBTa3lUaGVtZU1vZGVcbiAgICAgIHwgU2t5VGhlbWVTcGFjaW5nXG4gICAgICB8IFNreVRoZW1lQnJhbmRcbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnQ6IFNreVRoZW1lU2V0dGluZ3MsXG4gICAgc3VwcG9ydGVkUHJvcD86ICdzdXBwb3J0ZWRNb2RlcycgfCAnc3VwcG9ydGVkU3BhY2luZycsXG4gICk6IHZvaWQge1xuICAgIGlmIChwcmV2aW91c0NsYXNzKSB7XG4gICAgICB0aGlzLiNyZW1vdmVIb3N0Q2xhc3MocHJldmlvdXNDbGFzcyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY3VycmVudENsYXNzICYmXG4gICAgICB0aGlzLiNpc1N1cHBvcnRlZFByb3BlcnR5KGN1cnJlbnRTZXR0aW5nLCBjdXJyZW50LCBzdXBwb3J0ZWRQcm9wKVxuICAgICkge1xuICAgICAgdGhpcy4jYWRkSG9zdENsYXNzKGN1cnJlbnRDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgI2FkZEhvc3RDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2dldFJlbmRlcmVyKCkuYWRkQ2xhc3ModGhpcy4jaG9zdEVsLCBjbGFzc05hbWUpO1xuICB9XG5cbiAgI3JlbW92ZUhvc3RDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2dldFJlbmRlcmVyKCkucmVtb3ZlQ2xhc3ModGhpcy4jaG9zdEVsLCBjbGFzc05hbWUpO1xuICB9XG5cbiAgI2dldFJlbmRlcmVyKCk6IFJlbmRlcmVyMiB7XG4gICAgaWYgKCF0aGlzLiNyZW5kZXJlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVuZGVyZXIgaXMgbm90IGluaXRpYWxpemVkLiBIYXZlIHlvdSBjYWxsZWQgdGhlIHRoZW1lIHNlcnZpY2UgYGluaXRgIG1ldGhvZD8nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI3JlbmRlcmVyO1xuICB9XG5cbiAgI2lzU3VwcG9ydGVkUHJvcGVydHkoXG4gICAgY3VycmVudFNldHRpbmc6XG4gICAgICB8IFNreVRoZW1lXG4gICAgICB8IFNreVRoZW1lTW9kZVxuICAgICAgfCBTa3lUaGVtZVNwYWNpbmdcbiAgICAgIHwgU2t5VGhlbWVCcmFuZFxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgY3VycmVudDogU2t5VGhlbWVTZXR0aW5ncyxcbiAgICBzdXBwb3J0ZWRQcm9wPzogJ3N1cHBvcnRlZE1vZGVzJyB8ICdzdXBwb3J0ZWRTcGFjaW5nJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICFzdXBwb3J0ZWRQcm9wIHx8XG4gICAgICAoKGN1cnJlbnRTZXR0aW5nIGluc3RhbmNlb2YgU2t5VGhlbWVNb2RlIHx8XG4gICAgICAgIGN1cnJlbnRTZXR0aW5nIGluc3RhbmNlb2YgU2t5VGhlbWVTcGFjaW5nKSAmJlxuICAgICAgICBjdXJyZW50LnRoZW1lW3N1cHBvcnRlZFByb3BdLmluY2x1ZGVzKGN1cnJlbnRTZXR0aW5nKSlcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable, Optional } from '@angular/core';\nimport FontFaceObserver from 'fontfaceobserver';\nimport { take } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theming/theme.service\";\nexport class SkyAppStyleLoader {\n static { this.LOAD_TIMEOUT = 3000; }\n #themeSvc;\n constructor(themeSvc) {\n this.isLoaded = false;\n this.#themeSvc = themeSvc;\n }\n loadStyles() {\n if (this.isLoaded) {\n return Promise.resolve();\n }\n let themePromise;\n if (this.#themeSvc) {\n themePromise = this.#themeSvc.settingsChange.pipe(take(1)).toPromise();\n }\n else {\n themePromise = Promise.resolve();\n }\n const blackbaudSans = new FontFaceObserver('BLKB Sans');\n return Promise.all([\n blackbaudSans.load(undefined, SkyAppStyleLoader.LOAD_TIMEOUT),\n themePromise,\n ])\n .then(() => {\n this.isLoaded = true;\n })\n .catch((error) => {\n // Errors loading the font should not stop the page from rendering.\n // Passing the error along in case the client wants to do something with it.\n return Promise.resolve({\n error,\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppStyleLoader, deps: [{ token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppStyleLoader, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppStyleLoader, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyThemeService, decorators: [{\n type: Optional\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvc3R5bGUtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sZ0JBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPdEMsTUFBTSxPQUFPLGlCQUFpQjthQUNMLGlCQUFZLEdBQUcsSUFBSSxBQUFQLENBQVE7SUFHM0MsU0FBUyxDQUE4QjtJQUV2QyxZQUF3QixRQUEwQjtRQUozQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksWUFBMEIsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDO1lBQzdELFlBQVk7U0FDYixDQUFDO2FBQ0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsbUVBQW1FO1lBQ25FLDRFQUE0RTtZQUM1RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCLEtBQUs7YUFDTixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdkNVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgRm9udEZhY2VPYnNlcnZlciBmcm9tICdmb250ZmFjZW9ic2VydmVyJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWluZy90aGVtZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcFN0eWxlTG9hZGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0FEX1RJTUVPVVQgPSAzMDAwO1xuICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSkge1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG4gIH1cblxuICBwdWJsaWMgbG9hZFN0eWxlcygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmlzTG9hZGVkKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgbGV0IHRoZW1lUHJvbWlzZTogUHJvbWlzZTxhbnk+O1xuXG4gICAgaWYgKHRoaXMuI3RoZW1lU3ZjKSB7XG4gICAgICB0aGVtZVByb21pc2UgPSB0aGlzLiN0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGVtZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBibGFja2JhdWRTYW5zID0gbmV3IEZvbnRGYWNlT2JzZXJ2ZXIoJ0JMS0IgU2FucycpO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgIGJsYWNrYmF1ZFNhbnMubG9hZCh1bmRlZmluZWQsIFNreUFwcFN0eWxlTG9hZGVyLkxPQURfVElNRU9VVCksXG4gICAgICB0aGVtZVByb21pc2UsXG4gICAgXSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAvLyBFcnJvcnMgbG9hZGluZyB0aGUgZm9udCBzaG91bGQgbm90IHN0b3AgdGhlIHBhZ2UgZnJvbSByZW5kZXJpbmcuXG4gICAgICAgIC8vIFBhc3NpbmcgdGhlIGVycm9yIGFsb25nIGluIGNhc2UgdGhlIGNsaWVudCB3YW50cyB0byBkbyBzb21ldGhpbmcgd2l0aCBpdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, Optional, } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theme.service\";\n/**\n * Component to add classes conditionally based on the current theme.\n *\n * If the directive is within a `skyTheme` directive, it uses settings from that directive.\n */\nexport class SkyThemeClassDirective {\n /**\n * The HTML class attribute.\n *\n * @param value\n */\n set class(value) {\n this.#removeInitialClasses(this.#initialClasses);\n this.#initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this.#applyInitialClasses(this.#initialClasses);\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n /**\n * An object with class names in a string for keys, and theme names (e.g. 'default' or 'modern') as values.\n *\n * @param value\n */\n set skyThemeClass(value) {\n this.#removeSkyThemeClassMap(this.#skyThemeClassMap);\n this.#applyInitialClasses(this.#initialClasses);\n this.#skyThemeClassMap = value;\n /* istanbul ignore else */\n if (this.#skyThemeClassMap) {\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n }\n set #themeSettings(settings) {\n this.#currentTheme = settings;\n this.#removeSkyThemeClassMap(this.#skyThemeClassMap);\n this.#applyInitialClasses(this.#initialClasses);\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n #currentTheme;\n #ngUnsubscribe = new Subject();\n #initialClasses = [];\n #skyThemeClassMap;\n #ngEl;\n #renderer;\n constructor(ngEl, renderer, themeSvc) {\n this.#ngEl = ngEl;\n this.#renderer = renderer;\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#themeSettings = settingsChange.currentSettings;\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #applyInitialClasses(classes) {\n /* istanbul ignore else */\n if (classes) {\n classes.forEach((className) => this.#toggleClass(className, true));\n }\n }\n #applySkyThemeClassMap(skyThemeClassMap) {\n if (skyThemeClassMap) {\n const themeName = this.#currentTheme?.theme.name || 'default';\n Object.keys(skyThemeClassMap).forEach((className) => {\n const enabled = themeName === skyThemeClassMap[className];\n this.#toggleClass(className, enabled);\n });\n }\n }\n #removeInitialClasses(classes) {\n /* istanbul ignore else */\n if (classes) {\n classes.forEach((className) => this.#toggleClass(className, false));\n }\n }\n #removeSkyThemeClassMap(skyThemeClassMap) {\n if (skyThemeClassMap) {\n Object.keys(skyThemeClassMap).forEach((className) => this.#toggleClass(className, false));\n }\n }\n #toggleClass(className, enabled) {\n className = className.trim();\n /* istanbul ignore else */\n if (className) {\n className.split(/\\s+/g).forEach((classNameItem) => {\n if (enabled) {\n this.#renderer.addClass(this.#ngEl.nativeElement, classNameItem);\n }\n else {\n this.#renderer.removeClass(this.#ngEl.nativeElement, classNameItem);\n }\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeClassDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeClassDirective, isStandalone: false, selector: \"[skyThemeClass]\", inputs: { class: \"class\", skyThemeClass: \"skyThemeClass\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeClassDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeClass]',\n standalone: false,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SkyThemeService, decorators: [{\n type: Optional\n }] }], propDecorators: { class: [{\n type: Input\n }], skyThemeClass: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY2xhc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS1jbGFzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBRUwsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPM0M7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFDakM7Ozs7T0FJRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ1csYUFBYSxDQUFDLEtBQW1DO1FBQzFELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUF5QixDQUFDO1FBRW5ELDBCQUEwQjtRQUMxQixJ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QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUIsRUFBRSxPQUFnQjtRQUM5QyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLDBCQUEwQjtRQUMxQixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0FsSFUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFtREksUUFBUTt5Q0EzQ0EsS0FBSztzQkFEZixLQUFLO2dCQWNLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICcuL3RoZW1lLXNldHRpbmdzJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWUuc2VydmljZSc7XG5cbnR5cGUgU2t5VGhlbWVDbGFzc01hcCA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQ29tcG9uZW50IHRvIGFkZCBjbGFzc2VzIGNvbmRpdGlvbmFsbHkgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGhlbWUuXG4gKlxuICogSWYgdGhlIGRpcmVjdGl2ZSBpcyB3aXRoaW4gYSBgc2t5VGhlbWVgIGRpcmVjdGl2ZSwgaXQgdXNlcyBzZXR0aW5ncyBmcm9tIHRoYXQgZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5VGhlbWVDbGFzc10nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVDbGFzc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgSFRNTCBjbGFzcyBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcmVtb3ZlSW5pdGlhbENsYXNzZXModGhpcy4jaW5pdGlhbENsYXNzZXMpO1xuICAgIHRoaXMuI2luaXRpYWxDbGFzc2VzID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnNwbGl0KC9cXHMrLykgOiBbXTtcbiAgICB0aGlzLiNhcHBseUluaXRpYWxDbGFzc2VzKHRoaXMuI2luaXRpYWxDbGFzc2VzKTtcbiAgICB0aGlzLiNhcHBseVNreVRoZW1lQ2xhc3NNYXAodGhpcy4jc2t5VGhlbWVDbGFzc01hcCk7XG4gIH1cblxuICAvKipcbiAgICogQW4gb2JqZWN0IHdpdGggY2xhc3MgbmFtZXMgaW4gYSBzdHJpbmcgZm9yIGtleXMsIGFuZCB0aGVtZSBuYW1lcyAoZS5nLiAnZGVmYXVsdCcgb3IgJ21vZGVybicpIGFzIHZhbHVlcy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreVRoZW1lQ2xhc3ModmFsdWU6IFNreVRoZW1lQ2xhc3NNYXAgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNyZW1vdmVTa3lUaGVtZUNsYXNzTWFwKHRoaXMuI3NreVRoZW1lQ2xhc3NNYXApO1xuICAgIHRoaXMuI2FwcGx5SW5pdGlhbENsYXNzZXModGhpcy4jaW5pdGlhbENsYXNzZXMpO1xuXG4gICAgdGhpcy4jc2t5VGhlbWVDbGFzc01hcCA9IHZhbHVlIGFzIFNreVRoZW1lQ2xhc3NNYXA7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNza3lUaGVtZUNsYXNzTWFwKSB7XG4gICAgICB0aGlzLiNhcHBseVNreVRoZW1lQ2xhc3NNYXAodGhpcy4jc2t5VGhlbWVDbGFzc01hcCk7XG4gICAgfVxuICB9XG5cbiAgc2V0ICN0aGVtZVNldHRpbmdzKHNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzKSB7XG4gICAgdGhpcy4jY3VycmVudFRoZW1lID0gc2V0dGluZ3M7XG4gICAgdGhpcy4jcmVtb3ZlU2t5VGhlbWVDbGFzc01hcCh0aGlzLiNza3lUaGVtZUNsYXNzTWFwKTtcbiAgICB0aGlzLiNhcHBseUluaXRpYWxDbGFzc2VzKHRoaXMuI2luaXRpYWxDbGFzc2VzKTtcbiAgICB0aGlzLiNhcHBseVNreVRoZW1lQ2xhc3NNYXAodGhpcy4jc2t5VGhlbWVDbGFzc01hcCk7XG4gIH1cblxuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNpbml0aWFsQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgI3NreVRoZW1lQ2xhc3NNYXA6IFNreVRoZW1lQ2xhc3NNYXAgfCB1bmRlZmluZWQ7XG5cbiAgI25nRWw6IEVsZW1lbnRSZWY7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5nRWw6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jbmdFbCA9IG5nRWw7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICBpZiAodGhlbWVTdmMpIHtcbiAgICAgIHRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3NDaGFuZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLiN0aGVtZVNldHRpbmdzID0gc2V0dGluZ3NDaGFuZ2UuY3VycmVudFNldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI2FwcGx5SW5pdGlhbENsYXNzZXMoY2xhc3Nlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjbGFzc2VzKSB7XG4gICAgICBjbGFzc2VzLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gdGhpcy4jdG9nZ2xlQ2xhc3MoY2xhc3NOYW1lLCB0cnVlKSk7XG4gICAgfVxuICB9XG5cbiAgI2FwcGx5U2t5VGhlbWVDbGFzc01hcChza3lUaGVtZUNsYXNzTWFwOiBTa3lUaGVtZUNsYXNzTWFwIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHNreVRoZW1lQ2xhc3NNYXApIHtcbiAgICAgIGNvbnN0IHRoZW1lTmFtZSA9IHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgICBPYmplY3Qua2V5cyhza3lUaGVtZUNsYXNzTWFwKS5mb3JFYWNoKChjbGFzc05hbWUpID0+IHtcbiAgICAgICAgY29uc3QgZW5hYmxlZCA9IHRoZW1lTmFtZSA9PT0gc2t5VGhlbWVDbGFzc01hcFtjbGFzc05hbWVdO1xuICAgICAgICB0aGlzLiN0b2dnbGVDbGFzcyhjbGFzc05hbWUsIGVuYWJsZWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3JlbW92ZUluaXRpYWxDbGFzc2VzKGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY2xhc3Nlcykge1xuICAgICAgY2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWUpID0+IHRoaXMuI3RvZ2dsZUNsYXNzKGNsYXNzTmFtZSwgZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlU2t5VGhlbWVDbGFzc01hcChcbiAgICBza3lUaGVtZUNsYXNzTWFwOiBTa3lUaGVtZUNsYXNzTWFwIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBpZiAoc2t5VGhlbWVDbGFzc01hcCkge1xuICAgICAgT2JqZWN0LmtleXMoc2t5VGhlbWVDbGFzc01hcCkuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PlxuICAgICAgICB0aGlzLiN0b2dnbGVDbGFzcyhjbGFzc05hbWUsIGZhbHNlKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3RvZ2dsZUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnRyaW0oKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZS5zcGxpdCgvXFxzKy9nKS5mb3JFYWNoKChjbGFzc05hbWVJdGVtKSA9PiB7XG4gICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy4jbmdFbC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWVJdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLiNuZ0VsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZUl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, Optional, } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theme.service\";\n/**\n * Component that works like `ngIf` to show markup for matching theme.\n *\n * If the directive is within a `skyTheme` directive, it uses settings from that directive.\n */\nexport class SkyThemeIfDirective {\n /**\n * A string that should match the name of a theme, `'default'` or `'modern'`.\n *\n * @param value\n */\n set skyThemeIf(value) {\n this.#context = value;\n this.#updateView();\n }\n #context;\n #currentTheme;\n #ngUnsubscribe = new Subject();\n #hasView = false;\n #templateRef;\n #viewContainer;\n constructor(templateRef, viewContainer, changeDetector, themeSvc) {\n this.#templateRef = templateRef;\n this.#viewContainer = viewContainer;\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#currentTheme = settingsChange.currentSettings;\n this.#updateView();\n // Components that use OnPush change detection will not automatically\n // check for changes when created as a result of a theme change if\n // it happens outside of an Angular change detection cycle. This\n // ensures change detection runs on those components.\n changeDetector.markForCheck();\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #updateView() {\n const themeName = this.#currentTheme?.theme.name || 'default';\n const condition = this.#context && themeName === this.#context;\n if (condition && !this.#hasView) {\n this.#viewContainer.createEmbeddedView(this.#templateRef);\n this.#hasView = true;\n }\n else if (!condition && this.#hasView) {\n this.#viewContainer.clear();\n this.#hasView = false;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIfDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeIfDirective, isStandalone: false, selector: \"[skyThemeIf]\", inputs: { skyThemeIf: \"skyThemeIf\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIfDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeIf]',\n standalone: false,\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i1.SkyThemeService, decorators: [{\n type: Optional\n }] }], propDecorators: { skyThemeIf: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS1pZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLM0M7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7T0FJRztJQUNILElBQ1csVUFBVSxDQUFDLEtBQXVDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFxQjtJQUM3QixhQUFhLENBQStCO0lBQzVDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3JDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFakIsWUFBWSxDQUF1QjtJQUNuQyxjQUFjLENBQW1CO0lBRWpDLFlBQ0UsV0FBaUMsRUFDakMsYUFBK0IsRUFDL0IsY0FBaUMsRUFDckIsUUFBMEI7UUFFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxjQUFjO2lCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVuQixxRUFBcUU7Z0JBQ3JFLGtFQUFrRTtnQkFDbEUsZ0VBQWdFO2dCQUNoRSxxREFBcUQ7Z0JBQ3JELGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0QsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7OEdBM0RVLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQXlCSSxRQUFRO3lDQWpCQSxVQUFVO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnLi90aGVtZS1zZXR0aW5ncyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICcuL3RoZW1lLnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHdvcmtzIGxpa2UgYG5nSWZgIHRvIHNob3cgbWFya3VwIGZvciBtYXRjaGluZyB0aGVtZS5cbiAqXG4gKiBJZiB0aGUgZGlyZWN0aXZlIGlzIHdpdGhpbiBhIGBza3lUaGVtZWAgZGlyZWN0aXZlLCBpdCB1c2VzIHNldHRpbmdzIGZyb20gdGhhdCBkaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUaGVtZUlmXScsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaGVtZUlmRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGEgdGhlbWUsIGAnZGVmYXVsdCdgIG9yIGAnbW9kZXJuJ2AuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lUaGVtZUlmKHZhbHVlOiAnZGVmYXVsdCcgfCAnbW9kZXJuJyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2NvbnRleHQgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVWaWV3KCk7XG4gIH1cblxuICAjY29udGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNoYXNWaWV3ID0gZmFsc2U7XG5cbiAgI3RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgI3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiN0ZW1wbGF0ZVJlZiA9IHRlbXBsYXRlUmVmO1xuICAgIHRoaXMuI3ZpZXdDb250YWluZXIgPSB2aWV3Q29udGFpbmVyO1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgICB0aGlzLiN1cGRhdGVWaWV3KCk7XG5cbiAgICAgICAgICAvLyBDb21wb25lbnRzIHRoYXQgdXNlIE9uUHVzaCBjaGFuZ2UgZGV0ZWN0aW9uIHdpbGwgbm90IGF1dG9tYXRpY2FsbHlcbiAgICAgICAgICAvLyBjaGVjayBmb3IgY2hhbmdlcyB3aGVuIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgYSB0aGVtZSBjaGFuZ2UgaWZcbiAgICAgICAgICAvLyBpdCBoYXBwZW5zIG91dHNpZGUgb2YgYW4gQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLiBUaGlzXG4gICAgICAgICAgLy8gZW5zdXJlcyBjaGFuZ2UgZGV0ZWN0aW9uIHJ1bnMgb24gdGhvc2UgY29tcG9uZW50cy5cbiAgICAgICAgICBjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICN1cGRhdGVWaWV3KCk6IHZvaWQge1xuICAgIGNvbnN0IHRoZW1lTmFtZSA9IHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy4jY29udGV4dCAmJiB0aGVtZU5hbWUgPT09IHRoaXMuI2NvbnRleHQ7XG4gICAgaWYgKGNvbmRpdGlvbiAmJiAhdGhpcy4jaGFzVmlldykge1xuICAgICAgdGhpcy4jdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy4jdGVtcGxhdGVSZWYpO1xuICAgICAgdGhpcy4jaGFzVmlldyA9IHRydWU7XG4gICAgfSBlbHNlIGlmICghY29uZGl0aW9uICYmIHRoaXMuI2hhc1ZpZXcpIHtcbiAgICAgIHRoaXMuI3ZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICAgIHRoaXMuI2hhc1ZpZXcgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, } from '@angular/core';\nimport { SkyTheme } from './theme';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeService } from './theme.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theme.service\";\nconst defaultTheme = new SkyThemeSettings(SkyTheme.presets.default, SkyThemeMode.presets.light);\n/**\n * Creates a new instance of `SkyThemeService` to allow a container\n * to have its own theme.\n */\nexport class SkyThemeDirective {\n set skyTheme(value) {\n this.skyThemeOrDefault = value || defaultTheme;\n if (this.#initialized) {\n this.#themeSvc.setTheme(this.skyThemeOrDefault);\n }\n }\n #initialized;\n #elRef;\n #renderer;\n #themeSvc;\n constructor(elRef, renderer, themeSvc) {\n this.skyThemeOrDefault = defaultTheme;\n this.#initialized = false;\n this.#elRef = elRef;\n this.#renderer = renderer;\n this.#themeSvc = themeSvc;\n }\n ngOnInit() {\n this.#themeSvc.init(this.#elRef.nativeElement, this.#renderer, this.skyThemeOrDefault);\n this.#initialized = true;\n }\n ngOnDestroy() {\n this.#themeSvc.destroy();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyThemeService }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeDirective, isStandalone: false, selector: \"[skyTheme]\", inputs: { skyTheme: \"skyTheme\" }, providers: [SkyThemeService], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyTheme]',\n providers: [SkyThemeService],\n standalone: false,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SkyThemeService }], propDecorators: { skyTheme: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRWxELE1BQU0sWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQ3ZDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUN4QixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDM0IsQ0FBQztBQUVGOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsSUFDVyxRQUFRLENBQUMsS0FBbUM7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssSUFBSSxZQUFZLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFJRCxZQUFZLENBQVM7SUFFckIsTUFBTSxDQUFhO0lBQ25CLFNBQVMsQ0FBWTtJQUNyQixTQUFTLENBQWtCO0lBRTNCLFlBQ0UsS0FBaUIsRUFDakIsUUFBbUIsRUFDbkIsUUFBeUI7UUFYcEIsc0JBQWlCLEdBQUcsWUFBWSxDQUFDO1FBRXhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBV25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUN6QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F4Q1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsNEZBSGpCLENBQUMsZUFBZSxDQUFDOzsyRkFHakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjtxSUFHWSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lIH0gZnJvbSAnLi90aGVtZSc7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZGUgfSBmcm9tICcuL3RoZW1lLW1vZGUnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJy4vdGhlbWUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS5zZXJ2aWNlJztcblxuY29uc3QgZGVmYXVsdFRoZW1lID0gbmV3IFNreVRoZW1lU2V0dGluZ3MoXG4gIFNreVRoZW1lLnByZXNldHMuZGVmYXVsdCxcbiAgU2t5VGhlbWVNb2RlLnByZXNldHMubGlnaHQsXG4pO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYFNreVRoZW1lU2VydmljZWAgdG8gYWxsb3cgYSBjb250YWluZXJcbiAqIHRvIGhhdmUgaXRzIG93biB0aGVtZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVRoZW1lXScsXG4gIHByb3ZpZGVyczogW1NreVRoZW1lU2VydmljZV0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaGVtZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lUaGVtZSh2YWx1ZTogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2t5VGhlbWVPckRlZmF1bHQgPSB2YWx1ZSB8fCBkZWZhdWx0VGhlbWU7XG5cbiAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuI3RoZW1lU3ZjLnNldFRoZW1lKHRoaXMuc2t5VGhlbWVPckRlZmF1bHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBza3lUaGVtZU9yRGVmYXVsdCA9IGRlZmF1bHRUaGVtZTtcblxuICAjaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAjZWxSZWY6IEVsZW1lbnRSZWY7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHRoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2VsUmVmID0gZWxSZWY7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICB0aGlzLiN0aGVtZVN2YyA9IHRoZW1lU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3RoZW1lU3ZjLmluaXQoXG4gICAgICB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy4jcmVuZGVyZXIsXG4gICAgICB0aGlzLnNreVRoZW1lT3JEZWZhdWx0LFxuICAgICk7XG5cbiAgICB0aGlzLiNpbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jdGhlbWVTdmMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyThemeClassDirective } from './theming/theme-class.directive';\nimport { SkyThemeIfDirective } from './theming/theme-if.directive';\nimport { SkyThemeDirective } from './theming/theme.directive';\nimport * as i0 from \"@angular/core\";\nexport class SkyThemeModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule, declarations: [SkyThemeClassDirective,\n SkyThemeDirective,\n SkyThemeIfDirective], exports: [SkyThemeClassDirective, SkyThemeDirective, SkyThemeIfDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyThemeClassDirective,\n SkyThemeDirective,\n SkyThemeIfDirective,\n ],\n exports: [SkyThemeClassDirective, SkyThemeDirective, SkyThemeIfDirective],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBVTlELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkFOdkIsc0JBQXNCO1lBQ3RCLGlCQUFpQjtZQUNqQixtQkFBbUIsYUFFWCxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7K0dBRTdELGNBQWM7OzJGQUFkLGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDO2lCQUMxRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICcuL3RoZW1pbmcvdGhlbWUtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVRoZW1lSWZEaXJlY3RpdmUgfSBmcm9tICcuL3RoZW1pbmcvdGhlbWUtaWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi90aGVtaW5nL3RoZW1lLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVRoZW1lQ2xhc3NEaXJlY3RpdmUsXG4gICAgU2t5VGhlbWVEaXJlY3RpdmUsXG4gICAgU2t5VGhlbWVJZkRpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreVRoZW1lQ2xhc3NEaXJlY3RpdmUsIFNreVRoZW1lRGlyZWN0aXZlLCBTa3lUaGVtZUlmRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVNb2R1bGUge31cbiJdfQ==","import { ChangeDetectorRef, Directive, HostBinding, inject, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyThemeService } from '../theming/theme.service';\nimport * as i0 from \"@angular/core\";\nexport class SkyThemeComponentClassDirective {\n #changeDetector;\n #themeService;\n constructor() {\n this.theme = 'sky-cmp-theme-default';\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#themeService = inject(SkyThemeService, { optional: true });\n this.#themeService?.settingsChange\n .pipe(takeUntilDestroyed())\n .subscribe((change) => {\n this.theme = `sky-cmp-theme-${change.currentSettings.theme.name}`;\n this.#changeDetector.markForCheck();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeComponentClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeComponentClassDirective, isStandalone: true, selector: \"[skyThemeClass]\", host: { properties: { \"class\": \"this.theme\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeComponentClassDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeClass]',\n standalone: true,\n }]\n }], ctorParameters: () => [], propDecorators: { theme: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY29tcG9uZW50LWNsYXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtY29tcG9uZW50LWNsYXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLCtCQUErQjtJQUkxQyxlQUFlLENBQTZCO0lBQzVDLGFBQWEsQ0FBK0M7SUFFNUQ7UUFMTyxVQUFLLEdBQUcsdUJBQXVCLENBQUM7UUFFdkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUcxRCxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWM7YUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBZFUsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dEQUdRLEtBQUs7c0JBRFgsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1pbmcvdGhlbWUuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUaGVtZUNsYXNzXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHVibGljIHRoZW1lID0gJ3NreS1jbXAtdGhlbWUtZGVmYXVsdCc7XG5cbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3RoZW1lU2VydmljZSA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jdGhlbWVTZXJ2aWNlPy5zZXR0aW5nc0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgdGhpcy50aGVtZSA9IGBza3ktY21wLXRoZW1lLSR7Y2hhbmdlLmN1cnJlbnRTZXR0aW5ncy50aGVtZS5uYW1lfWA7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { DOCUMENT, DestroyRef, Injectable, NgZone, inject, } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * Provides information about the state of the application's viewport.\n */\nexport class SkyAppViewportService {\n // ESLint doesn't recognize how this is used.\n #updateRequest;\n #reserveItems;\n #conditionallyReserveItems;\n #document;\n #ngZone;\n // Observe elements crossing the browser's viewport boundaries.\n #intersectionObserver;\n #reservedSpaces;\n constructor() {\n /**\n * Updated when the viewport becomes visible. While the page is rendered, the\n * viewport may remain hidden as fonts and styles are loaded asynchronously;\n * this is done to avoid a FOUC (Flash Of Unstyled Content) before the fonts\n * and styles are ready.\n */\n this.visible = new ReplaySubject(1);\n // ESLint doesn't recognize how this is used.\n this.#updateRequest = undefined;\n this.#reserveItems = new Map();\n this.#conditionallyReserveItems = new Map();\n this.#document = inject(DOCUMENT);\n this.#ngZone = inject(NgZone);\n // Observe elements crossing the browser's viewport boundaries.\n this.#intersectionObserver = this.#ngZone.runOutsideAngular(() => new IntersectionObserver(() => this.#ngZone.run(() => this.#updateViewportArea()), { threshold: Array.from({ length: 101 }, (_, i) => i / 100) }));\n this.#reservedSpaces = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n const onScroll = () => {\n if (this.#conditionallyReserveItems.size > 0) {\n this.#updateViewportArea();\n }\n };\n this.#document.addEventListener('scroll', onScroll);\n inject(DestroyRef).onDestroy(() => {\n /* istanbul ignore next */\n if (this.#updateRequest !== undefined) {\n cancelAnimationFrame(this.#updateRequest);\n }\n this.#intersectionObserver.disconnect();\n this.#document.removeEventListener('scroll', onScroll);\n });\n }\n /**\n * Reserves space for components docked to the left, top, right, or bottom of the viewport.\n * @param args\n */\n reserveSpace(args) {\n const item = {\n ...args,\n active: this.#isElementVisible({ ...args, active: false }),\n };\n this.#reserveItems.set(args.id, item);\n this.#watchVisibility(item);\n this.#updateViewportArea();\n }\n /**\n * Removes reserved space for a component by the ID provided when it was reserved.\n * @param id\n */\n unreserveSpace(id) {\n const args = this.#reserveItems.get(id);\n if (args?.reserveForElement) {\n this.#intersectionObserver.unobserve(args.reserveForElement);\n this.#conditionallyReserveItems.delete(args.reserveForElement);\n }\n this.#reserveItems.delete(id);\n this.#updateViewportArea();\n }\n #updateViewportArea() {\n this.#updateRequest ??= requestAnimationFrame(() => {\n this.#updateRequest = undefined;\n const reservedSpaces = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n for (const args of this.#reserveItems.values()) {\n args.active = this.#isElementVisible(args, reservedSpaces);\n if (args.active) {\n reservedSpaces[args.position] += args.size;\n }\n }\n this.#reservedSpaces = reservedSpaces;\n const documentElementStyle = this.#document.documentElement.style;\n for (const [position, size] of Object.entries(reservedSpaces)) {\n documentElementStyle.setProperty(`--sky-viewport-${position}`, size + 'px');\n }\n });\n }\n #watchVisibility(item) {\n if (item.reserveForElement) {\n this.#conditionallyReserveItems.set(item.reserveForElement, item);\n this.#intersectionObserver.observe(item.reserveForElement);\n }\n }\n #isElementVisible(args, reservedSpaces = this\n .#reservedSpaces) {\n if (!args.reserveForElement) {\n return true;\n }\n const rect = args.reserveForElement.getBoundingClientRect();\n if (!rect || !rect.height || !rect.width) {\n return false;\n }\n const midpoint = {\n x: rect.x + Math.floor(rect.width / 2),\n y: rect.y + Math.floor(rect.height / 2),\n };\n if (\n // Vertically in view\n midpoint.y <= window.innerHeight &&\n midpoint.y >= 0 &&\n // Horizontally in view\n midpoint.x <= window.innerWidth &&\n midpoint.x >= 0) {\n // Element is not hidden by another element\n if (args.reserveForElement.contains(this.#document.elementFromPoint(midpoint.x, midpoint.y))) {\n return true;\n }\n // Check if the item's midpoint is visible based on current reserved spaces.\n // Assumes reserved spaces are intended to be additive and not overlapping.\n const threshold = reservedSpaces[args.position];\n switch (args.position) {\n case 'top':\n return midpoint.y >= threshold;\n case 'right':\n return midpoint.x <= window.innerWidth - threshold;\n case 'bottom':\n return midpoint.y <= window.innerHeight - threshold;\n case 'left':\n return midpoint.x >= threshold;\n }\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppViewportService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppViewportService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3ZpZXdwb3J0L3ZpZXdwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFTckM7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBU2hDLDZDQUE2QztJQUM3QyxjQUFjLENBQWlDO0lBQ3RDLGFBQWEsQ0FBc0M7SUFDbkQsMEJBQTBCLENBQXVDO0lBQ2pFLFNBQVMsQ0FBb0I7SUFDN0IsT0FBTyxDQUFrQjtJQUNsQywrREFBK0Q7SUFDdEQscUJBQXFCLENBTTVCO0lBQ0YsZUFBZSxDQUtiO0lBRUY7UUE3QkE7Ozs7O1dBS0c7UUFDSSxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFFL0MsNkNBQTZDO1FBQzdDLG1CQUFjLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBQ25ELCtCQUEwQixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBQ2pFLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQywrREFBK0Q7UUFDdEQsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDN0QsR0FBRyxFQUFFLENBQ0gsSUFBSSxvQkFBb0IsQ0FDdEIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsRUFDeEQsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUM5RCxDQUNKLENBQUM7UUFDRixvQkFBZSxHQUF1RDtZQUNwRSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixHQUFHLEVBQUUsQ0FBQztTQUNQLENBQUM7UUFHQSxNQUFNLFFBQVEsR0FBRyxHQUFTLEVBQUU7WUFDMUIsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsMEJBQTBCO1lBQzFCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVDLENBQUM7WUFDRCxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLElBQStCO1FBQ2pELE1BQU0sSUFBSSxHQUFHO1lBQ1gsR0FBRyxJQUFJO1lBQ1AsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUMzRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxFQUFVO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEtBQUsscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1lBQ2hDLE1BQU0sY0FBYyxHQUNsQjtnQkFDRSxNQUFNLEVBQUUsQ0FBQztnQkFDVCxJQUFJLEVBQUUsQ0FBQztnQkFDUCxLQUFLLEVBQUUsQ0FBQztnQkFDUixHQUFHLEVBQUUsQ0FBQzthQUNQLENBQUM7WUFFSixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDaEIsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1lBQ3RDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBRWxFLEtBQUssTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlELG9CQUFvQixDQUFDLFdBQVcsQ0FDOUIsa0JBQWtCLFFBQVEsRUFBRSxFQUM1QixJQUFJLEdBQUcsSUFBSSxDQUNaLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBcUI7UUFDcEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQ2YsSUFBcUIsRUFDckIsaUJBQXFFLElBQUk7U0FDdEUsZUFBZTtRQUVsQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDNUQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUc7WUFDZixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDeEMsQ0FBQztRQUNGO1FBQ0UscUJBQXFCO1FBQ3JCLFFBQVEsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVc7WUFDaEMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2YsdUJBQXVCO1lBQ3ZCLFFBQVEsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVU7WUFDL0IsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ2YsQ0FBQztZQUNELDJDQUEyQztZQUMzQyxJQUNFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ3hELEVBQ0QsQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCw0RUFBNEU7WUFDNUUsMkVBQTJFO1lBQzNFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLEtBQUssS0FBSztvQkFDUixPQUFPLFFBQVEsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO2dCQUNqQyxLQUFLLE9BQU87b0JBQ1YsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO2dCQUNyRCxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO2dCQUN0RCxLQUFLLE1BQU07b0JBQ1QsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FoS1UscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERPQ1VNRU5ULFxuICBEZXN0cm95UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QXBwVmlld3BvcnRSZXNlcnZlQXJncyB9IGZyb20gJy4vdmlld3BvcnQtcmVzZXJ2ZS1hcmdzJztcbmltcG9ydCB7IFNreUFwcFZpZXdwb3J0UmVzZXJ2ZWRQb3NpdGlvblR5cGUgfSBmcm9tICcuL3ZpZXdwb3J0LXJlc2VydmUtcG9zaXRpb24tdHlwZSc7XG5cbnR5cGUgUmVzZXJ2ZUl0ZW1UeXBlID0gU2t5QXBwVmlld3BvcnRSZXNlcnZlQXJncyAmIHtcbiAgYWN0aXZlOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIGFwcGxpY2F0aW9uJ3Mgdmlld3BvcnQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBWaWV3cG9ydFNlcnZpY2Uge1xuICAvKipcbiAgICogVXBkYXRlZCB3aGVuIHRoZSB2aWV3cG9ydCBiZWNvbWVzIHZpc2libGUuICBXaGlsZSB0aGUgcGFnZSBpcyByZW5kZXJlZCwgdGhlXG4gICAqIHZpZXdwb3J0IG1heSByZW1haW4gaGlkZGVuIGFzIGZvbnRzIGFuZCBzdHlsZXMgYXJlIGxvYWRlZCBhc3luY2hyb25vdXNseTtcbiAgICogdGhpcyBpcyBkb25lIHRvIGF2b2lkIGEgRk9VQyAoRmxhc2ggT2YgVW5zdHlsZWQgQ29udGVudCkgYmVmb3JlIHRoZSBmb250c1xuICAgKiBhbmQgc3R5bGVzIGFyZSByZWFkeS5cbiAgICovXG4gIHB1YmxpYyB2aXNpYmxlID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgLy8gRVNMaW50IGRvZXNuJ3QgcmVjb2duaXplIGhvdyB0aGlzIGlzIHVzZWQuXG4gICN1cGRhdGVSZXF1ZXN0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5ICNyZXNlcnZlSXRlbXMgPSBuZXcgTWFwPHN0cmluZywgUmVzZXJ2ZUl0ZW1UeXBlPigpO1xuICByZWFkb25seSAjY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcyA9IG5ldyBNYXA8RWxlbWVudCwgUmVzZXJ2ZUl0ZW1UeXBlPigpO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIC8vIE9ic2VydmUgZWxlbWVudHMgY3Jvc3NpbmcgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCBib3VuZGFyaWVzLlxuICByZWFkb25seSAjaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0aGlzLiNuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXG4gICAgKCkgPT5cbiAgICAgIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKCkgPT4gdGhpcy4jbmdab25lLnJ1bigoKSA9PiB0aGlzLiN1cGRhdGVWaWV3cG9ydEFyZWEoKSksXG4gICAgICAgIHsgdGhyZXNob2xkOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMDEgfSwgKF8sIGkpID0+IGkgLyAxMDApIH0sXG4gICAgICApLFxuICApO1xuICAjcmVzZXJ2ZWRTcGFjZXM6IFJlY29yZDxTa3lBcHBWaWV3cG9ydFJlc2VydmVkUG9zaXRpb25UeXBlLCBudW1iZXI+ID0ge1xuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIHRvcDogMCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBvblNjcm9sbCA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLiNjb25kaXRpb25hbGx5UmVzZXJ2ZUl0ZW1zLnNpemUgPiAwKSB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVZpZXdwb3J0QXJlYSgpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy4jZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpO1xuICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICh0aGlzLiN1cGRhdGVSZXF1ZXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jdXBkYXRlUmVxdWVzdCk7XG4gICAgICB9XG4gICAgICB0aGlzLiNpbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLiNkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXJ2ZXMgc3BhY2UgZm9yIGNvbXBvbmVudHMgZG9ja2VkIHRvIHRoZSBsZWZ0LCB0b3AsIHJpZ2h0LCBvciBib3R0b20gb2YgdGhlIHZpZXdwb3J0LlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKi9cbiAgcHVibGljIHJlc2VydmVTcGFjZShhcmdzOiBTa3lBcHBWaWV3cG9ydFJlc2VydmVBcmdzKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICBhY3RpdmU6IHRoaXMuI2lzRWxlbWVudFZpc2libGUoeyAuLi5hcmdzLCBhY3RpdmU6IGZhbHNlIH0pLFxuICAgIH07XG4gICAgdGhpcy4jcmVzZXJ2ZUl0ZW1zLnNldChhcmdzLmlkLCBpdGVtKTtcbiAgICB0aGlzLiN3YXRjaFZpc2liaWxpdHkoaXRlbSk7XG4gICAgdGhpcy4jdXBkYXRlVmlld3BvcnRBcmVhKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyByZXNlcnZlZCBzcGFjZSBmb3IgYSBjb21wb25lbnQgYnkgdGhlIElEIHByb3ZpZGVkIHdoZW4gaXQgd2FzIHJlc2VydmVkLlxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIHB1YmxpYyB1bnJlc2VydmVTcGFjZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYXJncyA9IHRoaXMuI3Jlc2VydmVJdGVtcy5nZXQoaWQpO1xuICAgIGlmIChhcmdzPy5yZXNlcnZlRm9yRWxlbWVudCkge1xuICAgICAgdGhpcy4jaW50ZXJzZWN0aW9uT2JzZXJ2ZXIudW5vYnNlcnZlKGFyZ3MucmVzZXJ2ZUZvckVsZW1lbnQpO1xuICAgICAgdGhpcy4jY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcy5kZWxldGUoYXJncy5yZXNlcnZlRm9yRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuI3Jlc2VydmVJdGVtcy5kZWxldGUoaWQpO1xuICAgIHRoaXMuI3VwZGF0ZVZpZXdwb3J0QXJlYSgpO1xuICB9XG5cbiAgI3VwZGF0ZVZpZXdwb3J0QXJlYSgpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVSZXF1ZXN0ID8/PSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy4jdXBkYXRlUmVxdWVzdCA9IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJlc2VydmVkU3BhY2VzOiBSZWNvcmQ8U2t5QXBwVmlld3BvcnRSZXNlcnZlZFBvc2l0aW9uVHlwZSwgbnVtYmVyPiA9XG4gICAgICAgIHtcbiAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICB0b3A6IDAsXG4gICAgICAgIH07XG5cbiAgICAgIGZvciAoY29uc3QgYXJncyBvZiB0aGlzLiNyZXNlcnZlSXRlbXMudmFsdWVzKCkpIHtcbiAgICAgICAgYXJncy5hY3RpdmUgPSB0aGlzLiNpc0VsZW1lbnRWaXNpYmxlKGFyZ3MsIHJlc2VydmVkU3BhY2VzKTtcbiAgICAgICAgaWYgKGFyZ3MuYWN0aXZlKSB7XG4gICAgICAgICAgcmVzZXJ2ZWRTcGFjZXNbYXJncy5wb3NpdGlvbl0gKz0gYXJncy5zaXplO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI3Jlc2VydmVkU3BhY2VzID0gcmVzZXJ2ZWRTcGFjZXM7XG4gICAgICBjb25zdCBkb2N1bWVudEVsZW1lbnRTdHlsZSA9IHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZTtcblxuICAgICAgZm9yIChjb25zdCBbcG9zaXRpb24sIHNpemVdIG9mIE9iamVjdC5lbnRyaWVzKHJlc2VydmVkU3BhY2VzKSkge1xuICAgICAgICBkb2N1bWVudEVsZW1lbnRTdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICBgLS1za3ktdmlld3BvcnQtJHtwb3NpdGlvbn1gLFxuICAgICAgICAgIHNpemUgKyAncHgnLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI3dhdGNoVmlzaWJpbGl0eShpdGVtOiBSZXNlcnZlSXRlbVR5cGUpOiB2b2lkIHtcbiAgICBpZiAoaXRlbS5yZXNlcnZlRm9yRWxlbWVudCkge1xuICAgICAgdGhpcy4jY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcy5zZXQoaXRlbS5yZXNlcnZlRm9yRWxlbWVudCwgaXRlbSk7XG4gICAgICB0aGlzLiNpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKGl0ZW0ucmVzZXJ2ZUZvckVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gICNpc0VsZW1lbnRWaXNpYmxlKFxuICAgIGFyZ3M6IFJlc2VydmVJdGVtVHlwZSxcbiAgICByZXNlcnZlZFNwYWNlczogUmVjb3JkPFNreUFwcFZpZXdwb3J0UmVzZXJ2ZWRQb3NpdGlvblR5cGUsIG51bWJlcj4gPSB0aGlzXG4gICAgICAuI3Jlc2VydmVkU3BhY2VzLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWFyZ3MucmVzZXJ2ZUZvckVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCByZWN0ID0gYXJncy5yZXNlcnZlRm9yRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoIXJlY3QgfHwgIXJlY3QuaGVpZ2h0IHx8ICFyZWN0LndpZHRoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG1pZHBvaW50ID0ge1xuICAgICAgeDogcmVjdC54ICsgTWF0aC5mbG9vcihyZWN0LndpZHRoIC8gMiksXG4gICAgICB5OiByZWN0LnkgKyBNYXRoLmZsb29yKHJlY3QuaGVpZ2h0IC8gMiksXG4gICAgfTtcbiAgICBpZiAoXG4gICAgICAvLyBWZXJ0aWNhbGx5IGluIHZpZXdcbiAgICAgIG1pZHBvaW50LnkgPD0gd2luZG93LmlubmVySGVpZ2h0ICYmXG4gICAgICBtaWRwb2ludC55ID49IDAgJiZcbiAgICAgIC8vIEhvcml6b250YWxseSBpbiB2aWV3XG4gICAgICBtaWRwb2ludC54IDw9IHdpbmRvdy5pbm5lcldpZHRoICYmXG4gICAgICBtaWRwb2ludC54ID49IDBcbiAgICApIHtcbiAgICAgIC8vIEVsZW1lbnQgaXMgbm90IGhpZGRlbiBieSBhbm90aGVyIGVsZW1lbnRcbiAgICAgIGlmIChcbiAgICAgICAgYXJncy5yZXNlcnZlRm9yRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICB0aGlzLiNkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KG1pZHBvaW50LngsIG1pZHBvaW50LnkpLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBpdGVtJ3MgbWlkcG9pbnQgaXMgdmlzaWJsZSBiYXNlZCBvbiBjdXJyZW50IHJlc2VydmVkIHNwYWNlcy5cbiAgICAgIC8vIEFzc3VtZXMgcmVzZXJ2ZWQgc3BhY2VzIGFyZSBpbnRlbmRlZCB0byBiZSBhZGRpdGl2ZSBhbmQgbm90IG92ZXJsYXBwaW5nLlxuICAgICAgY29uc3QgdGhyZXNob2xkID0gcmVzZXJ2ZWRTcGFjZXNbYXJncy5wb3NpdGlvbl07XG4gICAgICBzd2l0Y2ggKGFyZ3MucG9zaXRpb24pIHtcbiAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICByZXR1cm4gbWlkcG9pbnQueSA+PSB0aHJlc2hvbGQ7XG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gbWlkcG9pbnQueCA8PSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRocmVzaG9sZDtcbiAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICByZXR1cm4gbWlkcG9pbnQueSA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aHJlc2hvbGQ7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIHJldHVybiBtaWRwb2ludC54ID49IHRocmVzaG9sZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=","import { DOCUMENT, RendererFactory2, inject, makeEnvironmentProviders, provideAppInitializer, } from '@angular/core';\nimport { SkyTheme } from '../theming/theme';\nimport { SkyThemeMode } from '../theming/theme-mode';\nimport { SkyThemeSettings } from '../theming/theme-settings';\nimport { SkyThemeSpacing } from '../theming/theme-spacing';\nimport { SkyThemeService } from '../theming/theme.service';\nexport function provideInitialTheme(name = 'default', options) {\n return makeEnvironmentProviders([\n SkyThemeService,\n provideAppInitializer(() => {\n const initializerFn = ((themeService, doc, rendererFactory) => {\n return () => {\n themeService.init(doc.body, rendererFactory.createRenderer(null, null), new SkyThemeSettings(SkyTheme.presets[name], SkyThemeMode.presets[options?.mode ?? 'light'], SkyThemeSpacing.presets[options?.spacing ?? 'standard']));\n };\n })(inject(SkyThemeService), inject(DOCUMENT), inject(RendererFactory2));\n return initializerFn();\n }),\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1pbml0aWFsLXRoZW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvcHJvdmlkZXJzL3Byb3ZpZGUtaW5pdGlhbC10aGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUVSLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxPQUFzQyxTQUFTLEVBQy9DLE9BR0M7SUFFRCxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLGVBQWU7UUFDZixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUNyQixZQUE2QixFQUM3QixHQUFhLEVBQ2IsZUFBaUMsRUFDakMsRUFBRTtnQkFDRixPQUFPLEdBQVMsRUFBRTtvQkFDaEIsWUFBWSxDQUFDLElBQUksQ0FDZixHQUFHLENBQUMsSUFBSSxFQUNSLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUMxQyxJQUFJLGdCQUFnQixDQUNsQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUN0QixZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDLEVBQzlDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FDeEQsQ0FDRixDQUFDO2dCQUNKLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN4RSxPQUFPLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBET0NVTUVOVCxcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIGluamVjdCxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICBwcm92aWRlQXBwSW5pdGlhbGl6ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZSB9IGZyb20gJy4uL3RoZW1pbmcvdGhlbWUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2RlIH0gZnJvbSAnLi4vdGhlbWluZy90aGVtZS1tb2RlJztcbmltcG9ydCB7IFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICcuLi90aGVtaW5nL3RoZW1lLXNldHRpbmdzJztcbmltcG9ydCB7IFNreVRoZW1lU3BhY2luZyB9IGZyb20gJy4uL3RoZW1pbmcvdGhlbWUtc3BhY2luZyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi90aGVtaW5nL3RoZW1lLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUluaXRpYWxUaGVtZShcbiAgbmFtZToga2V5b2YgdHlwZW9mIFNreVRoZW1lLnByZXNldHMgPSAnZGVmYXVsdCcsXG4gIG9wdGlvbnM/OiB7XG4gICAgbW9kZT86IGtleW9mIHR5cGVvZiBTa3lUaGVtZU1vZGUucHJlc2V0cztcbiAgICBzcGFjaW5nPzoga2V5b2YgdHlwZW9mIFNreVRoZW1lU3BhY2luZy5wcmVzZXRzO1xuICB9LFxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBTa3lUaGVtZVNlcnZpY2UsXG4gICAgcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyRm4gPSAoKFxuICAgICAgICB0aGVtZVNlcnZpY2U6IFNreVRoZW1lU2VydmljZSxcbiAgICAgICAgZG9jOiBEb2N1bWVudCxcbiAgICAgICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgICAgKSA9PiB7XG4gICAgICAgIHJldHVybiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhlbWVTZXJ2aWNlLmluaXQoXG4gICAgICAgICAgICBkb2MuYm9keSxcbiAgICAgICAgICAgIHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKSxcbiAgICAgICAgICAgIG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgICAgICAgICBTa3lUaGVtZS5wcmVzZXRzW25hbWVdLFxuICAgICAgICAgICAgICBTa3lUaGVtZU1vZGUucHJlc2V0c1tvcHRpb25zPy5tb2RlID8/ICdsaWdodCddLFxuICAgICAgICAgICAgICBTa3lUaGVtZVNwYWNpbmcucHJlc2V0c1tvcHRpb25zPy5zcGFjaW5nID8/ICdzdGFuZGFyZCddLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfSkoaW5qZWN0KFNreVRoZW1lU2VydmljZSksIGluamVjdChET0NVTUVOVCksIGluamVjdChSZW5kZXJlckZhY3RvcnkyKSk7XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xuICAgIH0pLFxuICBdKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL3NreXV4LXRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyThemeService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-theme.mjs","sources":["../tmp-esm2022/lib/theming/theme-mode.js","../tmp-esm2022/lib/theming/theme-spacing.js","../tmp-esm2022/lib/theming/theme.js","../tmp-esm2022/lib/theming/theme-brand.js","../tmp-esm2022/lib/theming/theme-brand.service.js","../tmp-esm2022/lib/theming/theme-settings.js","../tmp-esm2022/lib/theming/theme.service.js","../tmp-esm2022/lib/style-loader.js","../tmp-esm2022/lib/theming/theme-class.directive.js","../tmp-esm2022/lib/theming/theme-if.directive.js","../tmp-esm2022/lib/theming/theme.directive.js","../tmp-esm2022/lib/theme.module.js","../tmp-esm2022/lib/theming/theme-component-class.directive.js","../tmp-esm2022/lib/viewport/viewport.service.js","../tmp-esm2022/lib/providers/provide-initial-theme.js","../tmp-esm2022/skyux-theme.js"],"sourcesContent":["/**\n * Defines properties of a SKY UX theme mode.\n */\nexport class SkyThemeMode {\n /**\n * The preset themes available in SKY UX.\n */\n static { this.presets = {\n light: new SkyThemeMode('light', 'sky-theme-mode-light'),\n dark: new SkyThemeMode('dark', 'sky-theme-mode-dark'),\n }; }\n /**\n * Creates a new theme mode.\n * @param name The name of the theme mode.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme mode.\n */\n constructor(name, hostClass) {\n this.name = name;\n this.hostClass = hostClass;\n }\n /**\n * @internal\n * Serializes the theme mode to a JSON-compatible object.\n */\n serialize() {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyThemeMode.presets).find(([, preset]) => preset === this);\n if (presetEntry) {\n return {\n name: this.name,\n isPreset: true,\n };\n }\n return {\n name: this.name,\n hostClass: this.hostClass,\n };\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeMode instance.\n */\n static deserialize(data) {\n if (data.isPreset) {\n const preset = SkyThemeMode.presets[data.name];\n if (preset) {\n return preset;\n }\n throw new Error(`Unknown theme mode preset: ${data.name}`);\n }\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset theme modes');\n }\n return new SkyThemeMode(data.name, data.hostClass);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtbW9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtbW9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOztPQUVHO2FBQ29CLFlBQU8sR0FBRztRQUMvQixLQUFLLEVBQUUsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO1FBQ3hELElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUM7S0FDdEQsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsWUFDa0IsSUFBWSxFQUNaLFNBQWlCO1FBRGpCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ2hDLENBQUM7SUFFSjs7O09BR0c7SUFDSSxTQUFTO1FBQ2QscUNBQXFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDM0QsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQ2hDLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFzQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FDVixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUF5QyxDQUFDLENBQUM7WUFFdkUsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxPQUFPLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lUaGVtZU1vZGVEYXRhIH0gZnJvbSAnLi90aGVtZS1zZXJpYWxpemF0aW9uLXR5cGVzJztcblxuLyoqXG4gKiBEZWZpbmVzIHByb3BlcnRpZXMgb2YgYSBTS1kgVVggdGhlbWUgbW9kZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRoZW1lTW9kZSB7XG4gIC8qKlxuICAgKiBUaGUgcHJlc2V0IHRoZW1lcyBhdmFpbGFibGUgaW4gU0tZIFVYLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBwcmVzZXRzID0ge1xuICAgIGxpZ2h0OiBuZXcgU2t5VGhlbWVNb2RlKCdsaWdodCcsICdza3ktdGhlbWUtbW9kZS1saWdodCcpLFxuICAgIGRhcms6IG5ldyBTa3lUaGVtZU1vZGUoJ2RhcmsnLCAnc2t5LXRoZW1lLW1vZGUtZGFyaycpLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRoZW1lIG1vZGUuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZSBtb2RlLlxuICAgKiBAcGFyYW0gaG9zdENsYXNzIFRoZSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50IHdoaWNoIGNoaWxkIGNvbXBvbmVudHMgc2hvdWxkIHJlZmVyZW5jZSB3aGVuXG4gICAqIGFkanVzdGluZyBmb3IgYSBzcGVjaWZpZWQgdGhlbWUgbW9kZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGhvc3RDbGFzczogc3RyaW5nLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBTZXJpYWxpemVzIHRoZSB0aGVtZSBtb2RlIHRvIGEgSlNPTi1jb21wYXRpYmxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogU2t5VGhlbWVNb2RlRGF0YSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpbnN0YW5jZSBpcyBhIHByZXNldFxuICAgIGNvbnN0IHByZXNldEVudHJ5ID0gT2JqZWN0LmVudHJpZXMoU2t5VGhlbWVNb2RlLnByZXNldHMpLmZpbmQoXG4gICAgICAoWywgcHJlc2V0XSkgPT4gcHJlc2V0ID09PSB0aGlzLFxuICAgICk7XG5cbiAgICBpZiAocHJlc2V0RW50cnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgaXNQcmVzZXQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBob3N0Q2xhc3M6IHRoaXMuaG9zdENsYXNzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERlc2VyaWFsaXplcyBhIEpTT04gb2JqZWN0IHRvIGEgU2t5VGhlbWVNb2RlIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShkYXRhOiBTa3lUaGVtZU1vZGVEYXRhKTogU2t5VGhlbWVNb2RlIHtcbiAgICBpZiAoZGF0YS5pc1ByZXNldCkge1xuICAgICAgY29uc3QgcHJlc2V0ID1cbiAgICAgICAgU2t5VGhlbWVNb2RlLnByZXNldHNbZGF0YS5uYW1lIGFzIGtleW9mIHR5cGVvZiBTa3lUaGVtZU1vZGUucHJlc2V0c107XG5cbiAgICAgIGlmIChwcmVzZXQpIHtcbiAgICAgICAgcmV0dXJuIHByZXNldDtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRoZW1lIG1vZGUgcHJlc2V0OiAke2RhdGEubmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEuaG9zdENsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hvc3RDbGFzcyBpcyByZXF1aXJlZCBmb3Igbm9uLXByZXNldCB0aGVtZSBtb2RlcycpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5VGhlbWVNb2RlKGRhdGEubmFtZSwgZGF0YS5ob3N0Q2xhc3MpO1xuICB9XG59XG4iXX0=","/**\n * Defines properties of SKY UX theme spacing.\n */\nexport class SkyThemeSpacing {\n /**\n * The preset spacing available in SKY UX.\n */\n static { this.presets = {\n standard: new SkyThemeSpacing('standard', 'sky-theme-spacing-standard'),\n compact: new SkyThemeSpacing('compact', 'sky-theme-spacing-compact'),\n }; }\n /**\n * Creates a new theme spacing.\n * @param name The name of the theme spacing.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme spacing.\n */\n constructor(name, hostClass) {\n this.name = name;\n this.hostClass = hostClass;\n }\n /**\n * @internal\n * Serializes the theme spacing to a JSON-compatible object.\n */\n serialize() {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyThemeSpacing.presets).find(([, preset]) => preset === this);\n if (presetEntry) {\n return {\n name: this.name,\n isPreset: true,\n };\n }\n return {\n name: this.name,\n hostClass: this.hostClass,\n };\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeSpacing instance.\n */\n static deserialize(data) {\n if (data.isPreset) {\n const preset = SkyThemeSpacing.presets[data.name];\n if (preset) {\n return preset;\n }\n throw new Error(`Unknown theme spacing preset: ${data.name}`);\n }\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset theme spacing');\n }\n return new SkyThemeSpacing(data.name, data.hostClass);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc3BhY2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtc3BhY2luZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQzFCOztPQUVHO2FBQ29CLFlBQU8sR0FBRztRQUMvQixRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsVUFBVSxFQUFFLDRCQUE0QixDQUFDO1FBQ3ZFLE9BQU8sRUFBRSxJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUUsMkJBQTJCLENBQUM7S0FDckUsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsWUFDa0IsSUFBWSxFQUNaLFNBQWlCO1FBRGpCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ2hDLENBQUM7SUFFSjs7O09BR0c7SUFDSSxTQUFTO1FBQ2QscUNBQXFDO1FBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUQsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQ2hDLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUF5QjtRQUNqRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FDVixlQUFlLENBQUMsT0FBTyxDQUNyQixJQUFJLENBQUMsSUFBNEMsQ0FDbEQsQ0FBQztZQUVKLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztZQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWVTcGFjaW5nRGF0YSB9IGZyb20gJy4vdGhlbWUtc2VyaWFsaXphdGlvbi10eXBlcyc7XG5cbi8qKlxuICogRGVmaW5lcyBwcm9wZXJ0aWVzIG9mIFNLWSBVWCB0aGVtZSBzcGFjaW5nLlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVTcGFjaW5nIHtcbiAgLyoqXG4gICAqIFRoZSBwcmVzZXQgc3BhY2luZyBhdmFpbGFibGUgaW4gU0tZIFVYLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBwcmVzZXRzID0ge1xuICAgIHN0YW5kYXJkOiBuZXcgU2t5VGhlbWVTcGFjaW5nKCdzdGFuZGFyZCcsICdza3ktdGhlbWUtc3BhY2luZy1zdGFuZGFyZCcpLFxuICAgIGNvbXBhY3Q6IG5ldyBTa3lUaGVtZVNwYWNpbmcoJ2NvbXBhY3QnLCAnc2t5LXRoZW1lLXNwYWNpbmctY29tcGFjdCcpLFxuICB9O1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRoZW1lIHNwYWNpbmcuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZSBzcGFjaW5nLlxuICAgKiBAcGFyYW0gaG9zdENsYXNzIFRoZSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50IHdoaWNoIGNoaWxkIGNvbXBvbmVudHMgc2hvdWxkIHJlZmVyZW5jZSB3aGVuXG4gICAqIGFkanVzdGluZyBmb3IgYSBzcGVjaWZpZWQgdGhlbWUgc3BhY2luZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGhvc3RDbGFzczogc3RyaW5nLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBTZXJpYWxpemVzIHRoZSB0aGVtZSBzcGFjaW5nIHRvIGEgSlNPTi1jb21wYXRpYmxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogU2t5VGhlbWVTcGFjaW5nRGF0YSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpbnN0YW5jZSBpcyBhIHByZXNldFxuICAgIGNvbnN0IHByZXNldEVudHJ5ID0gT2JqZWN0LmVudHJpZXMoU2t5VGhlbWVTcGFjaW5nLnByZXNldHMpLmZpbmQoXG4gICAgICAoWywgcHJlc2V0XSkgPT4gcHJlc2V0ID09PSB0aGlzLFxuICAgICk7XG5cbiAgICBpZiAocHJlc2V0RW50cnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgaXNQcmVzZXQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBob3N0Q2xhc3M6IHRoaXMuaG9zdENsYXNzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERlc2VyaWFsaXplcyBhIEpTT04gb2JqZWN0IHRvIGEgU2t5VGhlbWVTcGFjaW5nIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShkYXRhOiBTa3lUaGVtZVNwYWNpbmdEYXRhKTogU2t5VGhlbWVTcGFjaW5nIHtcbiAgICBpZiAoZGF0YS5pc1ByZXNldCkge1xuICAgICAgY29uc3QgcHJlc2V0ID1cbiAgICAgICAgU2t5VGhlbWVTcGFjaW5nLnByZXNldHNbXG4gICAgICAgICAgZGF0YS5uYW1lIGFzIGtleW9mIHR5cGVvZiBTa3lUaGVtZVNwYWNpbmcucHJlc2V0c1xuICAgICAgICBdO1xuXG4gICAgICBpZiAocHJlc2V0KSB7XG4gICAgICAgIHJldHVybiBwcmVzZXQ7XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0aGVtZSBzcGFjaW5nIHByZXNldDogJHtkYXRhLm5hbWV9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhLmhvc3RDbGFzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdob3N0Q2xhc3MgaXMgcmVxdWlyZWQgZm9yIG5vbi1wcmVzZXQgdGhlbWUgc3BhY2luZycpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5VGhlbWVTcGFjaW5nKGRhdGEubmFtZSwgZGF0YS5ob3N0Q2xhc3MpO1xuICB9XG59XG4iXX0=","import { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSpacing } from './theme-spacing';\n/**\n * Defines properties of a SKY UX theme.\n */\nexport class SkyTheme {\n /**\n * The preset themes available in SKY UX.\n */\n static { this.presets = {\n default: new SkyTheme('default', 'sky-theme-default', [SkyThemeMode.presets.light], [SkyThemeSpacing.presets.standard]),\n modern: new SkyTheme('modern', 'sky-theme-modern', [SkyThemeMode.presets.light, SkyThemeMode.presets.dark], [SkyThemeSpacing.presets.standard, SkyThemeSpacing.presets.compact], true),\n }; }\n /**\n * Creates a new theme.\n * @param name The name of the theme.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme.\n * @param supportedModes An array of modes supported by the theme.\n * @param supportedSpacing An array of spacing modes supported by the theme.\n */\n constructor(name, hostClass, supportedModes, supportedSpacing = [SkyThemeSpacing.presets.standard], supportsBranding = false) {\n this.name = name;\n this.hostClass = hostClass;\n this.supportedModes = supportedModes;\n this.supportedSpacing = supportedSpacing;\n this.supportsBranding = supportsBranding;\n }\n /**\n * @internal\n * Serializes the theme to a JSON-compatible object.\n */\n serialize() {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyTheme.presets).find(([, preset]) => preset === this);\n if (presetEntry) {\n return {\n name: this.name,\n supportedModes: this.supportedModes.map((mode) => mode.serialize()),\n isPreset: true,\n };\n }\n const result = {\n name: this.name,\n hostClass: this.hostClass,\n supportedModes: this.supportedModes.map((mode) => mode.serialize()),\n };\n // Only include supportedSpacing if it's not the default\n if (this.supportedSpacing.length !== 1 ||\n this.supportedSpacing[0] !== SkyThemeSpacing.presets.standard) {\n result.supportedSpacing = this.supportedSpacing.map((spacing) => spacing.serialize());\n }\n // Only include supportsBranding if it's true\n if (this.supportsBranding) {\n result.supportsBranding = this.supportsBranding;\n }\n return result;\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyTheme instance.\n */\n static deserialize(data) {\n if (data.isPreset) {\n const preset = SkyTheme.presets[data.name];\n if (preset) {\n return preset;\n }\n throw new Error(`Unknown theme preset: ${data.name}`);\n }\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset themes');\n }\n const supportedModes = data.supportedModes.map((modeData) => SkyThemeMode.deserialize(modeData));\n const supportedSpacing = data.supportedSpacing\n ? data.supportedSpacing.map((spacingData) => SkyThemeSpacing.deserialize(spacingData))\n : [SkyThemeSpacing.presets.standard];\n return new SkyTheme(data.name, data.hostClass, supportedModes, supportedSpacing, data.supportsBranding ?? false);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL2xpYi90aGVtaW5nL3RoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFDbkI7O09BRUc7YUFDb0IsWUFBTyxHQUFHO1FBQy9CLE9BQU8sRUFBRSxJQUFJLFFBQVEsQ0FDbkIsU0FBUyxFQUNULG1CQUFtQixFQUNuQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQzVCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDbkM7UUFDRCxNQUFNLEVBQUUsSUFBSSxRQUFRLENBQ2xCLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUN2RCxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQ25FLElBQUksQ0FDTDtLQUNGLENBQUM7SUFFRjs7Ozs7OztPQU9HO0lBQ0gsWUFDa0IsSUFBWSxFQUNaLFNBQWlCLEVBQ2pCLGNBQThCLEVBQzlCLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQ3JELG1CQUFtQixLQUFLO1FBSnhCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFDO1FBQ3JELHFCQUFnQixHQUFoQixn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QUFJLEtBQUssQ0FDL0IsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lUaGVtZU1vZGUgfSBmcm9tICcuL3RoZW1lLW1vZGUnO1xuaW1wb3J0IHsgU2t5VGhlbWVEYXRhIH0gZnJvbSAnLi90aGVtZS1zZXJpYWxpemF0aW9uLXR5cGVzJztcbmltcG9ydCB7IFNreVRoZW1lU3BhY2luZyB9IGZyb20gJy4vdGhlbWUtc3BhY2luZyc7XG5cbi8qKlxuICogRGVmaW5lcyBwcm9wZXJ0aWVzIG9mIGEgU0tZIFVYIHRoZW1lLlxuICovXG5leHBvcnQgY2xhc3MgU2t5VGhlbWUge1xuICAvKipcbiAgICogVGhlIHByZXNldCB0aGVtZXMgYXZhaWxhYmxlIGluIFNLWSBVWC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgcHJlc2V0cyA9IHtcbiAgICBkZWZhdWx0OiBuZXcgU2t5VGhlbWUoXG4gICAgICAnZGVmYXVsdCcsXG4gICAgICAnc2t5LXRoZW1lLWRlZmF1bHQnLFxuICAgICAgW1NreVRoZW1lTW9kZS5wcmVzZXRzLmxpZ2h0XSxcbiAgICAgIFtTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZF0sXG4gICAgKSxcbiAgICBtb2Rlcm46IG5ldyBTa3lUaGVtZShcbiAgICAgICdtb2Rlcm4nLFxuICAgICAgJ3NreS10aGVtZS1tb2Rlcm4nLFxuICAgICAgW1NreVRoZW1lTW9kZS5wcmVzZXRzLmxpZ2h0LCBTa3lUaGVtZU1vZGUucHJlc2V0cy5kYXJrXSxcbiAgICAgIFtTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZCwgU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuY29tcGFjdF0sXG4gICAgICB0cnVlLFxuICAgICksXG4gIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdGhlbWUuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSB0aGVtZS5cbiAgICogQHBhcmFtIGhvc3RDbGFzcyBUaGUgY2xhc3Mgb24gdGhlIGhvc3QgZWxlbWVudCB3aGljaCBjaGlsZCBjb21wb25lbnRzIHNob3VsZCByZWZlcmVuY2Ugd2hlblxuICAgKiBhZGp1c3RpbmcgZm9yIGEgc3BlY2lmaWVkIHRoZW1lLlxuICAgKiBAcGFyYW0gc3VwcG9ydGVkTW9kZXMgQW4gYXJyYXkgb2YgbW9kZXMgc3VwcG9ydGVkIGJ5IHRoZSB0aGVtZS5cbiAgICogQHBhcmFtIHN1cHBvcnRlZFNwYWNpbmcgQW4gYXJyYXkgb2Ygc3BhY2luZyBtb2RlcyBzdXBwb3J0ZWQgYnkgdGhlIHRoZW1lLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaG9zdENsYXNzOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRlZE1vZGVzOiBTa3lUaGVtZU1vZGVbXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VwcG9ydGVkU3BhY2luZyA9IFtTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZF0sXG4gICAgcHVibGljIHJlYWRvbmx5IHN1cHBvcnRzQnJhbmRpbmcgPSBmYWxzZSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogU2VyaWFsaXplcyB0aGUgdGhlbWUgdG8gYSBKU09OLWNvbXBhdGlibGUgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHNlcmlhbGl6ZSgpOiBTa3lUaGVtZURhdGEge1xuICAgIC8vIENoZWNrIGlmIHRoaXMgaW5zdGFuY2UgaXMgYSBwcmVzZXRcbiAgICBjb25zdCBwcmVzZXRFbnRyeSA9IE9iamVjdC5lbnRyaWVzKFNreVRoZW1lLnByZXNldHMpLmZpbmQoXG4gICAgICAoWywgcHJlc2V0XSkgPT4gcHJlc2V0ID09PSB0aGlzLFxuICAgICk7XG5cbiAgICBpZiAocHJlc2V0RW50cnkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgc3VwcG9ydGVkTW9kZXM6IHRoaXMuc3VwcG9ydGVkTW9kZXMubWFwKChtb2RlKSA9PiBtb2RlLnNlcmlhbGl6ZSgpKSxcbiAgICAgICAgaXNQcmVzZXQ6IHRydWUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogU2t5VGhlbWVEYXRhID0ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgaG9zdENsYXNzOiB0aGlzLmhvc3RDbGFzcyxcbiAgICAgIHN1cHBvcnRlZE1vZGVzOiB0aGlzLnN1cHBvcnRlZE1vZGVzLm1hcCgobW9kZSkgPT4gbW9kZS5zZXJpYWxpemUoKSksXG4gICAgfTtcblxuICAgIC8vIE9ubHkgaW5jbHVkZSBzdXBwb3J0ZWRTcGFjaW5nIGlmIGl0J3Mgbm90IHRoZSBkZWZhdWx0XG4gICAgaWYgKFxuICAgICAgdGhpcy5zdXBwb3J0ZWRTcGFjaW5nLmxlbmd0aCAhPT0gMSB8fFxuICAgICAgdGhpcy5zdXBwb3J0ZWRTcGFjaW5nWzBdICE9PSBTa3lUaGVtZVNwYWNpbmcucHJlc2V0cy5zdGFuZGFyZFxuICAgICkge1xuICAgICAgcmVzdWx0LnN1cHBvcnRlZFNwYWNpbmcgPSB0aGlzLnN1cHBvcnRlZFNwYWNpbmcubWFwKChzcGFjaW5nKSA9PlxuICAgICAgICBzcGFjaW5nLnNlcmlhbGl6ZSgpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBPbmx5IGluY2x1ZGUgc3VwcG9ydHNCcmFuZGluZyBpZiBpdCdzIHRydWVcbiAgICBpZiAodGhpcy5zdXBwb3J0c0JyYW5kaW5nKSB7XG4gICAgICByZXN1bHQuc3VwcG9ydHNCcmFuZGluZyA9IHRoaXMuc3VwcG9ydHNCcmFuZGluZztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEZXNlcmlhbGl6ZXMgYSBKU09OIG9iamVjdCB0byBhIFNreVRoZW1lIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShkYXRhOiBTa3lUaGVtZURhdGEpOiBTa3lUaGVtZSB7XG4gICAgaWYgKGRhdGEuaXNQcmVzZXQpIHtcbiAgICAgIGNvbnN0IHByZXNldCA9XG4gICAgICAgIFNreVRoZW1lLnByZXNldHNbZGF0YS5uYW1lIGFzIGtleW9mIHR5cGVvZiBTa3lUaGVtZS5wcmVzZXRzXTtcblxuICAgICAgaWYgKHByZXNldCkge1xuICAgICAgICByZXR1cm4gcHJlc2V0O1xuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdGhlbWUgcHJlc2V0OiAke2RhdGEubmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWRhdGEuaG9zdENsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2hvc3RDbGFzcyBpcyByZXF1aXJlZCBmb3Igbm9uLXByZXNldCB0aGVtZXMnKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdXBwb3J0ZWRNb2RlcyA9IGRhdGEuc3VwcG9ydGVkTW9kZXMubWFwKChtb2RlRGF0YSkgPT5cbiAgICAgIFNreVRoZW1lTW9kZS5kZXNlcmlhbGl6ZShtb2RlRGF0YSksXG4gICAgKTtcblxuICAgIGNvbnN0IHN1cHBvcnRlZFNwYWNpbmcgPSBkYXRhLnN1cHBvcnRlZFNwYWNpbmdcbiAgICAgID8gZGF0YS5zdXBwb3J0ZWRTcGFjaW5nLm1hcCgoc3BhY2luZ0RhdGEpID0+XG4gICAgICAgICAgU2t5VGhlbWVTcGFjaW5nLmRlc2VyaWFsaXplKHNwYWNpbmdEYXRhKSxcbiAgICAgICAgKVxuICAgICAgOiBbU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmRdO1xuXG4gICAgcmV0dXJuIG5ldyBTa3lUaGVtZShcbiAgICAgIGRhdGEubmFtZSxcbiAgICAgIGRhdGEuaG9zdENsYXNzLFxuICAgICAgc3VwcG9ydGVkTW9kZXMsXG4gICAgICBzdXBwb3J0ZWRTcGFjaW5nLFxuICAgICAgZGF0YS5zdXBwb3J0c0JyYW5kaW5nID8/IGZhbHNlLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","/**\n * @internal\n * Defines properties of SKY UX theme branding.\n */\nexport class SkyThemeBrand {\n get hostClass() {\n return this.#hostClass || this.#buildDefaultHostClassName();\n }\n set hostClass(value) {\n this.#hostClass = value;\n }\n #hostClass;\n /**\n * Creates a new theme brand.\n * @param name The name of the theme brand.\n * @param version The version of the theme brand.\n * @param hostClass The class on the host element which child components should reference when\n * adjusting for a specified theme brand. This defaults to `sky-theme-brand-<name>`\n * @param styleUrl The URL of the stylesheet to load for this brand\n * @param sriHash The subresource integrity hash for the stylesheet\n * @param title The title to display for this brand\n * @param faviconUrl The URL of the favicon to use for this brand\n * @param maskIcon The mask icon configuration for this brand\n */\n constructor(name, version, hostClass, styleUrl, sriHash, title, faviconUrl, maskIcon) {\n this.name = name;\n this.version = version;\n this.styleUrl = styleUrl;\n this.sriHash = sriHash;\n this.title = title;\n this.faviconUrl = faviconUrl;\n this.maskIcon = maskIcon;\n this.hostClass = hostClass;\n if (!/^(\\d+|\\d+\\.\\d+\\.\\d+)(?:-(?:alpha|beta|rc)\\.\\d+)*$/.test(version)) {\n throw new Error(`Invalid version format \"${version}\" for theme brand \"${name}\".`);\n }\n }\n /**\n * @internal\n * Serializes the theme brand to a JSON-compatible object.\n */\n serialize() {\n const result = {\n name: this.name,\n version: this.version,\n };\n // Only include hostClass if it's different from the default\n const defaultHostClass = this.#buildDefaultHostClassName();\n if (this.hostClass !== defaultHostClass) {\n result.hostClass = this.hostClass;\n }\n if (this.styleUrl) {\n result.styleUrl = this.styleUrl;\n }\n if (this.sriHash) {\n result.sriHash = this.sriHash;\n }\n if (this.title) {\n result.title = this.title;\n }\n if (this.faviconUrl) {\n result.faviconUrl = this.faviconUrl;\n }\n if (this.maskIcon) {\n result.maskIcon = this.maskIcon;\n }\n return result;\n }\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeBrand instance.\n */\n static deserialize(data) {\n return new SkyThemeBrand(data.name, data.version, data.hostClass, data.styleUrl, data.sriHash, data.title, data.faviconUrl, data.maskIcon);\n }\n #buildDefaultHostClassName() {\n return `sky-theme-brand-${this.name}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYnJhbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL2xpYi90aGVtaW5nL3RoZW1lLWJyYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUN4QixJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFZLFNBQVMsQ0FBQyxLQUF5QjtRQUM3QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFxQjtJQUMvQjs7Ozs7Ozs7Ozs7T0FXRztJQUNILFlBQ2tCLElBQVksRUFDWixPQUFlLEVBQy9CLFNBQWtCLEVBQ0YsUUFBaUIsRUFDakIsT0FBZ0IsRUFDaEIsS0FBYyxFQUNkLFVBQW1CLEVBQ25CLFFBQWdDO1FBUGhDLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBRWYsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQVM7UUFDZCxlQUFVLEdBQVYsVUFBVSxDQUFTO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQXdCO1FBRWhELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxtREFBbUQsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2RSxNQUFNLElBQUksS0FBSyxDQUNiLDJCQUEyQixPQUFPLHNCQUFzQixJQUFJLElBQUksQ0FDakUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE1BQU0sTUFBTSxHQUFzQjtZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztRQUVGLDREQUE0RDtRQUM1RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBRTNELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNsQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBdUI7UUFDL0MsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLE9BQU8sbUJBQW1CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lUaGVtZUJyYW5kRGF0YSB9IGZyb20gJy4vdGhlbWUtc2VyaWFsaXphdGlvbi10eXBlcyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBEZWZpbmVzIHByb3BlcnRpZXMgZm9yIGEgbWFzayBpY29uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreVRoZW1lQnJhbmRNYXNrSWNvbiB7XG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoZSBtYXNrIGljb24uXG4gICAqL1xuICB1cmw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgbWFzayBpY29uLlxuICAgKi9cbiAgY29sb3I6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIERlZmluZXMgcHJvcGVydGllcyBvZiBTS1kgVVggdGhlbWUgYnJhbmRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaGVtZUJyYW5kIHtcbiAgcHVibGljIGdldCBob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy4jaG9zdENsYXNzIHx8IHRoaXMuI2J1aWxkRGVmYXVsdEhvc3RDbGFzc05hbWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0IGhvc3RDbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jaG9zdENsYXNzID0gdmFsdWU7XG4gIH1cblxuICAjaG9zdENsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHRoZW1lIGJyYW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgdGhlbWUgYnJhbmQuXG4gICAqIEBwYXJhbSB2ZXJzaW9uIFRoZSB2ZXJzaW9uIG9mIHRoZSB0aGVtZSBicmFuZC5cbiAgICogQHBhcmFtIGhvc3RDbGFzcyBUaGUgY2xhc3Mgb24gdGhlIGhvc3QgZWxlbWVudCB3aGljaCBjaGlsZCBjb21wb25lbnRzIHNob3VsZCByZWZlcmVuY2Ugd2hlblxuICAgKiBhZGp1c3RpbmcgZm9yIGEgc3BlY2lmaWVkIHRoZW1lIGJyYW5kLiBUaGlzIGRlZmF1bHRzIHRvIGBza3ktdGhlbWUtYnJhbmQtPG5hbWU+YFxuICAgKiBAcGFyYW0gc3R5bGVVcmwgVGhlIFVSTCBvZiB0aGUgc3R5bGVzaGVldCB0byBsb2FkIGZvciB0aGlzIGJyYW5kXG4gICAqIEBwYXJhbSBzcmlIYXNoIFRoZSBzdWJyZXNvdXJjZSBpbnRlZ3JpdHkgaGFzaCBmb3IgdGhlIHN0eWxlc2hlZXRcbiAgICogQHBhcmFtIHRpdGxlIFRoZSB0aXRsZSB0byBkaXNwbGF5IGZvciB0aGlzIGJyYW5kXG4gICAqIEBwYXJhbSBmYXZpY29uVXJsIFRoZSBVUkwgb2YgdGhlIGZhdmljb24gdG8gdXNlIGZvciB0aGlzIGJyYW5kXG4gICAqIEBwYXJhbSBtYXNrSWNvbiBUaGUgbWFzayBpY29uIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgYnJhbmRcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZyxcbiAgICBob3N0Q2xhc3M/OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHN0eWxlVXJsPzogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBzcmlIYXNoPzogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSB0aXRsZT86IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmF2aWNvblVybD86IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbWFza0ljb24/OiBTa3lUaGVtZUJyYW5kTWFza0ljb24sXG4gICkge1xuICAgIHRoaXMuaG9zdENsYXNzID0gaG9zdENsYXNzO1xuXG4gICAgaWYgKCEvXihcXGQrfFxcZCtcXC5cXGQrXFwuXFxkKykoPzotKD86YWxwaGF8YmV0YXxyYylcXC5cXGQrKSokLy50ZXN0KHZlcnNpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIHZlcnNpb24gZm9ybWF0IFwiJHt2ZXJzaW9ufVwiIGZvciB0aGVtZSBicmFuZCBcIiR7bmFtZX1cIi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIFNlcmlhbGl6ZXMgdGhlIHRoZW1lIGJyYW5kIHRvIGEgSlNPTi1jb21wYXRpYmxlIG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogU2t5VGhlbWVCcmFuZERhdGEge1xuICAgIGNvbnN0IHJlc3VsdDogU2t5VGhlbWVCcmFuZERhdGEgPSB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICB2ZXJzaW9uOiB0aGlzLnZlcnNpb24sXG4gICAgfTtcblxuICAgIC8vIE9ubHkgaW5jbHVkZSBob3N0Q2xhc3MgaWYgaXQncyBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdFxuICAgIGNvbnN0IGRlZmF1bHRIb3N0Q2xhc3MgPSB0aGlzLiNidWlsZERlZmF1bHRIb3N0Q2xhc3NOYW1lKCk7XG5cbiAgICBpZiAodGhpcy5ob3N0Q2xhc3MgIT09IGRlZmF1bHRIb3N0Q2xhc3MpIHtcbiAgICAgIHJlc3VsdC5ob3N0Q2xhc3MgPSB0aGlzLmhvc3RDbGFzcztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdHlsZVVybCkge1xuICAgICAgcmVzdWx0LnN0eWxlVXJsID0gdGhpcy5zdHlsZVVybDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zcmlIYXNoKSB7XG4gICAgICByZXN1bHQuc3JpSGFzaCA9IHRoaXMuc3JpSGFzaDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50aXRsZSkge1xuICAgICAgcmVzdWx0LnRpdGxlID0gdGhpcy50aXRsZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mYXZpY29uVXJsKSB7XG4gICAgICByZXN1bHQuZmF2aWNvblVybCA9IHRoaXMuZmF2aWNvblVybDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXNrSWNvbikge1xuICAgICAgcmVzdWx0Lm1hc2tJY29uID0gdGhpcy5tYXNrSWNvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEZXNlcmlhbGl6ZXMgYSBKU09OIG9iamVjdCB0byBhIFNreVRoZW1lQnJhbmQgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGRhdGE6IFNreVRoZW1lQnJhbmREYXRhKTogU2t5VGhlbWVCcmFuZCB7XG4gICAgcmV0dXJuIG5ldyBTa3lUaGVtZUJyYW5kKFxuICAgICAgZGF0YS5uYW1lLFxuICAgICAgZGF0YS52ZXJzaW9uLFxuICAgICAgZGF0YS5ob3N0Q2xhc3MsXG4gICAgICBkYXRhLnN0eWxlVXJsLFxuICAgICAgZGF0YS5zcmlIYXNoLFxuICAgICAgZGF0YS50aXRsZSxcbiAgICAgIGRhdGEuZmF2aWNvblVybCxcbiAgICAgIGRhdGEubWFza0ljb24sXG4gICAgKTtcbiAgfVxuXG4gICNidWlsZERlZmF1bHRIb3N0Q2xhc3NOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBza3ktdGhlbWUtYnJhbmQtJHt0aGlzLm5hbWV9YDtcbiAgfVxufVxuIl19","import { DOCUMENT, Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst BRAND_BLACKBAUD = 'blackbaud';\n// Commonly-used icon configurations. Appending these to the head element will\n// override any existing link elements with the same attribute values. When\n// they are removed, the previous favicon link elements will take effect again.\nconst FAVICON_CONFIGS = [\n { rel: 'apple-touch-icon', sizes: '180x180' },\n { rel: 'icon', sizes: '32x32' },\n { rel: 'icon', sizes: '16x16' },\n];\n/**\n * @internal\n * Provides methods for managing theme branding including brand registration,\n * stylesheet management, and host class updates.\n */\nexport class SkyThemeBrandService {\n #document = inject(DOCUMENT);\n #stylesheetEl;\n #faviconEls = [];\n #maskIconEl;\n #registeredBrands = new Map();\n /**\n * Registers a brand for use in themes.\n * @param brand The brand to register.\n */\n registerBrand(brand) {\n this.#registeredBrands.set(brand.name, brand);\n }\n /**\n * Unregisters a brand.\n * @param name The name of the brand to unregister.\n */\n unregisterBrand(name) {\n this.#registeredBrands.delete(name);\n }\n /**\n * Updates all brand-related styling and classes for the host element.\n * This consolidates brand stylesheet updates and host class management,\n * and automatically resolves registered brands.\n * @param hostEl The host element to update.\n * @param renderer The renderer to use for DOM manipulation.\n * @param brand The brand to apply (will be resolved if registered version exists).\n * @param previousBrand The previous brand to clean up.\n */\n updateBrand(hostEl, renderer, brand, previousBrand) {\n // Resolve to registered brand if available\n if (brand) {\n brand = this.#registeredBrands.get(brand.name) ?? brand;\n }\n const previousClass = previousBrand?.hostClass;\n const currentClass = brand?.hostClass;\n // Update host classes if they've changed\n if (!previousClass || previousClass !== currentClass) {\n this.#updateBrandHostClass(hostEl, renderer, previousClass, currentClass);\n this.#updateBrandStylesheet(renderer, brand, previousBrand);\n }\n this.#updateFavicon(renderer, brand);\n }\n /**\n * Destroys the brand service, cleaning up any brand stylesheets.\n */\n destroy() {\n this.#removeBrandStylesheet();\n }\n #updateBrandStylesheet(renderer, currentBrand, previousBrand) {\n if (previousBrand && previousBrand.name !== BRAND_BLACKBAUD) {\n this.#removeBrandStylesheet();\n }\n if (currentBrand && currentBrand.name !== BRAND_BLACKBAUD) {\n this.#addBrandStylesheet(renderer, currentBrand);\n }\n }\n #updateBrandHostClass(hostEl, renderer, previousClass, currentClass) {\n if (previousClass) {\n renderer.removeClass(hostEl, previousClass);\n }\n if (currentClass && !previousClass) {\n renderer.addClass(hostEl, 'sky-theme-brand-base');\n }\n else if (!currentClass && previousClass) {\n renderer.removeClass(hostEl, 'sky-theme-brand-base');\n }\n if (currentClass) {\n renderer.addClass(hostEl, currentClass);\n }\n }\n #addBrandStylesheet(renderer, brand) {\n if (brand.name !== BRAND_BLACKBAUD) {\n // Use styleUrl if provided, otherwise build the default URL\n const styleUrl = brand.styleUrl ||\n `https://sky.blackbaudcdn.net/static/skyux-brand-${brand.name}/${brand.version}/assets/scss/${brand.name}.css`;\n this.#stylesheetEl = renderer.createElement('link');\n renderer.setAttribute(this.#stylesheetEl, 'rel', 'stylesheet');\n renderer.setAttribute(this.#stylesheetEl, 'href', styleUrl);\n if (brand.sriHash) {\n renderer.setAttribute(this.#stylesheetEl, 'integrity', brand.sriHash);\n renderer.setAttribute(this.#stylesheetEl, 'crossorigin', 'anonymous');\n }\n this.#appendToHead(renderer, this.#stylesheetEl);\n }\n }\n #removeBrandStylesheet() {\n if (this.#stylesheetEl) {\n this.#stylesheetEl.remove();\n this.#stylesheetEl = undefined;\n }\n }\n #updateFavicon(renderer, brand) {\n if (brand?.faviconUrl) {\n const faviconUrl = brand.faviconUrl;\n // Create favicon elements if they don't exist, or reuse existing ones\n while (this.#faviconEls.length < FAVICON_CONFIGS.length) {\n const faviconEl = renderer.createElement('link');\n this.#faviconEls.push(faviconEl);\n this.#appendToHead(renderer, faviconEl);\n }\n // Update each favicon element with its configuration\n for (let i = 0; i < FAVICON_CONFIGS.length; i++) {\n const config = FAVICON_CONFIGS[i];\n const faviconEl = this.#faviconEls[i];\n renderer.setAttribute(faviconEl, 'rel', config.rel);\n renderer.setAttribute(faviconEl, 'sizes', config.sizes);\n renderer.setAttribute(faviconEl, 'href', faviconUrl);\n }\n }\n else {\n // Remove all favicon elements when no favicon URL is provided\n for (const faviconEl of this.#faviconEls) {\n faviconEl.remove();\n }\n this.#faviconEls = [];\n }\n // Handle mask icon\n if (brand?.maskIcon) {\n if (!this.#maskIconEl) {\n this.#maskIconEl = renderer.createElement('link');\n this.#appendToHead(renderer, this.#maskIconEl);\n }\n renderer.setAttribute(this.#maskIconEl, 'rel', 'mask-icon');\n renderer.setAttribute(this.#maskIconEl, 'href', brand.maskIcon.url);\n renderer.setAttribute(this.#maskIconEl, 'color', brand.maskIcon.color);\n }\n else if (this.#maskIconEl) {\n this.#maskIconEl.remove();\n this.#maskIconEl = undefined;\n }\n }\n #appendToHead(renderer, el) {\n renderer.appendChild(this.#document.head, el);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeBrandService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeBrandService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeBrandService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYnJhbmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtYnJhbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXhFLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUVwQyw4RUFBOEU7QUFDOUUsMkVBQTJFO0FBQzNFLCtFQUErRTtBQUMvRSxNQUFNLGVBQWUsR0FBRztJQUN0QixFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzdDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQy9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0NBQ2hDLENBQUM7QUFFRjs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTdCLGFBQWEsQ0FBOEI7SUFDM0MsV0FBVyxHQUFzQixFQUFFLENBQUM7SUFDcEMsV0FBVyxDQUE4QjtJQUV6QyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUVyRDs7O09BR0c7SUFDSSxhQUFhLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlLENBQUMsSUFBWTtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7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QUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFtQixFQUFFLEVBQWU7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQTlLVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIEluamVjdGFibGUsIFJlbmRlcmVyMiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcblxuY29uc3QgQlJBTkRfQkxBQ0tCQVVEID0gJ2JsYWNrYmF1ZCc7XG5cbi8vIENvbW1vbmx5LXVzZWQgaWNvbiBjb25maWd1cmF0aW9ucy4gQXBwZW5kaW5nIHRoZXNlIHRvIHRoZSBoZWFkIGVsZW1lbnQgd2lsbFxuLy8gb3ZlcnJpZGUgYW55IGV4aXN0aW5nIGxpbmsgZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGUgdmFsdWVzLiBXaGVuXG4vLyB0aGV5IGFyZSByZW1vdmVkLCB0aGUgcHJldmlvdXMgZmF2aWNvbiBsaW5rIGVsZW1lbnRzIHdpbGwgdGFrZSBlZmZlY3QgYWdhaW4uXG5jb25zdCBGQVZJQ09OX0NPTkZJR1MgPSBbXG4gIHsgcmVsOiAnYXBwbGUtdG91Y2gtaWNvbicsIHNpemVzOiAnMTgweDE4MCcgfSxcbiAgeyByZWw6ICdpY29uJywgc2l6ZXM6ICczMngzMicgfSxcbiAgeyByZWw6ICdpY29uJywgc2l6ZXM6ICcxNngxNicgfSxcbl07XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBQcm92aWRlcyBtZXRob2RzIGZvciBtYW5hZ2luZyB0aGVtZSBicmFuZGluZyBpbmNsdWRpbmcgYnJhbmQgcmVnaXN0cmF0aW9uLFxuICogc3R5bGVzaGVldCBtYW5hZ2VtZW50LCBhbmQgaG9zdCBjbGFzcyB1cGRhdGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVCcmFuZFNlcnZpY2Uge1xuICAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICNzdHlsZXNoZWV0RWw6IEhUTUxMaW5rRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgI2Zhdmljb25FbHM6IEhUTUxMaW5rRWxlbWVudFtdID0gW107XG4gICNtYXNrSWNvbkVsOiBIVE1MTGlua0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI3JlZ2lzdGVyZWRCcmFuZHMgPSBuZXcgTWFwPHN0cmluZywgU2t5VGhlbWVCcmFuZD4oKTtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgYnJhbmQgZm9yIHVzZSBpbiB0aGVtZXMuXG4gICAqIEBwYXJhbSBicmFuZCBUaGUgYnJhbmQgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJCcmFuZChicmFuZDogU2t5VGhlbWVCcmFuZCk6IHZvaWQge1xuICAgIHRoaXMuI3JlZ2lzdGVyZWRCcmFuZHMuc2V0KGJyYW5kLm5hbWUsIGJyYW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIGJyYW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnJhbmQgdG8gdW5yZWdpc3Rlci5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQnJhbmQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVnaXN0ZXJlZEJyYW5kcy5kZWxldGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbGwgYnJhbmQtcmVsYXRlZCBzdHlsaW5nIGFuZCBjbGFzc2VzIGZvciB0aGUgaG9zdCBlbGVtZW50LlxuICAgKiBUaGlzIGNvbnNvbGlkYXRlcyBicmFuZCBzdHlsZXNoZWV0IHVwZGF0ZXMgYW5kIGhvc3QgY2xhc3MgbWFuYWdlbWVudCxcbiAgICogYW5kIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXMgcmVnaXN0ZXJlZCBicmFuZHMuXG4gICAqIEBwYXJhbSBob3N0RWwgVGhlIGhvc3QgZWxlbWVudCB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSByZW5kZXJlciBUaGUgcmVuZGVyZXIgdG8gdXNlIGZvciBET00gbWFuaXB1bGF0aW9uLlxuICAgKiBAcGFyYW0gYnJhbmQgVGhlIGJyYW5kIHRvIGFwcGx5ICh3aWxsIGJlIHJlc29sdmVkIGlmIHJlZ2lzdGVyZWQgdmVyc2lvbiBleGlzdHMpLlxuICAgKiBAcGFyYW0gcHJldmlvdXNCcmFuZCBUaGUgcHJldmlvdXMgYnJhbmQgdG8gY2xlYW4gdXAuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQnJhbmQoXG4gICAgaG9zdEVsOiBFbGVtZW50LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgYnJhbmQ6IFNreVRoZW1lQnJhbmQgfCB1bmRlZmluZWQsXG4gICAgcHJldmlvdXNCcmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgLy8gUmVzb2x2ZSB0byByZWdpc3RlcmVkIGJyYW5kIGlmIGF2YWlsYWJsZVxuICAgIGlmIChicmFuZCkge1xuICAgICAgYnJhbmQgPSB0aGlzLiNyZWdpc3RlcmVkQnJhbmRzLmdldChicmFuZC5uYW1lKSA/PyBicmFuZDtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0NsYXNzID0gcHJldmlvdXNCcmFuZD8uaG9zdENsYXNzO1xuICAgIGNvbnN0IGN1cnJlbnRDbGFzcyA9IGJyYW5kPy5ob3N0Q2xhc3M7XG5cbiAgICAvLyBVcGRhdGUgaG9zdCBjbGFzc2VzIGlmIHRoZXkndmUgY2hhbmdlZFxuICAgIGlmICghcHJldmlvdXNDbGFzcyB8fCBwcmV2aW91c0NsYXNzICE9PSBjdXJyZW50Q2xhc3MpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUJyYW5kSG9zdENsYXNzKGhvc3RFbCwgcmVuZGVyZXIsIHByZXZpb3VzQ2xhc3MsIGN1cnJlbnRDbGFzcyk7XG4gICAgICB0aGlzLiN1cGRhdGVCcmFuZFN0eWxlc2hlZXQocmVuZGVyZXIsIGJyYW5kLCBwcmV2aW91c0JyYW5kKTtcbiAgICB9XG5cbiAgICB0aGlzLiN1cGRhdGVGYXZpY29uKHJlbmRlcmVyLCBicmFuZCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgdGhlIGJyYW5kIHNlcnZpY2UsIGNsZWFuaW5nIHVwIGFueSBicmFuZCBzdHlsZXNoZWV0cy5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbW92ZUJyYW5kU3R5bGVzaGVldCgpO1xuICB9XG5cbiAgI3VwZGF0ZUJyYW5kU3R5bGVzaGVldChcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGN1cnJlbnRCcmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCxcbiAgICBwcmV2aW91c0JyYW5kOiBTa3lUaGVtZUJyYW5kIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBpZiAocHJldmlvdXNCcmFuZCAmJiBwcmV2aW91c0JyYW5kLm5hbWUgIT09IEJSQU5EX0JMQUNLQkFVRCkge1xuICAgICAgdGhpcy4jcmVtb3ZlQnJhbmRTdHlsZXNoZWV0KCk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRCcmFuZCAmJiBjdXJyZW50QnJhbmQubmFtZSAhPT0gQlJBTkRfQkxBQ0tCQVVEKSB7XG4gICAgICB0aGlzLiNhZGRCcmFuZFN0eWxlc2hlZXQocmVuZGVyZXIsIGN1cnJlbnRCcmFuZCk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUJyYW5kSG9zdENsYXNzKFxuICAgIGhvc3RFbDogRWxlbWVudCxcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByZXZpb3VzQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjdXJyZW50Q2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHByZXZpb3VzQ2xhc3MpIHtcbiAgICAgIHJlbmRlcmVyLnJlbW92ZUNsYXNzKGhvc3RFbCwgcHJldmlvdXNDbGFzcyk7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRDbGFzcyAmJiAhcHJldmlvdXNDbGFzcykge1xuICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsLCAnc2t5LXRoZW1lLWJyYW5kLWJhc2UnKTtcbiAgICB9IGVsc2UgaWYgKCFjdXJyZW50Q2xhc3MgJiYgcHJldmlvdXNDbGFzcykge1xuICAgICAgcmVuZGVyZXIucmVtb3ZlQ2xhc3MoaG9zdEVsLCAnc2t5LXRoZW1lLWJyYW5kLWJhc2UnKTtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudENsYXNzKSB7XG4gICAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWwsIGN1cnJlbnRDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgI2FkZEJyYW5kU3R5bGVzaGVldChyZW5kZXJlcjogUmVuZGVyZXIyLCBicmFuZDogU2t5VGhlbWVCcmFuZCk6IHZvaWQge1xuICAgIGlmIChicmFuZC5uYW1lICE9PSBCUkFORF9CTEFDS0JBVUQpIHtcbiAgICAgIC8vIFVzZSBzdHlsZVVybCBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIGJ1aWxkIHRoZSBkZWZhdWx0IFVSTFxuICAgICAgY29uc3Qgc3R5bGVVcmwgPVxuICAgICAgICBicmFuZC5zdHlsZVVybCB8fFxuICAgICAgICBgaHR0cHM6Ly9za3kuYmxhY2tiYXVkY2RuLm5ldC9zdGF0aWMvc2t5dXgtYnJhbmQtJHticmFuZC5uYW1lfS8ke2JyYW5kLnZlcnNpb259L2Fzc2V0cy9zY3NzLyR7YnJhbmQubmFtZX0uY3NzYDtcblxuICAgICAgdGhpcy4jc3R5bGVzaGVldEVsID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcblxuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI3N0eWxlc2hlZXRFbCwgJ3JlbCcsICdzdHlsZXNoZWV0Jyk7XG4gICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jc3R5bGVzaGVldEVsLCAnaHJlZicsIHN0eWxlVXJsKTtcblxuICAgICAgaWYgKGJyYW5kLnNyaUhhc2gpIHtcbiAgICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI3N0eWxlc2hlZXRFbCwgJ2ludGVncml0eScsIGJyYW5kLnNyaUhhc2gpO1xuICAgICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy4jc3R5bGVzaGVldEVsLCAnY3Jvc3NvcmlnaW4nLCAnYW5vbnltb3VzJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2FwcGVuZFRvSGVhZChyZW5kZXJlciwgdGhpcy4jc3R5bGVzaGVldEVsKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlQnJhbmRTdHlsZXNoZWV0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNzdHlsZXNoZWV0RWwpIHtcbiAgICAgIHRoaXMuI3N0eWxlc2hlZXRFbC5yZW1vdmUoKTtcbiAgICAgIHRoaXMuI3N0eWxlc2hlZXRFbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlRmF2aWNvbihyZW5kZXJlcjogUmVuZGVyZXIyLCBicmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChicmFuZD8uZmF2aWNvblVybCkge1xuICAgICAgY29uc3QgZmF2aWNvblVybCA9IGJyYW5kLmZhdmljb25Vcmw7XG5cbiAgICAgIC8vIENyZWF0ZSBmYXZpY29uIGVsZW1lbnRzIGlmIHRoZXkgZG9uJ3QgZXhpc3QsIG9yIHJldXNlIGV4aXN0aW5nIG9uZXNcbiAgICAgIHdoaWxlICh0aGlzLiNmYXZpY29uRWxzLmxlbmd0aCA8IEZBVklDT05fQ09ORklHUy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZmF2aWNvbkVsID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcbiAgICAgICAgdGhpcy4jZmF2aWNvbkVscy5wdXNoKGZhdmljb25FbCk7XG4gICAgICAgIHRoaXMuI2FwcGVuZFRvSGVhZChyZW5kZXJlciwgZmF2aWNvbkVsKTtcbiAgICAgIH1cblxuICAgICAgLy8gVXBkYXRlIGVhY2ggZmF2aWNvbiBlbGVtZW50IHdpdGggaXRzIGNvbmZpZ3VyYXRpb25cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgRkFWSUNPTl9DT05GSUdTLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IEZBVklDT05fQ09ORklHU1tpXTtcbiAgICAgICAgY29uc3QgZmF2aWNvbkVsID0gdGhpcy4jZmF2aWNvbkVsc1tpXTtcblxuICAgICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUoZmF2aWNvbkVsLCAncmVsJywgY29uZmlnLnJlbCk7XG4gICAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShmYXZpY29uRWwsICdzaXplcycsIGNvbmZpZy5zaXplcyk7XG4gICAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShmYXZpY29uRWwsICdocmVmJywgZmF2aWNvblVybCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbW92ZSBhbGwgZmF2aWNvbiBlbGVtZW50cyB3aGVuIG5vIGZhdmljb24gVVJMIGlzIHByb3ZpZGVkXG4gICAgICBmb3IgKGNvbnN0IGZhdmljb25FbCBvZiB0aGlzLiNmYXZpY29uRWxzKSB7XG4gICAgICAgIGZhdmljb25FbC5yZW1vdmUoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy4jZmF2aWNvbkVscyA9IFtdO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBtYXNrIGljb25cbiAgICBpZiAoYnJhbmQ/Lm1hc2tJY29uKSB7XG4gICAgICBpZiAoIXRoaXMuI21hc2tJY29uRWwpIHtcbiAgICAgICAgdGhpcy4jbWFza0ljb25FbCA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XG4gICAgICAgIHRoaXMuI2FwcGVuZFRvSGVhZChyZW5kZXJlciwgdGhpcy4jbWFza0ljb25FbCk7XG4gICAgICB9XG5cbiAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLiNtYXNrSWNvbkVsLCAncmVsJywgJ21hc2staWNvbicpO1xuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuI21hc2tJY29uRWwsICdocmVmJywgYnJhbmQubWFza0ljb24udXJsKTtcbiAgICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLiNtYXNrSWNvbkVsLCAnY29sb3InLCBicmFuZC5tYXNrSWNvbi5jb2xvcik7XG4gICAgfSBlbHNlIGlmICh0aGlzLiNtYXNrSWNvbkVsKSB7XG4gICAgICB0aGlzLiNtYXNrSWNvbkVsLnJlbW92ZSgpO1xuICAgICAgdGhpcy4jbWFza0ljb25FbCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjYXBwZW5kVG9IZWFkKHJlbmRlcmVyOiBSZW5kZXJlcjIsIGVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuI2RvY3VtZW50LmhlYWQsIGVsKTtcbiAgfVxufVxuIl19","import { SkyTheme } from './theme';\nimport { SkyThemeBrand } from './theme-brand';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSpacing } from './theme-spacing';\n/**\n * Specifies the theme and mode to be applied to a host element.\n */\nexport class SkyThemeSettings {\n /**\n * Creates a new SkyThemeSettings instance.\n * @param theme The theme configuration.\n * @param mode The theme mode.\n */\n constructor(theme, mode, spacing = SkyThemeSpacing.presets.standard, brand) {\n this.theme = theme;\n this.mode = mode;\n this.spacing = spacing;\n this.brand = brand;\n }\n /**\n * Serializes the theme settings to a string.\n */\n serialize() {\n const result = {\n theme: this.theme.serialize(),\n mode: this.mode.serialize(),\n };\n // Only include spacing if it's not the default\n if (this.spacing !== SkyThemeSpacing.presets.standard) {\n result.spacing = this.spacing.serialize();\n }\n // Only include brand if it exists\n if (this.brand) {\n result.brand = this.brand.serialize();\n }\n return JSON.stringify(result);\n }\n /**\n * Deserializes a string to a SkyThemeSettings instance.\n */\n static deserialize(value) {\n const settingsData = JSON.parse(value);\n const theme = SkyTheme.deserialize(settingsData.theme);\n const mode = SkyThemeMode.deserialize(settingsData.mode);\n const spacing = settingsData.spacing\n ? SkyThemeSpacing.deserialize(settingsData.spacing)\n : SkyThemeSpacing.presets.standard;\n const brand = settingsData.brand\n ? SkyThemeBrand.deserialize(settingsData.brand)\n : undefined;\n return new SkyThemeSettings(theme, mode, spacing, brand);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL2xpYi90aGVtaW5nL3RoZW1lLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7T0FJRztJQUNILFlBQ2tCLEtBQWUsRUFDZixJQUFrQixFQUNsQixVQUFVLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUMxQyxLQUFxQjtRQUhyQixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFtQztRQUMxQyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtJQUNwQyxDQUFDO0lBRUo7O09BRUc7SUFDSSxTQUFTO1FBQ2QsTUFBTSxNQUFNLEdBQXlCO1lBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7U0FDNUIsQ0FBQztRQUVGLCtDQUErQztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0RCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBeUIsQ0FBQztRQUUvRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTztZQUNsQyxDQUFDLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSztZQUM5QixDQUFDLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5VGhlbWUgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcbmltcG9ydCB7IFNreVRoZW1lTW9kZSB9IGZyb20gJy4vdGhlbWUtbW9kZSc7XG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzRGF0YSB9IGZyb20gJy4vdGhlbWUtc2VyaWFsaXphdGlvbi10eXBlcyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNwYWNpbmcgfSBmcm9tICcuL3RoZW1lLXNwYWNpbmcnO1xuXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdGhlbWUgYW5kIG1vZGUgdG8gYmUgYXBwbGllZCB0byBhIGhvc3QgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreVRoZW1lU2V0dGluZ3Mge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBTa3lUaGVtZVNldHRpbmdzIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gdGhlbWUgVGhlIHRoZW1lIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSBtb2RlIFRoZSB0aGVtZSBtb2RlLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHRoZW1lOiBTa3lUaGVtZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZTogU2t5VGhlbWVNb2RlLFxuICAgIHB1YmxpYyByZWFkb25seSBzcGFjaW5nID0gU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmQsXG4gICAgcHVibGljIHJlYWRvbmx5IGJyYW5kPzogU2t5VGhlbWVCcmFuZCxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIHRoZSB0aGVtZSBzZXR0aW5ncyB0byBhIHN0cmluZy5cbiAgICovXG4gIHB1YmxpYyBzZXJpYWxpemUoKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXN1bHQ6IFNreVRoZW1lU2V0dGluZ3NEYXRhID0ge1xuICAgICAgdGhlbWU6IHRoaXMudGhlbWUuc2VyaWFsaXplKCksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUuc2VyaWFsaXplKCksXG4gICAgfTtcblxuICAgIC8vIE9ubHkgaW5jbHVkZSBzcGFjaW5nIGlmIGl0J3Mgbm90IHRoZSBkZWZhdWx0XG4gICAgaWYgKHRoaXMuc3BhY2luZyAhPT0gU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmQpIHtcbiAgICAgIHJlc3VsdC5zcGFjaW5nID0gdGhpcy5zcGFjaW5nLnNlcmlhbGl6ZSgpO1xuICAgIH1cblxuICAgIC8vIE9ubHkgaW5jbHVkZSBicmFuZCBpZiBpdCBleGlzdHNcbiAgICBpZiAodGhpcy5icmFuZCkge1xuICAgICAgcmVzdWx0LmJyYW5kID0gdGhpcy5icmFuZC5zZXJpYWxpemUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNlcmlhbGl6ZXMgYSBzdHJpbmcgdG8gYSBTa3lUaGVtZVNldHRpbmdzIGluc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZSh2YWx1ZTogc3RyaW5nKTogU2t5VGhlbWVTZXR0aW5ncyB7XG4gICAgY29uc3Qgc2V0dGluZ3NEYXRhID0gSlNPTi5wYXJzZSh2YWx1ZSkgYXMgU2t5VGhlbWVTZXR0aW5nc0RhdGE7XG5cbiAgICBjb25zdCB0aGVtZSA9IFNreVRoZW1lLmRlc2VyaWFsaXplKHNldHRpbmdzRGF0YS50aGVtZSk7XG4gICAgY29uc3QgbW9kZSA9IFNreVRoZW1lTW9kZS5kZXNlcmlhbGl6ZShzZXR0aW5nc0RhdGEubW9kZSk7XG4gICAgY29uc3Qgc3BhY2luZyA9IHNldHRpbmdzRGF0YS5zcGFjaW5nXG4gICAgICA/IFNreVRoZW1lU3BhY2luZy5kZXNlcmlhbGl6ZShzZXR0aW5nc0RhdGEuc3BhY2luZylcbiAgICAgIDogU2t5VGhlbWVTcGFjaW5nLnByZXNldHMuc3RhbmRhcmQ7XG4gICAgY29uc3QgYnJhbmQgPSBzZXR0aW5nc0RhdGEuYnJhbmRcbiAgICAgID8gU2t5VGhlbWVCcmFuZC5kZXNlcmlhbGl6ZShzZXR0aW5nc0RhdGEuYnJhbmQpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBuZXcgU2t5VGhlbWVTZXR0aW5ncyh0aGVtZSwgbW9kZSwgc3BhY2luZywgYnJhbmQpO1xuICB9XG59XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { SkyTheme } from './theme';\nimport { SkyThemeBrand } from './theme-brand';\nimport { SkyThemeBrandService } from './theme-brand.service';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeSpacing } from './theme-spacing';\nimport * as i0 from \"@angular/core\";\nfunction assertCurrentSettings(currentSettings) {\n if (!currentSettings) {\n throw new Error('Theme service is not initialized. Call init() first.');\n }\n}\n/**\n * Provides methods for updating and handling changes to the current theme.\n */\nexport class SkyThemeService {\n #brandSvc = inject(SkyThemeBrandService);\n /**\n * Notifies consumers when the current theme settings have changed.\n */\n get settingsChange() {\n return this.#_settingsObs;\n }\n #current;\n #hostEl;\n #renderer;\n #settings;\n #_settingsObs;\n constructor() {\n this.#settings = new ReplaySubject(1);\n this.#_settingsObs = this.#settings.asObservable();\n }\n /**\n * Initializes the theme service with the specified parameters. This should only be called\n * from a host component that provides its own theme to child components.\n * @param hostEl The host element under which themed components are rendered.\n * @param renderer A Renderer2 instance for updating the host element with theme changes.\n * @param theme The initial theme.\n * @param registeredBrands An initial set of brands to register. Additional brands can\n * be registered later via the registerBrand() method.\n */\n init(hostEl, renderer, theme, registeredBrands) {\n this.#hostEl = hostEl;\n this.#renderer = renderer;\n if (registeredBrands) {\n for (const brand of registeredBrands) {\n this.#brandSvc.registerBrand(brand);\n }\n }\n this.setTheme(theme);\n }\n /**\n * Destroys the current theme service. This should only be called from a host component that\n * provides its own theme to child components.\n */\n destroy() {\n this.#settings.complete();\n this.#brandSvc.destroy();\n this.#hostEl = this.#renderer = undefined;\n }\n /**\n * Updates the current theme mode.\n * @param mode The new theme mode to apply.\n */\n setThemeMode(mode) {\n this.#updateThemeProperty('mode', mode);\n }\n /**\n * Updates the current theme spacing.\n * @param spacing The new theme spacing to apply.\n */\n setThemeSpacing(spacing) {\n this.#updateThemeProperty('spacing', spacing);\n }\n /**\n * Updates the current theme brand.\n * @param brand The new theme brand to apply, or undefined to clear the current brand.\n */\n setThemeBrand(brand) {\n this.#updateThemeProperty('brand', brand);\n }\n setTheme(settingsOrTheme) {\n let settings;\n if (settingsOrTheme instanceof SkyThemeSettings) {\n settings = settingsOrTheme;\n }\n else {\n const current = this.#current;\n assertCurrentSettings(current);\n settings = new SkyThemeSettings(settingsOrTheme, current.mode, current.spacing, settingsOrTheme.supportsBranding ? current.brand : undefined);\n }\n const previous = this.#current;\n this.#applyThemeClass(previous, settings, 'theme');\n this.#applyThemeClass(previous, settings, 'mode', 'supportedModes');\n this.#applyThemeClass(previous, settings, 'spacing', 'supportedSpacing');\n if (this.#hostEl) {\n // Validate branding support\n if (settings.brand && !settings.theme.supportsBranding) {\n throw new Error('Branding is not supported for the given theme.');\n }\n this.#brandSvc.updateBrand(this.#hostEl, this.#getRenderer(), settings.brand ??\n (settings.theme === SkyTheme.presets.modern\n ? new SkyThemeBrand('blackbaud', '1.0.0')\n : undefined), previous?.brand);\n }\n this.#settings.next({\n currentSettings: settings,\n previousSettings: previous,\n });\n this.#current = settings;\n }\n registerBrand(brand) {\n this.#brandSvc.registerBrand(brand);\n }\n unregisterBrand(name) {\n this.#brandSvc.unregisterBrand(name);\n }\n #updateThemeProperty(property, value) {\n const current = this.#current;\n assertCurrentSettings(current);\n const currentTheme = current.theme;\n let supportedValues = undefined;\n switch (property) {\n case 'mode':\n supportedValues = currentTheme.supportedModes;\n break;\n case 'spacing':\n supportedValues = currentTheme.supportedSpacing;\n break;\n default:\n }\n if (supportedValues && value && !supportedValues.includes(value)) {\n throw new Error(`The current theme does not support the specified ${property}.`);\n }\n const updatedSettings = {\n theme: current.theme,\n mode: current.mode,\n spacing: current.spacing,\n brand: current.brand,\n [property]: value,\n };\n this.setTheme(new SkyThemeSettings(updatedSettings.theme, updatedSettings.mode, updatedSettings.spacing, updatedSettings.brand));\n }\n #applyThemeClass(previous, current, prop, supportedProp) {\n const currentSetting = current[prop];\n const previousClass = previous?.[prop]?.hostClass;\n const currentClass = currentSetting?.hostClass;\n if (!previousClass || previousClass !== currentClass) {\n this.#updateHostClass(previousClass, currentClass, currentSetting, current, supportedProp);\n }\n }\n #updateHostClass(previousClass, currentClass, currentSetting, current, supportedProp) {\n if (previousClass) {\n this.#removeHostClass(previousClass);\n }\n if (currentClass &&\n this.#isSupportedProperty(currentSetting, current, supportedProp)) {\n this.#addHostClass(currentClass);\n }\n }\n #addHostClass(className) {\n this.#getRenderer().addClass(this.#hostEl, className);\n }\n #removeHostClass(className) {\n this.#getRenderer().removeClass(this.#hostEl, className);\n }\n #getRenderer() {\n if (!this.#renderer) {\n throw new Error('Renderer is not initialized. Have you called the theme service `init` method?');\n }\n return this.#renderer;\n }\n #isSupportedProperty(currentSetting, current, supportedProp) {\n return (!supportedProp ||\n ((currentSetting instanceof SkyThemeMode ||\n currentSetting instanceof SkyThemeSpacing) &&\n current.theme[supportedProp].includes(currentSetting)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbEQsU0FBUyxxQkFBcUIsQ0FDNUIsZUFBNkM7SUFFN0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXpDOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUErQjtJQUV2QyxPQUFPLENBQWtCO0lBRXpCLFNBQVMsQ0FBd0I7SUFFakMsU0FBUyxDQUF3QztJQUVqRCxhQUFhLENBQXFDO0lBRWxEO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJ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YUFBYSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELElBQ0UsWUFBWTtZQUNaLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxFQUNqRSxDQUFDO1lBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxTQUFpQjtRQUM3QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FDYiwrRUFBK0UsQ0FDaEYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELG9CQUFvQixDQUNsQixjQUthLEVBQ2IsT0FBeUIsRUFDekIsYUFBcUQ7UUFFckQsT0FBTyxDQUNMLENBQUMsYUFBYTtZQUNkLENBQUMsQ0FBQyxjQUFjLFlBQVksWUFBWTtnQkFDdEMsY0FBYyxZQUFZLGVBQWUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7OEdBelJVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFJlbmRlcmVyMiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5VGhlbWUgfSBmcm9tICcuL3RoZW1lJztcbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcbmltcG9ydCB7IFNreVRoZW1lQnJhbmRTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS1icmFuZC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVRoZW1lTW9kZSB9IGZyb20gJy4vdGhlbWUtbW9kZSc7XG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnLi90aGVtZS1zZXR0aW5ncyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzQ2hhbmdlIH0gZnJvbSAnLi90aGVtZS1zZXR0aW5ncy1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5VGhlbWVTcGFjaW5nIH0gZnJvbSAnLi90aGVtZS1zcGFjaW5nJztcblxuZnVuY3Rpb24gYXNzZXJ0Q3VycmVudFNldHRpbmdzKFxuICBjdXJyZW50U2V0dGluZ3M6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQsXG4pOiBhc3NlcnRzIGN1cnJlbnRTZXR0aW5ncyBpcyBTa3lUaGVtZVNldHRpbmdzIHtcbiAgaWYgKCFjdXJyZW50U2V0dGluZ3MpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZW1lIHNlcnZpY2UgaXMgbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXQoKSBmaXJzdC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3ZpZGVzIG1ldGhvZHMgZm9yIHVwZGF0aW5nIGFuZCBoYW5kbGluZyBjaGFuZ2VzIHRvIHRoZSBjdXJyZW50IHRoZW1lLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVTZXJ2aWNlIHtcbiAgI2JyYW5kU3ZjID0gaW5qZWN0KFNreVRoZW1lQnJhbmRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogTm90aWZpZXMgY29uc3VtZXJzIHdoZW4gdGhlIGN1cnJlbnQgdGhlbWUgc2V0dGluZ3MgaGF2ZSBjaGFuZ2VkLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc0NoYW5nZSgpOiBPYnNlcnZhYmxlPFNreVRoZW1lU2V0dGluZ3NDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy4jX3NldHRpbmdzT2JzO1xuICB9XG5cbiAgI2N1cnJlbnQ6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQ7XG5cbiAgI2hvc3RFbDogYW55IHwgdW5kZWZpbmVkO1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyIHwgdW5kZWZpbmVkO1xuXG4gICNzZXR0aW5nczogUmVwbGF5U3ViamVjdDxTa3lUaGVtZVNldHRpbmdzQ2hhbmdlPjtcblxuICAjX3NldHRpbmdzT2JzOiBPYnNlcnZhYmxlPFNreVRoZW1lU2V0dGluZ3NDaGFuZ2U+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3NldHRpbmdzID0gbmV3IFJlcGxheVN1YmplY3Q8U2t5VGhlbWVTZXR0aW5nc0NoYW5nZT4oMSk7XG4gICAgdGhpcy4jX3NldHRpbmdzT2JzID0gdGhpcy4jc2V0dGluZ3MuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIHRoZW1lIHNlcnZpY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkXG4gICAqIGZyb20gYSBob3N0IGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGl0cyBvd24gdGhlbWUgdG8gY2hpbGQgY29tcG9uZW50cy5cbiAgICogQHBhcmFtIGhvc3RFbCBUaGUgaG9zdCBlbGVtZW50IHVuZGVyIHdoaWNoIHRoZW1lZCBjb21wb25lbnRzIGFyZSByZW5kZXJlZC5cbiAgICogQHBhcmFtIHJlbmRlcmVyIEEgUmVuZGVyZXIyIGluc3RhbmNlIGZvciB1cGRhdGluZyB0aGUgaG9zdCBlbGVtZW50IHdpdGggdGhlbWUgY2hhbmdlcy5cbiAgICogQHBhcmFtIHRoZW1lIFRoZSBpbml0aWFsIHRoZW1lLlxuICAgKiBAcGFyYW0gcmVnaXN0ZXJlZEJyYW5kcyBBbiBpbml0aWFsIHNldCBvZiBicmFuZHMgdG8gcmVnaXN0ZXIuIEFkZGl0aW9uYWwgYnJhbmRzIGNhblxuICAgKiBiZSByZWdpc3RlcmVkIGxhdGVyIHZpYSB0aGUgcmVnaXN0ZXJCcmFuZCgpIG1ldGhvZC5cbiAgICovXG4gIHB1YmxpYyBpbml0KFxuICAgIGhvc3RFbDogYW55LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgdGhlbWU6IFNreVRoZW1lU2V0dGluZ3MsXG4gICAgcmVnaXN0ZXJlZEJyYW5kcz86IFNreVRoZW1lQnJhbmRbXSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy4jaG9zdEVsID0gaG9zdEVsO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG5cbiAgICBpZiAocmVnaXN0ZXJlZEJyYW5kcykge1xuICAgICAgZm9yIChjb25zdCBicmFuZCBvZiByZWdpc3RlcmVkQnJhbmRzKSB7XG4gICAgICAgIHRoaXMuI2JyYW5kU3ZjLnJlZ2lzdGVyQnJhbmQoYnJhbmQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc2V0VGhlbWUodGhlbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBjdXJyZW50IHRoZW1lIHNlcnZpY2UuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gYSBob3N0IGNvbXBvbmVudCB0aGF0XG4gICAqIHByb3ZpZGVzIGl0cyBvd24gdGhlbWUgdG8gY2hpbGQgY29tcG9uZW50cy5cbiAgICovXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3NldHRpbmdzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jYnJhbmRTdmMuZGVzdHJveSgpO1xuXG4gICAgdGhpcy4jaG9zdEVsID0gdGhpcy4jcmVuZGVyZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCB0aGVtZSBtb2RlLlxuICAgKiBAcGFyYW0gbW9kZSBUaGUgbmV3IHRoZW1lIG1vZGUgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWVNb2RlKG1vZGU6IFNreVRoZW1lTW9kZSk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVRoZW1lUHJvcGVydHkoJ21vZGUnLCBtb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHRoZW1lIHNwYWNpbmcuXG4gICAqIEBwYXJhbSBzcGFjaW5nIFRoZSBuZXcgdGhlbWUgc3BhY2luZyB0byBhcHBseS5cbiAgICovXG4gIHB1YmxpYyBzZXRUaGVtZVNwYWNpbmcoc3BhY2luZzogU2t5VGhlbWVTcGFjaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jdXBkYXRlVGhlbWVQcm9wZXJ0eSgnc3BhY2luZycsIHNwYWNpbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgdGhlbWUgYnJhbmQuXG4gICAqIEBwYXJhbSBicmFuZCBUaGUgbmV3IHRoZW1lIGJyYW5kIHRvIGFwcGx5LCBvciB1bmRlZmluZWQgdG8gY2xlYXIgdGhlIGN1cnJlbnQgYnJhbmQuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWVCcmFuZChicmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVRoZW1lUHJvcGVydHkoJ2JyYW5kJywgYnJhbmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgdGhlbWUgc2V0dGluZ3MuXG4gICAqIEBwYXJhbSBzZXR0aW5ncyBUaGUgbmV3IHRoZW1lIHNldHRpbmdzIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHNldFRoZW1lKHNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzKTogdm9pZDtcblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCB0aGVtZS5cbiAgICogQHBhcmFtIHRoZW1lIFRoZSBuZXcgdGhlbWUgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWUodGhlbWU6IFNreVRoZW1lKTogdm9pZDtcblxuICBwdWJsaWMgc2V0VGhlbWUoc2V0dGluZ3NPclRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgU2t5VGhlbWUpOiB2b2lkIHtcbiAgICBsZXQgc2V0dGluZ3M6IFNreVRoZW1lU2V0dGluZ3M7XG5cbiAgICBpZiAoc2V0dGluZ3NPclRoZW1lIGluc3RhbmNlb2YgU2t5VGhlbWVTZXR0aW5ncykge1xuICAgICAgc2V0dGluZ3MgPSBzZXR0aW5nc09yVGhlbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLiNjdXJyZW50O1xuXG4gICAgICBhc3NlcnRDdXJyZW50U2V0dGluZ3MoY3VycmVudCk7XG5cbiAgICAgIHNldHRpbmdzID0gbmV3IFNreVRoZW1lU2V0dGluZ3MoXG4gICAgICAgIHNldHRpbmdzT3JUaGVtZSxcbiAgICAgICAgY3VycmVudC5tb2RlLFxuICAgICAgICBjdXJyZW50LnNwYWNpbmcsXG4gICAgICAgIHNldHRpbmdzT3JUaGVtZS5zdXBwb3J0c0JyYW5kaW5nID8gY3VycmVudC5icmFuZCA6IHVuZGVmaW5lZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLiNjdXJyZW50O1xuXG4gICAgdGhpcy4jYXBwbHlUaGVtZUNsYXNzKHByZXZpb3VzLCBzZXR0aW5ncywgJ3RoZW1lJyk7XG4gICAgdGhpcy4jYXBwbHlUaGVtZUNsYXNzKHByZXZpb3VzLCBzZXR0aW5ncywgJ21vZGUnLCAnc3VwcG9ydGVkTW9kZXMnKTtcbiAgICB0aGlzLiNhcHBseVRoZW1lQ2xhc3MocHJldmlvdXMsIHNldHRpbmdzLCAnc3BhY2luZycsICdzdXBwb3J0ZWRTcGFjaW5nJyk7XG5cbiAgICBpZiAodGhpcy4jaG9zdEVsKSB7XG4gICAgICAvLyBWYWxpZGF0ZSBicmFuZGluZyBzdXBwb3J0XG4gICAgICBpZiAoc2V0dGluZ3MuYnJhbmQgJiYgIXNldHRpbmdzLnRoZW1lLnN1cHBvcnRzQnJhbmRpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCcmFuZGluZyBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgZ2l2ZW4gdGhlbWUuJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2JyYW5kU3ZjLnVwZGF0ZUJyYW5kKFxuICAgICAgICB0aGlzLiNob3N0RWwsXG4gICAgICAgIHRoaXMuI2dldFJlbmRlcmVyKCksXG4gICAgICAgIHNldHRpbmdzLmJyYW5kID8/XG4gICAgICAgICAgKHNldHRpbmdzLnRoZW1lID09PSBTa3lUaGVtZS5wcmVzZXRzLm1vZGVyblxuICAgICAgICAgICAgPyBuZXcgU2t5VGhlbWVCcmFuZCgnYmxhY2tiYXVkJywgJzEuMC4wJylcbiAgICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgICAgcHJldmlvdXM/LmJyYW5kLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLiNzZXR0aW5ncy5uZXh0KHtcbiAgICAgIGN1cnJlbnRTZXR0aW5nczogc2V0dGluZ3MsXG4gICAgICBwcmV2aW91c1NldHRpbmdzOiBwcmV2aW91cyxcbiAgICB9KTtcblxuICAgIHRoaXMuI2N1cnJlbnQgPSBzZXR0aW5ncztcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckJyYW5kKGJyYW5kOiBTa3lUaGVtZUJyYW5kKTogdm9pZCB7XG4gICAgdGhpcy4jYnJhbmRTdmMucmVnaXN0ZXJCcmFuZChicmFuZCk7XG4gIH1cblxuICBwdWJsaWMgdW5yZWdpc3RlckJyYW5kKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2JyYW5kU3ZjLnVucmVnaXN0ZXJCcmFuZChuYW1lKTtcbiAgfVxuXG4gICN1cGRhdGVUaGVtZVByb3BlcnR5KFxuICAgIHByb3BlcnR5OiAnbW9kZScgfCAnc3BhY2luZycgfCAnYnJhbmQnLFxuICAgIHZhbHVlOiBTa3lUaGVtZU1vZGUgfCBTa3lUaGVtZVNwYWNpbmcgfCBTa3lUaGVtZUJyYW5kIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy4jY3VycmVudDtcblxuICAgIGFzc2VydEN1cnJlbnRTZXR0aW5ncyhjdXJyZW50KTtcblxuICAgIGNvbnN0IGN1cnJlbnRUaGVtZSA9IGN1cnJlbnQudGhlbWU7XG5cbiAgICBsZXQgc3VwcG9ydGVkVmFsdWVzOiBTa3lUaGVtZU1vZGVbXSB8IFNreVRoZW1lU3BhY2luZ1tdIHwgdW5kZWZpbmVkID1cbiAgICAgIHVuZGVmaW5lZDtcblxuICAgIHN3aXRjaCAocHJvcGVydHkpIHtcbiAgICAgIGNhc2UgJ21vZGUnOlxuICAgICAgICBzdXBwb3J0ZWRWYWx1ZXMgPSBjdXJyZW50VGhlbWUuc3VwcG9ydGVkTW9kZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc3BhY2luZyc6XG4gICAgICAgIHN1cHBvcnRlZFZhbHVlcyA9IGN1cnJlbnRUaGVtZS5zdXBwb3J0ZWRTcGFjaW5nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnRlZFZhbHVlcyAmJiB2YWx1ZSAmJiAhc3VwcG9ydGVkVmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIGN1cnJlbnQgdGhlbWUgZG9lcyBub3Qgc3VwcG9ydCB0aGUgc3BlY2lmaWVkICR7cHJvcGVydHl9LmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWRTZXR0aW5ncyA9IHtcbiAgICAgIHRoZW1lOiBjdXJyZW50LnRoZW1lLFxuICAgICAgbW9kZTogY3VycmVudC5tb2RlLFxuICAgICAgc3BhY2luZzogY3VycmVudC5zcGFjaW5nLFxuICAgICAgYnJhbmQ6IGN1cnJlbnQuYnJhbmQsXG4gICAgICBbcHJvcGVydHldOiB2YWx1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5zZXRUaGVtZShcbiAgICAgIG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgICB1cGRhdGVkU2V0dGluZ3MudGhlbWUsXG4gICAgICAgIHVwZGF0ZWRTZXR0aW5ncy5tb2RlLFxuICAgICAgICB1cGRhdGVkU2V0dGluZ3Muc3BhY2luZyxcbiAgICAgICAgdXBkYXRlZFNldHRpbmdzLmJyYW5kLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgI2FwcGx5VGhlbWVDbGFzcyhcbiAgICBwcmV2aW91czogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCxcbiAgICBjdXJyZW50OiBTa3lUaGVtZVNldHRpbmdzLFxuICAgIHByb3A6ICd0aGVtZScgfCAnbW9kZScgfCAnc3BhY2luZycsXG4gICAgc3VwcG9ydGVkUHJvcD86ICdzdXBwb3J0ZWRNb2RlcycgfCAnc3VwcG9ydGVkU3BhY2luZycsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRTZXR0aW5nID0gY3VycmVudFtwcm9wXTtcbiAgICBjb25zdCBwcmV2aW91c0NsYXNzID0gcHJldmlvdXM/Lltwcm9wXT8uaG9zdENsYXNzO1xuICAgIGNvbnN0IGN1cnJlbnRDbGFzcyA9IGN1cnJlbnRTZXR0aW5nPy5ob3N0Q2xhc3M7XG5cbiAgICBpZiAoIXByZXZpb3VzQ2xhc3MgfHwgcHJldmlvdXNDbGFzcyAhPT0gY3VycmVudENsYXNzKSB7XG4gICAgICB0aGlzLiN1cGRhdGVIb3N0Q2xhc3MoXG4gICAgICAgIHByZXZpb3VzQ2xhc3MsXG4gICAgICAgIGN1cnJlbnRDbGFzcyxcbiAgICAgICAgY3VycmVudFNldHRpbmcsXG4gICAgICAgIGN1cnJlbnQsXG4gICAgICAgIHN1cHBvcnRlZFByb3AsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gICN1cGRhdGVIb3N0Q2xhc3MoXG4gICAgcHJldmlvdXNDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnRDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnRTZXR0aW5nOlxuICAgICAgfCBTa3lUaGVtZVxuICAgICAgfCBTa3lUaGVtZU1vZGVcbiAgICAgIHwgU2t5VGhlbWVTcGFjaW5nXG4gICAgICB8IFNreVRoZW1lQnJhbmRcbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnQ6IFNreVRoZW1lU2V0dGluZ3MsXG4gICAgc3VwcG9ydGVkUHJvcD86ICdzdXBwb3J0ZWRNb2RlcycgfCAnc3VwcG9ydGVkU3BhY2luZycsXG4gICk6IHZvaWQge1xuICAgIGlmIChwcmV2aW91c0NsYXNzKSB7XG4gICAgICB0aGlzLiNyZW1vdmVIb3N0Q2xhc3MocHJldmlvdXNDbGFzcyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY3VycmVudENsYXNzICYmXG4gICAgICB0aGlzLiNpc1N1cHBvcnRlZFByb3BlcnR5KGN1cnJlbnRTZXR0aW5nLCBjdXJyZW50LCBzdXBwb3J0ZWRQcm9wKVxuICAgICkge1xuICAgICAgdGhpcy4jYWRkSG9zdENsYXNzKGN1cnJlbnRDbGFzcyk7XG4gICAgfVxuICB9XG5cbiAgI2FkZEhvc3RDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2dldFJlbmRlcmVyKCkuYWRkQ2xhc3ModGhpcy4jaG9zdEVsLCBjbGFzc05hbWUpO1xuICB9XG5cbiAgI3JlbW92ZUhvc3RDbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2dldFJlbmRlcmVyKCkucmVtb3ZlQ2xhc3ModGhpcy4jaG9zdEVsLCBjbGFzc05hbWUpO1xuICB9XG5cbiAgI2dldFJlbmRlcmVyKCk6IFJlbmRlcmVyMiB7XG4gICAgaWYgKCF0aGlzLiNyZW5kZXJlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVuZGVyZXIgaXMgbm90IGluaXRpYWxpemVkLiBIYXZlIHlvdSBjYWxsZWQgdGhlIHRoZW1lIHNlcnZpY2UgYGluaXRgIG1ldGhvZD8nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI3JlbmRlcmVyO1xuICB9XG5cbiAgI2lzU3VwcG9ydGVkUHJvcGVydHkoXG4gICAgY3VycmVudFNldHRpbmc6XG4gICAgICB8IFNreVRoZW1lXG4gICAgICB8IFNreVRoZW1lTW9kZVxuICAgICAgfCBTa3lUaGVtZVNwYWNpbmdcbiAgICAgIHwgU2t5VGhlbWVCcmFuZFxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgY3VycmVudDogU2t5VGhlbWVTZXR0aW5ncyxcbiAgICBzdXBwb3J0ZWRQcm9wPzogJ3N1cHBvcnRlZE1vZGVzJyB8ICdzdXBwb3J0ZWRTcGFjaW5nJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICFzdXBwb3J0ZWRQcm9wIHx8XG4gICAgICAoKGN1cnJlbnRTZXR0aW5nIGluc3RhbmNlb2YgU2t5VGhlbWVNb2RlIHx8XG4gICAgICAgIGN1cnJlbnRTZXR0aW5nIGluc3RhbmNlb2YgU2t5VGhlbWVTcGFjaW5nKSAmJlxuICAgICAgICBjdXJyZW50LnRoZW1lW3N1cHBvcnRlZFByb3BdLmluY2x1ZGVzKGN1cnJlbnRTZXR0aW5nKSlcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable, Optional } from '@angular/core';\nimport FontFaceObserver from 'fontfaceobserver';\nimport { take } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theming/theme.service\";\nexport class SkyAppStyleLoader {\n static { this.LOAD_TIMEOUT = 3000; }\n #themeSvc;\n constructor(themeSvc) {\n this.isLoaded = false;\n this.#themeSvc = themeSvc;\n }\n loadStyles() {\n if (this.isLoaded) {\n return Promise.resolve();\n }\n let themePromise;\n if (this.#themeSvc) {\n themePromise = this.#themeSvc.settingsChange.pipe(take(1)).toPromise();\n }\n else {\n themePromise = Promise.resolve();\n }\n const blackbaudSans = new FontFaceObserver('BLKB Sans');\n return Promise.all([\n blackbaudSans.load(undefined, SkyAppStyleLoader.LOAD_TIMEOUT),\n themePromise,\n ])\n .then(() => {\n this.isLoaded = true;\n })\n .catch((error) => {\n // Errors loading the font should not stop the page from rendering.\n // Passing the error along in case the client wants to do something with it.\n return Promise.resolve({\n error,\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppStyleLoader, deps: [{ token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppStyleLoader, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppStyleLoader, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.SkyThemeService, decorators: [{\n type: Optional\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvc3R5bGUtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sZ0JBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPdEMsTUFBTSxPQUFPLGlCQUFpQjthQUNMLGlCQUFZLEdBQUcsSUFBSSxBQUFQLENBQVE7SUFHM0MsU0FBUyxDQUE4QjtJQUV2QyxZQUF3QixRQUEwQjtRQUozQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksWUFBMEIsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDO1lBQzdELFlBQVk7U0FDYixDQUFDO2FBQ0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsbUVBQW1FO1lBQ25FLDRFQUE0RTtZQUM1RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCLEtBQUs7YUFDTixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdkNVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgRm9udEZhY2VPYnNlcnZlciBmcm9tICdmb250ZmFjZW9ic2VydmVyJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWluZy90aGVtZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcFN0eWxlTG9hZGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0FEX1RJTUVPVVQgPSAzMDAwO1xuICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSkge1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG4gIH1cblxuICBwdWJsaWMgbG9hZFN0eWxlcygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmlzTG9hZGVkKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgbGV0IHRoZW1lUHJvbWlzZTogUHJvbWlzZTxhbnk+O1xuXG4gICAgaWYgKHRoaXMuI3RoZW1lU3ZjKSB7XG4gICAgICB0aGVtZVByb21pc2UgPSB0aGlzLiN0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZS5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGVtZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBibGFja2JhdWRTYW5zID0gbmV3IEZvbnRGYWNlT2JzZXJ2ZXIoJ0JMS0IgU2FucycpO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFtcbiAgICAgIGJsYWNrYmF1ZFNhbnMubG9hZCh1bmRlZmluZWQsIFNreUFwcFN0eWxlTG9hZGVyLkxPQURfVElNRU9VVCksXG4gICAgICB0aGVtZVByb21pc2UsXG4gICAgXSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAvLyBFcnJvcnMgbG9hZGluZyB0aGUgZm9udCBzaG91bGQgbm90IHN0b3AgdGhlIHBhZ2UgZnJvbSByZW5kZXJpbmcuXG4gICAgICAgIC8vIFBhc3NpbmcgdGhlIGVycm9yIGFsb25nIGluIGNhc2UgdGhlIGNsaWVudCB3YW50cyB0byBkbyBzb21ldGhpbmcgd2l0aCBpdC5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, Optional, } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theme.service\";\n/**\n * Component to add classes conditionally based on the current theme.\n *\n * If the directive is within a `skyTheme` directive, it uses settings from that directive.\n */\nexport class SkyThemeClassDirective {\n /**\n * The HTML class attribute.\n *\n * @param value\n */\n set class(value) {\n this.#removeInitialClasses(this.#initialClasses);\n this.#initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this.#applyInitialClasses(this.#initialClasses);\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n /**\n * An object with class names in a string for keys, and theme names (e.g. 'default' or 'modern') as values.\n *\n * @param value\n */\n set skyThemeClass(value) {\n this.#removeSkyThemeClassMap(this.#skyThemeClassMap);\n this.#applyInitialClasses(this.#initialClasses);\n this.#skyThemeClassMap = value;\n /* istanbul ignore else */\n if (this.#skyThemeClassMap) {\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n }\n set #themeSettings(settings) {\n this.#currentTheme = settings;\n this.#removeSkyThemeClassMap(this.#skyThemeClassMap);\n this.#applyInitialClasses(this.#initialClasses);\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n #currentTheme;\n #ngUnsubscribe = new Subject();\n #initialClasses = [];\n #skyThemeClassMap;\n #ngEl;\n #renderer;\n constructor(ngEl, renderer, themeSvc) {\n this.#ngEl = ngEl;\n this.#renderer = renderer;\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#themeSettings = settingsChange.currentSettings;\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #applyInitialClasses(classes) {\n /* istanbul ignore else */\n if (classes) {\n classes.forEach((className) => this.#toggleClass(className, true));\n }\n }\n #applySkyThemeClassMap(skyThemeClassMap) {\n if (skyThemeClassMap) {\n const themeName = this.#currentTheme?.theme.name || 'default';\n Object.keys(skyThemeClassMap).forEach((className) => {\n const enabled = themeName === skyThemeClassMap[className];\n this.#toggleClass(className, enabled);\n });\n }\n }\n #removeInitialClasses(classes) {\n /* istanbul ignore else */\n if (classes) {\n classes.forEach((className) => this.#toggleClass(className, false));\n }\n }\n #removeSkyThemeClassMap(skyThemeClassMap) {\n if (skyThemeClassMap) {\n Object.keys(skyThemeClassMap).forEach((className) => this.#toggleClass(className, false));\n }\n }\n #toggleClass(className, enabled) {\n className = className.trim();\n /* istanbul ignore else */\n if (className) {\n className.split(/\\s+/g).forEach((classNameItem) => {\n if (enabled) {\n this.#renderer.addClass(this.#ngEl.nativeElement, classNameItem);\n }\n else {\n this.#renderer.removeClass(this.#ngEl.nativeElement, classNameItem);\n }\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeClassDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeClassDirective, isStandalone: false, selector: \"[skyThemeClass]\", inputs: { class: \"class\", skyThemeClass: \"skyThemeClass\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeClassDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeClass]',\n standalone: false,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SkyThemeService, decorators: [{\n type: Optional\n }] }], propDecorators: { class: [{\n type: Input\n }], skyThemeClass: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY2xhc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS1jbGFzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBRUwsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPM0M7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFDakM7Ozs7T0FJRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQXlCO1FBQ3hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQ1csYUFBYSxDQUFDLEtBQW1DO1FBQzFELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUF5QixDQUFDO1FBRW5ELDBCQUEwQjtRQUMxQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLFFBQTBCO1FBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYSxDQUErQjtJQUM1QyxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNyQyxlQUFlLEdBQWEsRUFBRSxDQUFDO0lBQy9CLGlCQUFpQixDQUErQjtJQUVoRCxLQUFLLENBQWE7SUFDbEIsU0FBUyxDQUFZO0lBRXJCLFlBQ0UsSUFBZ0IsRUFDaEIsUUFBbUIsRUFDUCxRQUEwQjtRQUV0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsUUFBUSxDQUFDLGNBQWM7aUJBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2lCQUNwQyxTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsT0FBaUI7UUFDcEMsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDSCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsZ0JBQThDO1FBQ25FLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxLQUFLLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBaUI7UUFDckMsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLGdCQUE4QztRQUU5QyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUNwQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUIsRUFBRSxPQUFnQjtRQUM5QyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLDBCQUEwQjtRQUMxQixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0FsSFUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFtREksUUFBUTt5Q0EzQ0EsS0FBSztzQkFEZixLQUFLO2dCQWNLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICcuL3RoZW1lLXNldHRpbmdzJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWUuc2VydmljZSc7XG5cbnR5cGUgU2t5VGhlbWVDbGFzc01hcCA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQ29tcG9uZW50IHRvIGFkZCBjbGFzc2VzIGNvbmRpdGlvbmFsbHkgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGhlbWUuXG4gKlxuICogSWYgdGhlIGRpcmVjdGl2ZSBpcyB3aXRoaW4gYSBgc2t5VGhlbWVgIGRpcmVjdGl2ZSwgaXQgdXNlcyBzZXR0aW5ncyBmcm9tIHRoYXQgZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5VGhlbWVDbGFzc10nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVDbGFzc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgSFRNTCBjbGFzcyBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcmVtb3ZlSW5pdGlhbENsYXNzZXModGhpcy4jaW5pdGlhbENsYXNzZXMpO1xuICAgIHRoaXMuI2luaXRpYWxDbGFzc2VzID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLnNwbGl0KC9cXHMrLykgOiBbXTtcbiAgICB0aGlzLiNhcHBseUluaXRpYWxDbGFzc2VzKHRoaXMuI2luaXRpYWxDbGFzc2VzKTtcbiAgICB0aGlzLiNhcHBseVNreVRoZW1lQ2xhc3NNYXAodGhpcy4jc2t5VGhlbWVDbGFzc01hcCk7XG4gIH1cblxuICAvKipcbiAgICogQW4gb2JqZWN0IHdpdGggY2xhc3MgbmFtZXMgaW4gYSBzdHJpbmcgZm9yIGtleXMsIGFuZCB0aGVtZSBuYW1lcyAoZS5nLiAnZGVmYXVsdCcgb3IgJ21vZGVybicpIGFzIHZhbHVlcy5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNreVRoZW1lQ2xhc3ModmFsdWU6IFNreVRoZW1lQ2xhc3NNYXAgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNyZW1vdmVTa3lUaGVtZUNsYXNzTWFwKHRoaXMuI3NreVRoZW1lQ2xhc3NNYXApO1xuICAgIHRoaXMuI2FwcGx5SW5pdGlhbENsYXNzZXModGhpcy4jaW5pdGlhbENsYXNzZXMpO1xuXG4gICAgdGhpcy4jc2t5VGhlbWVDbGFzc01hcCA9IHZhbHVlIGFzIFNreVRoZW1lQ2xhc3NNYXA7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLiNza3lUaGVtZUNsYXNzTWFwKSB7XG4gICAgICB0aGlzLiNhcHBseVNreVRoZW1lQ2xhc3NNYXAodGhpcy4jc2t5VGhlbWVDbGFzc01hcCk7XG4gICAgfVxuICB9XG5cbiAgc2V0ICN0aGVtZVNldHRpbmdzKHNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzKSB7XG4gICAgdGhpcy4jY3VycmVudFRoZW1lID0gc2V0dGluZ3M7XG4gICAgdGhpcy4jcmVtb3ZlU2t5VGhlbWVDbGFzc01hcCh0aGlzLiNza3lUaGVtZUNsYXNzTWFwKTtcbiAgICB0aGlzLiNhcHBseUluaXRpYWxDbGFzc2VzKHRoaXMuI2luaXRpYWxDbGFzc2VzKTtcbiAgICB0aGlzLiNhcHBseVNreVRoZW1lQ2xhc3NNYXAodGhpcy4jc2t5VGhlbWVDbGFzc01hcCk7XG4gIH1cblxuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNpbml0aWFsQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgI3NreVRoZW1lQ2xhc3NNYXA6IFNreVRoZW1lQ2xhc3NNYXAgfCB1bmRlZmluZWQ7XG5cbiAgI25nRWw6IEVsZW1lbnRSZWY7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5nRWw6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jbmdFbCA9IG5nRWw7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICBpZiAodGhlbWVTdmMpIHtcbiAgICAgIHRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3NDaGFuZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLiN0aGVtZVNldHRpbmdzID0gc2V0dGluZ3NDaGFuZ2UuY3VycmVudFNldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgI2FwcGx5SW5pdGlhbENsYXNzZXMoY2xhc3Nlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjbGFzc2VzKSB7XG4gICAgICBjbGFzc2VzLmZvckVhY2goKGNsYXNzTmFtZSkgPT4gdGhpcy4jdG9nZ2xlQ2xhc3MoY2xhc3NOYW1lLCB0cnVlKSk7XG4gICAgfVxuICB9XG5cbiAgI2FwcGx5U2t5VGhlbWVDbGFzc01hcChza3lUaGVtZUNsYXNzTWFwOiBTa3lUaGVtZUNsYXNzTWFwIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKHNreVRoZW1lQ2xhc3NNYXApIHtcbiAgICAgIGNvbnN0IHRoZW1lTmFtZSA9IHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgICBPYmplY3Qua2V5cyhza3lUaGVtZUNsYXNzTWFwKS5mb3JFYWNoKChjbGFzc05hbWUpID0+IHtcbiAgICAgICAgY29uc3QgZW5hYmxlZCA9IHRoZW1lTmFtZSA9PT0gc2t5VGhlbWVDbGFzc01hcFtjbGFzc05hbWVdO1xuICAgICAgICB0aGlzLiN0b2dnbGVDbGFzcyhjbGFzc05hbWUsIGVuYWJsZWQpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI3JlbW92ZUluaXRpYWxDbGFzc2VzKGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY2xhc3Nlcykge1xuICAgICAgY2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWUpID0+IHRoaXMuI3RvZ2dsZUNsYXNzKGNsYXNzTmFtZSwgZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICAjcmVtb3ZlU2t5VGhlbWVDbGFzc01hcChcbiAgICBza3lUaGVtZUNsYXNzTWFwOiBTa3lUaGVtZUNsYXNzTWFwIHwgdW5kZWZpbmVkLFxuICApOiB2b2lkIHtcbiAgICBpZiAoc2t5VGhlbWVDbGFzc01hcCkge1xuICAgICAgT2JqZWN0LmtleXMoc2t5VGhlbWVDbGFzc01hcCkuZm9yRWFjaCgoY2xhc3NOYW1lKSA9PlxuICAgICAgICB0aGlzLiN0b2dnbGVDbGFzcyhjbGFzc05hbWUsIGZhbHNlKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3RvZ2dsZUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY2xhc3NOYW1lID0gY2xhc3NOYW1lLnRyaW0oKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjbGFzc05hbWUpIHtcbiAgICAgIGNsYXNzTmFtZS5zcGxpdCgvXFxzKy9nKS5mb3JFYWNoKChjbGFzc05hbWVJdGVtKSA9PiB7XG4gICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy4jbmdFbC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWVJdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLiNuZ0VsLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZUl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, Optional, } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theme.service\";\n/**\n * Component that works like `ngIf` to show markup for matching theme.\n *\n * If the directive is within a `skyTheme` directive, it uses settings from that directive.\n */\nexport class SkyThemeIfDirective {\n /**\n * A string that should match the name of a theme, `'default'` or `'modern'`.\n *\n * @param value\n */\n set skyThemeIf(value) {\n this.#context = value;\n this.#updateView();\n }\n #context;\n #currentTheme;\n #ngUnsubscribe = new Subject();\n #hasView = false;\n #templateRef;\n #viewContainer;\n constructor(templateRef, viewContainer, changeDetector, themeSvc) {\n this.#templateRef = templateRef;\n this.#viewContainer = viewContainer;\n if (themeSvc) {\n themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((settingsChange) => {\n this.#currentTheme = settingsChange.currentSettings;\n this.#updateView();\n // Components that use OnPush change detection will not automatically\n // check for changes when created as a result of a theme change if\n // it happens outside of an Angular change detection cycle. This\n // ensures change detection runs on those components.\n changeDetector.markForCheck();\n });\n }\n }\n ngOnDestroy() {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n #updateView() {\n const themeName = this.#currentTheme?.theme.name || 'default';\n const condition = this.#context && themeName === this.#context;\n if (condition && !this.#hasView) {\n this.#viewContainer.createEmbeddedView(this.#templateRef);\n this.#hasView = true;\n }\n else if (!condition && this.#hasView) {\n this.#viewContainer.clear();\n this.#hasView = false;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIfDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: i1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeIfDirective, isStandalone: false, selector: \"[skyThemeIf]\", inputs: { skyThemeIf: \"skyThemeIf\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeIfDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeIf]',\n standalone: false,\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }, { type: i1.SkyThemeService, decorators: [{\n type: Optional\n }] }], propDecorators: { skyThemeIf: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS1pZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLM0M7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7T0FJRztJQUNILElBQ1csVUFBVSxDQUFDLEtBQXVDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFxQjtJQUM3QixhQUFhLENBQStCO0lBQzVDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3JDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFakIsWUFBWSxDQUF1QjtJQUNuQyxjQUFjLENBQW1CO0lBRWpDLFlBQ0UsV0FBaUMsRUFDakMsYUFBK0IsRUFDL0IsY0FBaUMsRUFDckIsUUFBMEI7UUFFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxjQUFjO2lCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVuQixxRUFBcUU7Z0JBQ3JFLGtFQUFrRTtnQkFDbEUsZ0VBQWdFO2dCQUNoRSxxREFBcUQ7Z0JBQ3JELGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0QsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7OEdBM0RVLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQXlCSSxRQUFRO3lDQWpCQSxVQUFVO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZVNldHRpbmdzIH0gZnJvbSAnLi90aGVtZS1zZXR0aW5ncyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICcuL3RoZW1lLnNlcnZpY2UnO1xuXG4vKipcbiAqIENvbXBvbmVudCB0aGF0IHdvcmtzIGxpa2UgYG5nSWZgIHRvIHNob3cgbWFya3VwIGZvciBtYXRjaGluZyB0aGVtZS5cbiAqXG4gKiBJZiB0aGUgZGlyZWN0aXZlIGlzIHdpdGhpbiBhIGBza3lUaGVtZWAgZGlyZWN0aXZlLCBpdCB1c2VzIHNldHRpbmdzIGZyb20gdGhhdCBkaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUaGVtZUlmXScsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaGVtZUlmRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIEEgc3RyaW5nIHRoYXQgc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGEgdGhlbWUsIGAnZGVmYXVsdCdgIG9yIGAnbW9kZXJuJ2AuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lUaGVtZUlmKHZhbHVlOiAnZGVmYXVsdCcgfCAnbW9kZXJuJyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI2NvbnRleHQgPSB2YWx1ZTtcbiAgICB0aGlzLiN1cGRhdGVWaWV3KCk7XG4gIH1cblxuICAjY29udGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNoYXNWaWV3ID0gZmFsc2U7XG5cbiAgI3RlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgI3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiN0ZW1wbGF0ZVJlZiA9IHRlbXBsYXRlUmVmO1xuICAgIHRoaXMuI3ZpZXdDb250YWluZXIgPSB2aWV3Q29udGFpbmVyO1xuICAgIGlmICh0aGVtZVN2Yykge1xuICAgICAgdGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzZXR0aW5nc0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMuI2N1cnJlbnRUaGVtZSA9IHNldHRpbmdzQ2hhbmdlLmN1cnJlbnRTZXR0aW5ncztcbiAgICAgICAgICB0aGlzLiN1cGRhdGVWaWV3KCk7XG5cbiAgICAgICAgICAvLyBDb21wb25lbnRzIHRoYXQgdXNlIE9uUHVzaCBjaGFuZ2UgZGV0ZWN0aW9uIHdpbGwgbm90IGF1dG9tYXRpY2FsbHlcbiAgICAgICAgICAvLyBjaGVjayBmb3IgY2hhbmdlcyB3aGVuIGNyZWF0ZWQgYXMgYSByZXN1bHQgb2YgYSB0aGVtZSBjaGFuZ2UgaWZcbiAgICAgICAgICAvLyBpdCBoYXBwZW5zIG91dHNpZGUgb2YgYW4gQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlLiBUaGlzXG4gICAgICAgICAgLy8gZW5zdXJlcyBjaGFuZ2UgZGV0ZWN0aW9uIHJ1bnMgb24gdGhvc2UgY29tcG9uZW50cy5cbiAgICAgICAgICBjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gICN1cGRhdGVWaWV3KCk6IHZvaWQge1xuICAgIGNvbnN0IHRoZW1lTmFtZSA9IHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSB8fCAnZGVmYXVsdCc7XG4gICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy4jY29udGV4dCAmJiB0aGVtZU5hbWUgPT09IHRoaXMuI2NvbnRleHQ7XG4gICAgaWYgKGNvbmRpdGlvbiAmJiAhdGhpcy4jaGFzVmlldykge1xuICAgICAgdGhpcy4jdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy4jdGVtcGxhdGVSZWYpO1xuICAgICAgdGhpcy4jaGFzVmlldyA9IHRydWU7XG4gICAgfSBlbHNlIGlmICghY29uZGl0aW9uICYmIHRoaXMuI2hhc1ZpZXcpIHtcbiAgICAgIHRoaXMuI3ZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICAgIHRoaXMuI2hhc1ZpZXcgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, } from '@angular/core';\nimport { SkyTheme } from './theme';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeService } from './theme.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./theme.service\";\nconst defaultTheme = new SkyThemeSettings(SkyTheme.presets.default, SkyThemeMode.presets.light);\n/**\n * Creates a new instance of `SkyThemeService` to allow a container\n * to have its own theme.\n */\nexport class SkyThemeDirective {\n set skyTheme(value) {\n this.skyThemeOrDefault = value || defaultTheme;\n if (this.#initialized) {\n this.#themeSvc.setTheme(this.skyThemeOrDefault);\n }\n }\n #initialized;\n #elRef;\n #renderer;\n #themeSvc;\n constructor(elRef, renderer, themeSvc) {\n this.skyThemeOrDefault = defaultTheme;\n this.#initialized = false;\n this.#elRef = elRef;\n this.#renderer = renderer;\n this.#themeSvc = themeSvc;\n }\n ngOnInit() {\n this.#themeSvc.init(this.#elRef.nativeElement, this.#renderer, this.skyThemeOrDefault);\n this.#initialized = true;\n }\n ngOnDestroy() {\n this.#themeSvc.destroy();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SkyThemeService }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeDirective, isStandalone: false, selector: \"[skyTheme]\", inputs: { skyTheme: \"skyTheme\" }, providers: [SkyThemeService], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyTheme]',\n providers: [SkyThemeService],\n standalone: false,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SkyThemeService }], propDecorators: { skyTheme: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRWxELE1BQU0sWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQ3ZDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUN4QixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDM0IsQ0FBQztBQUVGOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsSUFDVyxRQUFRLENBQUMsS0FBbUM7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssSUFBSSxZQUFZLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFJRCxZQUFZLENBQVM7SUFFckIsTUFBTSxDQUFhO0lBQ25CLFNBQVMsQ0FBWTtJQUNyQixTQUFTLENBQWtCO0lBRTNCLFlBQ0UsS0FBaUIsRUFDakIsUUFBbUIsRUFDbkIsUUFBeUI7UUFYcEIsc0JBQWlCLEdBQUcsWUFBWSxDQUFDO1FBRXhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBV25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUN6QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0F4Q1UsaUJBQWlCO2tHQUFqQixpQkFBaUIsNEZBSGpCLENBQUMsZUFBZSxDQUFDOzsyRkFHakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjtxSUFHWSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lIH0gZnJvbSAnLi90aGVtZSc7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZGUgfSBmcm9tICcuL3RoZW1lLW1vZGUnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJy4vdGhlbWUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS5zZXJ2aWNlJztcblxuY29uc3QgZGVmYXVsdFRoZW1lID0gbmV3IFNreVRoZW1lU2V0dGluZ3MoXG4gIFNreVRoZW1lLnByZXNldHMuZGVmYXVsdCxcbiAgU2t5VGhlbWVNb2RlLnByZXNldHMubGlnaHQsXG4pO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYFNreVRoZW1lU2VydmljZWAgdG8gYWxsb3cgYSBjb250YWluZXJcbiAqIHRvIGhhdmUgaXRzIG93biB0aGVtZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVRoZW1lXScsXG4gIHByb3ZpZGVyczogW1NreVRoZW1lU2VydmljZV0sXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaGVtZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lUaGVtZSh2YWx1ZTogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2t5VGhlbWVPckRlZmF1bHQgPSB2YWx1ZSB8fCBkZWZhdWx0VGhlbWU7XG5cbiAgICBpZiAodGhpcy4jaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuI3RoZW1lU3ZjLnNldFRoZW1lKHRoaXMuc2t5VGhlbWVPckRlZmF1bHQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBza3lUaGVtZU9yRGVmYXVsdCA9IGRlZmF1bHRUaGVtZTtcblxuICAjaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAjZWxSZWY6IEVsZW1lbnRSZWY7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHRoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuI2VsUmVmID0gZWxSZWY7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlcjtcbiAgICB0aGlzLiN0aGVtZVN2YyA9IHRoZW1lU3ZjO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI3RoZW1lU3ZjLmluaXQoXG4gICAgICB0aGlzLiNlbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy4jcmVuZGVyZXIsXG4gICAgICB0aGlzLnNreVRoZW1lT3JEZWZhdWx0LFxuICAgICk7XG5cbiAgICB0aGlzLiNpbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jdGhlbWVTdmMuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SkyThemeClassDirective } from './theming/theme-class.directive';\nimport { SkyThemeIfDirective } from './theming/theme-if.directive';\nimport { SkyThemeDirective } from './theming/theme.directive';\nimport * as i0 from \"@angular/core\";\nexport class SkyThemeModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule, declarations: [SkyThemeClassDirective,\n SkyThemeDirective,\n SkyThemeIfDirective], exports: [SkyThemeClassDirective, SkyThemeDirective, SkyThemeIfDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n SkyThemeClassDirective,\n SkyThemeDirective,\n SkyThemeIfDirective,\n ],\n exports: [SkyThemeClassDirective, SkyThemeDirective, SkyThemeIfDirective],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBVTlELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkFOdkIsc0JBQXNCO1lBQ3RCLGlCQUFpQjtZQUNqQixtQkFBbUIsYUFFWCxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7K0dBRTdELGNBQWM7OzJGQUFkLGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDO2lCQUMxRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICcuL3RoZW1pbmcvdGhlbWUtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVRoZW1lSWZEaXJlY3RpdmUgfSBmcm9tICcuL3RoZW1pbmcvdGhlbWUtaWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi90aGVtaW5nL3RoZW1lLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVRoZW1lQ2xhc3NEaXJlY3RpdmUsXG4gICAgU2t5VGhlbWVEaXJlY3RpdmUsXG4gICAgU2t5VGhlbWVJZkRpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreVRoZW1lQ2xhc3NEaXJlY3RpdmUsIFNreVRoZW1lRGlyZWN0aXZlLCBTa3lUaGVtZUlmRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVNb2R1bGUge31cbiJdfQ==","import { ChangeDetectorRef, Directive, HostBinding, inject, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SkyThemeService } from '../theming/theme.service';\nimport * as i0 from \"@angular/core\";\nexport class SkyThemeComponentClassDirective {\n #changeDetector;\n #themeService;\n constructor() {\n this.theme = 'sky-cmp-theme-default';\n this.#changeDetector = inject(ChangeDetectorRef);\n this.#themeService = inject(SkyThemeService, { optional: true });\n this.#themeService?.settingsChange\n .pipe(takeUntilDestroyed())\n .subscribe((change) => {\n this.theme = `sky-cmp-theme-${change.currentSettings.theme.name}`;\n this.#changeDetector.markForCheck();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeComponentClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.0\", type: SkyThemeComponentClassDirective, isStandalone: true, selector: \"[skyThemeClass]\", host: { properties: { \"class\": \"this.theme\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyThemeComponentClassDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeClass]',\n standalone: true,\n }]\n }], ctorParameters: () => [], propDecorators: { theme: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY29tcG9uZW50LWNsYXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtY29tcG9uZW50LWNsYXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNM0QsTUFBTSxPQUFPLCtCQUErQjtJQUkxQyxlQUFlLENBQTZCO0lBQzVDLGFBQWEsQ0FBK0M7SUFFNUQ7UUFMTyxVQUFLLEdBQUcsdUJBQXVCLENBQUM7UUFFdkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUcxRCxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWM7YUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBZFUsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3dEQUdRLEtBQUs7c0JBRFgsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1pbmcvdGhlbWUuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUaGVtZUNsYXNzXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRoZW1lQ29tcG9uZW50Q2xhc3NEaXJlY3RpdmUge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHVibGljIHRoZW1lID0gJ3NreS1jbXAtdGhlbWUtZGVmYXVsdCc7XG5cbiAgI2NoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgI3RoZW1lU2VydmljZSA9IGluamVjdChTa3lUaGVtZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jdGhlbWVTZXJ2aWNlPy5zZXR0aW5nc0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgdGhpcy50aGVtZSA9IGBza3ktY21wLXRoZW1lLSR7Y2hhbmdlLmN1cnJlbnRTZXR0aW5ncy50aGVtZS5uYW1lfWA7XG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { DOCUMENT, DestroyRef, Injectable, NgZone, inject, } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * Provides information about the state of the application's viewport.\n */\nexport class SkyAppViewportService {\n // ESLint doesn't recognize how this is used.\n #updateRequest;\n #reserveItems;\n #conditionallyReserveItems;\n #document;\n #ngZone;\n // Observe elements crossing the browser's viewport boundaries.\n #intersectionObserver;\n #reservedSpaces;\n constructor() {\n /**\n * Updated when the viewport becomes visible. While the page is rendered, the\n * viewport may remain hidden as fonts and styles are loaded asynchronously;\n * this is done to avoid a FOUC (Flash Of Unstyled Content) before the fonts\n * and styles are ready.\n */\n this.visible = new ReplaySubject(1);\n // ESLint doesn't recognize how this is used.\n this.#updateRequest = undefined;\n this.#reserveItems = new Map();\n this.#conditionallyReserveItems = new Map();\n this.#document = inject(DOCUMENT);\n this.#ngZone = inject(NgZone);\n // Observe elements crossing the browser's viewport boundaries.\n this.#intersectionObserver = this.#ngZone.runOutsideAngular(() => new IntersectionObserver(() => this.#ngZone.run(() => this.#updateViewportArea()), { threshold: Array.from({ length: 101 }, (_, i) => i / 100) }));\n this.#reservedSpaces = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n const onScroll = () => {\n if (this.#conditionallyReserveItems.size > 0) {\n this.#updateViewportArea();\n }\n };\n this.#document.addEventListener('scroll', onScroll);\n inject(DestroyRef).onDestroy(() => {\n /* istanbul ignore next */\n if (this.#updateRequest !== undefined) {\n cancelAnimationFrame(this.#updateRequest);\n }\n this.#intersectionObserver.disconnect();\n this.#document.removeEventListener('scroll', onScroll);\n });\n }\n /**\n * Reserves space for components docked to the left, top, right, or bottom of the viewport.\n * @param args\n */\n reserveSpace(args) {\n const item = {\n ...args,\n active: this.#isElementVisible({ ...args, active: false }),\n };\n this.#reserveItems.set(args.id, item);\n this.#watchVisibility(item);\n this.#updateViewportArea();\n }\n /**\n * Removes reserved space for a component by the ID provided when it was reserved.\n * @param id\n */\n unreserveSpace(id) {\n const args = this.#reserveItems.get(id);\n if (args?.reserveForElement) {\n this.#intersectionObserver.unobserve(args.reserveForElement);\n this.#conditionallyReserveItems.delete(args.reserveForElement);\n }\n this.#reserveItems.delete(id);\n this.#updateViewportArea();\n }\n #updateViewportArea() {\n this.#updateRequest ??= requestAnimationFrame(() => {\n this.#updateRequest = undefined;\n const reservedSpaces = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n for (const args of this.#reserveItems.values()) {\n args.active = this.#isElementVisible(args, reservedSpaces);\n if (args.active) {\n reservedSpaces[args.position] += args.size;\n }\n }\n this.#reservedSpaces = reservedSpaces;\n const documentElementStyle = this.#document.documentElement.style;\n for (const [position, size] of Object.entries(reservedSpaces)) {\n documentElementStyle.setProperty(`--sky-viewport-${position}`, size + 'px');\n }\n });\n }\n #watchVisibility(item) {\n if (item.reserveForElement) {\n this.#conditionallyReserveItems.set(item.reserveForElement, item);\n this.#intersectionObserver.observe(item.reserveForElement);\n }\n }\n #isElementVisible(args, reservedSpaces = this\n .#reservedSpaces) {\n if (!args.reserveForElement) {\n return true;\n }\n const rect = args.reserveForElement.getBoundingClientRect();\n if (!rect || !rect.height || !rect.width) {\n return false;\n }\n const midpoint = {\n x: rect.x + Math.floor(rect.width / 2),\n y: rect.y + Math.floor(rect.height / 2),\n };\n if (\n // Vertically in view\n midpoint.y <= window.innerHeight &&\n midpoint.y >= 0 &&\n // Horizontally in view\n midpoint.x <= window.innerWidth &&\n midpoint.x >= 0) {\n // Element is not hidden by another element\n if (args.reserveForElement.contains(this.#document.elementFromPoint(midpoint.x, midpoint.y))) {\n return true;\n }\n // Check if the item's midpoint is visible based on current reserved spaces.\n // Assumes reserved spaces are intended to be additive and not overlapping.\n const threshold = reservedSpaces[args.position];\n switch (args.position) {\n case 'top':\n return midpoint.y >= threshold;\n case 'right':\n return midpoint.x <= window.innerWidth - threshold;\n case 'bottom':\n return midpoint.y <= window.innerHeight - threshold;\n case 'left':\n return midpoint.x >= threshold;\n }\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppViewportService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.0\", ngImport: i0, type: SkyAppViewportService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3ZpZXdwb3J0L3ZpZXdwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFTckM7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBU2hDLDZDQUE2QztJQUM3QyxjQUFjLENBQWlDO0lBQ3RDLGFBQWEsQ0FBc0M7SUFDbkQsMEJBQTBCLENBQXVDO0lBQ2pFLFNBQVMsQ0FBb0I7SUFDN0IsT0FBTyxDQUFrQjtJQUNsQywrREFBK0Q7SUFDdEQscUJBQXFCLENBTTVCO0lBQ0YsZUFBZSxDQUtiO0lBRUY7UUE3QkE7Ozs7O1dBS0c7UUFDSSxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFFL0MsNkNBQTZDO1FBQzdDLG1CQUFjLEdBQXVCLFNBQVMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBQ25ELCtCQUEwQixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBQ2pFLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQywrREFBK0Q7UUFDdEQsMEJBQXFCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDN0QsR0FBRyxFQUFFLENBQ0gsSUFBSSxvQkFBb0IsQ0FDdEIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMs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LFFBQVE7b0JBQ1gsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO2dCQUN0RCxLQUFLLE1BQU07b0JBQ1QsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FoS1UscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERPQ1VNRU5ULFxuICBEZXN0cm95UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QXBwVmlld3BvcnRSZXNlcnZlQXJncyB9IGZyb20gJy4vdmlld3BvcnQtcmVzZXJ2ZS1hcmdzJztcbmltcG9ydCB7IFNreUFwcFZpZXdwb3J0UmVzZXJ2ZWRQb3NpdGlvblR5cGUgfSBmcm9tICcuL3ZpZXdwb3J0LXJlc2VydmUtcG9zaXRpb24tdHlwZSc7XG5cbnR5cGUgUmVzZXJ2ZUl0ZW1UeXBlID0gU2t5QXBwVmlld3BvcnRSZXNlcnZlQXJncyAmIHtcbiAgYWN0aXZlOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIGFwcGxpY2F0aW9uJ3Mgdmlld3BvcnQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBWaWV3cG9ydFNlcnZpY2Uge1xuICAvKipcbiAgICogVXBkYXRlZCB3aGVuIHRoZSB2aWV3cG9ydCBiZWNvbWVzIHZpc2libGUuICBXaGlsZSB0aGUgcGFnZSBpcyByZW5kZXJlZCwgdGhlXG4gICAqIHZpZXdwb3J0IG1heSByZW1haW4gaGlkZGVuIGFzIGZvbnRzIGFuZCBzdHlsZXMgYXJlIGxvYWRlZCBhc3luY2hyb25vdXNseTtcbiAgICogdGhpcyBpcyBkb25lIHRvIGF2b2lkIGEgRk9VQyAoRmxhc2ggT2YgVW5zdHlsZWQgQ29udGVudCkgYmVmb3JlIHRoZSBmb250c1xuICAgKiBhbmQgc3R5bGVzIGFyZSByZWFkeS5cbiAgICovXG4gIHB1YmxpYyB2aXNpYmxlID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgLy8gRVNMaW50IGRvZXNuJ3QgcmVjb2duaXplIGhvdyB0aGlzIGlzIHVzZWQuXG4gICN1cGRhdGVSZXF1ZXN0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5ICNyZXNlcnZlSXRlbXMgPSBuZXcgTWFwPHN0cmluZywgUmVzZXJ2ZUl0ZW1UeXBlPigpO1xuICByZWFkb25seSAjY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcyA9IG5ldyBNYXA8RWxlbWVudCwgUmVzZXJ2ZUl0ZW1UeXBlPigpO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIC8vIE9ic2VydmUgZWxlbWVudHMgY3Jvc3NpbmcgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCBib3VuZGFyaWVzLlxuICByZWFkb25seSAjaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0aGlzLiNuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXG4gICAgKCkgPT5cbiAgICAgIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKCkgPT4gdGhpcy4jbmdab25lLnJ1bigoKSA9PiB0aGlzLiN1cGRhdGVWaWV3cG9ydEFyZWEoKSksXG4gICAgICAgIHsgdGhyZXNob2xkOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMDEgfSwgKF8sIGkpID0+IGkgLyAxMDApIH0sXG4gICAgICApLFxuICApO1xuICAjcmVzZXJ2ZWRTcGFjZXM6IFJlY29yZDxTa3lBcHBWaWV3cG9ydFJlc2VydmVkUG9zaXRpb25UeXBlLCBudW1iZXI+ID0ge1xuICAgIGJvdHRvbTogMCxcbiAgICBsZWZ0OiAwLFxuICAgIHJpZ2h0OiAwLFxuICAgIHRvcDogMCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjb25zdCBvblNjcm9sbCA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGlmICh0aGlzLiNjb25kaXRpb25hbGx5UmVzZXJ2ZUl0ZW1zLnNpemUgPiAwKSB7XG4gICAgICAgIHRoaXMuI3VwZGF0ZVZpZXdwb3J0QXJlYSgpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy4jZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgb25TY3JvbGwpO1xuICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICh0aGlzLiN1cGRhdGVSZXF1ZXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy4jdXBkYXRlUmVxdWVzdCk7XG4gICAgICB9XG4gICAgICB0aGlzLiNpbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLiNkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvblNjcm9sbCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXJ2ZXMgc3BhY2UgZm9yIGNvbXBvbmVudHMgZG9ja2VkIHRvIHRoZSBsZWZ0LCB0b3AsIHJpZ2h0LCBvciBib3R0b20gb2YgdGhlIHZpZXdwb3J0LlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKi9cbiAgcHVibGljIHJlc2VydmVTcGFjZShhcmdzOiBTa3lBcHBWaWV3cG9ydFJlc2VydmVBcmdzKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICBhY3RpdmU6IHRoaXMuI2lzRWxlbWVudFZpc2libGUoeyAuLi5hcmdzLCBhY3RpdmU6IGZhbHNlIH0pLFxuICAgIH07XG4gICAgdGhpcy4jcmVzZXJ2ZUl0ZW1zLnNldChhcmdzLmlkLCBpdGVtKTtcbiAgICB0aGlzLiN3YXRjaFZpc2liaWxpdHkoaXRlbSk7XG4gICAgdGhpcy4jdXBkYXRlVmlld3BvcnRBcmVhKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyByZXNlcnZlZCBzcGFjZSBmb3IgYSBjb21wb25lbnQgYnkgdGhlIElEIHByb3ZpZGVkIHdoZW4gaXQgd2FzIHJlc2VydmVkLlxuICAgKiBAcGFyYW0gaWRcbiAgICovXG4gIHB1YmxpYyB1bnJlc2VydmVTcGFjZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgYXJncyA9IHRoaXMuI3Jlc2VydmVJdGVtcy5nZXQoaWQpO1xuICAgIGlmIChhcmdzPy5yZXNlcnZlRm9yRWxlbWVudCkge1xuICAgICAgdGhpcy4jaW50ZXJzZWN0aW9uT2JzZXJ2ZXIudW5vYnNlcnZlKGFyZ3MucmVzZXJ2ZUZvckVsZW1lbnQpO1xuICAgICAgdGhpcy4jY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcy5kZWxldGUoYXJncy5yZXNlcnZlRm9yRWxlbWVudCk7XG4gICAgfVxuICAgIHRoaXMuI3Jlc2VydmVJdGVtcy5kZWxldGUoaWQpO1xuICAgIHRoaXMuI3VwZGF0ZVZpZXdwb3J0QXJlYSgpO1xuICB9XG5cbiAgI3VwZGF0ZVZpZXdwb3J0QXJlYSgpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVSZXF1ZXN0ID8/PSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy4jdXBkYXRlUmVxdWVzdCA9IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJlc2VydmVkU3BhY2VzOiBSZWNvcmQ8U2t5QXBwVmlld3BvcnRSZXNlcnZlZFBvc2l0aW9uVHlwZSwgbnVtYmVyPiA9XG4gICAgICAgIHtcbiAgICAgICAgICBib3R0b206IDAsXG4gICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICB0b3A6IDAsXG4gICAgICAgIH07XG5cbiAgICAgIGZvciAoY29uc3QgYXJncyBvZiB0aGlzLiNyZXNlcnZlSXRlbXMudmFsdWVzKCkpIHtcbiAgICAgICAgYXJncy5hY3RpdmUgPSB0aGlzLiNpc0VsZW1lbnRWaXNpYmxlKGFyZ3MsIHJlc2VydmVkU3BhY2VzKTtcbiAgICAgICAgaWYgKGFyZ3MuYWN0aXZlKSB7XG4gICAgICAgICAgcmVzZXJ2ZWRTcGFjZXNbYXJncy5wb3NpdGlvbl0gKz0gYXJncy5zaXplO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI3Jlc2VydmVkU3BhY2VzID0gcmVzZXJ2ZWRTcGFjZXM7XG4gICAgICBjb25zdCBkb2N1bWVudEVsZW1lbnRTdHlsZSA9IHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZTtcblxuICAgICAgZm9yIChjb25zdCBbcG9zaXRpb24sIHNpemVdIG9mIE9iamVjdC5lbnRyaWVzKHJlc2VydmVkU3BhY2VzKSkge1xuICAgICAgICBkb2N1bWVudEVsZW1lbnRTdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICAgICBgLS1za3ktdmlld3BvcnQtJHtwb3NpdGlvbn1gLFxuICAgICAgICAgIHNpemUgKyAncHgnLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgI3dhdGNoVmlzaWJpbGl0eShpdGVtOiBSZXNlcnZlSXRlbVR5cGUpOiB2b2lkIHtcbiAgICBpZiAoaXRlbS5yZXNlcnZlRm9yRWxlbWVudCkge1xuICAgICAgdGhpcy4jY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcy5zZXQoaXRlbS5yZXNlcnZlRm9yRWxlbWVudCwgaXRlbSk7XG4gICAgICB0aGlzLiNpbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKGl0ZW0ucmVzZXJ2ZUZvckVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gICNpc0VsZW1lbnRWaXNpYmxlKFxuICAgIGFyZ3M6IFJlc2VydmVJdGVtVHlwZSxcbiAgICByZXNlcnZlZFNwYWNlczogUmVjb3JkPFNreUFwcFZpZXdwb3J0UmVzZXJ2ZWRQb3NpdGlvblR5cGUsIG51bWJlcj4gPSB0aGlzXG4gICAgICAuI3Jlc2VydmVkU3BhY2VzLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWFyZ3MucmVzZXJ2ZUZvckVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCByZWN0ID0gYXJncy5yZXNlcnZlRm9yRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBpZiAoIXJlY3QgfHwgIXJlY3QuaGVpZ2h0IHx8ICFyZWN0LndpZHRoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IG1pZHBvaW50ID0ge1xuICAgICAgeDogcmVjdC54ICsgTWF0aC5mbG9vcihyZWN0LndpZHRoIC8gMiksXG4gICAgICB5OiByZWN0LnkgKyBNYXRoLmZsb29yKHJlY3QuaGVpZ2h0IC8gMiksXG4gICAgfTtcbiAgICBpZiAoXG4gICAgICAvLyBWZXJ0aWNhbGx5IGluIHZpZXdcbiAgICAgIG1pZHBvaW50LnkgPD0gd2luZG93LmlubmVySGVpZ2h0ICYmXG4gICAgICBtaWRwb2ludC55ID49IDAgJiZcbiAgICAgIC8vIEhvcml6b250YWxseSBpbiB2aWV3XG4gICAgICBtaWRwb2ludC54IDw9IHdpbmRvdy5pbm5lcldpZHRoICYmXG4gICAgICBtaWRwb2ludC54ID49IDBcbiAgICApIHtcbiAgICAgIC8vIEVsZW1lbnQgaXMgbm90IGhpZGRlbiBieSBhbm90aGVyIGVsZW1lbnRcbiAgICAgIGlmIChcbiAgICAgICAgYXJncy5yZXNlcnZlRm9yRWxlbWVudC5jb250YWlucyhcbiAgICAgICAgICB0aGlzLiNkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KG1pZHBvaW50LngsIG1pZHBvaW50LnkpLFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBpdGVtJ3MgbWlkcG9pbnQgaXMgdmlzaWJsZSBiYXNlZCBvbiBjdXJyZW50IHJlc2VydmVkIHNwYWNlcy5cbiAgICAgIC8vIEFzc3VtZXMgcmVzZXJ2ZWQgc3BhY2VzIGFyZSBpbnRlbmRlZCB0byBiZSBhZGRpdGl2ZSBhbmQgbm90IG92ZXJsYXBwaW5nLlxuICAgICAgY29uc3QgdGhyZXNob2xkID0gcmVzZXJ2ZWRTcGFjZXNbYXJncy5wb3NpdGlvbl07XG4gICAgICBzd2l0Y2ggKGFyZ3MucG9zaXRpb24pIHtcbiAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICByZXR1cm4gbWlkcG9pbnQueSA+PSB0aHJlc2hvbGQ7XG4gICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICByZXR1cm4gbWlkcG9pbnQueCA8PSB3aW5kb3cuaW5uZXJXaWR0aCAtIHRocmVzaG9sZDtcbiAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICByZXR1cm4gbWlkcG9pbnQueSA8PSB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aHJlc2hvbGQ7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIHJldHVybiBtaWRwb2ludC54ID49IHRocmVzaG9sZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=","import { DOCUMENT, RendererFactory2, inject, makeEnvironmentProviders, provideAppInitializer, } from '@angular/core';\nimport { SkyTheme } from '../theming/theme';\nimport { SkyThemeMode } from '../theming/theme-mode';\nimport { SkyThemeSettings } from '../theming/theme-settings';\nimport { SkyThemeSpacing } from '../theming/theme-spacing';\nimport { SkyThemeService } from '../theming/theme.service';\nexport function provideInitialTheme(name = 'default', options) {\n return makeEnvironmentProviders([\n SkyThemeService,\n provideAppInitializer(() => {\n const initializerFn = ((themeService, doc, rendererFactory) => {\n return () => {\n themeService.init(doc.body, rendererFactory.createRenderer(null, null), new SkyThemeSettings(SkyTheme.presets[name], SkyThemeMode.presets[options?.mode ?? 'light'], SkyThemeSpacing.presets[options?.spacing ?? 'standard']));\n };\n })(inject(SkyThemeService), inject(DOCUMENT), inject(RendererFactory2));\n return initializerFn();\n }),\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1pbml0aWFsLXRoZW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvcHJvdmlkZXJzL3Byb3ZpZGUtaW5pdGlhbC10aGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsUUFBUSxFQUVSLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sd0JBQXdCLEVBQ3hCLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxPQUFzQyxTQUFTLEVBQy9DLE9BR0M7SUFFRCxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLGVBQWU7UUFDZixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUNyQixZQUE2QixFQUM3QixHQUFhLEVBQ2IsZUFBaUMsRUFDakMsRUFBRTtnQkFDRixPQUFPLEdBQVMsRUFBRTtvQkFDaEIsWUFBWSxDQUFDLElBQUksQ0FDZixHQUFHLENBQUMsSUFBSSxFQUNSLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUMxQyxJQUFJLGdCQUFnQixDQUNsQixRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUN0QixZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDLEVBQzlDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FDeEQsQ0FDRixDQUFDO2dCQUNKLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUN4RSxPQUFPLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBET0NVTUVOVCxcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIGluamVjdCxcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxuICBwcm92aWRlQXBwSW5pdGlhbGl6ZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZSB9IGZyb20gJy4uL3RoZW1pbmcvdGhlbWUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2RlIH0gZnJvbSAnLi4vdGhlbWluZy90aGVtZS1tb2RlJztcbmltcG9ydCB7IFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICcuLi90aGVtaW5nL3RoZW1lLXNldHRpbmdzJztcbmltcG9ydCB7IFNreVRoZW1lU3BhY2luZyB9IGZyb20gJy4uL3RoZW1pbmcvdGhlbWUtc3BhY2luZyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi90aGVtaW5nL3RoZW1lLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUluaXRpYWxUaGVtZShcbiAgbmFtZToga2V5b2YgdHlwZW9mIFNreVRoZW1lLnByZXNldHMgPSAnZGVmYXVsdCcsXG4gIG9wdGlvbnM/OiB7XG4gICAgbW9kZT86IGtleW9mIHR5cGVvZiBTa3lUaGVtZU1vZGUucHJlc2V0cztcbiAgICBzcGFjaW5nPzoga2V5b2YgdHlwZW9mIFNreVRoZW1lU3BhY2luZy5wcmVzZXRzO1xuICB9LFxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBTa3lUaGVtZVNlcnZpY2UsXG4gICAgcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVyRm4gPSAoKFxuICAgICAgICB0aGVtZVNlcnZpY2U6IFNreVRoZW1lU2VydmljZSxcbiAgICAgICAgZG9jOiBEb2N1bWVudCxcbiAgICAgICAgcmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLFxuICAgICAgKSA9PiB7XG4gICAgICAgIHJldHVybiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhlbWVTZXJ2aWNlLmluaXQoXG4gICAgICAgICAgICBkb2MuYm9keSxcbiAgICAgICAgICAgIHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKSxcbiAgICAgICAgICAgIG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICAgICAgICAgICAgICBTa3lUaGVtZS5wcmVzZXRzW25hbWVdLFxuICAgICAgICAgICAgICBTa3lUaGVtZU1vZGUucHJlc2V0c1tvcHRpb25zPy5tb2RlID8/ICdsaWdodCddLFxuICAgICAgICAgICAgICBTa3lUaGVtZVNwYWNpbmcucHJlc2V0c1tvcHRpb25zPy5zcGFjaW5nID8/ICdzdGFuZGFyZCddLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfSkoaW5qZWN0KFNreVRoZW1lU2VydmljZSksIGluamVjdChET0NVTUVOVCksIGluamVjdChSZW5kZXJlckZhY3RvcnkyKSk7XG4gICAgICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xuICAgIH0pLFxuICBdKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtdGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGhlbWUvc3JjL3NreXV4LXRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.SkyThemeService"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,26 +1,7 @@
1
- import { SkyIconManifest, SkyIconManifestGlyph } from '@skyux/icons';
2
- export { SkyIconManifestGlyph as SkyThemeIconManifestGlyph } from '@skyux/icons';
3
1
  import * as i0 from '@angular/core';
4
2
  import { Renderer2, OnDestroy, ElementRef, OnInit, TemplateRef, ViewContainerRef, ChangeDetectorRef, EnvironmentProviders } from '@angular/core';
5
3
  import { Observable, ReplaySubject } from 'rxjs';
6
4
 
7
- interface SkyThemeIconManifest extends SkyIconManifest {
8
- glyphs: SkyIconManifestGlyph[];
9
- }
10
-
11
- /**
12
- * Provides a method for retrieving metadata about the SKY UX icon font.
13
- * @internal
14
- */
15
- declare class SkyThemeIconManifestService {
16
- /**
17
- * Gets metadata about the SKY UX icon font.
18
- */
19
- getManifest(): SkyThemeIconManifest;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<SkyThemeIconManifestService, never>;
21
- static ɵprov: i0.ɵɵInjectableDeclaration<SkyThemeIconManifestService>;
22
- }
23
-
24
5
  /**
25
6
  * @internal
26
7
  * Defines properties for a mask icon.
@@ -459,5 +440,5 @@ declare function provideInitialTheme(name?: keyof typeof SkyTheme.presets, optio
459
440
  spacing?: keyof typeof SkyThemeSpacing.presets;
460
441
  }): EnvironmentProviders;
461
442
 
462
- export { SkyAppStyleLoader, SkyAppViewportService, SkyTheme, SkyThemeBrand, SkyThemeComponentClassDirective, SkyThemeIconManifestService, SkyThemeMode, SkyThemeModule, SkyThemeService, SkyThemeSettings, SkyThemeSpacing, provideInitialTheme, SkyThemeDirective as λ1, SkyThemeClassDirective as λ2, SkyThemeIfDirective as λ3 };
463
- export type { SkyAppViewportReserveArgs, SkyAppViewportReservedPositionType, SkyThemeIconManifest, SkyThemeSettingsChange };
443
+ export { SkyAppStyleLoader, SkyAppViewportService, SkyTheme, SkyThemeBrand, SkyThemeComponentClassDirective, SkyThemeMode, SkyThemeModule, SkyThemeService, SkyThemeSettings, SkyThemeSpacing, provideInitialTheme, SkyThemeDirective as λ1, SkyThemeClassDirective as λ2, SkyThemeIfDirective as λ3 };
444
+ export type { SkyAppViewportReserveArgs, SkyAppViewportReservedPositionType, SkyThemeSettingsChange };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/theme",
3
- "version": "13.0.0",
3
+ "version": "13.1.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,7 +21,6 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@blackbaud/skyux-design-tokens": "3.0.0",
24
- "@skyux/icons": "9.0.0",
25
24
  "fontfaceobserver": "2.3.0",
26
25
  "tslib": "^2.8.1"
27
26
  },