@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.
- package/fesm2022/onecx-angular-integration-interface-mocks.mjs +52 -82
- package/fesm2022/onecx-angular-integration-interface-mocks.mjs.map +1 -1
- package/fesm2022/onecx-angular-integration-interface.mjs +80 -131
- package/fesm2022/onecx-angular-integration-interface.mjs.map +1 -1
- package/lib/services/app-config-service.d.ts +0 -2
- package/lib/services/configuration.service.d.ts +7 -10
- package/lib/services/initialize-module-guard.service.d.ts +0 -1
- package/lib/services/portal-message.service.d.ts +0 -2
- package/lib/services/theme.service.d.ts +1 -10
- package/lib/services/user.service.d.ts +3 -7
- package/lib/services/workspace.service.d.ts +1 -2
- package/migrations.json +26 -0
- package/mocks/app-state-service-mock.d.ts +1 -1
- package/mocks/configuration-service-mock.d.ts +3 -3
- package/mocks/index.d.ts +2 -2
- package/mocks/portal-message-service-mock.d.ts +1 -1
- package/mocks/remote-components-service-mock.d.ts +1 -1
- package/mocks/user-service-mock.d.ts +3 -3
- package/package.json +12 -8
- package/esm2022/index.mjs +0 -19
- package/esm2022/lib/api/constants.mjs +0 -3
- package/esm2022/lib/api/iauth.service.mjs +0 -2
- package/esm2022/lib/api/injection-tokens.mjs +0 -11
- package/esm2022/lib/model/config-key.model.mjs +0 -31
- package/esm2022/lib/services/app-config-service.mjs +0 -43
- package/esm2022/lib/services/app-state.service.mjs +0 -47
- package/esm2022/lib/services/configuration.service.mjs +0 -77
- package/esm2022/lib/services/initialize-module-guard.service.mjs +0 -60
- package/esm2022/lib/services/portal-message.service.mjs +0 -49
- package/esm2022/lib/services/remote-components.service.mjs +0 -18
- package/esm2022/lib/services/shell-capability.service.mjs +0 -22
- package/esm2022/lib/services/theme.service.mjs +0 -48
- package/esm2022/lib/services/user.service.mjs +0 -93
- package/esm2022/lib/services/workspace.service.mjs +0 -146
- package/esm2022/lib/utils/add-initialize-module-guard.utils.mjs +0 -17
- package/esm2022/mocks/app-config-service-mock.mjs +0 -35
- package/esm2022/mocks/app-state-service-mock.mjs +0 -45
- package/esm2022/mocks/configuration-service-mock.mjs +0 -47
- package/esm2022/mocks/fake-topic.mjs +0 -33
- package/esm2022/mocks/index.mjs +0 -9
- package/esm2022/mocks/onecx-angular-integration-interface-mocks.mjs +0 -5
- package/esm2022/mocks/portal-message-service-mock.mjs +0 -38
- package/esm2022/mocks/remote-components-service-mock.mjs +0 -19
- package/esm2022/mocks/shell-capability-service-mock.mjs +0 -21
- package/esm2022/mocks/user-service-mock.mjs +0 -38
- package/esm2022/onecx-angular-integration-interface.mjs +0 -5
- package/mocks/fake-topic.d.ts +0 -11
@@ -1,21 +1,18 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
1
|
import { OnDestroy } from '@angular/core';
|
3
|
-
import { Config
|
2
|
+
import { Config } from '@onecx/integration-interface';
|
4
3
|
import { CONFIG_KEY } from '../model/config-key.model';
|
5
4
|
import * as i0 from "@angular/core";
|
6
5
|
export declare class ConfigurationService implements OnDestroy {
|
7
6
|
private http;
|
8
|
-
private defaultConfig
|
9
|
-
config
|
10
|
-
|
11
|
-
[key: string]: string;
|
12
|
-
} | undefined);
|
7
|
+
private defaultConfig;
|
8
|
+
private config$;
|
9
|
+
private semaphore;
|
13
10
|
ngOnDestroy(): void;
|
14
11
|
init(): Promise<boolean>;
|
15
12
|
get isInitialized(): Promise<void>;
|
16
|
-
getProperty(key: CONFIG_KEY): string | undefined
|
13
|
+
getProperty(key: CONFIG_KEY): Promise<string | undefined>;
|
17
14
|
setProperty(key: string, val: string): Promise<void>;
|
18
|
-
getConfig(): Config | undefined
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService,
|
15
|
+
getConfig(): Promise<Config | undefined>;
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService, never>;
|
20
17
|
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationService>;
|
21
18
|
}
|
@@ -12,7 +12,6 @@ export declare class InitializeModuleGuard implements CanActivate {
|
|
12
12
|
protected userService: UserService;
|
13
13
|
private SUPPORTED_LANGS;
|
14
14
|
private DEFAULT_LANG;
|
15
|
-
constructor(translateService: TranslateService, configService: ConfigurationService, appStateService: AppStateService, userService: UserService);
|
16
15
|
canActivate(_route: ActivatedRouteSnapshot, _state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;
|
17
16
|
getBestMatchLanguage(lang: string): string;
|
18
17
|
loadTranslations(): Observable<boolean>;
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
2
|
-
import { TranslateService } from '@ngx-translate/core';
|
3
2
|
import { MessageTopic } from '@onecx/integration-interface';
|
4
3
|
import * as i0 from "@angular/core";
|
5
4
|
export type Message = {
|
@@ -19,7 +18,6 @@ export type Message = {
|
|
19
18
|
};
|
20
19
|
export declare class PortalMessageService implements OnDestroy {
|
21
20
|
private translateService;
|
22
|
-
constructor(translateService: TranslateService);
|
23
21
|
message$: MessageTopic;
|
24
22
|
success(msg: Message): void;
|
25
23
|
info(msg: Message): void;
|
@@ -1,17 +1,8 @@
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
2
1
|
import { OnDestroy } from '@angular/core';
|
3
|
-
import { CurrentThemeTopic
|
4
|
-
import { ConfigurationService } from './configuration.service';
|
2
|
+
import { CurrentThemeTopic } from '@onecx/integration-interface';
|
5
3
|
import * as i0 from "@angular/core";
|
6
4
|
export declare class ThemeService implements OnDestroy {
|
7
|
-
private configService;
|
8
|
-
private http;
|
9
|
-
baseUrlV1: string;
|
10
5
|
currentTheme$: CurrentThemeTopic;
|
11
|
-
constructor(configService: ConfigurationService, http: HttpClient);
|
12
|
-
getThemeHref(themeId: string): string;
|
13
|
-
loadAndApplyTheme(themeName: string): import("rxjs").Observable<Theme>;
|
14
|
-
apply(theme: Theme): Promise<void>;
|
15
6
|
ngOnDestroy(): void;
|
16
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService, never>;
|
17
8
|
static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService>;
|
@@ -1,20 +1,16 @@
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
2
|
-
import { BehaviorSubject, Observable } from 'rxjs';
|
3
2
|
import { UserProfileTopic } from '@onecx/integration-interface';
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export declare class UserService implements OnDestroy {
|
6
6
|
profile$: UserProfileTopic;
|
7
|
-
permissions$: BehaviorSubject<string[]>;
|
8
7
|
lang$: BehaviorSubject<string>;
|
9
|
-
private effectivePermissions$;
|
10
8
|
private permissionsTopic$;
|
11
|
-
private oldStylePermissionsInitialized;
|
12
9
|
constructor();
|
13
10
|
ngOnDestroy(): void;
|
14
|
-
getPermissions(): Observable<string[]>;
|
15
|
-
hasPermission(permissionKey: string | string[]): boolean
|
11
|
+
getPermissions(): import("rxjs").Observable<string[]>;
|
12
|
+
hasPermission(permissionKey: string | string[] | undefined): Promise<boolean>;
|
16
13
|
private determineLanguage;
|
17
|
-
private extractPermissions;
|
18
14
|
get isInitialized(): Promise<void>;
|
19
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserService, never>;
|
20
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<UserService>;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { AppStateService } from './app-state.service';
|
2
1
|
import { Observable } from 'rxjs';
|
2
|
+
import { AppStateService } from './app-state.service';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export declare class WorkspaceService {
|
5
5
|
protected appStateService: AppStateService;
|
@@ -7,7 +7,6 @@ export declare class WorkspaceService {
|
|
7
7
|
private aliasEnd;
|
8
8
|
private paramStart;
|
9
9
|
private paramEnd;
|
10
|
-
constructor(appStateService: AppStateService);
|
11
10
|
getUrl(productName: string, appId: string, endpointName?: string, endpointParameters?: Record<string, unknown>): Observable<string>;
|
12
11
|
doesUrlExistFor(productName: string, appId: string, endpointName?: string): Observable<boolean>;
|
13
12
|
private constructBaseUrlFromWorkspace;
|
package/migrations.json
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
{
|
2
|
+
"generators": {
|
3
|
+
"migrate-onecx-to-v6": {
|
4
|
+
"cli": "nx",
|
5
|
+
"version": "6.0.0",
|
6
|
+
"description": "Update package json to Angular 19, PrimeNG 19, OneCX versions to v6 and other dependencies to be compatible with Angular 19.",
|
7
|
+
"factory": "migrations/v6/migrate-onecx-to-v6"
|
8
|
+
}
|
9
|
+
},
|
10
|
+
"packageJsonUpdates": {
|
11
|
+
"6.0.0": {
|
12
|
+
"version": "6.0.0",
|
13
|
+
"packages": {
|
14
|
+
"@angular/cli": {
|
15
|
+
"version": "~19.0.0",
|
16
|
+
"alwaysAddToPackageJson": false
|
17
|
+
},
|
18
|
+
"@nx/angular": {
|
19
|
+
"version": "~20.3.0",
|
20
|
+
"alwaysAddToPackageJson": false
|
21
|
+
}
|
22
|
+
}
|
23
|
+
},
|
24
|
+
"version": "null"
|
25
|
+
}
|
26
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { CurrentLocationTopicPayload, MfeInfo, PageInfo, Workspace } from '@onecx/integration-interface';
|
2
2
|
import { AppStateService } from '@onecx/angular-integration-interface';
|
3
|
-
import { FakeTopic } from '
|
3
|
+
import { FakeTopic } from '@onecx/accelerator';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
/**
|
6
6
|
* @deprecated use provideAppStateServiceMock()
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Config } from '@onecx/integration-interface';
|
2
2
|
import { CONFIG_KEY } from '@onecx/angular-integration-interface';
|
3
|
-
import { FakeTopic } from './fake-topic';
|
4
3
|
import { ConfigurationService } from '@onecx/angular-integration-interface';
|
4
|
+
import { FakeTopic } from '@onecx/accelerator';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export declare function provideConfigurationServiceMock(): (typeof ConfigurationServiceMock | {
|
7
7
|
provide: typeof ConfigurationService;
|
@@ -14,9 +14,9 @@ export declare class ConfigurationServiceMock {
|
|
14
14
|
constructor();
|
15
15
|
init(config?: Config): Promise<boolean>;
|
16
16
|
get isInitialized(): Promise<void>;
|
17
|
-
getProperty(key: CONFIG_KEY): string | undefined
|
17
|
+
getProperty(key: CONFIG_KEY): Promise<string | undefined>;
|
18
18
|
setProperty(key: string, val: string): Promise<void>;
|
19
|
-
getConfig(): Config | undefined
|
19
|
+
getConfig(): Promise<Config | undefined>;
|
20
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationServiceMock, never>;
|
21
21
|
static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationServiceMock>;
|
22
22
|
}
|
package/mocks/index.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
export * from './app-config-service-mock';
|
2
2
|
export * from './app-state-service-mock';
|
3
|
-
export * from './fake-topic';
|
4
3
|
export * from './configuration-service-mock';
|
5
4
|
export * from './portal-message-service-mock';
|
6
5
|
export * from './remote-components-service-mock';
|
7
|
-
export * from './shell-capability-service-mock';
|
8
6
|
export * from './user-service-mock';
|
7
|
+
export * from './shell-capability-service-mock';
|
8
|
+
export * from '@onecx/accelerator';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { FakeTopic } from '
|
1
|
+
import { FakeTopic } from '@onecx/accelerator';
|
2
2
|
import { Message as PortalMessage, PortalMessageService } from '@onecx/angular-integration-interface';
|
3
3
|
import { Message } from '@onecx/integration-interface';
|
4
4
|
import * as i0 from "@angular/core";
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { FakeTopic } from './fake-topic';
|
2
1
|
import { RemoteComponentsInfo } from '@onecx/integration-interface';
|
3
2
|
import { RemoteComponentsService } from '@onecx/angular-integration-interface';
|
3
|
+
import { FakeTopic } from '@onecx/accelerator';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export declare function provideRemoteComponentsServiceMock(): (typeof RemoteComponentsServiceMock | {
|
6
6
|
provide: typeof RemoteComponentsService;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
2
2
|
import { UserProfile } from '@onecx/integration-interface';
|
3
|
-
import { FakeTopic } from '
|
3
|
+
import { FakeTopic } from '@onecx/accelerator';
|
4
4
|
import { UserService } from '@onecx/angular-integration-interface';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export declare function provideUserServiceMock(): (typeof UserServiceMock | {
|
@@ -9,9 +9,9 @@ export declare function provideUserServiceMock(): (typeof UserServiceMock | {
|
|
9
9
|
})[];
|
10
10
|
export declare class UserServiceMock {
|
11
11
|
profile$: FakeTopic<UserProfile>;
|
12
|
-
|
12
|
+
permissionsTopic$: FakeTopic<string[]>;
|
13
13
|
lang$: BehaviorSubject<string>;
|
14
|
-
hasPermission(permissionKey: string | string[]): boolean
|
14
|
+
hasPermission(permissionKey: string | string[]): Promise<boolean>;
|
15
15
|
determineLanguage(): string | undefined;
|
16
16
|
extractPermissions(userProfile: UserProfile): string[] | null;
|
17
17
|
get isInitialized(): Promise<void>;
|
package/package.json
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
{
|
2
2
|
"name": "@onecx/angular-integration-interface",
|
3
|
-
"version": "
|
3
|
+
"version": "6.0.0-rc.11",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"peerDependencies": {
|
6
|
-
"@angular/core": "^
|
7
|
-
"@onecx/integration-interface": "^
|
8
|
-
"
|
6
|
+
"@angular/core": "^19.0.0",
|
7
|
+
"@onecx/integration-interface": "^6.0.0-rc.11",
|
8
|
+
"@onecx/accelerator": "^6.0.0-rc.11",
|
9
|
+
"@onecx/nx-migration-utils": "^6.0.0-rc.11",
|
10
|
+
"rxjs": "~7.8.1",
|
11
|
+
"@nx/devkit": "^20.3.0",
|
12
|
+
"@phenomnomnominal/tsquery": "^6",
|
13
|
+
"ts-semaphore": "^1.0.0"
|
9
14
|
},
|
10
15
|
"dependencies": {
|
11
16
|
"tslib": "^2.3.0"
|
@@ -13,6 +18,9 @@
|
|
13
18
|
"publishConfig": {
|
14
19
|
"access": "public"
|
15
20
|
},
|
21
|
+
"nx-migrations": {
|
22
|
+
"migrations": "./migrations.json"
|
23
|
+
},
|
16
24
|
"module": "fesm2022/onecx-angular-integration-interface.mjs",
|
17
25
|
"typings": "index.d.ts",
|
18
26
|
"exports": {
|
@@ -21,14 +29,10 @@
|
|
21
29
|
},
|
22
30
|
".": {
|
23
31
|
"types": "./index.d.ts",
|
24
|
-
"esm2022": "./esm2022/onecx-angular-integration-interface.mjs",
|
25
|
-
"esm": "./esm2022/onecx-angular-integration-interface.mjs",
|
26
32
|
"default": "./fesm2022/onecx-angular-integration-interface.mjs"
|
27
33
|
},
|
28
34
|
"./mocks": {
|
29
35
|
"types": "./mocks/index.d.ts",
|
30
|
-
"esm2022": "./esm2022/mocks/onecx-angular-integration-interface-mocks.mjs",
|
31
|
-
"esm": "./esm2022/mocks/onecx-angular-integration-interface-mocks.mjs",
|
32
36
|
"default": "./fesm2022/onecx-angular-integration-interface-mocks.mjs"
|
33
37
|
}
|
34
38
|
},
|
package/esm2022/index.mjs
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
// services
|
2
|
-
export * from './lib/services/app-config-service';
|
3
|
-
export * from './lib/services/app-state.service';
|
4
|
-
export * from './lib/services/configuration.service';
|
5
|
-
export * from './lib/services/user.service';
|
6
|
-
export * from './lib/services/portal-message.service';
|
7
|
-
export * from './lib/services/theme.service';
|
8
|
-
export * from './lib/services/remote-components.service';
|
9
|
-
export * from './lib/services/initialize-module-guard.service';
|
10
|
-
export * from './lib/services/workspace.service';
|
11
|
-
export * from './lib/services/shell-capability.service';
|
12
|
-
// models
|
13
|
-
export * from './lib/model/config-key.model';
|
14
|
-
// core
|
15
|
-
export * from './lib/api/iauth.service';
|
16
|
-
export * from './lib/api/injection-tokens';
|
17
|
-
// utils
|
18
|
-
export * from './lib/utils/add-initialize-module-guard.utils';
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXO0FBQ1gsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLGtDQUFrQyxDQUFBO0FBQ2hELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHVDQUF1QyxDQUFBO0FBQ3JELGNBQWMsOEJBQThCLENBQUE7QUFDNUMsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCxjQUFjLGdEQUFnRCxDQUFBO0FBQzlELGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUV2RCxTQUFTO0FBQ1QsY0FBYyw4QkFBOEIsQ0FBQTtBQUU1QyxPQUFPO0FBQ1AsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLDRCQUE0QixDQUFBO0FBRTFDLFFBQVE7QUFDUixjQUFjLCtDQUErQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwcC1jb25maWctc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwcC1zdGF0ZS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdXNlci5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcG9ydGFsLW1lc3NhZ2Uuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZW1vdGUtY29tcG9uZW50cy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaW5pdGlhbGl6ZS1tb2R1bGUtZ3VhcmQuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3dvcmtzcGFjZS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc2hlbGwtY2FwYWJpbGl0eS5zZXJ2aWNlJ1xuXG4vLyBtb2RlbHNcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2NvbmZpZy1rZXkubW9kZWwnXG5cbi8vIGNvcmVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaS9pYXV0aC5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpL2luamVjdGlvbi10b2tlbnMnXG5cbi8vIHV0aWxzXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9hZGQtaW5pdGlhbGl6ZS1tb2R1bGUtZ3VhcmQudXRpbHMnXG5cbmV4cG9ydCB7IE1mZUluZm8sIFRoZW1lIH0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcbiJdfQ==
|
@@ -1,3 +0,0 @@
|
|
1
|
-
export const API_PREFIX = 'portal-api';
|
2
|
-
export const DEFAULT_LANG = 'en';
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL2FwaS9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEFQSV9QUkVGSVggPSAncG9ydGFsLWFwaSdcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFORyA9ICdlbidcbiJdfQ==
|
@@ -1,2 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9hcGkvaWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBdXRoU2VydmljZSB7XG4gIGxvZ291dCgpOiB2b2lkXG5cbiAgLyoqXG4gICAqIFVuaXF1ZSBuYW1lIG9mIHRoaXMgYXV0aCBwcm92aWRlcjogZS5nLiBtb2NrQXV0aFByb3ZpZGVyLCBLZXljbG9ha1Byb3ZpZGVyLi5cbiAgICovXG4gIGdldEF1dGhQcm92aWRlck5hbWUoKTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemF0aW9uIG1ldGhvZCBvZiB0aGUgQXV0aCBzZXJ2aWNlLiBPbmNlIHJlc29sdmVkLCBhbGwgdXNlciBkYXRhIE1VU1QgYmUgYXZhaWxhYmxlLlxuICAgKi9cbiAgaW5pdCgpOiBQcm9taXNlPGJvb2xlYW4+XG5cbiAgZ2V0SWRUb2tlbigpOiBzdHJpbmcgfCBudWxsXG5cbiAgaGFzUm9sZShfcm9sZTogc3RyaW5nKTogYm9vbGVhblxuXG4gIGdldFVzZXJSb2xlcygpOiBzdHJpbmdbXVxufVxuIl19
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
2
|
-
export const APP_CONFIG = new InjectionToken('APP_CONFIG');
|
3
|
-
/**
|
4
|
-
* @deprecated
|
5
|
-
* Please do not inject the auth service at all.
|
6
|
-
* There are better ways to achieve what you want. Please use permission service or user service.
|
7
|
-
*/
|
8
|
-
export const AUTH_SERVICE = new InjectionToken('AUTH_SERVICE');
|
9
|
-
export const SANITY_CHECK = new InjectionToken('OCXSANITY_CHECK');
|
10
|
-
export const APPLICATION_NAME = new InjectionToken('APPLICATION_NAME');
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9hcGkvaW5qZWN0aW9uLXRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBZTlDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBWSxZQUFZLENBQUMsQ0FBQTtBQUVyRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFBO0FBRTVFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBUyxpQkFBaUIsQ0FBQyxDQUFBO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFTLGtCQUFrQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBJQXV0aFNlcnZpY2UgfSBmcm9tICcuL2lhdXRoLnNlcnZpY2UnXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGliQ29uZmlnIHtcbiAgYXBwSWQ6IHN0cmluZ1xuICBwb3J0YWxJZDogc3RyaW5nXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgdGtpdC1tb2R1bGUgd2lsbCBub3QgdHJ5IHRvIGxvYWQgcmVtb3RlIGVudiB2YWx1ZXMgZnJvbSBzZXJ2ZXIoR0VUIC9hc3NldHMvZW52Lmpzb24pXG4gICAqL1xuICBza2lwUmVtb3RlQ29uZmlnTG9hZDogYm9vbGVhblxuICAvKipcbiAgICogVVJMIGZyb20gd2hpY2ggdGhlIHJlbW90ZSBjb25maWcgd2lsbCBiZSBsb2FkZWQsIGRlZmF1bHQ6ICcvYXNzZXRzL2Vudi5qc29uJ1xuICAgKi9cbiAgcmVtb3RlQ29uZmlnVVJMOiBzdHJpbmdcbn1cbmV4cG9ydCBjb25zdCBBUFBfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPExpYkNvbmZpZz4oJ0FQUF9DT05GSUcnKVxuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBQbGVhc2UgZG8gbm90IGluamVjdCB0aGUgYXV0aCBzZXJ2aWNlIGF0IGFsbC5cbiAqIFRoZXJlIGFyZSBiZXR0ZXIgd2F5cyB0byBhY2hpZXZlIHdoYXQgeW91IHdhbnQuIFBsZWFzZSB1c2UgcGVybWlzc2lvbiBzZXJ2aWNlIG9yIHVzZXIgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFVVEhfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQXV0aFNlcnZpY2U+KCdBVVRIX1NFUlZJQ0UnKVxuXG5leHBvcnQgY29uc3QgU0FOSVRZX0NIRUNLID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ09DWFNBTklUWV9DSEVDSycpXG5cbmV4cG9ydCBjb25zdCBBUFBMSUNBVElPTl9OQU1FID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FQUExJQ0FUSU9OX05BTUUnKVxuIl19
|
@@ -1,31 +0,0 @@
|
|
1
|
-
export var CONFIG_KEY;
|
2
|
-
(function (CONFIG_KEY) {
|
3
|
-
CONFIG_KEY["TKIT_PORTAL_DEFAULT_THEME"] = "TKIT_PORTAL_DEFAULT_THEME";
|
4
|
-
CONFIG_KEY["TKIT_PORTAL_DISABLE_THEME_MANAGEMENT"] = "TKIT_PORTAL_DISABLE_THEME_MANAGEMENT";
|
5
|
-
CONFIG_KEY["TKIT_PORTAL_THEME_SERVER_URL"] = "TKIT_PORTAL_THEME_SERVER_URL";
|
6
|
-
CONFIG_KEY["TKIT_TOKEN_ROLE_CLAIM_NAME"] = "TKIT_TOKEN_ROLE_CLAIM_NAME";
|
7
|
-
CONFIG_KEY["TKIT_PORTAL_ID"] = "TKIT_PORTAL_ID";
|
8
|
-
CONFIG_KEY["TKIT_SUPPORTED_LANGUAGES"] = "TKIT_SUPPORTED_LANGUAGES";
|
9
|
-
CONFIG_KEY["TKIT_SEARCH_BASE_URL"] = "TKIT_SEARCH_BASE_URL";
|
10
|
-
CONFIG_KEY["APP_BASE_HREF"] = "APP_BASE_HREF";
|
11
|
-
CONFIG_KEY["KEYCLOAK_REALM"] = "KEYCLOAK_REALM";
|
12
|
-
CONFIG_KEY["KEYCLOAK_ENABLE_SILENT_SSO"] = "KEYCLOAK_ENABLE_SILENT_SSO";
|
13
|
-
CONFIG_KEY["KEYCLOAK_URL"] = "KEYCLOAK_URL";
|
14
|
-
CONFIG_KEY["KEYCLOAK_CLIENT_ID"] = "KEYCLOAK_CLIENT_ID";
|
15
|
-
CONFIG_KEY["ONECX_PORTAL_FAVORITES_DISABLED"] = "ONECX_PORTAL_FAVORITES_DISABLED";
|
16
|
-
CONFIG_KEY["ONECX_PORTAL_FEEDBACK_DISABLED"] = "ONECX_PORTAL_FEEDBACK_DISABLED";
|
17
|
-
CONFIG_KEY["ONECX_PORTAL_SEARCH_DISABLED"] = "ONECX_PORTAL_SEARCH_DISABLED";
|
18
|
-
CONFIG_KEY["ONECX_PORTAL_SUPPORT_TICKET_DISABLED"] = "ONECX_PORTAL_SUPPORT_TICKET_DISABLED";
|
19
|
-
CONFIG_KEY["ONECX_PORTAL_ANNOUNCEMENTS_DISABLED"] = "ONECX_PORTAL_ANNOUNCEMENTS_DISABLED";
|
20
|
-
CONFIG_KEY["ONECX_PORTAL_PASSWORD_CHANGE_DISABLED"] = "ONECX_PORTAL_PASSWORD_CHANGE_DISABLED";
|
21
|
-
CONFIG_KEY["ONECX_PORTAL_SETTINGS_DISABLED"] = "ONECX_PORTAL_SETTINGS_DISABLED";
|
22
|
-
CONFIG_KEY["ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED"] = "ONECX_PORTAL_MY_ROLES_PERMISSIONS_DISABLED";
|
23
|
-
CONFIG_KEY["ONECX_PORTAL_HELP_DISABLED"] = "ONECX_PORTAL_HELP_DISABLED";
|
24
|
-
CONFIG_KEY["ONECX_PORTAL_SEARCH_BUTTONS_REVERSED"] = "ONECX_PORTAL_SEARCH_BUTTONS_REVERSED";
|
25
|
-
CONFIG_KEY["APP_VERSION"] = "APP_VERSION";
|
26
|
-
CONFIG_KEY["IS_SHELL"] = "IS_SHELL";
|
27
|
-
CONFIG_KEY["AUTH_SERVICE"] = "AUTH_SERVICE";
|
28
|
-
CONFIG_KEY["AUTH_SERVICE_CUSTOM_URL"] = "AUTH_SERVICE_CUSTOM_URL";
|
29
|
-
CONFIG_KEY["AUTH_SERVICE_CUSTOM_MODULE_NAME"] = "AUTH_SERVICE_CUSTOM_MODULE_NAME";
|
30
|
-
})(CONFIG_KEY || (CONFIG_KEY = {}));
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWtleS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9tb2RlbC9jb25maWcta2V5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFVBNEJYO0FBNUJELFdBQVksVUFBVTtJQUNwQixxRUFBdUQsQ0FBQTtJQUN2RCwyRkFBNkUsQ0FBQTtJQUM3RSwyRUFBNkQsQ0FBQTtJQUM3RCx1RUFBeUQsQ0FBQTtJQUN6RCwrQ0FBaUMsQ0FBQTtJQUNqQyxtRUFBcUQsQ0FBQTtJQUNyRCwyREFBNkMsQ0FBQTtJQUM3Qyw2Q0FBK0IsQ0FBQTtJQUMvQiwrQ0FBaUMsQ0FBQTtJQUNqQyx1RUFBeUQsQ0FBQTtJQUN6RCwyQ0FBNkIsQ0FBQTtJQUM3Qix1REFBeUMsQ0FBQTtJQUN6QyxpRkFBbUUsQ0FBQTtJQUNuRSwrRUFBaUUsQ0FBQTtJQUNqRSwyRUFBNkQsQ0FBQTtJQUM3RCwyRkFBNkUsQ0FBQTtJQUM3RSx5RkFBMkUsQ0FBQTtJQUMzRSw2RkFBK0UsQ0FBQTtJQUMvRSwrRUFBaUUsQ0FBQTtJQUNqRSx1R0FBeUYsQ0FBQTtJQUN6Rix1RUFBeUQsQ0FBQTtJQUN6RCwyRkFBNkUsQ0FBQTtJQUM3RSx5Q0FBMkIsQ0FBQTtJQUMzQixtQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBNkIsQ0FBQTtJQUM3QixpRUFBbUQsQ0FBQTtJQUNuRCxpRkFBbUUsQ0FBQTtBQUNyRSxDQUFDLEVBNUJXLFVBQVUsS0FBVixVQUFVLFFBNEJyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENPTkZJR19LRVkge1xuICBUS0lUX1BPUlRBTF9ERUZBVUxUX1RIRU1FID0gJ1RLSVRfUE9SVEFMX0RFRkFVTFRfVEhFTUUnLFxuICBUS0lUX1BPUlRBTF9ESVNBQkxFX1RIRU1FX01BTkFHRU1FTlQgPSAnVEtJVF9QT1JUQUxfRElTQUJMRV9USEVNRV9NQU5BR0VNRU5UJyxcbiAgVEtJVF9QT1JUQUxfVEhFTUVfU0VSVkVSX1VSTCA9ICdUS0lUX1BPUlRBTF9USEVNRV9TRVJWRVJfVVJMJyxcbiAgVEtJVF9UT0tFTl9ST0xFX0NMQUlNX05BTUUgPSAnVEtJVF9UT0tFTl9ST0xFX0NMQUlNX05BTUUnLFxuICBUS0lUX1BPUlRBTF9JRCA9ICdUS0lUX1BPUlRBTF9JRCcsXG4gIFRLSVRfU1VQUE9SVEVEX0xBTkdVQUdFUyA9ICdUS0lUX1NVUFBPUlRFRF9MQU5HVUFHRVMnLFxuICBUS0lUX1NFQVJDSF9CQVNFX1VSTCA9ICdUS0lUX1NFQVJDSF9CQVNFX1VSTCcsXG4gIEFQUF9CQVNFX0hSRUYgPSAnQVBQX0JBU0VfSFJFRicsXG4gIEtFWUNMT0FLX1JFQUxNID0gJ0tFWUNMT0FLX1JFQUxNJyxcbiAgS0VZQ0xPQUtfRU5BQkxFX1NJTEVOVF9TU08gPSAnS0VZQ0xPQUtfRU5BQkxFX1NJTEVOVF9TU08nLFxuICBLRVlDTE9BS19VUkwgPSAnS0VZQ0xPQUtfVVJMJyxcbiAgS0VZQ0xPQUtfQ0xJRU5UX0lEID0gJ0tFWUNMT0FLX0NMSUVOVF9JRCcsXG4gIE9ORUNYX1BPUlRBTF9GQVZPUklURVNfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX0ZBVk9SSVRFU19ESVNBQkxFRCcsXG4gIE9ORUNYX1BPUlRBTF9GRUVEQkFDS19ESVNBQkxFRCA9ICdPTkVDWF9QT1JUQUxfRkVFREJBQ0tfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfU0VBUkNIX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9TRUFSQ0hfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfU1VQUE9SVF9USUNLRVRfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX1NVUFBPUlRfVElDS0VUX0RJU0FCTEVEJyxcbiAgT05FQ1hfUE9SVEFMX0FOTk9VTkNFTUVOVFNfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX0FOTk9VTkNFTUVOVFNfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfUEFTU1dPUkRfQ0hBTkdFX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9QQVNTV09SRF9DSEFOR0VfRElTQUJMRUQnLFxuICBPTkVDWF9QT1JUQUxfU0VUVElOR1NfRElTQUJMRUQgPSAnT05FQ1hfUE9SVEFMX1NFVFRJTkdTX0RJU0FCTEVEJyxcbiAgT05FQ1hfUE9SVEFMX01ZX1JPTEVTX1BFUk1JU1NJT05TX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9NWV9ST0xFU19QRVJNSVNTSU9OU19ESVNBQkxFRCcsXG4gIE9ORUNYX1BPUlRBTF9IRUxQX0RJU0FCTEVEID0gJ09ORUNYX1BPUlRBTF9IRUxQX0RJU0FCTEVEJyxcbiAgT05FQ1hfUE9SVEFMX1NFQVJDSF9CVVRUT05TX1JFVkVSU0VEID0gJ09ORUNYX1BPUlRBTF9TRUFSQ0hfQlVUVE9OU19SRVZFUlNFRCcsXG4gIEFQUF9WRVJTSU9OID0gJ0FQUF9WRVJTSU9OJyxcbiAgSVNfU0hFTEwgPSAnSVNfU0hFTEwnLFxuICBBVVRIX1NFUlZJQ0UgPSAnQVVUSF9TRVJWSUNFJyxcbiAgQVVUSF9TRVJWSUNFX0NVU1RPTV9VUkwgPSAnQVVUSF9TRVJWSUNFX0NVU1RPTV9VUkwnLFxuICBBVVRIX1NFUlZJQ0VfQ1VTVE9NX01PRFVMRV9OQU1FID0gJ0FVVEhfU0VSVklDRV9DVVNUT01fTU9EVUxFX05BTUUnLFxufVxuIl19
|
@@ -1,43 +0,0 @@
|
|
1
|
-
import { Location } from '@angular/common';
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
3
|
-
import { Injectable } from '@angular/core';
|
4
|
-
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/common/http";
|
7
|
-
export class AppConfigService {
|
8
|
-
constructor(http) {
|
9
|
-
this.http = http;
|
10
|
-
this.config$ = new BehaviorSubject({});
|
11
|
-
}
|
12
|
-
init(baseUrl) {
|
13
|
-
return new Promise((resolve, reject) => {
|
14
|
-
const loadConfigPromise = firstValueFrom(this.http.get(Location.joinWithSlash(baseUrl, 'assets/env.json')));
|
15
|
-
loadConfigPromise
|
16
|
-
.then(async (config) => {
|
17
|
-
if (config) {
|
18
|
-
this.config$.next(config);
|
19
|
-
resolve();
|
20
|
-
}
|
21
|
-
})
|
22
|
-
.catch((e) => {
|
23
|
-
console.log(`Failed to load env configuration`);
|
24
|
-
reject(e);
|
25
|
-
});
|
26
|
-
});
|
27
|
-
}
|
28
|
-
getProperty(key) {
|
29
|
-
return this.config$.getValue()?.[key];
|
30
|
-
}
|
31
|
-
setProperty(key, val) {
|
32
|
-
this.config$.next({ ...this.config$.value, [key]: val });
|
33
|
-
}
|
34
|
-
getConfig() {
|
35
|
-
return this.config$.getValue();
|
36
|
-
}
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppConfigService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
38
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppConfigService }); }
|
39
|
-
}
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppConfigService, decorators: [{
|
41
|
-
type: Injectable
|
42
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL2FwcC1jb25maWctc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUE7OztBQUd0RCxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFGcEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUE0QixFQUFFLENBQUMsQ0FBQTtJQUVyQixDQUFDO0lBRWpDLElBQUksQ0FBQyxPQUFlO1FBQ3pCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxpQkFBaUIsR0FBb0IsY0FBYyxDQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQzFFLENBQUE7WUFFRCxpQkFBaUI7aUJBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFDekIsT0FBTyxFQUFFLENBQUE7Z0JBQ1gsQ0FBQztZQUNILENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7Z0JBQy9DLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNYLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7K0dBbkNVLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0BvbmVjeC9pbnRlZ3JhdGlvbi1pbnRlcmZhY2UnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZ1NlcnZpY2Uge1xuICBjb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9Pih7fSlcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgcHVibGljIGluaXQoYmFzZVVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGxvYWRDb25maWdQcm9taXNlOiBQcm9taXNlPENvbmZpZz4gPSBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwLmdldDxDb25maWc+KExvY2F0aW9uLmpvaW5XaXRoU2xhc2goYmFzZVVybCwgJ2Fzc2V0cy9lbnYuanNvbicpKVxuICAgICAgKVxuXG4gICAgICBsb2FkQ29uZmlnUHJvbWlzZVxuICAgICAgICAudGhlbihhc3luYyAoY29uZmlnKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgdGhpcy5jb25maWckLm5leHQoY29uZmlnKVxuICAgICAgICAgICAgcmVzb2x2ZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGxvYWQgZW52IGNvbmZpZ3VyYXRpb25gKVxuICAgICAgICAgIHJlamVjdChlKVxuICAgICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZ2V0UHJvcGVydHkoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZyQuZ2V0VmFsdWUoKT8uW2tleV1cbiAgfVxuXG4gIHB1YmxpYyBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbmZpZyQubmV4dCh7IC4uLnRoaXMuY29uZmlnJC52YWx1ZSwgW2tleV06IHZhbCB9KVxuICB9XG5cbiAgcHVibGljIGdldENvbmZpZygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWckLmdldFZhbHVlKClcbiAgfVxufVxuIl19
|
@@ -1,47 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { GlobalErrorTopic, GlobalLoadingTopic, CurrentMfeTopic, CurrentPageTopic, CurrentWorkspaceTopic, IsAuthenticatedTopic, CurrentLocationTopic, } from '@onecx/integration-interface';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
export class AppStateService {
|
5
|
-
constructor() {
|
6
|
-
this.globalError$ = new GlobalErrorTopic();
|
7
|
-
this.globalLoading$ = new GlobalLoadingTopic();
|
8
|
-
this.currentMfe$ = new CurrentMfeTopic();
|
9
|
-
this.currentLocation$ = new CurrentLocationTopic();
|
10
|
-
/**
|
11
|
-
* This topic will only fire when pageInfo.path matches document.location.pathname,
|
12
|
-
* if not it will fire undefined.
|
13
|
-
*/
|
14
|
-
this.currentPage$ = new CurrentPageTopic();
|
15
|
-
this.currentWorkspace$ = new CurrentWorkspaceTopic();
|
16
|
-
/**
|
17
|
-
* This Topic is initialized as soon as the authentication is done
|
18
|
-
*/
|
19
|
-
this.isAuthenticated$ = new IsAuthenticatedTopic();
|
20
|
-
}
|
21
|
-
/**
|
22
|
-
* @deprecated Will be replaced by currentWorkspace$
|
23
|
-
*/
|
24
|
-
get currentPortal$() {
|
25
|
-
return this.currentWorkspace$;
|
26
|
-
}
|
27
|
-
set currentPortal$(value) {
|
28
|
-
this.currentWorkspace$ = value;
|
29
|
-
}
|
30
|
-
ngOnDestroy() {
|
31
|
-
this.globalError$.destroy();
|
32
|
-
this.globalLoading$.destroy();
|
33
|
-
this.currentMfe$.destroy();
|
34
|
-
this.currentPage$.destroy();
|
35
|
-
this.currentPortal$.destroy();
|
36
|
-
this.currentLocation$.destroy();
|
37
|
-
this.currentWorkspace$.destroy();
|
38
|
-
this.isAuthenticated$.destroy();
|
39
|
-
}
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
41
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppStateService, providedIn: 'root' }); }
|
42
|
-
}
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppStateService, decorators: [{
|
44
|
-
type: Injectable,
|
45
|
-
args: [{ providedIn: 'root' }]
|
46
|
-
}] });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItaW50ZWdyYXRpb24taW50ZXJmYWNlL3NyYy9saWIvc2VydmljZXMvYXBwLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsb0JBQW9CLEdBQ3JCLE1BQU0sOEJBQThCLENBQUE7O0FBR3JDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRUUsaUJBQVksR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUE7UUFDckMsbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUE7UUFDekMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1FBQ25DLHFCQUFnQixHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQTtRQUU3Qzs7O1dBR0c7UUFDSCxpQkFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtRQUNyQyxzQkFBaUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUE7UUFZL0M7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUE7S0FZOUM7SUF6QkM7O09BRUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUE7SUFDL0IsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEtBQTRCO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7SUFDaEMsQ0FBQztJQU9ELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDakMsQ0FBQzsrR0FyQ1UsZUFBZTttSEFBZixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7XG4gIEdsb2JhbEVycm9yVG9waWMsXG4gIEdsb2JhbExvYWRpbmdUb3BpYyxcbiAgQ3VycmVudE1mZVRvcGljLFxuICBDdXJyZW50UGFnZVRvcGljLFxuICBDdXJyZW50V29ya3NwYWNlVG9waWMsXG4gIElzQXV0aGVudGljYXRlZFRvcGljLFxuICBDdXJyZW50TG9jYXRpb25Ub3BpYyxcbn0gZnJvbSAnQG9uZWN4L2ludGVncmF0aW9uLWludGVyZmFjZSdcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBcHBTdGF0ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBnbG9iYWxFcnJvciQgPSBuZXcgR2xvYmFsRXJyb3JUb3BpYygpXG4gIGdsb2JhbExvYWRpbmckID0gbmV3IEdsb2JhbExvYWRpbmdUb3BpYygpXG4gIGN1cnJlbnRNZmUkID0gbmV3IEN1cnJlbnRNZmVUb3BpYygpXG4gIGN1cnJlbnRMb2NhdGlvbiQgPSBuZXcgQ3VycmVudExvY2F0aW9uVG9waWMoKVxuXG4gIC8qKlxuICAgKiBUaGlzIHRvcGljIHdpbGwgb25seSBmaXJlIHdoZW4gcGFnZUluZm8ucGF0aCBtYXRjaGVzIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLFxuICAgKiBpZiBub3QgaXQgd2lsbCBmaXJlIHVuZGVmaW5lZC5cbiAgICovXG4gIGN1cnJlbnRQYWdlJCA9IG5ldyBDdXJyZW50UGFnZVRvcGljKClcbiAgY3VycmVudFdvcmtzcGFjZSQgPSBuZXcgQ3VycmVudFdvcmtzcGFjZVRvcGljKClcbiAgXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IGN1cnJlbnRXb3Jrc3BhY2UkXG4gICAqL1xuICBnZXQgY3VycmVudFBvcnRhbCQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFdvcmtzcGFjZSRcbiAgfVxuICBzZXQgY3VycmVudFBvcnRhbCQodmFsdWU6IEN1cnJlbnRXb3Jrc3BhY2VUb3BpYykge1xuICAgIHRoaXMuY3VycmVudFdvcmtzcGFjZSQgPSB2YWx1ZVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgVG9waWMgaXMgaW5pdGlhbGl6ZWQgYXMgc29vbiBhcyB0aGUgYXV0aGVudGljYXRpb24gaXMgZG9uZVxuICAgKi9cbiAgaXNBdXRoZW50aWNhdGVkJCA9IG5ldyBJc0F1dGhlbnRpY2F0ZWRUb3BpYygpXG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxFcnJvciQuZGVzdHJveSgpXG4gICAgdGhpcy5nbG9iYWxMb2FkaW5nJC5kZXN0cm95KClcbiAgICB0aGlzLmN1cnJlbnRNZmUkLmRlc3Ryb3koKVxuICAgIHRoaXMuY3VycmVudFBhZ2UkLmRlc3Ryb3koKVxuICAgIHRoaXMuY3VycmVudFBvcnRhbCQuZGVzdHJveSgpXG4gICAgdGhpcy5jdXJyZW50TG9jYXRpb24kLmRlc3Ryb3koKVxuICAgIHRoaXMuY3VycmVudFdvcmtzcGFjZSQuZGVzdHJveSgpXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQkLmRlc3Ryb3koKVxuICB9XG59XG4iXX0=
|
@@ -1,77 +0,0 @@
|
|
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
|
-
await this.config$.publish({ ...this.defaultConfig, ...(config ?? {}) }).then(() => {
|
39
|
-
resolve(true);
|
40
|
-
});
|
41
|
-
})
|
42
|
-
.catch((e) => {
|
43
|
-
console.log(`Failed to load env configuration`);
|
44
|
-
reject(e);
|
45
|
-
});
|
46
|
-
});
|
47
|
-
}
|
48
|
-
get isInitialized() {
|
49
|
-
return this.config$.isInitialized;
|
50
|
-
}
|
51
|
-
getProperty(key) {
|
52
|
-
if (!Object.values(CONFIG_KEY).includes(key)) {
|
53
|
-
console.error('Invalid config key ', key);
|
54
|
-
}
|
55
|
-
return this.config$.getValue()?.[key];
|
56
|
-
}
|
57
|
-
async setProperty(key, val) {
|
58
|
-
const currentValues = await firstValueFrom(this.config$.asObservable());
|
59
|
-
currentValues[key] = val;
|
60
|
-
await this.config$.publish(currentValues);
|
61
|
-
}
|
62
|
-
getConfig() {
|
63
|
-
return this.config$.getValue();
|
64
|
-
}
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }, { token: APP_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
66
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationService, providedIn: 'root' }); }
|
67
|
-
}
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationService, decorators: [{
|
69
|
-
type: Injectable,
|
70
|
-
args: [{ providedIn: 'root' }]
|
71
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
72
|
-
type: Optional
|
73
|
-
}, {
|
74
|
-
type: Inject,
|
75
|
-
args: [APP_CONFIG]
|
76
|
-
}] }] });
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWludGVncmF0aW9uLWludGVyZmFjZS9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckMsT0FBTyxFQUFVLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7O0FBR3RELE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFDVSxJQUFnQixFQUNnQixhQUF5QztRQUR6RSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2dCLGtCQUFhLEdBQWIsYUFBYSxDQUE0QjtRQUpuRixZQUFPLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFBO0lBSy9CLENBQUM7SUFFSixXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRU0sSUFBSTtRQUNULE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQTtZQUM3RixJQUFJLGlCQUFrQyxDQUFBO1lBRXRDLE1BQU0sYUFBYSxHQUFJLE1BQWlELENBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO2dCQUNoRCxpQkFBaUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQ3BELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLG9CQUFvQixFQUFFLENBQUM7b0JBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQ1QseUhBQXlILENBQzFILENBQUE7b0JBQ0QsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUMvRCxDQUFDO3FCQUFNLENBQUM7b0JBQ04saUJBQWlCLEdBQUcsY0FBYyxDQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsQ0FDMUcsQ0FBQTtnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELGlCQUFpQjtpQkFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNyQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ2pGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDZixDQUFDLENBQUMsQ0FBQTtZQUNKLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUE7Z0JBQy9DLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNYLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQTtJQUNuQyxDQUFDO0lBRU0sV0FBVyxDQUFDLEdBQWU7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUMzQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDL0MsTUFBTSxhQUFhLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZFLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUE7UUFDeEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNoQyxDQUFDOytHQWxFVSxvQkFBb0IsNENBS1QsVUFBVTttSEFMckIsb0JBQW9CLGNBRFAsTUFBTTs7NEZBQ25CLG9CQUFvQjtrQkFEaEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQU03QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQ29uZmlnLCBDb25maWd1cmF0aW9uVG9waWMgfSBmcm9tICdAb25lY3gvaW50ZWdyYXRpb24taW50ZXJmYWNlJ1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJy4uL2FwaS9pbmplY3Rpb24tdG9rZW5zJ1xuaW1wb3J0IHsgQ09ORklHX0tFWSB9IGZyb20gJy4uL21vZGVsL2NvbmZpZy1rZXkubW9kZWwnXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjb25maWckID0gbmV3IENvbmZpZ3VyYXRpb25Ub3BpYygpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0NPTkZJRykgcHJpdmF0ZSBkZWZhdWx0Q29uZmlnPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWckLmRlc3Ryb3koKVxuICB9XG5cbiAgcHVibGljIGluaXQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHNraXBSZW1vdGVDb25maWdMb2FkID0gdGhpcy5kZWZhdWx0Q29uZmlnICYmIHRoaXMuZGVmYXVsdENvbmZpZ1snc2tpcFJlbW90ZUNvbmZpZ0xvYWQnXVxuICAgICAgbGV0IGxvYWRDb25maWdQcm9taXNlOiBQcm9taXNlPENvbmZpZz5cblxuICAgICAgY29uc3QgaW5saW5lZENvbmZpZyA9ICh3aW5kb3cgYXMgdHlwZW9mIHdpbmRvdyAmIHsgQVBQX0NPTkZJRzogQ29uZmlnIH0pWydBUFBfQ09ORklHJ11cbiAgICAgIGlmIChpbmxpbmVkQ29uZmlnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBFTlYgcmVzb2x2ZWQgZnJvbSBpbmplY3RlZCBjb25maWdgKVxuICAgICAgICBsb2FkQ29uZmlnUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShpbmxpbmVkQ29uZmlnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNraXBSZW1vdGVDb25maWdMb2FkKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAn8J+ToiBUS0EwMDE6IFJlbW90ZSBjb25maWcgbG9hZCBpcyBkaXNhYmxlZC4gVG8gZW5hYmxlIGl0LCByZW1vdmUgdGhlIFwic2tpcFJlbW90ZUNvbmZpZ0xvYWRcIiBrZXkgaW4geW91ciBlbnZpcm9ubWVudC5qc29uJ1xuICAgICAgICAgIClcbiAgICAgICAgICBsb2FkQ29uZmlnUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzLmRlZmF1bHRDb25maWcgfHwge30pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9hZENvbmZpZ1Byb21pc2UgPSBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8Q29uZmlnPigodGhpcy5kZWZhdWx0Q29uZmlnICYmIHRoaXMuZGVmYXVsdENvbmZpZ1sncmVtb3RlQ29uZmlnVVJMJ10pIHx8ICdhc3NldHMvZW52Lmpzb24nKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsb2FkQ29uZmlnUHJvbWlzZVxuICAgICAgICAudGhlbihhc3luYyAoY29uZmlnKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5jb25maWckLnB1Ymxpc2goeyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLihjb25maWcgPz8ge30pIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKVxuICAgICAgICAgIH0pXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gbG9hZCBlbnYgY29uZmlndXJhdGlvbmApXG4gICAgICAgICAgcmVqZWN0KGUpXG4gICAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIGdldCBpc0luaXRpYWxpemVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZyQuaXNJbml0aWFsaXplZFxuICB9XG5cbiAgcHVibGljIGdldFByb3BlcnR5KGtleTogQ09ORklHX0tFWSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFPYmplY3QudmFsdWVzKENPTkZJR19LRVkpLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgY29uZmlnIGtleSAnLCBrZXkpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZyQuZ2V0VmFsdWUoKT8uW2tleV1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jb25maWckLmFzT2JzZXJ2YWJsZSgpKVxuICAgIGN1cnJlbnRWYWx1ZXNba2V5XSA9IHZhbFxuICAgIGF3YWl0IHRoaXMuY29uZmlnJC5wdWJsaXNoKGN1cnJlbnRWYWx1ZXMpXG4gIH1cblxuICBwdWJsaWMgZ2V0Q29uZmlnKCk6IENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnJC5nZXRWYWx1ZSgpXG4gIH1cbn1cbiJdfQ==
|
@@ -1,60 +0,0 @@
|
|
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.2.13", 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.2.13", ngImport: i0, type: InitializeModuleGuard, providedIn: 'any' }); }
|
55
|
-
}
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS1tb2R1bGUtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1pbnRlZ3JhdGlvbi1pbnRlcmZhY2Uvc3JjL2xpYi9zZXJ2aWNlcy9pbml0aWFsaXplLW1vZHVsZS1ndWFyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBRzdDLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFDWSxnQkFBa0MsRUFDbEMsYUFBbUMsRUFDbkMsZUFBZ0MsRUFDaEMsV0FBd0I7UUFIeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTjVCLG9CQUFlLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDOUIsaUJBQVksR0FBRyxJQUFJLENBQUE7SUFNeEIsQ0FBQztJQUVKLFdBQVcsQ0FDVCxNQUE4QixFQUM5QixNQUEyQjtRQUUzQixPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDckMsT0FBTyxHQUFHLENBQUM7WUFDVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7U0FDM0QsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDaEIsQ0FBQTtJQUNILENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksNEJBQTRCLElBQUksQ0FBQyxZQUFZLGlCQUFpQixDQUFDLENBQUE7UUFDcEYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQTtJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxFQUM5QixRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBYyxDQUFDLENBQUE7WUFDL0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ2pELENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekIsQ0FBQTtJQUNILENBQUM7SUFFUyxZQUFZLENBQ3BCLGlCQUFpRztRQUVqRyxJQUFJLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDcEMsT0FBTyxpQkFBaUIsQ0FBQTtRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7SUFDakQsQ0FBQzsrR0F2RFUscUJBQXFCO21IQUFyQixxQkFBcUIsY0FEUixLQUFLOzs0RkFDbEIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IGZpbHRlciwgZnJvbSwgaXNPYnNlcnZhYmxlLCBtYXAsIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFwLCB6aXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdhbnknIH0pXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6ZU1vZHVsZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBwcml2YXRlIFNVUFBPUlRFRF9MQU5HUyA9IFsnZW4nLCAnZGUnXVxuICBwcml2YXRlIERFRkFVTFRfTEFORyA9ICdlbidcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlXG4gICkge31cblxuICBjYW5BY3RpdmF0ZShcbiAgICBfcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgX3N0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgY29uc29sZS50aW1lKCdJbml0aWFsaXplTW9kdWxlR3VhcmQnKVxuICAgIHJldHVybiB6aXAoW1xuICAgICAgdGhpcy5sb2FkVHJhbnNsYXRpb25zKCksXG4gICAgICBmcm9tKHRoaXMuY29uZmlnU2VydmljZS5pc0luaXRpYWxpemVkKSxcbiAgICAgIGZyb20odGhpcy51c2VyU2VydmljZS5pc0luaXRpYWxpemVkKSxcbiAgICAgIGZyb20odGhpcy5hcHBTdGF0ZVNlcnZpY2UuY3VycmVudFdvcmtzcGFjZSQuaXNJbml0aWFsaXplZCksXG4gICAgXSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUudGltZUVuZCgnSW5pdGlhbGl6ZU1vZHVsZUd1YXJkJylcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHRydWUpXG4gICAgKVxuICB9XG5cbiAgZ2V0QmVzdE1hdGNoTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuU1VQUE9SVEVEX0xBTkdTLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICByZXR1cm4gbGFuZ1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgJHtsYW5nfSBpcyBub3Qgc3VwcG9ydGVkLiBVc2luZyAke3RoaXMuREVGQVVMVF9MQU5HfSBhcyBhIGZhbGxiYWNrLmApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLkRFRkFVTFRfTEFOR1xuICB9XG5cbiAgbG9hZFRyYW5zbGF0aW9ucygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5sYW5nJC5waXBlKFxuICAgICAgZmlsdGVyKCh2KSA9PiB2ICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWVyZ2VNYXAoKGxhbmcpID0+IHtcbiAgICAgICAgY29uc3QgYmVzdE1hdGNoTGFuZyA9IHRoaXMuZ2V0QmVzdE1hdGNoTGFuZ3VhZ2UobGFuZyBhcyBzdHJpbmcpXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGJlc3RNYXRjaExhbmcpXG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IG9mKHRydWUpKVxuICAgIClcbiAgfVxuXG4gIHByb3RlY3RlZCB0b09ic2VydmFibGUoXG4gICAgY2FuQWN0aXZhdGVSZXN1bHQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZVxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiB7XG4gICAgaWYgKGlzT2JzZXJ2YWJsZShjYW5BY3RpdmF0ZVJlc3VsdCkpIHtcbiAgICAgIHJldHVybiBjYW5BY3RpdmF0ZVJlc3VsdFxuICAgIH1cbiAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUoY2FuQWN0aXZhdGVSZXN1bHQpKVxuICB9XG59XG4iXX0=
|