@coreui/angular-pro 5.0.0-alpha.12 → 5.0.0-alpha.13

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.
@@ -1,44 +1,32 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { DestroyRef, effect, inject, Injectable, signal } from '@angular/core';
3
3
  import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
- import { ActivatedRoute } from '@angular/router';
5
4
  import { tap } from 'rxjs/operators';
6
5
  import { LocalStorageService } from './local-storage.service';
7
6
  import * as i0 from "@angular/core";
8
7
  export class ColorModeService {
9
8
  #destroyRef;
10
9
  #document;
11
- #window;
12
- #activatedRoute;
13
10
  #localStorage;
14
11
  constructor() {
15
12
  this.#destroyRef = inject(DestroyRef);
16
13
  this.#document = inject(DOCUMENT);
17
- this.#window = this.#document.defaultView;
18
- this.#activatedRoute = inject(ActivatedRoute);
19
14
  this.#localStorage = inject(LocalStorageService);
20
15
  this.eventName = signal('ColorSchemeChange');
21
16
  this.localStorageItemName = signal('coreui-angular-color-scheme');
22
17
  this.localStorageItemName$ = toObservable(this.localStorageItemName);
23
- this.colorMode = signal('light');
18
+ this.colorMode = signal(undefined);
24
19
  this.colorModeEffect = effect(() => {
25
- if (this.colorMode()) {
26
- this.setStoredTheme(this.localStorageItemName(), this.colorMode());
27
- this.setTheme(this.colorMode());
20
+ const colorMode = this.colorMode() ?? this.getTheme();
21
+ if (colorMode) {
22
+ this.setStoredTheme(this.localStorageItemName(), colorMode);
23
+ this.setTheme(colorMode);
28
24
  }
29
25
  });
30
- this.#activatedRoute.queryParams
31
- .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
32
- const theme = params['theme']?.match(/^[A-Za-z0-9\s]+/)[0];
33
- if (theme) {
34
- this.colorMode.set(theme);
35
- }
36
- }))
37
- .subscribe();
38
26
  this.localStorageItemName$
39
- .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
27
+ .pipe(tap(params => {
40
28
  this.colorMode.set(this.getPreferredColorScheme(params));
41
- }))
29
+ }), takeUntilDestroyed(this.#destroyRef))
42
30
  .subscribe();
43
31
  }
