@ui5/webcomponents-ngx 0.0.1-rc.4 → 0.0.1-rc.5
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/esm2020/main/ui5-webcomponents-theming.service.mjs +53 -8
- package/fesm2015/ui5-webcomponents-ngx.mjs +48 -9
- package/fesm2015/ui5-webcomponents-ngx.mjs.map +1 -1
- package/fesm2020/ui5-webcomponents-ngx.mjs +52 -8
- package/fesm2020/ui5-webcomponents-ngx.mjs.map +1 -1
- package/main/ui5-webcomponents-theming.service.d.ts +16 -2
- package/package.json +1 -1
- package/ui5-webcomponents-ngx-v0.0.1-rc.5.tgz +0 -0
- package/ui5-webcomponents-ngx-v0.0.1-rc.4.tgz +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Injectable, Optional } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { BehaviorSubject, map, of, from, tap, switchMap, } from 'rxjs';
|
|
3
|
+
import { Ui5ThemingService } from '@ui5/theming-ngx';
|
|
3
4
|
import { registerThemePropertiesLoader } from '@ui5/webcomponents-base/dist/asset-registries/Themes.js';
|
|
4
5
|
import { setTheme } from '@ui5/webcomponents-base/dist/config/Theme.js';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
@@ -11,19 +12,63 @@ export class Ui5WebcomponentsThemingService {
|
|
|
11
12
|
/** @hidden */
|
|
12
13
|
constructor(_globalThemingService) {
|
|
13
14
|
this._globalThemingService = _globalThemingService;
|
|
15
|
+
this.name = 'ui5-webcomponents-theming-service';
|
|
16
|
+
this.availableThemes$ = new BehaviorSubject([
|
|
17
|
+
'sap_belize',
|
|
18
|
+
'sap_belize_hcb',
|
|
19
|
+
'sap_belize_hcw',
|
|
20
|
+
'sap_fiori_3',
|
|
21
|
+
'sap_fiori_3_dark',
|
|
22
|
+
'sap_fiori_3_hcb',
|
|
23
|
+
'sap_fiori_3_hcw',
|
|
24
|
+
'sap_horizon',
|
|
25
|
+
'sap_horizon_dark',
|
|
26
|
+
'sap_horizon_exp',
|
|
27
|
+
'sap_horizon_hcb',
|
|
28
|
+
'sap_horizon_hcw',
|
|
29
|
+
]);
|
|
30
|
+
this.themeSetters = new Map(this.availableThemes$.value.map((themeName) => {
|
|
31
|
+
return [
|
|
32
|
+
themeName,
|
|
33
|
+
() => {
|
|
34
|
+
registerThemePropertiesLoader('@ui5/webcomponents-theming', themeName, this.loadTheme);
|
|
35
|
+
setTheme(themeName);
|
|
36
|
+
return of(true);
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
}));
|
|
14
40
|
this._globalThemingService?.registerProvider(this);
|
|
15
41
|
}
|
|
16
42
|
/** @hidden */
|
|
17
43
|
ngOnDestroy() {
|
|
18
44
|
this._globalThemingService?.unregisterProvider(this);
|
|
19
45
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
setTheme(theme);
|
|
23
|
-
return true;
|
|
46
|
+
supportsTheme(theme) {
|
|
47
|
+
return this.getAvailableThemes().pipe(map((themes) => themes.includes(theme)));
|
|
24
48
|
}
|
|
25
|
-
|
|
26
|
-
return (
|
|
49
|
+
getAvailableThemes() {
|
|
50
|
+
return this.availableThemes$.asObservable();
|
|
51
|
+
}
|
|
52
|
+
setTheme(theme) {
|
|
53
|
+
const setter = this.themeSetters.get(theme);
|
|
54
|
+
if (setter) {
|
|
55
|
+
return setter();
|
|
56
|
+
}
|
|
57
|
+
return of(false);
|
|
58
|
+
}
|
|
59
|
+
registerTheme(params) {
|
|
60
|
+
if (this.themeSetters.has(params.theme)) {
|
|
61
|
+
throw new Error(`Theme ${params.theme} is already registered.`);
|
|
62
|
+
}
|
|
63
|
+
this.themeSetters.set(params.theme, () => params.setTheme().pipe(tap((r) => {
|
|
64
|
+
registerThemePropertiesLoader(r.packageName, params.theme, () => Promise.resolve(r));
|
|
65
|
+
}), switchMap(() => from(setTheme(params.theme))), map(() => true)));
|
|
66
|
+
this.availableThemes$.next([...this.themeSetters.keys()]);
|
|
67
|
+
}
|
|
68
|
+
loadTheme(theme) {
|
|
69
|
+
return import(`@ui5/webcomponents-theming/dist/generated/assets/themes/${theme}/parameters-bundle.css.json`).then((module) => {
|
|
70
|
+
return module.default;
|
|
71
|
+
});
|
|
27
72
|
}
|
|
28
73
|
}
|
|
29
74
|
Ui5WebcomponentsThemingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: Ui5WebcomponentsThemingService, deps: [{ token: i1.Ui5ThemingService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -36,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
36
81
|
}], ctorParameters: function () { return [{ type: i1.Ui5ThemingService, decorators: [{
|
|
37
82
|
type: Optional
|
|
38
83
|
}] }]; } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXdlYmNvbXBvbmVudHMtdGhlbWluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci9zcmMvbWFpbi91aTUtd2ViY29tcG9uZW50cy10aGVtaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUNMLGVBQWUsRUFDZixHQUFHLEVBRUgsRUFBRSxFQUNGLElBQUksRUFDSixHQUFHLEVBQ0gsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFzQixpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7O0FBQ3hFOztHQUVHO0FBSUgsTUFBTSxPQUFPLDhCQUE4QjtJQXFDekMsY0FBYztJQUNkLFlBQytCLHFCQUF3QztRQUF4QywwQkFBcUIsR0FBckIscUJBQXFCLENBQW1CO1FBcEN2RSxTQUFJLEdBQUcsbUNBQW1DLENBQUM7UUFFbkMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVc7WUFDdkQsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBQ2pCLGlCQUFpQjtZQUNqQixpQkFBaUI7U0FDbEIsQ0FBQyxDQUFDO1FBRUssaUJBQVksR0FBRyxJQUFJLEdBQUcsQ0FDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM1QyxPQUFPO2dCQUNMLFNBQVM7Z0JBQ1QsR0FBRyxFQUFFO29CQUNILDZCQUE2QixDQUMzQiw0QkFBNEIsRUFDNUIsU0FBUyxFQUNULElBQUksQ0FBQyxTQUFnQixDQUN0QixDQUFDO29CQUNGLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDcEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQU1BLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUNuQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxNQUFNLEVBQUUsQ0FBQztTQUNqQjtRQUNELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxhQUFhLENBQUMsTUFPYjtRQUNDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxNQUFNLENBQUMsS0FBSyx5QkFBeUIsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FDdkMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDcEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDUiw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQzlELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQ25CLENBQUM7UUFDSixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUM3QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ2hCLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyxTQUFTLENBQUMsS0FBYTtRQUM3QixPQUFPLE1BQU0sQ0FDWCwyREFBMkQsS0FBSyw2QkFBNkIsQ0FDOUYsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsySEFsR1UsOEJBQThCOytIQUE5Qiw4QkFBOEIsY0FGN0IsTUFBTTsyRkFFUCw4QkFBOEI7a0JBSDFDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF3Q0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgZnJvbSxcbiAgdGFwLFxuICBzd2l0Y2hNYXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVWk1VGhlbWluZ1Byb3ZpZGVyLCBVaTVUaGVtaW5nU2VydmljZSB9IGZyb20gJ0B1aTUvdGhlbWluZy1uZ3gnO1xuaW1wb3J0IHsgcmVnaXN0ZXJUaGVtZVByb3BlcnRpZXNMb2FkZXIgfSBmcm9tICdAdWk1L3dlYmNvbXBvbmVudHMtYmFzZS9kaXN0L2Fzc2V0LXJlZ2lzdHJpZXMvVGhlbWVzLmpzJztcbmltcG9ydCB7IHNldFRoZW1lIH0gZnJvbSAnQHVpNS93ZWJjb21wb25lbnRzLWJhc2UvZGlzdC9jb25maWcvVGhlbWUuanMnO1xuLyoqXG4gKiBUaGVtaW5nIHNlcnZpY2Ugc3BlY2lmaWNhbGx5IGZvciB0aGUgdWk1L3dlYmNvbXBvbmVudHMtbmd4IGNvbXBvbmVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBVaTVXZWJjb21wb25lbnRzVGhlbWluZ1NlcnZpY2VcbiAgaW1wbGVtZW50cyBVaTVUaGVtaW5nUHJvdmlkZXIsIE9uRGVzdHJveVxue1xuICBuYW1lID0gJ3VpNS13ZWJjb21wb25lbnRzLXRoZW1pbmctc2VydmljZSc7XG5cbiAgcHJpdmF0ZSBhdmFpbGFibGVUaGVtZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW1xuICAgICdzYXBfYmVsaXplJyxcbiAgICAnc2FwX2JlbGl6ZV9oY2InLFxuICAgICdzYXBfYmVsaXplX2hjdycsXG4gICAgJ3NhcF9maW9yaV8zJyxcbiAgICAnc2FwX2Zpb3JpXzNfZGFyaycsXG4gICAgJ3NhcF9maW9yaV8zX2hjYicsXG4gICAgJ3NhcF9maW9yaV8zX2hjdycsXG4gICAgJ3NhcF9ob3Jpem9uJyxcbiAgICAnc2FwX2hvcml6b25fZGFyaycsXG4gICAgJ3NhcF9ob3Jpem9uX2V4cCcsXG4gICAgJ3NhcF9ob3Jpem9uX2hjYicsXG4gICAgJ3NhcF9ob3Jpem9uX2hjdycsXG4gIF0pO1xuXG4gIHByaXZhdGUgdGhlbWVTZXR0ZXJzID0gbmV3IE1hcDxzdHJpbmcsICgpID0+IE9ic2VydmFibGU8Ym9vbGVhbj4+KFxuICAgIHRoaXMuYXZhaWxhYmxlVGhlbWVzJC52YWx1ZS5tYXAoKHRoZW1lTmFtZSkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdGhlbWVOYW1lLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgcmVnaXN0ZXJUaGVtZVByb3BlcnRpZXNMb2FkZXIoXG4gICAgICAgICAgICAnQHVpNS93ZWJjb21wb25lbnRzLXRoZW1pbmcnLFxuICAgICAgICAgICAgdGhlbWVOYW1lLFxuICAgICAgICAgICAgdGhpcy5sb2FkVGhlbWUgYXMgYW55XG4gICAgICAgICAgKTtcbiAgICAgICAgICBzZXRUaGVtZSh0aGVtZU5hbWUpO1xuICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfSlcbiAgKTtcblxuICAvKiogQGhpZGRlbiAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9nbG9iYWxUaGVtaW5nU2VydmljZTogVWk1VGhlbWluZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5fZ2xvYmFsVGhlbWluZ1NlcnZpY2U/LnJlZ2lzdGVyUHJvdmlkZXIodGhpcyk7XG4gIH1cblxuICAvKiogQGhpZGRlbiAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9nbG9iYWxUaGVtaW5nU2VydmljZT8udW5yZWdpc3RlclByb3ZpZGVyKHRoaXMpO1xuICB9XG5cbiAgc3VwcG9ydHNUaGVtZSh0aGVtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXZhaWxhYmxlVGhlbWVzKCkucGlwZShcbiAgICAgIG1hcCgodGhlbWVzKSA9PiB0aGVtZXMuaW5jbHVkZXModGhlbWUpKVxuICAgICk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVUaGVtZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLmF2YWlsYWJsZVRoZW1lcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2V0dGVyID0gdGhpcy50aGVtZVNldHRlcnMuZ2V0KHRoZW1lKTtcbiAgICBpZiAoc2V0dGVyKSB7XG4gICAgICByZXR1cm4gc2V0dGVyKCk7XG4gICAgfVxuICAgIHJldHVybiBvZihmYWxzZSk7XG4gIH1cblxuICByZWdpc3RlclRoZW1lKHBhcmFtczoge1xuICAgIHRoZW1lOiBzdHJpbmc7XG4gICAgc2V0VGhlbWU6ICgpID0+IE9ic2VydmFibGU8e1xuICAgICAgcGFja2FnZU5hbWU6IHN0cmluZztcbiAgICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgfT47XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aGVtZVNldHRlcnMuaGFzKHBhcmFtcy50aGVtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlbWUgJHtwYXJhbXMudGhlbWV9IGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5gKTtcbiAgICB9XG4gICAgdGhpcy50aGVtZVNldHRlcnMuc2V0KHBhcmFtcy50aGVtZSwgKCkgPT5cbiAgICAgIHBhcmFtcy5zZXRUaGVtZSgpLnBpcGUoXG4gICAgICAgIHRhcCgocikgPT4ge1xuICAgICAgICAgIHJlZ2lzdGVyVGhlbWVQcm9wZXJ0aWVzTG9hZGVyKHIucGFja2FnZU5hbWUsIHBhcmFtcy50aGVtZSwgKCkgPT5cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZShyKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbShzZXRUaGVtZShwYXJhbXMudGhlbWUpKSksXG4gICAgICAgIG1hcCgoKSA9PiB0cnVlKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5hdmFpbGFibGVUaGVtZXMkLm5leHQoWy4uLnRoaXMudGhlbWVTZXR0ZXJzLmtleXMoKV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkVGhlbWUodGhlbWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGltcG9ydChcbiAgICAgIGBAdWk1L3dlYmNvbXBvbmVudHMtdGhlbWluZy9kaXN0L2dlbmVyYXRlZC9hc3NldHMvdGhlbWVzLyR7dGhlbWV9L3BhcmFtZXRlcnMtYnVuZGxlLmNzcy5qc29uYFxuICAgICkudGhlbigobW9kdWxlKSA9PiB7XG4gICAgICByZXR1cm4gbW9kdWxlLmRlZmF1bHQ7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Directive, Input, Output, forwardRef, NgModule, Injectable, Optional } from '@angular/core';
|
|
3
3
|
import '@ui5/webcomponents-fiori/dist/Bar.js';
|
|
4
4
|
import '@ui5/webcomponents-fiori/dist/BarcodeScannerDialog.js';
|
|
5
|
-
import { NEVER, Subject, BehaviorSubject, filter, tap, map, distinctUntilChanged, switchMap, takeUntil, merge, fromEvent } from 'rxjs';
|
|
5
|
+
import { NEVER, Subject, BehaviorSubject, filter, tap, map, distinctUntilChanged, switchMap, takeUntil, merge, fromEvent, of, from } from 'rxjs';
|
|
6
6
|
import '@ui5/webcomponents-fiori/dist/DynamicSideContent.js';
|
|
7
7
|
import '@ui5/webcomponents-fiori/dist/FilterItem.js';
|
|
8
8
|
import '@ui5/webcomponents-fiori/dist/FilterItemOption.js';
|
|
@@ -111,7 +111,6 @@ import '@ui5/webcomponents/dist/TreeItem.js';
|
|
|
111
111
|
import '@ui5/webcomponents/dist/TreeItemCustom.js';
|
|
112
112
|
import '@ui5/webcomponents/dist/WheelSlider.js';
|
|
113
113
|
import '@ui5/webcomponents/dist/YearPicker.js';
|
|
114
|
-
import { __awaiter } from 'tslib';
|
|
115
114
|
import { registerThemePropertiesLoader } from '@ui5/webcomponents-base/dist/asset-registries/Themes.js';
|
|
116
115
|
import { setTheme } from '@ui5/webcomponents-base/dist/config/Theme.js';
|
|
117
116
|
import * as i1 from '@ui5/theming-ngx';
|
|
@@ -16962,6 +16961,31 @@ class Ui5WebcomponentsThemingService {
|
|
|
16962
16961
|
constructor(_globalThemingService) {
|
|
16963
16962
|
var _a;
|
|
16964
16963
|
this._globalThemingService = _globalThemingService;
|
|
16964
|
+
this.name = 'ui5-webcomponents-theming-service';
|
|
16965
|
+
this.availableThemes$ = new BehaviorSubject([
|
|
16966
|
+
'sap_belize',
|
|
16967
|
+
'sap_belize_hcb',
|
|
16968
|
+
'sap_belize_hcw',
|
|
16969
|
+
'sap_fiori_3',
|
|
16970
|
+
'sap_fiori_3_dark',
|
|
16971
|
+
'sap_fiori_3_hcb',
|
|
16972
|
+
'sap_fiori_3_hcw',
|
|
16973
|
+
'sap_horizon',
|
|
16974
|
+
'sap_horizon_dark',
|
|
16975
|
+
'sap_horizon_exp',
|
|
16976
|
+
'sap_horizon_hcb',
|
|
16977
|
+
'sap_horizon_hcw',
|
|
16978
|
+
]);
|
|
16979
|
+
this.themeSetters = new Map(this.availableThemes$.value.map((themeName) => {
|
|
16980
|
+
return [
|
|
16981
|
+
themeName,
|
|
16982
|
+
() => {
|
|
16983
|
+
registerThemePropertiesLoader('@ui5/webcomponents-theming', themeName, this.loadTheme);
|
|
16984
|
+
setTheme(themeName);
|
|
16985
|
+
return of(true);
|
|
16986
|
+
},
|
|
16987
|
+
];
|
|
16988
|
+
}));
|
|
16965
16989
|
(_a = this._globalThemingService) === null || _a === void 0 ? void 0 : _a.registerProvider(this);
|
|
16966
16990
|
}
|
|
16967
16991
|
/** @hidden */
|
|
@@ -16969,16 +16993,31 @@ class Ui5WebcomponentsThemingService {
|
|
|
16969
16993
|
var _a;
|
|
16970
16994
|
(_a = this._globalThemingService) === null || _a === void 0 ? void 0 : _a.unregisterProvider(this);
|
|
16971
16995
|
}
|
|
16996
|
+
supportsTheme(theme) {
|
|
16997
|
+
return this.getAvailableThemes().pipe(map((themes) => themes.includes(theme)));
|
|
16998
|
+
}
|
|
16999
|
+
getAvailableThemes() {
|
|
17000
|
+
return this.availableThemes$.asObservable();
|
|
17001
|
+
}
|
|
16972
17002
|
setTheme(theme) {
|
|
16973
|
-
|
|
16974
|
-
|
|
16975
|
-
|
|
16976
|
-
|
|
16977
|
-
|
|
17003
|
+
const setter = this.themeSetters.get(theme);
|
|
17004
|
+
if (setter) {
|
|
17005
|
+
return setter();
|
|
17006
|
+
}
|
|
17007
|
+
return of(false);
|
|
17008
|
+
}
|
|
17009
|
+
registerTheme(params) {
|
|
17010
|
+
if (this.themeSetters.has(params.theme)) {
|
|
17011
|
+
throw new Error(`Theme ${params.theme} is already registered.`);
|
|
17012
|
+
}
|
|
17013
|
+
this.themeSetters.set(params.theme, () => params.setTheme().pipe(tap((r) => {
|
|
17014
|
+
registerThemePropertiesLoader(r.packageName, params.theme, () => Promise.resolve(r));
|
|
17015
|
+
}), switchMap(() => from(setTheme(params.theme))), map(() => true)));
|
|
17016
|
+
this.availableThemes$.next([...this.themeSetters.keys()]);
|
|
16978
17017
|
}
|
|
16979
17018
|
loadTheme(theme) {
|
|
16980
|
-
return
|
|
16981
|
-
return
|
|
17019
|
+
return import(`@ui5/webcomponents-theming/dist/generated/assets/themes/${theme}/parameters-bundle.css.json`).then((module) => {
|
|
17020
|
+
return module.default;
|
|
16982
17021
|
});
|
|
16983
17022
|
}
|
|
16984
17023
|
}
|