@dsivd/prestations-ng 15.5.6 → 15.5.7

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 CHANGED
@@ -26,6 +26,13 @@ A change is considered **breaking** if you have to change your code or update yo
26
26
 
27
27
  ---
28
28
 
29
+ ## [15.5.7]
30
+
31
+ ### Fixed
32
+
33
+ - [recaptcha.service.ts](projects/prestations-ng/src/sdk-recaptcha/recaptcha.service.ts)
34
+ - Always display the captcha if it has an error (even if connected)
35
+
29
36
  ## [15.5.6]
30
37
 
31
38
  ### Fixed
Binary file
@@ -22,8 +22,8 @@ export class RecaptchaService {
22
22
  this.gesdemEventService = gesdemEventService;
23
23
  this.applicationInfoService = applicationInfoService;
24
24
  this.errorsSubject = new BehaviorSubject([]);
25
+ this.errors = this.initErrorObservable(); // has to be first since it is used in initShouldDisplayObservable !
25
26
  this.shouldDisplay = this.initShouldDisplayObservable();
26
- this.errors = this.initErrorObservable();
27
27
  this.publicKey = this.initPublicKeyObservable();
28
28
  }
29
29
  onSuccess(token) {
@@ -115,14 +115,20 @@ export class RecaptchaService {
115
115
  return combineLatest([
116
116
  isConnectedObservable,
117
117
  hasBypassEnabledObservable,
118
- hasReferenceObservable
118
+ hasReferenceObservable,
119
+ this.errors
119
120
  ]).pipe(
120
121
  // To work around rapidly changing observables, such as the form
121
122
  // when the page loads.
122
- debounceTime(0), map(([isConnected, hasBypassEnabled, hasReference]) =>
123
- // Do not display the captcha if the user is connected, the application
124
- // already has a reference or if the bypass is enabled.
125
- !isConnected && !hasBypassEnabled && !hasReference));
123
+ debounceTime(0), map(([isConnected, hasBypassEnabled, hasReference, captchaErrors]) => {
124
+ if (!!captchaErrors?.length) {
125
+ // always display the component if it has an error, user could has logged out in another window
126
+ return true;
127
+ }
128
+ // Do not display the captcha if the user is connected, the application
129
+ // already has a reference or if the bypass is enabled.
130
+ return !isConnected && !hasBypassEnabled && !hasReference;
131
+ }));
126
132
  }
127
133
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
128
134
  checkBypassProperty() {
@@ -159,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
159
165
  providedIn: 'root'
160
166
  }]
