@onecx/angular-integration-interface 5.38.0 → 6.0.0-rc.11

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.
Files changed (47) hide show
  1. package/fesm2022/onecx-angular-integration-interface-mocks.mjs +52 -82
  2. package/fesm2022/onecx-angular-integration-interface-mocks.mjs.map +1 -1
  3. package/fesm2022/onecx-angular-integration-interface.mjs +80 -131
  4. package/fesm2022/onecx-angular-integration-interface.mjs.map +1 -1
  5. package/lib/services/app-config-service.d.ts +0 -2
  6. package/lib/services/configuration.service.d.ts +7 -10
  7. package/lib/services/initialize-module-guard.service.d.ts +0 -1
  8. package/lib/services/portal-message.service.d.ts +0 -2
  9. package/lib/services/theme.service.d.ts +1 -10
  10. package/lib/services/user.service.d.ts +3 -7
  11. package/lib/services/workspace.service.d.ts +1 -2
  12. package/migrations.json +26 -0
  13. package/mocks/app-state-service-mock.d.ts +1 -1
  14. package/mocks/configuration-service-mock.d.ts +3 -3
  15. package/mocks/index.d.ts +2 -2
  16. package/mocks/portal-message-service-mock.d.ts +1 -1
  17. package/mocks/remote-components-service-mock.d.ts +1 -1
  18. package/mocks/user-service-mock.d.ts +3 -3
  19. package/package.json +12 -8
  20. package/esm2022/index.mjs +0 -19
  21. package/esm2022/lib/api/constants.mjs +0 -3
  22. package/esm2022/lib/api/iauth.service.mjs +0 -2
  23. package/esm2022/lib/api/injection-tokens.mjs +0 -11
  24. package/esm2022/lib/model/config-key.model.mjs +0 -31
  25. package/esm2022/lib/services/app-config-service.mjs +0 -43
  26. package/esm2022/lib/services/app-state.service.mjs +0 -47
  27. package/esm2022/lib/services/configuration.service.mjs +0 -77
  28. package/esm2022/lib/services/initialize-module-guard.service.mjs +0 -60
  29. package/esm2022/lib/services/portal-message.service.mjs +0 -49
  30. package/esm2022/lib/services/remote-components.service.mjs +0 -18
  31. package/esm2022/lib/services/shell-capability.service.mjs +0 -22
  32. package/esm2022/lib/services/theme.service.mjs +0 -48
  33. package/esm2022/lib/services/user.service.mjs +0 -93
  34. package/esm2022/lib/services/workspace.service.mjs +0 -146
  35. package/esm2022/lib/utils/add-initialize-module-guard.utils.mjs +0 -17
  36. package/esm2022/mocks/app-config-service-mock.mjs +0 -35
  37. package/esm2022/mocks/app-state-service-mock.mjs +0 -45
  38. package/esm2022/mocks/configuration-service-mock.mjs +0 -47
  39. package/esm2022/mocks/fake-topic.mjs +0 -33
  40. package/esm2022/mocks/index.mjs +0 -9
  41. package/esm2022/mocks/onecx-angular-integration-interface-mocks.mjs +0 -5
  42. package/esm2022/mocks/portal-message-service-mock.mjs +0 -38
  43. package/esm2022/mocks/remote-components-service-mock.mjs +0 -19
  44. package/esm2022/mocks/shell-capability-service-mock.mjs +0 -21
  45. package/esm2022/mocks/user-service-mock.mjs +0 -38
  46. package/esm2022/onecx-angular-integration-interface.mjs +0 -5
  47. package/mocks/fake-topic.d.ts +0 -11
