@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.
- package/README.md +24 -0
- package/esm2022/lib/ai-cbp-routing.module.mjs +56 -0
- package/esm2022/lib/ai-cbp.component.mjs +14 -0
- package/esm2022/lib/ai-cbp.module.mjs +263 -0
- package/esm2022/lib/ai-cbp.service.mjs +14 -0
- package/esm2022/lib/components/add-course/add-course.component.mjs +444 -0
- package/esm2022/lib/components/add-designation/add-designation.component.mjs +460 -0
- package/esm2022/lib/components/add-personalisation/add-personalisation.component.mjs +33 -0
- package/esm2022/lib/components/approval-request-form/approval-request-form.component.mjs +392 -0
- package/esm2022/lib/components/approval-requests/approval-requests.component.mjs +398 -0
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +265 -0
- package/esm2022/lib/components/delete-role-mapping/delete-role-mapping.component.mjs +53 -0
- package/esm2022/lib/components/delete-role-mapping-popup/delete-role-mapping-popup.component.mjs +39 -0
- package/esm2022/lib/components/edit-cbp-plan/edit-cbp-plan.component.mjs +699 -0
- package/esm2022/lib/components/gap-analysis-recommended-course/gap-analysis-recommended-course.component.mjs +188 -0
- package/esm2022/lib/components/generate-course-recommendation/generate-course-recommendation.component.mjs +1949 -0
- package/esm2022/lib/components/list-popup/list-popup.component.mjs +32 -0
- package/esm2022/lib/components/review-request/review-request.component.mjs +138 -0
- package/esm2022/lib/components/role-mapping-generation/role-mapping-generation.component.mjs +1082 -0
- package/esm2022/lib/components/role-mapping-list/role-mapping-list.component.mjs +714 -0
- package/esm2022/lib/components/suggest-more-courses/suggest-more-courses.component.mjs +370 -0
- package/esm2022/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.mjs +235 -0
- package/esm2022/lib/components/view-cbp-plan/view-cbp-plan.component.mjs +125 -0
- package/esm2022/lib/components/view-course-recommendation/view-course-recommendation.component.mjs +397 -0
- package/esm2022/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.mjs +883 -0
- package/esm2022/lib/modules/initial-screen/initial-screen.component.mjs +127 -0
- package/esm2022/lib/modules/shared/constant/app.constant.mjs +2036 -0
- package/esm2022/lib/modules/shared/directives/clickoutside.directive.mjs +38 -0
- package/esm2022/lib/modules/shared/directives/directive.module.mjs +21 -0
- package/esm2022/lib/modules/shared/pipes/order-by-name.pipe.mjs +23 -0
- package/esm2022/lib/modules/shared/services/event.service.mjs +24 -0
- package/esm2022/lib/modules/shared/services/events.mjs +125 -0
- package/esm2022/lib/modules/shared/services/init.service.mjs +41 -0
- package/esm2022/lib/modules/shared/services/role-mapping.service.mjs +261 -0
- package/esm2022/lib/modules/shared/services/shared.service.mjs +869 -0
- package/esm2022/lib/modules/upload-document-page/progress-dialog/progress-dialog.component.mjs +53 -0
- package/esm2022/lib/modules/upload-document-page/upload-dialog/upload-dialog.component.mjs +186 -0
- package/esm2022/lib/modules/upload-document-page/upload-document-page.component.mjs +367 -0
- package/esm2022/lib/pipe-public-URL/pipe-public-URL.module.mjs +20 -0
- package/esm2022/lib/pipe-public-URL/pipe-public-URL.pipe.mjs +23 -0
- package/esm2022/public-api.mjs +14 -0
- package/esm2022/sunbird-cb-cbp-ai.mjs +5 -0
- package/fesm2022/sunbird-cb-cbp-ai.mjs +12952 -0
- package/fesm2022/sunbird-cb-cbp-ai.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/ai-cbp-routing.module.d.ts +8 -0
- package/lib/ai-cbp-routing.module.d.ts.map +1 -0
- package/lib/ai-cbp.component.d.ts +7 -0
- package/lib/ai-cbp.component.d.ts.map +1 -0
- package/lib/ai-cbp.module.d.ts +68 -0
- package/lib/ai-cbp.module.d.ts.map +1 -0
- package/lib/ai-cbp.service.d.ts +7 -0
- package/lib/ai-cbp.service.d.ts.map +1 -0
- package/lib/components/add-course/add-course.component.d.ts +67 -0
- package/lib/components/add-course/add-course.component.d.ts.map +1 -0
- package/lib/components/add-designation/add-designation.component.d.ts +52 -0
- package/lib/components/add-designation/add-designation.component.d.ts.map +1 -0
- package/lib/components/add-personalisation/add-personalisation.component.d.ts +16 -0
- package/lib/components/add-personalisation/add-personalisation.component.d.ts.map +1 -0
- package/lib/components/approval-request-form/approval-request-form.component.d.ts +48 -0
- package/lib/components/approval-request-form/approval-request-form.component.d.ts.map +1 -0
- package/lib/components/approval-requests/approval-requests.component.d.ts +80 -0
- package/lib/components/approval-requests/approval-requests.component.d.ts.map +1 -0
- package/lib/components/dashboard/dashboard.component.d.ts +55 -0
- package/lib/components/dashboard/dashboard.component.d.ts.map +1 -0
- package/lib/components/delete-role-mapping/delete-role-mapping.component.d.ts +18 -0
- package/lib/components/delete-role-mapping/delete-role-mapping.component.d.ts.map +1 -0
- package/lib/components/delete-role-mapping-popup/delete-role-mapping-popup.component.d.ts +18 -0
- package/lib/components/delete-role-mapping-popup/delete-role-mapping-popup.component.d.ts.map +1 -0
- package/lib/components/edit-cbp-plan/edit-cbp-plan.component.d.ts +94 -0
- package/lib/components/edit-cbp-plan/edit-cbp-plan.component.d.ts.map +1 -0
- package/lib/components/gap-analysis-recommended-course/gap-analysis-recommended-course.component.d.ts +35 -0
- package/lib/components/gap-analysis-recommended-course/gap-analysis-recommended-course.component.d.ts.map +1 -0
- package/lib/components/generate-course-recommendation/generate-course-recommendation.component.d.ts +198 -0
- package/lib/components/generate-course-recommendation/generate-course-recommendation.component.d.ts.map +1 -0
- package/lib/components/list-popup/list-popup.component.d.ts +13 -0
- package/lib/components/list-popup/list-popup.component.d.ts.map +1 -0
- package/lib/components/review-request/review-request.component.d.ts +39 -0
- package/lib/components/review-request/review-request.component.d.ts.map +1 -0
- package/lib/components/role-mapping-generation/role-mapping-generation.component.d.ts +99 -0
- package/lib/components/role-mapping-generation/role-mapping-generation.component.d.ts.map +1 -0
- package/lib/components/role-mapping-list/role-mapping-list.component.d.ts +83 -0
- package/lib/components/role-mapping-list/role-mapping-list.component.d.ts.map +1 -0
- package/lib/components/suggest-more-courses/suggest-more-courses.component.d.ts +48 -0
- package/lib/components/suggest-more-courses/suggest-more-courses.component.d.ts.map +1 -0
- package/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.d.ts +41 -0
- package/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.d.ts.map +1 -0
- package/lib/components/view-cbp-plan/view-cbp-plan.component.d.ts +29 -0
- package/lib/components/view-cbp-plan/view-cbp-plan.component.d.ts.map +1 -0
- package/lib/components/view-course-recommendation/view-course-recommendation.component.d.ts +49 -0
- package/lib/components/view-course-recommendation/view-course-recommendation.component.d.ts.map +1 -0
- package/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.d.ts +73 -0
- package/lib/components/view-final-cbp-plan/view-final-cbp-plan.component.d.ts.map +1 -0
- package/lib/modules/initial-screen/initial-screen.component.d.ts +85 -0
- package/lib/modules/initial-screen/initial-screen.component.d.ts.map +1 -0
- package/lib/modules/shared/constant/app.constant.d.ts +457 -0
- package/lib/modules/shared/constant/app.constant.d.ts.map +1 -0
- package/lib/modules/shared/directives/clickoutside.directive.d.ts +13 -0
- package/lib/modules/shared/directives/clickoutside.directive.d.ts.map +1 -0
- package/lib/modules/shared/directives/directive.module.d.ts +8 -0
- package/lib/modules/shared/directives/directive.module.d.ts.map +1 -0
- package/lib/modules/shared/pipes/order-by-name.pipe.d.ts +8 -0
- package/lib/modules/shared/pipes/order-by-name.pipe.d.ts.map +1 -0
- package/lib/modules/shared/services/event.service.d.ts +12 -0
- package/lib/modules/shared/services/event.service.d.ts.map +1 -0
- package/lib/modules/shared/services/events.d.ts +200 -0
- package/lib/modules/shared/services/events.d.ts.map +1 -0
- package/lib/modules/shared/services/init.service.d.ts +13 -0
- package/lib/modules/shared/services/init.service.d.ts.map +1 -0
- package/lib/modules/shared/services/role-mapping.service.d.ts +21 -0
- package/lib/modules/shared/services/role-mapping.service.d.ts.map +1 -0
- package/lib/modules/shared/services/shared.service.d.ts +108 -0
- package/lib/modules/shared/services/shared.service.d.ts.map +1 -0
- package/lib/modules/upload-document-page/progress-dialog/progress-dialog.component.d.ts +14 -0
- package/lib/modules/upload-document-page/progress-dialog/progress-dialog.component.d.ts.map +1 -0
- package/lib/modules/upload-document-page/upload-dialog/upload-dialog.component.d.ts +29 -0
- package/lib/modules/upload-document-page/upload-dialog/upload-dialog.component.d.ts.map +1 -0
- package/lib/modules/upload-document-page/upload-document-page.component.d.ts +64 -0
- package/lib/modules/upload-document-page/upload-document-page.component.d.ts.map +1 -0
- package/lib/pipe-public-URL/pipe-public-URL.module.d.ts +9 -0
- package/lib/pipe-public-URL/pipe-public-URL.module.d.ts.map +1 -0
- package/lib/pipe-public-URL/pipe-public-URL.pipe.d.ts +11 -0
- package/lib/pipe-public-URL/pipe-public-URL.pipe.d.ts.map +1 -0
- package/package.json +28 -0
- package/public-api.d.ts +11 -0
- package/public-api.d.ts.map +1 -0
- package/sunbird-cb-cbp-ai-0.0.1.tgz +0 -0
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NlcnZpY2VzL2V2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLEtBQVcsUUFBUSxDQTBOeEI7QUExTkQsV0FBaUIsUUFBUTtJQVd2QixJQUFZLFdBUVg7SUFSRCxXQUFZLFdBQVc7UUFDckIsZ0NBQWlCLENBQUE7UUFDakIsc0NBQXVCLENBQUE7UUFDdkIsZ0RBQWlDLENBQUE7UUFDakMsa0ZBQW1FLENBQUE7UUFDbkUsb0NBQXFCLENBQUE7UUFDckIsOENBQStCLENBQUE7UUFDL0Isd0RBQXlDLENBQUE7SUFDM0MsQ0FBQyxFQVJXLFdBQVcsR0FBWCxvQkFBVyxLQUFYLG9CQUFXLFFBUXRCO0lBQ0QsSUFBWSxlQU1YO0lBTkQsV0FBWSxlQUFlO1FBQ3pCLGdDQUFhLENBQUE7UUFDYixrQ0FBZSxDQUFBO1FBQ2YsZ0NBQWEsQ0FBQTtRQUNiLDhCQUFXLENBQUE7UUFDWCxrQ0FBZSxDQUFBO0lBQ2pCLENBQUMsRUFOVyxlQUFlLEdBQWYsd0JBQWUsS0FBZix3QkFBZSxRQU0xQjtJQUNBLElBQVksWUFJWDtJQUpELFdBQVksWUFBWTtRQUN0QixtQ0FBbUIsQ0FBQTtRQUNuQixtQ0FBbUIsQ0FBQTtRQUNuQixtQ0FBbUIsQ0FBQTtJQUNyQixDQUFDLEVBSlcsWUFBWSxHQUFaLHFCQUFZLEtBQVoscUJBQVksUUFJdkI7SUFDRixJQUFZLGVBR1g7SUFIRCxXQUFZLGVBQWU7UUFDekIsZ0NBQWEsQ0FBQTtRQUNiLG9DQUFpQixDQUFBO0lBQ25CLENBQUMsRUFIVyxlQUFlLEdBQWYsd0JBQWUsS0FBZix3QkFBZSxRQUcxQjtJQUNELElBQVksZUFHWDtJQUhELFdBQVksZUFBZTtRQUN6QixnQ0FBYSxDQUFBO1FBQ2IsZ0NBQWEsQ0FBQTtJQUNm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LENBQUE7SUFDekIsQ0FBQyxFQVRXLG9CQUFvQixHQUFwQiw2QkFBb0IsS0FBcEIsNkJBQW9CLFFBUy9CO0FBQ0gsQ0FBQyxFQTFOZ0IsUUFBUSxLQUFSLFFBQVEsUUEwTnhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IG5hbWVzcGFjZSBXc0V2ZW50cyB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgSVdzRXZlbnRzRnJvbVdpZGdldCB7XG4gICAgdHlwZTogJ3dpZGdldCdcbiAgICB3aWRnZXRUeXBlOiBzdHJpbmdcbiAgICB3aWRnZXRTdWJUeXBlOiBzdHJpbmdcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIElXc0V2ZW50c0Zyb21QYWdlIHtcbiAgICB0eXBlOiAncGFnZSdcbiAgICBwYWdlVXJsOiBzdHJpbmdcbiAgICBwYWdlVHlwZTogc3RyaW5nXG4gIH1cbiAgZXhwb3J0IGVudW0gV3NFdmVudFR5cGUge1xuICAgIEFjdGlvbiA9ICdBY3Rpb24nLFxuICAgIFRlbGVtZXRyeSA9ICdUZWxlbWV0cnknLFxuICAgIFBhZ2VOYXZpZ2F0aW9uID0gJ1BhZ2VOYXZpZ2F0aW9uJyxcbiAgICBBY2Nlc3NSZXN0cmljdGVkQ29udGVudEFjY2Vzc2VkID0gJ0FjY2Vzc1Jlc3RyaWN0ZWRDb250ZW50QWNjZXNzZWQnLFxuICAgIFBhZ2VTbG93ID0gJ1BhZ2VTbG93JyxcbiAgICBFcnJvck9jY3VycmVkID0gJ0Vycm9yT2NjdXJyZWQnLFxuICAgIFdpZGdldFJlc29sdmVFcnJvciA9ICdXaWRnZXRSZXNvbHZlRXJyb3InLFxuICB9XG4gIGV4cG9ydCBlbnVtIFdzRXZlbnRMb2dMZXZlbCB7XG4gICAgV2FybiA9ICdXYXJuJyxcbiAgICBFcnJvciA9ICdFcnJvcicsXG4gICAgSW5mbyA9ICdJbmZvJyxcbiAgICBMb2cgPSAnTG9nJyxcbiAgICBUcmFjZSA9ICdUcmFjZScsXG4gIH1cbiAgIGV4cG9ydCBlbnVtIFdzQXVkaXRUeXBlcyB7XG4gICAgIENyZWF0ZWQgPSAnQ3JlYXRlZCcsXG4gICAgIFVwZGF0ZWQgPSAnVXBkYXRlZCcsXG4gICAgIERlbGV0ZWQgPSAnRGVsZXRlZCcsXG4gICB9XG4gIGV4cG9ydCBlbnVtIFdzVGltZVNwZW50VHlwZSB7XG4gICAgUGFnZSA9ICdQYWdlJyxcbiAgICBQbGF5ZXIgPSAnUGxheWVyJyxcbiAgfVxuICBleHBvcnQgZW51bSBXc1RpbWVTcGVudE1vZGUge1xuICAgIFBsYXkgPSAnUGxheScsXG4gICAgVmlldyA9ICdWaWV3JyxcbiAgfVxuICBleHBvcnQgZW51bSBleHRlcm5hbFRlbGVtZXRyeXBkYXRhIHtcbiAgICBSQkNQID0gJ3JiY3Atd2ViLXVpJyxcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVdzRXZlbnRzPFQ+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
|