@onecx/angular-integration-interface 4.43.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/{esm2020 → esm2022}/lib/services/app-state.service.mjs +4 -4
  2. package/esm2022/lib/services/configuration.service.mjs +79 -0
  3. package/esm2022/lib/services/initialize-module-guard.service.mjs +60 -0
  4. package/esm2022/lib/services/portal-message.service.mjs +49 -0
  5. package/{esm2020 → esm2022}/lib/services/remote-components.service.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/services/theme.service.mjs +5 -5
  7. package/esm2022/lib/services/user.service.mjs +86 -0
  8. package/esm2022/lib/services/workspace.service.mjs +124 -0
  9. package/esm2022/lib/utils/add-initialize-module-guard.utils.mjs +17 -0
  10. package/{esm2020 → esm2022}/mocks/app-state-service-mock.mjs +4 -4
  11. package/esm2022/mocks/fake-topic.mjs +25 -0
  12. package/{fesm2015 → fesm2022}/onecx-angular-integration-interface-mocks.mjs +3 -3
  13. package/{fesm2015 → fesm2022}/onecx-angular-integration-interface-mocks.mjs.map +1 -1
  14. package/{fesm2020 → fesm2022}/onecx-angular-integration-interface.mjs +38 -33
  15. package/fesm2022/onecx-angular-integration-interface.mjs.map +1 -0
  16. package/lib/services/portal-message.service.d.ts +3 -1
  17. package/package.json +10 -18
  18. package/esm2020/lib/services/configuration.service.mjs +0 -79
  19. package/esm2020/lib/services/initialize-module-guard.service.mjs +0 -60
  20. package/esm2020/lib/services/portal-message.service.mjs +0 -44
  21. package/esm2020/lib/services/user.service.mjs +0 -86
  22. package/esm2020/lib/services/workspace.service.mjs +0 -124
  23. package/esm2020/lib/utils/add-initialize-module-guard.utils.mjs +0 -17
  24. package/esm2020/mocks/fake-topic.mjs +0 -25
  25. package/fesm2015/onecx-angular-integration-interface.mjs +0 -533
  26. package/fesm2015/onecx-angular-integration-interface.mjs.map +0 -1
  27. package/fesm2020/onecx-angular-integration-interface-mocks.mjs +0 -71
  28. package/fesm2020/onecx-angular-integration-interface-mocks.mjs.map +0 -1
  29. package/fesm2020/onecx-angular-integration-interface.mjs.map +0 -1
  30. /package/{esm2020 → esm2022}/index.mjs +0 -0
  31. /package/{esm2020 → esm2022}/lib/api/constants.mjs +0 -0
  32. /package/{esm2020 → esm2022}/lib/api/iauth.service.mjs +0 -0
  33. /package/{esm2020 → esm2022}/lib/api/injection-tokens.mjs +0 -0
  34. /package/{esm2020 → esm2022}/lib/model/config-key.model.mjs +0 -0
  35. /package/{esm2020 → esm2022}/mocks/index.mjs +0 -0
  36. /package/{esm2020 → esm2022}/mocks/mock-user-service.mjs +0 -0
  37. /package/{esm2020 → esm2022}/mocks/onecx-angular-integration-interface-mocks.mjs +0 -0
  38. /package/{esm2020 → esm2022}/onecx-angular-integration-interface.mjs +0 -0
@@ -35,11 +35,11 @@ export class AppStateService {
35
35
  this.currentWorkspace$.destroy();
36
36
  this.isAuthenticated$.destroy();
37
37
  }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AppStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AppStateService, providedIn: 'root' }); }
38
40
  }
