{"version":3,"file":"main.c22caa0d5b0a6e05.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routes.ts","./src/app/enums/login-type.enum.ts","./src/app/enums/page-id.enum.ts","./src/app/helpers/common.helper.ts","./src/app/service/app-initializer.service.ts","./src/app/service/base.service.ts","./src/app/service/browser-context.service.ts","./src/app/service/client-country.service.ts","./src/app/service/common.service.ts","./src/app/service/customization.service.ts","./src/app/service/down-stream-app-members.service.ts","./src/app/service/local-storage.service.ts","./src/app/service/logging/error.handler.service.ts","./src/app/service/logging/logging.service.ts","./src/app/service/self-identification.service.ts","./src/app/service/session-storage.service.ts","./src/app/service/spinner.service.ts","./src/app/service/translation.service.ts","./src/app/shared/base-class.ts","./src/app/shared/base-component.ts","./src/app/utility/browser.utility.ts","./src/environments/environment.defaults.ts","./src/environments/environment.dev.ts","./src/main.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { PageId } from './enums/page-id.enum';\r\nimport { CommonService } from './service/common.service';\r\nimport { LoggingService } from './service/logging/logging.service';\r\nimport { BaseComponent } from './shared/base-component';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\n\r\nexport class AppComponent extends BaseComponent {\r\n\r\n constructor(\r\n private loggingService: LoggingService, \r\n private commonService: CommonService,\r\n private spinnerService: NgxSpinnerService) {\r\n commonService.pageId = PageId.HomePage;\r\n super();\r\n \r\n // custom services/helpers\r\n this.spinner.initialize(spinnerService);\r\n\r\n // console.debug(`[Registration:AppComponent::constructor] window.sessionStorage.getItem(\"userSessionId\")`, window.sessionStorage.getItem(\"userSessionId\"))\r\n // commonService.renewUserSessionId();\r\n // console.debug(`[Registration:AppComponent::constructor] userSessionId after renew`, window.sessionStorage.getItem(\"userSessionId\"))\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n\r\n\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';\r\nimport { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxSpinnerModule, NgxSpinnerService } from 'ngx-spinner';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AppComponent } from './app.component';\r\nimport { ROUTES } from './app.routes';\r\nimport { AppInitializerService } from './service/app-initializer.service';\r\nimport { BrowserContextService } from './service/browser-context.service';\r\nimport { ClientCountryService } from './service/client-country.service';\r\nimport { CommonService } from './service/common.service';\r\nimport { CustomizationService } from './service/customization.service';\r\nimport { DownStreamAppMembersService } from './service/down-stream-app-members.service';\r\nimport { LocalStorageService } from './service/local-storage.service';\r\nimport { ErrorHandlerService } from './service/logging/error.handler.service';\r\nimport { LoggingService } from './service/logging/logging.service';\r\nimport { SelfIdentificationService } from './service/self-identification.service';\r\nimport { SessionStorageService } from './service/session-storage.service';\r\nimport { TranslationService } from './service/translation.service';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n CommonModule,\r\n FormsModule,\r\n NgSelectModule,\r\n RouterModule.forRoot(ROUTES, {\r\n enableTracing: !environment.production\r\n }),\r\n NgbModule,\r\n NgxSpinnerModule,\r\n ],\r\n providers: [\r\n { provide: TranslationService, useClass: TranslationService },\r\n { provide: BrowserContextService, useClass: BrowserContextService },\r\n { provide: ClientCountryService, useClass: ClientCountryService },\r\n { provide: ErrorHandler, useClass: ErrorHandlerService },\r\n Title,\r\n SessionStorageService,\r\n LocalStorageService,\r\n CustomizationService,\r\n LoggingService,\r\n DownStreamAppMembersService,\r\n SelfIdentificationService,\r\n CommonService,\r\n NgxSpinnerService,\r\n AppInitializerService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: (appUpdateService: AppInitializerService) => () => appUpdateService.init(),\r\n deps: [AppInitializerService],\r\n multi: true\r\n },\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [],\r\n})\r\nexport class AppModule {\r\n constructor() { }\r\n}\r\n","import { Routes } from '@angular/router';\r\nimport { PageId } from './enums/page-id.enum';\r\n\r\nconst create404Path = (path: string, pathMatch: any) => {\r\n\r\n return {\r\n path: path,\r\n loadChildren: () => import(\"./components/page-not-found/page-not-found.module\").then((module) => module.PageNotFoundModule),\r\n pathMatch : pathMatch,\r\n data: { componentName: \"PageNotFoundComponent\", pageId: PageId.PageNotFound }\r\n }\r\n}\r\n\r\nexport const SIGNUP_PATH = \"/signup\";\r\nexport const ROUTES: Routes = [\r\n create404Path('404', 'full'),\r\n create404Path(`:clientCountry${SIGNUP_PATH}/404`, 'full'),\r\n create404Path(':clientCountry/404', 'full'),\r\n create404Path('login/:ccId/404', 'full'),\r\n {\r\n path: 'lookup/code',\r\n loadChildren: () => import(\"./components/lookup-code-form/lookup-code-form.module\").then((module) => module.LookupCodeFormModule),\r\n data: { componentName: \"LookupCodeFormComponent\", pageId: PageId.LookupCode }\r\n },\r\n {\r\n path: 'lookup/instructions',\r\n loadChildren: () => import(\"./components/instructions/instructions.module\").then((module) => module.InstructionsModule),\r\n data: { componentName: \"InstructionsComponent\", pageId: PageId.LookupInstructions }\r\n },\r\n {\r\n path: 'lookup/self-identification',\r\n loadChildren: () => import(\"./components/self-identification/self-identification.module\").then((module) => module.SelfIdentificationModule),\r\n data: { componentName: \"SelfIdentificationComponent\", pageId: PageId.SelfIdentification }\r\n },\r\n {\r\n path: 'login-issue/:ccId',\r\n loadChildren: () => import(\"./components/login-issue/login-issue.module\").then((module) => module.LoginIssueModule),\r\n data: { componentName: \"LoginIssueComponent\", pageId: PageId.LoginIssue }\r\n },\r\n {\r\n path: 'notices/:noticeName/:cultureCode',\r\n loadChildren: () => import(\"./components/notices/notices.module\").then((module) => module.NoticesModule),\r\n data: { componentName: \"NoticesComponent\" }\r\n },\r\n {\r\n path: \"user\",\r\n loadChildren: () => import(\"./pages/user/user.module\").then((module) => module.UserModule) },\r\n {\r\n path: 'user/change-mfa',\r\n loadChildren: () => import(\"./components/change-mfa/change-mfa.module\").then((module) => module.ChangeMFAModule),\r\n data: { componentName: \"ChangeMfaComponent\", pageId: PageId.LoginIssue }\r\n }\r\n\r\n];\r\n","export enum LoginType {\r\n Direct = \"Direct\",\r\n SingleSignOn = \"SSO\"\r\n}","export enum PageId {\r\n PageNotFound = 100,\r\n LookupInstructions = 110,\r\n LoginIssue = 120,\r\n LookupCode = 130,\r\n PrivacyNotice = 140,\r\n CookieNotice = 142,\r\n TermsOfUse = 144,\r\n SelfIdentification = 150,\r\n HomePage = 160,\r\n}","declare var $: any;\r\n\r\n/**\r\n * converts string to a specified Enum\r\n * @param {T} enumObj \r\n * @param {string} value \r\n * @returns {Enum}\r\n */\r\nexport const stringToEnumValue = (enumObj: T, value: string): T[keyof T] | undefined => {\r\n const enumKey = Object.keys(enumObj).filter((k) => {\r\n return enumObj[k as K].toString() === value;\r\n })[0] as keyof typeof enumObj;\r\n\r\n return enumObj[enumKey];\r\n}\r\n\r\nexport const waitForElementToLoad = (elementSelector: string, loadDoneCallback: () => void) => {\r\n const retryMsDelay = 100;\r\n const retryCount = 100; // retryMsDelay * 100 = 10 seconds\r\n let retries = 0;\r\n\r\n const interval = setInterval(() => {\r\n retries++;\r\n\r\n if ($(elementSelector).length > 0) {\r\n clearInterval(interval);\r\n console.debug(`${elementSelector} found after ${retries} retries!`);\r\n loadDoneCallback();\r\n }\r\n\r\n if (retries === retryCount) {\r\n console.warn(`${elementSelector} not found after ${retries} retries...`);\r\n clearInterval(interval);\r\n }\r\n }, retryMsDelay);\r\n}\r\n\r\n/**\r\n * executes callback if conditionCallback returns true\r\n * @param {callback function} conditionCallback \r\n * @param {callback function} callback \r\n * \r\n * sample usage:\r\n * waitUntilTrue(() => { return $(\"#header-element\").length > 0; }, () => { // callback function });\r\n */\r\nexport const waitUntilTrue = (conditionCallback, callback) => {\r\n const retryMsDelay = 100;\r\n const retryCount = 60; // retryMsDelay * 100 = 60 seconds\r\n let retries = 0;\r\n\r\n const interval = setInterval(() => {\r\n retries++;\r\n\r\n if (!!conditionCallback()) {\r\n clearInterval(interval);\r\n console.debug(`[Registration::CommonHelper:waitUntilTrue] conditionCallback passed after ${retries} retries!`);\r\n callback();\r\n }\r\n\r\n if (retries === retryCount) {\r\n console.debug(`[Registration::CommonHelper:waitUntilTrue] conditionCallback didn't pass after ${retries} retries...`);\r\n clearInterval(interval);\r\n }\r\n }, retryMsDelay);\r\n}\r\n\r\nexport const getQueryParam = (name: string, url = window.location.href): string => {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n const regex = new RegExp(`[?&]${name}(=([^]*)|&|#|$)`, \"i\"),\r\n results = regex.exec(url);\r\n if (!results || !results[2]) return \"\";\r\n\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n}\r\n\r\nexport const addQueryParamsToUrl = (url: string, paramKey: string, paramVal: any): string => {\r\n return url += (url.split('?')[1] ? '&' : '?') + paramKey + \"=\" + paramVal;\r\n}","import { Injectable, Injector } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppInitializerService {\r\n constructor(private injector: Injector) { }\r\n\r\n public async init(): Promise {\r\n console.debug(\"[AppInitializerService::init]\");\r\n // await this.hideWhenInLoginRedirectPage();\r\n }\r\n\r\n private async hideWhenInLoginRedirectPage(): Promise {\r\n console.debug(\"[AppInitializerService::hideWhenInLoginRedirectPage]\");\r\n window.document.body.style.display = \"none\";\r\n\r\n // const router = this.injector.get(Router);\r\n // const activatedRoute = this.injector.get(ActivatedRoute);\r\n // const config = activatedRoute.routeConfig;\r\n // const componentName = config?.data?.componentName;\r\n\r\n // if (componentName === 'LoginRedirectComponent') {\r\n // window.document.body.style.display = \"none\";\r\n // }\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\n\r\nexport class BaseService {\r\n serviceUrl: string;\r\n constructor(url: string) {\r\n this.serviceUrl = url;\r\n }\r\n\r\n HandleServiceError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n console.error({error});\r\n // return an observable with a user-facing error message\r\n return throwError('Please try again later.');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BrowserUtility } from './../utility/browser.utility';\r\nimport * as DOMPurify from 'dompurify';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BrowserContextService {\r\n possibleLanguageParams: string[] = ['cultureCode', 'ui_locales'];\r\n possibleClientCountryParams: string[] = ['clientCountry', 'clientCountryId'];\r\n urlRegex: RegExp = new RegExp(/^(https?):\\/\\/[^\\s$.?#].[^\\s]*$/g);\r\n urlHasParams: boolean = false;\r\n urlParams: any = null;\r\n clientCountryCode: string | null;\r\n cultureCodeKey: string = 'culture-code';\r\n clientCountryCodeKey: string = 'clientCountry';\r\n browserUtil: BrowserUtility = new BrowserUtility();\r\n\r\n constructor() {\r\n const browserUrl = this.urlRegex.test(window.location.href) ? window.location.href : null;\r\n this.urlHasParams = browserUrl?.indexOf('?') > 0;\r\n this.urlParams = this.urlHasParams ? this.getParams(browserUrl) : null;\r\n }\r\n\r\n //#region public methods\r\n public GetCultureCode(): string {\r\n let language: string | null = null;\r\n if (this.urlHasParams) {\r\n language = this.tryGetValueFromQueryString(this.possibleLanguageParams);\r\n if (this.isValidCode(language)) {\r\n if (language.toLocaleLowerCase() == 'zh-hant') language = 'zh-HK';\r\n else if (language.toLocaleLowerCase() == 'zh-hans') language = 'zh-CN';\r\n this.browserUtil.saveToSessionStorage(this.cultureCodeKey, language);\r\n return language;\r\n }\r\n }\r\n\r\n if (!language || !this.isValidCode(language)) {\r\n language = this.getBrowserLangOrDefault();\r\n }\r\n\r\n this.browserUtil.saveToSessionStorage(this.cultureCodeKey, language);\r\n return language;\r\n }\r\n //#endregion public methods\r\n\r\n //#region Service methods\r\n private tryGetValueFromQueryString(possibleParams: string[]): string | null {\r\n if (this.urlParams) {\r\n for (const param of possibleParams) {\r\n if (param in this.urlParams) {\r\n return this.urlParams[param];\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private getParams(url: string): any {\r\n let parser = document.createElement('a');\r\n parser.href = DOMPurify.sanitize(url);\r\n let query = parser.search.substring(1);\r\n let vars = query.split('&');\r\n\r\n let params = {};\r\n for (const varSet of vars) {\r\n const pair = varSet.split('=');\r\n if (pair.length > 1) {\r\n params[pair[0]] = decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return params;\r\n }\r\n\r\n private isValidCode(code: string): boolean {\r\n const codeRegEx = new RegExp(/-/g);\r\n return codeRegEx.test(code);\r\n }\r\n\r\n private getBrowserLangOrDefault(): string {\r\n const storedCode = this.browserUtil.getFromSessionStorage(this.cultureCodeKey);\r\n if (storedCode && this.isValidCode(storedCode)) return storedCode;\r\n\r\n const browserLang = window?.navigator.language;\r\n if (browserLang) return browserLang;\r\n\r\n return environment.defaultLanguage;\r\n }\r\n //#endregion Service methods\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { environment } from '../../environments/environment';\r\nimport { ClientCountryDTO, ClientCountryLanguageDTO, LoginSettingsDTO } from '../contracts/client-definitions';\r\nimport { SdkConfig } from '../contracts/native/pre-auth-sdk-config';\r\nimport { BaseService } from './base.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientCountryService extends BaseService {\r\n private countryClientServiceURL = 'ManageClients/';\r\n private loginSettingsURL = 'LoginSettings/';\r\n\r\n constructor(private http: HttpClient) {\r\n super(environment.configApiUrl);\r\n }\r\n\r\n public getClientCountryByURL(url: string) {\r\n return this.http.get(this.serviceUrl + this.countryClientServiceURL + 'GetClientCountryByURL?urlName=' + url);\r\n }\r\n\r\n public getClientCountryById(clientCountryId: number): Observable {\r\n return this.http.get(this.serviceUrl + this.countryClientServiceURL + 'GetClientCountryById?clientCountryId=' + clientCountryId);\r\n }\r\n\r\n public getClientCountryLanguages(id: number) {\r\n return this.http.get(this.serviceUrl + this.countryClientServiceURL + 'GetClientCountryLanguages/' + id);\r\n }\r\n\r\n public getLoginSettings(clientCountryId: number) {\r\n return this.http.get(this.serviceUrl + this.loginSettingsURL + 'GetLoginSettings?clientCountryId=' + clientCountryId);\r\n }\r\n\r\n public checkLookupCode(code: string): Observable {\r\n return this.http.get(this.serviceUrl + this.countryClientServiceURL + 'GetClientCountryByLookupCode/' + code).pipe(\r\n tap(\r\n data => { }),\r\n catchError(this.HandleServiceError)\r\n );\r\n }\r\n\r\n getSdkConfig(clientCountryId: string): Observable {\r\n return this.http.get(`${environment.pushNotificationsApiBaseUrl}/Settings/SdkConfig?clientCountryId=${clientCountryId}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { getQueryParam } from 'src/app/helpers/common.helper';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { LoginType } from '../enums/login-type.enum';\r\nimport { PageId } from '../enums/page-id.enum';\r\nimport { BrowserUtility } from '../utility/browser.utility';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n private clientCountryIdKey = \"clientCountryId\";\r\n private userIdKey = \"uid\";\r\n private userSessionIdKey = \"userSessionId\";\r\n private newUserKey = \"newUser\";\r\n private loginTypeKey = \"loginType\";\r\n private userRolesKey = \"userRoles\";\r\n private browserUtil: BrowserUtility = new BrowserUtility();\r\n\r\n constructor(private route: ActivatedRoute) {\r\n }\r\n\r\n private _clientCountryId: string;\r\n public get clientCountryId(): string {\r\n if (!this._clientCountryId) this.storeClientCountryId();\r\n\r\n return this._clientCountryId;\r\n }\r\n\r\n public set clientCountryId(value: string) {\r\n this._clientCountryId = value;\r\n console.debug(\"[Registration:CommonService::setClientCountryId] clientCountryId\", value);\r\n }\r\n\r\n public storeClientCountryId(value: string = \"\") {\r\n if (value) return this.clientCountryId = value;\r\n\r\n // get id in query params\r\n let clientCountryId = this.route.snapshot.paramMap.get('ccId') ||\r\n this.route.snapshot.queryParamMap.get(this.clientCountryIdKey) ||\r\n getQueryParam(this.clientCountryIdKey);\r\n\r\n // if still none, try getting in sessionStorage\r\n if (!clientCountryId)\r\n clientCountryId = this.browserUtil.getFromSessionStorage(this.clientCountryIdKey);\r\n else\r\n this.browserUtil.saveToSessionStorage(this.clientCountryIdKey, clientCountryId);\r\n\r\n return this.clientCountryId = clientCountryId || \"\";\r\n }\r\n\r\n private _pageId: PageId;\r\n public get pageId(): PageId {\r\n return this._pageId;\r\n }\r\n\r\n public set pageId(value: PageId) {\r\n this._pageId = value;\r\n window.pageId = value?.toString();\r\n console.debug(\"[Registration:CommonService::setPageId] pageId\", value);\r\n }\r\n\r\n private _userId: string;\r\n public get userId(): string {\r\n if (this._userId) return this._userId;\r\n\r\n // get id in query params\r\n let userId = this.route.snapshot.queryParamMap.get(this.userIdKey) || getQueryParam(this.userIdKey);\r\n\r\n // if still none, try getting in sessionStorage\r\n if (!userId)\r\n userId = this.browserUtil.getFromSessionStorage(this.userIdKey);\r\n else\r\n this.browserUtil.saveToSessionStorage(this.userIdKey, userId);\r\n\r\n console.debug(\"[Registration:CommonService::userId]\", userId);\r\n\r\n return this._userId = userId;\r\n }\r\n\r\n private _userSessionId: string;\r\n public get userSessionId(): string {\r\n if (this._userSessionId) return this._userSessionId;\r\n\r\n /**\r\n * first, get id in query params\r\n * userSessionId query param maybe available in Legal Notices page\r\n */\r\n let userSessionId = this.route.snapshot.queryParamMap.get(this.userSessionIdKey) ||\r\n getQueryParam(this.userSessionIdKey);\r\n\r\n // if still none, try getting in sessionStorage\r\n if (!userSessionId)\r\n userSessionId = this.browserUtil.getFromSessionStorage(this.userSessionIdKey);\r\n\r\n // if still none, generate a new one\r\n if (!userSessionId)\r\n userSessionId = uuidv4();\r\n\r\n // then save it in sessionStorage\r\n this.browserUtil.saveToSessionStorage(this.userSessionIdKey, userSessionId);\r\n\r\n console.debug(\"[Registration:CommonService::userSessionId]\", userSessionId);\r\n\r\n return this._userSessionId = userSessionId;\r\n }\r\n\r\n private _newUser: string;\r\n public get newUser(): string {\r\n if (this._newUser) return this._newUser;\r\n\r\n // 1. get newUser in querystring\r\n let newUser = getQueryParam(this.newUserKey);\r\n\r\n // if still none, try getting in sessionStorage\r\n if (!newUser)\r\n newUser = this.browserUtil.getFromSessionStorage(this.newUserKey);\r\n\r\n if (newUser) {\r\n this._newUser = newUser;\r\n this.browserUtil.saveToSessionStorage(this.newUserKey, newUser);\r\n } else {\r\n newUser = \"true\";\r\n }\r\n\r\n console.debug(\"[Registration:CommonService::newUser]\", newUser);\r\n\r\n return newUser;\r\n }\r\n\r\n private _loginType: string;\r\n public get loginType(): string {\r\n if (this._loginType) return this._loginType;\r\n\r\n // first, get id in query params\r\n let loginType = getQueryParam(this.loginTypeKey);\r\n\r\n // if still none, try getting in sessionStorage\r\n if (!loginType)\r\n loginType = this.browserUtil.getFromSessionStorage(this.loginTypeKey);\r\n else\r\n this.browserUtil.saveToSessionStorage(this.loginTypeKey, loginType);\r\n\r\n if (!loginType) loginType = LoginType.Direct\r\n\r\n console.debug(\"[Registration:CommonService::loginType]\", loginType);\r\n\r\n return this._loginType = loginType;\r\n }\r\n\r\n private _encryptedUserRoles: string;\r\n public get encryptedUserRoles(): string {\r\n if (this._encryptedUserRoles) return this._encryptedUserRoles;\r\n\r\n // 1. get uid in querystring\r\n let userRoles = getQueryParam(this.userRolesKey);\r\n\r\n // try getting in sessionStorage\r\n if (!userRoles)\r\n userRoles = this.browserUtil.getFromSessionStorage(this.userRolesKey);\r\n else\r\n this.browserUtil.saveToSessionStorage(this.userRolesKey, userRoles);\r\n\r\n console.debug(\"[Registration:CommonService::encryptedUserRoles]\", userRoles);\r\n\r\n return this._encryptedUserRoles = userRoles;\r\n }\r\n\r\n public getDecryptedUserRoles(): string {\r\n return this.encryptedUserRoles ? window.atob(this.encryptedUserRoles) : \"\";\r\n }\r\n\r\n public clearSessionData(): void {\r\n console.debug(\"[Registration:CommonService::clearSessionData]\");\r\n\r\n this._clientCountryId = null;\r\n this._userId = null;\r\n this._userSessionId = null;\r\n this._newUser = null;\r\n this._loginType = null;\r\n this._encryptedUserRoles = null;\r\n\r\n this.browserUtil.clearSessionStorage([\r\n this.clientCountryIdKey,\r\n this.userIdKey,\r\n this.userSessionIdKey, // this will also cause a renewing of userSessionId\r\n this.newUserKey,\r\n this.loginTypeKey,\r\n this.userRolesKey,\r\n ]);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as $ from 'jquery';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CustomizationService {\r\n private headerElementId: string = \"common-header-element\";\r\n private wtwLogoAttr: string = \"data-wtw-logo-attr\";\r\n\r\n constructor() {\r\n }\r\n\r\n public SetWtwLogoToEmbark(): void {\r\n const header = $(`#${this.headerElementId}`);\r\n const wtwLogoAttrData: any = {\r\n \"src\": `${window.location.origin}/assets/images/Embark_Masthead_RGB.png`,\r\n \"alt\": \"Embark Logo\",\r\n \"class\": \"wtw-logo\"\r\n }\r\n\r\n header.attr(this.wtwLogoAttr, JSON.stringify(wtwLogoAttrData));\r\n\r\n //incase header is already rendered\r\n header.find(\"#header img.wtw-logo\").attr(wtwLogoAttrData);\r\n }\r\n\r\n public RemoveTraceEmbarkLogo(): void {\r\n $(`#${this.headerElementId}`).removeAttr(this.wtwLogoAttr);\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { environment } from '../../environments/environment';\r\nimport { BaseService } from './base.service';\r\nimport { ClientIdResponse, ValidateMemberRequest, ValidateMemberResponse } from '../models/self-identification.models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DownStreamAppMembersService extends BaseService {\r\n constructor(private httpClient: HttpClient) {\r\n super(`${environment.registrationApiBaseUrl}`);\r\n }\r\n\r\n public getClientId(clientCountryId: number): Observable {\r\n return this.httpClient.get(`${this.serviceUrl}Members/v2/GetClientId/${clientCountryId}`).pipe(\r\n map((result: ClientIdResponse) => {\r\n console.debug(\"getClientId\", result);\r\n return result.clientId;\r\n }),\r\n catchError(this.HandleServiceError));\r\n }\r\n\r\n // public validateMember(request: ValidateMemberRequest): Observable {\r\n // return this.httpClient.post(`${this.serviceUrl}Members/ValidateMember`, request).pipe(\r\n // map((result: ValidateMemberResponse) => {\r\n // console.debug(\"validateMember\", result);\r\n // return result;\r\n // }),\r\n // catchError(this.HandleServiceError));\r\n // }\r\n\r\n public validateMemberMultipleIntegrations(request: ValidateMemberRequest): Observable {\r\n return this.httpClient.post(`${this.serviceUrl}Members/v2/ValidateMemberAll`, request).pipe(\r\n map((result: ValidateMemberResponse[]) => {\r\n console.debug(\"validateMemberMultipleIntegrations\", result);\r\n return result;\r\n }),\r\n catchError(this.HandleServiceError));\r\n }\r\n}\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\n@Injectable()\r\nexport class LocalStorageService {\r\n constructor() {\r\n }\r\n\r\n public get Storage(): Storage {\r\n return window.localStorage;\r\n }\r\n\r\n //#region localStorage native functions\r\n setItem(key: string, value: string) {\r\n this.Storage?.setItem(key, value);\r\n }\r\n\r\n getItem(key: string) {\r\n return this.Storage?.getItem(key) ?? \"\";\r\n }\r\n\r\n removeItem(key: string) {\r\n this.Storage?.removeItem(key);\r\n }\r\n\r\n clear() {\r\n this.Storage.clear();\r\n }\r\n //#endregion localStorage native functions\r\n}\r\n"," import { Injectable, ErrorHandler, Injector } from '@angular/core';\r\nimport { LoggingService } from './logging.service';\r\n\r\n @Injectable()\r\n export class ErrorHandlerService extends ErrorHandler {\r\n constructor(private loggingService: LoggingService) {\r\n super();\r\n }\r\n\r\n handleError(error: Error) {\r\n this.loggingService.logException(error); // Manually log exception\r\n }\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport DeviceDetector from 'device-detector-js';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { CustomEventType } from 'src/app/enums/custom-event-type.enum';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BrowserContextService } from '../browser-context.service';\r\nimport { CommonService } from '../common.service';\r\n\r\ndeclare global {\r\n interface Window {\r\n appInsights: any;\r\n pageId: string;\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggingService {\r\n constructor(private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private commonService: CommonService,\r\n private browserContextService: BrowserContextService) {\r\n\r\n // initialize AppInsights\r\n this.appInsights;\r\n this.appInsightsPro;\r\n \r\n this.handleRouter();\r\n }\r\n\r\n private handleRouter(): void {\r\n let navigationEnd: NavigationEnd;\r\n this.router.events.pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n map((event: NavigationEnd) => {\r\n navigationEnd = event;\r\n return this.activatedRoute;\r\n }),\r\n map(route => route.firstChild)).subscribe((route) => {\r\n // this means we are in the root\r\n if (!route) {\r\n window.document.body.style.display = \"block\";\r\n return;\r\n }\r\n\r\n const config = route.routeConfig;\r\n const componentName = config?.data?.componentName;\r\n this.commonService.pageId = config?.data?.pageId;\r\n\r\n // special case for LoginRedirectComponent and SelfIdentificationComponent\r\n // since we need to log the clientId, we should do the logging manually\r\n if (!componentName ||\r\n (componentName !== 'LoginRedirectComponent' &&\r\n componentName !== 'SelfIdentificationComponent' &&\r\n componentName !== 'NoticesComponent')) {\r\n this.logPageView(`${componentName} ${config.path}`, navigationEnd.urlAfterRedirects);\r\n }\r\n\r\n if (componentName !== 'LoginRedirectComponent') {\r\n window.document.body.style.display = \"block\";\r\n }\r\n });\r\n }\r\n\r\n public logPageView(name?: string, uri?: string, properties?: { [key: string]: string }) {\r\n if (!this.appInsightsPro) return;\r\n\r\n const tabPath = `${window.location.pathname}${window.location.search}`;\r\n properties = {\r\n ...properties,\r\n\r\n PortalId: this.measurements.PortalId.toString(),\r\n IsNewUser: this.commonService.newUser,\r\n LoginType: this.commonService.loginType,\r\n PageId: this.commonService.pageId?.toString() ?? window.pageId ?? \"\",\r\n TabPath: (tabPath || \"\").substring(0, 255) // 255 is the limit set by Embark Pro\r\n }\r\n\r\n const measurements = this.measurements;\r\n this.appInsightsPro.trackPageView({ name, uri, properties, measurements });\r\n console.debug(\"[Registration:LoggingService::logPageView]\", { name, uri, properties, measurements });\r\n }\r\n\r\n public logEvent(name: CustomEventType | string, cardTitle: string, contentArea: string, properties?: { [key: string]: any }) {\r\n if (!this.appInsightsPro) return;\r\n\r\n properties = {\r\n ...properties,\r\n\r\n PortalId: this.measurements.PortalId.toString(),\r\n \"Card title\": cardTitle,\r\n \"Card type\": \"1\",\r\n ContentArea: contentArea\r\n }\r\n\r\n const measurements = this.measurements;\r\n this.appInsightsPro.trackEvent({ name, measurements }, properties);\r\n console.debug(\"[Registration:LoggingService::logEvent] data=%o properties=%o\", { name, measurements }, properties);\r\n }\r\n\r\n public logException(exception: Error, severityLevel?: number) {\r\n this.appInsights?.trackException({ exception: exception, severityLevel: severityLevel });\r\n console.debug(\"[Registration:LoggingService::logException] exception\", exception);\r\n }\r\n\r\n public logTrace(message: string, properties?: { [key: string]: any }) {\r\n this.appInsights?.trackTrace({ message: message }, properties);\r\n console.debug(\"[Registration:LoggingService::logTrace] message\", message);\r\n }\r\n\r\n /**\r\n * isTelemetryEnabled\r\n * true => enable tracking\r\n * false => disable tracking\r\n */\r\n private get isTelemetryEnabled(): boolean {\r\n const telemetryCookieValue = this.tryGetCookieValue('telemetry-cookies-disabled');\r\n if (telemetryCookieValue != null) {\r\n return telemetryCookieValue !== 'true'\r\n }\r\n \r\n const optanonCookieValue = this.tryGetCookieValue('OptanonConsent');\r\n const groups = optanonCookieValue?.split('&').filter(p => p.includes('groups'));\r\n if (groups != null) {\r\n const c0002Value = groups[0].charAt(groups[0].length - 1);\r\n return c0002Value !== '0'\r\n }\r\n \r\n return false;\r\n }\r\n\r\n private tryGetCookieValue(name: string): string | null {\r\n const result = document.cookie.match('(^|[^;]+)\\\\s*' + name + '\\\\s*=\\\\s*([^\\\\s;]+)');\r\n return result ? result.pop() : null;\r\n }\r\n\r\n private _cultureCode: string;\r\n private get cultureCode(): string {\r\n if (this._cultureCode) return this._cultureCode;\r\n return this._cultureCode = this.browserContextService.GetCultureCode();\r\n }\r\n\r\n private _appInsights: ApplicationInsights;\r\n private get appInsights(): ApplicationInsights {\r\n if (!this.isTelemetryEnabled) return null;\r\n if (this._appInsights) return this._appInsights;\r\n\r\n let appInsights = this.initializeAppInsights(environment.appInsightsConfig);\r\n\r\n // store in a global variable so [Assets] can pick it up and reuse it\r\n window[\"appInsights\"] = appInsights;\r\n\r\n return this._appInsights = appInsights;\r\n }\r\n\r\n private _appInsightsPro: ApplicationInsights;\r\n private get appInsightsPro(): ApplicationInsights {\r\n if (!this.isTelemetryEnabled) return null;\r\n if (this._appInsightsPro) return this._appInsightsPro;\r\n\r\n const config = {\r\n disableExceptionTracking: true,\r\n disableAjaxTracking: true,\r\n disableCorrelationHeaders: true,\r\n enableUnhandledPromiseRejectionTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n loggingLevelTelemetry: 0,\r\n\r\n ...environment.appInsightsConfigPro,\r\n }\r\n\r\n let appInsightsPro = this.initializeAppInsights(config);\r\n\r\n // store in a global variable so [Assets] can pick it up and reuse it\r\n window[\"appInsightsPro\"] = appInsightsPro;\r\n\r\n return this._appInsightsPro = appInsightsPro;\r\n }\r\n\r\n private initializeAppInsights(config: any): ApplicationInsights {\r\n const ai = new ApplicationInsights({ config });\r\n ai.loadAppInsights();\r\n\r\n if (this.commonService.userId) ai.setAuthenticatedUserContext(this.commonService.userId);\r\n\r\n if (ai.addTelemetryInitializer) {\r\n ai.addTelemetryInitializer((envelope: any) => {\r\n // override DeviceType\r\n envelope.tags[\"ai.device.type\"] = this.deviceType;\r\n\r\n // override SessionId\r\n envelope.tags[\"ai.session.id\"] = this.commonService.userSessionId;\r\n\r\n // set Default Custom Dimensions\r\n envelope.data = {\r\n ...(envelope.data || {}),\r\n // AppName: environment.appInsightsConfig.applicationName,\r\n // AppVersion: environment.appInsightsConfig.version,\r\n PortalEnvironment: config.environmentName,\r\n ContentGroupName: this.cultureCode,\r\n UserRoles: this.commonService.getDecryptedUserRoles() || `{\"UserRoles\":[]}`,\r\n IsGuestUser: \"false\"\r\n }\r\n });\r\n }\r\n\r\n return ai;\r\n }\r\n\r\n private _deviceType: string;\r\n private get deviceType(): string {\r\n if (this._deviceType) return this._deviceType;\r\n\r\n const userAgent = navigator.userAgent;\r\n const deviceInfo = new DeviceDetector().parse(userAgent);\r\n console.debug(\"[Registration:LoggingService::deviceType] deviceInfo\", deviceInfo);\r\n\r\n let type: string;\r\n switch (deviceInfo.device.type.toString()) {\r\n case \"desktop\":\r\n type = \"Desktop\";\r\n break;\r\n case \"smartphone\":\r\n type = \"Mobile\";\r\n break;\r\n case \"tablet\":\r\n type = \"Tablet\";\r\n break;\r\n case \"\": // some cases in Safari browser returns null/\"\", we do fallback checking\r\n switch (true) {\r\n case /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent):\r\n type = \"Mobile\";\r\n break;\r\n case /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(userAgent.toLowerCase()):\r\n type = \"Tablet\";\r\n break;\r\n default:\r\n type = \"Others\";\r\n break;\r\n }\r\n break;\r\n default:\r\n type = \"Others\";\r\n }\r\n\r\n return this._deviceType = type;\r\n }\r\n\r\n private getPortalId(): number {\r\n const clientCountryIdInt = this.commonService.clientCountryId ? parseInt(this.commonService.clientCountryId) : 0;\r\n return 100000 + clientCountryIdInt;\r\n }\r\n\r\n private get measurements(): any {\r\n return {\r\n PortalId: this.getPortalId(),\r\n };\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../environments/environment';\r\nimport { ReCaptchaRequest } from '../models/recaptcha.models';\r\nimport { AuthenticationOption, B2CUrlRequest, CascadingPath, SelfIdentificationVM } from '../models/self-identification.models';\r\nimport { BaseService } from './base.service';\r\nimport { ValidateReCaptchaResponseModel } from '../models/validate-recaptcha-response.model';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SelfIdentificationService extends BaseService {\r\n\r\n constructor(private httpClient: HttpClient) {\r\n super(environment.registrationApiBaseUrl);\r\n }\r\n\r\n public getSelfIdentificationSelection(clientCountryId: number): Observable {\r\n const requestUrl = this.serviceUrl + 'SelfIdentification/v2/GetSelfIdentificationSelection/' + clientCountryId;\r\n return this.httpClient.get(requestUrl);\r\n }\r\n\r\n public getB2CRegistrationUrlV2MultipleIntegrations(request: B2CUrlRequest): Observable {\r\n let requestUrl = this.serviceUrl + 'SelfIdentification/v2/GetB2CRegistrationUrl';\r\n return this.httpClient.post(requestUrl, request);\r\n }\r\n\r\n public validateReCaptcha(recaptchaRequest: ReCaptchaRequest): Observable {\r\n let requestUrl = this.serviceUrl + 'SelfIdentification/v2/ValidateReCaptcha';\r\n return this.httpClient.post(requestUrl, recaptchaRequest);\r\n }\r\n\r\n public getTranslations(cultureCode: string, clientCountryId: number): Observable {\r\n const requestUrl = `${this.serviceUrl}SelfIdentificationTranslation/${cultureCode}/${clientCountryId}`;\r\n return this.httpClient.get(requestUrl);\r\n }\r\n\r\n public isBetaPolicy(clientCountryId: string): Observable{\r\n const requestUrl = `${this.serviceUrl}SelfIdentification/v2/IsBetaPolicy?clientCountryId=${clientCountryId}`;\r\n return this.httpClient.get(requestUrl);\r\n }\r\n\r\n public isEmbarkConnect(clientCountryId: string): Observable{\r\n const requestUrl = `${this.serviceUrl}SelfIdentification/v2/IsEmbarkConnect?clientCountryId=${clientCountryId}`;\r\n return this.httpClient.get(requestUrl);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as $ from 'jquery';\r\nimport { BrowserUtility } from '../utility/browser.utility';\r\nimport { BrowserContextService } from './browser-context.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorageService {\r\n browserUtil: BrowserUtility = new BrowserUtility();\r\n\r\n public get Storage(): Storage {\r\n return window.sessionStorage;\r\n }\r\n\r\n constructor(private browserContextService: BrowserContextService) {\r\n }\r\n\r\n public ClearClientCountry(): void {\r\n this.browserUtil.clearSessionStorage([this.browserContextService.clientCountryCodeKey]);\r\n $(\"#common-header-element #header .brand-logo\").closest(\"li\").remove();\r\n }\r\n\r\n //#region sessionStorage native functions\r\n setItem(key: string, value: string) {\r\n this.Storage?.setItem(key, value);\r\n }\r\n\r\n getItem(key: string) {\r\n return this.Storage?.getItem(key) ?? \"\";\r\n }\r\n\r\n removeItem(key: string) {\r\n this.Storage?.removeItem(key);\r\n }\r\n\r\n clear() {\r\n this.Storage.clear();\r\n }\r\n //#endregion sessionStorage native functions\r\n}","/**\r\n * https://github.com/Napster2210/ngx-spinner\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { NgxSpinnerService, Spinner } from 'ngx-spinner';\r\n\r\n@Injectable()\r\nexport default class SpinnerService {\r\n constructor() { }\r\n\r\n static spinnerService: NgxSpinnerService;\r\n\r\n static initialize(_spinnerService: NgxSpinnerService) {\r\n this.spinnerService = _spinnerService;\r\n }\r\n\r\n private static _blockUiElementId = \"app-component-fullscreen\";\r\n static blockUI(): void {\r\n this.show(this._blockUiElementId, { \r\n fullScreen: true,\r\n type: \"ball-spin-fade-rotating\",\r\n size: \"medium\"\r\n });\r\n }\r\n\r\n /**\r\n * \r\n * @param {number} delay must be => 0\r\n */\r\n private static unblockUIstartTime: number = 0;\r\n private static unblockUiTimer: any = null;\r\n static unblockUI(delay: number = 500): void {\r\n const datenow = Date.now();\r\n const unblockTime = datenow + delay;\r\n if (this.unblockUiTimer) {\r\n if (unblockTime <= this.unblockUIstartTime) return;\r\n\r\n this.unblockUIstartTime = unblockTime;\r\n } else {\r\n this.unblockUIstartTime = unblockTime;\r\n }\r\n\r\n clearTimeout(this.unblockUiTimer);\r\n\r\n this.unblockUiTimer = setTimeout(() => {\r\n this.hide(this._blockUiElementId);\r\n this.unblockUiTimer = null;\r\n // console.info(\"spinner hidden\");\r\n }, this.unblockUIstartTime - datenow);\r\n }\r\n\r\n static show(name: string, options: Spinner = {}): void {\r\n this.spinnerService.show(name, options);\r\n }\r\n\r\n static hide(name: string): void {\r\n this.spinnerService.hide(name);\r\n }\r\n}\r\n","import { HasTranslatedContent } from './../models/has-translated-content.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError, tap } from 'rxjs/operators';\r\n\r\nimport { BaseService } from './base.service';\r\nimport { ClientCountryLookupVM } from '../contracts/client-country-lookup.vm';\r\nimport { environment } from 'src/environments/environment';\r\nimport { BrowserContextService } from './browser-context.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TranslationService extends BaseService {\r\n language: string;\r\n\r\n constructor(private http: HttpClient, private browserContext: BrowserContextService) {\r\n super(environment.translationApiBaseUrl);\r\n }\r\n\r\n /*\r\n * Gets the translations for a specific view model by controller/route\r\n * ie: https://WTWEXRegistration.azurewebsites.net/ClientCountryLookupTranslation\r\n *\r\n */\r\n public GetTranslations(controllerPath: string, vm: T): Observable {\r\n const language = this.browserContext.GetCultureCode();\r\n return this.http.get(this.serviceUrl + controllerPath + language).pipe(\r\n tap(data => { }),\r\n catchError( err => {\r\n return this.HandleServiceError(err);\r\n }));\r\n }\r\n}\r\n","\r\nimport { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { FormArray, FormGroup } from \"@angular/forms\";\r\nimport { Subject } from \"rxjs\";\r\nimport SpinnerService from \"../service/spinner.service\";\r\n\r\n@Injectable()\r\nexport abstract class BaseClass implements OnDestroy {\r\n public JSON = JSON;\r\n public spinner = SpinnerService;\r\n\r\n /**\r\n * https://stackoverflow.com/a/43367791/1035039\r\n * https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87\r\n */\r\n protected stop$: Subject;\r\n constructor() {\r\n this.stop$ = new Subject();\r\n let f = this.ngOnDestroy;\r\n this.ngOnDestroy = () => {\r\n // without this I was getting an error if the subclass had\r\n // this.blah() in ngOnDestroy\r\n f.bind(this)();\r\n this.stop$.next(true);\r\n this.stop$.complete();\r\n };\r\n }\r\n\r\n /// placeholder of ngOnDestroy. no need to do super() call of extended class.\r\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\r\n ngOnDestroy() { }\r\n\r\n public asFormGroup(obj: any): FormGroup { return obj; }\r\n public asFormArray(obj: any): FormArray { return obj; }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BaseClass } from './base-class';\r\n@Injectable()\r\nexport abstract class BaseComponent extends BaseClass {\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","export class BrowserUtility {\r\n\r\n saveToSessionStorage(key: string, value: string): void {\r\n if (window && window.sessionStorage) {\r\n return window.sessionStorage.setItem(key, value);\r\n }\r\n }\r\n\r\n getFromSessionStorage(key: string): string {\r\n if (window && window.sessionStorage) {\r\n return window.sessionStorage.getItem(key);\r\n }\r\n }\r\n\r\n clearSessionStorage(keys: string[]): void {\r\n if (window && window.sessionStorage) {\r\n for (const key of keys) {\r\n window.sessionStorage.removeItem(key);\r\n }\r\n }\r\n }\r\n}\r\n","// environment.defaults.ts\r\nexport const environment = {\r\n environmentName: '',\r\n production: false,\r\n log: true,\r\n flags: {\r\n useNewHeader: true\r\n },\r\n MaxNoOfSpamAttempt: 5,\r\n assetsStorageUrl: 'https://assets-embark-qa.ehr.com',\r\n invisibleReCaptchaSiteKey: \"6Lc-YuAaAAAAAK-w3lrZOahjzCkqXEM4rD6t5krF\",\r\n withChallengeReCaptchaSiteKey: \"6LeHMd4aAAAAAFZu_mYsNB6QBtYLULNnVBN6R45N\",\r\n registrationApiBaseUrl: 'https://wtw-ex-appx-registration-api-qa.azurewebsites.net/api/',\r\n b2cRegistrationApiBaseUrl: 'https://n21projectexb2cextdevappsvc.azurewebsites.net/api/',\r\n translationApiBaseUrl: 'https://wtw-ex-appx-registration-api-qa.azurewebsites.net/api/',\r\n configApiUrl: 'https://wtwexwidgetsconfigurationapiqa.azurewebsites.net/api/',\r\n loginFriendlyBaseUrl: 'https://n21pexregistrationuidevappsvc.azurewebsites.net/',\r\n kbaBaseUrl: 'https://n21pexkbaapiqaappsvc.azurewebsites.net/api/',\r\n loginEmbarkAppFriendlyBaseUrl: '',\r\n urlPrefixExternal: 'https://',\r\n appInsightsConfig: {\r\n applicationName: 'WTW.EX.Registration',\r\n version: '1.0.8',\r\n instrumentationKey: '6840040d-f64b-457a-8a5a-7eb3d6c35c5e',\r\n environmentName: 'dev',\r\n },\r\n appInsightsConfigPro: {\r\n applicationName: 'WTW.EX.Registration',\r\n version: '1.0.8',\r\n instrumentationKey: '6840040d-f64b-457a-8a5a-7eb3d6c35c5e',\r\n environmentName: 'dev',\r\n },\r\n defaultLanguage: 'en-us',\r\n iosNativeMessage: 'notifyMobile',\r\n oneTrustConfig: {\r\n scriptSource: '',\r\n scriptId: '',\r\n defaultLang: '',\r\n privacyNoticeGuid: '',\r\n cookieNoticeGuid: '',\r\n termsOfUseGuid: '',\r\n noticeBundleGuid: '',\r\n noticeIsDraft: false\r\n },\r\n pushNotificationsApiBaseUrl: 'https://n21pexpushnotificationsqaappsvc.azurewebsites.net/api',\r\n supportEmail: \"embarksupport@wtwco.com\",\r\n emailSender: \"noreply@willistowerswatson.com\",\r\n b2cLinkExpiryMinutes: 10,\r\n userProfileBaseURL: 'https://n21pexuserprofileqaappsvc.azurewebsites.net/api',\r\n redirectUserProfileEmbark: 'https://embark-qa.ehr.com/user-profile',\r\n policyList: {\r\n editPhoneNumberPolicy: 'B2C_1A_PEX_ChangePhoneNumber',\r\n changeMFAPolicy:'B2C_1A_PEX_ChangeMFA'\r\n }\r\n};\r\n","import _ from \"lodash\";\r\nimport { environment as defaultEnvironment } from './environment.defaults';\r\n\r\nexport const environment = _.merge({}, defaultEnvironment, {\r\n environmentName: 'dev',\r\n production: false,\r\n log: false,\r\n assetsStorageUrl: 'https://assets-embark-dev.ehr.com',\r\n invisibleReCaptchaSiteKey: \"6Lc-YuAaAAAAAK-w3lrZOahjzCkqXEM4rD6t5krF\",\r\n withChallengeReCaptchaSiteKey: \"6LeHMd4aAAAAAFZu_mYsNB6QBtYLULNnVBN6R45N\",\r\n registrationApiBaseUrl: 'https://embark-dev-gw.ehr.com/api/Registration/',\r\n // registrationApiBaseUrl: 'https://localhost:44312/api/',\r\n translationApiBaseUrl: 'https://embark-dev-gw.ehr.com/api/Registration/',\r\n //translationApiBaseUrl: 'https://localhost:44312/api/',\r\n configApiUrl: 'https://embarkpro-devint.ehr.com/std-gateway/api/registrationConfig/',\r\n loginFriendlyBaseUrl: 'https://signin-embark-dev.ehr.com/',\r\n kbaBaseUrl: 'https://embark-dev-gw.ehr.com/api/kba/',\r\n loginEmbarkAppFriendlyBaseUrl: '',\r\n oneTrustConfig: {\r\n privacyNoticeGuid: 'bbb80b16-980d-443f-94f1-e348aca60056',\r\n cookieNoticeGuid: 'b8716e4f-acd5-4ffb-9217-eb31a9b3509b',\r\n termsOfUseGuid: '882e2831-64c6-4ca1-974b-d53591a973fb',\r\n noticeBundleGuid: 'c20a4882-10af-4ef8-8376-cbffed898dfa',\r\n },\r\n pushNotificationsApiBaseUrl: 'https://embarkpro-devint.ehr.com/std-gateway/api/pushnotifications'\r\n});\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\nimport 'zone.js/plugins/zone-error'; // Included with Angular CLI.","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":["AppComponent","BaseComponent","constructor","loggingService","commonService","spinnerService","pageId","PageId","super","this","spinner","initialize","selectors","features","decls","vars","consts","template","i0","AppModule","bootstrap","provide","TranslationService","useClass","BrowserContextService","ClientCountryService","ErrorHandler","ErrorHandlerService","Title","SessionStorageService","LocalStorageService","CustomizationService","LoggingService","DownStreamAppMembersService","SelfIdentificationService","CommonService","NgxSpinnerService","AppInitializerService","APP_INITIALIZER","useFactory","appUpdateService","init","deps","multi","imports","BrowserModule","BrowserAnimationsModule","HttpClientModule","CommonModule","FormsModule","NgSelectModule","RouterModule","ROUTES","enableTracing","environment","NgbModule","NgxSpinnerModule","declarations","create404Path","path","pathMatch","loadChildren","then","module","PageNotFoundModule","data","componentName","SIGNUP_PATH","LookupCodeFormModule","InstructionsModule","SelfIdentificationModule","LoginIssueModule","NoticesModule","UserModule","ChangeMFAModule","LoginType","stringToEnumValue","enumObj","value","enumKey","Object","keys","filter","k","toString","waitForElementToLoad","elementSelector","loadDoneCallback","retries","interval","setInterval","$","length","clearInterval","console","debug","warn","waitUntilTrue","conditionCallback","callback","getQueryParam","name","url","window","location","href","replace","results","RegExp","exec","decodeURIComponent","addQueryParamsToUrl","paramKey","paramVal","split","injector","hideWhenInLoginRedirectPage","document","body","style","display","factory","providedIn","BaseService","serviceUrl","HandleServiceError","error","ErrorEvent","message","status","throwError","possibleLanguageParams","possibleClientCountryParams","urlRegex","urlHasParams","urlParams","cultureCodeKey","clientCountryCodeKey","browserUtil","BrowserUtility","browserUrl","test","indexOf","getParams","GetCultureCode","language","tryGetValueFromQueryString","isValidCode","toLocaleLowerCase","saveToSessionStorage","getBrowserLangOrDefault","possibleParams","param","parser","createElement","DOMPurify","search","substring","params","varSet","pair","code","storedCode","getFromSessionStorage","browserLang","navigator","http","countryClientServiceURL","loginSettingsURL","getClientCountryByURL","get","getClientCountryById","clientCountryId","getClientCountryLanguages","id","getLoginSettings","checkLookupCode","pipe","tap","catchError","getSdkConfig","route","clientCountryIdKey","userIdKey","userSessionIdKey","newUserKey","loginTypeKey","userRolesKey","_clientCountryId","storeClientCountryId","snapshot","paramMap","queryParamMap","_pageId","userId","_userId","userSessionId","_userSessionId","uuidv4","newUser","_newUser","loginType","_loginType","encryptedUserRoles","_encryptedUserRoles","userRoles","getDecryptedUserRoles","atob","clearSessionData","clearSessionStorage","headerElementId","wtwLogoAttr","SetWtwLogoToEmbark","header","wtwLogoAttrData","origin","attr","JSON","stringify","find","RemoveTraceEmbarkLogo","removeAttr","httpClient","getClientId","map","result","clientId","validateMemberMultipleIntegrations","request","post","Storage","localStorage","setItem","key","getItem","removeItem","clear","handleError","logException","router","activatedRoute","browserContextService","appInsights","appInsightsPro","handleRouter","navigationEnd","events","event","NavigationEnd","firstChild","subscribe","config","routeConfig","logPageView","urlAfterRedirects","uri","properties","tabPath","pathname","PortalId","measurements","IsNewUser","TabPath","trackPageView","logEvent","cardTitle","contentArea","ContentArea","trackEvent","exception","severityLevel","trackException","logTrace","trackTrace","isTelemetryEnabled","telemetryCookieValue","tryGetCookieValue","optanonCookieValue","groups","p","includes","charAt","cookie","match","pop","cultureCode","_cultureCode","_appInsights","initializeAppInsights","_appInsightsPro","disableExceptionTracking","disableAjaxTracking","disableCorrelationHeaders","enableUnhandledPromiseRejectionTracking","enableAjaxErrorStatusText","loggingLevelTelemetry","ai","ApplicationInsights","loadAppInsights","setAuthenticatedUserContext","addTelemetryInitializer","envelope","tags","deviceType","PortalEnvironment","environmentName","ContentGroupName","UserRoles","IsGuestUser","_deviceType","userAgent","deviceInfo","DeviceDetector","parse","type","device","toLowerCase","getPortalId","parseInt","getSelfIdentificationSelection","requestUrl","getB2CRegistrationUrlV2MultipleIntegrations","validateReCaptcha","recaptchaRequest","getTranslations","isBetaPolicy","isEmbarkConnect","sessionStorage","ClearClientCountry","closest","remove","SpinnerService","_spinnerService","_blockUiElementId","blockUI","show","fullScreen","size","unblockUIstartTime","unblockUiTimer","unblockUI","delay","datenow","Date","now","unblockTime","clearTimeout","setTimeout","hide","options","browserContext","GetTranslations","controllerPath","vm","err","BaseClass","stop$","Subject","f","ngOnDestroy","bind","next","complete","asFormGroup","obj","asFormArray","production","log","flags","useNewHeader","MaxNoOfSpamAttempt","assetsStorageUrl","invisibleReCaptchaSiteKey","withChallengeReCaptchaSiteKey","registrationApiBaseUrl","b2cRegistrationApiBaseUrl","translationApiBaseUrl","configApiUrl","loginFriendlyBaseUrl","kbaBaseUrl","loginEmbarkAppFriendlyBaseUrl","urlPrefixExternal","appInsightsConfig","applicationName","version","instrumentationKey","appInsightsConfigPro","defaultLanguage","iosNativeMessage","oneTrustConfig","scriptSource","scriptId","defaultLang","privacyNoticeGuid","cookieNoticeGuid","termsOfUseGuid","noticeBundleGuid","noticeIsDraft","pushNotificationsApiBaseUrl","supportEmail","emailSender","b2cLinkExpiryMinutes","userProfileBaseURL","redirectUserProfileEmbark","policyList","editPhoneNumberPolicy","changeMFAPolicy","_","defaultEnvironment","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","catch"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}