@pepperi-addons/ngx-lib 0.4.2-beta.29 → 0.4.2-beta.30
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/core/common/services/session.service.d.ts +0 -2
- package/core/http/services/http.service.d.ts +0 -2
- package/esm2020/core/common/services/session.service.mjs +2 -6
- package/esm2020/core/http/services/http.service.mjs +1 -9
- package/esm2020/signature/signature.component.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +2 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +1 -13
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +1 -13
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,6 @@ export declare class PepSessionService {
|
|
|
4
4
|
private jwtHelper;
|
|
5
5
|
private readonly IDP_TOKEN_KEY;
|
|
6
6
|
private readonly PAPI_BASE_URL_KEY;
|
|
7
|
-
private readonly API_BASE_URL_KEY;
|
|
8
7
|
private readonly WAPI_BASE_URL_KEY;
|
|
9
8
|
constructor(jwtHelper: PepJwtHelperService);
|
|
10
9
|
private getParseToken;
|
|
@@ -14,7 +13,6 @@ export declare class PepSessionService {
|
|
|
14
13
|
getWapiBaseUrl(): string;
|
|
15
14
|
getIdpToken(): string;
|
|
16
15
|
getPapiBaseUrl(): string;
|
|
17
|
-
getApiBaseUrl(): string;
|
|
18
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<PepSessionService, never>;
|
|
19
17
|
static ɵprov: i0.ɵɵInjectableDeclaration<PepSessionService>;
|
|
20
18
|
}
|
|
@@ -23,8 +23,6 @@ export declare class PepHttpService {
|
|
|
23
23
|
postWapiApiCall(url: string, body: any | null, httpOptions?: any): Observable<any>;
|
|
24
24
|
getPapiApiCall(url: string, httpOptions?: any): Observable<any>;
|
|
25
25
|
postPapiApiCall(url: string, body: any | null, httpOptions?: any): Observable<any>;
|
|
26
|
-
getApiCall(url: string, httpOptions?: any): Observable<any>;
|
|
27
|
-
postApiCall(url: string, body: any | null, httpOptions?: any): Observable<any>;
|
|
28
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<PepHttpService, never>;
|
|
29
27
|
static ɵprov: i0.ɵɵInjectableDeclaration<PepHttpService>;
|
|
30
28
|
}
|
|
@@ -7,7 +7,7 @@ export class PepSessionService {
|
|
|
7
7
|
this.jwtHelper = jwtHelper;
|
|
8
8
|
this.IDP_TOKEN_KEY = 'idp_token';
|
|
9
9
|
this.PAPI_BASE_URL_KEY = 'pepperi.baseurl';
|
|
10
|
-
|
|
10
|
+
// private readonly API_BASE_URL_KEY = 'pepperi.publicapibaseurl';
|
|
11
11
|
// private readonly WAPI_TOKEN_KEY = 'auth_token';
|
|
12
12
|
this.WAPI_BASE_URL_KEY = 'serverHostURL'; // pepperi.webapibaseurl
|
|
13
13
|
}
|
|
@@ -60,10 +60,6 @@ export class PepSessionService {
|
|
|
60
60
|
const tokenObj = this.getParseToken();
|
|
61
61
|
return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null;
|
|
62
62
|
}
|
|
63
|
-
getApiBaseUrl() {
|
|
64
|
-
const tokenObj = this.getParseToken();
|
|
65
|
-
return tokenObj ? tokenObj[this.API_BASE_URL_KEY] : null;
|
|
66
|
-
}
|
|
67
63
|
}
|
|
68
64
|
PepSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSessionService, deps: [{ token: i1.PepJwtHelperService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
69
65
|
PepSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSessionService, providedIn: 'root' });
|
|
@@ -73,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
73
69
|
providedIn: 'root',
|
|
74
70
|
}]
|
|
75
71
|
}], ctorParameters: function () { return [{ type: i1.PepJwtHelperService }]; } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLCtFQUErRTtJQUUvRSxZQUFvQixTQUE4QjtRQUE5QixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQVBqQyxrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUM1QixzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN2RCxrRUFBa0U7UUFDbEUsa0RBQWtEO1FBQ2pDLHNCQUFpQixHQUFHLGVBQWUsQ0FBQyxDQUFDLHdCQUF3QjtJQUd6QixDQUFDO0lBRTlDLGFBQWE7UUFDakIsWUFBWTtRQUNaLDJ1REFBMnVEO1FBQzN1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakMsOEJBQThCO1FBRTlCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELHVFQUF1RTtRQUN2RSwwREFBMEQ7UUFFMUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBSSxHQUFXLEVBQUUsTUFBUztRQUMvQixNQUFNLGlCQUFpQixHQUNuQixPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxZQUFZLE1BQU07WUFDbEQsQ0FBQyxDQUFDLE1BQU07WUFDUixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxTQUFTLENBQVUsR0FBVztRQUMxQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QyxJQUFJO1lBQ0EsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xEO1FBQUMsTUFBTTtZQUNKLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDakI7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsZ0RBQWdEO0lBQ2hELDBDQUEwQztJQUMxQyxJQUFJO0lBRUosMENBQTBDO0lBQzFDLDBDQUEwQztJQUMxQyxJQUFJO0lBRUosWUFBWSxDQUFDLEdBQVc7UUFDcEIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMkJBQTJCO0lBQzNCLGtEQUFrRDtJQUNsRCxJQUFJO0lBRUosY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWM7UUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlELENBQUM7OzhHQXhFUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICcuL2p3dC1oZWxwZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFNlc3Npb25TZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IElEUF9UT0tFTl9LRVkgPSAnaWRwX3Rva2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBBUElfQkFTRV9VUkxfS0VZID0gJ3BlcHBlcmkuYmFzZXVybCc7XG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBBUElfQkFTRV9VUkxfS0VZID0gJ3BlcHBlcmkucHVibGljYXBpYmFzZXVybCc7XG4gICAgLy8gcHJpdmF0ZSByZWFkb25seSBXQVBJX1RPS0VOX0tFWSA9ICdhdXRoX3Rva2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFdBUElfQkFTRV9VUkxfS0VZID0gJ3NlcnZlckhvc3RVUkwnOyAvLyBwZXBwZXJpLndlYmFwaWJhc2V1cmxcbiAgICAvLyBwcml2YXRlIHJlYWRvbmx5IFBFUFBFUklfQ09OU1VNRVJfVE9LRU46ICdZWTJwQXd4NkV4bzJMV1hyVWxsRjl4elNmV0Y1M3dxYyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGp3dEhlbHBlcjogUGVwSnd0SGVscGVyU2VydmljZSkge31cblxuICAgIHByaXZhdGUgZ2V0UGFyc2VUb2tlbigpOiBhbnkge1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgLy8gY29uc3QgdG9rZW5UZXN0ID0gXCJleUpoYkdjaU9pSlNVekkxTmlJc0ltdHBaQ0k2SWpSaVlURmpOekptTVRJM05UaGpZekV6TXpnM1pXUTNZVEJpWmpObE9EZzNJaXdpZEhsd0lqb2lTbGRVSW4wLmV5SnVZbVlpT2pFMU9UWTNNalU1Tmprc0ltVjRjQ0k2TVRVNU5qY3lOakkyT1N3aWFYTnpJam9pYUhSMGNITTZMeTlwWkhBdWMyRnVaR0p2ZUM1d1pYQndaWEpwTG1OdmJTSXNJbUYxWkNJNkluQmxjSEJsY21rdWQyVmlZWEJ3TG1Gd2NDNXpZVzVrWW05NExuQmxjSEJsY21rdVkyOXRJaXdpYVdGMElqb3hOVGsyTnpJMU9UWTVMQ0poZEY5b1lYTm9Jam9pU0d0bVJYSjBRMkp6UTNOek9UVktVbTA1Vm1KVGR5SXNJbk5wWkNJNklqSmtOekZpTTJKaU5XVXlOalJpTkRrMlkySm1aRGt6Tm1ZeU5UTmhOV0l6SWl3aWMzVmlJam9pWlRKa1ptUTBNRFl0WkRNNFl5MDBabVl3TFRoaFpHSXRNV1JsTWpJM09ESXpZV0V5SWl3aVlYVjBhRjkwYVcxbElqb3hOVGsyTnpFNE9EQTVMQ0pwWkhBaU9pSnNiMk5oYkNJc0ltNWhiV1VpT2lKa1lXNXBaV3dnWkdGMmFXUnZabVlpTENKbGJXRnBiQ0k2SW1SaGJtbGxiQzVrUUhCbGNIQmxjbWwwWlhOMExtTnZiU0lzSW5CbGNIQmxjbWt1YVdRaU9qZzJPVEF6TURRc0luQmxjSEJsY21rdWRYTmxjblYxYVdRaU9pSmxNbVJtWkRRd05pMWtNemhqTFRSbVpqQXRPR0ZrWWkweFpHVXlNamM0TWpOaFlUSWlMQ0p3WlhCd1pYSnBMbVJwYzNSeWFXSjFkRzl5YVdRaU9qTXdNREV5TXpVeExDSndaWEJ3WlhKcExtUnBjM1J5YVdKMWRHOXlkWFZwWkNJNklqQmlaREJsWkRjNUxUaGxPV1V0TkRSbVlpMDVObVkwTFRobE5UTmxaRGxqWlRneVlpSXNJbkJsY0hCbGNta3VaR0YwWVdObGJuUmxjaUk2SW5OaGJtUmliM2dpTENKd1pYQndaWEpwTG10bFpYQnNiMmRwYmlJNlptRnNjMlVzSW5CbGNIQmxjbWt1YVdSc1pYUnBiV1YzWldJaU9qRXlNQ3dpZFhCa1lYUmxaRjloZENJNk1UVTVOamN3TWpnd01Dd2laMmwyWlc1ZmJtRnRaU0k2SW1SaGJtbGxiQ0lzSW1aaGJXbHNlVjl1WVcxbElqb2laR0YyYVdSdlptWWlMQ0p3WlhCd1pYSnBMbUZ3YVc1MFltRnpaWFZ5YkNJNkltaDBkSEJ6T2k4dmNtVnpkR0Z3YVM1ellXNWtZbTk0TG5CbGNIQmxjbWt1WTI5dElpd2ljR1Z3Y0dWeWFTNTNaV0poY0dsaVlYTmxkWEpzSWpvaWFIUjBjSE02THk5M1pXSmhjR2t1YzJGdVpHSnZlQzV3WlhCd1pYSnBMbU52YlM5V01UWmZOVEF2VjJWaVFYQndYellpTENKd1pYQndaWEpwTG5CMVlteHBZMkZ3YVdKaGMyVjFjbXdpT2lKb2RIUndjem92TDJGd2FTMXpZVzVrWW05NExuQmxjSEJsY21rdVkyOXRJaXdpY0dWd2NHVnlhUzVpWVhObGRYSnNJam9pYUhSMGNITTZMeTl3WVhCcExuTmhibVJpYjNndWNHVndjR1Z5YVM1amIyMHZWakV1TUNJc0luQmxjSEJsY21rdVpXMXdiRzk1WldWMGVYQmxJam94TENKaGJYSWlPbHNpY0hka0lsMTkudE50WlQzQ2w0ZE1tVFFmdG9hTzJLUDVCdkhPbFdHSVAtNUdwSHJBaFpveW1Ca3hCU3hwS3ByUUdxcjBBVHRRbE5IalgzZ0RWMVc2a19hdmFTa3lKZ0RpQjJoY3dyMXROUmlsYXNOdU16TlY5M2d4TEM5T2hfSGRrSU40Y1owaGFoSWNKdmZfMTdQSHBTOHpEX01Sd3ZHR19pNDV3UllKQXRpR1hDaHhDTXpvb2V0aFJzTE9xNVRFd3VOYkUzTXhkalpPcEltR1l5eXRtc2Zkc2RKUldRbjFMUXdRQnQ5NXNzdXlwY1V6QnNWQjM0UDVYdUZ0dGpBZTlkaFR3SElmZ3NQRy1WZGZBV0hfci1oVmU4MzR3S3BLcnBsU1dsQ19NdWNnUzBYNFhQX3RONEN0TG5ITzJ3WEtQc29qcVNUSDJOUXljZnFoNll2VDZyelJEQkVkUUlRXCI7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5nZXRJZHBUb2tlbigpO1xuICAgICAgICAvLyB0b2tlbiA9IHRva2VuIHx8IHRva2VuVGVzdDtcblxuICAgICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XG4gICAgICAgIC8vIGNvbnN0IGV4cGlyYXRpb25EYXRlID0gdGhpcy5qd3RIZWxwZXIuZ2V0VG9rZW5FeHBpcmF0aW9uRGF0ZSh0b2tlbik7XG4gICAgICAgIC8vIGNvbnN0IGlzRXhwaXJlZCA9IHRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcblxuICAgICAgICByZXR1cm4gZGVjb2RlZFRva2VuO1xuICAgIH1cblxuICAgIHNldE9iamVjdDxUPihrZXk6IHN0cmluZywgb2JqZWN0OiBUKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0cmluZ2lmaWVkT2JqZWN0ID1cbiAgICAgICAgICAgIHR5cGVvZiBvYmplY3QgPT09ICdzdHJpbmcnIHx8IG9iamVjdCBpbnN0YW5jZW9mIFN0cmluZ1xuICAgICAgICAgICAgICAgID8gb2JqZWN0XG4gICAgICAgICAgICAgICAgOiBKU09OLnN0cmluZ2lmeShvYmplY3QpO1xuXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBzdHJpbmdpZmllZE9iamVjdC50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBnZXRPYmplY3Q8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGl0ZW0gPyAoSlNPTi5wYXJzZShpdGVtKSBhcyBUKSA6IGl0ZW07XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgcmVzdWx0ID0gaXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLy8gc2V0T2JqZWN0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgLy8gfVxuXG4gICAgLy8gZ2V0T2JqZWN0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgLy8gICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgLy8gfVxuXG4gICAgcmVtb3ZlT2JqZWN0KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgICB9XG5cbiAgICAvLyBnZXRXYXBpVG9rZW4oKTogc3RyaW5nIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZ2V0T2JqZWN0KHRoaXMuV0FQSV9UT0tFTl9LRVkpO1xuICAgIC8vIH1cblxuICAgIGdldFdhcGlCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE9iamVjdCh0aGlzLldBUElfQkFTRV9VUkxfS0VZKTtcbiAgICB9XG5cbiAgICBnZXRJZHBUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPYmplY3QodGhpcy5JRFBfVE9LRU5fS0VZKTtcbiAgICB9XG5cbiAgICBnZXRQYXBpQmFzZVVybCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0b2tlbk9iaiA9IHRoaXMuZ2V0UGFyc2VUb2tlbigpO1xuICAgICAgICByZXR1cm4gdG9rZW5PYmogPyB0b2tlbk9ialt0aGlzLlBBUElfQkFTRV9VUkxfS0VZXSA6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gZ2V0QXBpQmFzZVVybCgpOiBzdHJpbmcge1xuICAgIC8vICAgICBjb25zdCB0b2tlbk9iaiA9IHRoaXMuZ2V0UGFyc2VUb2tlbigpO1xuICAgIC8vICAgICByZXR1cm4gdG9rZW5PYmogPyB0b2tlbk9ialt0aGlzLkFQSV9CQVNFX1VSTF9LRVldIDogbnVsbDtcbiAgICAvLyB9XG59XG4iXX0=
|
|
@@ -143,14 +143,6 @@ export class PepHttpService {
|
|
|
143
143
|
const papiBaseUrl = this.sessionService.getPapiBaseUrl();
|
|
144
144
|
return this.postHttpCall(`${papiBaseUrl}${url}`, body, httpOptions);
|
|
145
145
|
}
|
|
146
|
-
getApiCall(url, httpOptions = {}) {
|
|
147
|
-
const apiBaseUrl = this.sessionService.getApiBaseUrl();
|
|
148
|
-
return this.getHttpCall(`${apiBaseUrl}${url}`, httpOptions);
|
|
149
|
-
}
|
|
150
|
-
postApiCall(url, body, httpOptions = {}) {
|
|
151
|
-
const apiBaseUrl = this.sessionService.getApiBaseUrl();
|
|
152
|
-
return this.postHttpCall(`${apiBaseUrl}${url}`, body, httpOptions);
|
|
153
|
-
}
|
|
154
146
|
}
|
|
155
147
|
PepHttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepHttpService, deps: [{ token: i1.PepSessionService }, { token: i2.PepCookieService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
156
148
|
PepHttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepHttpService, providedIn: 'root' });
|
|
@@ -160,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
160
152
|
providedIn: 'root',
|
|
161
153
|
}]
|
|
162
154
|
}], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepCookieService }, { type: i3.HttpClient }]; } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9odHRwL3NlcnZpY2VzL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFJSCxXQUFXLEdBQ2QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBUyxVQUFVLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPeEQsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFDWSxjQUFpQyxFQUNqQyxhQUErQixFQUMvQixJQUFnQjtRQUZoQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFSWCxnQkFBVyxHQUFHLGVBQWUsQ0FBQztRQUM5Qix5QkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUM5Qix5QkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztJQU0zRCxDQUFDO0lBRUksV0FBVyxDQUFDLFFBQTJCO1FBQzNDLElBQUksWUFBWSxHQUFHLGdCQUFnQixDQUFDO1FBQ3BDLElBQUksUUFBUSxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDdEMscUJBQXFCO1lBQ3JCLFlBQVksR0FBRyxVQUFVLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDckQ7YUFBTTtZQUNILHFCQUFxQjtZQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVP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QyxhQUFhLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxVQUFVLEdBQUcsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVcsQ0FDUCxHQUFXLEVBQ1gsSUFBZ0IsRUFDaEIsY0FBbUIsRUFBRTtRQUVyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkUsQ0FBQzs7MkdBak1RLGNBQWM7K0dBQWQsY0FBYyxjQUZYLE1BQU07MkZBRVQsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEh0dHBDbGllbnQsXG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXG4gICAgSHR0cFBhcmFtcyxcbiAgICBIdHRwSGVhZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgcmV0cnksIGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBlcFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBQZXBDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL2Nvb2tpZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUGVwSHR0cFNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQVVUSF9IRUFERVIgPSAnQXV0aG9yaXphdGlvbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBQRVBQRVJJX1RPS0VOX0hFQURFUiA9ICdQZXBwZXJpU2Vzc2lvblRva2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFdBUElfVE9LRU5fS0VZID0gJ2F1dGhfdG9rZW4nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUEVQUEVSSV9UT0tFTl9DT09LSUUgPSAnUGVwcGVyaVVzZXJTZXR0aW5ncyc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogUGVwU2Vzc2lvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29va2llU2VydmljZTogUGVwQ29va2llU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICAgKSB7fVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpOiBPYnNlcnZhYmxlPG5ldmVyPiB7XG4gICAgICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnVW5rbm93biBlcnJvciEnO1xuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3IgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7XG4gICAgICAgICAgICAvLyBDbGllbnQtc2lkZSBlcnJvcnNcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGBFcnJvcjogJHtyZXNwb25zZS5lcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTZXJ2ZXItc2lkZSBlcnJvcnNcbiAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZXJ2ZXJFcnJvck1lc3NhZ2UocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlPy5lcnJvcj8uZmF1bHQ/LmZhdWx0c3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7cmVzcG9uc2UuZXJyb3IuZmF1bHQuZmF1bHRzdHJpbmd9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAocmVzcG9uc2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSA0MDQ6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBOb3QgRm91bmQ6ICR7cmVzcG9uc2UubWVzc2FnZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIDQwMzoge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYEFjY2VzcyBEZW5pZWQ6ICR7cmVzcG9uc2UubWVzc2FnZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIDUwMDoge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYEludGVybmFsIFNlcnZlciBFcnJvcjogJHtyZXNwb25zZS5tZXNzYWdlfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBVbmtub3duIFNlcnZlciBFcnJvclxcbkVycm9yIENvZGU6ICR7cmVzcG9uc2Uuc3RhdHVzfVxcbk1lc3NhZ2U6ICR7cmVzcG9uc2UubWVzc2FnZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFkZCBhdXRob3JpemF0aW9uIHRva2VuIGlmIHRoZSB0b2tlbiBleGlzdC5cbiAgICBwcml2YXRlIGFkZEF1dGhvcml6YXRpb25Ub2tlbihodHRwT3B0aW9uczogYW55ID0ge30pOiBhbnkge1xuICAgICAgICBpZiAoIWh0dHBPcHRpb25zLmhlYWRlcnMuaGFzKHRoaXMuQVVUSF9IRUFERVIpKSB7XG4gICAgICAgICAgICBjb25zdCBpZHBUb2tlbiA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0SWRwVG9rZW4oKTtcblxuICAgICAgICAgICAgaWYgKGlkcFRva2VuKSB7XG4gICAgICAgICAgICAgICAgaHR0cE9wdGlvbnMuaGVhZGVycyA9IGh0dHBPcHRpb25zLmhlYWRlcnMuc2V0KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLkFVVEhfSEVBREVSLFxuICAgICAgICAgICAgICAgICAgICBgQmVhcmVyICR7aWRwVG9rZW59YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaHR0cE9wdGlvbnM7XG4gICAgfVxuXG4gICAgLy8gQWRkIHdlYiBhcGkgdG9rZW4gaWYgY2FsbGluZyB0byB3YXBpIGRvbWFpbi5cbiAgICBwcml2YXRlIGFkZFdlYkFwaVRva2VuKHVybDogc3RyaW5nLCBodHRwT3B0aW9uczogYW55ID0ge30pOiBhbnkge1xuICAgICAgICBpZiAoIWh0dHBPcHRpb25zLmhlYWRlcnMuaGFzKHRoaXMuUEVQUEVSSV9UT0tFTl9IRUFERVIpKSB7XG4gICAgICAgICAgICBjb25zdCB3YXBpQmFzZVVybCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0V2FwaUJhc2VVcmwoKTtcblxuICAgICAgICAgICAgaWYgKHdhcGlCYXNlVXJsICYmIHVybC5tYXRjaChuZXcgUmVnRXhwKHdhcGlCYXNlVXJsLCAnZycpKSkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86XG4gICAgICAgICAgICAgICAgLy8gY29uc3Qgd2ViQXBpVG9rZW4gPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFdhcGlUb2tlbigpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVzZXJTZXR0aW5nQ29va2llID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUEVQUEVSSV9UT0tFTl9DT09LSUVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2ViQXBpVG9rZW4gPSBKU09OLnBhcnNlKHVzZXJTZXR0aW5nQ29va2llKS52YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pdGVtc1t0aGlzLldBUElfVE9LRU5fS0VZXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdlYkFwaVRva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwT3B0aW9ucy5oZWFkZXJzID0gaHR0cE9wdGlvbnMuaGVhZGVycy5zZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5QRVBQRVJJX1RPS0VOX0hFQURFUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJBcGlUb2tlblxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3RoaW5nLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBodHRwT3B0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRIZWFkZXJPcHRpb25zKHVybDogc3RyaW5nLCBodHRwT3B0aW9uczogYW55ID0ge30pOiBhbnkge1xuICAgICAgICBpZiAoIWh0dHBPcHRpb25zLmhlYWRlcnMpIHtcbiAgICAgICAgICAgIGh0dHBPcHRpb25zLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBjb250ZW50IHR5cGVcbiAgICAgICAgaWYgKCFodHRwT3B0aW9ucy5oZWFkZXJzLmhhcygnQ29udGVudC1UeXBlJykpIHtcbiAgICAgICAgICAgIGh0dHBPcHRpb25zLmhlYWRlcnMgPSBodHRwT3B0aW9ucy5oZWFkZXJzLnNldChcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJyxcbiAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBodHRwT3B0aW9ucyA9IHRoaXMuYWRkQXV0aG9yaXphdGlvblRva2VuKGh0dHBPcHRpb25zKTtcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB0aGlzLmFkZFdlYkFwaVRva2VuKHVybCwgaHR0cE9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiBodHRwT3B0aW9ucztcbiAgICB9XG5cbiAgICAvLyBnZXRUZXh0RmlsZShmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gICAgIC8vIFRoZSBPYnNlcnZhYmxlIHJldHVybmVkIGJ5IGdldCgpIGlzIG9mIHR5cGUgT2JzZXJ2YWJsZTxzdHJpbmc+XG4gICAgLy8gICAgIC8vIGJlY2F1c2UgYSB0ZXh0IHJlc3BvbnNlIHdhcyBzcGVjaWZpZWQuXG4gICAgLy8gICAgIC8vIFRoZXJlJ3Mgbm8gbmVlZCB0byBwYXNzIGEgPHN0cmluZz4gdHlwZSBwYXJhbWV0ZXIgdG8gZ2V0KCkuXG4gICAgLy8gICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KGZpbGVuYW1lLCB7cmVzcG9uc2VUeXBlOiAndGV4dCd9KVxuICAgIC8vICAgICAvLyAgICAgLnBpcGUoXG4gICAgLy8gICAgIC8vICAgICAgICAgdGFwKCAvLyBMb2cgdGhlIHJlc3VsdCBvciBlcnJvclxuICAgIC8vICAgICAvLyAgICAgICAgIGRhdGEgPT4gdGhpcy5sb2coZmlsZW5hbWUsIGRhdGEpLFxuICAgIC8vICAgICAvLyAgICAgICAgIGVycm9yID0+IHRoaXMubG9nRXJyb3IoZmlsZW5hbWUsIGVycm9yKVxuICAgIC8vICAgICAvLyAgICAgICAgIClcbiAgICAvLyAgICAgLy8gKTtcbiAgICAvLyB9XG5cbiAgICBnZXRIdHRwQ2FsbCh1cmw6IHN0cmluZywgaHR0cE9wdGlvbnM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB0aGlzLnNldERlZmF1bHRIZWFkZXJPcHRpb25zKHVybCwgaHR0cE9wdGlvbnMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgICAgIC5nZXQodXJsLCBodHRwT3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpKSk7XG4gICAgICAgIC8vICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAvLyAgICAgICAgIChyZXMpID0+IGNvbnNvbGUubG9nKCcnKSxcbiAgICAgICAgLy8gICAgICAgICAoZXJyb3IpID0+IGNvbnNvbGUubG9nKCcnKSxcbiAgICAgICAgLy8gICAgICAgICAoKSA9PiB7fVxuICAgICAgICAvLyApO1xuICAgIH1cblxuICAgIHBvc3RIdHRwQ2FsbChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIGJvZHk6IGFueSB8IG51bGwsXG4gICAgICAgIGh0dHBPcHRpb25zOiBhbnkgPSB7fVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGh0dHBPcHRpb25zID0gdGhpcy5zZXREZWZhdWx0SGVhZGVyT3B0aW9ucyh1cmwsIGh0dHBPcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAucG9zdCh1cmwsIGJvZHksIGh0dHBPcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcykpKTtcbiAgICAgICAgLy8gICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIC8vICAgICAgICAgKHJlcykgPT4gY29uc29sZS5sb2coJycpLFxuICAgICAgICAvLyAgICAgICAgIChlcnJvcikgPT4gY29uc29sZS5sb2coJycpLFxuICAgICAgICAvLyAgICAgICAgICgpID0+IHt9XG4gICAgICAgIC8vICk7XG4gICAgfVxuXG4gICAgZ2V0V2FwaUFwaUNhbGwodXJsOiBzdHJpbmcsIGh0dHBPcHRpb25zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHdhcGlCYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRXYXBpQmFzZVVybCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIdHRwQ2FsbChgJHt3YXBpQmFzZVVybH0ke3VybH1gLCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcG9zdFdhcGlBcGlDYWxsKFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgYm9keTogYW55IHwgbnVsbCxcbiAgICAgICAgaHR0cE9wdGlvbnM6IGFueSA9IHt9XG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgd2FwaUJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFdhcGlCYXNlVXJsKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RIdHRwQ2FsbChgJHt3YXBpQmFzZVVybH0ke3VybH1gLCBib2R5LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZ2V0UGFwaUFwaUNhbGwodXJsOiBzdHJpbmcsIGh0dHBPcHRpb25zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRQYXBpQmFzZVVybCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0ke3VybH1gLCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcG9zdFBhcGlBcGlDYWxsKFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgYm9keTogYW55IHwgbnVsbCxcbiAgICAgICAgaHR0cE9wdGlvbnM6IGFueSA9IHt9XG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGFwaUJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFBhcGlCYXNlVXJsKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnBvc3RIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0ke3VybH1gLCBib2R5LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgZ2V0QXBpQ2FsbCh1cmw6IHN0cmluZywgaHR0cE9wdGlvbnM6IGFueSA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgYXBpQmFzZVVybCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0QXBpQmFzZVVybCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRIdHRwQ2FsbChgJHthcGlCYXNlVXJsfSR7dXJsfWAsIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwb3N0QXBpQ2FsbChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIGJvZHk6IGFueSB8IG51bGwsXG4gICAgICAgIGh0dHBPcHRpb25zOiBhbnkgPSB7fVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IGFwaUJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldEFwaUJhc2VVcmwoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zdEh0dHBDYWxsKGAke2FwaUJhc2VVcmx9JHt1cmx9YCwgYm9keSwgaHR0cE9wdGlvbnMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zcmMvY29yZS9odHRwL3NlcnZpY2VzL2h0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFJSCxXQUFXLEdBQ2QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBUyxVQUFVLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPeEQsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFDWSxjQUFpQyxFQUNqQyxhQUErQixFQUMvQixJQUFnQjtRQUZoQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQVk7UUFSWCxnQkFBVyxHQUFHLGVBQWUsQ0FBQztRQUM5Qix5QkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztRQUM3QyxtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUM5Qix5QkFBb0IsR0FBRyxxQkFBcUIsQ0FBQztJQU0zRCxDQUFDO0lBRUksV0FBVyxDQUFDLFFBQTJCO1FBQzNDLElBQUksWUFBWSxHQUFHLGdCQUFnQixDQUFDO1FBQ3BDLElBQUksUUFBUSxDQUFDLEtBQUssWUFBWSxVQUFVLEVBQUU7WUFDdEMscUJBQXFCO1lBQ3JCLFlBQVksR0FBRyxVQUFVLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDckQ7YUFBTTtZQUNILHFCQUFxQjtZQUNyQixZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVP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QUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBIdHRwQ2xpZW50LFxuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBQYXJhbXMsXG4gICAgSHR0cEhlYWRlcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRocm93RXJyb3IsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJldHJ5LCBjYXRjaEVycm9yLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQZXBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwQ29va2llU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9jb29raWUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEh0dHBTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFVVEhfSEVBREVSID0gJ0F1dGhvcml6YXRpb24nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUEVQUEVSSV9UT0tFTl9IRUFERVIgPSAnUGVwcGVyaVNlc3Npb25Ub2tlbic7XG4gICAgcHJpdmF0ZSByZWFkb25seSBXQVBJX1RPS0VOX0tFWSA9ICdhdXRoX3Rva2VuJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IFBFUFBFUklfVE9LRU5fQ09PS0lFID0gJ1BlcHBlcmlVc2VyU2V0dGluZ3MnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IFBlcENvb2tpZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxuICAgICkge31cblxuICAgIHByaXZhdGUgaGFuZGxlRXJyb3IocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJ1Vua25vd24gZXJyb3IhJztcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xuICAgICAgICAgICAgLy8gQ2xpZW50LXNpZGUgZXJyb3JzXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgRXJyb3I6ICR7cmVzcG9uc2UuZXJyb3IubWVzc2FnZX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gU2VydmVyLXNpZGUgZXJyb3JzXG4gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLmdldFNlcnZlckVycm9yTWVzc2FnZShyZXNwb25zZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChyZXNwb25zZT8uZXJyb3I/LmZhdWx0Py5mYXVsdHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIGAke3Jlc3BvbnNlLmVycm9yLmZhdWx0LmZhdWx0c3RyaW5nfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1cykge1xuICAgICAgICAgICAgICAgIGNhc2UgNDA0OiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgTm90IEZvdW5kOiAke3Jlc3BvbnNlLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSA0MDM6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBBY2Nlc3MgRGVuaWVkOiAke3Jlc3BvbnNlLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSA1MDA6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3I6ICR7cmVzcG9uc2UubWVzc2FnZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgVW5rbm93biBTZXJ2ZXIgRXJyb3JcXG5FcnJvciBDb2RlOiAke3Jlc3BvbnNlLnN0YXR1c31cXG5NZXNzYWdlOiAke3Jlc3BvbnNlLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZGQgYXV0aG9yaXphdGlvbiB0b2tlbiBpZiB0aGUgdG9rZW4gZXhpc3QuXG4gICAgcHJpdmF0ZSBhZGRBdXRob3JpemF0aW9uVG9rZW4oaHR0cE9wdGlvbnM6IGFueSA9IHt9KTogYW55IHtcbiAgICAgICAgaWYgKCFodHRwT3B0aW9ucy5oZWFkZXJzLmhhcyh0aGlzLkFVVEhfSEVBREVSKSkge1xuICAgICAgICAgICAgY29uc3QgaWRwVG9rZW4gPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldElkcFRva2VuKCk7XG5cbiAgICAgICAgICAgIGlmIChpZHBUb2tlbikge1xuICAgICAgICAgICAgICAgIGh0dHBPcHRpb25zLmhlYWRlcnMgPSBodHRwT3B0aW9ucy5oZWFkZXJzLnNldChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5BVVRIX0hFQURFUixcbiAgICAgICAgICAgICAgICAgICAgYEJlYXJlciAke2lkcFRva2VufWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGh0dHBPcHRpb25zO1xuICAgIH1cblxuICAgIC8vIEFkZCB3ZWIgYXBpIHRva2VuIGlmIGNhbGxpbmcgdG8gd2FwaSBkb21haW4uXG4gICAgcHJpdmF0ZSBhZGRXZWJBcGlUb2tlbih1cmw6IHN0cmluZywgaHR0cE9wdGlvbnM6IGFueSA9IHt9KTogYW55IHtcbiAgICAgICAgaWYgKCFodHRwT3B0aW9ucy5oZWFkZXJzLmhhcyh0aGlzLlBFUFBFUklfVE9LRU5fSEVBREVSKSkge1xuICAgICAgICAgICAgY29uc3Qgd2FwaUJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldFdhcGlCYXNlVXJsKCk7XG5cbiAgICAgICAgICAgIGlmICh3YXBpQmFzZVVybCAmJiB1cmwubWF0Y2gobmV3IFJlZ0V4cCh3YXBpQmFzZVVybCwgJ2cnKSkpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOlxuICAgICAgICAgICAgICAgIC8vIGNvbnN0IHdlYkFwaVRva2VuID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRXYXBpVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VyU2V0dGluZ0Nvb2tpZSA9IHRoaXMuY29va2llU2VydmljZS5nZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLlBFUFBFUklfVE9LRU5fQ09PS0lFXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlYkFwaVRva2VuID0gSlNPTi5wYXJzZSh1c2VyU2V0dGluZ0Nvb2tpZSkudmFsdWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbXNbdGhpcy5XQVBJX1RPS0VOX0tFWV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh3ZWJBcGlUb2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cE9wdGlvbnMuaGVhZGVycyA9IGh0dHBPcHRpb25zLmhlYWRlcnMuc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuUEVQUEVSSV9UT0tFTl9IRUFERVIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViQXBpVG9rZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90aGluZy5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaHR0cE9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0SGVhZGVyT3B0aW9ucyh1cmw6IHN0cmluZywgaHR0cE9wdGlvbnM6IGFueSA9IHt9KTogYW55IHtcbiAgICAgICAgaWYgKCFodHRwT3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICAgICAgICBodHRwT3B0aW9ucy5oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY29udGVudCB0eXBlXG4gICAgICAgIGlmICghaHR0cE9wdGlvbnMuaGVhZGVycy5oYXMoJ0NvbnRlbnQtVHlwZScpKSB7XG4gICAgICAgICAgICBodHRwT3B0aW9ucy5oZWFkZXJzID0gaHR0cE9wdGlvbnMuaGVhZGVycy5zZXQoXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZScsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaHR0cE9wdGlvbnMgPSB0aGlzLmFkZEF1dGhvcml6YXRpb25Ub2tlbihodHRwT3B0aW9ucyk7XG4gICAgICAgIGh0dHBPcHRpb25zID0gdGhpcy5hZGRXZWJBcGlUb2tlbih1cmwsIGh0dHBPcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gaHR0cE9wdGlvbnM7XG4gICAgfVxuXG4gICAgLy8gZ2V0VGV4dEZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vICAgICAvLyBUaGUgT2JzZXJ2YWJsZSByZXR1cm5lZCBieSBnZXQoKSBpcyBvZiB0eXBlIE9ic2VydmFibGU8c3RyaW5nPlxuICAgIC8vICAgICAvLyBiZWNhdXNlIGEgdGV4dCByZXNwb25zZSB3YXMgc3BlY2lmaWVkLlxuICAgIC8vICAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gcGFzcyBhIDxzdHJpbmc+IHR5cGUgcGFyYW1ldGVyIHRvIGdldCgpLlxuICAgIC8vICAgICAvLyByZXR1cm4gdGhpcy5odHRwLmdldChmaWxlbmFtZSwge3Jlc3BvbnNlVHlwZTogJ3RleHQnfSlcbiAgICAvLyAgICAgLy8gICAgIC5waXBlKFxuICAgIC8vICAgICAvLyAgICAgICAgIHRhcCggLy8gTG9nIHRoZSByZXN1bHQgb3IgZXJyb3JcbiAgICAvLyAgICAgLy8gICAgICAgICBkYXRhID0+IHRoaXMubG9nKGZpbGVuYW1lLCBkYXRhKSxcbiAgICAvLyAgICAgLy8gICAgICAgICBlcnJvciA9PiB0aGlzLmxvZ0Vycm9yKGZpbGVuYW1lLCBlcnJvcilcbiAgICAvLyAgICAgLy8gICAgICAgICApXG4gICAgLy8gICAgIC8vICk7XG4gICAgLy8gfVxuXG4gICAgZ2V0SHR0cENhbGwodXJsOiBzdHJpbmcsIGh0dHBPcHRpb25zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGh0dHBPcHRpb25zID0gdGhpcy5zZXREZWZhdWx0SGVhZGVyT3B0aW9ucyh1cmwsIGh0dHBPcHRpb25zKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHVybCwgaHR0cE9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IuYmluZCh0aGlzKSkpO1xuICAgICAgICAvLyAgICAgLnN1YnNjcmliZShcbiAgICAgICAgLy8gICAgICAgICAocmVzKSA9PiBjb25zb2xlLmxvZygnJyksXG4gICAgICAgIC8vICAgICAgICAgKGVycm9yKSA9PiBjb25zb2xlLmxvZygnJyksXG4gICAgICAgIC8vICAgICAgICAgKCkgPT4ge31cbiAgICAgICAgLy8gKTtcbiAgICB9XG5cbiAgICBwb3N0SHR0cENhbGwoXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBib2R5OiBhbnkgfCBudWxsLFxuICAgICAgICBodHRwT3B0aW9uczogYW55ID0ge31cbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBodHRwT3B0aW9ucyA9IHRoaXMuc2V0RGVmYXVsdEhlYWRlck9wdGlvbnModXJsLCBodHRwT3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgICAgICAgLnBvc3QodXJsLCBib2R5LCBodHRwT3B0aW9ucylcbiAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvci5iaW5kKHRoaXMpKSk7XG4gICAgICAgIC8vICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAvLyAgICAgICAgIChyZXMpID0+IGNvbnNvbGUubG9nKCcnKSxcbiAgICAgICAgLy8gICAgICAgICAoZXJyb3IpID0+IGNvbnNvbGUubG9nKCcnKSxcbiAgICAgICAgLy8gICAgICAgICAoKSA9PiB7fVxuICAgICAgICAvLyApO1xuICAgIH1cblxuICAgIGdldFdhcGlBcGlDYWxsKHVybDogc3RyaW5nLCBodHRwT3B0aW9uczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB3YXBpQmFzZVVybCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0V2FwaUJhc2VVcmwoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SHR0cENhbGwoYCR7d2FwaUJhc2VVcmx9JHt1cmx9YCwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHBvc3RXYXBpQXBpQ2FsbChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIGJvZHk6IGFueSB8IG51bGwsXG4gICAgICAgIGh0dHBPcHRpb25zOiBhbnkgPSB7fVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHdhcGlCYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRXYXBpQmFzZVVybCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5wb3N0SHR0cENhbGwoYCR7d2FwaUJhc2VVcmx9JHt1cmx9YCwgYm9keSwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGdldFBhcGlBcGlDYWxsKHVybDogc3RyaW5nLCBodHRwT3B0aW9uczogYW55ID0ge30pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0UGFwaUJhc2VVcmwoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9JHt1cmx9YCwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHBvc3RQYXBpQXBpQ2FsbChcbiAgICAgICAgdXJsOiBzdHJpbmcsXG4gICAgICAgIGJvZHk6IGFueSB8IG51bGwsXG4gICAgICAgIGh0dHBPcHRpb25zOiBhbnkgPSB7fVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHBhcGlCYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRQYXBpQmFzZVVybCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5wb3N0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9JHt1cmx9YCwgYm9keSwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIGdldEFwaUNhbGwodXJsOiBzdHJpbmcsIGh0dHBPcHRpb25zOiBhbnkgPSB7fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gICAgIGNvbnN0IGFwaUJhc2VVcmwgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldEFwaUJhc2VVcmwoKTtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZ2V0SHR0cENhbGwoYCR7YXBpQmFzZVVybH0ke3VybH1gLCBodHRwT3B0aW9ucyk7XG4gICAgLy8gfVxuXG4gICAgLy8gcG9zdEFwaUNhbGwoXG4gICAgLy8gICAgIHVybDogc3RyaW5nLFxuICAgIC8vICAgICBib2R5OiBhbnkgfCBudWxsLFxuICAgIC8vICAgICBodHRwT3B0aW9uczogYW55ID0ge31cbiAgICAvLyApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vICAgICBjb25zdCBhcGlCYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRBcGlCYXNlVXJsKCk7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLnBvc3RIdHRwQ2FsbChgJHthcGlCYXNlVXJsfSR7dXJsfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcbiAgICAvLyB9XG59XG4iXX0=
|
|
@@ -125,7 +125,7 @@ export class PepSignatureComponent {
|
|
|
125
125
|
if (this.standAlone) {
|
|
126
126
|
this.setDefaultForm();
|
|
127
127
|
}
|
|
128
|
-
if (changes.src && changes.src.currentValue
|
|
128
|
+
if (changes.src && changes.src.currentValue?.length > 0) {
|
|
129
129
|
// Empty dataURI if there is change in the src.
|
|
130
130
|
this.dataURI = null;
|
|
131
131
|
// For clean the cache.
|
|
@@ -272,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
272
272
|
type: ViewChild,
|
|
273
273
|
args: ['signaturePopupPad', { read: TemplateRef }]
|
|
274
274
|
}] } });
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc2lnbmF0dXJlL3NpZ25hdHVyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosdUJBQXVCLEVBSXZCLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLDRCQUE0QixFQUM1QixpQkFBaUIsR0FFcEIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFVakMsTUFBTSxPQUFPLHFCQUFxQjtJQTZGOUIsWUFDWSxhQUErQixFQUMvQixvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0IsRUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsT0FBbUI7UUFMbkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWxHdEIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUEyQiw0QkFBNEIsQ0FBQztRQUVuRSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBVVosaUJB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QVk7c0JBRFgsTUFBTTtnQkFHb0IsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUV6QixpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBPbkNoYW5nZXMsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2lnbmF0dXJlUGFkIH0gZnJvbSAnbmd4LXNpZ25hdHVyZXBhZC9zaWduYXR1cmUtcGFkJztcbmltcG9ydCB7XG4gICAgUGVwRmlsZVNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgUGVwU2lnbmF0dXJlRmllbGQsXG4gICAgSVBlcEZpZWxkQ2xpY2tFdmVudCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1zaWduYXR1cmUnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZ25hdHVyZS5jb21wb25lbnQuc2NzcycsICcuL3NpZ25hdHVyZS5jb21wb25lbnQudGhlbWUuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaWduYXR1cmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBTaWduYXR1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSBzcmMgPSAnJztcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIG1hbmRhdG9yeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDtcblxuICAgIHByaXZhdGUgX3Jvd1NwYW4gPSAxO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJvd1NwYW4odmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcm93U3BhbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldEZpZWxkSGVpZ2h0KCk7XG4gICAgfVxuICAgIGdldCByb3dTcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dTcGFuO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNpZ25hdHVyZVVSTCA9ICcnO1xuICAgIC8vIEBJbnB1dCgpIGluRGlhbG9nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF92aXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ3NpZ25hdHVyZSc7XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRUeXBlKHZhbHVlOiBQZXBMYXlvdXRUeXBlKSB7XG4gICAgICAgIHRoaXMuX2xheW91dFR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgbGF5b3V0VHlwZSgpOiBQZXBMYXlvdXRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dFR5cGU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIC8vIFRvIGtub3cgaWYgaGFuZGxlIGFjdGlvbnMgb3IganVzdCByYWlzZSB0aGVtIGFzIG91dHB1dFxuICAgIEBJbnB1dCgpIGhhbmRsZUFjdGlvbnMgPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY2hvb3NlRmlsZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpOyAvLyBUaGlzIGV2ZW50IHdpbGwgZmlyZWQgb25seSB3aGVuIGhhbmRsZUFjdGlvbnMgSW5wdXQgaXMgZmFsc2VcbiAgICBcbiAgICBAT3V0cHV0KClcbiAgICBmaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG4gICAgXG4gICAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlUGFkJykgc2lnbmF0dXJlUGFkOiBTaWduYXR1cmVQYWQ7XG4gICAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlUG9wdXBQYWQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgc2lnbmF0dXJlUG9wdXBQYWQ6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PjtcblxuICAgIGZpZWxkSGVpZ2h0ID0gJyc7XG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuICAgIGRhdGFVUkkgPSBudWxsO1xuICAgIHNob3dBY3Rpb25CdG4gPSB0cnVlO1xuXG4gICAgcHVibGljIGlzVmlzaWJsZU1vZGFsID0gZmFsc2U7XG4gICAgYWNjZXB0U2lnbmF0dXJlVHlwZSA9ICdwbmcnO1xuXG4gICAgcHVibGljIHNpZ25hdHVyZVBhZE9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgLy8gcGFzc2VkIHRocm91Z2ggdG8gc3ppbWVrL3NpZ25hdHVyZV9wYWQgY29uc3RydWN0b3JcbiAgICAgICAgbWluV2lkdGg6IDIsXG4gICAgICAgIGNhbnZhc1dpZHRoOiA1MDAsXG4gICAgICAgIGNhbnZhc0hlaWdodDogMzAwLFxuICAgICAgICBwZW5Db2xvcjogJ3JnYigxNTEsIDE1MSwgMTUxKScsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IFBlcERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICAgKSB7IH1cblxuICAgIHByaXZhdGUgc2V0RmllbGRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRIZWlnaHQgPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZUZpZWxkSGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy5sYXlvdXRUeXBlLFxuICAgICAgICAgICAgdGhpcy5yb3dTcGFuLFxuICAgICAgICAgICAgdGhpcy5zdGFuZEFsb25lXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGVwRmllbGQgPSBuZXcgUGVwU2lnbmF0dXJlRmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNyYyxcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5TaWduYXRvcmVEbGcoc3JjID0gJycpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9uQnRuID1cbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlVVJMICYmIHRoaXMuc2lnbmF0dXJlVVJMICE9PSAnJyA/IGZhbHNlIDogdHJ1ZTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKHRoaXMuc2lnbmF0dXJlUG9wdXBQYWQpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFmdGVyRGlhbG9nT3BlbmVkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWZ0ZXJEaWFsb2dPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNpZ25hdHVyZVVSTCAmJiB0aGlzLnNpZ25hdHVyZVVSTCAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLmZyb21EYXRhVVJMKHRoaXMuc2lnbmF0dXJlVVJMKTtcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLm9mZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldEZpZWxkSGVpZ2h0KCk7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLnJlbmRlclRpdGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLlNUQU5EX0FMT05FX0ZJRUxEX05PX1NQQUNJTkdfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjICYmIGNoYW5nZXMuc3JjLmN1cnJlbnRWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBFbXB0eSBkYXRhVVJJIGlmIHRoZXJlIGlzIGNoYW5nZSBpbiB0aGUgc3JjLlxuICAgICAgICAgICAgdGhpcy5kYXRhVVJJID0gbnVsbDtcblxuICAgICAgICAgICAgLy8gRm9yIGNsZWFuIHRoZSBjYWNoZS5cbiAgICAgICAgICAgIC8vIHRoaXMuc3JjID0gdGhpcy5zcmMgPyB0aGlzLnNyYyArICc/dD0nICsgbmV3IERhdGUoKS50b1RpbWVTdHJpbmcoKSA6ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgZHJhd0NvbXBsZXRlKCk6IHZvaWQge1xuICAgICAgICAvLyB3aWxsIGJlIG5vdGlmaWVkIG9mIHN6aW1lay9zaWduYXR1cmVfcGFkJ3Mgb25FbmQgZXZlbnRcbiAgICB9XG5cbiAgICBkcmF3U3RhcnQoKTogdm9pZCB7XG4gICAgICAgIC8vIHdpbGwgYmUgbm90aWZpZWQgb2Ygc3ppbWVrL3NpZ25hdHVyZV9wYWQncyBvbkJlZ2luIGV2ZW50XG4gICAgfVxuXG4gICAgb3BlblNpZ25Nb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlQWN0aW9ucykge1xuICAgICAgICAgICAgLy8gSWYgdGhlIHNpZ25hdHVyZSBpcyBub3QgZW1wdHkgb3BlbiBpdCBpbiBpbWFnZSB2aWV3ZXIuXG4gICAgICAgICAgICAvLyEgUmVtb3ZlIHRoaXMgYGlmYCB0byBhbHdheXMgb3BlbiBzaWduYXR1cmUgaW4gbW9kYWwgXG4gICAgICAgICAgICBpZiAodGhpcy5zdGFuZEFsb25lICYmIHRoaXMuZGF0YVVSSSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVTdHJBcnIgPSB0aGlzLmRhdGFVUkkuZmlsZVN0ci5zcGxpdCgnOycpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGZpbGVTdHJBcnIubGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpbiA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gZmlsZVN0ckFyclswXS5zcGxpdCgnOicpWzFdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNlNjQgPSBmaWxlU3RyQXJyWzFdLnNwbGl0KCcsJylbMV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSB0aGlzLmZpbGVTZXJ2aWNlLmNvbnZlcnRGcm9tYjY0dG9CbG9iKFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTY0LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICAgICAgd2luLmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZSBhbGxyZWFkeSBleGl0c1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNpZ25hdHVyZVVSTCA9IHRoaXMuc3JjO1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblNpZ25hdG9yZURsZyh0aGlzLnNpZ25hdHVyZVVSTCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zcmMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zaWduYXR1cmVVUkxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaG9vc2VGaWxlLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyU2lnbk1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZ25hdHVyZVVSTCA9ICcnO1xuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5jbGVhcigpO1xuICAgICAgICB0aGlzLnNpZ25hdHVyZVBhZC5vbigpO1xuICAgIH1cblxuICAgIGRlbGV0ZVNpZ25hdHVyZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lnbmF0dXJlVVJMID0gJyc7XG4gICAgICAgIHRoaXMuY2hhbmdlVmFsdWUodGhpcy5zaWduYXR1cmVVUkwpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBzYXZlU2lnbk1vZGFsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNpZ25hdHVyZVBhZC5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlVVJMID0gdGhpcy5zaWduYXR1cmVQYWQudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVWYWx1ZSA9IHtcbiAgICAgICAgICAgICAgICBhY2NlcHRlZEV4dGVuc2lvbnM6IHRoaXMuYWNjZXB0U2lnbmF0dXJlVHlwZSxcbiAgICAgICAgICAgICAgICBmaWxlU3RyOiB0aGlzLnNpZ25hdHVyZVVSTCxcbiAgICAgICAgICAgICAgICBmaWxlRXh0OiB0aGlzLmFjY2VwdFNpZ25hdHVyZVR5cGUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZShmaWxlVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaWduYXR1cmVVUkwgPSAnJztcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUodGhpcy5zaWduYXR1cmVVUkwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5zaWduYXR1cmVVUkwpO1xuICAgIH1cbiAgICBcbiAgICBjbG9zZURpYWxvZyhldmVudCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShldmVudCk7XG4gICAgfVxuXG4gICAgZXJyb3JIYW5kbGVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWduYXR1cmVVUkwgPSB0aGlzLnNyYyA9ICcnOyAvLyB0aGlzLmJsYW5rSW1hZ2U7XG4gICAgfVxuXG4gICAgY2hhbmdlVmFsdWUoZmlsZURhdGE6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVBY3Rpb25zKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFVUkkgPSBmaWxlRGF0YTtcbiAgICAgICAgICAgIHRoaXMuc3JjID0gdGhpcy5zdGFuZEFsb25lICYmIHRoaXMuZGF0YVVSSSA/IHRoaXMuZGF0YVVSSS5maWxlU3RyIDogJyc7XG4gICAgICAgICAgICB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLnVwZGF0ZUZvcm1GaWVsZFZhbHVlKFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybSxcbiAgICAgICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFVUkkgPyB0aGlzLmRhdGFVUkkuZmlsZUV4dCA6ICcnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KGZpbGVEYXRhKTtcbiAgICB9XG5cbiAgICBvbktleVByZXNzX09wZW5TaWduTW9kYWwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcblxuICAgICAgICBpZiAoWzEzLCAzMl0uaW5kZXhPZihlLndoaWNoKSAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMub3BlblNpZ25Nb2RhbCgpO1xuICAgICAgICB9XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59IiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3BlcFRlbXBsYXRlPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlIGJvZHktc21cIiBbbmdDbGFzc109XCJ7IGRpc2FibGU6IGRpc2FibGVkIH1cIiBbc3R5bGUuaGVpZ2h0XT1cImZpZWxkSGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3JjICE9ICcnOyB0aGVuIHdpdGhJbWc7IGVsc2Ugbm9JbWdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjd2l0aEltZz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIWRpc2FibGVkXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlU2lnbmF0dXJlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1idXR0b24gaWNvbi1idXR0b24gd2VhayBtZCBkZWxldGVcIiB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncmlnaHQtYWxpZ25tZW50JzogeEFsaWdubWVudCA9PSAncmlnaHQnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJzeXN0ZW1fYmluXCI+PC9wZXAtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWZpbGUtcHJldmlld1wiIChjbGljayk9XCJvcGVuU2lnbk1vZGFsKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInNyY1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImZpZWxkSGVpZ2h0XCIgY2xhc3M9XCJwZXAtZmlsZS1wcmV2aWV3LWltZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiZXJyb3JIYW5kbGVyKCRldmVudClcIiBbYWx0XT1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsndGV4dC1hbGlnbi0nICsgeEFsaWdubWVudF1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JbWc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVsbGlwc2lzIHBlcC1maWxlLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicGVwLXNwYWNpbmctZWxlbWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJzeXN0ZW1fc2lnbmF0dXJlXCI+PC9wZXAtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXNtIGVsbGlwc2lzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAoZGlzYWJsZWQgPyAnTUVTU0FHRVMuSU5GT19NSVNTSU5HX1NJR05BVFVSRScgOiAnU0lHTkFUVVJFLkhJTlQnKSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtpZF09XCJrZXlcIiBtYXRJbnB1dCBbZm9ybUNvbnRyb2xOYW1lXT1cImtleVwiIGNsYXNzPVwiaGlkZGVuLWlucHV0IHNpZ25hdHVyZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzcmNcIiAoY2xpY2spPVwib3BlblNpZ25Nb2RhbCgpXCIgKGtleXByZXNzKT1cIm9uS2V5UHJlc3NfT3BlblNpZ25Nb2RhbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yPjxzcGFuIGNsYXNzPVwiYm9keS14c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwibWFuZGF0b3J5ICYmIHNyYy5sZW5ndGggPT0gMCA/ICgnTUVTU0FHRVMuRVJST1JfSVNfUkVRVUlSRUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KSA6ICgnTUVTU0FHRVMuRVJST1JfSVNfTk9UX1ZBTElEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVyVGV4dF09XCJtYW5kYXRvcnkgJiYgc3JjLmxlbmd0aCA9PSAwID8gKCdNRVNTQUdFUy5FUlJPUl9JU19SRVFVSVJFRCcgfCB0cmFuc2xhdGU6IHsgZmllbGQ6IGxhYmVsIH0pIDogKCdNRVNTQUdFUy5FUlJPUl9JU19OT1RfVkFMSUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09ICdmb3JtJ1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ29uZS1yb3cnOiByb3dTcGFuID09IDEsICdzdGFuZC1hbG9uZSc6IHN0YW5kQWxvbmV9XCI+XG4gICAgICAgICAgICAgICAgPHBlcC1maWVsZC10aXRsZSAqbmdJZj1cInJlbmRlclRpdGxlXCIgW2xhYmVsXT1cImxhYmVsXCIgW21hbmRhdG9yeV09XCJtYW5kYXRvcnlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbeEFsaWdubWVudF09XCJ4QWxpZ25tZW50XCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1maWVsZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gJ2NhcmQnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmFsc2UgJiYgaXNBY3RpdmUgJiYgIWRpc2FibGVkOyB0aGVuIHNlbGVjdGVkQmxvY2s7IGVsc2Ugbm90U2VsZWN0ZWRCbG9ja1wiPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGVkQmxvY2s+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ29uZS1yb3cnOiByb3dTcGFuID09IDF9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90U2VsZWN0ZWRCbG9jaz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWZpbGUtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyAnb25lLXJvdyc6IHJvd1NwYW4gPT0gMSB9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBSZWFkb25seVRlbXBsYXRlOyBjb250ZXh0OiB7IGlzVGFibGVWaWV3OiBmYWxzZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gJ3RhYmxlJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZhbHNlICYmIGlzQWN0aXZlICYmICFkaXNhYmxlZDsgdGhlbiBzZWxlY3RlZEJsb2NrOyBlbHNlIG5vdFNlbGVjdGVkQmxvY2tcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEJsb2NrPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS1jb250YWluZXIgb25lLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNlbGVjdGVkQmxvY2s+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLWNvbnRhaW5lciBvbmUtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBSZWFkb25seVRlbXBsYXRlOyBjb250ZXh0OiB7IGlzVGFibGVWaWV3OiB0cnVlfVwiPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5EaWFsb2cgPT09IHRydWVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZ25hdHVyZVBvcHVwUGFkXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+IC0tPlxuXG4gICAgPCEtLSA8ZGl2ICpuZ0lmPVwiaW5EaWFsb2cgPT09IGZhbHNlXCIgY2xhc3M9XCJzaWduYXR1cmUtYmFja2Ryb3AgbW9kYWxcIiBbbmdDbGFzc109XCJ7IGZhZGU6ICFpc1Zpc2libGVNb2RhbCB9XCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIHJvbGU9XCJkaWFsb2dcIiBhcmlhLWxhYmVsbGVkYnk9XCJncmlkTW9kYWxMYWJlbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgZGlzcGxheTogaXNWaXNpYmxlTW9kYWwgPyAnYmxvY2snIDogJ25vbmUnIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpZ25hdHVyZS1tb2RhbCBtb2RhbC1kaWFsb2dcIiByb2xlPVwiZG9jdW1lbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZ25hdHVyZVBvcHVwUGFkXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgPG5nLXRlbXBsYXRlICNwZXBSZWFkb25seVRlbXBsYXRlIGxldC1pc1RhYmxlVmlldz1cImlzVGFibGVWaWV3XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlIGJvZHktc20gZGlzYWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3JjICE9ICcnOyB0aGVuIHdpdGhJbWc7IGVsc2Ugbm9JbWdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN3aXRoSW1nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLXByZXZpZXdcIiAoY2xpY2spPVwib3BlblNpZ25Nb2RhbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIiFpc1RhYmxlVmlld1wiIFtzcmNdPVwic3JjXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiZmllbGRIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1maWxlLXByZXZpZXctaW1nXCIgKGVycm9yKT1cImVycm9ySGFuZGxlcigkZXZlbnQpXCIgW2FsdF09XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlsndGV4dC1hbGlnbi0nICsgeEFsaWdubWVudF1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJpc1RhYmxlVmlld1wiIFtzcmNdPVwic3JjXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiZmllbGRIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBlcC1yZXBvcnQtZmlsZSBwZXAtZmlsZS1wcmV2aWV3LWltZ1wiIChlcnJvcik9XCJlcnJvckhhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwibGFiZWxcIiBbbmdDbGFzc109XCJbJ3RleHQtYWxpZ24tJyArIHhBbGlnbm1lbnRdXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1nPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjc2lnbmF0dXJlUG9wdXBQYWQ+XG4gICAgICAgIDxwZXAtZGlhbG9nIFt0aXRsZV09XCInU0lHTkFUVVJFLkRJQUxPR19USVRMRScgfCB0cmFuc2xhdGVcIiBbc2hvd0Zvb3Rlcl09XCJzaG93QWN0aW9uQnRuXCIgW3Nob3dDbG9zZV09XCJ0cnVlXCIgKGNsb3NlKT1cImNsb3NlRGlhbG9nKCRldmVudClcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgcGVwLWRpYWxvZy1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxzaWduYXR1cmUtcGFkICNzaWduYXR1cmVQYWQgW29wdGlvbnNdPVwic2lnbmF0dXJlUGFkT3B0aW9uc1wiIChvbkJlZ2luRXZlbnQpPVwiZHJhd1N0YXJ0KClcIlxuICAgICAgICAgICAgICAgICAgICAob25FbmRFdmVudCk9XCJkcmF3Q29tcGxldGUoKVwiPlxuICAgICAgICAgICAgICAgIDwvc2lnbmF0dXJlLXBhZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBwZXAtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50LW5lZ2F0aXZlXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwicGVwLXNwYWNpbmctZWxlbWVudCBwZXAtYnV0dG9uIG1kIHdlYWtcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHkgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJTaWduTW9kYWwoKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQUNUSU9OUy5DTEVBUicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJwZXAtc3BhY2luZy1lbGVtZW50IHBlcC1idXR0b24gbWQgc3Ryb25nXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVTaWduTW9kYWwoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQUNUSU9OUy5ET05FJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcGVwLWRpYWxvZz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc2lnbmF0dXJlL3NpZ25hdHVyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosdUJBQXVCLEVBSXZCLFdBQVcsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLDRCQUE0QixFQUM1QixpQkFBaUIsR0FFcEIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFVakMsTUFBTSxPQUFPLHFCQUFxQjtJQTZGOUIsWUFDWSxhQUErQixFQUMvQixvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0IsRUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsT0FBbUI7UUFMbkIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWxHdEIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUEyQiw0QkFBNEIsQ0FBQztRQUVuRSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBVVosaUJB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QVk7c0JBRFgsTUFBTTtnQkFHb0IsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUV6QixpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBPbkNoYW5nZXMsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2lnbmF0dXJlUGFkIH0gZnJvbSAnbmd4LXNpZ25hdHVyZXBhZC9zaWduYXR1cmUtcGFkJztcbmltcG9ydCB7XG4gICAgUGVwRmlsZVNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgUGVwU2lnbmF0dXJlRmllbGQsXG4gICAgSVBlcEZpZWxkQ2xpY2tFdmVudCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1zaWduYXR1cmUnLFxuICAgIHN0eWxlVXJsczogWycuL3NpZ25hdHVyZS5jb21wb25lbnQuc2NzcycsICcuL3NpZ25hdHVyZS5jb21wb25lbnQudGhlbWUuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaWduYXR1cmUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBTaWduYXR1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSBzcmMgPSAnJztcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIG1hbmRhdG9yeSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB4QWxpZ25tZW50OiBQZXBIb3Jpem9udGFsQWxpZ25tZW50ID0gREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVDtcblxuICAgIHByaXZhdGUgX3Jvd1NwYW4gPSAxO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJvd1NwYW4odmFsdWUpIHtcbiAgICAgICAgdGhpcy5fcm93U3BhbiA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldEZpZWxkSGVpZ2h0KCk7XG4gICAgfVxuICAgIGdldCByb3dTcGFuKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dTcGFuO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNpZ25hdHVyZVVSTCA9ICcnO1xuICAgIC8vIEBJbnB1dCgpIGluRGlhbG9nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF92aXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ3NpZ25hdHVyZSc7XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRUeXBlKHZhbHVlOiBQZXBMYXlvdXRUeXBlKSB7XG4gICAgICAgIHRoaXMuX2xheW91dFR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgbGF5b3V0VHlwZSgpOiBQZXBMYXlvdXRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dFR5cGU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgIC8vIFRvIGtub3cgaWYgaGFuZGxlIGFjdGlvbnMgb3IganVzdCByYWlzZSB0aGVtIGFzIG91dHB1dFxuICAgIEBJbnB1dCgpIGhhbmRsZUFjdGlvbnMgPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY2hvb3NlRmlsZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpOyAvLyBUaGlzIGV2ZW50IHdpbGwgZmlyZWQgb25seSB3aGVuIGhhbmRsZUFjdGlvbnMgSW5wdXQgaXMgZmFsc2VcbiAgICBcbiAgICBAT3V0cHV0KClcbiAgICBmaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG4gICAgXG4gICAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlUGFkJykgc2lnbmF0dXJlUGFkOiBTaWduYXR1cmVQYWQ7XG4gICAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlUG9wdXBQYWQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgc2lnbmF0dXJlUG9wdXBQYWQ6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PjtcblxuICAgIGZpZWxkSGVpZ2h0ID0gJyc7XG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuICAgIGRhdGFVUkkgPSBudWxsO1xuICAgIHNob3dBY3Rpb25CdG4gPSB0cnVlO1xuXG4gICAgcHVibGljIGlzVmlzaWJsZU1vZGFsID0gZmFsc2U7XG4gICAgYWNjZXB0U2lnbmF0dXJlVHlwZSA9ICdwbmcnO1xuXG4gICAgcHVibGljIHNpZ25hdHVyZVBhZE9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgLy8gcGFzc2VkIHRocm91Z2ggdG8gc3ppbWVrL3NpZ25hdHVyZV9wYWQgY29uc3RydWN0b3JcbiAgICAgICAgbWluV2lkdGg6IDIsXG4gICAgICAgIGNhbnZhc1dpZHRoOiA1MDAsXG4gICAgICAgIGNhbnZhc0hlaWdodDogMzAwLFxuICAgICAgICBwZW5Db2xvcjogJ3JnYigxNTEsIDE1MSwgMTUxKScsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IFBlcERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICAgKSB7IH1cblxuICAgIHByaXZhdGUgc2V0RmllbGRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRIZWlnaHQgPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZUZpZWxkSGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy5sYXlvdXRUeXBlLFxuICAgICAgICAgICAgdGhpcy5yb3dTcGFuLFxuICAgICAgICAgICAgdGhpcy5zdGFuZEFsb25lXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGVwRmllbGQgPSBuZXcgUGVwU2lnbmF0dXJlRmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNyYyxcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5TaWduYXRvcmVEbGcoc3JjID0gJycpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9uQnRuID1cbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlVVJMICYmIHRoaXMuc2lnbmF0dXJlVVJMICE9PSAnJyA/IGZhbHNlIDogdHJ1ZTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKHRoaXMuc2lnbmF0dXJlUG9wdXBQYWQpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlck9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFmdGVyRGlhbG9nT3BlbmVkKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWZ0ZXJEaWFsb2dPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNpZ25hdHVyZVVSTCAmJiB0aGlzLnNpZ25hdHVyZVVSTCAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLmZyb21EYXRhVVJMKHRoaXMuc2lnbmF0dXJlVVJMKTtcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlUGFkLm9mZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNldEZpZWxkSGVpZ2h0KCk7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLnJlbmRlclRpdGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLlNUQU5EX0FMT05FX0ZJRUxEX05PX1NQQUNJTkdfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjICYmIGNoYW5nZXMuc3JjLmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gRW1wdHkgZGF0YVVSSSBpZiB0aGVyZSBpcyBjaGFuZ2UgaW4gdGhlIHNyYy5cbiAgICAgICAgICAgIHRoaXMuZGF0YVVSSSA9IG51bGw7XG5cbiAgICAgICAgICAgIC8vIEZvciBjbGVhbiB0aGUgY2FjaGUuXG4gICAgICAgICAgICAvLyB0aGlzLnNyYyA9IHRoaXMuc3JjID8gdGhpcy5zcmMgKyAnP3Q9JyArIG5ldyBEYXRlKCkudG9UaW1lU3RyaW5nKCkgOiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIGRyYXdDb21wbGV0ZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gd2lsbCBiZSBub3RpZmllZCBvZiBzemltZWsvc2lnbmF0dXJlX3BhZCdzIG9uRW5kIGV2ZW50XG4gICAgfVxuXG4gICAgZHJhd1N0YXJ0KCk6IHZvaWQge1xuICAgICAgICAvLyB3aWxsIGJlIG5vdGlmaWVkIG9mIHN6aW1lay9zaWduYXR1cmVfcGFkJ3Mgb25CZWdpbiBldmVudFxuICAgIH1cblxuICAgIG9wZW5TaWduTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZUFjdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBzaWduYXR1cmUgaXMgbm90IGVtcHR5IG9wZW4gaXQgaW4gaW1hZ2Ugdmlld2VyLlxuICAgICAgICAgICAgLy8hIFJlbW92ZSB0aGlzIGBpZmAgdG8gYWx3YXlzIG9wZW4gc2lnbmF0dXJlIGluIG1vZGFsIFxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSAmJiB0aGlzLmRhdGFVUkkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlU3RyQXJyID0gdGhpcy5kYXRhVVJJLmZpbGVTdHIuc3BsaXQoJzsnKTtcblxuICAgICAgICAgICAgICAgIGlmIChmaWxlU3RyQXJyLmxlbmd0aCA9PT0gMikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3BlbignJywgJ19ibGFuaycpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IGZpbGVTdHJBcnJbMF0uc3BsaXQoJzonKVsxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFzZTY0ID0gZmlsZVN0ckFyclsxXS5zcGxpdCgnLCcpWzFdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBibG9iID0gdGhpcy5maWxlU2VydmljZS5jb252ZXJ0RnJvbWI2NHRvQmxvYihcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U2NCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgICAgICAgICAgICAgIHdpbi5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBzaWduYXR1cmUgYWxscmVhZHkgZXhpdHNcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaWduYXR1cmVVUkwgPSB0aGlzLnNyYztcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5TaWduYXRvcmVEbGcodGhpcy5zaWduYXR1cmVVUkwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3JjLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2lnbmF0dXJlVVJMXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hvb3NlRmlsZS5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhclNpZ25Nb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaWduYXR1cmVVUkwgPSAnJztcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWQuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5zaWduYXR1cmVQYWQub24oKTtcbiAgICB9XG5cbiAgICBkZWxldGVTaWduYXR1cmUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpZ25hdHVyZVVSTCA9ICcnO1xuICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKHRoaXMuc2lnbmF0dXJlVVJMKTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgc2F2ZVNpZ25Nb2RhbChldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zaWduYXR1cmVQYWQuaXNFbXB0eSgpKSB7XG4gICAgICAgICAgICB0aGlzLnNpZ25hdHVyZVVSTCA9IHRoaXMuc2lnbmF0dXJlUGFkLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG4gICAgICAgICAgICBjb25zdCBmaWxlVmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRFeHRlbnNpb25zOiB0aGlzLmFjY2VwdFNpZ25hdHVyZVR5cGUsXG4gICAgICAgICAgICAgICAgZmlsZVN0cjogdGhpcy5zaWduYXR1cmVVUkwsXG4gICAgICAgICAgICAgICAgZmlsZUV4dDogdGhpcy5hY2NlcHRTaWduYXR1cmVUeXBlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUoZmlsZVZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2lnbmF0dXJlVVJMID0gJyc7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKHRoaXMuc2lnbmF0dXJlVVJMKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuc2lnbmF0dXJlVVJMKTtcbiAgICB9XG4gICAgXG4gICAgY2xvc2VEaWFsb2coZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZXZlbnQpO1xuICAgIH1cblxuICAgIGVycm9ySGFuZGxlcihldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2lnbmF0dXJlVVJMID0gdGhpcy5zcmMgPSAnJzsgLy8gdGhpcy5ibGFua0ltYWdlO1xuICAgIH1cblxuICAgIGNoYW5nZVZhbHVlKGZpbGVEYXRhOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFuZGxlQWN0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5kYXRhVVJJID0gZmlsZURhdGE7XG4gICAgICAgICAgICB0aGlzLnNyYyA9IHRoaXMuc3RhbmRBbG9uZSAmJiB0aGlzLmRhdGFVUkkgPyB0aGlzLmRhdGFVUkkuZmlsZVN0ciA6ICcnO1xuICAgICAgICAgICAgdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS51cGRhdGVGb3JtRmllbGRWYWx1ZShcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhVVJJID8gdGhpcy5kYXRhVVJJLmZpbGVFeHQgOiAnJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdChmaWxlRGF0YSk7XG4gICAgfVxuXG4gICAgb25LZXlQcmVzc19PcGVuU2lnbk1vZGFsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG5cbiAgICAgICAgaWYgKFsxMywgMzJdLmluZGV4T2YoZS53aGljaCkgIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5TaWduTW9kYWwoKTtcbiAgICAgICAgfVxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxufSIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwZXBUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBbZm9ybUdyb3VwXT1cImZvcm1cIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZSBib2R5LXNtXCIgW25nQ2xhc3NdPVwieyBkaXNhYmxlOiBkaXNhYmxlZCB9XCIgW3N0eWxlLmhlaWdodF09XCJmaWVsZEhlaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNyYyAhPSAnJzsgdGhlbiB3aXRoSW1nOyBlbHNlIG5vSW1nXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3dpdGhJbWc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFkaXNhYmxlZFwiIG1hdC1idXR0b24gKGNsaWNrKT1cImRlbGV0ZVNpZ25hdHVyZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZXAtYnV0dG9uIGljb24tYnV0dG9uIHdlYWsgbWQgZGVsZXRlXCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3JpZ2h0LWFsaWdubWVudCc6IHhBbGlnbm1lbnQgPT0gJ3JpZ2h0JyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX2JpblwiPjwvcGVwLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLXByZXZpZXdcIiAoY2xpY2spPVwib3BlblNpZ25Nb2RhbCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzcmNcIiBbc3R5bGUubWF4LWhlaWdodF09XCJmaWVsZEhlaWdodFwiIGNsYXNzPVwicGVwLWZpbGUtcHJldmlldy1pbWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cImVycm9ySGFuZGxlcigkZXZlbnQpXCIgW2FsdF09XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ3RleHQtYWxpZ24tJyArIHhBbGlnbm1lbnRdXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vSW1nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbGxpcHNpcyBwZXAtZmlsZS1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX3NpZ25hdHVyZVwiPjwvcGVwLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1zbSBlbGxpcHNpc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgKGRpc2FibGVkID8gJ01FU1NBR0VTLklORk9fTUlTU0lOR19TSUdOQVRVUkUnIDogJ1NJR05BVFVSRS5ISU5UJykgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwia2V5XCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJrZXlcIiBjbGFzcz1cImhpZGRlbi1pbnB1dCBzaWduYXR1cmVcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3JjXCIgKGNsaWNrKT1cIm9wZW5TaWduTW9kYWwoKVwiIChrZXlwcmVzcyk9XCJvbktleVByZXNzX09wZW5TaWduTW9kYWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvcj48c3BhbiBjbGFzcz1cImJvZHkteHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIm1hbmRhdG9yeSAmJiBzcmMubGVuZ3RoID09IDAgPyAoJ01FU1NBR0VTLkVSUk9SX0lTX1JFUVVJUkVEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSkgOiAoJ01FU1NBR0VTLkVSUk9SX0lTX05PVF9WQUxJRCcgfCB0cmFuc2xhdGU6IHsgZmllbGQ6IGxhYmVsIH0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lclRleHRdPVwibWFuZGF0b3J5ICYmIHNyYy5sZW5ndGggPT0gMCA/ICgnTUVTU0FHRVMuRVJST1JfSVNfUkVRVUlSRUQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KSA6ICgnTUVTU0FHRVMuRVJST1JfSVNfTk9UX1ZBTElEJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRUeXBlID09PSAnZm9ybSdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdvbmUtcm93Jzogcm93U3BhbiA9PSAxLCAnc3RhbmQtYWxvbmUnOiBzdGFuZEFsb25lfVwiPlxuICAgICAgICAgICAgICAgIDxwZXAtZmllbGQtdGl0bGUgKm5nSWY9XCJyZW5kZXJUaXRsZVwiIFtsYWJlbF09XCJsYWJlbFwiIFttYW5kYXRvcnldPVwibWFuZGF0b3J5XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3hBbGlnbm1lbnRdPVwieEFsaWdubWVudFwiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCI+XG4gICAgICAgICAgICAgICAgPC9wZXAtZmllbGQtdGl0bGU+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09ICdjYXJkJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZhbHNlICYmIGlzQWN0aXZlICYmICFkaXNhYmxlZDsgdGhlbiBzZWxlY3RlZEJsb2NrOyBlbHNlIG5vdFNlbGVjdGVkQmxvY2tcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEJsb2NrPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdvbmUtcm93Jzogcm93U3BhbiA9PSAxfVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNlbGVjdGVkQmxvY2s+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBlcC1maWxlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ29uZS1yb3cnOiByb3dTcGFuID09IDEgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwUmVhZG9ubHlUZW1wbGF0ZTsgY29udGV4dDogeyBpc1RhYmxlVmlldzogZmFsc2V9XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09ICd0YWJsZSdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmYWxzZSAmJiBpc0FjdGl2ZSAmJiAhZGlzYWJsZWQ7IHRoZW4gc2VsZWN0ZWRCbG9jazsgZWxzZSBub3RTZWxlY3RlZEJsb2NrXCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRCbG9jaz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWZpbGUtY29udGFpbmVyIG9uZS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTZWxlY3RlZEJsb2NrPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS1jb250YWluZXIgb25lLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwUmVhZG9ubHlUZW1wbGF0ZTsgY29udGV4dDogeyBpc1RhYmxlVmlldzogdHJ1ZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImluRGlhbG9nID09PSB0cnVlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWduYXR1cmVQb3B1cFBhZFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPiAtLT5cblxuICAgIDwhLS0gPGRpdiAqbmdJZj1cImluRGlhbG9nID09PSBmYWxzZVwiIGNsYXNzPVwic2lnbmF0dXJlLWJhY2tkcm9wIG1vZGFsXCIgW25nQ2xhc3NdPVwieyBmYWRlOiAhaXNWaXNpYmxlTW9kYWwgfVwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZ3JpZE1vZGFsTGFiZWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IGlzVmlzaWJsZU1vZGFsID8gJ2Jsb2NrJyA6ICdub25lJyB9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWduYXR1cmUtbW9kYWwgbW9kYWwtZGlhbG9nXCIgcm9sZT1cImRvY3VtZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWduYXR1cmVQb3B1cFBhZFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjcGVwUmVhZG9ubHlUZW1wbGF0ZSBsZXQtaXNUYWJsZVZpZXc9XCJpc1RhYmxlVmlld1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWZpbGUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGVwLWZpbGUtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZSBib2R5LXNtIGRpc2FibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNyYyAhPSAnJzsgdGhlbiB3aXRoSW1nOyBlbHNlIG5vSW1nXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjd2l0aEltZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXAtZmlsZS1wcmV2aWV3XCIgKGNsaWNrKT1cIm9wZW5TaWduTW9kYWwoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCIhaXNUYWJsZVZpZXdcIiBbc3JjXT1cInNyY1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImZpZWxkSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZXAtZmlsZS1wcmV2aWV3LWltZ1wiIChlcnJvcik9XCJlcnJvckhhbmRsZXIoJGV2ZW50KVwiIFthbHRdPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ3RleHQtYWxpZ24tJyArIHhBbGlnbm1lbnRdXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiaXNUYWJsZVZpZXdcIiBbc3JjXT1cInNyY1wiIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImZpZWxkSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZXAtcmVwb3J0LWZpbGUgcGVwLWZpbGUtcHJldmlldy1pbWdcIiAoZXJyb3IpPVwiZXJyb3JIYW5kbGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cImxhYmVsXCIgW25nQ2xhc3NdPVwiWyd0ZXh0LWFsaWduLScgKyB4QWxpZ25tZW50XVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0ltZz48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3NpZ25hdHVyZVBvcHVwUGFkPlxuICAgICAgICA8cGVwLWRpYWxvZyBbdGl0bGVdPVwiJ1NJR05BVFVSRS5ESUFMT0dfVElUTEUnIHwgdHJhbnNsYXRlXCIgW3Nob3dGb290ZXJdPVwic2hvd0FjdGlvbkJ0blwiIFtzaG93Q2xvc2VdPVwidHJ1ZVwiIChjbG9zZSk9XCJjbG9zZURpYWxvZygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIHBlcC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgICAgICAgICA8c2lnbmF0dXJlLXBhZCAjc2lnbmF0dXJlUGFkIFtvcHRpb25zXT1cInNpZ25hdHVyZVBhZE9wdGlvbnNcIiAob25CZWdpbkV2ZW50KT1cImRyYXdTdGFydCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRW5kRXZlbnQpPVwiZHJhd0NvbXBsZXRlKClcIj5cbiAgICAgICAgICAgICAgICA8L3NpZ25hdHVyZS1wYWQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgcGVwLWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwicGVwLXNwYWNpbmctZWxlbWVudC1uZWdhdGl2ZVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjbGFzcz1cInBlcC1zcGFjaW5nLWVsZW1lbnQgcGVwLWJ1dHRvbiBtZCB3ZWFrXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyU2lnbk1vZGFsKClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FDVElPTlMuQ0xFQVInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwicGVwLXNwYWNpbmctZWxlbWVudCBwZXAtYnV0dG9uIG1kIHN0cm9uZ1wiIFtkaXNhYmxlZF09XCJyZWFkb25seSB8fCBkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlU2lnbk1vZGFsKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0FDVElPTlMuRE9ORScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3BlcC1kaWFsb2c+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuPC9uZy1jb250YWluZXI+Il19
|
|
@@ -136,10 +136,11 @@ class PepSignatureComponent {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
ngOnChanges(changes) {
|
|
139
|
+
var _a;
|
|
139
140
|
if (this.standAlone) {
|
|
140
141
|
this.setDefaultForm();
|
|
141
142
|
}
|
|
142
|
-
if (changes.src && changes.src.currentValue.length > 0) {
|
|
143
|
+
if (changes.src && ((_a = changes.src.currentValue) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
143
144
|
// Empty dataURI if there is change in the src.
|
|
144
145
|
this.dataURI = null;
|
|
145
146
|
// For clean the cache.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-signature.mjs","sources":["../../../projects/ngx-lib/signature/signature.component.ts","../../../projects/ngx-lib/signature/signature.component.html","../../../projects/ngx-lib/signature/signature.module.ts","../../../projects/ngx-lib/signature/public-api.ts","../../../projects/ngx-lib/signature/pepperi-addons-ngx-lib-signature.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n OnDestroy,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n OnChanges,\n ElementRef,\n Renderer2,\n TemplateRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { SignaturePad } from 'ngx-signaturepad/signature-pad';\nimport {\n PepFileService,\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepSignatureField,\n IPepFieldClickEvent,\n} from '@pepperi-addons/ngx-lib';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'pep-signature',\n styleUrls: ['./signature.component.scss', './signature.component.theme.scss'],\n templateUrl: './signature.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSignatureComponent implements OnInit, OnChanges, OnDestroy {\n @Input() key = '';\n @Input() src = '';\n @Input() label = '';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n\n private _rowSpan = 1;\n @Input()\n set rowSpan(value) {\n this._rowSpan = value;\n this.setFieldHeight();\n }\n get rowSpan(): number {\n return this._rowSpan;\n }\n\n @Input() signatureURL = '';\n // @Input() inDialog = false;\n\n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n controlType = 'signature';\n\n @Input() form: FormGroup = null;\n @Input() showTitle = true;\n @Input() renderTitle = true;\n\n private _layoutType: PepLayoutType = 'form';\n @Input()\n set layoutType(value: PepLayoutType) {\n this._layoutType = value;\n this.setFieldHeight();\n }\n get layoutType(): PepLayoutType {\n return this._layoutType;\n }\n\n @Input() isActive = false;\n\n // To know if handle actions or just raise them as output\n @Input() handleActions = true;\n\n @Output()\n chooseFile: EventEmitter<void> = new EventEmitter<void>(); // This event will fired only when handleActions Input is false\n \n @Output()\n fileChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n elementClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();\n \n @ViewChild('signaturePad') signaturePad: SignaturePad;\n @ViewChild('signaturePopupPad', { read: TemplateRef })\n signaturePopupPad: TemplateRef<any>;\n dialogRef: MatDialogRef<any>;\n\n fieldHeight = '';\n standAlone = false;\n dataURI = null;\n showActionBtn = true;\n\n public isVisibleModal = false;\n acceptSignatureType = 'png';\n\n public signaturePadOptions: any = {\n // passed through to szimek/signature_pad constructor\n minWidth: 2,\n canvasWidth: 500,\n canvasHeight: 300,\n penColor: 'rgb(151, 151, 151)',\n };\n\n constructor(\n private dialogService: PepDialogService,\n private customizationService: PepCustomizationService,\n private fileService: PepFileService,\n private cd: ChangeDetectorRef,\n private renderer: Renderer2,\n private element: ElementRef\n ) { }\n\n private setFieldHeight(): void {\n this.fieldHeight = this.customizationService.calculateFieldHeight(\n this.layoutType,\n this.rowSpan,\n this.standAlone\n );\n }\n\n private setDefaultForm(): void {\n const pepField = new PepSignatureField({\n key: this.key,\n value: this.src,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n private openSignatoreDlg(src = ''): void {\n this.showActionBtn =\n this.signatureURL && this.signatureURL !== '' ? false : true;\n\n this.dialogRef = this.dialogService.openDialog(this.signaturePopupPad);\n this.dialogRef.afterOpened().subscribe(() => {\n this.afterDialogOpened();\n });\n }\n\n private afterDialogOpened(): void {\n if (this.signatureURL && this.signatureURL !== '') {\n this.signaturePad.fromDataURL(this.signatureURL);\n this.signaturePad.off();\n }\n }\n\n ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\n this.setFieldHeight();\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n }\n\n ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n\n if (changes.src && changes.src.currentValue.length > 0) {\n // Empty dataURI if there is change in the src.\n this.dataURI = null;\n\n // For clean the cache.\n // this.src = this.src ? this.src + '?t=' + new Date().toTimeString() : '';\n }\n }\n\n ngOnDestroy(): void {\n //\n }\n\n drawComplete(): void {\n // will be notified of szimek/signature_pad's onEnd event\n }\n\n drawStart(): void {\n // will be notified of szimek/signature_pad's onBegin event\n }\n\n openSignModal(): void {\n if (this.handleActions) {\n // If the signature is not empty open it in image viewer.\n //! Remove this `if` to always open signature in modal \n if (this.standAlone && this.dataURI) {\n const fileStrArr = this.dataURI.fileStr.split(';');\n\n if (fileStrArr.length === 2) {\n const win = window.open('', '_blank');\n const contentType = fileStrArr[0].split(':')[1];\n const base64 = fileStrArr[1].split(',')[1];\n const blob = this.fileService.convertFromb64toBlob(\n base64,\n contentType\n );\n const url = URL.createObjectURL(blob);\n win.location.href = url;\n }\n // signature allready exits\n } else {\n this.signatureURL = this.src;\n this.openSignatoreDlg(this.signatureURL);\n }\n } else {\n if (this.src.length > 0) {\n this.elementClick.emit({\n key: this.key,\n value: this.signatureURL\n });\n } else {\n this.chooseFile.emit();\n }\n }\n }\n\n clearSignModal(): void {\n this.signatureURL = '';\n this.signaturePad.clear();\n this.signaturePad.on();\n }\n\n deleteSignature(event: any): void {\n this.signatureURL = '';\n this.changeValue(this.signatureURL);\n this.cd.detectChanges();\n }\n\n saveSignModal(event: any): void {\n if (!this.signaturePad.isEmpty()) {\n this.signatureURL = this.signaturePad.toDataURL('image/png');\n const fileValue = {\n acceptedExtensions: this.acceptSignatureType,\n fileStr: this.signatureURL,\n fileExt: this.acceptSignatureType,\n };\n this.changeValue(fileValue);\n } else {\n this.signatureURL = '';\n this.changeValue(this.signatureURL);\n }\n\n this.dialogRef.close(this.signatureURL);\n }\n \n closeDialog(event) {\n this.dialogRef.close(event);\n }\n\n errorHandler(event: any): void {\n this.signatureURL = this.src = ''; // this.blankImage;\n }\n\n changeValue(fileData: any): void {\n if (this.handleActions) {\n this.dataURI = fileData;\n this.src = this.standAlone && this.dataURI ? this.dataURI.fileStr : '';\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n this.dataURI ? this.dataURI.fileExt : ''\n );\n }\n this.fileChange.emit(fileData);\n }\n\n onKeyPress_OpenSignModal(event: any): void {\n const e = event as KeyboardEvent;\n\n if ([13, 32].indexOf(e.which) !== -1) {\n this.openSignModal();\n }\n e.preventDefault();\n }\n}","<ng-container [formGroup]=\"form\">\n <ng-container>\n <ng-template #pepTemplate>\n <mat-form-field [formGroup]=\"form\" appearance=\"outline\">\n <div class=\"pep-file-wrapper\">\n <div class=\"pep-file body-sm\" [ngClass]=\"{ disable: disabled }\" [style.height]=\"fieldHeight\">\n <ng-container *ngIf=\"src != ''; then withImg; else noImg\"></ng-container>\n <ng-template #withImg>\n <button *ngIf=\"!disabled\" mat-button (click)=\"deleteSignature($event)\"\n class=\"pep-button icon-button weak md delete\" tabindex=\"-1\"\n [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <mat-icon>\n <pep-icon name=\"system_bin\"></pep-icon>\n </mat-icon>\n </button>\n <div class=\"pep-file-preview\" (click)=\"openSignModal()\">\n <img [src]=\"src\" [style.max-height]=\"fieldHeight\" class=\"pep-file-preview-img\"\n (error)=\"errorHandler($event)\" [alt]=\"label\"\n [ngClass]=\"['text-align-' + xAlignment]\" />\n </div>\n </ng-template>\n <ng-template #noImg>\n <div class=\"ellipsis pep-file-message\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon name=\"system_signature\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\">\n {{ (disabled ? 'MESSAGES.INFO_MISSING_SIGNATURE' : 'SIGNATURE.HINT') | translate }}\n </span>\n </div>\n </ng-template>\n </div>\n <input [id]=\"key\" matInput [formControlName]=\"key\" class=\"hidden-input signature\" type=\"text\"\n [value]=\"src\" (click)=\"openSignModal()\" (keypress)=\"onKeyPress_OpenSignModal($event)\"\n autocomplete=\"off\" readonly />\n </div>\n\n <mat-error><span class=\"body-xs\"\n [title]=\"mandatory && src.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"\n [innerText]=\"mandatory && src.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"></span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <div class=\"pep-file-container\" [ngClass]=\"{ 'one-row': rowSpan == 1, 'stand-alone': standAlone}\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\"\n [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"false && isActive && !disabled; then selectedBlock; else notSelectedBlock\">\n </ng-container>\n <ng-template #selectedBlock>\n <div class=\"pep-file-container\" [ngClass]=\"{ 'one-row': rowSpan == 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-template>\n <ng-template #notSelectedBlock>\n <div class=\"pep-file-container\" [ngClass]=\"{ 'one-row': rowSpan == 1 }\">\n <ng-container *ngTemplateOutlet=\"pepReadonlyTemplate; context: { isTableView: false}\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"false && isActive && !disabled; then selectedBlock; else notSelectedBlock\">\n </ng-container>\n <ng-template #selectedBlock>\n <div class=\"pep-file-container one-row\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-template>\n <ng-template #notSelectedBlock>\n <div class=\"pep-file-container one-row\">\n <ng-container *ngTemplateOutlet=\"pepReadonlyTemplate; context: { isTableView: true}\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- <ng-container *ngIf=\"inDialog === true\">\n <ng-container *ngTemplateOutlet=\"signaturePopupPad\"></ng-container>\n </ng-container> -->\n\n <!-- <div *ngIf=\"inDialog === false\" class=\"signature-backdrop modal\" [ngClass]=\"{ fade: !isVisibleModal }\" tabindex=\"-1\"\n role=\"dialog\" aria-labelledby=\"gridModalLabel\" aria-hidden=\"true\"\n [ngStyle]=\"{ display: isVisibleModal ? 'block' : 'none' }\">\n <div class=\"signature-modal modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"signaturePopupPad\"></ng-container>\n </div>\n </div>\n </div> -->\n\n <ng-template #pepReadonlyTemplate let-isTableView=\"isTableView\">\n <div class=\"pep-file-container\">\n <div class=\"pep-file-wrapper\">\n <div class=\"pep-file body-sm disable\">\n <ng-container *ngIf=\"src != ''; then withImg; else noImg\"></ng-container>\n <ng-template #withImg>\n <div class=\"pep-file-preview\" (click)=\"openSignModal()\">\n <img *ngIf=\"!isTableView\" [src]=\"src\" [style.max-height]=\"fieldHeight\"\n class=\"pep-file-preview-img\" (error)=\"errorHandler($event)\" [alt]=\"label\"\n [ngClass]=\"['text-align-' + xAlignment]\" />\n <img *ngIf=\"isTableView\" [src]=\"src\" [style.max-height]=\"fieldHeight\"\n class=\"pep-report-file pep-file-preview-img\" (error)=\"errorHandler($event)\"\n [alt]=\"label\" [ngClass]=\"['text-align-' + xAlignment]\" />\n </div>\n </ng-template>\n <ng-template #noImg></ng-template>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #signaturePopupPad>\n <pep-dialog [title]=\"'SIGNATURE.DIALOG_TITLE' | translate\" [showFooter]=\"showActionBtn\" [showClose]=\"true\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <signature-pad #signaturePad [options]=\"signaturePadOptions\" (onBeginEvent)=\"drawStart()\"\n (onEndEvent)=\"drawComplete()\">\n </signature-pad>\n </ng-container>\n <div pep-dialog-actions class=\"pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button md weak\" [disabled]=\"readonly || disabled\"\n (click)=\"clearSignModal()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" [disabled]=\"readonly || disabled\"\n (click)=\"saveSignModal($event)\">\n {{ 'ACTIONS.DONE' | translate }}\n </button>\n </div>\n </pep-dialog>\n </ng-template>\n\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { SignaturePadModule } from 'ngx-signaturepad';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemBin,\n pepIconSystemSignature,\n pepIconSystemClose,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\nimport { PepFilesUploaderModule } from '@pepperi-addons/ngx-lib/files-uploader';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { PepSignatureComponent } from './signature.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatDialogModule,\n // External modules\n SignaturePadModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n PepFilesUploaderModule,\n PepDialogModule,\n ],\n exports: [PepSignatureComponent],\n declarations: [PepSignatureComponent],\n})\nexport class PepSignatureModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemBin,\n pepIconSystemSignature,\n pepIconSystemClose,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/signature\n */\nexport * from './signature.module';\nexport * from './signature.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i10","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-signature.mjs","sources":["../../../projects/ngx-lib/signature/signature.component.ts","../../../projects/ngx-lib/signature/signature.component.html","../../../projects/ngx-lib/signature/signature.module.ts","../../../projects/ngx-lib/signature/public-api.ts","../../../projects/ngx-lib/signature/pepperi-addons-ngx-lib-signature.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n OnDestroy,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectorRef,\n ChangeDetectionStrategy,\n OnChanges,\n ElementRef,\n Renderer2,\n TemplateRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { SignaturePad } from 'ngx-signaturepad/signature-pad';\nimport {\n PepFileService,\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepSignatureField,\n IPepFieldClickEvent,\n} from '@pepperi-addons/ngx-lib';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'pep-signature',\n styleUrls: ['./signature.component.scss', './signature.component.theme.scss'],\n templateUrl: './signature.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSignatureComponent implements OnInit, OnChanges, OnDestroy {\n @Input() key = '';\n @Input() src = '';\n @Input() label = '';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n\n private _rowSpan = 1;\n @Input()\n set rowSpan(value) {\n this._rowSpan = value;\n this.setFieldHeight();\n }\n get rowSpan(): number {\n return this._rowSpan;\n }\n\n @Input() signatureURL = '';\n // @Input() inDialog = false;\n\n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n controlType = 'signature';\n\n @Input() form: FormGroup = null;\n @Input() showTitle = true;\n @Input() renderTitle = true;\n\n private _layoutType: PepLayoutType = 'form';\n @Input()\n set layoutType(value: PepLayoutType) {\n this._layoutType = value;\n this.setFieldHeight();\n }\n get layoutType(): PepLayoutType {\n return this._layoutType;\n }\n\n @Input() isActive = false;\n\n // To know if handle actions or just raise them as output\n @Input() handleActions = true;\n\n @Output()\n chooseFile: EventEmitter<void> = new EventEmitter<void>(); // This event will fired only when handleActions Input is false\n \n @Output()\n fileChange: EventEmitter<any> = new EventEmitter<any>();\n\n @Output()\n elementClick: EventEmitter<IPepFieldClickEvent> = new EventEmitter<IPepFieldClickEvent>();\n \n @ViewChild('signaturePad') signaturePad: SignaturePad;\n @ViewChild('signaturePopupPad', { read: TemplateRef })\n signaturePopupPad: TemplateRef<any>;\n dialogRef: MatDialogRef<any>;\n\n fieldHeight = '';\n standAlone = false;\n dataURI = null;\n showActionBtn = true;\n\n public isVisibleModal = false;\n acceptSignatureType = 'png';\n\n public signaturePadOptions: any = {\n // passed through to szimek/signature_pad constructor\n minWidth: 2,\n canvasWidth: 500,\n canvasHeight: 300,\n penColor: 'rgb(151, 151, 151)',\n };\n\n constructor(\n private dialogService: PepDialogService,\n private customizationService: PepCustomizationService,\n private fileService: PepFileService,\n private cd: ChangeDetectorRef,\n private renderer: Renderer2,\n private element: ElementRef\n ) { }\n\n private setFieldHeight(): void {\n this.fieldHeight = this.customizationService.calculateFieldHeight(\n this.layoutType,\n this.rowSpan,\n this.standAlone\n );\n }\n\n private setDefaultForm(): void {\n const pepField = new PepSignatureField({\n key: this.key,\n value: this.src,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n private openSignatoreDlg(src = ''): void {\n this.showActionBtn =\n this.signatureURL && this.signatureURL !== '' ? false : true;\n\n this.dialogRef = this.dialogService.openDialog(this.signaturePopupPad);\n this.dialogRef.afterOpened().subscribe(() => {\n this.afterDialogOpened();\n });\n }\n\n private afterDialogOpened(): void {\n if (this.signatureURL && this.signatureURL !== '') {\n this.signaturePad.fromDataURL(this.signatureURL);\n this.signaturePad.off();\n }\n }\n\n ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\n this.setFieldHeight();\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n }\n\n ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n\n if (changes.src && changes.src.currentValue?.length > 0) {\n // Empty dataURI if there is change in the src.\n this.dataURI = null;\n\n // For clean the cache.\n // this.src = this.src ? this.src + '?t=' + new Date().toTimeString() : '';\n }\n }\n\n ngOnDestroy(): void {\n //\n }\n\n drawComplete(): void {\n // will be notified of szimek/signature_pad's onEnd event\n }\n\n drawStart(): void {\n // will be notified of szimek/signature_pad's onBegin event\n }\n\n openSignModal(): void {\n if (this.handleActions) {\n // If the signature is not empty open it in image viewer.\n //! Remove this `if` to always open signature in modal \n if (this.standAlone && this.dataURI) {\n const fileStrArr = this.dataURI.fileStr.split(';');\n\n if (fileStrArr.length === 2) {\n const win = window.open('', '_blank');\n const contentType = fileStrArr[0].split(':')[1];\n const base64 = fileStrArr[1].split(',')[1];\n const blob = this.fileService.convertFromb64toBlob(\n base64,\n contentType\n );\n const url = URL.createObjectURL(blob);\n win.location.href = url;\n }\n // signature allready exits\n } else {\n this.signatureURL = this.src;\n this.openSignatoreDlg(this.signatureURL);\n }\n } else {\n if (this.src.length > 0) {\n this.elementClick.emit({\n key: this.key,\n value: this.signatureURL\n });\n } else {\n this.chooseFile.emit();\n }\n }\n }\n\n clearSignModal(): void {\n this.signatureURL = '';\n this.signaturePad.clear();\n this.signaturePad.on();\n }\n\n deleteSignature(event: any): void {\n this.signatureURL = '';\n this.changeValue(this.signatureURL);\n this.cd.detectChanges();\n }\n\n saveSignModal(event: any): void {\n if (!this.signaturePad.isEmpty()) {\n this.signatureURL = this.signaturePad.toDataURL('image/png');\n const fileValue = {\n acceptedExtensions: this.acceptSignatureType,\n fileStr: this.signatureURL,\n fileExt: this.acceptSignatureType,\n };\n this.changeValue(fileValue);\n } else {\n this.signatureURL = '';\n this.changeValue(this.signatureURL);\n }\n\n this.dialogRef.close(this.signatureURL);\n }\n \n closeDialog(event) {\n this.dialogRef.close(event);\n }\n\n errorHandler(event: any): void {\n this.signatureURL = this.src = ''; // this.blankImage;\n }\n\n changeValue(fileData: any): void {\n if (this.handleActions) {\n this.dataURI = fileData;\n this.src = this.standAlone && this.dataURI ? this.dataURI.fileStr : '';\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n this.dataURI ? this.dataURI.fileExt : ''\n );\n }\n this.fileChange.emit(fileData);\n }\n\n onKeyPress_OpenSignModal(event: any): void {\n const e = event as KeyboardEvent;\n\n if ([13, 32].indexOf(e.which) !== -1) {\n this.openSignModal();\n }\n e.preventDefault();\n }\n}","<ng-container [formGroup]=\"form\">\n <ng-container>\n <ng-template #pepTemplate>\n <mat-form-field [formGroup]=\"form\" appearance=\"outline\">\n <div class=\"pep-file-wrapper\">\n <div class=\"pep-file body-sm\" [ngClass]=\"{ disable: disabled }\" [style.height]=\"fieldHeight\">\n <ng-container *ngIf=\"src != ''; then withImg; else noImg\"></ng-container>\n <ng-template #withImg>\n <button *ngIf=\"!disabled\" mat-button (click)=\"deleteSignature($event)\"\n class=\"pep-button icon-button weak md delete\" tabindex=\"-1\"\n [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <mat-icon>\n <pep-icon name=\"system_bin\"></pep-icon>\n </mat-icon>\n </button>\n <div class=\"pep-file-preview\" (click)=\"openSignModal()\">\n <img [src]=\"src\" [style.max-height]=\"fieldHeight\" class=\"pep-file-preview-img\"\n (error)=\"errorHandler($event)\" [alt]=\"label\"\n [ngClass]=\"['text-align-' + xAlignment]\" />\n </div>\n </ng-template>\n <ng-template #noImg>\n <div class=\"ellipsis pep-file-message\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon name=\"system_signature\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\">\n {{ (disabled ? 'MESSAGES.INFO_MISSING_SIGNATURE' : 'SIGNATURE.HINT') | translate }}\n </span>\n </div>\n </ng-template>\n </div>\n <input [id]=\"key\" matInput [formControlName]=\"key\" class=\"hidden-input signature\" type=\"text\"\n [value]=\"src\" (click)=\"openSignModal()\" (keypress)=\"onKeyPress_OpenSignModal($event)\"\n autocomplete=\"off\" readonly />\n </div>\n\n <mat-error><span class=\"body-xs\"\n [title]=\"mandatory && src.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"\n [innerText]=\"mandatory && src.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"></span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <div class=\"pep-file-container\" [ngClass]=\"{ 'one-row': rowSpan == 1, 'stand-alone': standAlone}\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\"\n [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"false && isActive && !disabled; then selectedBlock; else notSelectedBlock\">\n </ng-container>\n <ng-template #selectedBlock>\n <div class=\"pep-file-container\" [ngClass]=\"{ 'one-row': rowSpan == 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-template>\n <ng-template #notSelectedBlock>\n <div class=\"pep-file-container\" [ngClass]=\"{ 'one-row': rowSpan == 1 }\">\n <ng-container *ngTemplateOutlet=\"pepReadonlyTemplate; context: { isTableView: false}\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"false && isActive && !disabled; then selectedBlock; else notSelectedBlock\">\n </ng-container>\n <ng-template #selectedBlock>\n <div class=\"pep-file-container one-row\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-template>\n <ng-template #notSelectedBlock>\n <div class=\"pep-file-container one-row\">\n <ng-container *ngTemplateOutlet=\"pepReadonlyTemplate; context: { isTableView: true}\">\n </ng-container>\n </div>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- <ng-container *ngIf=\"inDialog === true\">\n <ng-container *ngTemplateOutlet=\"signaturePopupPad\"></ng-container>\n </ng-container> -->\n\n <!-- <div *ngIf=\"inDialog === false\" class=\"signature-backdrop modal\" [ngClass]=\"{ fade: !isVisibleModal }\" tabindex=\"-1\"\n role=\"dialog\" aria-labelledby=\"gridModalLabel\" aria-hidden=\"true\"\n [ngStyle]=\"{ display: isVisibleModal ? 'block' : 'none' }\">\n <div class=\"signature-modal modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <ng-container *ngTemplateOutlet=\"signaturePopupPad\"></ng-container>\n </div>\n </div>\n </div> -->\n\n <ng-template #pepReadonlyTemplate let-isTableView=\"isTableView\">\n <div class=\"pep-file-container\">\n <div class=\"pep-file-wrapper\">\n <div class=\"pep-file body-sm disable\">\n <ng-container *ngIf=\"src != ''; then withImg; else noImg\"></ng-container>\n <ng-template #withImg>\n <div class=\"pep-file-preview\" (click)=\"openSignModal()\">\n <img *ngIf=\"!isTableView\" [src]=\"src\" [style.max-height]=\"fieldHeight\"\n class=\"pep-file-preview-img\" (error)=\"errorHandler($event)\" [alt]=\"label\"\n [ngClass]=\"['text-align-' + xAlignment]\" />\n <img *ngIf=\"isTableView\" [src]=\"src\" [style.max-height]=\"fieldHeight\"\n class=\"pep-report-file pep-file-preview-img\" (error)=\"errorHandler($event)\"\n [alt]=\"label\" [ngClass]=\"['text-align-' + xAlignment]\" />\n </div>\n </ng-template>\n <ng-template #noImg></ng-template>\n </div>\n </div>\n </div>\n </ng-template>\n\n <ng-template #signaturePopupPad>\n <pep-dialog [title]=\"'SIGNATURE.DIALOG_TITLE' | translate\" [showFooter]=\"showActionBtn\" [showClose]=\"true\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <signature-pad #signaturePad [options]=\"signaturePadOptions\" (onBeginEvent)=\"drawStart()\"\n (onEndEvent)=\"drawComplete()\">\n </signature-pad>\n </ng-container>\n <div pep-dialog-actions class=\"pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button md weak\" [disabled]=\"readonly || disabled\"\n (click)=\"clearSignModal()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\" [disabled]=\"readonly || disabled\"\n (click)=\"saveSignModal($event)\">\n {{ 'ACTIONS.DONE' | translate }}\n </button>\n </div>\n </pep-dialog>\n </ng-template>\n\n</ng-container>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { SignaturePadModule } from 'ngx-signaturepad';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemBin,\n pepIconSystemSignature,\n pepIconSystemClose,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\nimport { PepFilesUploaderModule } from '@pepperi-addons/ngx-lib/files-uploader';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { PepSignatureComponent } from './signature.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatDialogModule,\n // External modules\n SignaturePadModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n PepFilesUploaderModule,\n PepDialogModule,\n ],\n exports: [PepSignatureComponent],\n declarations: [PepSignatureComponent],\n})\nexport class PepSignatureModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemBin,\n pepIconSystemSignature,\n pepIconSystemClose,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/signature\n */\nexport * from './signature.module';\nexport * from './signature.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i10","i1"],"mappings":"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"}
|
|
@@ -1454,7 +1454,7 @@ class PepSessionService {
|
|
|
1454
1454
|
this.jwtHelper = jwtHelper;
|
|
1455
1455
|
this.IDP_TOKEN_KEY = 'idp_token';
|
|
1456
1456
|
this.PAPI_BASE_URL_KEY = 'pepperi.baseurl';
|
|
1457
|
-
|
|
1457
|
+
// private readonly API_BASE_URL_KEY = 'pepperi.publicapibaseurl';
|
|
1458
1458
|
// private readonly WAPI_TOKEN_KEY = 'auth_token';
|
|
1459
1459
|
this.WAPI_BASE_URL_KEY = 'serverHostURL'; // pepperi.webapibaseurl
|
|
1460
1460
|
}
|
|
@@ -1507,10 +1507,6 @@ class PepSessionService {
|
|
|
1507
1507
|
const tokenObj = this.getParseToken();
|
|
1508
1508
|
return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null;
|
|
1509
1509
|
}
|
|
1510
|
-
getApiBaseUrl() {
|
|
1511
|
-
const tokenObj = this.getParseToken();
|
|
1512
|
-
return tokenObj ? tokenObj[this.API_BASE_URL_KEY] : null;
|
|
1513
|
-
}
|
|
1514
1510
|
}
|
|
1515
1511
|
PepSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSessionService, deps: [{ token: PepJwtHelperService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1516
1512
|
PepSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSessionService, providedIn: 'root' });
|
|
@@ -3187,14 +3183,6 @@ class PepHttpService {
|
|
|
3187
3183
|
const papiBaseUrl = this.sessionService.getPapiBaseUrl();
|
|
3188
3184
|
return this.postHttpCall(`${papiBaseUrl}${url}`, body, httpOptions);
|
|
3189
3185
|
}
|
|
3190
|
-
getApiCall(url, httpOptions = {}) {
|
|
3191
|
-
const apiBaseUrl = this.sessionService.getApiBaseUrl();
|
|
3192
|
-
return this.getHttpCall(`${apiBaseUrl}${url}`, httpOptions);
|
|
3193
|
-
}
|
|
3194
|
-
postApiCall(url, body, httpOptions = {}) {
|
|
3195
|
-
const apiBaseUrl = this.sessionService.getApiBaseUrl();
|
|
3196
|
-
return this.postHttpCall(`${apiBaseUrl}${url}`, body, httpOptions);
|
|
3197
|
-
}
|
|
3198
3186
|
}
|
|
3199
3187
|
PepHttpService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepHttpService, deps: [{ token: PepSessionService }, { token: PepCookieService }, { token: i3$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3200
3188
|
PepHttpService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepHttpService, providedIn: 'root' });
|