{"version":3,"file":"3854.63f3db24a6b28978.js","mappings":"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","names":["i0","ctx_r0","queryParams","username","error","toasterOptions","ToasterPosition","Top","ToasterColor","Dark","ConfirmAccountPage","_ConfirmAccountPage","isBusy","this","loading","confirmAccountForm","invalid","constructor","formBuilder","toaster","user","translate","route","router","snapshot","group","Validators","required","code","pattern","confirm","_this","_asyncToGenerator","value","confirmRegistration","present","instant","navigate","LOGIN_PAGE","returnUrl","err","message","resendCode","_this2","resendRegistrationCode","i1","i2","i3","i4","i5","selectors","standalone","features","decls","vars","consts","template","rf","ctx","ConfirmAccountPage_p_6_Template","ConfirmAccountPage_div_16_Template","get","IonContent","SplitLayoutComponent","NgIf","FormsModule","ReactiveFormsModule","FormInputComponent","ButtonComponent","TranslatePipe","FormControlCastPipe","styles"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/pages/auth/confirm-account/confirm-account.page.html","./src/app/pages/auth/confirm-account/confirm-account.page.ts"],"sourcesContent":["<ion-content>\n <app-split-layout>\n <h1>{{ 'AUTH.CONFIRM_ACCOUNT' | translate}}</h1>\n <div class=\"content\">\n <p *ngIf=\"queryParams.username\">{{ 'COMMON.HI' | translate }}, {{ queryParams.username }}.</p>\n <p [innerHTML]=\"'AUTH.CONFIRM_INSTRUCTIONS_HTML' | translate\"></p>\n </div>\n <form [formGroup]=\"confirmAccountForm\" (ngSubmit)=\"confirm()\" class=\"content\">\n <fs-form-input\n [label]=\"'AUTH.USERNAME' | translate\"\n type=\"text\"\n [control]=\"confirmAccountForm.get('username') | formControlCast\"\n [disabled]=\"loading\"\n ></fs-form-input>\n <fs-form-input\n [label]=\"'AUTH.CONFIRMATION_CODE' | translate\"\n type=\"text\"\n [control]=\"confirmAccountForm.get('code') | formControlCast\"\n [disabled]=\"loading\"\n [debounce]=\"300\"\n ></fs-form-input>\n <div class=\"error\" *ngIf=\"error\">\n <div><strong>{{ 'ERRORS.ERROR' | translate }}:</strong> {{ error }}</div>\n </div>\n <div class=\"submit\">\n <fs-button type=\"submit\" size=\"large\" [disabled]=\"isBusy\">{{ 'AUTH.CONFIRM_ACCOUNT' | translate}}</fs-button>\n </div>\n <div class=\"submit-actions\">\n <p style=\"display: flex; align-items: center\">\n {{ 'AUTH.CONFIRM_CODE_NOT_RECEIVED' | translate }}\n <fs-button\n style=\"flex: 1\"\n slot=\"end\"\n type=\"button\"\n buttonStyle=\"clear\"\n [disabled]=\"loading\"\n (click)=\"resendCode()\"\n >{{ 'AUTH.RESEND' | translate }}</fs-button\n >\n </p>\n <p style=\"opacity: 0.5\">\n {{ 'AUTH.CONFIRM_CODE_NOTE_SPAM' | translate }}\n </p>\n </div>\n </form>\n </app-split-layout>\n</ion-content>\n","/** @format */\n\nimport { Component } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { UntypedFormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService, TranslatePipe } from '@ngx-translate/core';\nimport { IonContent } from '@ionic/angular/standalone';\nimport { LOGIN_PAGE } from '@app/app.routes';\nimport { ToasterColor, ToasterPosition, ToasterService } from '@app/core/services/toaster.service';\nimport { UserService } from '@app/core/services/user.service';\nimport { ButtonComponent } from '@app/shared/components/ui/buttons/button/button.component';\nimport { FormInputComponent } from '@app/shared/components/ui/form/form-input/form-input.component';\nimport { SplitLayoutComponent } from '@app/shared/components/layouts/split-layout/split-layout.component';\nimport { FormControlCastPipe } from '@app/shared/pipes/form-control-cast.pipe';\n\nconst toasterOptions: [ToasterPosition, number, ToasterColor] = [ToasterPosition.Top, 3000, ToasterColor.Dark];\n\n@Component({\n selector: 'app-confirm-account',\n templateUrl: './confirm-account.page.html',\n styleUrls: ['./confirm-account.page.scss'],\n standalone: true,\n imports: [\n IonContent,\n SplitLayoutComponent,\n NgIf,\n FormsModule,\n ReactiveFormsModule,\n FormInputComponent,\n ButtonComponent,\n TranslatePipe,\n FormControlCastPipe,\n ],\n})\nexport class ConfirmAccountPage {\n queryParams = this.route.snapshot.queryParams;\n confirmAccountForm = this.formBuilder.group({\n username: [this.queryParams.username, [Validators.required]],\n /**\n * Validation code failed on signup MVP-1319\n * Cognito confirmationCode should match pattern [\\S]+\n */\n code: [this.queryParams.code, [Validators.required, Validators.pattern(/[\\S]+/)]],\n });\n loading = false;\n error: string;\n\n get isBusy() {\n return this.loading || this.confirmAccountForm.invalid;\n }\n\n constructor(\n private formBuilder: UntypedFormBuilder,\n private toaster: ToasterService,\n private user: UserService,\n private translate: TranslateService,\n private route: ActivatedRoute,\n private router: Router\n ) {}\n\n async confirm() {\n const { username, code } = this.confirmAccountForm.value;\n this.loading = true;\n this.error = null;\n try {\n await this.user.confirmRegistration(username, code);\n this.toaster.present(this.translate.instant('AUTH.ACCOUNT_CONFIRMED'), ...toasterOptions);\n // console.log('Account confirmed query params:', this.queryParams);\n const queryParams = this.queryParams.returnUrl ? { returnUrl: this.queryParams.returnUrl } : {};\n this.router.navigate([`/${LOGIN_PAGE}`], { queryParams });\n } catch (err) {\n this.error = err.message;\n } finally {\n this.loading = false;\n }\n }\n\n async resendCode() {\n const { username } = this.confirmAccountForm.value;\n if (!username) {\n this.toaster.present(this.translate.instant('AUTH.NEED_USERNAME'), ...toasterOptions);\n } else {\n this.loading = true;\n this.error = null;\n try {\n await this.user.resendRegistrationCode(username);\n this.toaster.present(this.translate.instant('AUTH.CODE_SENT'), ...toasterOptions);\n } catch (err) {\n this.error = err.message;\n } finally {\n this.loading = false;\n }\n }\n }\n}\n"],"x_google_ignoreList":[]}