@ui5/theming-ngx 0.3.4-rc.0 → 0.4.0-rc.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/fesm2022/ui5-theming-ngx.mjs +7 -7
- package/package.json +3 -5
- package/ui5-theming-ngx-0.4.0-rc.0.tgz +0 -0
- package/esm2022/index.mjs +0 -4
- package/esm2022/ui5-theming-ngx.mjs +0 -5
- package/esm2022/ui5-theming.models.mjs +0 -3
- package/esm2022/ui5-theming.module.mjs +0 -38
- package/esm2022/ui5-theming.service.mjs +0 -113
- package/ui5-theming-ngx-0.3.4-rc.0.tgz +0 -0
|
@@ -101,10 +101,10 @@ class Ui5ThemingService {
|
|
|
101
101
|
this._destroyed$.next();
|
|
102
102
|
this._destroyed$.complete();
|
|
103
103
|
}
|
|
104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
105
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingService, deps: [{ token: UI5_THEMING_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
105
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingService }); }
|
|
106
106
|
}
|
|
107
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingService, decorators: [{
|
|
108
108
|
type: Injectable
|
|
109
109
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
110
110
|
type: Optional
|
|
@@ -132,11 +132,11 @@ class Ui5ThemingModule {
|
|
|
132
132
|
],
|
|
133
133
|
};
|
|
134
134
|
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
136
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
137
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingModule, deps: [{ token: Ui5ThemingService, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
136
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingModule }); }
|
|
137
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingModule }); }
|
|
138
138
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: Ui5ThemingModule, decorators: [{
|
|
140
140
|
type: NgModule,
|
|
141
141
|
args: [{
|
|
142
142
|
exports: [],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ui5/theming-ngx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-rc.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "SAP SE (https://www.sap.com)",
|
|
6
6
|
"repository": {
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"directory": "libs/ui5-angular-theming"
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
|
-
"@angular/common": "^
|
|
13
|
-
"@angular/core": "^
|
|
12
|
+
"@angular/common": "^19.0.0",
|
|
13
|
+
"@angular/core": "^19.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"tslib": "^2.3.0"
|
|
@@ -23,8 +23,6 @@
|
|
|
23
23
|
},
|
|
24
24
|
".": {
|
|
25
25
|
"types": "./index.d.ts",
|
|
26
|
-
"esm2022": "./esm2022/ui5-theming-ngx.mjs",
|
|
27
|
-
"esm": "./esm2022/ui5-theming-ngx.mjs",
|
|
28
26
|
"default": "./fesm2022/ui5-theming-ngx.mjs"
|
|
29
27
|
}
|
|
30
28
|
},
|
|
Binary file
|
package/esm2022/index.mjs
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export { Ui5ThemingModule } from './ui5-theming.module';
|
|
2
|
-
export { Ui5ThemingService } from './ui5-theming.service';
|
|
3
|
-
export * from './ui5-theming.models';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3VpNS1hbmd1bGFyLXRoZW1pbmcvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBVaTVUaGVtaW5nTW9kdWxlIH0gZnJvbSAnLi91aTUtdGhlbWluZy5tb2R1bGUnO1xuZXhwb3J0IHsgVWk1VGhlbWluZ1NlcnZpY2UgfSBmcm9tICcuL3VpNS10aGVtaW5nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi91aTUtdGhlbWluZy5tb2RlbHMnO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXRoZW1pbmctbmd4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci10aGVtaW5nL3NyYy91aTUtdGhlbWluZy1uZ3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const UI5_THEMING_CONFIGURATION = new InjectionToken('Ui5 global theming configuration.');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXRoZW1pbmcubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci10aGVtaW5nL3NyYy91aTUtdGhlbWluZy5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FDekQsbUNBQW1DLENBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuZXhwb3J0IGludGVyZmFjZSBUaGVtaW5nQ29uZmlnIHtcbiAgZGVmYXVsdFRoZW1lOiBzdHJpbmc7XG59XG5leHBvcnQgY29uc3QgVUk1X1RIRU1JTkdfQ09ORklHVVJBVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUaGVtaW5nQ29uZmlnPihcbiAgJ1VpNSBnbG9iYWwgdGhlbWluZyBjb25maWd1cmF0aW9uLidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVWk1VGhlbWluZ1Byb3ZpZGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBnZXRBdmFpbGFibGVUaGVtZXMoKTogc3RyaW5nW10gfCBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgc3VwcG9ydHNUaGVtZSh0aGVtZU5hbWU6IHN0cmluZyk6IGJvb2xlYW4gfCBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBzZXRUaGVtZSh0aGVtZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVWk1VGhlbWluZ0NvbnN1bWVyIGV4dGVuZHMgT21pdDxVaTVUaGVtaW5nUHJvdmlkZXIsICduYW1lJz4ge1xuICByZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyOiBVaTVUaGVtaW5nUHJvdmlkZXIpOiB2b2lkO1xuICB1bnJlZ2lzdGVyUHJvdmlkZXIocHJvdmlkZXI6IFVpNVRoZW1pbmdQcm92aWRlcik6IHZvaWQ7XG59XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { NgModule, Optional, isDevMode, } from '@angular/core';
|
|
2
|
-
import { Ui5ThemingService } from './ui5-theming.service';
|
|
3
|
-
import { UI5_THEMING_CONFIGURATION } from './ui5-theming.models';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./ui5-theming.service";
|
|
6
|
-
export class Ui5ThemingModule {
|
|
7
|
-
constructor(theming) {
|
|
8
|
-
this.theming = theming;
|
|
9
|
-
if (!this.theming && isDevMode()) {
|
|
10
|
-
console.error('Could not find Ui5ThemingService. Make sure you called .forRoot() for Ui5ThemingModule');
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
static forRoot(config) {
|
|
14
|
-
return {
|
|
15
|
-
ngModule: Ui5ThemingModule,
|
|
16
|
-
providers: [
|
|
17
|
-
Ui5ThemingService,
|
|
18
|
-
{
|
|
19
|
-
provide: UI5_THEMING_CONFIGURATION,
|
|
20
|
-
useValue: config,
|
|
21
|
-
},
|
|
22
|
-
],
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingModule, deps: [{ token: i1.Ui5ThemingService, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingModule }); }
|
|
27
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingModule }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingModule, decorators: [{
|
|
30
|
-
type: NgModule,
|
|
31
|
-
args: [{
|
|
32
|
-
exports: [],
|
|
33
|
-
declarations: [],
|
|
34
|
-
}]
|
|
35
|
-
}], ctorParameters: () => [{ type: i1.Ui5ThemingService, decorators: [{
|
|
36
|
-
type: Optional
|
|
37
|
-
}] }] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXRoZW1pbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci10aGVtaW5nL3NyYy91aTUtdGhlbWluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFFBQVEsRUFFUixRQUFRLEVBQ1IsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBaUIseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTWhGLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBK0IsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxPQUFPLENBQUMsS0FBSyxDQUNYLHdGQUF3RixDQUN6RixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQXFCO1FBQ2xDLE9BQU87WUFDTCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVCxpQkFBaUI7Z0JBQ2pCO29CQUNFLE9BQU8sRUFBRSx5QkFBeUI7b0JBQ2xDLFFBQVEsRUFBRSxNQUFNO2lCQUNqQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OEdBbkJVLGdCQUFnQjsrR0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7aUJBQ2pCOzswQkFFYyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTmdNb2R1bGUsXG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIE9wdGlvbmFsLFxuICBpc0Rldk1vZGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWk1VGhlbWluZ1NlcnZpY2UgfSBmcm9tICcuL3VpNS10aGVtaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlbWluZ0NvbmZpZywgVUk1X1RIRU1JTkdfQ09ORklHVVJBVElPTiB9IGZyb20gJy4vdWk1LXRoZW1pbmcubW9kZWxzJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW10sXG4gIGRlY2xhcmF0aW9uczogW10sXG59KVxuZXhwb3J0IGNsYXNzIFVpNVRoZW1pbmdNb2R1bGUge1xuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgdGhlbWluZzogVWk1VGhlbWluZ1NlcnZpY2UpIHtcbiAgICBpZiAoIXRoaXMudGhlbWluZyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgJ0NvdWxkIG5vdCBmaW5kIFVpNVRoZW1pbmdTZXJ2aWNlLiBNYWtlIHN1cmUgeW91IGNhbGxlZCAuZm9yUm9vdCgpIGZvciBVaTVUaGVtaW5nTW9kdWxlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBUaGVtaW5nQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVaTVUaGVtaW5nTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBVaTVUaGVtaW5nTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFVpNVRoZW1pbmdTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogVUk1X1RIRU1JTkdfQ09ORklHVVJBVElPTixcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, isDevMode, Optional } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, combineLatest, map, Observable, Subject, switchMap, takeUntil, tap, of, delay, } from 'rxjs';
|
|
3
|
-
import { UI5_THEMING_CONFIGURATION, } from './ui5-theming.models';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class Ui5ThemingService {
|
|
6
|
-
constructor(_config) {
|
|
7
|
-
this._config = _config;
|
|
8
|
-
this._providers$ = new BehaviorSubject([]);
|
|
9
|
-
this._currentTheme$ = new BehaviorSubject([
|
|
10
|
-
this._config?.defaultTheme || 'sap_fiori_3',
|
|
11
|
-
this._config?.defaultTheme || 'sap_fiori_3',
|
|
12
|
-
]);
|
|
13
|
-
this._themeChanged$ = new Subject();
|
|
14
|
-
this._destroyed$ = new Subject();
|
|
15
|
-
combineLatest([
|
|
16
|
-
this._providers$,
|
|
17
|
-
this._currentTheme$.pipe(delay(100)) // Delay so that the providers are registered. @todo: Find a better solution
|
|
18
|
-
])
|
|
19
|
-
.pipe(switchMap(([providers, [previousTheme, newTheme]]) => {
|
|
20
|
-
return combineLatest(providers.map((provider) => {
|
|
21
|
-
const isSupported = provider.supportsTheme(newTheme);
|
|
22
|
-
if (typeof isSupported === 'boolean') {
|
|
23
|
-
return of([provider, isSupported]);
|
|
24
|
-
}
|
|
25
|
-
return isSupported.pipe(map((supported) => [provider, supported]));
|
|
26
|
-
})).pipe(switchMap((providers) => {
|
|
27
|
-
const unsupportedProviders = providers.filter(([, supported]) => !supported);
|
|
28
|
-
if (unsupportedProviders.length) {
|
|
29
|
-
if (isDevMode()) {
|
|
30
|
-
console.warn(`The following providers do not support the theme "${newTheme}":`, unsupportedProviders.map(([provider]) => provider.name));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return combineLatest(providers.map(([provider]) => provider.setTheme(newTheme)));
|
|
34
|
-
}), map((providerResponses) => {
|
|
35
|
-
if (providerResponses.every(Boolean)) {
|
|
36
|
-
return newTheme;
|
|
37
|
-
}
|
|
38
|
-
return previousTheme;
|
|
39
|
-
}));
|
|
40
|
-
}), tap((theme) => {
|
|
41
|
-
this._themeChanged$.next(theme);
|
|
42
|
-
}), takeUntil(this._destroyed$))
|
|
43
|
-
.subscribe();
|
|
44
|
-
}
|
|
45
|
-
supportsTheme(themeName) {
|
|
46
|
-
return this.getAvailableThemes().pipe(map((themes) => themes.includes(themeName)));
|
|
47
|
-
}
|
|
48
|
-
getAvailableThemes() {
|
|
49
|
-
return this._providers$.pipe(switchMap((providers) => {
|
|
50
|
-
return combineLatest(providers.map((provider) => {
|
|
51
|
-
const availableThemes = provider.getAvailableThemes();
|
|
52
|
-
if (Array.isArray(availableThemes)) {
|
|
53
|
-
return of(availableThemes);
|
|
54
|
-
}
|
|
55
|
-
return availableThemes;
|
|
56
|
-
})).pipe(map((providerResponses) => {
|
|
57
|
-
const uniques = providerResponses.reduce((acc, curr) => {
|
|
58
|
-
curr.forEach((theme) => acc.add(theme));
|
|
59
|
-
return acc;
|
|
60
|
-
}, new Set());
|
|
61
|
-
return [...uniques.values()];
|
|
62
|
-
}));
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
/** Registers theming provider for further usage. */
|
|
66
|
-
registerProvider(provider) {
|
|
67
|
-
const providers = this._providers$.value;
|
|
68
|
-
providers.push(provider);
|
|
69
|
-
this._providers$.next(providers);
|
|
70
|
-
}
|
|
71
|
-
/** Unregisters previously registered theming provider. */
|
|
72
|
-
unregisterProvider(provider) {
|
|
73
|
-
const providers = this._providers$.value;
|
|
74
|
-
const index = providers.indexOf(provider);
|
|
75
|
-
if (index !== -1) {
|
|
76
|
-
providers.splice(index, 1);
|
|
77
|
-
this._providers$.next(providers);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
/** Sets the theme to the providers */
|
|
81
|
-
setTheme(theme) {
|
|
82
|
-
return new Observable((subscriber) => {
|
|
83
|
-
const finalizer$ = new Subject();
|
|
84
|
-
this._themeChanged$
|
|
85
|
-
.pipe(takeUntil(finalizer$))
|
|
86
|
-
.subscribe((changedTheme) => {
|
|
87
|
-
if (changedTheme === theme) {
|
|
88
|
-
finalizer$.next();
|
|
89
|
-
finalizer$.complete();
|
|
90
|
-
}
|
|
91
|
-
subscriber.next(changedTheme === theme);
|
|
92
|
-
subscriber.complete();
|
|
93
|
-
});
|
|
94
|
-
this._currentTheme$.next([this._currentTheme$.value[1], theme]);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
/** @hidden */
|
|
98
|
-
ngOnDestroy() {
|
|
99
|
-
this._destroyed$.next();
|
|
100
|
-
this._destroyed$.complete();
|
|
101
|
-
}
|
|
102
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingService, deps: [{ token: UI5_THEMING_CONFIGURATION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
103
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingService }); }
|
|
104
|
-
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: Ui5ThemingService, decorators: [{
|
|
106
|
-
type: Injectable
|
|
107
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
108
|
-
type: Optional
|
|
109
|
-
}, {
|
|
110
|
-
type: Inject,
|
|
111
|
-
args: [UI5_THEMING_CONFIGURATION]
|
|
112
|
-
}] }] });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWk1LXRoZW1pbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWk1LWFuZ3VsYXItdGhlbWluZy9zcmMvdWk1LXRoZW1pbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQWEsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEdBQUcsRUFDSCxVQUFVLEVBQ1YsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNILEVBQUUsRUFBRSxLQUFLLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBRUwseUJBQXlCLEdBRzFCLE1BQU0sc0JBQXNCLENBQUM7O0FBRzlCLE1BQU0sT0FBTyxpQkFBaUI7SUFXNUIsWUFDa0UsT0FBc0I7UUFBdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQVh2RSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUF1QixFQUFFLENBQUMsQ0FBQztRQUNyRSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFtQjtZQUM3RCxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksSUFBSSxhQUFhO1lBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxJQUFJLGFBQWE7U0FDNUMsQ0FBQyxDQUFDO1FBRUssbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXZDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUt4QyxhQUFhLENBQUM7WUFDWixJQUFJLENBQUMsV0FBVztZQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyw0RUFBNEU7U0FDbEgsQ0FBQzthQUNDLElBQUksQ0FDSCxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLGFB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SUFBSSxVQUFVLENBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxjQUFjO2lCQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUMzQixTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQzNCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbEIsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixDQUFDO2dCQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F0SVUsaUJBQWlCLGtCQVlOLHlCQUF5QjtrSEFacEMsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVOzswQkFhTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLFxuICB0YXAsXG4gIG9mLCBkZWxheSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBUaGVtaW5nQ29uZmlnLFxuICBVSTVfVEhFTUlOR19DT05GSUdVUkFUSU9OLFxuICBVaTVUaGVtaW5nUHJvdmlkZXIsXG4gIFVpNVRoZW1pbmdDb25zdW1lcixcbn0gZnJvbSAnLi91aTUtdGhlbWluZy5tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVWk1VGhlbWluZ1NlcnZpY2UgaW1wbGVtZW50cyBVaTVUaGVtaW5nQ29uc3VtZXIsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Byb3ZpZGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVpNVRoZW1pbmdQcm92aWRlcltdPihbXSk7XG4gIHByaXZhdGUgX2N1cnJlbnRUaGVtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFtzdHJpbmcsIHN0cmluZ10+KFtcbiAgICB0aGlzLl9jb25maWc/LmRlZmF1bHRUaGVtZSB8fCAnc2FwX2Zpb3JpXzMnLFxuICAgIHRoaXMuX2NvbmZpZz8uZGVmYXVsdFRoZW1lIHx8ICdzYXBfZmlvcmlfMycsXG4gIF0pO1xuXG4gIHByaXZhdGUgX3RoZW1lQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChVSTVfVEhFTUlOR19DT05GSUdVUkFUSU9OKSBwcml2YXRlIHJlYWRvbmx5IF9jb25maWc6IFRoZW1pbmdDb25maWdcbiAgKSB7XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl9wcm92aWRlcnMkLFxuICAgICAgdGhpcy5fY3VycmVudFRoZW1lJC5waXBlKGRlbGF5KDEwMCkpIC8vIERlbGF5IHNvIHRoYXQgdGhlIHByb3ZpZGVycyBhcmUgcmVnaXN0ZXJlZC4gQHRvZG86IEZpbmQgYSBiZXR0ZXIgc29sdXRpb25cbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoW3Byb3ZpZGVycywgW3ByZXZpb3VzVGhlbWUsIG5ld1RoZW1lXV0pID0+IHtcbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgIHByb3ZpZGVycy5tYXAoXG4gICAgICAgICAgICAgIChwcm92aWRlcik6IE9ic2VydmFibGU8W1VpNVRoZW1pbmdQcm92aWRlciwgYm9vbGVhbl0+ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1N1cHBvcnRlZCA9IHByb3ZpZGVyLnN1cHBvcnRzVGhlbWUobmV3VGhlbWUpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgaXNTdXBwb3J0ZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKFtwcm92aWRlciwgaXNTdXBwb3J0ZWRdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzU3VwcG9ydGVkLnBpcGUoXG4gICAgICAgICAgICAgICAgICBtYXAoKHN1cHBvcnRlZCkgPT4gW3Byb3ZpZGVyLCBzdXBwb3J0ZWRdKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHByb3ZpZGVycykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB1bnN1cHBvcnRlZFByb3ZpZGVycyA9IHByb3ZpZGVycy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKFssIHN1cHBvcnRlZF0pID0+ICFzdXBwb3J0ZWRcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKHVuc3VwcG9ydGVkUHJvdmlkZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICBgVGhlIGZvbGxvd2luZyBwcm92aWRlcnMgZG8gbm90IHN1cHBvcnQgdGhlIHRoZW1lIFwiJHtuZXdUaGVtZX1cIjpgLFxuICAgICAgICAgICAgICAgICAgICB1bnN1cHBvcnRlZFByb3ZpZGVycy5tYXAoKFtwcm92aWRlcl0pID0+IHByb3ZpZGVyLm5hbWUpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgICAgICBwcm92aWRlcnMubWFwKChbcHJvdmlkZXJdKSA9PiBwcm92aWRlci5zZXRUaGVtZShuZXdUaGVtZSkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgocHJvdmlkZXJSZXNwb25zZXMpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyUmVzcG9uc2VzLmV2ZXJ5KEJvb2xlYW4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ld1RoZW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1RoZW1lO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKCh0aGVtZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3RoZW1lQ2hhbmdlZCQubmV4dCh0aGVtZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHN1cHBvcnRzVGhlbWUodGhlbWVOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdmFpbGFibGVUaGVtZXMoKS5waXBlKFxuICAgICAgbWFwKCh0aGVtZXMpID0+IHRoZW1lcy5pbmNsdWRlcyh0aGVtZU5hbWUpKVxuICAgICk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVUaGVtZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLl9wcm92aWRlcnMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHByb3ZpZGVycykgPT4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBwcm92aWRlcnMubWFwKChwcm92aWRlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlVGhlbWVzID0gcHJvdmlkZXIuZ2V0QXZhaWxhYmxlVGhlbWVzKCk7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhdmFpbGFibGVUaGVtZXMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihhdmFpbGFibGVUaGVtZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVRoZW1lcztcbiAgICAgICAgICB9KVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgbWFwKChwcm92aWRlclJlc3BvbnNlczogQXJyYXk8c3RyaW5nW10+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bmlxdWVzID0gcHJvdmlkZXJSZXNwb25zZXMucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICAgICAgY3Vyci5mb3JFYWNoKCh0aGVtZSkgPT4gYWNjLmFkZCh0aGVtZSkpO1xuICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwgbmV3IFNldDxzdHJpbmc+KCkpO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi51bmlxdWVzLnZhbHVlcygpXTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyB0aGVtaW5nIHByb3ZpZGVyIGZvciBmdXJ0aGVyIHVzYWdlLiAqL1xuICByZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyOiBVaTVUaGVtaW5nUHJvdmlkZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSB0aGlzLl9wcm92aWRlcnMkLnZhbHVlO1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVyKTtcbiAgICB0aGlzLl9wcm92aWRlcnMkLm5leHQocHJvdmlkZXJzKTtcbiAgfVxuXG4gIC8qKiBVbnJlZ2lzdGVycyBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgdGhlbWluZyBwcm92aWRlci4gKi9cbiAgdW5yZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyOiBVaTVUaGVtaW5nUHJvdmlkZXIpOiB2b2lkIHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSB0aGlzLl9wcm92aWRlcnMkLnZhbHVlO1xuICAgIGNvbnN0IGluZGV4ID0gcHJvdmlkZXJzLmluZGV4T2YocHJvdmlkZXIpO1xuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIHByb3ZpZGVycy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5fcHJvdmlkZXJzJC5uZXh0KHByb3ZpZGVycyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNldHMgdGhlIHRoZW1lIHRvIHRoZSBwcm92aWRlcnMgKi9cbiAgc2V0VGhlbWUodGhlbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgY29uc3QgZmluYWxpemVyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICB0aGlzLl90aGVtZUNoYW5nZWQkXG4gICAgICAgIC5waXBlKHRha2VVbnRpbChmaW5hbGl6ZXIkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlZFRoZW1lKSA9PiB7XG4gICAgICAgICAgaWYgKGNoYW5nZWRUaGVtZSA9PT0gdGhlbWUpIHtcbiAgICAgICAgICAgIGZpbmFsaXplciQubmV4dCgpO1xuICAgICAgICAgICAgZmluYWxpemVyJC5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoY2hhbmdlZFRoZW1lID09PSB0aGVtZSk7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuX2N1cnJlbnRUaGVtZSQubmV4dChbdGhpcy5fY3VycmVudFRoZW1lJC52YWx1ZVsxXSwgdGhlbWVdKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaGlkZGVuICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
Binary file
|