39
- AppStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
40
- AppStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateService, providedIn: 'root' });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AppStateService, decorators: [{
42
42
  type: Injectable,
43
43
  args: [{ providedIn: 'root' }]
44
44
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9saWIvc2VydmljZXMvYXBwLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSw4QkFBOEIsQ0FBQTs7QUFHckMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFRSxpQkFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUNyQyxtQkFBYyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QyxnQkFBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFFbkM7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUE7UUFDckMsc0JBQWlCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFBO1FBWS9DOztXQUVHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFBO0tBVzlDO0lBeEJDOztPQUVHO0lBQ0gsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQy9CLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUE0QjtRQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFPRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDakMsQ0FBQzs7NkdBbkNVLGVBQWU7aUhBQWYsZUFBZSxjQURGLE1BQU07NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdsb2JhbEVycm9yVG9waWMsXG4gIEdsb2JhbExvYWRpbmdUb3BpYyxcbiAgQ3VycmVudE1mZVRvcGljLFxuICBDdXJyZW50UGFnZVRvcGljLFxuICBDdXJyZW50V29ya3NwYWNlVG9waWMsXG4gIElzQXV0aGVudGljYXRlZFRvcGljLFxufSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGdsb2JhbEVycm9yJCA9IG5ldyBHbG9iYWxFcnJvclRvcGljKClcbiAgZ2xvYmFsTG9hZGluZyQgPSBuZXcgR2xvYmFsTG9hZGluZ1RvcGljKClcbiAgY3VycmVudE1mZSQgPSBuZXcgQ3VycmVudE1mZVRvcGljKClcblxuICAvKipcbiAgICogVGhpcyB0b3BpYyB3aWxsIG9ubHkgZmlyZSB3aGVuIHBhZ2VJbmZvLnBhdGggbWF0Y2hlcyBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICogaWYgbm90IGl0IHdpbGwgZmlyZSB1bmRlZmluZWQuXG4gICAqL1xuICBjdXJyZW50UGFnZSQgPSBuZXcgQ3VycmVudFBhZ2VUb3BpYygpXG4gIGN1cnJlbnRXb3Jrc3BhY2UkID0gbmV3IEN1cnJlbnRXb3Jrc3BhY2VUb3BpYygpXG4gIFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBjdXJyZW50V29ya3NwYWNlJFxuICAgKi9cbiAgZ2V0IGN1cnJlbnRQb3J0YWwkKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRXb3Jrc3BhY2UkXG4gIH1cbiAgc2V0IGN1cnJlbnRQb3J0YWwkKHZhbHVlOiBDdXJyZW50V29ya3NwYWNlVG9waWMpIHtcbiAgICB0aGlzLmN1cnJlbnRXb3Jrc3BhY2UkID0gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIFRvcGljIGlzIGluaXRpYWxpemVkIGFzIHNvb24gYXMgdGhlIGF1dGhlbnRpY2F0aW9uIGlzIGRvbmVcbiAgICovXG4gIGlzQXV0aGVudGljYXRlZCQgPSBuZXcgSXNBdXRoZW50aWNhdGVkVG9waWMoKVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLmRlc3Ryb3koKVxuICAgIHRoaXMuZ2xvYmFsTG9hZGluZyQuZGVzdHJveSgpXG4gICAgdGhpcy5jdXJyZW50TWZlJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRQYWdlJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRQb3J0YWwkLmRlc3Ryb3koKVxuICAgIHRoaXMuY3VycmVudFdvcmtzcGFjZSQuZGVzdHJveSgpXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9saWIvc2VydmljZXMvYXBwLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixvQkFBb0IsR0FDckIsTUFBTSw4QkFBOEIsQ0FBQTs7QUFHckMsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFRSxpQkFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUNyQyxtQkFBYyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQTtRQUN6QyxnQkFBVyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUE7UUFFbkM7OztXQUdHO1FBQ0gsaUJBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUE7UUFDckMsc0JBQWlCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFBO1FBWS9DOztXQUVHO1FBQ0gscUJBQWdCLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFBO0tBVzlDO0lBeEJDOztPQUVHO0lBQ0gsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFBO0lBQy9CLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUE0QjtRQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFPRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDakMsQ0FBQzs4R0FuQ1UsZUFBZTtrSEFBZixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdsb2JhbEVycm9yVG9waWMsXG4gIEdsb2JhbExvYWRpbmdUb3BpYyxcbiAgQ3VycmVudE1mZVRvcGljLFxuICBDdXJyZW50UGFnZVRvcGljLFxuICBDdXJyZW50V29ya3NwYWNlVG9waWMsXG4gIElzQXV0aGVudGljYXRlZFRvcGljLFxufSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFwcFN0YXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGdsb2JhbEVycm9yJCA9IG5ldyBHbG9iYWxFcnJvclRvcGljKClcbiAgZ2xvYmFsTG9hZGluZyQgPSBuZXcgR2xvYmFsTG9hZGluZ1RvcGljKClcbiAgY3VycmVudE1mZSQgPSBuZXcgQ3VycmVudE1mZVRvcGljKClcblxuICAvKipcbiAgICogVGhpcyB0b3BpYyB3aWxsIG9ubHkgZmlyZSB3aGVuIHBhZ2VJbmZvLnBhdGggbWF0Y2hlcyBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZSxcbiAgICogaWYgbm90IGl0IHdpbGwgZmlyZSB1bmRlZmluZWQuXG4gICAqL1xuICBjdXJyZW50UGFnZSQgPSBuZXcgQ3VycmVudFBhZ2VUb3BpYygpXG4gIGN1cnJlbnRXb3Jrc3BhY2UkID0gbmV3IEN1cnJlbnRXb3Jrc3BhY2VUb3BpYygpXG4gIFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBjdXJyZW50V29ya3NwYWNlJFxuICAgKi9cbiAgZ2V0IGN1cnJlbnRQb3J0YWwkKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRXb3Jrc3BhY2UkXG4gIH1cbiAgc2V0IGN1cnJlbnRQb3J0YWwkKHZhbHVlOiBDdXJyZW50V29ya3NwYWNlVG9waWMpIHtcbiAgICB0aGlzLmN1cnJlbnRXb3Jrc3BhY2UkID0gdmFsdWVcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIFRvcGljIGlzIGluaXRpYWxpemVkIGFzIHNvb24gYXMgdGhlIGF1dGhlbnRpY2F0aW9uIGlzIGRvbmVcbiAgICovXG4gIGlzQXV0aGVudGljYXRlZCQgPSBuZXcgSXNBdXRoZW50aWNhdGVkVG9waWMoKVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZ2xvYmFsRXJyb3IkLmRlc3Ryb3koKVxuICAgIHRoaXMuZ2xvYmFsTG9hZGluZyQuZGVzdHJveSgpXG4gICAgdGhpcy5jdXJyZW50TWZlJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRQYWdlJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRQb3J0YWwkLmRlc3Ryb3koKVxuICAgIHRoaXMuY3VycmVudFdvcmtzcGFjZSQuZGVzdHJveSgpXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
+ import { firstValueFrom } from 'rxjs';
4
+ import { ConfigurationTopic } from '@onecx/integration-interface';
5
+ import { APP_CONFIG } from '../api/injection-tokens';
6
+ import { CONFIG_KEY } from '../model/config-key.model';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ export class ConfigurationService {
10
+ constructor(http, defaultConfig) {
11
+ this.http = http;
12
+ this.defaultConfig = defaultConfig;
13
+ this.config$ = new ConfigurationTopic();
14
+ }
15
+ ngOnDestroy() {
16
+ this.config$.destroy();
17
+ }
18
+ init() {
19
+ return new Promise((resolve, reject) => {
20
+ const skipRemoteConfigLoad = this.defaultConfig && this.defaultConfig['skipRemoteConfigLoad'];
21
+ let loadConfigPromise;
22
+ const inlinedConfig = window['APP_CONFIG'];
23
+ if (inlinedConfig) {
24
+ console.log(`ENV resolved from injected config`);
25
+ loadConfigPromise = Promise.resolve(inlinedConfig);
26
+ }
27
+ else {
28
+ if (skipRemoteConfigLoad) {
29
+ console.log('📢 TKA001: Remote config load is disabled. To enable it, remove the "skipRemoteConfigLoad" key in your environment.json');
30
+ loadConfigPromise = Promise.resolve(this.defaultConfig || {});
31
+ }
32
+ else {
33
+ loadConfigPromise = firstValueFrom(this.http.get((this.defaultConfig && this.defaultConfig['remoteConfigURL']) || 'assets/env.json'));
34
+ }
35
+ }
36
+ loadConfigPromise
37
+ .then(async (config) => {
38
+ if (config) {
39
+ await this.config$.publish({ ...this.defaultConfig, ...config }).then(() => {
40
+ resolve(true);
41
+ });
42
+ }
43
+ })
44
+ .catch((e) => {
45
+ console.log(`Failed to load env configuration`);
46
+ reject(e);
47
+ });
48
+ });
49
+ }
50
+ get isInitialized() {
51
+ return this.config$.isInitialized;
52
+ }
53
+ getProperty(key) {
54
+ if (!Object.values(CONFIG_KEY).includes(key)) {
55
+ console.error('Invalid config key ', key);
56
+ }
57
+ return this.config$.getValue()?.[key];
58
+ }
59
+ async setProperty(key, val) {
60
+ const currentValues = await firstValueFrom(this.config$.asObservable());
61
+ currentValues[key] = val;
62
+ await this.config$.publish(currentValues);
63
+ }
64
+ getConfig() {
65
+ return this.config$.getValue();
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }, { token: APP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
68
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ConfigurationService, providedIn: 'root' }); }
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ConfigurationService, decorators: [{
71
+ type: Injectable,
72
+ args: [{ providedIn: 'root' }]
73
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
74
+ type: Optional
75
+ }, {
76
+ type: Inject,
77
+ args: [APP_CONFIG]
78
+ }] }] });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckMsT0FBTyxFQUFVLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7O0FBR3RELE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFDVSxJQUFnQixFQUNnQixhQUF5QztRQUR6RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2dCLGtCQUFhLEdBQWIsYUFBYSxDQUE0QjtRQUpuRixZQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO0lBSy9CLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRU0sSUFBSTtRQUNULE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUM3RixJQUFJLGlCQUFrQyxDQUFBO1lBRXRDLE1BQU0sYUFBYSxHQUFJLE1BQWlELENBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO2dCQUNoRCxpQkFBaUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQ3BELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLG9CQUFvQixFQUFFLENBQUM7b0JBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQ1QseUhBQXlILENBQzFILENBQUE7b0JBQ0QsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUMvRCxDQUFDO3FCQUFNLENBQUM7b0JBQ04saUJBQWlCLEdBQUcsY0FBYyxDQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FDMUcsQ0FBQTtnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELGlCQUFpQjtpQkFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyQixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQ3pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtvQkFDZixDQUFDLENBQUMsQ0FBQTtnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtnQkFDL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ1gsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFBO0lBQ25DLENBQUM7SUFFTSxXQUFXLENBQUMsR0FBZTtRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUMvQyxNQUFNLGFBQWEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUE7UUFDdkUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQTtRQUN4QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7OEdBcEVVLG9CQUFvQiw0Q0FLVCxVQUFVO2tIQUxyQixvQkFBb0IsY0FEUCxNQUFNOzsyRkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTTdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDb25maWcsIENvbmZpZ3VyYXRpb25Ub3BpYyB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5pbXBvcnQgeyBBUFBfQ09ORklHIH0gZnJvbSAnLi4vYXBpL2luamVjdGlvbi10b2tlbnMnXG5pbXBvcnQgeyBDT05GSUdfS0VZIH0gZnJvbSAnLi4vbW9kZWwvY29uZmlnLWtleS5tb2RlbCdcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbmZpZyQgPSBuZXcgQ29uZmlndXJhdGlvblRvcGljKClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfQ09ORklHKSBwcml2YXRlIGRlZmF1bHRDb25maWc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9XG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZyQuZGVzdHJveSgpXG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc2tpcFJlbW90ZUNvbmZpZ0xvYWQgPSB0aGlzLmRlZmF1bHRDb25maWcgJiYgdGhpcy5kZWZhdWx0Q29uZmlnWydza2lwUmVtb3RlQ29uZmlnTG9hZCddXG4gICAgICBsZXQgbG9hZENvbmZpZ1Byb21pc2U6IFByb21pc2U8Q29uZmlnPlxuXG4gICAgICBjb25zdCBpbmxpbmVkQ29uZmlnID0gKHdpbmRvdyBhcyB0eXBlb2Ygd2luZG93ICYgeyBBUFBfQ09ORklHOiBDb25maWcgfSlbJ0FQUF9DT05GSUcnXVxuICAgICAgaWYgKGlubGluZWRDb25maWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coYEVOViByZXNvbHZlZCBmcm9tIGluamVjdGVkIGNvbmZpZ2ApXG4gICAgICAgIGxvYWRDb25maWdQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGlubGluZWRDb25maWcpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2tpcFJlbW90ZUNvbmZpZ0xvYWQpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICfwn5OiIFRLQTAwMTogUmVtb3RlIGNvbmZpZyBsb2FkIGlzIGRpc2FibGVkLiBUbyBlbmFibGUgaXQsIHJlbW92ZSB0aGUgXCJza2lwUmVtb3RlQ29uZmlnTG9hZFwiIGtleSBpbiB5b3VyIGVudmlyb25tZW50Lmpzb24nXG4gICAgICAgICAgKVxuICAgICAgICAgIGxvYWRDb25maWdQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMuZGVmYXVsdENvbmZpZyB8fCB7fSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2FkQ29uZmlnUHJvbWlzZSA9IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5odHRwLmdldDxDb25maWc+KCh0aGlzLmRlZmF1bHRDb25maWcgJiYgdGhpcy5kZWZhdWx0Q29uZmlnWydyZW1vdGVDb25maWdVUkwnXSkgfHwgJ2Fzc2V0cy9lbnYuanNvbicpXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGxvYWRDb25maWdQcm9taXNlXG4gICAgICAgIC50aGVuKGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpZyQucHVibGlzaCh7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBsb2FkIGVudiBjb25maWd1cmF0aW9uYClcbiAgICAgICAgICByZWplY3QoZSlcbiAgICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgZ2V0IGlzSW5pdGlhbGl6ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnJC5pc0luaXRpYWxpemVkXG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvcGVydHkoa2V5OiBDT05GSUdfS0VZKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIU9iamVjdC52YWx1ZXMoQ09ORklHX0tFWSkuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBjb25maWcga2V5ICcsIGtleSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnJC5nZXRWYWx1ZSgpPy5ba2V5XVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWw6IHN0cmluZykge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmNvbmZpZyQuYXNPYnNlcnZhYmxlKCkpXG4gICAgY3VycmVudFZhbHVlc1trZXldID0gdmFsXG4gICAgYXdhaXQgdGhpcy5jb25maWckLnB1Ymxpc2goY3VycmVudFZhbHVlcylcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWcoKTogQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWckLmdldFZhbHVlKClcbiAgfVxufVxuIl19
@@ -0,0 +1,60 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import { filter, from, isObservable, map, mergeMap, of, tap, zip } from 'rxjs';
4
+ import { AppStateService } from './app-state.service';
5
+ import { ConfigurationService } from './configuration.service';
6
+ import { UserService } from './user.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngx-translate/core";
9
+ import * as i2 from "./configuration.service";
10
+ import * as i3 from "./app-state.service";
11
+ import * as i4 from "./user.service";
12
+ export class InitializeModuleGuard {
13
+ constructor(translateService, configService, appStateService, userService) {
14
+ this.translateService = translateService;
15
+ this.configService = configService;
16
+ this.appStateService = appStateService;
17
+ this.userService = userService;
18
+ this.SUPPORTED_LANGS = ['en', 'de'];
19
+ this.DEFAULT_LANG = 'en';
20
+ }
21
+ canActivate(_route, _state) {
22
+ console.time('InitializeModuleGuard');
23
+ return zip([
24
+ this.loadTranslations(),
25
+ from(this.configService.isInitialized),
26
+ from(this.userService.isInitialized),
27
+ from(this.appStateService.currentWorkspace$.isInitialized),
28
+ ]).pipe(tap(() => {
29
+ console.timeEnd('InitializeModuleGuard');
30
+ }), map(() => true));
31
+ }
32
+ getBestMatchLanguage(lang) {
33
+ if (this.SUPPORTED_LANGS.includes(lang)) {
34
+ return lang;
35
+ }
36
+ else {
37
+ console.log(`${lang} is not supported. Using ${this.DEFAULT_LANG} as a fallback.`);
38
+ }
39
+ return this.DEFAULT_LANG;
40
+ }
41
+ loadTranslations() {
42
+ return this.userService.lang$.pipe(filter((v) => v !== undefined), mergeMap((lang) => {
43
+ const bestMatchLang = this.getBestMatchLanguage(lang);
44
+ return this.translateService.use(bestMatchLang);
45
+ }), mergeMap(() => of(true)));
46
+ }
47
+ toObservable(canActivateResult) {
48
+ if (isObservable(canActivateResult)) {
49
+ return canActivateResult;
50
+ }
51
+ return from(Promise.resolve(canActivateResult));
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: InitializeModuleGuard, deps: [{ token: i1.TranslateService }, { token: i2.ConfigurationService }, { token: i3.AppStateService }, { token: i4.UserService }], target: i0.ɵɵFactoryTarget.Injectable }); }
54
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: InitializeModuleGuard, providedIn: 'any' }); }
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: InitializeModuleGuard, decorators: [{
57
+ type: Injectable,
58
+ args: [{ providedIn: 'any' }]
59
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.ConfigurationService }, { type: i3.AppStateService }, { type: i4.UserService }] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS1tb2R1bGUtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9pbml0aWFsaXplLW1vZHVsZS1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRzdDLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFDWSxnQkFBa0MsRUFDbEMsYUFBbUMsRUFDbkMsZUFBZ0MsRUFDaEMsV0FBd0I7UUFIeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTjVCLG9CQUFlLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDOUIsaUJBQVksR0FBRyxJQUFJLENBQUE7SUFNeEIsQ0FBQztJQUVKLFdBQVcsQ0FDVCxNQUE4QixFQUM5QixNQUEyQjtRQUUzQixPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDckMsT0FBTyxHQUFHLENBQUM7WUFDVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7U0FDM0QsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQTtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksNEJBQTRCLElBQUksQ0FBQyxZQUFZLGlCQUFpQixDQUFDLENBQUE7UUFDcEYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQTtJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxFQUM5QixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBYyxDQUFDLENBQUE7WUFDL0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFUyxZQUFZLENBQ3BCLGlCQUFpRztRQUVqRyxJQUFJLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxpQkFBaUIsQ0FBQTtRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7SUFDakQsQ0FBQzs4R0F2RFUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FEUixLQUFLOzsyRkFDbEIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IGZpbHRlciwgZnJvbSwgaXNPYnNlcnZhYmxlLCBtYXAsIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFwLCB6aXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdhbnknIH0pXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6ZU1vZHVsZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBwcml2YXRlIFNVUFBPUlRFRF9MQU5HUyA9IFsnZW4nLCAnZGUnXVxuICBwcml2YXRlIERFRkFVTFRfTEFORyA9ICdlbidcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlXG4gICkge31cblxuICBjYW5BY3RpdmF0ZShcbiAgICBfcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgX3N0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgY29uc29sZS50aW1lKCdJbml0aWFsaXplTW9kdWxlR3VhcmQnKVxuICAgIHJldHVybiB6aXAoW1xuICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb25zKCksXG4gICAgICBmcm9tKHRoaXMuY29uZmlnU2VydmljZS5pc0luaXRpYWxpemVkKSxcbiAgICAgIGZyb20odGhpcy51c2VyU2VydmljZS5pc0luaXRpYWxpemVkKSxcbiAgICAgIGZyb20odGhpcy5hcHBTdGF0ZVNlcnZpY2UuY3VycmVudFdvcmtzcGFjZSQuaXNJbml0aWFsaXplZCksXG4gICAgXSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUudGltZUVuZCgnSW5pdGlhbGl6ZU1vZHVsZUd1YXJkJylcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKVxuICB9XG5cbiAgZ2V0QmVzdE1hdGNoTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuU1VQUE9SVEVEX0xBTkdTLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICByZXR1cm4gbGFuZ1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgJHtsYW5nfSBpcyBub3Qgc3VwcG9ydGVkLiBVc2luZyAke3RoaXMuREVGQVVMVF9MQU5HfSBhcyBhIGZhbGxiYWNrLmApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLkRFRkFVTFRfTEFOR1xuICB9XG5cbiAgbG9hZFRyYW5zbGF0aW9ucygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5sYW5nJC5waXBlKFxuICAgICAgZmlsdGVyKCh2KSA9PiB2ICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWVyZ2VNYXAoKGxhbmcpID0+IHtcbiAgICAgICAgY29uc3QgYmVzdE1hdGNoTGFuZyA9IHRoaXMuZ2V0QmVzdE1hdGNoTGFuZ3VhZ2UobGFuZyBhcyBzdHJpbmcpXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGJlc3RNYXRjaExhbmcpXG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IG9mKHRydWUpKVxuICAgIClcbiAgfVxuXG4gIHByb3RlY3RlZCB0b09ic2VydmFibGUoXG4gICAgY2FuQWN0aXZhdGVSZXN1bHQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZVxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShjYW5BY3RpdmF0ZVJlc3VsdCkpIHtcbiAgICAgIHJldHVybiBjYW5BY3RpdmF0ZVJlc3VsdFxuICAgIH1cbiAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUoY2FuQWN0aXZhdGVSZXN1bHQpKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,49 @@
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.0.5", ngImport: i0, type: PortalMessageService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: PortalMessageService, providedIn: 'any' }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: PortalMessageService, decorators: [{
46
+ type: Injectable,
47
+ args: [{ providedIn: 'any' }]
48
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLW1lc3NhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9wb3J0YWwtbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTs7O0FBbUIzRCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRXRELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO0lBRjRCLENBQUM7SUFJMUQsT0FBTyxDQUFDLEdBQVk7UUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFZO1FBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFZO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRU8sYUFBYSxDQUFDLFFBQWdCLEVBQUUsR0FBWTtRQUNsRCxhQUFhLENBQUM7WUFDWixHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDO1lBQ3ZHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUMvRixDQUFDO2FBQ0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBVyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BCLEdBQUcsR0FBRztnQkFDTixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsTUFBTSxFQUFFLGlCQUFpQjthQUMxQixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN6QixDQUFDOzhHQXZDVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQURQLEtBQUs7OzJGQUNsQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZmlyc3QsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE1lc3NhZ2VUb3BpYyB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2UgPSB7XG4gIHN1bW1hcnlLZXk/OiBzdHJpbmdcbiAgc3VtbWFyeVBhcmFtZXRlcnM/OiBvYmplY3RcbiAgZGV0YWlsS2V5Pzogc3RyaW5nXG4gIGRldGFpbFBhcmFtZXRlcnM/OiBvYmplY3RcbiAgaWQ/OiBhbnlcbiAga2V5Pzogc3RyaW5nXG4gIGxpZmU/OiBudW1iZXJcbiAgc3RpY2t5PzogYm9vbGVhblxuICBjbG9zYWJsZT86IGJvb2xlYW5cbiAgZGF0YT86IGFueVxuICBpY29uPzogc3RyaW5nXG4gIGNvbnRlbnRTdHlsZUNsYXNzPzogc3RyaW5nXG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmdcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAnYW55JyB9KVxuZXhwb3J0IGNsYXNzIFBvcnRhbE1lc3NhZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIG1lc3NhZ2UkID0gbmV3IE1lc3NhZ2VUb3BpYygpXG5cbiAgc3VjY2Vzcyhtc2c6IE1lc3NhZ2UpIHtcbiAgICB0aGlzLmFkZFRyYW5zbGF0ZWQoJ3N1Y2Nlc3MnLCBtc2cpXG4gIH1cblxuICBpbmZvKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMuYWRkVHJhbnNsYXRlZCgnaW5mbycsIG1zZylcbiAgfVxuXG4gIGVycm9yKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMuYWRkVHJhbnNsYXRlZCgnZXJyb3InLCBtc2cpXG4gIH1cblxuICB3YXJuaW5nKG1zZzogTWVzc2FnZSkge1xuICAgIHRoaXMuYWRkVHJhbnNsYXRlZCgnd2FybmluZycsIG1zZylcbiAgfVxuXG4gIHByaXZhdGUgYWRkVHJhbnNsYXRlZChzZXZlcml0eTogc3RyaW5nLCBtc2c6IE1lc3NhZ2UpIHtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIG1zZy5zdW1tYXJ5S2V5ID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChtc2cuc3VtbWFyeUtleSB8fCAnJywgbXNnLnN1bW1hcnlQYXJhbWV0ZXJzKSA6IG9mKHVuZGVmaW5lZCksXG4gICAgICBtc2cuZGV0YWlsS2V5ID8gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChtc2cuZGV0YWlsS2V5LCBtc2cuZGV0YWlsUGFyYW1ldGVycykgOiBvZih1bmRlZmluZWQpLFxuICAgIF0pXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoW3N1bW1hcnlUcmFuc2xhdGlvbiwgZGV0YWlsVHJhbnNsYXRpb25dOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICB0aGlzLm1lc3NhZ2UkLnB1Ymxpc2goe1xuICAgICAgICAgIC4uLm1zZyxcbiAgICAgICAgICBzZXZlcml0eTogc2V2ZXJpdHksXG4gICAgICAgICAgc3VtbWFyeTogc3VtbWFyeVRyYW5zbGF0aW9uLFxuICAgICAgICAgIGRldGFpbDogZGV0YWlsVHJhbnNsYXRpb24sXG4gICAgICAgIH0pXG4gICAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlJC5kZXN0cm95KClcbiAgfVxufVxuIl19
@@ -8,11 +8,11 @@ export class RemoteComponentsService {
8
8
  ngOnDestroy() {
9
9
  this.remoteComponents$.destroy();
10
10
  }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: RemoteComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: RemoteComponentsService, providedIn: 'root' }); }
