valtech-components 4.0.97 → 4.0.99

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.
@@ -18,6 +18,7 @@ export class VerifyViewComponent {
18
18
  this.i18n = inject(I18nService);
19
19
  this.state = signal('verifying');
20
20
  this.errorMessage = signal('');
21
+ this.errorCode = signal('');
21
22
  this.resendSent = signal(false);
22
23
  this.resending = signal(false);
23
24
  this.maskedEmail = () => {
@@ -45,8 +46,16 @@ export class VerifyViewComponent {
45
46
  this.state.set('success');
46
47
  }
47
48
  catch (err) {
48
- this.state.set('error');
49
- this.errorMessage.set(this.resolveErrorMessage(err));
49
+ const { message, key } = this.resolveError(err);
50
+ if (key === 'alreadyVerified') {
51
+ this.state.set('success');
52
+ this.errorCode.set(key);
53
+ }
54
+ else {
55
+ this.state.set('error');
56
+ this.errorMessage.set(message);
57
+ this.errorCode.set(key);
58
+ }
50
59
  }
51
60
  }
52
61
  onContinue() {
@@ -68,25 +77,30 @@ export class VerifyViewComponent {
68
77
  this.resending.set(false);
69
78
  }
70
79
  }
71
- resolveErrorMessage(err) {
80
+ resolveError(err) {
72
81
  if (err && typeof err === 'object') {
73
82
  const code = err['code'];
74
- const errorCodeMap = {
75
- INVALID_CODE: this.t('invalidCode'),
76
- EXPIRED_CODE: this.t('expiredCode'),
77
- CODE_EXPIRED: this.t('expiredCode'),
78
- ALREADY_VERIFIED: this.t('alreadyVerified'),
79
- TOO_MANY_ATTEMPTS: this.t('tooManyAttempts'),
80
- RATE_LIMITED: this.t('tooManyAttempts'),
83
+ const keyMap = {
84
+ INVALID_CODE: 'invalidCode',
85
+ AUTHV2_INVALID_CODE: 'invalidCode',
86
+ EXPIRED_CODE: 'expiredCode',
87
+ CODE_EXPIRED: 'expiredCode',
88
+ AUTHV2_CODE_EXPIRED: 'expiredCode',
89
+ ALREADY_VERIFIED: 'alreadyVerified',
90
+ AUTHV2_ALREADY_VERIFIED: 'alreadyVerified',
91
+ TOO_MANY_ATTEMPTS: 'tooManyAttempts',
92
+ AUTHV2_TOO_MANY_ATTEMPTS: 'tooManyAttempts',
93
+ RATE_LIMITED: 'tooManyAttempts',
81
94
  };
82
- if (code && errorCodeMap[code]) {
83
- return errorCodeMap[code];
95
+ if (code && keyMap[code]) {
96
+ const key = keyMap[code];
97
+ return { message: this.t(key), key };
84
98
  }
85
99
  const msg = err['message'];
86
100
  if (msg)
87
- return msg;
101
+ return { message: msg, key: 'unknown' };
88
102
  }
89
- return this.t('unknownError');
103
+ return { message: this.t('unknownError'), key: 'unknown' };
90
104
  }
91
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VerifyViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
106
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: VerifyViewComponent, isStandalone: true, selector: "val-verify-view", inputs: { props: "props" }, outputs: { onSuccess: "onSuccess" }, ngImport: i0, template: `
@@ -102,8 +116,12 @@ export class VerifyViewComponent {
102
116
  @if (state() === 'success') {
103
117
  <div class="verify-view__state">
104
118
  <ion-icon name="checkmark-circle-outline" class="verify-view__icon verify-view__icon--success" />
105
- <p class="verify-view__title">{{ t('successTitle') }}</p>
106
- <p class="verify-view__subtitle verify-view__subtitle--muted">{{ t('successSubtitle') }}</p>
119
+ <p class="verify-view__title">
120
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedTitle' : 'successTitle') }}
121
+ </p>
122
+ <p class="verify-view__subtitle verify-view__subtitle--muted">
123
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedSubtitle' : 'successSubtitle') }}
124
+ </p>
107
125
  <button type="button" class="verify-view__btn verify-view__btn--primary" (click)="onContinue()">
108
126
  {{ t('continueBtn') }}
109
127
  </button>
@@ -151,8 +169,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
151
169
  @if (state() === 'success') {
152
170
  <div class="verify-view__state">
153
171
  <ion-icon name="checkmark-circle-outline" class="verify-view__icon verify-view__icon--success" />
154
- <p class="verify-view__title">{{ t('successTitle') }}</p>
155
- <p class="verify-view__subtitle verify-view__subtitle--muted">{{ t('successSubtitle') }}</p>
172
+ <p class="verify-view__title">
173
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedTitle' : 'successTitle') }}
174
+ </p>
175
+ <p class="verify-view__subtitle verify-view__subtitle--muted">
176
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedSubtitle' : 'successSubtitle') }}
177
+ </p>
156
178
  <button type="button" class="verify-view__btn verify-view__btn--primary" (click)="onContinue()">
157
179
  {{ t('continueBtn') }}
158
180
  </button>
@@ -187,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
187
209
  }], ctorParameters: () => [], propDecorators: { props: [{
188
210
  type: Input
189
211
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy92ZXJpZnktdmlldy92ZXJpZnktdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLdEQsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDO0FBK0x4QixNQUFNLE9BQU8sbUJBQW1CO0lBd0I5QjtRQXJCUyxjQUFTLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFNUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENB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NElBeExwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNULHlwRUE5Q1MsWUFBWSwrQkFBRSxPQUFPLDJKQUFFLFVBQVU7OzRGQXlMaEMsbUJBQW1CO2tCQTdML0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxZQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNUO3dEQTRJUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSwgd2FybmluZ091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBWRVJJRllfVklFV19JMThOIH0gZnJvbSAnLi92ZXJpZnktdmlldy5pMThuJztcbmltcG9ydCB7IFZlcmlmeVZpZXdNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIFZlcmlmeVN0YXRlID0gJ3ZlcmlmeWluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuXG5jb25zdCBOUyA9ICdWZXJpZnlWaWV3JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXZlcmlmeS12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvblNwaW5uZXJdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ2ZXJpZnktdmlld1wiIFtjbGFzcy52ZXJpZnktdmlldy0tY2FyZF09XCJwcm9wcy5zaG93Q2FyZFwiPlxuICAgICAgQGlmIChzdGF0ZSgpID09PSAndmVyaWZ5aW5nJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidmVyaWZ5LXZpZXdfX3N0YXRlXCI+XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3NwaW5uZXJcIiAvPlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3RpdGxlXCI+e3sgdCgndmVyaWZ5aW5nJykgfX08L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3VidGl0bGUgdmVyaWZ5LXZpZXdfX3N1YnRpdGxlLS1tdXRlZFwiPnt7IG1hc2tlZEVtYWlsKCkgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHN0YXRlKCkgPT09ICdzdWNjZXNzJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidmVyaWZ5LXZpZXdfX3N0YXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlLW91dGxpbmVcIiBjbGFzcz1cInZlcmlmeS12aWV3X19pY29uIHZlcmlmeS12aWV3X19pY29uLS1zdWNjZXNzXCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeS12aWV3X190aXRsZVwiPnt7IHQoJ3N1Y2Nlc3NUaXRsZScpIH19PC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3N1YnRpdGxlIHZlcmlmeS12aWV3X19zdWJ0aXRsZS0tbXV0ZWRcIj57eyB0KCdzdWNjZXNzU3VidGl0bGUnKSB9fTwvcD5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInZlcmlmeS12aWV3X19idG4gdmVyaWZ5LXZpZXdfX2J0bi0tcHJpbWFyeVwiIChjbGljayk9XCJvbkNvbnRpbnVlKClcIj5cbiAgICAgICAgICAgIHt7IHQoJ2NvbnRpbnVlQnRuJykgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ2Vycm9yJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidmVyaWZ5LXZpZXdfX3N0YXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ3YXJuaW5nLW91dGxpbmVcIiBjbGFzcz1cInZlcmlmeS12aWV3X19pY29uIHZlcmlmeS12aWV3X19pY29uLS13YXJuaW5nXCIgLz5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeS12aWV3X190aXRsZVwiPnt7IHQoJ2Vycm9yVGl0bGUnKSB9fTwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeS12aWV3X19zdWJ0aXRsZSB2ZXJpZnktdmlld19fc3VidGl0bGUtLWVycm9yXCI+e3sgZXJyb3JNZXNzYWdlKCkgfX08L3A+XG4gICAgICAgICAgQGlmIChyZXNlbmRTZW50KCkpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3N1YnRpdGxlIHZlcmlmeS12aWV3X19zdWJ0aXRsZS0tc3VjY2Vzc1wiPnt7IHQoJ2NvZGVTZW50JykgfX08L3A+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInZlcmlmeS12aWV3X19idG4gdmVyaWZ5LXZpZXdfX2J0bi0tb3V0bGluZVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXNlbmRpbmcoKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblJlc2VuZCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmIChyZXNlbmRpbmcoKSkge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBjbGFzcz1cInZlcmlmeS12aWV3X19idG4tc3Bpbm5lclwiIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHt7IHQoJ3Jlc2VuZCcpIH19XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXctLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS12YWwtY29udGFpbmVyLXNtLCA1NDBweCk7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fc3RhdGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDFyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fc3Bpbm5lciB7XG4gICAgICAgIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjZmYwMGIyKTtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAzLjVyZW07XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19faWNvbi0tc3VjY2VzcyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2VzcywgIzJkZDM2Zik7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19faWNvbi0td2FybmluZyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itd2FybmluZywgI2ZmYzQwOSk7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fdGl0bGUge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmssICMyZjJhMzYpO1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fc3VidGl0bGUtLW11dGVkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM2YjY2NzUpO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX3N1YnRpdGxlLS1lcnJvciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyLCAjZWI0NDVhKTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19zdWJ0aXRsZS0tc3VjY2VzcyB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2VzcywgIzJkZDM2Zik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fYnRuIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMnJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDEyMG1zIGVhc2UsXG4gICAgICAgICAgb3BhY2l0eSAxMjBtcyBlYXNlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19idG46ZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fYnRuLS1wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICNmZjAwYjIpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktY29udHJhc3QsICNmZmYpO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX2J0bi0tcHJpbWFyeTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXNoYWRlLCAjYjUwMDdmKTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19idG4tLW91dGxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgI2ZmMDBiMik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgI2ZmMDBiMik7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fYnRuLS1vdXRsaW5lOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IsIDI1NSwgMCwgMTc4KSwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fYnRuLXNwaW5uZXIge1xuICAgICAgICAtLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gICAgICAgIHdpZHRoOiAxLjI1cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgICAgICAudmVyaWZ5LXZpZXctLWNhcmQge1xuICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFZlcmlmeVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wcyE6IFZlcmlmeVZpZXdNZXRhZGF0YTtcblxuICByZWFkb25seSBvblN1Y2Nlc3MgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHN0YXRlID0gc2lnbmFsPFZlcmlmeVN0YXRlPigndmVyaWZ5aW5nJyk7XG4gIHJlYWRvbmx5IGVycm9yTWVzc2FnZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgcmVzZW5kU2VudCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHJlc2VuZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgbWFza2VkRW1haWwgPSAoKSA9PiB7XG4gICAgY29uc3QgZW1haWwgPSB0aGlzLnByb3BzPy5lbWFpbCA/PyAnJztcbiAgICBjb25zdCBhdElkeCA9IGVtYWlsLmluZGV4T2YoJ0AnKTtcbiAgICBpZiAoYXRJZHggPCAwKSByZXR1cm4gZW1haWw7XG4gICAgY29uc3QgbG9jYWwgPSBlbWFpbC5zbGljZSgwLCBhdElkeCk7XG4gICAgY29uc3QgZG9tYWluID0gZW1haWwuc2xpY2UoYXRJZHgpO1xuICAgIGNvbnN0IHZpc2libGUgPSBsb2NhbC5zbGljZSgwLCBNYXRoLm1pbigyLCBsb2NhbC5sZW5ndGgpKTtcbiAgICByZXR1cm4gYCR7dmlzaWJsZX0qKioke2RvbWFpbn1gO1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKE5TLCBWRVJJRllfVklFV19JMThOKTtcbiAgICBhZGRJY29ucyh7IGNoZWNrbWFya0NpcmNsZU91dGxpbmUsIHdhcm5pbmdPdXRsaW5lIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnJ1blZlcmlmeSgpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgTlMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBydW5WZXJpZnkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC52ZXJpZnlFbWFpbCh7IGVtYWlsOiB0aGlzLnByb3BzLmVtYWlsLCBjb2RlOiB0aGlzLnByb3BzLmNvZGUgfSkpO1xuICAgICAgdGhpcy5zdGF0ZS5zZXQoJ3N1Y2Nlc3MnKTtcbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIHRoaXMuc3RhdGUuc2V0KCdlcnJvcicpO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KHRoaXMucmVzb2x2ZUVycm9yTWVzc2FnZShlcnIpKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRpbnVlKCk6IHZvaWQge1xuICAgIHRoaXMub25TdWNjZXNzLmVtaXQoKTtcbiAgICBpZiAodGhpcy5wcm9wcy5yZWRpcmVjdE9uU3VjY2Vzcykge1xuICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHRoaXMucHJvcHMucmVkaXJlY3RPblN1Y2Nlc3MsIHsgcmVwbGFjZVVybDogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvblJlc2VuZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnJlc2VuZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC5yZXNlbmRDb2RlKHsgZW1haWw6IHRoaXMucHJvcHMuZW1haWwsIHR5cGU6ICdFTUFJTF9WRVJJRlknIH0pKTtcbiAgICAgIHRoaXMucmVzZW5kU2VudC5zZXQodHJ1ZSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBpZ25vcmUgcmVzZW5kIGVycm9ycyBzaWxlbnRseSDigJQgdXNlciBjYW4gcmV0cnlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5yZXNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVFcnJvck1lc3NhZ2UoZXJyOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAoZXJyICYmIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBjb2RlID0gKGVyciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJ2NvZGUnXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICBjb25zdCBlcnJvckNvZGVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAgIElOVkFMSURfQ09ERTogdGhpcy50KCdpbnZhbGlkQ29kZScpLFxuICAgICAgICBFWFBJUkVEX0NPREU6IHRoaXMudCgnZXhwaXJlZENvZGUnKSxcbiAgICAgICAgQ09ERV9FWFBJUkVEOiB0aGlzLnQoJ2V4cGlyZWRDb2RlJyksXG4gICAgICAgIEFMUkVBRFlfVkVSSUZJRUQ6IHRoaXMudCgnYWxyZWFkeVZlcmlmaWVkJyksXG4gICAgICAgIFRPT19NQU5ZX0FUVEVNUFRTOiB0aGlzLnQoJ3Rvb01hbnlBdHRlbXB0cycpLFxuICAgICAgICBSQVRFX0xJTUlURUQ6IHRoaXMudCgndG9vTWFueUF0dGVtcHRzJyksXG4gICAgICB9O1xuICAgICAgaWYgKGNvZGUgJiYgZXJyb3JDb2RlTWFwW2NvZGVdKSB7XG4gICAgICAgIHJldHVybiBlcnJvckNvZGVNYXBbY29kZV07XG4gICAgICB9XG4gICAgICBjb25zdCBtc2cgPSAoZXJyIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnbWVzc2FnZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChtc2cpIHJldHVybiBtc2c7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnQoJ3Vua25vd25FcnJvcicpO1xuICB9XG59XG4iXX0=
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy92ZXJpZnktdmlldy92ZXJpZnktdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFLdEQsTUFBTSxFQUFFLEdBQUcsWUFBWSxDQUFDO0FBbU14QixNQUFNLE9BQU8sbUJBQW1CO0lBeUI5QjtRQXRCUyxjQUFTLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFNUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENB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QUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN6QixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdkMsQ0FBQztZQUNELE1BQU0sR0FBRyxHQUFJLEdBQStCLENBQUMsU0FBUyxDQUF1QixDQUFDO1lBQzlFLElBQUksR0FBRztnQkFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbkQsQ0FBQztRQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQzsrR0FqR1UsbUJBQW1CO21HQUFuQixtQkFBbUIsNElBNUxwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVCx5cEVBbERTLFlBQVksK0JBQUUsT0FBTywySkFBRSxVQUFVOzs0RkE2TGhDLG1CQUFtQjtrQkFqTS9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsWUFDbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRFQ7d0RBNElRLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGVja21hcmtDaXJjbGVPdXRsaW5lLCB3YXJuaW5nT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IFZFUklGWV9WSUVXX0kxOE4gfSBmcm9tICcuL3ZlcmlmeS12aWV3LmkxOG4nO1xuaW1wb3J0IHsgVmVyaWZ5Vmlld01ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgVmVyaWZ5U3RhdGUgPSAndmVyaWZ5aW5nJyB8ICdzdWNjZXNzJyB8ICdlcnJvcic7XG5cbmNvbnN0IE5TID0gJ1ZlcmlmeVZpZXcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtdmVyaWZ5LXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInZlcmlmeS12aWV3XCIgW2NsYXNzLnZlcmlmeS12aWV3LS1jYXJkXT1cInByb3BzLnNob3dDYXJkXCI+XG4gICAgICBAaWYgKHN0YXRlKCkgPT09ICd2ZXJpZnlpbmcnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3RhdGVcIj5cbiAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3Bpbm5lclwiIC8+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJpZnktdmlld19fdGl0bGVcIj57eyB0KCd2ZXJpZnlpbmcnKSB9fTwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeS12aWV3X19zdWJ0aXRsZSB2ZXJpZnktdmlld19fc3VidGl0bGUtLW11dGVkXCI+e3sgbWFza2VkRW1haWwoKSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc3RhdGUoKSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3RhdGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGUtb3V0bGluZVwiIGNsYXNzPVwidmVyaWZ5LXZpZXdfX2ljb24gdmVyaWZ5LXZpZXdfX2ljb24tLXN1Y2Nlc3NcIiAvPlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3RpdGxlXCI+XG4gICAgICAgICAgICB7eyB0KGVycm9yQ29kZSgpID09PSAnYWxyZWFkeVZlcmlmaWVkJyA/ICdhbHJlYWR5VmVyaWZpZWRUaXRsZScgOiAnc3VjY2Vzc1RpdGxlJykgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3VidGl0bGUgdmVyaWZ5LXZpZXdfX3N1YnRpdGxlLS1tdXRlZFwiPlxuICAgICAgICAgICAge3sgdChlcnJvckNvZGUoKSA9PT0gJ2FscmVhZHlWZXJpZmllZCcgPyAnYWxyZWFkeVZlcmlmaWVkU3VidGl0bGUnIDogJ3N1Y2Nlc3NTdWJ0aXRsZScpIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidmVyaWZ5LXZpZXdfX2J0biB2ZXJpZnktdmlld19fYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uQ29udGludWUoKVwiPlxuICAgICAgICAgICAge3sgdCgnY29udGludWVCdG4nKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChzdGF0ZSgpID09PSAnZXJyb3InKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3RhdGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cIndhcm5pbmctb3V0bGluZVwiIGNsYXNzPVwidmVyaWZ5LXZpZXdfX2ljb24gdmVyaWZ5LXZpZXdfX2ljb24tLXdhcm5pbmdcIiAvPlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3RpdGxlXCI+e3sgdCgnZXJyb3JUaXRsZScpIH19PC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5LXZpZXdfX3N1YnRpdGxlIHZlcmlmeS12aWV3X19zdWJ0aXRsZS0tZXJyb3JcIj57eyBlcnJvck1lc3NhZ2UoKSB9fTwvcD5cbiAgICAgICAgICBAaWYgKHJlc2VuZFNlbnQoKSkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJpZnktdmlld19fc3VidGl0bGUgdmVyaWZ5LXZpZXdfX3N1YnRpdGxlLS1zdWNjZXNzXCI+e3sgdCgnY29kZVNlbnQnKSB9fTwvcD5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidmVyaWZ5LXZpZXdfX2J0biB2ZXJpZnktdmlld19fYnRuLS1vdXRsaW5lXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlc2VuZGluZygpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVzZW5kKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBAaWYgKHJlc2VuZGluZygpKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGNsYXNzPVwidmVyaWZ5LXZpZXdfX2J0bi1zcGlubmVyXCIgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAge3sgdCgncmVzZW5kJykgfX1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlldy0tY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgICAgICBtYXgtd2lkdGg6IHZhcigtLXZhbC1jb250YWluZXItc20sIDU0MHB4KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19zdGF0ZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19zcGlubmVyIHtcbiAgICAgICAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnksICNmZjAwYjIpO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19pY29uLS1zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzLCAjMmRkMzZmKTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19pY29uLS13YXJuaW5nIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nLCAjZmZjNDA5KTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X190aXRsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyaywgIzJmMmEzNik7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX3N1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19zdWJ0aXRsZS0tbXV0ZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzZiNjY3NSk7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fc3VidGl0bGUtLWVycm9yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIsICNlYjQ0NWEpO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX3N1YnRpdGxlLS1zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzLCAjMmRkMzZmKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19idG4ge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAycmVtO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgMTIwbXMgZWFzZSxcbiAgICAgICAgICBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDMyMHB4O1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX2J0bjpkaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19idG4tLXByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgI2ZmMDBiMik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1jb250cmFzdCwgI2ZmZik7XG4gICAgICB9XG5cbiAgICAgIC52ZXJpZnktdmlld19fYnRuLS1wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnktc2hhZGUsICNiNTAwN2YpO1xuICAgICAgfVxuXG4gICAgICAudmVyaWZ5LXZpZXdfX2J0bi0tb3V0bGluZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjZmYwMGIyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LCAjZmYwMGIyKTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19idG4tLW91dGxpbmU6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXJnYiwgMjU1LCAwLCAxNzgpLCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgLnZlcmlmeS12aWV3X19idG4tc3Bpbm5lciB7XG4gICAgICAgIC0tY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIC52ZXJpZnktdmlldy0tY2FyZCB7XG4gICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmVyaWZ5Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzITogVmVyaWZ5Vmlld01ldGFkYXRhO1xuXG4gIHJlYWRvbmx5IG9uU3VjY2VzcyA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgc3RhdGUgPSBzaWduYWw8VmVyaWZ5U3RhdGU+KCd2ZXJpZnlpbmcnKTtcbiAgcmVhZG9ubHkgZXJyb3JNZXNzYWdlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuICByZWFkb25seSBlcnJvckNvZGUgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IHJlc2VuZFNlbnQgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSByZXNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG1hc2tlZEVtYWlsID0gKCkgPT4ge1xuICAgIGNvbnN0IGVtYWlsID0gdGhpcy5wcm9wcz8uZW1haWwgPz8gJyc7XG4gICAgY29uc3QgYXRJZHggPSBlbWFpbC5pbmRleE9mKCdAJyk7XG4gICAgaWYgKGF0SWR4IDwgMCkgcmV0dXJuIGVtYWlsO1xuICAgIGNvbnN0IGxvY2FsID0gZW1haWwuc2xpY2UoMCwgYXRJZHgpO1xuICAgIGNvbnN0IGRvbWFpbiA9IGVtYWlsLnNsaWNlKGF0SWR4KTtcbiAgICBjb25zdCB2aXNpYmxlID0gbG9jYWwuc2xpY2UoMCwgTWF0aC5taW4oMiwgbG9jYWwubGVuZ3RoKSk7XG4gICAgcmV0dXJuIGAke3Zpc2libGV9KioqJHtkb21haW59YDtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhOUywgVkVSSUZZX1ZJRVdfSTE4Tik7XG4gICAgYWRkSWNvbnMoeyBjaGVja21hcmtDaXJjbGVPdXRsaW5lLCB3YXJuaW5nT3V0bGluZSB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5ydW5WZXJpZnkoKTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIE5TKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcnVuVmVyaWZ5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGgudmVyaWZ5RW1haWwoeyBlbWFpbDogdGhpcy5wcm9wcy5lbWFpbCwgY29kZTogdGhpcy5wcm9wcy5jb2RlIH0pKTtcbiAgICAgIHRoaXMuc3RhdGUuc2V0KCdzdWNjZXNzJyk7XG4gICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICBjb25zdCB7IG1lc3NhZ2UsIGtleSB9ID0gdGhpcy5yZXNvbHZlRXJyb3IoZXJyKTtcbiAgICAgIGlmIChrZXkgPT09ICdhbHJlYWR5VmVyaWZpZWQnKSB7XG4gICAgICAgIHRoaXMuc3RhdGUuc2V0KCdzdWNjZXNzJyk7XG4gICAgICAgIHRoaXMuZXJyb3JDb2RlLnNldChrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlLnNldChtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5lcnJvckNvZGUuc2V0KGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db250aW51ZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uU3VjY2Vzcy5lbWl0KCk7XG4gICAgaWYgKHRoaXMucHJvcHMucmVkaXJlY3RPblN1Y2Nlc3MpIHtcbiAgICAgIHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnByb3BzLnJlZGlyZWN0T25TdWNjZXNzLCB7IHJlcGxhY2VVcmw6IHRydWUgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25SZXNlbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZXNlbmRpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGgucmVzZW5kQ29kZSh7IGVtYWlsOiB0aGlzLnByb3BzLmVtYWlsLCB0eXBlOiAnRU1BSUxfVkVSSUZZJyB9KSk7XG4gICAgICB0aGlzLnJlc2VuZFNlbnQuc2V0KHRydWUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gaWdub3JlIHJlc2VuZCBlcnJvcnMgc2lsZW50bHkg4oCUIHVzZXIgY2FuIHJldHJ5XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMucmVzZW5kaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRXJyb3IoZXJyOiB1bmtub3duKTogeyBtZXNzYWdlOiBzdHJpbmc7IGtleTogc3RyaW5nIH0ge1xuICAgIGlmIChlcnIgJiYgdHlwZW9mIGVyciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSAoZXJyIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnY29kZSddIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IGtleU1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgSU5WQUxJRF9DT0RFOiAnaW52YWxpZENvZGUnLFxuICAgICAgICBBVVRIVjJfSU5WQUxJRF9DT0RFOiAnaW52YWxpZENvZGUnLFxuICAgICAgICBFWFBJUkVEX0NPREU6ICdleHBpcmVkQ29kZScsXG4gICAgICAgIENPREVfRVhQSVJFRDogJ2V4cGlyZWRDb2RlJyxcbiAgICAgICAgQVVUSFYyX0NPREVfRVhQSVJFRDogJ2V4cGlyZWRDb2RlJyxcbiAgICAgICAgQUxSRUFEWV9WRVJJRklFRDogJ2FscmVhZHlWZXJpZmllZCcsXG4gICAgICAgIEFVVEhWMl9BTFJFQURZX1ZFUklGSUVEOiAnYWxyZWFkeVZlcmlmaWVkJyxcbiAgICAgICAgVE9PX01BTllfQVRURU1QVFM6ICd0b29NYW55QXR0ZW1wdHMnLFxuICAgICAgICBBVVRIVjJfVE9PX01BTllfQVRURU1QVFM6ICd0b29NYW55QXR0ZW1wdHMnLFxuICAgICAgICBSQVRFX0xJTUlURUQ6ICd0b29NYW55QXR0ZW1wdHMnLFxuICAgICAgfTtcbiAgICAgIGlmIChjb2RlICYmIGtleU1hcFtjb2RlXSkge1xuICAgICAgICBjb25zdCBrZXkgPSBrZXlNYXBbY29kZV07XG4gICAgICAgIHJldHVybiB7IG1lc3NhZ2U6IHRoaXMudChrZXkpLCBrZXkgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1zZyA9IChlcnIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pWydtZXNzYWdlJ10gYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG1zZykgcmV0dXJuIHsgbWVzc2FnZTogbXNnLCBrZXk6ICd1bmtub3duJyB9O1xuICAgIH1cbiAgICByZXR1cm4geyBtZXNzYWdlOiB0aGlzLnQoJ3Vua25vd25FcnJvcicpLCBrZXk6ICd1bmtub3duJyB9O1xuICB9XG59XG4iXX0=
@@ -11,6 +11,8 @@ export const VERIFY_VIEW_I18N = {
11
11
  invalidCode: 'El código no es válido.',
12
12
  expiredCode: 'El código expiró. Solicita uno nuevo.',
13
13
  alreadyVerified: 'Este email ya está verificado.',
14
+ alreadyVerifiedTitle: '¡Email verificado!',
15
+ alreadyVerifiedSubtitle: 'Tu email ya estaba verificado. Puedes continuar.',
14
16
  tooManyAttempts: 'Demasiados intentos. Espera unos minutos.',
15
17
  unknownError: 'Ocurrió un error. Intenta de nuevo.',
16
18
  },
@@ -26,8 +28,10 @@ export const VERIFY_VIEW_I18N = {
26
28
  invalidCode: 'The code is not valid.',
27
29
  expiredCode: 'The code has expired. Request a new one.',
28
30
  alreadyVerified: 'This email is already verified.',
31
+ alreadyVerifiedTitle: 'Email verified!',
32
+ alreadyVerifiedSubtitle: 'Your email was already verified. You can continue.',
29
33
  tooManyAttempts: 'Too many attempts. Please wait a few minutes.',
30
34
  unknownError: 'An error occurred. Please try again.',
31
35
  },
32
36
  };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdmVyaWZ5LXZpZXcvdmVyaWZ5LXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBcUI7SUFDaEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixZQUFZLEVBQUUsZ0NBQWdDO1FBQzlDLFlBQVksRUFBRSxvQkFBb0I7UUFDbEMsZUFBZSxFQUFFLHdCQUF3QjtRQUN6QyxXQUFXLEVBQUUsV0FBVztRQUN4QixVQUFVLEVBQUUsb0JBQW9CO1FBQ2hDLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsUUFBUSxFQUFFLHFDQUFxQztRQUMvQyxXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFdBQVcsRUFBRSx1Q0FBdUM7UUFDcEQsZUFBZSxFQUFFLGdDQUFnQztRQUNqRCxlQUFlLEVBQUUsMkNBQTJDO1FBQzVELFlBQVksRUFBRSxxQ0FBcUM7S0FDcEQ7SUFDRCxFQUFFLEVBQUU7UUFDRixTQUFTLEVBQUUsY0FBYztRQUN6QixZQUFZLEVBQUUsNkJBQTZCO1FBQzNDLFlBQVksRUFBRSxpQkFBaUI7UUFDL0IsZUFBZSxFQUFFLDZCQUE2QjtRQUM5QyxXQUFXLEVBQUUsVUFBVTtRQUN2QixVQUFVLEVBQUUscUJBQXFCO1FBQ2pDLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFFBQVEsRUFBRSwrQkFBK0I7UUFDekMsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxXQUFXLEVBQUUsMENBQTBDO1FBQ3ZELGVBQWUsRUFBRSxpQ0FBaUM7UUFDbEQsZUFBZSxFQUFFLCtDQUErQztRQUNoRSxZQUFZLEVBQUUsc0NBQXNDO0tBQ3JEO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IFZFUklGWV9WSUVXX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgdmVyaWZ5aW5nOiAnVmVyaWZpY2FuZG8uLi4nLFxuICAgIGNoZWNraW5nQ29kZTogJ0VzdGFtb3MgdmVyaWZpY2FuZG8gdHUgY8OzZGlnby4nLFxuICAgIHN1Y2Nlc3NUaXRsZTogJ8KhRW1haWwgdmVyaWZpY2FkbyEnLFxuICAgIHN1Y2Nlc3NTdWJ0aXRsZTogJ1R1IGN1ZW50YSBlc3TDoSBhY3RpdmEuJyxcbiAgICBjb250aW51ZUJ0bjogJ0NvbnRpbnVhcicsXG4gICAgZXJyb3JUaXRsZTogJ0Vycm9yIGFsIHZlcmlmaWNhcicsXG4gICAgcmVzZW5kOiAnUmVlbnZpYXIgY8OzZGlnbycsXG4gICAgY29kZVNlbnQ6ICdDw7NkaWdvIHJlZW52aWFkbyDigJQgcmV2aXNhIHR1IGVtYWlsLicsXG4gICAgaW52YWxpZENvZGU6ICdFbCBjw7NkaWdvIG5vIGVzIHbDoWxpZG8uJyxcbiAgICBleHBpcmVkQ29kZTogJ0VsIGPDs2RpZ28gZXhwaXLDsy4gU29saWNpdGEgdW5vIG51ZXZvLicsXG4gICAgYWxyZWFkeVZlcmlmaWVkOiAnRXN0ZSBlbWFpbCB5YSBlc3TDoSB2ZXJpZmljYWRvLicsXG4gICAgdG9vTWFueUF0dGVtcHRzOiAnRGVtYXNpYWRvcyBpbnRlbnRvcy4gRXNwZXJhIHVub3MgbWludXRvcy4nLFxuICAgIHVua25vd25FcnJvcjogJ09jdXJyacOzIHVuIGVycm9yLiBJbnRlbnRhIGRlIG51ZXZvLicsXG4gIH0sXG4gIGVuOiB7XG4gICAgdmVyaWZ5aW5nOiAnVmVyaWZ5aW5nLi4uJyxcbiAgICBjaGVja2luZ0NvZGU6ICdXZSBhcmUgdmVyaWZ5aW5nIHlvdXIgY29kZS4nLFxuICAgIHN1Y2Nlc3NUaXRsZTogJ0VtYWlsIHZlcmlmaWVkIScsXG4gICAgc3VjY2Vzc1N1YnRpdGxlOiAnWW91ciBhY2NvdW50IGlzIG5vdyBhY3RpdmUuJyxcbiAgICBjb250aW51ZUJ0bjogJ0NvbnRpbnVlJyxcbiAgICBlcnJvclRpdGxlOiAnVmVyaWZpY2F0aW9uIGZhaWxlZCcsXG4gICAgcmVzZW5kOiAnUmVzZW5kIGNvZGUnLFxuICAgIGNvZGVTZW50OiAnQ29kZSBzZW50IOKAlCBjaGVjayB5b3VyIGVtYWlsLicsXG4gICAgaW52YWxpZENvZGU6ICdUaGUgY29kZSBpcyBub3QgdmFsaWQuJyxcbiAgICBleHBpcmVkQ29kZTogJ1RoZSBjb2RlIGhhcyBleHBpcmVkLiBSZXF1ZXN0IGEgbmV3IG9uZS4nLFxuICAgIGFscmVhZHlWZXJpZmllZDogJ1RoaXMgZW1haWwgaXMgYWxyZWFkeSB2ZXJpZmllZC4nLFxuICAgIHRvb01hbnlBdHRlbXB0czogJ1RvbyBtYW55IGF0dGVtcHRzLiBQbGVhc2Ugd2FpdCBhIGZldyBtaW51dGVzLicsXG4gICAgdW5rbm93bkVycm9yOiAnQW4gZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uJyxcbiAgfSxcbn07XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXZpZXcuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdmVyaWZ5LXZpZXcvdmVyaWZ5LXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBcUI7SUFDaEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLGdCQUFnQjtRQUMzQixZQUFZLEVBQUUsZ0NBQWdDO1FBQzlDLFlBQVksRUFBRSxvQkFBb0I7UUFDbEMsZUFBZSxFQUFFLHdCQUF3QjtRQUN6QyxXQUFXLEVBQUUsV0FBVztRQUN4QixVQUFVLEVBQUUsb0JBQW9CO1FBQ2hDLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsUUFBUSxFQUFFLHFDQUFxQztRQUMvQyxXQUFXLEVBQUUseUJBQXlCO1FBQ3RDLFdBQVcsRUFBRSx1Q0FBdUM7UUFDcEQsZUFBZSxFQUFFLGdDQUFnQztRQUNqRCxvQkFBb0IsRUFBRSxvQkFBb0I7UUFDMUMsdUJBQXVCLEVBQUUsa0RBQWtEO1FBQzNFLGVBQWUsRUFBRSwyQ0FBMkM7UUFDNUQsWUFBWSxFQUFFLHFDQUFxQztLQUNwRDtJQUNELEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFlBQVksRUFBRSw2QkFBNkI7UUFDM0MsWUFBWSxFQUFFLGlCQUFpQjtRQUMvQixlQUFlLEVBQUUsNkJBQTZCO1FBQzlDLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFVBQVUsRUFBRSxxQkFBcUI7UUFDakMsTUFBTSxFQUFFLGFBQWE7UUFDckIsUUFBUSxFQUFFLCtCQUErQjtRQUN6QyxXQUFXLEVBQUUsd0JBQXdCO1FBQ3JDLFdBQVcsRUFBRSwwQ0FBMEM7UUFDdkQsZUFBZSxFQUFFLGlDQUFpQztRQUNsRCxvQkFBb0IsRUFBRSxpQkFBaUI7UUFDdkMsdUJBQXVCLEVBQUUsb0RBQW9EO1FBQzdFLGVBQWUsRUFBRSwrQ0FBK0M7UUFDaEUsWUFBWSxFQUFFLHNDQUFzQztLQUNyRDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJJRllfVklFV19JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHZlcmlmeWluZzogJ1ZlcmlmaWNhbmRvLi4uJyxcbiAgICBjaGVja2luZ0NvZGU6ICdFc3RhbW9zIHZlcmlmaWNhbmRvIHR1IGPDs2RpZ28uJyxcbiAgICBzdWNjZXNzVGl0bGU6ICfCoUVtYWlsIHZlcmlmaWNhZG8hJyxcbiAgICBzdWNjZXNzU3VidGl0bGU6ICdUdSBjdWVudGEgZXN0w6EgYWN0aXZhLicsXG4gICAgY29udGludWVCdG46ICdDb250aW51YXInLFxuICAgIGVycm9yVGl0bGU6ICdFcnJvciBhbCB2ZXJpZmljYXInLFxuICAgIHJlc2VuZDogJ1JlZW52aWFyIGPDs2RpZ28nLFxuICAgIGNvZGVTZW50OiAnQ8OzZGlnbyByZWVudmlhZG8g4oCUIHJldmlzYSB0dSBlbWFpbC4nLFxuICAgIGludmFsaWRDb2RlOiAnRWwgY8OzZGlnbyBubyBlcyB2w6FsaWRvLicsXG4gICAgZXhwaXJlZENvZGU6ICdFbCBjw7NkaWdvIGV4cGlyw7MuIFNvbGljaXRhIHVubyBudWV2by4nLFxuICAgIGFscmVhZHlWZXJpZmllZDogJ0VzdGUgZW1haWwgeWEgZXN0w6EgdmVyaWZpY2Fkby4nLFxuICAgIGFscmVhZHlWZXJpZmllZFRpdGxlOiAnwqFFbWFpbCB2ZXJpZmljYWRvIScsXG4gICAgYWxyZWFkeVZlcmlmaWVkU3VidGl0bGU6ICdUdSBlbWFpbCB5YSBlc3RhYmEgdmVyaWZpY2Fkby4gUHVlZGVzIGNvbnRpbnVhci4nLFxuICAgIHRvb01hbnlBdHRlbXB0czogJ0RlbWFzaWFkb3MgaW50ZW50b3MuIEVzcGVyYSB1bm9zIG1pbnV0b3MuJyxcbiAgICB1bmtub3duRXJyb3I6ICdPY3VycmnDsyB1biBlcnJvci4gSW50ZW50YSBkZSBudWV2by4nLFxuICB9LFxuICBlbjoge1xuICAgIHZlcmlmeWluZzogJ1ZlcmlmeWluZy4uLicsXG4gICAgY2hlY2tpbmdDb2RlOiAnV2UgYXJlIHZlcmlmeWluZyB5b3VyIGNvZGUuJyxcbiAgICBzdWNjZXNzVGl0bGU6ICdFbWFpbCB2ZXJpZmllZCEnLFxuICAgIHN1Y2Nlc3NTdWJ0aXRsZTogJ1lvdXIgYWNjb3VudCBpcyBub3cgYWN0aXZlLicsXG4gICAgY29udGludWVCdG46ICdDb250aW51ZScsXG4gICAgZXJyb3JUaXRsZTogJ1ZlcmlmaWNhdGlvbiBmYWlsZWQnLFxuICAgIHJlc2VuZDogJ1Jlc2VuZCBjb2RlJyxcbiAgICBjb2RlU2VudDogJ0NvZGUgc2VudCDigJQgY2hlY2sgeW91ciBlbWFpbC4nLFxuICAgIGludmFsaWRDb2RlOiAnVGhlIGNvZGUgaXMgbm90IHZhbGlkLicsXG4gICAgZXhwaXJlZENvZGU6ICdUaGUgY29kZSBoYXMgZXhwaXJlZC4gUmVxdWVzdCBhIG5ldyBvbmUuJyxcbiAgICBhbHJlYWR5VmVyaWZpZWQ6ICdUaGlzIGVtYWlsIGlzIGFscmVhZHkgdmVyaWZpZWQuJyxcbiAgICBhbHJlYWR5VmVyaWZpZWRUaXRsZTogJ0VtYWlsIHZlcmlmaWVkIScsXG4gICAgYWxyZWFkeVZlcmlmaWVkU3VidGl0bGU6ICdZb3VyIGVtYWlsIHdhcyBhbHJlYWR5IHZlcmlmaWVkLiBZb3UgY2FuIGNvbnRpbnVlLicsXG4gICAgdG9vTWFueUF0dGVtcHRzOiAnVG9vIG1hbnkgYXR0ZW1wdHMuIFBsZWFzZSB3YWl0IGEgZmV3IG1pbnV0ZXMuJyxcbiAgICB1bmtub3duRXJyb3I6ICdBbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICB9LFxufTtcbiJdfQ==
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.97';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45Nyc7XG4iXX0=
5
+ export const VERSION = '4.0.99';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45OSc7XG4iXX0=
@@ -56,7 +56,7 @@ import { BrowserMultiFormatReader } from '@zxing/browser';
56
56
  * Current version of valtech-components.
57
57
  * This is automatically updated during the publish process.
58
58
  */
59
- const VERSION = '4.0.97';
59
+ const VERSION = '4.0.99';
60
60
 
61
61
  // Control de estado de refresco (singleton a nivel de módulo)
62
62
  let isRefreshing = false;
@@ -63793,6 +63793,8 @@ const VERIFY_VIEW_I18N = {
63793
63793
  invalidCode: 'El código no es válido.',
63794
63794
  expiredCode: 'El código expiró. Solicita uno nuevo.',
63795
63795
  alreadyVerified: 'Este email ya está verificado.',
63796
+ alreadyVerifiedTitle: '¡Email verificado!',
63797
+ alreadyVerifiedSubtitle: 'Tu email ya estaba verificado. Puedes continuar.',
63796
63798
  tooManyAttempts: 'Demasiados intentos. Espera unos minutos.',
63797
63799
  unknownError: 'Ocurrió un error. Intenta de nuevo.',
63798
63800
  },
@@ -63808,6 +63810,8 @@ const VERIFY_VIEW_I18N = {
63808
63810
  invalidCode: 'The code is not valid.',
63809
63811
  expiredCode: 'The code has expired. Request a new one.',
63810
63812
  alreadyVerified: 'This email is already verified.',
63813
+ alreadyVerifiedTitle: 'Email verified!',
63814
+ alreadyVerifiedSubtitle: 'Your email was already verified. You can continue.',
63811
63815
  tooManyAttempts: 'Too many attempts. Please wait a few minutes.',
63812
63816
  unknownError: 'An error occurred. Please try again.',
63813
63817
  },
@@ -63822,6 +63826,7 @@ class VerifyViewComponent {
63822
63826
  this.i18n = inject(I18nService);
63823
63827
  this.state = signal('verifying');
63824
63828
  this.errorMessage = signal('');
63829
+ this.errorCode = signal('');
63825
63830
  this.resendSent = signal(false);
63826
63831
  this.resending = signal(false);
63827
63832
  this.maskedEmail = () => {
@@ -63849,8 +63854,16 @@ class VerifyViewComponent {
63849
63854
  this.state.set('success');
63850
63855
  }
63851
63856
  catch (err) {
63852
- this.state.set('error');
63853
- this.errorMessage.set(this.resolveErrorMessage(err));
63857
+ const { message, key } = this.resolveError(err);
63858
+ if (key === 'alreadyVerified') {
63859
+ this.state.set('success');
63860
+ this.errorCode.set(key);
63861
+ }
63862
+ else {
63863
+ this.state.set('error');
63864
+ this.errorMessage.set(message);
63865
+ this.errorCode.set(key);
63866
+ }
63854
63867
  }
63855
63868
  }
63856
63869
  onContinue() {
@@ -63872,25 +63885,30 @@ class VerifyViewComponent {
63872
63885
  this.resending.set(false);
63873
63886
  }
63874
63887
  }
63875
- resolveErrorMessage(err) {
63888
+ resolveError(err) {
63876
63889
  if (err && typeof err === 'object') {
63877
63890
  const code = err['code'];
63878
- const errorCodeMap = {
63879
- INVALID_CODE: this.t('invalidCode'),
63880
- EXPIRED_CODE: this.t('expiredCode'),
63881
- CODE_EXPIRED: this.t('expiredCode'),
63882
- ALREADY_VERIFIED: this.t('alreadyVerified'),
63883
- TOO_MANY_ATTEMPTS: this.t('tooManyAttempts'),
63884
- RATE_LIMITED: this.t('tooManyAttempts'),
63891
+ const keyMap = {
63892
+ INVALID_CODE: 'invalidCode',
63893
+ AUTHV2_INVALID_CODE: 'invalidCode',
63894
+ EXPIRED_CODE: 'expiredCode',
63895
+ CODE_EXPIRED: 'expiredCode',
63896
+ AUTHV2_CODE_EXPIRED: 'expiredCode',
63897
+ ALREADY_VERIFIED: 'alreadyVerified',
63898
+ AUTHV2_ALREADY_VERIFIED: 'alreadyVerified',
63899
+ TOO_MANY_ATTEMPTS: 'tooManyAttempts',
63900
+ AUTHV2_TOO_MANY_ATTEMPTS: 'tooManyAttempts',
63901
+ RATE_LIMITED: 'tooManyAttempts',
63885
63902
  };
63886
- if (code && errorCodeMap[code]) {
63887
- return errorCodeMap[code];
63903
+ if (code && keyMap[code]) {
63904
+ const key = keyMap[code];
63905
+ return { message: this.t(key), key };
63888
63906
  }
63889
63907
  const msg = err['message'];
63890
63908
  if (msg)
63891
- return msg;
63909
+ return { message: msg, key: 'unknown' };
63892
63910
  }
63893
- return this.t('unknownError');
63911
+ return { message: this.t('unknownError'), key: 'unknown' };
63894
63912
  }
63895
63913
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VerifyViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63896
63914
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: VerifyViewComponent, isStandalone: true, selector: "val-verify-view", inputs: { props: "props" }, outputs: { onSuccess: "onSuccess" }, ngImport: i0, template: `
@@ -63906,8 +63924,12 @@ class VerifyViewComponent {
63906
63924
  @if (state() === 'success') {
63907
63925
  <div class="verify-view__state">
63908
63926
  <ion-icon name="checkmark-circle-outline" class="verify-view__icon verify-view__icon--success" />
63909
- <p class="verify-view__title">{{ t('successTitle') }}</p>
63910
- <p class="verify-view__subtitle verify-view__subtitle--muted">{{ t('successSubtitle') }}</p>
63927
+ <p class="verify-view__title">
63928
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedTitle' : 'successTitle') }}
63929
+ </p>
63930
+ <p class="verify-view__subtitle verify-view__subtitle--muted">
63931
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedSubtitle' : 'successSubtitle') }}
63932
+ </p>
63911
63933
  <button type="button" class="verify-view__btn verify-view__btn--primary" (click)="onContinue()">
63912
63934
  {{ t('continueBtn') }}
63913
63935
  </button>
@@ -63955,8 +63977,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
63955
63977
  @if (state() === 'success') {
63956
63978
  <div class="verify-view__state">
63957
63979
  <ion-icon name="checkmark-circle-outline" class="verify-view__icon verify-view__icon--success" />
63958
- <p class="verify-view__title">{{ t('successTitle') }}</p>
63959
- <p class="verify-view__subtitle verify-view__subtitle--muted">{{ t('successSubtitle') }}</p>
63980
+ <p class="verify-view__title">
63981
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedTitle' : 'successTitle') }}
63982
+ </p>
63983
+ <p class="verify-view__subtitle verify-view__subtitle--muted">
63984
+ {{ t(errorCode() === 'alreadyVerified' ? 'alreadyVerifiedSubtitle' : 'successSubtitle') }}
63985
+ </p>
63960
63986
  <button type="button" class="verify-view__btn verify-view__btn--primary" (click)="onContinue()">
63961
63987
  {{ t('continueBtn') }}
63962
63988
  </button>