{"version":3,"file":"src_app_modules_login_login_module_ts.944d0ff4ebe10dc2.js","mappings":"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","names":["MFADeviceTypeEnum","AlertErrorComponent","constructor","AlertTypeEnum","selectors","i0","AlertComponent","TrustHtmlPipe","_domSanitizer","this","transform","value","toLowerCase","indexOf","bypassSecurityTrustHtml","sanitize","SecurityContext","_angular_core__WEBPACK_IMPORTED_MODULE_1__","pure","CompleteUrlBuilderService","_currentEnvironmentService","_currentCaseService","buildUrl","pathComponents","caseName","environmentName","urlComponents","environmentNameToUse","getCurrentEnvironmentName","push","caseNameToUse","getCurrentCaseName","length","dirtyComponent","filter","pathComponent","split","s","forEach","cleanComponent","join","factory","DEVICE_TOKEN_KEY","DeviceTokenService","getDeviceToken","json","localStorage","getItem","JSON","parse","setDeviceToken","deviceToken","setItem","stringify","LoginEnterPIIComponent","LoginMFACodeComponent","EventEmitter","formArray","buildFormArray","ngAfterViewInit","_loginCountdownComponent","countdownTo","Date","getTime","mfaTimeOutInMinutes","ngOnDestroy","subscription","_subscriptions","unsubscribe","writeValue","substring","controls","setMFACodeValue","registerOnChange","fn","_propagateChanges","registerOnTouched","onCountdownCompleted","countdownTimedOut","emit","onPaste","e","preventDefault","mfaCode","clipboardData","getData","trim","getMFACodeFromFormArray","focusInput","Math","min","onKeydown","index","event","key","onInput","inputType","_inputElements","get","nativeElement","focus","formControls","i","formControl","FormControl","nonNullable","valueChanges","subscribe","FormArray","cleanMFACode","setValue","emitEvent","map","control","CountdownComponent","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","decls","ctx","LoginUserContactMethodsComponent","LoginEnterPIIAnswerComponent","isInputTypeDateTime","formGroup","piiField","personalInfoFieldType","PersonalInfoFieldTypeEnum","isInputTypeText","isInputTypeMaskedText","isInputTypePhoneNumber","LoginSharedModule","CommonModule","ReactiveFormsModule","MatButtonModule","MatCheckboxModule","MatFormFieldModule","MatInputModule","MatDialogModule","MatSelectModule","MatDatepickerModule","MatAutocompleteModule","MatRadioModule","StingrayCommonModule","CompleteLoginService","_userSessionService","_redirectToLoginService","_deviceTokenService","_router","completeLogin","args","setDeviceTokenIfAvailable","userSession","setUserSession","getRedirectedFromUrl","navigate","queryParams","getQueryParams","clearRedirectedFromUrl","restrictedToCase","getEnvironment","code","redirectHTML","window","document","body","innerHTML","forms","submit","defaultEnvironment","allowedEnvironments","x","isDefault","name","id","token","ValidateLoginMFACodeService","_concurrentRequestHandlingService","validateLoginMFACode","options","callApi","url","sendCredentials","core","CurrentLoginRequestService","getCurrentLoginRequest","currentLoginRequest","setCurrentLoginRequest","loginRequest","LoginEnterMFACodeComponent","_route","_formBuilder","_validateLoginMFACodeService","_currentLoginRequestService","_completeLoginService","ngOnInit","form","group","Validators","onSubmit","valid","resetErrors","loginMFACodeId","parseInt","snapshot","params","loginRequestId","loginRequestToken","encryptedRedirectUrl","sessionStorage","undefined","result","isLockedOut","isInvalidCode","isExpired","isExpiredRequest","redirectHtml","onCountdownTimedOut","LoginLayoutMainTextComponent","_getLoginStylingService","getLoginStyling","loginStyleLoaded","clientMainHTML","mainHTML","hasCurrentCase","LoginLayoutMainImgComponent","_currentLoginStylingService","_loginMainImageUrlService","configChanged","mainImage","mainImageVersion","getUrl","MAIN_IMAGE_URL","LoginFooterHelpComponent","email","contactEmail","DEFAULT_EMAIL","callCenterPhoneNumbers","caseCallCenterPhoneNumbers","phoneNumber","dashFormatPhoneNumber","DEFAULT_PHONE_NUMBER","LoginFooterComponent","LoginThemingComponent","ConvertHexToRGB","hex","rString","substr","gString","bString","primaryColor","secondaryColor","tertiaryColor","disabledColor","primaryRGB","invalidColor","_my_style","LoginLayoutMainComponent","LoginAccountLockoutComponent","_args","_dialogRef","_completeUrlBuilderService","loginCountdownComponent","lockedOutUntil","countdownCompleted","closeDialog","close","passwordResetRoute","MAT_DIALOG_DATA","StartLoginService","startLoginRequest","LoginClientLogoComponent","_loginClientLogoUrlService","currentCase","logoUrl","clientLogoVersion","DEFAULT_LOGO_URL","LoginMainComponent","_accountLockedDialog","_startLoginService","emailAddress","isValidEmail","password","allowSignupLink","redirect","patchValue","deviceTokenId","deviceTokenToken","openAccountLockoutDialog","isInvalidCredentials","invalidCredentials","relativeTo","passwordResetRequestId","requestId","requestToken","passwordResetRequestToken","requestReason","passwordResetRequestCreationReasonEnum","ignoreMFA","shouldIgnoreMfa","SetInvalidEmailAddress","invalidEmailAddress","hasError","open","data","GetMFAMethodsService","getMFAMethods","SendLoginMFACodeService","sendLoginMFACode","LoginSelectMFAMethodComponent","formBuilder","router","getMFAMethodsService","sendLoginMFACodeService","currentLoginRequestService","activatedRoute","mfaDevices","userContactMethods","devices","userContactMethodRadio","rememberDevice","disabled","shouldDisableRememberMeOption","mfaDeviceType","rememberThisDevice","LoginRequestRouteGuard","canActivate","redirectToLogin","LOGIN_ROUTES","path","component","children","loadChildren","Promise","then","LoginResetPasswordModule","LoginSignUpModule","LoginRecoverEmailAddressModule","title","LoginModule","FormsModule","MatIconModule","RouterModule"],"sourceRoot":"webpack:///","sources":["./src/app/modules/api/mfa-device-type-enum.generated.ts","./src/app/modules/common/components/alert-error/alert-error.component.ts","./src/app/modules/common/components/alert-error/alert-error.component.html","./src/app/modules/common/components/alert/alert.component.ts","./src/app/modules/common/components/alert/alert.component.html","./src/app/modules/common/enums/alert-type.enum.ts","./src/app/modules/common/pipes/trust-html.pipe.ts","./src/app/modules/common/services/complete-url-builder.service.ts","./src/app/modules/common/services/device-token.service.ts","./src/app/modules/login-shared/components/login-enter-pii/login-enter-pii.component.html","./src/app/modules/login-shared/components/login-enter-pii/login-enter-pii.component.ts","./src/app/modules/login-shared/components/login-mfa-code/login-mfa-code.component.html","./src/app/modules/login-shared/components/login-mfa-code/login-mfa-code.component.ts","./src/app/modules/login-shared/components/login-user-contact-methods/login-user-contact-methods.component.html","./src/app/modules/login-shared/components/login-user-contact-methods/login-user-contact-methods.component.ts","./src/app/modules/login-shared/components/login-enter-pii-answer/login-enter-pii-answer.component.html","./src/app/modules/login-shared/components/login-enter-pii-answer/login-enter-pii-answer.component.ts","./src/app/modules/login-shared/login-shared.module.ts","./src/app/modules/login-shared/services/complete-login.service.ts","./src/app/modules/api/validate-login-mfa-code.service.generated.ts","./src/app/modules/login/services/current-login-request.service.ts","./src/app/modules/login/components/login-enter-mfa-code/login-enter-mfa-code.component.html","./src/app/modules/login/components/login-enter-mfa-code/login-enter-mfa-code.component.ts","./src/app/modules/login/components/login-layout-main-text/login-layout-main-text.component.html","./src/app/modules/login/components/login-layout-main-text/login-layout-main-text.component.ts","./src/app/modules/login/components/login-layout-main-img/login-layout-main-img.component.ts","./src/app/modules/login/components/login-layout-main-img/login-layout-main-img.component.html","./src/app/modules/login/components/login-footer-help/login-footer-help.component.html","./src/app/modules/login/components/login-footer-help/login-footer-help.component.ts","./src/app/modules/login/components/login-footer/login-footer.component.ts","./src/app/modules/login/components/login-footer/login-footer.component.html","./src/app/modules/login/components/login-theming/login-theming.component.ts","./src/app/modules/login/components/login-theming/login-theming.component.html","./src/app/modules/login/components/login-layout-main/login-layout-main.component.ts","./src/app/modules/login/components/login-layout-main/login-layout-main.component.html","./src/app/modules/login/components/login-account-lockout/login-account-lockout.component.ts","./src/app/modules/login/components/login-account-lockout/login-account-lockout.component.html","./src/app/modules/api/start-login.service.generated.ts","./src/app/modules/login/components/login-client-logo/login-client-logo.component.ts","./src/app/modules/login/components/login-client-logo/login-client-logo.component.html","./src/app/modules/login/components/login-main/login-main.component.html","./src/app/modules/login/components/login-main/login-main.component.ts","./src/app/modules/api/get-mfa-methods.service.generated.ts","./src/app/modules/api/send-login-mfa-code.service.generated.ts","./src/app/modules/login/components/login-select-mfa-method/login-select-mfa-method.component.html","./src/app/modules/login/components/login-select-mfa-method/login-select-mfa-method.component.ts","./src/app/modules/login/services/login-request-route-guard.ts","./src/app/modules/login/login.routes.ts","./src/app/modules/login/login.module.ts"],"sourcesContent":["export enum MFADeviceTypeEnum {\r\n Unknown = 0,\r\n SMS = 1,\r\n Email = 2,\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { AlertTypeEnum } from '../../enums/alert-type.enum';\r\n\r\n@Component({\r\n selector: 'app-alert-error',\r\n templateUrl: './alert-error.component.html',\r\n styleUrls: ['./alert-error.component.scss']\r\n})\r\nexport class AlertErrorComponent {\r\n /**\r\n * If true, the alert message will attempt to fit on one line,\r\n * instead of wrapping to multiple lines.\r\n */\r\n @Input()\r\n public wide = false;\r\n\r\n /**\r\n * If true, the alert message will have top/bottom margins.\r\n */\r\n @Input()\r\n public margin = true;\r\n\r\n public readonly AlertTypeEnum = AlertTypeEnum;\r\n}","","import { Component, Input } from '@angular/core';\r\nimport { AlertTypeEnum } from '../../enums/alert-type.enum';\r\n\r\n@Component({\r\n selector: 'app-alert',\r\n templateUrl: './alert.component.html',\r\n styleUrls: ['./alert.component.scss']\r\n})\r\nexport class AlertComponent {\r\n public AlertTypeEnum = AlertTypeEnum;\r\n\r\n @Input()\r\n public alertType!: AlertTypeEnum;\r\n\r\n /**\r\n * If true, the alert message will attempt to fit on one line,\r\n * instead of wrapping to multiple lines.\r\n */\r\n @Input()\r\n public wide = false;\r\n\r\n /**\r\n * If true, the alert message will have top/bottom margins.\r\n */\r\n @Input()\r\n public margin = true;\r\n}\r\n","
\r\n\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t
\r\n
\r\n","export enum AlertTypeEnum {\r\n Error,\r\n Success,\r\n Warning,\r\n Info\r\n}\r\n","import { Pipe, PipeTransform, SecurityContext } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({ name: 'trustHtml' })\r\nexport class TrustHtmlPipe implements PipeTransform {\r\n constructor(private _domSanitizer: DomSanitizer) { }\r\n\r\n public transform(value: string): any {\r\n if (value && value.toLowerCase().indexOf(' !!pathComponent)) { //Ignore undefined or empty components\r\n\t\t\t\tdirtyComponent!\r\n\t\t\t\t\t.split('/') //We are allowing a component to contain slashes, so split it up into the actual components\r\n\t\t\t\t\t.filter(s => !!s) //Ignore any empty resulting split elements (can happen if there are leading, trailing, or consecutive slashes)\r\n\t\t\t\t\t.forEach(cleanComponent => urlComponents.push(cleanComponent)); //Add the clean components to the list\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//Return the URL components joined with slashes. This is an absolute URL, so also lead with a slash.\r\n\t\treturn '/' + urlComponents.join('/');\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WeakStrongPair } from '@modules/common/models/weak-strong-pair';\r\n\r\nconst DEVICE_TOKEN_KEY = \"device-token\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DeviceTokenService {\r\n public getDeviceToken(): WeakStrongPair | undefined {\r\n let json = localStorage.getItem(DEVICE_TOKEN_KEY);\r\n return json && JSON.parse(json);\r\n }\r\n\r\n public setDeviceToken(deviceToken: WeakStrongPair): void {\r\n localStorage.setItem(DEVICE_TOKEN_KEY, deviceToken && JSON.stringify(deviceToken));\r\n }\r\n}\r\n","
\r\n \r\n \r\n
","import { Component, Input } from '@angular/core';\r\nimport { FormArray } from '@angular/forms';\r\nimport { PIIQuestionFormGroup } from '@modules/login-shared/types/pii-question-form-group.type';\r\n\r\n@Component({\r\n selector: 'app-login-enter-pii',\r\n templateUrl: './login-enter-pii.component.html',\r\n styleUrls: ['./login-enter-pii.component.scss']\r\n})\r\nexport class LoginEnterPIIComponent {\r\n @Input()\r\n public formArray!: FormArray;\r\n}\r\n","
\r\n
\r\n A 6 character verification code has been sent to the device you selected. Please enter it below.\r\n
\r\n
\r\n Your entry is incorrect\r\n Your request has expired. Please refresh the page and try again.\r\n Too many incorrect entries\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n You have minutes left.\r\n
\r\n
","import { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef, Input, OnDestroy, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport { ControlValueAccessor, FormArray, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { CountdownComponent } from '@modules/common/components/countdown/countdown.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n/**\r\n * This component is a ControlValueAccessor for MFA codes. It shows text boxes to enter the code\r\n * (one character each) and a countdown to the code's expiry. It also shows error alerts based\r\n * on the provided inputs.\r\n */\r\n@Component({\r\n selector: 'app-login-mfa-code',\r\n templateUrl: './login-mfa-code.component.html',\r\n styleUrls: ['./login-mfa-code.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => LoginMFACodeComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class LoginMFACodeComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\r\n @Input()\r\n public isInvalidCode!: boolean;\r\n\r\n @Input()\r\n public isExpiredRequest!: boolean;\r\n\r\n @Input()\r\n public isLockedOut!: boolean;\r\n\r\n @Input()\r\n public mfaTimeOutInMinutes: number = 5;\r\n\r\n @Output()\r\n public countdownTimedOut = new EventEmitter();\r\n\r\n public formArray: FormArray>;\r\n\r\n @ViewChild(CountdownComponent, { static: true })\r\n private _loginCountdownComponent!: CountdownComponent;\r\n\r\n @ViewChildren('codeInput')\r\n private _inputElements!: QueryList>;\r\n\r\n private _subscriptions: Subscription[] = [];\r\n\r\n private _propagateChanges?: (value: string) => void;\r\n\r\n constructor() {\r\n this.formArray = this.buildFormArray();\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this._loginCountdownComponent.countdownTo(new Date(new Date().getTime() + this.mfaTimeOutInMinutes * 60 * 1000));\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n for (let subscription of this._subscriptions) {\r\n subscription.unsubscribe();\r\n }\r\n this._subscriptions = [];\r\n }\r\n\r\n public writeValue(value: string | undefined): void {\r\n value = (value || '').substring(0, this.formArray.controls.length);\r\n this.setMFACodeValue(value);\r\n }\r\n\r\n public registerOnChange(fn: (value: string | undefined) => void): void {\r\n this._propagateChanges = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n }\r\n\r\n public onCountdownCompleted(): void {\r\n this.countdownTimedOut.emit();\r\n }\r\n\r\n public onPaste(e: ClipboardEvent): void {\r\n e.preventDefault(); //Prevent the original pasting\r\n\r\n const mfaCode = e.clipboardData?.getData('text').trim().substring(0, this.formArray.controls.length) || '';\r\n\r\n //Write the MFA code to the controls, then propagate the new value.\r\n this.setMFACodeValue(mfaCode);\r\n this._propagateChanges?.(this.getMFACodeFromFormArray());\r\n\r\n //Move the cursor to either the last input or the first empty one.\r\n this.focusInput(Math.min(mfaCode.length, this.formArray.controls.length - 1));\r\n }\r\n\r\n public onKeydown(index: number, event: KeyboardEvent): void {\r\n //When pressing backspace in an empty input, move the cursor to the previous input\r\n //before the backspace actually takes effect, so the previous input's value gets\r\n //deleted instead.\r\n if (event.key === \"Backspace\" && index > 0 && !this.formArray.controls[index].value) {\r\n this.focusInput(index - 1);\r\n }\r\n }\r\n\r\n public onInput(index: number, event: InputEvent): void {\r\n //After entering one character of the MFA code, move the cursor to the next input.\r\n if (event.inputType !== 'deleteContentBackward' && index + 1 < this.formArray.controls.length) {\r\n this.focusInput(index + 1);\r\n }\r\n }\r\n\r\n private focusInput(index: number): void {\r\n this._inputElements.get(index)!.nativeElement.focus();\r\n }\r\n\r\n private buildFormArray(): FormArray> {\r\n const formControls: FormControl[] = [];\r\n for (let i = 0; i < 6; i++) {\r\n const formControl = new FormControl('', { nonNullable: true });\r\n //Create a subscription that propagates the new MFA code value whenever the control value changes.\r\n this._subscriptions.push(formControl.valueChanges.subscribe(() => this._propagateChanges?.(this.getMFACodeFromFormArray())));\r\n formControls.push(formControl);\r\n }\r\n return new FormArray>(formControls);\r\n }\r\n\r\n private setMFACodeValue(cleanMFACode: string): void {\r\n for (let i = 0; i < cleanMFACode.length; i++) {\r\n (this.formArray.controls[i]).setValue(cleanMFACode[i], { emitEvent: false }); //Don't trigger a value propagation for each individual control\r\n }\r\n //If the code is too short, delete everything after the end of the given code\r\n for (let i = cleanMFACode.length; i < this.formArray.controls.length; i++) {\r\n (this.formArray.controls[i]).setValue('', { emitEvent: false });\r\n }\r\n }\r\n\r\n private getMFACodeFromFormArray(): string {\r\n return this.formArray.controls.map(control => control.value).join('');\r\n }\r\n}","
\r\n \r\n \r\n \r\n
","import { Component, Input } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MFADeviceTypeEnum } from '@modules/api/mfa-device-type-enum.generated';\r\nimport { MFADevice } from '@modules/api/mfa-device.generated';\r\n\r\n@Component({\r\n selector: 'app-login-user-contact-methods',\r\n templateUrl: './login-user-contact-methods.component.html',\r\n styleUrls: ['./login-user-contact-methods.component.scss']\r\n})\r\nexport class LoginUserContactMethodsComponent {\r\n @Input()\r\n public devices!: MFADevice[];\r\n @Input()\r\n public formGroup!: FormGroup;\r\n\r\n public MFADeviceTypeEnum = MFADeviceTypeEnum;\r\n}\r\n","
\r\n \r\n {{formGroup.get('piiField').value.label}}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{formGroup.get('piiField').value.label}}\r\n \r\n \r\n \r\n \r\n Phone Number is not valid\r\n
","import { Component, Input } from '@angular/core';\r\nimport { PersonalInfoFieldTypeEnum } from \"@modules/api/personal-info-field-type-enum.generated\";\r\nimport { PIIQuestionFormGroup } from '@modules/login-shared/types/pii-question-form-group.type';\r\n\r\n@Component({\r\n selector: 'app-login-enter-pii-answer',\r\n templateUrl: './login-enter-pii-answer.component.html',\r\n styleUrls: ['./login-enter-pii-answer.component.scss']\r\n})\r\nexport class LoginEnterPIIAnswerComponent {\r\n @Input()\r\n public formGroup!: PIIQuestionFormGroup;\r\n\r\n public isInputTypeDateTime(formGroup: PIIQuestionFormGroup): boolean {\r\n return formGroup.controls.piiField.value.personalInfoFieldType == PersonalInfoFieldTypeEnum.DateTime;\r\n }\r\n\r\n public isInputTypeText(formGroup: PIIQuestionFormGroup): boolean {\r\n return formGroup.controls.piiField.value.personalInfoFieldType == PersonalInfoFieldTypeEnum.Text;\r\n }\r\n\r\n public isInputTypeMaskedText(formGroup: PIIQuestionFormGroup): boolean {\r\n return formGroup.controls.piiField.value.personalInfoFieldType == PersonalInfoFieldTypeEnum.MaskedText;\r\n }\r\n\r\n public isInputTypePhoneNumber(formGroup: PIIQuestionFormGroup): boolean {\r\n return formGroup.controls.piiField.value.personalInfoFieldType == PersonalInfoFieldTypeEnum.PhoneNumber;\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { StingrayCommonModule } from '@modules/common/common.module';\r\nimport { LoginEnterPIIAnswerComponent } from '@modules/login-shared/components/login-enter-pii-answer/login-enter-pii-answer.component';\r\nimport { LoginEnterPIIComponent } from '@modules/login-shared/components/login-enter-pii/login-enter-pii.component';\r\nimport { LoginMFACodeComponent } from '@modules/login-shared/components/login-mfa-code/login-mfa-code.component';\r\nimport { LoginUserContactMethodsComponent } from '@modules/login-shared/components/login-user-contact-methods/login-user-contact-methods.component';\r\nimport { ReCaptchaDirective } from '@modules/login-shared/directives/nb-recaptcha.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginMFACodeComponent,\r\n LoginEnterPIIComponent,\r\n LoginEnterPIIAnswerComponent,\r\n LoginUserContactMethodsComponent,\r\n ReCaptchaDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n MatAutocompleteModule,\r\n MatRadioModule,\r\n StingrayCommonModule\r\n ],\r\n exports: [\r\n LoginMFACodeComponent,\r\n LoginEnterPIIComponent,\r\n LoginUserContactMethodsComponent,\r\n ReCaptchaDirective\r\n ]\r\n})\r\nexport class LoginSharedModule {\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { DeviceTokenModel } from \"@modules/api/device-token-model.generated\";\r\nimport { UserSession } from \"@modules/api/user-session.generated\";\r\nimport { DeviceTokenService } from \"@modules/common/services/device-token.service\";\r\nimport { RedirectToLoginService } from \"@modules/common/services/redirect-to-login.service\";\r\nimport { UserSessionService } from \"@modules/common/services/user-session.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompleteLoginService {\r\n constructor(\r\n private _userSessionService: UserSessionService,\r\n private _redirectToLoginService: RedirectToLoginService,\r\n private _deviceTokenService: DeviceTokenService,\r\n private _router: Router\r\n ) { }\r\n\r\n public completeLogin(args: { userSession?: UserSession, deviceToken?: DeviceTokenModel, redirectHTML?: string }): void {\r\n this.setDeviceTokenIfAvailable(args.deviceToken);\r\n\r\n if (args.userSession) {\r\n this._userSessionService.setUserSession(args.userSession);\r\n\r\n if (this._redirectToLoginService.getRedirectedFromUrl()) {\r\n this._router.navigate(this._redirectToLoginService.getRedirectedFromUrl()!, { queryParams: this._redirectToLoginService.getQueryParams() });\r\n this._redirectToLoginService.clearRedirectedFromUrl();\r\n } else if (args.userSession.restrictedToCase) {\r\n\t\t\t\tthis._router.navigate([(this.getEnvironment(args.userSession) ? '/' + this.getEnvironment(args.userSession) : '') + '/' + args.userSession.restrictedToCase.code + '/Dashboards']);\r\n } else {\r\n this._router.navigate(['/' + this.getEnvironment(args.userSession)]);\r\n }\r\n } else if (args.redirectHTML) {\r\n window.document.body.innerHTML = args.redirectHTML;\r\n window.document.forms[0].submit();\r\n }\r\n }\r\n\r\n private getEnvironment(userSession: UserSession): string {\r\n const defaultEnvironment = userSession.allowedEnvironments && userSession.allowedEnvironments.filter(x => x.isDefault)[0];\r\n return defaultEnvironment && defaultEnvironment.name || '';\r\n }\r\n\r\n private setDeviceTokenIfAvailable(deviceToken?: DeviceTokenModel): void {\r\n if (deviceToken && deviceToken.id && deviceToken.token) {\r\n this._deviceTokenService.setDeviceToken({\r\n id: deviceToken.id,\r\n token: deviceToken.token\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ConcurrentRequestHandlingService } from '@modules/common/services/concurrent-request-handling.service';\r\nimport { ApiProxyOptions } from '@modules/common/models/api-proxy-options';\r\nimport { ValidateLoginMFACodeArgs } from './validate-login-mfa-code-args.generated';\r\nimport { ValidateLoginMFACodeResult } from './validate-login-mfa-code-result.generated';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidateLoginMFACodeService {\r\n constructor(private _concurrentRequestHandlingService: ConcurrentRequestHandlingService) { }\r\n\r\n public validateLoginMFACode(args: ValidateLoginMFACodeArgs, options?: ApiProxyOptions): Observable {\r\n return this._concurrentRequestHandlingService.callApi(\r\n \"ValidateLoginMFACodeService_validateLoginMFACode\",\r\n {\r\n url: '/Login/ValidateLoginMFACode/ValidateLoginMFACode',\r\n body: typeof args === 'undefined' || args === null ? {} : args,\r\n sendCredentials: false\r\n }, options\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { WeakStrongPair } from '@modules/common/models/weak-strong-pair';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CurrentLoginRequestService {\r\n private currentLoginRequest!: WeakStrongPair;\r\n\r\n public getCurrentLoginRequest(): WeakStrongPair {\r\n return this.currentLoginRequest;\r\n }\r\n\r\n public setCurrentLoginRequest(loginRequest: WeakStrongPair): void {\r\n this.currentLoginRequest = loginRequest;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
Enter code
\r\n Your request has expired. Please refresh the page and try again.\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ValidateLoginMFACodeService } from '@modules/api/validate-login-mfa-code.service.generated';\r\nimport { CompleteLoginService } from '@modules/login-shared/services/complete-login.service';\r\nimport { CurrentLoginRequestService } from '@modules/login/services/current-login-request.service';\r\n\r\n@Component({\r\n selector: 'app-login-enter-mfa-code',\r\n templateUrl: './login-enter-mfa-code.component.html',\r\n styleUrls: ['./login-enter-mfa-code.component.scss']\r\n})\r\nexport class LoginEnterMFACodeComponent implements OnInit {\r\n public form!: FormGroup;\r\n public isExpiredRequest = false;\r\n public isInvalidCode = false;\r\n public isLockedOut = false;\r\n public countdownTimedOut = false;\r\n\r\n constructor(\r\n private _route: ActivatedRoute,\r\n private _formBuilder: FormBuilder,\r\n private _validateLoginMFACodeService: ValidateLoginMFACodeService,\r\n private _currentLoginRequestService: CurrentLoginRequestService,\r\n private _completeLoginService: CompleteLoginService,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.form = this._formBuilder.group({\r\n 'mfaCode': ['', [Validators.required, Validators.minLength(6)]]\r\n });\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.valid) {\r\n this.resetErrors();\r\n\r\n let loginRequest = this._currentLoginRequestService.getCurrentLoginRequest();\r\n this._validateLoginMFACodeService.validateLoginMFACode({\r\n loginMFACodeId: parseInt(this._route.snapshot.params['loginMFACodeId']),\r\n loginRequestId: loginRequest.id,\r\n loginRequestToken: loginRequest.token,\r\n mfaCode: this.form.get('mfaCode')!.value.trim(),\r\n encryptedRedirectUrl: sessionStorage.getItem('titaniaRedirect') || undefined,\r\n }).subscribe(result => {\r\n if (result.isLockedOut) {\r\n this.isLockedOut = true;\r\n this.isInvalidCode = false;\r\n } else if (result.isExpired) {\r\n this.isExpiredRequest = true;\r\n } else if (result.isInvalidCode) {\r\n this.isInvalidCode = true;\r\n } else {\r\n this._completeLoginService.completeLogin({\r\n deviceToken: result.deviceToken,\r\n redirectHTML: result.redirectHtml,\r\n userSession: result.userSession\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public onCountdownTimedOut(): void {\r\n this.countdownTimedOut = true;\r\n }\r\n\r\n private resetErrors(): void {\r\n this.isInvalidCode = false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Initial Account Login & Set-up Steps\r\n
\r\n
    \r\n
  • \r\n You are required to complete a one-time registration verification to establish secure login credentials\r\n by selecting the “Create New Account” button to the left and follow the registration steps.\r\n
  • \r\n
  • \r\n You will be asked to enter information that will be used to verify your identity.\r\n
  • \r\n
  • \r\n You will be prompted to enter your email address (which will be your username) and create a unique password.\r\n
  • \r\n
  • \r\n You must request and enter the verification code that is sent to your email address or phone number in order to activate your account.\r\n
  • \r\n
  • \r\n Once you have an account created, you will enter your email address and password and then select “Login” to access your benefits portal.\r\n
  • \r\n
\r\n
\r\n\r\n
\r\n
\r\n Learn. Enroll. Manage.\r\n
\r\n
\r\n Use this site as an online resource for\r\n all your benefit related needs. Here you can:\r\n
\r\n
    \r\n
  • Learn about available plans
  • \r\n
  • Enroll in new plan elections
  • \r\n
  • Manage all your plans throughout the year
  • \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { GetLoginStylingService } from '@modules/api/get-login-styling.service.generated';\r\nimport { CurrentCaseService } from '@modules/common/services/current-case.service';\r\n\r\n@Component({\r\n selector: 'app-login-layout-main-text',\r\n templateUrl: './login-layout-main-text.component.html',\r\n styleUrls: ['./login-layout-main-text.component.scss']\r\n})\r\nexport class LoginLayoutMainTextComponent implements OnInit {\r\n public clientMainHTML: string | undefined;\r\n public loginStyleLoaded: boolean = false;\r\n public hasCurrentCase: boolean = false;\r\n\r\n constructor(\r\n private _getLoginStylingService: GetLoginStylingService,\r\n private readonly _currentCaseService: CurrentCaseService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this._getLoginStylingService.getLoginStyling().subscribe(result => {\r\n\r\n this.loginStyleLoaded = true;\r\n\r\n if (result) {\r\n this.clientMainHTML = result.mainHTML;\r\n }\r\n });\r\n\r\n this.hasCurrentCase = !!this._currentCaseService.getCurrentCaseName();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CurrentLoginStylingService } from '@modules/common/services/current-login-styling.service';\r\nimport { LoginMainImageUrlService } from '@modules/common/services/login-main-image-url.service';\r\n\r\n@Component({\r\n selector: 'app-login-layout-main-img',\r\n templateUrl: './login-layout-main-img.component.html',\r\n styleUrls: ['./login-layout-main-img.component.scss']\r\n})\r\nexport class LoginLayoutMainImgComponent implements OnInit {\r\n public mainImage: string = '';\r\n private static MAIN_IMAGE_URL: string = 'https://media.winstonfinancial.com/Stingray/Images/HRally_Login_BGbug.png';\r\n\r\n constructor(\r\n private _currentLoginStylingService: CurrentLoginStylingService,\r\n private _loginMainImageUrlService: LoginMainImageUrlService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this._currentLoginStylingService.configChanged.subscribe(result => {\r\n if (result && result.mainImageVersion) {\r\n this.mainImage = this._loginMainImageUrlService.getUrl(result.mainImageVersion);\r\n } else {\r\n this.mainImage = LoginLayoutMainImgComponent.MAIN_IMAGE_URL;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n","\r\n","import { Component } from '@angular/core';\r\nimport { CurrentLoginStylingService } from '@modules/common/services/current-login-styling.service';\r\nimport { dashFormatPhoneNumber } from '@modules/common/functions/dash-format-phone-number';\r\n\r\n@Component({\r\n selector: 'app-login-footer-help',\r\n templateUrl: './login-footer-help.component.html',\r\n styleUrls: ['./login-footer-help.component.scss']\r\n})\r\nexport class LoginFooterHelpComponent {\r\n public email: string = '';\r\n public callCenterPhoneNumbers:CallCenterPhoneNumber[] = [];\r\n\r\n private static DEFAULT_EMAIL: string = 'loginsupport@winstonbenefits.com';\r\n private static DEFAULT_PHONE_NUMBER: string = '1-732-899-0990';\r\n\r\n constructor(\r\n private _currentLoginStylingService: CurrentLoginStylingService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this._currentLoginStylingService.configChanged.subscribe(result => {\r\n if (result && result.contactEmail) {\r\n this.email = result.contactEmail;\r\n } else {\r\n this.email = LoginFooterHelpComponent.DEFAULT_EMAIL;\r\n }\r\n\r\n this.callCenterPhoneNumbers = [];\r\n\r\n if (result?.caseCallCenterPhoneNumbers) {\r\n result.caseCallCenterPhoneNumbers.forEach(x => {\r\n this.callCenterPhoneNumbers.push({\r\n name: x!.name,\r\n phoneNumber: dashFormatPhoneNumber(x!.phoneNumber!)\r\n });\r\n });\r\n }\r\n\r\n if(this.callCenterPhoneNumbers!.length == 0){\r\n this.callCenterPhoneNumbers.push({\r\n phoneNumber: dashFormatPhoneNumber(LoginFooterHelpComponent.DEFAULT_PHONE_NUMBER)\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface CallCenterPhoneNumber{\r\n name?: string;\r\n phoneNumber:string;\r\n} \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-login-footer',\r\n templateUrl: './login-footer.component.html',\r\n styleUrls: ['./login-footer.component.scss']\r\n})\r\nexport class LoginFooterComponent {\r\n}\r\n","
\r\n \r\n \r\n
","import { Component, OnInit, ElementRef, ViewChild } from '@angular/core';\r\nimport { CurrentLoginStylingService } from '@modules/common/services/current-login-styling.service';\r\n\r\n@Component({\r\n selector: 'app-login-theming',\r\n templateUrl: './login-theming.component.html',\r\n styleUrls: ['./login-theming.component.scss']\r\n})\r\nexport class LoginThemingComponent implements OnInit {\r\n public style!: string;\r\n\r\n @ViewChild('my_style', { static: true })\r\n private _my_style!: ElementRef;\r\n\r\n constructor(\r\n private _currentLoginStylingService: CurrentLoginStylingService,\r\n ) { }\r\n\r\n private ConvertHexToRGB(hex: string): number[] {\r\n let rString = hex.substr(1, 2);\r\n let gString = hex.substr(3, 2);\r\n let bString = hex.substr(5, 2);\r\n\r\n return [parseInt(rString, 16), parseInt(gString, 16), parseInt(bString, 16)];\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._currentLoginStylingService.configChanged.subscribe(result => {\r\n if (result) {\r\n let primaryColor: string = result.primaryColor || '#004C97';\r\n let secondaryColor: string = result.secondaryColor || '#DEDCDC';\r\n let tertiaryColor: string = result.tertiaryColor || '#4E9499';\r\n\r\n let disabledColor: string = '#d0d0d0';\r\n let primaryRGB: number[] = this.ConvertHexToRGB(primaryColor);\r\n let invalidColor: string = '#f44336';\r\n\r\n this._my_style.nativeElement.innerHTML = `\r\n`;\r\n }\r\n });\r\n // .page-header uses tertiaryColor in site.scss, but for the\r\n // login account settings page (which is the only place the\r\n // class is used) we want the headers to be the primary color.\r\n }\r\n}\r\n","
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-login-layout-main',\r\n templateUrl: './login-layout-main.component.html',\r\n styleUrls: ['./login-layout-main.component.scss']\r\n})\r\nexport class LoginLayoutMainComponent {\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
","import { Component, Inject, ViewChild, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { AccountLockoutComponentArgs } from '@modules/login/models/account-lockout-component-args';\r\nimport { CountdownComponent } from '@modules/common/components/countdown/countdown.component';\r\nimport { CompleteUrlBuilderService } from '@modules/common/services/complete-url-builder.service';\r\n\r\n@Component({\r\n selector: 'app-login-account-lockout',\r\n templateUrl: './login-account-lockout.component.html',\r\n styleUrls: ['./login-account-lockout.component.scss']\r\n})\r\nexport class LoginAccountLockoutComponent implements OnInit {\r\n @ViewChild(CountdownComponent, { static: true })\r\n public loginCountdownComponent!: CountdownComponent;\r\n\r\n public countdownCompleted = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n private readonly _args: AccountLockoutComponentArgs,\r\n private readonly _dialogRef: MatDialogRef,\r\n private readonly _completeUrlBuilderService: CompleteUrlBuilderService,\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.loginCountdownComponent.countdownTo(this._args.lockedOutUntil);\r\n }\r\n\r\n public onCountdownCompleted(): void {\r\n this.countdownCompleted = true;\r\n }\r\n\r\n public closeDialog(): void {\r\n this._dialogRef.close();\r\n }\r\n\r\n public get passwordResetRoute(): string {\r\n return this._completeUrlBuilderService.buildUrl(['Login', 'ResetPassword']);\r\n }\r\n}\r\n","\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ConcurrentRequestHandlingService } from '@modules/common/services/concurrent-request-handling.service';\r\nimport { ApiProxyOptions } from '@modules/common/models/api-proxy-options';\r\nimport { StartLoginArgs } from './start-login-args.generated';\r\nimport { StartLoginResult } from './start-login-result.generated';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StartLoginService {\r\n constructor(private _concurrentRequestHandlingService: ConcurrentRequestHandlingService) { }\r\n\r\n public startLoginRequest(args: StartLoginArgs, options?: ApiProxyOptions): Observable {\r\n return this._concurrentRequestHandlingService.callApi(\r\n \"StartLoginService_startLoginRequest\",\r\n {\r\n url: '/Login/StartLogin/StartLoginRequest',\r\n body: typeof args === 'undefined' || args === null ? {} : args,\r\n sendCredentials: false\r\n }, options\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CurrentCaseService } from '@modules/common/services/current-case.service';\r\nimport { CurrentLoginStylingService } from '@modules/common/services/current-login-styling.service';\r\nimport { LoginClientLogoUrlService } from '@modules/common/services/login-client-logo-url.service';\r\n\r\n@Component({\r\n selector: 'app-login-client-logo',\r\n templateUrl: './login-client-logo.component.html',\r\n styleUrls: ['./login-client-logo.component.scss']\r\n})\r\nexport class LoginClientLogoComponent implements OnInit {\r\n public currentCase: string = '';\r\n public logoUrl: string = '';\r\n private static DEFAULT_LOGO_URL = 'https://media.winstonfinancial.com/Stingray/Images/HRally_logo_109x60.png';\r\n\r\n constructor(\r\n private _currentCaseService : CurrentCaseService,\r\n private _currentLoginStylingService: CurrentLoginStylingService,\r\n private _loginClientLogoUrlService: LoginClientLogoUrlService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.currentCase = this._currentCaseService.getCurrentCaseName();\r\n\r\n this._currentLoginStylingService.configChanged.subscribe(result => {\r\n if (result && result.clientLogoVersion) {\r\n this.logoUrl = this._loginClientLogoUrlService.getUrl(result.clientLogoVersion);\r\n } else {\r\n this.logoUrl = LoginClientLogoComponent.DEFAULT_LOGO_URL;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n Powered by Winston\r\n \r\n
","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Incorrect email address or password\r\n Email Address is invalid\r\n
Use Your Benefits Portal Login Credentials
\r\n \r\n Email\r\n \r\n \r\n Forgot Email?\r\n \r\n\r\n \r\n Password\r\n \r\n \r\n Forgot Password?\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StartLoginService } from '@modules/api/start-login.service.generated';\r\nimport { CurrentLoginStylingService } from '@modules/common/services/current-login-styling.service';\r\nimport { DeviceTokenService } from '@modules/common/services/device-token.service';\r\nimport { isValidEmail } from '@modules/common/validators/is-valid-email';\r\nimport { CompleteLoginService } from '@modules/login-shared/services/complete-login.service';\r\nimport { LoginAccountLockoutComponent } from '@modules/login/components/login-account-lockout/login-account-lockout.component';\r\nimport { AccountLockoutComponentArgs } from '@modules/login/models/account-lockout-component-args';\r\nimport { CurrentLoginRequestService } from '@modules/login/services/current-login-request.service';\r\n\r\n@Component({\r\n selector: 'app-login-main',\r\n templateUrl: './login-main.component.html',\r\n styleUrls: ['./login-main.component.scss']\r\n})\r\nexport class LoginMainComponent implements OnInit {\r\n public form!: FormGroup;\r\n public invalidCredentials: boolean = false;\r\n public allowSignupLink: boolean = false;\r\n public invalidEmailAddress: boolean = false;\r\n\r\n private encryptedRedirectUrl?: string;\r\n\r\n constructor(\r\n private _formBuilder: FormBuilder,\r\n private _accountLockedDialog: MatDialog,\r\n private _router: Router,\r\n private _route: ActivatedRoute,\r\n private _startLoginService: StartLoginService,\r\n private _currentLoginRequestService: CurrentLoginRequestService,\r\n private _deviceTokenService: DeviceTokenService,\r\n private _currentLoginStylingService: CurrentLoginStylingService,\r\n private _completeLoginService: CompleteLoginService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.form = this._formBuilder.group({\r\n 'emailAddress': ['', Validators.required, isValidEmail],\r\n 'password': ['', Validators.required]\r\n });\r\n\r\n this._currentLoginStylingService.configChanged.subscribe(result => {\r\n this.allowSignupLink = !!result && result.allowSignupLink;\r\n });\r\n this.encryptedRedirectUrl = this._route.snapshot.queryParams['redirect'];\r\n if (this.encryptedRedirectUrl)\r\n sessionStorage.setItem('titaniaRedirect', this.encryptedRedirectUrl);\r\n }\r\n\r\n public onSubmit(): void {\r\n this.form.patchValue({ 'emailAddress': this.form.get('emailAddress')!.value && (this.form.get('emailAddress')!.value).trim() });\r\n\r\n if (this.form.valid) {\r\n this.resetErrors();\r\n\r\n let deviceToken = this._deviceTokenService.getDeviceToken();\r\n this._startLoginService.startLoginRequest({\r\n emailAddress: this.form.get('emailAddress')!.value,\r\n password: this.form.get('password')!.value,\r\n deviceTokenId: deviceToken && deviceToken.id || undefined,\r\n deviceTokenToken: deviceToken && deviceToken.token || undefined,\r\n encryptedRedirectUrl: sessionStorage.getItem('titaniaRedirect') || undefined,\r\n }).subscribe(result => {\r\n if (result.lockedOutUntil) {\r\n this.openAccountLockoutDialog(result.lockedOutUntil);\r\n } else if (result.isInvalidCredentials) {\r\n this.invalidCredentials = true;\r\n } else if (result.loginRequestId) {\r\n this._currentLoginRequestService.setCurrentLoginRequest({\r\n id: result.loginRequestId,\r\n token: result.loginRequestToken!\r\n });\r\n this._router.navigate(['./SelectMFADevice'], { relativeTo: this._route });\r\n } else if (result.passwordResetRequestId) {\r\n //Password expired and needs to be changed\r\n this._router.navigate(\r\n ['./ResetPassword'],\r\n {\r\n relativeTo: this._route,\r\n queryParams: {\r\n requestId: result.passwordResetRequestId,\r\n requestToken: result.passwordResetRequestToken,\r\n requestReason: result.passwordResetRequestCreationReasonEnum,\r\n ignoreMFA: result.shouldIgnoreMfa,\r\n },\r\n }\r\n );\r\n } else {\r\n this._completeLoginService.completeLogin({\r\n redirectHTML: result.redirectHtml,\r\n userSession: result.userSession\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public SetInvalidEmailAddress() {\r\n this.invalidEmailAddress = this.form.get('emailAddress')!.hasError('email');\r\n }\r\n\r\n private resetErrors(): void {\r\n this.invalidCredentials = false;\r\n this.invalidEmailAddress = false;\r\n }\r\n\r\n private openAccountLockoutDialog(lockedOutUntil: Date): void {\r\n this._accountLockedDialog.open(LoginAccountLockoutComponent, {\r\n data: {\r\n lockedOutUntil: lockedOutUntil\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ConcurrentRequestHandlingService } from '@modules/common/services/concurrent-request-handling.service';\r\nimport { ApiProxyOptions } from '@modules/common/models/api-proxy-options';\r\nimport { GetMFAMethodsArgs } from './get-mfa-methods-args.generated';\r\nimport { GetMFAMethodsResult } from './get-mfa-methods-result.generated';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GetMFAMethodsService {\r\n constructor(private _concurrentRequestHandlingService: ConcurrentRequestHandlingService) { }\r\n\r\n public getMFAMethods(args: GetMFAMethodsArgs, options?: ApiProxyOptions): Observable {\r\n return this._concurrentRequestHandlingService.callApi(\r\n \"GetMFAMethodsService_getMFAMethods\",\r\n {\r\n url: '/Login/GetMFAMethods/GetMFAMethods',\r\n body: typeof args === 'undefined' || args === null ? {} : args,\r\n sendCredentials: false\r\n }, options\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ConcurrentRequestHandlingService } from '@modules/common/services/concurrent-request-handling.service';\r\nimport { ApiProxyOptions } from '@modules/common/models/api-proxy-options';\r\nimport { SendLoginMFACodeArgs } from './send-login-mfa-code-args.generated';\r\nimport { SendLoginMFACodeResult } from './send-login-mfa-code-result.generated';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SendLoginMFACodeService {\r\n constructor(private _concurrentRequestHandlingService: ConcurrentRequestHandlingService) { }\r\n\r\n public sendLoginMFACode(args: SendLoginMFACodeArgs, options?: ApiProxyOptions): Observable {\r\n return this._concurrentRequestHandlingService.callApi(\r\n \"SendLoginMFACodeService_sendLoginMFACode\",\r\n {\r\n url: '/Login/SendLoginMFACode/SendLoginMFACode',\r\n body: typeof args === 'undefined' || args === null ? {} : args,\r\n sendCredentials: false\r\n }, options\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
Verify your Identity
\r\n
As an added level of security, choose how you want to receive a verification code:
\r\n \r\n \r\n Don't require 2 factor authentication next time I log in from this device.\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { GetMFAMethodsService } from '@modules/api/get-mfa-methods.service.generated';\r\nimport { MFADevice } from '@modules/api/mfa-device.generated';\r\nimport { SendLoginMFACodeService } from '@modules/api/send-login-mfa-code.service.generated';\r\nimport { CurrentLoginRequestService } from '@modules/login/services/current-login-request.service';\r\n\r\n@Component({\r\n selector: 'app-login-select-mfa-method',\r\n templateUrl: './login-select-mfa-method.component.html',\r\n styleUrls: ['./login-select-mfa-method.component.scss']\r\n})\r\nexport class LoginSelectMFAMethodComponent implements OnInit {\r\n public form!: FormGroup;\r\n public mfaDevices!: MFADevice[];\r\n public selectedMfaDeviceType!: string;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private getMFAMethodsService: GetMFAMethodsService,\r\n private sendLoginMFACodeService: SendLoginMFACodeService,\r\n private currentLoginRequestService: CurrentLoginRequestService,\r\n private activatedRoute: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit() {\r\n let currentLoginRequest = this.currentLoginRequestService.getCurrentLoginRequest();\r\n\r\n this.getMFAMethodsService.getMFAMethods({\r\n loginRequestId: currentLoginRequest.id,\r\n loginRequestToken: currentLoginRequest.token\r\n }).subscribe(result => {\r\n this.mfaDevices = result.userContactMethods!.devices!;\r\n\r\n this.form = this.formBuilder.group({\r\n 'userContactMethodRadio': ['', Validators.required],\r\n 'rememberDevice': [{ value: '', disabled: result.shouldDisableRememberMeOption }]\r\n });\r\n });\r\n }\r\n\r\n public onSubmit(): void {\r\n if (this.form.valid) {\r\n let currentLoginRequest = this.currentLoginRequestService.getCurrentLoginRequest();\r\n this.sendLoginMFACodeService.sendLoginMFACode({\r\n loginRequestId: currentLoginRequest.id,\r\n loginRequestToken: currentLoginRequest.token,\r\n mfaDeviceType: this.form.get('userContactMethodRadio')!.value,\r\n rememberThisDevice: !!this.form.get('rememberDevice')!.value\r\n }).subscribe(result => {\r\n this.router.navigate(['../EnterMFACode', result.loginMFACodeId], { relativeTo: this.activatedRoute });\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { CanActivate } from \"@angular/router\";\r\nimport { RedirectToLoginService } from \"@modules/common/services/redirect-to-login.service\";\r\nimport { CurrentLoginRequestService } from \"@modules/login/services/current-login-request.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginRequestRouteGuard implements CanActivate {\r\n constructor(\r\n private _currentLoginRequestService: CurrentLoginRequestService,\r\n private _redirectToLoginService: RedirectToLoginService\r\n ) { }\r\n\r\n public canActivate(): boolean {\r\n if (!this._currentLoginRequestService.getCurrentLoginRequest()) {\r\n this._redirectToLoginService.redirectToLogin();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Route } from '@angular/router';\r\nimport { LoginEnterMFACodeComponent } from '@modules/login/components/login-enter-mfa-code/login-enter-mfa-code.component';\r\nimport { LoginLayoutMainComponent } from '@modules/login/components/login-layout-main/login-layout-main.component';\r\nimport { LoginMainComponent } from '@modules/login/components/login-main/login-main.component';\r\nimport { LoginSelectMFAMethodComponent } from '@modules/login/components/login-select-mfa-method/login-select-mfa-method.component';\r\nimport { LoginRequestRouteGuard } from '@modules/login/services/login-request-route-guard';\r\n\r\nexport const LOGIN_ROUTES: Route[] = [\r\n {\r\n path: '',\r\n component: LoginLayoutMainComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: LoginMainComponent\r\n },\r\n {\r\n path: 'SelectMFADevice',\r\n component: LoginSelectMFAMethodComponent,\r\n canActivate: [LoginRequestRouteGuard]\r\n },\r\n {\r\n path: 'EnterMFACode/:loginMFACodeId',\r\n component: LoginEnterMFACodeComponent,\r\n canActivate: [LoginRequestRouteGuard]\r\n },\r\n {\r\n path: 'ResetPassword',\r\n loadChildren: () => import('@modules/login-reset-password/login-reset-password.module').then(x => x.LoginResetPasswordModule)\r\n },\r\n {\r\n path: 'SignUp',\r\n loadChildren: () => import('@modules/login-sign-up/login-sign-up.module').then(x => x.LoginSignUpModule)\r\n },\r\n {\r\n path: 'RecoverEmailAddress',\r\n loadChildren: () => import('@modules/login-recover-email-address/login-recover-email-address.module').then(x => x.LoginRecoverEmailAddressModule)\r\n },\r\n ],\r\n title: 'HRally'\r\n }\r\n];\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { RouterModule } from '@angular/router';\r\nimport { StingrayCommonModule } from '@modules/common/common.module';\r\nimport { LoginSharedModule } from '@modules/login-shared/login-shared.module';\r\nimport { LoginAccountLockoutComponent } from '@modules/login/components/login-account-lockout/login-account-lockout.component';\r\nimport { LoginClientLogoComponent } from '@modules/login/components/login-client-logo/login-client-logo.component';\r\nimport { LoginEnterMFACodeComponent } from '@modules/login/components/login-enter-mfa-code/login-enter-mfa-code.component';\r\nimport { LoginFooterHelpComponent } from '@modules/login/components/login-footer-help/login-footer-help.component';\r\nimport { LoginFooterComponent } from '@modules/login/components/login-footer/login-footer.component';\r\nimport { LoginLayoutMainImgComponent } from '@modules/login/components/login-layout-main-img/login-layout-main-img.component';\r\nimport { LoginLayoutMainTextComponent } from '@modules/login/components/login-layout-main-text/login-layout-main-text.component';\r\nimport { LoginLayoutMainComponent } from '@modules/login/components/login-layout-main/login-layout-main.component';\r\nimport { LoginMainComponent } from '@modules/login/components/login-main/login-main.component';\r\nimport { LoginSelectMFAMethodComponent } from '@modules/login/components/login-select-mfa-method/login-select-mfa-method.component';\r\nimport { LoginThemingComponent } from '@modules/login/components/login-theming/login-theming.component';\r\nimport { LOGIN_ROUTES } from '@modules/login/login.routes';\r\n\r\n@NgModule({\r\n declarations: [\r\n LoginMainComponent,\r\n LoginAccountLockoutComponent,\r\n LoginSelectMFAMethodComponent,\r\n LoginEnterMFACodeComponent,\r\n LoginLayoutMainTextComponent,\r\n LoginLayoutMainImgComponent,\r\n LoginLayoutMainComponent,\r\n LoginFooterComponent,\r\n LoginFooterHelpComponent,\r\n LoginClientLogoComponent,\r\n LoginThemingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n //Start Angular Material\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n MatAutocompleteModule,\r\n MatIconModule,\r\n //End Angular Material\r\n StingrayCommonModule,\r\n RouterModule.forChild(LOGIN_ROUTES),\r\n LoginSharedModule\r\n ]\r\n})\r\nexport class LoginModule {\r\n}\r\n"],"x_google_ignoreList":[]}