11
13
  }
12
- RemoteComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
13
- RemoteComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, providedIn: 'root' });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoteComponentsService, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: RemoteComponentsService, decorators: [{
15
15
  type: Injectable,
16
16
  args: [{ providedIn: 'root' }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbXBvbmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9yZW1vdGUtY29tcG9uZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUE7O0FBR3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxzQkFBaUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUE7S0FLaEQ7SUFIQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xDLENBQUM7O3FIQUxVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs0RkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZW1vdGVDb21wb25lbnRzVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbXBvbmVudHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVtb3RlQ29tcG9uZW50cyQgPSBuZXcgUmVtb3RlQ29tcG9uZW50c1RvcGljKClcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW90ZUNvbXBvbmVudHMkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNvbXBvbmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9yZW1vdGUtY29tcG9uZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUE7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUE7O0FBR3BFLE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxzQkFBaUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUE7S0FLaEQ7SUFIQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xDLENBQUM7OEdBTFUsdUJBQXVCO2tIQUF2Qix1QkFBdUIsY0FEVixNQUFNOzsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBSZW1vdGVDb21wb25lbnRzVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbXBvbmVudHNTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVtb3RlQ29tcG9uZW50cyQgPSBuZXcgUmVtb3RlQ29tcG9uZW50c1RvcGljKClcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW90ZUNvbXBvbmVudHMkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
@@ -38,11 +38,11 @@ export class ThemeService {
38
38
  ngOnDestroy() {
39
39
  this.currentTheme$.destroy();
40
40
  }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", 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.0.5", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
41
43
  }
42
- ThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, deps: [{ token: i1.ConfigurationService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
43
- ThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, providedIn: 'root' });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ThemeService, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: ThemeService, decorators: [{
45
45
  type: Injectable,
46
46
  args: [{ providedIn: 'root' }]
47
- }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.HttpClient }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7Ozs7QUFFdEQsTUFBTSxxQkFBcUIsR0FBRyxxQ0FBcUMsQ0FBQTtBQUduRSxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUFvQixhQUFtQyxFQUFVLElBQWdCO1FBQTdELGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFIakYsY0FBUyxHQUFHLGNBQWMsQ0FBQTtRQUMxQixrQkFBYSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtJQUU2QyxDQUFDO0lBRXJGLFlBQVksQ0FBQyxPQUFlO1FBQzFCLE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsSUFBSSxxQkFBcUIsQ0FBQTtRQUNsRyxPQUFPLEdBQUcsY0FBYyxXQUFXLE9BQU8sSUFBSSxPQUFPLFVBQVUsQ0FBQTtJQUNqRSxDQUFDO0lBRU0saUJBQWlCLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0YsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDaEQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2hELFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFBO2lCQUM5RDtZQUNILENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDOUIsQ0FBQzs7MEdBbENVLFlBQVk7OEdBQVosWUFBWSxjQURDLE1BQU07NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGZyb20sIG1hcCwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ3VycmVudFRoZW1lVG9waWMsIFRoZW1lIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLnNlcnZpY2UnXG5pbXBvcnQgeyBDT05GSUdfS0VZIH0gZnJvbSAnLi4vbW9kZWwvY29uZmlnLWtleS5tb2RlbCdcblxuY29uc3QgZGVmYXVsdFRoZW1lU2VydmVyVXJsID0gJ2h0dHA6Ly9wb3J0YWwtdGhlbWUtbWFuYWdlbWVudDo4MDgwJ1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRoZW1lU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGJhc2VVcmxWMSA9ICcuL3BvcnRhbC1hcGknXG4gIGN1cnJlbnRUaGVtZSQgPSBuZXcgQ3VycmVudFRoZW1lVG9waWMoKVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICBnZXRUaGVtZUhyZWYodGhlbWVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0aGVtZVNlcnZlclVybCA9XG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0UHJvcGVydHkoQ09ORklHX0tFWS5US0lUX1BPUlRBTF9USEVNRV9TRVJWRVJfVVJMKSB8fCBkZWZhdWx0VGhlbWVTZXJ2ZXJVcmxcbiAgICByZXR1cm4gYCR7dGhlbWVTZXJ2ZXJVcmx9L3RoZW1lcy8ke3RoZW1lSWR9LyR7dGhlbWVJZH0ubWluLmNzc2BcbiAgfVxuXG4gIHB1YmxpYyBsb2FkQW5kQXBwbHlUaGVtZSh0aGVtZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRoZW1lPihgJHt0aGlzLmJhc2VVcmxWMX0vaW50ZXJuYWwvdGhlbWVzLyR7ZW5jb2RlVVJJKHRoZW1lTmFtZSl9YCkucGlwZShcbiAgICAgIG1lcmdlTWFwKCh0aGVtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmFwcGx5KHRoZW1lKSkucGlwZShtYXAoKCkgPT4gdGhlbWUpKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYXBwbHkodGhlbWU6IFRoZW1lKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5sb2coYPCfjqggQXBwbHlpbmcgdGhlbWU6ICR7dGhlbWUubmFtZX1gKVxuICAgIGF3YWl0IHRoaXMuY3VycmVudFRoZW1lJC5wdWJsaXNoKHRoZW1lKVxuICAgIGlmICh0aGVtZS5wcm9wZXJ0aWVzKSB7XG4gICAgICBPYmplY3QudmFsdWVzKHRoZW1lLnByb3BlcnRpZXMpLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGdyb3VwKSkge1xuICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShgLS0ke2tleX1gLCB2YWx1ZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRUaGVtZSQuZGVzdHJveSgpXG4gIH1cbn1cbiJdfQ==
47
+ }], ctorParameters: () => [{ type: i1.ConfigurationService }, { type: i2.HttpClient }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQVMsTUFBTSw4QkFBOEIsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7Ozs7QUFFdEQsTUFBTSxxQkFBcUIsR0FBRyxxQ0FBcUMsQ0FBQTtBQUduRSxNQUFNLE9BQU8sWUFBWTtJQUl2QixZQUFvQixhQUFtQyxFQUFVLElBQWdCO1FBQTdELGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFIakYsY0FBUyxHQUFHLGNBQWMsQ0FBQTtRQUMxQixrQkFBYSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQTtJQUU2QyxDQUFDO0lBRXJGLFlBQVksQ0FBQyxPQUFlO1FBQzFCLE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsNEJBQTRCLENBQUMsSUFBSSxxQkFBcUIsQ0FBQTtRQUNsRyxPQUFPLEdBQUcsY0FBYyxXQUFXLE9BQU8sSUFBSSxPQUFPLFVBQVUsQ0FBQTtJQUNqRSxDQUFDO0lBRU0saUJBQWlCLENBQUMsU0FBaUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxHQUFHLElBQUksQ0FBQyxTQUFTLG9CQUFvQixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDM0YsUUFBUSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBWTtRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUMvQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNqRCxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFDL0QsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUM5QixDQUFDOzhHQWxDVSxZQUFZO2tIQUFaLFlBQVksY0FEQyxNQUFNOzsyRkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZnJvbSwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDdXJyZW50VGhlbWVUb3BpYywgVGhlbWUgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSdcbmltcG9ydCB7IENPTkZJR19LRVkgfSBmcm9tICcuLi9tb2RlbC9jb25maWcta2V5Lm1vZGVsJ1xuXG5jb25zdCBkZWZhdWx0VGhlbWVTZXJ2ZXJVcmwgPSAnaHR0cDovL3BvcnRhbC10aGVtZS1tYW5hZ2VtZW50OjgwODAnXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVGhlbWVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgYmFzZVVybFYxID0gJy4vcG9ydGFsLWFwaSdcbiAgY3VycmVudFRoZW1lJCA9IG5ldyBDdXJyZW50VGhlbWVUb3BpYygpXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIGdldFRoZW1lSHJlZih0aGVtZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRoZW1lU2VydmVyVXJsID1cbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRQcm9wZXJ0eShDT05GSUdfS0VZLlRLSVRfUE9SVEFMX1RIRU1FX1NFUlZFUl9VUkwpIHx8IGRlZmF1bHRUaGVtZVNlcnZlclVybFxuICAgIHJldHVybiBgJHt0aGVtZVNlcnZlclVybH0vdGhlbWVzLyR7dGhlbWVJZH0vJHt0aGVtZUlkfS5taW4uY3NzYFxuICB9XG5cbiAgcHVibGljIGxvYWRBbmRBcHBseVRoZW1lKHRoZW1lTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VGhlbWU+KGAke3RoaXMuYmFzZVVybFYxfS9pbnRlcm5hbC90aGVtZXMvJHtlbmNvZGVVUkkodGhlbWVOYW1lKX1gKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHRoZW1lKSA9PiB7XG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMuYXBwbHkodGhlbWUpKS5waXBlKG1hcCgoKSA9PiB0aGVtZSkpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseSh0aGVtZTogVGhlbWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhg8J+OqCBBcHBseWluZyB0aGVtZTogJHt0aGVtZS5uYW1lfWApXG4gICAgYXdhaXQgdGhpcy5jdXJyZW50VGhlbWUkLnB1Ymxpc2godGhlbWUpXG4gICAgaWYgKHRoZW1lLnByb3BlcnRpZXMpIHtcbiAgICAgIE9iamVjdC52YWx1ZXModGhlbWUucHJvcGVydGllcykuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXApKSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGAtLSR7a2V5fWAsIHZhbHVlKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFRoZW1lJC5kZXN0cm95KClcbiAgfVxufVxuIl19
@@ -0,0 +1,86 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, map, filter, firstValueFrom, skip } 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.profile$
17
+ .pipe(map((profile) => this.extractPermissions(profile)), filter((permissions) => !!permissions))
18
+ .subscribe(this.permissions$);
19
+ }
20
+ ngOnDestroy() {
21
+ this.profile$.destroy();
22
+ }
23
+ hasPermission(permissionKey) {
24
+ const oldConceptResult = this.permissions$.getValue()
25
+ ? this.permissions$.getValue()?.includes(permissionKey)
26
+ : false;
27
+ const result = this.permissionsTopic$.getValue()
28
+ ? this.permissionsTopic$.getValue()?.includes(permissionKey)
29
+ : oldConceptResult;
30
+ if (!result) {
31
+ console.log(`👮‍♀️ No permission for: ${permissionKey}`);
32
+ }
33
+ return !!result;
34
+ }
35
+ determineLanguage() {
36
+ if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {
37
+ return undefined;
38
+ }
39
+ let browserLang = window.navigator.languages ? window.navigator.languages[0] : null;
40
+ browserLang = browserLang || window.navigator.language;
41
+ if (typeof browserLang === 'undefined') {
42
+ return undefined;
43
+ }
44
+ if (browserLang.indexOf('-') !== -1) {
45
+ browserLang = browserLang.split('-')[0];
46
+ }
47
+ if (browserLang.indexOf('_') !== -1) {
48
+ browserLang = browserLang.split('_')[0];
49
+ }
50
+ return browserLang;
51
+ }
52
+ extractPermissions(userProfile) {
53
+ if (userProfile) {
54
+ if (userProfile.memberships) {
55
+ const permissions = [];
56
+ userProfile.memberships.forEach((m) => {
57
+ m.roleMemberships?.forEach((r) => {
58
+ r.permissions?.forEach((p) => {
59
+ if (p) {
60
+ if (p.key !== undefined) {
61
+ permissions.push(p.key);
62
+ }
63
+ }
64
+ });
65
+ });
66
+ });
67
+ return permissions;
68
+ }
69
+ }
70
+ return null;
71
+ }
72
+ get isInitialized() {
73
+ return Promise.all([
74
+ Promise.race([this.permissionsTopic$.isInitialized, this.oldStylePermissionsInitialized]),
75
+ this.profile$.isInitialized,
76
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
77
+ ]).then(() => { });
78
+ }
79
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: UserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
80
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: UserService, providedIn: 'root' }); }
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: UserService, decorators: [{
83
+ type: Injectable,
84
+ args: [{ providedIn: 'root' }]
85
+ }], ctorParameters: () => [] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFBO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7QUFHL0MsTUFBTSxPQUFPLFdBQVc7SUFRdEI7UUFQQSxhQUFRLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFBO1FBQ2pDLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUE7UUFDaEQsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFBO1FBRTdELHNCQUFpQixHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUloRCxJQUFJLENBQUMsUUFBUTthQUNWLElBQUksQ0FDSCxHQUFHLENBQ0QsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNWLE9BQU8sQ0FBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLFlBQVksQ0FDckcsQ0FDRjthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFeEIsSUFBSSxDQUFDLDhCQUE4QixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FB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QUFLLFNBQVMsRUFBRSxDQUFDO29DQUN4QixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQ0FDekIsQ0FBQzs0QkFDSCxDQUFDO3dCQUNILENBQUMsQ0FBQyxDQUFBO29CQUNKLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFBO2dCQUNGLE9BQU8sV0FBVyxDQUFBO1lBQ3BCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQ3pGLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYTtZQUMzQixnRUFBZ0U7U0FDakUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDOzhHQS9GVSxXQUFXO2tIQUFYLFdBQVcsY0FERSxNQUFNOzsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBtYXAsIGZpbHRlciwgZmlyc3RWYWx1ZUZyb20sIHNraXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnNUb3BpYywgVXNlclByb2ZpbGUsIFVzZXJQcm9maWxlVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgREVGQVVMVF9MQU5HIH0gZnJvbSAnLi4vYXBpL2NvbnN0YW50cydcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVc2VyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb2ZpbGUkID0gbmV3IFVzZXJQcm9maWxlVG9waWMoKVxuICBwZXJtaXNzaW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSlcbiAgbGFuZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuZGV0ZXJtaW5lTGFuZ3VhZ2UoKSA/PyBERUZBVUxUX0xBTkcpXG5cbiAgcHJpdmF0ZSBwZXJtaXNzaW9uc1RvcGljJCA9IG5ldyBQZXJtaXNzaW9uc1RvcGljKClcbiAgcHJpdmF0ZSBvbGRTdHlsZVBlcm1pc3Npb25zSW5pdGlhbGl6ZWQ6IFByb21pc2U8c3RyaW5nW10+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wcm9maWxlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAocHJvZmlsZSkgPT5cbiAgICAgICAgICAgIHByb2ZpbGUuYWNjb3VudFNldHRpbmdzPy5sb2NhbGVBbmRUaW1lU2V0dGluZ3M/LmxvY2FsZSA/PyB0aGlzLmRldGVybWluZUxhbmd1YWdlKCkgPz8gREVGQVVMVF9MQU5HXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5sYW5nJClcblxuICAgIHRoaXMub2xkU3R5bGVQZXJtaXNzaW9uc0luaXRpYWxpemVkID0gZmlyc3RWYWx1ZUZyb20odGhpcy5wZXJtaXNzaW9ucyQucGlwZShza2lwKDEpKSlcbiAgICB0aGlzLnByb2ZpbGUkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChwcm9maWxlKSA9PiB0aGlzLmV4dHJhY3RQZXJtaXNzaW9ucyhwcm9maWxlKSksXG4gICAgICAgIGZpbHRlcigocGVybWlzc2lvbnMpOiBwZXJtaXNzaW9ucyBpcyBzdHJpbmdbXSA9PiAhIXBlcm1pc3Npb25zKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnBlcm1pc3Npb25zJClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucHJvZmlsZSQuZGVzdHJveSgpXG4gIH1cblxuICBoYXNQZXJtaXNzaW9uKHBlcm1pc3Npb25LZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG9sZENvbmNlcHRSZXN1bHQgPSB0aGlzLnBlcm1pc3Npb25zJC5nZXRWYWx1ZSgpXG4gICAgICA/IHRoaXMucGVybWlzc2lvbnMkLmdldFZhbHVlKCk/LmluY2x1ZGVzKHBlcm1pc3Npb25LZXkpXG4gICAgICA6IGZhbHNlXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5wZXJtaXNzaW9uc1RvcGljJC5nZXRWYWx1ZSgpXG4gICAgICA/IHRoaXMucGVybWlzc2lvbnNUb3BpYyQuZ2V0VmFsdWUoKT8uaW5jbHVkZXMocGVybWlzc2lvbktleSlcbiAgICAgIDogb2xkQ29uY2VwdFJlc3VsdFxuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGDwn5Gu4oCN4pmA77iPIE5vIHBlcm1pc3Npb24gZm9yOiAke3Blcm1pc3Npb25LZXl9YClcbiAgICB9XG4gICAgcmV0dXJuICEhcmVzdWx0XG4gIH1cblxuICBwcml2YXRlIGRldGVybWluZUxhbmd1YWdlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGxldCBicm93c2VyTGFuZzogYW55ID0gd2luZG93Lm5hdmlnYXRvci5sYW5ndWFnZXMgPyB3aW5kb3cubmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6IG51bGxcbiAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nIHx8IHdpbmRvdy5uYXZpZ2F0b3IubGFuZ3VhZ2VcblxuICAgIGlmICh0eXBlb2YgYnJvd3NlckxhbmcgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKGJyb3dzZXJMYW5nLmluZGV4T2YoJy0nKSAhPT0gLTEpIHtcbiAgICAgIGJyb3dzZXJMYW5nID0gYnJvd3Nlckxhbmcuc3BsaXQoJy0nKVswXVxuICAgIH1cblxuICAgIGlmIChicm93c2VyTGFuZy5pbmRleE9mKCdfJykgIT09IC0xKSB7XG4gICAgICBicm93c2VyTGFuZyA9IGJyb3dzZXJMYW5nLnNwbGl0KCdfJylbMF1cbiAgICB9XG5cbiAgICByZXR1cm4gYnJvd3NlckxhbmdcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFBlcm1pc3Npb25zKHVzZXJQcm9maWxlOiBVc2VyUHJvZmlsZSkge1xuICAgIGlmICh1c2VyUHJvZmlsZSkge1xuICAgICAgaWYgKHVzZXJQcm9maWxlLm1lbWJlcnNoaXBzKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdXG4gICAgICAgIHVzZXJQcm9maWxlLm1lbWJlcnNoaXBzLmZvckVhY2goKG0pID0+IHtcbiAgICAgICAgICBtLnJvbGVNZW1iZXJzaGlwcz8uZm9yRWFjaCgocikgPT4ge1xuICAgICAgICAgICAgci5wZXJtaXNzaW9ucz8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocCkge1xuICAgICAgICAgICAgICAgIGlmIChwLmtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucy5wdXNoKHAua2V5KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gcGVybWlzc2lvbnNcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGdldCBpc0luaXRpYWxpemVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICBQcm9taXNlLnJhY2UoW3RoaXMucGVybWlzc2lvbnNUb3BpYyQuaXNJbml0aWFsaXplZCwgdGhpcy5vbGRTdHlsZVBlcm1pc3Npb25zSW5pdGlhbGl6ZWRdKSxcbiAgICAgIHRoaXMucHJvZmlsZSQuaXNJbml0aWFsaXplZCxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICBdKS50aGVuKCgpID0+IHt9KVxuICB9XG59XG4iXX0=
@@ -0,0 +1,124 @@
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(appId, productName, endpointName, params = {}) {
16
+ return this.appStateService.currentWorkspace$.pipe(map((workspace) => {
17
+ const finalUrl = this.constructRouteUrl(workspace, appId, productName, endpointName, params);
18
+ return finalUrl;
19
+ }));
20
+ }
21
+ constructBaseUrlFromWorkspace(workspace) {
22
+ if (workspace.baseUrl === undefined) {
23
+ console.log('WARNING: There was no baseUrl for received workspace.');
24
+ return '';
25
+ }
26
+ return workspace.baseUrl;
27
+ }
28
+ constructRouteUrl(workspace, appId, productName, endpointName, params) {
29
+ const route = this.filterRouteFromList(workspace.routes, appId, productName);
30
+ let url = this.constructBaseUrlFromWorkspace(workspace);
31
+ if (!route) {
32
+ console.log(`WARNING: No route.baseUrl could be found for given appId "${appId}" and productName "${productName}"`);
33
+ return url;
34
+ }
35
+ if (route.baseUrl !== undefined && route.baseUrl.length > 0) {
36
+ url = route.baseUrl;
37
+ }
38
+ url = Location.joinWithSlash(url, this.constructEndpointUrl(route, endpointName, params));
39
+ return url;
40
+ }
41
+ constructEndpointUrl(route, endpointName, params) {
42
+ if (!route.endpoints) {
43
+ return '';
44
+ }
45
+ const finalEndpoint = this.dissolveEndpoint(endpointName, route.endpoints);
46
+ if (!finalEndpoint || finalEndpoint.path === undefined) {
47
+ console.log('WARNING: No endpoint or endpoint.path could be found');
48
+ return '';
49
+ }
50
+ const paramsFilled = this.fillParamsForPath(finalEndpoint.path, params);
51
+ if (paramsFilled === undefined) {
52
+ console.log('WARNING: Params could not be filled correctly');
53
+ return '';
54
+ }
55
+ return paramsFilled;
56
+ }
57
+ filterRouteFromList(routes, appId, productName) {
58
+ if (!routes) {
59
+ return undefined;
60
+ }
61
+ const productRoutes = routes.filter((route) => route.appId === appId && route.productName === productName);
62
+ if (productRoutes.length === 0) {
63
+ return undefined;
64
+ }
65
+ if (productRoutes.length > 1) {
66
+ console.log('WARNING: There were more than one route. First route has been used.');
67
+ }
68
+ return productRoutes[0];
69
+ }
70
+ dissolveEndpoint(endpointName, endpoints) {
71
+ let endpoint = endpoints.find((ep) => ep.name === endpointName);
72
+ if (!endpoint) {
73
+ return undefined;
74
+ }
75
+ while (endpoint.path?.includes(this.aliasStart)) {
76
+ const path = endpoint.path;
77
+ const startIdx = path.indexOf(this.aliasStart) + this.aliasStart.length;
78
+ const endIdx = path.lastIndexOf(this.aliasEnd);
79
+ if (endIdx <= startIdx) {
80
+ return undefined;
81
+ }
82
+ const aliasName = path.substring(startIdx, endIdx);
83
+ endpoint = endpoints.find((ep) => ep.name === aliasName);
84
+ if (!endpoint) {
85
+ return undefined;
86
+ }
87
+ }
88
+ return endpoint;
89
+ }
90
+ fillParamsForPath(path, params) {
91
+ while (path.includes(this.paramStart)) {
92
+ const paramName = path.substring(path.indexOf(this.paramStart) + this.paramStart.length, path.indexOf(this.paramEnd));
93
+ const paramValue = this.getStringFromUnknown(params[paramName]);
94
+ if (paramValue != undefined && paramValue.length > 0) {
95
+ path = path.replace(this.paramStart.concat(paramName).concat(this.paramEnd), paramValue);
96
+ }
97
+ else {
98
+ console.log(`WARNING: Searched param "${paramName}" was not found in given param list `);
99
+ return '';
100
+ }
101
+ }
102
+ return path;
103
+ }
104
+ getStringFromUnknown(value) {
105
+ if (value === null || value === undefined) {
106
+ return '';
107
+ }
108
+ else if (typeof value === 'string') {
109
+ return value;
110
+ }
111
+ else {
112
+ return String(value);
113
+ }
114
+ }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: WorkspaceService, deps: [{ token: i1.AppStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
116
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: WorkspaceService, providedIn: 'root' }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: WorkspaceService, decorators: [{
119
+ type: Injectable,
120
+ args: [{
121
+ providedIn: 'root',
122
+ }]
123
+ }], ctorParameters: () => [{ type: i1.AppStateService }] });
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9saWIvc2VydmljZXMvd29ya3NwYWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUd0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7OztBQUsxQyxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQXNCLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUw5QyxlQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLGFBQVEsR0FBRyxJQUFJLENBQUE7UUFDZixlQUFVLEdBQUcsR0FBRyxDQUFBO1FBQ2hCLGFBQVEsR0FBRyxHQUFHLENBQUE7SUFFbUMsQ0FBQztJQUUxRCxNQUFNLENBQ0osS0FBYSxFQUNiLFdBQW1CLEVBQ25CLFlBQW9CLEVBQ3BCLFNBQWtDLEVBQUU7UUFFcEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDaEQsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUM1RixPQUFPLFFBQVEsQ0FBQTtRQUNqQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVPLDZCQUE2QixDQUFDLFNBQWM7UUFDbEQsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFB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Y3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4vYXBwLXN0YXRlLnNlcnZpY2UnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgUm91dGUgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhbGlhc1N0YXJ0ID0gJ1tbJ1xuICBwcml2YXRlIGFsaWFzRW5kID0gJ11dJ1xuICBwcml2YXRlIHBhcmFtU3RhcnQgPSAneydcbiAgcHJpdmF0ZSBwYXJhbUVuZCA9ICd9J1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZSkge31cblxuICBnZXRVcmwoXG4gICAgYXBwSWQ6IHN0cmluZyxcbiAgICBwcm9kdWN0TmFtZTogc3RyaW5nLFxuICAgIGVuZHBvaW50TmFtZTogc3RyaW5nLFxuICAgIHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmFwcFN0YXRlU2VydmljZS5jdXJyZW50V29ya3NwYWNlJC5waXBlKFxuICAgICAgbWFwKCh3b3Jrc3BhY2UpID0+IHtcbiAgICAgICAgY29uc3QgZmluYWxVcmwgPSB0aGlzLmNvbnN0cnVjdFJvdXRlVXJsKHdvcmtzcGFjZSwgYXBwSWQsIHByb2R1Y3ROYW1lLCBlbmRwb2ludE5hbWUsIHBhcmFtcylcbiAgICAgICAgcmV0dXJuIGZpbmFsVXJsXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0QmFzZVVybEZyb21Xb3Jrc3BhY2Uod29ya3NwYWNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh3b3Jrc3BhY2UuYmFzZVVybCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnV0FSTklORzogVGhlcmUgd2FzIG5vIGJhc2VVcmwgZm9yIHJlY2VpdmVkIHdvcmtzcGFjZS4nKVxuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIHJldHVybiB3b3Jrc3BhY2UuYmFzZVVybFxuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RSb3V0ZVVybChcbiAgICB3b3Jrc3BhY2U6IGFueSxcbiAgICBhcHBJZDogc3RyaW5nLFxuICAgIHByb2R1Y3ROYW1lOiBzdHJpbmcsXG4gICAgZW5kcG9pbnROYW1lOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlID0gdGhpcy5maWx0ZXJSb3V0ZUZyb21MaXN0KHdvcmtzcGFjZS5yb3V0ZXMsIGFwcElkLCBwcm9kdWN0TmFtZSlcbiAgICBsZXQgdXJsID0gdGhpcy5jb25zdHJ1Y3RCYXNlVXJsRnJvbVdvcmtzcGFjZSh3b3Jrc3BhY2UpXG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBXQVJOSU5HOiBObyByb3V0ZS5iYXNlVXJsIGNvdWxkIGJlIGZvdW5kIGZvciBnaXZlbiBhcHBJZCBcIiR7YXBwSWR9XCIgYW5kIHByb2R1Y3ROYW1lIFwiJHtwcm9kdWN0TmFtZX1cImBcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHVybFxuICAgIH1cblxuICAgIGlmIChyb3V0ZS5iYXNlVXJsICE9PSB1bmRlZmluZWQgJiYgcm91dGUuYmFzZVVybC5sZW5ndGggPiAwKSB7XG4gICAgICB1cmwgPSByb3V0ZS5iYXNlVXJsXG4gICAgfVxuXG4gICAgdXJsID0gTG9jYXRpb24uam9pbldpdGhTbGFzaCh1cmwsIHRoaXMuY29uc3RydWN0RW5kcG9pbnRVcmwocm91dGUsIGVuZHBvaW50TmFtZSwgcGFyYW1zKSlcbiAgICByZXR1cm4gdXJsXG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdEVuZHBvaW50VXJsKHJvdXRlOiBhbnksIGVuZHBvaW50TmFtZTogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHtcbiAgICBpZiAoIXJvdXRlLmVuZHBvaW50cykge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIGNvbnN0IGZpbmFsRW5kcG9pbnQgPSB0aGlzLmRpc3NvbHZlRW5kcG9pbnQoZW5kcG9pbnROYW1lLCByb3V0ZS5lbmRwb2ludHMpXG4gICAgaWYgKCFmaW5hbEVuZHBvaW50IHx8IGZpbmFsRW5kcG9pbnQucGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmxvZygnV0FSTklORzogTm8gZW5kcG9pbnQgb3IgZW5kcG9pbnQucGF0aCBjb3VsZCBiZSBmb3VuZCcpXG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXNGaWxsZWQgPSB0aGlzLmZpbGxQYXJhbXNGb3JQYXRoKGZpbmFsRW5kcG9pbnQucGF0aCwgcGFyYW1zKVxuICAgIGlmIChwYXJhbXNGaWxsZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS5sb2coJ1dBUk5JTkc6IFBhcmFtcyBjb3VsZCBub3QgYmUgZmlsbGVkIGNvcnJlY3RseScpXG4gICAgICByZXR1cm4gJydcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zRmlsbGVkXG4gIH1cblxuICBwcml2YXRlIGZpbHRlclJvdXRlRnJvbUxpc3Qocm91dGVzOiBBcnJheTxSb3V0ZT4sIGFwcElkOiBzdHJpbmcsIHByb2R1Y3ROYW1lOiBzdHJpbmcpOiBSb3V0ZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFyb3V0ZXMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBwcm9kdWN0Um91dGVzID0gcm91dGVzLmZpbHRlcigocm91dGUpID0+IHJvdXRlLmFwcElkID09PSBhcHBJZCAmJiByb3V0ZS5wcm9kdWN0TmFtZSA9PT0gcHJvZHVjdE5hbWUpXG5cbiAgICBpZiAocHJvZHVjdFJvdXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAocHJvZHVjdFJvdXRlcy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zb2xlLmxvZygnV0FSTklORzogVGhlcmUgd2VyZSBtb3JlIHRoYW4gb25lIHJvdXRlLiBGaXJzdCByb3V0ZSBoYXMgYmVlbiB1c2VkLicpXG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2R1Y3RSb3V0ZXNbMF1cbiAgfVxuXG4gIHByaXZhdGUgZGlzc29sdmVFbmRwb2ludChlbmRwb2ludE5hbWU6IHN0cmluZywgZW5kcG9pbnRzOiBBcnJheTxFbmRwb2ludD4pOiBFbmRwb2ludCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGVuZHBvaW50ID0gZW5kcG9pbnRzLmZpbmQoKGVwKSA9PiBlcC5uYW1lID09PSBlbmRwb2ludE5hbWUpXG5cbiAgICBpZiAoIWVuZHBvaW50KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgd2hpbGUgKGVuZHBvaW50LnBhdGg/LmluY2x1ZGVzKHRoaXMuYWxpYXNTdGFydCkpIHtcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IGVuZHBvaW50LnBhdGhcbiAgICAgIGNvbnN0IHN0YXJ0SWR4ID0gcGF0aC5pbmRleE9mKHRoaXMuYWxpYXNTdGFydCkgKyB0aGlzLmFsaWFzU3RhcnQubGVuZ3RoXG4gICAgICBjb25zdCBlbmRJZHggPSBwYXRoLmxhc3RJbmRleE9mKHRoaXMuYWxpYXNFbmQpXG4gICAgICBpZiAoZW5kSWR4IDw9IHN0YXJ0SWR4KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFsaWFzTmFtZSA9IHBhdGguc3Vic3RyaW5nKHN0YXJ0SWR4LCBlbmRJZHgpXG4gICAgICBlbmRwb2ludCA9IGVuZHBvaW50cy5maW5kKChlcCkgPT4gZXAubmFtZSA9PT0gYWxpYXNOYW1lKVxuXG4gICAgICBpZiAoIWVuZHBvaW50KSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW5kcG9pbnRcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFBhcmFtc0ZvclBhdGgocGF0aDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogc3RyaW5nIHtcbiAgICB3aGlsZSAocGF0aC5pbmNsdWRlcyh0aGlzLnBhcmFtU3RhcnQpKSB7XG4gICAgICBjb25zdCBwYXJhbU5hbWUgPSBwYXRoLnN1YnN0cmluZyhcbiAgICAgICAgcGF0aC5pbmRleE9mKHRoaXMucGFyYW1TdGFydCkgKyB0aGlzLnBhcmFtU3RhcnQubGVuZ3RoLFxuICAgICAgICBwYXRoLmluZGV4T2YodGhpcy5wYXJhbUVuZClcbiAgICAgIClcbiAgICAgIGNvbnN0IHBhcmFtVmFsdWUgPSB0aGlzLmdldFN0cmluZ0Zyb21Vbmtub3duKHBhcmFtc1twYXJhbU5hbWVdKVxuICAgICAgaWYgKHBhcmFtVmFsdWUgIT0gdW5kZWZpbmVkICYmIHBhcmFtVmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMucGFyYW1TdGFydC5jb25jYXQocGFyYW1OYW1lKS5jb25jYXQodGhpcy5wYXJhbUVuZCksIHBhcmFtVmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZyhgV0FSTklORzogU2VhcmNoZWQgcGFyYW0gXCIke3BhcmFtTmFtZX1cIiB3YXMgbm90IGZvdW5kIGluIGdpdmVuIHBhcmFtIGxpc3QgYClcbiAgICAgICAgcmV0dXJuICcnXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBwcml2YXRlIGdldFN0cmluZ0Zyb21Vbmtub3duKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
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==
@@ -22,10 +22,10 @@ export class AppStateServiceMock {
22
22
  this.currentWorkspace$ = new FakeTopic({ baseUrl: '/', microfrontendRegistrations: [], portalName: 'Test workspace', workspaceName: 'Test workspace' });
23
23
  this.isAuthenticated$ = new FakeTopic(null);
24
24
  }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AppStateServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AppStateServiceMock }); }
