@skyux/theme 13.11.4 → 13.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/sky.css +60 -0
- package/css/themes/modern/styles.css +124 -2
- package/fesm2022/skyux-theme.mjs.map +1 -1
- package/package.json +2 -2
package/css/sky.css
CHANGED
|
@@ -1673,6 +1673,66 @@ body:not(.sky-theme-modern) {
|
|
|
1673
1673
|
background-color: rgb(187.75, 237.9782157676, 255);
|
|
1674
1674
|
}
|
|
1675
1675
|
|
|
1676
|
+
:root {
|
|
1677
|
+
/* data viz colors */
|
|
1678
|
+
--sky-theme-color-viz-category-1: #06a39e;
|
|
1679
|
+
--sky-theme-color-viz-category-2: #6d3c96;
|
|
1680
|
+
--sky-theme-color-viz-category-3: #5589dd;
|
|
1681
|
+
--sky-theme-color-viz-category-4: #004252;
|
|
1682
|
+
--sky-theme-color-viz-category-5: #ce5600;
|
|
1683
|
+
--sky-theme-color-viz-category-6: #822325;
|
|
1684
|
+
--sky-theme-color-viz-category-7: #c650c1;
|
|
1685
|
+
--sky-theme-color-viz-category-8: #077e43;
|
|
1686
|
+
--sky-theme-color-viz-sequence-1: #dcf6f5;
|
|
1687
|
+
--sky-theme-color-viz-sequence-2: #abe9e7;
|
|
1688
|
+
--sky-theme-color-viz-sequence-3: #60d5d2;
|
|
1689
|
+
--sky-theme-color-viz-sequence-4: #07beb8;
|
|
1690
|
+
--sky-theme-color-viz-sequence-5: #06a39e;
|
|
1691
|
+
--sky-theme-color-viz-sequence-6: #058984;
|
|
1692
|
+
--sky-theme-color-viz-sequence-7: #046e6b;
|
|
1693
|
+
--sky-theme-color-viz-sequence-8: #035755;
|
|
1694
|
+
--sky-theme-color-viz-sequence-9: #02413f;
|
|
1695
|
+
--sky-theme-color-viz-sequence-10: #022a28;
|
|
1696
|
+
--sky-theme-color-viz-diverge-neg-10: #4a1415;
|
|
1697
|
+
--sky-theme-color-viz-diverge-neg-9: #641b1c;
|
|
1698
|
+
--sky-theme-color-viz-diverge-neg-8: #822325;
|
|
1699
|
+
--sky-theme-color-viz-diverge-neg-7: #ae2e31;
|
|
1700
|
+
--sky-theme-color-viz-diverge-neg-6: #d93a3d;
|
|
1701
|
+
--sky-theme-color-viz-diverge-neg-5: #e36d6f;
|
|
1702
|
+
--sky-theme-color-viz-diverge-neg-4: #ea9596;
|
|
1703
|
+
--sky-theme-color-viz-diverge-neg-3: #f1b4b5;
|
|
1704
|
+
--sky-theme-color-viz-diverge-neg-2: #f5cccd;
|
|
1705
|
+
--sky-theme-color-viz-diverge-neg-1: #fae7e8;
|
|
1706
|
+
--sky-theme-color-viz-diverge-pos-1: #eef3fc;
|
|
1707
|
+
--sky-theme-color-viz-diverge-pos-2: #d5e1f7;
|
|
1708
|
+
--sky-theme-color-viz-diverge-pos-3: #aac4ee;
|
|
1709
|
+
--sky-theme-color-viz-diverge-pos-4: #80a6e6;
|
|
1710
|
+
--sky-theme-color-viz-diverge-pos-5: #5589dd;
|
|
1711
|
+
--sky-theme-color-viz-diverge-pos-6: #2b6bd5;
|
|
1712
|
+
--sky-theme-color-viz-diverge-pos-7: #2256aa;
|
|
1713
|
+
--sky-theme-color-viz-diverge-pos-8: #1a4080;
|
|
1714
|
+
--sky-theme-color-viz-diverge-pos-9: #112b55;
|
|
1715
|
+
--sky-theme-color-viz-diverge-pos-10: #0d2040;
|
|
1716
|
+
--sky-theme-color-viz-axis: #85888d;
|
|
1717
|
+
--sky-theme-color-viz-gridline: #e0e1e2;
|
|
1718
|
+
--sky-theme-color-viz-marker: #252b33;
|
|
1719
|
+
/* classification colors */
|
|
1720
|
+
--sky-theme-color-classify-1-heavy: #046e6b;
|
|
1721
|
+
--sky-theme-color-classify-1-soft: #abe9e7;
|
|
1722
|
+
--sky-theme-color-classify-2-heavy: #8d4ec2;
|
|
1723
|
+
--sky-theme-color-classify-2-soft: #e9d3fb;
|
|
1724
|
+
--sky-theme-color-classify-3-heavy: #007894;
|
|
1725
|
+
--sky-theme-color-classify-3-soft: #a8efff;
|
|
1726
|
+
--sky-theme-color-classify-4-heavy: #a74500;
|
|
1727
|
+
--sky-theme-color-classify-4-soft: #fcd7bd;
|
|
1728
|
+
--sky-theme-color-classify-5-heavy: #a542a0;
|
|
1729
|
+
--sky-theme-color-classify-5-soft: #fcd9fa;
|
|
1730
|
+
--sky-theme-color-classify-6-heavy: #077e43;
|
|
1731
|
+
--sky-theme-color-classify-6-soft: #a8f1cd;
|
|
1732
|
+
--sky-theme-color-classify-7-heavy: #ae2e31;
|
|
1733
|
+
--sky-theme-color-classify-7-soft: #f5cccd;
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1676
1736
|
.sky-padding-even-default {
|
|
1677
1737
|
padding: 10px 10px 10px 10px;
|
|
1678
1738
|
}
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
--bb-font-weight-light: 300;
|
|
206
206
|
--bb-font-weight-regular: 400;
|
|
207
207
|
--bb-font-weight-semibold: 600;
|
|
208
|
-
--bb-image-logo-primary-src: url("https://sky.blackbaudcdn.net/static/skyux-design-tokens/4.0
|
|
208
|
+
--bb-image-logo-primary-src: url("https://sky.blackbaudcdn.net/static/skyux-design-tokens/4.1.0/assets/images/bb-logo.png");
|
|
209
209
|
--bb-letter_spacing-normal: normal;
|
|
210
210
|
--bb-letter_spacing-wider: 0.01rem;
|
|
211
211
|
--bb-letter_spacing-widest: 0.046875rem;
|
|
@@ -431,6 +431,27 @@
|
|
|
431
431
|
--sky-color-border-tab-wizard-disabled: var(--bb-color-transparent);
|
|
432
432
|
--sky-color-border-text_highlight: var(--bb-color-yellow-600);
|
|
433
433
|
--sky-color-border-warning: var(--bb-color-yellow-400);
|
|
434
|
+
--sky-color-category-blue: var(--bb-color-sky-900);
|
|
435
|
+
--sky-color-category-green: var(--bb-color-green-900);
|
|
436
|
+
--sky-color-category-orange: var(--bb-color-orange-900);
|
|
437
|
+
--sky-color-category-purple: var(--bb-color-purple-900);
|
|
438
|
+
--sky-color-category-red: var(--bb-color-red-900);
|
|
439
|
+
--sky-color-category-teal: var(--bb-color-teal-900);
|
|
440
|
+
--sky-color-category-yellow: var(--bb-color-yellow-900);
|
|
441
|
+
--sky-color-classify-1-heavy: var(--bb-color-teal-400);
|
|
442
|
+
--sky-color-classify-1-soft: var(--bb-color-teal-900);
|
|
443
|
+
--sky-color-classify-2-heavy: var(--bb-color-purple-400);
|
|
444
|
+
--sky-color-classify-2-soft: var(--bb-color-purple-900);
|
|
445
|
+
--sky-color-classify-3-heavy: var(--bb-color-sky-400);
|
|
446
|
+
--sky-color-classify-3-soft: var(--bb-color-sky-900);
|
|
447
|
+
--sky-color-classify-4-heavy: var(--bb-color-orange-400);
|
|
448
|
+
--sky-color-classify-4-soft: var(--bb-color-orange-900);
|
|
449
|
+
--sky-color-classify-5-heavy: var(--bb-color-pink-400);
|
|
450
|
+
--sky-color-classify-5-soft: var(--bb-color-pink-900);
|
|
451
|
+
--sky-color-classify-6-heavy: var(--bb-color-green-400);
|
|
452
|
+
--sky-color-classify-6-soft: var(--bb-color-green-900);
|
|
453
|
+
--sky-color-classify-7-heavy: var(--bb-color-red-400);
|
|
454
|
+
--sky-color-classify-7-soft: var(--bb-color-red-900);
|
|
434
455
|
--sky-color-icon-action: var(--bb-color-sky-600);
|
|
435
456
|
--sky-color-icon-danger: var(--bb-color-red-400);
|
|
436
457
|
--sky-color-icon-deemphasized: var(--bb-color-gray-300);
|
|
@@ -454,6 +475,47 @@
|
|
|
454
475
|
--sky-color-text-heading: var(--bb-color-gray-50);
|
|
455
476
|
--sky-color-text-inverse: var(--bb-color-gray-1100);
|
|
456
477
|
--sky-color-text-selected: var(--bb-color-blue-400);
|
|
478
|
+
--sky-color-viz-axis: var(--bb-color-gray-600);
|
|
479
|
+
--sky-color-viz-category-1: var(--bb-color-teal-600);
|
|
480
|
+
--sky-color-viz-category-2: var(--bb-color-purple-300);
|
|
481
|
+
--sky-color-viz-category-3: var(--bb-color-blue-600);
|
|
482
|
+
--sky-color-viz-category-4: var(--bb-color-sky-200);
|
|
483
|
+
--sky-color-viz-category-5: var(--bb-color-orange-500);
|
|
484
|
+
--sky-color-viz-category-6: var(--bb-color-red-300);
|
|
485
|
+
--sky-color-viz-category-7: var(--bb-color-pink-500);
|
|
486
|
+
--sky-color-viz-category-8: var(--bb-color-green-400);
|
|
487
|
+
--sky-color-viz-diverge-neg-1: var(--bb-color-red-1000);
|
|
488
|
+
--sky-color-viz-diverge-neg-10: var(--bb-color-red-100);
|
|
489
|
+
--sky-color-viz-diverge-neg-2: var(--bb-color-red-900);
|
|
490
|
+
--sky-color-viz-diverge-neg-3: var(--bb-color-red-800);
|
|
491
|
+
--sky-color-viz-diverge-neg-4: var(--bb-color-red-700);
|
|
492
|
+
--sky-color-viz-diverge-neg-5: var(--bb-color-red-600);
|
|
493
|
+
--sky-color-viz-diverge-neg-6: var(--bb-color-red-500);
|
|
494
|
+
--sky-color-viz-diverge-neg-7: var(--bb-color-red-400);
|
|
495
|
+
--sky-color-viz-diverge-neg-8: var(--bb-color-red-300);
|
|
496
|
+
--sky-color-viz-diverge-neg-9: var(--bb-color-red-200);
|
|
497
|
+
--sky-color-viz-diverge-pos-1: var(--bb-color-blue-1000);
|
|
498
|
+
--sky-color-viz-diverge-pos-10: var(--bb-color-blue-100);
|
|
499
|
+
--sky-color-viz-diverge-pos-2: var(--bb-color-blue-900);
|
|
500
|
+
--sky-color-viz-diverge-pos-3: var(--bb-color-blue-800);
|
|
501
|
+
--sky-color-viz-diverge-pos-4: var(--bb-color-blue-700);
|
|
502
|
+
--sky-color-viz-diverge-pos-5: var(--bb-color-blue-600);
|
|
503
|
+
--sky-color-viz-diverge-pos-6: var(--bb-color-blue-500);
|
|
504
|
+
--sky-color-viz-diverge-pos-7: var(--bb-color-blue-400);
|
|
505
|
+
--sky-color-viz-diverge-pos-8: var(--bb-color-blue-300);
|
|
506
|
+
--sky-color-viz-diverge-pos-9: var(--bb-color-blue-200);
|
|
507
|
+
--sky-color-viz-gridline: var(--bb-color-gray-900);
|
|
508
|
+
--sky-color-viz-marker: var(--bb-color-gray-200);
|
|
509
|
+
--sky-color-viz-sequence-1: var(--bb-color-teal-1000);
|
|
510
|
+
--sky-color-viz-sequence-10: var(--bb-color-teal-100);
|
|
511
|
+
--sky-color-viz-sequence-2: var(--bb-color-teal-900);
|
|
512
|
+
--sky-color-viz-sequence-3: var(--bb-color-teal-800);
|
|
513
|
+
--sky-color-viz-sequence-4: var(--bb-color-teal-700);
|
|
514
|
+
--sky-color-viz-sequence-5: var(--bb-color-teal-600);
|
|
515
|
+
--sky-color-viz-sequence-6: var(--bb-color-teal-500);
|
|
516
|
+
--sky-color-viz-sequence-7: var(--bb-color-teal-400);
|
|
517
|
+
--sky-color-viz-sequence-8: var(--bb-color-teal-300);
|
|
518
|
+
--sky-color-viz-sequence-9: var(--bb-color-teal-200);
|
|
457
519
|
--sky-elevation-none: var(--bb-shadow-gray-0);
|
|
458
520
|
--sky-opacity-wait: var(--bb-opacity-600);
|
|
459
521
|
--sky-elevation-focus: var(--bb-shadow-gray-200);
|
|
@@ -1669,7 +1731,7 @@
|
|
|
1669
1731
|
--bb-font-weight-light: 300;
|
|
1670
1732
|
--bb-font-weight-regular: 400;
|
|
1671
1733
|
--bb-font-weight-semibold: 600;
|
|
1672
|
-
--bb-image-logo-primary-src: url("https://sky.blackbaudcdn.net/static/skyux-design-tokens/4.0
|
|
1734
|
+
--bb-image-logo-primary-src: url("https://sky.blackbaudcdn.net/static/skyux-design-tokens/4.1.0/assets/images/bb-logo.png");
|
|
1673
1735
|
--bb-letter_spacing-normal: normal;
|
|
1674
1736
|
--bb-letter_spacing-wider: 0.01rem;
|
|
1675
1737
|
--bb-letter_spacing-widest: 0.046875rem;
|
|
@@ -2742,6 +2804,66 @@
|
|
|
2742
2804
|
background: var(--sky-color-background-input-base) url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjUzMDMgMi43MTk2N0MxMC4yMzc0IDIuNDI2NzggOS43NjI1NiAyLjQyNjc4IDkuNDY5NjcgMi43MTk2N0w1LjIxOTY3IDYuOTY5NjdDNC45MjY3OCA3LjI2MjU2IDQuOTI2NzggNy43Mzc0NCA1LjIxOTY3IDguMDMwMzNDNS41MTI1NiA4LjMyMzIyIDUuOTg3NDQgOC4zMjMyMiA2LjI4MDMzIDguMDMwMzNMMTAgNC4zMTA2NkwxMy43MTk3IDguMDMwMzNDMTQuMDEyNiA4LjMyMzIyIDE0LjQ4NzQgOC4zMjMyMiAxNC43ODAzIDguMDMwMzNDMTUuMDczMiA3LjczNzQ0IDE1LjA3MzIgNy4yNjI1NiAxNC43ODAzIDYuOTY5NjdMMTAuNTMwMyAyLjcxOTY3Wk0xNC43ODAzIDEzLjAzMDNMMTAuNTMwMyAxNy4yODAzQzEwLjIzNzQgMTcuNTczMiA5Ljc2MjU2IDE3LjU3MzIgOS40Njk2NyAxNy4yODAzTDUuMjE5NjcgMTMuMDMwM0M0LjkyNjc4IDEyLjczNzQgNC45MjY3OCAxMi4yNjI2IDUuMjE5NjcgMTEuOTY5N0M1LjUxMjU2IDExLjY3NjggNS45ODc0NCAxMS42NzY4IDYuMjgwMzMgMTEuOTY5N0wxMCAxNS42ODkzTDEzLjcxOTcgMTEuOTY5N0MxNC4wMTI2IDExLjY3NjggMTQuNDg3NCAxMS42NzY4IDE0Ljc4MDMgMTEuOTY5N0MxNS4wNzMyIDEyLjI2MjYgMTUuMDczMiAxMi43Mzc0IDE0Ljc4MDMgMTMuMDMwM1oiIGZpbGw9IiM2NjZiNzAiLz4KPC9zdmc+) no-repeat right/var(--sky-input-box-button-width) var(--sky-size-icon-m);
|
|
2743
2805
|
}
|
|
2744
2806
|
|
|
2807
|
+
.sky-theme-modern {
|
|
2808
|
+
/* data viz colors */
|
|
2809
|
+
--sky-theme-color-viz-category-1: var(--sky-color-viz-category-1);
|
|
2810
|
+
--sky-theme-color-viz-category-2: var(--sky-color-viz-category-2);
|
|
2811
|
+
--sky-theme-color-viz-category-3: var(--sky-color-viz-category-3);
|
|
2812
|
+
--sky-theme-color-viz-category-4: var(--sky-color-viz-category-4);
|
|
2813
|
+
--sky-theme-color-viz-category-5: var(--sky-color-viz-category-5);
|
|
2814
|
+
--sky-theme-color-viz-category-6: var(--sky-color-viz-category-6);
|
|
2815
|
+
--sky-theme-color-viz-category-7: var(--sky-color-viz-category-7);
|
|
2816
|
+
--sky-theme-color-viz-category-8: var(--sky-color-viz-category-8);
|
|
2817
|
+
--sky-theme-color-viz-sequence-1: var(--sky-color-viz-sequence-1);
|
|
2818
|
+
--sky-theme-color-viz-sequence-2: var(--sky-color-viz-sequence-2);
|
|
2819
|
+
--sky-theme-color-viz-sequence-3: var(--sky-color-viz-sequence-3);
|
|
2820
|
+
--sky-theme-color-viz-sequence-4: var(--sky-color-viz-sequence-4);
|
|
2821
|
+
--sky-theme-color-viz-sequence-5: var(--sky-color-viz-sequence-5);
|
|
2822
|
+
--sky-theme-color-viz-sequence-6: var(--sky-color-viz-sequence-6);
|
|
2823
|
+
--sky-theme-color-viz-sequence-7: var(--sky-color-viz-sequence-7);
|
|
2824
|
+
--sky-theme-color-viz-sequence-8: var(--sky-color-viz-sequence-8);
|
|
2825
|
+
--sky-theme-color-viz-sequence-9: var(--sky-color-viz-sequence-9);
|
|
2826
|
+
--sky-theme-color-viz-sequence-10: var(--sky-color-viz-sequence-10);
|
|
2827
|
+
--sky-theme-color-viz-diverge-neg-10: var(--sky-color-viz-diverge-neg-10);
|
|
2828
|
+
--sky-theme-color-viz-diverge-neg-9: var(--sky-color-viz-diverge-neg-9);
|
|
2829
|
+
--sky-theme-color-viz-diverge-neg-8: var(--sky-color-viz-diverge-neg-8);
|
|
2830
|
+
--sky-theme-color-viz-diverge-neg-7: var(--sky-color-viz-diverge-neg-7);
|
|
2831
|
+
--sky-theme-color-viz-diverge-neg-6: var(--sky-color-viz-diverge-neg-6);
|
|
2832
|
+
--sky-theme-color-viz-diverge-neg-5: var(--sky-color-viz-diverge-neg-5);
|
|
2833
|
+
--sky-theme-color-viz-diverge-neg-4: var(--sky-color-viz-diverge-neg-4);
|
|
2834
|
+
--sky-theme-color-viz-diverge-neg-3: var(--sky-color-viz-diverge-neg-3);
|
|
2835
|
+
--sky-theme-color-viz-diverge-neg-2: var(--sky-color-viz-diverge-neg-2);
|
|
2836
|
+
--sky-theme-color-viz-diverge-neg-1: var(--sky-color-viz-diverge-neg-1);
|
|
2837
|
+
--sky-theme-color-viz-diverge-pos-1: var(--sky-color-viz-diverge-pos-1);
|
|
2838
|
+
--sky-theme-color-viz-diverge-pos-2: var(--sky-color-viz-diverge-pos-2);
|
|
2839
|
+
--sky-theme-color-viz-diverge-pos-3: var(--sky-color-viz-diverge-pos-3);
|
|
2840
|
+
--sky-theme-color-viz-diverge-pos-4: var(--sky-color-viz-diverge-pos-4);
|
|
2841
|
+
--sky-theme-color-viz-diverge-pos-5: var(--sky-color-viz-diverge-pos-5);
|
|
2842
|
+
--sky-theme-color-viz-diverge-pos-6: var(--sky-color-viz-diverge-pos-6);
|
|
2843
|
+
--sky-theme-color-viz-diverge-pos-7: var(--sky-color-viz-diverge-pos-7);
|
|
2844
|
+
--sky-theme-color-viz-diverge-pos-8: var(--sky-color-viz-diverge-pos-8);
|
|
2845
|
+
--sky-theme-color-viz-diverge-pos-9: var(--sky-color-viz-diverge-pos-9);
|
|
2846
|
+
--sky-theme-color-viz-diverge-pos-10: var(--sky-color-viz-diverge-pos-10);
|
|
2847
|
+
--sky-theme-color-viz-axis: var(--sky-color-viz-axis);
|
|
2848
|
+
--sky-theme-color-viz-gridline: var(--sky-color-viz-gridline);
|
|
2849
|
+
--sky-theme-color-viz-marker: var(--sky-color-viz-marker);
|
|
2850
|
+
/* classification colors */
|
|
2851
|
+
--sky-theme-color-classify-1-heavy: var(--sky-color-classify-1-heavy);
|
|
2852
|
+
--sky-theme-color-classify-1-soft: var(--sky-color-classify-1-soft);
|
|
2853
|
+
--sky-theme-color-classify-2-heavy: var(--sky-color-classify-2-heavy);
|
|
2854
|
+
--sky-theme-color-classify-2-soft: var(--sky-color-classify-2-soft);
|
|
2855
|
+
--sky-theme-color-classify-3-heavy: var(--sky-color-classify-3-heavy);
|
|
2856
|
+
--sky-theme-color-classify-3-soft: var(--sky-color-classify-3-soft);
|
|
2857
|
+
--sky-theme-color-classify-4-heavy: var(--sky-color-classify-4-heavy);
|
|
2858
|
+
--sky-theme-color-classify-4-soft: var(--sky-color-classify-4-soft);
|
|
2859
|
+
--sky-theme-color-classify-5-heavy: var(--sky-color-classify-5-heavy);
|
|
2860
|
+
--sky-theme-color-classify-5-soft: var(--sky-color-classify-5-soft);
|
|
2861
|
+
--sky-theme-color-classify-6-heavy: var(--sky-color-classify-6-heavy);
|
|
2862
|
+
--sky-theme-color-classify-6-soft: var(--sky-color-classify-6-soft);
|
|
2863
|
+
--sky-theme-color-classify-7-heavy: var(--sky-color-classify-7-heavy);
|
|
2864
|
+
--sky-theme-color-classify-7-soft: var(--sky-color-classify-7-soft);
|
|
2865
|
+
}
|
|
2866
|
+
|
|
2745
2867
|
.sky-theme-modern .sky-switch {
|
|
2746
2868
|
cursor: pointer;
|
|
2747
2869
|
display: inline-flex;
|
|
@@ -1 +1 @@
|
|
|
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.15\", ngImport: i0, type: SkyThemeBrandService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyThemeBrandService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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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QUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFtQixFQUFFLEVBQWU7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDOytHQTlLVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzs0RkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIEluamVjdGFibGUsIFJlbmRlcmVyMiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lQnJhbmQgfSBmcm9tICcuL3RoZW1lLWJyYW5kJztcblxuY29uc3QgQlJBTkRfQkxBQ0tCQVVEID0gJ2JsYWNrYmF1ZCc7XG5cbi8vIENvbW1vbmx5LXVzZWQgaWNvbiBjb25maWd1cmF0aW9ucy4gQXBwZW5kaW5nIHRoZXNlIHRvIHRoZSBoZWFkIGVsZW1lbnQgd2lsbFxuLy8gb3ZlcnJpZGUgYW55IGV4aXN0aW5nIGxpbmsgZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBhdHRyaWJ1dGUgdmFsdWVzLiBXaGVuXG4vLyB0aGV5IGFyZSByZW1vdmVkLCB0aGUgcHJldmlvdXMgZmF2aWNvbiBsaW5rIGVsZW1lbnRzIHdpbGwgdGFrZSBlZmZlY3QgYWdhaW4uXG5jb25zdCBGQVZJQ09OX0NPTkZJR1MgPSBbXG4gIHsgcmVsOiAnYXBwbGUtdG91Y2gtaWNvbicsIHNpemVzOiAnMTgweDE4MCcgfSxcbiAgeyByZWw6ICdpY29uJywgc2l6ZXM6ICczMngzMicgfSxcbiAgeyByZWw6ICdpY29uJywgc2l6ZXM6ICcxNngxNicgfSxcbl07XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBQcm92aWRlcyBtZXRob2RzIGZvciBtYW5hZ2luZyB0aGVtZSBicmFuZGluZyBpbmNsdWRpbmcgYnJhbmQgcmVnaXN0cmF0aW9uLFxuICogc3R5bGVzaGVldCBtYW5hZ2VtZW50LCBhbmQgaG9zdCBjbGFzcyB1cGRhdGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVCcmFuZFNlcnZpY2Uge1xuICAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICNzdHlsZXNoZWV0RWw6IEhUTUxMaW5rRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgI2Zhdmljb25FbHM6IEhUTUxMaW5rRWxlbWVudFtdID0gW107XG4gICNtYXNrSWNvbkVsOiBIVE1MTGlua0VsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI3JlZ2lzdGVyZWRCcmFuZHMgPSBuZXcgTWFwPHN0cmluZywgU2t5VGhlbWVCcmFuZD4oKTtcblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgYnJhbmQgZm9yIHVzZSBpbiB0aGVtZXMuXG4gICAqIEBwYXJhbSBicmFuZCBUaGUgYnJhbmQgdG8gcmVnaXN0ZXIuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJCcmFuZChicmFuZDogU2t5VGhlbWVCcmFuZCk6IHZvaWQge1xuICAgIHRoaXMuI3JlZ2lzdGVyZWRCcmFuZHMuc2V0KGJyYW5kLm5hbWUsIGJyYW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVycyBhIGJyYW5kLlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYnJhbmQgdG8gdW5yZWdpc3Rlci5cbiAgICovXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQnJhbmQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jcmVnaXN0ZXJlZEJyYW5kcy5kZWxldGUobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBhbGwgYnJhbmQtcmVsYXRlZCBzdHlsaW5nIGFuZCBjbGFzc2VzIGZvciB0aGUgaG9zdCBlbGVtZW50LlxuICAgKiBUaGlzIGNvbnNvbGlkYXRlcyBicmFuZCBzdHlsZXNoZWV0IHVwZGF0ZXMgYW5kIGhvc3QgY2xhc3MgbWFuYWdlbWVudCxcbiAgICogYW5kIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZXMgcmVnaXN0ZXJlZCBicmFuZHMuXG4gICAqIEBwYXJhbSBob3N0RWwgVGhlIGhvc3QgZWxlbWVudCB0byB1cGRhdGUuXG4gICAqIEBwYXJhbSByZW5kZXJlciBUaGUgcmVuZGVyZXIgdG8gdXNlIGZvciBET00gbWFuaXB1bGF0aW9uLlxuICAgKiBAcGFyYW0gYnJhbmQgVGhlIGJyYW5kIHRvIGFwcGx5ICh3aWxsIGJlIHJlc29sdmVkIGlmIHJlZ2lzdGVyZWQgdmVyc2lvbiBleGlzdHMpLlxuICAgKiBAcGFyYW0gcHJldmlvdXNCcmFuZCBUaGUgcHJldmlvdXMgYnJhbmQgdG8gY2xlYW4gdXAuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQnJhbmQoXG4gICAgaG9zdEVsOiBFbGVtZW50LFxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgYnJhbmQ6IFNreVRoZW1lQnJhbmQgfCB1bmRlZmluZWQsXG4gICAgcHJldmlvdXNCcmFuZDogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCxcbiAgKTogdm9pZCB7XG4gICAgLy8gUmVzb2x2ZSB0byByZWdpc3RlcmVkIGJyYW5kIGlmIGF2YWlsYWJsZVxuICAgIGlmIChicmFuZCkge1xuICAgICAgYnJhbmQgPSB0aGlzLiNyZWdpc3RlcmVkQnJhbmRzLmdldChicmFuZC5uYW1lKSA/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 = new SkyThemeSettings(settingsOrTheme.theme, settingsOrTheme.mode, settingsOrTheme.spacing, this.#getEffectiveBrandFromSettings(settingsOrTheme));\n }\n else {\n const current = this.#current;\n assertCurrentSettings(current);\n settings = new SkyThemeSettings(settingsOrTheme, current.mode, current.spacing, this.#getEffectiveBrandFromTheme(settingsOrTheme, current));\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, 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 #getEffectiveBrandFromSettings(settings) {\n return settings.brand ?? this.#getEffectiveBrand(settings.theme);\n }\n #getEffectiveBrandFromTheme(theme, currentSettings) {\n if (theme.supportsBranding) {\n return currentSettings.brand ?? this.#getEffectiveBrand(theme);\n }\n return undefined;\n }\n #getEffectiveBrand(theme) {\n return theme === SkyTheme.presets.modern\n ? new SkyThemeBrand('blackbaud', '1.0.0')\n : undefined;\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.15\", ngImport: i0, type: SkyThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyThemeService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyThemeService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDbkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFbEQsU0FBUyxxQkFBcUIsQ0FDNUIsZUFBNkM7SUFFN0MsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXpDOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUErQjtJQUV2QyxPQUFPLENBQWtCO0lBRXpCLFNBQVMsQ0FBd0I7SUFFakMsU0FBUyxDQUF3QztJQUVqRCxhQUFhLENBQXFDO0lBRWxEO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJ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T0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsY0FLYSxFQUNiLE9BQXlCLEVBQ3pCLGFBQXFEO1FBRXJELE9BQU8sQ0FDTCxDQUFDLGFBQWE7WUFDZCxDQUFDLENBQUMsY0FBYyxZQUFZLFlBQVk7Z0JBQ3RDLGNBQWMsWUFBWSxlQUFlLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDOytHQWxUVSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreVRoZW1lIH0gZnJvbSAnLi90aGVtZSc7XG5pbXBvcnQgeyBTa3lUaGVtZUJyYW5kIH0gZnJvbSAnLi90aGVtZS1icmFuZCc7XG5pbXBvcnQgeyBTa3lUaGVtZUJyYW5kU2VydmljZSB9IGZyb20gJy4vdGhlbWUtYnJhbmQuc2VydmljZSc7XG5pbXBvcnQgeyBTa3lUaGVtZU1vZGUgfSBmcm9tICcuL3RoZW1lLW1vZGUnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJy4vdGhlbWUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5nc0NoYW5nZSB9IGZyb20gJy4vdGhlbWUtc2V0dGluZ3MtY2hhbmdlJztcbmltcG9ydCB7IFNreVRoZW1lU3BhY2luZyB9IGZyb20gJy4vdGhlbWUtc3BhY2luZyc7XG5cbmZ1bmN0aW9uIGFzc2VydEN1cnJlbnRTZXR0aW5ncyhcbiAgY3VycmVudFNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkLFxuKTogYXNzZXJ0cyBjdXJyZW50U2V0dGluZ3MgaXMgU2t5VGhlbWVTZXR0aW5ncyB7XG4gIGlmICghY3VycmVudFNldHRpbmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGVtZSBzZXJ2aWNlIGlzIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0KCkgZmlyc3QuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBtZXRob2RzIGZvciB1cGRhdGluZyBhbmQgaGFuZGxpbmcgY2hhbmdlcyB0byB0aGUgY3VycmVudCB0aGVtZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreVRoZW1lU2VydmljZSB7XG4gICNicmFuZFN2YyA9IGluamVjdChTa3lUaGVtZUJyYW5kU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIE5vdGlmaWVzIGNvbnN1bWVycyB3aGVuIHRoZSBjdXJyZW50IHRoZW1lIHNldHRpbmdzIGhhdmUgY2hhbmdlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NDaGFuZ2UoKTogT2JzZXJ2YWJsZTxTa3lUaGVtZVNldHRpbmdzQ2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuI19zZXR0aW5nc09icztcbiAgfVxuXG4gICNjdXJyZW50OiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkO1xuXG4gICNob3N0RWw6IGFueSB8IHVuZGVmaW5lZDtcblxuICAjcmVuZGVyZXI6IFJlbmRlcmVyMiB8IHVuZGVmaW5lZDtcblxuICAjc2V0dGluZ3M6IFJlcGxheVN1YmplY3Q8U2t5VGhlbWVTZXR0aW5nc0NoYW5nZT47XG5cbiAgI19zZXR0aW5nc09iczogT2JzZXJ2YWJsZTxTa3lUaGVtZVNldHRpbmdzQ2hhbmdlPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNzZXR0aW5ncyA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreVRoZW1lU2V0dGluZ3NDaGFuZ2U+KDEpO1xuICAgIHRoaXMuI19zZXR0aW5nc09icyA9IHRoaXMuI3NldHRpbmdzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSB0aGVtZSBzZXJ2aWNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZFxuICAgKiBmcm9tIGEgaG9zdCBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBpdHMgb3duIHRoZW1lIHRvIGNoaWxkIGNvbXBvbmVudHMuXG4gICAqIEBwYXJhbSBob3N0RWwgVGhlIGhvc3QgZWxlbWVudCB1bmRlciB3aGljaCB0aGVtZWQgY29tcG9uZW50cyBhcmUgcmVuZGVyZWQuXG4gICAqIEBwYXJhbSByZW5kZXJlciBBIFJlbmRlcmVyMiBpbnN0YW5jZSBmb3IgdXBkYXRpbmcgdGhlIGhvc3QgZWxlbWVudCB3aXRoIHRoZW1lIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB0aGVtZSBUaGUgaW5pdGlhbCB0aGVtZS5cbiAgICogQHBhcmFtIHJlZ2lzdGVyZWRCcmFuZHMgQW4gaW5pdGlhbCBzZXQgb2YgYnJhbmRzIHRvIHJlZ2lzdGVyLiBBZGRpdGlvbmFsIGJyYW5kcyBjYW5cbiAgICogYmUgcmVnaXN0ZXJlZCBsYXRlciB2aWEgdGhlIHJlZ2lzdGVyQnJhbmQoKSBtZXRob2QuXG4gICAqL1xuICBwdWJsaWMgaW5pdChcbiAgICBob3N0RWw6IGFueSxcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHRoZW1lOiBTa3lUaGVtZVNldHRpbmdzLFxuICAgIHJlZ2lzdGVyZWRCcmFuZHM/OiBTa3lUaGVtZUJyYW5kW10sXG4gICk6IHZvaWQge1xuICAgIHRoaXMuI2hvc3RFbCA9IGhvc3RFbDtcbiAgICB0aGlzLiNyZW5kZXJlciA9IHJlbmRlcmVyO1xuXG4gICAgaWYgKHJlZ2lzdGVyZWRCcmFuZHMpIHtcbiAgICAgIGZvciAoY29uc3QgYnJhbmQgb2YgcmVnaXN0ZXJlZEJyYW5kcykge1xuICAgICAgICB0aGlzLiNicmFuZFN2Yy5yZWdpc3RlckJyYW5kKGJyYW5kKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNldFRoZW1lKHRoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgY3VycmVudCB0aGVtZSBzZXJ2aWNlLiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmcm9tIGEgaG9zdCBjb21wb25lbnQgdGhhdFxuICAgKiBwcm92aWRlcyBpdHMgb3duIHRoZW1lIHRvIGNoaWxkIGNvbXBvbmVudHMuXG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNzZXR0aW5ncy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2JyYW5kU3ZjLmRlc3Ryb3koKTtcblxuICAgIHRoaXMuI2hvc3RFbCA9IHRoaXMuI3JlbmRlcmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgdGhlbWUgbW9kZS5cbiAgICogQHBhcmFtIG1vZGUgVGhlIG5ldyB0aGVtZSBtb2RlIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHNldFRoZW1lTW9kZShtb2RlOiBTa3lUaGVtZU1vZGUpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVUaGVtZVByb3BlcnR5KCdtb2RlJywgbW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCB0aGVtZSBzcGFjaW5nLlxuICAgKiBAcGFyYW0gc3BhY2luZyBUaGUgbmV3IHRoZW1lIHNwYWNpbmcgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2V0VGhlbWVTcGFjaW5nKHNwYWNpbmc6IFNreVRoZW1lU3BhY2luZyk6IHZvaWQge1xuICAgIHRoaXMuI3VwZGF0ZVRoZW1lUHJvcGVydHkoJ3NwYWNpbmcnLCBzcGFjaW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHRoZW1lIGJyYW5kLlxuICAgKiBAcGFyYW0gYnJhbmQgVGhlIG5ldyB0aGVtZSBicmFuZCB0byBhcHBseSwgb3IgdW5kZWZpbmVkIHRvIGNsZWFyIHRoZSBjdXJyZW50IGJyYW5kLlxuICAgKi9cbiAgcHVibGljIHNldFRoZW1lQnJhbmQoYnJhbmQ6IFNreVRoZW1lQnJhbmQgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLiN1cGRhdGVUaGVtZVByb3BlcnR5KCdicmFuZCcsIGJyYW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHRoZW1lIHNldHRpbmdzLlxuICAgKiBAcGFyYW0gc2V0dGluZ3MgVGhlIG5ldyB0aGVtZSBzZXR0aW5ncyB0byBhcHBseS5cbiAgICovXG4gIHB1YmxpYyBzZXRUaGVtZShzZXR0aW5nczogU2t5VGhlbWVTZXR0aW5ncyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgdGhlbWUuXG4gICAqIEBwYXJhbSB0aGVtZSBUaGUgbmV3IHRoZW1lIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHNldFRoZW1lKHRoZW1lOiBTa3lUaGVtZSk6IHZvaWQ7XG5cbiAgcHVibGljIHNldFRoZW1lKHNldHRpbmdzT3JUaGVtZTogU2t5VGhlbWVTZXR0aW5ncyB8IFNreVRoZW1lKTogdm9pZCB7XG4gICAgbGV0IHNldHRpbmdzOiBTa3lUaGVtZVNldHRpbmdzO1xuXG4gICAgaWYgKHNldHRpbmdzT3JUaGVtZSBpbnN0YW5jZW9mIFNreVRoZW1lU2V0dGluZ3MpIHtcbiAgICAgIHNldHRpbmdzID0gbmV3IFNreVRoZW1lU2V0dGluZ3MoXG4gICAgICAgIHNldHRpbmdzT3JUaGVtZS50aGVtZSxcbiAgICAgICAgc2V0dGluZ3NPclRoZW1lLm1vZGUsXG4gICAgICAgIHNldHRpbmdzT3JUaGVtZS5zcGFjaW5nLFxuICAgICAgICB0aGlzLiNnZXRFZmZlY3RpdmVCcmFuZEZyb21TZXR0aW5ncyhzZXR0aW5nc09yVGhlbWUpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuI2N1cnJlbnQ7XG5cbiAgICAgIGFzc2VydEN1cnJlbnRTZXR0aW5ncyhjdXJyZW50KTtcblxuICAgICAgc2V0dGluZ3MgPSBuZXcgU2t5VGhlbWVTZXR0aW5ncyhcbiAgICAgICAgc2V0dGluZ3NPclRoZW1lLFxuICAgICAgICBjdXJyZW50Lm1vZGUsXG4gICAgICAgIGN1cnJlbnQuc3BhY2luZyxcbiAgICAgICAgdGhpcy4jZ2V0RWZmZWN0aXZlQnJhbmRGcm9tVGhlbWUoc2V0dGluZ3NPclRoZW1lLCBjdXJyZW50KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXMgPSB0aGlzLiNjdXJyZW50O1xuXG4gICAgdGhpcy4jYXBwbHlUaGVtZUNsYXNzKHByZXZpb3VzLCBzZXR0aW5ncywgJ3RoZW1lJyk7XG4gICAgdGhpcy4jYXBwbHlUaGVtZUNsYXNzKHByZXZpb3VzLCBzZXR0aW5ncywgJ21vZGUnLCAnc3VwcG9ydGVkTW9kZXMnKTtcbiAgICB0aGlzLiNhcHBseVRoZW1lQ2xhc3MocHJldmlvdXMsIHNldHRpbmdzLCAnc3BhY2luZycsICdzdXBwb3J0ZWRTcGFjaW5nJyk7XG5cbiAgICBpZiAodGhpcy4jaG9zdEVsKSB7XG4gICAgICAvLyBWYWxpZGF0ZSBicmFuZGluZyBzdXBwb3J0XG4gICAgICBpZiAoc2V0dGluZ3MuYnJhbmQgJiYgIXNldHRpbmdzLnRoZW1lLnN1cHBvcnRzQnJhbmRpbmcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCcmFuZGluZyBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGUgZ2l2ZW4gdGhlbWUuJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuI2JyYW5kU3ZjLnVwZGF0ZUJyYW5kKFxuICAgICAgICB0aGlzLiNob3N0RWwsXG4gICAgICAgIHRoaXMuI2dldFJlbmRlcmVyKCksXG4gICAgICAgIHNldHRpbmdzLmJyYW5kLFxuICAgICAgICBwcmV2aW91cz8uYnJhbmQsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuI3NldHRpbmdzLm5leHQoe1xuICAgICAgY3VycmVudFNldHRpbmdzOiBzZXR0aW5ncyxcbiAgICAgIHByZXZpb3VzU2V0dGluZ3M6IHByZXZpb3VzLFxuICAgIH0pO1xuXG4gICAgdGhpcy4jY3VycmVudCA9IHNldHRpbmdzO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQnJhbmQoYnJhbmQ6IFNreVRoZW1lQnJhbmQpOiB2b2lkIHtcbiAgICB0aGlzLiNicmFuZFN2Yy5yZWdpc3RlckJyYW5kKGJyYW5kKTtcbiAgfVxuXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQnJhbmQobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jYnJhbmRTdmMudW5yZWdpc3RlckJyYW5kKG5hbWUpO1xuICB9XG5cbiAgI3VwZGF0ZVRoZW1lUHJvcGVydHkoXG4gICAgcHJvcGVydHk6ICdtb2RlJyB8ICdzcGFjaW5nJyB8ICdicmFuZCcsXG4gICAgdmFsdWU6IFNreVRoZW1lTW9kZSB8IFNreVRoZW1lU3BhY2luZyB8IFNreVRoZW1lQnJhbmQgfCB1bmRlZmluZWQsXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLiNjdXJyZW50O1xuXG4gICAgYXNzZXJ0Q3VycmVudFNldHRpbmdzKGN1cnJlbnQpO1xuXG4gICAgY29uc3QgY3VycmVudFRoZW1lID0gY3VycmVudC50aGVtZTtcblxuICAgIGxldCBzdXBwb3J0ZWRWYWx1ZXM6IFNreVRoZW1lTW9kZVtdIHwgU2t5VGhlbWVTcGFjaW5nW10gfCB1bmRlZmluZWQgPVxuICAgICAgdW5kZWZpbmVkO1xuXG4gICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgY2FzZSAnbW9kZSc6XG4gICAgICAgIHN1cHBvcnRlZFZhbHVlcyA9IGN1cnJlbnRUaGVtZS5zdXBwb3J0ZWRNb2RlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzcGFjaW5nJzpcbiAgICAgICAgc3VwcG9ydGVkVmFsdWVzID0gY3VycmVudFRoZW1lLnN1cHBvcnRlZFNwYWNpbmc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydGVkVmFsdWVzICYmIHZhbHVlICYmICFzdXBwb3J0ZWRWYWx1ZXMuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgY3VycmVudCB0aGVtZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBzcGVjaWZpZWQgJHtwcm9wZXJ0eX0uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZFNldHRpbmdzID0ge1xuICAgICAgdGhlbWU6IGN1cnJlbnQudGhlbWUsXG4gICAgICBtb2RlOiBjdXJyZW50Lm1vZGUsXG4gICAgICBzcGFjaW5nOiBjdXJyZW50LnNwYWNpbmcsXG4gICAgICBicmFuZDogY3VycmVudC5icmFuZCxcbiAgICAgIFtwcm9wZXJ0eV06IHZhbHVlLFxuICAgIH07XG5cbiAgICB0aGlzLnNldFRoZW1lKFxuICAgICAgbmV3IFNreVRoZW1lU2V0dGluZ3MoXG4gICAgICAgIHVwZGF0ZWRTZXR0aW5ncy50aGVtZSxcbiAgICAgICAgdXBkYXRlZFNldHRpbmdzLm1vZGUsXG4gICAgICAgIHVwZGF0ZWRTZXR0aW5ncy5zcGFjaW5nLFxuICAgICAgICB1cGRhdGVkU2V0dGluZ3MuYnJhbmQsXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICAjYXBwbHlUaGVtZUNsYXNzKFxuICAgIHByZXZpb3VzOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkLFxuICAgIGN1cnJlbnQ6IFNreVRoZW1lU2V0dGluZ3MsXG4gICAgcHJvcDogJ3RoZW1lJyB8ICdtb2RlJyB8ICdzcGFjaW5nJyxcbiAgICBzdXBwb3J0ZWRQcm9wPzogJ3N1cHBvcnRlZE1vZGVzJyB8ICdzdXBwb3J0ZWRTcGFjaW5nJyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFNldHRpbmcgPSBjdXJyZW50W3Byb3BdO1xuICAgIGNvbnN0IHByZXZpb3VzQ2xhc3MgPSBwcmV2aW91cz8uW3Byb3BdPy5ob3N0Q2xhc3M7XG4gICAgY29uc3QgY3VycmVudENsYXNzID0gY3VycmVudFNldHRpbmc/Lmhvc3RDbGFzcztcblxuICAgIGlmICghcHJldmlvdXNDbGFzcyB8fCBwcmV2aW91c0NsYXNzICE9PSBjdXJyZW50Q2xhc3MpIHtcbiAgICAgIHRoaXMuI3VwZGF0ZUhvc3RDbGFzcyhcbiAgICAgICAgcHJldmlvdXNDbGFzcyxcbiAgICAgICAgY3VycmVudENsYXNzLFxuICAgICAgICBjdXJyZW50U2V0dGluZyxcbiAgICAgICAgY3VycmVudCxcbiAgICAgICAgc3VwcG9ydGVkUHJvcCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUhvc3RDbGFzcyhcbiAgICBwcmV2aW91c0NsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY3VycmVudENsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY3VycmVudFNldHRpbmc6XG4gICAgICB8IFNreVRoZW1lXG4gICAgICB8IFNreVRoZW1lTW9kZVxuICAgICAgfCBTa3lUaGVtZVNwYWNpbmdcbiAgICAgIHwgU2t5VGhlbWVCcmFuZFxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgY3VycmVudDogU2t5VGhlbWVTZXR0aW5ncyxcbiAgICBzdXBwb3J0ZWRQcm9wPzogJ3N1cHBvcnRlZE1vZGVzJyB8ICdzdXBwb3J0ZWRTcGFjaW5nJyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHByZXZpb3VzQ2xhc3MpIHtcbiAgICAgIHRoaXMuI3JlbW92ZUhvc3RDbGFzcyhwcmV2aW91c0NsYXNzKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBjdXJyZW50Q2xhc3MgJiZcbiAgICAgIHRoaXMuI2lzU3VwcG9ydGVkUHJvcGVydHkoY3VycmVudFNldHRpbmcsIGN1cnJlbnQsIHN1cHBvcnRlZFByb3ApXG4gICAgKSB7XG4gICAgICB0aGlzLiNhZGRIb3N0Q2xhc3MoY3VycmVudENsYXNzKTtcbiAgICB9XG4gIH1cblxuICAjYWRkSG9zdENsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jZ2V0UmVuZGVyZXIoKS5hZGRDbGFzcyh0aGlzLiNob3N0RWwsIGNsYXNzTmFtZSk7XG4gIH1cblxuICAjcmVtb3ZlSG9zdENsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jZ2V0UmVuZGVyZXIoKS5yZW1vdmVDbGFzcyh0aGlzLiNob3N0RWwsIGNsYXNzTmFtZSk7XG4gIH1cblxuICAjZ2V0RWZmZWN0aXZlQnJhbmRGcm9tU2V0dGluZ3MoXG4gICAgc2V0dGluZ3M6IFNreVRoZW1lU2V0dGluZ3MsXG4gICk6IFNreVRoZW1lQnJhbmQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzZXR0aW5ncy5icmFuZCA/PyB0aGlzLiNnZXRFZmZlY3RpdmVCcmFuZChzZXR0aW5ncy50aGVtZSk7XG4gIH1cblxuICAjZ2V0RWZmZWN0aXZlQnJhbmRGcm9tVGhlbWUoXG4gICAgdGhlbWU6IFNreVRoZW1lLFxuICAgIGN1cnJlbnRTZXR0aW5nczogU2t5VGhlbWVTZXR0aW5ncyxcbiAgKTogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoZW1lLnN1cHBvcnRzQnJhbmRpbmcpIHtcbiAgICAgIHJldHVybiBjdXJyZW50U2V0dGluZ3MuYnJhbmQgPz8gdGhpcy4jZ2V0RWZmZWN0aXZlQnJhbmQodGhlbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAjZ2V0RWZmZWN0aXZlQnJhbmQodGhlbWU6IFNreVRoZW1lKTogU2t5VGhlbWVCcmFuZCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoZW1lID09PSBTa3lUaGVtZS5wcmVzZXRzLm1vZGVyblxuICAgICAgPyBuZXcgU2t5VGhlbWVCcmFuZCgnYmxhY2tiYXVkJywgJzEuMC4wJylcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgI2dldFJlbmRlcmVyKCk6IFJlbmRlcmVyMiB7XG4gICAgaWYgKCF0aGlzLiNyZW5kZXJlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVuZGVyZXIgaXMgbm90IGluaXRpYWxpemVkLiBIYXZlIHlvdSBjYWxsZWQgdGhlIHRoZW1lIHNlcnZpY2UgYGluaXRgIG1ldGhvZD8nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuI3JlbmRlcmVyO1xuICB9XG5cbiAgI2lzU3VwcG9ydGVkUHJvcGVydHkoXG4gICAgY3VycmVudFNldHRpbmc6XG4gICAgICB8IFNreVRoZW1lXG4gICAgICB8IFNreVRoZW1lTW9kZVxuICAgICAgfCBTa3lUaGVtZVNwYWNpbmdcbiAgICAgIHwgU2t5VGhlbWVCcmFuZFxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgY3VycmVudDogU2t5VGhlbWVTZXR0aW5ncyxcbiAgICBzdXBwb3J0ZWRQcm9wPzogJ3N1cHBvcnRlZE1vZGVzJyB8ICdzdXBwb3J0ZWRTcGFjaW5nJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICFzdXBwb3J0ZWRQcm9wIHx8XG4gICAgICAoKGN1cnJlbnRTZXR0aW5nIGluc3RhbmNlb2YgU2t5VGhlbWVNb2RlIHx8XG4gICAgICAgIGN1cnJlbnRTZXR0aW5nIGluc3RhbmNlb2YgU2t5VGhlbWVTcGFjaW5nKSAmJlxuICAgICAgICBjdXJyZW50LnRoZW1lW3N1cHBvcnRlZFByb3BdLmluY2x1ZGVzKGN1cnJlbnRTZXR0aW5nKSlcbiAgICApO1xuICB9XG59XG4iXX0=","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.15\", 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.15\", ngImport: i0, type: SkyAppStyleLoader, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvc3R5bGUtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sZ0JBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPdEMsTUFBTSxPQUFPLGlCQUFpQjthQUNMLGlCQUFZLEdBQUcsSUFBSSxBQUFQLENBQVE7SUFHM0MsU0FBUyxDQUE4QjtJQUV2QyxZQUF3QixRQUEwQjtRQUozQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBS3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksWUFBMEIsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDO1lBQzdELFlBQVk7U0FDYixDQUFDO2FBQ0MsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2YsbUVBQW1FO1lBQ25FLDRFQUE0RTtZQUM1RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCLEtBQUs7YUFDTixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBdkNVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgRm9udEZhY2VPYnNlcnZlciBmcm9tICdmb250ZmFjZW9ic2VydmVyJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWluZy90aGVtZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcFN0eWxlTG9hZGVyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0FEX1RJTUVPVVQgPSAzMDAwO1xuICBwdWJsaWMgaXNMb2FkZWQgPSBmYWxzZTtcblxuICAjdGhlbWVTdmM6IFNreVRoZW1lU2VydmljZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSkge1xuICAgIHRoaXMuI3RoZW1lU3ZjID0gdGhlbWVTdmM7XG4gIH1cblxuICBwdWJsaWMgbG9hZFN0eWxlcygpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmlzTG9hZGVkKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgbGV0IHRoZW1lUHJvbWlzZTogUHJvbWlzZTxhbnk+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.15\", 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.15\", type: SkyThemeClassDirective, isStandalone: false, selector: \"[skyThemeClass]\", inputs: { class: \"class\", skyThemeClass: \"skyThemeClass\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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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QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUIsRUFBRSxPQUFnQjtRQUM5QyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLDBCQUEwQjtRQUMxQixJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0FsSFUsc0JBQXNCO21HQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFtREksUUFBUTs7c0JBNUNWLEtBQUs7O3NCQWFMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICcuL3RoZW1lLXNldHRpbmdzJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWUuc2VydmljZSc7XG5cbnR5cGUgU2t5VGhlbWVDbGFzc01hcCA9IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQ29tcG9uZW50IHRvIGFkZCBjbGFzc2VzIGNvbmRpdGlvbmFsbHkgYmFzZWQgb24gdGhlIGN1cnJlbnQgdGhlbWUuXG4gKlxuICogSWYgdGhlIGRpcmVjdGl2ZSBpcyB3aXRoaW4gYSBgc2t5VGhlbWVgIGRpcmVjdGl2ZSwgaXQgdXNlcyBzZXR0aW5ncyBmcm9tIHRoYXQgZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5VGhlbWVDbGFzc10nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVDbGFzc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgSFRNTCBjbGFzcyBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjbGFzcyh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jcmVtb3ZlSW5pdGlhbENsYXNzZXModGhpcy4jaW5pdGlhbENsYXNzZXMpO1xuICAgIHRoaXMuI2luaXRpYWxDbGFzc2VzID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/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.15\", 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.15\", type: SkyThemeIfDirective, isStandalone: false, selector: \"[skyThemeIf]\", inputs: { skyThemeIf: \"skyThemeIf\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtaWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS1pZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBRUwsUUFBUSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFLM0M7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7T0FJRztJQUNILElBQ1csVUFBVSxDQUFDLEtBQXVDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFxQjtJQUM3QixhQUFhLENBQStCO0lBQzVDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ3JDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFakIsWUFBWSxDQUF1QjtJQUNuQyxjQUFjLENBQW1CO0lBRWpDLFlBQ0UsV0FBaUMsRUFDakMsYUFBK0IsRUFDL0IsY0FBaUMsRUFDckIsUUFBMEI7UUFFdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxjQUFjO2lCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDcEMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUVuQixxRUFBcUU7Z0JBQ3JFLGtFQUFrRTtnQkFDbEUsZ0VBQWdFO2dCQUNoRSxxREFBcUQ7Z0JBQ3JELGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0QsSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7K0dBM0RVLG1CQUFtQjttR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsS0FBSztpQkFDbEI7OzBCQXlCSSxRQUFROztzQkFsQlYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJy4vdGhlbWUtc2V0dGluZ3MnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCB3b3JrcyBsaWtlIGBuZ0lmYCB0byBzaG93IG1hcmt1cCBmb3IgbWF0Y2hpbmcgdGhlbWUuXG4gKlxuICogSWYgdGhlIGRpcmVjdGl2ZSBpcyB3aXRoaW4gYSBgc2t5VGhlbWVgIGRpcmVjdGl2ZSwgaXQgdXNlcyBzZXR0aW5ncyBmcm9tIHRoYXQgZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5VGhlbWVJZl0nLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVJZkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBBIHN0cmluZyB0aGF0IHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhIHRoZW1lLCBgJ2RlZmF1bHQnYCBvciBgJ21vZGVybidgLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2t5VGhlbWVJZih2YWx1ZTogJ2RlZmF1bHQnIHwgJ21vZGVybicgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNjb250ZXh0ID0gdmFsdWU7XG4gICAgdGhpcy4jdXBkYXRlVmlldygpO1xuICB9XG5cbiAgI2NvbnRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI2N1cnJlbnRUaGVtZTogU2t5VGhlbWVTZXR0aW5ncyB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjaGFzVmlldyA9IGZhbHNlO1xuXG4gICN0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj47XG4gICN2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPixcbiAgICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy4jdGVtcGxhdGVSZWYgPSB0ZW1wbGF0ZVJlZjtcbiAgICB0aGlzLiN2aWV3Q29udGFpbmVyID0gdmlld0NvbnRhaW5lcjtcbiAgICBpZiAodGhlbWVTdmMpIHtcbiAgICAgIHRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3NDaGFuZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLiNjdXJyZW50VGhlbWUgPSBzZXR0aW5nc0NoYW5nZS5jdXJyZW50U2V0dGluZ3M7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlVmlldygpO1xuXG4gICAgICAgICAgLy8gQ29tcG9uZW50cyB0aGF0IHVzZSBPblB1c2ggY2hhbmdlIGRldGVjdGlvbiB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5XG4gICAgICAgICAgLy8gY2hlY2sgZm9yIGNoYW5nZXMgd2hlbiBjcmVhdGVkIGFzIGEgcmVzdWx0IG9mIGEgdGhlbWUgY2hhbmdlIGlmXG4gICAgICAgICAgLy8gaXQgaGFwcGVucyBvdXRzaWRlIG9mIGFuIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiBjeWNsZS4gVGhpc1xuICAgICAgICAgIC8vIGVuc3VyZXMgY2hhbmdlIGRldGVjdGlvbiBydW5zIG9uIHRob3NlIGNvbXBvbmVudHMuXG4gICAgICAgICAgY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAjdXBkYXRlVmlldygpOiB2b2lkIHtcbiAgICBjb25zdCB0aGVtZU5hbWUgPSB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lLm5hbWUgfHwgJ2RlZmF1bHQnO1xuICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuI2NvbnRleHQgJiYgdGhlbWVOYW1lID09PSB0aGlzLiNjb250ZXh0O1xuICAgIGlmIChjb25kaXRpb24gJiYgIXRoaXMuI2hhc1ZpZXcpIHtcbiAgICAgIHRoaXMuI3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuI3RlbXBsYXRlUmVmKTtcbiAgICAgIHRoaXMuI2hhc1ZpZXcgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIWNvbmRpdGlvbiAmJiB0aGlzLiNoYXNWaWV3KSB7XG4gICAgICB0aGlzLiN2aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgICB0aGlzLiNoYXNWaWV3ID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=","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.15\", 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.15\", type: SkyThemeDirective, isStandalone: false, selector: \"[skyTheme]\", inputs: { skyTheme: \"skyTheme\" }, providers: [SkyThemeService], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWluZy90aGVtZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRWxELE1BQU0sWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQ3ZDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUN4QixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FDM0IsQ0FBQztBQUVGOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsSUFDVyxRQUFRLENBQUMsS0FBbUM7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssSUFBSSxZQUFZLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFJRCxZQUFZLENBQVM7SUFFckIsTUFBTSxDQUFhO0lBQ25CLFNBQVMsQ0FBWTtJQUNyQixTQUFTLENBQWtCO0lBRTNCLFlBQ0UsS0FBaUIsRUFDakIsUUFBbUIsRUFDbkIsUUFBeUI7UUFYcEIsc0JBQWlCLEdBQUcsWUFBWSxDQUFDO1FBRXhDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBV25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUN6QixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0F4Q1UsaUJBQWlCO21HQUFqQixpQkFBaUIsNEZBSGpCLENBQUMsZUFBZSxDQUFDOzs0RkFHakIsaUJBQWlCO2tCQUw3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7c0JBRUUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZSB9IGZyb20gJy4vdGhlbWUnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2RlIH0gZnJvbSAnLi90aGVtZS1tb2RlJztcbmltcG9ydCB7IFNreVRoZW1lU2V0dGluZ3MgfSBmcm9tICcuL3RoZW1lLXNldHRpbmdzJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJy4vdGhlbWUuc2VydmljZSc7XG5cbmNvbnN0IGRlZmF1bHRUaGVtZSA9IG5ldyBTa3lUaGVtZVNldHRpbmdzKFxuICBTa3lUaGVtZS5wcmVzZXRzLmRlZmF1bHQsXG4gIFNreVRoZW1lTW9kZS5wcmVzZXRzLmxpZ2h0LFxuKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIGBTa3lUaGVtZVNlcnZpY2VgIHRvIGFsbG93IGEgY29udGFpbmVyXG4gKiB0byBoYXZlIGl0cyBvd24gdGhlbWUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUaGVtZV0nLFxuICBwcm92aWRlcnM6IFtTa3lUaGVtZVNlcnZpY2VdLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2t5VGhlbWUodmFsdWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNreVRoZW1lT3JEZWZhdWx0ID0gdmFsdWUgfHwgZGVmYXVsdFRoZW1lO1xuXG4gICAgaWYgKHRoaXMuI2luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLiN0aGVtZVN2Yy5zZXRUaGVtZSh0aGlzLnNreVRoZW1lT3JEZWZhdWx0KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2t5VGhlbWVPckRlZmF1bHQgPSBkZWZhdWx0VGhlbWU7XG5cbiAgI2luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuICAjcmVuZGVyZXI6IFJlbmRlcmVyMjtcbiAgI3RoZW1lU3ZjOiBTa3lUaGVtZVNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICB0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG4gICAgdGhpcy4jdGhlbWVTdmMgPSB0aGVtZVN2YztcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiN0aGVtZVN2Yy5pbml0KFxuICAgICAgdGhpcy4jZWxSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIHRoaXMuI3JlbmRlcmVyLFxuICAgICAgdGhpcy5za3lUaGVtZU9yRGVmYXVsdCxcbiAgICApO1xuXG4gICAgdGhpcy4jaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI3RoZW1lU3ZjLmRlc3Ryb3koKTtcbiAgfVxufVxuIl19","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.15\", ngImport: i0, type: SkyThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.15\", 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.15\", ngImport: i0, type: SkyThemeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RoZW1lL3NyYy9saWIvdGhlbWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBVTlELE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxpQkFOdkIsc0JBQXNCO1lBQ3RCLGlCQUFpQjtZQUNqQixtQkFBbUIsYUFFWCxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUI7Z0hBRTdELGNBQWM7OzRGQUFkLGNBQWM7a0JBUjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDO2lCQUMxRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVRoZW1lQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICcuL3RoZW1pbmcvdGhlbWUtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVRoZW1lSWZEaXJlY3RpdmUgfSBmcm9tICcuL3RoZW1pbmcvdGhlbWUtaWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreVRoZW1lRGlyZWN0aXZlIH0gZnJvbSAnLi90aGVtaW5nL3RoZW1lLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVRoZW1lQ2xhc3NEaXJlY3RpdmUsXG4gICAgU2t5VGhlbWVEaXJlY3RpdmUsXG4gICAgU2t5VGhlbWVJZkRpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreVRoZW1lQ2xhc3NEaXJlY3RpdmUsIFNreVRoZW1lRGlyZWN0aXZlLCBTa3lUaGVtZUlmRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGhlbWVNb2R1bGUge31cbiJdfQ==","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.15\", ngImport: i0, type: SkyThemeComponentClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.15\", type: SkyThemeComponentClassDirective, isStandalone: true, selector: \"[skyThemeClass]\", host: { properties: { \"class\": \"this.theme\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyThemeComponentClassDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[skyThemeClass]',\n }]\n }], ctorParameters: () => [], propDecorators: { theme: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtY29tcG9uZW50LWNsYXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90aGVtZS9zcmMvbGliL3RoZW1pbmcvdGhlbWUtY29tcG9uZW50LWNsYXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLM0QsTUFBTSxPQUFPLCtCQUErQjtJQUkxQyxlQUFlLENBQTZCO0lBQzVDLGFBQWEsQ0FBK0M7SUFFNUQ7UUFMTyxVQUFLLEdBQUcsdUJBQXVCLENBQUM7UUFFdkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUcxRCxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWM7YUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBZFUsK0JBQStCO21HQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBSDNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7O3NCQUVFLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi90aGVtaW5nL3RoZW1lLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5VGhlbWVDbGFzc10nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lUaGVtZUNvbXBvbmVudENsYXNzRGlyZWN0aXZlIHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHB1YmxpYyB0aGVtZSA9ICdza3ktY21wLXRoZW1lLWRlZmF1bHQnO1xuXG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICN0aGVtZVNlcnZpY2UgPSBpbmplY3QoU2t5VGhlbWVTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuI3RoZW1lU2VydmljZT8uc2V0dGluZ3NDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgIHRoaXMudGhlbWUgPSBgc2t5LWNtcC10aGVtZS0ke2NoYW5nZS5jdXJyZW50U2V0dGluZ3MudGhlbWUubmFtZX1gO1xuICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=","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.15\", ngImport: i0, type: SkyAppViewportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.15\", ngImport: i0, type: SkyAppViewportService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.15\", 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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LFFBQVE7b0JBQ1gsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO2dCQUN0RCxLQUFLLE1BQU07b0JBQ1QsT0FBTyxRQUFRLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0FoS1UscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7NEZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERPQ1VNRU5ULFxuICBEZXN0cm95UmVmLFxuICBJbmplY3RhYmxlLFxuICBOZ1pvbmUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2t5QXBwVmlld3BvcnRSZXNlcnZlQXJncyB9IGZyb20gJy4vdmlld3BvcnQtcmVzZXJ2ZS1hcmdzJztcbmltcG9ydCB7IFNreUFwcFZpZXdwb3J0UmVzZXJ2ZWRQb3NpdGlvblR5cGUgfSBmcm9tICcuL3ZpZXdwb3J0LXJlc2VydmUtcG9zaXRpb24tdHlwZSc7XG5cbnR5cGUgUmVzZXJ2ZUl0ZW1UeXBlID0gU2t5QXBwVmlld3BvcnRSZXNlcnZlQXJncyAmIHtcbiAgYWN0aXZlOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIGFwcGxpY2F0aW9uJ3Mgdmlld3BvcnQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBcHBWaWV3cG9ydFNlcnZpY2Uge1xuICAvKipcbiAgICogVXBkYXRlZCB3aGVuIHRoZSB2aWV3cG9ydCBiZWNvbWVzIHZpc2libGUuICBXaGlsZSB0aGUgcGFnZSBpcyByZW5kZXJlZCwgdGhlXG4gICAqIHZpZXdwb3J0IG1heSByZW1haW4gaGlkZGVuIGFzIGZvbnRzIGFuZCBzdHlsZXMgYXJlIGxvYWRlZCBhc3luY2hyb25vdXNseTtcbiAgICogdGhpcyBpcyBkb25lIHRvIGF2b2lkIGEgRk9VQyAoRmxhc2ggT2YgVW5zdHlsZWQgQ29udGVudCkgYmVmb3JlIHRoZSBmb250c1xuICAgKiBhbmQgc3R5bGVzIGFyZSByZWFkeS5cbiAgICovXG4gIHB1YmxpYyB2aXNpYmxlID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgLy8gRVNMaW50IGRvZXNuJ3QgcmVjb2duaXplIGhvdyB0aGlzIGlzIHVzZWQuXG4gICN1cGRhdGVSZXF1ZXN0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIHJlYWRvbmx5ICNyZXNlcnZlSXRlbXMgPSBuZXcgTWFwPHN0cmluZywgUmVzZXJ2ZUl0ZW1UeXBlPigpO1xuICByZWFkb25seSAjY29uZGl0aW9uYWxseVJlc2VydmVJdGVtcyA9IG5ldyBNYXA8RWxlbWVudCwgUmVzZXJ2ZUl0ZW1UeXBlPigpO1xuICByZWFkb25seSAjZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIC8vIE9ic2VydmUgZWxlbWVudHMgY3Jvc3NpbmcgdGhlIGJyb3dzZXIncyB2aWV3cG9ydCBib3VuZGFyaWVzLlxuICByZWFkb25seSAjaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSB0aGlzLiNuZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoXG4gICAgKCkgPT5cbiAgICAgIG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKCkgPT4gdGhpcy4jbmdab25lLnJ1bigoKSA9PiB0aGlzLiN1cGRhdGVWaWV3cG9ydEFyZWEoKSksXG4gICAgICAgIHsgdGhyZXNob2xkOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAxMDEgfSwgKF8sIGkpID0+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":["../../../../../libs/components/theme/src/lib/theming/theme-mode.ts","../../../../../libs/components/theme/src/lib/theming/theme-spacing.ts","../../../../../libs/components/theme/src/lib/theming/theme.ts","../../../../../libs/components/theme/src/lib/theming/theme-brand.ts","../../../../../libs/components/theme/src/lib/theming/theme-brand.service.ts","../../../../../libs/components/theme/src/lib/theming/theme-settings.ts","../../../../../libs/components/theme/src/lib/theming/theme.service.ts","../../../../../libs/components/theme/src/lib/style-loader.ts","../../../../../libs/components/theme/src/lib/theming/theme-class.directive.ts","../../../../../libs/components/theme/src/lib/theming/theme-if.directive.ts","../../../../../libs/components/theme/src/lib/theming/theme.directive.ts","../../../../../libs/components/theme/src/lib/theme.module.ts","../../../../../libs/components/theme/src/lib/theming/theme-component-class.directive.ts","../../../../../libs/components/theme/src/lib/viewport/viewport.service.ts","../../../../../libs/components/theme/src/lib/providers/provide-initial-theme.ts","../../../../../libs/components/theme/src/skyux-theme.ts"],"sourcesContent":["import { SkyThemeModeData } from './theme-serialization-types';\n\n/**\n * Defines properties of a SKY UX theme mode.\n */\nexport class SkyThemeMode {\n /**\n * The preset themes available in SKY UX.\n */\n public static readonly presets = {\n light: new SkyThemeMode('light', 'sky-theme-mode-light'),\n dark: new SkyThemeMode('dark', 'sky-theme-mode-dark'),\n };\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(\n public readonly name: string,\n public readonly hostClass: string,\n ) {}\n\n /**\n * @internal\n * Serializes the theme mode to a JSON-compatible object.\n */\n public serialize(): SkyThemeModeData {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyThemeMode.presets).find(\n ([, preset]) => preset === this,\n );\n\n if (presetEntry) {\n return {\n name: this.name,\n isPreset: true,\n };\n }\n\n return {\n name: this.name,\n hostClass: this.hostClass,\n };\n }\n\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeMode instance.\n */\n public static deserialize(data: SkyThemeModeData): SkyThemeMode {\n if (data.isPreset) {\n const preset =\n SkyThemeMode.presets[data.name as keyof typeof SkyThemeMode.presets];\n\n if (preset) {\n return preset;\n }\n\n throw new Error(`Unknown theme mode preset: ${data.name}`);\n }\n\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset theme modes');\n }\n\n return new SkyThemeMode(data.name, data.hostClass);\n }\n}\n","import { SkyThemeSpacingData } from './theme-serialization-types';\n\n/**\n * Defines properties of SKY UX theme spacing.\n */\nexport class SkyThemeSpacing {\n /**\n * The preset spacing available in SKY UX.\n */\n public static readonly presets = {\n standard: new SkyThemeSpacing('standard', 'sky-theme-spacing-standard'),\n compact: new SkyThemeSpacing('compact', 'sky-theme-spacing-compact'),\n };\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(\n public readonly name: string,\n public readonly hostClass: string,\n ) {}\n\n /**\n * @internal\n * Serializes the theme spacing to a JSON-compatible object.\n */\n public serialize(): SkyThemeSpacingData {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyThemeSpacing.presets).find(\n ([, preset]) => preset === this,\n );\n\n if (presetEntry) {\n return {\n name: this.name,\n isPreset: true,\n };\n }\n\n return {\n name: this.name,\n hostClass: this.hostClass,\n };\n }\n\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeSpacing instance.\n */\n public static deserialize(data: SkyThemeSpacingData): SkyThemeSpacing {\n if (data.isPreset) {\n const preset =\n SkyThemeSpacing.presets[\n data.name as keyof typeof SkyThemeSpacing.presets\n ];\n\n if (preset) {\n return preset;\n }\n\n throw new Error(`Unknown theme spacing preset: ${data.name}`);\n }\n\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset theme spacing');\n }\n\n return new SkyThemeSpacing(data.name, data.hostClass);\n }\n}\n","import { SkyThemeMode } from './theme-mode';\nimport { SkyThemeData } from './theme-serialization-types';\nimport { SkyThemeSpacing } from './theme-spacing';\n\n/**\n * Defines properties of a SKY UX theme.\n */\nexport class SkyTheme {\n /**\n * The preset themes available in SKY UX.\n */\n public static readonly presets = {\n default: new SkyTheme(\n 'default',\n 'sky-theme-default',\n [SkyThemeMode.presets.light],\n [SkyThemeSpacing.presets.standard],\n ),\n modern: new SkyTheme(\n 'modern',\n 'sky-theme-modern',\n [SkyThemeMode.presets.light, SkyThemeMode.presets.dark],\n [SkyThemeSpacing.presets.standard, SkyThemeSpacing.presets.compact],\n true,\n ),\n };\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(\n public readonly name: string,\n public readonly hostClass: string,\n public readonly supportedModes: SkyThemeMode[],\n public readonly supportedSpacing = [SkyThemeSpacing.presets.standard],\n public readonly supportsBranding = false,\n ) {}\n\n /**\n * @internal\n * Serializes the theme to a JSON-compatible object.\n */\n public serialize(): SkyThemeData {\n // Check if this instance is a preset\n const presetEntry = Object.entries(SkyTheme.presets).find(\n ([, preset]) => preset === this,\n );\n\n if (presetEntry) {\n return {\n name: this.name,\n supportedModes: this.supportedModes.map((mode) => mode.serialize()),\n isPreset: true,\n };\n }\n\n const result: SkyThemeData = {\n name: this.name,\n hostClass: this.hostClass,\n supportedModes: this.supportedModes.map((mode) => mode.serialize()),\n };\n\n // Only include supportedSpacing if it's not the default\n if (\n this.supportedSpacing.length !== 1 ||\n this.supportedSpacing[0] !== SkyThemeSpacing.presets.standard\n ) {\n result.supportedSpacing = this.supportedSpacing.map((spacing) =>\n spacing.serialize(),\n );\n }\n\n // Only include supportsBranding if it's true\n if (this.supportsBranding) {\n result.supportsBranding = this.supportsBranding;\n }\n\n return result;\n }\n\n /**\n * @internal\n * Deserializes a JSON object to a SkyTheme instance.\n */\n public static deserialize(data: SkyThemeData): SkyTheme {\n if (data.isPreset) {\n const preset =\n SkyTheme.presets[data.name as keyof typeof SkyTheme.presets];\n\n if (preset) {\n return preset;\n }\n\n throw new Error(`Unknown theme preset: ${data.name}`);\n }\n\n if (!data.hostClass) {\n throw new Error('hostClass is required for non-preset themes');\n }\n\n const supportedModes = data.supportedModes.map((modeData) =>\n SkyThemeMode.deserialize(modeData),\n );\n\n const supportedSpacing = data.supportedSpacing\n ? data.supportedSpacing.map((spacingData) =>\n SkyThemeSpacing.deserialize(spacingData),\n )\n : [SkyThemeSpacing.presets.standard];\n\n return new SkyTheme(\n data.name,\n data.hostClass,\n supportedModes,\n supportedSpacing,\n data.supportsBranding ?? false,\n );\n }\n}\n","import { SkyThemeBrandData } from './theme-serialization-types';\n\n/**\n * @internal\n * Defines properties for a mask icon.\n */\nexport interface SkyThemeBrandMaskIcon {\n /**\n * The URL of the mask icon.\n */\n url: string;\n /**\n * The color of the mask icon.\n */\n color: string;\n}\n\n/**\n * @internal\n * Defines properties of SKY UX theme branding.\n */\nexport class SkyThemeBrand {\n public get hostClass(): string {\n return this.#hostClass || this.#buildDefaultHostClassName();\n }\n\n private set hostClass(value: string | undefined) {\n this.#hostClass = value;\n }\n\n #hostClass: string | undefined;\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(\n public readonly name: string,\n public readonly version: string,\n hostClass?: string,\n public readonly styleUrl?: string,\n public readonly sriHash?: string,\n public readonly title?: string,\n public readonly faviconUrl?: string,\n public readonly maskIcon?: SkyThemeBrandMaskIcon,\n ) {\n this.hostClass = hostClass;\n\n if (!/^(\\d+|\\d+\\.\\d+\\.\\d+)(?:-(?:alpha|beta|rc)\\.\\d+)*$/.test(version)) {\n throw new Error(\n `Invalid version format \"${version}\" for theme brand \"${name}\".`,\n );\n }\n }\n\n /**\n * @internal\n * Serializes the theme brand to a JSON-compatible object.\n */\n public serialize(): SkyThemeBrandData {\n const result: SkyThemeBrandData = {\n name: this.name,\n version: this.version,\n };\n\n // Only include hostClass if it's different from the default\n const defaultHostClass = this.#buildDefaultHostClassName();\n\n if (this.hostClass !== defaultHostClass) {\n result.hostClass = this.hostClass;\n }\n\n if (this.styleUrl) {\n result.styleUrl = this.styleUrl;\n }\n\n if (this.sriHash) {\n result.sriHash = this.sriHash;\n }\n\n if (this.title) {\n result.title = this.title;\n }\n\n if (this.faviconUrl) {\n result.faviconUrl = this.faviconUrl;\n }\n\n if (this.maskIcon) {\n result.maskIcon = this.maskIcon;\n }\n\n return result;\n }\n\n /**\n * @internal\n * Deserializes a JSON object to a SkyThemeBrand instance.\n */\n public static deserialize(data: SkyThemeBrandData): SkyThemeBrand {\n return new SkyThemeBrand(\n data.name,\n data.version,\n data.hostClass,\n data.styleUrl,\n data.sriHash,\n data.title,\n data.faviconUrl,\n data.maskIcon,\n );\n }\n\n #buildDefaultHostClassName(): string {\n return `sky-theme-brand-${this.name}`;\n }\n}\n","import { DOCUMENT, Injectable, Renderer2, inject } from '@angular/core';\n\nimport { SkyThemeBrand } from './theme-brand';\n\nconst BRAND_BLACKBAUD = 'blackbaud';\n\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/**\n * @internal\n * Provides methods for managing theme branding including brand registration,\n * stylesheet management, and host class updates.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyThemeBrandService {\n #document = inject(DOCUMENT);\n\n #stylesheetEl: HTMLLinkElement | undefined;\n #faviconEls: HTMLLinkElement[] = [];\n #maskIconEl: HTMLLinkElement | undefined;\n\n #registeredBrands = new Map<string, SkyThemeBrand>();\n\n /**\n * Registers a brand for use in themes.\n * @param brand The brand to register.\n */\n public registerBrand(brand: SkyThemeBrand): void {\n this.#registeredBrands.set(brand.name, brand);\n }\n\n /**\n * Unregisters a brand.\n * @param name The name of the brand to unregister.\n */\n public unregisterBrand(name: string): void {\n this.#registeredBrands.delete(name);\n }\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 public updateBrand(\n hostEl: Element,\n renderer: Renderer2,\n brand: SkyThemeBrand | undefined,\n previousBrand: SkyThemeBrand | undefined,\n ): void {\n // Resolve to registered brand if available\n if (brand) {\n brand = this.#registeredBrands.get(brand.name) ?? brand;\n }\n\n const previousClass = previousBrand?.hostClass;\n const currentClass = brand?.hostClass;\n\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\n this.#updateFavicon(renderer, brand);\n }\n\n /**\n * Destroys the brand service, cleaning up any brand stylesheets.\n */\n public destroy(): void {\n this.#removeBrandStylesheet();\n }\n\n #updateBrandStylesheet(\n renderer: Renderer2,\n currentBrand: SkyThemeBrand | undefined,\n previousBrand: SkyThemeBrand | undefined,\n ): void {\n if (previousBrand && previousBrand.name !== BRAND_BLACKBAUD) {\n this.#removeBrandStylesheet();\n }\n\n if (currentBrand && currentBrand.name !== BRAND_BLACKBAUD) {\n this.#addBrandStylesheet(renderer, currentBrand);\n }\n }\n\n #updateBrandHostClass(\n hostEl: Element,\n renderer: Renderer2,\n previousClass: string | undefined,\n currentClass: string | undefined,\n ): void {\n if (previousClass) {\n renderer.removeClass(hostEl, previousClass);\n }\n\n if (currentClass && !previousClass) {\n renderer.addClass(hostEl, 'sky-theme-brand-base');\n } else if (!currentClass && previousClass) {\n renderer.removeClass(hostEl, 'sky-theme-brand-base');\n }\n\n if (currentClass) {\n renderer.addClass(hostEl, currentClass);\n }\n }\n\n #addBrandStylesheet(renderer: Renderer2, brand: SkyThemeBrand): void {\n if (brand.name !== BRAND_BLACKBAUD) {\n // Use styleUrl if provided, otherwise build the default URL\n const styleUrl =\n brand.styleUrl ||\n `https://sky.blackbaudcdn.net/static/skyux-brand-${brand.name}/${brand.version}/assets/scss/${brand.name}.css`;\n\n this.#stylesheetEl = renderer.createElement('link') as HTMLLinkElement;\n\n renderer.setAttribute(this.#stylesheetEl, 'rel', 'stylesheet');\n renderer.setAttribute(this.#stylesheetEl, 'href', styleUrl);\n\n if (brand.sriHash) {\n renderer.setAttribute(this.#stylesheetEl, 'integrity', brand.sriHash);\n renderer.setAttribute(this.#stylesheetEl, 'crossorigin', 'anonymous');\n }\n\n this.#appendToHead(renderer, this.#stylesheetEl);\n }\n }\n\n #removeBrandStylesheet(): void {\n if (this.#stylesheetEl) {\n this.#stylesheetEl.remove();\n this.#stylesheetEl = undefined;\n }\n }\n\n #updateFavicon(renderer: Renderer2, brand: SkyThemeBrand | undefined): void {\n if (brand?.faviconUrl) {\n const faviconUrl = brand.faviconUrl;\n\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') as HTMLLinkElement;\n this.#faviconEls.push(faviconEl);\n this.#appendToHead(renderer, faviconEl);\n }\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\n renderer.setAttribute(faviconEl, 'rel', config.rel);\n renderer.setAttribute(faviconEl, 'sizes', config.sizes);\n renderer.setAttribute(faviconEl, 'href', faviconUrl);\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\n this.#faviconEls = [];\n }\n\n // Handle mask icon\n if (brand?.maskIcon) {\n if (!this.#maskIconEl) {\n this.#maskIconEl = renderer.createElement('link') as HTMLLinkElement;\n this.#appendToHead(renderer, this.#maskIconEl);\n }\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 } else if (this.#maskIconEl) {\n this.#maskIconEl.remove();\n this.#maskIconEl = undefined;\n }\n }\n\n #appendToHead(renderer: Renderer2, el: HTMLElement): void {\n renderer.appendChild(this.#document.head, el);\n }\n}\n","import { SkyTheme } from './theme';\nimport { SkyThemeBrand } from './theme-brand';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSettingsData } from './theme-serialization-types';\nimport { SkyThemeSpacing } from './theme-spacing';\n\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(\n public readonly theme: SkyTheme,\n public readonly mode: SkyThemeMode,\n public readonly spacing = SkyThemeSpacing.presets.standard,\n public readonly brand?: SkyThemeBrand,\n ) {}\n\n /**\n * Serializes the theme settings to a string.\n */\n public serialize(): string {\n const result: SkyThemeSettingsData = {\n theme: this.theme.serialize(),\n mode: this.mode.serialize(),\n };\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\n // Only include brand if it exists\n if (this.brand) {\n result.brand = this.brand.serialize();\n }\n\n return JSON.stringify(result);\n }\n\n /**\n * Deserializes a string to a SkyThemeSettings instance.\n */\n public static deserialize(value: string): SkyThemeSettings {\n const settingsData = JSON.parse(value) as SkyThemeSettingsData;\n\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\n return new SkyThemeSettings(theme, mode, spacing, brand);\n }\n}\n","import { Injectable, Renderer2, inject } from '@angular/core';\n\nimport { Observable, ReplaySubject } from 'rxjs';\n\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 { SkyThemeSettingsChange } from './theme-settings-change';\nimport { SkyThemeSpacing } from './theme-spacing';\n\nfunction assertCurrentSettings(\n currentSettings: SkyThemeSettings | undefined,\n): asserts currentSettings is SkyThemeSettings {\n if (!currentSettings) {\n throw new Error('Theme service is not initialized. Call init() first.');\n }\n}\n\n/**\n * Provides methods for updating and handling changes to the current theme.\n */\n@Injectable()\nexport class SkyThemeService {\n #brandSvc = inject(SkyThemeBrandService);\n\n /**\n * Notifies consumers when the current theme settings have changed.\n */\n public get settingsChange(): Observable<SkyThemeSettingsChange> {\n return this.#_settingsObs;\n }\n\n #current: SkyThemeSettings | undefined;\n\n #hostEl: any | undefined;\n\n #renderer: Renderer2 | undefined;\n\n #settings: ReplaySubject<SkyThemeSettingsChange>;\n\n #_settingsObs: Observable<SkyThemeSettingsChange>;\n\n constructor() {\n this.#settings = new ReplaySubject<SkyThemeSettingsChange>(1);\n this.#_settingsObs = this.#settings.asObservable();\n }\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 public init(\n hostEl: any,\n renderer: Renderer2,\n theme: SkyThemeSettings,\n registeredBrands?: SkyThemeBrand[],\n ): void {\n this.#hostEl = hostEl;\n this.#renderer = renderer;\n\n if (registeredBrands) {\n for (const brand of registeredBrands) {\n this.#brandSvc.registerBrand(brand);\n }\n }\n\n this.setTheme(theme);\n }\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 public destroy(): void {\n this.#settings.complete();\n this.#brandSvc.destroy();\n\n this.#hostEl = this.#renderer = undefined;\n }\n\n /**\n * Updates the current theme mode.\n * @param mode The new theme mode to apply.\n */\n public setThemeMode(mode: SkyThemeMode): void {\n this.#updateThemeProperty('mode', mode);\n }\n\n /**\n * Updates the current theme spacing.\n * @param spacing The new theme spacing to apply.\n */\n public setThemeSpacing(spacing: SkyThemeSpacing): void {\n this.#updateThemeProperty('spacing', spacing);\n }\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 public setThemeBrand(brand: SkyThemeBrand | undefined): void {\n this.#updateThemeProperty('brand', brand);\n }\n\n /**\n * Updates the current theme settings.\n * @param settings The new theme settings to apply.\n */\n public setTheme(settings: SkyThemeSettings): void;\n\n /**\n * Updates the current theme.\n * @param theme The new theme to apply.\n */\n public setTheme(theme: SkyTheme): void;\n\n public setTheme(settingsOrTheme: SkyThemeSettings | SkyTheme): void {\n let settings: SkyThemeSettings;\n\n if (settingsOrTheme instanceof SkyThemeSettings) {\n settings = new SkyThemeSettings(\n settingsOrTheme.theme,\n settingsOrTheme.mode,\n settingsOrTheme.spacing,\n this.#getEffectiveBrandFromSettings(settingsOrTheme),\n );\n } else {\n const current = this.#current;\n\n assertCurrentSettings(current);\n\n settings = new SkyThemeSettings(\n settingsOrTheme,\n current.mode,\n current.spacing,\n this.#getEffectiveBrandFromTheme(settingsOrTheme, current),\n );\n }\n\n const previous = this.#current;\n\n this.#applyThemeClass(previous, settings, 'theme');\n this.#applyThemeClass(previous, settings, 'mode', 'supportedModes');\n this.#applyThemeClass(previous, settings, 'spacing', 'supportedSpacing');\n\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\n this.#brandSvc.updateBrand(\n this.#hostEl,\n this.#getRenderer(),\n settings.brand,\n previous?.brand,\n );\n }\n\n this.#settings.next({\n currentSettings: settings,\n previousSettings: previous,\n });\n\n this.#current = settings;\n }\n\n public registerBrand(brand: SkyThemeBrand): void {\n this.#brandSvc.registerBrand(brand);\n }\n\n public unregisterBrand(name: string): void {\n this.#brandSvc.unregisterBrand(name);\n }\n\n #updateThemeProperty(\n property: 'mode' | 'spacing' | 'brand',\n value: SkyThemeMode | SkyThemeSpacing | SkyThemeBrand | undefined,\n ): void {\n const current = this.#current;\n\n assertCurrentSettings(current);\n\n const currentTheme = current.theme;\n\n let supportedValues: SkyThemeMode[] | SkyThemeSpacing[] | undefined =\n undefined;\n\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\n if (supportedValues && value && !supportedValues.includes(value)) {\n throw new Error(\n `The current theme does not support the specified ${property}.`,\n );\n }\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\n this.setTheme(\n new SkyThemeSettings(\n updatedSettings.theme,\n updatedSettings.mode,\n updatedSettings.spacing,\n updatedSettings.brand,\n ),\n );\n }\n\n #applyThemeClass(\n previous: SkyThemeSettings | undefined,\n current: SkyThemeSettings,\n prop: 'theme' | 'mode' | 'spacing',\n supportedProp?: 'supportedModes' | 'supportedSpacing',\n ): void {\n const currentSetting = current[prop];\n const previousClass = previous?.[prop]?.hostClass;\n const currentClass = currentSetting?.hostClass;\n\n if (!previousClass || previousClass !== currentClass) {\n this.#updateHostClass(\n previousClass,\n currentClass,\n currentSetting,\n current,\n supportedProp,\n );\n }\n }\n\n #updateHostClass(\n previousClass: string | undefined,\n currentClass: string | undefined,\n currentSetting:\n | SkyTheme\n | SkyThemeMode\n | SkyThemeSpacing\n | SkyThemeBrand\n | undefined,\n current: SkyThemeSettings,\n supportedProp?: 'supportedModes' | 'supportedSpacing',\n ): void {\n if (previousClass) {\n this.#removeHostClass(previousClass);\n }\n\n if (\n currentClass &&\n this.#isSupportedProperty(currentSetting, current, supportedProp)\n ) {\n this.#addHostClass(currentClass);\n }\n }\n\n #addHostClass(className: string): void {\n this.#getRenderer().addClass(this.#hostEl, className);\n }\n\n #removeHostClass(className: string): void {\n this.#getRenderer().removeClass(this.#hostEl, className);\n }\n\n #getEffectiveBrandFromSettings(\n settings: SkyThemeSettings,\n ): SkyThemeBrand | undefined {\n return settings.brand ?? this.#getEffectiveBrand(settings.theme);\n }\n\n #getEffectiveBrandFromTheme(\n theme: SkyTheme,\n currentSettings: SkyThemeSettings,\n ): SkyThemeBrand | undefined {\n if (theme.supportsBranding) {\n return currentSettings.brand ?? this.#getEffectiveBrand(theme);\n }\n\n return undefined;\n }\n\n #getEffectiveBrand(theme: SkyTheme): SkyThemeBrand | undefined {\n return theme === SkyTheme.presets.modern\n ? new SkyThemeBrand('blackbaud', '1.0.0')\n : undefined;\n }\n\n #getRenderer(): Renderer2 {\n if (!this.#renderer) {\n throw new Error(\n 'Renderer is not initialized. Have you called the theme service `init` method?',\n );\n }\n return this.#renderer;\n }\n\n #isSupportedProperty(\n currentSetting:\n | SkyTheme\n | SkyThemeMode\n | SkyThemeSpacing\n | SkyThemeBrand\n | undefined,\n current: SkyThemeSettings,\n supportedProp?: 'supportedModes' | 'supportedSpacing',\n ): boolean {\n return (\n !supportedProp ||\n ((currentSetting instanceof SkyThemeMode ||\n currentSetting instanceof SkyThemeSpacing) &&\n current.theme[supportedProp].includes(currentSetting))\n );\n }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport FontFaceObserver from 'fontfaceobserver';\nimport { take } from 'rxjs/operators';\n\nimport { SkyThemeService } from './theming/theme.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAppStyleLoader {\n public static readonly LOAD_TIMEOUT = 3000;\n public isLoaded = false;\n\n #themeSvc: SkyThemeService | undefined;\n\n constructor(@Optional() themeSvc?: SkyThemeService) {\n this.#themeSvc = themeSvc;\n }\n\n public loadStyles(): Promise<any> {\n if (this.isLoaded) {\n return Promise.resolve();\n }\n\n let themePromise: Promise<any>;\n\n if (this.#themeSvc) {\n themePromise = this.#themeSvc.settingsChange.pipe(take(1)).toPromise();\n } else {\n themePromise = Promise.resolve();\n }\n\n const blackbaudSans = new FontFaceObserver('BLKB Sans');\n\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}\n","import {\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n Optional,\n Renderer2,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeService } from './theme.service';\n\ntype SkyThemeClassMap = Record<string, string>;\n\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 */\n@Directive({\n selector: '[skyThemeClass]',\n standalone: false,\n})\nexport class SkyThemeClassDirective implements OnDestroy {\n /**\n * The HTML class attribute.\n *\n * @param value\n */\n @Input()\n public set class(value: string | undefined) {\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 /**\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 @Input()\n public set skyThemeClass(value: SkyThemeClassMap | undefined) {\n this.#removeSkyThemeClassMap(this.#skyThemeClassMap);\n this.#applyInitialClasses(this.#initialClasses);\n\n this.#skyThemeClassMap = value as SkyThemeClassMap;\n\n /* istanbul ignore else */\n if (this.#skyThemeClassMap) {\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n }\n\n set #themeSettings(settings: SkyThemeSettings) {\n this.#currentTheme = settings;\n this.#removeSkyThemeClassMap(this.#skyThemeClassMap);\n this.#applyInitialClasses(this.#initialClasses);\n this.#applySkyThemeClassMap(this.#skyThemeClassMap);\n }\n\n #currentTheme: SkyThemeSettings | undefined;\n #ngUnsubscribe = new Subject<void>();\n #initialClasses: string[] = [];\n #skyThemeClassMap: SkyThemeClassMap | undefined;\n\n #ngEl: ElementRef;\n #renderer: Renderer2;\n\n constructor(\n ngEl: ElementRef,\n renderer: Renderer2,\n @Optional() themeSvc?: SkyThemeService,\n ) {\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\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #applyInitialClasses(classes: string[]): void {\n /* istanbul ignore else */\n if (classes) {\n classes.forEach((className) => this.#toggleClass(className, true));\n }\n }\n\n #applySkyThemeClassMap(skyThemeClassMap: SkyThemeClassMap | undefined): void {\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\n #removeInitialClasses(classes: string[]): void {\n /* istanbul ignore else */\n if (classes) {\n classes.forEach((className) => this.#toggleClass(className, false));\n }\n }\n\n #removeSkyThemeClassMap(\n skyThemeClassMap: SkyThemeClassMap | undefined,\n ): void {\n if (skyThemeClassMap) {\n Object.keys(skyThemeClassMap).forEach((className) =>\n this.#toggleClass(className, false),\n );\n }\n }\n\n #toggleClass(className: string, enabled: boolean): void {\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 } else {\n this.#renderer.removeClass(this.#ngEl.nativeElement, classNameItem);\n }\n });\n }\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n Input,\n OnDestroy,\n Optional,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeService } from './theme.service';\n\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 */\n@Directive({\n selector: '[skyThemeIf]',\n standalone: false,\n})\nexport class SkyThemeIfDirective implements OnDestroy {\n /**\n * A string that should match the name of a theme, `'default'` or `'modern'`.\n *\n * @param value\n */\n @Input()\n public set skyThemeIf(value: 'default' | 'modern' | undefined) {\n this.#context = value;\n this.#updateView();\n }\n\n #context: string | undefined;\n #currentTheme: SkyThemeSettings | undefined;\n #ngUnsubscribe = new Subject<void>();\n #hasView = false;\n\n #templateRef: TemplateRef<unknown>;\n #viewContainer: ViewContainerRef;\n\n constructor(\n templateRef: TemplateRef<unknown>,\n viewContainer: ViewContainerRef,\n changeDetector: ChangeDetectorRef,\n @Optional() themeSvc?: SkyThemeService,\n ) {\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\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\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #updateView(): void {\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 } else if (!condition && this.#hasView) {\n this.#viewContainer.clear();\n this.#hasView = false;\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport { SkyTheme } from './theme';\nimport { SkyThemeMode } from './theme-mode';\nimport { SkyThemeSettings } from './theme-settings';\nimport { SkyThemeService } from './theme.service';\n\nconst defaultTheme = new SkyThemeSettings(\n SkyTheme.presets.default,\n SkyThemeMode.presets.light,\n);\n\n/**\n * Creates a new instance of `SkyThemeService` to allow a container\n * to have its own theme.\n */\n@Directive({\n selector: '[skyTheme]',\n providers: [SkyThemeService],\n standalone: false,\n})\nexport class SkyThemeDirective implements OnInit, OnDestroy {\n @Input()\n public set skyTheme(value: SkyThemeSettings | undefined) {\n this.skyThemeOrDefault = value || defaultTheme;\n\n if (this.#initialized) {\n this.#themeSvc.setTheme(this.skyThemeOrDefault);\n }\n }\n\n public skyThemeOrDefault = defaultTheme;\n\n #initialized = false;\n\n #elRef: ElementRef;\n #renderer: Renderer2;\n #themeSvc: SkyThemeService;\n\n constructor(\n elRef: ElementRef,\n renderer: Renderer2,\n themeSvc: SkyThemeService,\n ) {\n this.#elRef = elRef;\n this.#renderer = renderer;\n this.#themeSvc = themeSvc;\n }\n\n public ngOnInit(): void {\n this.#themeSvc.init(\n this.#elRef.nativeElement,\n this.#renderer,\n this.skyThemeOrDefault,\n );\n\n this.#initialized = true;\n }\n\n public ngOnDestroy(): void {\n this.#themeSvc.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyThemeClassDirective } from './theming/theme-class.directive';\nimport { SkyThemeIfDirective } from './theming/theme-if.directive';\nimport { SkyThemeDirective } from './theming/theme.directive';\n\n@NgModule({\n declarations: [\n SkyThemeClassDirective,\n SkyThemeDirective,\n SkyThemeIfDirective,\n ],\n exports: [SkyThemeClassDirective, SkyThemeDirective, SkyThemeIfDirective],\n})\nexport class SkyThemeModule {}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SkyThemeService } from '../theming/theme.service';\n\n@Directive({\n selector: '[skyThemeClass]',\n})\nexport class SkyThemeComponentClassDirective {\n @HostBinding('class')\n public theme = 'sky-cmp-theme-default';\n\n #changeDetector = inject(ChangeDetectorRef);\n #themeService = inject(SkyThemeService, { optional: true });\n\n constructor() {\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}\n","import {\n DOCUMENT,\n DestroyRef,\n Injectable,\n NgZone,\n inject,\n} from '@angular/core';\n\nimport { ReplaySubject } from 'rxjs';\n\nimport { SkyAppViewportReserveArgs } from './viewport-reserve-args';\nimport { SkyAppViewportReservedPositionType } from './viewport-reserve-position-type';\n\ntype ReserveItemType = SkyAppViewportReserveArgs & {\n active: boolean;\n};\n\n/**\n * Provides information about the state of the application's viewport.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyAppViewportService {\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 public visible = new ReplaySubject<boolean>(1);\n\n // ESLint doesn't recognize how this is used.\n #updateRequest: number | undefined = undefined;\n readonly #reserveItems = new Map<string, ReserveItemType>();\n readonly #conditionallyReserveItems = new Map<Element, ReserveItemType>();\n readonly #document = inject(DOCUMENT);\n readonly #ngZone = inject(NgZone);\n // Observe elements crossing the browser's viewport boundaries.\n readonly #intersectionObserver = this.#ngZone.runOutsideAngular(\n () =>\n new IntersectionObserver(\n () => this.#ngZone.run(() => this.#updateViewportArea()),\n { threshold: Array.from({ length: 101 }, (_, i) => i / 100) },\n ),\n );\n #reservedSpaces: Record<SkyAppViewportReservedPositionType, number> = {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\n\n constructor() {\n const onScroll = (): void => {\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 /**\n * Reserves space for components docked to the left, top, right, or bottom of the viewport.\n * @param args\n */\n public reserveSpace(args: SkyAppViewportReserveArgs): void {\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 /**\n * Removes reserved space for a component by the ID provided when it was reserved.\n * @param id\n */\n public unreserveSpace(id: string): void {\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\n #updateViewportArea(): void {\n this.#updateRequest ??= requestAnimationFrame(() => {\n this.#updateRequest = undefined;\n const reservedSpaces: Record<SkyAppViewportReservedPositionType, number> =\n {\n bottom: 0,\n left: 0,\n right: 0,\n top: 0,\n };\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\n this.#reservedSpaces = reservedSpaces;\n const documentElementStyle = this.#document.documentElement.style;\n\n for (const [position, size] of Object.entries(reservedSpaces)) {\n documentElementStyle.setProperty(\n `--sky-viewport-${position}`,\n size + 'px',\n );\n }\n });\n }\n\n #watchVisibility(item: ReserveItemType): void {\n if (item.reserveForElement) {\n this.#conditionallyReserveItems.set(item.reserveForElement, item);\n this.#intersectionObserver.observe(item.reserveForElement);\n }\n }\n\n #isElementVisible(\n args: ReserveItemType,\n reservedSpaces: Record<SkyAppViewportReservedPositionType, number> = this\n .#reservedSpaces,\n ): boolean {\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 ) {\n // Element is not hidden by another element\n if (\n args.reserveForElement.contains(\n this.#document.elementFromPoint(midpoint.x, midpoint.y),\n )\n ) {\n return true;\n }\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}\n","import {\n DOCUMENT,\n EnvironmentProviders,\n RendererFactory2,\n inject,\n makeEnvironmentProviders,\n provideAppInitializer,\n} from '@angular/core';\n\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';\n\nexport function provideInitialTheme(\n name: keyof typeof SkyTheme.presets = 'default',\n options?: {\n mode?: keyof typeof SkyThemeMode.presets;\n spacing?: keyof typeof SkyThemeSpacing.presets;\n },\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n SkyThemeService,\n provideAppInitializer(() => {\n const initializerFn = ((\n themeService: SkyThemeService,\n doc: Document,\n rendererFactory: RendererFactory2,\n ) => {\n return (): void => {\n themeService.init(\n doc.body,\n rendererFactory.createRenderer(null, null),\n new SkyThemeSettings(\n SkyTheme.presets[name],\n SkyThemeMode.presets[options?.mode ?? 'light'],\n SkyThemeSpacing.presets[options?.spacing ?? 'standard'],\n ),\n );\n };\n })(inject(SkyThemeService), inject(DOCUMENT), inject(RendererFactory2));\n return initializerFn();\n }),\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyThemeService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skyux/theme",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.12.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@angular/core": "^20.3.15"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@blackbaud/skyux-design-tokens": "4.0
|
|
23
|
+
"@blackbaud/skyux-design-tokens": "4.1.0",
|
|
24
24
|
"fontfaceobserver": "2.3.0",
|
|
25
25
|
"tslib": "^2.8.1"
|
|
26
26
|
},
|