@smartbit4all/ng-client 4.5.39 → 4.5.41
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/theme/theme.service.mjs +48 -0
- package/esm2022/lib/view-context/api/api/view.service.mjs +82 -1
- package/esm2022/lib/view-context/api/api-default/binaryContentData.mjs +2 -0
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/models.mjs +4 -1
- package/esm2022/lib/view-context/api/model/shellProperties.mjs +13 -0
- package/esm2022/lib/view-context/api/model/themeDefinition.mjs +2 -0
- package/esm2022/lib/view-context/api/model/themeDescriptor.mjs +2 -0
- package/esm2022/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.mjs +35 -0
- package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +4 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +6 -5
- package/esm2022/lib/view-context/smart-view-context.module.mjs +5 -2
- package/esm2022/lib/view-context/smart-view-context.service.mjs +14 -5
- package/fesm2022/smartbit4all-ng-client.mjs +188 -10
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/theme/theme.service.d.ts +17 -0
- package/lib/view-context/api/api/view.service.d.ts +37 -0
- package/lib/view-context/api/api-default/binaryContentData.d.ts +2 -0
- package/lib/view-context/api/model/deviceInfo.d.ts +1 -0
- package/lib/view-context/api/model/models.d.ts +3 -0
- package/lib/view-context/api/model/shellProperties.d.ts +15 -0
- package/lib/view-context/api/model/themeDefinition.d.ts +22 -0
- package/lib/view-context/api/model/themeDescriptor.d.ts +16 -0
- package/lib/view-context/smart-ui-action/components/theme-selector/theme-selector.component.d.ts +16 -0
- package/lib/view-context/smart-view-context.module.d.ts +49 -48
- package/lib/view-context/smart-view-context.service.d.ts +4 -2
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.5.41.tgz +0 -0
- package/smartbit4all-ng-client-4.5.39.tgz +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { computed, Injectable, signal } from '@angular/core';
|
|
2
|
+
import { tap, lastValueFrom } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../view-context/api/api/api";
|
|
5
|
+
const THEME_CACHE_KEY = 'themeCache';
|
|
6
|
+
export class ThemeService {
|
|
7
|
+
constructor(viewService) {
|
|
8
|
+
this.viewService = viewService;
|
|
9
|
+
this._currentTheme = signal(localStorage.getItem(THEME_CACHE_KEY) ??
|
|
10
|
+
(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'));
|
|
11
|
+
this.currentTheme = computed(() => this._currentTheme());
|
|
12
|
+
this.themes = [];
|
|
13
|
+
}
|
|
14
|
+
setTheme(themeDescriptor) {
|
|
15
|
+
if (!themeDescriptor.name) {
|
|
16
|
+
throw new Error('No theme name given.');
|
|
17
|
+
}
|
|
18
|
+
document.documentElement.className = 'theme-' + themeDescriptor.name;
|
|
19
|
+
localStorage.setItem(THEME_CACHE_KEY, themeDescriptor.name);
|
|
20
|
+
this._currentTheme.set(themeDescriptor.name);
|
|
21
|
+
}
|
|
22
|
+
getThemes() {
|
|
23
|
+
return this.viewService.getThemes().pipe(tap((themes) => (this.themes = themes)));
|
|
24
|
+
}
|
|
25
|
+
async getSelectedTheme() {
|
|
26
|
+
if (this.themes.length === 0) {
|
|
27
|
+
this.themes = await lastValueFrom(this.getThemes());
|
|
28
|
+
}
|
|
29
|
+
var themeName = localStorage.getItem(THEME_CACHE_KEY) ?? this.getSystemTheme();
|
|
30
|
+
var theme = this.themes.find((t) => t.name === themeName) ?? this.themes.find((t) => t.name === 'light');
|
|
31
|
+
if (!theme) {
|
|
32
|
+
throw new Error('No theme found.');
|
|
33
|
+
}
|
|
34
|
+
return theme;
|
|
35
|
+
}
|
|
36
|
+
getSystemTheme() {
|
|
37
|
+
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ThemeService, deps: [{ token: i1.ViewService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
40
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ThemeService, decorators: [{
|
|
43
|
+
type: Injectable,
|
|
44
|
+
args: [{
|
|
45
|
+
providedIn: 'root',
|
|
46
|
+
}]
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.ViewService }] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3RoZW1lL3RoZW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFJdEQsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDO0FBS3JDLE1BQU0sT0FBTyxZQUFZO0lBU3ZCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUnBDLGtCQUFhLEdBQUcsTUFBTSxDQUM1QixZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUNuQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQ2pGLENBQUM7UUFDSyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUVuRCxXQUFNLEdBQXNCLEVBQUUsQ0FBQztJQUVRLENBQUM7SUFFekMsUUFBUSxDQUFDLGVBQWdDO1FBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxRQUFRLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNyRSxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxJQUFJLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMvRSxJQUFJLEtBQUssR0FDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztRQUUvRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUN0RixDQUFDOytHQTNDVSxZQUFZO21IQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFwLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L2FwaS9hcGkvYXBpJztcclxuaW1wb3J0IHsgVGhlbWVEZXNjcmlwdG9yIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L2FwaSc7XHJcblxyXG5jb25zdCBUSEVNRV9DQUNIRV9LRVkgPSAndGhlbWVDYWNoZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGhlbWVTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9jdXJyZW50VGhlbWUgPSBzaWduYWw8c3RyaW5nPihcclxuICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRIRU1FX0NBQ0hFX0tFWSkgPz9cclxuICAgICAgKHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlcyA/ICdkYXJrJyA6ICdsaWdodCcpXHJcbiAgKTtcclxuICBwdWJsaWMgY3VycmVudFRoZW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fY3VycmVudFRoZW1lKCkpO1xyXG5cclxuICBwcml2YXRlIHRoZW1lczogVGhlbWVEZXNjcmlwdG9yW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3U2VydmljZTogVmlld1NlcnZpY2UpIHt9XHJcblxyXG4gIHB1YmxpYyBzZXRUaGVtZSh0aGVtZURlc2NyaXB0b3I6IFRoZW1lRGVzY3JpcHRvcik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGVtZURlc2NyaXB0b3IubmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRoZW1lIG5hbWUgZ2l2ZW4uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9ICd0aGVtZS0nICsgdGhlbWVEZXNjcmlwdG9yLm5hbWU7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShUSEVNRV9DQUNIRV9LRVksIHRoZW1lRGVzY3JpcHRvci5uYW1lKTtcclxuICAgIHRoaXMuX2N1cnJlbnRUaGVtZS5zZXQodGhlbWVEZXNjcmlwdG9yLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRoZW1lcygpOiBPYnNlcnZhYmxlPFRoZW1lRGVzY3JpcHRvcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy52aWV3U2VydmljZS5nZXRUaGVtZXMoKS5waXBlKHRhcCgodGhlbWVzKSA9PiAodGhpcy50aGVtZXMgPSB0aGVtZXMpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2VsZWN0ZWRUaGVtZSgpOiBQcm9taXNlPFRoZW1lRGVzY3JpcHRvcj4ge1xyXG4gICAgaWYgKHRoaXMudGhlbWVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnRoZW1lcyA9IGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5nZXRUaGVtZXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHRoZW1lTmFtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRIRU1FX0NBQ0hFX0tFWSkgPz8gdGhpcy5nZXRTeXN0ZW1UaGVtZSgpO1xyXG4gICAgdmFyIHRoZW1lID1cclxuICAgICAgdGhpcy50aGVtZXMuZmluZCgodCkgPT4gdC5uYW1lID09PSB0aGVtZU5hbWUpID8/IHRoaXMudGhlbWVzLmZpbmQoKHQpID0+IHQubmFtZSA9PT0gJ2xpZ2h0Jyk7XHJcblxyXG4gICAgaWYgKCF0aGVtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRoZW1lIGZvdW5kLicpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGVtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTeXN0ZW1UaGVtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKCcocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspJykubWF0Y2hlcyA/ICdkYXJrJyA6ICdsaWdodCc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|