25
27
  }
26
- AppStateServiceMock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateServiceMock, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
27
- AppStateServiceMock.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateServiceMock });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppStateServiceMock, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.5", ngImport: i0, type: AppStateServiceMock, decorators: [{
29
29
  type: Injectable
30
30
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLXNlcnZpY2UtbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UvbW9ja3MvYXBwLXN0YXRlLXNlcnZpY2UtbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLDJCQUEyQjtBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sMEJBQTBCLEVBQUUsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQjtJQUN4QyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7QUFDOUYsQ0FBQztBQUdELE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFRSxpQkFBWSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUE7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQyxnQkFBVyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDckcsaUJBQVksR0FBRyxJQUFJLFNBQVMsQ0FBdUIsU0FBUyxDQUFDLENBQUE7UUFDN0QsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDcEosc0JBQWlCLEdBQUcsSUFBSSxTQUFTLENBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtRQUM3SixxQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBTyxJQUFJLENBQUMsQ0FBQTtLQUM3Qzs7aUhBUlksbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUGFnZUluZm8sIFdvcmtzcGFjZSB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IEZha2VUb3BpYyB9IGZyb20gJy4vZmFrZS10b3BpYydcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcFNlcnZpY2VNb2NrKCkge1xuICByZXR1cm4gcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKSB7XG4gIHJldHVybiBbQXBwU3RhdGVTZXJ2aWNlTW9jaywgeyBwcm92aWRlOiBBcHBTdGF0ZVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBBcHBTdGF0ZVNlcnZpY2VNb2NrIH1dXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBTdGF0ZVNlcnZpY2VNb2NrIHtcbiAgZ2xvYmFsRXJyb3IkID0gbmV3IEZha2VUb3BpYygpXG4gIGdsb2JhbExvYWRpbmckID0gbmV3IEZha2VUb3BpYyhmYWxzZSlcbiAgY3VycmVudE1mZSQgPSBuZXcgRmFrZVRvcGljKHsgbW91bnRQYXRoOiAnLycsIHJlbW90ZUJhc2VVcmw6ICcuJywgYmFzZUhyZWY6ICcvJywgc2hlbGxOYW1lOiAndGVzdCcgfSlcbiAgY3VycmVudFBhZ2UkID0gbmV3IEZha2VUb3BpYzxQYWdlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjdXJyZW50UG9ydGFsJCA9IG5ldyBGYWtlVG9waWM8V29ya3NwYWNlPih7IGJhc2VVcmw6ICcvJywgbWljcm9mcm9udGVuZFJlZ2lzdHJhdGlvbnM6IFtdLCBwb3J0YWxOYW1lOiAnVGVzdCBwb3J0YWwnLCB3b3Jrc3BhY2VOYW1lOiAnVGVzdCBwb3J0YWwnIH0pXG4gIGN1cnJlbnRXb3Jrc3BhY2UkID0gbmV3IEZha2VUb3BpYzxXb3Jrc3BhY2U+KHsgYmFzZVVybDogJy8nLCBtaWNyb2Zyb250ZW5kUmVnaXN0cmF0aW9uczogW10sIHBvcnRhbE5hbWU6ICdUZXN0IHdvcmtzcGFjZScsIHdvcmtzcGFjZU5hbWU6ICdUZXN0IHdvcmtzcGFjZScgfSlcbiAgaXNBdXRoZW50aWNhdGVkJCA9IG5ldyBGYWtlVG9waWM8bnVsbD4obnVsbClcbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLXNlcnZpY2UtbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2UvbW9ja3MvYXBwLXN0YXRlLXNlcnZpY2UtbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLDJCQUEyQjtBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTs7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sMEJBQTBCLEVBQUUsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQjtJQUN4QyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7QUFDOUYsQ0FBQztBQUdELE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFRSxpQkFBWSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUE7UUFDOUIsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQyxnQkFBVyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDckcsaUJBQVksR0FBRyxJQUFJLFNBQVMsQ0FBdUIsU0FBUyxDQUFDLENBQUE7UUFDN0QsbUJBQWMsR0FBRyxJQUFJLFNBQVMsQ0FBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUE7UUFDcEosc0JBQWlCLEdBQUcsSUFBSSxTQUFTLENBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQTtRQUM3SixxQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBTyxJQUFJLENBQUMsQ0FBQTtLQUM3Qzs4R0FSWSxtQkFBbUI7a0hBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUGFnZUluZm8sIFdvcmtzcGFjZSB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJ0BvbmVjeC9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZSdcbmltcG9ydCB7IEZha2VUb3BpYyB9IGZyb20gJy4vZmFrZS10b3BpYydcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcFNlcnZpY2VNb2NrKCkge1xuICByZXR1cm4gcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcFN0YXRlU2VydmljZU1vY2soKSB7XG4gIHJldHVybiBbQXBwU3RhdGVTZXJ2aWNlTW9jaywgeyBwcm92aWRlOiBBcHBTdGF0ZVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBBcHBTdGF0ZVNlcnZpY2VNb2NrIH1dXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBTdGF0ZVNlcnZpY2VNb2NrIHtcbiAgZ2xvYmFsRXJyb3IkID0gbmV3IEZha2VUb3BpYygpXG4gIGdsb2JhbExvYWRpbmckID0gbmV3IEZha2VUb3BpYyhmYWxzZSlcbiAgY3VycmVudE1mZSQgPSBuZXcgRmFrZVRvcGljKHsgbW91bnRQYXRoOiAnLycsIHJlbW90ZUJhc2VVcmw6ICcuJywgYmFzZUhyZWY6ICcvJywgc2hlbGxOYW1lOiAndGVzdCcgfSlcbiAgY3VycmVudFBhZ2UkID0gbmV3IEZha2VUb3BpYzxQYWdlSW5mbyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjdXJyZW50UG9ydGFsJCA9IG5ldyBGYWtlVG9waWM8V29ya3NwYWNlPih7IGJhc2VVcmw6ICcvJywgbWljcm9mcm9udGVuZFJlZ2lzdHJhdGlvbnM6IFtdLCBwb3J0YWxOYW1lOiAnVGVzdCBwb3J0YWwnLCB3b3Jrc3BhY2VOYW1lOiAnVGVzdCBwb3J0YWwnIH0pXG4gIGN1cnJlbnRXb3Jrc3BhY2UkID0gbmV3IEZha2VUb3BpYzxXb3Jrc3BhY2U+KHsgYmFzZVVybDogJy8nLCBtaWNyb2Zyb250ZW5kUmVnaXN0cmF0aW9uczogW10sIHBvcnRhbE5hbWU6ICdUZXN0IHdvcmtzcGFjZScsIHdvcmtzcGFjZU5hbWU6ICdUZXN0IHdvcmtzcGFjZScgfSlcbiAgaXNBdXRoZW50aWNhdGVkJCA9IG5ldyBGYWtlVG9waWM8bnVsbD4obnVsbClcbn1cbiJdfQ==