@bnsights/bbsf-utilities 1.0.42 → 1.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +87 -66
  2. package/bnsights-bbsf-utilities-1.0.44.tgz +0 -0
  3. package/{esm2020 → esm2022}/bnsights-bbsf-utilities.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/bbsf-utilities.module.mjs +59 -59
  5. package/esm2022/lib/shared/authentication/auth.service.mjs +211 -0
  6. package/{esm2020 → esm2022}/lib/shared/authentication/index.mjs +1 -1
  7. package/{esm2020 → esm2022}/lib/shared/config/environment.mjs +11 -11
  8. package/{esm2020 → esm2022}/lib/shared/config/word/constants.mjs +104 -104
  9. package/{esm2020 → esm2022}/lib/shared/config/word/docx-document.mjs +347 -347
  10. package/{esm2020 → esm2022}/lib/shared/config/word/helpers/index.mjs +3 -3
  11. package/{esm2020 → esm2022}/lib/shared/config/word/helpers/render-document-file.mjs +153 -153
  12. package/{esm2020 → esm2022}/lib/shared/config/word/helpers/xml-builder.mjs +1835 -1835
  13. package/{esm2020 → esm2022}/lib/shared/config/word/html-to-docx.mjs +186 -186
  14. package/{esm2020 → esm2022}/lib/shared/config/word/index.mjs +49 -49
  15. package/{esm2020 → esm2022}/lib/shared/config/word/namespaces.mjs +36 -36
  16. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/content-types.mjs +2 -2
  17. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/core.mjs +6 -6
  18. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/document-rels.mjs +3 -3
  19. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/document.template.mjs +17 -17
  20. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/font-table.mjs +3 -3
  21. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/generic-rels.mjs +2 -2
  22. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/index.mjs +12 -12
  23. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/numbering.mjs +3 -3
  24. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/rels.mjs +3 -3
  25. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/settings.mjs +3 -3
  26. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/styles.mjs +4 -4
  27. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/theme.mjs +3 -3
  28. package/{esm2020 → esm2022}/lib/shared/config/word/schemas/web-settings.mjs +3 -3
  29. package/{esm2020 → esm2022}/lib/shared/config/word/utils/color-conversion.mjs +59 -59
  30. package/{esm2020 → esm2022}/lib/shared/config/word/utils/list.mjs +50 -50
  31. package/{esm2020 → esm2022}/lib/shared/config/word/utils/unit-conversion.mjs +29 -29
  32. package/{esm2020 → esm2022}/lib/shared/config/word/utils/url.mjs +6 -6
  33. package/{esm2020 → esm2022}/lib/shared/config/word/utils/vnode.mjs +2 -2
  34. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/documentTemplate.mjs +12 -12
  35. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/index.mjs +3 -3
  36. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/templates/mhtPartTemplate.mjs +3 -3
  38. package/{esm2020 → esm2022}/lib/shared/config/word/word-work/utils.mjs +25 -25
  39. package/{esm2020 → esm2022}/lib/shared/enums/authentication-modes-enums.mjs +7 -7
  40. package/{esm2020 → esm2022}/lib/shared/index.mjs +3 -3
  41. package/{esm2020 → esm2022}/lib/shared/models/UserModel.mjs +2 -2
  42. package/{esm2020 → esm2022}/lib/shared/models/area-model.mjs +2 -2
  43. package/{esm2020 → esm2022}/lib/shared/models/error-model.mjs +2 -2
  44. package/{esm2020 → esm2022}/lib/shared/models/index.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/shared/models/request-options-model.mjs +10 -10
  46. package/{esm2020 → esm2022}/lib/shared/models/word-document-model.mjs +7 -7
  47. package/{esm2020 → esm2022}/lib/shared/services/appearance-configuration.service.mjs +35 -35
  48. package/esm2022/lib/shared/services/configuration.service.mjs +24 -0
  49. package/{esm2020 → esm2022}/lib/shared/services/control-validation.service.mjs +173 -173
  50. package/esm2022/lib/shared/services/environment.service.mjs +75 -0
  51. package/{esm2020 → esm2022}/lib/shared/services/index.mjs +11 -11
  52. package/{esm2020 → esm2022}/lib/shared/services/master-layout.service.mjs +72 -72
  53. package/{esm2020 → esm2022}/lib/shared/services/request-handler.service.mjs +219 -199
  54. package/{esm2020 → esm2022}/lib/shared/services/styles-bundle.service.mjs +55 -55
  55. package/{esm2020 → esm2022}/lib/shared/services/translate.service.mjs +14 -14
  56. package/{esm2020 → esm2022}/lib/shared/services/translation-resolver.service.mjs +6 -6
  57. package/{esm2020 → esm2022}/lib/shared/services/utility.service.mjs +87 -87
  58. package/{esm2020 → esm2022}/lib/shared/services/word-document.service.mjs +38 -38
  59. package/{esm2020 → esm2022}/public-api.mjs +29 -29
  60. package/{fesm2020 → fesm2022}/bnsights-bbsf-utilities.mjs +3856 -3836
  61. package/fesm2022/bnsights-bbsf-utilities.mjs.map +1 -0
  62. package/index.d.ts +5 -5
  63. package/lib/bbsf-utilities.module.d.ts +10 -10
  64. package/lib/shared/authentication/auth.service.d.ts +52 -52
  65. package/lib/shared/authentication/index.d.ts +1 -1
  66. package/lib/shared/config/environment.d.ts +1 -1
  67. package/lib/shared/config/word/constants.d.ts +124 -124
  68. package/lib/shared/config/word/docx-document.d.ts +73 -73
  69. package/lib/shared/config/word/helpers/index.d.ts +1 -1
  70. package/lib/shared/config/word/helpers/render-document-file.d.ts +2 -2
  71. package/lib/shared/config/word/helpers/xml-builder.d.ts +16 -16
  72. package/lib/shared/config/word/html-to-docx.d.ts +1 -1
  73. package/lib/shared/config/word/index.d.ts +1 -1
  74. package/lib/shared/config/word/namespaces.d.ts +36 -36
  75. package/lib/shared/config/word/schemas/content-types.d.ts +1 -1
  76. package/lib/shared/config/word/schemas/core.d.ts +1 -1
  77. package/lib/shared/config/word/schemas/document-rels.d.ts +1 -1
  78. package/lib/shared/config/word/schemas/document.template.d.ts +4 -4
  79. package/lib/shared/config/word/schemas/font-table.d.ts +1 -1
  80. package/lib/shared/config/word/schemas/generic-rels.d.ts +1 -1
  81. package/lib/shared/config/word/schemas/index.d.ts +12 -12
  82. package/lib/shared/config/word/schemas/numbering.d.ts +1 -1
  83. package/lib/shared/config/word/schemas/rels.d.ts +1 -1
  84. package/lib/shared/config/word/schemas/settings.d.ts +1 -1
  85. package/lib/shared/config/word/schemas/styles.d.ts +1 -1
  86. package/lib/shared/config/word/schemas/theme.d.ts +1 -1
  87. package/lib/shared/config/word/schemas/web-settings.d.ts +1 -1
  88. package/lib/shared/config/word/utils/color-conversion.d.ts +7 -7
  89. package/lib/shared/config/word/utils/list.d.ts +6 -6
  90. package/lib/shared/config/word/utils/unit-conversion.d.ts +29 -29
  91. package/lib/shared/config/word/utils/url.d.ts +1 -1
  92. package/lib/shared/config/word/utils/vnode.d.ts +1 -1
  93. package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +12 -12
  94. package/lib/shared/config/word/word-work/templates/index.d.ts +3 -3
  95. package/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.d.ts +1 -1
  96. package/lib/shared/config/word/word-work/templates/mhtPartTemplate.d.ts +1 -1
  97. package/lib/shared/config/word/word-work/utils.d.ts +1 -1
  98. package/lib/shared/enums/authentication-modes-enums.d.ts +6 -6
  99. package/lib/shared/index.d.ts +3 -3
  100. package/lib/shared/models/UserModel.d.ts +6 -6
  101. package/lib/shared/models/area-model.d.ts +4 -4
  102. package/lib/shared/models/error-model.d.ts +5 -5
  103. package/lib/shared/models/index.d.ts +4 -4
  104. package/lib/shared/models/request-options-model.d.ts +11 -11
  105. package/lib/shared/models/word-document-model.d.ts +16 -16
  106. package/lib/shared/services/appearance-configuration.service.d.ts +14 -14
  107. package/lib/shared/services/configuration.service.d.ts +10 -10
  108. package/lib/shared/services/control-validation.service.d.ts +23 -23
  109. package/lib/shared/services/environment.service.d.ts +25 -25
  110. package/lib/shared/services/index.d.ts +11 -11
  111. package/lib/shared/services/master-layout.service.d.ts +24 -24
  112. package/lib/shared/services/request-handler.service.d.ts +35 -33
  113. package/lib/shared/services/styles-bundle.service.d.ts +12 -12
  114. package/lib/shared/services/translate.service.d.ts +6 -6
  115. package/lib/shared/services/translation-resolver.service.d.ts +2 -2
  116. package/lib/shared/services/utility.service.d.ts +23 -23
  117. package/lib/shared/services/word-document.service.d.ts +8 -8
  118. package/package.json +28 -29
  119. package/public-api.d.ts +17 -17
  120. package/bnsights-bbsf-utilities-1.0.42.tgz +0 -0
  121. package/esm2020/lib/shared/authentication/auth.service.mjs +0 -211
  122. package/esm2020/lib/shared/services/configuration.service.mjs +0 -24
  123. package/esm2020/lib/shared/services/environment.service.mjs +0 -75
  124. package/fesm2015/bnsights-bbsf-utilities.mjs +0 -4555
  125. package/fesm2015/bnsights-bbsf-utilities.mjs.map +0 -1
  126. package/fesm2020/bnsights-bbsf-utilities.mjs.map +0 -1
