@dsivd/prestations-ng 17.8.2-beta.2 → 17.9.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/UPGRADING_V17.md +12 -8
- package/UPGRADING_V18.md +21 -0
- package/dsivd-prestations-ng-17.9.0-beta.1.tgz +0 -0
- package/esm2022/sdk-appinfo/application-info.mjs +1 -1
- package/esm2022/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs +11 -8
- package/esm2022/sdk-recaptcha/recaptcha.service.mjs +9 -13
- package/esm2022/sdk-recaptcha/sdk-recaptcha.component.mjs +10 -6
- package/fesm2022/dsivd-prestations-ng.mjs +27 -24
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/package.json +1 -1
- package/sdk-appinfo/application-info.d.ts +1 -0
- package/sdk-recaptcha/recaptcha.service.d.ts +4 -5
- package/sdk-recaptcha/sdk-recaptcha.component.d.ts +1 -1
- package/dsivd-prestations-ng-17.8.2-beta.2.tgz +0 -0
package/CHANGELOG.md
CHANGED
package/UPGRADING_V17.md
CHANGED
|
@@ -251,16 +251,20 @@ If you have captcha cloudflare setup already, you need to remove `CAPTCHA_URL_TO
|
|
|
251
251
|
})
|
|
252
252
|
```
|
|
253
253
|
|
|
254
|
-
|
|
254
|
+
#### Cloudflare turnstile verify delegated to Cybercache
|
|
255
255
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
256
|
+
Verification of the captcha is now made by Cybercache and not by the application itself (through `prestations-be`). You should remove all properties like `recaptcha.XXX`.
|
|
257
|
+
All these properties are now stored in Cybercache's configuration.
|
|
258
|
+
|
|
259
|
+
Therefore, you can remove properties related to this configuration :
|
|
260
|
+
|
|
261
|
+
- `recaptcha.byPassUUID`
|
|
262
|
+
- `recaptcha.proxyUrl`
|
|
263
|
+
- `recaptcha.proxyPort`
|
|
264
|
+
- `recaptcha.secretkey`
|
|
265
|
+
- `recaptcha.publickey`
|
|
262
266
|
|
|
263
|
-
|
|
267
|
+
Cookie storage is kept as before, therefore you can keep cookie related properties that starts with `recaptcha.cookie.YYY` in your properties.
|
|
264
268
|
|
|
265
269
|
### gesdem-confirmation / foehn-feedback-notification
|
|
266
270
|
|
package/UPGRADING_V18.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# PRESTAKIT : Upgrading from v17 to v18
|
|
2
|
+
|
|
3
|
+
For the commands in this guide, it is supposed that your are in the `front` folder of your project.
|
|
4
|
+
|
|
5
|
+
## PRESTATIONS-BE
|
|
6
|
+
|
|
7
|
+
From here on, we are back in the root folder of your project
|
|
8
|
+
|
|
9
|
+
### Captcha configuration
|
|
10
|
+
|
|
11
|
+
- As stated in the migration guide from v16 to v17, Cybercache is responsible of the captcha turnstile verify call.
|
|
12
|
+
- Therefore, you can remove properties related to this configuration :
|
|
13
|
+
- `recaptcha.byPassUUID`
|
|
14
|
+
- `recaptcha.proxyUrl`
|
|
15
|
+
- `recaptcha.proxyPort`
|
|
16
|
+
- `recaptcha.secretkey`
|
|
17
|
+
- `recaptcha.publickey`
|
|
18
|
+
|
|
19
|
+
Cookie storage is kept as before, therefore you can keep cookie related properties that starts with `recaptcha.cookie.YYY` in your properties.
|
|
20
|
+
|
|
21
|
+
See [Skeleton](https://dsigit.etat-de-vaud.ch/outils/git/projects/CYBSDK/repos/skeleton/pull-requests/708/overview) for a working example
|
|
Binary file
|
|
@@ -19,4 +19,4 @@ export class Captcha {
|
|
|
19
19
|
}
|
|
20
20
|
export class Portail {
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQVFJLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7SUFFdkQsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FhckI7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUVJLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBR3JDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxPQUFPO0NBR25CO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FLcEI7QUFFRCxNQUFNLE9BQU8sT0FBTztDQUduQjtBQUVELE1BQU0sT0FBTyxPQUFPO0NBT25CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUgbWF4LWNsYXNzZXMtcGVyLWZpbGVcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkluZm8ge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBidWlsZHRpbWU6IHN0cmluZztcbiAgICBjb250ZXh0UGF0aDogc3RyaW5nO1xuICAgIGVudmlyb25tZW50OiBzdHJpbmc7XG4gICAgZW52aXJvbm1lbnRMYWJlbDogc3RyaW5nO1xuICAgIGFwcFByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgZXRhcGVJbmZvczogeyBba2V5OiBzdHJpbmddOiBFdGFwZUluZm8gfTtcbiAgICBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcbiAgICBtb2NrZWRTZXJ2aWNlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBFdGFwZUluZm8ge1xuICAgIHRpdHJlRXRhcGU6IHN0cmluZztcbiAgICBpZE1ldGllckV0YXBlOiBzdHJpbmc7XG4gICAgcmVwcmlzZVBvc3NpYmxlOiBib29sZWFuO1xuICAgIHRpdHJlUHJlc3RhdGlvbjogc3RyaW5nO1xuICAgIGlkTWV0aWVyUHJlc3RhdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpY0NpYmxlOiBzdHJpbmdbXTtcbiAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICBkZXBsb3llZUN5YmVyOiBib29sZWFuO1xuICAgIGxpZW5BY2Nlczogc3RyaW5nO1xuICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzogbnVtYmVyO1xuICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c0Nvbm5lY3RlZDogbnVtYmVyO1xuICAgIHVzZXJGZWVkYmFja1JlcXVlc3RlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uIHtcbiAgICBjYXB0Y2hhPzogQ2FwdGNoYTtcbiAgICBwb3J0YWlsOiBQb3J0YWlsID0gbmV3IFBvcnRhaWwoKTtcbiAgICBkb2N1bWVudD86IERvY3VtZW50O1xuICAgIHNlc3Npb24/OiBTZXNzaW9uO1xufVxuXG5leHBvcnQgY2xhc3MgU2Vzc2lvbiB7XG4gICAgc2Vzc2lvblRva2VuTWVzc2FnZURlbGF5SW5NaW51dGVzOiBudW1iZXI7XG4gICAgaWFtTWVzc2FnZURlbGF5SW5NaW51dGVzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBEb2N1bWVudCB7XG4gICAgZmlsZU1heFNpemVJbkJ5dGVzQnlGb3JtS2V5OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xuICAgIG1heEZpbGVOYW1lTGVuZ3RoOiBzdHJpbmc7XG4gICAgZmlsZUV4dGVuc2lvbnM6IHN0cmluZztcbiAgICBpbGxlZ2FsQ2hhcmFjdGVyczogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2FwdGNoYSB7XG4gICAgcHVibGlja2V5Pzogc3RyaW5nO1xuICAgIGNhcHRjaGFVcmxUb2tlbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBvcnRhaWwge1xuICAgIGJhc2VWZENoVXJsPzogc3RyaW5nO1xuICAgIGN5YmVyTG9naW5Vcmw/OiBzdHJpbmc7XG4gICAgc3VwcG9ydEZvcm1Vcmw/OiBzdHJpbmc7XG4gICAgZXNwYWNlU2VjdXJpc2VVcmw/OiBzdHJpbmc7XG4gICAgcG9ydGFpbFRpdGxlc0J5UHJlc3RhQ29kZT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgYmFzZVVybD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -46,13 +46,16 @@ export class GrecaptchaComponent {
|
|
|
46
46
|
this.loaded.emit(true);
|
|
47
47
|
}
|
|
48
48
|
appendScriptTag() {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
50
|
+
this.recaptchaService.getCaptchaScriptUrl().subscribe(url => {
|
|
51
|
+
const script = document.createElement('script');
|
|
52
|
+
script.id = SCRIPT_ID;
|
|
53
|
+
script.src = url;
|
|
54
|
+
script.async = true;
|
|
55
|
+
script.defer = true;
|
|
56
|
+
script.onerror = () => this.scriptError.emit(true);
|
|
57
|
+
this.recaptchaScriptContainer.nativeElement.appendChild(script);
|
|
58
|
+
});
|
|
56
59
|
}
|
|
57
60
|
removeScript() {
|
|
58
61
|
this.scriptError.emit(false);
|
|
@@ -107,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
107
110
|
type: ViewChild,
|
|
108
111
|
args: ['recaptchaScriptContainer', { static: true }]
|
|
109
112
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9ncmVjYXB0Y2hhL2dyZWNhcHRjaGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWNhcHRjaGEvZ3JlY2FwdGNoYS9ncmVjYXB0Y2hhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDOzs7QUFJdkIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLCtCQUErQixDQUFDO0FBVXpEOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyxtQkFBbUI7SUF3QjVCLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbkJ0RCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUdyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFHMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUduRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQVVpQixDQUFDO0lBRTFELFFBQVE7UUFDSiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJ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QzsrR0FqSFEsbUJBQW1CO21HQUFuQixtQkFBbUIsd2RDbkNoQywwRUFFQTs7NEZEaUNhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFFSSxnQkFBZ0I7cUZBSzFCLE9BQU87c0JBRE4sS0FBSztnQkFJTixNQUFNO3NCQURMLE1BQU07Z0JBSVAsV0FBVztzQkFEVixNQUFNO2dCQUlQLGNBQWM7c0JBRGIsTUFBTTtnQkFJUCxTQUFTO3NCQURSLE1BQU07Z0JBSVAsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakQsd0JBQXdCO3NCQUR2QixTQUFTO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVjYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uL3JlY2FwdGNoYS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFNDUklQVF9JRCA9ICdwcmVzdGF0aW9ucy1uZy1jYXB0Y2hhLXNjcmlwdCc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgZ3JlY2FwdGNoYTogYW55O1xuICAgICAgICByZUNhcHRjaGFMb2FkOiAoKSA9PiB2b2lkO1xuICAgIH1cbn1cblxuLyoqXG4gKiBJbnRlZ3JhdGlvbiB3aXRoIEdvb2dsZSBSZWNhcHRjaGEuXG4gKlxuICogQWxsIHRoZSBxdWlya3MgYW5kIHdlaXJkbmVzcyBvZiB0aGlzIGludGVncmF0aW9uIHNob3VsZCBiZSBkb25lIGluIHRoaXNcbiAqIGNvbXBvbmVudC5cbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdhcHAtZ3JlY2FwdGNoYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdyZWNhcHRjaGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBzaXRlS2V5OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBzY3JpcHRFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHRva2VuT25TdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZGVzdHJveWVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQFZpZXdDaGlsZCgncmVjYXB0Y2hhQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICByZWNhcHRjaGFDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdyZWNhcHRjaGFTY3JpcHRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHJlY2FwdGNoYVNjcmlwdENvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgd2lkZ2V0SWQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVjYXB0Y2hhU2VydmljZTogUmVjYXB0Y2hhU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBJZiB0aGUgY29tcG9uZW50IGlzIGluIHRoZSBjb21wb25lbnQgdHJlZSwgbG9hZCB0aGUgY2FwdGNoYSByZWdhcmRsZXNzLlxuICAgICAgICB0aGlzLmxvYWRDYXB0Y2hhKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlU2NyaXB0KCk7XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2FmZUNhcHRjaGFSZXNldCgpO1xuXG4gICAgICAgIHRoaXMudG9rZW5PblN1Y2Nlc3MuZW1pdChudWxsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlckNhcHRjaGEoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5zaXRlS2V5KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgc2l0ZUtleSBvbiB0aGUgY29tcG9uZW50Jyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXdpbmRvdy5ncmVjYXB0Y2hhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXB0Y2hhIGhhcyBub3QgYmVlbiBsb2FkZWQgcHJvcGVybHknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgICAgICAgIHNpdGVrZXk6IHRoaXMuc2l0ZUtleSxcbiAgICAgICAgICAgIHRoZW1lOiAnbGlnaHQnLFxuICAgICAgICAgICAgY2FsbGJhY2s6ICh0b2tlbjogc3RyaW5nKSA9PiB0aGlzLnRva2VuT25TdWNjZXNzLmVtaXQodG9rZW4pLFxuICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB0aGlzLnJlc2V0KClcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLndpZGdldElkID0gd2luZG93LmdyZWNhcHRjaGEucmVuZGVyKFxuICAgICAgICAgICAgdGhpcy5yZWNhcHRjaGFDb250YWluZXIubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubG9hZGVkLmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBlbmRTY3JpcHRUYWcoKTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgdGhpcy5yZWNhcHRjaGFTZXJ2aWNlLmdldENhcHRjaGFTY3JpcHRVcmwoKS5zdWJzY3JpYmUodXJsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAgICAgc2NyaXB0LmlkID0gU0NSSVBUX0lEO1xuICAgICAgICAgICAgc2NyaXB0LnNyYyA9IHVybDtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoKSA9PiB0aGlzLnNjcmlwdEVycm9yLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnJlY2FwdGNoYVNjcmlwdENvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlU2NyaXB0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcmlwdEVycm9yLmVtaXQoZmFsc2UpO1xuXG4gICAgICAgIHdpbmRvdy5yZUNhcHRjaGFMb2FkID0gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRDYXB0Y2hhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRlZC5lbWl0KGZhbHNlKTtcblxuICAgICAgICAvLyBJbiBjYXNlIHRoZSBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWQuXG4gICAgICAgIGNvbnN0IGV4aXN0aW5nVGFnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoU0NSSVBUX0lEKTtcbiAgICAgICAgaWYgKGV4aXN0aW5nVGFnKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckNhcHRjaGEoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIGNhcHRjaGEgbG9hZHMuXG4gICAgICAgIHdpbmRvdy5yZUNhcHRjaGFMb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJDYXB0Y2hhKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQWRkIHRoZSBzY3JpcHQgd2l0aCB0aGUgYHJlQ2FwdGNoYUxvYWRgIGZ1bmN0aW9uIGFzIGEgY2FsbGJhY2suXG4gICAgICAgIHRoaXMuYXBwZW5kU2NyaXB0VGFnKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYWZlQ2FwdGNoYVJlc2V0KCk6IHZvaWQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKCEhd2luZG93LmdyZWNhcHRjaGEpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuZ3JlY2FwdGNoYS5yZXNldCh0aGlzLndpZGdldElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSW4gY2FzZSB0aGUgcmVzZXQgb2YgdGhlIEdvb2dsZSBDYXB0Y2hhIHRocm93cyBhbiBlcnJvci5cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICNyZWNhcHRjaGFTY3JpcHRDb250YWluZXI+PC9kaXY+XG48ZGl2ICNyZWNhcHRjaGFDb250YWluZXI+PC9kaXY+XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpParams } from '@angular/common/http';
|
|
2
|
-
import {
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, combineLatest, EMPTY, merge, of } from 'rxjs';
|
|
4
4
|
import { catchError, debounceTime, map } from 'rxjs/operators';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -12,12 +12,8 @@ import * as i6 from "../gesdem/gesdem-event.service";
|
|
|
12
12
|
import * as i7 from "../sdk-appinfo/application-info.service";
|
|
13
13
|
export const RECAPTCHA_API_URL = 'api/recaptcha';
|
|
14
14
|
export const CAPTCHA_ERROR_NAME = 'recaptcha';
|
|
15
|
-
export const CAPTCHA_URL_TOKEN = new InjectionToken('captchaScriptUrl', {
|
|
16
|
-
providedIn: 'root',
|
|
17
|
-
factory: () => 'https://challenges.cloudflare.com/turnstile/v0/api.js?onload=reCaptchaLoad&render=explicit&compat=recaptcha'
|
|
18
|
-
});
|
|
19
15
|
export class RecaptchaService {
|
|
20
|
-
constructor(http, sessionInfo, route, validationHandlerService, gesdemService, gesdemEventService, applicationInfoService
|
|
16
|
+
constructor(http, sessionInfo, route, validationHandlerService, gesdemService, gesdemEventService, applicationInfoService) {
|
|
21
17
|
this.http = http;
|
|
22
18
|
this.sessionInfo = sessionInfo;
|
|
23
19
|
this.route = route;
|
|
@@ -25,11 +21,11 @@ export class RecaptchaService {
|
|
|
25
21
|
this.gesdemService = gesdemService;
|
|
26
22
|
this.gesdemEventService = gesdemEventService;
|
|
27
23
|
this.applicationInfoService = applicationInfoService;
|
|
28
|
-
this.captchaScriptUrl = captchaScriptUrl;
|
|
29
24
|
this.errorsSubject = new BehaviorSubject([]);
|
|
30
25
|
this.errors = this.initErrorObservable(); // has to be first since it is used in initShouldDisplayObservable !
|
|
31
26
|
this.shouldDisplay = this.initShouldDisplayObservable();
|
|
32
27
|
this.publicKey = this.initPublicKeyObservable();
|
|
28
|
+
this.captchaScriptUrl = this.initCaptchaScriptUrlObservable();
|
|
33
29
|
}
|
|
34
30
|
onSuccess(token) {
|
|
35
31
|
// To be accessed by the gesdem service and to avoid to have a circular
|
|
@@ -153,6 +149,9 @@ export class RecaptchaService {
|
|
|
153
149
|
initPublicKeyObservable() {
|
|
154
150
|
return this.applicationInfoService.data.pipe(map(applicationInfo => this.getPublicKeyOrNull(applicationInfo)));
|
|
155
151
|
}
|
|
152
|
+
initCaptchaScriptUrlObservable() {
|
|
153
|
+
return this.applicationInfoService.data.pipe(map(applicationInfo => applicationInfo?.configuration?.captcha?.captchaUrlToken));
|
|
154
|
+
}
|
|
156
155
|
getPublicKeyOrNull(applicationInfo) {
|
|
157
156
|
// Replace this whole shenanigan with applicationInfo?.configuration?.captcha?.publickey when
|
|
158
157
|
// Typescript supports it.
|
|
@@ -169,7 +168,7 @@ export class RecaptchaService {
|
|
|
169
168
|
}
|
|
170
169
|
return captcha.publickey || null;
|
|
171
170
|
}
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, deps: [{ token: i1.HttpClient }, { token: i2.SessionInfo }, { token: i3.ActivatedRoute }, { token: i4.ValidationHandlerService }, { token: i5.GesdemHandlerService }, { token: i6.GesdemEventService }, { token: i7.ApplicationInfoService }
|
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, deps: [{ token: i1.HttpClient }, { token: i2.SessionInfo }, { token: i3.ActivatedRoute }, { token: i4.ValidationHandlerService }, { token: i5.GesdemHandlerService }, { token: i6.GesdemEventService }, { token: i7.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
173
172
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, providedIn: 'root' }); }
|
|
174
173
|
}
|
|
175
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, decorators: [{
|
|
@@ -177,8 +176,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
177
176
|
args: [{
|
|
178
177
|
providedIn: 'root'
|
|
179
178
|
}]
|
|
180
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.SessionInfo }, { type: i3.ActivatedRoute }, { type: i4.ValidationHandlerService }, { type: i5.GesdemHandlerService }, { type: i6.GesdemEventService }, { type: i7.ApplicationInfoService }
|
|
181
|
-
type: Inject,
|
|
182
|
-
args: [CAPTCHA_URL_TOKEN]
|
|
183
|
-
}] }] });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9yZWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE9BQU8sRUFDSCxlQUFlLEVBQ2YsYUFBYSxFQUNiLEtBQUssRUFDTCxLQUFLLEVBRUwsRUFBRSxFQUNMLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVUvRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUMvQyxrQkFBa0IsRUFDbEI7SUFDSSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1YsNkdBQTZHO0NBQ3BILENBQ0osQ0FBQztBQUtGLE1BQU0sT0FBTyxnQkFBZ0I7SUFPekIsWUFDWSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixLQUFxQixFQUNyQix3QkFBa0QsRUFDbEQsYUFBbUMsRUFDbkMsa0JBQXNDLEVBQ3RDLHNCQUE4QyxFQUNuQixnQkFBd0I7UUFQbkQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdB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bnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICAgIEJlaGF2aW9yU3ViamVjdCxcbiAgICBjb21iaW5lTGF0ZXN0LFxuICAgIEVNUFRZLFxuICAgIG1lcmdlLFxuICAgIE9ic2VydmFibGUsXG4gICAgb2Zcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8gfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX0FQSV9VUkwgPSAnYXBpL3JlY2FwdGNoYSc7XG5leHBvcnQgY29uc3QgQ0FQVENIQV9FUlJPUl9OQU1FID0gJ3JlY2FwdGNoYSc7XG5cbmV4cG9ydCBjb25zdCBDQVBUQ0hBX1VSTF9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAgICdjYXB0Y2hhU2NyaXB0VXJsJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT5cbiAgICAgICAgICAgICdodHRwczovL2NoYWxsZW5nZXMuY2xvdWRmbGFyZS5jb20vdHVybnN0aWxlL3YwL2FwaS5qcz9vbmxvYWQ9cmVDYXB0Y2hhTG9hZCZyZW5kZXI9ZXhwbGljaXQmY29tcGF0PXJlY2FwdGNoYSdcbiAgICB9XG4pO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1FcnJvcltdPihbXSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG91bGREaXNwbGF5OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHVibGljS2V5OiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcHJpdmF0ZSB0b2tlbjogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25IYW5kbGVyU2VydmljZTogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoQ0FQVENIQV9VUkxfVE9LRU4pIHByaXZhdGUgY2FwdGNoYVNjcmlwdFVybDogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5pbml0RXJyb3JPYnNlcnZhYmxlKCk7IC8vIGhhcyB0byBiZSBmaXJzdCBzaW5jZSBpdCBpcyB1c2VkIGluIGluaXRTaG91bGREaXNwbGF5T2JzZXJ2YWJsZSAhXG4gICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheSA9IHRoaXMuaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMucHVibGljS2V5ID0gdGhpcy5pbml0UHVibGljS2V5T2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIG9uU3VjY2Vzcyh0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIFRvIGJlIGFjY2Vzc2VkIGJ5IHRoZSBnZXNkZW0gc2VydmljZSBhbmQgdG8gYXZvaWQgdG8gaGF2ZSBhIGNpcmN1bGFyXG4gICAgICAgIC8vIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgZ2VzZGVtSGFuZGxlclNlcnZpY2UgYW5kIHRoZSBjYXB0Y2hhIHNlcnZpY2UuXG4gICAgICAgIHRoaXMuZ2VzZGVtU2VydmljZS5zZXRDYXB0Y2hhVG9rZW4odG9rZW4pO1xuXG4gICAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcblxuICAgICAgICBpZiAoISF0aGlzLnRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgICAucG9zdChSRUNBUFRDSEFfQVBJX1VSTCwgeyB0b2tlbjogdGhpcy50b2tlbiB9KVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gNDA0LCB0aW1lb3V0IG9yIG5ldHdvcmsgaXNzdWUuIENvdWxkIGhhcHBlbi5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZGUgbGEgdmFsaWRhdGlvbiBkdSBjYXB0Y2hhLidcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgICAgIChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSAhIWRhdGEuc3VjY2VzcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgYW55IHBvdGVudGlhbCBlcnJvcnMgZnJvbSB0aGUgc2VydmVyLiBXZSBjYW4gZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IGJlY2F1c2UgdGhpcyBzaG91bGQgYmUgdGhlIG9ubHkgZXJyb3IgaW4gdGhlIHNldCBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXB0Y2hhIG11c3QgYmUgdmFsaWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgZm9ybSBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS51cGRhdGVFcnJvcnMoW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRocm93biwgdGhhdCdzIHByZXR0eSBiYWQgYmVjYXVzZSBpdCBtZWFuc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgR29vZ2xlIGNvdWxkbid0IHZlcmlmeSB0aGUgY2FwdGNoYSBrZXkuIFRoaXMgaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlaXRoZXIgYW4gYXR0YWNrIG9yIGEgbWlzY29uZmlndXJhdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEVycm9yKCdWb3RyZSBjYXB0Y2hhIGVzdCBpbnZhbGlkZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFkZEVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBleGlzdGluZ0Vycm9ycyA9IHRoaXMuZXJyb3JzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdFcnJvciA9IHtcbiAgICAgICAgICAgIG5hbWU6IENBUFRDSEFfRVJST1JfTkFNRSxcbiAgICAgICAgICAgIGNvZGU6IENBUFRDSEFfRVJST1JfTkFNRSxcbiAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmVycm9yc1N1YmplY3QubmV4dChbbmV3RXJyb3IsIC4uLmV4aXN0aW5nRXJyb3JzXSk7XG4gICAgfVxuXG4gICAgY2xlYXJFcnJvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXJyb3JzU3ViamVjdC5uZXh0KFtdKTtcbiAgICB9XG5cbiAgICBnZXRFcnJvcnMoKTogT2JzZXJ2YWJsZTxGb3JtRXJyb3JbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnM7XG4gICAgfVxuXG4gICAgZ2V0U2hvdWxkRGlzcGxheSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkRGlzcGxheTtcbiAgICB9XG5cbiAgICBnZXRQdWJsaWNLZXkoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHVibGljS2V5O1xuICAgIH1cblxuICAgIGdldFRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2VuO1xuICAgIH1cblxuICAgIGdldENhcHRjaGFTY3JpcHRVcmwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FwdGNoYVNjcmlwdFVybDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFcnJvck9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxGb3JtRXJyb3JbXT4ge1xuICAgICAgICBjb25zdCBtYXRjaGluZ0dlc2RlbUVycm9ycyA9IG1lcmdlKFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZXJlJ3MgYW4gaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgb2YoW10pLFxuICAgICAgICAgICAgLy8gUmVhZCBmcm9tIHRoZSBnZXNkZW0gc2VydmljZSBhbGwgZXJyb3JzLlxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3RcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgLy8gRXJyb3JzIGZyb20gR2VzRGVtLCBvciBub3RoaW5nXG4gICAgICAgICAgICBtYXAoZXJyb3JzID0+IGVycm9ycy5maWx0ZXIoZXggPT4gQ0FQVENIQV9FUlJPUl9OQU1FID09PSBleC5jb2RlKSlcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBCaW5kIGVycm9ycyB0byB0aGUgY29tcG9uZW50LCBlaXRoZXIgZnJvbSB0aGUgYmFja2VuZCBvZiBmcm9tIHRoaXMgY29tcG9uZW50XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIC8vIEVycm9ycyBmcm9tIGdlc2RlbSBtYXRjaGluZyB0aGUgbmFtZSBvZiB0aGUgY2FwdGNoYS5cbiAgICAgICAgICAgIG1hdGNoaW5nR2VzZGVtRXJyb3JzLFxuICAgICAgICAgICAgLy8gTWFudWFsIGVycm9yc1xuICAgICAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBNZXJnZSB0aGUgdHdvIGVycm9ycyBzZXRzXG4gICAgICAgICAgICBtYXAoKFtnZXNkZW1FcnJvcnMsIGxvY2FsRXJyb3JzXSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLmdlc2RlbUVycm9ycyxcbiAgICAgICAgICAgICAgICAuLi5sb2NhbEVycm9yc1xuICAgICAgICAgICAgXSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTaG91bGREaXNwbGF5T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRPYnNlcnZhYmxlID0gdGhpcy5zZXNzaW9uSW5mby5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiAhdGhpcy5zZXNzaW9uSW5mby5uZXZlckNvbm5lY3RlZCAmJiAhIWRhdGEpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaGFzQnlwYXNzRW5hYmxlZE9ic2VydmFibGUgPSB0aGlzLmNoZWNrQnlwYXNzUHJvcGVydHkoKS5waXBlKFxuICAgICAgICAgICAgbWFwKGJ5cGFzcyA9PiAhIWJ5cGFzcy52YWx1ZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlID0gbWVyZ2UoXG4gICAgICAgICAgICAvLyBUbyBoYXZlIGFuIGluaXRpYWwgdmFsdWUuIENhbiBiZSBudWxsIGlmIHRoZXJlIGlzIG5vIGZvcm0uXG4gICAgICAgICAgICBvZih0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlKSxcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIGZvcm0gZnJvbSBHZXNEZW1cbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgZm9ybSA9PlxuICAgICAgICAgICAgICAgICAgICAhIWZvcm0gJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhICYmXG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIGlzQ29ubmVjdGVkT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIGhhc0J5cGFzc0VuYWJsZWRPYnNlcnZhYmxlLFxuICAgICAgICAgICAgaGFzUmVmZXJlbmNlT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBUbyB3b3JrIGFyb3VuZCByYXBpZGx5IGNoYW5naW5nIG9ic2VydmFibGVzLCBzdWNoIGFzIHRoZSBmb3JtXG4gICAgICAgICAgICAvLyB3aGVuIHRoZSBwYWdlIGxvYWRzLlxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgIGlzQ29ubmVjdGVkLFxuICAgICAgICAgICAgICAgICAgICBoYXNCeXBhc3NFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICBoYXNSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgIGNhcHRjaGFFcnJvcnNcbiAgICAgICAgICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0NhcHRjaGFFcnJvciA9ICEhY2FwdGNoYUVycm9ycz8ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ2FwdGNoYUVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbHdheXMgZGlzcGxheSB0aGUgY29tcG9uZW50IGlmIGl0IGhhcyBhbiBlcnJvciwgdXNlciBjb3VsZCBoYXMgbG9nZ2VkIG91dCBpbiBhbm90aGVyIHdpbmRvd1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGRpc3BsYXkgdGhlIGNhcHRjaGEgaWYgdGhlIHVzZXIgaXMgY29ubmVjdGVkLCB0aGUgYXBwbGljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBoYXMgYSByZWZlcmVuY2Ugb3IgaWYgdGhlIGJ5cGFzcyBpcyBlbmFibGVkLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWlzQ29ubmVjdGVkICYmICFoYXNCeXBhc3NFbmFibGVkICYmICFoYXNSZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBjaGVja0J5cGFzc1Byb3BlcnR5KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9ICEhdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5yZUNhcHRjaGFCeVBhc3NVVUlEXG4gICAgICAgICAgICA/IG5ldyBIdHRwUGFyYW1zKCkuc2V0KFxuICAgICAgICAgICAgICAgICAgJ3JlQ2FwdGNoYUJ5UGFzc1VVSUQnLFxuICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5yZUNhcHRjaGFCeVBhc3NVVUlEXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHtSRUNBUFRDSEFfQVBJX1VSTH0vYnlwYXNzYCwgeyBwYXJhbXMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0UHVibGljS2V5T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChhcHBsaWNhdGlvbkluZm8gPT4gdGhpcy5nZXRQdWJsaWNLZXlPck51bGwoYXBwbGljYXRpb25JbmZvKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFB1YmxpY0tleU9yTnVsbChcbiAgICAgICAgYXBwbGljYXRpb25JbmZvOiBBcHBsaWNhdGlvbkluZm9cbiAgICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgLy8gUmVwbGFjZSB0aGlzIHdob2xlIHNoZW5hbmlnYW4gd2l0aCBhcHBsaWNhdGlvbkluZm8/LmNvbmZpZ3VyYXRpb24/LmNhcHRjaGE/LnB1YmxpY2tleSB3aGVuXG4gICAgICAgIC8vIFR5cGVzY3JpcHQgc3VwcG9ydHMgaXQuXG4gICAgICAgIGlmICghYXBwbGljYXRpb25JbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgY29uZmlndXJhdGlvbiB9ID0gYXBwbGljYXRpb25JbmZvO1xuXG4gICAgICAgIGlmICghY29uZmlndXJhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjYXB0Y2hhIH0gPSBjb25maWd1cmF0aW9uO1xuXG4gICAgICAgIGlmICghY2FwdGNoYSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FwdGNoYS5wdWJsaWNrZXkgfHwgbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
179
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.SessionInfo }, { type: i3.ActivatedRoute }, { type: i4.ValidationHandlerService }, { type: i5.GesdemHandlerService }, { type: i6.GesdemEventService }, { type: i7.ApplicationInfoService }] });
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9yZWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGFBQWEsRUFDYixLQUFLLEVBQ0wsS0FBSyxFQUVMLEVBQUUsRUFDTCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFVL0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztBQUs5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBUXpCLFlBQ1ksSUFBZ0IsRUFDaEIsV0FBd0IsRUFDeEIsS0FBcUIsRUFDckIsd0JBQWtELEVBQ2xELGFBQW1DLEVBQ25DLGtCQUFzQyxFQUN0QyxzQkFBOEM7UUFOOUMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFiekMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBYyxFQUFFLENBQUMsQ0FBQztRQWVsRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsb0VBQW9FO1FBQzlHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ25CLHVFQUF1RTtRQUN2RSx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJO2lCQUNKLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQzlDLElBQUksQ0FDRCxVQUFVLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRTtnQkFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakIsK0NBQStDO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxDQUNULDJEQUEyRCxDQUM5RCxDQUFDO2dCQUNGLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUNMO2lCQUNBLFNBQVM7WUFDTiw4REFBOEQ7WUFDOUQsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDVixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDL0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDVix3REFBd0Q7b0JBQ3hELDJEQUEyRDtvQkFDM0QsNkRBQTZEO29CQUM3RCxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO3FCQUFNLENBQUM7b0JBQ0osd0RBQXdEO29CQUN4RCx1REFBdUQ7b0JBQ3ZELDBDQUEwQztvQkFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2dCQUNoRCxDQUFDO1lBQ0wsQ0FBQyxDQUNKLENBQUM7UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3BCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckQsTUFBTSxRQUFRLEdBQUc7WUFDYixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsT0FBTztTQUNWLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxtQkFBbUI7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSztRQUM5Qix3Q0FBd0M7UUFDeEMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNOLDJDQUEyQztRQUMzQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQ3hELENBQUMsSUFBSTtRQUNGLGlDQUFpQztRQUNqQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3JFLENBQUM7UUFFRiwrRUFBK0U7UUFDL0UsT0FBTyxhQUFhLENBQUM7WUFDakIsdURBQXVEO1lBQ3ZELG9CQUFvQjtZQUNwQixnQkFBZ0I7WUFDaEIsSUFBSSxDQUFDLGFBQWE7U0FDckIsQ0FBQyxDQUFDLElBQUk7UUFDSCw0QkFBNEI7UUFDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLEdBQUcsWUFBWTtZQUNmLEdBQUcsV0FBVztTQUNqQixDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTywyQkFBMkI7UUFDL0IsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3BELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUMxRCxDQUFDO1FBRUYsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQzlELEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQ2hDLENBQUM7UUFFRixNQUFNLHNCQUFzQixHQUFHLEtBQUs7UUFDaEMsNkRBQTZEO1FBQzdELEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUNuQyw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLENBQ3pELENBQUMsSUFBSSxDQUNGLEdBQUcsQ0FDQyxJQUFJLENBQUMsRUFBRSxDQUNILENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FDdkQsQ0FDSixDQUFDO1FBRUYsT0FBTyxhQUFhLENBQUM7WUFDakIscUJBQXFCO1lBQ3JCLDBCQUEwQjtZQUMxQixzQkFBc0I7WUFDdEIsSUFBSSxDQUFDLE1BQU07U0FDZCxDQUFDLENBQUMsSUFBSTtRQUNILGdFQUFnRTtRQUNoRSx1QkFBdUI7UUFDdkIsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUNmLEdBQUcsQ0FDQyxDQUFDLENBQ0csV0FBVyxFQUNYLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osYUFBYSxDQUNoQixFQUFFLEVBQUU7WUFDRCxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztZQUNoRCxJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNsQiwrRkFBK0Y7Z0JBQy9GLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCx1RUFBdUU7WUFDdkUsdURBQXVEO1lBQ3ZELE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM5RCxDQUFDLENBQ0osQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELDhEQUE4RDtJQUN0RCxtQkFBbUI7UUFDdkIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUI7WUFDaEUsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsR0FBRyxDQUNoQixxQkFBcUIsRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUN0RDtZQUNILENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVPLHVCQUF1QjtRQUMzQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNOLENBQUM7SUFFTyw4QkFBOEI7UUFDbEMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUNDLGVBQWUsQ0FBQyxFQUFFLENBQ2QsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUMvRCxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCLENBQ3RCLGVBQWdDO1FBRWhDLDZGQUE2RjtRQUM3RiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25CLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsZUFBZSxDQUFDO1FBRTFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGFBQWEsQ0FBQztRQUVsQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDOytHQWxPUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZiLE1BQU07OzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgICBCZWhhdmlvclN1YmplY3QsXG4gICAgY29tYmluZUxhdGVzdCxcbiAgICBFTVBUWSxcbiAgICBtZXJnZSxcbiAgICBPYnNlcnZhYmxlLFxuICAgIG9mXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgR2VzZGVtRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mbyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFJFQ0FQVENIQV9BUElfVVJMID0gJ2FwaS9yZWNhcHRjaGEnO1xuZXhwb3J0IGNvbnN0IENBUFRDSEFfRVJST1JfTkFNRSA9ICdyZWNhcHRjaGEnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlY2FwdGNoYVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1FcnJvcltdPihbXSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzaG91bGREaXNwbGF5OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHVibGljS2V5OiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXB0Y2hhU2NyaXB0VXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgcHJpdmF0ZSB0b2tlbjogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25IYW5kbGVyU2VydmljZTogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbVNlcnZpY2U6IEdlc2RlbUhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGdlc2RlbUV2ZW50U2VydmljZTogR2VzZGVtRXZlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLmluaXRFcnJvck9ic2VydmFibGUoKTsgLy8gaGFzIHRvIGJlIGZpcnN0IHNpbmNlIGl0IGlzIHVzZWQgaW4gaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlICFcbiAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5ID0gdGhpcy5pbml0U2hvdWxkRGlzcGxheU9ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5wdWJsaWNLZXkgPSB0aGlzLmluaXRQdWJsaWNLZXlPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuY2FwdGNoYVNjcmlwdFVybCA9IHRoaXMuaW5pdENhcHRjaGFTY3JpcHRVcmxPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgb25TdWNjZXNzKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gVG8gYmUgYWNjZXNzZWQgYnkgdGhlIGdlc2RlbSBzZXJ2aWNlIGFuZCB0byBhdm9pZCB0byBoYXZlIGEgY2lyY3VsYXJcbiAgICAgICAgLy8gZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSBnZXNkZW1IYW5kbGVyU2VydmljZSBhbmQgdGhlIGNhcHRjaGEgc2VydmljZS5cbiAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLnNldENhcHRjaGFUb2tlbih0b2tlbik7XG5cbiAgICAgICAgdGhpcy50b2tlbiA9IHRva2VuO1xuXG4gICAgICAgIGlmICghIXRoaXMudG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5wb3N0KFJFQ0FQVENIQV9BUElfVVJMLCB7IHRva2VuOiB0aGlzLnRva2VuIH0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyA0MDQsIHRpbWVvdXQgb3IgbmV0d29yayBpc3N1ZS4gQ291bGQgaGFwcGVuLlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSB2YWxpZGF0aW9uIGR1IGNhcHRjaGEuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9ICEhZGF0YS5zdWNjZXNzO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciBhbnkgcG90ZW50aWFsIGVycm9ycyBmcm9tIHRoZSBzZXJ2ZXIuIFdlIGNhbiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgYmVjYXVzZSB0aGlzIHNob3VsZCBiZSB0aGUgb25seSBlcnJvciBpbiB0aGUgc2V0IGFzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhcHRjaGEgbXVzdCBiZSB2YWxpZCB0byBoYXZlIGF0IGxlYXN0IG9uZSBmb3JtIGVycm9yLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnVwZGF0ZUVycm9ycyhbXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgdGhyb3duLCB0aGF0J3MgcHJldHR5IGJhZCBiZWNhdXNlIGl0IG1lYW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBHb29nbGUgY291bGRuJ3QgdmVyaWZ5IHRoZSBjYXB0Y2hhIGtleS4gVGhpcyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVpdGhlciBhbiBhdHRhY2sgb3IgYSBtaXNjb25maWd1cmF0aW9uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3IoJ1ZvdHJlIGNhcHRjaGEgZXN0IGludmFsaWRlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkRXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nRXJyb3JzID0gdGhpcy5lcnJvcnNTdWJqZWN0LmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld0Vycm9yID0ge1xuICAgICAgICAgICAgbmFtZTogQ0FQVENIQV9FUlJPUl9OQU1FLFxuICAgICAgICAgICAgY29kZTogQ0FQVENIQV9FUlJPUl9OQU1FLFxuICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZXJyb3JzU3ViamVjdC5uZXh0KFtuZXdFcnJvciwgLi4uZXhpc3RpbmdFcnJvcnNdKTtcbiAgICB9XG5cbiAgICBjbGVhckVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0Lm5leHQoW10pO1xuICAgIH1cblxuICAgIGdldEVycm9ycygpOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcbiAgICB9XG5cbiAgICBnZXRTaG91bGREaXNwbGF5KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG91bGREaXNwbGF5O1xuICAgIH1cblxuICAgIGdldFB1YmxpY0tleSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wdWJsaWNLZXk7XG4gICAgfVxuXG4gICAgZ2V0VG9rZW4oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgfVxuXG4gICAgZ2V0Q2FwdGNoYVNjcmlwdFVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXB0Y2hhU2NyaXB0VXJsO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEVycm9yT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPiB7XG4gICAgICAgIGNvbnN0IG1hdGNoaW5nR2VzZGVtRXJyb3JzID0gbWVyZ2UoXG4gICAgICAgICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlcmUncyBhbiBpbml0aWFsIHZhbHVlXG4gICAgICAgICAgICBvZihbXSksXG4gICAgICAgICAgICAvLyBSZWFkIGZyb20gdGhlIGdlc2RlbSBzZXJ2aWNlIGFsbCBlcnJvcnMuXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAvLyBFcnJvcnMgZnJvbSBHZXNEZW0sIG9yIG5vdGhpbmdcbiAgICAgICAgICAgIG1hcChlcnJvcnMgPT4gZXJyb3JzLmZpbHRlcihleCA9PiBDQVBUQ0hBX0VSUk9SX05BTUUgPT09IGV4LmNvZGUpKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEJpbmQgZXJyb3JzIHRvIHRoZSBjb21wb25lbnQsIGVpdGhlciBmcm9tIHRoZSBiYWNrZW5kIG9mIGZyb20gdGhpcyBjb21wb25lbnRcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgLy8gRXJyb3JzIGZyb20gZ2VzZGVtIG1hdGNoaW5nIHRoZSBuYW1lIG9mIHRoZSBjYXB0Y2hhLlxuICAgICAgICAgICAgbWF0Y2hpbmdHZXNkZW1FcnJvcnMsXG4gICAgICAgICAgICAvLyBNYW51YWwgZXJyb3JzXG4gICAgICAgICAgICB0aGlzLmVycm9yc1N1YmplY3RcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIE1lcmdlIHRoZSB0d28gZXJyb3JzIHNldHNcbiAgICAgICAgICAgIG1hcCgoW2dlc2RlbUVycm9ycywgbG9jYWxFcnJvcnNdKSA9PiBbXG4gICAgICAgICAgICAgICAgLi4uZ2VzZGVtRXJyb3JzLFxuICAgICAgICAgICAgICAgIC4uLmxvY2FsRXJyb3JzXG4gICAgICAgICAgICBdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNob3VsZERpc3BsYXlPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBpc0Nvbm5lY3RlZE9ic2VydmFibGUgPSB0aGlzLnNlc3Npb25JbmZvLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChkYXRhID0+ICF0aGlzLnNlc3Npb25JbmZvLm5ldmVyQ29ubmVjdGVkICYmICEhZGF0YSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYXNCeXBhc3NFbmFibGVkT2JzZXJ2YWJsZSA9IHRoaXMuY2hlY2tCeXBhc3NQcm9wZXJ0eSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoYnlwYXNzID0+ICEhYnlwYXNzLnZhbHVlKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGhhc1JlZmVyZW5jZU9ic2VydmFibGUgPSBtZXJnZShcbiAgICAgICAgICAgIC8vIFRvIGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4gQ2FuIGJlIG51bGwgaWYgdGhlcmUgaXMgbm8gZm9ybS5cbiAgICAgICAgICAgIG9mKHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UpLFxuICAgICAgICAgICAgLy8gUmVhZCB0aGUgZm9ybSBmcm9tIEdlc0RlbVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBmb3JtID0+XG4gICAgICAgICAgICAgICAgICAgICEhZm9ybSAmJlxuICAgICAgICAgICAgICAgICAgICAhIXRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEgJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLm1ldGEucmVmZXJlbmNlXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgaXNDb25uZWN0ZWRPYnNlcnZhYmxlLFxuICAgICAgICAgICAgaGFzQnlwYXNzRW5hYmxlZE9ic2VydmFibGUsXG4gICAgICAgICAgICBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlLFxuICAgICAgICAgICAgdGhpcy5lcnJvcnNcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFRvIHdvcmsgYXJvdW5kIHJhcGlkbHkgY2hhbmdpbmcgb2JzZXJ2YWJsZXMsIHN1Y2ggYXMgdGhlIGZvcm1cbiAgICAgICAgICAgIC8vIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFtcbiAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgIGhhc0J5cGFzc0VuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIGhhc1JlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICAgICAgY2FwdGNoYUVycm9yc1xuICAgICAgICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2FwdGNoYUVycm9yID0gISFjYXB0Y2hhRXJyb3JzPy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNDYXB0Y2hhRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBkaXNwbGF5IHRoZSBjb21wb25lbnQgaWYgaXQgaGFzIGFuIGVycm9yLCB1c2VyIGNvdWxkIGhhcyBsb2dnZWQgb3V0IGluIGFub3RoZXIgd2luZG93XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgZGlzcGxheSB0aGUgY2FwdGNoYSBpZiB0aGUgdXNlciBpcyBjb25uZWN0ZWQsIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhcyBhIHJlZmVyZW5jZSBvciBpZiB0aGUgYnlwYXNzIGlzIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhaXNDb25uZWN0ZWQgJiYgIWhhc0J5cGFzc0VuYWJsZWQgJiYgIWhhc1JlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGNoZWNrQnlwYXNzUHJvcGVydHkoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gISF0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSURcbiAgICAgICAgICAgID8gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXG4gICAgICAgICAgICAgICAgICAncmVDYXB0Y2hhQnlQYXNzVVVJRCcsXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSURcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke1JFQ0FQVENIQV9BUElfVVJMfS9ieXBhc3NgLCB7IHBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRQdWJsaWNLZXlPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKGFwcGxpY2F0aW9uSW5mbyA9PiB0aGlzLmdldFB1YmxpY0tleU9yTnVsbChhcHBsaWNhdGlvbkluZm8pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENhcHRjaGFTY3JpcHRVcmxPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uSW5mbyA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkluZm8/LmNvbmZpZ3VyYXRpb24/LmNhcHRjaGE/LmNhcHRjaGFVcmxUb2tlblxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHVibGljS2V5T3JOdWxsKFxuICAgICAgICBhcHBsaWNhdGlvbkluZm86IEFwcGxpY2F0aW9uSW5mb1xuICAgICk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICAvLyBSZXBsYWNlIHRoaXMgd2hvbGUgc2hlbmFuaWdhbiB3aXRoIGFwcGxpY2F0aW9uSW5mbz8uY29uZmlndXJhdGlvbj8uY2FwdGNoYT8ucHVibGlja2V5IHdoZW5cbiAgICAgICAgLy8gVHlwZXNjcmlwdCBzdXBwb3J0cyBpdC5cbiAgICAgICAgaWYgKCFhcHBsaWNhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBjb25maWd1cmF0aW9uIH0gPSBhcHBsaWNhdGlvbkluZm87XG5cbiAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNhcHRjaGEgfSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICAgICAgaWYgKCFjYXB0Y2hhKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYXB0Y2hhLnB1YmxpY2tleSB8fCBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { debounceTime } from 'rxjs/operators';
|
|
2
|
+
import { debounceTime, map } from 'rxjs/operators';
|
|
3
3
|
import { GrecaptchaComponent } from './grecaptcha/grecaptcha.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./recaptcha.service";
|
|
@@ -10,8 +10,12 @@ export class SdkRecaptchaComponent {
|
|
|
10
10
|
this.recaptchaService = recaptchaService;
|
|
11
11
|
this.cdr = cdr;
|
|
12
12
|
this.hasLoadingError = false;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
this.recaptchaUrlForUserError = this.recaptchaService
|
|
14
|
+
.getCaptchaScriptUrl()
|
|
15
|
+
.pipe(map(captchaScriptUrl => {
|
|
16
|
+
const url = new URL(captchaScriptUrl);
|
|
17
|
+
return `${url.protocol}//${url.hostname}`;
|
|
18
|
+
}));
|
|
15
19
|
}
|
|
16
20
|
ngOnInit() {
|
|
17
21
|
this.recaptchaService.clearErrors();
|
|
@@ -59,13 +63,13 @@ export class SdkRecaptchaComponent {
|
|
|
59
63
|
this.recaptchaService.onSuccess(token);
|
|
60
64
|
}
|
|
61
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkRecaptchaComponent, deps: [{ token: i1.RecaptchaService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdkRecaptchaComponent, selector: "captcha", viewQueries: [{ propertyName: "grecaptcha", first: true, predicate: GrecaptchaComponent, descendants: true }], ngImport: i0, template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a [href]=\"
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdkRecaptchaComponent, selector: "captcha", viewQueries: [{ propertyName: "grecaptcha", first: true, predicate: GrecaptchaComponent, descendants: true }], ngImport: i0, template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a\n *ngIf=\"\n recaptchaUrlForUserError | async as recaptchaUrlUserError\n \"\n [href]=\"recaptchaUrlUserError\"\n target=\"_blank\"\n >\n {{ recaptchaUrlUserError }}\n </a>\n .\n </p>\n </div>\n\n <ng-container *ngIf=\"publicKey | async as key\">\n <!-- The captcha itself is in a different container not to confused Angular change detection -->\n <app-grecaptcha\n [siteKey]=\"key\"\n (loaded)=\"setIsLoaded($event)\"\n (scriptError)=\"setScriptError($event)\"\n (tokenOnSuccess)=\"tokenOnSuccess($event)\"\n ></app-grecaptcha>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GrecaptchaComponent, selector: "app-grecaptcha", inputs: ["siteKey"], outputs: ["loaded", "scriptError", "tokenOnSuccess", "destroyed"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
63
67
|
}
|
|
64
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkRecaptchaComponent, decorators: [{
|
|
65
69
|
type: Component,
|
|
66
|
-
args: [{ selector: 'captcha', template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a [href]=\"
|
|
70
|
+
args: [{ selector: 'captcha', template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a\n *ngIf=\"\n recaptchaUrlForUserError | async as recaptchaUrlUserError\n \"\n [href]=\"recaptchaUrlUserError\"\n target=\"_blank\"\n >\n {{ recaptchaUrlUserError }}\n </a>\n .\n </p>\n </div>\n\n <ng-container *ngIf=\"publicKey | async as key\">\n <!-- The captcha itself is in a different container not to confused Angular change detection -->\n <app-grecaptcha\n [siteKey]=\"key\"\n (loaded)=\"setIsLoaded($event)\"\n (scriptError)=\"setScriptError($event)\"\n (tokenOnSuccess)=\"tokenOnSuccess($event)\"\n ></app-grecaptcha>\n </ng-container>\n</div>\n" }]
|
|
67
71
|
}], ctorParameters: () => [{ type: i1.RecaptchaService }, { type: i0.ChangeDetectorRef }], propDecorators: { grecaptcha: [{
|
|
68
72
|
type: ViewChild,
|
|
69
73
|
args: [GrecaptchaComponent]
|
|
70
74
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLXJlY2FwdGNoYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9zZGstcmVjYXB0Y2hhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVjYXB0Y2hhL3Nkay1yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFHVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7QUFReEUsTUFBTSxPQUFPLHFCQUFxQjtJQWM5QixZQUNZLGdCQUFrQyxFQUNsQyxHQUFzQjtRQUR0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBVmxDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBWXBCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCO2FBQ2hELG1CQUFtQixFQUFFO2FBQ3JCLElBQUksQ0FDRCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNuQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QiwwREFBMEQ7YUFDekQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hCLDhEQUE4RDtZQUM5RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM3QixDQUFDO1lBQ0QseURBQXlEO1lBQ3pELGNBQWM7WUFDZCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBaUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFFekIsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBb0I7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7UUFFbkMsNkNBQTZDO1FBQzdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUN4QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBakZRLHFCQUFxQjttR0FBckIscUJBQXFCLDJGQUNuQixtQkFBbUIsZ0RDcEJsQyxzekRBK0NBOzs0RkQ1QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUVJLFNBQVM7cUhBS25CLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgR3JlY2FwdGNoYUNvbXBvbmVudCB9IGZyb20gJy4vZ3JlY2FwdGNoYS9ncmVjYXB0Y2hhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNhcHRjaGFTZXJ2aWNlIH0gZnJvbSAnLi9yZWNhcHRjaGEuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnY2FwdGNoYScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Nkay1yZWNhcHRjaGEuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNka1JlY2FwdGNoYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKEdyZWNhcHRjaGFDb21wb25lbnQpXG4gICAgZ3JlY2FwdGNoYTogR3JlY2FwdGNoYUNvbXBvbmVudDtcblxuICAgIHNob3VsZERpc3BsYXk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNMb2FkZWQ6IGJvb2xlYW47XG4gICAgaGFzTG9hZGluZ0Vycm9yID0gZmFsc2U7XG4gICAgZXJyb3JzOiBPYnNlcnZhYmxlPEZvcm1FcnJvcltdPjtcbiAgICBwdWJsaWNLZXk6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICByZWNhcHRjaGFVcmxGb3JVc2VyRXJyb3I6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgZXJyb3JzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBmb3JjZURldGVjdENoYW5nZTogKCkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlY2FwdGNoYVNlcnZpY2U6IFJlY2FwdGNoYVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLnJlY2FwdGNoYVVybEZvclVzZXJFcnJvciA9IHRoaXMucmVjYXB0Y2hhU2VydmljZVxuICAgICAgICAgICAgLmdldENhcHRjaGFTY3JpcHRVcmwoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKGNhcHRjaGFTY3JpcHRVcmwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKGNhcHRjaGFTY3JpcHRVcmwpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7dXJsLnByb3RvY29sfS8vJHt1cmwuaG9zdG5hbWV9YDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWNhcHRjaGFTZXJ2aWNlLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgIHRoaXMuc2hvdWxkRGlzcGxheSA9IHRoaXMucmVjYXB0Y2hhU2VydmljZS5nZXRTaG91bGREaXNwbGF5KCk7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5yZWNhcHRjaGFTZXJ2aWNlLmdldEVycm9ycygpO1xuICAgICAgICB0aGlzLnB1YmxpY0tleSA9IHRoaXMucmVjYXB0Y2hhU2VydmljZS5nZXRQdWJsaWNLZXkoKTtcblxuICAgICAgICB0aGlzLmVycm9yc1N1YnNjcmlwdGlvbiA9IHRoaXMuZXJyb3JzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTAwKSlcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZXJyb3JzID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYWNrIGJlY2F1c2UgdGhlIGNhcHRjaGEgY29uZnVzZXMgQW5ndWxhciBkZXRlY3Rpb24gY2hhbmdlLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9yY2VEZXRlY3RDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSW4gY2FzZSBvZiBlcnJvcnMsIHJlc2V0IHRoZSBjYXB0Y2hhIGZvciBhIGJldHRlciB1c2VyXG4gICAgICAgICAgICAgICAgLy8gZXhwZXJpZW5jZS5cbiAgICAgICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCAmJiB0aGlzLmdyZWNhcHRjaGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmVjYXB0Y2hhLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JjZURldGVjdENoYW5nZSA9ICgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZXJyb3JzU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQXZvaWQgY2RyIG9uIGRlc3Ryb3llZCBjb21wb25lbnRzLlxuICAgICAgICB0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlID0gbnVsbDtcbiAgICB9XG5cbiAgICBzZXRJc0xvYWRlZChpc0xvYWRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzTG9hZGVkID0gaXNMb2FkZWQ7XG5cbiAgICAgICAgLy8gQW5ndWxhciBkb2Vzbid0IGRldGVjdCB0aGUgY2hhbmdlIHByb3Blcmx5XG4gICAgICAgIGlmICh0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcmNlRGV0ZWN0Q2hhbmdlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTY3JpcHRFcnJvcihzY3JpcHRFcnJvcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0xvYWRpbmdFcnJvciA9IHNjcmlwdEVycm9yO1xuXG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lc24ndCBkZXRlY3QgdGhlIGNoYW5nZSBwcm9wZXJseVxuICAgICAgICBpZiAodGhpcy5mb3JjZURldGVjdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5mb3JjZURldGVjdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9rZW5PblN1Y2Nlc3ModG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlY2FwdGNoYVNlcnZpY2Uub25TdWNjZXNzKHRva2VuKTtcbiAgICB9XG59XG4iLCI8IS0tIE9ubHkgZGlzcGxheSB0aGUgY29udGVudCBpZiB0aGUgY2FwdGNoYSBzaG91bGQgYmUgZGlzcGxheWVkICh1c2VyIG5vdCBjb25uZWN0ZWQgZm9yIGluc3RhbmNlKSAtLT5cbjxkaXYgaWQ9XCJmb2Vobl9yZWNhcHRjaGFDb250YWluZXJcIiAqbmdJZj1cInNob3VsZERpc3BsYXkgfCBhc3luY1wiPlxuICAgIDwhLS0gTWFudWFsIGVycm9yIGhhbmRsaW5nIGJlY2F1c2UgZXJyb3JzIGNhbiBjb21lIGZyb20gbXVsdGlwbGUgc291cmNlcyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXJyb3JzIHwgYXN5bmMgYXMgZXJyXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sLWZlZWRiYWNrIHRleHQtZGFuZ2VyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZXJyICYmIGVyci5sZW5ndGhcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8cCAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZXJyXCI+e3sgZXJyb3IubWVzc2FnZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFdoaWxlIHRoZSBjYXB0Y2hhIGlzIGJlaW5nIGxvYWRlZCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiICpuZ0lmPVwiIWlzTG9hZGVkICYmICFoYXNMb2FkaW5nRXJyb3JcIj5cbiAgICAgICAgQ2hhcmdlbWVudCBkdSBjYXB0Y2hhXG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEluIGNhc2UgZ29vZ2xlLmNvbSBjYW5ub3QgYmUgcmVhY2hlZCBmb3IgaW5zdGFuY2UgLS0+XG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlclwiICpuZ0lmPVwiaGFzTG9hZGluZ0Vycm9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0wIGFsZXJ0LWhlYWRpbmcgaDRcIj5cbiAgICAgICAgICAgIFVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgY2hhcmdlbWVudCBkdSBjYXB0Y2hhLlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgICBNZXJjaSBkZSB2w6lyaWZpZXIgcXVlIHZvdHJlIG5hdmlnYXRldXIgcGV1dCBhY2PDqWRlciDDoFxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICByZWNhcHRjaGFVcmxGb3JVc2VyRXJyb3IgfCBhc3luYyBhcyByZWNhcHRjaGFVcmxVc2VyRXJyb3JcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cInJlY2FwdGNoYVVybFVzZXJFcnJvclwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyByZWNhcHRjaGFVcmxVc2VyRXJyb3IgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIC5cbiAgICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInB1YmxpY0tleSB8IGFzeW5jIGFzIGtleVwiPlxuICAgICAgICA8IS0tIFRoZSBjYXB0Y2hhIGl0c2VsZiBpcyBpbiBhIGRpZmZlcmVudCBjb250YWluZXIgbm90IHRvIGNvbmZ1c2VkIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiAtLT5cbiAgICAgICAgPGFwcC1ncmVjYXB0Y2hhXG4gICAgICAgICAgICBbc2l0ZUtleV09XCJrZXlcIlxuICAgICAgICAgICAgKGxvYWRlZCk9XCJzZXRJc0xvYWRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzY3JpcHRFcnJvcik9XCJzZXRTY3JpcHRFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgICh0b2tlbk9uU3VjY2Vzcyk9XCJ0b2tlbk9uU3VjY2VzcygkZXZlbnQpXCJcbiAgICAgICAgPjwvYXBwLWdyZWNhcHRjaGE+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Optional, Inject, Injectable, EventEmitter, Input, HostBinding, Output, forwardRef, ViewChildren, ViewChild, Directive, Pipe, Component, ContentChildren, HostListener,
|
|
2
|
+
import { Optional, Inject, Injectable, EventEmitter, Input, HostBinding, Output, forwardRef, ViewChildren, ViewChild, Directive, Pipe, Component, ContentChildren, HostListener, NgModule, TemplateRef, ContentChild } from '@angular/core';
|
|
3
3
|
import * as i1$1 from '@angular/router';
|
|
4
4
|
import { ActivatedRoute, NavigationStart, RouterModule, NavigationEnd, RouterLink } from '@angular/router';
|
|
5
5
|
import { of, Subject, BehaviorSubject, combineLatest, throwError, switchMap as switchMap$1, forkJoin, tap as tap$1, concat, toArray, EMPTY, startWith, filter as filter$1, merge, withLatestFrom, debounceTime as debounceTime$1, map as map$1 } from 'rxjs';
|
|
@@ -4315,12 +4315,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
4315
4315
|
|
|
4316
4316
|
const RECAPTCHA_API_URL = 'api/recaptcha';
|
|
4317
4317
|
const CAPTCHA_ERROR_NAME = 'recaptcha';
|
|
4318
|
-
const CAPTCHA_URL_TOKEN = new InjectionToken('captchaScriptUrl', {
|
|
4319
|
-
providedIn: 'root',
|
|
4320
|
-
factory: () => 'https://challenges.cloudflare.com/turnstile/v0/api.js?onload=reCaptchaLoad&render=explicit&compat=recaptcha'
|
|
4321
|
-
});
|
|
4322
4318
|
class RecaptchaService {
|
|
4323
|
-
constructor(http, sessionInfo, route, validationHandlerService, gesdemService, gesdemEventService, applicationInfoService
|
|
4319
|
+
constructor(http, sessionInfo, route, validationHandlerService, gesdemService, gesdemEventService, applicationInfoService) {
|
|
4324
4320
|
this.http = http;
|
|
4325
4321
|
this.sessionInfo = sessionInfo;
|
|
4326
4322
|
this.route = route;
|
|
@@ -4328,11 +4324,11 @@ class RecaptchaService {
|
|
|
4328
4324
|
this.gesdemService = gesdemService;
|
|
4329
4325
|
this.gesdemEventService = gesdemEventService;
|
|
4330
4326
|
this.applicationInfoService = applicationInfoService;
|
|
4331
|
-
this.captchaScriptUrl = captchaScriptUrl;
|
|
4332
4327
|
this.errorsSubject = new BehaviorSubject([]);
|
|
4333
4328
|
this.errors = this.initErrorObservable(); // has to be first since it is used in initShouldDisplayObservable !
|
|
4334
4329
|
this.shouldDisplay = this.initShouldDisplayObservable();
|
|
4335
4330
|
this.publicKey = this.initPublicKeyObservable();
|
|
4331
|
+
this.captchaScriptUrl = this.initCaptchaScriptUrlObservable();
|
|
4336
4332
|
}
|
|
4337
4333
|
onSuccess(token) {
|
|
4338
4334
|
// To be accessed by the gesdem service and to avoid to have a circular
|
|
@@ -4456,6 +4452,9 @@ class RecaptchaService {
|
|
|
4456
4452
|
initPublicKeyObservable() {
|
|
4457
4453
|
return this.applicationInfoService.data.pipe(map(applicationInfo => this.getPublicKeyOrNull(applicationInfo)));
|
|
4458
4454
|
}
|
|
4455
|
+
initCaptchaScriptUrlObservable() {
|
|
4456
|
+
return this.applicationInfoService.data.pipe(map(applicationInfo => applicationInfo?.configuration?.captcha?.captchaUrlToken));
|
|
4457
|
+
}
|
|
4459
4458
|
getPublicKeyOrNull(applicationInfo) {
|
|
4460
4459
|
// Replace this whole shenanigan with applicationInfo?.configuration?.captcha?.publickey when
|
|
4461
4460
|
// Typescript supports it.
|
|
@@ -4472,7 +4471,7 @@ class RecaptchaService {
|
|
|
4472
4471
|
}
|
|
4473
4472
|
return captcha.publickey || null;
|
|
4474
4473
|
}
|
|
4475
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, deps: [{ token: i1.HttpClient }, { token: SessionInfo }, { token: i1$1.ActivatedRoute }, { token: ValidationHandlerService }, { token: GesdemHandlerService }, { token: GesdemEventService }, { token: ApplicationInfoService }
|
|
4474
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, deps: [{ token: i1.HttpClient }, { token: SessionInfo }, { token: i1$1.ActivatedRoute }, { token: ValidationHandlerService }, { token: GesdemHandlerService }, { token: GesdemEventService }, { token: ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4476
4475
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, providedIn: 'root' }); }
|
|
4477
4476
|
}
|
|
4478
4477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RecaptchaService, decorators: [{
|
|
@@ -4480,10 +4479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
4480
4479
|
args: [{
|
|
4481
4480
|
providedIn: 'root'
|
|
4482
4481
|
}]
|
|
4483
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: SessionInfo }, { type: i1$1.ActivatedRoute }, { type: ValidationHandlerService }, { type: GesdemHandlerService }, { type: GesdemEventService }, { type: ApplicationInfoService }
|
|
4484
|
-
type: Inject,
|
|
4485
|
-
args: [CAPTCHA_URL_TOKEN]
|
|
4486
|
-
}] }] });
|
|
4482
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: SessionInfo }, { type: i1$1.ActivatedRoute }, { type: ValidationHandlerService }, { type: GesdemHandlerService }, { type: GesdemEventService }, { type: ApplicationInfoService }] });
|
|
4487
4483
|
|
|
4488
4484
|
const SCRIPT_ID = 'prestations-ng-captcha-script';
|
|
4489
4485
|
/**
|
|
@@ -4530,13 +4526,16 @@ class GrecaptchaComponent {
|
|
|
4530
4526
|
this.loaded.emit(true);
|
|
4531
4527
|
}
|
|
4532
4528
|
appendScriptTag() {
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
|
|
4538
|
-
|
|
4539
|
-
|
|
4529
|
+
// eslint-disable-next-line rxjs-angular/prefer-async-pipe
|
|
4530
|
+
this.recaptchaService.getCaptchaScriptUrl().subscribe(url => {
|
|
4531
|
+
const script = document.createElement('script');
|
|
4532
|
+
script.id = SCRIPT_ID;
|
|
4533
|
+
script.src = url;
|
|
4534
|
+
script.async = true;
|
|
4535
|
+
script.defer = true;
|
|
4536
|
+
script.onerror = () => this.scriptError.emit(true);
|
|
4537
|
+
this.recaptchaScriptContainer.nativeElement.appendChild(script);
|
|
4538
|
+
});
|
|
4540
4539
|
}
|
|
4541
4540
|
removeScript() {
|
|
4542
4541
|
this.scriptError.emit(false);
|
|
@@ -4597,8 +4596,12 @@ class SdkRecaptchaComponent {
|
|
|
4597
4596
|
this.recaptchaService = recaptchaService;
|
|
4598
4597
|
this.cdr = cdr;
|
|
4599
4598
|
this.hasLoadingError = false;
|
|
4600
|
-
|
|
4601
|
-
|
|
4599
|
+
this.recaptchaUrlForUserError = this.recaptchaService
|
|
4600
|
+
.getCaptchaScriptUrl()
|
|
4601
|
+
.pipe(map(captchaScriptUrl => {
|
|
4602
|
+
const url = new URL(captchaScriptUrl);
|
|
4603
|
+
return `${url.protocol}//${url.hostname}`;
|
|
4604
|
+
}));
|
|
4602
4605
|
}
|
|
4603
4606
|
ngOnInit() {
|
|
4604
4607
|
this.recaptchaService.clearErrors();
|
|
@@ -4646,11 +4649,11 @@ class SdkRecaptchaComponent {
|
|
|
4646
4649
|
this.recaptchaService.onSuccess(token);
|
|
4647
4650
|
}
|
|
4648
4651
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkRecaptchaComponent, deps: [{ token: RecaptchaService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4649
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdkRecaptchaComponent, selector: "captcha", viewQueries: [{ propertyName: "grecaptcha", first: true, predicate: GrecaptchaComponent, descendants: true }], ngImport: i0, template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a [href]=\"
|
|
4652
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SdkRecaptchaComponent, selector: "captcha", viewQueries: [{ propertyName: "grecaptcha", first: true, predicate: GrecaptchaComponent, descendants: true }], ngImport: i0, template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a\n *ngIf=\"\n recaptchaUrlForUserError | async as recaptchaUrlUserError\n \"\n [href]=\"recaptchaUrlUserError\"\n target=\"_blank\"\n >\n {{ recaptchaUrlUserError }}\n </a>\n .\n </p>\n </div>\n\n <ng-container *ngIf=\"publicKey | async as key\">\n <!-- The captcha itself is in a different container not to confused Angular change detection -->\n <app-grecaptcha\n [siteKey]=\"key\"\n (loaded)=\"setIsLoaded($event)\"\n (scriptError)=\"setScriptError($event)\"\n (tokenOnSuccess)=\"tokenOnSuccess($event)\"\n ></app-grecaptcha>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: GrecaptchaComponent, selector: "app-grecaptcha", inputs: ["siteKey"], outputs: ["loaded", "scriptError", "tokenOnSuccess", "destroyed"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
4650
4653
|
}
|
|
4651
4654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SdkRecaptchaComponent, decorators: [{
|
|
4652
4655
|
type: Component,
|
|
4653
|
-
args: [{ selector: 'captcha', template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a [href]=\"
|
|
4656
|
+
args: [{ selector: 'captcha', template: "<!-- Only display the content if the captcha should be displayed (user not connected for instance) -->\n<div id=\"foehn_recaptchaContainer\" *ngIf=\"shouldDisplay | async\">\n <!-- Manual error handling because errors can come from multiple sources -->\n <ng-container *ngIf=\"errors | async as err\">\n <div\n class=\"form-control-feedback text-danger\"\n *ngIf=\"err && err.length\"\n >\n <p *ngFor=\"let error of err\">{{ error.message }}</p>\n </div>\n </ng-container>\n\n <!-- While the captcha is being loaded -->\n <div class=\"alert alert-info\" *ngIf=\"!isLoaded && !hasLoadingError\">\n Chargement du captcha\n </div>\n\n <!-- In case google.com cannot be reached for instance -->\n <div class=\"alert alert-danger\" *ngIf=\"hasLoadingError\">\n <div class=\"mt-0 alert-heading h4\">\n Une erreur est survenue lors du chargement du captcha.\n </div>\n <p>\n Merci de v\u00E9rifier que votre navigateur peut acc\u00E9der \u00E0\n <a\n *ngIf=\"\n recaptchaUrlForUserError | async as recaptchaUrlUserError\n \"\n [href]=\"recaptchaUrlUserError\"\n target=\"_blank\"\n >\n {{ recaptchaUrlUserError }}\n </a>\n .\n </p>\n </div>\n\n <ng-container *ngIf=\"publicKey | async as key\">\n <!-- The captcha itself is in a different container not to confused Angular change detection -->\n <app-grecaptcha\n [siteKey]=\"key\"\n (loaded)=\"setIsLoaded($event)\"\n (scriptError)=\"setScriptError($event)\"\n (tokenOnSuccess)=\"tokenOnSuccess($event)\"\n ></app-grecaptcha>\n </ng-container>\n</div>\n" }]
|
|
4654
4657
|
}], ctorParameters: () => [{ type: RecaptchaService }, { type: i0.ChangeDetectorRef }], propDecorators: { grecaptcha: [{
|
|
4655
4658
|
type: ViewChild,
|
|
4656
4659
|
args: [GrecaptchaComponent]
|
|
@@ -16023,5 +16026,5 @@ class DropdownMenuItem {
|
|
|
16023
16026
|
* Generated bundle index. Do not edit.
|
|
16024
16027
|
*/
|
|
16025
16028
|
|
|
16026
|
-
export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME,
|
|
16029
|
+
export { APP_INFO_API_URL, AbstractFoehnUploaderComponent, AbstractListDetailPageComponent, AbstractMenuPageComponent, AbstractPageComponent, AbstractPageFromMenuComponent, ActionStatut, Address, AddressTypeLight, ApplicationInfo, ApplicationInfoService, BAD_PARAMS_HELP_TEXT, BoDocumentError, BoDocumentsWithErrors, BoMultiUploadService, Breadcrumb, BreadcrumbEventService, BreadcrumbItem, CAPTCHA_ERROR_NAME, CURRENCY_REGEXP, Calendar, Canton, Captcha, ComponentError, Configuration, Country, CurrencyHelper, CurrentWeek, DECIMALS_SEPARATOR, DEFAULT_INTERNATIONAL_AND_NO_SWISS, DEFAULT_INTERNATIONAL_AND_NO_SWISS_MOBILE, DEFAULT_INTERNATIONAL_AND_NO_SWISS_PHONE, DEFAULT_INTERNATIONAL_HELP_TEXT, DEFAULT_PREFIX, DEFAULT_SWISS_HELP_TEXT, DEFAULT_SWISS_MOBILE_PHONE_HELP_TEXT, DEFAULT_SWISS_PHONE_HELP_TEXT, DICTIONARY_BASE_URL, DateHelper, DatePickerHelper, DatePickerNavigationHelper, DayMonth, DaySlots, DemandeExpirationService, DemandeHelper, DisplayCurrencyPipe, DisplayDatePipe, District, Document, DocumentError, DocumentReference, DocumentReferenceWithFile, DocumentsWithErrors, DropdownMenuGroup, DropdownMenuItem, EPaymentService, EtapeInfo, FEEDBACK_USAGERS_LOCAL_STORAGE_PREFIX, FORM_SUPPORT_CYBER_TITLE_FALLBACK, FocusedDay, FoehnAbbrComponent, FoehnAddressModule, FoehnAgendaComponent, FoehnAgendaModule, FoehnAgendaNavigationComponent, FoehnAgendaTimeslotPanelComponent, FoehnAutocompleteComponent, FoehnAutocompleteModule, FoehnBoMultiUploadComponent, FoehnBoMultiUploadModule, FoehnBooleanCheckboxComponent, FoehnBooleanModule, FoehnBooleanRadioComponent, FoehnBreadcrumbComponent, FoehnBreadcrumbModule, FoehnCheckableGroupComponent, FoehnCheckablesModule, FoehnCheckboxComponent, FoehnConfirmModalComponent, FoehnConfirmModalContent, FoehnConfirmModalModule, FoehnConfirmModalService, FoehnDateComponent, FoehnDatePickerButtonComponent, FoehnDatePickerButtonModule, FoehnDatePickerComponent, FoehnDatePickerModule, FoehnDateTimeComponent, FoehnDecisionElectroniqueComponent, FoehnDecisionElectroniqueModule, FoehnDisplayAddressComponent, FoehnDropdownMenuComponent, FoehnDropdownMenuModule, FoehnErrorPillComponent, FoehnFeedbackNotificationComponent, FoehnFeedbackNotificationModule, FoehnFormComponent, FoehnFormModule, FoehnHeaderComponent, FoehnHeaderModule, FoehnHelpModalComponent, FoehnHelpModalModule, FoehnIconCalendarComponent, FoehnIconCheckComponent, FoehnIconCheckSquareOComponent, FoehnIconChevronDownComponent, FoehnIconChevronLeftComponent, FoehnIconChevronRightComponent, FoehnIconChevronUpComponent, FoehnIconClockComponent, FoehnIconCommentDotsComponent, FoehnIconEditComponent, FoehnIconExternalLinkAltComponent, FoehnIconFilePdfComponent, FoehnIconInfoCircleComponent, FoehnIconLockComponent, FoehnIconMapMarkerComponent, FoehnIconMinusCircleComponent, FoehnIconPencilComponent, FoehnIconPlusCircleComponent, FoehnIconPlusSquareComponent, FoehnIconSearchComponent, FoehnIconTimesComponent, FoehnIconTrashAltComponent, FoehnIconUnlockAltComponent, FoehnIconUserComponent, FoehnIconsModule, FoehnInputAddressComponent, FoehnInputComponent, FoehnInputEmailComponent, FoehnInputForeignLocalityComponent, FoehnInputForeignStreetComponent, FoehnInputHiddenComponent, FoehnInputModule, FoehnInputNav13Component, FoehnInputNav13Module, FoehnInputNumberComponent, FoehnInputPasswordComponent, FoehnInputPhoneComponent, FoehnInputPrefixedTextComponent, FoehnInputStringComponent, FoehnInputTextComponent, FoehnInputTextareaComponent, FoehnListComponent, FoehnListItem, FoehnListModule, FoehnListSummaryComponent, FoehnMenuItemComponent, FoehnMenuItemTransmitComponent, FoehnMenuPrestationModule, FoehnMiscModule, FoehnModalComponent, FoehnModalModule, FoehnMultiUploadComponent, FoehnMultiUploadModule, FoehnMultiselectAutocompleteComponent, FoehnMultiselectAutocompleteModule, FoehnNavigationComponent, FoehnNavigationModule, FoehnNavigationService, FoehnNotFoundModule, FoehnNotfoundComponent, FoehnPageComponent, FoehnPageCounterComponent, FoehnPageExpirationTimerComponent, FoehnPageModalComponent, FoehnPageModule, FoehnPageService, FoehnPictureUploadComponent, FoehnPictureUploadModule, FoehnRadioComponent, FoehnRecapSectionComponent, FoehnRecapSectionModule, FoehnRemainingAlertsSummaryComponent, FoehnRemainingAlertsSummaryModule, FoehnSelectComponent, FoehnSimpleNavigationComponent, FoehnSkipLinkComponent, FoehnStatusProgressBarComponent, FoehnStatusProgressBarModule, FoehnTableColumnConfiguration, FoehnTableComponent, FoehnTableModule, FoehnTablePageChangeEvent, FoehnTimeComponent, FoehnTransmitWaitingModalComponent, FoehnTransmitWaitingModalService, FoehnUploadProgressBarComponent, FoehnUploadProgressBarModule, FoehnUserConnectedAsComponent, FoehnUserConnectedAsModule, FoehnValidationAlertSummaryComponent, FoehnValidationAlertSummaryModule, FoehnValidationAlertsComponent, FoehnValidationAlertsModule, FooterLink, FormMetadata, FormPostResponse, FormSelectOption, FormatIdePipe, FormatterModule, GESDEM_MAX_DATA_LENGTH, GesdemActionRecoveryLoginComponent, GesdemActionRecoveryModule, GesdemActionRecoveryRegistrationComponent, GesdemConfirmationComponent, GesdemConfirmationModule, GesdemErrorComponent, GesdemErrorModule, GesdemEventService, GesdemHandlerService, GesdemStatutUtils, GrowlBrokerService, GrowlMessage, GrowlType, HTTP_LOADER_FILTERED_URL, I18nForm, IbanFormatterDirective, IdeFormatterDirective, IntervalHelper, Locality, MonthYear, MultiUploadService, Municipality, NDCFormatterDirective, NavigationDirection, NumberCurrencyFormatterDirective, ObjectHelper, PORTAIL_BASE_URL_INT, PORTAIL_BASE_URL_PROD, PORTAIL_BASE_URL_VAL, PageChangeEvent, PageUploadLimitService, PaginationWeek, PendingFiles, PendingPaymentComponent, PendingUploadService, PipeModule, PlaceOfOrigin, Portail, PostalLocality, Preferences, PrestationsNgCoreModule, RECAPTCHA_API_URL, RecaptchaService, RedirectComponent, RegisterNgModelService, RowElement, SESSION_INFO_API_URL, SWISS_ISO_ID, SdkDictionaryModule, SdkDictionaryPipe, SdkDictionaryService, SdkEpaymentComponent, SdkEpaymentModule, SdkEvent, SdkEventType, SdkEventsLoggerService, SdkRecaptchaComponent, SdkRecaptchaModule, SdkRedirectModule, SdkStatisticsService, SelectedSlot, ServiceLocator, Session, SessionInfo, SessionInfoData, SessionInfoWithApplicationService, Street, StreetNumber, THOUSANDS_SEPARATOR, TRANSMIT_WAITING_MODAL_DELAY_IN_MILLISECONDS, TableSort, UploadProgress, UploadProgressService, UploaderHelper, ValidationHandlerService, formatDecimalCurrency, formatNonDecimalCurrency, formatNumberAsGiven, gesdemLoaderGuard, replaceAll };
|
|
16027
16030
|
//# sourceMappingURL=dsivd-prestations-ng.mjs.map
|