161
167
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.SessionInfo }, { type: i3.ActivatedRoute }, { type: i4.ValidationHandlerService }, { type: i5.GesdemHandlerService }, { type: i6.GesdemEventService }, { type: i7.ApplicationInfoService }]; } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9yZWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVFuRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxnQkFBZ0I7SUFPekIsWUFDWSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixLQUFxQixFQUNyQix3QkFBa0QsRUFDbEQsYUFBbUMsRUFDbkMsa0JBQXNDLEVBQ3RDLHNCQUE4QztRQU45QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQVp6QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsQ0FBQyxDQUFDO1FBY2xFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDeEQsSUFB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O1NBQ2Y7UUFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDOzs4R0FuTVEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX0FQSV9VUkwgPSAnYXBpL3JlY2FwdGNoYSc7XG5leHBvcnQgY29uc3QgQ0FQVENIQV9FUlJPUl9OQU1FID0gJ3JlY2FwdGNoYSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVjYXB0Y2hhU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnM6IE9ic2VydmFibGU8Rm9ybUVycm9yW10+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUVycm9yW10+KFtdKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNob3VsZERpc3BsYXk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBwdWJsaWNLZXk6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBwcml2YXRlIHRva2VuOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbyxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnNob3VsZERpc3BsYXkgPSB0aGlzLmluaXRTaG91bGREaXNwbGF5T2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMuaW5pdEVycm9yT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLnB1YmxpY0tleSA9IHRoaXMuaW5pdFB1YmxpY0tleU9ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBvblN1Y2Nlc3ModG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBUbyBiZSBhY2Nlc3NlZCBieSB0aGUgZ2VzZGVtIHNlcnZpY2UgYW5kIHRvIGF2b2lkIHRvIGhhdmUgYSBjaXJjdWxhclxuICAgICAgICAvLyBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGdlc2RlbUhhbmRsZXJTZXJ2aWNlIGFuZCB0aGUgY2FwdGNoYSBzZXJ2aWNlLlxuICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2Uuc2V0Q2FwdGNoYVRva2VuKHRva2VuKTtcblxuICAgICAgICB0aGlzLnRva2VuID0gdG9rZW47XG5cbiAgICAgICAgaWYgKCEhdGhpcy50b2tlbikge1xuICAgICAgICAgICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgICAgICAgICAgdGhpcy5odHRwLnBvc3QoUkVDQVBUQ0hBX0FQSV9VUkwsIHsgdG9rZW46IHRoaXMudG9rZW4gfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gISFkYXRhLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciBhbnkgcG90ZW50aWFsIGVycm9ycyBmcm9tIHRoZSBzZXJ2ZXIuIFdlIGNhbiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBiZWNhdXNlIHRoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IGVycm9yIGluIHRoZSBzZXQgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXB0Y2hhIG11c3QgYmUgdmFsaWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgZm9ybSBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnVwZGF0ZUVycm9ycyhbXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRocm93biwgdGhhdCdzIHByZXR0eSBiYWQgYmVjYXVzZSBpdCBtZWFuc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBHb29nbGUgY291bGRuJ3QgdmVyaWZ5IHRoZSBjYXB0Y2hhIGtleS4gVGhpcyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIGFuIGF0dGFjayBvciBhIG1pc2NvbmZpZ3VyYXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEVycm9yKCdWb3RyZSBjYXB0Y2hhIGVzdCBpbnZhbGlkZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIDQwNCwgdGltZW91dCBvciBuZXR3b3JrIGlzc3VlLiBDb3VsZCBoYXBwZW4uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSB2YWxpZGF0aW9uIGR1IGNhcHRjaGEuJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdFcnJvcnMgPSB0aGlzLmVycm9yc1N1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgbmV3RXJyb3IgPSB7XG4gICAgICAgICAgICBuYW1lOiBDQVBUQ0hBX0VSUk9SX05BTUUsXG4gICAgICAgICAgICBjb2RlOiBDQVBUQ0hBX0VSUk9SX05BTUUsXG4gICAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0Lm5leHQoW25ld0Vycm9yLCAuLi5leGlzdGluZ0Vycm9yc10pO1xuICAgIH1cblxuICAgIGNsZWFyRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9yc1N1YmplY3QubmV4dChbXSk7XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JzKCk6IE9ic2VydmFibGU8Rm9ybUVycm9yW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xuICAgIH1cblxuICAgIGdldFNob3VsZERpc3BsYXkoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3VsZERpc3BsYXk7XG4gICAgfVxuXG4gICAgZ2V0UHVibGljS2V5KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnB1YmxpY0tleTtcbiAgICB9XG5cbiAgICBnZXRUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFcnJvck9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxGb3JtRXJyb3JbXT4ge1xuICAgICAgICBjb25zdCBtYXRjaGluZ0dlc2RlbUVycm9ycyA9IG1lcmdlKFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZXJlJ3MgYW4gaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgb2YoW10pLFxuICAgICAgICAgICAgLy8gUmVhZCBmcm9tIHRoZSBnZXNkZW0gc2VydmljZSBhbGwgZXJyb3JzLlxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3RcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgLy8gRXJyb3JzIGZyb20gR2VzRGVtLCBvciBub3RoaW5nXG4gICAgICAgICAgICBtYXAoZXJyb3JzID0+IGVycm9ycy5maWx0ZXIoZXggPT4gQ0FQVENIQV9FUlJPUl9OQU1FID09PSBleC5jb2RlKSlcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBCaW5kIGVycm9ycyB0byB0aGUgY29tcG9uZW50LCBlaXRoZXIgZnJvbSB0aGUgYmFja2VuZCBvZiBmcm9tIHRoaXMgY29tcG9uZW50XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIC8vIEVycm9ycyBmcm9tIGdlc2RlbSBtYXRjaGluZyB0aGUgbmFtZSBvZiB0aGUgY2FwdGNoYS5cbiAgICAgICAgICAgIG1hdGNoaW5nR2VzZGVtRXJyb3JzLFxuICAgICAgICAgICAgLy8gTWFudWFsIGVycm9yc1xuICAgICAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBNZXJnZSB0aGUgdHdvIGVycm9ycyBzZXRzXG4gICAgICAgICAgICBtYXAoKFtnZXNkZW1FcnJvcnMsIGxvY2FsRXJyb3JzXSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLmdlc2RlbUVycm9ycyxcbiAgICAgICAgICAgICAgICAuLi5sb2NhbEVycm9yc1xuICAgICAgICAgICAgXSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTaG91bGREaXNwbGF5T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRPYnNlcnZhYmxlID0gdGhpcy5zZXNzaW9uSW5mby5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiAhdGhpcy5zZXNzaW9uSW5mby5uZXZlckNvbm5lY3RlZCAmJiAhIWRhdGEpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaGFzQnlwYXNzRW5hYmxlZE9ic2VydmFibGUgPSB0aGlzLmNoZWNrQnlwYXNzUHJvcGVydHkoKS5waXBlKFxuICAgICAgICAgICAgbWFwKGJ5cGFzcyA9PiAhIWJ5cGFzcy52YWx1ZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlID0gbWVyZ2UoXG4gICAgICAgICAgICAvLyBUbyBoYXZlIGFuIGluaXRpYWwgdmFsdWUuIENhbiBiZSBudWxsIGlmIHRoZXJlIGlzIG5vIGZvcm0uXG4gICAgICAgICAgICBvZih0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlKSxcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIGZvcm0gZnJvbSBHZXNEZW1cbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgZm9ybSA9PlxuICAgICAgICAgICAgICAgICAgICAhIWZvcm0gJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhICYmXG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIGlzQ29ubmVjdGVkT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIGhhc0J5cGFzc0VuYWJsZWRPYnNlcnZhYmxlLFxuICAgICAgICAgICAgaGFzUmVmZXJlbmNlT2JzZXJ2YWJsZVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gVG8gd29yayBhcm91bmQgcmFwaWRseSBjaGFuZ2luZyBvYnNlcnZhYmxlcywgc3VjaCBhcyB0aGUgZm9ybVxuICAgICAgICAgICAgLy8gd2hlbiB0aGUgcGFnZSBsb2Fkcy5cbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICAoW2lzQ29ubmVjdGVkLCBoYXNCeXBhc3NFbmFibGVkLCBoYXNSZWZlcmVuY2VdKSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyBEbyBub3QgZGlzcGxheSB0aGUgY2FwdGNoYSBpZiB0aGUgdXNlciBpcyBjb25uZWN0ZWQsIHRoZSBhcHBsaWNhdGlvblxuICAgICAgICAgICAgICAgICAgICAvLyBhbHJlYWR5IGhhcyBhIHJlZmVyZW5jZSBvciBpZiB0aGUgYnlwYXNzIGlzIGVuYWJsZWQuXG4gICAgICAgICAgICAgICAgICAgICFpc0Nvbm5lY3RlZCAmJiAhaGFzQnlwYXNzRW5hYmxlZCAmJiAhaGFzUmVmZXJlbmNlXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwcml2YXRlIGNoZWNrQnlwYXNzUHJvcGVydHkoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0gISF0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSURcbiAgICAgICAgICAgID8gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXG4gICAgICAgICAgICAgICAgICAncmVDYXB0Y2hhQnlQYXNzVVVJRCcsXG4gICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlQ2FwdGNoYUJ5UGFzc1VVSURcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke1JFQ0FQVENIQV9BUElfVVJMfS9ieXBhc3NgLCB7IHBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRQdWJsaWNLZXlPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKGFwcGxpY2F0aW9uSW5mbyA9PiB0aGlzLmdldFB1YmxpY0tleU9yTnVsbChhcHBsaWNhdGlvbkluZm8pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHVibGljS2V5T3JOdWxsKFxuICAgICAgICBhcHBsaWNhdGlvbkluZm86IEFwcGxpY2F0aW9uSW5mb1xuICAgICk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICAvLyBSZXBsYWNlIHRoaXMgd2hvbGUgc2hlbmFuaWdhbiB3aXRoIGFwcGxpY2F0aW9uSW5mbz8uY29uZmlndXJhdGlvbj8uY2FwdGNoYT8ucHVibGlja2V5IHdoZW5cbiAgICAgICAgLy8gVHlwZXNjcmlwdCBzdXBwb3J0cyBpdC5cbiAgICAgICAgaWYgKCFhcHBsaWNhdGlvbkluZm8pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBjb25maWd1cmF0aW9uIH0gPSBhcHBsaWNhdGlvbkluZm87XG5cbiAgICAgICAgaWYgKCFjb25maWd1cmF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNhcHRjaGEgfSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICAgICAgaWYgKCFjYXB0Y2hhKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjYXB0Y2hhLnB1YmxpY2tleSB8fCBudWxsO1xuICAgIH1cbn1cbiJdfQ==
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjYXB0Y2hhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlY2FwdGNoYS9yZWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVFuRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxnQkFBZ0I7SUFPekIsWUFDWSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixLQUFxQixFQUNyQix3QkFBa0QsRUFDbEQsYUFBbUMsRUFDbkMsa0JBQXNDLEVBQ3RDLHNCQUE4QztRQU45QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQVp6QyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsQ0FBQyxDQUFDO1FBY2xFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxvRUFB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QkFBMEI7UUFDMUIsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLGVBQWUsQ0FBQztRQUUxQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBRWxDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDOzs4R0E5TVEsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWFwcGluZm8vYXBwbGljYXRpb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuXG5leHBvcnQgY29uc3QgUkVDQVBUQ0hBX0FQSV9VUkwgPSAnYXBpL3JlY2FwdGNoYSc7XG5leHBvcnQgY29uc3QgQ0FQVENIQV9FUlJPUl9OQU1FID0gJ3JlY2FwdGNoYSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVjYXB0Y2hhU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvcnM6IE9ic2VydmFibGU8Rm9ybUVycm9yW10+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUVycm9yW10+KFtdKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNob3VsZERpc3BsYXk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBwdWJsaWNLZXk6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBwcml2YXRlIHRva2VuOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbyxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmVycm9ycyA9IHRoaXMuaW5pdEVycm9yT2JzZXJ2YWJsZSgpOyAvLyBoYXMgdG8gYmUgZmlyc3Qgc2luY2UgaXQgaXMgdXNlZCBpbiBpbml0U2hvdWxkRGlzcGxheU9ic2VydmFibGUgIVxuICAgICAgICB0aGlzLnNob3VsZERpc3BsYXkgPSB0aGlzLmluaXRTaG91bGREaXNwbGF5T2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLnB1YmxpY0tleSA9IHRoaXMuaW5pdFB1YmxpY0tleU9ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBvblN1Y2Nlc3ModG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAvLyBUbyBiZSBhY2Nlc3NlZCBieSB0aGUgZ2VzZGVtIHNlcnZpY2UgYW5kIHRvIGF2b2lkIHRvIGhhdmUgYSBjaXJjdWxhclxuICAgICAgICAvLyBkZXBlbmRlbmN5IGJldHdlZW4gdGhlIGdlc2RlbUhhbmRsZXJTZXJ2aWNlIGFuZCB0aGUgY2FwdGNoYSBzZXJ2aWNlLlxuICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2Uuc2V0Q2FwdGNoYVRva2VuKHRva2VuKTtcblxuICAgICAgICB0aGlzLnRva2VuID0gdG9rZW47XG5cbiAgICAgICAgaWYgKCEhdGhpcy50b2tlbikge1xuICAgICAgICAgICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgICAgICAgICAgdGhpcy5odHRwLnBvc3QoUkVDQVBUQ0hBX0FQSV9VUkwsIHsgdG9rZW46IHRoaXMudG9rZW4gfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gISFkYXRhLnN1Y2Nlc3M7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciBhbnkgcG90ZW50aWFsIGVycm9ycyBmcm9tIHRoZSBzZXJ2ZXIuIFdlIGNhbiBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBiZWNhdXNlIHRoaXMgc2hvdWxkIGJlIHRoZSBvbmx5IGVycm9yIGluIHRoZSBzZXQgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXB0Y2hhIG11c3QgYmUgdmFsaWQgdG8gaGF2ZSBhdCBsZWFzdCBvbmUgZm9ybSBlcnJvci5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnVwZGF0ZUVycm9ycyhbXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIHRocm93biwgdGhhdCdzIHByZXR0eSBiYWQgYmVjYXVzZSBpdCBtZWFuc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBHb29nbGUgY291bGRuJ3QgdmVyaWZ5IHRoZSBjYXB0Y2hhIGtleS4gVGhpcyBpc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWl0aGVyIGFuIGF0dGFjayBvciBhIG1pc2NvbmZpZ3VyYXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEVycm9yKCdWb3RyZSBjYXB0Y2hhIGVzdCBpbnZhbGlkZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIDQwNCwgdGltZW91dCBvciBuZXR3b3JrIGlzc3VlLiBDb3VsZCBoYXBwZW4uXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsYSB2YWxpZGF0aW9uIGR1IGNhcHRjaGEuJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRFcnJvcihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdFcnJvcnMgPSB0aGlzLmVycm9yc1N1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgbmV3RXJyb3IgPSB7XG4gICAgICAgICAgICBuYW1lOiBDQVBUQ0hBX0VSUk9SX05BTUUsXG4gICAgICAgICAgICBjb2RlOiBDQVBUQ0hBX0VSUk9SX05BTUUsXG4gICAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0Lm5leHQoW25ld0Vycm9yLCAuLi5leGlzdGluZ0Vycm9yc10pO1xuICAgIH1cblxuICAgIGNsZWFyRXJyb3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVycm9yc1N1YmplY3QubmV4dChbXSk7XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JzKCk6IE9ic2VydmFibGU8Rm9ybUVycm9yW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzO1xuICAgIH1cblxuICAgIGdldFNob3VsZERpc3BsYXkoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3VsZERpc3BsYXk7XG4gICAgfVxuXG4gICAgZ2V0UHVibGljS2V5KCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnB1YmxpY0tleTtcbiAgICB9XG5cbiAgICBnZXRUb2tlbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFcnJvck9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxGb3JtRXJyb3JbXT4ge1xuICAgICAgICBjb25zdCBtYXRjaGluZ0dlc2RlbUVycm9ycyA9IG1lcmdlKFxuICAgICAgICAgICAgLy8gRW5zdXJlcyB0aGF0IHRoZXJlJ3MgYW4gaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgb2YoW10pLFxuICAgICAgICAgICAgLy8gUmVhZCBmcm9tIHRoZSBnZXNkZW0gc2VydmljZSBhbGwgZXJyb3JzLlxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkVycm9yc1N1YmplY3RcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgLy8gRXJyb3JzIGZyb20gR2VzRGVtLCBvciBub3RoaW5nXG4gICAgICAgICAgICBtYXAoZXJyb3JzID0+IGVycm9ycy5maWx0ZXIoZXggPT4gQ0FQVENIQV9FUlJPUl9OQU1FID09PSBleC5jb2RlKSlcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBCaW5kIGVycm9ycyB0byB0aGUgY29tcG9uZW50LCBlaXRoZXIgZnJvbSB0aGUgYmFja2VuZCBvZiBmcm9tIHRoaXMgY29tcG9uZW50XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIC8vIEVycm9ycyBmcm9tIGdlc2RlbSBtYXRjaGluZyB0aGUgbmFtZSBvZiB0aGUgY2FwdGNoYS5cbiAgICAgICAgICAgIG1hdGNoaW5nR2VzZGVtRXJyb3JzLFxuICAgICAgICAgICAgLy8gTWFudWFsIGVycm9yc1xuICAgICAgICAgICAgdGhpcy5lcnJvcnNTdWJqZWN0XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBNZXJnZSB0aGUgdHdvIGVycm9ycyBzZXRzXG4gICAgICAgICAgICBtYXAoKFtnZXNkZW1FcnJvcnMsIGxvY2FsRXJyb3JzXSkgPT4gW1xuICAgICAgICAgICAgICAgIC4uLmdlc2RlbUVycm9ycyxcbiAgICAgICAgICAgICAgICAuLi5sb2NhbEVycm9yc1xuICAgICAgICAgICAgXSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTaG91bGREaXNwbGF5T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRPYnNlcnZhYmxlID0gdGhpcy5zZXNzaW9uSW5mby5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiAhdGhpcy5zZXNzaW9uSW5mby5uZXZlckNvbm5lY3RlZCAmJiAhIWRhdGEpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaGFzQnlwYXNzRW5hYmxlZE9ic2VydmFibGUgPSB0aGlzLmNoZWNrQnlwYXNzUHJvcGVydHkoKS5waXBlKFxuICAgICAgICAgICAgbWFwKGJ5cGFzcyA9PiAhIWJ5cGFzcy52YWx1ZSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBoYXNSZWZlcmVuY2VPYnNlcnZhYmxlID0gbWVyZ2UoXG4gICAgICAgICAgICAvLyBUbyBoYXZlIGFuIGluaXRpYWwgdmFsdWUuIENhbiBiZSBudWxsIGlmIHRoZXJlIGlzIG5vIGZvcm0uXG4gICAgICAgICAgICBvZih0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlKSxcbiAgICAgICAgICAgIC8vIFJlYWQgdGhlIGZvcm0gZnJvbSBHZXNEZW1cbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgZm9ybSA9PlxuICAgICAgICAgICAgICAgICAgICAhIWZvcm0gJiZcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlICYmXG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhICYmXG4gICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIGlzQ29ubmVjdGVkT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIGhhc0J5cGFzc0VuYWJsZWRPYnNlcnZhYmxlLFxuICAgICAgICAgICAgaGFzUmVmZXJlbmNlT2JzZXJ2YWJsZSxcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBUbyB3b3JrIGFyb3VuZCByYXBpZGx5IGNoYW5naW5nIG9ic2VydmFibGVzLCBzdWNoIGFzIHRoZSBmb3JtXG4gICAgICAgICAgICAvLyB3aGVuIHRoZSBwYWdlIGxvYWRzLlxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApLFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbXG4gICAgICAgICAgICAgICAgICAgIGlzQ29ubmVjdGVkLFxuICAgICAgICAgICAgICAgICAgICBoYXNCeXBhc3NFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICBoYXNSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgIGNhcHRjaGFFcnJvcnNcbiAgICAgICAgICAgICAgICBdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghIWNhcHRjaGFFcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIGRpc3BsYXkgdGhlIGNvbXBvbmVudCBpZiBpdCBoYXMgYW4gZXJyb3IsIHVzZXIgY291bGQgaGFzIGxvZ2dlZCBvdXQgaW4gYW5vdGhlciB3aW5kb3dcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBkaXNwbGF5IHRoZSBjYXB0Y2hhIGlmIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGFwcGxpY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgIC8vIGFscmVhZHkgaGFzIGEgcmVmZXJlbmNlIG9yIGlmIHRoZSBieXBhc3MgaXMgZW5hYmxlZC5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpc0Nvbm5lY3RlZCAmJiAhaGFzQnlwYXNzRW5hYmxlZCAmJiAhaGFzUmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgY2hlY2tCeXBhc3NQcm9wZXJ0eSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSAhIXRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVDYXB0Y2hhQnlQYXNzVVVJRFxuICAgICAgICAgICAgPyBuZXcgSHR0cFBhcmFtcygpLnNldChcbiAgICAgICAgICAgICAgICAgICdyZUNhcHRjaGFCeVBhc3NVVUlEJyxcbiAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMucmVDYXB0Y2hhQnlQYXNzVVVJRFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7UkVDQVBUQ0hBX0FQSV9VUkx9L2J5cGFzc2AsIHsgcGFyYW1zIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFB1YmxpY0tleU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25JbmZvU2VydmljZS5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoYXBwbGljYXRpb25JbmZvID0+IHRoaXMuZ2V0UHVibGljS2V5T3JOdWxsKGFwcGxpY2F0aW9uSW5mbykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQdWJsaWNLZXlPck51bGwoXG4gICAgICAgIGFwcGxpY2F0aW9uSW5mbzogQXBwbGljYXRpb25JbmZvXG4gICAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIC8vIFJlcGxhY2UgdGhpcyB3aG9sZSBzaGVuYW5pZ2FuIHdpdGggYXBwbGljYXRpb25JbmZvPy5jb25maWd1cmF0aW9uPy5jYXB0Y2hhPy5wdWJsaWNrZXkgd2hlblxuICAgICAgICAvLyBUeXBlc2NyaXB0IHN1cHBvcnRzIGl0LlxuICAgICAgICBpZiAoIWFwcGxpY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGNvbmZpZ3VyYXRpb24gfSA9IGFwcGxpY2F0aW9uSW5mbztcblxuICAgICAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2FwdGNoYSB9ID0gY29uZmlndXJhdGlvbjtcblxuICAgICAgICBpZiAoIWNhcHRjaGEpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhcHRjaGEucHVibGlja2V5IHx8IG51bGw7XG4gICAgfVxufVxuIl19
@@ -10825,8 +10825,8 @@ class RecaptchaService {
10825
10825
  this.gesdemEventService = gesdemEventService;
10826
10826
  this.applicationInfoService = applicationInfoService;
10827
10827
  this.errorsSubject = new BehaviorSubject([]);
10828
+ this.errors = this.initErrorObservable(); // has to be first since it is used in initShouldDisplayObservable !
10828
10829
  this.shouldDisplay = this.initShouldDisplayObservable();
10829
- this.errors = this.initErrorObservable();
10830
10830
  this.publicKey = this.initPublicKeyObservable();
10831
10831
  }