44
32
  getStoredTheme(localStorageItemName) {
@@ -48,16 +36,19 @@ export class ColorModeService {
48
36
  return this.#localStorage.setItem(localStorageItemName, colorMode);
49
37
  }
50
38
  getPreferredColorScheme(localStorageItemName) {
51
- if (this.#window === undefined) {
52
- return 'light';
39
+ if (this.#document.defaultView === undefined) {
40
+ return undefined;
53
41
  }
54
42
  const storedTheme = this.getStoredTheme(localStorageItemName);
55
43
  if (storedTheme) {
56
44
  return storedTheme;
57
45
  }
58
- return this.#window?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
46
+ return this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : this.getTheme();
59
47
  }
60
48
  ;
49
+ getTheme() {
50
+ return this.#document.documentElement.dataset['coreuiTheme'] ?? undefined;
51
+ }
61
52
  setTheme(colorMode) {
62
53
  this.#document.documentElement.dataset['coreuiTheme'] =
63
54
  colorMode === 'auto' && this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches
@@ -76,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
76
67
  providedIn: 'root'
77
68
  }]
78
69
  }], ctorParameters: () => [] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb2xvci1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLGdCQUFnQjtJQUVsQixXQUFXLENBQWtDO0lBQzdDLFNBQVMsQ0FBOEI7SUFDdkMsT0FBTyxDQUE4QjtJQUNyQyxlQUFlLENBQTBDO0lBQ3pELGFBQWEsQ0FBb0Q7SUFlMUU7UUFuQlMsZ0JBQVcsR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0MsY0FBUyxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxZQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDckMsb0JBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELGtCQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMs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QUFDO0lBQUEsQ0FBQzs4R0EzRVMsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JNb2RlU2VydmljZSB7XG5cbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjd2luZG93ID0gdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gIHJlYWRvbmx5ICNhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICByZWFkb25seSAjbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGV2ZW50TmFtZSA9IHNpZ25hbCgnQ29sb3JTY2hlbWVDaGFuZ2UnKTtcbiAgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSXRlbU5hbWUgPSBzaWduYWwoJ2NvcmV1aS1hbmd1bGFyLWNvbG9yLXNjaGVtZScpO1xuICByZWFkb25seSBsb2NhbFN0b3JhZ2VJdGVtTmFtZSQgPSB0b09ic2VydmFibGUodGhpcy5sb2NhbFN0b3JhZ2VJdGVtTmFtZSk7XG5cbiAgcmVhZG9ubHkgY29sb3JNb2RlOiBXcml0YWJsZVNpZ25hbDwnbGlnaHQnIHwgJ2RhcmsnIHwgJ2F1dG8nPiA9IHNpZ25hbCgnbGlnaHQnKTtcblxuICByZWFkb25seSBjb2xvck1vZGVFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmNvbG9yTW9kZSgpKSB7XG4gICAgICB0aGlzLnNldFN0b3JlZFRoZW1lKHRoaXMubG9jYWxTdG9yYWdlSXRlbU5hbWUoKSwgdGhpcy5jb2xvck1vZGUoKSk7XG4gICAgICB0aGlzLnNldFRoZW1lKHRoaXMuY29sb3JNb2RlKCkpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG4gICAgICAgIHRhcChwYXJhbXMgPT4ge1xuICAgICAgICAgIGNvbnN0IHRoZW1lID0gcGFyYW1zWyd0aGVtZSddPy5tYXRjaCgvXltBLVphLXowLTlcXHNdKy8pWzBdO1xuICAgICAgICAgIGlmICh0aGVtZSkge1xuICAgICAgICAgICAgdGhpcy5jb2xvck1vZGUuc2V0KHRoZW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmxvY2FsU3RvcmFnZUl0ZW1OYW1lJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKSxcbiAgICAgICAgdGFwKHBhcmFtcyA9PiB7XG4gICAgICAgICAgdGhpcy5jb2xvck1vZGUuc2V0KHRoaXMuZ2V0UHJlZmVycmVkQ29sb3JTY2hlbWUocGFyYW1zKSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgfVxuXG4gIGdldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy4jbG9jYWxTdG9yYWdlLmdldEl0ZW0obG9jYWxTdG9yYWdlSXRlbU5hbWUpO1xuICB9XG5cbiAgc2V0U3RvcmVkVGhlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWU6IHN0cmluZywgY29sb3JNb2RlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy4jbG9jYWxTdG9yYWdlLnNldEl0ZW0obG9jYWxTdG9yYWdlSXRlbU5hbWUsIGNvbG9yTW9kZSk7XG4gIH1cblxuICBnZXRQcmVmZXJyZWRDb2xvclNjaGVtZShsb2NhbFN0b3JhZ2VJdGVtTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuI3dpbmRvdyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gJ2xpZ2h0JztcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZWRUaGVtZSA9IHRoaXMuZ2V0U3RvcmVkVGhlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWUpO1xuXG4gICAgaWYgKHN0b3JlZFRoZW1lKSB7XG4gICAgICByZXR1cm4gc3RvcmVkVGhlbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuI3dpbmRvdz8ubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1hdGNoZXMgPyAnZGFyaycgOiAnbGlnaHQnO1xuICB9O1xuXG4gIHNldFRoZW1lKGNvbG9yTW9kZTogc3RyaW5nKSB7XG4gICAgdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXRbJ2NvcmV1aVRoZW1lJ10gPVxuICAgICAgY29sb3JNb2RlID09PSAnYXV0bycgJiYgdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzXG4gICAgICA/ICdkYXJrJ1xuICAgICAgOiBjb2xvck1vZGU7XG5cbiAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCh0aGlzLmV2ZW50TmFtZSgpKTtcbiAgICB0aGlzLiNkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH07XG5cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb2xvci1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU85RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRWxCLFdBQVcsQ0FBa0M7SUFDN0MsU0FBUyxDQUE4QjtJQUN2QyxhQUFhLENBQW9EO0lBZ0IxRTtRQWxCUyxnQkFBVyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxjQUFTLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLGtCQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUM3RCwwQkFBcUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFaEUsY0FBUyxHQUE4QixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekQsb0JBQWUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEQsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUdELElBQUksQ0FBQyxxQkFBcUI7YUFDdkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxFQUNGLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDckM7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsY0FBYyxDQUFDLG9CQUE0QjtRQUN6QyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGNBQWMsQ0FBQyxvQkFBNEIsRUFBRSxTQUFpQjtRQUM1RCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxvQkFBNEI7UUFDbEQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRTlELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuSCxDQUFDO0lBQUEsQ0FBQztJQUVGLFFBQVE7UUFDTixPQUFrQixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksU0FBUyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxRQUFRLENBQUMsU0FBb0I7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUNuRCxTQUFTLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLE9BQU87Z0JBQ3RHLENBQUMsQ0FBQyxNQUFNO2dCQUNSLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFZCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUFBLENBQUM7OEdBakVTLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIENvbG9yTW9kZSA9ICdsaWdodCcgfCAnZGFyaycgfCAnYXV0bycgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENvbG9yTW9kZVNlcnZpY2Uge1xuXG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmOiBEZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSAjZG9jdW1lbnQ6IERvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcmVhZG9ubHkgI2xvY2FsU3RvcmFnZTogTG9jYWxTdG9yYWdlU2VydmljZSA9IGluamVjdChMb2NhbFN0b3JhZ2VTZXJ2aWNlKTtcblxuICByZWFkb25seSBldmVudE5hbWUgPSBzaWduYWwoJ0NvbG9yU2NoZW1lQ2hhbmdlJyk7XG4gIHJlYWRvbmx5IGxvY2FsU3RvcmFnZUl0ZW1OYW1lID0gc2lnbmFsKCdjb3JldWktYW5ndWxhci1jb2xvci1zY2hlbWUnKTtcbiAgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSXRlbU5hbWUkID0gdG9PYnNlcnZhYmxlKHRoaXMubG9jYWxTdG9yYWdlSXRlbU5hbWUpO1xuXG4gIHJlYWRvbmx5IGNvbG9yTW9kZTogV3JpdGFibGVTaWduYWw8Q29sb3JNb2RlPiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IGNvbG9yTW9kZUVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29sb3JNb2RlID0gdGhpcy5jb2xvck1vZGUoKSA/PyB0aGlzLmdldFRoZW1lKCk7XG4gICAgaWYgKGNvbG9yTW9kZSkge1xuICAgICAgdGhpcy5zZXRTdG9yZWRUaGVtZSh0aGlzLmxvY2FsU3RvcmFnZUl0ZW1OYW1lKCksIGNvbG9yTW9kZSk7XG4gICAgICB0aGlzLnNldFRoZW1lKGNvbG9yTW9kZSk7XG4gICAgfVxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZUl0ZW1OYW1lJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChwYXJhbXMgPT4ge1xuICAgICAgICAgIHRoaXMuY29sb3JNb2RlLnNldCh0aGlzLmdldFByZWZlcnJlZENvbG9yU2NoZW1lKHBhcmFtcykpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXRTdG9yZWRUaGVtZShsb2NhbFN0b3JhZ2VJdGVtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lKTtcbiAgfVxuXG4gIHNldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lOiBzdHJpbmcsIGNvbG9yTW9kZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU3RvcmFnZUl0ZW1OYW1lLCBjb2xvck1vZGUpO1xuICB9XG5cbiAgZ2V0UHJlZmVycmVkQ29sb3JTY2hlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLiNkb2N1bWVudC5kZWZhdWx0VmlldyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlZFRoZW1lID0gdGhpcy5nZXRTdG9yZWRUaGVtZShsb2NhbFN0b3JhZ2VJdGVtTmFtZSk7XG5cbiAgICBpZiAoc3RvcmVkVGhlbWUpIHtcbiAgICAgIHJldHVybiBzdG9yZWRUaGVtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzID8gJ2RhcmsnIDogdGhpcy5nZXRUaGVtZSgpO1xuICB9O1xuXG4gIGdldFRoZW1lKCkge1xuICAgIHJldHVybiA8Q29sb3JNb2RlPnRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kYXRhc2V0Wydjb3JldWlUaGVtZSddID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldFRoZW1lKGNvbG9yTW9kZTogQ29sb3JNb2RlKSB7XG4gICAgdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXRbJ2NvcmV1aVRoZW1lJ10gPVxuICAgICAgY29sb3JNb2RlID09PSAnYXV0bycgJiYgdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzXG4gICAgICA/ICdkYXJrJ1xuICAgICAgOiBjb2xvck1vZGU7XG5cbiAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCh0aGlzLmV2ZW50TmFtZSgpKTtcbiAgICB0aGlzLiNkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gIH07XG5cbn1cbiJdfQ==
