@bnsights/bbsf-utilities 1.0.32 → 1.0.33

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 (124) hide show
  1. package/README.md +4 -4
  2. package/bnsights-bbsf-utilities-1.0.33.tgz +0 -0
  3. package/bnsights-bbsf-utilities.d.ts +0 -1
  4. package/bnsights-bbsf-utilities.metadata.json +1 -0
  5. package/bundles/bnsights-bbsf-utilities.umd.js +4865 -0
  6. package/bundles/bnsights-bbsf-utilities.umd.js.map +1 -0
  7. package/esm2015/lib/bbsf-utilities.module.js +52 -0
  8. package/esm2015/lib/shared/authentication/auth.service.js +236 -0
  9. package/esm2015/lib/shared/config/word/constants.js +105 -0
  10. package/esm2015/lib/shared/config/word/docx-document.js +351 -0
  11. package/esm2015/lib/shared/config/word/helpers/index.js +4 -0
  12. package/esm2015/lib/shared/config/word/helpers/render-document-file.js +278 -0
  13. package/esm2015/lib/shared/config/word/helpers/xml-builder.js +1765 -0
  14. package/esm2015/lib/shared/config/word/html-to-docx.js +195 -0
  15. package/esm2015/lib/shared/config/word/index.js +55 -0
  16. package/esm2015/lib/shared/config/word/namespaces.js +37 -0
  17. package/esm2015/lib/shared/config/word/schemas/content-types.js +26 -0
  18. package/esm2015/lib/shared/config/word/schemas/core.js +29 -0
  19. package/esm2015/lib/shared/config/word/schemas/document-rels.js +16 -0
  20. package/esm2015/lib/shared/config/word/schemas/document.template.js +109 -0
  21. package/esm2015/lib/shared/config/word/schemas/font-table.js +40 -0
  22. package/esm2015/lib/shared/config/word/schemas/generic-rels.js +11 -0
  23. package/esm2015/lib/shared/config/word/schemas/index.js +13 -0
  24. package/esm2015/lib/shared/config/word/schemas/numbering.js +19 -0
  25. package/esm2015/lib/shared/config/word/schemas/rels.js +11 -0
  26. package/esm2015/lib/shared/config/word/schemas/settings.js +13 -0
  27. package/esm2015/lib/shared/config/word/schemas/styles.js +149 -0
  28. package/esm2015/lib/shared/config/word/schemas/theme.js +200 -0
  29. package/esm2015/lib/shared/config/word/schemas/web-settings.js +9 -0
  30. package/esm2015/lib/shared/config/word/utils/color-conversion.js +60 -0
  31. package/esm2015/lib/shared/config/word/utils/list.js +51 -0
  32. package/esm2015/lib/shared/config/word/utils/unit-conversion.js +30 -0
  33. package/esm2015/lib/shared/config/word/utils/url.js +9 -0
  34. package/esm2015/lib/shared/config/word/utils/vnode.js +3 -0
  35. package/esm2015/lib/shared/config/word/word-work/templates/documentTemplate.js +54 -0
  36. package/esm2015/lib/shared/config/word/word-work/templates/index.js +4 -0
  37. package/esm2015/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.js +22 -0
  38. package/esm2015/lib/shared/config/word/word-work/templates/mhtPartTemplate.js +10 -0
  39. package/esm2015/lib/shared/config/word/word-work/utils.js +26 -0
  40. package/esm2015/lib/shared/models/WordDocumentModel.js +8 -0
  41. package/esm2015/lib/shared/services/AppearanceConfiguration.service.js +37 -0
  42. package/esm2015/lib/shared/services/configuration.service.js +26 -0
  43. package/esm2015/lib/shared/services/controlvalidation.service.js +168 -0
  44. package/esm2015/lib/shared/services/environment.service.js +48 -0
  45. package/esm2015/lib/shared/services/masterlayout.service.js +96 -0
  46. package/esm2015/lib/shared/services/requesthandler.service.js +206 -0
  47. package/esm2015/lib/shared/services/stylesbundle.service.js +56 -0
  48. package/esm2015/lib/shared/services/translate.service.js +13 -0
  49. package/esm2015/lib/shared/services/translationresolver.service.js +20 -0
  50. package/esm2015/lib/shared/services/utility.service.js +96 -0
  51. package/esm2015/lib/shared/services/word-document.service.js +39 -0
  52. package/esm2015/public-api.js +20 -0
  53. package/fesm2015/bnsights-bbsf-utilities.js +4634 -0
  54. package/fesm2015/bnsights-bbsf-utilities.js.map +1 -0
  55. package/lib/bbsf-utilities.module.d.ts +0 -9
  56. package/lib/shared/authentication/auth.service.d.ts +0 -3
  57. package/lib/shared/config/word/constants.d.ts +124 -0
  58. package/lib/shared/config/word/docx-document.d.ts +73 -0
  59. package/lib/shared/config/word/helpers/index.d.ts +1 -0
  60. package/lib/shared/config/word/helpers/render-document-file.d.ts +4 -0
  61. package/lib/shared/config/word/helpers/xml-builder.d.ts +14 -0
  62. package/lib/shared/config/word/html-to-docx.d.ts +1 -0
  63. package/lib/shared/config/word/index.d.ts +1 -0
  64. package/lib/shared/config/word/namespaces.d.ts +36 -0
  65. package/lib/shared/config/word/schemas/content-types.d.ts +1 -0
  66. package/lib/shared/config/word/schemas/core.d.ts +1 -0
  67. package/lib/shared/config/word/schemas/document-rels.d.ts +1 -0
  68. package/lib/shared/config/word/schemas/document.template.d.ts +4 -0
  69. package/lib/shared/config/word/schemas/font-table.d.ts +1 -0
  70. package/lib/shared/config/word/schemas/generic-rels.d.ts +1 -0
  71. package/lib/shared/config/word/schemas/index.d.ts +12 -0
  72. package/lib/shared/config/word/schemas/numbering.d.ts +1 -0
  73. package/lib/shared/config/word/schemas/rels.d.ts +1 -0
  74. package/lib/shared/config/word/schemas/settings.d.ts +1 -0
  75. package/lib/shared/config/word/schemas/styles.d.ts +1 -0
  76. package/lib/shared/config/word/schemas/theme.d.ts +1 -0
  77. package/lib/shared/config/word/schemas/web-settings.d.ts +1 -0
  78. package/lib/shared/config/word/utils/color-conversion.d.ts +7 -0
  79. package/lib/shared/config/word/utils/list.d.ts +6 -0
  80. package/lib/shared/config/word/utils/unit-conversion.d.ts +29 -0
  81. package/lib/shared/config/word/utils/url.d.ts +1 -0
  82. package/lib/shared/config/word/utils/vnode.d.ts +1 -0
  83. package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +12 -0
  84. package/lib/shared/config/word/word-work/templates/index.d.ts +3 -0
  85. package/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.d.ts +1 -0
  86. package/lib/shared/config/word/word-work/templates/mhtPartTemplate.d.ts +1 -0
  87. package/lib/shared/config/word/word-work/utils.d.ts +1 -0
  88. package/lib/shared/models/WordDocumentModel.d.ts +16 -0
  89. package/lib/shared/services/AppearanceConfiguration.service.d.ts +0 -3
  90. package/lib/shared/services/configuration.service.d.ts +0 -3
  91. package/lib/shared/services/controlvalidation.service.d.ts +0 -3
  92. package/lib/shared/services/environment.service.d.ts +0 -3
  93. package/lib/shared/services/masterlayout.service.d.ts +0 -3
  94. package/lib/shared/services/requesthandler.service.d.ts +0 -3
  95. package/lib/shared/services/stylesbundle.service.d.ts +0 -3
  96. package/lib/shared/services/translate.service.d.ts +0 -3
  97. package/lib/shared/services/translationresolver.service.d.ts +0 -3
  98. package/lib/shared/services/utility.service.d.ts +0 -3
  99. package/lib/shared/services/word-document.service.d.ts +5 -0
  100. package/package.json +7 -19
  101. package/public-api.d.ts +2 -0
  102. package/bnsights-bbsf-utilities-1.0.32.tgz +0 -0
  103. package/esm2020/lib/bbsf-utilities.module.mjs +0 -74
  104. package/esm2020/lib/shared/authentication/auth.service.mjs +0 -217
  105. package/esm2020/lib/shared/services/AppearanceConfiguration.service.mjs +0 -35
  106. package/esm2020/lib/shared/services/configuration.service.mjs +0 -24
  107. package/esm2020/lib/shared/services/controlvalidation.service.mjs +0 -166
  108. package/esm2020/lib/shared/services/environment.service.mjs +0 -50
  109. package/esm2020/lib/shared/services/masterlayout.service.mjs +0 -84
  110. package/esm2020/lib/shared/services/requesthandler.service.mjs +0 -202
  111. package/esm2020/lib/shared/services/stylesbundle.service.mjs +0 -55
  112. package/esm2020/lib/shared/services/translate.service.mjs +0 -14
  113. package/esm2020/lib/shared/services/translationresolver.service.mjs +0 -18
  114. package/esm2020/lib/shared/services/utility.service.mjs +0 -90
  115. package/esm2020/public-api.mjs +0 -18
  116. package/fesm2015/bnsights-bbsf-utilities.mjs +0 -1009
  117. package/fesm2015/bnsights-bbsf-utilities.mjs.map +0 -1
  118. package/fesm2020/bnsights-bbsf-utilities.mjs +0 -997
  119. package/fesm2020/bnsights-bbsf-utilities.mjs.map +0 -1
  120. /package/{esm2020/bnsights-bbsf-utilities.mjs → esm2015/bnsights-bbsf-utilities.js} +0 -0
  121. /package/{esm2020/lib/shared/config/environment.mjs → esm2015/lib/shared/config/environment.js} +0 -0
  122. /package/{esm2020/lib/shared/models/AreaModel.mjs → esm2015/lib/shared/models/AreaModel.js} +0 -0
  123. /package/{esm2020/lib/shared/models/ErrorModel.mjs → esm2015/lib/shared/models/ErrorModel.js} +0 -0
  124. /package/{esm2020/lib/shared/models/RequestOptionsModel.mjs → esm2015/lib/shared/models/RequestOptionsModel.js} +0 -0
