@annalib/anna-cognito-lib 47.0.0-final-ng-19 → 49.0.0-final-ng-19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"annalib-anna-cognito-lib.mjs","sources":["../../../projects/anna-cognito-lib/src/lib/config/config-service.token.ts","../../../projects/anna-cognito-lib/src/lib/config/sso-login-service.token.ts","../../../projects/anna-cognito-lib/src/lib/constants/loginConstant.ts","../../../projects/anna-cognito-lib/src/lib/directives/spinner-button/spinner-button.directive.ts","../../../projects/anna-cognito-lib/src/lib/config/auth-service.token.ts","../../../projects/anna-cognito-lib/src/lib/config/acl-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/acl.service.ts","../../../projects/anna-cognito-lib/src/lib/services/auth.service.ts","../../../projects/anna-cognito-lib/src/lib/components/powered-by-logo-template/powered-by-logo-template.component.ts","../../../projects/anna-cognito-lib/src/lib/components/powered-by-logo-template/powered-by-logo-template.component.html","../../../projects/anna-cognito-lib/src/lib/components/surewaves-year-logo/surewaves-year-logo.component.ts","../../../projects/anna-cognito-lib/src/lib/components/surewaves-year-logo/surewaves-year-logo.component.html","../../../projects/anna-cognito-lib/src/lib/components/version-and-term-policy/version-and-term-policy.component.ts","../../../projects/anna-cognito-lib/src/lib/components/version-and-term-policy/version-and-term-policy.component.html","../../../projects/anna-cognito-lib/src/lib/components/anna-login/anna-login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/anna-login/anna-login.component.html","../../../projects/anna-cognito-lib/src/lib/components/catc-login/catc-login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/catc-login/catc-login.component.html","../../../projects/anna-cognito-lib/src/lib/components/sso-login/sso-login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/sso-login/sso-login.component.html","../../../projects/anna-cognito-lib/src/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.ts","../../../projects/anna-cognito-lib/src/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.html","../../../projects/anna-cognito-lib/src/lib/models/auth.model.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.ts","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.html","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/services/config.service.ts","../../../projects/anna-cognito-lib/src/lib/services/sso-login.service.ts","../../../projects/anna-cognito-lib/src/public-api.ts","../../../projects/anna-cognito-lib/src/annalib-anna-cognito-lib.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\n/** Token to inject the auth service */\nexport const CONFIG_SERVICE_TOKEN: InjectionToken<IConfigService> = new InjectionToken<IConfigService>(\n \"Cognito config service token\",\n);\n\nexport interface IConfigService {\n appGenericConfig: {\n loginPageLogoImgUrl: string;\n cognito: {\n userPoolId: string;\n clientId: string;\n };\n currentAnnaVersion: string;\n };\n isCatcApplication?:boolean;\n}\n","import { InjectionToken } from \"@angular/core\";\n\n/** Token to inject the auth service */\nexport const SSO_LOGIN_SERVICE_TOKEN: InjectionToken<ISSOLoginService> = new InjectionToken<ISSOLoginService>(\n \"Cognito sso login service token\",\n);\n\nexport interface ISSOLoginService {\n defaultLoginPageUrl: \"co-pilot-login\" | \"login\";\n isSsoIntegrated: boolean;\n // ogDetails: { OgName: string; OgId: number; OgLogoUrl: string; IsSsoIntegrated: boolean; };\n loggedInViaSso: boolean;\n isUserInvitedAndCanAccessANNA: boolean;\n userNameText: string;\n}\n","export class LoginConstant {\n // Login page\n static readonly enterUsername = \"Enter your username\";\n static readonly enterUserCode = \"Enter your usercode\";\n static readonly enterEmail = \"Enter your email\";\n static readonly password = \"Password\";\n static readonly confirmPassword = \"Confirm Password\";\n static readonly login = \"Login\";\n static readonly otp = \"OTP\";\n static readonly forgotPassword = `Forgot ${LoginConstant.password.toLowerCase()}?`;\n\n // set new password\n static readonly setNewPasswordHeading = `Set new ${LoginConstant.password.toLowerCase()}`;\n static readonly setNewPasswordButton = `Set and ${LoginConstant.login.toLowerCase()} again`;\n static readonly passwordMustContain = \"The password must contain:\";\n static readonly minimumCharacter = \"Minimum 8 characters\";\n static readonly oneUppercase = \"1 Uppercase\";\n static readonly oneLowercase = \"1 Lowercase\";\n static readonly oneNumber = \"1 Numerical\";\n static readonly specialCharacter = \"1 Special character\";\n static readonly passwordNotMatching = \"The passwords do not match. Please try again.\";\n static readonly userNamePasswordIncorrect = \"Incorrect username or password\";\n static readonly userCodePasswordIncorrect = \"Incorrect usercode or password\";\n static readonly userNotFound = \"No registered user found\";\n static readonly loginAgain = `${LoginConstant.login} again`;\n static readonly firstTimeLoginUserTempPasswordMsg =\n // eslint-disable-next-line max-len\n \"You are logging in for the first time. Kindly use the temporary password provided in the welcome email, to login to your account. \";\n static readonly tempPasswordExpiryError = \"Temporary password has expired and must be reset by an administrator.\";\n static readonly tempPasswordOnExpiryErrorMsg =\n // eslint-disable-next-line max-len\n \"Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.\";\n\n // verify OTP & set new password\n static readonly verifyAndSetNewPasswordheading = `Enter ${LoginConstant.otp} & set new password`;\n static readonly verifyAndSetNewPasswordMessage = `An ${LoginConstant.otp} has been succesfully emailed to `;\n static readonly pleaseEnterItBelow = \". Please enter it below.\";\n static readonly regenerateOtp = `Regenerate ${LoginConstant.otp}`;\n static readonly enterOtp = `Enter ${LoginConstant.otp}`;\n static readonly submit = \"Submit\";\n static readonly attempt = \"Attempt\";\n static readonly attemptLimitExceeded =\n \"You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.\";\n static readonly attemptMessage = \" of 5. The OTP entered is incorrect. Please try again with the right one.\";\n static readonly sessionExpired = \"The session has expired. Please try again.\";\n static readonly sessionExpiredError = \"Your session has expired. Please login again\";\n\n // forgot password\n static readonly forgotPasswordHeading = \"Forgot your password?\";\n static readonly PleaseEnterYourUsernameMessage = \"Please enter your username.\";\n static readonly PleaseEnterYourUsercodeMessage = \"Please enter your usercode.\";\n static readonly PleaseEnterYourEmailMessage = \"Please enter your email address below.\";\n static readonly forgotPasswordButton = `Get ${LoginConstant.otp}`;\n static readonly apiFailErrorMessage = \"Unable to connect to server right now. Please try after some time.\";\n\n // url\n static readonly setNewPasswordUrl = \"/set-new-password\";\n static readonly forgortPasswordPageUrl = \"/forgot-password\";\n static readonly verifyAndSetNewPasswordUrl = \"/verify-and-set-new-password\";\n static readonly loginPageUrl = \"/login\";\n static readonly coPilotloginPageUrl = \"/co-pilot-login\";\n static readonly welcomeScrreenUrl = \"/welcome-screen\";\n static readonly homePageUrl = \"/dashboard\";\n static readonly stationSettingUrl = \"/station-settings\";\n}\n","import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from \"@angular/core\";\n\n@Directive({\n selector: \"[annaCognitoSpinnerBtn]\",\n standalone: true,\n})\nexport class SpinnerButtonDirective implements OnChanges {\n @Input() spinnerButtonLoading: boolean;\n @Input() spinnerButtonText: string;\n child: HTMLDivElement;\n button: any;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {\n this.button = this.el.nativeElement;\n this.child = document.createElement(\"div\");\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.spinnerButtonText && changes.spinnerButtonText.currentValue) {\n this.button.innerHTML = this.spinnerButtonText;\n }\n if (changes.spinnerButtonLoading && changes.spinnerButtonLoading.currentValue) {\n this.button.innerHTML = \"\";\n this.button.setAttribute(\"disabled\", \"true\");\n this.child.classList.add(\"spinner-for-button-directive\");\n this.renderer.appendChild(this.button, this.child);\n } else {\n this.child.classList.remove(\"spinner-for-button-directive\");\n this.button.removeAttribute(\"disabled\");\n this.button.innerHTML = this.spinnerButtonText;\n }\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { Observable } from \"rxjs\";\n\n/** Token to inject the auth service */\nexport const AUTH_SERVICE_TOKEN: InjectionToken<IAuthService> = new InjectionToken<IAuthService>(\"Auth service token\");\n\nexport interface IAuthService {\n isLoggingIn: boolean;\n userName: any;\n accessToken: string;\n IdToken: any;\n defaultLoginPageUrl: \"co-pilot-login\" | \"login\";\n onSuccessfulAuthenticatingUser(loggedInViaSso: boolean): void;\n getAllCognitoTokenAndGroups(tokens: any): void;\n isUsernameAvailable(username: string): Observable<any>;\n isEmailAvailable(emailId: string, ogId: number): Observable<any>;\n getUserState(username: string): Observable<any>;\n navigateBasedOnUserRole(loginUserData: any): void;\n getPublicIp(): string;\n sendRegenerationEmail(userCode: string): void;\n onPasswordUpdate(userName: string): void;\n newPasswordSetThenUpdateToBackend(userCode: string): void;\n signInWithSSO(): void;\n}\n","import { InjectionToken } from \"@angular/core\";\n\n/** Token to inject the acl service */\nexport const ACL_SERVICE_TOKEN: InjectionToken<IAclService> = new InjectionToken<IAclService>(\"ACL service token\");\n\nexport interface IAclService {\n urlToCognitoPrivilegeMap: { [key: string]: string };\n MANAGE_USERS_WRITE: string;\n ORDER_BIZ_RULES_WRITE: string;\n ORDER_REVISIONS_WRITE: string;\n ORDER_SPOTS_REPORT_WRITE: string;\n POLITICAL_WINDOW_WRITE: string;\n DASHBOARD_DAILY_REVISIONS_READ: string;\n ENTER_EDIT_TARGET_LUR_WRITE: string;\n ENTER_EDIT_TARGET_CSR_WRITE: string;\n MANAGE_ROLES_WRITE: string;\n ACTIVE_STATION_USER_READ: string;\n GLOBAL_WRITE: string;\n USER_AWAITING_ACTIVATION_WRITE: string;\n POSTING___UD_TRACKER_READ: string;\n DAILY_REVISION_ONGOING_AND_DAILY_COMPLETED_READ: string;\n USER_MANAGEMENT_READ: string;\n USER_MANAGEMENT_WRITE: string;\n STATION_BUSINESS_RULE_WRITE: string;\n ADVERTISER_BUSINESS_RULE_WRITE: string;\n EC_LISTING_READ: string;\n EC_LISTING_WRITE: string;\n ORDER_DISCREPANCIES: string;\n REVISION_CYCLE_SETTINGS_READ: string;\n REVISION_CYCLE_SETTINGS_WRITE: string;\n AUDIENCE_ESTIMATES_CONFIG_READ: string;\n AUDIENCE_ESTIMATES_CONFIG_WRITE: string;\n RATE_CONFIG_WRITE: string;\n RATE_CONFIG_READ: string;\n HOLIDAY_LIST_READ: string;\n HOLIDAY_LIST_WRITE: string;\n WRITE_ENABLED_ORDERS_READ: string;\n WRITE_ENABLED_ORDERS_WRITE: string;\n SECTION_RATE_CARD_READ: string;\n SECTION_RATE_CARD_WRITE: string;\n AUDIENCE_ESTIMATES_READ: string;\n UPLOAD_CSR_READ: string;\n UPLOAD_CSR_WRITE: string;\n PROGRAM_SCHEDULE_READ: string;\n ORDER_ENTRY_TRACKER_READ: string;\n ORDER_ENTRY_TRACKER_WRITE: string;\n HIATUS_TRACKER_READ: string;\n HIATUS_TRACKER_WRITE: string;\n OFFER_TRACKER_READ: string;\n OFFER_TRACKER_WRITE: string;\n REVISION_ORCHESTRATION_READ: string;\n REVISION_ORCHESTRATION_WRITE: string;\n POLITICAL_RATE_CARD_READ: string;\n POLITICAL_RATE_CARD_WRITE: string;\n PROGRAM_CHANGES_WRITE: string;\n PROGRAM_CHANGES_READ: string;\n LATE_RUN_WRITE: string;\n GUIDANCE_RATES_READ: string;\n GUIDANCE_RATES_WRITE: string;\n RATE_CONTROL_RULES_WRITE: string;\n RATE_CONTROL_RULES_READ: string;\n ADVERTISER_SEGMENTATION_READ: string;\n ADVERTISER_SEGMENTATION_WRITE: string;\n}\n","import { Inject, Injectable, Optional } from \"@angular/core\";\n\nimport { ACL_SERVICE_TOKEN, IAclService } from \"../config/acl-service.token\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaLibAclService {\n constructor(@Optional() @Inject(ACL_SERVICE_TOKEN) public consumingProjectAclService: IAclService) {}\n\n userGroupsInCognitoJWT: string[];\n isUserAuthorisedToAccessPage(url: string): boolean {\n const privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];\n return this.userGroupsInCognitoJWT.includes(privilegeName);\n }\n\n isUserAuthorisedToAccessElement(privilege: string): boolean {\n return this.userGroupsInCognitoJWT.includes(privilege);\n }\n}\n","// Angular import statements\nimport { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable, Optional } from \"@angular/core\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { Router } from \"@angular/router\";\n// Third party import statements\nimport {\n AuthTokens,\n confirmResetPassword,\n confirmSignIn,\n fetchAuthSession,\n getCurrentUser,\n resetPassword,\n signIn,\n SignInInput,\n signOut,\n} from \"aws-amplify/auth\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { catchError, interval, of, Subscription, switchMap } from \"rxjs\";\n\n// User defined import statements\nimport { AUTH_SERVICE_TOKEN, IAuthService } from \"../config/auth-service.token\";\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../config/sso-login-service.token\";\nimport { LoginConstant } from \"../constants/loginConstant\";\nimport { AnnaLibAclService } from \"./acl.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaLibAuthService {\n loginErrorMessage: string | null;\n setNewPasswordErrorMessage: string;\n setNewPasswordButtonMessage: string;\n verifyAndSetNewPasswordErrorMessage: string;\n verifyAndSetNewPasswordMessage: string;\n verifyAndSetNewPasswordButton: string;\n noOfAttempts = 0;\n sessionLocked = false;\n // accessTokenTimerId: any;\n forgotPasswordAndGlobalSignoutLoader: boolean;\n accessTokenTimerSubscription: Subscription;\n\n constructor(\n private router: Router,\n public aclService: AnnaLibAclService,\n public httpClient: HttpClient,\n private toastr: ToastrService,\n @Optional() @Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService,\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService,\n ) {\n if (!consumingProjectAuthService) {\n throw new Error(\"You must provide a authService\");\n }\n }\n\n async isUserLoggedIn(): Promise<boolean> {\n try {\n // await getCurrentUser();\n // eslint-disable-next-line @typescript-eslint/return-await, no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n const session: any = await fetchAuthSession();\n if (session?.tokens) {\n this.consumingProjectAuthService.IdToken = session?.tokens.idToken.toString();\n this.consumingProjectAuthService.getAllCognitoTokenAndGroups(session.tokens);\n resolve(true);\n } else {\n this.toastr.error(LoginConstant.sessionExpiredError);\n this.handleSignOut();\n resolve(false);\n }\n });\n } catch (error) {\n return new Promise((resolve) => {\n // clearInterval(this.accessTokenTimerId);\n this.accessTokenTimerSubscription?.unsubscribe();\n resolve(false);\n });\n }\n }\n\n sessionTimeout() {\n localStorage.clear();\n // clearInterval(this.accessTokenTimerId);\n this.accessTokenTimerSubscription?.unsubscribe();\n\n let afterLogoutRedirectTo: string;\n if (this.consumingProjectSSOLoginService) {\n if (\n this.consumingProjectSSOLoginService?.isSsoIntegrated &&\n !this.consumingProjectSSOLoginService.loggedInViaSso\n ) {\n afterLogoutRedirectTo = LoginConstant.coPilotloginPageUrl;\n } else {\n afterLogoutRedirectTo = LoginConstant.loginPageUrl;\n }\n } else {\n afterLogoutRedirectTo = LoginConstant.loginPageUrl;\n }\n this.router.navigate([afterLogoutRedirectTo]);\n }\n\n computeTokenExpiration(idToken: any) {\n const refreshTokenInAdvanceSec = 3000;\n\n const currentTime = Math.floor(Date.now() / 1000);\n const tokenExpTime = idToken.payload.exp;\n let expTime = (tokenExpTime - currentTime) * 1000;\n expTime = Math.abs(expTime);\n expTime -= refreshTokenInAdvanceSec;\n expTime = Math.abs(expTime);\n\n return expTime;\n }\n\n // computeTokenExpiration(idToken: any) {\n // const currentTime = Math.floor(Date.now() / 1000);\n // const tokenTime = idToken.payload.exp;\n // const expTime = (tokenTime - currentTime) * 1000;\n // return expTime;\n // }\n\n async handleSignIn({ username, password }: SignInInput) {\n try {\n const session = await fetchAuthSession();\n if (session?.tokens) {\n await this.handleSignOut();\n }\n const { nextStep } = await signIn({ username, password });\n switch (nextStep?.signInStep) {\n case \"DONE\": {\n const authSession = await fetchAuthSession();\n this.onLoginOrSetNewPassword(authSession);\n await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(false);\n this.consumingProjectAuthService.getAllCognitoTokenAndGroups(authSession.tokens);\n this.refreshAccessToken();\n break;\n }\n case \"CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED\":\n this.consumingProjectAuthService.isLoggingIn = false;\n this.consumingProjectAuthService.userName = username;\n this.router.navigate([LoginConstant.setNewPasswordUrl]);\n this.setNewPasswordErrorMessage = null;\n break;\n\n case \"RESET_PASSWORD\":\n break;\n\n // no default\n }\n } catch (error: any) {\n this.consumingProjectAuthService.isLoggingIn = false;\n if (error?.message === LoginConstant.tempPasswordExpiryError) {\n this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;\n this.consumingProjectAuthService.sendRegenerationEmail(username);\n } else if (error?.message === \"Password attempts exceeded\") {\n this.loginErrorMessage = LoginConstant.attemptLimitExceeded;\n } else {\n this.loginErrorMessage = this.consumingProjectSSOLoginService?.isSsoIntegrated\n ? LoginConstant.userCodePasswordIncorrect\n : LoginConstant.userNamePasswordIncorrect;\n }\n }\n }\n\n onLoginOrSetNewPassword(session: any) {\n const newExpTime = this.computeTokenExpiration(session.tokens.idToken);\n this.consumingProjectAuthService.accessToken = session.tokens.accessToken.toString();\n this.consumingProjectAuthService.IdToken = session.tokens.idToken.toString();\n localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\n this.refreshAccessToken();\n this.loginErrorMessage = null;\n }\n\n setAccessAndIDTokens(token: AuthTokens) {\n this.consumingProjectAuthService.accessToken = token?.accessToken?.toString();\n this.consumingProjectAuthService.IdToken = token?.idToken;\n }\n\n async getAllCognitoTokenAndGroups(token: AuthTokens) {\n this.setAccessAndIDTokens(token);\n if (\"cognito:groups\" in token.accessToken.payload) {\n const userGroupsInCognitoJWT: any = token.accessToken.payload[\"cognito:groups\"];\n this.aclService.userGroupsInCognitoJWT = userGroupsInCognitoJWT;\n } else {\n this.aclService.userGroupsInCognitoJWT = [];\n }\n }\n\n // refreshAccessToken() {\n // const accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\n // let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration, 10) : 0;\n // this.accessTokenTimerId = setInterval(() => {\n // let counter = 1000;\n // const delayFunction = setTimeout(async () => {\n // try {\n // const session = await fetchAuthSession();\n // const token = session.tokens;\n // if (token) {\n // this.consumingProjectAuthService.getAllCognitoTokenAndGroups(token);\n // let newExpTime = this.computeTokenExpiration(this.consumingProjectAuthService.IdToken);\n\n // if (newExpTime <= 0) {\n // newExpTime = 1000;\n // counter = 0;\n // if (delayFunction) {\n // clearInterval(delayFunction);\n // }\n // }\n // expTime = newExpTime;\n // localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\n // clearInterval(this.accessTokenTimerId);\n // this.refreshAccessToken();\n // } else {\n // this.toastr.error(LoginConstant.sessionExpiredError);\n // this.handleSignOut();\n // }\n // } catch (error) {\n // this.toastr.error(LoginConstant.sessionExpiredError);\n // this.handleSignOut();\n // }\n // }, counter);\n // }, expTime);\n // }\n\n refreshAccessToken() {\n const accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\n let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration, 10) : 0;\n\n // Clean up any existing subscription\n if (this.accessTokenTimerSubscription) {\n this.accessTokenTimerSubscription.unsubscribe();\n }\n\n // Create an observable that emits at the expiration time interval\n this.accessTokenTimerSubscription = interval(expTime)\n .pipe(\n switchMap(async () => {\n try {\n const session = await fetchAuthSession({ forceRefresh: true });\n const token = session.tokens;\n\n if (!token) {\n throw new Error(LoginConstant.sessionExpiredError);\n } else {\n this.consumingProjectAuthService.getAllCognitoTokenAndGroups(token);\n expTime = this.computeTokenExpiration(this.consumingProjectAuthService.IdToken);\n localStorage.setItem(\"accessTokenExpiration\", expTime.toString());\n return true;\n }\n } catch (error) {\n this.toastr.error(LoginConstant.sessionExpiredError);\n this.handleSignOut();\n throw error;\n }\n }),\n catchError((error: any) => {\n this.toastr.error(LoginConstant.sessionExpiredError);\n this.handleSignOut();\n return of(false);\n }),\n )\n .subscribe((success) => {\n if (success) {\n // Restart the timer with the new expiration time\n\n this.refreshAccessToken();\n }\n });\n }\n\n async changePassword(newPassword: string) {\n try {\n const inputParam = {\n challengeResponse: newPassword,\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const data = await confirmSignIn(inputParam);\n const { username } = await getCurrentUser();\n const session = await fetchAuthSession();\n this.onLoginOrSetNewPassword(session);\n this.consumingProjectAuthService.onPasswordUpdate(username);\n this.router.navigate([LoginConstant.loginPageUrl]);\n this.consumingProjectAuthService.newPasswordSetThenUpdateToBackend(username);\n } catch (err) {\n this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;\n this.setNewPasswordButtonMessage = LoginConstant.loginAgain;\n }\n }\n\n async onForgotPasswordGenerateOTP(email: string) {\n const username = email;\n this.consumingProjectAuthService.userName = email;\n try {\n const result: any = await resetPassword({ username });\n this.verifyAndSetNewPasswordMessage =\n LoginConstant.verifyAndSetNewPasswordMessage +\n (result?.nextStep?.codeDeliveryDetails?.destination ?? \"\") +\n LoginConstant.pleaseEnterItBelow;\n this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);\n } catch (err) {\n // do nothing\n }\n }\n\n async verifyCode(confirmationCode: string, newPassword: string) {\n try {\n confirmResetPassword({\n username: this.consumingProjectAuthService.userName,\n newPassword,\n confirmationCode,\n }).then(\n (response) => {\n this.expiryAllExistingCurrentSession(this.consumingProjectAuthService.userName, newPassword);\n },\n (err) => {\n this.noOfAttempts += 1;\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);\n },\n );\n } catch (err) {\n this.noOfAttempts += 1;\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);\n } finally {\n this.forgotPasswordAndGlobalSignoutLoader = false;\n }\n }\n\n forgotPasswordError(err: any, noOfAttempts: number) {\n let errorMessage = \"\";\n const errorThrown = JSON.stringify(err);\n if (errorThrown.includes(\"LimitExceededException\")) {\n this.sessionLocked = true;\n errorMessage = LoginConstant.attemptLimitExceeded;\n } else if (errorThrown.includes(\"ExpiredCodeException\")) {\n errorMessage = LoginConstant.sessionExpired;\n this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;\n } else {\n errorMessage = `${LoginConstant.attempt} ${noOfAttempts}${LoginConstant.attemptMessage}`;\n }\n return errorMessage;\n }\n\n async signInWithSSO() {\n const session = await fetchAuthSession();\n if (session?.tokens) {\n await this.handleSignOut().then((response) => {\n this.consumingProjectAuthService.signInWithSSO();\n });\n } else {\n this.consumingProjectAuthService.signInWithSSO();\n }\n }\n\n async handleSignOut() {\n try {\n await signOut({ global: false });\n await this.sessionTimeout();\n } catch (error) {\n // do nothing\n }\n }\n\n expiryAllExistingCurrentSession(username: string, newPassword: string) {\n this.loginErrorMessage = null;\n this.onLoginInCogntioToGetAccessToken(username, newPassword);\n }\n\n async onLoginInCogntioToGetAccessToken(username: string, password: string) {\n try {\n const { nextStep } = await signIn({ username, password });\n switch (nextStep?.signInStep) {\n case \"DONE\":\n this.setAccessAndIDTokens(await (await fetchAuthSession()).tokens);\n this.consumingProjectAuthService.onPasswordUpdate(this.consumingProjectAuthService.userName);\n this.onCallGlobalSignout();\n break;\n // no default\n }\n } catch (error: any) {\n this.noOfAttempts += 1;\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);\n }\n }\n\n async onCallGlobalSignout() {\n try {\n await signOut({ global: true });\n this.forgotPasswordAndGlobalSignoutLoader = false;\n this.router.navigate([LoginConstant.loginPageUrl]);\n } catch (error) {\n // do nothing\n }\n }\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component } from \"@angular/core\";\n\n@Component({\n selector: \"anna-cognito-lib-powered-by-logo-template\",\n templateUrl: \"./powered-by-logo-template.component.html\",\n styleUrls: [\"./powered-by-logo-template.component.scss\"],\n imports: [NgTemplateOutlet]\n})\nexport class PoweredByLogoTemplateComponent {}\n","<ng-container [ngTemplateOutlet]=\"poweredBySurewavesLogo\"> </ng-container>\n\n<ng-template #poweredBySurewavesLogo>\n <svg\n width=\"230px\"\n height=\"69px\"\n viewBox=\"0 0 230 69\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <defs>\n <path\n d=\"M2.576,1.064 C3.93866667,1.064 4.98633333,1.323 5.719,1.841 C6.45166667,2.359 6.818,3.13133333 6.818,4.158 C6.818,4.718 6.71766667,5.19633333 6.517,5.593 C6.31633333,5.98966667 6.027,6.31166667 5.649,6.559 C5.271,6.80633333 4.81133333,6.986 4.27,7.098 C3.72866667,7.21 3.11733333,7.266 2.436,7.266 L1.358,7.266 L1.358,10.864 L0,10.864 L0,1.302 C0.382666667,1.20866667 0.809666667,1.14566667 1.281,1.113 C1.75233333,1.08033333 2.184,1.064 2.576,1.064 Z M2.688,2.254 C2.10933333,2.254 1.666,2.268 1.358,2.296 L1.358,6.104 L2.38,6.104 C2.84666667,6.104 3.26666667,6.07366667 3.64,6.013 C4.01333333,5.95233333 4.32833333,5.84966667 4.585,5.705 C4.84166667,5.56033333 5.04,5.362 5.18,5.11 C5.32,4.858 5.39,4.536 5.39,4.144 C5.39,3.77066667 5.31766667,3.46266667 5.173,3.22 C5.02833333,2.97733333 4.83233333,2.78366667 4.585,2.639 C4.33766667,2.49433333 4.05066667,2.394 3.724,2.338 C3.39733333,2.282 3.052,2.254 2.688,2.254 Z\"\n id=\"path-1\"\n ></path>\n <path\n d=\"M14.56,7.224 C14.56,7.80266667 14.476,8.32533333 14.308,8.792 C14.14,9.25866667 13.9043333,9.66 13.601,9.996 C13.2976667,10.332 12.936,10.591 12.516,10.773 C12.096,10.955 11.6386667,11.046 11.144,11.046 C10.6493333,11.046 10.192,10.955 9.772,10.773 C9.352,10.591 8.99033333,10.332 8.687,9.996 C8.38366667,9.66 8.148,9.25866667 7.98,8.792 C7.812,8.32533333 7.728,7.80266667 7.728,7.224 C7.728,6.65466667 7.812,6.13433333 7.98,5.663 C8.148,5.19166667 8.38366667,4.788 8.687,4.452 C8.99033333,4.116 9.352,3.857 9.772,3.675 C10.192,3.493 10.6493333,3.402 11.144,3.402 C11.6386667,3.402 12.096,3.493 12.516,3.675 C12.936,3.857 13.2976667,4.116 13.601,4.452 C13.9043333,4.788 14.14,5.19166667 14.308,5.663 C14.476,6.13433333 14.56,6.65466667 14.56,7.224 Z M13.202,7.224 C13.202,6.40266667 13.0176667,5.75166667 12.649,5.271 C12.2803333,4.79033333 11.7786667,4.55 11.144,4.55 C10.5093333,4.55 10.0076667,4.79033333 9.639,5.271 C9.27033333,5.75166667 9.086,6.40266667 9.086,7.224 C9.086,8.04533333 9.27033333,8.69633333 9.639,9.177 C10.0076667,9.65766667 10.5093333,9.898 11.144,9.898 C11.7786667,9.898 12.2803333,9.65766667 12.649,9.177 C13.0176667,8.69633333 13.202,8.04533333 13.202,7.224 Z\"\n id=\"path-2\"\n ></path>\n <path\n d=\"M22.162,10.864 C21.9006667,10.192 21.623,9.42433333 21.329,8.561 C21.035,7.69766667 20.7666667,6.79933333 20.524,5.866 C20.2813333,6.79933333 20.0153333,7.69766667 19.726,8.561 C19.4366667,9.42433333 19.1613333,10.192 18.9,10.864 L17.766,10.864 C17.3366667,9.90266667 16.9166667,8.806 16.506,7.574 C16.0953333,6.342 15.708,5.012 15.344,3.584 L16.744,3.584 C16.8373333,4.02266667 16.9493333,4.49866667 17.08,5.012 C17.2106667,5.52533333 17.3483333,6.03866667 17.493,6.552 C17.6376667,7.06533333 17.7893333,7.56 17.948,8.036 C18.1066667,8.512 18.256,8.92733333 18.396,9.282 C18.5546667,8.84333333 18.711,8.379 18.865,7.889 C19.019,7.399 19.166,6.90433333 19.306,6.405 C19.446,5.90566667 19.579,5.41566667 19.705,4.935 C19.831,4.45433333 19.9406667,4.004 20.034,3.584 L21.112,3.584 C21.196,4.004 21.2986667,4.45433333 21.42,4.935 C21.5413333,5.41566667 21.672,5.90566667 21.812,6.405 C21.952,6.90433333 22.099,7.399 22.253,7.889 C22.407,8.379 22.5633333,8.84333333 22.722,9.282 C22.862,8.92733333 23.009,8.512 23.163,8.036 C23.317,7.56 23.4686667,7.06533333 23.618,6.552 C23.7673333,6.03866667 23.9073333,5.52533333 24.038,5.012 C24.1686667,4.49866667 24.2806667,4.02266667 24.374,3.584 L25.718,3.584 C25.354,5.012 24.9666667,6.342 24.556,7.574 C24.1453333,8.806 23.7253333,9.90266667 23.296,10.864 L22.162,10.864 Z\"\n id=\"path-3\"\n ></path>\n <path\n d=\"M26.684,7.238 C26.684,6.594 26.7773333,6.03166667 26.964,5.551 C27.1506667,5.07033333 27.398,4.67133333 27.706,4.354 C28.014,4.03666667 28.3686667,3.79866667 28.77,3.64 C29.1713333,3.48133333 29.582,3.402 30.002,3.402 C30.982,3.402 31.7333333,3.70766667 32.256,4.319 C32.7786667,4.93033333 33.04,5.86133333 33.04,7.112 C33.04,7.168 33.04,7.24033333 33.04,7.329 C33.04,7.41766667 33.0353333,7.49933333 33.026,7.574 L28.042,7.574 C28.098,8.33 28.3173333,8.904 28.7,9.296 C29.0826667,9.688 29.68,9.884 30.492,9.884 C30.9493333,9.884 31.3343333,9.84433333 31.647,9.765 C31.9596667,9.68566667 32.1953333,9.60866667 32.354,9.534 L32.536,10.626 C32.3773333,10.71 32.0996667,10.7986667 31.703,10.892 C31.3063333,10.9853333 30.856,11.032 30.352,11.032 C29.7173333,11.032 29.169,10.9363333 28.707,10.745 C28.245,10.5536667 27.8646667,10.29 27.566,9.954 C27.2673333,9.618 27.0456667,9.219 26.901,8.757 C26.7563333,8.295 26.684,7.78866667 26.684,7.238 Z M31.682,6.524 C31.6913333,5.936 31.5443333,5.453 31.241,5.075 C30.9376667,4.697 30.52,4.508 29.988,4.508 C29.6893333,4.508 29.4256667,4.56633333 29.197,4.683 C28.9683333,4.79966667 28.7746667,4.95133333 28.616,5.138 C28.4573333,5.32466667 28.3336667,5.53933333 28.245,5.782 C28.1563333,6.02466667 28.098,6.272 28.07,6.524 L31.682,6.524 Z\"\n id=\"path-4\"\n ></path>\n <path\n d=\"M37.604,3.43 C37.716,3.43 37.8443333,3.437 37.989,3.451 C38.1336667,3.465 38.276,3.48366667 38.416,3.507 C38.556,3.53033333 38.6843333,3.55366667 38.801,3.577 C38.9176667,3.60033333 39.004,3.62133333 39.06,3.64 L38.836,4.774 C38.7333333,4.73666667 38.563,4.69233333 38.325,4.641 C38.087,4.58966667 37.7813333,4.564 37.408,4.564 C37.1653333,4.564 36.925,4.58966667 36.687,4.641 C36.449,4.69233333 36.2926667,4.72733333 36.218,4.746 L36.218,10.864 L34.916,10.864 L34.916,3.892 C35.224,3.78 35.6066667,3.675 36.064,3.577 C36.5213333,3.479 37.0346667,3.43 37.604,3.43 Z\"\n id=\"path-5\"\n ></path>\n <path\n d=\"M39.914,7.238 C39.914,6.594 40.0073333,6.03166667 40.194,5.551 C40.3806667,5.07033333 40.628,4.67133333 40.936,4.354 C41.244,4.03666667 41.5986667,3.79866667 42,3.64 C42.4013333,3.48133333 42.812,3.402 43.232,3.402 C44.212,3.402 44.9633333,3.70766667 45.486,4.319 C46.0086667,4.93033333 46.27,5.86133333 46.27,7.112 C46.27,7.168 46.27,7.24033333 46.27,7.329 C46.27,7.41766667 46.2653333,7.49933333 46.256,7.574 L41.272,7.574 C41.328,8.33 41.5473333,8.904 41.93,9.296 C42.3126667,9.688 42.91,9.884 43.722,9.884 C44.1793333,9.884 44.5643333,9.84433333 44.877,9.765 C45.1896667,9.68566667 45.4253333,9.60866667 45.584,9.534 L45.766,10.626 C45.6073333,10.71 45.3296667,10.7986667 44.933,10.892 C44.5363333,10.9853333 44.086,11.032 43.582,11.032 C42.9473333,11.032 42.399,10.9363333 41.937,10.745 C41.475,10.5536667 41.0946667,10.29 40.796,9.954 C40.4973333,9.618 40.2756667,9.219 40.131,8.757 C39.9863333,8.295 39.914,7.78866667 39.914,7.238 Z M44.912,6.524 C44.9213333,5.936 44.7743333,5.453 44.471,5.075 C44.1676667,4.697 43.75,4.508 43.218,4.508 C42.9193333,4.508 42.6556667,4.56633333 42.427,4.683 C42.1983333,4.79966667 42.0046667,4.95133333 41.846,5.138 C41.6873333,5.32466667 41.5636667,5.53933333 41.475,5.782 C41.3863333,6.02466667 41.328,6.272 41.3,6.524 L44.912,6.524 Z\"\n id=\"path-6\"\n ></path>\n <path\n d=\"M52.85,5.124 C52.6913333,4.99333333 52.4626667,4.86733333 52.164,4.746 C51.8653333,4.62466667 51.5386667,4.564 51.184,4.564 C50.8106667,4.564 50.491,4.63166667 50.225,4.767 C49.959,4.90233333 49.742,5.089 49.574,5.327 C49.406,5.565 49.2846667,5.84733333 49.21,6.174 C49.1353333,6.50066667 49.098,6.85066667 49.098,7.224 C49.098,8.07333333 49.308,8.729 49.728,9.191 C50.148,9.653 50.708,9.884 51.408,9.884 C51.7626667,9.884 52.059,9.86766667 52.297,9.835 C52.535,9.80233333 52.7193333,9.76733333 52.85,9.73 L52.85,5.124 Z M52.85,0.224 L54.152,0 L54.152,10.654 C53.8533333,10.738 53.4706667,10.822 53.004,10.906 C52.5373333,10.99 52.0006667,11.032 51.394,11.032 C50.834,11.032 50.33,10.9433333 49.882,10.766 C49.434,10.5886667 49.0513333,10.3366667 48.734,10.01 C48.4166667,9.68333333 48.1716667,9.28433333 47.999,8.813 C47.8263333,8.34166667 47.74,7.812 47.74,7.224 C47.74,6.664 47.8123333,6.15066667 47.957,5.684 C48.1016667,5.21733333 48.314,4.816 48.594,4.48 C48.874,4.144 49.217,3.88266667 49.623,3.696 C50.029,3.50933333 50.4933333,3.416 51.016,3.416 C51.436,3.416 51.807,3.472 52.129,3.584 C52.451,3.696 52.6913333,3.80333333 52.85,3.906 L52.85,0.224 Z\"\n id=\"path-7\"\n ></path>\n <path\n d=\"M60.928,3.906 C61.0866667,3.80333333 61.327,3.696 61.649,3.584 C61.971,3.472 62.342,3.416 62.762,3.416 C63.2846667,3.416 63.749,3.50933333 64.155,3.696 C64.561,3.88266667 64.904,4.144 65.184,4.48 C65.464,4.816 65.6763333,5.21733333 65.821,5.684 C65.9656667,6.15066667 66.038,6.664 66.038,7.224 C66.038,7.812 65.9516667,8.34166667 65.779,8.813 C65.6063333,9.28433333 65.3613333,9.68333333 65.044,10.01 C64.7266667,10.3366667 64.344,10.5886667 63.896,10.766 C63.448,10.9433333 62.944,11.032 62.384,11.032 C61.7773333,11.032 61.2406667,10.99 60.774,10.906 C60.3073333,10.822 59.9246667,10.738 59.626,10.654 L59.626,0.224 L60.928,0 L60.928,3.906 Z M60.928,9.73 C61.0586667,9.76733333 61.243,9.80233333 61.481,9.835 C61.719,9.86766667 62.0153333,9.884 62.37,9.884 C63.07,9.884 63.63,9.653 64.05,9.191 C64.47,8.729 64.68,8.07333333 64.68,7.224 C64.68,6.85066667 64.6426667,6.50066667 64.568,6.174 C64.4933333,5.84733333 64.372,5.565 64.204,5.327 C64.036,5.089 63.819,4.90233333 63.553,4.767 C63.287,4.63166667 62.9673333,4.564 62.594,4.564 C62.2393333,4.564 61.9126667,4.62466667 61.614,4.746 C61.3153333,4.86733333 61.0866667,4.99333333 60.928,5.124 L60.928,9.73 Z\"\n id=\"path-8\"\n ></path>\n <path\n d=\"M66.836,12.222 C66.9386667,12.2686667 67.0716667,12.313 67.235,12.355 C67.3983333,12.397 67.5593333,12.418 67.718,12.418 C68.2313333,12.418 68.6326667,12.3036667 68.922,12.075 C69.2113333,11.8463333 69.4726667,11.4753333 69.706,10.962 C69.118,9.842 68.5696667,8.65433333 68.061,7.399 C67.5523333,6.14366667 67.13,4.872 66.794,3.584 L68.194,3.584 C68.2966667,4.004 68.4203333,4.45666667 68.565,4.942 C68.7096667,5.42733333 68.8706667,5.92666667 69.048,6.44 C69.2253333,6.95333333 69.4166667,7.46666667 69.622,7.98 C69.8273333,8.49333333 70.042,8.988 70.266,9.464 C70.6206667,8.484 70.9286667,7.51333333 71.19,6.552 C71.4513333,5.59066667 71.6986667,4.60133333 71.932,3.584 L73.276,3.584 C72.94,4.956 72.5666667,6.27433333 72.156,7.539 C71.7453333,8.80366667 71.302,9.98666667 70.826,11.088 C70.6393333,11.508 70.4456667,11.8696667 70.245,12.173 C70.0443333,12.4763333 69.8226667,12.726 69.58,12.922 C69.3373333,13.118 69.0643333,13.2626667 68.761,13.356 C68.4576667,13.4493333 68.1146667,13.496 67.732,13.496 C67.6293333,13.496 67.522,13.489 67.41,13.475 C67.298,13.461 67.1883333,13.4423333 67.081,13.419 C66.9736667,13.3956667 66.8756667,13.37 66.787,13.342 C66.6983333,13.314 66.6353333,13.2906667 66.598,13.272 L66.836,12.222 Z\"\n id=\"path-9\"\n ></path>\n </defs>\n <g\n id=\"Page-1\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g\n id=\"Group-Copy-2\"\n transform=\"translate(0.338000, 0.500000)\"\n >\n <g\n id=\"Powered-by\"\n transform=\"translate(0.000000, 45.636000)\"\n fill-rule=\"nonzero\"\n opacity=\"0.900000036\"\n >\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-1\"></use>\n <use xlink:href=\"#path-1\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-2\"></use>\n <use xlink:href=\"#path-2\"></use>\n </g>\n <g\n id=\"Path\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-3\"></use>\n <use xlink:href=\"#path-3\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-4\"></use>\n <use xlink:href=\"#path-4\"></use>\n </g>\n <g\n id=\"Path\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-5\"></use>\n <use xlink:href=\"#path-5\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-6\"></use>\n <use xlink:href=\"#path-6\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-7\"></use>\n <use xlink:href=\"#path-7\"></use>\n </g>\n <g id=\"Shape\">\n <use\n fill=\"#FFFFFF\"\n xlink:href=\"#path-8\"\n ></use>\n <use\n fill=\"#6E6E6E\"\n xlink:href=\"#path-8\"\n ></use>\n </g>\n <g id=\"Path\">\n <use\n fill=\"#FFFFFF\"\n xlink:href=\"#path-9\"\n ></use>\n <use\n fill=\"#6E6E6E\"\n xlink:href=\"#path-9\"\n ></use>\n </g>\n </g>\n <image\n id=\"Bitmap\"\n x=\"77.662\"\n y=\"0\"\n width=\"151.111111\"\n height=\"68\"\n xlink:href=\"data:image/png;base64,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\"\n ></image>\n </g>\n </g>\n </svg>\n</ng-template>\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"anna-cognito-lib-surewaves-year-logo\",\n templateUrl: \"./surewaves-year-logo.component.html\",\n styleUrls: [\"./surewaves-year-logo.component.scss\"],\n standalone: true,\n})\nexport class SurewavesYearLogoComponent implements OnInit {\n currentYear: number;\n ngOnInit(): void {\n this.currentYear = new Date().getFullYear();\n }\n}\n","<div class=\"surewaves-year-logo\">© SureWaves {{ currentYear }}. All rights reserved.</div>\n","import { Component, Inject } from \"@angular/core\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\n\n@Component({\n selector: \"anna-cognito-lib-version-and-term-policy\",\n templateUrl: \"./version-and-term-policy.component.html\",\n styleUrls: [\"./version-and-term-policy.component.scss\"],\n standalone: true,\n})\nexport class VersionAndTermPolicyComponent {\n constructor(@Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService) {}\n}\n","<p class=\"verison-and-policy\">Version {{ consumingProjectConfigService.appGenericConfig.currentAnnaVersion }}</p>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf, NgOptimizedImage } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { RouterLink } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../../config/sso-login-service.token\";\n// User defined import statements\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button/spinner-button.directive\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\n@Component({\n selector: \"anna-cognito-lib-anna-login\",\n templateUrl: \"./anna-login.component.html\",\n styleUrls: [\"./anna-login.component.scss\"],\n imports: [\n NgIf,\n NgOptimizedImage,\n FormsModule,\n ReactiveFormsModule,\n NgClass,\n RouterLink,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class AnnaLoginComponent implements OnInit {\n loginForm: FormGroup;\n constants: typeof LoginConstant;\n\n constructor(\n public authService: AnnaLibAuthService,\n private fb: FormBuilder,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n @Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService,\n ) {}\n\n ngOnInit() {\n this.authService.consumingProjectAuthService.isLoggingIn = false;\n this.consumingProjectSSOLoginService.loggedInViaSso = false;\n this.constants = LoginConstant;\n this.onIntialiseForm();\n }\n\n onIntialiseForm() {\n this.loginForm = this.fb.group({\n username: [null],\n password: [null],\n });\n }\n\n OnLogin() {\n this.authService.consumingProjectAuthService.isLoggingIn = true;\n const username = this.loginForm.controls.username.value;\n const password = this.loginForm.controls.password.value;\n this.authService.handleSignIn({ username, password });\n }\n}\n","<div class=\"main\">\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\n <section *ngIf=\"constants.forgotPassword\">\n <header>\n <img\n src=\"{{ consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl }}\"\n width=\"170\"\n height=\"72\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <form\n [formGroup]=\"loginForm\"\n (ngSubmit)=\"OnLogin()\"\n >\n <div\n id=\"alert-div\"\n *ngIf=\"authService.loginErrorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p>{{ authService.loginErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"username\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterUsername\n \"\n autocomplete=\"username\"\n autofocus\n />\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.password\"\n autocomplete=\"current-password\"\n autofocus\n />\n\n <a\n tabindex=\"4\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >{{ constants.forgotPassword }}</a\n >\n <button\n tabindex=\"3\"\n class=\"login-btn\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\n [spinnerButtonText]=\"constants.login\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { CommonModule, NgClass, NgIf, NgOptimizedImage } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { RouterLink } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\n@Component({\n selector: \"anna-cognito-catc-login\",\n imports: [\n CommonModule,\n NgIf,\n NgOptimizedImage,\n FormsModule,\n ReactiveFormsModule,\n NgClass,\n RouterLink,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ],\n templateUrl: \"./catc-login.component.html\",\n styleUrls: [\"./catc-login.component.scss\"]\n})\nexport class CatcLoginComponent implements OnInit {\n loginForm: FormGroup;\n constants: typeof LoginConstant;\n emailPattern = /\\S+@\\S+\\.\\S+/;\n\n constructor(\n public authService: AnnaLibAuthService,\n private fb: FormBuilder,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.authService.consumingProjectAuthService.isLoggingIn = false;\n this.constants = LoginConstant;\n this.onIntialiseForm();\n }\n\n onIntialiseForm() {\n this.loginForm = this.fb.group({\n email: [null, [Validators.required, Validators.pattern(this.emailPattern)]],\n password: [null],\n });\n }\n\n OnLogin() {\n this.authService.consumingProjectAuthService.isLoggingIn = true;\n const username = this.loginForm.controls.email.value;\n const password = this.loginForm.controls.password.value;\n this.authService.handleSignIn({ username, password });\n }\n}\n","<div class=\"main\">\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\n <section>\n <header>\n <img\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"145\"\n height=\"45.03\"\n alt=\"catc Logo\"\n priority\n />\n </header>\n <article>\n <form\n [formGroup]=\"loginForm\"\n (ngSubmit)=\"OnLogin()\"\n >\n <div\n id=\"alert-div\"\n *ngIf=\"authService.loginErrorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p>{{ authService.loginErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"email\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.enterEmail\"\n autocomplete=\"email\"\n autofocus\n />\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.password\"\n autocomplete=\"current-password\"\n autofocus\n />\n\n <a\n tabindex=\"4\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >{{ constants.forgotPassword }}</a\n >\n <button\n tabindex=\"3\"\n class=\"login-btn\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\n [spinnerButtonText]=\"constants.login\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { NgIf, NgOptimizedImage } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\n@Component({\n selector: \"anna-cognito-lib-sso-login\",\n templateUrl: \"./sso-login.component.html\",\n styleUrls: [\"./sso-login.component.scss\"],\n imports: [\n NgIf,\n NgOptimizedImage,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class SsoLoginComponent implements OnInit {\n constants: typeof LoginConstant;\n\n constructor(\n public authService: AnnaLibAuthService,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n }\n\n signInWithSSO() {\n this.authService.signInWithSSO();\n }\n}\n","<div class=\"main\">\n <section *ngIf=\"constants.forgotPassword\">\n <header>\n <img\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"170\"\n height=\"72\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <p class=\"sub-title\">Login</p>\n <p>Sign in using your corporate ID (SSO)</p>\n <button\n class=\"login-btn\"\n (click)=\"signInWithSSO()\"\n >\n Login with Duo\n </button>\n <div class=\"dashed-line\"></div>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { NgIf } from \"@angular/common\";\nimport { Component, Inject } from \"@angular/core\";\n\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../../config/sso-login-service.token\";\nimport { AnnaLoginComponent } from \"../anna-login/anna-login.component\";\nimport { SsoLoginComponent } from \"../sso-login/sso-login.component\";\n\n@Component({\n selector: \"anna-cognito-lib-cognito-and-sso-login-container\",\n templateUrl: \"./cognito-and-sso-login-container.component.html\",\n styleUrls: [\"./cognito-and-sso-login-container.component.scss\"],\n imports: [NgIf, AnnaLoginComponent, SsoLoginComponent]\n})\nexport class CognitoAndSSOLoginContainerComponent {\n constructor(@Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService) {}\n}\n","<anna-cognito-lib-anna-login *ngIf=\"!consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-anna-login>\n<anna-cognito-lib-sso-login *ngIf=\"consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-sso-login>\n","export class AuthenticationData {\n Username: string;\n Password: string;\n constructor(Username: string, Password: string) {\n this.Username = Username;\n this.Password = Password;\n }\n}\n\nexport class UserPoolInformation {\n UserPoolId: string;\n ClientId: string;\n constructor(UserPoolId: string, ClientId: string) {\n this.UserPoolId = UserPoolId;\n this.ClientId = ClientId;\n }\n}\n\nexport class UsernameInfo {\n isUsernameAvailable: boolean;\n constructor(object: { isUsernameAvailable: boolean }) {\n this.isUsernameAvailable = object.isUsernameAvailable;\n }\n}\n\nexport class UserState {\n userStatus: string;\n isUserWithTempPassword: boolean;\n constructor(userState: string) {\n this.userStatus = userState;\n this.isUserWithTempPassword = userState === \"FORCE_CHANGE_PASSWORD\";\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, Inject, OnInit, Optional } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\n// Third party import statements\nimport { ToastrService } from \"ngx-toastr\";\nimport { forkJoin } from \"rxjs\";\n\nimport { AUTH_SERVICE_TOKEN, IAuthService } from \"../../config/auth-service.token\";\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../../config/sso-login-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button/spinner-button.directive\";\n// User defined import statements\nimport { UsernameInfo, UserState } from \"../../models/auth.model\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\ntype PasswordType = { value: string; status: string };\n@Component({\n selector: \"anna-cognito-lib-forgot-password\",\n templateUrl: \"./forgot-password.component.html\",\n styleUrls: [\"./forgot-password.component.scss\"],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n NgClass,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ],\n})\nexport class ForgotPasswordComponent implements OnInit {\n errorMessage: string;\n verifyRegisteredEmail: FormGroup;\n passwordNotMatching = false;\n constants: typeof LoginConstant;\n password: PasswordType = { value: null, status: null };\n confirmPassword: PasswordType = { value: null, status: null };\n infoMessageToRedirectLogin: string = null;\n isLoading: boolean = false;\n emailPattern = /\\S+@\\S+\\.\\S+/;\n\n constructor(\n private authService: AnnaLibAuthService,\n private fb: FormBuilder,\n private toastr: ToastrService,\n private router: Router,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService,\n @Optional() @Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService,\n ) {}\n\n ngOnInit() {\n this.infoMessageToRedirectLogin = null;\n this.constants = LoginConstant;\n this.onIntialiseForm();\n if (this.consumingProjectAuthService.userName) {\n this.onUpdateForm();\n }\n this.authService.forgotPasswordAndGlobalSignoutLoader = false;\n }\n\n onIntialiseForm() {\n if (this.consumingProjectConfigService.isCatcApplication) {\n this.verifyRegisteredEmail = this.fb.group({\n email: [null, [Validators.required, Validators.pattern(this.emailPattern)]],\n });\n } else {\n this.verifyRegisteredEmail = this.fb.group({\n email: [null, [Validators.required]],\n });\n }\n }\n\n onUpdateForm() {\n this.verifyRegisteredEmail.patchValue({\n email: this.consumingProjectAuthService.userName,\n });\n }\n\n isFormValid() {\n return this.verifyRegisteredEmail.valid;\n }\n\n onLoginOrGetOtpButtonClick() {\n if (this.verifyRegisteredEmail.get(\"email\")?.value === \"\") {\n this.errorMessage = this.constants.userNotFound;\n return;\n }\n if (this.infoMessageToRedirectLogin) {\n this.router.navigate([LoginConstant.loginPageUrl]);\n } else {\n this.onVerifyRegisteredEmail();\n }\n }\n\n onVerifyRegisteredEmail() {\n this.isLoading = true;\n this.errorMessage = null;\n this.infoMessageToRedirectLogin = null;\n const username = this.verifyRegisteredEmail.controls.email.value;\n\n const isUserNameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);\n const isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);\n\n forkJoin([isUserNameAvailable, isUsernameTempPasswordSet]).subscribe({\n next: (result) => {\n const { isUsernameAvailable } = new UsernameInfo(result[0]);\n const { isUserWithTempPassword } = new UserState(result[1]);\n this.onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username);\n },\n error: (error) => {\n if (error.status === 400) {\n this.errorMessage = this.constants.userNotFound;\n } else {\n this.toastr.error(LoginConstant.apiFailErrorMessage);\n }\n this.isLoading = false;\n },\n });\n }\n\n onGettingUserStatus(isUsernameAvailable: boolean, isUserWithTempPassword: boolean, username: string) {\n if (!isUsernameAvailable) {\n if (!isUserWithTempPassword) {\n this.authService.onForgotPasswordGenerateOTP(username);\n } else {\n this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;\n this.isLoading = false;\n }\n } else {\n this.errorMessage = this.constants.userNotFound;\n this.isLoading = false;\n }\n }\n}\n","<div class=\"main\">\n <section [ngClass]=\"{ 'catc-forget-password': consumingProjectConfigService?.isCatcApplication }\">\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n alt=\"Anna Logo\"\n width=\"170\"\n height=\"72\"\n priority\n />\n </header>\n <article>\n <form [formGroup]=\"verifyRegisteredEmail\">\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\n <div id=\"heading\">\n {{ constants.forgotPasswordHeading }}\n </div>\n <p>\n {{\n consumingProjectConfigService.isCatcApplication\n ? constants.PleaseEnterYourEmailMessage\n : consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.PleaseEnterYourUsercodeMessage\n : constants.PleaseEnterYourUsernameMessage\n }}\n </p>\n </ng-container>\n <div\n id=\"alert-div\"\n *ngIf=\"errorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p id=\"alert-msg\">{{ errorMessage }}</p>\n </div>\n <div\n id=\"info-div\"\n *ngIf=\"infoMessageToRedirectLogin\"\n >\n <i class=\"mi mdi-info\"></i>\n <p>{{ infoMessageToRedirectLogin }}</p>\n </div>\n\n <input\n *ngIf=\"!infoMessageToRedirectLogin\"\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"email\"\n [placeholder]=\"\n consumingProjectConfigService.isCatcApplication\n ? constants.enterEmail\n : consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterUsername\n \"\n [ngClass]=\"{\n 'input-invalid':\n (verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors) ||\n errorMessage\n }\"\n />\n\n <button\n tabindex=\"2\"\n type=\"submit\"\n class=\"login-btn\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"isLoading\"\n (click)=\"onLoginOrGetOtpButtonClick()\"\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from \"@angular/core\";\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from \"@angular/forms\";\n// Third party import statements\nimport { debounceTime } from \"rxjs/operators\";\n\n// User defined import statements\nimport { LoginConstant } from \"../../constants/loginConstant\";\n\n@Component({\n selector: \"anna-cognito-lib-password-matching\",\n templateUrl: \"./password-matching.component.html\",\n styleUrls: [\"./password-matching.component.scss\"],\n imports: [FormsModule, ReactiveFormsModule, NgIf, NgClass]\n})\nexport class PasswordMatchingComponent implements OnInit {\n @Output() passwordChange = new EventEmitter();\n @Output() confirmPasswordChange = new EventEmitter();\n\n @Input() passwordNotMatching: boolean;\n passwordForm: FormGroup;\n constants: typeof LoginConstant;\n constructor(@Inject(FormBuilder) private fb: FormBuilder) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n this.createGroup();\n this.formValueChanged();\n }\n\n formValueChanged() {\n const password = this.passwordForm.get(\"password\");\n const confirmPassword = this.passwordForm.get(\"confirmPassword\");\n\n if (password) {\n password.valueChanges.subscribe(() => {\n if (password) {\n password.setValidators([\n Validators.required,\n this.regexValidator(/.{8,}/, { minLength: true }),\n this.regexValidator(/[a-z]/, { lowercase: true }),\n this.regexValidator(/[A-Z]/, { uppercase: true }),\n this.regexValidator(/[0-9]/, { number: true }),\n this.regexValidator(/[^a-zA-Z0-9]/, { specialCharacter: true }),\n ]);\n }\n password.updateValueAndValidity({ emitEvent: false });\n this.onPasswordChange();\n });\n }\n\n if (confirmPassword) {\n confirmPassword.valueChanges.pipe(debounceTime(300)).subscribe(() => {\n confirmPassword.setValidators([Validators.required]);\n confirmPassword.updateValueAndValidity({ emitEvent: false });\n this.onConfirmPasswordChange();\n });\n }\n }\n\n onPasswordChange() {\n const result = {\n value: this.passwordForm.value.password,\n status: this.passwordForm.controls.password.status,\n };\n this.passwordChange.emit(result);\n }\n\n onConfirmPasswordChange() {\n const result = {\n value: this.passwordForm.value.confirmPassword,\n status: this.passwordForm.controls.confirmPassword.status,\n };\n this.confirmPasswordChange.emit(result);\n }\n\n createGroup() {\n this.passwordForm = this.fb.group({\n password: [null],\n confirmPassword: [null],\n });\n return this.passwordForm;\n }\n\n // TODO: check the return again\n regexValidator(regex: RegExp, error: ValidationErrors): any {\n return (control: AbstractControl): { [key: string]: boolean } => {\n const valid = regex.test(control.value);\n return (valid ? null : error) as any;\n };\n }\n}\n","<form [formGroup]=\"passwordForm\">\n <div\n id=\"alert-div\"\n *ngIf=\"passwordNotMatching\"\n >\n <div id=\"icon-div\">\n <span class=\"mdi mdi-alert-octagon\"></span>\n </div>\n <p>{{ constants.passwordNotMatching }}</p>\n </div>\n <div class=\"password-policies\">\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\n <p>\n <b>{{ constants.passwordMustContain }} </b>\n </p>\n <p>{{ constants.minimumCharacter }}</p>\n <p>{{ constants.oneUppercase }}</p>\n <p>{{ constants.oneLowercase }}</p>\n <p>{{ constants.oneNumber }}</p>\n <p>{{ constants.specialCharacter }}</p>\n </ng-container>\n\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\n <p>\n <b>{{ constants.passwordMustContain }}</b>\n </p>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('minLength')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\n </div>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('uppercase')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\n </div>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('lowercase')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\n </div>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('number') ? 'mdi-close-circle' : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\n </div>\n\n <div\n [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\"\n >\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('specialCharacter')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\n </div>\n </ng-container>\n </div>\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [placeholder]=\"constants.password\"\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\n />\n\n <input\n type=\"password\"\n tabindex=\"3\"\n formControlName=\"confirmPassword\"\n [placeholder]=\"constants.confirmPassword\"\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\n />\n</form>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\n// User defined import statements\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PasswordMatchingComponent } from \"../password-matching/password-matching.component\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\ntype PasswordType = { value: string | null; status: string | null };\n\n@Component({\n selector: \"anna-cognito-lib-set-new-password\",\n templateUrl: \"./set-new-password.component.html\",\n styleUrls: [\"./set-new-password.component.scss\"],\n imports: [\n NgClass,\n FormsModule,\n NgIf,\n PasswordMatchingComponent,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class SetNewPasswordComponent implements OnInit {\n passwordNotMatching = false;\n\n password: PasswordType = { value: null, status: null };\n confirmPassword: PasswordType = { value: null, status: null };\n constants: typeof LoginConstant;\n\n constructor(\n public authService: AnnaLibAuthService,\n private router: Router,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n this.authService.setNewPasswordButtonMessage = LoginConstant.setNewPasswordButton;\n }\n\n isFormValid() {\n return this.password.status === \"VALID\" && this.confirmPassword.status === \"VALID\";\n }\n onPasswordChange($event: PasswordType) {\n this.password = $event;\n }\n\n onConfirmPasswordChange($event: PasswordType) {\n this.confirmPassword = $event;\n }\n\n onSettingNewPassword() {\n if (this.isFormValid()) {\n if (this.password.value !== this.confirmPassword.value) {\n this.passwordNotMatching = true;\n } else {\n this.passwordNotMatching = false;\n if (this.authService.setNewPasswordButtonMessage === LoginConstant.loginAgain) {\n this.router.navigate([LoginConstant.loginPageUrl]);\n } else {\n this.authService.changePassword(this.password.value);\n }\n }\n }\n }\n}\n","<div class=\"main\">\n <section>\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n alt=\"Anna Logo\"\n width=\"170\"\n height=\"72\"\n priority\n />\n </header>\n <article>\n <form (keydown.enter)=\"onSettingNewPassword()\">\n <div id=\"heading\">\n {{ constants.setNewPasswordHeading }}\n </div>\n\n <div\n id=\"alert-div\"\n *ngIf=\"authService.setNewPasswordErrorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p>{{ authService.setNewPasswordErrorMessage }}</p>\n </div>\n <anna-cognito-lib-password-matching\n [ngClass]=\"{ 'catc-forget-password-matching': consumingProjectConfigService?.isCatcApplication }\"\n (passwordChange)=\"onPasswordChange($event)\"\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\n [passwordNotMatching]=\"passwordNotMatching\"\n >\n </anna-cognito-lib-password-matching>\n <button\n tabindex=\"3\"\n type=\"submit\"\n class=\"login-btn\"\n (click)=\"onSettingNewPassword()\"\n [disabled]=\"!isFormValid()\"\n >\n {{ authService.setNewPasswordButtonMessage }}\n </button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { Router, RouterLink } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\n// User defined import statements\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button/spinner-button.directive\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PasswordMatchingComponent } from \"../password-matching/password-matching.component\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\ntype PasswordType = { value: string | null; status: string | null };\n\n@Component({\n selector: \"anna-cognito-lib-verify-and-set-new-password\",\n templateUrl: \"./verify-and-set-new-password.component.html\",\n styleUrls: [\"./verify-and-set-new-password.component.scss\"],\n imports: [\n NgClass,\n RouterLink,\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n PasswordMatchingComponent,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class VerifyAndSetNewPasswordComponent implements OnInit {\n verifyOtpForm: FormGroup;\n passwordNotMatching = false;\n constants: typeof LoginConstant;\n password: PasswordType = { value: null, status: null };\n confirmPassword: PasswordType = { value: null, status: null };\n\n constructor(\n public authService: AnnaLibAuthService,\n private fb: FormBuilder,\n private router: Router,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;\n this.onIntialiseForm();\n }\n\n onIntialiseForm() {\n this.verifyOtpForm = this.fb.group({\n otp: [null, [Validators.required]],\n });\n }\n\n isFormValid() {\n if (\n this.password.status === \"VALID\" &&\n this.confirmPassword.status === \"VALID\" &&\n this.verifyOtpForm.controls.otp.valid\n ) {\n return true;\n }\n return false;\n }\n\n onPasswordChange($event: PasswordType) {\n this.password = $event;\n }\n\n onConfirmPasswordChange($event: PasswordType) {\n this.confirmPassword = $event;\n }\n\n onVerifyOtpSettingNewPassword() {\n if (this.password.value !== this.confirmPassword.value) {\n this.passwordNotMatching = true;\n } else {\n this.passwordNotMatching = false;\n this.authService.forgotPasswordAndGlobalSignoutLoader = true;\n if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {\n this.router.navigate([LoginConstant.forgortPasswordPageUrl]);\n } else if (this.password.value) {\n this.authService.verifyCode(this.verifyOtpForm.controls.otp.value, this.password.value);\n }\n }\n }\n}\n","<div\n class=\"main\"\n [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\"\n>\n <section [ngClass]=\"{ 'catc-forget-password': consumingProjectConfigService?.isCatcApplication }\">\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"170\"\n height=\"72\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <span\n class=\"back-btn\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >\n <i class=\"mdi mdi-arrow-left\"></i>\n </span>\n\n <form\n [formGroup]=\"verifyOtpForm\"\n (keydown.enter)=\"onVerifyOtpSettingNewPassword()\"\n >\n <div\n class=\"pull-left\"\n id=\"heading\"\n >\n {{ constants.verifyAndSetNewPasswordheading }}\n </div>\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\n\n <div\n id=\"alert-div\"\n *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\"\n >\n <div id=\"icon-div\">\n <span class=\"mdi mdi-alert-octagon\"></span>\n </div>\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"otp\"\n [placeholder]=\"constants.enterOtp\"\n autocomplete=\"off\"\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\n />\n\n <anna-cognito-lib-password-matching\n [ngClass]=\"{ 'catc-forget-password-matching': consumingProjectConfigService?.isCatcApplication }\"\n (passwordChange)=\"onPasswordChange($event)\"\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\n [passwordNotMatching]=\"passwordNotMatching\"\n >\n </anna-cognito-lib-password-matching>\n <button\n tabindex=\"4\"\n class=\"login-btn\"\n type=\"submit\"\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\n (click)=\"onVerifyOtpSettingNewPassword()\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"authService.forgotPasswordAndGlobalSignoutLoader\"\n [spinnerButtonText]=\"authService.verifyAndSetNewPasswordButton\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { Inject, Injectable } from \"@angular/core\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../config/config-service.token\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaConfigService {\n constructor(@Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService) {}\n}\n","import { Inject, Injectable } from \"@angular/core\";\n\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../config/sso-login-service.token\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaSSOLoginService {\n constructor(@Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService) {}\n}\n","/*\n * Public API Surface of anna-cognito-lib\n */\n\n// COMPONENTS\nexport * from \"./lib/components/anna-login/anna-login.component\";\nexport * from \"./lib/components/catc-login/catc-login.component\";\nexport * from \"./lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component\";\nexport * from \"./lib/components/forgot-password/forgot-password.component\";\nexport * from \"./lib/components/password-matching/password-matching.component\";\nexport * from \"./lib/components/powered-by-logo-template/powered-by-logo-template.component\";\nexport * from \"./lib/components/set-new-password/set-new-password.component\";\nexport * from \"./lib/components/sso-login/sso-login.component\";\nexport * from \"./lib/components/surewaves-year-logo/surewaves-year-logo.component\";\nexport * from \"./lib/components/verify-and-set-new-password/verify-and-set-new-password.component\";\nexport * from \"./lib/components/version-and-term-policy/version-and-term-policy.component\";\n\n// SERVICES\nexport * from \"./lib/config/acl-service.token\";\nexport * from \"./lib/config/auth-service.token\";\nexport * from \"./lib/config/config-service.token\";\nexport * from \"./lib/config/sso-login-service.token\";\nexport * from \"./lib/services/acl.service\";\nexport * from \"./lib/services/auth.service\";\nexport * from \"./lib/services/config.service\";\nexport * from \"./lib/services/sso-login.service\";\n\n// DIRECTIVES\nexport * from \"./lib/directives/spinner-button\";\n\n// CONSTANTS\nexport * from \"./lib/constants/loginConstant\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.AnnaLibAclService","i1.AnnaLibAuthService","i3","i4","i1"],"mappings":"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"}
1
+ {"version":3,"file":"annalib-anna-cognito-lib.mjs","sources":["../../../projects/anna-cognito-lib/src/lib/config/config-service.token.ts","../../../projects/anna-cognito-lib/src/lib/config/sso-login-service.token.ts","../../../projects/anna-cognito-lib/src/lib/constants/loginConstant.ts","../../../projects/anna-cognito-lib/src/lib/directives/spinner-button/spinner-button.directive.ts","../../../projects/anna-cognito-lib/src/lib/config/auth-service.token.ts","../../../projects/anna-cognito-lib/src/lib/config/acl-service.token.ts","../../../projects/anna-cognito-lib/src/lib/services/acl.service.ts","../../../projects/anna-cognito-lib/src/lib/services/auth.service.ts","../../../projects/anna-cognito-lib/src/lib/components/powered-by-logo-template/powered-by-logo-template.component.ts","../../../projects/anna-cognito-lib/src/lib/components/powered-by-logo-template/powered-by-logo-template.component.html","../../../projects/anna-cognito-lib/src/lib/components/surewaves-year-logo/surewaves-year-logo.component.ts","../../../projects/anna-cognito-lib/src/lib/components/surewaves-year-logo/surewaves-year-logo.component.html","../../../projects/anna-cognito-lib/src/lib/components/version-and-term-policy/version-and-term-policy.component.ts","../../../projects/anna-cognito-lib/src/lib/components/version-and-term-policy/version-and-term-policy.component.html","../../../projects/anna-cognito-lib/src/lib/components/anna-login/anna-login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/anna-login/anna-login.component.html","../../../projects/anna-cognito-lib/src/lib/components/catc-login/catc-login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/catc-login/catc-login.component.html","../../../projects/anna-cognito-lib/src/lib/components/sso-login/sso-login.component.ts","../../../projects/anna-cognito-lib/src/lib/components/sso-login/sso-login.component.html","../../../projects/anna-cognito-lib/src/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.ts","../../../projects/anna-cognito-lib/src/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.html","../../../projects/anna-cognito-lib/src/lib/models/auth.model.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/forgot-password/forgot-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.ts","../../../projects/anna-cognito-lib/src/lib/components/password-matching/password-matching.component.html","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/set-new-password/set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.ts","../../../projects/anna-cognito-lib/src/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.html","../../../projects/anna-cognito-lib/src/lib/services/config.service.ts","../../../projects/anna-cognito-lib/src/lib/services/sso-login.service.ts","../../../projects/anna-cognito-lib/src/public-api.ts","../../../projects/anna-cognito-lib/src/annalib-anna-cognito-lib.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\n/** Token to inject the auth service */\nexport const CONFIG_SERVICE_TOKEN: InjectionToken<IConfigService> = new InjectionToken<IConfigService>(\n \"Cognito config service token\",\n);\n\nexport interface IConfigService {\n appGenericConfig: {\n loginPageLogoImgUrl: string;\n cognito: {\n userPoolId: string;\n clientId: string;\n };\n currentAnnaVersion: string;\n };\n isCatcApplication?:boolean;\n}\n","import { InjectionToken } from \"@angular/core\";\n\n/** Token to inject the auth service */\nexport const SSO_LOGIN_SERVICE_TOKEN: InjectionToken<ISSOLoginService> = new InjectionToken<ISSOLoginService>(\n \"Cognito sso login service token\",\n);\n\nexport interface ISSOLoginService {\n defaultLoginPageUrl: \"co-pilot-login\" | \"login\";\n isSsoIntegrated: boolean;\n // ogDetails: { OgName: string; OgId: number; OgLogoUrl: string; IsSsoIntegrated: boolean; };\n loggedInViaSso: boolean;\n isUserInvitedAndCanAccessANNA: boolean;\n userNameText: string;\n}\n","export class LoginConstant {\n // Login page\n static readonly enterUsername = \"Enter your username\";\n static readonly enterUserCode = \"Enter your usercode\";\n static readonly enterEmail = \"Enter your email\";\n static readonly password = \"Password\";\n static readonly confirmPassword = \"Confirm Password\";\n static readonly login = \"Login\";\n static readonly otp = \"OTP\";\n static readonly forgotPassword = `Forgot ${LoginConstant.password.toLowerCase()}?`;\n\n // set new password\n static readonly setNewPasswordHeading = `Set new ${LoginConstant.password.toLowerCase()}`;\n static readonly setNewPasswordButton = `Set and ${LoginConstant.login.toLowerCase()} again`;\n static readonly passwordMustContain = \"The password must contain:\";\n static readonly minimumCharacter = \"Minimum 8 characters\";\n static readonly oneUppercase = \"1 Uppercase\";\n static readonly oneLowercase = \"1 Lowercase\";\n static readonly oneNumber = \"1 Numerical\";\n static readonly specialCharacter = \"1 Special character\";\n static readonly passwordNotMatching = \"The passwords do not match. Please try again.\";\n static readonly userNamePasswordIncorrect = \"Incorrect username or password\";\n static readonly userCodePasswordIncorrect = \"Incorrect usercode or password\";\n static readonly userNotFound = \"No registered user found\";\n static readonly loginAgain = `${LoginConstant.login} again`;\n static readonly firstTimeLoginUserTempPasswordMsg =\n // eslint-disable-next-line max-len\n \"You are logging in for the first time. Kindly use the temporary password provided in the welcome email, to login to your account. \";\n static readonly tempPasswordExpiryError = \"Temporary password has expired and must be reset by an administrator.\";\n static readonly tempPasswordOnExpiryErrorMsg =\n // eslint-disable-next-line max-len\n \"Password has expired. A new password has been sent to your registered email. Kindly login again with new link and credentials.\";\n\n // verify OTP & set new password\n static readonly verifyAndSetNewPasswordheading = `Enter ${LoginConstant.otp} & set new password`;\n static readonly verifyAndSetNewPasswordMessage = `An ${LoginConstant.otp} has been succesfully emailed to `;\n static readonly pleaseEnterItBelow = \". Please enter it below.\";\n static readonly regenerateOtp = `Regenerate ${LoginConstant.otp}`;\n static readonly enterOtp = `Enter ${LoginConstant.otp}`;\n static readonly submit = \"Submit\";\n static readonly attempt = \"Attempt\";\n static readonly attemptLimitExceeded =\n \"You have exceeded the maximum number of allowed attempts. Please try again after 15 minutes.\";\n static readonly attemptMessage = \" of 5. The OTP entered is incorrect. Please try again with the right one.\";\n static readonly sessionExpired = \"The session has expired. Please try again.\";\n static readonly sessionExpiredError = \"Your session has expired. Please login again\";\n\n // forgot password\n static readonly forgotPasswordHeading = \"Forgot your password?\";\n static readonly PleaseEnterYourUsernameMessage = \"Please enter your username.\";\n static readonly PleaseEnterYourUsercodeMessage = \"Please enter your usercode.\";\n static readonly PleaseEnterYourEmailMessage = \"Please enter your email address below.\";\n static readonly forgotPasswordButton = `Get ${LoginConstant.otp}`;\n static readonly apiFailErrorMessage = \"Unable to connect to server right now. Please try after some time.\";\n\n // url\n static readonly setNewPasswordUrl = \"/set-new-password\";\n static readonly forgortPasswordPageUrl = \"/forgot-password\";\n static readonly verifyAndSetNewPasswordUrl = \"/verify-and-set-new-password\";\n static readonly loginPageUrl = \"/login\";\n static readonly coPilotloginPageUrl = \"/co-pilot-login\";\n static readonly welcomeScrreenUrl = \"/welcome-screen\";\n static readonly homePageUrl = \"/dashboard\";\n static readonly stationSettingUrl = \"/station-settings\";\n}\n","import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from \"@angular/core\";\n\n@Directive({\n selector: \"[annaCognitoSpinnerBtn]\",\n standalone: true,\n})\nexport class SpinnerButtonDirective implements OnChanges {\n @Input() spinnerButtonLoading: boolean;\n @Input() spinnerButtonText: string;\n child: HTMLDivElement;\n button: any;\n\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {\n this.button = this.el.nativeElement;\n this.child = document.createElement(\"div\");\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.spinnerButtonText && changes.spinnerButtonText.currentValue) {\n this.button.innerHTML = this.spinnerButtonText;\n }\n if (changes.spinnerButtonLoading && changes.spinnerButtonLoading.currentValue) {\n this.button.innerHTML = \"\";\n this.button.setAttribute(\"disabled\", \"true\");\n this.child.classList.add(\"spinner-for-button-directive\");\n this.renderer.appendChild(this.button, this.child);\n } else {\n this.child.classList.remove(\"spinner-for-button-directive\");\n this.button.removeAttribute(\"disabled\");\n this.button.innerHTML = this.spinnerButtonText;\n }\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { Observable } from \"rxjs\";\n\n/** Token to inject the auth service */\nexport const AUTH_SERVICE_TOKEN: InjectionToken<IAuthService> = new InjectionToken<IAuthService>(\"Auth service token\");\n\nexport interface IAuthService {\n isLoggingIn: boolean;\n userName: any;\n accessToken: string;\n IdToken: any;\n defaultLoginPageUrl: \"co-pilot-login\" | \"login\";\n onSuccessfulAuthenticatingUser(loggedInViaSso: boolean): void;\n getAllCognitoTokenAndGroups(tokens: any): void;\n isUsernameAvailable(username: string): Observable<any>;\n isEmailAvailable(emailId: string, ogId: number): Observable<any>;\n getUserState(username: string): Observable<any>;\n navigateBasedOnUserRole(loginUserData: any): void;\n getPublicIp(): string;\n sendRegenerationEmail(userCode: string): void;\n onPasswordUpdate(userName: string): void;\n newPasswordSetThenUpdateToBackend(userCode: string): void;\n signInWithSSO(): void;\n}\n","import { InjectionToken } from \"@angular/core\";\n\n/** Token to inject the acl service */\nexport const ACL_SERVICE_TOKEN: InjectionToken<IAclService> = new InjectionToken<IAclService>(\"ACL service token\");\n\nexport interface IAclService {\n urlToCognitoPrivilegeMap: { [key: string]: string };\n MANAGE_USERS_WRITE: string;\n ORDER_BIZ_RULES_WRITE: string;\n ORDER_REVISIONS_WRITE: string;\n ORDER_SPOTS_REPORT_WRITE: string;\n POLITICAL_WINDOW_WRITE: string;\n DASHBOARD_DAILY_REVISIONS_READ: string;\n ENTER_EDIT_TARGET_LUR_WRITE: string;\n ENTER_EDIT_TARGET_CSR_WRITE: string;\n MANAGE_ROLES_WRITE: string;\n ACTIVE_STATION_USER_READ: string;\n GLOBAL_WRITE: string;\n USER_AWAITING_ACTIVATION_WRITE: string;\n POSTING___UD_TRACKER_READ: string;\n DAILY_REVISION_ONGOING_AND_DAILY_COMPLETED_READ: string;\n USER_MANAGEMENT_READ: string;\n USER_MANAGEMENT_WRITE: string;\n STATION_BUSINESS_RULE_WRITE: string;\n ADVERTISER_BUSINESS_RULE_WRITE: string;\n EC_LISTING_READ: string;\n EC_LISTING_WRITE: string;\n ORDER_DISCREPANCIES: string;\n REVISION_CYCLE_SETTINGS_READ: string;\n REVISION_CYCLE_SETTINGS_WRITE: string;\n AUDIENCE_ESTIMATES_CONFIG_READ: string;\n AUDIENCE_ESTIMATES_CONFIG_WRITE: string;\n RATE_CONFIG_WRITE: string;\n RATE_CONFIG_READ: string;\n HOLIDAY_LIST_READ: string;\n HOLIDAY_LIST_WRITE: string;\n WRITE_ENABLED_ORDERS_READ: string;\n WRITE_ENABLED_ORDERS_WRITE: string;\n SECTION_RATE_CARD_READ: string;\n SECTION_RATE_CARD_WRITE: string;\n AUDIENCE_ESTIMATES_READ: string;\n UPLOAD_CSR_READ: string;\n UPLOAD_CSR_WRITE: string;\n PROGRAM_SCHEDULE_READ: string;\n ORDER_ENTRY_TRACKER_READ: string;\n ORDER_ENTRY_TRACKER_WRITE: string;\n HIATUS_TRACKER_READ: string;\n HIATUS_TRACKER_WRITE: string;\n OFFER_TRACKER_READ: string;\n OFFER_TRACKER_WRITE: string;\n REVISION_ORCHESTRATION_READ: string;\n REVISION_ORCHESTRATION_WRITE: string;\n POLITICAL_RATE_CARD_READ: string;\n POLITICAL_RATE_CARD_WRITE: string;\n PROGRAM_CHANGES_WRITE: string;\n PROGRAM_CHANGES_READ: string;\n LATE_RUNS_WRITE: string;\n LATE_RUNS_READ: string;\n GUIDANCE_RATES_READ: string;\n GUIDANCE_RATES_WRITE: string;\n RATE_CONTROL_RULES_WRITE: string;\n RATE_CONTROL_RULES_READ: string;\n ADVERTISER_SEGMENTATION_READ: string;\n ADVERTISER_SEGMENTATION_WRITE: string;\n}\n","import { Inject, Injectable, Optional } from \"@angular/core\";\n\nimport { ACL_SERVICE_TOKEN, IAclService } from \"../config/acl-service.token\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaLibAclService {\n constructor(@Optional() @Inject(ACL_SERVICE_TOKEN) public consumingProjectAclService: IAclService) {}\n\n userGroupsInCognitoJWT: string[];\n isUserAuthorisedToAccessPage(url: string): boolean {\n const privilegeName = this.consumingProjectAclService.urlToCognitoPrivilegeMap[url];\n return this.userGroupsInCognitoJWT.includes(privilegeName);\n }\n\n isUserAuthorisedToAccessElement(privilege: string): boolean {\n return this.userGroupsInCognitoJWT.includes(privilege);\n }\n}\n","// Angular import statements\nimport { HttpClient } from \"@angular/common/http\";\nimport { Inject, Injectable, Optional } from \"@angular/core\";\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { Router } from \"@angular/router\";\n// Third party import statements\nimport {\n AuthTokens,\n confirmResetPassword,\n confirmSignIn,\n fetchAuthSession,\n getCurrentUser,\n resetPassword,\n signIn,\n SignInInput,\n signOut,\n} from \"aws-amplify/auth\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { catchError, interval, of, Subscription, switchMap } from \"rxjs\";\n\n// User defined import statements\nimport { AUTH_SERVICE_TOKEN, IAuthService } from \"../config/auth-service.token\";\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../config/sso-login-service.token\";\nimport { LoginConstant } from \"../constants/loginConstant\";\nimport { AnnaLibAclService } from \"./acl.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaLibAuthService {\n loginErrorMessage: string | null;\n setNewPasswordErrorMessage: string;\n setNewPasswordButtonMessage: string;\n verifyAndSetNewPasswordErrorMessage: string;\n verifyAndSetNewPasswordMessage: string;\n verifyAndSetNewPasswordButton: string;\n noOfAttempts = 0;\n sessionLocked = false;\n // accessTokenTimerId: any;\n forgotPasswordAndGlobalSignoutLoader: boolean;\n accessTokenTimerSubscription: Subscription;\n\n constructor(\n private router: Router,\n public aclService: AnnaLibAclService,\n public httpClient: HttpClient,\n private toastr: ToastrService,\n @Optional() @Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService,\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService,\n ) {\n if (!consumingProjectAuthService) {\n throw new Error(\"You must provide a authService\");\n }\n }\n\n async isUserLoggedIn(): Promise<boolean> {\n try {\n // await getCurrentUser();\n // eslint-disable-next-line @typescript-eslint/return-await, no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n const session: any = await fetchAuthSession();\n if (session?.tokens) {\n this.consumingProjectAuthService.IdToken = session?.tokens.idToken.toString();\n this.consumingProjectAuthService.getAllCognitoTokenAndGroups(session.tokens);\n resolve(true);\n } else {\n this.toastr.error(LoginConstant.sessionExpiredError);\n this.handleSignOut();\n resolve(false);\n }\n });\n } catch (error) {\n return new Promise((resolve) => {\n // clearInterval(this.accessTokenTimerId);\n this.accessTokenTimerSubscription?.unsubscribe();\n resolve(false);\n });\n }\n }\n\n sessionTimeout() {\n localStorage.clear();\n // clearInterval(this.accessTokenTimerId);\n this.accessTokenTimerSubscription?.unsubscribe();\n\n let afterLogoutRedirectTo: string;\n if (this.consumingProjectSSOLoginService) {\n if (\n this.consumingProjectSSOLoginService?.isSsoIntegrated &&\n !this.consumingProjectSSOLoginService.loggedInViaSso\n ) {\n afterLogoutRedirectTo = LoginConstant.coPilotloginPageUrl;\n } else {\n afterLogoutRedirectTo = LoginConstant.loginPageUrl;\n }\n } else {\n afterLogoutRedirectTo = LoginConstant.loginPageUrl;\n }\n this.router.navigate([afterLogoutRedirectTo]);\n }\n\n computeTokenExpiration(idToken: any) {\n const refreshTokenInAdvanceSec = 3000;\n\n const currentTime = Math.floor(Date.now() / 1000);\n const tokenExpTime = idToken.payload.exp;\n let expTime = (tokenExpTime - currentTime) * 1000;\n expTime = Math.abs(expTime);\n expTime -= refreshTokenInAdvanceSec;\n expTime = Math.abs(expTime);\n\n return expTime;\n }\n\n // computeTokenExpiration(idToken: any) {\n // const currentTime = Math.floor(Date.now() / 1000);\n // const tokenTime = idToken.payload.exp;\n // const expTime = (tokenTime - currentTime) * 1000;\n // return expTime;\n // }\n\n async handleSignIn({ username, password }: SignInInput) {\n try {\n const session = await fetchAuthSession();\n if (session?.tokens) {\n await this.handleSignOut();\n }\n const { nextStep } = await signIn({ username, password });\n switch (nextStep?.signInStep) {\n case \"DONE\": {\n const authSession = await fetchAuthSession();\n this.onLoginOrSetNewPassword(authSession);\n await this.consumingProjectAuthService.onSuccessfulAuthenticatingUser(false);\n this.consumingProjectAuthService.getAllCognitoTokenAndGroups(authSession.tokens);\n this.refreshAccessToken();\n break;\n }\n case \"CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED\":\n this.consumingProjectAuthService.isLoggingIn = false;\n this.consumingProjectAuthService.userName = username;\n this.router.navigate([LoginConstant.setNewPasswordUrl]);\n this.setNewPasswordErrorMessage = null;\n break;\n\n case \"RESET_PASSWORD\":\n break;\n\n // no default\n }\n } catch (error: any) {\n this.consumingProjectAuthService.isLoggingIn = false;\n if (error?.message === LoginConstant.tempPasswordExpiryError) {\n this.loginErrorMessage = LoginConstant.tempPasswordOnExpiryErrorMsg;\n this.consumingProjectAuthService.sendRegenerationEmail(username);\n } else if (error?.message === \"Password attempts exceeded\") {\n this.loginErrorMessage = LoginConstant.attemptLimitExceeded;\n } else {\n this.loginErrorMessage = this.consumingProjectSSOLoginService?.isSsoIntegrated\n ? LoginConstant.userCodePasswordIncorrect\n : LoginConstant.userNamePasswordIncorrect;\n }\n }\n }\n\n onLoginOrSetNewPassword(session: any) {\n const newExpTime = this.computeTokenExpiration(session.tokens.idToken);\n this.consumingProjectAuthService.accessToken = session.tokens.accessToken.toString();\n this.consumingProjectAuthService.IdToken = session.tokens.idToken.toString();\n localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\n this.refreshAccessToken();\n this.loginErrorMessage = null;\n }\n\n setAccessAndIDTokens(token: AuthTokens) {\n this.consumingProjectAuthService.accessToken = token?.accessToken?.toString();\n this.consumingProjectAuthService.IdToken = token?.idToken;\n }\n\n async getAllCognitoTokenAndGroups(token: AuthTokens) {\n this.setAccessAndIDTokens(token);\n if (\"cognito:groups\" in token.accessToken.payload) {\n const userGroupsInCognitoJWT: any = token.accessToken.payload[\"cognito:groups\"];\n this.aclService.userGroupsInCognitoJWT = userGroupsInCognitoJWT;\n } else {\n this.aclService.userGroupsInCognitoJWT = [];\n }\n }\n\n // refreshAccessToken() {\n // const accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\n // let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration, 10) : 0;\n // this.accessTokenTimerId = setInterval(() => {\n // let counter = 1000;\n // const delayFunction = setTimeout(async () => {\n // try {\n // const session = await fetchAuthSession();\n // const token = session.tokens;\n // if (token) {\n // this.consumingProjectAuthService.getAllCognitoTokenAndGroups(token);\n // let newExpTime = this.computeTokenExpiration(this.consumingProjectAuthService.IdToken);\n\n // if (newExpTime <= 0) {\n // newExpTime = 1000;\n // counter = 0;\n // if (delayFunction) {\n // clearInterval(delayFunction);\n // }\n // }\n // expTime = newExpTime;\n // localStorage.setItem(\"accessTokenExpiration\", newExpTime.toString());\n // clearInterval(this.accessTokenTimerId);\n // this.refreshAccessToken();\n // } else {\n // this.toastr.error(LoginConstant.sessionExpiredError);\n // this.handleSignOut();\n // }\n // } catch (error) {\n // this.toastr.error(LoginConstant.sessionExpiredError);\n // this.handleSignOut();\n // }\n // }, counter);\n // }, expTime);\n // }\n\n refreshAccessToken() {\n const accessTokenExpiration = localStorage.getItem(\"accessTokenExpiration\");\n let expTime = accessTokenExpiration ? parseInt(accessTokenExpiration, 10) : 0;\n\n // Clean up any existing subscription\n if (this.accessTokenTimerSubscription) {\n this.accessTokenTimerSubscription.unsubscribe();\n }\n\n // Create an observable that emits at the expiration time interval\n this.accessTokenTimerSubscription = interval(expTime)\n .pipe(\n switchMap(async () => {\n try {\n const session = await fetchAuthSession({ forceRefresh: true });\n const token = session.tokens;\n\n if (!token) {\n throw new Error(LoginConstant.sessionExpiredError);\n } else {\n this.consumingProjectAuthService.getAllCognitoTokenAndGroups(token);\n expTime = this.computeTokenExpiration(this.consumingProjectAuthService.IdToken);\n localStorage.setItem(\"accessTokenExpiration\", expTime.toString());\n return true;\n }\n } catch (error) {\n this.toastr.error(LoginConstant.sessionExpiredError);\n this.handleSignOut();\n throw error;\n }\n }),\n catchError((error: any) => {\n this.toastr.error(LoginConstant.sessionExpiredError);\n this.handleSignOut();\n return of(false);\n }),\n )\n .subscribe((success) => {\n if (success) {\n // Restart the timer with the new expiration time\n\n this.refreshAccessToken();\n }\n });\n }\n\n async changePassword(newPassword: string) {\n try {\n const inputParam = {\n challengeResponse: newPassword,\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const data = await confirmSignIn(inputParam);\n const { username } = await getCurrentUser();\n const session = await fetchAuthSession();\n this.onLoginOrSetNewPassword(session);\n this.consumingProjectAuthService.onPasswordUpdate(username);\n this.router.navigate([LoginConstant.loginPageUrl]);\n this.consumingProjectAuthService.newPasswordSetThenUpdateToBackend(username);\n } catch (err) {\n this.setNewPasswordErrorMessage = LoginConstant.sessionExpired;\n this.setNewPasswordButtonMessage = LoginConstant.loginAgain;\n }\n }\n\n async onForgotPasswordGenerateOTP(email: string) {\n const username = email;\n this.consumingProjectAuthService.userName = email;\n try {\n const result: any = await resetPassword({ username });\n this.verifyAndSetNewPasswordMessage =\n LoginConstant.verifyAndSetNewPasswordMessage +\n (result?.nextStep?.codeDeliveryDetails?.destination ?? \"\") +\n LoginConstant.pleaseEnterItBelow;\n this.router.navigate([LoginConstant.verifyAndSetNewPasswordUrl]);\n } catch (err) {\n // do nothing\n }\n }\n\n async verifyCode(confirmationCode: string, newPassword: string) {\n try {\n confirmResetPassword({\n username: this.consumingProjectAuthService.userName,\n newPassword,\n confirmationCode,\n }).then(\n (response) => {\n this.expiryAllExistingCurrentSession(this.consumingProjectAuthService.userName, newPassword);\n },\n (err) => {\n this.noOfAttempts += 1;\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);\n },\n );\n } catch (err) {\n this.noOfAttempts += 1;\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(err, this.noOfAttempts);\n } finally {\n this.forgotPasswordAndGlobalSignoutLoader = false;\n }\n }\n\n forgotPasswordError(err: any, noOfAttempts: number) {\n let errorMessage = \"\";\n const errorThrown = JSON.stringify(err);\n if (errorThrown.includes(\"LimitExceededException\")) {\n this.sessionLocked = true;\n errorMessage = LoginConstant.attemptLimitExceeded;\n } else if (errorThrown.includes(\"ExpiredCodeException\")) {\n errorMessage = LoginConstant.sessionExpired;\n this.verifyAndSetNewPasswordButton = LoginConstant.regenerateOtp;\n } else {\n errorMessage = `${LoginConstant.attempt} ${noOfAttempts}${LoginConstant.attemptMessage}`;\n }\n return errorMessage;\n }\n\n async signInWithSSO() {\n const session = await fetchAuthSession();\n if (session?.tokens) {\n await this.handleSignOut().then((response) => {\n this.consumingProjectAuthService.signInWithSSO();\n });\n } else {\n this.consumingProjectAuthService.signInWithSSO();\n }\n }\n\n async handleSignOut() {\n try {\n await signOut({ global: false });\n await this.sessionTimeout();\n } catch (error) {\n // do nothing\n }\n }\n\n expiryAllExistingCurrentSession(username: string, newPassword: string) {\n this.loginErrorMessage = null;\n this.onLoginInCogntioToGetAccessToken(username, newPassword);\n }\n\n async onLoginInCogntioToGetAccessToken(username: string, password: string) {\n try {\n const { nextStep } = await signIn({ username, password });\n switch (nextStep?.signInStep) {\n case \"DONE\":\n this.setAccessAndIDTokens(await (await fetchAuthSession()).tokens);\n this.consumingProjectAuthService.onPasswordUpdate(this.consumingProjectAuthService.userName);\n this.onCallGlobalSignout();\n break;\n // no default\n }\n } catch (error: any) {\n this.noOfAttempts += 1;\n this.verifyAndSetNewPasswordErrorMessage = this.forgotPasswordError(error, this.noOfAttempts);\n }\n }\n\n async onCallGlobalSignout() {\n try {\n await signOut({ global: true });\n this.forgotPasswordAndGlobalSignoutLoader = false;\n this.router.navigate([LoginConstant.loginPageUrl]);\n } catch (error) {\n // do nothing\n }\n }\n}\n","import { NgTemplateOutlet } from \"@angular/common\";\nimport { Component } from \"@angular/core\";\n\n@Component({\n selector: \"anna-cognito-lib-powered-by-logo-template\",\n templateUrl: \"./powered-by-logo-template.component.html\",\n styleUrls: [\"./powered-by-logo-template.component.scss\"],\n imports: [NgTemplateOutlet]\n})\nexport class PoweredByLogoTemplateComponent {}\n","<ng-container [ngTemplateOutlet]=\"poweredBySurewavesLogo\"> </ng-container>\n\n<ng-template #poweredBySurewavesLogo>\n <svg\n width=\"230px\"\n height=\"69px\"\n viewBox=\"0 0 230 69\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <defs>\n <path\n d=\"M2.576,1.064 C3.93866667,1.064 4.98633333,1.323 5.719,1.841 C6.45166667,2.359 6.818,3.13133333 6.818,4.158 C6.818,4.718 6.71766667,5.19633333 6.517,5.593 C6.31633333,5.98966667 6.027,6.31166667 5.649,6.559 C5.271,6.80633333 4.81133333,6.986 4.27,7.098 C3.72866667,7.21 3.11733333,7.266 2.436,7.266 L1.358,7.266 L1.358,10.864 L0,10.864 L0,1.302 C0.382666667,1.20866667 0.809666667,1.14566667 1.281,1.113 C1.75233333,1.08033333 2.184,1.064 2.576,1.064 Z M2.688,2.254 C2.10933333,2.254 1.666,2.268 1.358,2.296 L1.358,6.104 L2.38,6.104 C2.84666667,6.104 3.26666667,6.07366667 3.64,6.013 C4.01333333,5.95233333 4.32833333,5.84966667 4.585,5.705 C4.84166667,5.56033333 5.04,5.362 5.18,5.11 C5.32,4.858 5.39,4.536 5.39,4.144 C5.39,3.77066667 5.31766667,3.46266667 5.173,3.22 C5.02833333,2.97733333 4.83233333,2.78366667 4.585,2.639 C4.33766667,2.49433333 4.05066667,2.394 3.724,2.338 C3.39733333,2.282 3.052,2.254 2.688,2.254 Z\"\n id=\"path-1\"\n ></path>\n <path\n d=\"M14.56,7.224 C14.56,7.80266667 14.476,8.32533333 14.308,8.792 C14.14,9.25866667 13.9043333,9.66 13.601,9.996 C13.2976667,10.332 12.936,10.591 12.516,10.773 C12.096,10.955 11.6386667,11.046 11.144,11.046 C10.6493333,11.046 10.192,10.955 9.772,10.773 C9.352,10.591 8.99033333,10.332 8.687,9.996 C8.38366667,9.66 8.148,9.25866667 7.98,8.792 C7.812,8.32533333 7.728,7.80266667 7.728,7.224 C7.728,6.65466667 7.812,6.13433333 7.98,5.663 C8.148,5.19166667 8.38366667,4.788 8.687,4.452 C8.99033333,4.116 9.352,3.857 9.772,3.675 C10.192,3.493 10.6493333,3.402 11.144,3.402 C11.6386667,3.402 12.096,3.493 12.516,3.675 C12.936,3.857 13.2976667,4.116 13.601,4.452 C13.9043333,4.788 14.14,5.19166667 14.308,5.663 C14.476,6.13433333 14.56,6.65466667 14.56,7.224 Z M13.202,7.224 C13.202,6.40266667 13.0176667,5.75166667 12.649,5.271 C12.2803333,4.79033333 11.7786667,4.55 11.144,4.55 C10.5093333,4.55 10.0076667,4.79033333 9.639,5.271 C9.27033333,5.75166667 9.086,6.40266667 9.086,7.224 C9.086,8.04533333 9.27033333,8.69633333 9.639,9.177 C10.0076667,9.65766667 10.5093333,9.898 11.144,9.898 C11.7786667,9.898 12.2803333,9.65766667 12.649,9.177 C13.0176667,8.69633333 13.202,8.04533333 13.202,7.224 Z\"\n id=\"path-2\"\n ></path>\n <path\n d=\"M22.162,10.864 C21.9006667,10.192 21.623,9.42433333 21.329,8.561 C21.035,7.69766667 20.7666667,6.79933333 20.524,5.866 C20.2813333,6.79933333 20.0153333,7.69766667 19.726,8.561 C19.4366667,9.42433333 19.1613333,10.192 18.9,10.864 L17.766,10.864 C17.3366667,9.90266667 16.9166667,8.806 16.506,7.574 C16.0953333,6.342 15.708,5.012 15.344,3.584 L16.744,3.584 C16.8373333,4.02266667 16.9493333,4.49866667 17.08,5.012 C17.2106667,5.52533333 17.3483333,6.03866667 17.493,6.552 C17.6376667,7.06533333 17.7893333,7.56 17.948,8.036 C18.1066667,8.512 18.256,8.92733333 18.396,9.282 C18.5546667,8.84333333 18.711,8.379 18.865,7.889 C19.019,7.399 19.166,6.90433333 19.306,6.405 C19.446,5.90566667 19.579,5.41566667 19.705,4.935 C19.831,4.45433333 19.9406667,4.004 20.034,3.584 L21.112,3.584 C21.196,4.004 21.2986667,4.45433333 21.42,4.935 C21.5413333,5.41566667 21.672,5.90566667 21.812,6.405 C21.952,6.90433333 22.099,7.399 22.253,7.889 C22.407,8.379 22.5633333,8.84333333 22.722,9.282 C22.862,8.92733333 23.009,8.512 23.163,8.036 C23.317,7.56 23.4686667,7.06533333 23.618,6.552 C23.7673333,6.03866667 23.9073333,5.52533333 24.038,5.012 C24.1686667,4.49866667 24.2806667,4.02266667 24.374,3.584 L25.718,3.584 C25.354,5.012 24.9666667,6.342 24.556,7.574 C24.1453333,8.806 23.7253333,9.90266667 23.296,10.864 L22.162,10.864 Z\"\n id=\"path-3\"\n ></path>\n <path\n d=\"M26.684,7.238 C26.684,6.594 26.7773333,6.03166667 26.964,5.551 C27.1506667,5.07033333 27.398,4.67133333 27.706,4.354 C28.014,4.03666667 28.3686667,3.79866667 28.77,3.64 C29.1713333,3.48133333 29.582,3.402 30.002,3.402 C30.982,3.402 31.7333333,3.70766667 32.256,4.319 C32.7786667,4.93033333 33.04,5.86133333 33.04,7.112 C33.04,7.168 33.04,7.24033333 33.04,7.329 C33.04,7.41766667 33.0353333,7.49933333 33.026,7.574 L28.042,7.574 C28.098,8.33 28.3173333,8.904 28.7,9.296 C29.0826667,9.688 29.68,9.884 30.492,9.884 C30.9493333,9.884 31.3343333,9.84433333 31.647,9.765 C31.9596667,9.68566667 32.1953333,9.60866667 32.354,9.534 L32.536,10.626 C32.3773333,10.71 32.0996667,10.7986667 31.703,10.892 C31.3063333,10.9853333 30.856,11.032 30.352,11.032 C29.7173333,11.032 29.169,10.9363333 28.707,10.745 C28.245,10.5536667 27.8646667,10.29 27.566,9.954 C27.2673333,9.618 27.0456667,9.219 26.901,8.757 C26.7563333,8.295 26.684,7.78866667 26.684,7.238 Z M31.682,6.524 C31.6913333,5.936 31.5443333,5.453 31.241,5.075 C30.9376667,4.697 30.52,4.508 29.988,4.508 C29.6893333,4.508 29.4256667,4.56633333 29.197,4.683 C28.9683333,4.79966667 28.7746667,4.95133333 28.616,5.138 C28.4573333,5.32466667 28.3336667,5.53933333 28.245,5.782 C28.1563333,6.02466667 28.098,6.272 28.07,6.524 L31.682,6.524 Z\"\n id=\"path-4\"\n ></path>\n <path\n d=\"M37.604,3.43 C37.716,3.43 37.8443333,3.437 37.989,3.451 C38.1336667,3.465 38.276,3.48366667 38.416,3.507 C38.556,3.53033333 38.6843333,3.55366667 38.801,3.577 C38.9176667,3.60033333 39.004,3.62133333 39.06,3.64 L38.836,4.774 C38.7333333,4.73666667 38.563,4.69233333 38.325,4.641 C38.087,4.58966667 37.7813333,4.564 37.408,4.564 C37.1653333,4.564 36.925,4.58966667 36.687,4.641 C36.449,4.69233333 36.2926667,4.72733333 36.218,4.746 L36.218,10.864 L34.916,10.864 L34.916,3.892 C35.224,3.78 35.6066667,3.675 36.064,3.577 C36.5213333,3.479 37.0346667,3.43 37.604,3.43 Z\"\n id=\"path-5\"\n ></path>\n <path\n d=\"M39.914,7.238 C39.914,6.594 40.0073333,6.03166667 40.194,5.551 C40.3806667,5.07033333 40.628,4.67133333 40.936,4.354 C41.244,4.03666667 41.5986667,3.79866667 42,3.64 C42.4013333,3.48133333 42.812,3.402 43.232,3.402 C44.212,3.402 44.9633333,3.70766667 45.486,4.319 C46.0086667,4.93033333 46.27,5.86133333 46.27,7.112 C46.27,7.168 46.27,7.24033333 46.27,7.329 C46.27,7.41766667 46.2653333,7.49933333 46.256,7.574 L41.272,7.574 C41.328,8.33 41.5473333,8.904 41.93,9.296 C42.3126667,9.688 42.91,9.884 43.722,9.884 C44.1793333,9.884 44.5643333,9.84433333 44.877,9.765 C45.1896667,9.68566667 45.4253333,9.60866667 45.584,9.534 L45.766,10.626 C45.6073333,10.71 45.3296667,10.7986667 44.933,10.892 C44.5363333,10.9853333 44.086,11.032 43.582,11.032 C42.9473333,11.032 42.399,10.9363333 41.937,10.745 C41.475,10.5536667 41.0946667,10.29 40.796,9.954 C40.4973333,9.618 40.2756667,9.219 40.131,8.757 C39.9863333,8.295 39.914,7.78866667 39.914,7.238 Z M44.912,6.524 C44.9213333,5.936 44.7743333,5.453 44.471,5.075 C44.1676667,4.697 43.75,4.508 43.218,4.508 C42.9193333,4.508 42.6556667,4.56633333 42.427,4.683 C42.1983333,4.79966667 42.0046667,4.95133333 41.846,5.138 C41.6873333,5.32466667 41.5636667,5.53933333 41.475,5.782 C41.3863333,6.02466667 41.328,6.272 41.3,6.524 L44.912,6.524 Z\"\n id=\"path-6\"\n ></path>\n <path\n d=\"M52.85,5.124 C52.6913333,4.99333333 52.4626667,4.86733333 52.164,4.746 C51.8653333,4.62466667 51.5386667,4.564 51.184,4.564 C50.8106667,4.564 50.491,4.63166667 50.225,4.767 C49.959,4.90233333 49.742,5.089 49.574,5.327 C49.406,5.565 49.2846667,5.84733333 49.21,6.174 C49.1353333,6.50066667 49.098,6.85066667 49.098,7.224 C49.098,8.07333333 49.308,8.729 49.728,9.191 C50.148,9.653 50.708,9.884 51.408,9.884 C51.7626667,9.884 52.059,9.86766667 52.297,9.835 C52.535,9.80233333 52.7193333,9.76733333 52.85,9.73 L52.85,5.124 Z M52.85,0.224 L54.152,0 L54.152,10.654 C53.8533333,10.738 53.4706667,10.822 53.004,10.906 C52.5373333,10.99 52.0006667,11.032 51.394,11.032 C50.834,11.032 50.33,10.9433333 49.882,10.766 C49.434,10.5886667 49.0513333,10.3366667 48.734,10.01 C48.4166667,9.68333333 48.1716667,9.28433333 47.999,8.813 C47.8263333,8.34166667 47.74,7.812 47.74,7.224 C47.74,6.664 47.8123333,6.15066667 47.957,5.684 C48.1016667,5.21733333 48.314,4.816 48.594,4.48 C48.874,4.144 49.217,3.88266667 49.623,3.696 C50.029,3.50933333 50.4933333,3.416 51.016,3.416 C51.436,3.416 51.807,3.472 52.129,3.584 C52.451,3.696 52.6913333,3.80333333 52.85,3.906 L52.85,0.224 Z\"\n id=\"path-7\"\n ></path>\n <path\n d=\"M60.928,3.906 C61.0866667,3.80333333 61.327,3.696 61.649,3.584 C61.971,3.472 62.342,3.416 62.762,3.416 C63.2846667,3.416 63.749,3.50933333 64.155,3.696 C64.561,3.88266667 64.904,4.144 65.184,4.48 C65.464,4.816 65.6763333,5.21733333 65.821,5.684 C65.9656667,6.15066667 66.038,6.664 66.038,7.224 C66.038,7.812 65.9516667,8.34166667 65.779,8.813 C65.6063333,9.28433333 65.3613333,9.68333333 65.044,10.01 C64.7266667,10.3366667 64.344,10.5886667 63.896,10.766 C63.448,10.9433333 62.944,11.032 62.384,11.032 C61.7773333,11.032 61.2406667,10.99 60.774,10.906 C60.3073333,10.822 59.9246667,10.738 59.626,10.654 L59.626,0.224 L60.928,0 L60.928,3.906 Z M60.928,9.73 C61.0586667,9.76733333 61.243,9.80233333 61.481,9.835 C61.719,9.86766667 62.0153333,9.884 62.37,9.884 C63.07,9.884 63.63,9.653 64.05,9.191 C64.47,8.729 64.68,8.07333333 64.68,7.224 C64.68,6.85066667 64.6426667,6.50066667 64.568,6.174 C64.4933333,5.84733333 64.372,5.565 64.204,5.327 C64.036,5.089 63.819,4.90233333 63.553,4.767 C63.287,4.63166667 62.9673333,4.564 62.594,4.564 C62.2393333,4.564 61.9126667,4.62466667 61.614,4.746 C61.3153333,4.86733333 61.0866667,4.99333333 60.928,5.124 L60.928,9.73 Z\"\n id=\"path-8\"\n ></path>\n <path\n d=\"M66.836,12.222 C66.9386667,12.2686667 67.0716667,12.313 67.235,12.355 C67.3983333,12.397 67.5593333,12.418 67.718,12.418 C68.2313333,12.418 68.6326667,12.3036667 68.922,12.075 C69.2113333,11.8463333 69.4726667,11.4753333 69.706,10.962 C69.118,9.842 68.5696667,8.65433333 68.061,7.399 C67.5523333,6.14366667 67.13,4.872 66.794,3.584 L68.194,3.584 C68.2966667,4.004 68.4203333,4.45666667 68.565,4.942 C68.7096667,5.42733333 68.8706667,5.92666667 69.048,6.44 C69.2253333,6.95333333 69.4166667,7.46666667 69.622,7.98 C69.8273333,8.49333333 70.042,8.988 70.266,9.464 C70.6206667,8.484 70.9286667,7.51333333 71.19,6.552 C71.4513333,5.59066667 71.6986667,4.60133333 71.932,3.584 L73.276,3.584 C72.94,4.956 72.5666667,6.27433333 72.156,7.539 C71.7453333,8.80366667 71.302,9.98666667 70.826,11.088 C70.6393333,11.508 70.4456667,11.8696667 70.245,12.173 C70.0443333,12.4763333 69.8226667,12.726 69.58,12.922 C69.3373333,13.118 69.0643333,13.2626667 68.761,13.356 C68.4576667,13.4493333 68.1146667,13.496 67.732,13.496 C67.6293333,13.496 67.522,13.489 67.41,13.475 C67.298,13.461 67.1883333,13.4423333 67.081,13.419 C66.9736667,13.3956667 66.8756667,13.37 66.787,13.342 C66.6983333,13.314 66.6353333,13.2906667 66.598,13.272 L66.836,12.222 Z\"\n id=\"path-9\"\n ></path>\n </defs>\n <g\n id=\"Page-1\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g\n id=\"Group-Copy-2\"\n transform=\"translate(0.338000, 0.500000)\"\n >\n <g\n id=\"Powered-by\"\n transform=\"translate(0.000000, 45.636000)\"\n fill-rule=\"nonzero\"\n opacity=\"0.900000036\"\n >\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-1\"></use>\n <use xlink:href=\"#path-1\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-2\"></use>\n <use xlink:href=\"#path-2\"></use>\n </g>\n <g\n id=\"Path\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-3\"></use>\n <use xlink:href=\"#path-3\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-4\"></use>\n <use xlink:href=\"#path-4\"></use>\n </g>\n <g\n id=\"Path\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-5\"></use>\n <use xlink:href=\"#path-5\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-6\"></use>\n <use xlink:href=\"#path-6\"></use>\n </g>\n <g\n id=\"Shape\"\n fill=\"#6E6E6E\"\n >\n <use xlink:href=\"#path-7\"></use>\n <use xlink:href=\"#path-7\"></use>\n </g>\n <g id=\"Shape\">\n <use\n fill=\"#FFFFFF\"\n xlink:href=\"#path-8\"\n ></use>\n <use\n fill=\"#6E6E6E\"\n xlink:href=\"#path-8\"\n ></use>\n </g>\n <g id=\"Path\">\n <use\n fill=\"#FFFFFF\"\n xlink:href=\"#path-9\"\n ></use>\n <use\n fill=\"#6E6E6E\"\n xlink:href=\"#path-9\"\n ></use>\n </g>\n </g>\n <image\n id=\"Bitmap\"\n x=\"77.662\"\n y=\"0\"\n width=\"151.111111\"\n height=\"68\"\n xlink:href=\"data:image/png;base64,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\"\n ></image>\n </g>\n </g>\n </svg>\n</ng-template>\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"anna-cognito-lib-surewaves-year-logo\",\n templateUrl: \"./surewaves-year-logo.component.html\",\n styleUrls: [\"./surewaves-year-logo.component.scss\"],\n standalone: true,\n})\nexport class SurewavesYearLogoComponent implements OnInit {\n currentYear: number;\n ngOnInit(): void {\n this.currentYear = new Date().getFullYear();\n }\n}\n","<div class=\"surewaves-year-logo\">© SureWaves {{ currentYear }}. All rights reserved.</div>\n","import { Component, Inject } from \"@angular/core\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\n\n@Component({\n selector: \"anna-cognito-lib-version-and-term-policy\",\n templateUrl: \"./version-and-term-policy.component.html\",\n styleUrls: [\"./version-and-term-policy.component.scss\"],\n standalone: true,\n})\nexport class VersionAndTermPolicyComponent {\n constructor(@Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService) {}\n}\n","<p class=\"verison-and-policy\">Version {{ consumingProjectConfigService.appGenericConfig.currentAnnaVersion }}</p>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf, NgOptimizedImage } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { RouterLink } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../../config/sso-login-service.token\";\n// User defined import statements\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button/spinner-button.directive\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\n@Component({\n selector: \"anna-cognito-lib-anna-login\",\n templateUrl: \"./anna-login.component.html\",\n styleUrls: [\"./anna-login.component.scss\"],\n imports: [\n NgIf,\n NgOptimizedImage,\n FormsModule,\n ReactiveFormsModule,\n NgClass,\n RouterLink,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class AnnaLoginComponent implements OnInit {\n loginForm: FormGroup;\n constants: typeof LoginConstant;\n\n constructor(\n public authService: AnnaLibAuthService,\n private fb: FormBuilder,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n @Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService,\n ) {}\n\n ngOnInit() {\n this.authService.consumingProjectAuthService.isLoggingIn = false;\n this.consumingProjectSSOLoginService.loggedInViaSso = false;\n this.constants = LoginConstant;\n this.onIntialiseForm();\n }\n\n onIntialiseForm() {\n this.loginForm = this.fb.group({\n username: [null],\n password: [null],\n });\n }\n\n OnLogin() {\n this.authService.consumingProjectAuthService.isLoggingIn = true;\n const username = this.loginForm.controls.username.value;\n const password = this.loginForm.controls.password.value;\n this.authService.handleSignIn({ username, password });\n }\n}\n","<div class=\"main\">\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\n <section *ngIf=\"constants.forgotPassword\">\n <header>\n <img\n src=\"{{ consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl }}\"\n width=\"170\"\n height=\"72\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <form\n [formGroup]=\"loginForm\"\n (ngSubmit)=\"OnLogin()\"\n >\n <div\n id=\"alert-div\"\n *ngIf=\"authService.loginErrorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p>{{ authService.loginErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"username\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"\n consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterUsername\n \"\n autocomplete=\"username\"\n autofocus\n />\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.password\"\n autocomplete=\"current-password\"\n autofocus\n />\n\n <a\n tabindex=\"4\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >{{ constants.forgotPassword }}</a\n >\n <button\n tabindex=\"3\"\n class=\"login-btn\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\n [spinnerButtonText]=\"constants.login\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { CommonModule, NgClass, NgIf, NgOptimizedImage } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { RouterLink } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\n@Component({\n selector: \"anna-cognito-catc-login\",\n imports: [\n CommonModule,\n NgIf,\n NgOptimizedImage,\n FormsModule,\n ReactiveFormsModule,\n NgClass,\n RouterLink,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ],\n templateUrl: \"./catc-login.component.html\",\n styleUrls: [\"./catc-login.component.scss\"]\n})\nexport class CatcLoginComponent implements OnInit {\n loginForm: FormGroup;\n constants: typeof LoginConstant;\n emailPattern = /\\S+@\\S+\\.\\S+/;\n\n constructor(\n public authService: AnnaLibAuthService,\n private fb: FormBuilder,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.authService.consumingProjectAuthService.isLoggingIn = false;\n this.constants = LoginConstant;\n this.onIntialiseForm();\n }\n\n onIntialiseForm() {\n this.loginForm = this.fb.group({\n email: [null, [Validators.required, Validators.pattern(this.emailPattern)]],\n password: [null],\n });\n }\n\n OnLogin() {\n this.authService.consumingProjectAuthService.isLoggingIn = true;\n const username = this.loginForm.controls.email.value;\n const password = this.loginForm.controls.password.value;\n this.authService.handleSignIn({ username, password });\n }\n}\n","<div class=\"main\">\n <!-- Load login page when all constant variable are intiated otherwise it will show a glitch. that's why ngIf check of constants.forgotPassword -->\n <section>\n <header>\n <img\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"145\"\n height=\"45.03\"\n alt=\"catc Logo\"\n priority\n />\n </header>\n <article>\n <form\n [formGroup]=\"loginForm\"\n (ngSubmit)=\"OnLogin()\"\n >\n <div\n id=\"alert-div\"\n *ngIf=\"authService.loginErrorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p>{{ authService.loginErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"email\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.enterEmail\"\n autocomplete=\"email\"\n autofocus\n />\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [ngClass]=\"{ 'input-invalid': authService.loginErrorMessage }\"\n [placeholder]=\"constants.password\"\n autocomplete=\"current-password\"\n autofocus\n />\n\n <a\n tabindex=\"4\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >{{ constants.forgotPassword }}</a\n >\n <button\n tabindex=\"3\"\n class=\"login-btn\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"authService.consumingProjectAuthService.isLoggingIn\"\n [spinnerButtonText]=\"constants.login\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { NgIf, NgOptimizedImage } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\n@Component({\n selector: \"anna-cognito-lib-sso-login\",\n templateUrl: \"./sso-login.component.html\",\n styleUrls: [\"./sso-login.component.scss\"],\n imports: [\n NgIf,\n NgOptimizedImage,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class SsoLoginComponent implements OnInit {\n constants: typeof LoginConstant;\n\n constructor(\n public authService: AnnaLibAuthService,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n }\n\n signInWithSSO() {\n this.authService.signInWithSSO();\n }\n}\n","<div class=\"main\">\n <section *ngIf=\"constants.forgotPassword\">\n <header>\n <img\n [ngSrc]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"170\"\n height=\"72\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <p class=\"sub-title\">Login</p>\n <p>Sign in using your corporate ID (SSO)</p>\n <button\n class=\"login-btn\"\n (click)=\"signInWithSSO()\"\n >\n Login with Duo\n </button>\n <div class=\"dashed-line\"></div>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { NgIf } from \"@angular/common\";\nimport { Component, Inject } from \"@angular/core\";\n\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../../config/sso-login-service.token\";\nimport { AnnaLoginComponent } from \"../anna-login/anna-login.component\";\nimport { SsoLoginComponent } from \"../sso-login/sso-login.component\";\n\n@Component({\n selector: \"anna-cognito-lib-cognito-and-sso-login-container\",\n templateUrl: \"./cognito-and-sso-login-container.component.html\",\n styleUrls: [\"./cognito-and-sso-login-container.component.scss\"],\n imports: [NgIf, AnnaLoginComponent, SsoLoginComponent]\n})\nexport class CognitoAndSSOLoginContainerComponent {\n constructor(@Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService) {}\n}\n","<anna-cognito-lib-anna-login *ngIf=\"!consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-anna-login>\n<anna-cognito-lib-sso-login *ngIf=\"consumingProjectSSOLoginService?.isSsoIntegrated\"></anna-cognito-lib-sso-login>\n","export class AuthenticationData {\n Username: string;\n Password: string;\n constructor(Username: string, Password: string) {\n this.Username = Username;\n this.Password = Password;\n }\n}\n\nexport class UserPoolInformation {\n UserPoolId: string;\n ClientId: string;\n constructor(UserPoolId: string, ClientId: string) {\n this.UserPoolId = UserPoolId;\n this.ClientId = ClientId;\n }\n}\n\nexport class UsernameInfo {\n isUsernameAvailable: boolean;\n constructor(object: { isUsernameAvailable: boolean }) {\n this.isUsernameAvailable = object.isUsernameAvailable;\n }\n}\n\nexport class UserState {\n userStatus: string;\n isUserWithTempPassword: boolean;\n constructor(userState: string) {\n this.userStatus = userState;\n this.isUserWithTempPassword = userState === \"FORCE_CHANGE_PASSWORD\";\n }\n}\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, Inject, OnInit, Optional } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\n// Third party import statements\nimport { ToastrService } from \"ngx-toastr\";\nimport { forkJoin } from \"rxjs\";\n\nimport { AUTH_SERVICE_TOKEN, IAuthService } from \"../../config/auth-service.token\";\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../../config/sso-login-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button/spinner-button.directive\";\n// User defined import statements\nimport { UsernameInfo, UserState } from \"../../models/auth.model\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\ntype PasswordType = { value: string; status: string };\n@Component({\n selector: \"anna-cognito-lib-forgot-password\",\n templateUrl: \"./forgot-password.component.html\",\n styleUrls: [\"./forgot-password.component.scss\"],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n NgClass,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ],\n})\nexport class ForgotPasswordComponent implements OnInit {\n errorMessage: string;\n verifyRegisteredEmail: FormGroup;\n passwordNotMatching = false;\n constants: typeof LoginConstant;\n password: PasswordType = { value: null, status: null };\n confirmPassword: PasswordType = { value: null, status: null };\n infoMessageToRedirectLogin: string = null;\n isLoading: boolean = false;\n emailPattern = /\\S+@\\S+\\.\\S+/;\n\n constructor(\n private authService: AnnaLibAuthService,\n private fb: FormBuilder,\n private toastr: ToastrService,\n private router: Router,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n @Inject(AUTH_SERVICE_TOKEN) public consumingProjectAuthService: IAuthService,\n @Optional() @Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService,\n ) {}\n\n ngOnInit() {\n this.infoMessageToRedirectLogin = null;\n this.constants = LoginConstant;\n this.onIntialiseForm();\n if (this.consumingProjectAuthService.userName) {\n this.onUpdateForm();\n }\n this.authService.forgotPasswordAndGlobalSignoutLoader = false;\n }\n\n onIntialiseForm() {\n if (this.consumingProjectConfigService.isCatcApplication) {\n this.verifyRegisteredEmail = this.fb.group({\n email: [null, [Validators.required, Validators.pattern(this.emailPattern)]],\n });\n } else {\n this.verifyRegisteredEmail = this.fb.group({\n email: [null, [Validators.required]],\n });\n }\n }\n\n onUpdateForm() {\n this.verifyRegisteredEmail.patchValue({\n email: this.consumingProjectAuthService.userName,\n });\n }\n\n isFormValid() {\n return this.verifyRegisteredEmail.valid;\n }\n\n onLoginOrGetOtpButtonClick() {\n if (this.verifyRegisteredEmail.get(\"email\")?.value === \"\") {\n this.errorMessage = this.constants.userNotFound;\n return;\n }\n if (this.infoMessageToRedirectLogin) {\n this.router.navigate([LoginConstant.loginPageUrl]);\n } else {\n this.onVerifyRegisteredEmail();\n }\n }\n\n onVerifyRegisteredEmail() {\n this.isLoading = true;\n this.errorMessage = null;\n this.infoMessageToRedirectLogin = null;\n const username = this.verifyRegisteredEmail.controls.email.value;\n\n const isUserNameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);\n const isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);\n\n forkJoin([isUserNameAvailable, isUsernameTempPasswordSet]).subscribe({\n next: (result) => {\n const { isUsernameAvailable } = new UsernameInfo(result[0]);\n const { isUserWithTempPassword } = new UserState(result[1]);\n this.onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username);\n },\n error: (error) => {\n if (error.status === 400) {\n this.errorMessage = this.constants.userNotFound;\n } else {\n this.toastr.error(LoginConstant.apiFailErrorMessage);\n }\n this.isLoading = false;\n },\n });\n }\n\n onGettingUserStatus(isUsernameAvailable: boolean, isUserWithTempPassword: boolean, username: string) {\n if (!isUsernameAvailable) {\n if (!isUserWithTempPassword) {\n this.authService.onForgotPasswordGenerateOTP(username);\n } else {\n this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;\n this.isLoading = false;\n }\n } else {\n this.errorMessage = this.constants.userNotFound;\n this.isLoading = false;\n }\n }\n}\n","<div class=\"main\">\n <section [ngClass]=\"{ 'catc-forget-password': consumingProjectConfigService?.isCatcApplication }\">\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n alt=\"Anna Logo\"\n width=\"170\"\n height=\"72\"\n priority\n />\n </header>\n <article>\n <form [formGroup]=\"verifyRegisteredEmail\">\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\n <div id=\"heading\">\n {{ constants.forgotPasswordHeading }}\n </div>\n <p>\n {{\n consumingProjectConfigService.isCatcApplication\n ? constants.PleaseEnterYourEmailMessage\n : consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.PleaseEnterYourUsercodeMessage\n : constants.PleaseEnterYourUsernameMessage\n }}\n </p>\n </ng-container>\n <div\n id=\"alert-div\"\n *ngIf=\"errorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p id=\"alert-msg\">{{ errorMessage }}</p>\n </div>\n <div\n id=\"info-div\"\n *ngIf=\"infoMessageToRedirectLogin\"\n >\n <i class=\"mi mdi-info\"></i>\n <p>{{ infoMessageToRedirectLogin }}</p>\n </div>\n\n <input\n *ngIf=\"!infoMessageToRedirectLogin\"\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"email\"\n [placeholder]=\"\n consumingProjectConfigService.isCatcApplication\n ? constants.enterEmail\n : consumingProjectSSOLoginService?.isSsoIntegrated\n ? constants.enterUserCode\n : constants.enterUsername\n \"\n [ngClass]=\"{\n 'input-invalid':\n (verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors) ||\n errorMessage\n }\"\n />\n\n <button\n tabindex=\"2\"\n type=\"submit\"\n class=\"login-btn\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"isLoading\"\n (click)=\"onLoginOrGetOtpButtonClick()\"\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from \"@angular/core\";\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n Validators,\n} from \"@angular/forms\";\n// Third party import statements\nimport { debounceTime } from \"rxjs/operators\";\n\n// User defined import statements\nimport { LoginConstant } from \"../../constants/loginConstant\";\n\n@Component({\n selector: \"anna-cognito-lib-password-matching\",\n templateUrl: \"./password-matching.component.html\",\n styleUrls: [\"./password-matching.component.scss\"],\n imports: [FormsModule, ReactiveFormsModule, NgIf, NgClass]\n})\nexport class PasswordMatchingComponent implements OnInit {\n @Output() passwordChange = new EventEmitter();\n @Output() confirmPasswordChange = new EventEmitter();\n\n @Input() passwordNotMatching: boolean;\n passwordForm: FormGroup;\n constants: typeof LoginConstant;\n constructor(@Inject(FormBuilder) private fb: FormBuilder) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n this.createGroup();\n this.formValueChanged();\n }\n\n formValueChanged() {\n const password = this.passwordForm.get(\"password\");\n const confirmPassword = this.passwordForm.get(\"confirmPassword\");\n\n if (password) {\n password.valueChanges.subscribe(() => {\n if (password) {\n password.setValidators([\n Validators.required,\n this.regexValidator(/.{8,}/, { minLength: true }),\n this.regexValidator(/[a-z]/, { lowercase: true }),\n this.regexValidator(/[A-Z]/, { uppercase: true }),\n this.regexValidator(/[0-9]/, { number: true }),\n this.regexValidator(/[^a-zA-Z0-9]/, { specialCharacter: true }),\n ]);\n }\n password.updateValueAndValidity({ emitEvent: false });\n this.onPasswordChange();\n });\n }\n\n if (confirmPassword) {\n confirmPassword.valueChanges.pipe(debounceTime(300)).subscribe(() => {\n confirmPassword.setValidators([Validators.required]);\n confirmPassword.updateValueAndValidity({ emitEvent: false });\n this.onConfirmPasswordChange();\n });\n }\n }\n\n onPasswordChange() {\n const result = {\n value: this.passwordForm.value.password,\n status: this.passwordForm.controls.password.status,\n };\n this.passwordChange.emit(result);\n }\n\n onConfirmPasswordChange() {\n const result = {\n value: this.passwordForm.value.confirmPassword,\n status: this.passwordForm.controls.confirmPassword.status,\n };\n this.confirmPasswordChange.emit(result);\n }\n\n createGroup() {\n this.passwordForm = this.fb.group({\n password: [null],\n confirmPassword: [null],\n });\n return this.passwordForm;\n }\n\n // TODO: check the return again\n regexValidator(regex: RegExp, error: ValidationErrors): any {\n return (control: AbstractControl): { [key: string]: boolean } => {\n const valid = regex.test(control.value);\n return (valid ? null : error) as any;\n };\n }\n}\n","<form [formGroup]=\"passwordForm\">\n <div\n id=\"alert-div\"\n *ngIf=\"passwordNotMatching\"\n >\n <div id=\"icon-div\">\n <span class=\"mdi mdi-alert-octagon\"></span>\n </div>\n <p>{{ constants.passwordNotMatching }}</p>\n </div>\n <div class=\"password-policies\">\n <ng-container *ngIf=\"!passwordForm.get('password')?.dirty\">\n <p>\n <b>{{ constants.passwordMustContain }} </b>\n </p>\n <p>{{ constants.minimumCharacter }}</p>\n <p>{{ constants.oneUppercase }}</p>\n <p>{{ constants.oneLowercase }}</p>\n <p>{{ constants.oneNumber }}</p>\n <p>{{ constants.specialCharacter }}</p>\n </ng-container>\n\n <ng-container *ngIf=\"passwordForm.get('password')?.dirty\">\n <p>\n <b>{{ constants.passwordMustContain }}</b>\n </p>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('minLength') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('minLength')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.minimumCharacter }}</span>\n </div>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('uppercase') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('uppercase')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.oneUppercase }}</span>\n </div>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('lowercase') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('lowercase')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.oneLowercase }}</span>\n </div>\n\n <div [ngClass]=\"passwordForm.get('password')?.hasError('number') ? 'error-color' : 'success-color'\">\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('number') ? 'mdi-close-circle' : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.oneNumber }}</span>\n </div>\n\n <div\n [ngClass]=\"passwordForm.get('password')?.hasError('specialCharacter') ? 'error-color' : 'success-color'\"\n >\n <div id=\"icon-div-msg\">\n <span\n class=\"mdi\"\n [ngClass]=\"\n passwordForm.get('password')?.hasError('specialCharacter')\n ? 'mdi-close-circle'\n : 'mdi-check-circle'\n \"\n ></span>\n </div>\n <span class=\"span-text\">{{ constants.specialCharacter }}</span>\n </div>\n </ng-container>\n </div>\n\n <input\n type=\"password\"\n tabindex=\"2\"\n formControlName=\"password\"\n [placeholder]=\"constants.password\"\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\n />\n\n <input\n type=\"password\"\n tabindex=\"3\"\n formControlName=\"confirmPassword\"\n [placeholder]=\"constants.confirmPassword\"\n [ngClass]=\"{ 'input-invalid': passwordNotMatching }\"\n />\n</form>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\nimport { LoginConstant } from \"../../constants/loginConstant\";\n// User defined import statements\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PasswordMatchingComponent } from \"../password-matching/password-matching.component\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\ntype PasswordType = { value: string | null; status: string | null };\n\n@Component({\n selector: \"anna-cognito-lib-set-new-password\",\n templateUrl: \"./set-new-password.component.html\",\n styleUrls: [\"./set-new-password.component.scss\"],\n imports: [\n NgClass,\n FormsModule,\n NgIf,\n PasswordMatchingComponent,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class SetNewPasswordComponent implements OnInit {\n passwordNotMatching = false;\n\n password: PasswordType = { value: null, status: null };\n confirmPassword: PasswordType = { value: null, status: null };\n constants: typeof LoginConstant;\n\n constructor(\n public authService: AnnaLibAuthService,\n private router: Router,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n this.authService.setNewPasswordButtonMessage = LoginConstant.setNewPasswordButton;\n }\n\n isFormValid() {\n return this.password.status === \"VALID\" && this.confirmPassword.status === \"VALID\";\n }\n onPasswordChange($event: PasswordType) {\n this.password = $event;\n }\n\n onConfirmPasswordChange($event: PasswordType) {\n this.confirmPassword = $event;\n }\n\n onSettingNewPassword() {\n if (this.isFormValid()) {\n if (this.password.value !== this.confirmPassword.value) {\n this.passwordNotMatching = true;\n } else {\n this.passwordNotMatching = false;\n if (this.authService.setNewPasswordButtonMessage === LoginConstant.loginAgain) {\n this.router.navigate([LoginConstant.loginPageUrl]);\n } else {\n this.authService.changePassword(this.password.value);\n }\n }\n }\n }\n}\n","<div class=\"main\">\n <section>\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n alt=\"Anna Logo\"\n width=\"170\"\n height=\"72\"\n priority\n />\n </header>\n <article>\n <form (keydown.enter)=\"onSettingNewPassword()\">\n <div id=\"heading\">\n {{ constants.setNewPasswordHeading }}\n </div>\n\n <div\n id=\"alert-div\"\n *ngIf=\"authService.setNewPasswordErrorMessage\"\n >\n <span class=\"mdi mdi-alert-octagon\"></span>\n <p>{{ authService.setNewPasswordErrorMessage }}</p>\n </div>\n <anna-cognito-lib-password-matching\n [ngClass]=\"{ 'catc-forget-password-matching': consumingProjectConfigService?.isCatcApplication }\"\n (passwordChange)=\"onPasswordChange($event)\"\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\n [passwordNotMatching]=\"passwordNotMatching\"\n >\n </anna-cognito-lib-password-matching>\n <button\n tabindex=\"3\"\n type=\"submit\"\n class=\"login-btn\"\n (click)=\"onSettingNewPassword()\"\n [disabled]=\"!isFormValid()\"\n >\n {{ authService.setNewPasswordButtonMessage }}\n </button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","/* eslint-disable import/no-extraneous-dependencies */\n// Angular import statements\nimport { NgClass, NgIf } from \"@angular/common\";\nimport { Component, Inject, OnInit } from \"@angular/core\";\nimport { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport { Router, RouterLink } from \"@angular/router\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../../config/config-service.token\";\n// User defined import statements\nimport { LoginConstant } from \"../../constants/loginConstant\";\nimport { SpinnerButtonDirective } from \"../../directives/spinner-button/spinner-button.directive\";\nimport { AnnaLibAuthService } from \"../../services/auth.service\";\nimport { PasswordMatchingComponent } from \"../password-matching/password-matching.component\";\nimport { PoweredByLogoTemplateComponent } from \"../powered-by-logo-template/powered-by-logo-template.component\";\nimport { SurewavesYearLogoComponent } from \"../surewaves-year-logo/surewaves-year-logo.component\";\nimport { VersionAndTermPolicyComponent } from \"../version-and-term-policy/version-and-term-policy.component\";\n\ntype PasswordType = { value: string | null; status: string | null };\n\n@Component({\n selector: \"anna-cognito-lib-verify-and-set-new-password\",\n templateUrl: \"./verify-and-set-new-password.component.html\",\n styleUrls: [\"./verify-and-set-new-password.component.scss\"],\n imports: [\n NgClass,\n RouterLink,\n FormsModule,\n ReactiveFormsModule,\n NgIf,\n PasswordMatchingComponent,\n SpinnerButtonDirective,\n PoweredByLogoTemplateComponent,\n SurewavesYearLogoComponent,\n VersionAndTermPolicyComponent,\n ]\n})\nexport class VerifyAndSetNewPasswordComponent implements OnInit {\n verifyOtpForm: FormGroup;\n passwordNotMatching = false;\n constants: typeof LoginConstant;\n password: PasswordType = { value: null, status: null };\n confirmPassword: PasswordType = { value: null, status: null };\n\n constructor(\n public authService: AnnaLibAuthService,\n private fb: FormBuilder,\n private router: Router,\n @Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService,\n ) {}\n\n ngOnInit() {\n this.constants = LoginConstant;\n this.authService.verifyAndSetNewPasswordButton = LoginConstant.setNewPasswordButton;\n this.onIntialiseForm();\n }\n\n onIntialiseForm() {\n this.verifyOtpForm = this.fb.group({\n otp: [null, [Validators.required]],\n });\n }\n\n isFormValid() {\n if (\n this.password.status === \"VALID\" &&\n this.confirmPassword.status === \"VALID\" &&\n this.verifyOtpForm.controls.otp.valid\n ) {\n return true;\n }\n return false;\n }\n\n onPasswordChange($event: PasswordType) {\n this.password = $event;\n }\n\n onConfirmPasswordChange($event: PasswordType) {\n this.confirmPassword = $event;\n }\n\n onVerifyOtpSettingNewPassword() {\n if (this.password.value !== this.confirmPassword.value) {\n this.passwordNotMatching = true;\n } else {\n this.passwordNotMatching = false;\n this.authService.forgotPasswordAndGlobalSignoutLoader = true;\n if (this.authService.verifyAndSetNewPasswordButton === LoginConstant.regenerateOtp) {\n this.router.navigate([LoginConstant.forgortPasswordPageUrl]);\n } else if (this.password.value) {\n this.authService.verifyCode(this.verifyOtpForm.controls.otp.value, this.password.value);\n }\n }\n }\n}\n","<div\n class=\"main\"\n [ngClass]=\"{ 'main-height': authService.verifyAndSetNewPasswordErrorMessage }\"\n>\n <section [ngClass]=\"{ 'catc-forget-password': consumingProjectConfigService?.isCatcApplication }\">\n <header>\n <img\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\n width=\"170\"\n height=\"72\"\n alt=\"Anna Logo\"\n priority\n />\n </header>\n <article>\n <span\n class=\"back-btn\"\n [routerLink]=\"constants.forgortPasswordPageUrl\"\n >\n <i class=\"mdi mdi-arrow-left\"></i>\n </span>\n\n <form\n [formGroup]=\"verifyOtpForm\"\n (keydown.enter)=\"onVerifyOtpSettingNewPassword()\"\n >\n <div\n class=\"pull-left\"\n id=\"heading\"\n >\n {{ constants.verifyAndSetNewPasswordheading }}\n </div>\n <p>{{ authService.verifyAndSetNewPasswordMessage }}</p>\n\n <div\n id=\"alert-div\"\n *ngIf=\"authService.verifyAndSetNewPasswordErrorMessage\"\n >\n <div id=\"icon-div\">\n <span class=\"mdi mdi-alert-octagon\"></span>\n </div>\n <p id=\"display-block-msg\">{{ authService.verifyAndSetNewPasswordErrorMessage }}</p>\n </div>\n\n <input\n type=\"text\"\n tabindex=\"1\"\n formControlName=\"otp\"\n [placeholder]=\"constants.enterOtp\"\n autocomplete=\"off\"\n [ngClass]=\"{ 'input-invalid': authService.verifyAndSetNewPasswordErrorMessage }\"\n />\n\n <anna-cognito-lib-password-matching\n [ngClass]=\"{ 'catc-forget-password-matching': consumingProjectConfigService?.isCatcApplication }\"\n (passwordChange)=\"onPasswordChange($event)\"\n (confirmPasswordChange)=\"onConfirmPasswordChange($event)\"\n [passwordNotMatching]=\"passwordNotMatching\"\n >\n </anna-cognito-lib-password-matching>\n <button\n tabindex=\"4\"\n class=\"login-btn\"\n type=\"submit\"\n [disabled]=\"authService.sessionLocked || !isFormValid()\"\n (click)=\"onVerifyOtpSettingNewPassword()\"\n annaCognitoSpinnerBtn\n [spinnerButtonLoading]=\"authService.forgotPasswordAndGlobalSignoutLoader\"\n [spinnerButtonText]=\"authService.verifyAndSetNewPasswordButton\"\n ></button>\n </form>\n </article>\n <footer>\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\n </footer>\n </section>\n</div>\n\n<div class=\"page-footer\">\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\n</div>\n","import { Inject, Injectable } from \"@angular/core\";\n\nimport { CONFIG_SERVICE_TOKEN, IConfigService } from \"../config/config-service.token\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaConfigService {\n constructor(@Inject(CONFIG_SERVICE_TOKEN) public consumingProjectConfigService: IConfigService) {}\n}\n","import { Inject, Injectable } from \"@angular/core\";\n\nimport { ISSOLoginService, SSO_LOGIN_SERVICE_TOKEN } from \"../config/sso-login-service.token\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AnnaSSOLoginService {\n constructor(@Inject(SSO_LOGIN_SERVICE_TOKEN) public consumingProjectSSOLoginService: ISSOLoginService) {}\n}\n","/*\n * Public API Surface of anna-cognito-lib\n */\n\n// COMPONENTS\nexport * from \"./lib/components/anna-login/anna-login.component\";\nexport * from \"./lib/components/catc-login/catc-login.component\";\nexport * from \"./lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component\";\nexport * from \"./lib/components/forgot-password/forgot-password.component\";\nexport * from \"./lib/components/password-matching/password-matching.component\";\nexport * from \"./lib/components/powered-by-logo-template/powered-by-logo-template.component\";\nexport * from \"./lib/components/set-new-password/set-new-password.component\";\nexport * from \"./lib/components/sso-login/sso-login.component\";\nexport * from \"./lib/components/surewaves-year-logo/surewaves-year-logo.component\";\nexport * from \"./lib/components/verify-and-set-new-password/verify-and-set-new-password.component\";\nexport * from \"./lib/components/version-and-term-policy/version-and-term-policy.component\";\n\n// SERVICES\nexport * from \"./lib/config/acl-service.token\";\nexport * from \"./lib/config/auth-service.token\";\nexport * from \"./lib/config/config-service.token\";\nexport * from \"./lib/config/sso-login-service.token\";\nexport * from \"./lib/services/acl.service\";\nexport * from \"./lib/services/auth.service\";\nexport * from \"./lib/services/config.service\";\nexport * from \"./lib/services/sso-login.service\";\n\n// DIRECTIVES\nexport * from \"./lib/directives/spinner-button\";\n\n// CONSTANTS\nexport * from \"./lib/constants/loginConstant\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.AnnaLibAclService","i1.AnnaLibAuthService","i3","i4","i1"],"mappings":"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"}
@@ -54,7 +54,8 @@ export interface IAclService {
54
54
  POLITICAL_RATE_CARD_WRITE: string;
55
55
  PROGRAM_CHANGES_WRITE: string;
56
56
  PROGRAM_CHANGES_READ: string;
57
- LATE_RUN_WRITE: string;
57
+ LATE_RUNS_WRITE: string;
58
+ LATE_RUNS_READ: string;
58
59
  GUIDANCE_RATES_READ: string;
59
60
  GUIDANCE_RATES_WRITE: string;
60
61
  RATE_CONTROL_RULES_WRITE: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annalib/anna-cognito-lib",
3
- "version": "47.0.0-final-ng-19",
3
+ "version": "49.0.0-final-ng-19",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.10",
6
6
  "@angular/core": "^19.2.10",