@@ -1,24 +1,24 @@
1
- import { Router } from '@angular/router';
2
- import { TranslateService } from '@ngx-translate/core';
3
- import { EnvironmentService, RequestHandlerService, StylesBundleService } from '.';
4
- import { AuthService } from '../authentication';
5
- import * as i0 from "@angular/core";
6
- export declare class MasterLayoutService {
7
- private router;
8
- private http;
9
- private authService;
10
- private stylesBundleService;
11
- private translate;
12
- private environmentService;
13
- apiUrl: string;
14
- constructor(router: Router, http: RequestHandlerService, authService: AuthService, stylesBundleService: StylesBundleService, translate: TranslateService, environmentService: EnvironmentService);
15
- switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string): void;
16
- reloadComponent(): void;
17
- private changeLanguage;
18
- logError(error: string): import("rxjs").Observable<unknown>;
19
- private updateUserInfo;
20
- switchRole(permissionSetID: string): void;
21
- private updateRole;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<MasterLayoutService, never>;
23
- static ɵprov: i0.ɵɵInjectableDeclaration<MasterLayoutService>;
24
- }
1
+ import { Router } from '@angular/router';
2
+ import { TranslateService } from '@ngx-translate/core';
3
+ import { EnvironmentService, RequestHandlerService, StylesBundleService } from '.';
4
+ import { AuthService } from '../authentication';
5
+ import * as i0 from "@angular/core";
6
+ export declare class MasterLayoutService {
7
+ private router;
8
+ private http;
9
+ private authService;
10
+ private stylesBundleService;
11
+ private translate;
12
+ private environmentService;
13
+ apiUrl: string;
14
+ constructor(router: Router, http: RequestHandlerService, authService: AuthService, stylesBundleService: StylesBundleService, translate: TranslateService, environmentService: EnvironmentService);
15
+ switchLang(lang: string, bundleEnglishName: string, bundleArabicName: string): void;
16
+ reloadComponent(): void;
17
+ private changeLanguage;
18
+ logError(error: string): import("rxjs").Observable<unknown>;
19
+ private updateUserInfo;
20
+ switchRole(permissionSetID: string): void;
21
+ private updateRole;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<MasterLayoutService, never>;
23
+ static ɵprov: i0.ɵɵInjectableDeclaration<MasterLayoutService>;
24
+ }
@@ -1,33 +1,35 @@
1
- import { HttpClient, HttpParams } from "@angular/common/http";
2
- import { OnDestroy } from '@angular/core';
3
- import { Router } from '@angular/router';
4
- import { Observable, Subject } from 'rxjs';
5
- import { BBSFTranslateService, EnvironmentService, UtilityService } from ".";
6
- import { AuthService } from '../authentication/auth.service';
7
- import { RequestOptionsModel } from '../models';
8
- import * as i0 from "@angular/core";
9
- export declare class RequestHandlerService implements OnDestroy {
10
- private http;
11
- private authService;
12
- private environmentService;
13
- private utilityService;
14
- private bbsfTranslateService;
15
- private router;
16
- private requestOptions;
17
- private currentLanguage;
18
- onDestroy$: Subject<void>;
19
- constructor(http: HttpClient, authService: AuthService, environmentService: EnvironmentService, utilityService: UtilityService, bbsfTranslateService: BBSFTranslateService, router: Router);
20
- getLuckyNumber(): Observable<number>;
21
- get<T>(Url: string, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T>;
22
- post<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T>;
23
- delete<T>(Url: string, deletedId: string, requestOptions?: RequestOptionsModel, responseType?: new () => T, params?: HttpParams): Observable<T>;
24
- put<T>(Url: string, model?: any, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T>;
25
- patch<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T>;
26
- download<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T>;
27
- destroyHandler(): void;
28
- ngOnDestroy(): void;
29
- private handleError;
30
- private getHeaders;
31
- static ɵfac: i0.ɵɵFactoryDeclaration<RequestHandlerService, never>;
32
- static ɵprov: i0.ɵɵInjectableDeclaration<RequestHandlerService>;
33
- }
1
+ import { HttpClient, HttpHeaders, HttpParams } from "@angular/common/http";
2
+ import { OnDestroy } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { Observable, Subject } from 'rxjs';
5
+ import { BBSFTranslateService, EnvironmentService, UtilityService } from ".";
6
+ import { AuthService } from '../authentication/auth.service';
7
+ import { RequestOptionsModel } from '../models';
8
+ import * as i0 from "@angular/core";
9
+ export declare class RequestHandlerService implements OnDestroy {
10
+ private http;
11
+ private authService;
12
+ private environmentService;
13
+ private utilityService;
14
+ private bbsfTranslateService;
15
+ private router;
16
+ private requestOptions;
17
+ private currentLanguage;
18
+ onDestroy$: Subject<void>;
19
+ constructor(http: HttpClient, authService: AuthService, environmentService: EnvironmentService, utilityService: UtilityService, bbsfTranslateService: BBSFTranslateService, router: Router);
20
+ getLuckyNumber(): Observable<number>;
21
+ get<T>(Url: string, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T>;
22
+ post<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T>;
23
+ delete<T>(Url: string, deletedId: string, requestOptions?: RequestOptionsModel, responseType?: new () => T, params?: HttpParams): Observable<T>;
24
+ put<T>(Url: string, model?: any, params?: HttpParams, responseType?: new () => T, requestOptions?: RequestOptionsModel): Observable<T>;
25
+ patch<T>(Url: string, model?: any, responseType?: new () => T, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T>;
26
+ download<T>(Url: string, params?: HttpParams, requestOptions?: RequestOptionsModel): Observable<T>;
27
+ Upload<T>(Url: string, model?: any): Observable<any>;
28
+ destroyHandler(): void;
29
+ ngOnDestroy(): void;
30
+ private handleError;
31
+ getHeaders(): HttpHeaders;
32
+ getHeadersUpdated(): HttpHeaders;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<RequestHandlerService, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<RequestHandlerService>;
35
+ }
@@ -1,12 +1,12 @@
1
- import { BBSFTranslateService } from '.';
2
- import * as i0 from "@angular/core";
3
- export declare class StylesBundleService {
4
- private document;
5
- private translateService;
6
- constructor(document: Document, translateService: BBSFTranslateService);
7
- loadThemes(lang: string, bundleEnglishName: string, bundleArabicName: string): void;
8
- loadThemesColor(theme: string, bundleDarkName: string, bundleLightName: string): void;
9
- loadStyleBundle(styleName: string): void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<StylesBundleService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<StylesBundleService>;
12
- }
1
+ import { BBSFTranslateService } from '.';
2
+ import * as i0 from "@angular/core";
3
+ export declare class StylesBundleService {
4
+ private document;
5
+ private translateService;
6
+ constructor(document: Document, translateService: BBSFTranslateService);
7
+ loadThemes(lang: string, bundleEnglishName: string, bundleArabicName: string): void;
8
+ loadThemesColor(theme: string, bundleDarkName: string, bundleLightName: string): void;
9
+ loadStyleBundle(styleName: string): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<StylesBundleService, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<StylesBundleService>;
12
+ }
@@ -1,6 +1,6 @@
1
- import { TranslateService } from "@ngx-translate/core";
2
- import * as i0 from "@angular/core";
3
- export declare class BBSFTranslateService extends TranslateService {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<BBSFTranslateService, never>;
5
- static ɵprov: i0.ɵɵInjectableDeclaration<BBSFTranslateService>;
6
- }
1
+ import { TranslateService } from "@ngx-translate/core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class BBSFTranslateService extends TranslateService {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BBSFTranslateService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<BBSFTranslateService>;
6
+ }
@@ -1,2 +1,2 @@
1
- import { ResolveFn } from "@angular/router";
2
- export declare const TranslationResolverService: ResolveFn<any>;
1
+ import { ResolveFn } from "@angular/router";
2
+ export declare const TranslationResolverService: ResolveFn<any>;
@@ -1,23 +1,23 @@
1
- import { Injector } from '@angular/core';
2
- import { NgBlockUI } from 'ng-block-ui';
3
- import { BBSFTranslateService, EnvironmentService } from '.';
4
- import * as i0 from "@angular/core";
5
- export declare class UtilityService {
6
- private translator;
7
- private environmentService;
8
- private injector;
9
- isCreatedBefore: boolean;
10
- blockUI: NgBlockUI;
11
- constructor(translator: BBSFTranslateService, environmentService: EnvironmentService, injector: Injector);
12
- getResourceValue(Key: string): string;
13
- getCurrentLanguage(): string;
14
- isCurrentLanguageEnglish(): boolean;
15
- isCurrentLanguageArabic(): boolean;
16
- notifySuccessMessage(Message?: string, title?: string, time?: number, showHeader?: boolean): void;
17
- notifyErrorMessage(Message?: string, title?: string, time?: number, showHeader?: boolean): void;
18
- notifyWarningMessage(Message?: string, title?: string, time?: number, showHeader?: boolean): void;
19
- startBlockUI(): void;
20
- stopBlockUI(): void;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<UtilityService, never>;
22
- static ɵprov: i0.ɵɵInjectableDeclaration<UtilityService>;
23
- }
1
+ import { Injector } from '@angular/core';
2
+ import { NgBlockUI } from 'ng-block-ui';
3
+ import { BBSFTranslateService, EnvironmentService } from '.';
4
+ import * as i0 from "@angular/core";
5
+ export declare class UtilityService {
6
+ private translator;
7
+ private environmentService;
8
+ private injector;
9
+ isCreatedBefore: boolean;
10
+ blockUI: NgBlockUI;
11
+ constructor(translator: BBSFTranslateService, environmentService: EnvironmentService, injector: Injector);
12
+ getResourceValue(Key: string): string;
13
+ getCurrentLanguage(): string;
14
+ isCurrentLanguageEnglish(): boolean;
15
+ isCurrentLanguageArabic(): boolean;
16
+ notifySuccessMessage(Message?: string, title?: string, time?: number, showHeader?: boolean): void;
17
+ notifyErrorMessage(Message?: string, title?: string, time?: number, showHeader?: boolean): void;
18
+ notifyWarningMessage(Message?: string, title?: string, time?: number, showHeader?: boolean): void;
19
+ startBlockUI(): void;
20
+ stopBlockUI(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<UtilityService, never>;
22
+ static ɵprov: i0.ɵɵInjectableDeclaration<UtilityService>;
23
+ }
@@ -1,8 +1,8 @@
1
- /// <reference types="node" />
2
- import { WordDocumentModel } from '../models';
3
- import * as i0 from "@angular/core";
4
- export declare class WordDocumentService {
5
- generateWordByteFile(model: WordDocumentModel): Promise<Buffer | Blob>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<WordDocumentService, never>;
7
- static ɵprov: i0.ɵɵInjectableDeclaration<WordDocumentService>;
8
- }
1
+ /// <reference types="node" />
2
+ import { WordDocumentModel } from '../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class WordDocumentService {
5
+ generateWordByteFile(model: WordDocumentModel): Promise<Buffer | Blob>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<WordDocumentService, never>;
7
+ static ɵprov: i0.ɵɵInjectableDeclaration<WordDocumentService>;
8
+ }
package/package.json CHANGED
@@ -1,37 +1,38 @@
1
1
  {
2
2
  "name": "@bnsights/bbsf-utilities",
3
- "version": "1.0.42",
3
+ "version": "1.0.44",
4
4
  "peerDependencies": {
5
- "@angular/core": "^15.2.10",
6
- "@angular/common": "^15.2.10",
7
- "@angular/forms": "^15.2.10",
8
- "@angular/cdk": "^15.2.9",
9
- "@angular/compiler": "^15.2.10",
10
- "@angular/router": "^15.2.10",
11
- "@angular/localize": "^15.2.10",
12
- "@angular/animations": "^15.2.10"
5
+ "@angular/animations": "^17.0.5",
6
+ "@angular/cdk": "^17.0.2",
7
+ "@angular/common": "^17.0.5",
8
+ "@angular/compiler": "^17.0.5",
9
+ "@angular/core": "^17.0.5",
10
+ "@angular/forms": "^17.0.5",
11
+ "@angular/localize": "^17.0.5",
12
+ "@angular/router": "^17.0.5"
13
13
  },
14
14
  "dependencies": {
15
- "virtual-dom": "^2.1.1",
16
- "xmlbuilder2": "2.1.2",
15
+ "@auth0/angular-jwt": "^5.2.0",
16
+ "color-name": "^2.0.0",
17
+ "escape-html": "^1.0.3",
17
18
  "html-to-vdom": "^0.7.0",
18
- "image-size": "^1.0.0",
19
+ "image-size": "^1.0.2",
19
20
  "image-to-base64": "^2.2.0",
20
- "jszip": "^3.7.1",
21
+ "jszip": "^3.10.1",
21
22
  "lodash": "^4.17.21",
22
23
  "mime-types": "^2.1.35",
23
- "nanoid": "^3.1.25",
24
- "color-name": "^1.1.4",
25
- "escape-html": "^1.0.3",
26
- "ngx-cookie-service": "15.0.0",
27
- "@auth0/angular-jwt": "^5.2.0",
28
- "tslib": "^2.3.0"
24
+ "ngx-cookie-service": "17.0.0",
25
+ "virtual-dom": "^2.1.1",
26
+ "xmlbuilder2": "3.1.1",
27
+ "ng-block-ui": "^4.0.1",
28
+ "ngx-toastr": "^18.0.0",
29
+ "oidc-client": "^1.11.5",
30
+ "class-transformer": "^0.5.1",
31
+ "nanoid": "^5.0.4",
32
+ "tslib": "^2.6.2",
33
+ "@ngx-translate/core": "^15.0.0"
29
34
  },
30
- "module": "fesm2015/bnsights-bbsf-utilities.mjs",
31
- "es2020": "fesm2020/bnsights-bbsf-utilities.mjs",
32
- "esm2020": "esm2020/bnsights-bbsf-utilities.mjs",
33
- "fesm2020": "fesm2020/bnsights-bbsf-utilities.mjs",
34
- "fesm2015": "fesm2015/bnsights-bbsf-utilities.mjs",
35
+ "module": "fesm2022/bnsights-bbsf-utilities.mjs",
35
36
  "typings": "index.d.ts",
36
37
  "exports": {
37
38
  "./package.json": {
@@ -39,11 +40,9 @@
39
40
  },
40
41
  ".": {
41
42
  "types": "./index.d.ts",
42
- "esm2020": "./esm2020/bnsights-bbsf-utilities.mjs",
43
- "es2020": "./fesm2020/bnsights-bbsf-utilities.mjs",
44
- "es2015": "./fesm2015/bnsights-bbsf-utilities.mjs",
45
- "node": "./fesm2015/bnsights-bbsf-utilities.mjs",
46
- "default": "./fesm2020/bnsights-bbsf-utilities.mjs"
43
+ "esm2022": "./esm2022/bnsights-bbsf-utilities.mjs",
44
+ "esm": "./esm2022/bnsights-bbsf-utilities.mjs",
45
+ "default": "./fesm2022/bnsights-bbsf-utilities.mjs"
47
46
  }
48
47
  },
49
48
  "sideEffects": false
package/public-api.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- export * from './lib/bbsf-utilities.module';
2
- export * from './lib/shared/services/utility.service';
3
- export * from './lib/shared/services/environment.service';
4
- export * from './lib/shared/services/request-handler.service';
5
- export * from './lib/shared/services/styles-bundle.service';
6
- export * from './lib/shared/services/translate.service';
7
- export * from './lib/shared/services/control-validation.service';
8
- export * from './lib/shared/services/master-layout.service';
9
- export * from './lib/shared/services/translation-resolver.service';
10
- export * from './lib/shared/services/appearance-configuration.service';
11
- export * from './lib/shared/services/configuration.service';
12
- export * from './lib/shared/services/word-document.service';
13
- export * from './lib/shared/authentication/auth.service';
14
- export * from './lib/shared/config/environment';
15
- export * from './lib/shared/models/request-options-model';
16
- export * from './lib/shared/models/word-document-model';
17
- export * from './lib/shared/enums/authentication-modes-enums';
1
+ export * from './lib/bbsf-utilities.module';
2
+ export * from './lib/shared/services/utility.service';
3
+ export * from './lib/shared/services/environment.service';
4
+ export * from './lib/shared/services/request-handler.service';
5
+ export * from './lib/shared/services/styles-bundle.service';
6
+ export * from './lib/shared/services/translate.service';
7
+ export * from './lib/shared/services/control-validation.service';
8
+ export * from './lib/shared/services/master-layout.service';
9
+ export * from './lib/shared/services/translation-resolver.service';
10
+ export * from './lib/shared/services/appearance-configuration.service';
11
+ export * from './lib/shared/services/configuration.service';
12
+ export * from './lib/shared/services/word-document.service';
13
+ export * from './lib/shared/authentication/auth.service';
14
+ export * from './lib/shared/config/environment';
15
+ export * from './lib/shared/models/request-options-model';
16
+ export * from './lib/shared/models/word-document-model';
17
+ export * from './lib/shared/enums/authentication-modes-enums';
Binary file
@@ -1,211 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { BehaviorSubject } from 'rxjs';
4
- import { JwtHelperService } from '@auth0/angular-jwt';
5
- import { User } from '../models/UserModel';
6
- import { AuthenticationModes } from '../enums/authentication-modes-enums';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "../services";
10
- import * as i3 from "@angular/router";
11
- import * as i4 from "ngx-cookie-service";
12
- import * as i5 from "../services/utility.service";
13
- const TOKEN_KEY = 'access_token';
14
- export class AuthService {
15
- constructor(injector, http, environmentService, translateService, router, cookieService, utilityService) {
16
- this.injector = injector;
17
- this.http = http;
18
- this.environmentService = environmentService;
19
- this.translateService = translateService;
20
- this.router = router;
21
- this.cookieService = cookieService;
22
- this.utilityService = utilityService;
23
- this.redirectUrl = '';
24
- this.jwtHelper = new JwtHelperService();
25
- this.isAuthenticatedSubject = new BehaviorSubject(this.hasToken());
26
- this.isAuthenticate$ = this.isAuthenticatedSubject.asObservable();
27
- this.user = this.getUserManager();
28
- }
29
- hasToken() {
30
- const token = this.cookieService.get(TOKEN_KEY);
31
- return token && !this.jwtHelper.isTokenExpired(token);
32
- }
33
- getUserManager() {
34
- const token = this.cookieService.get(TOKEN_KEY);
35
- if (token)
36
- this.handleAccessTokenWithoutLanguage(token);
37
- return AuthService.user;
38
- }
39
- getUser() {
40
- this.user = AuthService.user;
41
- }
42
- storUser(User) {
43
- AuthService.user = this.user = this.user;
44
- }
45
- getCurrentUser() {
46
- return AuthService.user;
47
- }
48
- async isAuthenticated() {
49
- return AuthService.user != null && !this.jwtHelper.isTokenExpired(AuthService.user.access_token);
50
- }
51
- isUserInRole(allowedPermission) {
52
- let selectedPermissionSetID = Number.parseInt(this.user.profile['selectedpermissionsetid']);
53
- return allowedPermission.includes(selectedPermissionSetID);
54
- }
55
- authorizationHeaderValue() {
56
- return AuthService.user
57
- ? `${AuthService.user.token_type} ${AuthService.user.access_token}`
58
- : '';
59
- }
60
- name() {
61
- return AuthService.user != null ? AuthService.user.profile.given_name : '';
62
- }
63
- setUrl(url) {
64
- localStorage.setItem('redirectUrl', url);
65
- }
66
- getUrl() {
67
- return localStorage.getItem('redirectUrl') ?? "/";
68
- }
69
- signOut() {
70
- AuthService.timers.map(t => clearInterval(t));
71
- AuthService.timers = [];
72
- if (!this.isAuthenticated()) {
73
- this.cookieService.delete(TOKEN_KEY);
74
- this.router.navigate(['/Admin/account/login']);
75
- }
76
- this.logout().subscribe(res => {
77
- this.cookieService.delete(TOKEN_KEY);
78
- if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)
79
- this.logoutFromUAEPass();
80
- else
81
- this.router.navigate(['/Admin/account/login']);
82
- });
83
- }
84
- logout() {
85
- const httpOptions = {
86
- headers: new HttpHeaders({
87
- 'Content-Type': 'application/json',
88
- }),
89
- };
90
- let ApiUrl = '/Account/';
91
- return this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'Logout', httpOptions);
92
- }
93
- clearUserSessionClaims() {
94
- const httpOptions = {
95
- headers: new HttpHeaders({
96
- 'Content-Type': 'application/json',
97
- }),
98
- };
99
- let ApiUrl = '/api/Home/';
100
- return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);
101
- }
102
- async handleAccessToken(response) {
103
- const token = response;
104
- AuthService.user = new User();
105
- AuthService.user.token_type = "Bearer";
106
- AuthService.user.access_token = token;
107
- AuthService.user.profile = this.jwtHelper.decodeToken(token);
108
- AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);
109
- AuthService.timers.map(t => clearInterval(t));
110
- AuthService.timers = [];
111
- this.setTokenSeconds();
112
- AuthService.timers.push(this.checkRefreshToken());
113
- this.user = AuthService.user;
114
- await this.updateLanguage();
115
- this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');
116
- this.isAuthenticatedSubject.next(true);
117
- }
118
- handleAccessTokenWithoutLanguage(response) {
119
- const token = response;
120
- AuthService.user = new User();
121
- AuthService.user.token_type = "Bearer";
122
- AuthService.user.access_token = token;
123
- AuthService.user.profile = this.jwtHelper.decodeToken(token);
124
- AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);
125
- this.setTokenSeconds();
126
- this.user = AuthService.user;
127
- this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');
128
- this.isAuthenticatedSubject.next(true);
129
- }
130
- async updateLanguage() {
131
- if (!localStorage.getItem('language') ||
132
- localStorage.getItem('language') == this.user.profile.locale)
133
- localStorage.setItem('language', this.user.profile.locale);
134
- if (this.translateService.currentLang != localStorage.getItem('language')) {
135
- this.translateService.resetLang(this.translateService.currentLang);
136
- await this.translateService
137
- .reloadLang(localStorage.getItem('language'))
138
- .subscribe((res) => {
139
- console.log(res);
140
- });
141
- }
142
- }
143
- checkRefreshToken() {
144
- let date = new Date();
145
- return setInterval(() => {
146
- if (Math.floor(AuthService.seconds) < 120 && this.isAuthenticated())
147
- this.refresh();
148
- AuthService.seconds--;
149
- }, 1000);
150
- }
151
- setTokenSeconds() {
152
- let date = new Date();
153
- AuthService.seconds = (AuthService.user.expires_at - date) / 1000;
154
- }
155
- refresh() {
156
- const httpOptions = {
157
- headers: new HttpHeaders({
158
- 'Content-Type': 'application/json',
159
- 'Authorization': this.authorizationHeaderValue(),
160
- }),
161
- };
162
- let ApiUrl = '/api/Home/';
163
- this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'RefreshAccessToken', httpOptions).subscribe((res) => {
164
- this.cookieService.delete(TOKEN_KEY);
165
- this.handleAccessTokenWithoutLanguage(res.val);
166
- });
167
- }
168
- loginWithUAEPass() {
169
- const authEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassAuthorizationEndPoint()}`;
170
- const queryParams = {
171
- response_type: 'code',
172
- client_id: `${this.environmentService.getUAEPassClientID()}`,
173
- redirect_uri: `${this.environmentService.getBaseUrl()}${this.environmentService.getUAEPassRedirectUrl()}`,
174
- scope: 'urn:uae:digitalid:profile:general urn:uae:digitalid:profile:general:profileType urn:uae:digitalid:profile:general:unifiedId',
175
- state: 'pd3PgezRwk596u2yfRwqOgru',
176
- acr_values: 'urn:safelayer:tws:policies:authentication:level:low'
177
- };
178
- const queryParamsString = Object.entries(queryParams)
179
- .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
180
- .join('&');
181
- const loginUrl = `${authEndpoint}?${queryParamsString}`;
182
- window.location.href = loginUrl;
183
- return;
184
- }
185
- logoutFromUAEPass() {
186
- const logoutEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassLogoutEndPoint()}`;
187
- const queryParams = {
188
- redirect_uri: `${this.environmentService.getBaseUrl()}`,
189
- };
190
- const queryParamsString = Object.entries(queryParams)
191
- .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
192
- .join('&');
193
- const logoutUrl = `${logoutEndpoint}?${queryParamsString}`;
194
- window.location.href = logoutUrl;
195
- return;
196
- }
197
- }
198
- AuthService.user = null;
199
- AuthService.UserClaims = null;
200
- //refresh
201
- AuthService.timers = [];
202
- AuthService.seconds = 0;
203
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, deps: [{ token: i0.Injector }, { token: i1.HttpClient }, { token: i2.EnvironmentService }, { token: i2.BBSFTranslateService }, { token: i3.Router }, { token: i4.CookieService }, { token: i5.UtilityService }], target: i0.ɵɵFactoryTarget.Injectable });
204
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, providedIn: 'root' });
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, decorators: [{
206
- type: Injectable,
207
- args: [{
208
- providedIn: 'root',
209
- }]
210
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.HttpClient }, { type: i2.EnvironmentService }, { type: i2.BBSFTranslateService }, { type: i3.Router }, { type: i4.CookieService }, { type: i5.UtilityService }]; } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBQzFFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQztBQUtqQyxNQUFNLE9BQU8sV0FBVztJQVl0QixZQUFvQixRQUFrQixFQUFVLElBQWdCLEVBQVUsa0JBQXNDLEVBQVUsZ0JBQXNDLEVBQVUsTUFBYyxFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFBbFAsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVgvUCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUl4QixjQUFTLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyRCwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztR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RSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRTtTQUN4RCxDQUFBO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQzthQUNsRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFYixNQUFNLFNBQVMsR0FBRyxHQUFHLGNBQWMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQzNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxPQUFPO0lBQ1QsQ0FBQzs7QUE5TU0sZ0JBQUksR0FBZ0IsSUFBSSxDQUFDO0FBRXpCLHNCQUFVLEdBQVEsSUFBSSxDQUFDO0FBSTlCLFNBQVM7QUFDRixrQkFBTSxHQUFHLEVBQUUsQ0FBQztBQUNaLG1CQUFPLEdBQUcsQ0FBQyxDQUFDO3lHQVZSLFdBQVc7NkdBQVgsV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL1VzZXJNb2RlbCc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uTW9kZXMgfSBmcm9tICcuLi9lbnVtcy9hdXRoZW50aWNhdGlvbi1tb2Rlcy1lbnVtcyc7XHJcbmNvbnN0IFRPS0VOX0tFWSA9ICdhY2Nlc3NfdG9rZW4nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RVcmw6IHN0cmluZyA9ICcnO1xyXG4gIHN0YXRpYyB1c2VyOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgdXNlcjogVXNlciB8IG51bGw7XHJcbiAgc3RhdGljIFVzZXJDbGFpbXM6IGFueSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBqd3RIZWxwZXI6IEp3dEhlbHBlclNlcnZpY2UgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gIHByaXZhdGUgaXNBdXRoZW50aWNhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5oYXNUb2tlbigpKTtcclxuICBpc0F1dGhlbnRpY2F0ZSQgPSB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgLy9yZWZyZXNoXHJcbiAgc3RhdGljIHRpbWVycyA9IFtdO1xyXG4gIHN0YXRpYyBzZWNvbmRzID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSkge1xyXG4gICAgdGhpcy51c2VyID0gdGhpcy5nZXRVc2VyTWFuYWdlcigpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Rva2VuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFRPS0VOX0tFWSk7XHJcbiAgICByZXR1cm4gdG9rZW4gJiYgIXRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJNYW5hZ2VyKCkge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFRPS0VOX0tFWSk7XHJcbiAgICBpZiAodG9rZW4pXHJcbiAgICAgIHRoaXMuaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UodG9rZW4pXHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0VXNlcigpIHtcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXI7XHJcbiAgfVxyXG4gIHN0b3JVc2VyKFVzZXI6IGFueSkge1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IHRoaXMudXNlciA9IHRoaXMudXNlcjtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRVc2VyKCkge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXJcclxuICB9XHJcblxyXG4gIGFzeW5jIGlzQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyICE9IG51bGwgJiYgIXRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKEF1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VuKTtcclxuICB9XHJcbiAgaXNVc2VySW5Sb2xlKGFsbG93ZWRQZXJtaXNzaW9uOiBudW1iZXJbXSkge1xyXG4gICAgbGV0IHNlbGVjdGVkUGVybWlzc2lvblNldElEOiBudW1iZXIgPSBOdW1iZXIucGFyc2VJbnQoXHJcbiAgICAgIHRoaXMudXNlci5wcm9maWxlWydzZWxlY3RlZHBlcm1pc3Npb25zZXRpZCddXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uLmluY2x1ZGVzKHNlbGVjdGVkUGVybWlzc2lvblNldElEKTtcclxuICB9XHJcblxyXG4gIGF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXJcclxuICAgICAgPyBgJHtBdXRoU2VydmljZS51c2VyLnRva2VuX3R5cGV9ICR7QXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW59YFxyXG4gICAgICA6ICcnO1xyXG4gIH1cclxuXHJcbiAgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXIgIT0gbnVsbCA/IEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZS5naXZlbl9uYW1lIDogJyc7XHJcbiAgfVxyXG4gIHNldFVybCh1cmwpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdyZWRpcmVjdFVybCcsIHVybCk7XHJcbiAgfVxyXG4gIGdldFVybCgpIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVkaXJlY3RVcmwnKSA/PyBcIi9cIjtcclxuICB9XHJcblxyXG4gIHNpZ25PdXQoKSB7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMubWFwKHQgPT4gY2xlYXJJbnRlcnZhbCh0KSk7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMgPSBbXTtcclxuICAgIGlmICghdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ291dCgpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSk7XHJcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCQlNGQXV0aGVudGljYXRpb25Nb2RlKCkgPT0gQXV0aGVudGljYXRpb25Nb2Rlcy5VQUVQYXNzKVxyXG4gICAgICAgIHRoaXMubG9nb3V0RnJvbVVBRVBhc3MoKVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgQXBpVXJsID0gJy9BY2NvdW50Lyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIEFwaVVybCArICdMb2dvdXQnLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJVc2VyU2Vzc2lvbkNsYWltcygpIHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgIGxldCBBcGlVcmwgPSAnL2FwaS9Ib21lLyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyBBcGlVcmwgKyAnQ2xlYXJDdXJyZW50VXNlclNlc3Npb24nLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXN5bmMgaGFuZGxlQWNjZXNzVG9rZW4ocmVzcG9uc2U6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgdG9rZW4gPSByZXNwb25zZTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSBuZXcgVXNlcigpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlID0gXCJCZWFyZXJcIlxyXG4gICAgQXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW4gPSB0b2tlbjtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZSA9IHRoaXMuand0SGVscGVyLmRlY29kZVRva2VuKHRva2VuKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCA9IHRoaXMuand0SGVscGVyLmdldFRva2VuRXhwaXJhdGlvbkRhdGUodG9rZW4pO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLm1hcCh0ID0+IGNsZWFySW50ZXJ2YWwodCkpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzID0gW107XHJcbiAgICB0aGlzLnNldFRva2VuU2Vjb25kcygpXHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMucHVzaCh0aGlzLmNoZWNrUmVmcmVzaFRva2VuKCkpO1xyXG4gICAgdGhpcy51c2VyID0gQXV0aFNlcnZpY2UudXNlclxyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVMYW5ndWFnZSgpXHJcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KFRPS0VOX0tFWSwgdG9rZW4sIG51bGwsIG51bGwsIG51bGwsIHRydWUsICdTdHJpY3QnKTtcclxuICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UocmVzcG9uc2U6IGFueSkge1xyXG4gICAgY29uc3QgdG9rZW4gPSByZXNwb25zZTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSBuZXcgVXNlcigpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlID0gXCJCZWFyZXJcIlxyXG4gICAgQXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW4gPSB0b2tlbjtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZSA9IHRoaXMuand0SGVscGVyLmRlY29kZVRva2VuKHRva2VuKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCA9IHRoaXMuand0SGVscGVyLmdldFRva2VuRXhwaXJhdGlvbkRhdGUodG9rZW4pO1xyXG4gICAgdGhpcy5zZXRUb2tlblNlY29uZHMoKVxyXG4gICAgdGhpcy51c2VyID0gQXV0aFNlcnZpY2UudXNlclxyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChUT0tFTl9LRVksIHRva2VuLCBudWxsLCBudWxsLCBudWxsLCB0cnVlLCAnU3RyaWN0Jyk7XHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlTGFuZ3VhZ2UoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSA9PSB0aGlzLnVzZXIucHJvZmlsZS5sb2NhbGVcclxuICAgIClcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmd1YWdlJywgdGhpcy51c2VyLnByb2ZpbGUubG9jYWxlKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nICE9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5yZXNldExhbmcodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKTtcclxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgICAgLnJlbG9hZExhbmcobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCkgYXMgYW55O1xyXG4gICAgcmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgaWYgKE1hdGguZmxvb3IoQXV0aFNlcnZpY2Uuc2Vjb25kcykgPCAxMjAgJiYgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSlcclxuICAgICAgICB0aGlzLnJlZnJlc2goKVxyXG4gICAgICBBdXRoU2VydmljZS5zZWNvbmRzLS07XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcbiAgc2V0VG9rZW5TZWNvbmRzKCkge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpIGFzIGFueTtcclxuICAgIEF1dGhTZXJ2aWNlLnNlY29uZHMgPSAoQXV0aFNlcnZpY2UudXNlci5leHBpcmVzX2F0IC0gZGF0ZSkgLyAxMDAwXHJcbiAgfVxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKSxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgbGV0IEFwaVVybCA9ICcvYXBpL0hvbWUvJztcclxuICAgIHRoaXMuaHR0cC5nZXQodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QXBpVXJsKCkgKyBBcGlVcmwgKyAnUmVmcmVzaEFjY2Vzc1Rva2VuJywgaHR0cE9wdGlvbnMpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShUT0tFTl9LRVkpO1xyXG4gICAgICB0aGlzLmhhbmRsZUFjY2Vzc1Rva2VuV2l0aG91dExhbmd1YWdlKHJlcy52YWwpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbG9naW5XaXRoVUFFUGFzcygpIHtcclxuICAgIGNvbnN0IGF1dGhFbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzQXV0aG9yaXphdGlvbkVuZFBvaW50KCl9YDtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXHJcbiAgICAgIGNsaWVudF9pZDogYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0VUFFUGFzc0NsaWVudElEKCl9YCxcclxuICAgICAgcmVkaXJlY3RfdXJpOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzUmVkaXJlY3RVcmwoKX1gLFxyXG4gICAgICBzY29wZTogJ3Vybjp1YWU6ZGlnaXRhbGlkOnByb2ZpbGU6Z2VuZXJhbCB1cm46dWFlOmRpZ2l0YWxpZDpwcm9maWxlOmdlbmVyYWw6cHJvZmlsZVR5cGUgdXJuOnVhZTpkaWdpdGFsaWQ6cHJvZmlsZTpnZW5lcmFsOnVuaWZpZWRJZCcsXHJcbiAgICAgIHN0YXRlOiAncGQzUGdlelJ3azU5NnUyeWZSd3FPZ3J1JyxcclxuICAgICAgYWNyX3ZhbHVlczogJ3VybjpzYWZlbGF5ZXI6dHdzOnBvbGljaWVzOmF1dGhlbnRpY2F0aW9uOmxldmVsOmxvdydcclxuICAgIH1cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXHJcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcclxuICAgICAgLmpvaW4oJyYnKTtcclxuICAgIGNvbnN0IGxvZ2luVXJsID0gYCR7YXV0aEVuZHBvaW50fT8ke3F1ZXJ5UGFyYW1zU3RyaW5nfWA7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxvZ2luVXJsO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0RnJvbVVBRVBhc3MoKSB7XHJcbiAgICBjb25zdCBsb2dvdXRFbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzTG9nb3V0RW5kUG9pbnQoKX1gXHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgcmVkaXJlY3RfdXJpOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCl9YCxcclxuICAgIH1cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXHJcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcclxuICAgICAgLmpvaW4oJyYnKTtcclxuXHJcbiAgICBjb25zdCBsb2dvdXRVcmwgPSBgJHtsb2dvdXRFbmRwb2ludH0/JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dvdXRVcmw7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common/http";
4
- export class ConfigurationService {
5
- constructor(httpClient) {
6
- this.httpClient = httpClient;
7
- this.httpClient.get("./assets/config/configurations.json").subscribe(data => {
8
- ConfigurationService.JsonData = data;
9
- });
10
- }
11
- getConfigurationValue(key) {
12
- return ConfigurationService.JsonData[key];
13
- }
14
- }
15
- ConfigurationService.JsonData = [];
16
- ConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
17
- ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ConfigurationService, decorators: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root'
22
- }]
23
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLE9BQU8sb0JBQW9CO0lBSTdCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEUsb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQWEsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxHQUFVO1FBQzVCLE9BQVEsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBVkssNkJBQVEsR0FBTyxFQUFFLENBQUE7a0hBRmQsb0JBQW9CO3NIQUFwQixvQkFBb0IsY0FGakIsTUFBTTs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNlcnZpY2Uge1xyXG5cclxuICAgc3RhdGljIEpzb25EYXRhOmFueVtdPVtdXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KXtcclxuICAgICAgICB0aGlzLmh0dHBDbGllbnQuZ2V0KFwiLi9hc3NldHMvY29uZmlnL2NvbmZpZ3VyYXRpb25zLmpzb25cIikuc3Vic2NyaWJlKGRhdGEgPT57XHJcbiAgICAgICAgICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLkpzb25EYXRhID0gZGF0YSBhcyBhbnlbXTtcclxuICAgICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBcclxuICAgIGdldENvbmZpZ3VyYXRpb25WYWx1ZShrZXk6c3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuICBDb25maWd1cmF0aW9uU2VydmljZS5Kc29uRGF0YVtrZXldO1xyXG4gICAgfVxyXG5cclxufSJdfQ==