@sunbird-cb/cbp-ai 0.0.1

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 (128) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/ai-cbp-routing.module.mjs +56 -0
  3. package/esm2022/lib/ai-cbp.component.mjs +14 -0
  4. package/esm2022/lib/ai-cbp.module.mjs +263 -0
  5. package/esm2022/lib/ai-cbp.service.mjs +14 -0
  6. package/esm2022/lib/components/add-course/add-course.component.mjs +444 -0
  7. package/esm2022/lib/components/add-designation/add-designation.component.mjs +460 -0
  8. package/esm2022/lib/components/add-personalisation/add-personalisation.component.mjs +33 -0
  9. package/esm2022/lib/components/approval-request-form/approval-request-form.component.mjs +392 -0
  10. package/esm2022/lib/components/approval-requests/approval-requests.component.mjs +398 -0
  11. package/esm2022/lib/components/dashboard/dashboard.component.mjs +265 -0
  12. package/esm2022/lib/components/delete-role-mapping/delete-role-mapping.component.mjs +53 -0
  13. package/esm2022/lib/components/delete-role-mapping-popup/delete-role-mapping-popup.component.mjs +39 -0
  14. package/esm2022/lib/components/edit-cbp-plan/edit-cbp-plan.component.mjs +699 -0
  15. package/esm2022/lib/components/gap-analysis-recommended-course/gap-analysis-recommended-course.component.mjs +188 -0
  16. package/esm2022/lib/components/generate-course-recommendation/generate-course-recommendation.component.mjs +1949 -0
  17. package/esm2022/lib/components/list-popup/list-popup.component.mjs +32 -0
  18. package/esm2022/lib/components/review-request/review-request.component.mjs +138 -0
  19. package/esm2022/lib/components/role-mapping-generation/role-mapping-generation.component.mjs +1082 -0
  20. package/esm2022/lib/components/role-mapping-list/role-mapping-list.component.mjs +714 -0
  21. package/esm2022/lib/components/suggest-more-courses/suggest-more-courses.component.mjs +370 -0
  22. package/esm2022/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.mjs +235 -0
  23. package/esm2022/lib/components/view-cbp-plan/view-cbp-plan.component.mjs +125 -0
  24. package/esm2022/lib/components/view-course-recommendation/view-course-recommendation.component.mjs +397 -0
  25. package/esm2022/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.mjs +883 -0
  26. package/esm2022/lib/modules/initial-screen/initial-screen.component.mjs +127 -0
  27. package/esm2022/lib/modules/shared/constant/app.constant.mjs +2036 -0
  28. package/esm2022/lib/modules/shared/directives/clickoutside.directive.mjs +38 -0
  29. package/esm2022/lib/modules/shared/directives/directive.module.mjs +21 -0
  30. package/esm2022/lib/modules/shared/pipes/order-by-name.pipe.mjs +23 -0
  31. package/esm2022/lib/modules/shared/services/event.service.mjs +24 -0
  32. package/esm2022/lib/modules/shared/services/events.mjs +125 -0
  33. package/esm2022/lib/modules/shared/services/init.service.mjs +41 -0
  34. package/esm2022/lib/modules/shared/services/role-mapping.service.mjs +261 -0
  35. package/esm2022/lib/modules/shared/services/shared.service.mjs +869 -0
  36. package/esm2022/lib/modules/upload-document-page/progress-dialog/progress-dialog.component.mjs +53 -0
  37. package/esm2022/lib/modules/upload-document-page/upload-dialog/upload-dialog.component.mjs +186 -0
  38. package/esm2022/lib/modules/upload-document-page/upload-document-page.component.mjs +367 -0
  39. package/esm2022/lib/pipe-public-URL/pipe-public-URL.module.mjs +20 -0
  40. package/esm2022/lib/pipe-public-URL/pipe-public-URL.pipe.mjs +23 -0
  41. package/esm2022/public-api.mjs +14 -0
  42. package/esm2022/sunbird-cb-cbp-ai.mjs +5 -0
  43. package/fesm2022/sunbird-cb-cbp-ai.mjs +12952 -0
  44. package/fesm2022/sunbird-cb-cbp-ai.mjs.map +1 -0
  45. package/index.d.ts +6 -0
  46. package/lib/ai-cbp-routing.module.d.ts +8 -0
  47. package/lib/ai-cbp-routing.module.d.ts.map +1 -0
  48. package/lib/ai-cbp.component.d.ts +7 -0
  49. package/lib/ai-cbp.component.d.ts.map +1 -0
  50. package/lib/ai-cbp.module.d.ts +68 -0
  51. package/lib/ai-cbp.module.d.ts.map +1 -0
  52. package/lib/ai-cbp.service.d.ts +7 -0
  53. package/lib/ai-cbp.service.d.ts.map +1 -0
  54. package/lib/components/add-course/add-course.component.d.ts +67 -0
  55. package/lib/components/add-course/add-course.component.d.ts.map +1 -0
  56. package/lib/components/add-designation/add-designation.component.d.ts +52 -0
  57. package/lib/components/add-designation/add-designation.component.d.ts.map +1 -0
  58. package/lib/components/add-personalisation/add-personalisation.component.d.ts +16 -0
  59. package/lib/components/add-personalisation/add-personalisation.component.d.ts.map +1 -0
  60. package/lib/components/approval-request-form/approval-request-form.component.d.ts +48 -0
  61. package/lib/components/approval-request-form/approval-request-form.component.d.ts.map +1 -0
  62. package/lib/components/approval-requests/approval-requests.component.d.ts +80 -0
  63. package/lib/components/approval-requests/approval-requests.component.d.ts.map +1 -0
  64. package/lib/components/dashboard/dashboard.component.d.ts +55 -0
  65. package/lib/components/dashboard/dashboard.component.d.ts.map +1 -0
  66. package/lib/components/delete-role-mapping/delete-role-mapping.component.d.ts +18 -0
  67. package/lib/components/delete-role-mapping/delete-role-mapping.component.d.ts.map +1 -0
  68. package/lib/components/delete-role-mapping-popup/delete-role-mapping-popup.component.d.ts +18 -0
  69. package/lib/components/delete-role-mapping-popup/delete-role-mapping-popup.component.d.ts.map +1 -0
  70. package/lib/components/edit-cbp-plan/edit-cbp-plan.component.d.ts +94 -0
  71. package/lib/components/edit-cbp-plan/edit-cbp-plan.component.d.ts.map +1 -0
  72. package/lib/components/gap-analysis-recommended-course/gap-analysis-recommended-course.component.d.ts +35 -0
  73. package/lib/components/gap-analysis-recommended-course/gap-analysis-recommended-course.component.d.ts.map +1 -0
  74. package/lib/components/generate-course-recommendation/generate-course-recommendation.component.d.ts +198 -0
  75. package/lib/components/generate-course-recommendation/generate-course-recommendation.component.d.ts.map +1 -0
  76. package/lib/components/list-popup/list-popup.component.d.ts +13 -0
  77. package/lib/components/list-popup/list-popup.component.d.ts.map +1 -0
  78. package/lib/components/review-request/review-request.component.d.ts +39 -0
  79. package/lib/components/review-request/review-request.component.d.ts.map +1 -0
  80. package/lib/components/role-mapping-generation/role-mapping-generation.component.d.ts +99 -0
  81. package/lib/components/role-mapping-generation/role-mapping-generation.component.d.ts.map +1 -0
  82. package/lib/components/role-mapping-list/role-mapping-list.component.d.ts +83 -0
  83. package/lib/components/role-mapping-list/role-mapping-list.component.d.ts.map +1 -0
  84. package/lib/components/suggest-more-courses/suggest-more-courses.component.d.ts +48 -0
  85. package/lib/components/suggest-more-courses/suggest-more-courses.component.d.ts.map +1 -0
  86. package/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.d.ts +41 -0
  87. package/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.d.ts.map +1 -0
  88. package/lib/components/view-cbp-plan/view-cbp-plan.component.d.ts +29 -0
  89. package/lib/components/view-cbp-plan/view-cbp-plan.component.d.ts.map +1 -0
  90. package/lib/components/view-course-recommendation/view-course-recommendation.component.d.ts +49 -0
  91. package/lib/components/view-course-recommendation/view-course-recommendation.component.d.ts.map +1 -0
  92. package/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.d.ts +73 -0
  93. package/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.d.ts.map +1 -0
  94. package/lib/modules/initial-screen/initial-screen.component.d.ts +85 -0
  95. package/lib/modules/initial-screen/initial-screen.component.d.ts.map +1 -0
  96. package/lib/modules/shared/constant/app.constant.d.ts +457 -0
  97. package/lib/modules/shared/constant/app.constant.d.ts.map +1 -0
  98. package/lib/modules/shared/directives/clickoutside.directive.d.ts +13 -0
  99. package/lib/modules/shared/directives/clickoutside.directive.d.ts.map +1 -0
  100. package/lib/modules/shared/directives/directive.module.d.ts +8 -0
  101. package/lib/modules/shared/directives/directive.module.d.ts.map +1 -0
  102. package/lib/modules/shared/pipes/order-by-name.pipe.d.ts +8 -0
  103. package/lib/modules/shared/pipes/order-by-name.pipe.d.ts.map +1 -0
  104. package/lib/modules/shared/services/event.service.d.ts +12 -0
  105. package/lib/modules/shared/services/event.service.d.ts.map +1 -0
  106. package/lib/modules/shared/services/events.d.ts +200 -0
  107. package/lib/modules/shared/services/events.d.ts.map +1 -0
  108. package/lib/modules/shared/services/init.service.d.ts +13 -0
  109. package/lib/modules/shared/services/init.service.d.ts.map +1 -0
  110. package/lib/modules/shared/services/role-mapping.service.d.ts +21 -0
  111. package/lib/modules/shared/services/role-mapping.service.d.ts.map +1 -0
  112. package/lib/modules/shared/services/shared.service.d.ts +108 -0
  113. package/lib/modules/shared/services/shared.service.d.ts.map +1 -0
  114. package/lib/modules/upload-document-page/progress-dialog/progress-dialog.component.d.ts +14 -0
  115. package/lib/modules/upload-document-page/progress-dialog/progress-dialog.component.d.ts.map +1 -0
  116. package/lib/modules/upload-document-page/upload-dialog/upload-dialog.component.d.ts +29 -0
  117. package/lib/modules/upload-document-page/upload-dialog/upload-dialog.component.d.ts.map +1 -0
  118. package/lib/modules/upload-document-page/upload-document-page.component.d.ts +64 -0
  119. package/lib/modules/upload-document-page/upload-document-page.component.d.ts.map +1 -0
  120. package/lib/pipe-public-URL/pipe-public-URL.module.d.ts +9 -0
  121. package/lib/pipe-public-URL/pipe-public-URL.module.d.ts.map +1 -0
  122. package/lib/pipe-public-URL/pipe-public-URL.pipe.d.ts +11 -0
  123. package/lib/pipe-public-URL/pipe-public-URL.pipe.d.ts.map +1 -0
  124. package/package.json +28 -0
  125. package/public-api.d.ts +11 -0
  126. package/public-api.d.ts.map +1 -0
  127. package/sunbird-cb-cbp-ai-0.0.1.tgz +0 -0
  128. package/sunbird-cb-cbp-ai.d.ts.map +1 -0
