@coreui/angular-pro 5.0.0-next.16 → 5.0.0-next.17
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/esm2022/lib/services/color-mode.service.mjs +23 -20
- package/esm2022/lib/services/local-storage.service.mjs +10 -6
- package/fesm2022/coreui-angular-pro.mjs +32 -25
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/services/color-mode.service.d.ts +6 -5
- package/lib/services/local-storage.service.d.ts +1 -2
- package/package.json +1 -1
|
@@ -13,19 +13,20 @@ export class ColorModeService {
|
|
|
13
13
|
this.#document = inject(DOCUMENT);
|
|
14
14
|
this.#localStorage = inject(LocalStorageService);
|
|
15
15
|
this.eventName = signal('ColorSchemeChange');
|
|
16
|
-
this.localStorageItemName = signal(
|
|
16
|
+
this.localStorageItemName = signal(undefined);
|
|
17
17
|
this.localStorageItemName$ = toObservable(this.localStorageItemName);
|
|
18
18
|
this.colorMode = signal(undefined);
|
|
19
19
|
this.colorModeEffect = effect(() => {
|
|
20
|
-
const colorMode = this.colorMode()
|
|
20
|
+
const colorMode = this.colorMode();
|
|
21
21
|
if (colorMode) {
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
22
|
+
const localStorageItemName = this.localStorageItemName();
|
|
23
|
+
localStorageItemName && this.setStoredTheme(localStorageItemName, colorMode);
|
|
24
|
+
this.#setTheme(colorMode);
|
|
24
25
|
}
|
|
25
26
|
});
|
|
26
27
|
this.localStorageItemName$
|
|
27
28
|
.pipe(tap(params => {
|
|
28
|
-
this.colorMode.set(this.
|
|
29
|
+
this.colorMode.set(this.getDefaultScheme(params));
|
|
29
30
|
}), takeUntilDestroyed(this.#destroyRef))
|
|
30
31
|
.subscribe();
|
|
31
32
|
}
|
|
@@ -35,25 +36,27 @@ export class ColorModeService {
|
|
|
35
36
|
setStoredTheme(localStorageItemName, colorMode) {
|
|
36
37
|
return this.#localStorage.setItem(localStorageItemName, colorMode);
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
+
removeStoredTheme(localStorageItemName) {
|
|
40
|
+
this.#localStorage.removeItem(localStorageItemName);
|
|
41
|
+
}
|
|
42
|
+
getDefaultScheme(localStorageItemName) {
|
|
39
43
|
if (this.#document.defaultView === undefined) {
|
|
40
|
-
return
|
|
41
|
-
}
|
|
42
|
-
const storedTheme = this.getStoredTheme(localStorageItemName);
|
|
43
|
-
if (storedTheme) {
|
|
44
|
-
return storedTheme;
|
|
44
|
+
return this.getDatasetTheme();
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
const storedTheme = localStorageItemName && this.getStoredTheme(localStorageItemName);
|
|
47
|
+
return storedTheme ?? this.getDatasetTheme();
|
|
47
48
|
}
|
|
48
49
|
;
|
|
49
|
-
|
|
50
|
-
return this.#document.
|
|
50
|
+
getPrefersColorScheme() {
|
|
51
|
+
return this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' :
|
|
52
|
+
this.#document.defaultView?.matchMedia('(prefers-color-scheme: light)').matches ? 'light' :
|
|
53
|
+
undefined;
|
|
54
|
+
}
|
|
55
|
+
getDatasetTheme() {
|
|
56
|
+
return (this.#document.documentElement.dataset['coreuiTheme']);
|
|
51
57
|
}
|
|
52
|
-
setTheme(colorMode) {
|
|
53
|
-
this.#document.documentElement.dataset['coreuiTheme'] =
|
|
54
|
-
colorMode === 'auto' && this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches
|
|
55
|
-
? 'dark'
|
|
56
|
-
: colorMode;
|
|
58
|
+
#setTheme(colorMode) {
|
|
59
|
+
this.#document.documentElement.dataset['coreuiTheme'] = (colorMode === 'auto' ? this.getPrefersColorScheme() : colorMode);
|
|
57
60
|
const event = new Event(this.eventName());
|
|
58
61
|
this.#document.documentElement.dispatchEvent(event);
|
|
59
62
|
}
|
|
@@ -67,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
67
70
|
providedIn: 'root'
|
|
68
71
|
}]
|
|
69
72
|
}], ctorParameters: () => [] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbW9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb2xvci1tb2RlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU85RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRWxCLFdBQVcsQ0FBa0M7SUFDN0MsU0FBUyxDQUE4QjtJQUN2QyxhQUFhLENBQW9EO0lBZ0IxRTtRQWxCUyxnQkFBVyxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxjQUFTLEdBQWEsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLGtCQUFhLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLGNBQVMsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN4Qyx5QkFBb0IsR0FBdUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdFLDBCQUFxQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRSxjQUFTLEdBQThCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6RCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDckMsTUFBTSxTQUFTLEdBQUcsSUFBSSxD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RE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgQ29sb3JNb2RlID0gJ2xpZ2h0JyB8ICdkYXJrJyB8ICdhdXRvJyB8IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JNb2RlU2VydmljZSB7XG5cbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICByZWFkb25seSAjbG9jYWxTdG9yYWdlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KExvY2FsU3RvcmFnZVNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGV2ZW50TmFtZSA9IHNpZ25hbCgnQ29sb3JTY2hlbWVDaGFuZ2UnKTtcbiAgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSXRlbU5hbWU6IFdyaXRhYmxlU2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBzaWduYWwodW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSXRlbU5hbWUkID0gdG9PYnNlcnZhYmxlKHRoaXMubG9jYWxTdG9yYWdlSXRlbU5hbWUpO1xuICByZWFkb25seSBjb2xvck1vZGU6IFdyaXRhYmxlU2lnbmFsPENvbG9yTW9kZT4gPSBzaWduYWwodW5kZWZpbmVkKTtcblxuICByZWFkb25seSBjb2xvck1vZGVFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbG9yTW9kZSA9IHRoaXMuY29sb3JNb2RlKCk7XG4gICAgaWYgKGNvbG9yTW9kZSkge1xuICAgICAgY29uc3QgbG9jYWxTdG9yYWdlSXRlbU5hbWUgPSB0aGlzLmxvY2FsU3RvcmFnZUl0ZW1OYW1lKCk7XG4gICAgICBsb2NhbFN0b3JhZ2VJdGVtTmFtZSAmJiB0aGlzLnNldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lLCBjb2xvck1vZGUpO1xuICAgICAgdGhpcy4jc2V0VGhlbWUoY29sb3JNb2RlKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlSXRlbU5hbWUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHBhcmFtcyA9PiB7XG4gICAgICAgICAgdGhpcy5jb2xvck1vZGUuc2V0KHRoaXMuZ2V0RGVmYXVsdFNjaGVtZShwYXJhbXMpKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0U3RvcmVkVGhlbWUobG9jYWxTdG9yYWdlSXRlbU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiNsb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2NhbFN0b3JhZ2VJdGVtTmFtZSk7XG4gIH1cblxuICBzZXRTdG9yZWRUaGVtZShsb2NhbFN0b3JhZ2VJdGVtTmFtZTogc3RyaW5nLCBjb2xvck1vZGU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLiNsb2NhbFN0b3JhZ2Uuc2V0SXRlbShsb2NhbFN0b3JhZ2VJdGVtTmFtZSwgY29sb3JNb2RlKTtcbiAgfVxuXG4gIHJlbW92ZVN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShsb2NhbFN0b3JhZ2VJdGVtTmFtZSk7XG4gIH1cblxuICBnZXREZWZhdWx0U2NoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldFRoZW1lKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVkVGhlbWUgPSBsb2NhbFN0b3JhZ2VJdGVtTmFtZSAmJiB0aGlzLmdldFN0b3JlZFRoZW1lKGxvY2FsU3RvcmFnZUl0ZW1OYW1lKTtcblxuICAgIHJldHVybiBzdG9yZWRUaGVtZSA/PyB0aGlzLmdldERhdGFzZXRUaGVtZSgpO1xuICB9O1xuXG4gIGdldFByZWZlcnNDb2xvclNjaGVtZSgpIHtcbiAgICByZXR1cm4gdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzID8gJ2RhcmsnIDpcbiAgICAgICAgICAgdGhpcy4jZG9jdW1lbnQuZGVmYXVsdFZpZXc/Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogbGlnaHQpJykubWF0Y2hlcyA/ICdsaWdodCcgOlxuICAgICAgICAgICB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXREYXRhc2V0VGhlbWUoKTogQ29sb3JNb2RlIHtcbiAgICByZXR1cm4gPENvbG9yTW9kZT4odGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXRbJ2NvcmV1aVRoZW1lJ10pO1xuICB9XG5cbiAgI3NldFRoZW1lKGNvbG9yTW9kZTogQ29sb3JNb2RlKSB7XG4gICAgdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRhdGFzZXRbJ2NvcmV1aVRoZW1lJ10gPSAoY29sb3JNb2RlID09PSAnYXV0bycgPyB0aGlzLmdldFByZWZlcnNDb2xvclNjaGVtZSgpIDogY29sb3JNb2RlKTtcblxuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KHRoaXMuZXZlbnROYW1lKCkpO1xuICAgIHRoaXMuI2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgfTtcblxufVxuIl19
|
|
@@ -9,24 +9,28 @@ export class LocalStorageService {
|
|
|
9
9
|
this.document = document;
|
|
10
10
|
this.#data$ = new BehaviorSubject(null);
|
|
11
11
|
this.data$ = this.#data$.asObservable();
|
|
12
|
-
this
|
|
12
|
+
this.#localStorage =
|
|
13
|
+
isPlatformBrowser(this.platformId) && this.document.defaultView
|
|
14
|
+
? this.document.defaultView?.localStorage
|
|
15
|
+
: new InMemoryStorageService();
|
|
13
16
|
}
|
|
17
|
+
#localStorage;
|
|
14
18
|
#data$;
|
|
15
19
|
setItem(key, data) {
|
|
16
|
-
this
|
|
20
|
+
this.#localStorage.setItem(key, JSON.stringify(data));
|
|
17
21
|
this.#data$.next({ key, data });
|
|
18
22
|
}
|
|
19
23
|
getItem(key) {
|
|
20
|
-
const data = JSON.parse(this
|
|
24
|
+
const data = JSON.parse(this.#localStorage.getItem(key) ?? 'null');
|
|
21
25
|
this.#data$.next({ key, data });
|
|
22
26
|
return data;
|
|
23
27
|
}
|
|
24
28
|
removeItem(key) {
|
|
25
|
-
this
|
|
29
|
+
this.#localStorage.removeItem(key);
|
|
26
30
|
this.#data$.next({ key, data: null });
|
|
27
31
|
}
|
|
28
32
|
clear() {
|
|
29
|
-
this
|
|
33
|
+
this.#localStorage.clear();
|
|
30
34
|
this.#data$.next(null);
|
|
31
35
|
}
|
|
32
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LocalStorageService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -44,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
|
44
48
|
type: Inject,
|
|
45
49
|
args: [DOCUMENT]
|
|
46
50
|
}] }] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUtyRSxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQytCLFVBQWtCLEVBQ3JCLFFBQWtCO1FBRGYsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBU3JDLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBb0MsSUFBSSxDQUFDLENBQUM7UUFDL0QsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFSakQsSUFBSSxDQUFDLGFBQWE7WUFDaEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztnQkFDL0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLHNCQUFzQixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGFBQWEsQ0FBVTtJQUNkLE1BQU0sQ0FBZ0U7SUFHeEUsT0FBTyxDQUFDLEdBQVcsRUFBRSxJQUFTO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQW5DVSxtQkFBbUIsa0JBR3BCLFdBQVcsYUFDWCxRQUFRO2tIQUpQLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbk1lbW9yeVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9pbi1tZW1vcnktc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnRcbiAgKSB7XG4gICAgdGhpcy4jbG9jYWxTdG9yYWdlID1cbiAgICAgIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdGhpcy5kb2N1bWVudC5kZWZhdWx0Vmlld1xuICAgICAgPyB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3Py5sb2NhbFN0b3JhZ2VcbiAgICAgIDogbmV3IEluTWVtb3J5U3RvcmFnZVNlcnZpY2UoKTtcbiAgfVxuXG4gICNsb2NhbFN0b3JhZ2U6IFN0b3JhZ2U7XG4gIHJlYWRvbmx5ICNkYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBrZXk6IHN0cmluZzsgZGF0YTogYW55IH0gfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGEkID0gdGhpcy4jZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodGhpcy4jbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSA/PyAnbnVsbCcpO1xuICAgIHRoaXMuI2RhdGEkLm5leHQoeyBrZXksIGRhdGEgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuI2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgdGhpcy4jZGF0YSQubmV4dCh7IGtleSwgZGF0YTogbnVsbCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLiNsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICB0aGlzLiNkYXRhJC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
|
|
@@ -4115,24 +4115,28 @@ class LocalStorageService {
|
|
|
4115
4115
|
this.document = document;
|
|
4116
4116
|
this.#data$ = new BehaviorSubject(null);
|
|
4117
4117
|
this.data$ = this.#data$.asObservable();
|
|
4118
|
-
this
|
|
4118
|
+
this.#localStorage =
|
|
4119
|
+
isPlatformBrowser(this.platformId) && this.document.defaultView
|
|
4120
|
+
? this.document.defaultView?.localStorage
|
|
4121
|
+
: new InMemoryStorageService();
|
|
4119
4122
|
}
|
|
4123
|
+
#localStorage;
|
|
4120
4124
|
#data$;
|
|
4121
4125
|
setItem(key, data) {
|
|
4122
|
-
this
|
|
4126
|
+
this.#localStorage.setItem(key, JSON.stringify(data));
|
|
4123
4127
|
this.#data$.next({ key, data });
|
|
4124
4128
|
}
|
|
4125
4129
|
getItem(key) {
|
|
4126
|
-
const data = JSON.parse(this
|
|
4130
|
+
const data = JSON.parse(this.#localStorage.getItem(key) ?? 'null');
|
|
4127
4131
|
this.#data$.next({ key, data });
|
|
4128
4132
|
return data;
|
|
4129
4133
|
}
|
|
4130
4134
|
removeItem(key) {
|
|
4131
|
-
this
|
|
4135
|
+
this.#localStorage.removeItem(key);
|
|
4132
4136
|
this.#data$.next({ key, data: null });
|
|
4133
4137
|
}
|
|
4134
4138
|
clear() {
|
|
4135
|
-
this
|
|
4139
|
+
this.#localStorage.clear();
|
|
4136
4140
|
this.#data$.next(null);
|
|
4137
4141
|
}
|
|
4138
4142
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LocalStorageService, deps: [{ token: PLATFORM_ID }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
@@ -4160,19 +4164,20 @@ class ColorModeService {
|
|
|
4160
4164
|
this.#document = inject(DOCUMENT);
|
|
4161
4165
|
this.#localStorage = inject(LocalStorageService);
|
|
4162
4166
|
this.eventName = signal('ColorSchemeChange');
|
|
4163
|
-
this.localStorageItemName = signal(
|
|
4167
|
+
this.localStorageItemName = signal(undefined);
|
|
4164
4168
|
this.localStorageItemName$ = toObservable(this.localStorageItemName);
|
|
4165
4169
|
this.colorMode = signal(undefined);
|
|
4166
4170
|
this.colorModeEffect = effect(() => {
|
|
4167
|
-
const colorMode = this.colorMode()
|
|
4171
|
+
const colorMode = this.colorMode();
|
|
4168
4172
|
if (colorMode) {
|
|
4169
|
-
this.
|
|
4170
|
-
this.
|
|
4173
|
+
const localStorageItemName = this.localStorageItemName();
|
|
4174
|
+
localStorageItemName && this.setStoredTheme(localStorageItemName, colorMode);
|
|
4175
|
+
this.#setTheme(colorMode);
|
|
4171
4176
|
}
|
|
4172
4177
|
});
|
|
4173
4178
|
this.localStorageItemName$
|
|
4174
4179
|
.pipe(tap(params => {
|
|
4175
|
-
this.colorMode.set(this.
|
|
4180
|
+
this.colorMode.set(this.getDefaultScheme(params));
|
|
4176
4181
|
}), takeUntilDestroyed(this.#destroyRef))
|
|
4177
4182
|
.subscribe();
|
|
4178
4183
|
}
|
|
@@ -4182,25 +4187,27 @@ class ColorModeService {
|
|
|
4182
4187
|
setStoredTheme(localStorageItemName, colorMode) {
|
|
4183
4188
|
return this.#localStorage.setItem(localStorageItemName, colorMode);
|
|
4184
4189
|
}
|
|
4185
|
-
|
|
4190
|
+
removeStoredTheme(localStorageItemName) {
|
|
4191
|
+
this.#localStorage.removeItem(localStorageItemName);
|
|
4192
|
+
}
|
|
4193
|
+
getDefaultScheme(localStorageItemName) {
|
|
4186
4194
|
if (this.#document.defaultView === undefined) {
|
|
4187
|
-
return
|
|
4188
|
-
}
|
|
4189
|
-
const storedTheme = this.getStoredTheme(localStorageItemName);
|
|
4190
|
-
if (storedTheme) {
|
|
4191
|
-
return storedTheme;
|
|
4195
|
+
return this.getDatasetTheme();
|
|
4192
4196
|
}
|
|
4193
|
-
|
|
4197
|
+
const storedTheme = localStorageItemName && this.getStoredTheme(localStorageItemName);
|
|
4198
|
+
return storedTheme ?? this.getDatasetTheme();
|
|
4194
4199
|
}
|
|
4195
4200
|
;
|
|
4196
|
-
|
|
4197
|
-
return this.#document.
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4201
|
+
getPrefersColorScheme() {
|
|
4202
|
+
return this.#document.defaultView?.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' :
|
|
4203
|
+
this.#document.defaultView?.matchMedia('(prefers-color-scheme: light)').matches ? 'light' :
|
|
4204
|
+
undefined;
|
|
4205
|
+
}
|
|
4206
|
+
getDatasetTheme() {
|
|
4207
|
+
return (this.#document.documentElement.dataset['coreuiTheme']);
|
|
4208
|
+
}
|
|
4209
|
+
#setTheme(colorMode) {
|
|
4210
|
+
this.#document.documentElement.dataset['coreuiTheme'] = (colorMode === 'auto' ? this.getPrefersColorScheme() : colorMode);
|
|
4204
4211
|
const event = new Event(this.eventName());
|
|
4205
4212
|
this.#document.documentElement.dispatchEvent(event);
|
|
4206
4213
|
}
|