10832
10832
  onSuccess(token) {
@@ -10918,14 +10918,20 @@ class RecaptchaService {
10918
10918
  return combineLatest([
10919
10919
  isConnectedObservable,
10920
10920
  hasBypassEnabledObservable,
10921
- hasReferenceObservable
10921
+ hasReferenceObservable,
10922
+ this.errors
10922
10923
  ]).pipe(
10923
10924
  // To work around rapidly changing observables, such as the form
10924
10925
  // when the page loads.
10925
- debounceTime(0), map(([isConnected, hasBypassEnabled, hasReference]) =>
10926
- // Do not display the captcha if the user is connected, the application
10927
- // already has a reference or if the bypass is enabled.
10928
- !isConnected && !hasBypassEnabled && !hasReference));
10926
+ debounceTime(0), map(([isConnected, hasBypassEnabled, hasReference, captchaErrors]) => {
10927
+ if (!!(captchaErrors === null || captchaErrors === void 0 ? void 0 : captchaErrors.length)) {
10928
+ // always display the component if it has an error, user could has logged out in another window
10929
+ return true;
10930
+ }
10931
+ // Do not display the captcha if the user is connected, the application
10932
+ // already has a reference or if the bypass is enabled.
10933
+ return !isConnected && !hasBypassEnabled && !hasReference;
10934
+ }));
10929
10935
  }
10930
10936
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10931
10937
  checkBypassProperty() {