@@ -0,0 +1,38 @@
1
+ import { Directive, Output, EventEmitter, HostListener } from "@angular/core";
2
+ import { fromEvent } from "rxjs";
3
+ import { take } from "rxjs/operators";
4
+ import * as i0 from "@angular/core";
5
+ export class ClickOutsideDirective {
6
+ constructor(elRef) {
7
+ this.elRef = elRef;
8
+ this.clickOutside = new EventEmitter();
9
+ this.captured = false;
10
+ }
11
+ onClick(target) {
12
+ if (!this.captured) {
13
+ return;
14
+ }
15
+ if (!this.elRef.nativeElement.contains(target)) {
16
+ this.clickOutside.emit();
17
+ }
18
+ }
19
+ ngOnInit() {
20
+ fromEvent(document, "click", { capture: true })
21
+ .pipe(take(1))
22
+ .subscribe(() => (this.captured = true));
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClickOutsideDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ClickOutsideDirective, selector: "[clickOutside]", outputs: { clickOutside: "clickOutside" }, host: { listeners: { "document:click": "onClick($event.target)" } }, ngImport: i0 }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ClickOutsideDirective, decorators: [{
28
+ type: Directive,
29
+ args: [{
30
+ selector: "[clickOutside]"
31
+ }]
32
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { clickOutside: [{
33
+ type: Output
34
+ }], onClick: [{
35
+ type: HostListener,
36
+ args: ["document:click", ["$event.target"]]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2tvdXRzaWRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLdEMsTUFBTSxPQUFPLHFCQUFxQjtJQUtoQyxZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBSjNCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBRXVCLENBQUM7SUFHekMsT0FBTyxDQUFDLE1BQVc7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7K0dBdEJVLHFCQUFxQjttR0FBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzNCO2lHQUVXLFlBQVk7c0JBQXJCLE1BQU07Z0JBT1AsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBPbkluaXRcbiAgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuICBpbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tIFwicnhqc1wiO1xuICBpbXBvcnQgeyB0YWtlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG4gIFxuICBARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbY2xpY2tPdXRzaWRlXVwiXG4gIH0pXG4gIGV4cG9ydCBjbGFzcyBDbGlja091dHNpZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBjbGlja091dHNpZGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIFxuICAgIGNhcHR1cmVkID0gZmFsc2U7XG4gIFxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XG4gIFxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnQudGFyZ2V0XCJdKVxuICAgIG9uQ2xpY2sodGFyZ2V0OiBhbnkpIHtcbiAgICAgIGlmICghdGhpcy5jYXB0dXJlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gIFxuICAgICAgaWYgKCF0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICB0aGlzLmNsaWNrT3V0c2lkZS5lbWl0KCk7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgXCJjbGlja1wiLCB7IGNhcHR1cmU6IHRydWUgfSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAodGhpcy5jYXB0dXJlZCA9IHRydWUpKTtcbiAgICB9XG4gIH1cbiAgIl19
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ClickOutsideDirective } from './clickoutside.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class DirectiveModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DirectiveModule, declarations: [ClickOutsideDirective], exports: [ClickOutsideDirective] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectiveModule }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectiveModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [],
13
+ declarations: [
14
+ ClickOutsideDirective
15
+ ],
16
+ exports: [
17
+ ClickOutsideDirective,
18
+ ]
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9kaXJlY3RpdmVzL2RpcmVjdGl2ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQTs7QUFZOUQsTUFBTSxPQUFPLGVBQWU7K0dBQWYsZUFBZTtnSEFBZixlQUFlLGlCQU54QixxQkFBcUIsYUFHckIscUJBQXFCO2dIQUdaLGVBQWU7OzRGQUFmLGVBQWU7a0JBVjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFDLEVBQ1A7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFDO3dCQUNOLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDbGlja091dHNpZGVEaXJlY3RpdmV9IGZyb20gJy4vY2xpY2tvdXRzaWRlLmRpcmVjdGl2ZSdcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czpbXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOltcbiAgICBDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlyZWN0aXZlTW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,23 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class OrderByNamePipe {
4
+ transform(value, property = 'name') {
5
+ if (!Array.isArray(value)) {
6
+ return value;
7
+ }
8
+ return value.slice().sort((a, b) => {
9
+ const nameA = a[property]?.toLowerCase();
10
+ const nameB = b[property]?.toLowerCase();
11
+ return nameA.localeCompare(nameB);
12
+ });
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrderByNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: OrderByNamePipe, name: "orderByName" }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OrderByNamePipe, decorators: [{
18
+ type: Pipe,
19
+ args: [{
20
+ name: 'orderByName'
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnktbmFtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3BpcGVzL29yZGVyLWJ5LW5hbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLGVBQWU7SUFDMUIsU0FBUyxDQUFDLEtBQVksRUFBRSxXQUFtQixNQUFNO1FBRS9DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUN6QyxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQVhVLGVBQWU7NkdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFIM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ29yZGVyQnlOYW1lJ1xufSlcbmV4cG9ydCBjbGFzcyBPcmRlckJ5TmFtZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnlbXSwgcHJvcGVydHk6IHN0cmluZyA9ICduYW1lJyk6IGFueVtdIHtcbiAgICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5zbGljZSgpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVBID0gYVtwcm9wZXJ0eV0/LnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCBuYW1lQiA9IGJbcHJvcGVydHldPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgcmV0dXJuIG5hbWVBLmxvY2FsZUNvbXBhcmUobmFtZUIpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class EventService {
5
+ constructor() {
6
+ this.eventsChatbotSubject = new Subject();
7
+ this.chatbotEvents$ = this.eventsChatbotSubject.asObservable();
8
+ this.eventsSubject = new Subject();
9
+ this.events$ = this.eventsSubject.asObservable();
10
+ }
11
+ dispatchChatbotEvent(event) {
12
+ console.log("event ", event);
13
+ this.eventsChatbotSubject.next(event);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventService, providedIn: 'root' }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EventService, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root',
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9zZXJ2aWNlcy9ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTs7QUFPOUIsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJVSx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQTtRQUM5RCxtQkFBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUN4RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUEyQixDQUFBO1FBQ3ZELFlBQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFBO0tBTW5EO0lBSkMsb0JBQW9CLENBQUksS0FBNEI7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN2QyxDQUFDOytHQVRVLFlBQVk7bUhBQVosWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFdzRXZlbnRzIH0gZnJvbSAnLi9ldmVudHMnXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBFdmVudFNlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50c0NoYXRib3RTdWJqZWN0ID0gbmV3IFN1YmplY3Q8V3NFdmVudHMuSVdzRXZlbnRzPGFueT4+KClcbiAgcHVibGljIGNoYXRib3RFdmVudHMkID0gdGhpcy5ldmVudHNDaGF0Ym90U3ViamVjdC5hc09ic2VydmFibGUoKVxuICBwcml2YXRlIGV2ZW50c1N1YmplY3QgPSBuZXcgU3ViamVjdDxXc0V2ZW50cy5JV3NFdmVudHM8YW55Pj4oKVxuICBwdWJsaWMgZXZlbnRzJCA9IHRoaXMuZXZlbnRzU3ViamVjdC5hc09ic2VydmFibGUoKVxuXG4gIGRpc3BhdGNoQ2hhdGJvdEV2ZW50PFQ+KGV2ZW50OiBXc0V2ZW50cy5JV3NFdmVudHM8VD4pIHtcbiAgICBjb25zb2xlLmxvZyhcImV2ZW50IFwiLCBldmVudClcbiAgICB0aGlzLmV2ZW50c0NoYXRib3RTdWJqZWN0Lm5leHQoZXZlbnQpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,125 @@
1
+ export var WsEvents;
2
+ (function (WsEvents) {
3
+ let WsEventType;
4
+ (function (WsEventType) {
5
+ WsEventType["Action"] = "Action";
6
+ WsEventType["Telemetry"] = "Telemetry";
7
+ WsEventType["PageNavigation"] = "PageNavigation";
8
+ WsEventType["AccessRestrictedContentAccessed"] = "AccessRestrictedContentAccessed";
9
+ WsEventType["PageSlow"] = "PageSlow";
10
+ WsEventType["ErrorOccurred"] = "ErrorOccurred";
11
+ WsEventType["WidgetResolveError"] = "WidgetResolveError";
12
+ })(WsEventType = WsEvents.WsEventType || (WsEvents.WsEventType = {}));
13
+ let WsEventLogLevel;
14
+ (function (WsEventLogLevel) {
15
+ WsEventLogLevel["Warn"] = "Warn";
16
+ WsEventLogLevel["Error"] = "Error";
17
+ WsEventLogLevel["Info"] = "Info";
18
+ WsEventLogLevel["Log"] = "Log";
19
+ WsEventLogLevel["Trace"] = "Trace";
20
+ })(WsEventLogLevel = WsEvents.WsEventLogLevel || (WsEvents.WsEventLogLevel = {}));
21
+ let WsAuditTypes;
22
+ (function (WsAuditTypes) {
23
+ WsAuditTypes["Created"] = "Created";
24
+ WsAuditTypes["Updated"] = "Updated";
25
+ WsAuditTypes["Deleted"] = "Deleted";
26
+ })(WsAuditTypes = WsEvents.WsAuditTypes || (WsEvents.WsAuditTypes = {}));
27
+ let WsTimeSpentType;
28
+ (function (WsTimeSpentType) {
29
+ WsTimeSpentType["Page"] = "Page";
30
+ WsTimeSpentType["Player"] = "Player";
31
+ })(WsTimeSpentType = WsEvents.WsTimeSpentType || (WsEvents.WsTimeSpentType = {}));
32
+ let WsTimeSpentMode;
33
+ (function (WsTimeSpentMode) {
34
+ WsTimeSpentMode["Play"] = "Play";
35
+ WsTimeSpentMode["View"] = "View";
36
+ })(WsTimeSpentMode = WsEvents.WsTimeSpentMode || (WsEvents.WsTimeSpentMode = {}));
37
+ let externalTelemetrypdata;
38
+ (function (externalTelemetrypdata) {
39
+ externalTelemetrypdata["RBCP"] = "rbcp-web-ui";
40
+ })(externalTelemetrypdata = WsEvents.externalTelemetrypdata || (WsEvents.externalTelemetrypdata = {}));
41
+ let EnumTelemetrySubType;
42
+ (function (EnumTelemetrySubType) {
43
+ EnumTelemetrySubType["Init"] = "Init";
44
+ EnumTelemetrySubType["Interact"] = "Interact";
45
+ EnumTelemetrySubType["Loaded"] = "Loaded";
46
+ EnumTelemetrySubType["Unloaded"] = "Unloaded";
47
+ EnumTelemetrySubType["StateChange"] = "StateChange";
48
+ EnumTelemetrySubType["HeartBeat"] = "HeartBeat";
49
+ EnumTelemetrySubType["Search"] = "Search";
50
+ EnumTelemetrySubType["Feedback"] = "Feedback";
51
+ EnumTelemetrySubType["Impression"] = "Impression";
52
+ EnumTelemetrySubType["Chatbot"] = "Chatbot";
53
+ EnumTelemetrySubType["GetStarted"] = "Get Started";
54
+ EnumTelemetrySubType["cardContent"] = "card-cardContent";
55
+ })(EnumTelemetrySubType = WsEvents.EnumTelemetrySubType || (WsEvents.EnumTelemetrySubType = {}));
56
+ // PDF Telemetry Event
57
+ let EnumTelemetryPdfActivity;
58
+ (function (EnumTelemetryPdfActivity) {
59
+ EnumTelemetryPdfActivity["PAGE_CHANGED"] = "PAGE_CHANGED";
60
+ EnumTelemetryPdfActivity["FULLSCREEN_ACTIVATED"] = "FULLSCREEN_ACTIVATED";
61
+ EnumTelemetryPdfActivity["FULLSCREEN_DEACTIVATED"] = "FULLSCREEN_DEACTIVATED";
62
+ EnumTelemetryPdfActivity["ZOOM_CHANGE"] = "ZOOM_CHANGE";
63
+ EnumTelemetryPdfActivity["NONE"] = "NONE";
64
+ })(EnumTelemetryPdfActivity = WsEvents.EnumTelemetryPdfActivity || (WsEvents.EnumTelemetryPdfActivity = {}));
65
+ // Multimedia Telemetry Data
66
+ let EnumTelemetryMediaActivity;
67
+ (function (EnumTelemetryMediaActivity) {
68
+ EnumTelemetryMediaActivity["PLAYED"] = "PLAYED";
69
+ EnumTelemetryMediaActivity["PAUSED"] = "PAUSED";
70
+ EnumTelemetryMediaActivity["SEEKED"] = "SEEKED";
71
+ EnumTelemetryMediaActivity["ENDED"] = "ENDED";
72
+ EnumTelemetryMediaActivity["VOLUME_CHANGE"] = "VOLUME_CHANGE";
73
+ EnumTelemetryMediaActivity["MUTE"] = "MUTE";
74
+ EnumTelemetryMediaActivity["UNMUTE"] = "UNMUTE";
75
+ EnumTelemetryMediaActivity["PLAYBACK_SPEED_CHANGE"] = "PLAYBACK_SPEED_CHANGE";
76
+ EnumTelemetryMediaActivity["FULLSCREEN_ACTIVATED"] = "FULLSCREEN_ACTIVATED";
77
+ EnumTelemetryMediaActivity["FULLSCREEN_DEACTIVATED"] = "FULLSCREEN_DEACTIVATED";
78
+ EnumTelemetryMediaActivity["PICTURE_IN_PICTURE_ACTIVATED"] = "PICTURE_IN_PICTURE_ACTIVATED";
79
+ EnumTelemetryMediaActivity["PICTURE_IN_PICTURE_DEACTIVATED"] = "PICTURE_IN_PICTURE_DEACTIVATED";
80
+ EnumTelemetryMediaActivity["NONE"] = "NONE";
81
+ })(EnumTelemetryMediaActivity = WsEvents.EnumTelemetryMediaActivity || (WsEvents.EnumTelemetryMediaActivity = {}));
82
+ let EnumTelemetryMediaState;
83
+ (function (EnumTelemetryMediaState) {
84
+ EnumTelemetryMediaState["PLAYING"] = "PLAYING";
85
+ EnumTelemetryMediaState["PAUSED"] = "PAUSED";
86
+ EnumTelemetryMediaState["ENDED"] = "ENDED";
87
+ EnumTelemetryMediaState["BUFFERING"] = "BUFFERING";
88
+ EnumTelemetryMediaState["NOT_STARTED"] = "NOT_STARTED";
89
+ })(EnumTelemetryMediaState = WsEvents.EnumTelemetryMediaState || (WsEvents.EnumTelemetryMediaState = {}));
90
+ let EnumTelemetrymodules;
91
+ (function (EnumTelemetrymodules) {
92
+ EnumTelemetrymodules["CONTENT"] = "content";
93
+ EnumTelemetrymodules["FEEDBACK"] = "feedback";
94
+ EnumTelemetrymodules["COURSE"] = "course";
95
+ EnumTelemetrymodules["PROGRAM"] = "program";
96
+ EnumTelemetrymodules["EXPLORE"] = "explore";
97
+ EnumTelemetrymodules["LEARN"] = "learn";
98
+ EnumTelemetrymodules["HOME"] = "home";
99
+ EnumTelemetrymodules["DASHBOARD"] = "dashboard";
100
+ EnumTelemetrymodules["SEARCH"] = "search";
101
+ EnumTelemetrymodules["DISCUSS"] = "Discuss";
102
+ EnumTelemetrymodules["COMPETENCY"] = "competency";
103
+ EnumTelemetrymodules["EVENTS"] = "events";
104
+ EnumTelemetrymodules["CAREER"] = "career";
105
+ EnumTelemetrymodules["PROFILE"] = "profile";
106
+ EnumTelemetrymodules["NETWORK"] = "network";
107
+ EnumTelemetrymodules["SUPPORT"] = "support";
108
+ })(EnumTelemetrymodules = WsEvents.EnumTelemetrymodules || (WsEvents.EnumTelemetrymodules = {}));
109
+ let EnumInteractTypes;
110
+ (function (EnumInteractTypes) {
111
+ EnumInteractTypes["CLICK"] = "click";
112
+ })(EnumInteractTypes = WsEvents.EnumInteractTypes || (WsEvents.EnumInteractTypes = {}));
113
+ let EnumInteractSubTypes;
114
+ (function (EnumInteractSubTypes) {
115
+ EnumInteractSubTypes["COURSE_TAB"] = "course-tab";
116
+ EnumInteractSubTypes["CAREER_TAB"] = "career-tab";
117
+ EnumInteractSubTypes["NETWORK_TAB"] = "network-tab";
118
+ EnumInteractSubTypes["COMPETENCY_TAB"] = "competency-tab";
119
+ EnumInteractSubTypes["PROFILE_EDIT_TAB"] = "profile-edit-tab";
120
+ EnumInteractSubTypes["DISCUSS_TAB"] = "discuss-tab";
121
+ EnumInteractSubTypes["EVENTS_TAB"] = "events-tab";
122
+ EnumInteractSubTypes["SIDE_MENU"] = "side-menu";
123
+ })(EnumInteractSubTypes = WsEvents.EnumInteractSubTypes || (WsEvents.EnumInteractSubTypes = {}));
124
+ })(WsEvents || (WsEvents = {}));
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NlcnZpY2VzL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLEtBQVcsUUFBUSxDQTBOeEI7QUExTkQsV0FBaUIsUUFBUTtJQVd2QixJQUFZLFdBUVg7SUFSRCxXQUFZLFdBQVc7UUFDckIsZ0NBQWlCLENBQUE7UUFDakIsc0NBQXVCLENBQUE7UUFDdkIsZ0RBQWlDLENBQUE7UUFDakMsa0ZBQW1FLENBQUE7UUFDbkUsb0NBQXFCLENBQUE7UUFDckIsOENBQStCLENBQUE7UUFDL0Isd0RBQXlDLENBQUE7SUFDM0MsQ0FBQyxFQVJXLFdBQVcsR0FBWCxvQkFBVyxLQUFYLG9CQUFXLFFBUXRCO0lBQ0QsSUFBWSxlQU1YO0lBTkQsV0FBWSxlQUFlO1FBQ3pCLGdDQUFhLENBQUE7UUFDYixrQ0FBZSxDQUFBO1FBQ2YsZ0NBQWEsQ0FBQTtRQUNiLDhCQUFXLENBQUE7UUFDWCxrQ0FBZSxDQUFBO0lBQ2pCLENBQUMsRUFOVyxlQUFlLEdBQWYsd0JBQWUsS0FBZix3QkFBZSxRQU0xQjtJQUNBLElBQVksWUFJWDtJQUpELFdBQVksWUFBWTtRQUN0QixtQ0FBbUIsQ0FBQTtRQUNuQixtQ0FBbUIsQ0FBQTtRQUNuQixtQ0FBbUIsQ0FBQTtJQUNyQixDQUFDLEVBSlcsWUFBWSxHQUFaLHFCQUFZLEtBQVoscUJBQVksUUFJdkI7SUFDRixJQUFZLGVBR1g7SUFIRCxXQUFZLGVBQWU7UUFDekIsZ0NBQWEsQ0FBQTtRQUNiLG9DQUFpQixDQUFBO0lBQ25CLENBQUMsRUFIVyxlQUFlLEdBQWYsd0JBQWUsS0FBZix3QkFBZSxRQUcxQjtJQUNELElBQVksZUFHWDtJQUhELFdBQVksZUFBZTtRQUN6QixnQ0FBYSxDQUFBO1FBQ2IsZ0NBQWEsQ0FBQTtJQUNmLENBQUMsRUFIVyxlQUFlLEdBQWYsd0JBQWUsS0FBZix3QkFBZSxRQUcxQjtJQUNELElBQVksc0JBRVg7SUFGRCxXQUFZLHNCQUFzQjtRQUNoQyw4Q0FBb0IsQ0FBQTtJQUN0QixDQUFDLEVBRlcsc0JBQXNCLEdBQXRCLCtCQUFzQixLQUF0QiwrQkFBc0IsUUFFakM7SUFZRCxJQUFZLG9CQWFYO0lBYkQsV0FBWSxvQkFBb0I7UUFDOUIscUNBQWEsQ0FBQTtRQUNiLDZDQUFxQixDQUFBO1FBQ3JCLHlDQUFpQixDQUFBO1FBQ2pCLDZDQUFxQixDQUFBO1FBQ3JCLG1EQUEyQixDQUFBO1FBQzNCLCtDQUF1QixDQUFBO1FBQ3ZCLHlDQUFpQixDQUFBO1FBQ2pCLDZDQUFxQixDQUFBO1FBQ3JCLGlEQUF5QixDQUFBO1FBQ3pCLDJDQUFtQixDQUFBO1FBQ25CLGtEQUEwQixDQUFBO1FBQzFCLHdEQUFnQyxDQUFBO0lBQ2xDLENBQUMsRUFiVyxvQkFBb0IsR0FBcEIsNkJBQW9CLEtBQXBCLDZCQUFvQixRQWEvQjtJQXlCRCxzQkFBc0I7SUFDdEIsSUFBWSx3QkFNWDtJQU5ELFdBQVksd0JBQXdCO1FBQ2xDLHlEQUE2QixDQUFBO1FBQzdCLHlFQUE2QyxDQUFBO1FBQzdDLDZFQUFpRCxDQUFBO1FBQ2pELHVEQUEyQixDQUFBO1FBQzNCLHlDQUFhLENBQUE7SUFDZixDQUFDLEVBTlcsd0JBQXdCLEdBQXhCLGlDQUF3QixLQUF4QixpQ0FBd0IsUUFNbkM7SUF1REQsNEJBQTRCO0lBQzVCLElBQVksMEJBY1g7SUFkRCxXQUFZLDBCQUEwQjtRQUNwQywrQ0FBaUIsQ0FBQTtRQUNqQiwrQ0FBaUIsQ0FBQTtRQUNqQiwrQ0FBaUIsQ0FBQTtRQUNqQiw2Q0FBZSxDQUFBO1FBQ2YsNkRBQStCLENBQUE7UUFDL0IsMkNBQWEsQ0FBQTtRQUNiLCtDQUFpQixDQUFBO1FBQ2pCLDZFQUErQyxDQUFBO1FBQy9DLDJFQUE2QyxDQUFBO1FBQzdDLCtFQUFpRCxDQUFBO1FBQ2pELDJGQUE2RCxDQUFBO1FBQzdELCtGQUFpRSxDQUFBO1FBQ2pFLDJDQUFhLENBQUE7SUFDZixDQUFDLEVBZFcsMEJBQTBCLEdBQTFCLG1DQUEwQixLQUExQixtQ0FBMEIsUUFjckM7SUFDRCxJQUFZLHVCQU1YO0lBTkQsV0FBWSx1QkFBdUI7UUFDakMsOENBQW1CLENBQUE7UUFDbkIsNENBQWlCLENBQUE7UUFDakIsMENBQWUsQ0FBQTtRQUNmLGtEQUF1QixDQUFBO1FBQ3ZCLHNEQUEyQixDQUFBO0lBQzdCLENBQUMsRUFOVyx1QkFBdUIsR0FBdkIsZ0NBQXVCLEtBQXZCLGdDQUF1QixRQU1sQztJQVdELElBQVksb0JBaUJYO0lBakJELFdBQVksb0JBQW9CO1FBQzlCLDJDQUFtQixDQUFBO1FBQ25CLDZDQUFxQixDQUFBO1FBQ3JCLHlDQUFpQixDQUFBO1FBQ2pCLDJDQUFtQixDQUFBO1FBQ25CLDJDQUFtQixDQUFBO1FBQ25CLHVDQUFlLENBQUE7UUFDZixxQ0FBYSxDQUFBO1FBQ2IsK0NBQXVCLENBQUE7UUFDdkIseUNBQWlCLENBQUE7UUFDakIsMkNBQW1CLENBQUE7UUFDbkIsaURBQXlCLENBQUE7UUFDekIseUNBQWlCLENBQUE7UUFDakIseUNBQWlCLENBQUE7UUFDakIsMkNBQW1CLENBQUE7UUFDbkIsMkNBQW1CLENBQUE7UUFDbkIsMkNBQW1CLENBQUE7SUFDckIsQ0FBQyxFQWpCVyxvQkFBb0IsR0FBcEIsNkJBQW9CLEtBQXBCLDZCQUFvQixRQWlCL0I7SUFDRCxJQUFZLGlCQUVYO0lBRkQsV0FBWSxpQkFBaUI7UUFDM0Isb0NBQWUsQ0FBQTtJQUNqQixDQUFDLEVBRlcsaUJBQWlCLEdBQWpCLDBCQUFpQixLQUFqQiwwQkFBaUIsUUFFNUI7SUFDRCxJQUFZLG9CQVNYO0lBVEQsV0FBWSxvQkFBb0I7UUFDOUIsaURBQXlCLENBQUE7UUFDekIsaURBQXlCLENBQUE7UUFDekIsbURBQTJCLENBQUE7UUFDM0IseURBQWlDLENBQUE7UUFDakMsNkRBQXFDLENBQUE7UUFDckMsbURBQTJCLENBQUE7UUFDM0IsaURBQXlCLENBQUE7UUFDekIsK0NBQXVCLENBQUE7SUFDekIsQ0FBQyxFQVRXLG9CQUFvQixHQUFwQiw2QkFBb0IsS0FBcEIsNkJBQW9CLFFBUy9CO0FBQ0gsQ0FBQyxFQTFOZ0IsUUFBUSxLQUFSLFFBQVEsUUEwTnhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBXc0V2ZW50cyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgSVdzRXZlbnRzRnJvbVdpZGdldCB7XG4gICAgdHlwZTogJ3dpZGdldCdcbiAgICB3aWRnZXRUeXBlOiBzdHJpbmdcbiAgICB3aWRnZXRTdWJUeXBlOiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50c0Zyb21QYWdlIHtcbiAgICB0eXBlOiAncGFnZSdcbiAgICBwYWdlVXJsOiBzdHJpbmdcbiAgICBwYWdlVHlwZTogc3RyaW5nXG4gIH1cbiAgZXhwb3J0IGVudW0gV3NFdmVudFR5cGUge1xuICAgIEFjdGlvbiA9ICdBY3Rpb24nLFxuICAgIFRlbGVtZXRyeSA9ICdUZWxlbWV0cnknLFxuICAgIFBhZ2VOYXZpZ2F0aW9uID0gJ1BhZ2VOYXZpZ2F0aW9uJyxcbiAgICBBY2Nlc3NSZXN0cmljdGVkQ29udGVudEFjY2Vzc2VkID0gJ0FjY2Vzc1Jlc3RyaWN0ZWRDb250ZW50QWNjZXNzZWQnLFxuICAgIFBhZ2VTbG93ID0gJ1BhZ2VTbG93JyxcbiAgICBFcnJvck9jY3VycmVkID0gJ0Vycm9yT2NjdXJyZWQnLFxuICAgIFdpZGdldFJlc29sdmVFcnJvciA9ICdXaWRnZXRSZXNvbHZlRXJyb3InLFxuICB9XG4gIGV4cG9ydCBlbnVtIFdzRXZlbnRMb2dMZXZlbCB7XG4gICAgV2FybiA9ICdXYXJuJyxcbiAgICBFcnJvciA9ICdFcnJvcicsXG4gICAgSW5mbyA9ICdJbmZvJyxcbiAgICBMb2cgPSAnTG9nJyxcbiAgICBUcmFjZSA9ICdUcmFjZScsXG4gIH1cbiAgIGV4cG9ydCBlbnVtIFdzQXVkaXRUeXBlcyB7XG4gICAgIENyZWF0ZWQgPSAnQ3JlYXRlZCcsXG4gICAgIFVwZGF0ZWQgPSAnVXBkYXRlZCcsXG4gICAgIERlbGV0ZWQgPSAnRGVsZXRlZCcsXG4gICB9XG4gIGV4cG9ydCBlbnVtIFdzVGltZVNwZW50VHlwZSB7XG4gICAgUGFnZSA9ICdQYWdlJyxcbiAgICBQbGF5ZXIgPSAnUGxheWVyJyxcbiAgfVxuICBleHBvcnQgZW51bSBXc1RpbWVTcGVudE1vZGUge1xuICAgIFBsYXkgPSAnUGxheScsXG4gICAgVmlldyA9ICdWaWV3JyxcbiAgfVxuICBleHBvcnQgZW51bSBleHRlcm5hbFRlbGVtZXRyeXBkYXRhIHtcbiAgICBSQkNQID0gJ3JiY3Atd2ViLXVpJyxcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVdzRXZlbnRzPFQ+IHtcbiAgICBldmVudFR5cGU6IFdzRXZlbnRUeXBlXG4gICAgZXZlbnRMb2dMZXZlbDogV3NFdmVudExvZ0xldmVsXG4gICAgZnJvbTogSVdzRXZlbnRzRnJvbVdpZGdldCB8IElXc0V2ZW50c0Zyb21QYWdlIHwgc3RyaW5nXG4gICAgdG86IHN0cmluZ1xuICAgIGRhdGE6IFRcbiAgICBwYXNzVGhyb3VnaERhdGE/OiBhbnlcbiAgICBwYWdlQ29udGV4dD86IGFueVxuICB9XG5cbiAgZXhwb3J0IGVudW0gRW51bVRlbGVtZXRyeVN1YlR5cGUge1xuICAgIEluaXQgPSAnSW5pdCcsXG4gICAgSW50ZXJhY3QgPSAnSW50ZXJhY3QnLFxuICAgIExvYWRlZCA9ICdMb2FkZWQnLFxuICAgIFVubG9hZGVkID0gJ1VubG9hZGVkJyxcbiAgICBTdGF0ZUNoYW5nZSA9ICdTdGF0ZUNoYW5nZScsXG4gICAgSGVhcnRCZWF0ID0gJ0hlYXJ0QmVhdCcsXG4gICAgU2VhcmNoID0gJ1NlYXJjaCcsXG4gICAgRmVlZGJhY2sgPSAnRmVlZGJhY2snLFxuICAgIEltcHJlc3Npb24gPSAnSW1wcmVzc2lvbicsXG4gICAgQ2hhdGJvdCA9ICdDaGF0Ym90JyxcbiAgICBHZXRTdGFydGVkID0gJ0dldCBTdGFydGVkJyxcbiAgICBjYXJkQ29udGVudCA9ICdjYXJkLWNhcmRDb250ZW50J1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBJVGVsZW1ldHJ5UGFnZUNvbnRleHQge1xuICAgIHBhZ2VJZD86IHN0cmluZyxcbiAgICBtb2R1bGU/OiBzdHJpbmcsXG4gICAgcGFnZUlkRXh0Pzogc3RyaW5nXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElUZWxlbWV0cnlFZGF0YSB7XG4gICAgdHlwZTogc3RyaW5nXG4gICAgc3ViVHlwZT86IHN0cmluZ1xuICAgIGlkPzogc3RyaW5nXG4gICAgcGFnZWlkPzogc3RyaW5nXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElUZWxlbWV0cnlUYWJEYXRhIHtcbiAgICBsYWJlbDogc3RyaW5nLFxuICAgIGluZGV4OiBudW1iZXIsXG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50VGVsZW1ldHJ5IHtcbiAgICBldmVudFN1YlR5cGU6IEVudW1UZWxlbWV0cnlTdWJUeXBlXG4gICAgcGFnZUNvbnRleHQ/OiBJVGVsZW1ldHJ5UGFnZUNvbnRleHRcbiAgfVxuXG4gIC8vIFBERiBUZWxlbWV0cnkgRXZlbnRcbiAgZXhwb3J0IGVudW0gRW51bVRlbGVtZXRyeVBkZkFjdGl2aXR5IHtcbiAgICBQQUdFX0NIQU5HRUQgPSAnUEFHRV9DSEFOR0VEJyxcbiAgICBGVUxMU0NSRUVOX0FDVElWQVRFRCA9ICdGVUxMU0NSRUVOX0FDVElWQVRFRCcsXG4gICAgRlVMTFNDUkVFTl9ERUFDVElWQVRFRCA9ICdGVUxMU0NSRUVOX0RFQUNUSVZBVEVEJyxcbiAgICBaT09NX0NIQU5HRSA9ICdaT09NX0NIQU5HRScsXG4gICAgTk9ORSA9ICdOT05FJyxcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50VGVsZW1ldHJ5UGRmRGF0YSBleHRlbmRzIElXc0V2ZW50VGVsZW1ldHJ5IHtcbiAgICBhY3Rpdml0eVR5cGU6IEVudW1UZWxlbWV0cnlQZGZBY3Rpdml0eVxuICAgIGN1cnJlbnRQYWdlOiBudW1iZXJcbiAgICB0b3RhbFBhZ2U6IG51bWJlclxuICAgIGFjdGl2aXR5U3RhcnRlZEF0OiBEYXRlIHwgbnVsbFxuICAgIG9iamVjdDogYW55XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50VGVsZW1ldHJ5U3VydmV5RGF0YSBleHRlbmRzIElXc0V2ZW50VGVsZW1ldHJ5IHtcbiAgICBvYmplY3Q6IGFueVxuICB9XG4gIGV4cG9ydCB0eXBlIFdzRXZlbnRUZWxlbWV0cnlQREYgPSBJV3NFdmVudHM8SVdzRXZlbnRUZWxlbWV0cnlQZGZEYXRhPlxuICBleHBvcnQgdHlwZSBXc0V2ZW50VGVsZW1ldHJ5U3VydmV5ID0gSVdzRXZlbnRzPElXc0V2ZW50VGVsZW1ldHJ5U3VydmV5RGF0YT5cblxuICAvLyBJbnRlcmFjdCBUZWxlbWV0cnkgRXZlbnRcbiAgZXhwb3J0IGludGVyZmFjZSBJV3NFdmVudFRlbGVtZXRyeUludGVyYWN0IGV4dGVuZHMgSVdzRXZlbnRUZWxlbWV0cnkge1xuICAgIGVkYXRhOiBJVGVsZW1ldHJ5RWRhdGFcbiAgICBvYmplY3Q6IGFueVxuICAgIHBhZ2VDb250ZXh0PzogSVRlbGVtZXRyeVBhZ2VDb250ZXh0XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50VGVsZW1ldHJ5RmVlZGJhY2sgZXh0ZW5kcyBJV3NFdmVudFRlbGVtZXRyeSB7XG4gICAgZWRhdGE6IElUZWxlbWV0cnlFZGF0YVxuICAgIG9iamVjdDogYW55XG4gICAgcGFnZUNvbnRleHQ/OiBJVGVsZW1ldHJ5UGFnZUNvbnRleHRcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVdzRXZlbnRUZWxlbWV0cnlJbXByZXNzaW9uIGV4dGVuZHMgSVdzRXZlbnRUZWxlbWV0cnkge1xuICAgIGVkYXRhPzogSVRlbGVtZXRyeUVkYXRhXG4gICAgb2JqZWN0PzogYW55XG4gICAgcGFnZUNvbnRleHQ/OiBJVGVsZW1ldHJ5UGFnZUNvbnRleHRcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVdzRXZlbnRUZWxlbWV0cnlTZWFyY2ggZXh0ZW5kcyBJV3NFdmVudFRlbGVtZXRyeSB7XG4gICAgdHlwZTogc3RyaW5nXG4gICAgc3ViVHlwZT86IHN0cmluZ1xuICAgIHF1ZXJ5Pzogc3RyaW5nXG4gICAgZmlsdGVycz86IHN0cmluZ1xuICAgIHNpemU/OiBudW1iZXJcbiAgICBsb2NhbGU/OiBhbnlcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0IGV4dGVuZHMgSVdzRXZlbnRUZWxlbWV0cnkge1xuICAgIHR5cGU6IHN0cmluZ1xuICAgIC8vIHN1YlR5cGU/OiBzdHJpbmdcbiAgICAvLyBtb2RlOiBzdHJpbmdcbiAgICBpZDogc3RyaW5nXG4gICAgLy8gbWltZVR5cGU6IHN0cmluZ1xuICB9XG4gIGV4cG9ydCB0eXBlIFdzRXZlbnRUZWxlbWV0cnlJbnRlcmFjdCA9IElXc0V2ZW50czxJV3NFdmVudFRlbGVtZXRyeUludGVyYWN0PlxuICBleHBvcnQgdHlwZSBXc0V2ZW50VGVsZW1ldHJ5RmVlZGJhY2sgPSBJV3NFdmVudHM8SVdzRXZlbnRUZWxlbWV0cnlGZWVkYmFjaz5cbiAgZXhwb3J0IHR5cGUgV3NFdmVudFRlbGVtZXRyeUltcHJlc3Npb24gPSBJV3NFdmVudHM8SVdzRXZlbnRUZWxlbWV0cnlJbXByZXNzaW9uPlxuICBleHBvcnQgdHlwZSBXc0V2ZW50VGVsZW1ldHJ5U2VhcmNoID0gSVdzRXZlbnRzPElXc0V2ZW50VGVsZW1ldHJ5U2VhcmNoPlxuICBleHBvcnQgdHlwZSBXc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0ID0gSVdzRXZlbnRzPElXc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0PlxuXG4gIC8vIE11bHRpbWVkaWEgVGVsZW1ldHJ5IERhdGFcbiAgZXhwb3J0IGVudW0gRW51bVRlbGVtZXRyeU1lZGlhQWN0aXZpdHkge1xuICAgIFBMQVlFRCA9ICdQTEFZRUQnLFxuICAgIFBBVVNFRCA9ICdQQVVTRUQnLFxuICAgIFNFRUtFRCA9ICdTRUVLRUQnLFxuICAgIEVOREVEID0gJ0VOREVEJyxcbiAgICBWT0xVTUVfQ0hBTkdFID0gJ1ZPTFVNRV9DSEFOR0UnLFxuICAgIE1VVEUgPSAnTVVURScsXG4gICAgVU5NVVRFID0gJ1VOTVVURScsXG4gICAgUExBWUJBQ0tfU1BFRURfQ0hBTkdFID0gJ1BMQVlCQUNLX1NQRUVEX0NIQU5HRScsXG4gICAgRlVMTFNDUkVFTl9BQ1RJVkFURUQgPSAnRlVMTFNDUkVFTl9BQ1RJVkFURUQnLFxuICAgIEZVTExTQ1JFRU5fREVBQ1RJVkFURUQgPSAnRlVMTFNDUkVFTl9ERUFDVElWQVRFRCcsXG4gICAgUElDVFVSRV9JTl9QSUNUVVJFX0FDVElWQVRFRCA9ICdQSUNUVVJFX0lOX1BJQ1RVUkVfQUNUSVZBVEVEJyxcbiAgICBQSUNUVVJFX0lOX1BJQ1RVUkVfREVBQ1RJVkFURUQgPSAnUElDVFVSRV9JTl9QSUNUVVJFX0RFQUNUSVZBVEVEJyxcbiAgICBOT05FID0gJ05PTkUnLFxuICB9XG4gIGV4cG9ydCBlbnVtIEVudW1UZWxlbWV0cnlNZWRpYVN0YXRlIHtcbiAgICBQTEFZSU5HID0gJ1BMQVlJTkcnLFxuICAgIFBBVVNFRCA9ICdQQVVTRUQnLFxuICAgIEVOREVEID0gJ0VOREVEJyxcbiAgICBCVUZGRVJJTkcgPSAnQlVGRkVSSU5HJyxcbiAgICBOT1RfU1RBUlRFRCA9ICdOT1RfU1RBUlRFRCcsXG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBJV3NFdmVudFRlbGVtZXRyeU1lZGlhRGF0YSBleHRlbmRzIElXc0V2ZW50VGVsZW1ldHJ5IHtcbiAgICBjdXJyZW50U3RhdGU6IEVudW1UZWxlbWV0cnlNZWRpYVN0YXRlXG4gICAgYWN0aXZpdHlUeXBlOiBFbnVtVGVsZW1ldHJ5TWVkaWFBY3Rpdml0eVxuICAgIGN1cnJlbnRUaW1lOiBudW1iZXIgfCBudWxsXG4gICAgdG90YWxUaW1lOiBudW1iZXIgfCBudWxsXG4gICAgbWF4ZWRTZWVrZWRUaW1lOiBudW1iZXJcbiAgICBhY3Rpdml0eVN0YXJ0ZWRBdD86IERhdGUgfCBudWxsXG4gIH1cbiAgZXhwb3J0IHR5cGUgV3NFdmVudFRlbGVtZXRyeU1lZGlhID0gSVdzRXZlbnRzPElXc0V2ZW50VGVsZW1ldHJ5TWVkaWFEYXRhPlxuXG4gIGV4cG9ydCBlbnVtIEVudW1UZWxlbWV0cnltb2R1bGVzIHtcbiAgICBDT05URU5UID0gJ2NvbnRlbnQnLFxuICAgIEZFRURCQUNLID0gJ2ZlZWRiYWNrJyxcbiAgICBDT1VSU0UgPSAnY291cnNlJyxcbiAgICBQUk9HUkFNID0gJ3Byb2dyYW0nLFxuICAgIEVYUExPUkUgPSAnZXhwbG9yZScsXG4gICAgTEVBUk4gPSAnbGVhcm4nLFxuICAgIEhPTUUgPSAnaG9tZScsXG4gICAgREFTSEJPQVJEID0gJ2Rhc2hib2FyZCcsXG4gICAgU0VBUkNIID0gJ3NlYXJjaCcsXG4gICAgRElTQ1VTUyA9ICdEaXNjdXNzJyxcbiAgICBDT01QRVRFTkNZID0gJ2NvbXBldGVuY3knLFxuICAgIEVWRU5UUyA9ICdldmVudHMnLFxuICAgIENBUkVFUiA9ICdjYXJlZXInLFxuICAgIFBST0ZJTEUgPSAncHJvZmlsZScsXG4gICAgTkVUV09SSyA9ICduZXR3b3JrJyxcbiAgICBTVVBQT1JUID0gJ3N1cHBvcnQnLFxuICB9XG4gIGV4cG9ydCBlbnVtIEVudW1JbnRlcmFjdFR5cGVzIHtcbiAgICBDTElDSyA9ICdjbGljaycsXG4gIH1cbiAgZXhwb3J0IGVudW0gRW51bUludGVyYWN0U3ViVHlwZXMge1xuICAgIENPVVJTRV9UQUIgPSAnY291cnNlLXRhYicsXG4gICAgQ0FSRUVSX1RBQiA9ICdjYXJlZXItdGFiJyxcbiAgICBORVRXT1JLX1RBQiA9ICduZXR3b3JrLXRhYicsXG4gICAgQ09NUEVURU5DWV9UQUIgPSAnY29tcGV0ZW5jeS10YWInLFxuICAgIFBST0ZJTEVfRURJVF9UQUIgPSAncHJvZmlsZS1lZGl0LXRhYicsXG4gICAgRElTQ1VTU19UQUIgPSAnZGlzY3Vzcy10YWInLFxuICAgIEVWRU5UU19UQUIgPSAnZXZlbnRzLXRhYicsXG4gICAgU0lERV9NRU5VID0gJ3NpZGUtbWVudScsXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common/http";
4
+ export class InitService {
5
+ constructor(http) {
6
+ this.http = http;
7
+ }
8
+ async init() {
9
+ await this.setConfiDetails();
10
+ }
11
+ async setConfiDetails(configDetails = null) {
12
+ if (configDetails) {
13
+ this.configDetails = configDetails;
14
+ this.baseUrl = configDetails.portalURL;
15
+ }
16
+ else {
17
+ try {
18
+ if (this.configDetails) {
19
+ return this.configDetails;
20
+ }
21
+ const response = await this.http.get('assets/jsonfiles/configurations.json').toPromise();
22
+ if (response) {
23
+ this.configDetails = response;
24
+ this.baseUrl = response.portalURL;
25
+ }
26
+ }
27
+ catch (e) {
28
+ throw new Error('could not fetch configurations');
29
+ }
30
+ }
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InitService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
33
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InitService, providedIn: 'root' }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InitService, decorators: [{
36
+ type: Injectable,
37
+ args: [{
38
+ providedIn: 'root',
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NlcnZpY2VzL2luaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFVbEQsTUFBTSxPQUFPLFdBQVc7SUFLdEIsWUFDVSxJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBRzFCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO0lBQzlCLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFxQixJQUFJO1FBQ3JELElBQUksYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQTtTQUN2QzthQUFNO1lBQ0wsSUFBSTtnQkFFRixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQTtpQkFDMUI7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxzQ0FBc0MsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO2dCQUM3RixJQUFJLFFBQVEsRUFBRTtvQkFDWixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFBO2lCQUNsQzthQUNGO1lBQ0QsT0FBTSxDQUFDLEVBQUU7Z0JBQ1AsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO2FBQ2xEO1NBQ0Y7SUFDSCxDQUFDOytHQW5DVSxXQUFXO21IQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9CQVNFX0hSRUYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG4vLyBpbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG4vKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBJbml0U2VydmljZSB7XG5cbiAgYmFzZVVybDogc3RyaW5nXG4gIGNvbmZpZ0RldGFpbHM6IGFueVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgKSB7XG5cbiAgfVxuXG4gIGFzeW5jIGluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5zZXRDb25maURldGFpbHMoKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRDb25maURldGFpbHMoY29uZmlnRGV0YWlsczogYW55ID0gbnVsbCk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKGNvbmZpZ0RldGFpbHMpIHtcbiAgICAgIHRoaXMuY29uZmlnRGV0YWlscyA9IGNvbmZpZ0RldGFpbHNcbiAgICAgIHRoaXMuYmFzZVVybCA9IGNvbmZpZ0RldGFpbHMucG9ydGFsVVJMXG4gICAgfSBlbHNlIHtcbiAgICAgIHRyeSB7XG5cbiAgICAgICAgaWYgKHRoaXMuY29uZmlnRGV0YWlscykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ0RldGFpbHNcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cC5nZXQ8YW55PignYXNzZXRzL2pzb25maWxlcy9jb25maWd1cmF0aW9ucy5qc29uJykudG9Qcm9taXNlKClcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgdGhpcy5jb25maWdEZXRhaWxzID0gcmVzcG9uc2VcbiAgICAgICAgICB0aGlzLmJhc2VVcmwgPSByZXNwb25zZS5wb3J0YWxVUkxcbiAgICAgICAgfVxuICAgICAgfSBcbiAgICAgIGNhdGNoKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmV0Y2ggY29uZmlndXJhdGlvbnMnKVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,261 @@
1
+ // role-mapping.service.ts
2
+ import { HttpHeaders } from '@angular/common/http';
3
+ import { Injectable } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common/http";
6
+ import * as i2 from "./init.service";
7
+ const API_END_POINTS = {
8
+ GET_ROLE_MAPPING: 'cbp-tpc-ai/api/v1/role-mapping/generate_stream',
9
+ };
10
+ export class RoleMappingService {
11
+ onResize(event) {
12
+ this.screenWidth = event.target.innerWidth;
13
+ }
14
+ constructor(http, initSvc) {
15
+ this.http = http;
16
+ this.initSvc = initSvc;
17
+ if (initSvc && this.initSvc.baseUrl && this.initSvc.configDetails) {
18
+ this.baseUrl = this.initSvc.baseUrl;
19
+ this.configDetails = this.initSvc.configDetails;
20
+ }
21
+ else {
22
+ this.setConfiDetails();
23
+ }
24
+ this.screenWidth = window.innerWidth;
25
+ // const storageData:any = JSON.parse(localStorage.getItem('loginData'))
26
+ // console.log('storageData--', storageData)
27
+ // this.headers = new HttpHeaders({
28
+ // 'Authorization': `Bearer ${storageData?.access_token}`
29
+ // });
30
+ }
31
+ setConfiDetails(configDetails = null) {
32
+ if (configDetails) {
33
+ this.configDetails = configDetails;
34
+ this.baseUrl = configDetails.portalURL;
35
+ }
36
+ else {
37
+ this.getConfigDetails().subscribe((response) => {
38
+ this.configDetails = response;
39
+ this.baseUrl = response.portalURL;
40
+ });
41
+ }
42
+ }
43
+ getConfig() {
44
+ if (this.configDetails) {
45
+ return this.configDetails;
46
+ }
47
+ return null;
48
+ }
49
+ getConfigDetails() {
50
+ return this.http.get('assets/jsonfiles/configurations.json');
51
+ }
52
+ // async generateRoleMapping(
53
+ // reqBody: any,
54
+ // file: File[] | null,
55
+ // onChunk: (chunk: string) => void,
56
+ // onStart?: () => void,
57
+ // onEnd?: () => void,
58
+ // onError?: (error: any) => void
59
+ // ): Promise<void> {
60
+ // const storageData:any = JSON.parse(localStorage.getItem('loginData'))
61
+ // console.log('storageData--', storageData)
62
+ // this.headers = new HttpHeaders({
63
+ // 'Authorization': `Bearer ${storageData?.access_token}`
64
+ // });
65
+ // const headersObj: Record<string, string> = {};
66
+ // this.headers.keys().forEach(key => {
67
+ // const value = this.headers.get(key);
68
+ // if (value !== null) {
69
+ // headersObj[key] = value;
70
+ // }
71
+ // });
72
+ // const formData = new FormData();
73
+ // if (reqBody.state_center_id) {
74
+ // formData.append('state_center_id', reqBody.state_center_id);
75
+ // }
76
+ // if (reqBody.department_id) {
77
+ // formData.append('department_id', reqBody.department_id);
78
+ // }
79
+ // if (reqBody.instruction) {
80
+ // formData.append('instruction', reqBody.instruction);
81
+ // }
82
+ // // Add sector_name parameter as required by the API
83
+ // formData.append('sector_name', 'Government');
84
+ // if (file) {
85
+ // formData.append('additional_document', file);
86
+ // }
87
+ // try {
88
+ // const response = await fetch(`${this.baseUrl}${API_END_POINTS.GET_ROLE_MAPPING}`, {
89
+ // method: 'POST',
90
+ // body: formData,
91
+ // headers: headersObj
92
+ // });
93
+ // if (!response.ok) {
94
+ // const errorText = await response.text();
95
+ // let errorDetail = '';
96
+ // try {
97
+ // const errorJson = JSON.parse(errorText);
98
+ // errorDetail = errorJson.detail || `HTTP error! status: ${response.status}`;
99
+ // } catch {
100
+ // errorDetail = errorText || `HTTP error! status: ${response.status}`;
101
+ // }
102
+ // // Pass specific error details to onError callback
103
+ // if (onError) onError({
104
+ // status: response.status,
105
+ // detail: errorDetail,
106
+ // isExistingRoleMapping: errorDetail.includes('Role mapping already exists')
107
+ // });
108
+ // return;
109
+ // }
110
+ // if (!response.body) {
111
+ // throw new Error(`Server responded with ${response.status}`);
112
+ // }
113
+ // const reader = response.body.getReader();
114
+ // const decoder = new TextDecoder('utf-8');
115
+ // let buffer = '';
116
+ // while (true) {
117
+ // const { value, done } = await reader.read();
118
+ // if (done) break;
119
+ // buffer += decoder.decode(value, { stream: true });
120
+ // const events = buffer.split('\n\n');
121
+ // buffer = events.pop() || ''; // Save incomplete event
122
+ // for (const rawEvent of events) {
123
+ // const lines = rawEvent.split('\n');
124
+ // let eventType = 'message';
125
+ // let data = '';
126
+ // for (const line of lines) {
127
+ // if (line.startsWith('event:')) {
128
+ // eventType = line.slice(6).trim();
129
+ // } else if (line.startsWith('data:')) {
130
+ // data += line.slice(5).trim();
131
+ // }
132
+ // }
133
+ // if (eventType === 'start' && onStart) onStart();
134
+ // else if (eventType === 'chunk') onChunk(JSON.parse(data).chunk);
135
+ // else if (eventType === 'end' && onEnd) onEnd();
136
+ // }
137
+ // }
138
+ // if (onEnd) onEnd();
139
+ // } catch (err) {
140
+ // console.error('Streaming error:', err);
141
+ // if (onError) onError(err);
142
+ // }
143
+ // }
144
+ async generateRoleMapping(reqBody, files, onChunk, onStart, onEnd, onError) {
145
+ const storageData = JSON.parse(localStorage.getItem('loginData'));
146
+ console.log('storageData--', storageData);
147
+ this.headers = new HttpHeaders({
148
+ 'Authorization': `Bearer ${storageData?.access_token}`
149
+ });
150
+ const headersObj = {};
151
+ this.headers.keys().forEach(key => {
152
+ const value = this.headers.get(key);
153
+ if (value !== null) {
154
+ headersObj[key] = value;
155
+ }
156
+ });
157
+ const formData = new FormData();
158
+ if (reqBody.state_center_id)
159
+ formData.append('state_center_id', reqBody.state_center_id);
160
+ if (reqBody.department_id)
161
+ formData.append('department_id', reqBody.department_id);
162
+ if (reqBody.instruction)
163
+ formData.append('instruction', reqBody.instruction);
164
+ // Add sector_name parameter as required by the API
165
+ formData.append('sector_name', 'Government');
166
+ console.log('files------------', files);
167
+ // Handle single or multiple files
168
+ if (files) {
169
+ if (Array.isArray(files)) {
170
+ files.forEach((file, index) => {
171
+ formData.append('additional_document', file, file.name);
172
+ });
173
+ }
174
+ else {
175
+ formData.append('additional_document', files, files.name);
176
+ }
177
+ }
178
+ try {
179
+ // After appending files and other fields
180
+ console.log('FormData contents:');
181
+ formData.forEach((value, key) => {
182
+ if (value instanceof File) {
183
+ console.log(`${key}: ${value.name} (${value.size} bytes)`);
184
+ }
185
+ else {
186
+ console.log(`${key}: ${value}`);
187
+ }
188
+ });
189
+ const response = await fetch(`${this.baseUrl}${API_END_POINTS.GET_ROLE_MAPPING}`, {
190
+ method: 'POST',
191
+ body: formData,
192
+ headers: headersObj
193
+ });
194
+ if (!response.ok) {
195
+ const errorText = await response.text();
196
+ let errorDetail = '';
197
+ try {
198
+ const errorJson = JSON.parse(errorText);
199
+ errorDetail = errorJson.detail || `HTTP error! status: ${response.status}`;
200
+ }
201
+ catch {
202
+ errorDetail = errorText || `HTTP error! status: ${response.status}`;
203
+ }
204
+ if (onError)
205
+ onError({
206
+ status: response.status,
207
+ detail: errorDetail,
208
+ isExistingRoleMapping: errorDetail.includes('Role mapping already exists')
209
+ });
210
+ return;
211
+ }
212
+ if (!response.body) {
213
+ throw new Error(`Server responded with ${response.status}`);
214
+ }
215
+ const reader = response.body.getReader();
216
+ const decoder = new TextDecoder('utf-8');
217
+ let buffer = '';
218
+ while (true) {
219
+ const { value, done } = await reader.read();
220
+ if (done)
221
+ break;
222
+ buffer += decoder.decode(value, { stream: true });
223
+ const events = buffer.split('\n\n');
224
+ buffer = events.pop() || ''; // Save incomplete event
225
+ for (const rawEvent of events) {
226
+ const lines = rawEvent.split('\n');
227
+ let eventType = 'message';
228
+ let data = '';
229
+ for (const line of lines) {
230
+ if (line.startsWith('event:'))
231
+ eventType = line.slice(6).trim();
232
+ else if (line.startsWith('data:'))
233
+ data += line.slice(5).trim();
234
+ }
235
+ if (eventType === 'start' && onStart)
236
+ onStart();
237
+ else if (eventType === 'chunk')
238
+ onChunk(JSON.parse(data).chunk);
239
+ else if (eventType === 'end' && onEnd)
240
+ onEnd();
241
+ }
242
+ }
243
+ if (onEnd)
244
+ onEnd();
245
+ }
246
+ catch (err) {
247
+ console.error('Streaming error:', err);
248
+ if (onError)
249
+ onError(err);
250
+ }
251
+ }
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoleMappingService, deps: [{ token: i1.HttpClient }, { token: i2.InitService }], target: i0.ɵɵFactoryTarget.Injectable }); }
253
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoleMappingService, providedIn: 'root' }); }
254
+ }
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RoleMappingService, decorators: [{
256
+ type: Injectable,
257
+ args: [{
258
+ providedIn: 'root'
259
+ }]
260
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.InitService }]; } });
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1tYXBwaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY2JwLWFpL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2VydmljZXMvcm9sZS1tYXBwaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSTNDLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLGdCQUFnQixFQUFFLGdEQUFnRDtDQUNuRSxDQUFBO0FBS0QsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixRQUFRLENBQUMsS0FBSztRQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDN0MsQ0FBQztJQUNELFlBQ1UsSUFBZ0IsRUFDaEIsT0FBb0I7UUFEcEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBRTVCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUE7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQTtTQUNoRDthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFBO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLHdFQUF3RTtRQUN4RSw0Q0FBNEM7UUFDNUMsbUNBQW1DO1FBQ25DLDJEQUEyRDtRQUMzRCxNQUFNO0lB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QWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcm9sZS1tYXBwaW5nLnNlcnZpY2UudHNcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5pdFNlcnZpY2UgfSBmcm9tICcuL2luaXQuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IEFQSV9FTkRfUE9JTlRTID0ge1xuICBHRVRfUk9MRV9NQVBQSU5HOiAnY2JwLXRwYy1haS9hcGkvdjEvcm9sZS1tYXBwaW5nL2dlbmVyYXRlX3N0cmVhbScsXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVNYXBwaW5nU2VydmljZSB7XG4gIGJhc2VVcmw6IHN0cmluZ1xuICBjb25maWdEZXRhaWxzOiBhbnlcbiAgc2NyZWVuV2lkdGg6IG51bWJlcjtcbiAgaGVhZGVyczphbnlcbiAgb25SZXNpemUoZXZlbnQpIHtcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XG4gIH1cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgaW5pdFN2YzogSW5pdFNlcnZpY2UsXG4gICkge1xuICAgIGlmIChpbml0U3ZjICYmIHRoaXMuaW5pdFN2Yy5iYXNlVXJsICYmIHRoaXMuaW5pdFN2Yy5jb25maWdEZXRhaWxzKSB7XG4gICAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLmluaXRTdmMuYmFzZVVybFxuICAgICAgdGhpcy5jb25maWdEZXRhaWxzID0gdGhpcy5pbml0U3ZjLmNvbmZpZ0RldGFpbHNcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRDb25maURldGFpbHMoKVxuICAgIH1cbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgLy8gY29uc3Qgc3RvcmFnZURhdGE6YW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbG9naW5EYXRhJykpXG4gICAgLy8gY29uc29sZS5sb2coJ3N0b3JhZ2VEYXRhLS0nLCBzdG9yYWdlRGF0YSlcbiAgICAvLyB0aGlzLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgIC8vICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7c3RvcmFnZURhdGE/LmFjY2Vzc190b2tlbn1gXG4gICAgLy8gfSk7XG4gIH1cblxuICBzZXRDb25maURldGFpbHMoY29uZmlnRGV0YWlsczogYW55ID0gbnVsbCkge1xuICAgIGlmIChjb25maWdEZXRhaWxzKSB7XG4gICAgICB0aGlzLmNvbmZpZ0RldGFpbHMgPSBjb25maWdEZXRhaWxzXG4gICAgICB0aGlzLmJhc2VVcmwgPSBjb25maWdEZXRhaWxzLnBvcnRhbFVSTFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdldENvbmZpZ0RldGFpbHMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb25maWdEZXRhaWxzID0gcmVzcG9uc2VcbiAgICAgICAgdGhpcy5iYXNlVXJsID0gcmVzcG9uc2UucG9ydGFsVVJMXG4gICAgICB9KVxuICAgIH1cbiAgfVxuICBnZXRDb25maWcoKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnRGV0YWlscykge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnRGV0YWlscztcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgZ2V0Q29uZmlnRGV0YWlscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PignYXNzZXRzL2pzb25maWxlcy9jb25maWd1cmF0aW9ucy5qc29uJyk7XG4gIH1cblxuICAvLyBhc3luYyBnZW5lcmF0ZVJvbGVNYXBwaW5nKFxuICAvLyAgIHJlcUJvZHk6IGFueSxcbiAgLy8gICBmaWxlOiBGaWxlW10gfCBudWxsLFxuICAvLyAgIG9uQ2h1bms6IChjaHVuazogc3RyaW5nKSA9PiB2b2lkLFxuICAvLyAgIG9uU3RhcnQ/OiAoKSA9PiB2b2lkLFxuICAvLyAgIG9uRW5kPzogKCkgPT4gdm9pZCxcbiAgLy8gICBvbkVycm9yPzogKGVycm9yOiBhbnkpID0+IHZvaWRcbiAgLy8gKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vICAgY29uc3Qgc3RvcmFnZURhdGE6YW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbG9naW5EYXRhJykpXG4gIC8vICAgY29uc29sZS5sb2coJ3N0b3JhZ2VEYXRhLS0nLCBzdG9yYWdlRGF0YSlcbiAgLy8gICB0aGlzLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAvLyAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7c3RvcmFnZURhdGE/LmFjY2Vzc190b2tlbn1gXG4gIC8vICAgfSk7XG5cbiAgLy8gICBjb25zdCBoZWFkZXJzT2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgLy8gICB0aGlzLmhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IHtcbiAgLy8gICAgIGNvbnN0IHZhbHVlID0gdGhpcy5oZWFkZXJzLmdldChrZXkpO1xuICAvLyAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gIC8vICAgICAgIGhlYWRlcnNPYmpba2V5XSA9IHZhbHVlO1xuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuICAvLyAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgLy8gICBpZiAocmVxQm9keS5zdGF0ZV9jZW50ZXJfaWQpIHtcbiAgLy8gICAgIGZvcm1EYXRhLmFwcGVuZCgnc3RhdGVfY2VudGVyX2lkJywgcmVxQm9keS5zdGF0ZV9jZW50ZXJfaWQpO1xuICAvLyAgIH1cblxuICAvLyAgIGlmIChyZXFCb2R5LmRlcGFydG1lbnRfaWQpIHtcbiAgLy8gICAgIGZvcm1EYXRhLmFwcGVuZCgnZGVwYXJ0bWVudF9pZCcsIHJlcUJvZHkuZGVwYXJ0bWVudF9pZCk7XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKHJlcUJvZHkuaW5zdHJ1Y3Rpb24pIHtcbiAgLy8gICAgIGZvcm1EYXRhLmFwcGVuZCgnaW5zdHJ1Y3Rpb24nLCByZXFCb2R5Lmluc3RydWN0aW9uKTtcbiAgLy8gICB9XG5cbiAgLy8gICAvLyBBZGQgc2VjdG9yX25hbWUgcGFyYW1ldGVyIGFzIHJlcXVpcmVkIGJ5IHRoZSBBUElcbiAgLy8gICBmb3JtRGF0YS5hcHBlbmQoJ3NlY3Rvcl9uYW1lJywgJ0dvdmVybm1lbnQnKTtcblxuICAvLyAgIGlmIChmaWxlKSB7XG4gIC8vICAgICBmb3JtRGF0YS5hcHBlbmQoJ2FkZGl0aW9uYWxfZG9jdW1lbnQnLCBmaWxlKTtcbiAgLy8gICB9XG5cbiAgLy8gICB0cnkge1xuICAvLyAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt0aGlzLmJhc2VVcmx9JHtBUElfRU5EX1BPSU5UUy5HRVRfUk9MRV9NQVBQSU5HfWAsIHtcbiAgLy8gICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gIC8vICAgICAgIGJvZHk6IGZvcm1EYXRhLFxuICAvLyAgICAgICBoZWFkZXJzOiBoZWFkZXJzT2JqXG4gIC8vICAgICB9KTtcblxuICAvLyAgICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAvLyAgICAgICBjb25zdCBlcnJvclRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gIC8vICAgICAgIGxldCBlcnJvckRldGFpbCA9ICcnO1xuICAgICAgICBcbiAgLy8gICAgICAgdHJ5IHtcbiAgLy8gICAgICAgICBjb25zdCBlcnJvckpzb24gPSBKU09OLnBhcnNlKGVycm9yVGV4dCk7XG4gIC8vICAgICAgICAgZXJyb3JEZXRhaWwgPSBlcnJvckpzb24uZGV0YWlsIHx8IGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWA7XG4gIC8vICAgICAgIH0gY2F0Y2gge1xuICAvLyAgICAgICAgIGVycm9yRGV0YWlsID0gZXJyb3JUZXh0IHx8IGBIVFRQIGVycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWA7XG4gIC8vICAgICAgIH1cbiAgICAgICAgXG4gIC8vICAgICAgIC8vIFBhc3Mgc3BlY2lmaWMgZXJyb3IgZGV0YWlscyB0byBvbkVycm9yIGNhbGxiYWNrXG4gIC8vICAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKHsgXG4gIC8vICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXMsIFxuICAvLyAgICAgICAgIGRldGFpbDogZXJyb3JEZXRhaWwsXG4gIC8vICAgICAgICAgaXNFeGlzdGluZ1JvbGVNYXBwaW5nOiBlcnJvckRldGFpbC5pbmNsdWRlcygnUm9sZSBtYXBwaW5nIGFscmVhZHkgZXhpc3RzJylcbiAgLy8gICAgICAgfSk7XG4gIC8vICAgICAgIHJldHVybjtcbiAgLy8gICAgIH1cblxuICAvLyAgICAgaWYgKCFyZXNwb25zZS5ib2R5KSB7XG4gIC8vICAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAvLyAgICAgfVxuXG4gIC8vICAgICBjb25zdCByZWFkZXIgPSByZXNwb25zZS5ib2R5LmdldFJlYWRlcigpO1xuICAvLyAgICAgY29uc3QgZGVjb2RlciA9IG5ldyBUZXh0RGVjb2RlcigndXRmLTgnKTtcbiAgLy8gICAgIGxldCBidWZmZXIgPSAnJztcblxuICAvLyAgICAgd2hpbGUgKHRydWUpIHtcbiAgLy8gICAgICAgY29uc3QgeyB2YWx1ZSwgZG9uZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTtcbiAgLy8gICAgICAgaWYgKGRvbmUpIGJyZWFrO1xuXG4gIC8vICAgICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06IHRydWUgfSk7XG5cbiAgLy8gICAgICAgY29uc3QgZXZlbnRzID0gYnVmZmVyLnNwbGl0KCdcXG5cXG4nKTtcbiAgLy8gICAgICAgYnVmZmVyID0gZXZlbnRzLnBvcCgpIHx8ICcnOyAvLyBTYXZlIGluY29tcGxldGUgZXZlbnRcblxuICAvLyAgICAgICBmb3IgKGNvbnN0IHJhd0V2ZW50IG9mIGV2ZW50cykge1xuICAvLyAgICAgICAgIGNvbnN0IGxpbmVzID0gcmF3RXZlbnQuc3BsaXQoJ1xcbicpO1xuICAvLyAgICAgICAgIGxldCBldmVudFR5cGUgPSAnbWVzc2FnZSc7XG4gIC8vICAgICAgICAgbGV0IGRhdGEgPSAnJztcblxuICAvLyAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAvLyAgICAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZXZlbnQ6JykpIHtcbiAgLy8gICAgICAgICAgICAgZXZlbnRUeXBlID0gbGluZS5zbGljZSg2KS50cmltKCk7XG4gIC8vICAgICAgICAgICB9IGVsc2UgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZGF0YTonKSkge1xuICAvLyAgICAgICAgICAgICBkYXRhICs9IGxpbmUuc2xpY2UoNSkudHJpbSgpO1xuICAvLyAgICAgICAgICAgfVxuICAvLyAgICAgICAgIH1cblxuICAvLyAgICAgICAgIGlmIChldmVudFR5cGUgPT09ICdzdGFydCcgJiYgb25TdGFydCkgb25TdGFydCgpO1xuICAvLyAgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ2NodW5rJykgb25DaHVuayhKU09OLnBhcnNlKGRhdGEpLmNodW5rKTtcbiAgLy8gICAgICAgICBlbHNlIGlmIChldmVudFR5cGUgPT09ICdlbmQnICYmIG9uRW5kKSBvbkVuZCgpO1xuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG5cbiAgLy8gICAgIGlmIChvbkVuZCkgb25FbmQoKTtcbiAgLy8gICB9IGNhdGNoIChlcnIpIHtcbiAgLy8gICAgIGNvbnNvbGUuZXJyb3IoJ1N0cmVhbWluZyBlcnJvcjonLCBlcnIpO1xuICAvLyAgICAgaWYgKG9uRXJyb3IpIG9uRXJyb3IoZXJyKTtcbiAgLy8gICB9XG4gIC8vIH1cblxuICBhc3luYyBnZW5lcmF0ZVJvbGVNYXBwaW5nKFxuICAgIHJlcUJvZHk6IGFueSxcbiAgICBmaWxlczogRmlsZSB8IEZpbGVbXSB8IG51bGwsXG4gICAgb25DaHVuazogKGNodW5rOiBzdHJpbmcpID0+IHZvaWQsXG4gICAgb25TdGFydD86ICgpID0+IHZvaWQsXG4gICAgb25FbmQ/OiAoKSA9PiB2b2lkLFxuICAgIG9uRXJyb3I/OiAoZXJyb3I6IGFueSkgPT4gdm9pZFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdG9yYWdlRGF0YTogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbG9naW5EYXRhJykpO1xuICAgIGNvbnNvbGUubG9nKCdzdG9yYWdlRGF0YS0tJywgc3RvcmFnZURhdGEpO1xuICBcbiAgICB0aGlzLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7c3RvcmFnZURhdGE/LmFjY2Vzc190b2tlbn1gXG4gICAgfSk7XG4gIFxuICAgIGNvbnN0IGhlYWRlcnNPYmo6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICB0aGlzLmhlYWRlcnMua2V5cygpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5oZWFkZXJzLmdldChrZXkpO1xuICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGhlYWRlcnNPYmpba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICBcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICBcbiAgICBpZiAocmVxQm9keS5zdGF0ZV9jZW50ZXJfaWQpIGZvcm1EYXRhLmFwcGVuZCgnc3RhdGVfY2VudGVyX2lkJywgcmVxQm9keS5zdGF0ZV9jZW50ZXJfaWQpO1xuICAgIGlmIChyZXFCb2R5LmRlcGFydG1lbnRfaWQpIGZvcm1EYXRhLmFwcGVuZCgnZGVwYXJ0bWVudF9pZCcsIHJlcUJvZHkuZGVwYXJ0bWVudF9pZCk7XG4gICAgaWYgKHJlcUJvZHkuaW5zdHJ1Y3Rpb24pIGZvcm1EYXRhLmFwcGVuZCgnaW5zdHJ1Y3Rpb24nLCByZXFCb2R5Lmluc3RydWN0aW9uKTtcbiAgXG4gICAgLy8gQWRkIHNlY3Rvcl9uYW1lIHBhcmFtZXRlciBhcyByZXF1aXJlZCBieSB0aGUgQVBJXG4gICAgZm9ybURhdGEuYXBwZW5kKCdzZWN0b3JfbmFtZScsICdHb3Zlcm5tZW50Jyk7XG4gICAgY29uc29sZS5sb2coJ2ZpbGVzLS0tLS0tLS0tLS0tJywgZmlsZXMpXG4gICAgLy8gSGFuZGxlIHNpbmdsZSBvciBtdWx0aXBsZSBmaWxlc1xuICAgIGlmIChmaWxlcykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsZXMpKSB7XG4gICAgICAgIGZpbGVzLmZvckVhY2goKGZpbGUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhZGRpdGlvbmFsX2RvY3VtZW50JywgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2FkZGl0aW9uYWxfZG9jdW1lbnQnLCBmaWxlcywgZmlsZXMubmFtZSk7XG4gICAgICB9XG4gICAgfVxuICBcbiAgICB0cnkge1xuICAgICAgLy8gQWZ0ZXIgYXBwZW5kaW5nIGZpbGVzIGFuZCBvdGhlciBmaWVsZHNcbiAgICAgIGNvbnNvbGUubG9nKCdGb3JtRGF0YSBjb250ZW50czonKTtcbiAgICAgIGZvcm1EYXRhLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRmlsZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAke2tleX06ICR7dmFsdWUubmFtZX0gKCR7dmFsdWUuc2l6ZX0gYnl0ZXMpYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYCR7a2V5fTogJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7IFxuXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke3RoaXMuYmFzZVVybH0ke0FQSV9FTkRfUE9JTlRTLkdFVF9ST0xFX01BUFBJTkd9YCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICAgIGhlYWRlcnM6IGhlYWRlcnNPYmpcbiAgICAgIH0pO1xuICBcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgY29uc3QgZXJyb3JUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICBsZXQgZXJyb3JEZXRhaWwgPSAnJztcbiAgXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JKc29uID0gSlNPTi5wYXJzZShlcnJvclRleHQpO1xuICAgICAgICAgIGVycm9yRGV0YWlsID0gZXJyb3JKc29uLmRldGFpbCB8fCBgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICBlcnJvckRldGFpbCA9IGVycm9yVGV4dCB8fCBgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c31gO1xuICAgICAgICB9XG4gIFxuICAgICAgICBpZiAob25FcnJvcikgb25FcnJvcih7IFxuICAgICAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLCBcbiAgICAgICAgICBkZXRhaWw6IGVycm9yRGV0YWlsLFxuICAgICAgICAgIGlzRXhpc3RpbmdSb2xlTWFwcGluZzogZXJyb3JEZXRhaWwuaW5jbHVkZXMoJ1JvbGUgbWFwcGluZyBhbHJlYWR5IGV4aXN0cycpXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gIFxuICAgICAgaWYgKCFyZXNwb25zZS5ib2R5KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU2VydmVyIHJlc3BvbmRlZCB3aXRoICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgfVxuICBcbiAgICAgIGNvbnN0IHJlYWRlciA9IHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCk7XG4gICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCd1dGYtOCcpO1xuICAgICAgbGV0IGJ1ZmZlciA9ICcnO1xuICBcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIGRvbmUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgICAgIGlmIChkb25lKSBicmVhaztcbiAgXG4gICAgICAgIGJ1ZmZlciArPSBkZWNvZGVyLmRlY29kZSh2YWx1ZSwgeyBzdHJlYW06IHRydWUgfSk7XG4gIFxuICAgICAgICBjb25zdCBldmVudHMgPSBidWZmZXIuc3BsaXQoJ1xcblxcbicpO1xuICAgICAgICBidWZmZXIgPSBldmVudHMucG9wKCkgfHwgJyc7IC8vIFNhdmUgaW5jb21wbGV0ZSBldmVudFxuICBcbiAgICAgICAgZm9yIChjb25zdCByYXdFdmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgICBjb25zdCBsaW5lcyA9IHJhd0V2ZW50LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICBsZXQgZXZlbnRUeXBlID0gJ21lc3NhZ2UnO1xuICAgICAgICAgIGxldCBkYXRhID0gJyc7XG4gIFxuICAgICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICAgICAgaWYgKGxpbmUuc3RhcnRzV2l0aCgnZXZlbnQ6JykpIGV2ZW50VHlwZSA9IGxpbmUuc2xpY2UoNikudHJpbSgpO1xuICAgICAgICAgICAgZWxzZSBpZiAobGluZS5zdGFydHNXaXRoKCdkYXRhOicpKSBkYXRhICs9IGxpbmUuc2xpY2UoNSkudHJpbSgpO1xuICAgICAgICAgIH1cbiAgXG4gICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PT0gJ3N0YXJ0JyAmJiBvblN0YXJ0KSBvblN0YXJ0KCk7XG4gICAgICAgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09PSAnY2h1bmsnKSBvbkNodW5rKEpTT04ucGFyc2UoZGF0YSkuY2h1bmspO1xuICAgICAgICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PT0gJ2VuZCcgJiYgb25FbmQpIG9uRW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICBpZiAob25FbmQpIG9uRW5kKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdTdHJlYW1pbmcgZXJyb3I6JywgZXJyKTtcbiAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKGVycik7XG4gICAgfVxuICB9XG4gIFxufVxuIl19