@@ -4,4 +4,4 @@ export { ClassToggleService } from './class-toggle.service';
4
4
  export { LocalStorageService } from './local-storage.service';
5
5
  export { InMemoryStorageService } from './in-memory-storage.service';
6
6
  export { ColorModeService } from './color-mode.service';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW50ZXJzZWN0aW9uU2VydmljZSwgSUludGVyc2VjdGlvbk9ic2VydmVySW5pdCB9IGZyb20gJy4vaW50ZXJzZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgTGlzdGVuZXJzU2VydmljZSwgSUxpc3RlbmVyc0NvbmZpZyB9IGZyb20gJy4vbGlzdGVuZXJzLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ2xhc3NUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGFzcy10b2dnbGUuc2VydmljZSc7XG5leHBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW5NZW1vcnlTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBDb2xvck1vZGVTZXJ2aWNlIH0gZnJvbSAnLi9jb2xvci1tb2RlLnNlcnZpY2UnO1xuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTZCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW50ZXJzZWN0aW9uU2VydmljZSwgSUludGVyc2VjdGlvbk9ic2VydmVySW5pdCB9IGZyb20gJy4vaW50ZXJzZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgTGlzdGVuZXJzU2VydmljZSwgSUxpc3RlbmVyc0NvbmZpZyB9IGZyb20gJy4vbGlzdGVuZXJzLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ2xhc3NUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGFzcy10b2dnbGUuc2VydmljZSc7XG5leHBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW5NZW1vcnlTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vaW4tbWVtb3J5LXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBDb2xvck1vZGVTZXJ2aWNlLCBDb2xvck1vZGUgfSBmcm9tICcuL2NvbG9yLW1vZGUuc2VydmljZSc7XG4iXX0=