package/public-api.d.ts CHANGED
@@ -9,6 +9,8 @@ export * from './lib/shared/services/masterlayout.service';
9
9
  export * from './lib/shared/services/translationresolver.service';
10
10
  export * from './lib/shared/services/AppearanceConfiguration.service';
11
11
  export * from './lib/shared/services/configuration.service';
12
+ export * from './lib/shared/services/word-document.service';
12
13
  export * from './lib/shared/config/environment';
13
14
  export * from './lib/shared/authentication/auth.service';
14
15
  export * from './lib/shared/models/RequestOptionsModel';
16
+ export * from './lib/shared/models/WordDocumentModel';
Binary file
@@ -1,74 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { RouterModule } from '@angular/router';
4
- import { TranslateService } from '@ngx-translate/core';
5
- import { BlockUIModule } from 'ng-block-ui';
6
- import { ToastrModule } from 'ngx-toastr';
7
- import { HttpModule } from '@angular/http';
8
- import { UtilityService } from './shared/services/utility.service';
9
- import { EnvironmentService } from './shared/services/environment.service';
10
- import { AuthService } from './shared/authentication/auth.service';
11
- import { RequestHandlerService } from './shared/services/requesthandler.service';
12
- import { StylesBundleService } from './shared/services/stylesbundle.service';
13
- import { BBSFTranslateService } from './shared/services/translate.service';
14
- import { ControlValidationService } from './shared/services/controlvalidation.service';
15
- import { MasterLayoutService } from './shared/services/masterlayout.service';
16
- import { ConfigurationService } from './shared/services/configuration.service';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "ng-block-ui";
19
- import * as i2 from "ngx-toastr";
20
- export let AppInjector;
21
- export class BBSFUtilitiesModule {
22
- constructor(injector) {
23
- this.injector = injector;
24
- AppInjector = this.injector;
25
- }
26
- }
27
- BBSFUtilitiesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFUtilitiesModule, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule });
28
- BBSFUtilitiesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFUtilitiesModule, imports: [CommonModule, i1.BlockUIModule, HttpModule,
29
- RouterModule, i2.ToastrModule] });
30
- BBSFUtilitiesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFUtilitiesModule, providers: [
31
- UtilityService,
32
- EnvironmentService,
33
- AuthService,
34
- RequestHandlerService,
35
- StylesBundleService,
36
- TranslateService,
37
- BBSFTranslateService,
38
- ControlValidationService,
39
- MasterLayoutService,
40
- ConfigurationService
41
- ], imports: [[
42
- CommonModule,
43
- BlockUIModule.forRoot(),
44
- HttpModule,
45
- RouterModule,
46
- ToastrModule.forRoot(),
47
- ]] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BBSFUtilitiesModule, decorators: [{
49
- type: NgModule,
50
- args: [{
51
- declarations: [],
52
- imports: [
53
- CommonModule,
54
- BlockUIModule.forRoot(),
55
- HttpModule,
56
- RouterModule,
57
- ToastrModule.forRoot(),
58
- ],
59
- exports: [],
60
- providers: [
61
- UtilityService,
62
- EnvironmentService,
63
- AuthService,
64
- RequestHandlerService,
65
- StylesBundleService,
66
- TranslateService,
67
- BBSFTranslateService,
68
- ControlValidationService,
69
- MasterLayoutService,
70
- ConfigurationService
71
- ]
72
- }]
73
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi11dGlsaXRpZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9iYnNmLXV0aWxpdGllcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7QUFFL0UsTUFBTSxDQUFDLElBQUksV0FBcUIsQ0FBQztBQTZCakMsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ3BDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBRTlCLENBQUM7O2lIQUxVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLFlBdkI1QixZQUFZLG9CQUVaLFVBQVU7UUFDVixZQUFZO2tIQW9CSCxtQkFBbUIsYUFicEI7UUFDUixjQUFjO1FBQ2Qsa0JBQWtCO1FBQ2xCLFdBQVc7UUFDWCxxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLG1CQUFtQjtRQUNuQixvQkFBb0I7S0FDckIsWUF0QlE7WUFDUCxZQUFZO1lBQ1osYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUN2QixVQUFVO1lBQ1YsWUFBWTtZQUNaLFlBQVksQ0FBQyxPQUFPLEVBQUU7U0FFdkI7NEZBaUJVLG1CQUFtQjtrQkEzQi9CLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFDdkIsVUFBVTt3QkFDVixZQUFZO3dCQUNaLFlBQVksQ0FBQyxPQUFPLEVBQUU7cUJBRXZCO29CQUNELE9BQU8sRUFBRSxFQUVSO29CQUNELFNBQVMsRUFBQzt3QkFDUixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmxvY2tVSU1vZHVsZSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IEh0dHBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9yZXF1ZXN0aGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3R5bGVzQnVuZGxlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL3N0eWxlc2J1bmRsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL2NvbnRyb2x2YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvbWFzdGVybGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcblxyXG5leHBvcnQgbGV0IEFwcEluamVjdG9yOiBJbmplY3RvcjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIEh0dHBNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxyXG5cclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOltcclxuICAgIFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcbiAgICBTdHlsZXNCdW5kbGVTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgTWFzdGVyTGF5b3V0U2VydmljZSxcclxuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQkJTRlV0aWxpdGllc01vZHVsZSB7IFxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgQXBwSW5qZWN0b3IgPSB0aGlzLmluamVjdG9yO1xyXG5cclxuICB9XHJcbn1cclxuIl19
@@ -1,217 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import { UserManager, WebStorageStateStore, } from 'oidc-client';
4
- import { BehaviorSubject, Subject } from 'rxjs';
5
- import { MasterLayoutService } from '../services/masterlayout.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common/http";
8
- import * as i2 from "../services/environment.service";
9
- import * as i3 from "../services/translate.service";
10
- import * as i4 from "@angular/router";
11
- export class AuthService {
12
- constructor(injector, http, environmentService, translateService, router) {
13
- this.injector = injector;
14
- this.http = http;
15
- this.environmentService = environmentService;
16
- this.translateService = translateService;
17
- this.router = router;
18
- // Observable navItem source
19
- this._authNavStatusSource = new BehaviorSubject(false);
20
- // Observable navItem stream
21
- this.authNavStatus$ = this._authNavStatusSource.asObservable();
22
- // Observable navItem source
23
- this._userSource = new Subject();
24
- this.UserStatus$ = this._userSource.asObservable();
25
- this.manager = this.getUserManager();
26
- this.redirectUrl = '';
27
- this.manager.getUser().then(async (user) => {
28
- this.manager.storeUser(user);
29
- AuthService.user = user;
30
- this.user = user;
31
- this._authNavStatusSource.next(await this.isAuthenticated());
32
- });
33
- this.manager.events.addAccessTokenExpired((_) => {
34
- this._authNavStatusSource.next(false);
35
- });
36
- }
37
- getUserManager() {
38
- let user = null;
39
- let isExternal = this.environmentService.getIsIdentityServerExternal().toLowerCase() ==
40
- 'true';
41
- if (isExternal) {
42
- user = new UserManager({
43
- authority: this.environmentService.getIdentityServerUrl(),
44
- client_id: this.environmentService.getIsIdentityServerClientId(),
45
- client_secret: this.environmentService.getIsIdentityServerClientSecret(),
46
- redirect_uri: this.environmentService.getBaseUrl() +
47
- '/Admin/authentication/auth-callback',
48
- post_logout_redirect_uri: this.environmentService.getBaseUrl(),
49
- response_type: 'code',
50
- scope: 'openid profile email',
51
- filterProtocolClaims: true,
52
- loadUserInfo: true,
53
- automaticSilentRenew: true,
54
- silent_redirect_uri: this.environmentService.getBaseUrl() + '/assets/silent-callback.html',
55
- userStore: new WebStorageStateStore({ store: window.localStorage }),
56
- });
57
- }
58
- else {
59
- user = new UserManager({
60
- authority: this.environmentService.getIdentityServerUrl(),
61
- client_id: 'angular_spa',
62
- redirect_uri: this.environmentService.getBaseUrl() +
63
- '/Admin/authentication/auth-callback',
64
- post_logout_redirect_uri: this.environmentService.getBaseUrl(),
65
- response_type: 'id_token token',
66
- scope: 'openid profile email IdentityServerApi',
67
- filterProtocolClaims: true,
68
- loadUserInfo: true,
69
- automaticSilentRenew: true,
70
- silent_redirect_uri: this.environmentService.getBaseUrl() + '/assets/silent-callback.html',
71
- userStore: new WebStorageStateStore({ store: window.localStorage }),
72
- });
73
- }
74
- return user;
75
- }
76
- login() {
77
- return this.manager.signinRedirect();
78
- }
79
- getUser() {
80
- this.manager.getUser().then(async (user) => {
81
- AuthService.user = user;
82
- this.user = user;
83
- this._authNavStatusSource.next(await this.isAuthenticated());
84
- });
85
- }
86
- storUser(User) {
87
- this.manager.storeUser(User);
88
- }
89
- revokeAccessToken() {
90
- this.manager.revokeAccessToken();
91
- }
92
- signinSilent() {
93
- let x = this.manager.signinSilentCallback();
94
- x.then((s) => {
95
- //console.log(s)
96
- });
97
- }
98
- async completeAuthentication() {
99
- this.user = await this.manager.signinRedirectCallback();
100
- AuthService.user = this.user;
101
- this._userSource.next(AuthService.user);
102
- this._authNavStatusSource.next(await this.isAuthenticated());
103
- let isExternal = this.environmentService.getIsIdentityServerExternal().toLowerCase() ==
104
- 'true';
105
- if (isExternal) {
106
- const masterLayoutService = this.injector.get(MasterLayoutService);
107
- let userClaims = await masterLayoutService
108
- .getUserClaims()
109
- .toPromise()
110
- .then((e) => {
111
- AuthService.UserClaims = e;
112
- }, (error) => {
113
- console.log(error);
114
- });
115
- AuthService.user.profile = Object.assign(AuthService.user.profile, AuthService.UserClaims);
116
- }
117
- this.storUser(AuthService.user);
118
- if (!localStorage.getItem('language') ||
119
- localStorage.getItem('language') == this.user.profile.locale)
120
- localStorage.setItem('language', this.user.profile.locale);
121
- if (this.translateService.currentLang != localStorage.getItem('language')) {
122
- this.translateService.resetLang(this.translateService.currentLang);
123
- await this.translateService
124
- .reloadLang(localStorage.getItem('language'))
125
- .subscribe((res) => {
126
- console.log(res);
127
- });
128
- }
129
- this._userSource.next(AuthService.user);
130
- this._authNavStatusSource.next(await this.isAuthenticated());
131
- this.user = AuthService.user;
132
- }
133
- async refreshToken(token) {
134
- const httpOptions = {
135
- headers: new HttpHeaders({
136
- 'Content-Type': 'application/json',
137
- Authorization: token,
138
- }),
139
- };
140
- this.manager.revokeAccessToken();
141
- return await this.http
142
- .post(`${this.environmentService.getIdentityServerUrl()}/users/refresh-token`, httpOptions, { withCredentials: true })
143
- .subscribe((user) => {
144
- this._userSource.next(user);
145
- AuthService.user = user;
146
- this.user = user;
147
- });
148
- }
149
- getCurrentUser() {
150
- return this.manager.getUser();
151
- }
152
- async isAuthenticated() {
153
- let user = await this.manager.getUser().then((user) => {
154
- return user;
155
- });
156
- return this.user != null && !this.user.expired;
157
- }
158
- isUserInRole(allowedPermission) {
159
- let selectedPermissionSetID = Number.parseInt(this.user.profile['selectedpermissionsetid']);
160
- return allowedPermission.includes(selectedPermissionSetID);
161
- }
162
- authorizationHeaderValue() {
163
- return AuthService.user
164
- ? `${AuthService.user.token_type} ${AuthService.user.access_token}`
165
- : '';
166
- }
167
- name() {
168
- return AuthService.user != null ? AuthService.user.profile.given_name : '';
169
- }
170
- setUrl(url) {
171
- localStorage.setItem('redirectUrl', url);
172
- }
173
- getUrl() {
174
- return localStorage.getItem('redirectUrl');
175
- }
176
- async signinSilentCallback() {
177
- let user = await this.manager.signinSilentCallback();
178
- //await this.manager.storeUser(user);
179
- AuthService.user = user;
180
- console.log('Token from signinSilentCallback :' + AuthService.user);
181
- this.user = user;
182
- }
183
- async signout() {
184
- if (await !this.isAuthenticated())
185
- this.router.navigate(['/Admin/account/login']), localStorage.clear();
186
- let isExternal = this.environmentService.getIsIdentityServerExternal().toLowerCase() ==
187
- 'true';
188
- if (isExternal) {
189
- await this.clearUserSessionClaims()
190
- .toPromise()
191
- .then((res) => {
192
- let result = res;
193
- });
194
- }
195
- await this.manager.signoutRedirect();
196
- }
197
- clearUserSessionClaims() {
198
- const httpOptions = {
199
- headers: new HttpHeaders({
200
- 'Content-Type': 'application/json',
201
- }),
202
- };
203
- let ApiUrl = '/api/Home/';
204
- return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);
205
- }
206
- }
207
- AuthService.user = null;
208
- AuthService.UserClaims = null;
209
- AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AuthService, deps: [{ token: i0.Injector }, { token: i1.HttpClient }, { token: i2.EnvironmentService }, { token: i3.BBSFTranslateService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
210
- AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AuthService, providedIn: 'root' });
211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AuthService, decorators: [{
212
- type: Injectable,
213
- args: [{
214
- providedIn: 'root',
215
- }]
216
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.HttpClient }, { type: i2.EnvironmentService }, { type: i3.BBSFTranslateService }, { type: i4.Router }]; } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFDTCxXQUFXLEVBR1gsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFNdkUsTUFBTSxPQUFPLFdBQVc7SUFjdEIsWUFDVSxRQUFrQixFQUNsQixJQUFnQixFQUNoQixrQkFBc0MsRUFDdEMsZ0JBQXNDLEVBQ3RDLE1BQWM7UUFKZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXNCO1FBQ3RDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFsQnhCLDRCQUE0QjtRQUNwQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRSw0QkFBNEI7UUFDNUIsbUJBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUQsNEJBQTRCO1FBQ3BCLGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDekQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLENB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R0FBRyx5QkFBeUIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUM5RyxDQUFDOztBQTlOTSxnQkFBSSxHQUFnQixJQUFLLENBQUE7QUFFekIsc0JBQVUsR0FBUSxJQUFLLENBQUE7eUdBWm5CLFdBQVc7NkdBQVgsV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtcclxuICBVc2VyTWFuYWdlcixcclxuICBVc2VyTWFuYWdlclNldHRpbmdzLFxyXG4gIFVzZXIsXHJcbiAgV2ViU3RvcmFnZVN0YXRlU3RvcmUsXHJcbn0gZnJvbSAnb2lkYy1jbGllbnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXN0ZXJMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFzdGVybGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXF1ZXN0aGFuZGxlci5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XHJcbiAgLy8gT2JzZXJ2YWJsZSBuYXZJdGVtIHNvdXJjZVxyXG4gIHByaXZhdGUgX2F1dGhOYXZTdGF0dXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAvLyBPYnNlcnZhYmxlIG5hdkl0ZW0gc3RyZWFtXHJcbiAgYXV0aE5hdlN0YXR1cyQgPSB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIC8vIE9ic2VydmFibGUgbmF2SXRlbSBzb3VyY2VcclxuICBwcml2YXRlIF91c2VyU291cmNlOiBTdWJqZWN0PFVzZXI+ID0gbmV3IFN1YmplY3Q8VXNlcj4oKTtcclxuICBVc2VyU3RhdHVzJCA9IHRoaXMuX3VzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcHJpdmF0ZSBtYW5hZ2VyID0gdGhpcy5nZXRVc2VyTWFuYWdlcigpO1xyXG4gIHB1YmxpYyByZWRpcmVjdFVybDogc3RyaW5nID0gJyc7XHJcbiAgc3RhdGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICB1c2VyOiBVc2VyIHwgbnVsbDtcclxuICBzdGF0aWMgVXNlckNsYWltczogYW55ID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgdGhpcy5tYW5hZ2VyLmdldFVzZXIoKS50aGVuKGFzeW5jICh1c2VyKSA9PiB7XHJcbiAgICAgIHRoaXMubWFuYWdlci5zdG9yZVVzZXIodXNlcik7XHJcbiAgICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB1c2VyO1xyXG4gICAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gICAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKChfKSA9PiB7XHJcbiAgICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChmYWxzZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJNYW5hZ2VyKCkge1xyXG4gICAgbGV0IHVzZXIgPSBudWxsO1xyXG4gICAgbGV0IGlzRXh0ZXJuYWwgPVxyXG4gICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRJc0lkZW50aXR5U2VydmVyRXh0ZXJuYWwoKS50b0xvd2VyQ2FzZSgpID09XHJcbiAgICAgICd0cnVlJztcclxuICAgIGlmIChpc0V4dGVybmFsKSB7XHJcbiAgICAgIHVzZXIgPSBuZXcgVXNlck1hbmFnZXIoe1xyXG4gICAgICAgIGF1dGhvcml0eTogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SWRlbnRpdHlTZXJ2ZXJVcmwoKSxcclxuICAgICAgICBjbGllbnRfaWQ6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElzSWRlbnRpdHlTZXJ2ZXJDbGllbnRJZCgpLFxyXG4gICAgICAgIGNsaWVudF9zZWNyZXQ6XHJcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRJc0lkZW50aXR5U2VydmVyQ2xpZW50U2VjcmV0KCksXHJcbiAgICAgICAgcmVkaXJlY3RfdXJpOlxyXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpICtcclxuICAgICAgICAgICcvQWRtaW4vYXV0aGVudGljYXRpb24vYXV0aC1jYWxsYmFjaycsXHJcbiAgICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCksXHJcbiAgICAgICAgcmVzcG9uc2VfdHlwZTogJ2NvZGUnLFxyXG4gICAgICAgIHNjb3BlOiAnb3BlbmlkIHByb2ZpbGUgZW1haWwnLFxyXG4gICAgICAgIGZpbHRlclByb3RvY29sQ2xhaW1zOiB0cnVlLFxyXG4gICAgICAgIGxvYWRVc2VySW5mbzogdHJ1ZSxcclxuICAgICAgICBhdXRvbWF0aWNTaWxlbnRSZW5ldzogdHJ1ZSxcclxuICAgICAgICBzaWxlbnRfcmVkaXJlY3RfdXJpOlxyXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpICsgJy9hc3NldHMvc2lsZW50LWNhbGxiYWNrLmh0bWwnLFxyXG4gICAgICAgIHVzZXJTdG9yZTogbmV3IFdlYlN0b3JhZ2VTdGF0ZVN0b3JlKHsgc3RvcmU6IHdpbmRvdy5sb2NhbFN0b3JhZ2UgfSksXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdXNlciA9IG5ldyBVc2VyTWFuYWdlcih7XHJcbiAgICAgICAgYXV0aG9yaXR5OiB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRJZGVudGl0eVNlcnZlclVybCgpLFxyXG4gICAgICAgIGNsaWVudF9pZDogJ2FuZ3VsYXJfc3BhJyxcclxuICAgICAgICByZWRpcmVjdF91cmk6XHJcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgK1xyXG4gICAgICAgICAgJy9BZG1pbi9hdXRoZW50aWNhdGlvbi9hdXRoLWNhbGxiYWNrJyxcclxuICAgICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKSxcclxuICAgICAgICByZXNwb25zZV90eXBlOiAnaWRfdG9rZW4gdG9rZW4nLFxyXG4gICAgICAgIHNjb3BlOiAnb3BlbmlkIHByb2ZpbGUgZW1haWwgSWRlbnRpdHlTZXJ2ZXJBcGknLFxyXG4gICAgICAgIGZpbHRlclByb3RvY29sQ2xhaW1zOiB0cnVlLFxyXG4gICAgICAgIGxvYWRVc2VySW5mbzogdHJ1ZSxcclxuICAgICAgICBhdXRvbWF0aWNTaWxlbnRSZW5ldzogdHJ1ZSxcclxuICAgICAgICBzaWxlbnRfcmVkaXJlY3RfdXJpOlxyXG4gICAgICAgICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpICsgJy9hc3NldHMvc2lsZW50LWNhbGxiYWNrLmh0bWwnLFxyXG4gICAgICAgIHVzZXJTdG9yZTogbmV3IFdlYlN0b3JhZ2VTdGF0ZVN0b3JlKHsgc3RvcmU6IHdpbmRvdy5sb2NhbFN0b3JhZ2UgfSksXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVzZXI7XHJcbiAgfVxyXG5cclxuICBsb2dpbigpIHtcclxuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuc2lnbmluUmVkaXJlY3QoKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXIoKSB7XHJcbiAgICB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpLnRoZW4oYXN5bmMgKHVzZXIpID0+IHtcclxuICAgICAgQXV0aFNlcnZpY2UudXNlciA9IHVzZXI7XHJcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChhd2FpdCB0aGlzLmlzQXV0aGVudGljYXRlZCgpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzdG9yVXNlcihVc2VyOiBhbnkpIHtcclxuICAgIHRoaXMubWFuYWdlci5zdG9yZVVzZXIoVXNlcik7XHJcbiAgfVxyXG5cclxuICByZXZva2VBY2Nlc3NUb2tlbigpIHtcclxuICAgIHRoaXMubWFuYWdlci5yZXZva2VBY2Nlc3NUb2tlbigpO1xyXG4gIH1cclxuXHJcbiAgc2lnbmluU2lsZW50KCkge1xyXG4gICAgbGV0IHggPSB0aGlzLm1hbmFnZXIuc2lnbmluU2lsZW50Q2FsbGJhY2soKTtcclxuICAgIHgudGhlbigocykgPT4ge1xyXG4gICAgICAvL2NvbnNvbGUubG9nKHMpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNvbXBsZXRlQXV0aGVudGljYXRpb24oKSB7XHJcbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLm1hbmFnZXIuc2lnbmluUmVkaXJlY3RDYWxsYmFjaygpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IHRoaXMudXNlcjtcclxuICAgIHRoaXMuX3VzZXJTb3VyY2UubmV4dChBdXRoU2VydmljZS51c2VyKTtcclxuICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChhd2FpdCB0aGlzLmlzQXV0aGVudGljYXRlZCgpKTtcclxuICAgIGxldCBpc0V4dGVybmFsID1cclxuICAgICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SXNJZGVudGl0eVNlcnZlckV4dGVybmFsKCkudG9Mb3dlckNhc2UoKSA9PVxyXG4gICAgICAndHJ1ZSc7XHJcbiAgICBpZiAoaXNFeHRlcm5hbCkge1xyXG4gICAgICBjb25zdCBtYXN0ZXJMYXlvdXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTWFzdGVyTGF5b3V0U2VydmljZSk7XHJcbiAgICAgIGxldCB1c2VyQ2xhaW1zID0gYXdhaXQgbWFzdGVyTGF5b3V0U2VydmljZVxyXG4gICAgICAgIC5nZXRVc2VyQ2xhaW1zKClcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAudGhlbigoZSkgPT4ge1xyXG4gICAgICAgICAgQXV0aFNlcnZpY2UuVXNlckNsYWltcyA9IGU7XHJcbiAgICAgICAgfSwoZXJyb3IpPT57XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcilcclxuICAgICAgICB9KTtcclxuICAgICAgQXV0aFNlcnZpY2UudXNlci5wcm9maWxlID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAgICBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUsXHJcbiAgICAgICAgQXV0aFNlcnZpY2UuVXNlckNsYWltc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RvclVzZXIoQXV0aFNlcnZpY2UudXNlcik7XHJcbiAgICBpZiAoXHJcbiAgICAgICFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSA9PSB0aGlzLnVzZXIucHJvZmlsZS5sb2NhbGVcclxuICAgIClcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmd1YWdlJywgdGhpcy51c2VyLnByb2ZpbGUubG9jYWxlKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nICE9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5yZXNldExhbmcodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKTtcclxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgICAgLnJlbG9hZExhbmcobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdXNlclNvdXJjZS5uZXh0KEF1dGhTZXJ2aWNlLnVzZXIpO1xyXG4gICAgdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5uZXh0KGF3YWl0IHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpO1xyXG4gICAgdGhpcy51c2VyID0gQXV0aFNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG4gIGFzeW5jIHJlZnJlc2hUb2tlbih0b2tlbikge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBBdXRob3JpemF0aW9uOiB0b2tlbixcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubWFuYWdlci5yZXZva2VBY2Nlc3NUb2tlbigpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KFxyXG4gICAgICAgIGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElkZW50aXR5U2VydmVyVXJsKCl9L3VzZXJzL3JlZnJlc2gtdG9rZW5gLFxyXG4gICAgICAgIGh0dHBPcHRpb25zLFxyXG4gICAgICAgIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH1cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXNlclNvdXJjZS5uZXh0KHVzZXIpO1xyXG4gICAgICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB1c2VyO1xyXG4gICAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFVzZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYW5hZ2VyLmdldFVzZXIoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGlzQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB1c2VyID0gYXdhaXQgdGhpcy5tYW5hZ2VyLmdldFVzZXIoKS50aGVuKCh1c2VyKSA9PiB7XHJcbiAgICAgIHJldHVybiB1c2VyO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyICE9IG51bGwgJiYgIXRoaXMudXNlci5leHBpcmVkO1xyXG4gIH1cclxuICBpc1VzZXJJblJvbGUoYWxsb3dlZFBlcm1pc3Npb246IG51bWJlcltdKSB7XHJcbiAgICBsZXQgc2VsZWN0ZWRQZXJtaXNzaW9uU2V0SUQ6IG51bWJlciA9IE51bWJlci5wYXJzZUludChcclxuICAgICAgdGhpcy51c2VyLnByb2ZpbGVbJ3NlbGVjdGVkcGVybWlzc2lvbnNldGlkJ11cclxuICAgICk7XHJcbiAgICByZXR1cm4gYWxsb3dlZFBlcm1pc3Npb24uaW5jbHVkZXMoc2VsZWN0ZWRQZXJtaXNzaW9uU2V0SUQpO1xyXG4gIH1cclxuXHJcbiAgYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlclxyXG4gICAgICA/IGAke0F1dGhTZXJ2aWNlLnVzZXIudG9rZW5fdHlwZX0gJHtBdXRoU2VydmljZS51c2VyLmFjY2Vzc190b2tlbn1gXHJcbiAgICAgIDogJyc7XHJcbiAgfVxyXG5cclxuICBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlciAhPSBudWxsID8gQXV0aFNlcnZpY2UudXNlci5wcm9maWxlLmdpdmVuX25hbWUgOiAnJztcclxuICB9XHJcbiAgc2V0VXJsKHVybCkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3JlZGlyZWN0VXJsJywgdXJsKTtcclxuICB9XHJcbiAgZ2V0VXJsKCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZWRpcmVjdFVybCcpO1xyXG4gIH1cclxuICBhc3luYyBzaWduaW5TaWxlbnRDYWxsYmFjaygpIHtcclxuICAgIGxldCB1c2VyID0gYXdhaXQgdGhpcy5tYW5hZ2VyLnNpZ25pblNpbGVudENhbGxiYWNrKCk7XHJcbiAgICAvL2F3YWl0IHRoaXMubWFuYWdlci5zdG9yZVVzZXIodXNlcik7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gdXNlcjtcclxuICAgIGNvbnNvbGUubG9nKCdUb2tlbiBmcm9tICBzaWduaW5TaWxlbnRDYWxsYmFjayA6JyArIEF1dGhTZXJ2aWNlLnVzZXIpO1xyXG4gICAgdGhpcy51c2VyID0gdXNlcjtcclxuICB9XHJcbiAgYXN5bmMgc2lnbm91dCgpIHtcclxuICAgIGlmIChhd2FpdCAhdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSlcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKSwgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICBsZXQgaXNFeHRlcm5hbCA9XHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElzSWRlbnRpdHlTZXJ2ZXJFeHRlcm5hbCgpLnRvTG93ZXJDYXNlKCkgPT1cclxuICAgICAgJ3RydWUnO1xyXG4gICAgaWYgKGlzRXh0ZXJuYWwpIHtcclxuICAgICAgYXdhaXQgdGhpcy5jbGVhclVzZXJTZXNzaW9uQ2xhaW1zKClcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5tYW5hZ2VyLnNpZ25vdXRSZWRpcmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJVc2VyU2Vzc2lvbkNsYWltcygpIHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgIGxldCBBcGlVcmwgPSAnL2FwaS9Ib21lLyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyBBcGlVcmwgKyAnQ2xlYXJDdXJyZW50VXNlclNlc3Npb24nLGh0dHBPcHRpb25zKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,35 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./configuration.service";
4
- export class AppearanceConfigurationService {
5
- constructor(configService) {
6
- this.configService = configService;
7
- }
8
- getLayoutTheme() {
9
- return this.configService.getConfigurationValue('AnonymousLayout_Theme');
10
- }
11
- getFooterText() {
12
- return this.configService.getConfigurationValue('AnonymousLayout_FooterText');
13
- }
14
- getPageTitle() {
15
- return this.configService.getConfigurationValue('AnonymousLayout_PageTitle');
16
- }
17
- getFavIcon() {
18
- return this.configService.getConfigurationValue('AnonymousLayout_FavIcon');
19
- }
20
- getCustomStyles() {
21
- return this.configService.getConfigurationValue('AnonymousLayout_CustomStyles');
22
- }
23
- getLogo() {
24
- return this.configService.getConfigurationValue('AnonymousLayout_Logo');
25
- }
26
- }
27
- AppearanceConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AppearanceConfigurationService, deps: [{ token: i1.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
28
- AppearanceConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AppearanceConfigurationService, providedIn: 'root' });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AppearanceConfigurationService, decorators: [{
30
- type: Injectable,
31
- args: [{
32
- providedIn: 'root'
33
- }]
34
- }], ctorParameters: function () { return [{ type: i1.ConfigurationService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwZWFyYW5jZUNvbmZpZ3VyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL0FwcGVhcmFuY2VDb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTzNDLE1BQU0sT0FBTyw4QkFBOEI7SUFDdkMsWUFBb0IsYUFBbUM7UUFBbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO0lBQ3ZELENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0QsWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxVQUFVO1FBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0QsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7OzRIQXJCUSw4QkFBOEI7Z0lBQTlCLDhCQUE4QixjQUYzQixNQUFNOzRGQUVULDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcGVhcmFuY2VDb25maWd1cmF0aW9uU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TGF5b3V0VGhlbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWd1cmF0aW9uVmFsdWUoJ0Fub255bW91c0xheW91dF9UaGVtZScpO1xyXG4gICAgfVxyXG4gICAgZ2V0Rm9vdGVyVGV4dCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZSgnQW5vbnltb3VzTGF5b3V0X0Zvb3RlclRleHQnKTtcclxuICAgIH1cclxuICAgIGdldFBhZ2VUaXRsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZSgnQW5vbnltb3VzTGF5b3V0X1BhZ2VUaXRsZScpO1xyXG4gICAgfVxyXG4gICAgZ2V0RmF2SWNvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZSgnQW5vbnltb3VzTGF5b3V0X0Zhdkljb24nKTtcclxuICAgIH1cclxuICAgIGdldEN1c3RvbVN0eWxlcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZSgnQW5vbnltb3VzTGF5b3V0X0N1c3RvbVN0eWxlcycpO1xyXG4gICAgfVxyXG4gICAgZ2V0TG9nbygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZSgnQW5vbnltb3VzTGF5b3V0X0xvZ28nKTtcclxuICAgIH1cclxufSJdfQ==
@@ -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: "13.3.12", ngImport: i0, type: ConfigurationService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
17
- ConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ConfigurationService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sb0JBQW9CO0lBRTdCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEUsb0JBQW9CLENBQUMsUUFBUSxHQUFHLElBQWEsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFDRCxxQkFBcUIsQ0FBQyxHQUFVO1FBQzVCLE9BQVEsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBUkssNkJBQVEsR0FBTyxFQUFFLENBQUE7a0hBRGQsb0JBQW9CO3NIQUFwQixvQkFBb0IsY0FGakIsTUFBTTs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcclxuICAgc3RhdGljIEpzb25EYXRhOmFueVtdPVtdXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpe1xyXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQoXCIuL2Fzc2V0cy9jb25maWcvY29uZmlndXJhdGlvbnMuanNvblwiKS5zdWJzY3JpYmUoZGF0YSA9PntcclxuICAgICAgICAgICAgQ29uZmlndXJhdGlvblNlcnZpY2UuSnNvbkRhdGEgPSBkYXRhIGFzIGFueVtdO1xyXG4gICAgICAgICAgfSlcclxuICAgIH1cclxuICAgIGdldENvbmZpZ3VyYXRpb25WYWx1ZShrZXk6c3RyaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuICBDb25maWd1cmF0aW9uU2VydmljZS5Kc29uRGF0YVtrZXldO1xyXG4gICAgfVxyXG59Il19
@@ -1,166 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { BlockUI } from 'ng-block-ui';
4
- import { RequestOptionsModel } from '../models/RequestOptionsModel';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "./utility.service";
7
- export class ControlValidationService {
8
- constructor(utilityService) {
9
- this.utilityService = utilityService;
10
- this.requestOptions = new RequestOptionsModel();
11
- this.isCreatedBefor = false;
12
- }
13
- showGlobalError(errorMessage, formId, deleteOld) {
14
- let globalErorrElement = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');
15
- if (globalErorrElement.length > 0) {
16
- this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');
17
- }
18
- if (this.isCreatedBefor == true) {
19
- this.removeElementsByClass('alert alert-InvalidValidation bg-light-danger text-danger');
20
- }
21
- // tslint:disable-next-line: prefer-const
22
- if (!formId)
23
- formId = "currentForm";
24
- var object = document.getElementById(formId);
25
- const tagName = 'div';
26
- // tslint:disable-next-line: prefer-const
27
- var elementToAppend = document.createElement(tagName); // Your tag name here
28
- let message = "";
29
- if (!errorMessage || (typeof errorMessage == "string")) {
30
- if (localStorage.getItem('language') == "ar")
31
- message = errorMessage ? errorMessage : "لديك بعص الأخطاء . من فضلك قم بالمراجعه ";
32
- else
33
- message = errorMessage ? errorMessage : "You have some validation errors. Please check below";
34
- elementToAppend.innerHTML = "<ul class='list-unstyled m-0 py-3 d-flex align-items-center fs-6'><li><i class='fa fa-times-circle text-danger me-3 fs-2'></i>" + message + "</li></ul>";
35
- elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';
36
- elementToAppend.id += 'errorId';
37
- // tslint:disable-next-line: prefer-for-of
38
- const elementToAppen = elementToAppend.cloneNode(true);
39
- // let targetElement = object.getElementsByClassName("b-control")[0];
40
- object.insertBefore(elementToAppen, object.firstChild);
41
- }
42
- else {
43
- elementToAppend.innerHTML = "<ul>";
44
- for (const iterator of errorMessage) {
45
- elementToAppend.innerHTML = "<li>" + iterator + "</li>";
46
- }
47
- elementToAppend.innerHTML = "</ul>";
48
- elementToAppend.className += 'alert alert-InvalidValidation bg-light-danger text-danger';
49
- elementToAppend.id += 'errorId';
50
- // tslint:disable-next-line: prefer-for-of
51
- const elementToAppen = elementToAppend.cloneNode(true);
52
- // let targetElement = object.getElementsByClassName("b-control")[0];
53
- object.insertBefore(elementToAppen, object.firstChild);
54
- }
55
- this.isCreatedBefor = true;
56
- }
57
- RemoveGlobalError() {
58
- const removedList = document.getElementsByClassName('alert alert-InvalidValidation bg-light-danger text-danger');
59
- // tslint:disable-next-line: prefer-for-of
60
- for (let index = 0; index < removedList.length; index++) {
61
- const element = removedList[index];
62
- element.remove();
63
- }
64
- this.isCreatedBefor = false;
65
- }
66
- showInputErro(errors) {
67
- // show error on top of form
68
- this.showGlobalError();
69
- // remove old error from server
70
- this.removeElementsByClass('errortemplet');
71
- // Looping in error Object
72
- for (const key in errors) {
73
- if (errors.hasOwnProperty(key)) {
74
- for (const iterator of errors[key]) {
75
- const input = document.querySelectorAll('[ng-reflect-name=' + key + ']')[0];
76
- if (input.attributes['ng-reflect-name'].value === key) {
77
- this.removeElementsByClass('erroclass-' + key);
78
- const tagName = 'p';
79
- const elementToAppend = document.createElement(tagName); // Your tag name here
80
- elementToAppend.innerHTML = iterator;
81
- elementToAppend.style.color = 'red';
82
- elementToAppend.className += 'errortemplet erroclass-' + key;
83
- const elementToappen = elementToAppend.cloneNode(true);
84
- input.parentNode.insertBefore(elementToappen, input.lastChild);
85
- break;
86
- }
87
- }
88
- }
89
- }
90
- }
91
- removeElementsByClass(className) {
92
- const elements = document.getElementsByClassName(className);
93
- while (elements.length > 0) {
94
- elements[0].parentNode.removeChild(elements[0]);
95
- }
96
- }
97
- renderServerErrors(form, err, requestOptions, formId) {
98
- if (err.error == null) {
99
- return;
100
- }
101
- let errorsArray = [];
102
- this.requestOptions = requestOptions;
103
- err.error.validation_errors.forEach((element) => {
104
- let fieldName = element.field;
105
- let controlName = element.controlName;
106
- let message = element.message;
107
- if (form == null) {
108
- this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`);
109
- }
110
- else if (controlName && !this.hasControlName(form, controlName)) {
111
- errorsArray.push(`${fieldName}: ${message}`);
112
- // this.showGlobalError(`${fieldName}: ${message}`,formId )
113
- }
114
- else {
115
- this.setFieldError(form, controlName, fieldName, message);
116
- }
117
- });
118
- if (errorsArray.length > 0)
119
- this.showGlobalError(errorsArray, formId);
120
- }
121
- hasControlName(form, controlName) {
122
- let control = form.get(controlName);
123
- return control != null;
124
- }
125
- setFieldError(form, controlName, fieldName, message) {
126
- let control = null;
127
- if (controlName)
128
- control = form.get(controlName);
129
- else
130
- control = form.get(fieldName.split('.')[0]);
131
- let errors = { "errorMassage": message };
132
- let fieldNameArray = fieldName.split('.');
133
- if (fieldNameArray.length >= 1) {
134
- switch (fieldNameArray[fieldNameArray.length - 1].toLocaleLowerCase()) {
135
- case "english":
136
- let englishControl = control.get("English");
137
- englishControl.setErrors(errors);
138
- break;
139
- case "arabic":
140
- let arabicControl = control.get("Arabic");
141
- arabicControl.setErrors(errors);
142
- break;
143
- default:
144
- control.setErrors(errors);
145
- }
146
- }
147
- else if (fieldNameArray.length == 1) {
148
- control.setErrors(errors);
149
- }
150
- else {
151
- this.requestOptions.customErrorMessage ? this.utilityService.notifyErrorMessage(this.requestOptions.customErrorMessage) : this.utilityService.notifyErrorMessage(`${message}`);
152
- }
153
- }
154
- }
155
- ControlValidationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ControlValidationService, deps: [{ token: i1.UtilityService }], target: i0.ɵɵFactoryTarget.Injectable });
156
- ControlValidationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ControlValidationService, providedIn: 'root' });
157
- __decorate([
158
- BlockUI()
159
- ], ControlValidationService.prototype, "blockUI", void 0);
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ControlValidationService, decorators: [{
161
- type: Injectable,
162
- args: [{
163
- providedIn: 'root'
164
- }]
165
- }], ctorParameters: function () { return [{ type: i1.UtilityService }]; }, propDecorators: { blockUI: [] } });
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHZhbGlkYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtdXRpbGl0aWVzL3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2NvbnRyb2x2YWxpZGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxPQUFPLEVBQWEsTUFBTSxhQUFhLENBQUM7QUFNakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQU9wRSxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBRVksY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSmxDLG1CQUFjLEdBQXdCLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQVN4RSxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUZ2QixDQUFDO0lBTUQsZUFBZSxDQUFDLFlBQWdDLEVBQUUsTUFBZSxFQUFFLFNBQW1CO1FBQ3BGLElBQUksa0JBQWtCLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixDQUFDLDJEQUEyRCxDQUFDLENBQUE7UUFDckgsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQ3pGO1FBR0QsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRTtZQUMvQixJQUFJLENBQUMscUJBQXFCLENBQUMsMkRBQTJELENBQUMsQ0FBQztTQUN6RjtRQUVELHlDQUF5QztRQUN6QyxJQUFJLENBQUMsTUFBTTtZQUNULE1BQU0sR0FBRyxhQUFhLENBQUE7UUFDeEIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxL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QWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1NBQy9LO0lBR0gsQ0FBQzs7c0hBbkxVLHdCQUF3QjswSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07QUFjUDtJQUFWLE9BQU8sRUFBRTt5REFBb0I7NEZBWm5CLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7cUdBYVksT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsLCBIb3N0LCBTa2lwU2VsZiwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEluZGl2aWR1YWxDb25maWcsIFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgQmxvY2tVSSwgTmdCbG9ja1VJIH0gZnJvbSAnbmctYmxvY2stdWknO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvRXJyb3JNb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi91dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXF1ZXN0T3B0aW9uc01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL1JlcXVlc3RPcHRpb25zTW9kZWwnO1xyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVxdWVzdE9wdGlvbnM6IFJlcXVlc3RPcHRpb25zTW9kZWwgPSBuZXcgUmVxdWVzdE9wdGlvbnNNb2RlbCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gICAgKFxyXG4gICAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZVxyXG4gICAgKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaXNDcmVhdGVkQmVmb3IgPSBmYWxzZTtcclxuXHJcbiAgQEJsb2NrVUkoKSBibG9ja1VJOiBOZ0Jsb2NrVUk7XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcihlcnJvck1lc3NhZ2U/OiBzdHJpbmcgfCBzdHJpbmdbXSwgZm9ybUlkPzogc3RyaW5nLCBkZWxldGVPbGQ/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgZ2xvYmFsRXJvcnJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnYWxlcnQgYWxlcnQtSW52YWxpZFZhbGlkYXRpb24gYmctbGlnaHQtZGFuZ2VyIHRleHQtZGFuZ2VyJylcclxuICAgIGlmIChnbG9iYWxFcm9yckVsZW1lbnQubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnJlbW92ZUVsZW1lbnRzQnlDbGFzcygnYWxlcnQgYWxlcnQtSW52YWxpZFZhbGlkYXRpb24gYmctbGlnaHQtZGFuZ2VyIHRleHQtZGFuZ2VyJyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmICh0aGlzLmlzQ3JlYXRlZEJlZm9yID09IHRydWUpIHtcclxuICAgICAgdGhpcy5yZW1vdmVFbGVtZW50c0J5Q2xhc3MoJ2FsZXJ0IGFsZXJ0LUludmFsaWRWYWxpZGF0aW9uIGJnLWxpZ2h0LWRhbmdlciB0ZXh0LWRhbmdlcicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogcHJlZmVyLWNvbnN0XHJcbiAgICBpZiAoIWZvcm1JZClcclxuICAgICAgZm9ybUlkID0gXCJjdXJyZW50Rm9ybVwiXHJcbiAgICB2YXIgb2JqZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZm9ybUlkKTtcclxuICAgIGNvbnN0IHRhZ05hbWUgPSAnZGl2JztcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogcHJlZmVyLWNvbnN0XHJcbiAgICB2YXIgZWxlbWVudFRvQXBwZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsgLy8gWW91ciB0YWcgbmFtZSBoZXJlXHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSBcIlwiO1xyXG5cclxuXHJcbiAgICBpZiAoIWVycm9yTWVzc2FnZSB8fCAodHlwZW9mIGVycm9yTWVzc2FnZSA9PSBcInN0cmluZ1wiKSkge1xyXG4gICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykgPT0gXCJhclwiKVxyXG4gICAgICAgIG1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UgPyBlcnJvck1lc3NhZ2UgOiBcItmE2K/ZitmDINio2LnYtSDYp9mE2KPYrti32KfYoSAuINmF2YYg2YHYttmE2YMg2YLZhSDYqNin2YTZhdix2KfYrNi52YcgXCI7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBtZXNzYWdlID0gZXJyb3JNZXNzYWdlID8gZXJyb3JNZXNzYWdlIDogXCJZb3UgaGF2ZSBzb21lIHZhbGlkYXRpb24gZXJyb3JzLiBQbGVhc2UgY2hlY2sgYmVsb3dcIlxyXG4gICAgICBlbGVtZW50VG9BcHBlbmQuaW5uZXJIVE1MID0gXCI8dWwgY2xhc3M9J2xpc3QtdW5zdHlsZWQgbS0wIHB5LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmcy02Jz48bGk+PGkgY2xhc3M9J2ZhIGZhLXRpbWVzLWNpcmNsZSB0ZXh0LWRhbmdlciBtZS0zIGZzLTInPjwvaT5cIiArIG1lc3NhZ2UgKyBcIjwvbGk+PC91bD5cIjtcclxuICAgICAgZWxlbWVudFRvQXBwZW5kLmNsYXNzTmFtZSArPSAnYWxlcnQgYWxlcnQtSW52YWxpZFZhbGlkYXRpb24gYmctbGlnaHQtZGFuZ2VyIHRleHQtZGFuZ2VyJztcclxuICAgICAgZWxlbWVudFRvQXBwZW5kLmlkICs9ICdlcnJvcklkJztcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBwcmVmZXItZm9yLW9mXHJcbiAgICAgIGNvbnN0IGVsZW1lbnRUb0FwcGVuID0gZWxlbWVudFRvQXBwZW5kLmNsb25lTm9kZSh0cnVlKTtcclxuICAgICAgLy8gbGV0IHRhcmdldEVsZW1lbnQgPSBvYmplY3QuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImItY29udHJvbFwiKVswXTtcclxuICAgICAgb2JqZWN0Lmluc2VydEJlZm9yZShlbGVtZW50VG9BcHBlbiwgb2JqZWN0LmZpcnN0Q2hpbGQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbm5lckhUTUwgPSBcIjx1bD5cIjtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgZXJyb3JNZXNzYWdlKSB7XHJcblxyXG4gICAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbm5lckhUTUwgPSBcIjxsaT5cIiArIGl0ZXJhdG9yICsgXCI8L2xpPlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBlbGVtZW50VG9BcHBlbmQuaW5uZXJIVE1MID0gXCI8L3VsPlwiO1xyXG4gICAgICBlbGVtZW50VG9BcHBlbmQuY2xhc3NOYW1lICs9ICdhbGVydCBhbGVydC1JbnZhbGlkVmFsaWRhdGlvbiBiZy1saWdodC1kYW5nZXIgdGV4dC1kYW5nZXInO1xyXG4gICAgICBlbGVtZW50VG9BcHBlbmQuaWQgKz0gJ2Vycm9ySWQnO1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHByZWZlci1mb3Itb2ZcclxuICAgICAgY29uc3QgZWxlbWVudFRvQXBwZW4gPSBlbGVtZW50VG9BcHBlbmQuY2xvbmVOb2RlKHRydWUpO1xyXG4gICAgICAvLyBsZXQgdGFyZ2V0RWxlbWVudCA9IG9iamVjdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYi1jb250cm9sXCIpWzBdO1xyXG4gICAgICBvYmplY3QuaW5zZXJ0QmVmb3JlKGVsZW1lbnRUb0FwcGVuLCBvYmplY3QuZmlyc3RDaGlsZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pc0NyZWF0ZWRCZWZvciA9IHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgUmVtb3ZlR2xvYmFsRXJyb3IoKSB7XHJcbiAgICBjb25zdCByZW1vdmVkTGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2FsZXJ0IGFsZXJ0LUludmFsaWRWYWxpZGF0aW9uIGJnLWxpZ2h0LWRhbmdlciB0ZXh0LWRhbmdlcicpO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBwcmVmZXItZm9yLW9mXHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgcmVtb3ZlZExpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSByZW1vdmVkTGlzdFtpbmRleF07XHJcbiAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzaG93SW5wdXRFcnJvKGVycm9yczogYW55KSB7XHJcblxyXG4gICAgLy8gc2hvdyBlcnJvciBvbiB0b3Agb2YgZm9ybSBcclxuICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKCk7XHJcbiAgICAvLyByZW1vdmUgb2xkIGVycm9yIGZyb20gc2VydmVyXHJcbiAgICB0aGlzLnJlbW92ZUVsZW1lbnRzQnlDbGFzcygnZXJyb3J0ZW1wbGV0Jyk7XHJcbiAgICAvLyBMb29waW5nIGluIGVycm9yIE9iamVjdFxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gZXJyb3JzKSB7XHJcbiAgICAgIGlmIChlcnJvcnMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgZXJyb3JzW2tleV0pIHtcclxuICAgICAgICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW25nLXJlZmxlY3QtbmFtZT0nICsga2V5ICsgJ10nKVswXTtcclxuICAgICAgICAgIGlmICgoaW5wdXQuYXR0cmlidXRlc1snbmctcmVmbGVjdC1uYW1lJ10udmFsdWUgYXMgc3RyaW5nKSA9PT0ga2V5KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlRWxlbWVudHNCeUNsYXNzKCdlcnJvY2xhc3MtJyArIGtleSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHRhZ05hbWUgPSAncCdcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvQXBwZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTsgLy8gWW91ciB0YWcgbmFtZSBoZXJlXHJcbiAgICAgICAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbm5lckhUTUwgPSBpdGVyYXRvcjtcclxuICAgICAgICAgICAgZWxlbWVudFRvQXBwZW5kLnN0eWxlLmNvbG9yID0gJ3JlZCdcclxuICAgICAgICAgICAgZWxlbWVudFRvQXBwZW5kLmNsYXNzTmFtZSArPSAnZXJyb3J0ZW1wbGV0IGVycm9jbGFzcy0nICsga2V5O1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9hcHBlbiA9IGVsZW1lbnRUb0FwcGVuZC5jbG9uZU5vZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnRUb2FwcGVuLCBpbnB1dC5sYXN0Q2hpbGQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUVsZW1lbnRzQnlDbGFzcyhjbGFzc05hbWUpIHtcclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjbGFzc05hbWUpO1xyXG4gICAgd2hpbGUgKGVsZW1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZWxlbWVudHNbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50c1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcmVuZGVyU2VydmVyRXJyb3JzKGZvcm06IEZvcm1Hcm91cCwgZXJyOiBIdHRwRXJyb3JSZXNwb25zZSwgcmVxdWVzdE9wdGlvbnM6IFJlcXVlc3RPcHRpb25zTW9kZWwsIGZvcm1JZD86IHN0cmluZykge1xyXG4gICAgaWYgKGVyci5lcnJvciA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBlcnJvcnNBcnJheTogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICB0aGlzLnJlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XHJcbiAgICBlcnIuZXJyb3IudmFsaWRhdGlvbl9lcnJvcnMuZm9yRWFjaCgoZWxlbWVudDogRXJyb3JNb2RlbCkgPT4ge1xyXG4gICAgICBsZXQgZmllbGROYW1lID0gZWxlbWVudC5maWVsZDtcclxuICAgICAgbGV0IGNvbnRyb2xOYW1lID0gZWxlbWVudC5jb250cm9sTmFtZTtcclxuICAgICAgbGV0IG1lc3NhZ2UgPSBlbGVtZW50Lm1lc3NhZ2U7XHJcbiAgICAgIGlmIChmb3JtID09IG51bGwpIHtcclxuICAgICAgICB0aGlzLnJlcXVlc3RPcHRpb25zLmN1c3RvbUVycm9yTWVzc2FnZSA/IHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKHRoaXMucmVxdWVzdE9wdGlvbnMuY3VzdG9tRXJyb3JNZXNzYWdlKSA6IHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGAke21lc3NhZ2V9YCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoY29udHJvbE5hbWUgJiYgIXRoaXMuaGFzQ29udHJvbE5hbWUoZm9ybSwgY29udHJvbE5hbWUpKSB7XHJcbiAgICAgICAgZXJyb3JzQXJyYXkucHVzaChgJHtmaWVsZE5hbWV9OiAke21lc3NhZ2V9YCk7XHJcbiAgICAgICAgLy8gdGhpcy5zaG93R2xvYmFsRXJyb3IoYCR7ZmllbGROYW1lfTogJHttZXNzYWdlfWAsZm9ybUlkIClcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldEZpZWxkRXJyb3IoZm9ybSwgY29udHJvbE5hbWUsIGZpZWxkTmFtZSwgbWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGVycm9yc0FycmF5Lmxlbmd0aCA+IDApXHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKGVycm9yc0FycmF5LCBmb3JtSWQpXHJcblxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzQ29udHJvbE5hbWUoZm9ybTogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgY29udHJvbCA9IGZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIHJldHVybiBjb250cm9sICE9IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZpZWxkRXJyb3IoZm9ybTogRm9ybUdyb3VwLCBjb250cm9sTmFtZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IG51bGxcclxuICAgIGlmIChjb250cm9sTmFtZSlcclxuICAgICAgY29udHJvbCA9IGZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIGVsc2VcclxuICAgICAgY29udHJvbCA9IGZvcm0uZ2V0KGZpZWxkTmFtZS5zcGxpdCgnLicpWzBdKTtcclxuICAgIGxldCBlcnJvcnMgPSB7IFwiZXJyb3JNYXNzYWdlXCI6IG1lc3NhZ2UgfTtcclxuICAgIGxldCBmaWVsZE5hbWVBcnJheSA9IGZpZWxkTmFtZS5zcGxpdCgnLicpO1xyXG4gICAgaWYgKGZpZWxkTmFtZUFycmF5Lmxlbmd0aCA+PSAxKSB7XHJcbiAgICAgIHN3aXRjaCAoZmllbGROYW1lQXJyYXlbZmllbGROYW1lQXJyYXkubGVuZ3RoIC0gMV0udG9Mb2NhbGVMb3dlckNhc2UoKSkge1xyXG4gICAgICAgIGNhc2UgXCJlbmdsaXNoXCI6XHJcbiAgICAgICAgICBsZXQgZW5nbGlzaENvbnRyb2wgPSBjb250cm9sLmdldChcIkVuZ2xpc2hcIilcclxuICAgICAgICAgIGVuZ2xpc2hDb250cm9sLnNldEVycm9ycyhlcnJvcnMpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImFyYWJpY1wiOlxyXG4gICAgICAgICAgbGV0IGFyYWJpY0NvbnRyb2wgPSBjb250cm9sLmdldChcIkFyYWJpY1wiKVxyXG4gICAgICAgICAgYXJhYmljQ29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZpZWxkTmFtZUFycmF5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGNvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5yZXF1ZXN0T3B0aW9ucy5jdXN0b21FcnJvck1lc3NhZ2UgPyB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSh0aGlzLnJlcXVlc3RPcHRpb25zLmN1c3RvbUVycm9yTWVzc2FnZSkgOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZShgJHttZXNzYWdlfWApXHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=