asp-lib 1.0.48 → 1.0.50
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/esm2022/lib/header/header.component.mjs +36 -5
- package/esm2022/lib/utils/models/ServicesConfig.mjs +1 -1
- package/esm2022/lib/utils/services/SecurityServicesDefault.mjs +9 -1
- package/fesm2022/asp-lib.mjs +43 -4
- package/fesm2022/asp-lib.mjs.map +1 -1
- package/lib/header/header.component.d.ts +1 -0
- package/lib/utils/models/ServicesConfig.d.ts +4 -0
- package/lib/utils/services/SecurityServicesDefault.d.ts +2 -0
- package/package.json +1 -1
|
@@ -23,7 +23,11 @@ export class HeaderComponent {
|
|
|
23
23
|
this.moduleList = [];
|
|
24
24
|
this.auto = false;
|
|
25
25
|
this.servicesConfig = {
|
|
26
|
-
baseUrl: ''
|
|
26
|
+
baseUrl: '',
|
|
27
|
+
isDev: false,
|
|
28
|
+
username: '',
|
|
29
|
+
password: '',
|
|
30
|
+
checkRole: false
|
|
27
31
|
};
|
|
28
32
|
this.isMobile = false;
|
|
29
33
|
this.returnClick = new EventEmitter();
|
|
@@ -64,9 +68,19 @@ export class HeaderComponent {
|
|
|
64
68
|
this.isAuth$ = this.isAuth();
|
|
65
69
|
this.isAuth$.subscribe(isAuthenticated => {
|
|
66
70
|
if (isAuthenticated) {
|
|
67
|
-
this.
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
if (this.servicesConfig.isDev) {
|
|
72
|
+
if (this.servicesConfig.checkRole) {
|
|
73
|
+
this.checkResource();
|
|
74
|
+
if (!this.isMobile) {
|
|
75
|
+
this.checkResourceByRole();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.checkResource();
|
|
81
|
+
if (!this.isMobile) {
|
|
82
|
+
this.checkResourceByRole();
|
|
83
|
+
}
|
|
70
84
|
}
|
|
71
85
|
}
|
|
72
86
|
else {
|
|
@@ -84,6 +98,23 @@ export class HeaderComponent {
|
|
|
84
98
|
else {
|
|
85
99
|
return false;
|
|
86
100
|
}
|
|
101
|
+
}), catchError(() => {
|
|
102
|
+
if (this.servicesConfig.isDev) {
|
|
103
|
+
return this.doLogin();
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
return of(false);
|
|
107
|
+
}
|
|
108
|
+
}));
|
|
109
|
+
}
|
|
110
|
+
doLogin() {
|
|
111
|
+
return this.services.login(this.servicesConfig.baseUrl, this.servicesConfig.username, this.servicesConfig.password).pipe(map((response) => {
|
|
112
|
+
if (response.code == 200) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
87
118
|
}), catchError(() => {
|
|
88
119
|
return of(false);
|
|
89
120
|
}));
|
|
@@ -344,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
344
375
|
}], lastOption: [{
|
|
345
376
|
type: Output
|
|
346
377
|
}] } });
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBWSxNQUFNLGtDQUFrQyxDQUFDO0FBSTFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBbUJ0QyxNQUFNLE9BQU8sZUFBZTtJQWlEMUIsWUFBb0IsUUFBeUIsRUFBUyxNQUFjO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWhEM0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQVcsU0FBUyxDQUFDO1FBQzFCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGFBQVEsR0FBUyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixtQkFBYyxHQUFtQjtZQUN4QyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDTyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcs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ZSxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDckMsTUFBTSxPQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUNsQzthQUNGO2lCQUFNO2FBRU47UUFDSCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOytHQXRWVSxlQUFlO21HQUFmLGVBQWUsbWZDekI1QixtMUNBNEJTOzs0RkRISSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7NEhBS2IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkcm9wZG93bkNvbXBhbmllc09wdGlvbnMsIGRyb3Bkb3duTm90aWZpY2F0aW9uT3B0aW9ucywgZHJvcGRvd25SZWNlbnRPcHRpb25zLCBtZW51RGF0YSB9IGZyb20gJy4uL2Fzc2V0cy9tZW51LWRhdGEvbWVudURhdGFUZXN0JztcclxuaW1wb3J0IHsgRGF0YSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2VydmljZXNDb25maWcgfSBmcm9tICcuLi91dGlscy9tb2RlbHMvU2VydmljZXNDb25maWcnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2VzIH0gZnJvbSAnLi4vdXRpbHMvc2VydmljZXMvU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9ucyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHBhcmVudElkOiBhbnk7XHJcbiAgb3B0aW9uczogRHJvcGRvd25PcHRpb25DYXRlcmdvcnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbkNhdGVyZ29yeSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2Fzc2V0cy9mb250cy9zdHlsZS5jc3MnLCAnLi4vYXNzZXRzL3RoZW1lLnNjc3MnLCcuL2hlYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGFwcExvZ286IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1lbnVEYXRhOiBEYXRhID0ge2NhdGVnb3JpZXM6IFtdfTtcclxuICBASW5wdXQoKSByZWNlbnRPcHRpb25zIDphbnkgPSBbXTtcclxuICBASW5wdXQoKSBjb21wYW5pZXMgOmFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIG1vZHVsZUxpc3Q6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGF1dG86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXJ2aWNlc0NvbmZpZzogU2VydmljZXNDb25maWcgPSB7XHJcbiAgICBiYXNlVXJsOiAnJ1xyXG4gIH07XHJcbiAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmV0dXJuQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgbWVudUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBtZW51TmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcmVjZW50TmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTsgIFxyXG4gIEBPdXRwdXQoKSBtb2R1bGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgbGFzdE9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIFxyXG4gIGlzQXV0aCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCB1bmRlZmluZWQ7XHJcbiAgZHJvcGRvd25PcHRpb25zID0gZHJvcGRvd25SZWNlbnRPcHRpb25zO1xyXG4gIG5vdGlmaWNhdGlvbk9wdGlvbnMgPSBkcm9wZG93bk5vdGlmaWNhdGlvbk9wdGlvbnM7XHJcbiAgY29tcGFuaWVzRHJvcGRvd24gPSBkcm9wZG93bkNvbXBhbmllc09wdGlvbnM7XHJcbiAgc2VsZWN0ZWRPcHRpb246IGFueTtcclxuICBkcm9wZG93bk9wdGlvbnNNZW51OiBEcm9wZG93bk9wdGlvbnNbXSA9IFsgXHJcbiAgICB7XHJcbiAgICAgIGlkOiAwLFxyXG4gICAgICBsYWJlbDogJ0xvcmVtIElwc3VtJyxcclxuICAgICAgcGFyZW50SWQ6IG51bGwsXHJcbiAgICAgIG9wdGlvbnM6IFtcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtY29uZmlndXJhdGlvbicgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtYnVzLWdhdmlvdGEnIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLXNhdGVsaXRlJyB9LFxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpZDogMCxcclxuICAgICAgbGFiZWw6ICdMb3JlbSBJcHN1bScsXHJcbiAgICAgIHBhcmVudElkOiBudWxsLFxyXG4gICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLXZpZGVvJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1ydXRlJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1jYWxlbmRhcicgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtZGFzaGJvYXJkJyB9LCAgXHJcbiAgICAgIF1cclxuICAgIH1cclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2VzOlNlY3VyaXR5U2VydmljZXMscHJpdmF0ZSByb3V0ZXI6IFJvdXRlcil7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgaWYodGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5pc0F1dGgkID0gdGhpcy5pc0F1dGgoKTtcclxuICAgICAgdGhpcy5pc0F1dGgkLnN1YnNjcmliZShpc0F1dGhlbnRpY2F0ZWQgPT4ge1xyXG4gICAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tSZXNvdXJjZSgpO1xyXG4gICAgICAgICAgaWYoIXRoaXMuaXNNb2JpbGUpe1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrUmVzb3VyY2VCeVJvbGUoKTtcclxuICAgICAgICAgIH0gICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oJy8nLCAnX3NlbGYnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNBdXRoKCl7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlcy5pc0F1dGhlbnRpY2F0ZWQodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5waXBlKFxyXG4gICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHsgICAgICAgICAgXHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb246IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9wdGlvbjtcclxuICAgIGlmKCF0aGlzLmF1dG8pe1xyXG4gICAgICB0aGlzLnJlY2VudE5hdmlnYXRlLmVtaXQob3B0aW9uKTtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBvbkl0ZW1DbGljayh1cmw6IGFueSkge1xyXG4gICAgaWYoIXRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMubWVudU5hdmlnYXRlLmVtaXQodXJsKTtcclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zdCB1cmxPYmogPSB1cmwudXJsU2VuZDtcclxuICAgICAgY29uc3QgZXZlbnQgPSB1cmwuZXZlbnQ7XHJcbiAgICBcclxuICAgICAgaWYgKGV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIGlmKHVybE9iai51cmwpe1xyXG4gICAgICAgIHRoaXMuc2VydmljZXMuc2F2ZUhpc3RvcnkodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsLHtvcHRpb25JZDogdXJsT2JqLmlkfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodXJsT2JqLm5ldyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuaXNNb2JpbGUpe1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3V2luZG93ID0gd2luZG93Lm9wZW4odXJsT2JqLnVybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld1dpbmRvdykge1xyXG4gICAgICAgICAgICAgICAgICBuZXdXaW5kb3cub3BlbmVyID0gbnVsbDsgXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfWVsc2UgaWYodXJsT2JqLmlzV2lzZSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXV0aENvZGUodXJsT2JqLnVybCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfYmxhbmsnKTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgICAgbmV3V2luZG93Lm9wZW5lciA9IG51bGw7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzTW9iaWxlKXtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfc2VsZicpO1xyXG4gICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgaWYodXJsT2JqLmlzV2lzZSl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXV0aENvZGUodXJsT2JqLnVybCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZih0aGlzLmlzRXh0ZXJuYWxVcmwodXJsT2JqLnVybCkpe1xyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cub3Blbih1cmxPYmoudXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsT2JqLnVybCwgJ19zZWxmJyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8qXHJcbiAgICAgIHRoaXMuaW5ib3hTZXJ2aWNlLnNhdmVIaXN0b3J5KHtvcHRpb25JZDogdXJsT2JqLmlkfSkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHsgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgICovXHJcbiAgICB9ICBcclxuICB9XHJcblxyXG4gIGFycm93Q2xpY2soJGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZighdGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5yZXR1cm5DbGljay5lbWl0KCRldmVudCk7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgb25JdGVtTW9kdWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSl7XHJcbiAgICBpZighdGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5tb2R1bGVTZWxlY3QuZW1pdChldmVudC5pZCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jdXJyZW50TW9kdWxlKGV2ZW50LmlkKTtcclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGFuaWVzKCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldENvbXBhbmllc0luZm8odGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgICBjb25zdCBjYWMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ0FDJyk7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2NjID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NDQycpO1xyXG4gICAgICAgICAgICAgIGlmKGNhYyAmJiBjY2Mpe1xyXG4gICAgICAgICAgICAgICAgZGF0YS5sb2FkLmZvckVhY2goKGM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjLmFnZW5jaWVzLmZvckVhY2goKGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGEuYWdlbmN5Q29kZSA9PSBjYWMgJiYgYy5jb21wYW55Q29kZSA9PSBjY2Mpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgYy5pc09wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICB0aGlzLmNvbXBhbmllcyA9IGRhdGEubG9hZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEhpc3RvcnkoKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0SGlzdG9yeSh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBpZihkYXRhLmxvYWQpe1xyXG4gICAgICAgICAgICB0aGlzLnJlY2VudE9wdGlvbnMgPSBkYXRhLmxvYWQ7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVjZW50T3B0aW9ucy5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImxhc3Qgb3B0aW9uIGVtaXRcIik7XHJcbiAgICAgICAgICAgICAgdGhpcy5sYXN0T3B0aW9uLmVtaXQodGhpcy5yZWNlbnRPcHRpb25zWzBdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuZ2V0TW9kdWxlcygpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tSZXNvdXJjZSgpe1xyXG4gICAgdGhpcy5zZXJ2aWNlcy5nZXRSZXNvdXJjZXNCeVVzZXIodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YS5sb2FkKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRIaXN0b3J5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29tcGFuaWVzKCk7XHJcbiAgICAgICAgICB9ICAgICAgICAgIFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGVja1Jlc291cmNlQnlSb2xlKCl7XHJcbiAgICBjb25zdCBwYXRoID0gdGhpcy5nZXRQYXRoKCk7XHJcbiAgICBpZihwYXRoICE9ICcvaG9tZScpe1xyXG4gICAgICB0aGlzLnNlcnZpY2VzLmdldFJlc291cmNlc0J5Um9sZVVzZXIodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsLHBhdGgpLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICBpZihkYXRhLmxvYWQgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICAgIHdpbmRvdy5vcGVuKCcvaG9tZScsICdfc2VsZicpO1xyXG4gICAgICAgICAgICB9ICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGdldFBhdGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwuc3BsaXQoJz8nKVswXTtcclxuICB9XHJcblxyXG4gIGdldE1vZHVsZXMoKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0TW9kdWxlcyh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxvYWQpIHtcclxuICAgICAgICAgIHRoaXMubW9kdWxlTGlzdCA9IGRhdGEubG9hZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucmVjZW50T3B0aW9ucyAmJiB0aGlzLnJlY2VudE9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgaWYodGhpcy5yZWNlbnRPcHRpb25zWzBdLmFwcGxpY2F0aW9uSWQpe1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2R1bGUodGhpcy5yZWNlbnRPcHRpb25zWzBdLmFwcGxpY2F0aW9uSWQpO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1vZHVsZSh0aGlzLm1vZHVsZUxpc3RbMF0uaWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50TW9kdWxlKHRoaXMubW9kdWxlTGlzdFswXS5pZClcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIC8qXHJcbiAgICBpZiAodGhpcy5yZWNlbnREYXRhKSB7XHJcbiAgICAgIHRoaXMubW9kdWxlU2VsZWN0KHRoaXMucmVjZW50RGF0YVswXS5hcHBsaWNhdGlvbklkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCB0aGlzLmRyb3Bkb3duT3B0aW9uc01lbnUpXHJcbiAgICAgIC8vIGNvbnN0IGZpcnN0T3B0aW9uSWQgPSB0aGlzLmRyb3Bkb3duT3B0aW9uc01lbnU/LlswXT8uaWQ7XHJcbiAgICAgIC8vIGlmIChmaXJzdE9wdGlvbklkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgLy8gICB0aGlzLm1vZHVsZVNlbGVjdChmaXJzdE9wdGlvbklkKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG4gICAgKi9cclxuICAgIFxyXG4gIH1cclxuXHJcbiAgY3VycmVudE1vZHVsZShldmVudDogYW55KXtcclxuICAgIHRoaXMuc2VydmljZXMubWVudU1vZHVsZVNlbGVjdGVkKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCxldmVudCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEubG9hZCkge1xyXG4gICAgICAgICAgY29uc3QgbWVudURhdGEgPSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFxyXG4gICAgICAgICAgICAgIGRhdGEubG9hZFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMubWVudURhdGEgPSBtZW51RGF0YTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaXNFeHRlcm5hbFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIC9eaHR0cHM/OlxcL1xcLy8udGVzdCh1cmwpICYmICF1cmwuaW5jbHVkZXMod2luZG93LmxvY2F0aW9uLm9yaWdpbik7XHJcbiAgfVxyXG5cclxuICBnZXRBdXRoQ29kZSh1cmw6c3RyaW5nKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0QXV0aENvZGUodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XHJcbiAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZCgnYXV0aGNvZGUnLCBkYXRhLmxvYWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHdpc2VVcmwgPSB1cmwgKyAnJicgKyBwYXJhbXMudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICB3aW5kb3cub3Blbih3aXNlVXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iLCI8aGVhZGVyIFthdHRyLmRhdGEtdGhlbWVdPVwidGhlbWVcIiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiAobWVudUl0ZW1DbGljayk9XCJtZW51SXRlbUNsaWNrXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1tZW51LWRhc2hib2FyZC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93QmFja0J1dHRvblwiIGNsYXNzPVwiaGVhZGVyLWJ1dHRvblwiIChjbGljayk9XCJhcnJvd0NsaWNrKCRldmVudClcIj5cclxuICAgICAgPGkgY2xhc3M9XCJtZW51LWFycm93LWxlZnRcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxsaWItbWVudSBjbGFzcz1cImhlYWRlci1tZW51LWxpYlwiIFtkYXRhXT1cIm1lbnVEYXRhXCIgW3RoZW1lXT1cInRoZW1lXCJcclxuICAgICAgW2Ryb3Bkb3duT3B0aW9uc109XCJtb2R1bGVMaXN0XCIgKG1lbnVJdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiIChtb2R1bGVTZWxlY3RlZCk9XCJvbkl0ZW1Nb2R1bGVTZWxlY3RlZCgkZXZlbnQpXCIgW2lzTW9iaWxlXT1cImlzTW9iaWxlXCI+PC9saWItbWVudT5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxvZ29cIj5cclxuICAgIDxzcGFuIFtjbGFzc109XCJhcHBMb2dvXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLW5vdGlmaWNhdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1yZWNlbnRzLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bGliLXJlY2VudHMtZHJvcGRvd24gW29wdGlvbnNdPVwicmVjZW50T3B0aW9uc1wiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItcmVjZW50cy1kcm9wZG93bj5cclxuICAgIDwvZGl2PlxyXG4gICAgICA8IS0tXHJcbiAgICAgIDxsaWItbm90aWZpY2F0aW9ucyBbb3B0aW9uc109XCJub3RpZmljYXRpb25PcHRpb25zXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImhhbmRsZU9wdGlvblNlbGVjdGVkKCRldmVudClcIj48L2xpYi1ub3RpZmljYXRpb25zPlxyXG4gICAgICAtLT5cclxuICAgIFxyXG5cclxuICAgIDxsaWItY29tcGFueS1kcm9wZG93biBbY29tcGFuaWVzXT1cImNvbXBhbmllc1wiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItY29tcGFueS1kcm9wZG93bj5cclxuXHJcbiAgICA8bGliLXVzZXItZHJvcGRvd24gW2Jhc2VVcmxdPVwic2VydmljZXNDb25maWcuYmFzZVVybFwiIFtpc01vYmlsZV09XCJpc01vYmlsZVwiPjwvbGliLXVzZXItZHJvcGRvd24+XHJcbiAgPC9kaXY+XHJcbjwvaGVhZGVyPiJdfQ==
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FzcC1saWIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBWSxNQUFNLGtDQUFrQyxDQUFDO0FBSTFJLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBbUJ0QyxNQUFNLE9BQU8sZUFBZTtJQXFEMUIsWUFBb0IsUUFBeUIsRUFBUyxNQUFjO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQXBEM0QsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdBQVcsU0FBUyxDQUFDO1FBQzFCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLGFBQVEsR0FBUyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixtQkFBYyxHQUFtQjtZQUN4QyxPQUFPLEVBQUUsRUFBRTtZQUNYLEtBQUssRUFBRSxLQUFLO1lBQ1osUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVB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QUcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUNsQzthQUNGO2lCQUFNO2FBRU47UUFDSCxDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOytHQTFYVSxlQUFlO21HQUFmLGVBQWUsbWZDekI1QixtMUNBNEJTOzs0RkRISSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7NEhBS2IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkcm9wZG93bkNvbXBhbmllc09wdGlvbnMsIGRyb3Bkb3duTm90aWZpY2F0aW9uT3B0aW9ucywgZHJvcGRvd25SZWNlbnRPcHRpb25zLCBtZW51RGF0YSB9IGZyb20gJy4uL2Fzc2V0cy9tZW51LWRhdGEvbWVudURhdGFUZXN0JztcclxuaW1wb3J0IHsgRGF0YSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2VydmljZXNDb25maWcgfSBmcm9tICcuLi91dGlscy9tb2RlbHMvU2VydmljZXNDb25maWcnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2VzIH0gZnJvbSAnLi4vdXRpbHMvc2VydmljZXMvU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duT3B0aW9ucyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHBhcmVudElkOiBhbnk7XHJcbiAgb3B0aW9uczogRHJvcGRvd25PcHRpb25DYXRlcmdvcnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbkNhdGVyZ29yeSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4uL2Fzc2V0cy9mb250cy9zdHlsZS5jc3MnLCAnLi4vYXNzZXRzL3RoZW1lLnNjc3MnLCcuL2hlYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGFwcExvZ286IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAnZGVmYXVsdCc7XHJcbiAgQElucHV0KCkgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG1lbnVEYXRhOiBEYXRhID0ge2NhdGVnb3JpZXM6IFtdfTtcclxuICBASW5wdXQoKSByZWNlbnRPcHRpb25zIDphbnkgPSBbXTtcclxuICBASW5wdXQoKSBjb21wYW5pZXMgOmFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIG1vZHVsZUxpc3Q6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGF1dG86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXJ2aWNlc0NvbmZpZzogU2VydmljZXNDb25maWcgPSB7XHJcbiAgICBiYXNlVXJsOiAnJyxcclxuICAgIGlzRGV2OiBmYWxzZSxcclxuICAgIHVzZXJuYW1lOiAnJyxcclxuICAgIHBhc3N3b3JkOiAnJyxcclxuICAgIGNoZWNrUm9sZTogZmFsc2VcclxuICB9O1xyXG4gIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHJldHVybkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIG1lbnVJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgbWVudU5hdmlnYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHJlY2VudE5hdmlnYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7ICBcclxuICBAT3V0cHV0KCkgbW9kdWxlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGxhc3RPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBcclxuICBpc0F1dGgkOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xyXG4gIGRyb3Bkb3duT3B0aW9ucyA9IGRyb3Bkb3duUmVjZW50T3B0aW9ucztcclxuICBub3RpZmljYXRpb25PcHRpb25zID0gZHJvcGRvd25Ob3RpZmljYXRpb25PcHRpb25zO1xyXG4gIGNvbXBhbmllc0Ryb3Bkb3duID0gZHJvcGRvd25Db21wYW5pZXNPcHRpb25zO1xyXG4gIHNlbGVjdGVkT3B0aW9uOiBhbnk7XHJcbiAgZHJvcGRvd25PcHRpb25zTWVudTogRHJvcGRvd25PcHRpb25zW10gPSBbIFxyXG4gICAge1xyXG4gICAgICBpZDogMCxcclxuICAgICAgbGFiZWw6ICdMb3JlbSBJcHN1bScsXHJcbiAgICAgIHBhcmVudElkOiBudWxsLFxyXG4gICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLWNvbmZpZ3VyYXRpb24nIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLWJ1cy1nYXZpb3RhJyB9LFxyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS1zYXRlbGl0ZScgfSxcclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWQ6IDAsXHJcbiAgICAgIGxhYmVsOiAnTG9yZW0gSXBzdW0nLFxyXG4gICAgICBwYXJlbnRJZDogbnVsbCxcclxuICAgICAgb3B0aW9uczogW1xyXG4gICAgICAgIHsgbGFiZWw6ICdMb3JlbSBJcHN1bScsIGljb246ICdicmFzaWxpYS12aWRlbycgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtcnV0ZScgfSxcclxuICAgICAgICB7IGxhYmVsOiAnTG9yZW0gSXBzdW0nLCBpY29uOiAnYnJhc2lsaWEtY2FsZW5kYXInIH0sXHJcbiAgICAgICAgeyBsYWJlbDogJ0xvcmVtIElwc3VtJywgaWNvbjogJ2JyYXNpbGlhLWRhc2hib2FyZCcgfSwgIFxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlczpTZWN1cml0eVNlcnZpY2VzLHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBcclxuICAgIGlmKHRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMuaXNBdXRoJCA9IHRoaXMuaXNBdXRoKCk7XHJcbiAgICAgIHRoaXMuaXNBdXRoJC5zdWJzY3JpYmUoaXNBdXRoZW50aWNhdGVkID0+IHtcclxuICAgICAgICBpZiAoaXNBdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgICAgICBpZih0aGlzLnNlcnZpY2VzQ29uZmlnLmlzRGV2KXtcclxuICAgICAgICAgICAgaWYodGhpcy5zZXJ2aWNlc0NvbmZpZy5jaGVja1JvbGUpe1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tSZXNvdXJjZSgpO1xyXG4gICAgICAgICAgICAgIGlmKCF0aGlzLmlzTW9iaWxlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tSZXNvdXJjZUJ5Um9sZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tSZXNvdXJjZSgpO1xyXG4gICAgICAgICAgICBpZighdGhpcy5pc01vYmlsZSl7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaGVja1Jlc291cmNlQnlSb2xlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICAgICAgICB3aW5kb3cub3BlbignLycsICdfc2VsZicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0F1dGgoKXtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2VzLmlzQXV0aGVudGljYXRlZCh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIGlmKHRoaXMuc2VydmljZXNDb25maWcuaXNEZXYpe1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZG9Mb2dpbigpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZG9Mb2dpbigpe1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXMubG9naW4odGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VzQ29uZmlnLnVzZXJuYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VzQ29uZmlnLnBhc3N3b3JkKS5waXBlKFxyXG4gICAgICBtYXAoKHJlc3BvbnNlOmFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9IGVsc2UgeyAgICAgICBcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpOyAgICAgICAgXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XHJcbiAgICBpZighdGhpcy5hdXRvKXtcclxuICAgICAgdGhpcy5yZWNlbnROYXZpZ2F0ZS5lbWl0KG9wdGlvbik7XHJcbiAgICB9ICAgIFxyXG4gIH1cclxuXHJcbiAgb25JdGVtQ2xpY2sodXJsOiBhbnkpIHtcclxuICAgIGlmKCF0aGlzLmF1dG8pe1xyXG4gICAgICB0aGlzLm1lbnVOYXZpZ2F0ZS5lbWl0KHVybCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc3QgdXJsT2JqID0gdXJsLnVybFNlbmQ7XHJcbiAgICAgIGNvbnN0IGV2ZW50ID0gdXJsLmV2ZW50O1xyXG4gICAgXHJcbiAgICAgIGlmIChldmVudCkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBpZih1cmxPYmoudXJsKXtcclxuICAgICAgICB0aGlzLnNlcnZpY2VzLnNhdmVIaXN0b3J5KHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCx7b3B0aW9uSWQ6IHVybE9iai5pZH0pLnN1YnNjcmliZShcclxuICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHVybE9iai5uZXcgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzTW9iaWxlKXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfYmxhbmsnKTtcclxuICAgICAgICAgICAgICAgIGlmIChuZXdXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgICAgbmV3V2luZG93Lm9wZW5lciA9IG51bGw7IFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1lbHNlIGlmKHVybE9iai5pc1dpc2Upe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEF1dGhDb2RlKHVybE9iai51cmwpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdXaW5kb3cgPSB3aW5kb3cub3Blbih1cmxPYmoudXJsLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAobmV3V2luZG93KSB7XHJcbiAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdy5vcGVuZXIgPSBudWxsOyBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYodGhpcy5pc01vYmlsZSl7XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cub3Blbih1cmxPYmoudXJsLCAnX3NlbGYnKTtcclxuICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgIGlmKHVybE9iai5pc1dpc2Upe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmdldEF1dGhDb2RlKHVybE9iai51cmwpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYodGhpcy5pc0V4dGVybmFsVXJsKHVybE9iai51cmwpKXtcclxuICAgICAgICAgICAgICAgICAgd2luZG93Lm9wZW4odXJsT2JqLnVybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKHVybE9iai51cmwsICdfc2VsZicpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAvKlxyXG4gICAgICB0aGlzLmluYm94U2VydmljZS5zYXZlSGlzdG9yeSh7b3B0aW9uSWQ6IHVybE9iai5pZH0pLnN1YnNjcmliZShcclxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7ICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICAqL1xyXG4gICAgfSAgXHJcbiAgfVxyXG5cclxuICBhcnJvd0NsaWNrKCRldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYoIXRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMucmV0dXJuQ2xpY2suZW1pdCgkZXZlbnQpO1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIG9uSXRlbU1vZHVsZVNlbGVjdGVkKGV2ZW50OiBhbnkpe1xyXG4gICAgaWYoIXRoaXMuYXV0byl7XHJcbiAgICAgIHRoaXMubW9kdWxlU2VsZWN0LmVtaXQoZXZlbnQuaWQpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuY3VycmVudE1vZHVsZShldmVudC5pZCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGdldENvbXBhbmllcygpe1xyXG4gICAgdGhpcy5zZXJ2aWNlcy5nZXRDb21wYW5pZXNJbmZvKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgICAgY29uc3QgY2FjID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NBQycpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGNjYyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDQ0MnKTtcclxuICAgICAgICAgICAgICBpZihjYWMgJiYgY2NjKXtcclxuICAgICAgICAgICAgICAgIGRhdGEubG9hZC5mb3JFYWNoKChjOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgYy5hZ2VuY2llcy5mb3JFYWNoKChhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihhLmFnZW5jeUNvZGUgPT0gY2FjICYmIGMuY29tcGFueUNvZGUgPT0gY2NjKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgdGhpcy5jb21wYW5pZXMgPSBkYXRhLmxvYWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRIaXN0b3J5KCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldEhpc3RvcnkodGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgaWYoZGF0YS5sb2FkKXtcclxuICAgICAgICAgICAgdGhpcy5yZWNlbnRPcHRpb25zID0gZGF0YS5sb2FkO1xyXG4gICAgICAgICAgICBpZih0aGlzLnJlY2VudE9wdGlvbnMubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJsYXN0IG9wdGlvbiBlbWl0XCIpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGFzdE9wdGlvbi5lbWl0KHRoaXMucmVjZW50T3B0aW9uc1swXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gICAgICAgICAgXHJcbiAgICAgICAgICB0aGlzLmdldE1vZHVsZXMoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoZWNrUmVzb3VyY2UoKXtcclxuICAgIHRoaXMuc2VydmljZXMuZ2V0UmVzb3VyY2VzQnlVc2VyKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEubG9hZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0SGlzdG9yeSgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldENvbXBhbmllcygpO1xyXG4gICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tSZXNvdXJjZUJ5Um9sZSgpe1xyXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuZ2V0UGF0aCgpO1xyXG4gICAgaWYocGF0aCAhPSAnL2hvbWUnKXtcclxuICAgICAgdGhpcy5zZXJ2aWNlcy5nZXRSZXNvdXJjZXNCeVJvbGVVc2VyKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCxwYXRoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgICAgaWYoZGF0YS5sb2FkID09IGZhbHNlKXtcclxuICAgICAgICAgICAgICB3aW5kb3cub3BlbignL2hvbWUnLCAnX3NlbGYnKTtcclxuICAgICAgICAgICAgfSAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxuICBnZXRQYXRoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCc/JylbMF07XHJcbiAgfVxyXG5cclxuICBnZXRNb2R1bGVzKCl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldE1vZHVsZXModGhpcy5zZXJ2aWNlc0NvbmZpZy5iYXNlVXJsKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5sb2FkKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZHVsZUxpc3QgPSBkYXRhLmxvYWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnJlY2VudE9wdGlvbnMgJiYgdGhpcy5yZWNlbnRPcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGlmKHRoaXMucmVjZW50T3B0aW9uc1swXS5hcHBsaWNhdGlvbklkKXtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50TW9kdWxlKHRoaXMucmVjZW50T3B0aW9uc1swXS5hcHBsaWNhdGlvbklkKTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNb2R1bGUodGhpcy5tb2R1bGVMaXN0WzBdLmlkKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudE1vZHVsZSh0aGlzLm1vZHVsZUxpc3RbMF0uaWQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICAvKlxyXG4gICAgaWYgKHRoaXMucmVjZW50RGF0YSkge1xyXG4gICAgICB0aGlzLm1vZHVsZVNlbGVjdCh0aGlzLnJlY2VudERhdGFbMF0uYXBwbGljYXRpb25JZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZyggdGhpcy5kcm9wZG93bk9wdGlvbnNNZW51KVxyXG4gICAgICAvLyBjb25zdCBmaXJzdE9wdGlvbklkID0gdGhpcy5kcm9wZG93bk9wdGlvbnNNZW51Py5bMF0/LmlkO1xyXG4gICAgICAvLyBpZiAoZmlyc3RPcHRpb25JZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIC8vICAgdGhpcy5tb2R1bGVTZWxlY3QoZmlyc3RPcHRpb25JZCk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICAgICovXHJcbiAgICBcclxuICB9XHJcblxyXG4gIGN1cnJlbnRNb2R1bGUoZXZlbnQ6IGFueSl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLm1lbnVNb2R1bGVTZWxlY3RlZCh0aGlzLnNlcnZpY2VzQ29uZmlnLmJhc2VVcmwsZXZlbnQpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLmxvYWQpIHtcclxuICAgICAgICAgIGNvbnN0IG1lbnVEYXRhID0ge1xyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBcclxuICAgICAgICAgICAgICBkYXRhLmxvYWRcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLm1lbnVEYXRhID0gbWVudURhdGE7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlzRXh0ZXJuYWxVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAvXmh0dHBzPzpcXC9cXC8vLnRlc3QodXJsKSAmJiAhdXJsLmluY2x1ZGVzKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXV0aENvZGUodXJsOnN0cmluZyl7XHJcbiAgICB0aGlzLnNlcnZpY2VzLmdldEF1dGhDb2RlKHRoaXMuc2VydmljZXNDb25maWcuYmFzZVVybCkuc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIGlmKGRhdGEubG9hZCl7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xyXG4gICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ2F1dGhjb2RlJywgZGF0YS5sb2FkKTtcclxuICAgICAgICAgICAgICBjb25zdCB3aXNlVXJsID0gdXJsICsgJyYnICsgcGFyYW1zLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgd2luZG93Lm9wZW4od2lzZVVybCwgJ19ibGFuaycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuXHJcbn1cclxuIiwiPGhlYWRlciBbYXR0ci5kYXRhLXRoZW1lXT1cInRoZW1lXCIgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCIgKG1lbnVJdGVtQ2xpY2spPVwibWVudUl0ZW1DbGlja1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbWVudS1kYXNoYm9hcmQtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0JhY2tCdXR0b25cIiBjbGFzcz1cImhlYWRlci1idXR0b25cIiAoY2xpY2spPVwiYXJyb3dDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwibWVudS1hcnJvdy1sZWZ0XCI+PC9pPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bGliLW1lbnUgY2xhc3M9XCJoZWFkZXItbWVudS1saWJcIiBbZGF0YV09XCJtZW51RGF0YVwiIFt0aGVtZV09XCJ0aGVtZVwiXHJcbiAgICAgIFtkcm9wZG93bk9wdGlvbnNdPVwibW9kdWxlTGlzdFwiIChtZW51SXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIiAobW9kdWxlU2VsZWN0ZWQpPVwib25JdGVtTW9kdWxlU2VsZWN0ZWQoJGV2ZW50KVwiIFtpc01vYmlsZV09XCJpc01vYmlsZVwiPjwvbGliLW1lbnU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1sb2dvXCI+XHJcbiAgICA8c3BhbiBbY2xhc3NdPVwiYXBwTG9nb1wiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1ub3RpZmljYXRpb25zLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtcmVjZW50cy1jb250YWluZXJcIj5cclxuICAgICAgPGxpYi1yZWNlbnRzLWRyb3Bkb3duIFtvcHRpb25zXT1cInJlY2VudE9wdGlvbnNcIlxyXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiPjwvbGliLXJlY2VudHMtZHJvcGRvd24+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgPCEtLVxyXG4gICAgICA8bGliLW5vdGlmaWNhdGlvbnMgW29wdGlvbnNdPVwibm90aWZpY2F0aW9uT3B0aW9uc1wiXHJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItbm90aWZpY2F0aW9ucz5cclxuICAgICAgLS0+XHJcbiAgICBcclxuXHJcbiAgICA8bGliLWNvbXBhbnktZHJvcGRvd24gW2NvbXBhbmllc109XCJjb21wYW5pZXNcIlxyXG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiPjwvbGliLWNvbXBhbnktZHJvcGRvd24+XHJcblxyXG4gICAgPGxpYi11c2VyLWRyb3Bkb3duIFtiYXNlVXJsXT1cInNlcnZpY2VzQ29uZmlnLmJhc2VVcmxcIiBbaXNNb2JpbGVdPVwiaXNNb2JpbGVcIj48L2xpYi11c2VyLWRyb3Bkb3duPlxyXG4gIDwvZGl2PlxyXG48L2hlYWRlcj4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZXNDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXRpbHMvbW9kZWxzL1NlcnZpY2VzQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VzQ29uZmlnIHtcclxuICAgIGJhc2VVcmw6IHN0cmluZztcclxuICAgIGlzRGV2OiBib29sZWFuO1xyXG4gICAgdXNlcm5hbWU6IHN0cmluZztcclxuICAgIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgICBjaGVja1JvbGU6IGJvb2xlYW47XHJcbn0iXX0=
|
|
@@ -8,6 +8,7 @@ export class SecurityServices {
|
|
|
8
8
|
static { this.COMPANIES_INFO = '/security/secure/getCompaniesInfo'; }
|
|
9
9
|
static { this.VERIFY_AUTH = '/security/secure/validatesession'; }
|
|
10
10
|
static { this.RESOURCES_BY_USER = '/security/secure/resourcesbyuser'; }
|
|
11
|
+
static { this.LOGIN = '/security/login'; }
|
|
11
12
|
static { this.LOGOUT = '/security/secure/logOut'; }
|
|
12
13
|
static { this.SAVE_HISTORY = '/security/secure/savehistory'; }
|
|
13
14
|
static { this.VERIFY_RESOURCES_BY_USERROLE = '/security/secure/validateresourcesbyRole'; }
|
|
@@ -41,6 +42,13 @@ export class SecurityServices {
|
|
|
41
42
|
params.append('path', path);
|
|
42
43
|
return this.http.get(baseUrl + SecurityServices.VERIFY_RESOURCES_BY_USERROLE + '?' + params.toString());
|
|
43
44
|
}
|
|
45
|
+
login(baseUrl, username, password) {
|
|
46
|
+
const log = {
|
|
47
|
+
'username': username,
|
|
48
|
+
'password': password
|
|
49
|
+
};
|
|
50
|
+
return this.http.post(baseUrl + SecurityServices.LOGIN, log);
|
|
51
|
+
}
|
|
44
52
|
logOut(baseUrl) {
|
|
45
53
|
return this.http.post(baseUrl + SecurityServices.LOGOUT, null);
|
|
46
54
|
}
|
|
@@ -62,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
62
70
|
providedIn: 'root'
|
|
63
71
|
}]
|
|
64
72
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3AtbGliL3NyYy9saWIvdXRpbHMvc2VydmljZXMvU2VjdXJpdHlTZXJ2aWNlc0RlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3pDLE1BQU0sT0FBTyxnQkFBZ0I7YUFFWCxZQUFPLEdBQUcsNkJBQTZCLEFBQWhDLENBQWlDO2FBQ3hDLFlBQU8sR0FBRyxnQ0FBZ0MsQUFBbkMsQ0FBb0M7YUFDM0Msa0JBQWEsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7YUFDbkQsbUJBQWMsR0FBRyxtQ0FBbUMsQUFBdEMsQ0FBdUM7YUFDckQsZ0JBQVcsR0FBRyxrQ0FBa0MsQUFBckMsQ0FBc0M7YUFDakQsc0JBQWlCLEdBQUcsa0NBQWtDLEFBQXJDLENBQXNDO2FBQ3ZELFVBQUssR0FBRyxpQkFBaUIsQUFBcEIsQ0FBcUI7YUFDMUIsV0FBTSxHQUFHLHlCQUF5QixBQUE1QixDQUE2QjthQUNuQyxpQkFBWSxHQUFHLDhCQUE4QixBQUFqQyxDQUFrQzthQUM5QyxpQ0FBNEIsR0FBRywwQ0FBMEMsQUFBN0MsQ0FBOEM7YUFDMUUsb0JBQWUsR0FBRyxpQ0FBaUMsQUFBcEMsQ0FBcUM7YUFDcEQsa0JBQWEsR0FBRyw4QkFBOEIsQUFBakMsQ0FBaUM7SUFFOUQsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBR0EsVUFBVSxDQUFDLE9BQWM7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFjLEVBQUMsS0FBVTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQWM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFjO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWMsRUFBQyxJQUFRO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDckMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsNEJBQTRCLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBYyxFQUFDLFFBQWUsRUFBQyxRQUFlO1FBQ2xELE1BQU0sR0FBRyxHQUFHO1lBQ1YsVUFBVSxFQUFFLFFBQVE7WUFDcEIsVUFBVSxFQUFFLFFBQVE7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBQyxHQUFHLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBYyxFQUFDLE1BQVU7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBYyxFQUFDLEVBQU07UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqRSxDQUFDOytHQXpFUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbiAgfSlcclxuICBleHBvcnQgY2xhc3MgU2VjdXJpdHlTZXJ2aWNlcyB7XHJcblxyXG4gICAgc3RhdGljIHJlYWRvbmx5IEhJU1RPUlkgPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRoaXN0b3J5JztcclxuICAgIHN0YXRpYyByZWFkb25seSBNT0RVTEVTID0gJy9zZWN1cml0eS9zZWN1cmUvbW9kdWxlc2J5dXNlcic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTU9EVUxFX09QVElPTiA9ICcvc2VjdXJpdHkvc2VjdXJlL29wdGlvbnNieW1vZHVsZSc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgQ09NUEFOSUVTX0lORk8gPSAnL3NlY3VyaXR5L3NlY3VyZS9nZXRDb21wYW5pZXNJbmZvJztcclxuICAgIHN0YXRpYyByZWFkb25seSBWRVJJRllfQVVUSCA9ICcvc2VjdXJpdHkvc2VjdXJlL3ZhbGlkYXRlc2Vzc2lvbic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgUkVTT1VSQ0VTX0JZX1VTRVIgPSAnL3NlY3VyaXR5L3NlY3VyZS9yZXNvdXJjZXNieXVzZXInO1xyXG4gICAgc3RhdGljIHJlYWRvbmx5IExPR0lOID0gJy9zZWN1cml0eS9sb2dpbic7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgTE9HT1VUID0gJy9zZWN1cml0eS9zZWN1cmUvbG9nT3V0JztcclxuICAgIHN0YXRpYyByZWFkb25seSBTQVZFX0hJU1RPUlkgPSAnL3NlY3VyaXR5L3NlY3VyZS9zYXZlaGlzdG9yeSc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgVkVSSUZZX1JFU09VUkNFU19CWV9VU0VSUk9MRSA9ICcvc2VjdXJpdHkvc2VjdXJlL3ZhbGlkYXRlcmVzb3VyY2VzYnlSb2xlJztcclxuICAgIHN0YXRpYyByZWFkb25seSBDSEFOR0VfUEFTU1dPUkQgPSAnL3NlY3VyaXR5L3NlY3VyZS9jaGFuZ2VQYXNzd29yZCc7XHJcbiAgICBzdGF0aWMgcmVhZG9ubHkgR0VUX0FVVEhfQ09ERSA9ICcvc2VjdXJpdHkvc2VjdXJlL2dldGF1dGhjb2RlJ1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgZ2V0SGlzdG9yeShiYXNlVXJsOnN0cmluZyl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuSElTVE9SWSk7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBnZXRNb2R1bGVzKGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5NT0RVTEVTKTtcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIG1lbnVNb2R1bGVTZWxlY3RlZChiYXNlVXJsOnN0cmluZyxhcHBJZDogYW55KSB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xyXG4gICAgICAgIHBhcmFtcy5hcHBlbmQoJ2FwcElkJywgYXBwSWQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLk1PRFVMRV9PUFRJT04gKyAnPycgKyBwYXJhbXMudG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdldENvbXBhbmllc0luZm8oYmFzZVVybDpzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5DT01QQU5JRVNfSU5GTyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlzQXV0aGVudGljYXRlZChiYXNlVXJsOnN0cmluZyl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuVkVSSUZZX0FVVEgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBnZXRSZXNvdXJjZXNCeVVzZXIoYmFzZVVybDpzdHJpbmcpe1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLlJFU09VUkNFU19CWV9VU0VSKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ2V0UmVzb3VyY2VzQnlSb2xlVXNlcihiYXNlVXJsOnN0cmluZyxwYXRoOmFueSl7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xyXG4gICAgICAgIHBhcmFtcy5hcHBlbmQoJ3BhdGgnLCBwYXRoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5WRVJJRllfUkVTT1VSQ0VTX0JZX1VTRVJST0xFICsgJz8nICsgcGFyYW1zLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsb2dpbihiYXNlVXJsOnN0cmluZyx1c2VybmFtZTpzdHJpbmcscGFzc3dvcmQ6c3RyaW5nKXtcclxuICAgICAgICBjb25zdCBsb2cgPSB7XHJcbiAgICAgICAgICAndXNlcm5hbWUnOiB1c2VybmFtZSxcclxuICAgICAgICAgICdwYXNzd29yZCc6IHBhc3N3b3JkXHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuTE9HSU4sbG9nKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbG9nT3V0KGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuTE9HT1VULG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzYXZlSGlzdG9yeShiYXNlVXJsOnN0cmluZyxvcHRpb246YW55KXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYmFzZVVybCArIFNlY3VyaXR5U2VydmljZXMuU0FWRV9ISVNUT1JZLG9wdGlvbik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNoYW5nZVBhc3N3b3JkKGJhc2VVcmw6c3RyaW5nLGNwOmFueSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGJhc2VVcmwgKyBTZWN1cml0eVNlcnZpY2VzLkNIQU5HRV9QQVNTV09SRCxjcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGdldEF1dGhDb2RlKGJhc2VVcmw6c3RyaW5nKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsICsgU2VjdXJpdHlTZXJ2aWNlcy5HRVRfQVVUSF9DT0RFKTtcclxuICAgICAgfVxyXG5cclxuICB9Il19
|
package/fesm2022/asp-lib.mjs
CHANGED
|
@@ -5527,6 +5527,7 @@ class SecurityServices {
|
|
|
5527
5527
|
static { this.COMPANIES_INFO = '/security/secure/getCompaniesInfo'; }
|
|
5528
5528
|
static { this.VERIFY_AUTH = '/security/secure/validatesession'; }
|
|
5529
5529
|
static { this.RESOURCES_BY_USER = '/security/secure/resourcesbyuser'; }
|
|
5530
|
+
static { this.LOGIN = '/security/login'; }
|
|
5530
5531
|
static { this.LOGOUT = '/security/secure/logOut'; }
|
|
5531
5532
|
static { this.SAVE_HISTORY = '/security/secure/savehistory'; }
|
|
5532
5533
|
static { this.VERIFY_RESOURCES_BY_USERROLE = '/security/secure/validateresourcesbyRole'; }
|
|
@@ -5560,6 +5561,13 @@ class SecurityServices {
|
|
|
5560
5561
|
params.append('path', path);
|
|
5561
5562
|
return this.http.get(baseUrl + SecurityServices.VERIFY_RESOURCES_BY_USERROLE + '?' + params.toString());
|
|
5562
5563
|
}
|
|
5564
|
+
login(baseUrl, username, password) {
|
|
5565
|
+
const log = {
|
|
5566
|
+
'username': username,
|
|
5567
|
+
'password': password
|
|
5568
|
+
};
|
|
5569
|
+
return this.http.post(baseUrl + SecurityServices.LOGIN, log);
|
|
5570
|
+
}
|
|
5563
5571
|
logOut(baseUrl) {
|
|
5564
5572
|
return this.http.post(baseUrl + SecurityServices.LOGOUT, null);
|
|
5565
5573
|
}
|
|
@@ -5955,7 +5963,11 @@ class HeaderComponent {
|
|
|
5955
5963
|
this.moduleList = [];
|
|
5956
5964
|
this.auto = false;
|
|
5957
5965
|
this.servicesConfig = {
|
|
5958
|
-
baseUrl: ''
|
|
5966
|
+
baseUrl: '',
|
|
5967
|
+
isDev: false,
|
|
5968
|
+
username: '',
|
|
5969
|
+
password: '',
|
|
5970
|
+
checkRole: false
|
|
5959
5971
|
};
|
|
5960
5972
|
this.isMobile = false;
|
|
5961
5973
|
this.returnClick = new EventEmitter();
|
|
@@ -5996,9 +6008,19 @@ class HeaderComponent {
|
|
|
5996
6008
|
this.isAuth$ = this.isAuth();
|
|
5997
6009
|
this.isAuth$.subscribe(isAuthenticated => {
|
|
5998
6010
|
if (isAuthenticated) {
|
|
5999
|
-
this.
|
|
6000
|
-
|
|
6001
|
-
|
|
6011
|
+
if (this.servicesConfig.isDev) {
|
|
6012
|
+
if (this.servicesConfig.checkRole) {
|
|
6013
|
+
this.checkResource();
|
|
6014
|
+
if (!this.isMobile) {
|
|
6015
|
+
this.checkResourceByRole();
|
|
6016
|
+
}
|
|
6017
|
+
}
|
|
6018
|
+
}
|
|
6019
|
+
else {
|
|
6020
|
+
this.checkResource();
|
|
6021
|
+
if (!this.isMobile) {
|
|
6022
|
+
this.checkResourceByRole();
|
|
6023
|
+
}
|
|
6002
6024
|
}
|
|
6003
6025
|
}
|
|
6004
6026
|
else {
|
|
@@ -6016,6 +6038,23 @@ class HeaderComponent {
|
|
|
6016
6038
|
else {
|
|
6017
6039
|
return false;
|
|
6018
6040
|
}
|
|
6041
|
+
}), catchError(() => {
|
|
6042
|
+
if (this.servicesConfig.isDev) {
|
|
6043
|
+
return this.doLogin();
|
|
6044
|
+
}
|
|
6045
|
+
else {
|
|
6046
|
+
return of(false);
|
|
6047
|
+
}
|
|
6048
|
+
}));
|
|
6049
|
+
}
|
|
6050
|
+
doLogin() {
|
|
6051
|
+
return this.services.login(this.servicesConfig.baseUrl, this.servicesConfig.username, this.servicesConfig.password).pipe(map$1((response) => {
|
|
6052
|
+
if (response.code == 200) {
|
|
6053
|
+
return true;
|
|
6054
|
+
}
|
|
6055
|
+
else {
|
|
6056
|
+
return false;
|
|
6057
|
+
}
|
|
6019
6058
|
}), catchError(() => {
|
|
6020
6059
|
return of(false);
|
|
6021
6060
|
}));
|