@@ -1,49 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { TranslateService } from '@ngx-translate/core';
3
- import { combineLatest, first, of } from 'rxjs';
4
- import { MessageTopic } from '@onecx/integration-interface';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngx-translate/core";
7
- export class PortalMessageService {
8
- constructor(translateService) {
9
- this.translateService = translateService;
10
- this.message$ = new MessageTopic();
11
- }
12
- success(msg) {
13
- this.addTranslated('success', msg);
14
- }
15
- info(msg) {
16
- this.addTranslated('info', msg);
17
- }
18
- error(msg) {
19
- this.addTranslated('error', msg);
20
- }
21
- warning(msg) {
22
- this.addTranslated('warning', msg);
23
- }
24
- addTranslated(severity, msg) {
25
- combineLatest([
26
- msg.summaryKey ? this.translateService.get(msg.summaryKey || '', msg.summaryParameters) : of(undefined),
27
- msg.detailKey ? this.translateService.get(msg.detailKey, msg.detailParameters) : of(undefined),
28
- ])
29
- .pipe(first())
30
- .subscribe(([summaryTranslation, detailTranslation]) => {
31
- this.message$.publish({
32
- ...msg,
33
- severity: severity,
34
- summary: summaryTranslation,
35
- detail: detailTranslation,
36
- });
37
- });
38
- }
39
- ngOnDestroy() {
40
- this.message$.destroy();
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PortalMessageService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PortalMessageService, providedIn: 'any' }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PortalMessageService, decorators: [{
46
- type: Injectable,
47
- args: [{ providedIn: 'any' }]
48
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLW1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9wb3J0YWwtbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTs7O0FBbUIzRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRXRELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRjRCLENBQUM7SUFJMUQsT0FBTyxDQUFDLEdBQVk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFZO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFZO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWdCLEVBQUUsR0FBWTtRQUNsRCxhQUFhLENBQUM7WUFDWixHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUMvRixDQUFDO2FBQ0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBVyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BCLEdBQUcsR0FBRztnQkFDTixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsTUFBTSxFQUFFLGlCQUFpQjthQUMxQixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN6QixDQUFDOytHQXZDVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQURQLEtBQUs7OzRGQUNsQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlyc3QsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE1lc3NhZ2VUb3BpYyB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG4gIHN1bW1hcnlLZXk/OiBzdHJpbmdcbiAgc3VtbWFyeVBhcmFtZXRlcnM/OiBvYmplY3RcbiAgZGV0YWlsS2V5Pzogc3RyaW5nXG4gIGRldGFpbFBhcmFtZXRlcnM/OiBvYmplY3RcbiAgaWQ/OiBhbnlcbiAga2V5Pzogc3RyaW5nXG4gIGxpZmU/OiBudW1iZXJcbiAgc3RpY2t5PzogYm9vbGVhblxuICBjbG9zYWJsZT86IGJvb2xlYW5cbiAgZGF0YT86IGFueVxuICBpY29uPzogc3RyaW5nXG4gIGNvbnRlbnRTdHlsZUNsYXNzPzogc3RyaW5nXG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmdcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIFBvcnRhbE1lc3NhZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG1lc3NhZ2UkID0gbmV3IE1lc3NhZ2VUb3BpYygpXG5cbiAgc3VjY2Vzcyhtc2c6IE1lc3NhZ2UpIHtcbiAgICB0aGlzLmFkZFRyYW5zbGF0ZWQoJ3N1Y2Nlc3MnLCBtc2cpXG4gIH1cblxuICBpbmZvKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMuYWRkVHJhbnNsYXRlZCgnaW5mbycsIG1zZylcbiAgfVxuXG4gIGVycm9yKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMuYWRkVHJhbnNsYXRlZCgnZXJyb3InLCBtc2cpXG4gIH1cblxuICB3YXJuaW5nKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMuYWRkVHJhbnNsYXRlZCgnd2FybmluZycsIG1zZylcbiAgfVxuXG4gIHByaXZhdGUgYWRkVHJhbnNsYXRlZChzZXZlcml0eTogc3RyaW5nLCBtc2c6IE1lc3NhZ2UpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIG1zZy5zdW1tYXJ5S2V5ID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChtc2cuc3VtbWFyeUtleSB8fCAnJywgbXNnLnN1bW1hcnlQYXJhbWV0ZXJzKSA6IG9mKHVuZGVmaW5lZCksXG4gICAgICBtc2cuZGV0YWlsS2V5ID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChtc2cuZGV0YWlsS2V5LCBtc2cuZGV0YWlsUGFyYW1ldGVycykgOiBvZih1bmRlZmluZWQpLFxuICAgIF0pXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoW3N1bW1hcnlUcmFuc2xhdGlvbiwgZGV0YWlsVHJhbnNsYXRpb25dOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2UkLnB1Ymxpc2goe1xuICAgICAgICAgIC4uLm1zZyxcbiAgICAgICAgICBzZXZlcml0eTogc2V2ZXJpdHksXG4gICAgICAgICAgc3VtbWFyeTogc3VtbWFyeVRyYW5zbGF0aW9uLFxuICAgICAgICAgIGRldGFpbDogZGV0YWlsVHJhbnNsYXRpb24sXG4gICAgICAgIH0pXG4gICAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlJC5kZXN0cm95KClcbiAgfVxufVxuIl19
@@ -1,18 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { RemoteComponentsTopic } from '@onecx/integration-interface';
3
- import * as i0 from "@angular/core";
4
- export class RemoteComponentsService {
5
- constructor() {
6
- this.remoteComponents$ = new RemoteComponentsTopic();
7
- }
8
- ngOnDestroy() {
9
- this.remoteComponents$.destroy();
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteComponentsService, providedIn: 'root' }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoteComponentsService, decorators: [{
15
- type: Injectable,
16
- args: [{ providedIn: 'root' }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbXBvbmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9yZW1vdGUtY29tcG9uZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUE7O0FBR3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxzQkFBaUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUE7S0FLaEQ7SUFIQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xDLENBQUM7K0dBTFUsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FEVixNQUFNOzs0RkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZW1vdGVDb21wb25lbnRzVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbXBvbmVudHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVtb3RlQ29tcG9uZW50cyQgPSBuZXcgUmVtb3RlQ29tcG9uZW50c1RvcGljKClcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW90ZUNvbXBvbmVudHMkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
@@ -1,22 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export var Capability;
4
- (function (Capability) {
5
- Capability["CURRENT_LOCATION_TOPIC"] = "currentLocationTopic";
6
- Capability["PARAMETERS_TOPIC"] = "parametersTopic";
7
- })(Capability || (Capability = {}));
8
- export class ShellCapabilityService {
9
- static setCapabilities(capabilities) {
10
- window['onecx-shell-capabilities'] = capabilities;
11
- }
12
- hasCapability(capability) {
13
- return window['onecx-shell-capabilities']?.includes(capability) ?? false;
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShellCapabilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShellCapabilityService, providedIn: 'root' }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ShellCapabilityService, decorators: [{
19
- type: Injectable,
20
- args: [{ providedIn: 'root' }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtY2FwYWJpbGl0eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL3NoZWxsLWNhcGFiaWxpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQVExQyxNQUFNLENBQU4sSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ2xCLDZEQUErQyxDQUFBO0lBQy9DLGtEQUFvQyxDQUFBO0FBQ3hDLENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQUdELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxZQUEwQjtRQUMvQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsR0FBRyxZQUFZLENBQUE7SUFDbkQsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFzQjtRQUNsQyxPQUFPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUE7SUFDMUUsQ0FBQzsrR0FQVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQURULE1BQU07OzRGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgJ29uZWN4LXNoZWxsLWNhcGFiaWxpdGllcyc6IENhcGFiaWxpdHlbXVxuICB9XG59XG5cbmV4cG9ydCBlbnVtIENhcGFiaWxpdHkge1xuICAgIENVUlJFTlRfTE9DQVRJT05fVE9QSUMgPSAnY3VycmVudExvY2F0aW9uVG9waWMnLFxuICAgIFBBUkFNRVRFUlNfVE9QSUMgPSAncGFyYW1ldGVyc1RvcGljJyxcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTaGVsbENhcGFiaWxpdHlTZXJ2aWNlIHtcbiAgc3RhdGljIHNldENhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXM6IENhcGFiaWxpdHlbXSk6IHZvaWQge1xuICAgIHdpbmRvd1snb25lY3gtc2hlbGwtY2FwYWJpbGl0aWVzJ10gPSBjYXBhYmlsaXRpZXNcbiAgfVxuXG4gIGhhc0NhcGFiaWxpdHkoY2FwYWJpbGl0eTogQ2FwYWJpbGl0eSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aW5kb3dbJ29uZWN4LXNoZWxsLWNhcGFiaWxpdGllcyddPy5pbmNsdWRlcyhjYXBhYmlsaXR5KSA/PyBmYWxzZVxuICB9XG59XG4iXX0=
@@ -1,48 +0,0 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { from, map, mergeMap } from 'rxjs';
4
- import { CurrentThemeTopic } from '@onecx/integration-interface';
5
- import { ConfigurationService } from './configuration.service';
6
- import { CONFIG_KEY } from '../model/config-key.model';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./configuration.service";
9
- import * as i2 from "@angular/common/http";
10
- const defaultThemeServerUrl = 'http://portal-theme-management:8080';
11
- export class ThemeService {
12
- constructor(configService, http) {
13
- this.configService = configService;
14
- this.http = http;
15
- this.baseUrlV1 = './portal-api';
16
- this.currentTheme$ = new CurrentThemeTopic();
17
- }
18
- getThemeHref(themeId) {
19
- const themeServerUrl = this.configService.getProperty(CONFIG_KEY.TKIT_PORTAL_THEME_SERVER_URL) || defaultThemeServerUrl;
20
- return `${themeServerUrl}/themes/${themeId}/${themeId}.min.css`;
21
- }
22
- loadAndApplyTheme(themeName) {
23
- return this.http.get(`${this.baseUrlV1}/internal/themes/${encodeURI(themeName)}`).pipe(mergeMap((theme) => {
24
- return from(this.apply(theme)).pipe(map(() => theme));
25
- }));
26
- }
27
- async apply(theme) {
28
- console.log(`🎨 Applying theme: ${theme.name}`);
29
- await this.currentTheme$.publish(theme);
30
- if (theme.properties) {
31
- Object.values(theme.properties).forEach((group) => {
32
- for (const [key, value] of Object.entries(group)) {
33
- document.documentElement.style.setProperty(`--${key}`, value);
34
- }
35
- });
36
- }
37
- }
38
- ngOnDestroy() {
39
- this.currentTheme$.destroy();
40
- }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, deps: [{ token: i1.ConfigurationService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThemeService, decorators: [{
45
- type: Injectable,
46
- args: [{ providedIn: 'root' }]
47
- }], ctorParameters: () => [{ type: i1.ConfigurationService }, { type: i2.HttpClient }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7Ozs7QUFFdEQsTUFBTSxxQkFBcUIsR0FBRyxxQ0FBcUMsQ0FBQTtBQUduRSxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUFvQixhQUFtQyxFQUFVLElBQWdCO1FBQTdELGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFIakYsY0FBUyxHQUFHLGNBQWMsQ0FBQTtRQUMxQixrQkFBYSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtJQUU2QyxDQUFDO0lBRXJGLFlBQVksQ0FBQyxPQUFlO1FBQzFCLE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsSUFBSSxxQkFBcUIsQ0FBQTtRQUNsRyxPQUFPLEdBQUcsY0FBYyxXQUFXLE9BQU8sSUFBSSxPQUFPLFVBQVUsQ0FBQTtJQUNqRSxDQUFDO0lBRU0saUJBQWlCLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0YsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNqRCxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFDL0QsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUM5QixDQUFDOytHQWxDVSxZQUFZO21IQUFaLFlBQVksY0FEQyxNQUFNOzs0RkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZnJvbSwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDdXJyZW50VGhlbWVUb3BpYywgVGhlbWUgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSdcbmltcG9ydCB7IENPTkZJR19LRVkgfSBmcm9tICcuLi9tb2RlbC9jb25maWcta2V5Lm1vZGVsJ1xuXG5jb25zdCBkZWZhdWx0VGhlbWVTZXJ2ZXJVcmwgPSAnaHR0cDovL3BvcnRhbC10aGVtZS1tYW5hZ2VtZW50OjgwODAnXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGhlbWVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgYmFzZVVybFYxID0gJy4vcG9ydGFsLWFwaSdcbiAgY3VycmVudFRoZW1lJCA9IG5ldyBDdXJyZW50VGhlbWVUb3BpYygpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldFRoZW1lSHJlZih0aGVtZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRoZW1lU2VydmVyVXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRQcm9wZXJ0eShDT05GSUdfS0VZLlRLSVRfUE9SVEFMX1RIRU1FX1NFUlZFUl9VUkwpIHx8IGRlZmF1bHRUaGVtZVNlcnZlclVybFxuICAgIHJldHVybiBgJHt0aGVtZVNlcnZlclVybH0vdGhlbWVzLyR7dGhlbWVJZH0vJHt0aGVtZUlkfS5taW4uY3NzYFxuICB9XG5cbiAgcHVibGljIGxvYWRBbmRBcHBseVRoZW1lKHRoZW1lTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGhlbWU+KGAke3RoaXMuYmFzZVVybFYxfS9pbnRlcm5hbC90aGVtZXMvJHtlbmNvZGVVUkkodGhlbWVOYW1lKX1gKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHRoZW1lKSA9PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuYXBwbHkodGhlbWUpKS5waXBlKG1hcCgoKSA9PiB0aGVtZSkpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseSh0aGVtZTogVGhlbWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhg8J+OqCBBcHBseWluZyB0aGVtZTogJHt0aGVtZS5uYW1lfWApXG4gICAgYXdhaXQgdGhpcy5jdXJyZW50VGhlbWUkLnB1Ymxpc2godGhlbWUpXG4gICAgaWYgKHRoZW1lLnByb3BlcnRpZXMpIHtcbiAgICAgIE9iamVjdC52YWx1ZXModGhlbWUucHJvcGVydGllcykuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXApKSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGAtLSR7a2V5fWAsIHZhbHVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFRoZW1lJC5kZXN0cm95KClcbiAgfVxufVxuIl19
@@ -1,93 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, map, filter, firstValueFrom, skip, merge } from 'rxjs';
3
- import { PermissionsTopic, UserProfileTopic } from '@onecx/integration-interface';
4
- import { DEFAULT_LANG } from '../api/constants';
5
- import * as i0 from "@angular/core";
6
- export class UserService {
7
- constructor() {
8
- this.profile$ = new UserProfileTopic();
9
- this.permissions$ = new BehaviorSubject([]);
10
- this.lang$ = new BehaviorSubject(this.determineLanguage() ?? DEFAULT_LANG);
11
- this.permissionsTopic$ = new PermissionsTopic();
12
- this.profile$
13
- .pipe(map((profile) => profile.accountSettings?.localeAndTimeSettings?.locale ?? this.determineLanguage() ?? DEFAULT_LANG))
14
- .subscribe(this.lang$);
15
- this.oldStylePermissionsInitialized = firstValueFrom(this.permissions$.pipe(skip(1)));
16
- this.effectivePermissions$ = merge(this.permissions$.pipe(skip(1)), this.permissionsTopic$.asObservable());
17
- this.profile$
18
- .pipe(map((profile) => this.extractPermissions(profile)), filter((permissions) => !!permissions))
19
- .subscribe(this.permissions$);
20
- }
21
- ngOnDestroy() {
22
- this.profile$.destroy();
23
- }
24
- getPermissions() {
25
- return this.effectivePermissions$;
26
- }
27
- hasPermission(permissionKey) {
28
- if (Array.isArray(permissionKey)) {
29
- return permissionKey.every((key) => this.hasPermission(key));
30
- }
31
- const oldConceptResult = this.permissions$.getValue()
32
- ? this.permissions$.getValue()?.includes(permissionKey)
33
- : false;
34
- const result = this.permissionsTopic$.getValue()
35
- ? this.permissionsTopic$.getValue()?.includes(permissionKey)
36
- : oldConceptResult;
37
- if (!result) {
38
- console.log(`👮‍♀️ No permission for: ${permissionKey}`);
39
- }
40
- return !!result;
41
- }
42
- determineLanguage() {
43
- if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {
44
- return undefined;
45
- }
46
- let browserLang = window.navigator.languages ? window.navigator.languages[0] : null;
47
- browserLang = browserLang || window.navigator.language;
48
- if (typeof browserLang === 'undefined') {
49
- return undefined;
50
- }
51
- if (browserLang.indexOf('-') !== -1) {
52
- browserLang = browserLang.split('-')[0];
53
- }
54
- if (browserLang.indexOf('_') !== -1) {
55
- browserLang = browserLang.split('_')[0];
56
- }
57
- return browserLang;
58
- }
59
- extractPermissions(userProfile) {
60
- if (userProfile) {
61
- if (userProfile.memberships) {
62
- const permissions = [];
63
- userProfile.memberships.forEach((m) => {
64
- m.roleMemberships?.forEach((r) => {
65
- r.permissions?.forEach((p) => {
66
- if (p) {
67
- if (p.key !== undefined) {
68
- permissions.push(p.key);
69
- }
70
- }
71
- });
72
- });
73
- });
74
- return permissions;
75
- }
76
- }
77
- return null;
78
- }
79
- get isInitialized() {
80
- return Promise.all([
81
- Promise.race([this.permissionsTopic$.isInitialized, this.oldStylePermissionsInitialized]),
82
- this.profile$.isInitialized,
83
- // eslint-disable-next-line @typescript-eslint/no-empty-function
84
- ]).then(() => { });
85
- }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
87
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, providedIn: 'root' }); }
88
- }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, decorators: [{
90
- type: Injectable,
91
- args: [{ providedIn: 'root' }]
92
- }], ctorParameters: () => [] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFjLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7O0FBRy9DLE1BQU0sT0FBTyxXQUFXO0lBU3RCO1FBUkEsYUFBUSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUNqQyxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFBO1FBQ2hELFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQTtRQUc3RCxzQkFBaUIsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUE7UUFJaEQsSUFBSSxDQUFDLFFBQVE7YUFDVixJQUFJLENBQ0gsR0FBRyxDQUNELENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixPQUFPLENBQUMsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxZQUFZLENBQ3JHLENBQ0Y7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRXhCLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFB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QUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIGZpbHRlciwgZmlyc3RWYWx1ZUZyb20sIHNraXAsIE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFBlcm1pc3Npb25zVG9waWMsIFVzZXJQcm9maWxlLCBVc2VyUHJvZmlsZVRvcGljIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IERFRkFVTFRfTEFORyB9IGZyb20gJy4uL2FwaS9jb25zdGFudHMnXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcm9maWxlJCA9IG5ldyBVc2VyUHJvZmlsZVRvcGljKClcbiAgcGVybWlzc2lvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pXG4gIGxhbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmRldGVybWluZUxhbmd1YWdlKCkgPz8gREVGQVVMVF9MQU5HKVxuXG4gIHByaXZhdGUgZWZmZWN0aXZlUGVybWlzc2lvbnMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPlxuICBwcml2YXRlIHBlcm1pc3Npb25zVG9waWMkID0gbmV3IFBlcm1pc3Npb25zVG9waWMoKVxuICBwcml2YXRlIG9sZFN0eWxlUGVybWlzc2lvbnNJbml0aWFsaXplZDogUHJvbWlzZTxzdHJpbmdbXT5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnByb2ZpbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChwcm9maWxlKSA9PlxuICAgICAgICAgICAgcHJvZmlsZS5hY2NvdW50U2V0dGluZ3M/LmxvY2FsZUFuZFRpbWVTZXR0aW5ncz8ubG9jYWxlID8/IHRoaXMuZGV0ZXJtaW5lTGFuZ3VhZ2UoKSA/PyBERUZBVUxUX0xBTkdcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxhbmckKVxuXG4gICAgdGhpcy5vbGRTdHlsZVBlcm1pc3Npb25zSW5pdGlhbGl6ZWQgPSBmaXJzdFZhbHVlRnJvbSh0aGlzLnBlcm1pc3Npb25zJC5waXBlKHNraXAoMSkpKVxuICAgIHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvbnMkID0gbWVyZ2UodGhpcy5wZXJtaXNzaW9ucyQucGlwZShza2lwKDEpKSwgdGhpcy5wZXJtaXNzaW9uc1RvcGljJC5hc09ic2VydmFibGUoKSlcbiAgICB0aGlzLnByb2ZpbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChwcm9maWxlKSA9PiB0aGlzLmV4dHJhY3RQZXJtaXNzaW9ucyhwcm9maWxlKSksXG4gICAgICAgIGZpbHRlcigocGVybWlzc2lvbnMpOiBwZXJtaXNzaW9ucyBpcyBzdHJpbmdbXSA9PiAhIXBlcm1pc3Npb25zKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnBlcm1pc3Npb25zJClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZSQuZGVzdHJveSgpXG4gIH1cblxuICBnZXRQZXJtaXNzaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9ucyRcbiAgfVxuXG4gIGhhc1Blcm1pc3Npb24ocGVybWlzc2lvbktleTogc3RyaW5nIHwgc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uS2V5KSkge1xuICAgICAgcmV0dXJuIHBlcm1pc3Npb25LZXkuZXZlcnkoKGtleSkgPT4gdGhpcy5oYXNQZXJtaXNzaW9uKGtleSkpXG4gICAgfVxuICAgIGNvbnN0IG9sZENvbmNlcHRSZXN1bHQgPSB0aGlzLnBlcm1pc3Npb25zJC5nZXRWYWx1ZSgpXG4gICAgICA/IHRoaXMucGVybWlzc2lvbnMkLmdldFZhbHVlKCk/LmluY2x1ZGVzKHBlcm1pc3Npb25LZXkpXG4gICAgICA6IGZhbHNlXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5wZXJtaXNzaW9uc1RvcGljJC5nZXRWYWx1ZSgpXG4gICAgICA/IHRoaXMucGVybWlzc2lvbnNUb3BpYyQuZ2V0VmFsdWUoKT8uaW5jbHVkZXMocGVybWlzc2lvbktleSlcbiAgICAgIDogb2xkQ29uY2VwdFJlc3VsdFxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5Gu4oCN4pmA77iPIE5vIHBlcm1pc3Npb24gZm9yOiAke3Blcm1pc3Npb25LZXl9YClcbiAgICB9XG4gICAgcmV0dXJuICEhcmVzdWx0XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZUxhbmd1YWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGxldCBicm93c2VyTGFuZzogYW55ID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXMgPyB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6IG51bGxcbiAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nIHx8IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VcblxuICAgIGlmICh0eXBlb2YgYnJvd3NlckxhbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKGJyb3dzZXJMYW5nLmluZGV4T2YoJy0nKSAhPT0gLTEpIHtcbiAgICAgIGJyb3dzZXJMYW5nID0gYnJvd3Nlckxhbmcuc3BsaXQoJy0nKVswXVxuICAgIH1cblxuICAgIGlmIChicm93c2VyTGFuZy5pbmRleE9mKCdfJykgIT09IC0xKSB7XG4gICAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nLnNwbGl0KCdfJylbMF1cbiAgICB9XG5cbiAgICByZXR1cm4gYnJvd3NlckxhbmdcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFBlcm1pc3Npb25zKHVzZXJQcm9maWxlOiBVc2VyUHJvZmlsZSkge1xuICAgIGlmICh1c2VyUHJvZmlsZSkge1xuICAgICAgaWYgKHVzZXJQcm9maWxlLm1lbWJlcnNoaXBzKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdXG4gICAgICAgIHVzZXJQcm9maWxlLm1lbWJlcnNoaXBzLmZvckVhY2goKG0pID0+IHtcbiAgICAgICAgICBtLnJvbGVNZW1iZXJzaGlwcz8uZm9yRWFjaCgocikgPT4ge1xuICAgICAgICAgICAgci5wZXJtaXNzaW9ucz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocCkge1xuICAgICAgICAgICAgICAgIGlmIChwLmtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucy5wdXNoKHAua2V5KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnNcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGdldCBpc0luaXRpYWxpemVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICBQcm9taXNlLnJhY2UoW3RoaXMucGVybWlzc2lvbnNUb3BpYyQuaXNJbml0aWFsaXplZCwgdGhpcy5vbGRTdHlsZVBlcm1pc3Npb25zSW5pdGlhbGl6ZWRdKSxcbiAgICAgIHRoaXMucHJvZmlsZSQuaXNJbml0aWFsaXplZCxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICBdKS50aGVuKCgpID0+IHt9KVxuICB9XG59XG4iXX0=
@@ -1,146 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { AppStateService } from './app-state.service';
3
- import { map } from 'rxjs';
4
- import { Location } from '@angular/common';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./app-state.service";
7
- export class WorkspaceService {
8
- constructor(appStateService) {
9
- this.appStateService = appStateService;
10
- this.aliasStart = '[[';
11
- this.aliasEnd = ']]';
12
- this.paramStart = '{';
13
- this.paramEnd = '}';
14
- }
15
- getUrl(productName, appId, endpointName, endpointParameters) {
16
- return this.appStateService.currentWorkspace$.pipe(map((workspace) => {
17
- const finalUrl = this.constructRouteUrl(workspace, appId, productName, endpointName, endpointParameters);
18
- return finalUrl;
19
- }));
20
- }
21
- doesUrlExistFor(productName, appId, endpointName) {
22
- return this.appStateService.currentWorkspace$.pipe(map((workspace) => {
23
- const checkEndpoint = endpointName !== undefined && endpointName.length > 0;
24
- if (workspace.routes == undefined) {
25
- return false;
26
- }
27
- const route = this.filterRouteFromList(workspace.routes, appId, productName);
28
- if (checkEndpoint) {
29
- if (!route || route.endpoints === undefined || route.endpoints.length == 0) {
30
- return false;
31
- }
32
- const endpoint = route.endpoints.find((ep) => ep.name === endpointName);
33
- return !!(endpoint && endpoint.path && endpoint.path.length > 0);
34
- }
35
- else {
36
- return !!(route && route.baseUrl && route.baseUrl.length > 0);
37
- }
38
- }));
39
- }
40
- constructBaseUrlFromWorkspace(workspace) {
41
- if (workspace.baseUrl === undefined) {
42
- console.log('WARNING: There was no baseUrl for received workspace.');
43
- return '';
44
- }
45
- return workspace.baseUrl;
46
- }
47
- constructRouteUrl(workspace, appId, productName, endpointName, endpointParameters) {
48
- const route = this.filterRouteFromList(workspace.routes, appId, productName);
49
- let url = this.constructBaseUrlFromWorkspace(workspace);
50
- if (!route) {
51
- console.log(`WARNING: No route.baseUrl could be found for given appId "${appId}" and productName "${productName}"`);
52
- return url;
53
- }
54
- if (route.baseUrl !== undefined && route.baseUrl.length > 0) {
55
- url = route.baseUrl;
56
- }
57
- if (endpointName == undefined) {
58
- return url;
59
- }
60
- url = Location.joinWithSlash(url, this.constructEndpointUrl(route, endpointName, endpointParameters));
61
- return url;
62
- }
63
- constructEndpointUrl(route, endpointName, endpointParameters = {}) {
64
- if (!route.endpoints) {
65
- return '';
66
- }
67
- const finalEndpoint = this.dissolveEndpoint(endpointName, route.endpoints);
68
- if (!finalEndpoint || finalEndpoint.path === undefined) {
69
- console.log('WARNING: No endpoint or endpoint.path could be found');
70
- return '';
71
- }
72
- const paramsFilled = this.fillParamsForPath(finalEndpoint.path, endpointParameters);
73
- if (paramsFilled === undefined) {
74
- console.log('WARNING: Params could not be filled correctly');
75
- return '';
76
- }
77
- return paramsFilled;
78
- }
79
- filterRouteFromList(routes, appId, productName) {
80
- if (!routes) {
81
- return undefined;
82
- }
83
- const productRoutes = routes.filter((route) => route.appId === appId && route.productName === productName);
84
- if (productRoutes.length === 0) {
85
- return undefined;
86
- }
87
- if (productRoutes.length > 1) {
88
- console.log('WARNING: There were more than one route. First route has been used.');
89
- }
90
- return productRoutes[0];
91
- }
92
- dissolveEndpoint(endpointName, endpoints) {
93
- let endpoint = endpoints.find((ep) => ep.name === endpointName);
94
- if (!endpoint) {
95
- return undefined;
96
- }
97
- while (endpoint.path?.includes(this.aliasStart)) {
98
- const path = endpoint.path;
99
- const startIdx = path.indexOf(this.aliasStart) + this.aliasStart.length;
100
- const endIdx = path.lastIndexOf(this.aliasEnd);
101
- if (endIdx <= startIdx) {
102
- return undefined;
103
- }
104
- const aliasName = path.substring(startIdx, endIdx);
105
- endpoint = endpoints.find((ep) => ep.name === aliasName);
106
- if (!endpoint) {
107
- return undefined;
108
- }
109
- }
110
- return endpoint;
111
- }
112
- fillParamsForPath(path, endpointParameters) {
113
- while (path.includes(this.paramStart)) {
114
- const paramName = path.substring(path.indexOf(this.paramStart) + this.paramStart.length, path.indexOf(this.paramEnd));
115
- const paramValue = this.getStringFromUnknown(endpointParameters[paramName]);
116
- if (paramValue != undefined && paramValue.length > 0) {
117
- path = path.replace(this.paramStart.concat(paramName).concat(this.paramEnd), paramValue);
118
- }
119
- else {
120
- console.log(`WARNING: Searched param "${paramName}" was not found in given param list `);
121
- return '';
122
- }
123
- }
124
- return path;
125
- }
126
- getStringFromUnknown(value) {
127
- if (value === null || value === undefined) {
128
- return '';
129
- }
130
- else if (typeof value === 'string') {
131
- return value;
132
- }
133
- else {
134
- return String(value);
135
- }
136
- }
137
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceService, deps: [{ token: i1.AppStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
138
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceService, providedIn: 'root' }); }
139
- }
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WorkspaceService, decorators: [{
141
- type: Injectable,
142
- args: [{
143
- providedIn: 'root',
144
- }]
145
- }], ctorParameters: () => [{ type: i1.AppStateService }] });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9saWIvc2VydmljZXMvd29ya3NwYWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUd0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7OztBQUsxQyxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQXNCLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUw5QyxlQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLGFBQVEsR0FBRyxJQUFJLENBQUE7UUFDZixlQUFVLEdBQUcsR0FBRyxDQUFBO1FBQ2hCLGFBQVEsR0FBRyxHQUFHLENBQUE7SUFFbUMsQ0FBQztJQUUxRCxNQUFNLENBQ0osV0FBbUIsRUFDbkIsS0FBYSxFQUNiLFlBQXFCLEVBQ3JCLGtCQUE0QztRQUU1QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUNoRCxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNoQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixDQUFDLENBQUE7WUFDeEcsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsV0FBbUIsRUFBRSxLQUFhLEVBQUUsWUFBcUI7UUFDdkUsT0FBTyxJQUFJLENBQUMs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QkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2FwcC1zdGF0ZS5zZXJ2aWNlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IEVuZHBvaW50IH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlU2VydmljZSB7XG4gIHByaXZhdGUgYWxpYXNTdGFydCA9ICdbWydcbiAgcHJpdmF0ZSBhbGlhc0VuZCA9ICddXSdcbiAgcHJpdmF0ZSBwYXJhbVN0YXJ0ID0gJ3snXG4gIHByaXZhdGUgcGFyYW1FbmQgPSAnfSdcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBwU3RhdGVTZXJ2aWNlOiBBcHBTdGF0ZVNlcnZpY2UpIHt9XG5cbiAgZ2V0VXJsKFxuICAgIHByb2R1Y3ROYW1lOiBzdHJpbmcsXG4gICAgYXBwSWQ6IHN0cmluZyxcbiAgICBlbmRwb2ludE5hbWU/OiBzdHJpbmcsXG4gICAgZW5kcG9pbnRQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBTdGF0ZVNlcnZpY2UuY3VycmVudFdvcmtzcGFjZSQucGlwZShcbiAgICAgIG1hcCgod29ya3NwYWNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbmFsVXJsID0gdGhpcy5jb25zdHJ1Y3RSb3V0ZVVybCh3b3Jrc3BhY2UsIGFwcElkLCBwcm9kdWN0TmFtZSwgZW5kcG9pbnROYW1lLCBlbmRwb2ludFBhcmFtZXRlcnMpXG4gICAgICAgIHJldHVybiBmaW5hbFVybFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkb2VzVXJsRXhpc3RGb3IocHJvZHVjdE5hbWU6IHN0cmluZywgYXBwSWQ6IHN0cmluZywgZW5kcG9pbnROYW1lPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBwU3RhdGVTZXJ2aWNlLmN1cnJlbnRXb3Jrc3BhY2UkLnBpcGUoXG4gICAgICBtYXAoKHdvcmtzcGFjZSkgPT4ge1xuICAgICAgICBjb25zdCBjaGVja0VuZHBvaW50ID0gZW5kcG9pbnROYW1lICE9PSB1bmRlZmluZWQgJiYgZW5kcG9pbnROYW1lLmxlbmd0aCA+IDBcblxuICAgICAgICBpZiAod29ya3NwYWNlLnJvdXRlcyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZmlsdGVyUm91dGVGcm9tTGlzdCh3b3Jrc3BhY2Uucm91dGVzLCBhcHBJZCwgcHJvZHVjdE5hbWUpXG5cbiAgICAgICAgaWYgKGNoZWNrRW5kcG9pbnQpIHtcbiAgICAgICAgICBpZiAoIXJvdXRlIHx8IHJvdXRlLmVuZHBvaW50cyA9PT0gdW5kZWZpbmVkIHx8IHJvdXRlLmVuZHBvaW50cy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSByb3V0ZS5lbmRwb2ludHMuZmluZCgoZXApID0+IGVwLm5hbWUgPT09IGVuZHBvaW50TmFtZSlcbiAgICAgICAgICByZXR1cm4gISEoZW5kcG9pbnQgJiYgZW5kcG9pbnQucGF0aCAmJiBlbmRwb2ludC5wYXRoLmxlbmd0aCA+IDApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICEhKHJvdXRlICYmIHJvdXRlLmJhc2VVcmwgJiYgcm91dGUuYmFzZVVybC5sZW5ndGggPiAwKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0QmFzZVVybEZyb21Xb3Jrc3BhY2Uod29ya3NwYWNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh3b3Jrc3BhY2UuYmFzZVVybCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnV0FSTklORzogVGhlcmUgd2FzIG5vIGJhc2VVcmwgZm9yIHJlY2VpdmVkIHdvcmtzcGFjZS4nKVxuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiB3b3Jrc3BhY2UuYmFzZVVybFxuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RSb3V0ZVVybChcbiAgICB3b3Jrc3BhY2U6IGFueSxcbiAgICBhcHBJZDogc3RyaW5nLFxuICAgIHByb2R1Y3ROYW1lOiBzdHJpbmcsXG4gICAgZW5kcG9pbnROYW1lPzogc3RyaW5nLFxuICAgIGVuZHBvaW50UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgcm91dGUgPSB0aGlzLmZpbHRlclJvdXRlRnJvbUxpc3Qod29ya3NwYWNlLnJvdXRlcywgYXBwSWQsIHByb2R1Y3ROYW1lKVxuICAgIGxldCB1cmwgPSB0aGlzLmNvbnN0cnVjdEJhc2VVcmxGcm9tV29ya3NwYWNlKHdvcmtzcGFjZSlcbiAgICBpZiAoIXJvdXRlKSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFdBUk5JTkc6IE5vIHJvdXRlLmJhc2VVcmwgY291bGQgYmUgZm91bmQgZm9yIGdpdmVuIGFwcElkIFwiJHthcHBJZH1cIiBhbmQgcHJvZHVjdE5hbWUgXCIke3Byb2R1Y3ROYW1lfVwiYFxuICAgICAgKVxuXG4gICAgICByZXR1cm4gdXJsXG4gICAgfVxuXG4gICAgaWYgKHJvdXRlLmJhc2VVcmwgIT09IHVuZGVmaW5lZCAmJiByb3V0ZS5iYXNlVXJsLmxlbmd0aCA+IDApIHtcbiAgICAgIHVybCA9IHJvdXRlLmJhc2VVcmxcbiAgICB9XG4gICAgaWYgKGVuZHBvaW50TmFtZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1cmxcbiAgICB9XG5cbiAgICB1cmwgPSBMb2NhdGlvbi5qb2luV2l0aFNsYXNoKHVybCwgdGhpcy5jb25zdHJ1Y3RFbmRwb2ludFVybChyb3V0ZSwgZW5kcG9pbnROYW1lLCBlbmRwb2ludFBhcmFtZXRlcnMpKVxuICAgIHJldHVybiB1cmxcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0RW5kcG9pbnRVcmwoXG4gICAgcm91dGU6IGFueSxcbiAgICBlbmRwb2ludE5hbWU6IHN0cmluZyxcbiAgICBlbmRwb2ludFBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge31cbiAgKTogc3RyaW5nIHtcbiAgICBpZiAoIXJvdXRlLmVuZHBvaW50cykge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIGNvbnN0IGZpbmFsRW5kcG9pbnQgPSB0aGlzLmRpc3NvbHZlRW5kcG9pbnQoZW5kcG9pbnROYW1lLCByb3V0ZS5lbmRwb2ludHMpXG4gICAgaWYgKCFmaW5hbEVuZHBvaW50IHx8IGZpbmFsRW5kcG9pbnQucGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnV0FSTklORzogTm8gZW5kcG9pbnQgb3IgZW5kcG9pbnQucGF0aCBjb3VsZCBiZSBmb3VuZCcpXG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXNGaWxsZWQgPSB0aGlzLmZpbGxQYXJhbXNGb3JQYXRoKGZpbmFsRW5kcG9pbnQucGF0aCwgZW5kcG9pbnRQYXJhbWV0ZXJzKVxuICAgIGlmIChwYXJhbXNGaWxsZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5sb2coJ1dBUk5JTkc6IFBhcmFtcyBjb3VsZCBub3QgYmUgZmlsbGVkIGNvcnJlY3RseScpXG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zRmlsbGVkXG4gIH1cblxuICBwcml2YXRlIGZpbHRlclJvdXRlRnJvbUxpc3Qocm91dGVzOiBBcnJheTxSb3V0ZT4sIGFwcElkOiBzdHJpbmcsIHByb2R1Y3ROYW1lOiBzdHJpbmcpOiBSb3V0ZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFyb3V0ZXMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBwcm9kdWN0Um91dGVzID0gcm91dGVzLmZpbHRlcigocm91dGUpID0+IHJvdXRlLmFwcElkID09PSBhcHBJZCAmJiByb3V0ZS5wcm9kdWN0TmFtZSA9PT0gcHJvZHVjdE5hbWUpXG5cbiAgICBpZiAocHJvZHVjdFJvdXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAocHJvZHVjdFJvdXRlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLmxvZygnV0FSTklORzogVGhlcmUgd2VyZSBtb3JlIHRoYW4gb25lIHJvdXRlLiBGaXJzdCByb3V0ZSBoYXMgYmVlbiB1c2VkLicpXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2R1Y3RSb3V0ZXNbMF1cbiAgfVxuXG4gIHByaXZhdGUgZGlzc29sdmVFbmRwb2ludChlbmRwb2ludE5hbWU6IHN0cmluZywgZW5kcG9pbnRzOiBBcnJheTxFbmRwb2ludD4pOiBFbmRwb2ludCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGVuZHBvaW50ID0gZW5kcG9pbnRzLmZpbmQoKGVwKSA9PiBlcC5uYW1lID09PSBlbmRwb2ludE5hbWUpXG5cbiAgICBpZiAoIWVuZHBvaW50KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgd2hpbGUgKGVuZHBvaW50LnBhdGg/LmluY2x1ZGVzKHRoaXMuYWxpYXNTdGFydCkpIHtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IGVuZHBvaW50LnBhdGhcbiAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gcGF0aC5pbmRleE9mKHRoaXMuYWxpYXNTdGFydCkgKyB0aGlzLmFsaWFzU3RhcnQubGVuZ3RoXG4gICAgICBjb25zdCBlbmRJZHggPSBwYXRoLmxhc3RJbmRleE9mKHRoaXMuYWxpYXNFbmQpXG4gICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFsaWFzTmFtZSA9IHBhdGguc3Vic3RyaW5nKHN0YXJ0SWR4LCBlbmRJZHgpXG4gICAgICBlbmRwb2ludCA9IGVuZHBvaW50cy5maW5kKChlcCkgPT4gZXAubmFtZSA9PT0gYWxpYXNOYW1lKVxuXG4gICAgICBpZiAoIWVuZHBvaW50KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5kcG9pbnRcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFBhcmFtc0ZvclBhdGgocGF0aDogc3RyaW5nLCBlbmRwb2ludFBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHtcbiAgICB3aGlsZSAocGF0aC5pbmNsdWRlcyh0aGlzLnBhcmFtU3RhcnQpKSB7XG4gICAgICBjb25zdCBwYXJhbU5hbWUgPSBwYXRoLnN1YnN0cmluZyhcbiAgICAgICAgcGF0aC5pbmRleE9mKHRoaXMucGFyYW1TdGFydCkgKyB0aGlzLnBhcmFtU3RhcnQubGVuZ3RoLFxuICAgICAgICBwYXRoLmluZGV4T2YodGhpcy5wYXJhbUVuZClcbiAgICAgIClcbiAgICAgIGNvbnN0IHBhcmFtVmFsdWUgPSB0aGlzLmdldFN0cmluZ0Zyb21Vbmtub3duKGVuZHBvaW50UGFyYW1ldGVyc1twYXJhbU5hbWVdKVxuICAgICAgaWYgKHBhcmFtVmFsdWUgIT0gdW5kZWZpbmVkICYmIHBhcmFtVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMucGFyYW1TdGFydC5jb25jYXQocGFyYW1OYW1lKS5jb25jYXQodGhpcy5wYXJhbUVuZCksIHBhcmFtVmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgV0FSTklORzogU2VhcmNoZWQgcGFyYW0gXCIke3BhcmFtTmFtZX1cIiB3YXMgbm90IGZvdW5kIGluIGdpdmVuIHBhcmFtIGxpc3QgYClcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0Zyb21Vbmtub3duKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { InitializeModuleGuard } from '../services/initialize-module-guard.service';
2
- export function addInitializeModuleGuard(routes, initializeModuleGuard = InitializeModuleGuard) {
3
- return routes.map((r) => {
4
- if (r.redirectTo) {
5
- return r;
6
- }
7
- const route = {
8
- canActivate: [],
9
- ...r,
10
- };
11
- if (!route.canActivate.includes(initializeModuleGuard)) {
12
- route.canActivate.push(initializeModuleGuard);
13
- }
14
- return route;
15
- });
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWluaXRpYWxpemUtbW9kdWxlLWd1YXJkLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3V0aWxzL2FkZC1pbml0aWFsaXplLW1vZHVsZS1ndWFyZC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUVuRixNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE1BQWUsRUFDZix3QkFBc0UscUJBQXFCO0lBRTNGLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3RCLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxDQUFBO1FBQ1YsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixHQUFHLENBQUM7U0FDTCxDQUFBO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUN2RCxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQy9DLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgSW5pdGlhbGl6ZU1vZHVsZUd1YXJkIH0gZnJvbSAnLi4vc2VydmljZXMvaW5pdGlhbGl6ZS1tb2R1bGUtZ3VhcmQuc2VydmljZSdcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEluaXRpYWxpemVNb2R1bGVHdWFyZChcbiAgcm91dGVzOiBSb3V0ZVtdLFxuICBpbml0aWFsaXplTW9kdWxlR3VhcmQ6IHR5cGVvZiBJbml0aWFsaXplTW9kdWxlR3VhcmQgfCBDYW5BY3RpdmF0ZUZuID0gSW5pdGlhbGl6ZU1vZHVsZUd1YXJkXG4pOiBSb3V0ZVtdIHtcbiAgcmV0dXJuIHJvdXRlcy5tYXAoKHIpID0+IHtcbiAgICBpZiAoci5yZWRpcmVjdFRvKSB7XG4gICAgICByZXR1cm4gclxuICAgIH1cbiAgICBjb25zdCByb3V0ZSA9IHtcbiAgICAgIGNhbkFjdGl2YXRlOiBbXSxcbiAgICAgIC4uLnIsXG4gICAgfVxuICAgIGlmICghcm91dGUuY2FuQWN0aXZhdGUuaW5jbHVkZXMoaW5pdGlhbGl6ZU1vZHVsZUd1YXJkKSkge1xuICAgICAgcm91dGUuY2FuQWN0aXZhdGUucHVzaChpbml0aWFsaXplTW9kdWxlR3VhcmQpXG4gICAgfVxuICAgIHJldHVybiByb3V0ZVxuICB9KVxufSJdfQ==
@@ -1,35 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { AppConfigService } from '@onecx/angular-integration-interface';
4
- import * as i0 from "@angular/core";
5
- export function provideAppConfigServiceMock() {
6
- return [AppConfigServiceMock, { provide: AppConfigService, useExisting: AppConfigServiceMock }];
7
- }
8
- export class AppConfigServiceMock {
9
- constructor() {
10
- this.config$ = new BehaviorSubject({});
11
- }
12
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
- init(baseUrl) {
14
- return new Promise((resolve) => {
15
- const mockConfig = { key: 'config' };
16
- this.config$.next(mockConfig);
17
- resolve();
18
- });
19
- }
20
- getProperty(key) {
21
- return this.config$.getValue()?.[key];
22
- }
23
- setProperty(key, val) {
24
- this.config$.next({ ...this.config$.value, [key]: val });
25
- }
26
- getConfig() {
27
- return this.config$.getValue();
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppConfigServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppConfigServiceMock }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppConfigServiceMock, decorators: [{
33
- type: Injectable
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy1zZXJ2aWNlLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL21vY2tzL2FwcC1jb25maWctc2VydmljZS1tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTs7QUFFdkUsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQTtBQUNqRyxDQUFDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVFLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBNEIsRUFBRSxDQUFDLENBQUE7S0FzQjdEO0lBcEJDLDZEQUE2RDtJQUN0RCxJQUFJLENBQUMsT0FBZTtRQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxVQUFVLEdBQVcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUE7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDN0IsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxXQUFXLENBQUMsR0FBVztRQUM1QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDMUQsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDaEMsQ0FBQzsrR0F0QlUsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBcHBDb25maWdTZXJ2aWNlTW9jaygpIHtcbiAgcmV0dXJuIFtBcHBDb25maWdTZXJ2aWNlTW9jaywgeyBwcm92aWRlOiBBcHBDb25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogQXBwQ29uZmlnU2VydmljZU1vY2sgfV1cbn1cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBDb25maWdTZXJ2aWNlTW9jayB7XG4gIGNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0+KHt9KVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHVibGljIGluaXQoYmFzZVVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBjb25zdCBtb2NrQ29uZmlnOiBDb25maWcgPSB7IGtleTogJ2NvbmZpZycgfVxuICAgICAgdGhpcy5jb25maWckLm5leHQobW9ja0NvbmZpZylcbiAgICAgIHJlc29sdmUoKVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvcGVydHkoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZyQuZ2V0VmFsdWUoKT8uW2tleV1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpZyQubmV4dCh7IC4uLnRoaXMuY29uZmlnJC52YWx1ZSwgW2tleV06IHZhbCB9KVxuICB9XG5cbiAgcHVibGljIGdldENvbmZpZygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWckLmdldFZhbHVlKClcbiAgfVxufVxuIl19
@@ -1,45 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- // eslint-disable-next-line
3
- import { AppStateService } from '@onecx/angular-integration-interface';
4
- import { FakeTopic } from './fake-topic';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @deprecated use provideAppStateServiceMock()
8
- */
9
- export function provideAppServiceMock() {
10
- return provideAppStateServiceMock();
11
- }
12
- export function provideAppStateServiceMock() {
13
- return [AppStateServiceMock, { provide: AppStateService, useExisting: AppStateServiceMock }];
14
- }
15
- export class AppStateServiceMock {
16
- constructor() {
17
- this.globalError$ = new FakeTopic();
18
- this.globalLoading$ = new FakeTopic(false);
19
- this.currentMfe$ = new FakeTopic({ mountPath: '/', remoteBaseUrl: '.', baseHref: '/', shellName: 'test', appId: 'test', productName: 'test' });
20
- this.currentPage$ = new FakeTopic(undefined);
21
- this.currentPortal$ = new FakeTopic({
22
- baseUrl: '/',
23
- microfrontendRegistrations: [],
24
- portalName: 'Test portal',
25
- workspaceName: 'Test portal',
26
- });
27
- this.currentWorkspace$ = new FakeTopic({
28
- baseUrl: '/',
29
- microfrontendRegistrations: [],
30
- portalName: 'Test workspace',
31
- workspaceName: 'Test workspace',
32
- });
33
- this.currentLocation$ = new FakeTopic({
34
- url: '/',
35
- isFirst: true,
36
- });
37
- this.isAuthenticated$ = new FakeTopic(null);
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppStateServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppStateServiceMock }); }
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppStateServiceMock, decorators: [{
43
- type: Injectable
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLXNlcnZpY2UtbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UvbW9ja3MvYXBwLXN0YXRlLXNlcnZpY2UtbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLDJCQUEyQjtBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sMEJBQTBCLEVBQUUsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQjtJQUN4QyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7QUFDOUYsQ0FBQztBQUdELE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFRSxpQkFBWSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUE7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQyxnQkFBVyxHQUFHLElBQUksU0FBUyxDQUFVLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO1FBQ2xKLGlCQUFZLEdBQUcsSUFBSSxTQUFTLENBQXVCLFNBQVMsQ0FBQyxDQUFBO1FBQzdELG1CQUFjLEdBQUcsSUFBSSxTQUFTLENBQVk7WUFDeEMsT0FBTyxFQUFFLEdBQUc7WUFDWiwwQkFBMEIsRUFBRSxFQUFFO1lBQzlCLFVBQVUsRUFBRSxhQUFhO1lBQ3pCLGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUMsQ0FBQTtRQUNGLHNCQUFpQixHQUFHLElBQUksU0FBUyxDQUFZO1lBQzNDLE9BQU8sRUFBRSxHQUFHO1lBQ1osMEJBQTBCLEVBQUUsRUFBRTtZQUM5QixVQUFVLEVBQUUsZ0JBQWdCO1lBQzVCLGFBQWEsRUFBRSxnQkFBZ0I7U0FDaEMsQ0FBQyxDQUFBO1FBQ0YscUJBQWdCLEdBQUcsSUFBSSxTQUFTLENBQThCO1lBQzVELEdBQUcsRUFBRSxHQUFHO1lBQ1IsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUE7UUFDRixxQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBTyxJQUFJLENBQUMsQ0FBQTtLQUM3QzsrR0F0QlksbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEN1cnJlbnRMb2NhdGlvblRvcGljUGF5bG9hZCwgTWZlSW5mbywgUGFnZUluZm8sIFdvcmtzcGFjZSB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IEZha2VUb3BpYyB9IGZyb20gJy4vZmFrZS10b3BpYydcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcFNlcnZpY2VNb2NrKCkge1xuICByZXR1cm4gcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKSB7XG4gIHJldHVybiBbQXBwU3RhdGVTZXJ2aWNlTW9jaywgeyBwcm92aWRlOiBBcHBTdGF0ZVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBBcHBTdGF0ZVNlcnZpY2VNb2NrIH1dXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBTdGF0ZVNlcnZpY2VNb2NrIHtcbiAgZ2xvYmFsRXJyb3IkID0gbmV3IEZha2VUb3BpYygpXG4gIGdsb2JhbExvYWRpbmckID0gbmV3IEZha2VUb3BpYyhmYWxzZSlcbiAgY3VycmVudE1mZSQgPSBuZXcgRmFrZVRvcGljPE1mZUluZm8+KHsgbW91bnRQYXRoOiAnLycsIHJlbW90ZUJhc2VVcmw6ICcuJywgYmFzZUhyZWY6ICcvJywgc2hlbGxOYW1lOiAndGVzdCcsIGFwcElkOiAndGVzdCcsIHByb2R1Y3ROYW1lOiAndGVzdCcgfSlcbiAgY3VycmVudFBhZ2UkID0gbmV3IEZha2VUb3BpYzxQYWdlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjdXJyZW50UG9ydGFsJCA9IG5ldyBGYWtlVG9waWM8V29ya3NwYWNlPih7XG4gICAgYmFzZVVybDogJy8nLFxuICAgIG1pY3JvZnJvbnRlbmRSZWdpc3RyYXRpb25zOiBbXSxcbiAgICBwb3J0YWxOYW1lOiAnVGVzdCBwb3J0YWwnLFxuICAgIHdvcmtzcGFjZU5hbWU6ICdUZXN0IHBvcnRhbCcsXG4gIH0pXG4gIGN1cnJlbnRXb3Jrc3BhY2UkID0gbmV3IEZha2VUb3BpYzxXb3Jrc3BhY2U+KHtcbiAgICBiYXNlVXJsOiAnLycsXG4gICAgbWljcm9mcm9udGVuZFJlZ2lzdHJhdGlvbnM6IFtdLFxuICAgIHBvcnRhbE5hbWU6ICdUZXN0IHdvcmtzcGFjZScsXG4gICAgd29ya3NwYWNlTmFtZTogJ1Rlc3Qgd29ya3NwYWNlJyxcbiAgfSlcbiAgY3VycmVudExvY2F0aW9uJCA9IG5ldyBGYWtlVG9waWM8Q3VycmVudExvY2F0aW9uVG9waWNQYXlsb2FkPih7XG4gICAgdXJsOiAnLycsXG4gICAgaXNGaXJzdDogdHJ1ZSxcbiAgfSlcbiAgaXNBdXRoZW50aWNhdGVkJCA9IG5ldyBGYWtlVG9waWM8bnVsbD4obnVsbClcbn1cbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { FakeTopic } from './fake-topic';
3
- import { firstValueFrom } from 'rxjs/internal/firstValueFrom';
4
- import { ConfigurationService } from '@onecx/angular-integration-interface';
5
- import * as i0 from "@angular/core";
6
- export function provideConfigurationServiceMock() {
7
- return [ConfigurationServiceMock, { provide: ConfigurationService, useExisting: ConfigurationServiceMock }];
8
- }
9
- export class ConfigurationServiceMock {
10
- constructor() {
11
- this.config$ = new FakeTopic({});
12
- this.isInitializedPromise = new Promise((resolve) => {
13
- this.resolveInitPromise = resolve;
14
- });
15
- }
16
- init(config) {
17
- return this.config$.publish(config ?? {}).then(() => {
18
- this.resolveInitPromise();
19
- return true;
20
- });
21
- }
22
- get isInitialized() {
23
- return this.isInitializedPromise;
24
- }
25
- getProperty(key) {
26
- const config = this.config$.getValue();
27
- if (config && typeof config[key] === 'string') {
28
- return config[key];
29
- }
30
- return undefined;
31
- }
32
- async setProperty(key, val) {
33
- const currentValues = await firstValueFrom(this.config$.asObservable());
34
- currentValues[key] = val;
35
- await this.config$.publish(currentValues);
36
- }
37
- getConfig() {
38
- return this.config$.getValue();
39
- }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
41
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationServiceMock, providedIn: 'root' }); }
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationServiceMock, decorators: [{
44
- type: Injectable,
45
- args: [{ providedIn: 'root' }]
46
- }], ctorParameters: () => [] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1zZXJ2aWNlLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL21vY2tzL2NvbmZpZ3VyYXRpb24tc2VydmljZS1tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFHMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUE7O0FBRTNFLE1BQU0sVUFBVSwrQkFBK0I7SUFDN0MsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUE7QUFDN0csQ0FBQztBQUdELE1BQU0sT0FBTyx3QkFBd0I7SUFNbkM7UUFMQSxZQUFPLEdBQUcsSUFBSSxTQUFTLENBQVMsRUFBRSxDQUFDLENBQUE7UUFNakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQTtRQUNuQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxJQUFJLENBQUMsTUFBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1lBQ3pCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUE7SUFDbEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFlO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDdEMsSUFBSSxNQUFNLElBQUksT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDcEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFTSxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQy9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUN2RSxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFBO1FBQ3hCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDaEMsQ0FBQzsrR0F2Q1Usd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzs0RkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IENPTkZJR19LRVkgfSBmcm9tICdAb25lY3gvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5pbXBvcnQgeyBGYWtlVG9waWMgfSBmcm9tICcuL2Zha2UtdG9waWMnXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMvaW50ZXJuYWwvZmlyc3RWYWx1ZUZyb20nXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb25maWd1cmF0aW9uU2VydmljZU1vY2soKSB7XG4gIHJldHVybiBbQ29uZmlndXJhdGlvblNlcnZpY2VNb2NrLCB7IHByb3ZpZGU6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLCB1c2VFeGlzdGluZzogQ29uZmlndXJhdGlvblNlcnZpY2VNb2NrIH1dXG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2VNb2NrIHtcbiAgY29uZmlnJCA9IG5ldyBGYWtlVG9waWM8Q29uZmlnPih7fSlcblxuICBwcml2YXRlIHJlc29sdmVJbml0UHJvbWlzZSE6ICh2YWx1ZTogdm9pZCB8IFByb21pc2VMaWtlPHZvaWQ+KSA9PiB2b2lkXG4gIHByaXZhdGUgaXNJbml0aWFsaXplZFByb21pc2U6IFByb21pc2U8dm9pZD5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZUluaXRQcm9taXNlID0gcmVzb2x2ZVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgaW5pdChjb25maWc/OiBDb25maWcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWckLnB1Ymxpc2goY29uZmlnID8/IHt9KS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZUluaXRQcm9taXNlKClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIGdldCBpc0luaXRpYWxpemVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlzSW5pdGlhbGl6ZWRQcm9taXNlXG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvcGVydHkoa2V5OiBDT05GSUdfS0VZKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZyQuZ2V0VmFsdWUoKVxuICAgIGlmIChjb25maWcgJiYgdHlwZW9mIGNvbmZpZ1trZXldID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGNvbmZpZ1trZXldXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jb25maWckLmFzT2JzZXJ2YWJsZSgpKVxuICAgIGN1cnJlbnRWYWx1ZXNba2V5XSA9IHZhbFxuICAgIGF3YWl0IHRoaXMuY29uZmlnJC5wdWJsaXNoKGN1cnJlbnRWYWx1ZXMpXG4gIH1cblxuICBwdWJsaWMgZ2V0Q29uZmlnKCk6IENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnJC5nZXRWYWx1ZSgpXG4gIH1cbn1cbiJdfQ==