vc-error-handlers 0.1.98 → 0.2.0

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 (89) hide show
  1. package/esm2022/lib/configuration.mjs +7 -0
  2. package/{esm2020 → esm2022}/lib/featureFlag/feature-flag.directive.mjs +27 -27
  3. package/esm2022/lib/featureFlag/feature-flag.module.mjs +20 -0
  4. package/esm2022/lib/featureFlag/feature-flag.service.mjs +98 -0
  5. package/{esm2020 → esm2022}/lib/shared/components/chunk-unavailable/chunk-unavailable.component.mjs +35 -35
  6. package/esm2022/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +65 -0
  7. package/{esm2020 → esm2022}/lib/shared/components/error-modal/error-modal.component.mjs +45 -45
  8. package/esm2022/lib/shared/components/page-not-found/page-not-found.component.mjs +92 -0
  9. package/esm2022/lib/shared/components/server-error/server-error.component.mjs +83 -0
  10. package/{esm2020 → esm2022}/lib/shared/components/session-expired/session-expired.component.mjs +35 -35
  11. package/esm2022/lib/shared/components/unauthorized/unauthorized.component.mjs +103 -0
  12. package/{esm2020 → esm2022}/lib/shared/constants/api-config.constants.mjs +239 -239
  13. package/{esm2020 → esm2022}/lib/shared/constants/error-handling.constants.mjs +62 -62
  14. package/{esm2020 → esm2022}/lib/shared/errorhandler/chunk-error.handler.mjs +18 -18
  15. package/{esm2020 → esm2022}/lib/shared/errorhandler/sentry-error.handler.mjs +47 -47
  16. package/{esm2020 → esm2022}/lib/shared/interceptors/http.interceptor.mjs +35 -35
  17. package/{esm2020 → esm2022}/lib/shared/services/global-error.service.mjs +115 -115
  18. package/{esm2020 → esm2022}/lib/shared/services/router.service.mjs +19 -19
  19. package/{esm2020 → esm2022}/lib/shared/services/util.service.mjs +48 -48
  20. package/{esm2020 → esm2022}/lib/shared/types/global-error.types.mjs +15 -15
  21. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-config.mjs +2 -2
  22. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +15 -0
  23. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog-ref.mjs +12 -12
  24. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.component.mjs +85 -85
  25. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +21 -0
  26. package/{esm2020 → esm2022}/lib/ui-kit/dialog/dialog.service.mjs +52 -52
  27. package/{esm2020 → esm2022}/lib/ui-kit/dialog/insertion.directive.mjs +16 -16
  28. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.mjs +50 -50
  29. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  30. package/{esm2020 → esm2022}/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -32
  31. package/{esm2020 → esm2022}/lib/vc-error-handlers.component.mjs +85 -85
  32. package/esm2022/lib/vc-error-handlers.module.mjs +84 -0
  33. package/{esm2020 → esm2022}/lib/vc-error-handlers.service.mjs +14 -14
  34. package/{esm2020 → esm2022}/public-api.mjs +16 -16
  35. package/{esm2020 → esm2022}/vc-error-handlers.mjs +4 -4
  36. package/{fesm2020 → fesm2022}/vc-error-handlers.mjs +1286 -1359
  37. package/fesm2022/vc-error-handlers.mjs.map +1 -0
  38. package/{vc-error-handlers.d.ts → index.d.ts} +5 -5
  39. package/lib/configuration.d.ts +5 -4
  40. package/lib/featureFlag/feature-flag.directive.d.ts +13 -13
  41. package/lib/featureFlag/feature-flag.module.d.ts +8 -8
  42. package/lib/featureFlag/feature-flag.service.d.ts +21 -19
  43. package/lib/shared/components/chunk-unavailable/chunk-unavailable.component.d.ts +20 -20
  44. package/lib/shared/components/component-level-server-error/component-level-server-error.component.d.ts +19 -19
  45. package/lib/shared/components/error-modal/error-modal.component.d.ts +21 -21
  46. package/lib/shared/components/page-not-found/page-not-found.component.d.ts +23 -23
  47. package/lib/shared/components/server-error/server-error.component.d.ts +19 -19
  48. package/lib/shared/components/session-expired/session-expired.component.d.ts +20 -20
  49. package/lib/shared/components/unauthorized/unauthorized.component.d.ts +23 -23
  50. package/lib/shared/constants/api-config.constants.d.ts +20 -20
  51. package/lib/shared/constants/error-handling.constants.d.ts +62 -62
  52. package/lib/shared/errorhandler/chunk-error.handler.d.ts +7 -7
  53. package/lib/shared/errorhandler/sentry-error.handler.d.ts +14 -14
  54. package/lib/shared/interceptors/http.interceptor.d.ts +13 -13
  55. package/lib/shared/services/global-error.service.d.ts +31 -31
  56. package/lib/shared/services/router.service.d.ts +6 -6
  57. package/lib/shared/services/util.service.d.ts +15 -15
  58. package/lib/shared/types/global-error.types.d.ts +27 -27
  59. package/lib/ui-kit/dialog/dialog-config.d.ts +6 -6
  60. package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -7
  61. package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -7
  62. package/lib/ui-kit/dialog/dialog.component.d.ts +33 -33
  63. package/lib/ui-kit/dialog/dialog.module.d.ts +9 -9
  64. package/lib/ui-kit/dialog/dialog.service.d.ts +17 -17
  65. package/lib/ui-kit/dialog/insertion.directive.d.ts +8 -8
  66. package/lib/ui-kit/snack-bar/snack-bar/snack-bar.component.d.ts +20 -20
  67. package/lib/ui-kit/snack-bar/snack-bar.module.d.ts +8 -8
  68. package/lib/ui-kit/snack-bar/snack-bar.service.d.ts +11 -11
  69. package/lib/vc-error-handlers.component.d.ts +26 -26
  70. package/lib/vc-error-handlers.module.d.ts +26 -26
  71. package/lib/vc-error-handlers.service.d.ts +6 -6
  72. package/package.json +7 -13
  73. package/public-api.d.ts +13 -13
  74. package/environments/environment.d.ts +0 -39
  75. package/esm2020/environments/environment.mjs +0 -75
  76. package/esm2020/lib/configuration.mjs +0 -6
  77. package/esm2020/lib/featureFlag/feature-flag.module.mjs +0 -22
  78. package/esm2020/lib/featureFlag/feature-flag.service.mjs +0 -95
  79. package/esm2020/lib/shared/components/component-level-server-error/component-level-server-error.component.mjs +0 -64
  80. package/esm2020/lib/shared/components/page-not-found/page-not-found.component.mjs +0 -91
  81. package/esm2020/lib/shared/components/server-error/server-error.component.mjs +0 -82
  82. package/esm2020/lib/shared/components/unauthorized/unauthorized.component.mjs +0 -102
  83. package/esm2020/lib/ui-kit/dialog/dialog-injector.mjs +0 -15
  84. package/esm2020/lib/ui-kit/dialog/dialog.module.mjs +0 -21
  85. package/esm2020/lib/ui-kit/snack-bar/snack-bar.module.mjs +0 -18
  86. package/esm2020/lib/vc-error-handlers.module.mjs +0 -84
  87. package/fesm2015/vc-error-handlers.mjs +0 -1679
  88. package/fesm2015/vc-error-handlers.mjs.map +0 -1
  89. package/fesm2020/vc-error-handlers.mjs.map +0 -1