@@ -1,19 +1,19 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, ElementRef, inject, Renderer2, booleanAttribute, NgModule, HostBinding, Injectable, Component, EventEmitter, Output, ContentChildren, HostListener, DestroyRef, signal, effect, RendererFactory2, Pipe, computed, numberAttribute, ViewChildren, PLATFORM_ID, Inject, ViewChild, forwardRef, Optional, ContentChild, ChangeDetectionStrategy, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import { Directive, Input, inject, ElementRef, Renderer2, booleanAttribute, NgModule, HostBinding, Injectable, Component, EventEmitter, Output, ContentChildren, HostListener, DestroyRef, signal, effect, RendererFactory2, Pipe, computed, numberAttribute, ViewChildren, PLATFORM_ID, Inject, ViewChild, forwardRef, Optional, ContentChild, ChangeDetectionStrategy, NgZone, TemplateRef, ViewContainerRef } from '@angular/core';
3
3
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
4
4
  import * as i3 from '@angular/common';
5
5
  import { NgTemplateOutlet, NgIf, DOCUMENT, NgClass, NgForOf, AsyncPipe, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, isPlatformServer, isPlatformBrowser, CommonModule, formatDate, I18nPluralPipe, JsonPipe } from '@angular/common';
6
6
  import * as i1 from '@angular/animations';
7
- import { animate, animation, style, useAnimation, state, transition, trigger, query, group } from '@angular/animations';
7
+ import { animation, animate, style, useAnimation, trigger, state, transition, group, query } from '@angular/animations';
8
8
  import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
9
9
  import { fromEvent, Subject, BehaviorSubject, Observable, skip, distinctUntilChanged as distinctUntilChanged$1, map as map$1, debounceTime as debounceTime$1 } from 'rxjs';
10
10
  import * as i1$1 from '@angular/router';
