@carefirst/library 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
@@ -109,11 +109,11 @@ export class VerificationCodeComponent {
|
|
109
109
|
this.statusSub$?.unsubscribe();
|
110
110
|
}
|
111
111
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: VerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
112
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p
|
112
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spacer default=\"16\"></cf-spacer>\n <ng-container *ngIf=\"!loading\">\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spinner [size]=\"50\" [ngClass]=\"{ 'block-hidden': !loading }\"></cf-spinner>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: [".single-container{display:flex;gap:12px}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i4.SpinnerComponent, selector: "cf-spinner", inputs: ["size"] }] });
|
113
113
|
}
|
114
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: VerificationCodeComponent, decorators: [{
|
115
115
|
type: Component,
|
116
|
-
args: [{ selector: 'cf-verification-code', template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p
|
116
|
+
args: [{ selector: 'cf-verification-code', template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spacer default=\"16\"></cf-spacer>\n <ng-container *ngIf=\"!loading\">\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spinner [size]=\"50\" [ngClass]=\"{ 'block-hidden': !loading }\"></cf-spinner>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: [".single-container{display:flex;gap:12px}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}\n"] }]
|
117
117
|
}], ctorParameters: () => [], propDecorators: { valueToVerify: [{
|
118
118
|
type: Input
|
119
119
|
}], status: [{
|
@@ -140,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
140
140
|
type: ViewChild,
|
141
141
|
args: ['input5']
|
142
142
|
}] } });
|
143
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1jb2RlL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVd0SCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQTBDO0lBQ2hELG9CQUFvQixDQUFvQztJQUV2RCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpDLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFDcEIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFHekMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQzVCLHdCQUF3QixHQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsY0FBYyxDQUFxQjtJQUVuQyxVQUFVLENBQWdCO0lBSzFCLGdCQUFlLENBQUM7SUFPaEIsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEdB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LElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQzt1R0F0S1UseUJBQXlCOzJGQUF6Qix5QkFBeUIsNHJCQzFCdEMsMnhIQWlHQTs7MkZEdkVhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxzQkFBc0I7d0RBS3ZCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFYyxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlZmlyc3QgbGlicmFyeSAtIFZlcmlmaWNhdGlvbiBDb2RlIElucHV0XG4gKlxuICogQGZpbGUgICAgICAgICAgdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IFZlcmlmaWNhdGlvbiBDb2RlIElucHV0XG4gKiBAYXV0aG9yICAgICAgICBBcm5vIEphbnNlbiB2YW4gVnV1cmVuXG4gKiBAc2luY2UgICAgICAgICAyMDI0IC0gMDMgLSAwN1xuICogQHVzYWdlICAgICAgICAgICA8Y2YtdmVyaWZpY2F0aW9uLWNvZGVcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvVmVyaWZ5PWBzdHJpbmdgXG4gICAgICAgICAgICAgICAgICAgICAgKG91dGNvbWUpPWBvbWl0cyBjb2RlIHZhbHVlYFxuICAgICAgICAgICAgICAgICAgICAgIChyZXNlbmRDbGlja0V2ZW50KT1gcmVzZW5kIGNsaWNrIGV2ZW50YFxuICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPWBCZWhhdmlvclN1YmplY3Q8J2luaXRpYWwnIHwgJ2ludmFsaWQnPmA+XG4gICAgICAgICAgICAgICAgICAgIDwvY2YtdmVyaWZpY2F0aW9uLWNvZGU+XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8tLS0gSW50ZXJmYWNlXG5pbXBvcnQgdHlwZSB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IElucHV0Q3VzdG9tRXZlbnQsIElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBDZkNvZGVJbnB1dFVzZXJGZWVkYmFja01lc3NhZ2VzSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLWNvZGUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtdmVyaWZpY2F0aW9uLWNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmFsdWVUb1ZlcmlmeSE6IHN0cmluZztcbiAgQElucHV0KCkgc3RhdHVzITogQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz47XG4gIEBJbnB1dCgpIHVzZXJGZWVkYmFja01lc3NhZ2VzPzogQ2ZDb2RlSW5wdXRVc2VyRmVlZGJhY2tNZXNzYWdlc0k7XG5cbiAgQE91dHB1dCgpIG91dGNvbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlc2VuZENsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHRydWU+KCk7XG5cbiAgQFZpZXdDaGlsZChgaW5wdXQxYCkgbXlJbnB1dDE/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQyJykgbXlJbnB1dDI/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQzJykgbXlJbnB1dDM/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQ0JykgbXlJbnB1dDQ/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQ1JykgbXlJbnB1dDU/OiBJb25JbnB1dDtcblxuICAvLy0tLSBIVE1MIHZhcmlhYmxlc1xuICB2YWxpZGF0aW9uQ29kZUVycm9yID0gZmFsc2U7XG4gIHZlcmlmaWNhdGlvbkNvZGVJbnB1dEFycjogKG51bWJlciB8IG51bGwpW10gPSBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgY29tbXNTZW50Q291bnQgPSAwO1xuICB2YWxpZGF0aW9uQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHN0YXR1c1N1YiQ/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlvblZpZXdXaWxsRW50ZXJcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGNvbXBvbmVudCBpbml0aWFsaXphdGlvblxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIGlvblZpZXdEaWRFbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1zU2VudENvdW50ID0gMDtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGlucHV0IGNoYW5nZXNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8tLS0gVmFsdWUgdG8gdmVyaWZ5XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1sndmFsdWVUb1ZlcmlmeSddPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZhbHVlVG9WZXJpZnknXT8ucHJldmlvdXNWYWx1ZSB8fFxuICAgICAgY2hhbmdlc1snY29kZSddPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2NvZGUnXT8ucHJldmlvdXNWYWx1ZVxuICAgICkge1xuICAgICAgdGhpcy5jb21tc1NlbnRDb3VudCA9IDA7XG4gICAgICB0aGlzLnZhbGlkYXRpb25Db2RlRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVzZXRBbGxJbnB1dEZpZWxkcygpO1xuICAgIH1cblxuICAgIC8vLS0tIFN0YXR1cyBkaXNwbGF5XG4gICAgaWYgKGNoYW5nZXNbJ3N0YXR1cyddKSB7XG4gICAgICB0aGlzLnN0YXR1c1N1YiQgPSAoY2hhbmdlc1snc3RhdHVzJ10uY3VycmVudFZhbHVlIGFzIEJlaGF2aW9yU3ViamVjdDwnaW5pdGlhbCcgfCAnaW52YWxpZCc+KS5zdWJzY3JpYmUoKHN0YXQpID0+IHtcbiAgICAgICAgaWYgKHN0YXQgPT09ICdpbnZhbGlkJykge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldEFsbElucHV0RmllbGRzKCk7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNUb05leHQoMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIHJlc2VuZFZlcmlmaWNhdGlvbkNvZGVcbiAgICogQGRlc2NyaXB0aW9uICAgUmVzZW5kIGEgdmVyaWZpY2F0aW9uIGNvZGVcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICByZXNlbmRWZXJpZmljYXRpb25Db2RlKCk6IHZvaWQge1xuICAgIHRoaXMuY29tbXNTZW50Q291bnQrKztcbiAgICB0aGlzLnJlc2VuZENsaWNrRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlXG4gICAqIEBkZXNjcmlwdGlvbiAgIEhhbmRsZSBpbnB1dHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2ZXJpZmljYXRpb24gY29kZSBhbmQgZG8gY2FsbCBvbmNlIGNvZGUgaXMgY29tcGxldGVcbiAgICogQHBhcmFtICAgICAgICAge0lucHV0Q3VzdG9tRXZlbnR9IGV2ZW50XG4gICAqIEBwYXJhbSAgICAgICAgIHtudW1iZXJ9IGluZGV4XG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKGV2ZW50OiBJbnB1dEN1c3RvbUV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSB8fCAhKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHx8ICEoK3ZhbHVlIDwgMTApKSB7XG4gICAgICB0aGlzLmNsZWFyQ29kZUlucHV0KGluZGV4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvY3VzVG9OZXh0KGluZGV4KTtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVJbnB1dEFycltpbmRleCAtIDFdID0gK3ZhbHVlO1xuICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuXG4gICAgLy8tLS0gQ2hlY2sgaWYgY29kZSBjb21wbGV0ZWRcbiAgICBpZiAodGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnIuZXZlcnkoKHZhbCkgPT4gdmFsICE9PSBudWxsKSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uQ29kZSA9IHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyLmpvaW4oJycpO1xuICAgICAgdGhpcy5vdXRjb21lLmVtaXQodGhpcy52YWxpZGF0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICByZXNldEFsbElucHV0RmllbGRzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFJlc2V0IGFsbCBpbnB1dCBmaWVsZHNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIHJlc2V0QWxsSW5wdXRGaWVsZHMoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCgxKTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDIpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoMyk7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCg0KTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDUpO1xuICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyLmZpbGwobnVsbCk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIHNldEZvY3VzVG9OZXh0XG4gICAqIEBkZXNjcmlwdGlvbiAgIFNldCB0aGUgZm9jdXMgdG8gdGhlIG5leHQgaW5wdXRcbiAgICogQHBhcmFtICAgICAgICAge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRGb2N1c1RvTmV4dChjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChjdXJyZW50SW5kZXggPT09IDUpIHJldHVybjtcbiAgICBjdXJyZW50SW5kZXggPT09IDBcbiAgICAgID8gdGhpcy5teUlucHV0MT8uc2V0Rm9jdXMoKVxuICAgICAgOiBjdXJyZW50SW5kZXggPT09IDFcbiAgICAgID8gdGhpcy5teUlucHV0Mj8uc2V0Rm9jdXMoKVxuICAgICAgOiBjdXJyZW50SW5kZXggPT09IDJcbiAgICAgID8gdGhpcy5teUlucHV0Mz8uc2V0Rm9jdXMoKVxuICAgICAgOiBjdXJyZW50SW5kZXggPT09IDNcbiAgICAgID8gdGhpcy5teUlucHV0ND8uc2V0Rm9jdXMoKVxuICAgICAgOiB0aGlzLm15SW5wdXQ1Py5zZXRGb2N1cygpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjbGVhckNvZGVJbnB1dFxuICAgKiBAZGVzY3JpcHRpb24gICBDbGVhciBhIGNvZGUgaW5wdXQgb24gaW52YWxpZCBrZXlcbiAgICogQHBhcmFtICAgICAgICAge251bWJlcn0gaW5kZXhcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIGNsZWFyQ29kZUlucHV0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQxKSB0aGlzLm15SW5wdXQxLnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQyKSB0aGlzLm15SW5wdXQyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQzKSB0aGlzLm15SW5wdXQzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQ0KSB0aGlzLm15SW5wdXQ0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDU6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQ1KSB0aGlzLm15SW5wdXQ1LnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpb25WaWV3V2lsbExlYXZlXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVuc3Vic2NyaWJlIG9uIGNvbXBvbmVudCBsZWF2ZVxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIGlvblZpZXdXaWxsTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0dXNTdWIkPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8aW9uLWdyaWQ+XG4gIDwhLS0gSW5wdXQgYm94ZXMgZm9yIHZlcmlmaWNhdGlvbiBjb2RlIDUgbnVtZXJpYyBkaWdpdHMgLS0+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8aW9uLWNvbCAqbmdJZj1cInZhbGlkYXRpb25Db2RlRXJyb3JcIiBzaXplPVwiYXV0b1wiPlxuICAgICAgPHAgY2xhc3M9XCJib2R5LXNtYWxsIGVycm9yXCIgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uZXJyb3I/LmVycm9yTWVzc2FnZSB8fCBbJ0ludmFsaWQgQ29kZSAtIFBsZWFzZSBSZXRyeSddXCI+e3sgc3RyaW5nIH19PC9wPlxuICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cbiAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgZXJyb3I6IHZhbGlkYXRpb25Db2RlRXJyb3IgfVwiPlxuICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgI2lucHV0MVxuICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDEpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAjaW5wdXQyXG4gICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgbW9kZT1cIm1kXCJcbiAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgMilcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICNpbnB1dDNcbiAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgMylcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICNpbnB1dDRcbiAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCA0KVwiPjwvaW9uLWlucHV0PlxuICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgI2lucHV0NVxuICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDUpXCI+PC9pb24taW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cbiAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIxNlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJjb21tc1NlbnRDb3VudCA8IDNcIiAoY2xpY2spPVwicmVzZW5kVmVyaWZpY2F0aW9uQ29kZSgpXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWxpZGF0aW9uQ29kZUVycm9yXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImJvZHktc21hbGwgaW9uLXRleHQtc3RhcnRcIiAqbmdGb3I9XCJsZXQgc3RyaW5nIG9mIHVzZXJGZWVkYmFja01lc3NhZ2VzPy5lcnJvcj8ucmVzZW5kIHx8IFsnUmVzZW5kIENvZGUnXVwiPlxuICAgICAgICAgICAgICB7eyBzdHJpbmcgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZhbGlkYXRpb25Db2RlRXJyb3JcIj5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm9keS1zbWFsbCBpb24tdGV4dC1zdGFydFwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LnN0YW5kYXJkUmVzZW5kIHx8IFsnRGlkbmB0IGdldCBhIGNvZGU/IFBsZWFzZSByZXNlbmQgdGhlIGNvZGUnXVwiPlxuICAgICAgICAgICAgICB7eyBzdHJpbmcgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21tc1NlbnRDb3VudCA+PSAzXCI+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwiYm9keS1zbWFsbFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RyaW5nIG9mIHVzZXJGZWVkYmFja01lc3NhZ2VzPy5saW1pdFJlYWNoZWQgfHwgWydTdGlsbCBzdHJ1Z2dsaW5nIHdpdGggeW91ciBjb2RlPycsICdQbGVhc2UgY29udGFjdCBzdXBwb3J0IGZvciBhc3Npc3RhbmNlJ11cIlxuICAgICAgICAgICAgPnt7IHN0cmluZyB9fTwvcFxuICAgICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2lvbi1jb2w+XG4gIDwvaW9uLXJvdz5cbiAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICA8Y2Ytc3Bpbm5lciBbc2l6ZV09XCI1MFwiIFtuZ0NsYXNzXT1cInsgJ2Jsb2NrLWhpZGRlbic6ICFsb2FkaW5nIH1cIj48L2NmLXNwaW5uZXI+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG48L2lvbi1ncmlkPlxuIl19
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1jb2RlL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVd0SCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQTBDO0lBQ2hELG9CQUFvQixDQUFvQztJQUV2RCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpDLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFDcEIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFHekMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQzVCLHdCQUF3QixHQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsY0FBYyxDQUFxQjtJQUVuQyxVQUFVLENBQWdCO0lBSzFCLGdCQUFlLENBQUM7SUFPaEIsZUFBZTtRQUNiLElBQUksQ0FBQyxjQUFjLEdB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LElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQzt1R0F0S1UseUJBQXlCOzJGQUF6Qix5QkFBeUIsNHJCQzFCdEMsaTJIQXFHQTs7MkZEM0VhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxzQkFBc0I7d0RBS3ZCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFYyxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlZmlyc3QgbGlicmFyeSAtIFZlcmlmaWNhdGlvbiBDb2RlIElucHV0XG4gKlxuICogQGZpbGUgICAgICAgICAgdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IFZlcmlmaWNhdGlvbiBDb2RlIElucHV0XG4gKiBAYXV0aG9yICAgICAgICBBcm5vIEphbnNlbiB2YW4gVnV1cmVuXG4gKiBAc2luY2UgICAgICAgICAyMDI0IC0gMDMgLSAwN1xuICogQHVzYWdlICAgICAgICAgICA8Y2YtdmVyaWZpY2F0aW9uLWNvZGVcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRvVmVyaWZ5PWBzdHJpbmdgXG4gICAgICAgICAgICAgICAgICAgICAgKG91dGNvbWUpPWBvbWl0cyBjb2RlIHZhbHVlYFxuICAgICAgICAgICAgICAgICAgICAgIChyZXNlbmRDbGlja0V2ZW50KT1gcmVzZW5kIGNsaWNrIGV2ZW50YFxuICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPWBCZWhhdmlvclN1YmplY3Q8J2luaXRpYWwnIHwgJ2ludmFsaWQnPmA+XG4gICAgICAgICAgICAgICAgICAgIDwvY2YtdmVyaWZpY2F0aW9uLWNvZGU+XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8tLS0gSW50ZXJmYWNlXG5pbXBvcnQgdHlwZSB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IElucHV0Q3VzdG9tRXZlbnQsIElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHR5cGUgeyBDZkNvZGVJbnB1dFVzZXJGZWVkYmFja01lc3NhZ2VzSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdmVyaWZpY2F0aW9uLWNvZGUuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtdmVyaWZpY2F0aW9uLWNvZGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmFsdWVUb1ZlcmlmeSE6IHN0cmluZztcbiAgQElucHV0KCkgc3RhdHVzITogQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz47XG4gIEBJbnB1dCgpIHVzZXJGZWVkYmFja01lc3NhZ2VzPzogQ2ZDb2RlSW5wdXRVc2VyRmVlZGJhY2tNZXNzYWdlc0k7XG5cbiAgQE91dHB1dCgpIG91dGNvbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlc2VuZENsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHRydWU+KCk7XG5cbiAgQFZpZXdDaGlsZChgaW5wdXQxYCkgbXlJbnB1dDE/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQyJykgbXlJbnB1dDI/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQzJykgbXlJbnB1dDM/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQ0JykgbXlJbnB1dDQ/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQ1JykgbXlJbnB1dDU/OiBJb25JbnB1dDtcblxuICAvLy0tLSBIVE1MIHZhcmlhYmxlc1xuICB2YWxpZGF0aW9uQ29kZUVycm9yID0gZmFsc2U7XG4gIHZlcmlmaWNhdGlvbkNvZGVJbnB1dEFycjogKG51bWJlciB8IG51bGwpW10gPSBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgY29tbXNTZW50Q291bnQgPSAwO1xuICB2YWxpZGF0aW9uQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHN0YXR1c1N1YiQ/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlvblZpZXdXaWxsRW50ZXJcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGNvbXBvbmVudCBpbml0aWFsaXphdGlvblxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIGlvblZpZXdEaWRFbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1zU2VudENvdW50ID0gMDtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgVXBkYXRlIHZhcmlvdXMgdmFsdWVzIG9uIGlucHV0IGNoYW5nZXNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLy8tLS0gVmFsdWUgdG8gdmVyaWZ5XG4gICAgaWYgKFxuICAgICAgY2hhbmdlc1sndmFsdWVUb1ZlcmlmeSddPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ3ZhbHVlVG9WZXJpZnknXT8ucHJldmlvdXNWYWx1ZSB8fFxuICAgICAgY2hhbmdlc1snY29kZSddPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2NvZGUnXT8ucHJldmlvdXNWYWx1ZVxuICAgICkge1xuICAgICAgdGhpcy5jb21tc1NlbnRDb3VudCA9IDA7XG4gICAgICB0aGlzLnZhbGlkYXRpb25Db2RlRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVzZXRBbGxJbnB1dEZpZWxkcygpO1xuICAgIH1cblxuICAgIC8vLS0tIFN0YXR1cyBkaXNwbGF5XG4gICAgaWYgKGNoYW5nZXNbJ3N0YXR1cyddKSB7XG4gICAgICB0aGlzLnN0YXR1c1N1YiQgPSAoY2hhbmdlc1snc3RhdHVzJ10uY3VycmVudFZhbHVlIGFzIEJlaGF2aW9yU3ViamVjdDwnaW5pdGlhbCcgfCAnaW52YWxpZCc+KS5zdWJzY3JpYmUoKHN0YXQpID0+IHtcbiAgICAgICAgaWYgKHN0YXQgPT09ICdpbnZhbGlkJykge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldEFsbElucHV0RmllbGRzKCk7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXNUb05leHQoMCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIHJlc2VuZFZlcmlmaWNhdGlvbkNvZGVcbiAgICogQGRlc2NyaXB0aW9uICAgUmVzZW5kIGEgdmVyaWZpY2F0aW9uIGNvZGVcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICByZXNlbmRWZXJpZmljYXRpb25Db2RlKCk6IHZvaWQge1xuICAgIHRoaXMuY29tbXNTZW50Q291bnQrKztcbiAgICB0aGlzLnJlc2VuZENsaWNrRXZlbnQuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlXG4gICAqIEBkZXNjcmlwdGlvbiAgIEhhbmRsZSBpbnB1dHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2ZXJpZmljYXRpb24gY29kZSBhbmQgZG8gY2FsbCBvbmNlIGNvZGUgaXMgY29tcGxldGVcbiAgICogQHBhcmFtICAgICAgICAge0lucHV0Q3VzdG9tRXZlbnR9IGV2ZW50XG4gICAqIEBwYXJhbSAgICAgICAgIHtudW1iZXJ9IGluZGV4XG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKGV2ZW50OiBJbnB1dEN1c3RvbUV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgaWYgKCF2YWx1ZSB8fCAhKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHx8ICEoK3ZhbHVlIDwgMTApKSB7XG4gICAgICB0aGlzLmNsZWFyQ29kZUlucHV0KGluZGV4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvY3VzVG9OZXh0KGluZGV4KTtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVJbnB1dEFycltpbmRleCAtIDFdID0gK3ZhbHVlO1xuICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuXG4gICAgLy8tLS0gQ2hlY2sgaWYgY29kZSBjb21wbGV0ZWRcbiAgICBpZiAodGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnIuZXZlcnkoKHZhbCkgPT4gdmFsICE9PSBudWxsKSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uQ29kZSA9IHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyLmpvaW4oJycpO1xuICAgICAgdGhpcy5vdXRjb21lLmVtaXQodGhpcy52YWxpZGF0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICByZXNldEFsbElucHV0RmllbGRzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFJlc2V0IGFsbCBpbnB1dCBmaWVsZHNcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIHJlc2V0QWxsSW5wdXRGaWVsZHMoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCgxKTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDIpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoMyk7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCg0KTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDUpO1xuICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyLmZpbGwobnVsbCk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIHNldEZvY3VzVG9OZXh0XG4gICAqIEBkZXNjcmlwdGlvbiAgIFNldCB0aGUgZm9jdXMgdG8gdGhlIG5leHQgaW5wdXRcbiAgICogQHBhcmFtICAgICAgICAge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRGb2N1c1RvTmV4dChjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChjdXJyZW50SW5kZXggPT09IDUpIHJldHVybjtcbiAgICBjdXJyZW50SW5kZXggPT09IDBcbiAgICAgID8gdGhpcy5teUlucHV0MT8uc2V0Rm9jdXMoKVxuICAgICAgOiBjdXJyZW50SW5kZXggPT09IDFcbiAgICAgID8gdGhpcy5teUlucHV0Mj8uc2V0Rm9jdXMoKVxuICAgICAgOiBjdXJyZW50SW5kZXggPT09IDJcbiAgICAgID8gdGhpcy5teUlucHV0Mz8uc2V0Rm9jdXMoKVxuICAgICAgOiBjdXJyZW50SW5kZXggPT09IDNcbiAgICAgID8gdGhpcy5teUlucHV0ND8uc2V0Rm9jdXMoKVxuICAgICAgOiB0aGlzLm15SW5wdXQ1Py5zZXRGb2N1cygpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBjbGVhckNvZGVJbnB1dFxuICAgKiBAZGVzY3JpcHRpb24gICBDbGVhciBhIGNvZGUgaW5wdXQgb24gaW52YWxpZCBrZXlcbiAgICogQHBhcmFtICAgICAgICAge251bWJlcn0gaW5kZXhcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIGNsZWFyQ29kZUlucHV0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQxKSB0aGlzLm15SW5wdXQxLnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQyKSB0aGlzLm15SW5wdXQyLnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQzKSB0aGlzLm15SW5wdXQzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQ0KSB0aGlzLm15SW5wdXQ0LnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDU6XG4gICAgICAgIGlmICh0aGlzLm15SW5wdXQ1KSB0aGlzLm15SW5wdXQ1LnZhbHVlID0gbnVsbDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpb25WaWV3V2lsbExlYXZlXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVuc3Vic2NyaWJlIG9uIGNvbXBvbmVudCBsZWF2ZVxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIGlvblZpZXdXaWxsTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0dXNTdWIkPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8aW9uLWdyaWQ+XG4gIDwhLS0gSW5wdXQgYm94ZXMgZm9yIHZlcmlmaWNhdGlvbiBjb2RlIDUgbnVtZXJpYyBkaWdpdHMgLS0+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8aW9uLWNvbCAqbmdJZj1cInZhbGlkYXRpb25Db2RlRXJyb3JcIiBzaXplPVwiYXV0b1wiPlxuICAgICAgPHBcbiAgICAgICAgY2xhc3M9XCJib2R5LXNtYWxsIGVycm9yIGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LmVycm9yPy5lcnJvck1lc3NhZ2UgfHwgWydJbnZhbGlkIENvZGUgLSBQbGVhc2UgUmV0cnknXVwiXG4gICAgICAgID57eyBzdHJpbmcgfX08L3BcbiAgICAgID5cbiAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjE2XCI+PC9jZi1zcGFjZXI+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGVycm9yOiB2YWxpZGF0aW9uQ29kZUVycm9yIH1cIj5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICNpbnB1dDFcbiAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCAxKVwiPjwvaW9uLWlucHV0PlxuICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgI2lucHV0MlxuICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDIpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAjaW5wdXQzXG4gICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDMpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAjaW5wdXQ0XG4gICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXG4gICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgbW9kZT1cIm1kXCJcbiAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgNClcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICNpbnB1dDVcbiAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCA1KVwiPjwvaW9uLWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29tbXNTZW50Q291bnQgPCAzXCIgKGNsaWNrKT1cInJlc2VuZFZlcmlmaWNhdGlvbkNvZGUoKVwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsaWRhdGlvbkNvZGVFcnJvclwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJib2R5LXNtYWxsIGlvbi10ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LmVycm9yPy5yZXNlbmQgfHwgWydSZXNlbmQgQ29kZSddXCI+XG4gICAgICAgICAgICAgIHt7IHN0cmluZyB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhdmFsaWRhdGlvbkNvZGVFcnJvclwiPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgY2xhc3M9XCJib2R5LXNtYWxsIGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LnN0YW5kYXJkUmVzZW5kIHx8IFsnRGlkbmB0IGdldCBhIGNvZGU/IFBsZWFzZSByZXNlbmQgdGhlIGNvZGUnXVwiPlxuICAgICAgICAgICAgICB7eyBzdHJpbmcgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21tc1NlbnRDb3VudCA+PSAzXCI+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwiYm9keS1zbWFsbCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8ubGltaXRSZWFjaGVkIHx8IFsnU3RpbGwgc3RydWdnbGluZyB3aXRoIHlvdXIgY29kZT8nLCAnUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydCBmb3IgYXNzaXN0YW5jZSddXCJcbiAgICAgICAgICAgID57eyBzdHJpbmcgfX08L3BcbiAgICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9pb24tY29sPlxuICA8L2lvbi1yb3c+XG4gIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgPGNmLXNwaW5uZXIgW3NpemVdPVwiNTBcIiBbbmdDbGFzc109XCJ7ICdibG9jay1oaWRkZW4nOiAhbG9hZGluZyB9XCI+PC9jZi1zcGlubmVyPlxuICAgIDwvaW9uLWNvbD5cbiAgPC9pb24tcm93PlxuPC9pb24tZ3JpZD5cbiJdfQ==
|
@@ -801,11 +801,11 @@ class VerificationCodeComponent {
|
|
801
801
|
this.statusSub$?.unsubscribe();
|
802
802
|
}
|
803
803
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: VerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
804
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p
|
804
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spacer default=\"16\"></cf-spacer>\n <ng-container *ngIf=\"!loading\">\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spinner [size]=\"50\" [ngClass]=\"{ 'block-hidden': !loading }\"></cf-spinner>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: [".single-container{display:flex;gap:12px}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: SpinnerComponent, selector: "cf-spinner", inputs: ["size"] }] });
|
805
805
|
}
|
806
806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: VerificationCodeComponent, decorators: [{
|
807
807
|
type: Component,
|
808
|
-
args: [{ selector: 'cf-verification-code', template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p
|
808
|
+
args: [{ selector: 'cf-verification-code', template: "<ion-grid>\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ion-col *ngIf=\"validationCodeError\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spacer default=\"16\"></cf-spacer>\n <ng-container *ngIf=\"!loading\">\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <cf-spinner [size]=\"50\" [ngClass]=\"{ 'block-hidden': !loading }\"></cf-spinner>\n </ion-col>\n </ion-row>\n</ion-grid>\n", styles: [".single-container{display:flex;gap:12px}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}\n"] }]
|
809
809
|
}], ctorParameters: () => [], propDecorators: { valueToVerify: [{
|
810
810
|
type: Input
|
811
811
|
}], status: [{
|