@@ -0,0 +1,83 @@
1
+ import { Component } from '@angular/core';
2
+ import { ERROR_CONFIG, VCOMPLY_LOGO_URL, ALT_IMAGE_TEXT, } from '../../constants/error-handling.constants';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class ServerErrorComponent {
6
+ constructor() {
7
+ this.errorConfig = ERROR_CONFIG.SERVER_ERROR;
8
+ this.VcomplyLogo = VCOMPLY_LOGO_URL;
9
+ this.altImageText = ALT_IMAGE_TEXT;
10
+ }
11
+ refreshPage() {
12
+ window.location.reload();
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServerErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ServerErrorComponent, selector: "lib-vc-error-server-error", ngImport: i0, template: `
16
+ <div class="errorPage">
17
+ <div class="errorPage-top">
18
+ <img
19
+ [ngSrc]="VcomplyLogo"
20
+ [alt]="altImageText.VCOMPLY_LOGO"
21
+ width="24"
22
+ height="24"
23
+ />
24
+ </div>
25
+ <div class="errorPage-container">
26
+ <div class="errorPage-inner">
27
+ <div class="errorPage-inner-image">
28
+ <img
29
+ [ngSrc]="errorConfig.imageUrl"
30
+ [alt]="altImageText.ERROR_IMAGE"
31
+ width="246"
32
+ height="178"
33
+ />
34
+ </div>
35
+ <div class="errorPage-inner-right">
36
+ <div class="errorPage-heading">{{ errorConfig.title }}</div>
37
+ <div class="errorPage-text">{{ errorConfig.description }}</div>
38
+ <div class="errorPage-details">{{ errorConfig.details }}</div>
39
+ <button class="errorPage-btn" (click)="refreshPage()">
40
+ {{ errorConfig.buttonText }} <i class="icons">&#xe92b;</i>
41
+ </button>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ `, isInline: true, styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServerErrorComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'lib-vc-error-server-error', template: `
51
+ <div class="errorPage">
52
+ <div class="errorPage-top">
53
+ <img
54
+ [ngSrc]="VcomplyLogo"
55
+ [alt]="altImageText.VCOMPLY_LOGO"
56
+ width="24"
57
+ height="24"
58
+ />
59
+ </div>
60
+ <div class="errorPage-container">
61
+ <div class="errorPage-inner">
62
+ <div class="errorPage-inner-image">
63
+ <img
64
+ [ngSrc]="errorConfig.imageUrl"
65
+ [alt]="altImageText.ERROR_IMAGE"
66
+ width="246"
67
+ height="178"
68
+ />
69
+ </div>
70
+ <div class="errorPage-inner-right">
71
+ <div class="errorPage-heading">{{ errorConfig.title }}</div>
72
+ <div class="errorPage-text">{{ errorConfig.description }}</div>
73
+ <div class="errorPage-details">{{ errorConfig.details }}</div>
74
+ <button class="errorPage-btn" (click)="refreshPage()">
75
+ {{ errorConfig.buttonText }} <i class="icons">&#xe92b;</i>
76
+ </button>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ `, styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"] }]
82
+ }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWVycm9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VydmVyLWVycm9yL3NlcnZlci1lcnJvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixjQUFjLEdBQ2YsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBc0NsRCxNQUFNLE9BQU8sb0JBQW9CO0lBcENqQztRQXFDRSxnQkFBVyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUM7UUFDeEMsZ0JBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUMvQixpQkFBWSxHQUFHLGNBQWMsQ0FBQztLQUsvQjtJQUhRLFdBQVc7UUFDaEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQVBVLG9CQUFvQjttR0FBcEIsb0JBQW9CLGlFQWxDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7OzRGQUdVLG9CQUFvQjtrQkFwQ2hDLFNBQVM7K0JBQ0UsMkJBQTJCLFlBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRVJST1JfQ09ORklHLFxyXG4gIFZDT01QTFlfTE9HT19VUkwsXHJcbiAgQUxUX0lNQUdFX1RFWFQsXHJcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Vycm9yLWhhbmRsaW5nLmNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12Yy1lcnJvci1zZXJ2ZXItZXJyb3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtdG9wXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgW25nU3JjXT1cIlZjb21wbHlMb2dvXCJcclxuICAgICAgICAgIFthbHRdPVwiYWx0SW1hZ2VUZXh0LlZDT01QTFlfTE9HT1wiXHJcbiAgICAgICAgICB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgIGhlaWdodD1cIjI0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLWlubmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLWlubmVyLWltYWdlXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBbbmdTcmNdPVwiZXJyb3JDb25maWcuaW1hZ2VVcmxcIlxyXG4gICAgICAgICAgICAgIFthbHRdPVwiYWx0SW1hZ2VUZXh0LkVSUk9SX0lNQUdFXCJcclxuICAgICAgICAgICAgICB3aWR0aD1cIjI0NlwiXHJcbiAgICAgICAgICAgICAgaGVpZ2h0PVwiMTc4XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS1pbm5lci1yaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLWhlYWRpbmdcIj57eyBlcnJvckNvbmZpZy50aXRsZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLXRleHRcIj57eyBlcnJvckNvbmZpZy5kZXNjcmlwdGlvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLWRldGFpbHNcIj57eyBlcnJvckNvbmZpZy5kZXRhaWxzIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlcnJvclBhZ2UtYnRuXCIgKGNsaWNrKT1cInJlZnJlc2hQYWdlKClcIj5cclxuICAgICAgICAgICAgICB7eyBlcnJvckNvbmZpZy5idXR0b25UZXh0IH19IDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTJiOzwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuLi9jb21tb24tZXJyb3ItcGFnZS5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmVyRXJyb3JDb21wb25lbnQge1xyXG4gIGVycm9yQ29uZmlnID0gRVJST1JfQ09ORklHLlNFUlZFUl9FUlJPUjtcclxuICBWY29tcGx5TG9nbyA9IFZDT01QTFlfTE9HT19VUkw7XHJcbiAgYWx0SW1hZ2VUZXh0ID0gQUxUX0lNQUdFX1RFWFQ7XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoUGFnZSgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,35 +1,35 @@
1
- import { Component } from '@angular/core';
2
- import { ErrorModalComponent } from '../error-modal/error-modal.component';
3
- import { ERROR_CONFIG, MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../ui-kit/dialog/dialog.service";
6
- export class SessionExpiredComponent {
7
- constructor(dialogService) {
8
- this.dialogService = dialogService;
9
- this.errorConfig = ERROR_CONFIG.SESSION_EXPIRED;
10
- this.errorTypes = MODAL_ERROR_TYPES;
11
- }
12
- ngOnInit() {
13
- this.openSessionExpiredModal();
14
- }
15
- openSessionExpiredModal() {
16
- this.dialogService.open(ErrorModalComponent, {
17
- data: {
18
- errorType: this.errorTypes.SESSION_EXPIRED,
19
- errorConfig: this.errorConfig,
20
- },
21
- position: 'center',
22
- background: 'whiteBlur',
23
- });
24
- }
25
- }
26
- SessionExpiredComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SessionExpiredComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component });
27
- SessionExpiredComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: SessionExpiredComponent, selector: "lib-vc-error-session-expired", ngImport: i0, template: ``, isInline: true });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: SessionExpiredComponent, decorators: [{
29
- type: Component,
30
- args: [{
31
- selector: 'lib-vc-error-session-expired',
32
- template: ``,
33
- }]
34
- }], ctorParameters: function () { return [{ type: i1.DialogService }]; } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1leHBpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2Vzc2lvbi1leHBpcmVkL3Nlc3Npb24tZXhwaXJlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUkzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQU0zRixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFKdEMsZ0JBQVcsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxpQkFBaUIsQ0FBQztJQUk1QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWU7Z0JBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzthQUM5QjtZQUNELFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFVBQVUsRUFBRSxXQUFXO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXJCVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixvRUFGeEIsRUFBRTsyRkFFRCx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRXJyb3JNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFUlJPUl9DT05GSUcsIE1PREFMX0VSUk9SX1RZUEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Vycm9yLWhhbmRsaW5nLmNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12Yy1lcnJvci1zZXNzaW9uLWV4cGlyZWQnLFxyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25FeHBpcmVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBlcnJvckNvbmZpZyA9IEVSUk9SX0NPTkZJRy5TRVNTSU9OX0VYUElSRUQ7XHJcbiAgZXJyb3JUeXBlcyA9IE1PREFMX0VSUk9SX1RZUEVTO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm9wZW5TZXNzaW9uRXhwaXJlZE1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW5TZXNzaW9uRXhwaXJlZE1vZGFsKCkge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oRXJyb3JNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZXJyb3JUeXBlOiB0aGlzLmVycm9yVHlwZXMuU0VTU0lPTl9FWFBJUkVELFxyXG4gICAgICAgIGVycm9yQ29uZmlnOiB0aGlzLmVycm9yQ29uZmlnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjogJ2NlbnRlcicsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZUJsdXInLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Component } from '@angular/core';
2
+ import { ErrorModalComponent } from '../error-modal/error-modal.component';
3
+ import { ERROR_CONFIG, MODAL_ERROR_TYPES } from '../../constants/error-handling.constants';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../ui-kit/dialog/dialog.service";
6
+ export class SessionExpiredComponent {
7
+ constructor(dialogService) {
8
+ this.dialogService = dialogService;
9
+ this.errorConfig = ERROR_CONFIG.SESSION_EXPIRED;
10
+ this.errorTypes = MODAL_ERROR_TYPES;
11
+ }
12
+ ngOnInit() {
13
+ this.openSessionExpiredModal();
14
+ }
15
+ openSessionExpiredModal() {
16
+ this.dialogService.open(ErrorModalComponent, {
17
+ data: {
18
+ errorType: this.errorTypes.SESSION_EXPIRED,
19
+ errorConfig: this.errorConfig,
20
+ },
21
+ position: 'center',
22
+ background: 'whiteBlur',
23
+ });
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionExpiredComponent, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SessionExpiredComponent, selector: "lib-vc-error-session-expired", ngImport: i0, template: ``, isInline: true }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SessionExpiredComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'lib-vc-error-session-expired',
32
+ template: ``,
33
+ }]
34
+ }], ctorParameters: function () { return [{ type: i1.DialogService }]; } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1leHBpcmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2Vzc2lvbi1leHBpcmVkL3Nlc3Npb24tZXhwaXJlZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUkzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQU0zRixNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQ1UsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFKdEMsZ0JBQVcsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQzNDLGVBQVUsR0FBRyxpQkFBaUIsQ0FBQztJQUk1QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0MsSUFBSSxFQUFFO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWU7Z0JBQzFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVzthQUM5QjtZQUNELFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFVBQVUsRUFBRSxXQUFXO1NBQ3hCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBckJVLHVCQUF1QjttR0FBdkIsdUJBQXVCLG9FQUZ4QixFQUFFOzs0RkFFRCx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLEVBQUU7aUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRXJyb3JNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2Vycm9yLW1vZGFsL2Vycm9yLW1vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdWkta2l0L2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFUlJPUl9DT05GSUcsIE1PREFMX0VSUk9SX1RZUEVTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Vycm9yLWhhbmRsaW5nLmNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12Yy1lcnJvci1zZXNzaW9uLWV4cGlyZWQnLFxyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25FeHBpcmVkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBlcnJvckNvbmZpZyA9IEVSUk9SX0NPTkZJRy5TRVNTSU9OX0VYUElSRUQ7XHJcbiAgZXJyb3JUeXBlcyA9IE1PREFMX0VSUk9SX1RZUEVTO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm9wZW5TZXNzaW9uRXhwaXJlZE1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW5TZXNzaW9uRXhwaXJlZE1vZGFsKCkge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oRXJyb3JNb2RhbENvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZXJyb3JUeXBlOiB0aGlzLmVycm9yVHlwZXMuU0VTU0lPTl9FWFBJUkVELFxyXG4gICAgICAgIGVycm9yQ29uZmlnOiB0aGlzLmVycm9yQ29uZmlnLFxyXG4gICAgICB9LFxyXG4gICAgICBwb3NpdGlvbjogJ2NlbnRlcicsXHJcbiAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZUJsdXInLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,103 @@
1
+ import { Component } from '@angular/core';
2
+ import { ERROR_CONFIG, VCOMPLY_LOGO_URL, ORGANISATION_NAME, ALT_IMAGE_TEXT, } from '../../constants/error-handling.constants';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class UnauthorizedComponent {
6
+ constructor() {
7
+ this.currentYear = new Date().getFullYear();
8
+ this.errorConfig = ERROR_CONFIG.UNAUTHORIZED;
9
+ this.VcomplyLogo = VCOMPLY_LOGO_URL;
10
+ this.altImageText = ALT_IMAGE_TEXT;
11
+ this.organisationName = ORGANISATION_NAME;
12
+ }
13
+ redirectToSupport() {
14
+ window.location.href = this.errorConfig.mail;
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnauthorizedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UnauthorizedComponent, selector: "lib-vc-error-unauthorized", ngImport: i0, template: `
18
+ <div class="errorPage">
19
+ <div class="errorPage-top">
20
+ <img
21
+ [ngSrc]="VcomplyLogo"
22
+ [alt]="altImageText.VCOMPLY_LOGO"
23
+ width="24"
24
+ height="24"
25
+ />
26
+ </div>
27
+ <div class="errorPage-container">
28
+ <div class="errorPage-inner">
29
+ <div class="errorPage-inner-image">
30
+ <img
31
+ [ngSrc]="errorConfig.imageUrl"
32
+ [alt]="altImageText.ERROR_IMAGE"
33
+ width="246"
34
+ height="178"
35
+ />
36
+ </div>
37
+ <div class="errorPage-inner-right">
38
+ <div class="errorPage-heading">{{ errorConfig.title }}</div>
39
+ <div class="errorPage-text">{{ errorConfig.description }}</div>
40
+ <div class="errorPage-details">
41
+ {{ errorConfig.details }}
42
+ <a [href]="'mailto:' + errorConfig.email">{{
43
+ errorConfig.email
44
+ }}</a>
45
+ {{ errorConfig.support }}.
46
+ </div>
47
+ <button class="errorPage-btn" (click)="redirectToSupport()">
48
+ {{ errorConfig.buttonText }} <i class="icons">&#xe96a;</i>
49
+ </button>
50
+ </div>
51
+ </div>
52
+ <div class="errorPage-copyright">
53
+ &copy;&nbsp;{{ currentYear }}, {{ organisationName }}
54
+ </div>
55
+ </div>
56
+ </div>
57
+ `, isInline: true, styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "src", "srcset"] }] }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UnauthorizedComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'lib-vc-error-unauthorized', template: `
62
+ <div class="errorPage">
63
+ <div class="errorPage-top">
64
+ <img
65
+ [ngSrc]="VcomplyLogo"
66
+ [alt]="altImageText.VCOMPLY_LOGO"
67
+ width="24"
68
+ height="24"
69
+ />
70
+ </div>
71
+ <div class="errorPage-container">
72
+ <div class="errorPage-inner">
73
+ <div class="errorPage-inner-image">
74
+ <img
75
+ [ngSrc]="errorConfig.imageUrl"
76
+ [alt]="altImageText.ERROR_IMAGE"
77
+ width="246"
78
+ height="178"
79
+ />
80
+ </div>
81
+ <div class="errorPage-inner-right">
82
+ <div class="errorPage-heading">{{ errorConfig.title }}</div>
83
+ <div class="errorPage-text">{{ errorConfig.description }}</div>
84
+ <div class="errorPage-details">
85
+ {{ errorConfig.details }}
86
+ <a [href]="'mailto:' + errorConfig.email">{{
87
+ errorConfig.email
88
+ }}</a>
89
+ {{ errorConfig.support }}.
90
+ </div>
91
+ <button class="errorPage-btn" (click)="redirectToSupport()">
92
+ {{ errorConfig.buttonText }} <i class="icons">&#xe96a;</i>
93
+ </button>
94
+ </div>
95
+ </div>
96
+ <div class="errorPage-copyright">
97
+ &copy;&nbsp;{{ currentYear }}, {{ organisationName }}
98
+ </div>
99
+ </div>
100
+ </div>
101
+ `, styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";.errorPage{background:#161b2f;position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.errorPage-top{width:100%;height:3rem;display:flex;align-items:center;padding-left:.75rem}.errorPage-container{background:#f2f2f5;border-radius:.75rem;border:1px solid #e3e3e9;box-shadow:0 4px 8px #1d5dd31a;height:calc(100vh - 3.75rem);display:flex;align-items:center;justify-content:center;padding:0 4rem;margin:0 .75rem;position:relative}.errorPage-inner{display:flex;align-items:center}.errorPage-inner-image{width:16rem}.errorPage-inner-right{margin-left:2rem;width:calc(100% - 18rem)}.errorPage-inner-right .errorPage-heading{-webkit-text-fill-color:#e3e3e9;-webkit-text-stroke-color:#a9aab6;-webkit-text-stroke-width:1px;color:#e3e3e9;font-size:78px;font-weight:700;line-height:110px;margin-bottom:1.5rem}.errorPage-inner-right .errorPage-text{color:#141724;font-size:19px;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.errorPage-inner-right .errorPage-details{color:#565a6f;font-size:13px;line-height:20px;margin-bottom:1.75rem}.errorPage-inner-right .errorPage-btn{background:#1e5dd3;border-radius:.25rem;border:none;color:#fff;display:inline-flex;align-items:center;font-size:11px;font-weight:500;line-height:2rem;padding:0 1rem}.errorPage-inner-right .errorPage-btn i{font-size:14px;margin-left:.25rem}.errorPage-copyright{font-size:11px;color:#787a8c;font-weight:500;position:absolute;bottom:8px;right:16px;line-height:16px}\n"] }]
102
+ }] });
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZjLWVycm9yLWhhbmRsZXJzL3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvdW5hdXRob3JpemVkL3VuYXV0aG9yaXplZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsY0FBYyxHQUNmLE1BQU0sMENBQTBDLENBQUM7OztBQStDbEQsTUFBTSxPQUFPLHFCQUFxQjtJQTdDbEM7UUE4Q0UsZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUN4QyxnQkFBVyxHQUFHLGdCQUFnQixDQUFDO1FBQy9CLGlCQUFZLEdBQUcsY0FBYyxDQUFDO1FBQzlCLHFCQUFnQixHQUFHLGlCQUFpQixDQUFDO0tBS3RDO0lBSFEsaUJBQWlCO1FBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7K0dBVFUscUJBQXFCO21HQUFyQixxQkFBcUIsaUVBM0N0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDVDs7NEZBR1UscUJBQXFCO2tCQTdDakMsU0FBUzsrQkFDRSwyQkFBMkIsWUFDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Q1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBFUlJPUl9DT05GSUcsXHJcbiAgVkNPTVBMWV9MT0dPX1VSTCxcclxuICBPUkdBTklTQVRJT05fTkFNRSxcclxuICBBTFRfSU1BR0VfVEVYVCxcclxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvZXJyb3ItaGFuZGxpbmcuY29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXZjLWVycm9yLXVuYXV0aG9yaXplZCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2VcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS10b3BcIj5cclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICBbbmdTcmNdPVwiVmNvbXBseUxvZ29cIlxyXG4gICAgICAgICAgW2FsdF09XCJhbHRJbWFnZVRleHQuVkNPTVBMWV9MT0dPXCJcclxuICAgICAgICAgIHdpZHRoPVwiMjRcIlxyXG4gICAgICAgICAgaGVpZ2h0PVwiMjRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtaW5uZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtaW5uZXItaW1hZ2VcIj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgIFtuZ1NyY109XCJlcnJvckNvbmZpZy5pbWFnZVVybFwiXHJcbiAgICAgICAgICAgICAgW2FsdF09XCJhbHRJbWFnZVRleHQuRVJST1JfSU1BR0VcIlxyXG4gICAgICAgICAgICAgIHdpZHRoPVwiMjQ2XCJcclxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxNzhcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JQYWdlLWlubmVyLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtaGVhZGluZ1wiPnt7IGVycm9yQ29uZmlnLnRpdGxlIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtdGV4dFwiPnt7IGVycm9yQ29uZmlnLmRlc2NyaXB0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclBhZ2UtZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgIHt7IGVycm9yQ29uZmlnLmRldGFpbHMgfX1cclxuICAgICAgICAgICAgICA8YSBbaHJlZl09XCInbWFpbHRvOicgKyBlcnJvckNvbmZpZy5lbWFpbFwiPnt7XHJcbiAgICAgICAgICAgICAgICBlcnJvckNvbmZpZy5lbWFpbFxyXG4gICAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgICAgIHt7IGVycm9yQ29uZmlnLnN1cHBvcnQgfX0uXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZXJyb3JQYWdlLWJ0blwiIChjbGljayk9XCJyZWRpcmVjdFRvU3VwcG9ydCgpXCI+XHJcbiAgICAgICAgICAgICAge3sgZXJyb3JDb25maWcuYnV0dG9uVGV4dCB9fSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk2YTs8L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yUGFnZS1jb3B5cmlnaHRcIj5cclxuICAgICAgICAgICZjb3B5OyZuYnNwO3t7IGN1cnJlbnRZZWFyIH19LCB7eyBvcmdhbmlzYXRpb25OYW1lIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi4vY29tbW9uLWVycm9yLXBhZ2UuY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYXV0aG9yaXplZENvbXBvbmVudCB7XHJcbiAgY3VycmVudFllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcbiAgZXJyb3JDb25maWcgPSBFUlJPUl9DT05GSUcuVU5BVVRIT1JJWkVEO1xyXG4gIFZjb21wbHlMb2dvID0gVkNPTVBMWV9MT0dPX1VSTDtcclxuICBhbHRJbWFnZVRleHQgPSBBTFRfSU1BR0VfVEVYVDtcclxuICBvcmdhbmlzYXRpb25OYW1lID0gT1JHQU5JU0FUSU9OX05BTUU7XHJcblxyXG4gIHB1YmxpYyByZWRpcmVjdFRvU3VwcG9ydCgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5lcnJvckNvbmZpZy5tYWlsO1xyXG4gIH1cclxufVxyXG4iXX0=