11
- import { RouterModule, NavigationEnd, ActivatedRoute, RouterLink } from '@angular/router';
12
- import { filter, tap, distinctUntilChanged, take, finalize, withLatestFrom, zipWith, debounceTime, map, delay, combineLatestWith } from 'rxjs/operators';
11
+ import { RouterModule, NavigationEnd, RouterLink } from '@angular/router';
12
+ import { filter, tap, distinctUntilChanged, take, finalize, zipWith, withLatestFrom, debounceTime, map, delay, combineLatestWith } from 'rxjs/operators';
13
13
  import * as i1$2 from '@angular/cdk/a11y';
14
14
  import { FocusMonitor, A11yModule, FocusKeyManager } from '@angular/cdk/a11y';
15
15
  import * as i1$3 from '@angular/forms';
16
- import { Validators, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
16
+ import { FormGroup, FormControl, Validators, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormsModule } from '@angular/forms';
17
17
  import { createPopper } from '@popperjs/core';
18
18
  import * as i1$4 from '@angular/cdk/layout';
19
19
  import { SelectionModel } from '@angular/cdk/collections';
@@ -4166,37 +4166,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
4166
4166
  class ColorModeService {
4167
4167
  #destroyRef;
4168
4168
  #document;
4169
- #window;
4170
- #activatedRoute;
4171
4169
  #localStorage;
4172
4170
  constructor() {
4173
4171
  this.#destroyRef = inject(DestroyRef);
4174
4172
  this.#document = inject(DOCUMENT);
4175
- this.#window = this.#document.defaultView;
4176
- this.#activatedRoute = inject(ActivatedRoute);
4177
4173
  this.#localStorage = inject(LocalStorageService);
4178
4174
  this.eventName = signal('ColorSchemeChange');
4179
4175
  this.localStorageItemName = signal('coreui-angular-color-scheme');
4180
4176
  this.localStorageItemName$ = toObservable(this.localStorageItemName);
4181
- this.colorMode = signal('light');
4177
+ this.colorMode = signal(undefined);
4182
4178
  this.colorModeEffect = effect(() => {
4183
- if (this.colorMode()) {
4184
- this.setStoredTheme(this.localStorageItemName(), this.colorMode());
4185
- this.setTheme(this.colorMode());
4179
+ const colorMode = this.colorMode() ?? this.getTheme();
4180
+ if (colorMode) {
4181
+ this.setStoredTheme(this.localStorageItemName(), colorMode);
4182
+ this.setTheme(colorMode);
4186
4183
  }
4187
4184
  });
4188
- this.#activatedRoute.queryParams
4189
- .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
4190
- const theme = params['theme']?.match(/^[A-Za-z0-9\s]+/)[0];
4191
- if (theme) {
4192
- this.colorMode.set(theme);
4193
- }
4194
- }))
4195
- .subscribe();
4196
4185
  this.localStorageItemName$
4197
- .pipe(takeUntilDestroyed(this.#destroyRef), tap(params => {
4186
+ .pipe(tap(params => {
4198
4187
  this.colorMode.set(this.getPreferredColorScheme(params));
4199
- }))
4188
+ }), takeUntilDestroyed(this.#destroyRef))
4200
4189
  .subscribe();
4201
4190
  }
4202
4191
  getStoredTheme(localStorageItemName) {
@@ -4206,16 +4195,19 @@ class ColorModeService {
4206
4195
  return this.#localStorage.setItem(localStorageItemName, colorMode);
4207
4196
  }
4208
4197
  getPreferredColorScheme(localStorageItemName) {
4209
- if (this.#window === undefined) {
4210
- return 'light';
4198
+ if (this.#document.defaultView === undefined) {
4199
+ return undefined;
4211
4200
  }
4212
4201
  const storedTheme = this.getStoredTheme(localStorageItemName);
4213
4202
  if (storedTheme) {
4214
4203
  return storedTheme;
4215
4204
  }
4216
- return this.#window?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
4205
+ return this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : this.getTheme();
4217
4206
  }
4218
4207
  ;
4208
+ getTheme() {
4209
+ return this.#document.documentElement.dataset['coreuiTheme'] ?? undefined;
4210
+ }
4219
4211
  setTheme(colorMode) {
4220
4212
  this.#document.documentElement.dataset['coreuiTheme'] =
4221
4213
  colorMode === 'auto' && this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches