@bnsights/bbsf-utilities 1.0.57 → 1.0.59
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/README.md +49 -3
- package/esm2022/lib/shared/authentication/auth.service.mjs +3 -2
- package/esm2022/lib/shared/config/environment.mjs +1 -1
- package/esm2022/lib/shared/services/configuration.service.mjs +24 -6
- package/esm2022/lib/shared/services/environment.service.mjs +5 -1
- package/esm2022/lib/shared/services/index.mjs +2 -1
- package/esm2022/lib/shared/services/preload.service.mjs +57 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/bnsights-bbsf-utilities.mjs +81 -8
- package/fesm2022/bnsights-bbsf-utilities.mjs.map +1 -1
- package/lib/shared/services/configuration.service.d.ts +4 -1
- package/lib/shared/services/environment.service.d.ts +1 -0
- package/lib/shared/services/index.d.ts +1 -0
- package/lib/shared/services/preload.service.d.ts +13 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/bnsights-bbsf-utilities-1.0.57.tgz +0 -0
package/README.md
CHANGED
|
@@ -5,35 +5,81 @@ BBSF Utilities package is part of BBSF 3 packages. It has all the common service
|
|
|
5
5
|
For more info please visit [BBSF Controls documenation](https://bbsfadmin.bnsights.com/controls) or [BBSF documentation](https://bnsightsprojects.visualstudio.com/BBSF%203/_wiki/wikis/BBSF-3.wiki/65/BBSF-Documentation)
|
|
6
6
|
|
|
7
7
|
# Change Log
|
|
8
|
+
|
|
9
|
+
## 1.0.59 / 16-2-2024
|
|
10
|
+
|
|
11
|
+
=====================
|
|
12
|
+
|
|
13
|
+
- Add FileLoader to load environment.js, and translation files before app start
|
|
14
|
+
- to use it add APP_INITIALIZER to use this Service inside ur app.module.ts
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
|
|
18
|
+
export function initializeApp(preload: FileLoaderService) {
|
|
19
|
+
return () => preload.loadEnvironment();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function preloadTranslationsFactory(preload: FileLoaderService) {
|
|
23
|
+
return () => preload.preloadTranslations();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
{
|
|
27
|
+
provide: APP_INITIALIZER,
|
|
28
|
+
useFactory: initializeApp,
|
|
29
|
+
deps: [FileLoaderService],
|
|
30
|
+
multi: true,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
provide: APP_INITIALIZER,
|
|
34
|
+
useFactory: preloadTranslationsFactory,
|
|
35
|
+
deps: [FileLoaderService],
|
|
36
|
+
multi: true,
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 1.0.58 / 9-9-2024
|
|
42
|
+
|
|
43
|
+
=====================
|
|
44
|
+
-multi tenant
|
|
45
|
+
|
|
8
46
|
## 1.0.57 / 8-8-2024
|
|
47
|
+
|
|
9
48
|
===================
|
|
10
49
|
-Update speech language model
|
|
11
50
|
|
|
12
51
|
## 1.0.56 / 4-8-2024
|
|
52
|
+
|
|
13
53
|
===================
|
|
14
54
|
-Added SpeechRecognitionService
|
|
15
55
|
|
|
16
56
|
## 1.0.55 / 3-6-2024
|
|
57
|
+
|
|
17
58
|
===================
|
|
18
|
-
-switching UAEPass login portal language based on user current language
|
|
59
|
+
-switching UAEPass login portal language based on user current language
|
|
19
60
|
|
|
20
61
|
## 1.0.54 / 2-4-2024
|
|
62
|
+
|
|
21
63
|
===================
|
|
22
64
|
-Fix Switching Language
|
|
23
65
|
|
|
24
66
|
## 1.0.53 / 1-4-2024
|
|
67
|
+
|
|
25
68
|
===================
|
|
26
69
|
-Fix Inertnet Connection Issue
|
|
27
70
|
|
|
28
71
|
## 1.0.52 / 28-3-2024
|
|
72
|
+
|
|
29
73
|
===================
|
|
30
|
-
-Fix Switching Language And Logout Issue
|
|
74
|
+
-Fix Switching Language And Logout Issue
|
|
31
75
|
|
|
32
76
|
## 1.0.51 / 27-3-2024
|
|
77
|
+
|
|
33
78
|
===================
|
|
34
|
-
-Fix Redirect Url Issue
|
|
79
|
+
-Fix Redirect Url Issue
|
|
35
80
|
|
|
36
81
|
## 1.0.50 / 12-3-2024
|
|
82
|
+
|
|
37
83
|
===================
|
|
38
84
|
-Update query string 'state' in UAE Pass to contain current language
|
|
39
85
|
|
|
@@ -82,13 +82,14 @@ export class AuthService {
|
|
|
82
82
|
return localStorage.getItem('redirectUrl') ?? "/";
|
|
83
83
|
}
|
|
84
84
|
signOut() {
|
|
85
|
+
let isAuthenticated = this.isAuthenticated();
|
|
85
86
|
this.cookieService.delete(TOKEN_KEY, '/');
|
|
86
87
|
AuthService.timers.map(t => clearInterval(t));
|
|
87
88
|
AuthService.timers = [];
|
|
88
89
|
AuthService.user = null;
|
|
89
90
|
this.user = null;
|
|
90
91
|
localStorage.removeItem("redirectUrl");
|
|
91
|
-
if (
|
|
92
|
+
if (isAuthenticated) {
|
|
92
93
|
this.logout().subscribe(res => {
|
|
93
94
|
if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)
|
|
94
95
|
this.logoutFromUAEPass();
|
|
@@ -234,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
234
235
|
providedIn: 'root',
|
|
235
236
|
}]
|
|
236
237
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.HttpClient }, { type: i2.EnvironmentService }, { type: i2.BBSFTranslateService }, { type: i3.Router }, { type: i4.CookieService }, { type: i5.UtilityService }] });
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBRTFFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQztBQUtqQyxNQUFNLE9BQU8sV0FBVzthQUVmLFNBQUksR0FBZ0IsSUFBSSxBQUFwQixDQUFxQjthQUV6QixlQUFVLEdBQVEsSUFBSSxBQUFaLENBQWE7SUFJOUIsU0FBUzthQUNGLFdBQU0sR0FBRyxFQUFFLEFBQUwsQ0FBTTthQUNaLFlBQU8sR0FBRyxDQUFDLEFBQUosQ0FBSztJQUVuQixZQUFvQixRQUFrQixFQUFVLElBQWdCLEVBQVUsa0JBQXNDLEVBQVUsZ0JBQXNDLEVBQVUsTUFBYyxFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFBbFAsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxD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QUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixNQUFNLFFBQVEsR0FBRyxHQUFHLFlBQVksSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNoQyxPQUFPO0lBQ1QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQztRQUM3SCxNQUFNLFdBQVcsR0FBRztZQUNsQixZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLEVBQUU7U0FDeEQsQ0FBQztRQUNGLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7YUFDbEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDNUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWIsTUFBTSxTQUFTLEdBQUcsR0FBRyxjQUFjLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUMzRCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTztJQUNULENBQUM7OEdBbE9VLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGVzIH0gZnJvbSAnLi4vZW51bXMvYXV0aGVudGljYXRpb24tbW9kZXMtZW51bXMnO1xyXG5pbXBvcnQgeyBzZXRUaW1lb3V0IH0gZnJvbSAndGltZXJzJztcclxuY29uc3QgVE9LRU5fS0VZID0gJ2FjY2Vzc190b2tlbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2Uge1xyXG4gIHB1YmxpYyByZWRpcmVjdFVybDogc3RyaW5nID0gJyc7XHJcbiAgc3RhdGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICB1c2VyOiBVc2VyIHwgbnVsbDtcclxuICBzdGF0aWMgVXNlckNsYWltczogYW55ID0gbnVsbDtcclxuICBwcml2YXRlIGp3dEhlbHBlcjogSnd0SGVscGVyU2VydmljZSA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgcHJpdmF0ZSBpc0F1dGhlbnRpY2F0ZWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmhhc1Rva2VuKCkpO1xyXG4gIGlzQXV0aGVudGljYXRlJCA9IHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAvL3JlZnJlc2hcclxuICBzdGF0aWMgdGltZXJzID0gW107XHJcbiAgc3RhdGljIHNlY29uZHMgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsIHByaXZhdGUgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnVzZXIgPSB0aGlzLmdldFVzZXJNYW5hZ2VyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Rva2VuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFRPS0VOX0tFWSk7XHJcbiAgICByZXR1cm4gdG9rZW4gJiYgIXRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJNYW5hZ2VyKCkge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFRPS0VOX0tFWSk7XHJcbiAgICBpZiAodG9rZW4pIHtcclxuICAgICAgaWYgKCF0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZCh0b2tlbikpXHJcbiAgICAgICAgdGhpcy5oYW5kbGVBY2Nlc3NUb2tlbldpdGhvdXRMYW5ndWFnZSh0b2tlbik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSwgJy8nKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBBdXRoU2VydmljZS50aW1lcnMubWFwKHQgPT4gY2xlYXJJbnRlcnZhbCh0KSk7XHJcbiAgICAgIEF1dGhTZXJ2aWNlLnRpbWVycyA9IFtdO1xyXG4gICAgICBBdXRoU2VydmljZS51c2VyID0gbnVsbDtcclxuICAgICAgdGhpcy51c2VyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcigpIHtcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXI7XHJcbiAgfVxyXG4gIHN0b3JVc2VyKFVzZXI6IGFueSkge1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IHRoaXMudXNlciA9IHRoaXMudXNlcjtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRVc2VyKCkge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXI7XHJcbiAgfVxyXG5cclxuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlciAhPSBudWxsICYmICF0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZChBdXRoU2VydmljZS51c2VyLmFjY2Vzc190b2tlbik7XHJcbiAgfVxyXG4gIGlzVXNlckluUm9sZShhbGxvd2VkUGVybWlzc2lvbikge1xyXG4gICAgbGV0IHNlbGVjdGVkUGVybWlzc2lvblNldElEID0gTnVtYmVyLnBhcnNlSW50KEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZVsnc2VsZWN0ZWRwZXJtaXNzaW9uc2V0aWQnXSk7XHJcbiAgICByZXR1cm4gYWxsb3dlZFBlcm1pc3Npb24uaW5jbHVkZXMoc2VsZWN0ZWRQZXJtaXNzaW9uU2V0SUQpO1xyXG4gIH1cclxuXHJcbiAgYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlclxyXG4gICAgICA/IGAke0F1dGhTZXJ2aWNlLnVzZXIudG9rZW5fdHlwZX0gJHtBdXRoU2VydmljZS51c2VyLmFjY2Vzc190b2tlbn1gXHJcbiAgICAgIDogJyc7XHJcbiAgfVxyXG5cclxuICBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlciAhPSBudWxsID8gQXV0aFNlcnZpY2UudXNlci5wcm9maWxlLmdpdmVuX25hbWUgOiAnJztcclxuICB9XHJcbiAgc2V0VXJsKHVybCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlZGlyZWN0VXJsJywgdXJsKTtcclxuICB9XHJcbiAgZ2V0VXJsKCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZWRpcmVjdFVybCcpID8/IFwiL1wiO1xyXG4gIH1cclxuXHJcbiAgc2lnbk91dCgpIHtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUoVE9LRU5fS0VZLCAnLycpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLm1hcCh0ID0+IGNsZWFySW50ZXJ2YWwodCkpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzID0gW107XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbnVsbDtcclxuICAgIHRoaXMudXNlciA9IG51bGw7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInJlZGlyZWN0VXJsXCIpO1xyXG4gICAgaWYgKHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpIHtcclxuICAgICAgdGhpcy5sb2dvdXQoKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICBpZiAodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QkJTRkF1dGhlbnRpY2F0aW9uTW9kZSgpID09IEF1dGhlbnRpY2F0aW9uTW9kZXMuVUFFUGFzcylcclxuICAgICAgICAgIHRoaXMubG9nb3V0RnJvbVVBRVBhc3MoKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9BZG1pbi9hY2NvdW50L2xvZ2luJ10pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QkJTRkF1dGhlbnRpY2F0aW9uTW9kZSgpID09IEF1dGhlbnRpY2F0aW9uTW9kZXMuVUFFUGFzcylcclxuICAgICAgICB0aGlzLmxvZ291dEZyb21VQUVQYXNzKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9BZG1pbi9hY2NvdW50L2xvZ2luJ10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgbGV0IEFwaVVybCA9ICcvQWNjb3VudC8nO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QXBpVXJsKCkgKyBBcGlVcmwgKyAnTG9nb3V0JywgaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGNsZWFyVXNlclNlc3Npb25DbGFpbXMoKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgQXBpVXJsID0gJy9hcGkvSG9tZS8nO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpICsgQXBpVXJsICsgJ0NsZWFyQ3VycmVudFVzZXJTZXNzaW9uJywgaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgaGFuZGxlQWNjZXNzVG9rZW4ocmVzcG9uc2U6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShUT0tFTl9LRVksICcvJyk7XHJcbiAgICBjb25zdCB0b2tlbiA9IHJlc3BvbnNlO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IG51bGw7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbmV3IFVzZXIoKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIudG9rZW5fdHlwZSA9IFwiQmVhcmVyXCI7XHJcbiAgICBBdXRoU2VydmljZS51c2VyLmFjY2Vzc190b2tlbiA9IHRva2VuO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci5wcm9maWxlID0gdGhpcy5qd3RIZWxwZXIuZGVjb2RlVG9rZW4odG9rZW4pO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci5leHBpcmVzX2F0ID0gdGhpcy5qd3RIZWxwZXIuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbik7XHJcbiAgICB0aGlzLnVzZXIgPSBBdXRoU2VydmljZS51c2VyO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJsYW5ndWFnZVwiLCBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUubG9jYWxlKTtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoVE9LRU5fS0VZLCB0b2tlbiwgQXV0aFNlcnZpY2UudXNlci5leHBpcmVzX2F0LCBcIi9cIiwgbnVsbCwgdHJ1ZSwgJ0xheCcpO1xyXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLnNldFRva2VuU2Vjb25kcygpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLnB1c2godGhpcy5jaGVja1JlZnJlc2hUb2tlbigpKTtcclxuICAgIGF3YWl0IHRoaXMudXBkYXRlTGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUFjY2Vzc1Rva2VuV2l0aG91dExhbmd1YWdlKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUoVE9LRU5fS0VZLCAnLycpO1xyXG4gICAgY29uc3QgdG9rZW4gPSByZXNwb25zZTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSBudWxsO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IG5ldyBVc2VyKCk7XHJcbiAgICBBdXRoU2VydmljZS51c2VyLnRva2VuX3R5cGUgPSBcIkJlYXJlclwiO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW4gPSB0b2tlbjtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZSA9IHRoaXMuand0SGVscGVyLmRlY29kZVRva2VuKHRva2VuKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCA9IHRoaXMuand0SGVscGVyLmdldFRva2VuRXhwaXJhdGlvbkRhdGUodG9rZW4pO1xyXG4gICAgdGhpcy5zZXRUb2tlblNlY29uZHMoKTtcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXI7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImxhbmd1YWdlXCIsIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZS5sb2NhbGUpO1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChUT0tFTl9LRVksIHRva2VuLCBBdXRoU2VydmljZS51c2VyLmV4cGlyZXNfYXQsIFwiL1wiLCBudWxsLCB0cnVlLCAnTGF4Jyk7XHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dCh0cnVlKTtcclxuICAgIEF1dGhTZXJ2aWNlLnRpbWVycy5wdXNoKHRoaXMuY2hlY2tSZWZyZXNoVG9rZW4oKSk7XHJcbiAgfVxyXG4gIGFzeW5jIHVwZGF0ZUxhbmd1YWdlKCkge1xyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSA9PSB0aGlzLnVzZXIucHJvZmlsZS5sb2NhbGUpXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5ndWFnZScsIHRoaXMudXNlci5wcm9maWxlLmxvY2FsZSk7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyAhPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSkge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UucmVzZXRMYW5nKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyk7XHJcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS5yZWxvYWRMYW5nKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlcyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCkgYXMgYW55O1xyXG4gICAgcmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgaWYgKE1hdGguZmxvb3IoQXV0aFNlcnZpY2Uuc2Vjb25kcykgPCAxMjAgJiYgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICAgIEF1dGhTZXJ2aWNlLnRpbWVycy5tYXAodCA9PiBjbGVhckludGVydmFsKHQpKTtcclxuICAgICAgICBBdXRoU2VydmljZS50aW1lcnMgPSBbXTtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuY29va2llU2VydmljZS5nZXQoVE9LRU5fS0VZKTtcclxuICAgICAgICBpZiAodG9rZW4pIHtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBBdXRoU2VydmljZS5zZWNvbmRzLS07XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcbiAgc2V0VG9rZW5TZWNvbmRzKCkge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpIGFzIGFueTtcclxuICAgIEF1dGhTZXJ2aWNlLnNlY29uZHMgPSAoQXV0aFNlcnZpY2UudXNlci5leHBpcmVzX2F0IC0gZGF0ZSkgLyAxMDAwO1xyXG4gIH1cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShUT0tFTl9LRVksICcvJyk7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKSxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgbGV0IEFwaVVybCA9ICcvYXBpL0hvbWUvJztcclxuICAgIHRoaXMuaHR0cC5nZXQodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QXBpVXJsKCkgKyBBcGlVcmwgKyAnUmVmcmVzaEFjY2Vzc1Rva2VuJywgaHR0cE9wdGlvbnMpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5oYW5kbGVBY2Nlc3NUb2tlbldpdGhvdXRMYW5ndWFnZShyZXMudmFsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbG9naW5XaXRoVUFFUGFzcygpIHtcclxuICAgIGNvbnN0IGF1dGhFbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzQXV0aG9yaXphdGlvbkVuZFBvaW50KCl9YDtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXHJcbiAgICAgIGNsaWVudF9pZDogYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0VUFFUGFzc0NsaWVudElEKCl9YCxcclxuICAgICAgcmVkaXJlY3RfdXJpOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzUmVkaXJlY3RVcmwoKX1gLFxyXG4gICAgICBzY29wZTogJ3Vybjp1YWU6ZGlnaXRhbGlkOnByb2ZpbGU6Z2VuZXJhbCB1cm46dWFlOmRpZ2l0YWxpZDpwcm9maWxlOmdlbmVyYWw6cHJvZmlsZVR5cGUgdXJuOnVhZTpkaWdpdGFsaWQ6cHJvZmlsZTpnZW5lcmFsOnVuaWZpZWRJZCcsXHJcbiAgICAgIHN0YXRlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsXHJcbiAgICAgIGFjcl92YWx1ZXM6ICd1cm46c2FmZWxheWVyOnR3czpwb2xpY2llczphdXRoZW50aWNhdGlvbjpsZXZlbDpsb3cnLFxyXG4gICAgICB1aV9sb2NhbGVzOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXNTdHJpbmcgPSBPYmplY3QuZW50cmllcyhxdWVyeVBhcmFtcylcclxuICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX1gKVxyXG4gICAgICAuam9pbignJicpO1xyXG4gICAgY29uc3QgbG9naW5VcmwgPSBgJHthdXRoRW5kcG9pbnR9PyR7cXVlcnlQYXJhbXNTdHJpbmd9YDtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9naW5Vcmw7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBsb2dvdXRGcm9tVUFFUGFzcygpIHtcclxuICAgIGNvbnN0IGxvZ291dEVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0VUFFUGFzc0Jhc2VVcmwoKX0ke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NMb2dvdXRFbmRQb2ludCgpfWA7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgcmVkaXJlY3RfdXJpOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCl9YCxcclxuICAgIH07XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IE9iamVjdC5lbnRyaWVzKHF1ZXJ5UGFyYW1zKVxyXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUpfWApXHJcbiAgICAgIC5qb2luKCcmJyk7XHJcblxyXG4gICAgY29uc3QgbG9nb3V0VXJsID0gYCR7bG9nb3V0RW5kcG9pbnR9PyR7cXVlcnlQYXJhbXNTdHJpbmd9YDtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gbG9nb3V0VXJsO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBRTFFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQztBQUtqQyxNQUFNLE9BQU8sV0FBVzthQUVmLFNBQUksR0FBZ0IsSUFBSSxBQUFwQixDQUFxQjthQUV6QixlQUFVLEdBQVEsSUFBSSxBQUFaLENBQWE7SUFJOUIsU0FBUzthQUNGLFdBQU0sR0FBRyxFQUFFLEFBQUwsQ0FBTTthQUNaLFlBQU8sR0FBRyxDQUFDLEFBQUosQ0FBSztJQUVuQixZQUFvQixRQUFrQixFQUFVLElBQWdCLEVBQVUsa0JBQXNDLEVBQVUsZ0JBQXNDLEVBQVUsTUFBYyxFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFBbFAsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxD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bnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSnd0SGVscGVyU2VydmljZSB9IGZyb20gJ0BhdXRoMC9hbmd1bGFyLWp3dCc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlcyB9IGZyb20gJy4uL2VudW1zL2F1dGhlbnRpY2F0aW9uLW1vZGVzLWVudW1zJztcclxuaW1wb3J0IHsgc2V0VGltZW91dCB9IGZyb20gJ3RpbWVycyc7XHJcbmNvbnN0IFRPS0VOX0tFWSA9ICdhY2Nlc3NfdG9rZW4nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RVcmw6IHN0cmluZyA9ICcnO1xyXG4gIHN0YXRpYyB1c2VyOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgdXNlcjogVXNlciB8IG51bGw7XHJcbiAgc3RhdGljIFVzZXJDbGFpbXM6IGFueSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBqd3RIZWxwZXI6IEp3dEhlbHBlclNlcnZpY2UgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gIHByaXZhdGUgaXNBdXRoZW50aWNhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5oYXNUb2tlbigpKTtcclxuICBpc0F1dGhlbnRpY2F0ZSQgPSB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgLy9yZWZyZXNoXHJcbiAgc3RhdGljIHRpbWVycyA9IFtdO1xyXG4gIHN0YXRpYyBzZWNvbmRzID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSkge1xyXG4gICAgdGhpcy51c2VyID0gdGhpcy5nZXRVc2VyTWFuYWdlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNUb2tlbigpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldChUT0tFTl9LRVkpO1xyXG4gICAgcmV0dXJuIHRva2VuICYmICF0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZCh0b2tlbik7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTWFuYWdlcigpIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldChUT0tFTl9LRVkpO1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIGlmICghdGhpcy5qd3RIZWxwZXIuaXNUb2tlbkV4cGlyZWQodG9rZW4pKVxyXG4gICAgICAgIHRoaXMuaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UodG9rZW4pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShUT0tFTl9LRVksICcvJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgQXV0aFNlcnZpY2UudGltZXJzLm1hcCh0ID0+IGNsZWFySW50ZXJ2YWwodCkpO1xyXG4gICAgICBBdXRoU2VydmljZS50aW1lcnMgPSBbXTtcclxuICAgICAgQXV0aFNlcnZpY2UudXNlciA9IG51bGw7XHJcbiAgICAgIHRoaXMudXNlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG4gIGdldFVzZXIoKSB7XHJcbiAgICB0aGlzLnVzZXIgPSBBdXRoU2VydmljZS51c2VyO1xyXG4gIH1cclxuICBzdG9yVXNlcihVc2VyOiBhbnkpIHtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB0aGlzLnVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50VXNlcigpIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyO1xyXG4gIH1cclxuXHJcbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy5qd3RIZWxwZXIuaXNUb2tlbkV4cGlyZWQoQXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW4pO1xyXG4gIH1cclxuICBpc1VzZXJJblJvbGUoYWxsb3dlZFBlcm1pc3Npb24pIHtcclxuICAgIGxldCBzZWxlY3RlZFBlcm1pc3Npb25TZXRJRCA9IE51bWJlci5wYXJzZUludChBdXRoU2VydmljZS51c2VyLnByb2ZpbGVbJ3NlbGVjdGVkcGVybWlzc2lvbnNldGlkJ10pO1xyXG4gICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uLmluY2x1ZGVzKHNlbGVjdGVkUGVybWlzc2lvblNldElEKTtcclxuICB9XHJcblxyXG4gIGF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXJcclxuICAgICAgPyBgJHtBdXRoU2VydmljZS51c2VyLnRva2VuX3R5cGV9ICR7QXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW59YFxyXG4gICAgICA6ICcnO1xyXG4gIH1cclxuXHJcbiAgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXIgIT0gbnVsbCA/IEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZS5naXZlbl9uYW1lIDogJyc7XHJcbiAgfVxyXG4gIHNldFVybCh1cmwpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdyZWRpcmVjdFVybCcsIHVybCk7XHJcbiAgfVxyXG4gIGdldFVybCgpIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVkaXJlY3RVcmwnKSA/PyBcIi9cIjtcclxuICB9XHJcblxyXG4gIHNpZ25PdXQoKSB7XHJcbiAgICBsZXQgaXNBdXRoZW50aWNhdGVkID0gdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKTtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUoVE9LRU5fS0VZLCAnLycpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLm1hcCh0ID0+IGNsZWFySW50ZXJ2YWwodCkpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzID0gW107XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbnVsbDtcclxuICAgIHRoaXMudXNlciA9IG51bGw7XHJcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInJlZGlyZWN0VXJsXCIpO1xyXG4gICAgaWYgKGlzQXV0aGVudGljYXRlZCkge1xyXG4gICAgICB0aGlzLmxvZ291dCgpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCQlNGQXV0aGVudGljYXRpb25Nb2RlKCkgPT0gQXV0aGVudGljYXRpb25Nb2Rlcy5VQUVQYXNzKVxyXG4gICAgICAgICAgdGhpcy5sb2dvdXRGcm9tVUFFUGFzcygpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCQlNGQXV0aGVudGljYXRpb25Nb2RlKCkgPT0gQXV0aGVudGljYXRpb25Nb2Rlcy5VQUVQYXNzKVxyXG4gICAgICAgIHRoaXMubG9nb3V0RnJvbVVBRVBhc3MoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgQXBpVXJsID0gJy9BY2NvdW50Lyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIEFwaVVybCArICdMb2dvdXQnLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJVc2VyU2Vzc2lvbkNsYWltcygpIHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgIGxldCBBcGlVcmwgPSAnL2FwaS9Ib21lLyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyBBcGlVcmwgKyAnQ2xlYXJDdXJyZW50VXNlclNlc3Npb24nLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYW5kbGVBY2Nlc3NUb2tlbihyZXNwb25zZTogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSwgJy8nKTtcclxuICAgIGNvbnN0IHRva2VuID0gcmVzcG9uc2U7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbnVsbDtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSBuZXcgVXNlcigpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlID0gXCJCZWFyZXJcIjtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VuID0gdG9rZW47XHJcbiAgICBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUgPSB0aGlzLmp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICBBdXRoU2VydmljZS51c2VyLmV4cGlyZXNfYXQgPSB0aGlzLmp3dEhlbHBlci5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuKTtcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXI7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImxhbmd1YWdlXCIsIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZS5sb2NhbGUpO1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChUT0tFTl9LRVksIHRva2VuLCBBdXRoU2VydmljZS51c2VyLmV4cGlyZXNfYXQsIFwiL1wiLCBudWxsLCB0cnVlLCAnTGF4Jyk7XHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc2V0VG9rZW5TZWNvbmRzKCk7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMucHVzaCh0aGlzLmNoZWNrUmVmcmVzaFRva2VuKCkpO1xyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UocmVzcG9uc2U6IGFueSkge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShUT0tFTl9LRVksICcvJyk7XHJcbiAgICBjb25zdCB0b2tlbiA9IHJlc3BvbnNlO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IG51bGw7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbmV3IFVzZXIoKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIudG9rZW5fdHlwZSA9IFwiQmVhcmVyXCI7XHJcbiAgICBBdXRoU2VydmljZS51c2VyLmFjY2Vzc190b2tlbiA9IHRva2VuO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci5wcm9maWxlID0gdGhpcy5qd3RIZWxwZXIuZGVjb2RlVG9rZW4odG9rZW4pO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci5leHBpcmVzX2F0ID0gdGhpcy5qd3RIZWxwZXIuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbik7XHJcbiAgICB0aGlzLnNldFRva2VuU2Vjb25kcygpO1xyXG4gICAgdGhpcy51c2VyID0gQXV0aFNlcnZpY2UudXNlcjtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibGFuZ3VhZ2VcIiwgQXV0aFNlcnZpY2UudXNlci5wcm9maWxlLmxvY2FsZSk7XHJcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KFRPS0VOX0tFWSwgdG9rZW4sIEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCwgXCIvXCIsIG51bGwsIHRydWUsICdMYXgnKTtcclxuICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5uZXh0KHRydWUpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLnB1c2godGhpcy5jaGVja1JlZnJlc2hUb2tlbigpKTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlTGFuZ3VhZ2UoKSB7XHJcbiAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpIHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpID09IHRoaXMudXNlci5wcm9maWxlLmxvY2FsZSlcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmd1YWdlJywgdGhpcy51c2VyLnByb2ZpbGUubG9jYWxlKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nICE9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5yZXNldExhbmcodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKTtcclxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnJlbG9hZExhbmcobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2cocmVzKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja1JlZnJlc2hUb2tlbigpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUoKSBhcyBhbnk7XHJcbiAgICByZXR1cm4gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICBpZiAoTWF0aC5mbG9vcihBdXRoU2VydmljZS5zZWNvbmRzKSA8IDEyMCAmJiB0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XHJcbiAgICAgICAgQXV0aFNlcnZpY2UudGltZXJzLm1hcCh0ID0+IGNsZWFySW50ZXJ2YWwodCkpO1xyXG4gICAgICAgIEF1dGhTZXJ2aWNlLnRpbWVycyA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldChUT0tFTl9LRVkpO1xyXG4gICAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIEF1dGhTZXJ2aWNlLnNlY29uZHMtLTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuICBzZXRUb2tlblNlY29uZHMoKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCkgYXMgYW55O1xyXG4gICAgQXV0aFNlcnZpY2Uuc2Vjb25kcyA9IChBdXRoU2VydmljZS51c2VyLmV4cGlyZXNfYXQgLSBkYXRlKSAvIDEwMDA7XHJcbiAgfVxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSwgJy8nKTtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiB0aGlzLmF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgQXBpVXJsID0gJy9hcGkvSG9tZS8nO1xyXG4gICAgdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIEFwaVVybCArICdSZWZyZXNoQWNjZXNzVG9rZW4nLCBodHRwT3B0aW9ucykuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZUFjY2Vzc1Rva2VuV2l0aG91dExhbmd1YWdlKHJlcy52YWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dpbldpdGhVQUVQYXNzKCkge1xyXG4gICAgY29uc3QgYXV0aEVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0VUFFUGFzc0Jhc2VVcmwoKX0ke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NBdXRob3JpemF0aW9uRW5kUG9pbnQoKX1gO1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgIHJlc3BvbnNlX3R5cGU6ICdjb2RlJyxcclxuICAgICAgY2xpZW50X2lkOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzQ2xpZW50SUQoKX1gLFxyXG4gICAgICByZWRpcmVjdF91cmk6IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKX0ke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NSZWRpcmVjdFVybCgpfWAsXHJcbiAgICAgIHNjb3BlOiAndXJuOnVhZTpkaWdpdGFsaWQ6cHJvZmlsZTpnZW5lcmFsIHVybjp1YWU6ZGlnaXRhbGlkOnByb2ZpbGU6Z2VuZXJhbDpwcm9maWxlVHlwZSB1cm46dWFlOmRpZ2l0YWxpZDpwcm9maWxlOmdlbmVyYWw6dW5pZmllZElkJyxcclxuICAgICAgc3RhdGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyxcclxuICAgICAgYWNyX3ZhbHVlczogJ3VybjpzYWZlbGF5ZXI6dHdzOnBvbGljaWVzOmF1dGhlbnRpY2F0aW9uOmxldmVsOmxvdycsXHJcbiAgICAgIHVpX2xvY2FsZXM6IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyxcclxuICAgIH07XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0cmluZyA9IE9iamVjdC5lbnRyaWVzKHF1ZXJ5UGFyYW1zKVxyXG4gICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAke2tleX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUpfWApXHJcbiAgICAgIC5qb2luKCcmJyk7XHJcbiAgICBjb25zdCBsb2dpblVybCA9IGAke2F1dGhFbmRwb2ludH0/JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dpblVybDtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGxvZ291dEZyb21VQUVQYXNzKCkge1xyXG4gICAgY29uc3QgbG9nb3V0RW5kcG9pbnQgPSBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzQmFzZVVybCgpfSR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0VUFFUGFzc0xvZ291dEVuZFBvaW50KCl9YDtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICByZWRpcmVjdF91cmk6IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKX1gLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXHJcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcclxuICAgICAgLmpvaW4oJyYnKTtcclxuXHJcbiAgICBjb25zdCBsb2dvdXRVcmwgPSBgJHtsb2dvdXRFbmRwb2ludH0/JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dvdXRVcmw7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -9,4 +9,4 @@ export const environment = Object.assign({}, window.Environment);
|
|
|
9
9
|
* because it will have performance impact when throw error
|
|
10
10
|
*/
|
|
11
11
|
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9jb25maWcvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLDJFQUEyRTtBQUMzRSxnRUFBZ0U7QUFFaEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFHLE1BQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUcxRTs7Ozs7R0FLRztBQUNILG1FQUFtRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgZmlsZSBjYW4gYmUgcmVwbGFjZWQgZHVyaW5nIGJ1aWxkIGJ5IHVzaW5nIHRoZSBgZmlsZVJlcGxhY2VtZW50c2AgYXJyYXkuXHJcbi8vIGBuZyBidWlsZCAtLS1wcm9kYCByZXBsYWNlcyBgZW52aXJvbm1lbnQudHNgIHdpdGggYGVudmlyb25tZW50LnByb2QudHNgLlxyXG4vLyBUaGUgbGlzdCBvZiBmaWxlIHJlcGxhY2VtZW50cyBjYW4gYmUgZm91bmQgaW4gYGFuZ3VsYXIuanNvbmAuXHJcblxyXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSBPYmplY3QuYXNzaWduKHt9LCAod2luZG93IGFzIGFueSkuRW52aXJvbm1lbnQpO1xyXG5cclxuXHJcbi8qXHJcbiAqIEluIGRldmVsb3BtZW50IG1vZGUsIHRvIGlnbm9yZSB6b25lIHJlbGF0ZWQgZXJyb3Igc3RhY2sgZnJhbWVzIHN1Y2ggYXNcclxuICogYHpvbmUucnVuYCwgYHpvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrYCBmb3IgZWFzaWVyIGRlYnVnZ2luZywgeW91IGNhblxyXG4gKiBpbXBvcnQgdGhlIGZvbGxvd2luZyBmaWxlLCBidXQgcGxlYXNlIGNvbW1lbnQgaXQgb3V0IGluIHByb2R1Y3Rpb24gbW9kZVxyXG4gKiBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgd2hlbiB0aHJvdyBlcnJvclxyXG4gKi9cclxuLy8gaW1wb3J0ICd6b25lLmpzL2Rpc3Qvem9uZS1lcnJvcic7ICAvLyBJbmNsdWRlZCB3aXRoIEFuZ3VsYXIgQ0xJLlxyXG4iXX0=
|
|
@@ -1,18 +1,36 @@
|
|
|
1
1
|
import { Injectable } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common/http";
|
|
4
|
+
import * as i2 from "../authentication";
|
|
4
5
|
export class ConfigurationService {
|
|
5
6
|
static { this.JsonData = []; }
|
|
6
|
-
constructor(httpClient) {
|
|
7
|
+
constructor(httpClient, authService) {
|
|
7
8
|
this.httpClient = httpClient;
|
|
8
|
-
this.
|
|
9
|
+
this.authService = authService;
|
|
10
|
+
this.httpClient.get("./assets/config/configurations.json")
|
|
11
|
+
.subscribe(data => {
|
|
9
12
|
ConfigurationService.JsonData = data;
|
|
10
13
|
});
|
|
14
|
+
this.currentUserProfile = this.authService.getCurrentUser()?.profile;
|
|
11
15
|
}
|
|
12
16
|
getConfigurationValue(key) {
|
|
13
|
-
|
|
17
|
+
var selectedKey = ConfigurationService.JsonData[key];
|
|
18
|
+
if (selectedKey && typeof selectedKey === 'object') {
|
|
19
|
+
if (selectedKey.OrganizationConfigurations) {
|
|
20
|
+
if (this.currentUserProfile && this.currentUserProfile.organizationGUID_ID) {
|
|
21
|
+
let organizationValue = Array(selectedKey.OrganizationConfigurations).find(o => o.OrganizationID_GUID == this.currentUserProfile.organizationGUID_ID);
|
|
22
|
+
return organizationValue;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return selectedKey.Value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return selectedKey;
|
|
31
|
+
}
|
|
14
32
|
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
34
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, providedIn: 'root' }); }
|
|
17
35
|
}
|
|
18
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, decorators: [{
|
|
@@ -20,5 +38,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
20
38
|
args: [{
|
|
21
39
|
providedIn: 'root'
|
|
22
40
|
}]
|
|
23
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.AuthService }] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFNbkQsTUFBTSxPQUFPLG9CQUFvQjthQUV0QixhQUFRLEdBQVUsRUFBRSxBQUFaLENBQWE7SUFHNUIsWUFBb0IsVUFBc0IsRUFBVSxXQUF3QjtRQUF4RCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUM7YUFDckQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2Qsb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQWEsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sQ0FBQztJQUV6RSxDQUFDO0lBRUQscUJBQXFCLENBQUMsR0FBVztRQUM3QixJQUFJLFdBQVcsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFO1lBQ2hELElBQUksV0FBVyxDQUFDLDBCQUEwQixFQUFFO2dCQUN4QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUU7b0JBQ3hFLElBQUksaUJBQWlCLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFDdEosT0FBTyxpQkFBaUIsQ0FBQztpQkFDNUI7YUFDSjtpQkFBTTtnQkFDSCxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUM7YUFDNUI7U0FDSjthQUFNO1lBQ0gsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDTCxDQUFDOzhHQTVCUSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQUZqQixNQUFNOzsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi9hdXRoZW50aWNhdGlvblwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uU2VydmljZSB7XHJcblxyXG4gICAgc3RhdGljIEpzb25EYXRhOiBhbnlbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBjdXJyZW50VXNlclByb2ZpbGU6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldChcIi4vYXNzZXRzL2NvbmZpZy9jb25maWd1cmF0aW9ucy5qc29uXCIpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uU2VydmljZS5Kc29uRGF0YSA9IGRhdGEgYXMgYW55W107XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVzZXJQcm9maWxlID0gdGhpcy5hdXRoU2VydmljZS5nZXRDdXJyZW50VXNlcigpPy5wcm9maWxlO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXRDb25maWd1cmF0aW9uVmFsdWUoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgc2VsZWN0ZWRLZXkgPSBDb25maWd1cmF0aW9uU2VydmljZS5Kc29uRGF0YVtrZXldO1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEtleSAmJiB0eXBlb2Ygc2VsZWN0ZWRLZXkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEtleS5Pcmdhbml6YXRpb25Db25maWd1cmF0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFVzZXJQcm9maWxlICYmIHRoaXMuY3VycmVudFVzZXJQcm9maWxlLm9yZ2FuaXphdGlvbkdVSURfSUQpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgb3JnYW5pemF0aW9uVmFsdWUgPSBBcnJheShzZWxlY3RlZEtleS5Pcmdhbml6YXRpb25Db25maWd1cmF0aW9ucykuZmluZChvID0+IG8uT3JnYW5pemF0aW9uSURfR1VJRCA9PSB0aGlzLmN1cnJlbnRVc2VyUHJvZmlsZS5vcmdhbml6YXRpb25HVUlEX0lEKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JnYW5pemF0aW9uVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRLZXkuVmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRLZXk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSJdfQ==
|
|
@@ -63,6 +63,10 @@ export class EnvironmentService {
|
|
|
63
63
|
let Mode = environment["BBSF_Enable_WindowsAuthentication"];
|
|
64
64
|
return Mode.toLocaleLowerCase() == 'true';
|
|
65
65
|
}
|
|
66
|
+
getAllowMultiTenancy() {
|
|
67
|
+
let mode = environment["BBSF_AllowMultiTenancy"];
|
|
68
|
+
return mode.toLocaleLowerCase() == 'true';
|
|
69
|
+
}
|
|
66
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
67
71
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EnvironmentService, providedIn: 'root' }); }
|
|
68
72
|
}
|
|
@@ -72,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
72
76
|
providedIn: 'root'
|
|
73
77
|
}]
|
|
74
78
|
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTXBELE1BQU0sT0FBTyxrQkFBa0I7YUFFdEIsYUFBUSxHQUFnQixFQUFFLEFBQWxCLENBQW1CO2FBRTNCLGFBQVEsR0FBZ0IsRUFBRSxBQUFsQixDQUFtQjtJQUVsQyxvQkFBb0I7UUFDbEIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBWSxDQUFDO0lBQ3JELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxXQUFXLENBQUMsc0JBQXNCLENBQVcsQ0FBQztJQUN2RCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELDJCQUEyQjtRQUN6QixPQUFPLFdBQVcsQ0FBQywrQkFBK0IsQ0FBVyxDQUFDO0lBQ2hFLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsT0FBTyxXQUFXLENBQUMsK0JBQStCLENBQVcsQ0FBQztJQUNoRSxDQUFDO0lBRUQsK0JBQStCO1FBQzdCLE9BQU8sV0FBVyxDQUFDLG1DQUFtQyxDQUFXLENBQUM7SUFDcEUsQ0FBQztJQUVELHlCQUF5QjtRQUN2QixJQUFJLElBQUksR0FBRyxXQUFXLENBQUMseUJBQXlCLENBQVcsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQVcsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFXLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QscUJBQXFCO1FBQ25CLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBVyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELCtCQUErQjtRQUM3QixJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsK0JBQStCLENBQVcsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCwyQkFBMkI7UUFDekIsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLDJCQUEyQixDQUFXLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsd0JBQXdCO1FBQ3RCLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBVyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUdELGdDQUFnQztRQUM5QixJQUFJLElBQUksR0FBRyxXQUFXLENBQUMsbUNBQW1DLENBQVcsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLE1BQU0sQ0FBQztJQUM1QyxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBVyxDQUFDO1FBQzNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksTUFBTSxDQUFDO0lBQzVDLENBQUM7OEdBbkZVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vY29uZmlnL2Vudmlyb25tZW50JztcclxuaW1wb3J0IHsgQXJlYU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50U2VydmljZSB7XHJcblxyXG4gIHN0YXRpYyBhcmVhTGlzdDogQXJlYU1vZGVsW10gPSBbXTtcclxuXHJcbiAgc3RhdGljIEFyZWFMaXN0OiBBcmVhTW9kZWxbXSA9IFtdO1xyXG5cclxuICBnZXRFbnZpcm9ubWVudE9iamVjdCgpIHtcclxuICAgIHJldHVybiBlbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIGdldEJhc2VVcmwoKSB7XHJcbiAgICByZXR1cm4gZW52aXJvbm1lbnRbXCJCQlNGX0Jhc2VVUkxcIl07XHJcbiAgfVxyXG5cclxuICBnZXRBcGlVcmwoKSB7XHJcbiAgICByZXR1cm4gZW52aXJvbm1lbnRbXCJCQlNGX0FwaVVybFwiXTtcclxuICB9XHJcblxyXG4gIGdldFByb2R1Y3Rpb25Nb2RlKCkge1xyXG4gICAgcmV0dXJuIGVudmlyb25tZW50W1wiQkJTRl9Jc1Byb2R1Y3Rpb25cIl0gYXMgYm9vbGVhbjtcclxuICB9XHJcblxyXG4gIGdldERlZmF1bHRMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiBlbnZpcm9ubWVudFtcIkJCU0ZfRGVmYXVsdExhbmd1YWdlXCJdIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGdldElkZW50aXR5U2VydmVyVXJsKCkge1xyXG4gICAgcmV0dXJuIGVudmlyb25tZW50W1wiQkJTRl9JZGVudGl0eVNlcnZlclVybFwiXTtcclxuICB9XHJcblxyXG4gIGdldElzSWRlbnRpdHlTZXJ2ZXJFeHRlcm5hbCgpIHtcclxuICAgIHJldHVybiBlbnZpcm9ubWVudFtcIkJCU0ZfSXNFeHRlcm5hbElkZW50aXR5U2VydmVyXCJdIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGdldElzSWRlbnRpdHlTZXJ2ZXJDbGllbnRJZCgpIHtcclxuICAgIHJldHVybiBlbnZpcm9ubWVudFtcIkJCU0ZfSWRlbnRpdHlTZXJ2ZXJfQ2xpZW50X0lkXCJdIGFzIHN0cmluZztcclxuICB9XHJcblxyXG4gIGdldElzSWRlbnRpdHlTZXJ2ZXJDbGllbnRTZWNyZXQoKSB7XHJcbiAgICByZXR1cm4gZW52aXJvbm1lbnRbXCJCQlNGX0lkZW50aXR5U2VydmVyX0NsaWVudF9TZWNyZXRcIl0gYXMgc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0QkJTRkF1dGhlbnRpY2F0aW9uTW9kZSgpIHtcclxuICAgIGxldCBNb2RlID0gZW52aXJvbm1lbnRbXCJCQlNGX0F1dGhlbnRpY2F0aW9uTW9kZVwiXSBhcyBzdHJpbmc7XHJcbiAgICByZXR1cm4gTW9kZTtcclxuICB9XHJcblxyXG4gIGdldFVBRVBhc3NCYXNlVXJsKCkge1xyXG4gICAgbGV0IE1vZGUgPSBlbnZpcm9ubWVudFtcIlVBRVBhc3NfQmFzZVVybFwiXSBhcyBzdHJpbmc7XHJcbiAgICByZXR1cm4gTW9kZTtcclxuICB9XHJcbiAgZ2V0VUFFUGFzc0NsaWVudElEKCkge1xyXG4gICAgbGV0IE1vZGUgPSBlbnZpcm9ubWVudFtcIlVBRVBhc3NfQ2xpZW50SURcIl0gYXMgc3RyaW5nO1xyXG4gICAgcmV0dXJuIE1vZGU7XHJcbiAgfVxyXG4gIGdldFVBRVBhc3NSZWRpcmVjdFVybCgpIHtcclxuICAgIGxldCBNb2RlID0gZW52aXJvbm1lbnRbXCJVQUVQYXNzX1JlZGlyZWN0VXJsXCJdIGFzIHN0cmluZztcclxuICAgIHJldHVybiBNb2RlO1xyXG4gIH1cclxuICBnZXRVQUVQYXNzQXV0aG9yaXphdGlvbkVuZFBvaW50KCkge1xyXG4gICAgbGV0IE1vZGUgPSBlbnZpcm9ubWVudFtcIlVBRVBhc3NfQXV0aG9yaXphdGlvbkVuZFBvaW50XCJdIGFzIHN0cmluZztcclxuICAgIHJldHVybiBNb2RlO1xyXG4gIH1cclxuXHJcbiAgZ2V0VUFFUGFzc1JlZGlyZWN0TG9nb3V0VXJsKCkge1xyXG4gICAgbGV0IE1vZGUgPSBlbnZpcm9ubWVudFtcIlVBRVBhc3NfUmVkaXJlY3RMb2dvdXRVcmxcIl0gYXMgc3RyaW5nO1xyXG4gICAgcmV0dXJuIE1vZGU7XHJcbiAgfVxyXG5cclxuICBnZXRVQUVQYXNzTG9nb3V0RW5kUG9pbnQoKSB7XHJcbiAgICBsZXQgTW9kZSA9IGVudmlyb25tZW50W1wiVUFFUGFzc19Mb2dvdXRFbmRQb2ludFwiXSBhcyBzdHJpbmc7XHJcbiAgICByZXR1cm4gTW9kZTtcclxuICB9XHJcblxyXG5cclxuICBnZXRJc0VuYWJsZVdpbmRvd3NBdXRoZW50aWNhdGlvbigpIHtcclxuICAgIGxldCBNb2RlID0gZW52aXJvbm1lbnRbXCJCQlNGX0VuYWJsZV9XaW5kb3dzQXV0aGVudGljYXRpb25cIl0gYXMgc3RyaW5nO1xyXG4gICAgcmV0dXJuIE1vZGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PSAndHJ1ZSc7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxvd011bHRpVGVuYW5jeSgpIHtcclxuICAgIGxldCBtb2RlID0gZW52aXJvbm1lbnRbXCJCQlNGX0FsbG93TXVsdGlUZW5hbmN5XCJdIGFzIHN0cmluZztcclxuICAgIHJldHVybiBtb2RlLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT0gJ3RydWUnO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -11,4 +11,5 @@ export * from './utility.service';
|
|
|
11
11
|
export * from './word-document.service';
|
|
12
12
|
export * from './language.service';
|
|
13
13
|
export * from './speech-recognition.service';
|
|
14
|
-
|
|
14
|
+
export * from './preload.service';
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcGVhcmFuY2UtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyb2wtdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tYXN0ZXItbGF5b3V0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3QtaGFuZGxlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdHlsZXMtYnVuZGxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvbi1yZXNvbHZlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlsaXR5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dvcmQtZG9jdW1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3BlZWNoLXJlY29nbml0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ByZWxvYWQuc2VydmljZSc7Il19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { lastValueFrom } from 'rxjs';
|
|
3
|
+
import { environment } from '../config/environment';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./translate.service";
|
|
6
|
+
import * as i2 from "@angular/common/http";
|
|
7
|
+
export class FileLoaderService {
|
|
8
|
+
// environment:any;
|
|
9
|
+
constructor(translate, http) {
|
|
10
|
+
this.translate = translate;
|
|
11
|
+
this.http = http;
|
|
12
|
+
this.availableLanguages = ['en', 'ar']; // Add more languages as needed
|
|
13
|
+
this.translate.addLangs(this.availableLanguages);
|
|
14
|
+
}
|
|
15
|
+
loadEnvironment() {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
const script = document.createElement('script');
|
|
18
|
+
script.src = '/assets/config/environment.js';
|
|
19
|
+
script.onload = () => {
|
|
20
|
+
if (window.Environment) {
|
|
21
|
+
Object.assign(environment, window.Environment);
|
|
22
|
+
resolve();
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
reject('Environment variables not found.');
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
script.onerror = () => reject('Failed to load environment.js');
|
|
29
|
+
document.head.appendChild(script);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async preloadTranslations() {
|
|
33
|
+
console.log('Starting to preload translation files...');
|
|
34
|
+
try {
|
|
35
|
+
const requests = this.availableLanguages.map(async (lang) => {
|
|
36
|
+
const translations = await lastValueFrom(this.http.get(`/assets/i18n/${lang}.json`));
|
|
37
|
+
console.log(`Loaded ${lang} translations:`, translations);
|
|
38
|
+
this.translate.setTranslation(lang, translations, true);
|
|
39
|
+
});
|
|
40
|
+
await Promise.all(requests);
|
|
41
|
+
this.translate.use('en'); // Set default language manually
|
|
42
|
+
console.log('All translations preloaded.');
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error('Error preloading translations:', error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FileLoaderService, deps: [{ token: i1.BBSFTranslateService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FileLoaderService, providedIn: 'root' }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FileLoaderService, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{
|
|
54
|
+
providedIn: 'root',
|
|
55
|
+
}]
|
|
56
|
+
}], ctorParameters: () => [{ type: i1.BBSFTranslateService }, { type: i2.HttpClient }] });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvcHJlbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFPcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixtQkFBbUI7SUFDbkIsWUFBb0IsU0FBK0IsRUFBVSxJQUFnQjtRQUF6RCxjQUFTLEdBQVQsU0FBUyxDQUFzQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFGckUsdUJBQWtCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFHdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGVBQWU7UUFDWCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLEdBQUcsR0FBRywrQkFBK0IsQ0FBQztZQUM3QyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO29CQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDO2lCQUNiO3FCQUFNO29CQUNILE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2lCQUM5QztZQUNMLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDL0QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQjtRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDeEQsSUFBSTtZQUNBLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUN4RCxNQUFNLFlBQVksR0FBRyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNyRixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztZQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDOUM7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDMUQ7SUFDTCxDQUFDOzhHQXZDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07OzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9jb25maWcvZW52aXJvbm1lbnQnO1xyXG5cclxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVMb2FkZXJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgYXZhaWxhYmxlTGFuZ3VhZ2VzID0gWydlbicsICdhciddOyAvLyBBZGQgbW9yZSBsYW5ndWFnZXMgYXMgbmVlZGVkXHJcbiAgICAvLyBlbnZpcm9ubWVudDphbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKHRoaXMuYXZhaWxhYmxlTGFuZ3VhZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBsb2FkRW52aXJvbm1lbnQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgICAgIHNjcmlwdC5zcmMgPSAnL2Fzc2V0cy9jb25maWcvZW52aXJvbm1lbnQuanMnO1xyXG4gICAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5FbnZpcm9ubWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oZW52aXJvbm1lbnQsIHdpbmRvdy5FbnZpcm9ubWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0Vudmlyb25tZW50IHZhcmlhYmxlcyBub3QgZm91bmQuJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4gcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBlbnZpcm9ubWVudC5qcycpO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgcHJlbG9hZFRyYW5zbGF0aW9ucygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnU3RhcnRpbmcgdG8gcHJlbG9hZCB0cmFuc2xhdGlvbiBmaWxlcy4uLicpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RzID0gdGhpcy5hdmFpbGFibGVMYW5ndWFnZXMubWFwKGFzeW5jIChsYW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuaHR0cC5nZXQoYC9hc3NldHMvaTE4bi8ke2xhbmd9Lmpzb25gKSk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGVkICR7bGFuZ30gdHJhbnNsYXRpb25zOmAsIHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRUcmFuc2xhdGlvbihsYW5nLCB0cmFuc2xhdGlvbnMsIHRydWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHJlcXVlc3RzKTtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUudXNlKCdlbicpOyAvLyBTZXQgZGVmYXVsdCBsYW5ndWFnZSBtYW51YWxseVxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQWxsIHRyYW5zbGF0aW9ucyBwcmVsb2FkZWQuJyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJlbG9hZGluZyB0cmFuc2xhdGlvbnM6JywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -18,6 +18,7 @@ export * from './lib/shared/services/word-document.service';
|
|
|
18
18
|
export * from './lib/shared/authentication/auth.service';
|
|
19
19
|
export * from './lib/shared/services/language.service';
|
|
20
20
|
export * from './lib/shared/services/speech-recognition.service';
|
|
21
|
+
export * from './lib/shared/services/preload.service';
|
|
21
22
|
//#endregion
|
|
22
23
|
//#region config
|
|
23
24
|
export * from './lib/shared/config/environment';
|
|
@@ -30,4 +31,4 @@ export * from './lib/shared/models/speech-language';
|
|
|
30
31
|
//#region export enums
|
|
31
32
|
export * from './lib/shared/enums/authentication-modes-enums';
|
|
32
33
|
//#endregion
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsUUFBUTtBQUNSLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsa0JBQWtCO0FBRWxCLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHVDQUF1QyxDQUFDO0FBSXRELFlBQVk7QUFFWixnQkFBZ0I7QUFDaEIsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxZQUFZO0FBRVosaUJBQWlCO0FBQ2pCLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELFlBQVk7QUFFWixzQkFBc0I7QUFDdEIsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBibnNpZ2h0cy9iYnNmLXV0aWxpdGllc1xyXG4gKi9cclxuXHJcbi8vTW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jic2YtdXRpbGl0aWVzLm1vZHVsZSc7XHJcblxyXG4vLyNyZWdpb24gc2VydmljZXNcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zZXJ2aWNlcy9yZXF1ZXN0LWhhbmRsZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zZXJ2aWNlcy9zdHlsZXMtYnVuZGxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvY29udHJvbC12YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvbWFzdGVyLWxheW91dC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlc29sdmVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvYXBwZWFyYW5jZS1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NlcnZpY2VzL3dvcmQtZG9jdW1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zZXJ2aWNlcy9zcGVlY2gtcmVjb2duaXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9zZXJ2aWNlcy9wcmVsb2FkLnNlcnZpY2UnO1xyXG5cclxuXHJcblxyXG4vLyNlbmRyZWdpb25cclxuXHJcbi8vI3JlZ2lvbiBjb25maWdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbmZpZy9lbnZpcm9ubWVudCc7XHJcbi8vI2VuZHJlZ2lvblxyXG5cclxuLy8jcmVnaW9uIG1vZGVscyBcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL21vZGVscy9yZXF1ZXN0LW9wdGlvbnMtbW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvbW9kZWxzL3dvcmQtZG9jdW1lbnQtbW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvbW9kZWxzL3NwZWVjaC1sYW5ndWFnZSc7XHJcbi8vI2VuZHJlZ2lvblxyXG5cclxuLy8jcmVnaW9uIGV4cG9ydCBlbnVtc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZW51bXMvYXV0aGVudGljYXRpb24tbW9kZXMtZW51bXMnO1xyXG4vLyNlbmRyZWdpb25cclxuIl19
|
|
@@ -13,7 +13,7 @@ import * as i4$1 from 'ngx-cookie-service';
|
|
|
13
13
|
import { CookieService } from 'ngx-cookie-service';
|
|
14
14
|
import * as i1 from '@angular/common/http';
|
|
15
15
|
import { HttpParams, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
|
|
16
|
-
import { Subject, throwError, Observable, BehaviorSubject } from 'rxjs';
|
|
16
|
+
import { Subject, throwError, Observable, lastValueFrom, BehaviorSubject } from 'rxjs';
|
|
17
17
|
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
18
18
|
import { __decorate } from 'tslib';
|
|
19
19
|
import { plainToClass } from 'class-transformer';
|
|
@@ -78,16 +78,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
78
78
|
|
|
79
79
|
class ConfigurationService {
|
|
80
80
|
static { this.JsonData = []; }
|
|
81
|
-
constructor(httpClient) {
|
|
81
|
+
constructor(httpClient, authService) {
|
|
82
82
|
this.httpClient = httpClient;
|
|
83
|
-
this.
|
|
83
|
+
this.authService = authService;
|
|
84
|
+
this.httpClient.get("./assets/config/configurations.json")
|
|
85
|
+
.subscribe(data => {
|
|
84
86
|
ConfigurationService.JsonData = data;
|
|
85
87
|
});
|
|
88
|
+
this.currentUserProfile = this.authService.getCurrentUser()?.profile;
|
|
86
89
|
}
|
|
87
90
|
getConfigurationValue(key) {
|
|
88
|
-
|
|
91
|
+
var selectedKey = ConfigurationService.JsonData[key];
|
|
92
|
+
if (selectedKey && typeof selectedKey === 'object') {
|
|
93
|
+
if (selectedKey.OrganizationConfigurations) {
|
|
94
|
+
if (this.currentUserProfile && this.currentUserProfile.organizationGUID_ID) {
|
|
95
|
+
let organizationValue = Array(selectedKey.OrganizationConfigurations).find(o => o.OrganizationID_GUID == this.currentUserProfile.organizationGUID_ID);
|
|
96
|
+
return organizationValue;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return selectedKey.Value;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return selectedKey;
|
|
105
|
+
}
|
|
89
106
|
}
|
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
91
108
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, providedIn: 'root' }); }
|
|
92
109
|
}
|
|
93
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigurationService, decorators: [{
|
|
@@ -95,7 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
95
112
|
args: [{
|
|
96
113
|
providedIn: 'root'
|
|
97
114
|
}]
|
|
98
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
115
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: AuthService }] });
|
|
99
116
|
|
|
100
117
|
class AreaModel {
|
|
101
118
|
}
|
|
@@ -366,6 +383,10 @@ class EnvironmentService {
|
|
|
366
383
|
let Mode = environment["BBSF_Enable_WindowsAuthentication"];
|
|
367
384
|
return Mode.toLocaleLowerCase() == 'true';
|
|
368
385
|
}
|
|
386
|
+
getAllowMultiTenancy() {
|
|
387
|
+
let mode = environment["BBSF_AllowMultiTenancy"];
|
|
388
|
+
return mode.toLocaleLowerCase() == 'true';
|
|
389
|
+
}
|
|
369
390
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
370
391
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: EnvironmentService, providedIn: 'root' }); }
|
|
371
392
|
}
|
|
@@ -4492,6 +4513,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
4492
4513
|
}]
|
|
4493
4514
|
}], ctorParameters: () => [{ type: i0.NgZone }, { type: UtilityService }] });
|
|
4494
4515
|
|
|
4516
|
+
class FileLoaderService {
|
|
4517
|
+
// environment:any;
|
|
4518
|
+
constructor(translate, http) {
|
|
4519
|
+
this.translate = translate;
|
|
4520
|
+
this.http = http;
|
|
4521
|
+
this.availableLanguages = ['en', 'ar']; // Add more languages as needed
|
|
4522
|
+
this.translate.addLangs(this.availableLanguages);
|
|
4523
|
+
}
|
|
4524
|
+
loadEnvironment() {
|
|
4525
|
+
return new Promise((resolve, reject) => {
|
|
4526
|
+
const script = document.createElement('script');
|
|
4527
|
+
script.src = '/assets/config/environment.js';
|
|
4528
|
+
script.onload = () => {
|
|
4529
|
+
if (window.Environment) {
|
|
4530
|
+
Object.assign(environment, window.Environment);
|
|
4531
|
+
resolve();
|
|
4532
|
+
}
|
|
4533
|
+
else {
|
|
4534
|
+
reject('Environment variables not found.');
|
|
4535
|
+
}
|
|
4536
|
+
};
|
|
4537
|
+
script.onerror = () => reject('Failed to load environment.js');
|
|
4538
|
+
document.head.appendChild(script);
|
|
4539
|
+
});
|
|
4540
|
+
}
|
|
4541
|
+
async preloadTranslations() {
|
|
4542
|
+
console.log('Starting to preload translation files...');
|
|
4543
|
+
try {
|
|
4544
|
+
const requests = this.availableLanguages.map(async (lang) => {
|
|
4545
|
+
const translations = await lastValueFrom(this.http.get(`/assets/i18n/${lang}.json`));
|
|
4546
|
+
console.log(`Loaded ${lang} translations:`, translations);
|
|
4547
|
+
this.translate.setTranslation(lang, translations, true);
|
|
4548
|
+
});
|
|
4549
|
+
await Promise.all(requests);
|
|
4550
|
+
this.translate.use('en'); // Set default language manually
|
|
4551
|
+
console.log('All translations preloaded.');
|
|
4552
|
+
}
|
|
4553
|
+
catch (error) {
|
|
4554
|
+
console.error('Error preloading translations:', error);
|
|
4555
|
+
}
|
|
4556
|
+
}
|
|
4557
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FileLoaderService, deps: [{ token: BBSFTranslateService }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4558
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FileLoaderService, providedIn: 'root' }); }
|
|
4559
|
+
}
|
|
4560
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: FileLoaderService, decorators: [{
|
|
4561
|
+
type: Injectable,
|
|
4562
|
+
args: [{
|
|
4563
|
+
providedIn: 'root',
|
|
4564
|
+
}]
|
|
4565
|
+
}], ctorParameters: () => [{ type: BBSFTranslateService }, { type: i1.HttpClient }] });
|
|
4566
|
+
|
|
4495
4567
|
const TOKEN_KEY = 'access_token';
|
|
4496
4568
|
class AuthService {
|
|
4497
4569
|
static { this.user = null; }
|
|
@@ -4564,13 +4636,14 @@ class AuthService {
|
|
|
4564
4636
|
return localStorage.getItem('redirectUrl') ?? "/";
|
|
4565
4637
|
}
|
|
4566
4638
|
signOut() {
|
|
4639
|
+
let isAuthenticated = this.isAuthenticated();
|
|
4567
4640
|
this.cookieService.delete(TOKEN_KEY, '/');
|
|
4568
4641
|
AuthService.timers.map(t => clearInterval(t));
|
|
4569
4642
|
AuthService.timers = [];
|
|
4570
4643
|
AuthService.user = null;
|
|
4571
4644
|
this.user = null;
|
|
4572
4645
|
localStorage.removeItem("redirectUrl");
|
|
4573
|
-
if (
|
|
4646
|
+
if (isAuthenticated) {
|
|
4574
4647
|
this.logout().subscribe(res => {
|
|
4575
4648
|
if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)
|
|
4576
4649
|
this.logoutFromUAEPass();
|
|
@@ -4775,5 +4848,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
4775
4848
|
* Generated bundle index. Do not edit.
|
|
4776
4849
|
*/
|
|
4777
4850
|
|
|
4778
|
-
export { AppearanceConfigurationService, AuthService, AuthenticationModes, BBSFTranslateService, BBSFUtilitiesModule, ConfigurationService, ControlValidationService, DocumentOptionsModel, EnvironmentService, LanguageDTO, LanguageService, MasterLayoutService, RequestHandlerService, RequestOptionsModel, SpeechRecognitionService, StylesBundleService, TranslationResolverService, UtilityService, WordDocumentModel, WordDocumentService, environment };
|
|
4851
|
+
export { AppearanceConfigurationService, AuthService, AuthenticationModes, BBSFTranslateService, BBSFUtilitiesModule, ConfigurationService, ControlValidationService, DocumentOptionsModel, EnvironmentService, FileLoaderService, LanguageDTO, LanguageService, MasterLayoutService, RequestHandlerService, RequestOptionsModel, SpeechRecognitionService, StylesBundleService, TranslationResolverService, UtilityService, WordDocumentModel, WordDocumentService, environment };
|
|
4779
4852
|
//# sourceMappingURL=bnsights-bbsf-utilities.mjs.map
|