{"version":3,"file":"main.js","mappings":"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C+xB,UAAU,CAACC,uBAAuB,CAAChyB,KAAK,CAAC;EACvD;;;mBANW8G,aAAa;AAAA;;;QAAbA,aAAa;EAAAmrB;AAAA;;;;;;;;;;;;;;;;;;;ACLqB;AAGF;AAGvC,SAAUE,UAAU;EACxB,OAAOjS,QAAQ,CAACkS,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAACC,IAAI;AACtD;AAEA,MAAMC,SAAS,GAAG,CAChB;EAAExxB,OAAO,EAAE,UAAU;EAAEG,UAAU,EAAEkxB,UAAU;EAAEjxB,IAAI,EAAE;AAAE,CAAE,CAC1D;AAGDgxB,6DAAc,EAAE;AAGhBK,sEAAAA,CAAuBD,SAAS,CAAC,CAACE,eAAe,CAAC5xB,sDAAS,CAAC,CACzDoW,KAAK,CAAC7J,GAAG,IAAIzQ,OAAO,CAACC,GAAG,CAACwQ,GAAG,CAAC,CAAC;;;;;;;;;;ACnBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/modules/core/components/accept-cookies/accept-cookies.component.ts","./src/app/modules/core/components/accept-cookies/accept-cookies.component.html","./src/app/modules/core/components/footer/footer.component.ts","./src/app/modules/core/components/footer/footer.component.html","./src/app/modules/core/components/loader/loader.component.html","./src/app/modules/core/components/loader/loader.component.ts","./src/app/modules/core/components/privacy-policy/privacy-policy.component.ts","./src/app/modules/core/components/terms-of-use/terms-of-use.component.ts","./src/app/modules/core/components/terms-of-use/terms-of-use.component.html","./src/app/modules/core/components/toast/toast.component.ts","./src/app/modules/core/components/toast/toast.component.html","./src/app/modules/core/components/top-banner/top-banner.component.ts","./src/app/modules/core/components/top-banner/top-banner.component.html","./src/app/modules/core/core.module.ts","./src/app/modules/core/directives/number-formatter.directive.ts","./src/app/modules/core/guards/admin.guard.ts","./src/app/modules/core/guards/enrollment.guard.ts","./src/app/modules/core/guards/redirect.guard.ts","./src/app/modules/core/interceptors/auth.interceptor.ts","./src/app/modules/core/interceptors/error.interceptor.ts","./src/app/modules/core/interceptors/loader.interceptor.ts","./src/app/modules/core/material.module.ts","./src/app/modules/core/services/admin.service.ts","./src/app/modules/core/services/analytics.service.ts","./src/app/modules/core/services/api.service.ts","./src/app/modules/core/services/app.service.ts","./src/app/modules/core/services/auth.service.ts","./src/app/modules/core/services/common.service.ts","./src/app/modules/core/services/configuration.service.ts","./src/app/modules/core/services/ip.service.ts","./src/app/modules/core/services/loader.service.ts","./src/app/modules/core/services/pager.service.ts","./src/app/modules/core/services/snackbar.service.ts","./src/app/modules/core/services/user-idle.service.ts","./src/app/modules/core/services/user.service.ts","./src/app/modules/shared/common/constants.ts","./src/app/modules/shared/common/headers.ts","./src/app/modules/shared/common/pipes/trust-html.pipe.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { RedirectGuard } from './modules/core/guards/redirect.guard';\r\nimport { MsalGuard } from '@azure/msal-angular';\r\nimport { AdminGuard } from './modules/core/guards/admin.guard';\r\n\r\nconst routes: Routes = [\r\n { path: '', loadChildren: () => import('./modules/home/home.module').then(m => m.HomeModule), canActivate: [RedirectGuard] },\r\n { path: 'admin', loadChildren: () => import('./modules/admin/admin.module').then(m => m.AdminModule), canActivate: [MsalGuard], canActivateChild: [AdminGuard] },\r\n { path: 'user', loadChildren: () => import('./modules/user/user.module').then(m => m.UserModule), canActivate: [MsalGuard] },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, Inject, OnDestroy, OnInit } from '@angular/core';\r\nimport { MsalBroadcastService, MsalGuardConfiguration, MsalService, MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport { AuthenticationResult, EventMessage, EventType, InteractionStatus } from '@azure/msal-browser';\r\nimport { filter, Subject } from 'rxjs';\r\nimport { AnalyticsService } from './modules/core/services/analytics.service';\r\nimport { AuthService } from './modules/core/services/auth.service';\r\nimport { LoaderService } from './modules/core/services/loader.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n title = 'app';\r\n isIframe = false;\r\n loginDisplay = false;\r\n public isCookiesAccepted: boolean = false;\r\n private readonly _destroying$ = new Subject();\r\n isProgressRunning: Subject = this.loaderService.isProgressBarRunning;\r\n isLoaderRunning: Subject = this.loaderService.isLoaderRunning;\r\n constructor(@Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration, private authService: AuthService, private loaderService: LoaderService, private msalBroadcastService: MsalBroadcastService, private msalService: MsalService, private analyticsService: AnalyticsService) {\r\n this.analyticsService.initialize();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroying$.next(undefined);\r\n this._destroying$.complete();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n if (!this.authService.isLoggedIn()) {\r\n this.msalBroadcastService.msalSubject$\r\n .pipe(\r\n filter((msg: EventMessage) => msg.eventType === EventType.LOGIN_SUCCESS),\r\n )\r\n .subscribe((result: EventMessage) => {\r\n console.log(result);\r\n const payload = result.payload as AuthenticationResult;\r\n this.msalService.instance.setActiveAccount(payload.account);\r\n\r\n });\r\n\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None)\r\n )\r\n .subscribe(() => {\r\n this.setLoginDisplay();\r\n })\r\n }\r\n }\r\n\r\n setLoginDisplay() {\r\n this.loginDisplay = this.msalService.instance.getAllAccounts().length > 0;\r\n }\r\n\r\n checkAndSetActiveAccount() {\r\n let activeAccount = this.msalService.instance.getActiveAccount();\r\n if (!activeAccount && this.msalService.instance.getAllAccounts().length > 0) {\r\n let accounts = this.msalService.instance.getAllAccounts();\r\n this.msalService.instance.setActiveAccount(accounts[0]);\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { CoreModule } from './modules/core/core.module';\r\nimport { ConfigurationService } from './modules/core/services/configuration.service';\r\nimport { MsalBroadcastService, MsalGuard, MsalGuardConfiguration, MsalInterceptor, MsalInterceptorConfiguration, MsalModule, MsalRedirectComponent, MsalService, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG } from '@azure/msal-angular';\r\nimport { InteractionType, IPublicClientApplication, PublicClientApplication } from '@azure/msal-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { ChartsModule } from 'ng2-charts';\r\n\r\nexport function callConfig(configService: ConfigurationService) {\r\n const x = () => configService.loadConfig();\r\n return x;\r\n}\r\n\r\nexport function getConfig() {\r\n var request = new XMLHttpRequest();\r\n request.open('GET', \"/config\", false);\r\n request.send(null);\r\n const response = JSON.parse(request.responseText);\r\n return response.value.msalConfig;\r\n}\r\n\r\nexport function MSALInstanceFactory(): IPublicClientApplication {\r\n return new PublicClientApplication(getConfig());\r\n}\r\n\r\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\r\n const protectedResourceMap = new Map>();\r\n protectedResourceMap.set(\"https://thrivepasslogin.b2clogin.com/testservice/read\", ['user.read']);\r\n protectedResourceMap.set(\"https://thrivepasslogin.b2clogin.com/testservice/write\", ['user.write']);\r\n\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n protectedResourceMap\r\n };\r\n}\r\n\r\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\r\n return {\r\n interactionType: InteractionType.Redirect,\r\n authRequest: {\r\n scopes: ['profile', 'openid']\r\n },\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n HttpClientModule,\r\n FormsModule,\r\n AppRoutingModule,\r\n CoreModule,\r\n BrowserAnimationsModule,\r\n NgxDaterangepickerMd.forRoot(),\r\n ChartsModule,\r\n MsalModule\r\n ],\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: MsalInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALInstanceFactory\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALGuardConfigFactory\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useFactory: MSALInterceptorConfigFactory\r\n },\r\n MsalService,\r\n MsalGuard,\r\n MsalBroadcastService,\r\n ConfigurationService,\r\n\r\n //intializer\r\n { provide: APP_INITIALIZER, useFactory: callConfig, deps: [ConfigurationService], multi: true },\r\n ],\r\n bootstrap: [AppComponent, MsalRedirectComponent],\r\n})\r\n\r\nexport class AppModule {\r\n\r\n}\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { IpService } from '../../services/ip.service';\r\n\r\n\r\n@Component({\r\n selector: 'accept-cookies',\r\n templateUrl: './accept-cookies.component.html',\r\n styleUrls: ['./accept-cookies.component.scss']\r\n})\r\n\r\nexport class AcceptCookiesComponent {\r\n @Output() isCookiesAcceptedBeforeLogin: EventEmitter = new EventEmitter();\r\n @Output() isCookiesAcceptedAfterLogin: EventEmitter = new EventEmitter();\r\n\r\n public latitude: any;\r\n public longitude: any;\r\n public isLoggedIn: boolean = false;\r\n constructor(private apiService: ApiService, private authService: AuthService, private ipService: IpService) {\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n }\r\n\r\n public acceptCookies() {\r\n this.isCookiesAcceptedAfterLogin.emit(true);\r\n var browserInfo = this.getBrowserName();\r\n this.getLocation();\r\n var data = {\r\n browserInfo: browserInfo,\r\n latitude: this.latitude,\r\n longitude: this.longitude,\r\n ipAddress: this.ipService.getIPAddress()\r\n }\r\n this.apiService.post('user/cookies/add', data).subscribe((response: any) => {\r\n if (response) {\r\n\r\n }\r\n })\r\n }\r\n\r\n public getBrowserName() {\r\n const userAgent = window.navigator.userAgent.toLowerCase();\r\n const isEdge = userAgent.indexOf(\"edg\") > -1 || userAgent.indexOf(\"edge\") > -1;\r\n const isOpera = userAgent.indexOf(\"opr\") > -1 || userAgent.indexOf(\"opera\") > -1;\r\n const isChrome = userAgent.indexOf(\"chrome\") > -1 && !isOpera && !isEdge;\r\n const isIE = userAgent.indexOf(\"trident\") > -1 || userAgent.indexOf(\"msie\") > -1;\r\n const isFirefox = userAgent.indexOf(\"firefox\") > -1;\r\n const isSafari = userAgent.indexOf(\"safari\") > -1 && !isChrome && !isOpera && !isEdge;\r\n\r\n if (isEdge) {\r\n return 'Edge';\r\n } else if (isOpera) {\r\n return 'Opera';\r\n } else if (isChrome) {\r\n return 'Chrome';\r\n } else if (isIE) {\r\n return 'Internet Explorer';\r\n } else if (isFirefox) {\r\n return 'Firefox';\r\n } else if (isSafari) {\r\n return 'Safari';\r\n } else {\r\n return 'Other';\r\n }\r\n }\r\n\r\n public getLocation() {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n (position) => {\r\n this.latitude = position.coords.latitude;\r\n this.longitude = position.coords.longitude;\r\n },\r\n (error) => {\r\n console.error('Error getting location', error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n public openPrivacyDialog() {\r\n window.open(\"https://www.thrivepass.com/privacy\");\r\n }\r\n\r\n public acceptCookiesWithoutLoggedIn() {\r\n if (this.authService.isLoggedIn()) {\r\n this.getLocation();\r\n this.acceptCookies();\r\n }\r\n else {\r\n this.isCookiesAcceptedBeforeLogin.emit(false);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n We value your privacy. This website uses cookies to enable website functionality and help us remember you. You can find more information about the cookies we use in our Privacy Policy.\r\n
\r\n
\r\n

GOT IT

\r\n

GOT IT

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Output, EventEmitter, ChangeDetectorRef} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { CommonService } from '../../services/common.service';\r\nimport { UserService } from '../../services/user.service';\r\nimport { UserIdleService } from '../../services/user-idle.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { TermsOfUseComponent } from '../terms-of-use/terms-of-use.component';\r\nimport { PrivacyPolicyComponent } from '../privacy-policy/privacy-policy.component';\r\nimport { ApiService } from '../../services/api.service';\r\n\r\n@Component({\r\n selector: 'footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\n\r\nexport class FooterComponent {\r\n public isLoggedIn = false;\r\n public currentYear: any;\r\n public isCookiesAccepted: boolean = true;\r\n\r\n @Output()\r\n public isNavDrawerOpen = new EventEmitter();\r\n\r\n public constructor(public authService: AuthService, public router: Router, private commonService: CommonService, private cdr: ChangeDetectorRef, private userService: UserService, public snackBar: MatSnackBar, private userIdleService: UserIdleService, public dialog: MatDialog, private apiService: ApiService) {\r\n this.isLoggedIn = this.authService.isLoggedIn();\r\n this.currentYear = new Date().getFullYear();\r\n this.checkCookiesAccepted();\r\n }\r\n\r\n public checkCookiesAccepted() {\r\n this.apiService.get('user/cookies/info').subscribe((res: any) => {\r\n if (res) {\r\n this.isCookiesAccepted = res.returnedObject.isCookiesAccepted;\r\n }\r\n })\r\n }\r\n\r\n public cookiesAfterLogin(data: any) {\r\n this.isCookiesAccepted = data;\r\n }\r\n\r\n public openTermDialog() {\r\n const termDialog = this.dialog.open(TermsOfUseComponent, this.commonService.getMatDialogOptions(null, 'mat-dialog-container__full-screen'));\r\n }\r\n\r\n public openPrivacyDialog() {\r\n const privacyDialog = this.dialog.open(PrivacyPolicyComponent, this.commonService.getMatDialogOptions(null, 'mat-dialog-container__full-screen'));\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n","
\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\n\r\nexport class LoaderComponent {\r\n @Input()\r\n public small!: boolean;\r\n}\r\n","import { Component, Inject } from \"@angular/core\";\r\nimport { inject } from '@angular/core/testing';\r\n\r\n@Component({\r\n selector: 'privacy-policy',\r\n templateUrl: './privacy-policy.component.html',\r\n styleUrls: ['./privacy-policy.component.scss']\r\n})\r\n\r\nexport class PrivacyPolicyComponent {\r\n public modalTitle: string;\r\n public currentYear: string;\r\n\r\n constructor() {\r\n this.modalTitle = 'Privacy Policy';\r\n this.currentYear = new Date().getFullYear().toString();\r\n }\r\n}\r\n","import { Component, Inject } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'terms-of-use',\r\n templateUrl: 'terms-of-use.component.html',\r\n styleUrls: ['./terms-of-use.component.scss']\r\n})\r\n\r\nexport class TermsOfUseComponent {\r\n public modalTitle: string;\r\n public currentYear: string;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\r\n this.modalTitle = 'Terms of Use';\r\n this.currentYear = new Date().getFullYear().toString();\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n

{{modalTitle}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Last modified: June 11, 2020

\r\n

© COPYRIGHT {{currentYear}} THRIVEPASS Online ALL RIGHTS RESERVED.

\r\n\r\n

\r\n YOUR ACCEPTANCE OF THE TERMS OF USE. Welcome to THRIVEPASS! The website thrivepass.com (the “Site”) is\r\n brought to you by\r\n ThrivePass, Inc. (“THRIVEPASS,” “we,” “us,” or “our”). This user agreement sets forth the “terms\r\n and\r\n conditions” which govern your use of the Site and of the services and features made available on or through\r\n the Site (as\r\n further described in Section 2.A below and including, but not limited to the “Registered User Services,” the\r\n “Services”).\r\n

\r\n

\r\n PLEASE READ THESE TERMS AND CONDITIONS OF USE (the “Terms of Use,” or the “Agreement”) CAREFULLY BEFORE USING\r\n THIS SITE\r\n AS THEY CONSTITUTE A LEGALLY BINDING CONTRACT BETWEEN YOU AND THRIVEPASS AND GOVERN YOUR ACCESS TO THE SITE.\r\n BY\r\n ACCESSING OR USING THIS SITE AND/OR THE SERVICES IN ANY MANNER, YOU INDICATE YOUR UNCONDITIONAL ACCEPTANCE\r\n OF (1) THESE\r\n TERMS OF USE, (2) OUR PRIVACY POLICY (“THE PRIVACY POLICY”); AND (3) ANY OTHER LEGAL NOTICES, CONDITIONS, OR\r\n GUIDELINES\r\n LOCATED ON THE SITE. IF YOU DO NOT AGREE TO THESE TERMS OF USE OR THE PRIVACY POLICY, PLEASE DO NOT USE THE\r\n SITE OR\r\n SERVICES AND EXIT NOW. WE RESERVE THE RIGHT, IN OUR SOLE DISCRETION, TO UPDATE OR REVISE THESE TERMS OF USE\r\n FROM TIME TO\r\n TIME. YOUR CONTINUED USE OF THE SITE AND/OR SERVICES NOW, OR FOLLOWING THE POSTING OR NOTICE OF ANY CHANGES\r\n TO THE TERMS\r\n OF USE OR PRIVACY POLICY WILL INDICATE YOUR ACCEPTANCE OF THOSE CHANGES.\r\n

\r\n
    \r\n
  1. \r\n SITE USERS. Two types of users may access the Site and use the Services – \"Visitors\" and \"Registered\r\n Users.\"\r\n
  2. \r\n\r\n
  3. \r\n Visitors: To become a visitor of the Site (“Visitor”), you must read, agree with, and consent to be\r\n bound by all the\r\n terms and conditions set forth in these Terms of Use and the Privacy Policy As a Visitor, You may\r\n access the Site, and\r\n read our general information. You may NOT access any password-restricted information and/or portions\r\n of the Site, or\r\n upload any information.\r\n
  4. \r\n
  5. \r\n Registered Users: To become a registered user of the Site (“Registered User”) and to access the\r\n password-restricted\r\n areas of the Site and the Registered User Services (as defined in Section 2.A below), You must read,\r\n agree with, and\r\n consent to be bound by all the terms and conditions set forth in these Terms of Use, and the Privacy\r\n Policy. You may\r\n become a Registered User of the Site, by accessing the unique link provided to you upon initiation,\r\n for the Site.\r\n Without limiting the foregoing, the password-restricted areas of the Site and the Registered User\r\n Services are not\r\n available to temporarily or indefinitely suspended Registered Users or to persons under 18 years of\r\n age.\r\n

    You are responsible for maintaining the confidentiality and security of your account and\r\n password, and you are fully\r\n responsible for all activities that occur under your password or account, and for any other actions\r\n taken in connection\r\n with the account or password. You agree to (a) immediately notify THRIVEPASS of any known or\r\n suspected unauthorized\r\n use(s) of your password or account, or any known or suspected breach of security, including loss,\r\n theft, or unauthorized\r\n disclosure of your password or credit card information; and (b) ensure that you exit from your\r\n account at the end of\r\n each session. THRIVEPASS will not be liable for any injury, loss or damage of any kind arising from\r\n or relating to your\r\n failure to comply with (a) and (b) or for any acts or omissions by you or someone else using your\r\n account and/or\r\n password.\r\n
  6. \r\n
\r\n
  • \r\n USE OF CONTENT AND SERVICES AVAILABLE THROUGH THE SITE.\r\n

    \r\n Content. The Site contains a wide variety\r\n of Content (defined below), whether (1) proprietary to THRIVEPASS, or (2)\r\n proprietary to third parties, or Content proprietary to our commercial partners. “Content” includes,\r\n but\r\n is not limited\r\n to text, software, scripts, data, graphics, photos, sounds, music, videos, audiovisual combinations,\r\n interactive\r\n features and other materials that you may view or access through the Site, and Registered User\r\n Content.\r\n Under no\r\n circumstances will THRIVEPASS be liable in any way for any Content, including any errors or\r\n omissions in\r\n any Content or\r\n any Content that is libelous or defamatory, or any loss or damage of any kind incurred as a result\r\n of\r\n your use of any\r\n Content. You agree that you must evaluate and bear all risks associated with the use of any Content,\r\n including any\r\n reliance on the Content, integrity, and accuracy of such Content.\r\n

    \r\n
  • \r\n
      \r\n
    1. \r\n Services. Through the Site, we offer (1) to Visitors and to Registered Users free of cost access to\r\n our\r\n description of\r\n the service and (2) to Registered Users only, access to an online system that allows users to\r\n purchase\r\n wellness products\r\n and other employee benefit administration products, both one-time and recurring.\r\n
    2. \r\n
    3. Restrictions on Your Use of Content. The following restrictions apply to your use of Content:
    4. \r\n
        \r\n
      1. \r\n The Content and the trademarks, services marks and logos on the Site are owned by or licensed to\r\n THRIVEPASS, subject to\r\n copyright and other intellectual property rights under the law.\r\n
      2. \r\n
      3. \r\n Content is provided to You AS IS. You may access Content for your information and use solely as\r\n intended through the\r\n provided functionality of the Site and as permitted under this Agreement. You shall not use\r\n Content in any manner that\r\n infringes our or any third party's intellectual property rights, or other proprietary right or\r\n rights of publicity in or\r\n to the Content. All rights not expressly granted herein by THRIVEPASS and/or its licensors to\r\n you are reserved by\r\n THRIVEPASS and/or its licensors.\r\n
      4. \r\n
      5. \r\n You agree not to circumvent, disable or otherwise interfere with security-related features of\r\n the Site and/or Services\r\n that prevent or restrict the use or copying of any Content and not to alter, remove, or falsify\r\n any attributions or\r\n other proprietary designations of origin or source of any Content appearing on the Site or\r\n contained in a file that is\r\n uploaded to the Site.\r\n
      6. \r\n
      \r\n
    5. \r\n Restrictions on Your Rights to Use the Site/Materials. You agree that you shall not (and you agree\r\n not to allow any\r\n third party to): (i) access or use the Site and/or the Materials (as defined in Section 3 below) in\r\n an unlawful way or\r\n for an unlawful or illegitimate purpose or in any manner that contravenes this Agreement and our\r\n Privacy Policy; (ii)\r\n attempt to disrupt the operation of the Site through use of methods such as viruses, Trojan horses,\r\n worms, time bombs,\r\n denial of service attacks, flooding or spamming; (iii) use the Site/Materials in any manner that\r\n could damage, disable\r\n or impair our services or networks; (iv) attempt, through any means, to gain unauthorized access to\r\n the Site, Services,\r\n to a Registered User’s account, and/or any computer systems or networks, through hacking, password\r\n mining or any other\r\n means; (v) impersonate any person or entity, or falsely state or otherwise misrepresent your\r\n affiliation with a person\r\n or entity; (vi) use any robot, spider, site search/retrieval application, or other device to access,\r\n retrieve, screen\r\n scrape, screen surf or employ any other data scraping method, or index any portion of the\r\n Site/Services/Materials for\r\n any purpose. Systematic retrieval of data or other content from the Site to create or compile,\r\n directly or indirectly, a\r\n collection, compilation, database or directory is prohibited; (vii) create a Registered User account\r\n by automated means\r\n or register as a Registered User under false or fraudulent pretenses; (viii) create or transmit\r\n unwanted electronic\r\n communications such as \"spam\" to Registered Users or otherwise interfere with Visitors and/or\r\n Registered Users’\r\n enjoyment of the Site; (ix) reformat or frame any portion of the web pages that are part of the\r\n Site; (x) use the Site/\r\n Materials to defame, abuse, harass, threaten or otherwise violate the rights of others; (xi) use the\r\n Site to violate the\r\n security of any computer network, crack passwords or security encryption codes, transfer or store\r\n illegal material\r\n including those that are deemed threatening or obscene; (xii) take any action that imposes, or may\r\n impose in our sole\r\n discretion, an unreasonable or disproportionately large load on our IT infrastructure or that may\r\n otherwise interfere\r\n with the functioning of the Site/Services; (xiii) access or otherwise use any aspect of the Site/\r\n Materials if you are\r\n not in compliance with the age requirements; (xiv) create liability for THRIVEPASS or cause\r\n THRIVEPASS to lose (in whole\r\n or in part) the services of its information technology partners or other suppliers; (xv) use the\r\n Site/Materials,\r\n intentionally or unintentionally, to violate any applicable local, state, national or international\r\n law; or (xvi)\r\n collect or store Personal Information (as defined in our Privacy Policy) about Users in connection\r\n with any of the\r\n prohibited activities described in this paragraph, (xvi) alter, or attempt to alter any register\r\n user’s account balance.\r\n
    6. \r\n
    \r\n
  • \r\n PROPRIETARY RIGHTS RESTRICTIONS.\r\n

    \r\n All material on the Site, including, but not limited to,\r\n Content, all informational text, design of and \"look and feel,\"\r\n layout, photographs, graphics, audio, video, messages, interactive and instant messaging, design and\r\n functions, files,\r\n documents, images, or other materials (collectively, the \"Materials\"), whether publicly posted or\r\n privately transmitted,\r\n as well as all derivative works thereof, are owned by THRIVEPASS or other parties that have licensed\r\n their material to\r\n THRIVEPASS, and are protected by copyright, trademark, and other intellectual property laws. All\r\n THRIVEPASS trademarks\r\n and service marks, logos, slogans and taglines are the property of THRIVEPASS. All other trademarks,\r\n service marks,\r\n logos, slogans and taglines are the property of their respective owners. Except as specifically\r\n permitted, nothing\r\n contained herein should be construed as granting any license or right to use any trademarks, service\r\n marks, logos,\r\n slogans or taglines displayed on the Site without the express written permission of THRIVEPASS, or\r\n such\r\n third-party that\r\n may own the trademark, service mark, logo, slogan or tagline.\r\n

    \r\n
  • \r\n
      \r\n
    1. \r\n Except as otherwise specifically permitted herein, the Materials on the Site may not be copied,\r\n reproduced, republished,\r\n uploaded, posted, transmitted, or distributed in any way, including by e-mail or other electronic\r\n means, without the\r\n prior consent of THRIVEPASS or such third-party that owns the Materials. Any modification of the\r\n Materials, use of the\r\n Materials on any web site or networked computer environment, or use of the Materials for any purpose\r\n other than as\r\n specifically permitted herein or in the applicable Registered User agreement without the prior\r\n consent of THRIVEPASS or\r\n its licensors, as applicable, is a violation of the copyright, trademark, and other proprietary\r\n rights in the Materials\r\n and is expressly prohibited.\r\n
    2. \r\n
    \r\n
  • \r\n CHARGES FOR SERVICES.\r\n

    \r\n You understand and agree that you are responsible for all charges relating\r\n to your use of THRIVEPASS Registered User\r\n Services that are not covered by your employer. You will be informed of the fees to be charged when\r\n you\r\n select a\r\n wellness product. Fees may vary from provider to provider. Providers and vendors of wellness\r\n products\r\n may increase their\r\n prices or pass through additional costs and you will be responsible for such costs and fees. You\r\n should\r\n monitor your\r\n account regularly to review and confirm any price increase or additional charges or fees. You will\r\n be\r\n responsible for\r\n all charges or fees related to any wellness product you select that are not covered by your\r\n employer. In\r\n the event you\r\n dispute any fee or charge, you must dispute such charge directly with the provider. You are free to\r\n cancel the services\r\n of any provider of wellness products through the THRIVEPASS site.\r\n You authorize THRIVEPASS to charge your credit card for any fees or charges that are not covered by\r\n your\r\n employer. You\r\n will be asked to supply credit card information, which will be verified prior to your selection of\r\n any\r\n wellness\r\n products. You will not be able to use the THRIVEPASS Registered User Services to purchase wellness\r\n products if the\r\n credit card information you provide is inaccurate or if your credit card is declined.\r\n By selecting and utilizing wellness products, you authorize us to charge your credit card for any\r\n charges that are not\r\n covered by your employer. In order to facilitate payment for your wellness products, we will share\r\n your\r\n credit card\r\n information and related personal information with the designated credit card payment processor. This\r\n information is\r\n shared solely for the purpose of collecting the fees.\r\n

    \r\n

    \r\n You agree to update or renew a credit card that is expired or rejected. THRIVEPASS reserves the\r\n right to cancel any\r\n wellness products and set off future employer contributions you receive from your employer to cover\r\n unpaid fees if you\r\n do not provide a valid credit card within a reasonable amount of time. THRIVEPASS may provide you\r\n with a\r\n “virtual”\r\n credit card which may be used solely for payment for wellness products selected on the THRIVEPASS\r\n site.\r\n In the event of\r\n your misuse of any virtual credit card, THRIVEPASS reserves the right to report such misuse to your\r\n employer and to\r\n terminate your further use of any virtual credit card.\r\n In the event you incur any overcharges or additional fees from a provider of wellness products, such\r\n as\r\n charges or fees\r\n caused by additional services consumed by you or penalties for missed classes, you hereby authorize\r\n THRIVEPASS to deduct\r\n these overcharges or additional fees directly from any balance remaining in your THRIVEPASS account,\r\n to\r\n set off such\r\n overcharges or fees from future employer contributions or to charge your personal credit card.\r\n

    \r\n

    \r\n In\r\n the event that you terminate any wellness products purchased through the THRIVEPASS site or are\r\n credited\r\n for any\r\n other charges and a provider reimburses you for any such charges, THRIVEPASS shall credit the\r\n balance of\r\n your THRIVEPASS\r\n account for any such reimbursement received from such provider. In the event that a reimbursement\r\n received by THRIVEPASS\r\n is linked directly to a charge to your personal credit card and you provide a written request to\r\n have\r\n such charge\r\n credited to your credit card, THRIVEPASS will credit such direct reimbursement to your credit card.\r\n You\r\n hereby agree and\r\n acknowledge that THRIVEPASS will not credit to your credit card any reimbursements or credits linked\r\n to\r\n your employer\r\n contributions and any such credits or reimbursements may only be utilized through the purchase of\r\n wellness products\r\n through the THRIVEPASS site. THRIVEPASS shall have no responsibility for, and shall not provide any\r\n reimbursements or\r\n credits for, any purchases made, or transactions concluded, outside of the THRIVEPASS site.\r\n

    \r\n

    \r\n If\r\n you separate employment from your employer for any reason, you hereby agree and consent to\r\n THRIVEPASS\r\n charging all\r\n fees or other charges for wellness products to your credit card.\r\n

    \r\n
  • \r\n
  • \r\n

    MODIFICATIONS TO THESE TERMS OF USE AND OUR SITE AND/OR SERVICES.

    \r\n

    \r\n You agree and understand that\r\n the terms of this Agreement, the Site, and/or the Services may be modified by us at any\r\n time in our sole discretion without prior notice, and such modifications will be effective\r\n immediately\r\n upon our posting\r\n of the new terms and/or upon implementation of the new changes to the Site and/or Services. You\r\n acknowledge that\r\n THRIVEPASS reserves the right to discontinue the Services, or any features, functionality or\r\n services\r\n provided as part\r\n of or in connection with the Site and/or the Services, and to remove Content that violates the\r\n requirements set forth in\r\n this Agreement, without prior notice. While the non-password restricted portions of the Site are\r\n currently free of\r\n charge, you acknowledge that THRIVEPASS reserves the right to charge for aspects or additions to the\r\n Site and/or\r\n Services in the future.\r\n

    \r\n

    \r\n You agree to review this Agreement periodically so that you are aware of\r\n the most current rights and obligations, which\r\n apply to your agreement with us. Your continued use of the Site and/or the Services after any\r\n modifications indicates\r\n your acceptance of the modified Agreement. The most current version of this Agreement can be\r\n accessed at\r\n any time by\r\n selecting the Terms of Use link on the bottom of any page on the Site. You understand that the\r\n Content\r\n is provided as a\r\n courtesy to our Registered Users and Visitors and that we may suspend or terminate all or a portion\r\n of\r\n the Site and/or\r\n Services at any time in our discretion without notice to you. Nothing in these Terms of Use shall be\r\n deemed to confer\r\n any third-party rights or benefits.\r\n

    \r\n
  • \r\n
  • \r\n VISITOR/USER SUGGESTIONS.

    \r\n You acknowledge and agree that any questions, comments, suggestions,\r\n ideas, feedback, or other information provided by\r\n you to THRIVEPASS (“Comments”) are not confidential and you hereby grant to THRIVEPASS a worldwide,\r\n perpetual,\r\n irrevocable, royalty-free license to reproduce, display, perform, distribute, publish, modify, edit\r\n or\r\n otherwise use\r\n such Comments as it deems appropriate, for any and all commercial or non-commercial purposes, in its\r\n sole discretion.\r\n

    \r\n
  • \r\n
  • \r\n DIGITAL MILLENIUM COPYRIGHT ACT.

    \r\n THRIVEPASS respects the intellectual property of others and\r\n expects users of our services to do the same. If you believe\r\n that your copyrighted work has been copied in a way that constitutes copyright infringement and is\r\n accessible on this\r\n site or through this service, you must provide the following information when providing notice of\r\n the\r\n claimed\r\n infringement to THRIVEPASS:\r\n

    \r\n
  • \r\n
      \r\n
    • \r\n A physical or electronic signature of a person authorized to act on behalf of the copyright owner\r\n and identification of\r\n the copyrighted work that is infringed;\r\n
    • \r\n
    • \r\n Information reasonably sufficient to permit THRIVEPASS to contact you, such as an address, telephone\r\n number and/or\r\n electronic mail address;\r\n
    • \r\n
    • \r\n A statement that you have a good faith belief that the use of the material in the manner complained\r\n of is not authorized\r\n by the copyright owner, its agent or law;\r\n
    • \r\n
    • \r\n A statement that the information in the notification is accurate and under penalty of perjury, that\r\n the complaining\r\n party is authorized to act on behalf of the owner of an exclusive right that is allegedly infringed.\r\n
    • \r\n
    \r\n

    \r\n The above information must be submitted as a written notification to THRIVEPASS by writing us at\r\n corp@thrivepass.com,\r\n ATTENTION: LEGAL DEPARTMENT/DMCA COMPLAINT. This information should not be construed as legal advice.\r\n For further\r\n details on the information required for valid DMCA notifications, see 17 U.S.C. 512(c)(3).\r\n

    \r\n
  • \r\n LINKS TO THIRD PARTY SITES AND SERVICES; NO IMPLIED ENDORSEMENT.

    \r\n This Site contains links to other web\r\n sites owned by third parties, which may lead to some sites maintained by our\r\n advertisers. Please note that when you click on any of these links, you are entering another web\r\n site for which\r\n THRIVEPASS has no responsibility or control. You agree that THRIVEPASS shall not be responsible for\r\n any loss or damage\r\n of any sort incurred as a result of any such links or as the result of the presence of such links on\r\n our Site. In no\r\n event shall any reference to any third party, third party website or third party product or service\r\n be construed as an\r\n approval or endorsement by us of that third party, third party website or of any product or service\r\n provided by a third\r\n party.\r\n

    \r\n
  • \r\n\r\n
  • \r\n
      \r\n
    1. \r\n MEDICAL DISCLAIMER. THRIVEPASS IS NOT A MEDICAL REFERRAL SERVICE AND DOES NOT RECOMMEND OR\r\n ENDORSE ANY PARTICULAR\r\n MEDICAL OR WELLNESS TREATMENT OF ANY KIND OR ANY PRACTITIONER. THRIVEPASS DOES NOT OFFER ADVICE\r\n REGARDING THE\r\n SUITABILITY OR APPROPRIATENESS OF ANY MEDICAL OR WELLNESS TREATMENT FOR ANY MEDICAL CONDITION.\r\n NEITHER THE SITE, THE\r\n SERVICES, NOR ANY OF THE INFORMATION CONTAINED HEREIN IS INTENDED TO BE, NOR SHOULD IT BE\r\n CONSTRUED AS A SUBSTITUTE FOR\r\n PROFESSIONAL HEALTH OR MEDICAL ADVICE. THRIVEPASS (INCLUDING ITS OFFICERS, DIRECTORS, EMPLOYEES\r\n AGENTS, REPRESENTATIVES\r\n AND AFFILIATES) EXPRESSLY DISCLAIMS ALL RESPONSIBILITY AND LIABILITY ARISING FROM (A) YOUR USE\r\n OF OR RELIANCE ON THE\r\n SITE, THE SERVICES, OR THE INFORMATION CONTAINED HEREIN AS A HEALTH REFERENCE SOURCE, (B) ANY\r\n ADVICE, TREATMENT, OR\r\n SERVICES RENDERED BY ANY THIRD PARTY PROVIDER, PARTNER OR AFFILIATE FEATURED ON THIS WEB SITE,\r\n OR (C) ANY CLAIMS THAT\r\n MAY RESULT DIRECTLY OR INDIRECTLY FROM YOUR USE THEREOF. SHOULD YOU HAVE ANY MEDICAL OR HEALTH\r\n CARE RELATED QUESTIONS,\r\n OR IF YOU HAVE ANY REASON TO SUSPECT THAT YOU HAVE ANY CONDITION THAT MIGHT REQURIE MEDICAL\r\n ATTENTION, THRIVEPASS\r\n ADVISES YOU TO SEEK APPROPRIATE MEDICAL ATTENTION AND CARE PROMPTLY. ALWAYS CONSULT WITH YOUR\r\n PHYSICIAN OR QUALIFIED\r\n HEALTH CARE PROFESSIONAL BEFORE EMBARKING ON ANY NEW TREATMENT, DIET, FITNESS OR WELLNESS\r\n PROGRAM.\r\n

      \r\n INFORMATION YOU PROVIDE IS NOT PROTECTED UNDER CONFIDENTIALITY LAWS THAT PROTECT\r\n PHYSICIAN-PATIENT COMMUNICATIONS, SO\r\n PLEASE CAREFULLY SELECT WHAT YOU CHOOSE TO DISCLOSE. WE ARE COMMITTED TO PROTECTING THE\r\n PERSONAL INFORMATION WE RECEIVE\r\n FROM YOU AND USE REASONABLE SECURITY MEASURES TO MAINTAIN THE SECURITY OF SUCH INFORMATION,\r\n HOWEVER, WE CANNOT FULLY\r\n ELIMINATE SECURITY RISKS ASSOCIATED WITH THE TRANSMISSION OF PERSONAL INFORMATION THROUGH\r\n ONLINE TRANSACTIONS, AND YOU\r\n DO SO AT YOUR OWN RISK.\r\n

      \r\n

      \r\n THRIVEPASS ASSUMES NO LIABILITY IN REGARDS TO USERS OF LISTED VENDOR FACILITIES. WE ALSO\r\n ASSUME NO LIABILITY IN THE CASE\r\n OF ANY HARM THAT MAY RESULT DIRECTLY OR INDIRECTLY FROM THE USE OF ANY VENDOR FEATURED ON\r\n THE PLATFORM.\r\n

      \r\n
    2. \r\n
    3. \r\n Services Disclaimer. To the extent the Platform contains retirement, pre-tax financial, decision\r\n support, or financial\r\n wellness information, please know that THRIVEPASS is designed to provide you with a general\r\n education on retirement\r\n plans, pre-tax plans, decision support and personal financial wellness. THRIVEPASS is not\r\n intended to be legal, tax,\r\n investment or accounting advice. Any calculator or financial modeling tools provided within\r\n these modules are designed\r\n to be informational and educational only; any results presented are hypothetical. THRIVEPASS\r\n does not warrant the\r\n accuracy of this information or its applicability to your particular circumstances – rather,\r\n THRIVEPASS specifically\r\n disclaims any such warranties and any other liability arising out of the use of the Platform.\r\n
    4. \r\n
    \r\n
  • \r\n
  • \r\n DISCLAIMER OF WARRANTY. ACCESS TO THE SITE, THE SERVICES, THE MATERIALS, AND TECHNOLOGY AVAILABLE ON OR\r\n THROUGH THE SITE\r\n OR DOWNLOADED THEREFROM IS PROVIDED “AS IS” AND “AS AVAILABLE” “WITH ALL FAULTS” AND WITHOUT ANY\r\n WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED. TO THE FULLEST EXTENT PERMISSIBLE PURSUANT TO APPLICABLE LAW, THRIVEPASS AND ITS\r\n LICENSORS DISCLAIM\r\n ALL WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED\r\n WARRANTIES OF TITLE,\r\n MERCHANTIBILITY, AND FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. WITHOUT LIMITING THE\r\n FOREGOING,\r\n NEITHER THRIVEPASS NOR ITS LICENSORS WARRANT THAT ACCESS TO THE SITE AND/OR THE SERVICES WILL BE\r\n UNINTERRUPTED OR\r\n ERROR-FREE, OR THAT DEFECTS, IF ANY, WILL BE CORRECTED; NOR DOES THRIVEPASS AND ITS LICENSORS MAKE ANY\r\n REPRESENTATIONS\r\n ABOUT THE ACCURACY, RELIABILITY, CURRENCY, QUALITY, COMPLETENESS, USEFULNESS, PERFORMANCE, SECURITY,\r\n LEGALITY OR\r\n SUITABILITY OF THE SITE, THE SERVICES OR ANY OF THE MATERIALS AND TECHNOLOGY AVAILABLE ON OR THROUGH THE\r\n SITE OR THE\r\n SERVICES OR DOWNLOADED THEREFROM. YOU EXPRESSLY AGREE THAT YOUR USE OF THE SITE AND THE SERVICES AND\r\n YOUR RELIANCE UPON\r\n THE MATERIALS AND TECHNOLOGY AVAILABLE ON OR THROUGH THE SITE, THE SERVICES OR DOWNLOADED THEREFROM IS\r\n AT YOUR SOLE\r\n RISK. FURTHER, THRIVEPASS AND ITS LICENSORS MAKE NO REPRESENTATION OR WARRANTIES THAT THE SITE OR THE\r\n SERVICES OR THE\r\n MATERIALS AND TECHNOLOGY AVAILABLE ON OR THROUGH THE SITE OR THE SERVICES OR DOWNLOADED THEREFROM IS\r\n APPROPRIATE OR\r\n AVAILABLE FOR USE IN ALL GEOGRAPHIC LOCATIONS. IF YOU USE THE SITE OR THE SERVICES OR ANY MATERIALS OR\r\n TECHNOLOGY\r\n AVAILABLE ON OR THROUGH THE SITE OR THE SERVICES FROM OUTSIDE THE UNITED STATES OF AMERICA, YOU ARE\r\n SOLELY RESPONSIBLE\r\n FOR COMPLIANCE WITH ALL APPLICABLE LAWS, INCLUDING WITHOUT LIMITATION EXPORT AND IMPORT REGULATIONS OF\r\n OTHER\r\n COUNTRIES.NEITHER THRIVEPASS NOR ANY THIRD PARTY PROVIDERS, PARTNERS OR AFFILIATES WARRANT THAT THIS\r\n SITE, ITS SERVERS\r\n OR ANY E-MAIL SENT FROM THRIVEPASS OR ANY THIRD PARTY PROVIDERS, PARTNERS OR AFFILIATES ARE FREE OF\r\n VIRUSES OR OTHER\r\n HARMFUL COMPONENTS.\r\n
  • \r\n
  • \r\n LIMITATION OF LIABILITY. WE ARE NOT LIABLE TO YOU OR ANY OTHER PERSON FOR ANY PUNITIVE, EXEMPLARY,\r\n CONSEQUENTIAL,\r\n INCIDENTAL, INDIRECT OR SPECIAL DAMAGES (INCLUDING, WITHOUT LIMITATION, ANY PERSONAL INJURY, LOST\r\n PROFITS, BUSINESS\r\n INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON YOUR COMPUTER OR OTHERWISE) ARISING FROM OR IN\r\n CONNECTION WITH YOUR USE\r\n OF THE SITE, THE SERVICES OR ITS MATERIALS OR TECHNOLOGY, WHETHER UNDER A THEORY OF BREACH OF CONTRACT,\r\n NEGLIGENCE,\r\n STRICT LIABILITY, MALPRACTICE OR OTHERWISE, EVEN IF THRIVEPASS OR THEY HAVE BEEN ADVISED OF THE\r\n POSSIBILITY OF SUCH\r\n DAMAGES. YOU HEREBY RELEASE THRIVEPASS AND HOLD THRIVEPASS AND ITS PARENTS, SUBSIDIARIES, AFFILIATES, OR\r\n LICENSORS, AND\r\n THEIR OFFICERS, DIRECTORS, TRUSTEES, AFFILIATES, SUBCONTRACTORS, AGENTS AND EMPLOYEES, HARMLESS FROM ANY\r\n AND ALL CLAIMS,\r\n DEMANDS, AND DAMAGES OF EVERY KIND AND NATURE (INCLUDING, WITHOUT LIMITATION, ACTUAL, SPECIAL,\r\n INCIDENTAL AND\r\n CONSEQUENTIAL), KNOWN AND UNKNOWN, SUSPECTED AND UNSUSPECTED, DISCLOSED AND UNDISCLOSED, ARISING OUT OF\r\n OR IN ANY WAY\r\n CONNECTED WITH YOUR USE OF THE SITE, THE SERVICES OR ITS MATERIALS OR TECHNOLOGY. YOU WAIVE THE\r\n PROVISIONS OF ANY STATE\r\n OR LOCAL LAW LIMITING OR PROHIBITING A GENERAL RELEASE.\r\n
  • \r\n\r\n
  • \r\n EXCLUSIVE REMEDY. IN THE EVENT OF ANY PROBLEM WITH THE SITE, THE SERVICES OR ANY OF ITS MATERIALS OR\r\n TECHNOLOGY, YOU\r\n AGREE THAT YOUR SOLE AND EXCLUSIVE REMEDY IS TO CEASE USING THE SITE, THE SERVICES, THE MATERIALS AND/OR\r\n THE TECHNOLOGY.\r\n UNDER NO CIRCUMSTANCES SHALL THRIVEPASS, ITS AFFILIATES, OR LICENSORS BE LIABLE IN ANY WAY FOR YOUR USE\r\n OF SITE, THE\r\n SERVICES OR ANY OF ITS MATERIALS OR TECHNOLOGY, INCLUDING, BUT NOT LIMITED TO, ANY ERRORS OR OMISSIONS\r\n IN ANY MATERIALS,\r\n ANY INFRINGEMENT BY THE MATERIALS, AND/OR THE TECHNOLOGY OF THE INTELLECTUAL PROPERTY RIGHTS OR OTHER\r\n RIGHTS OF THIRD\r\n PARTIES, OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF THE SITE ,THE SERVICES\r\n OR ANY OF\r\n MATERIALS OR TECHNOLOGY AVAILABLE THEREON. Certain states and/or jurisdictions do not allow the\r\n exclusion of implied\r\n warranties or limitation of liability for incidental or consequential damages, so the exclusions set\r\n forth above may not\r\n apply to you.\r\n
  • \r\n
  • \r\n TERMINATION/EXCLUSION. We reserve the right, in our sole discretion, to revoke, terminate or suspend any\r\n privileges\r\n associated with accessing our Site for any reason or for no reason whatsoever, including improper use of\r\n this Site or\r\n failure to comply with these Terms of Use, and to take any other action we deem appropriate. You agree\r\n that THRIVEPASS\r\n shall not be liable to you or any third party for any termination of your access to the Site and/or to\r\n any Materials\r\n therein.\r\n
  • \r\n
  • \r\n INDEMNIFICATION. You agree to indemnify, hold harmless, and defend THRIVEPASS and its licensors,\r\n suppliers, officers,\r\n directors, employees, agents, affiliates, subsidiaries, successors and assigns (collectively\r\n \"Indemnified Parties\") from\r\n and against any and all liability, loss, claim, damages, expense, or cost (including but not limited to\r\n attorneys'\r\n fees), incurred by or made against the Indemnified Parties in connection with any claim arising from or\r\n related to your\r\n use of the Site, the Services or any of its Materials or technology, or any breach or violation of these\r\n Terms of Use by\r\n you. You agree to fully cooperate as reasonably required by an Indemnified Party(ies). Each Indemnified\r\n Party may, at\r\n its own expense, assume the exclusive defense and control of any matter for which it is indemnified\r\n hereunder. You shall\r\n not settle any matter without the consent of the applicable Indemnified Party.\r\n
  • \r\n
  • \r\n Governing Law; Dispute Resolution.\r\n You agree that all matters relating to your access to or use of the site, including all disputes, will\r\n be governed by\r\n the laws of the United States and by the laws of the State of Delaware without regard to its conflicts\r\n of laws\r\n provisions. You agree to the personal jurisdiction by and venue in the state and federal courts in\r\n Denver County,\r\n Colorado, and waive any objection to such jurisdiction or venue. Any claim under these Terms of Use must\r\n be brought\r\n within one (1) year after the cause of action arises, or such claim or cause of action is barred. No\r\n recovery may be\r\n sought or received for damages other than out-of-pocket expenses, except that the prevailing party will\r\n be entitled to\r\n costs and attorneys’ fees. In the event of any controversy or dispute between THRIVEPASS and you arising\r\n out of or in\r\n connection with your use of the site, the parties shall attempt, promptly and in good faith, to resolve\r\n any such\r\n dispute. If we are unable to resolve any such dispute within a reasonable time (not to exceed thirty\r\n (30) days), then\r\n either party may submit such controversy or dispute to mediation. If the dispute cannot be resolved\r\n through mediation,\r\n then the parties shall be free to pursue any right or remedy available to them under applicable law.\r\n
  • \r\n
  • \r\n MISCELLANEOUS. You acknowledge that a violation or attempted violation of any of these Terms of Use will\r\n cause such\r\n damage to THRIVEPASS as will be irreparable, the exact amount of which would be impossible to ascertain\r\n and for which\r\n there will be no adequate remedy at law. Accordingly, you agree that THRIVEPASS shall be entitled as a\r\n matter of right\r\n to an injunction issued by any court of competent jurisdiction, restraining such violation or attempted\r\n violation of\r\n these terms and conditions by you, or your affiliates, partners, or agents, as well as to recover from\r\n you any and all\r\n costs and expenses sustained or incurred by THRIVEPASS in obtaining such an injunction, including,\r\n without limitation,\r\n reasonable attorney's fees. You agree that no bond or other security shall be required in connection\r\n with such\r\n injunction.\r\n
  • \r\n
      \r\n
    1. \r\n In the event any of the terms or provisions of this Agreement are determined to be invalid, illegal\r\n or otherwise\r\n unenforceable, the same shall not affect the other terms or provisions hereof or the whole of this\r\n Agreement, but such\r\n term or provision shall be deemed modified to the extent necessary to render such term or provision\r\n enforceable. A\r\n waiver of or failure to insist on performance of any of the terms of the Agreement will not operate\r\n as a waiver of any\r\n subsequent default whether of the same or similar nature.\r\n
    2. \r\n
    3. \r\n A printed version of this Agreement and of any related Notice given in electronic form shall be\r\n admissible in judicial\r\n or administrative proceedings based upon or relating to this Agreement to the same extent and\r\n subject to the same\r\n conditions as other business documents and records originally generated and maintained in printed\r\n form.\r\n
    4. \r\n
    \r\n
  • \r\n THRIVEPASS SERVICES\r\n

    \r\n THRIVEPASS is a third party administrative service provider of pre-tax benefits for businesses to\r\n manage\r\n employee\r\n benefit plans through the Internet. The THRIVEPASS Site provides registered members with a\r\n cost-effective way to manage\r\n health and other benefit programs. As a third party administrator, THRIVEPASS will not and does not\r\n provide advice in\r\n regards to: finance, legal, tax, or medical benefit programs. Personal information regarding life\r\n events, financial or\r\n legal, or tax concerns is provided on our Site ONLY for informational purposes. Hereafter, you\r\n release\r\n THRIVEPASS from\r\n and waive any and all claims, demands, and causes of action of every kind and nature, known and\r\n unknown,\r\n which exist or\r\n hereafter arise against the Company related in any way to the choice of your benefit plan, or the\r\n actions of any third\r\n party provider under any plan associated with the benefit’s plan.\r\n

    \r\n
  • \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'toast',\r\n templateUrl: './toast.component.html',\r\n styleUrls: ['./toast.component.scss'],\r\n})\r\nexport class ToastComponent {\r\n\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, private _snackRef: MatSnackBarRef) { }\r\n\r\n public close() {\r\n this._snackRef.dismiss();\r\n }\r\n}\r\n","
    \r\n
    {{data.result}}
    \r\n
    {{data.message}}
    \r\n
    \r\n \r\n
    \r\n
    \r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'top-banner',\r\n templateUrl: './top-banner.component.html',\r\n styleUrls: ['./top-banner.component.scss']\r\n})\r\nexport class TopBannerComponent {\r\n constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, public _snackRef: MatSnackBarRef) {\r\n }\r\n\r\n public performAction() {\r\n this._snackRef.dismissWithAction();\r\n }\r\n public dismiss() {\r\n this._snackRef.dismiss();\r\n }\r\n}\r\n","
    \r\n

    {{data.message}}

    \r\n
    \r\n \r\n
    \r\n close\r\n\r\n
    \r\n
    \r\n
    \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AuthInterceptor } from './interceptors/auth.interceptor';\r\nimport { LoaderInterceptor } from './interceptors/loader.interceptor';\r\nimport { ErrorInterceptor } from './interceptors/error.interceptor';\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { AuthService } from './services/auth.service';\r\nimport { UserIdleService } from './services/user-idle.service';\r\nimport { RedirectGuard } from './guards/redirect.guard';\r\nimport { MaterialModule } from './material.module';\r\nimport { AppState } from './services/app.service';\r\nimport { CommonService } from './services/common.service';\r\nimport { AnalyticsService } from './services/analytics.service';\r\nimport { AdminService } from './services/admin.service';\r\nimport { NgProgress } from '@ngx-progressbar/core';\r\nimport { UserService } from './services/user.service';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { TrustHtmlPipe } from '../shared/common/pipes/trust-html.pipe';\r\nimport { PagerService } from './services/pager.service';\r\nimport { AdminGuard } from './guards/admin.guard';\r\nimport { EnrollmentGuard } from './guards/enrollment.guard';\r\nimport { TopBannerComponent } from './components/top-banner/top-banner.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { SnackbarService } from './services/snackbar.service';\r\nimport { AcceptCookiesComponent } from './components/accept-cookies/accept-cookies.component';\r\nimport { ToastComponent } from './components/toast/toast.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n LoaderComponent,\r\n TopBannerComponent,\r\n FooterComponent,\r\n AcceptCookiesComponent,\r\n ToastComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MaterialModule\r\n ],\r\n exports: [\r\n MaterialModule,\r\n LoaderComponent,\r\n TopBannerComponent,\r\n FooterComponent,\r\n AcceptCookiesComponent,\r\n ToastComponent\r\n ],\r\n providers: [\r\n //services\r\n AuthService,\r\n UserIdleService,\r\n CommonService,\r\n AnalyticsService,\r\n AdminService,\r\n NgProgress,\r\n UserService,\r\n PagerService,\r\n SnackbarService,\r\n //Guards\r\n RedirectGuard,\r\n AppState,\r\n AdminGuard,\r\n EnrollmentGuard,\r\n //interceptors\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n\r\n //pipes\r\n\r\n TrustHtmlPipe\r\n ],\r\n})\r\nexport class CoreModule { }\r\n","import { Directive, HostListener, ElementRef, OnInit, AfterViewInit } from '@angular/core';\r\nimport { NgControl, FormControl } from '@angular/forms';\r\n/*import { setTimeout } from 'timers';*/\r\n\r\n@Directive({\r\n selector: '[numberFormatter]'\r\n})\r\n\r\nexport class NumberFormatterDirective implements OnInit {\r\n private el: HTMLInputElement;\r\n private static decimalSeparator = '.';\r\n private static thousandsSeparator = ',';\r\n private static padding = '000000';\r\n\r\n private regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\r\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowUp', 'ArrowRight', 'ArrowDown', 'ArrowLeft', 'Delete'];\r\n private specialCharacters = [\r\n { value: '$', affixType: 'prefix' },\r\n { value: '%', affixType: 'suffix' },\r\n { value: '×', affixType: 'suffix' }\r\n ];\r\n\r\n private validValue!: string;\r\n private allowZero: boolean = false;\r\n private autoFillZero: boolean = true;\r\n private specialCharacter: string = '';\r\n public specialCharacterToSupport: any = null;\r\n\r\n constructor(private elementRef: ElementRef, private control: NgControl) {\r\n this.el = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnInit() {\r\n // setTimeout(() => {\r\n // this.allowZero = (this.el.attributes['allow_zero'] ? (this.el.attributes['allow_zero'].value == 'true') : false);\r\n // this.autoFillZero = (this.el.attributes['auto_fill_zero'] ? (this.el.attributes['auto_fill_zero'].value == 'true') : true);\r\n // this.specialCharacter = (this.el.attributes['special_character'] ? (this.el.attributes['special_character'].value) : '');\r\n // if (this.specialCharacter) {\r\n // this.specialCharacterToSupport = this.specialCharacters.filter((item) => {\r\n // return (item.value === this.specialCharacter);\r\n // })[0];\r\n // }\r\n\r\n // this.el.value = NumberFormatterDirective.transform(this.el.value, this.autoFillZero, this.allowZero, this.specialCharacterToSupport);\r\n // this.control.control.setValue(this.el.value);\r\n // this.validValue = this.el.value;\r\n //}, 0);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n onFocus(event: KeyboardEvent) {\r\n this.checkForUpdatedSpecialCharacter();\r\n this.el.value = NumberFormatterDirective.parseBeginningZeroes(this.el.value, this.allowZero, this.specialCharacterToSupport);\r\n if (this.specialCharacterToSupport) {\r\n this.el.value = (this.specialCharacterToSupport.affixType === 'prefix' ? (this.specialCharacterToSupport.value + this.el.value) : (this.el.value + this.specialCharacterToSupport.value));\r\n setTimeout(() => {\r\n if (this.specialCharacterToSupport.affixType === 'suffix') {\r\n // this.el.selectionStart = (this.el.selectionStart - 1);\r\n this.el.selectionEnd = (this.el.selectionStart);\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n onBlur(event: KeyboardEvent) {\r\n this.checkForMinAndMaxLimit(event, true);\r\n this.el.value = NumberFormatterDirective.transform(this.el.value, this.autoFillZero, this.allowZero, this.specialCharacterToSupport);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n this.validValue = (this.el.value ? this.el.value : '0');\r\n let regex = new RegExp(/^[0-9]+(\\.[0-9]*){0,1}$/g);\r\n // Allow all the special keys defined above\r\n if (this.specialKeys.indexOf(event.key) !== -1 || event.ctrlKey)\r\n return;\r\n\r\n const current: string = this.validValue;\r\n this.checkForUpdatedSpecialCharacter();\r\n const next: string = NumberFormatterDirective.parse(current, this.allowZero, this.specialCharacterToSupport);\r\n if (next && !String(next).match(regex))\r\n event.preventDefault();\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n onKeyUp(event: KeyboardEvent) {\r\n this.checkForMinAndMaxLimit(event);\r\n }\r\n\r\n public static transform(value: number | string, autoFillZero: boolean = true, allowZero: boolean = false, specialCharacterToSupport: any = null): string {\r\n if (specialCharacterToSupport)\r\n value = (value || '').toString().replace(specialCharacterToSupport.value, '');\r\n\r\n let [integer, fraction = ''] = (value || '').toString().split(this.decimalSeparator);\r\n let fractionSize = value.toString().indexOf('.') !== -1 ? 2 : 0;\r\n fraction = fractionSize > 0 ? (this.decimalSeparator + (fraction + this.padding).substring(0, fractionSize)) : '';\r\n\r\n if (!allowZero || (allowZero && integer !== '0'))\r\n integer = integer.replace(/^0+/, ''); //Replaces all the '0' in the beginning.\r\n\r\n integer = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, this.thousandsSeparator);\r\n if (integer === '' && fraction === '' && autoFillZero)\r\n integer = '0';\r\n\r\n if (specialCharacterToSupport && (integer !== '' || fraction !== ''))\r\n return (specialCharacterToSupport.affixType === 'prefix' ? (specialCharacterToSupport.value + integer + fraction) : (integer + fraction + specialCharacterToSupport.value));\r\n\r\n return integer + fraction;\r\n }\r\n\r\n public static parse(value: string, allowZero: boolean = false, specialCharacterToSupport: any = null): string {\r\n if (specialCharacterToSupport)\r\n value = value.replace(specialCharacterToSupport.value, '');\r\n\r\n value = (value || '').toString();\r\n let [integer, fraction = ''] = (value || '').split(this.decimalSeparator);\r\n let fractionSize = value.indexOf('.') !== -1 ? 2 : 0;\r\n integer = integer.replace(new RegExp(this.thousandsSeparator, 'g'), '');\r\n fraction = parseInt(fraction, 10) > 0 && fractionSize > 0 ? this.decimalSeparator + (fraction + this.padding).substring(0, fractionSize) : '';\r\n\r\n if (integer === '0' && fraction === '' && !allowZero)\r\n integer = '';\r\n\r\n return integer + fraction;\r\n }\r\n\r\n public static parseBeginningZeroes(value: string, allowZero: boolean = false, specialCharacterToSupport: any = null): string {\r\n if (specialCharacterToSupport)\r\n value = value.replace(specialCharacterToSupport.value, '');\r\n\r\n let [integer, fraction = ''] = (value || '').split(this.decimalSeparator);\r\n let fractionSize = value.toString().indexOf('.') !== -1 ? 2 : 0;\r\n fraction = parseInt(fraction, 10) > 0 && fractionSize > 0 ? this.decimalSeparator + (fraction + this.padding).substring(0, fractionSize) : '';\r\n\r\n if (integer === '0' && fraction === '' && !allowZero)\r\n integer = '';\r\n\r\n return (integer + fraction);\r\n }\r\n\r\n public checkForMinAndMaxLimit(event: KeyboardEvent, checkForMinLimit: boolean = false) {\r\n let current: string = this.validValue;\r\n let next: string = this.el.value;\r\n\r\n this.checkForUpdatedSpecialCharacter();\r\n if (this.specialCharacterToSupport) {\r\n current = current.replace(this.specialCharacterToSupport.value, '');\r\n next = next.replace(this.specialCharacterToSupport.value, '');\r\n }\r\n\r\n let currentCopy = current;\r\n let nextCopy = next;\r\n current = NumberFormatterDirective.parse(current, this.allowZero, this.specialCharacterToSupport);\r\n next = NumberFormatterDirective.parse(next, this.allowZero, this.specialCharacterToSupport);\r\n\r\n if (this.checkIfStringValueIsNotValidFloatNumber(next))\r\n next = '';\r\n\r\n let intPart: string ;\r\n let decimalPart: string;\r\n let isMaxLimitCrossed: boolean = false;\r\n let isMinLimitNotReached: boolean = false;\r\n\r\n if (this.el.max.indexOf(',') > -1)\r\n this.el.max = this.el.max.replace(/,/g, '');\r\n\r\n if (this.el.min.indexOf(',') > -1)\r\n this.el.min = this.el.min.replace(/,/g, '');\r\n\r\n let maxLimit = parseFloat(this.el.max);\r\n let minLimit = parseFloat(this.el.min);\r\n let value = parseFloat(next);\r\n if (next && (!String(next).match(this.regex) || (!isNaN(maxLimit) && value > maxLimit) || (checkForMinLimit && !isNaN(minLimit) && value < minLimit))) {\r\n //If current value is also incorrect\r\n if ((current && (!String(current).match(this.regex) || (!isNaN(maxLimit) && parseFloat(current) > maxLimit) || (checkForMinLimit && !isNaN(minLimit) && parseFloat(current) < minLimit)))) {\r\n if ((!isNaN(maxLimit) && parseFloat(current) > maxLimit)) {\r\n let maxLimitIntPart = this.el.max.substring(0, (this.el.max.indexOf('.') !== -1 ? this.el.max.indexOf('.') : this.el.max.length));\r\n if (current.length > maxLimitIntPart.length)\r\n current = current.substr(0, maxLimitIntPart.length) + (current.indexOf('.') !== -1 ? (current.substring(current.indexOf('.'), current.length)) : '');\r\n\r\n if (parseFloat(current) > maxLimit) {\r\n current = this.el.max;\r\n isMaxLimitCrossed = true;\r\n }\r\n\r\n } else {\r\n let minLimitIntPart = this.el.min.substring(0, (this.el.min.indexOf('.') !== -1 ? this.el.min.indexOf('.') : this.el.min.length));\r\n if (current.length > minLimitIntPart.length)\r\n current = current.substr(0, minLimitIntPart.length) + (current.indexOf('.') !== -1 ? (current.substring(current.indexOf('.'), current.length)) : '');\r\n if (parseFloat(current) < minLimit) {\r\n current = '';\r\n isMinLimitNotReached = true;\r\n }\r\n }\r\n } else if (checkForMinLimit && !current) {\r\n current = '';\r\n isMinLimitNotReached = true;\r\n }\r\n\r\n if (!isMaxLimitCrossed && (!isMinLimitNotReached || !checkForMinLimit) && currentCopy.indexOf('.') !== -1) {\r\n intPart = ((current.indexOf('.') !== -1) ? current.substring(0, current.indexOf('.')) : current);\r\n decimalPart = currentCopy.substring(currentCopy.indexOf('.'), currentCopy.length);\r\n if (decimalPart.length > 3)\r\n decimalPart = decimalPart.substr(0, 3);\r\n } else {\r\n intPart = current;\r\n decimalPart = '';\r\n }\r\n\r\n current = NumberFormatterDirective.parseBeginningZeroes(intPart + decimalPart, this.allowZero, this.specialCharacterToSupport);\r\n current = NumberFormatterDirective.transform(current, this.autoFillZero, this.allowZero, this.specialCharacterToSupport);\r\n this.el.value = current;\r\n this.control.control?.setValue(current);\r\n //this.el.selectionStart = (this.el.selectionStart - 1);\r\n this.el.selectionEnd = (this.el.selectionStart);\r\n } else {\r\n if (nextCopy.indexOf('.') !== -1) {\r\n intPart = ((next.indexOf('.') !== -1) ? next.substring(0, next.indexOf('.')) : next);\r\n decimalPart = nextCopy.substring(nextCopy.indexOf('.'), nextCopy.length);\r\n if (decimalPart.length > 3)\r\n decimalPart = decimalPart.substr(0, 3);\r\n\r\n } else {\r\n intPart = next;\r\n decimalPart = '';\r\n }\r\n\r\n if (!this.allowZero || (this.allowZero && intPart !== '0'))\r\n intPart = intPart.replace(/^0+/, ''); //Replaces all the '0' in the beginning.\r\n\r\n intPart = intPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n next = intPart + decimalPart;\r\n if (this.specialCharacterToSupport && (intPart !== '' || decimalPart !== ''))\r\n next = (this.specialCharacterToSupport.affixType === 'prefix' ? (this.specialCharacterToSupport.value + intPart + decimalPart) : (intPart + decimalPart + this.specialCharacterToSupport.value));\r\n\r\n if (this.checkIfStringValueIsNotValidFloatNumber(next))\r\n next = '';\r\n\r\n this.el.value = next;\r\n this.control.control?.setValue(next);\r\n if (this.specialCharacterToSupport && this.specialCharacterToSupport.affixType === 'suffix' && this.el.selectionStart === (next.length)) {\r\n this.el.selectionStart = (this.el.selectionStart - 1);\r\n this.el.selectionEnd = (this.el.selectionStart);\r\n }\r\n }\r\n }\r\n\r\n public checkForUpdatedSpecialCharacter() {\r\n //let updatedSpecialCharacter = (this.el.attributes['special_character'] ? (this.el.attributes['special_character'].value) : '');\r\n //if (this.specialCharacter !== updatedSpecialCharacter) {\r\n // this.specialCharacter = updatedSpecialCharacter;\r\n // this.specialCharacterToSupport = this.specialCharacters.filter((item) => {\r\n // return (item.value === this.specialCharacter);\r\n // })[0];\r\n //}\r\n }\r\n\r\n public checkIfStringValueIsNotValidFloatNumber(value: string) {\r\n let isDecimalNumber = parseFloat(value);\r\n return isNaN(isDecimalNumber);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { RouterStateSnapshot, ActivatedRouteSnapshot, CanActivateChild } from '@angular/router';\r\nimport { map } from 'rxjs/operators';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { UserService } from '../services/user.service';\r\n\r\n@Injectable()\r\nexport class AdminGuard implements CanActivateChild {\r\n constructor(private authService: AuthService, private userService: UserService) { }\r\n\r\n public canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.isLoggedIn()) {\r\n return this.userService.checkIfUserHasAdminRole().pipe(\r\n map(response => {\r\n if (response && response.success && response.returnedObject)\r\n return true;\r\n else {\r\n this.authService.logout();\r\n return false;\r\n }\r\n }));\r\n }\r\n\r\n this.authService.logout();\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { map } from 'rxjs/operators';\r\nimport { UserService } from '../services/user.service';\r\n\r\n@Injectable()\r\nexport class EnrollmentGuard implements CanActivate {\r\n constructor(private router: Router, private authService: AuthService, private userService: UserService) { }\r\n\r\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return this.userService.checkIfUserIsValid().pipe(\r\n map((response:any) => {\r\n if (response && response.success) {\r\n if (response.returnedObject === false) {\r\n this.router.navigateByUrl('/user/dashboard');\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RedirectGuard implements CanActivate {\r\n constructor(private router: Router, private authService: AuthService) {\r\n\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.isLoggedIn()) {\r\n if (state.url == '/login' || state.url.split('?')[0] == '/registration' || state.url == '/') {\r\n this.router.navigateByUrl('/user/dashboard');\r\n }\r\n return true;\r\n }\r\n else if (state.url == '/' && !this.authService.isLoggedIn()) {\r\n this.router.navigateByUrl('/login');\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { from, lastValueFrom, Observable } from 'rxjs';\r\nimport { CommonService } from '../services/common.service';\r\nimport { MsalService } from '@azure/msal-angular';\r\nimport { AuthService } from '../services/auth.service';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n\r\n constructor(private msalService: MsalService, private commonService: CommonService, private authService: AuthService) { }\r\n\r\n public intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return from(this.handle(req, next))\r\n }\r\n\r\n async handle(req: HttpRequest, next: HttpHandler) {\r\n const accessToken = localStorage.getItem('token');\r\n if (accessToken && this.isTokenValid(accessToken)) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${accessToken}`\r\n }\r\n });\r\n } else {\r\n const accessToken = await this.authService.getToken();\r\n const token = accessToken ? accessToken?.idToken : localStorage.getItem('token');\r\n if (token) {\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n });\r\n }\r\n }\r\n return await lastValueFrom(next.handle(req));\r\n }\r\n\r\n public isTokenValid(token: any) {\r\n return token ? moment().isBefore(moment.unix(this.parseJwt(token).exp)) : false;\r\n }\r\n\r\n public parseJwt(token: any): any {\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace('-', '+').replace('_', '/');\r\n return JSON.parse(window.atob(base64));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CommonService } from '../services/common.service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private authService: AuthService, private commonService: CommonService) { }\r\n\r\n public intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n tap({\r\n next: () => null,\r\n error: (err: HttpErrorResponse) => {\r\n let errorMessage = \"There was some error processing your request. Please contact support.\";\r\n if (err.status === 401 || err.status === 403)\r\n this.authService.logout();\r\n\r\n if (err.status === 429) {\r\n if (err.error && err.error && err.error.message)\r\n errorMessage = err.error.message;\r\n\r\n else\r\n errorMessage = 'Whoa! Calm down, cowboy! Quota exceeded.';\r\n }\r\n\r\n if (err.status === 400) {\r\n if (err.error && err.error.message)\r\n errorMessage = err.error.message;\r\n\r\n else if (err.error && err.error.error && err.error.error.userMessage)\r\n errorMessage = err.error.error.userMessage;\r\n }\r\n\r\n if (!err || (!err.status && !err.error))\r\n return;\r\n\r\n this.commonService.showTopBanner(errorMessage, '', 60000000, null);\r\n return throwError(errorMessage);\r\n },\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from \"@angular/common/http\";\r\nimport { finalize, Observable } from \"rxjs\";\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n\r\n constructor(private loaderService: LoaderService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n this.loaderService.startProgressBar();\r\n return next.handle(request).pipe(finalize(() => this.loaderService.stopProgressBar()));\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { NgxSliderModule } from '@angular-slider/ngx-slider';\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatTabsModule,\r\n MatStepperModule,\r\n ReactiveFormsModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatTooltipModule,\r\n MatProgressBarModule,\r\n MatSnackBarModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatToolbarModule,\r\n MatSidenavModule,\r\n MatNativeDateModule,\r\n MatExpansionModule,\r\n MatSlideToggleModule,\r\n MatSliderModule,\r\n NgxMatSelectSearchModule,\r\n MatButtonToggleModule,\r\n NgxSliderModule\r\n ],\r\n exports: [\r\n MatFormFieldModule,\r\n MatCardModule,\r\n FormsModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatMenuModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatTabsModule,\r\n MatStepperModule,\r\n ReactiveFormsModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatTooltipModule,\r\n MatProgressBarModule,\r\n MatSnackBarModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatToolbarModule,\r\n MatSidenavModule,\r\n MatNativeDateModule,\r\n MatExpansionModule,\r\n MatSlideToggleModule,\r\n MatSliderModule,\r\n NgxMatSelectSearchModule,\r\n MatButtonToggleModule,\r\n NgxSliderModule\r\n ],\r\n providers: [\r\n { provide: MatDialogRef, useValue: {} },\r\n {\r\n provide: STEPPER_GLOBAL_OPTIONS,\r\n useValue: { displayDefaultIndicatorType: false }\r\n }\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { contentHeaders } from '../../shared/common/headers';\r\n\r\n@Injectable()\r\nexport class AdminService {\r\n private serviceUrl: string;\r\n\r\n constructor(private configuration: ConfigurationService, private http: HttpClient) {\r\n this.serviceUrl = this.configuration.apiBaseUrl;\r\n }\r\n\r\n public getSettingsConfigurationData(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/admin/settings/configuration-data/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error:any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public downloadReport(reportRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/report/download', reportRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error:any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getRegistrationStatisticsAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/registration-statistics-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error:any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getQuestionnaireUtilizationAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/questionnaire-utilization-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error:any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getUserEnrollmentsAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/user-enrollment-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error:any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getRegistrationFailuresAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/registration-failures-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error:any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getCobraElectionAnalysisAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/cobra-election-analysis-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getEmployerSubsidizedCobraElectionsAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/employer-subsidized-cobra-elections-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getYtdMarketplaceEnrollmentAnalyticsData(analyticsRequest: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/analytics/ytd-marketplace-enrollment-data/get', analyticsRequest, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getClients(pageNumber: any, pageSize: any, search:any = ''): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/admin/clients/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('pageNumber', pageNumber)\r\n .set('pageSize', pageSize)\r\n .set('search', search)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getPlans(clientId: string, pageNumber: any, pageSize: any, search: any = ''): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/admin/client/plans/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('b2BAccountId', clientId)\r\n .set('pageNumber', pageNumber)\r\n .set('pageSize', pageSize)\r\n .set('search', search)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public addUpdateB2BAccountPlan(planInformation: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/client/plan/add-update', planInformation, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public toggleB2BAccount(clientId: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/client/' + clientId + '/status/toggle', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public addUpdateB2BAccount(b2BAccountInfo: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/client/add-update', b2BAccountInfo, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public toggleB2BAccountPlan(planId: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/client/plan/' + planId + '/status/toggle', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error: any) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getFailedCredentials(pageNumber: any, pageSize: any, search: any = ''): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/admin/failed-credential-logs/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('pageNumber', pageNumber)\r\n .set('pageSize', pageSize)\r\n .set('search', search)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public reSharedCredential(data: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/admin/credentials/re-share', data, {\r\n headers: contentHeaders,\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public isNexusB2BAccountAlreadyExists(nexusB2BAccountId: any, clientId: any): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/admin/client/check-Nexus-b2BAccount', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('nexusB2BAccountId', nexusB2BAccountId)\r\n .set('clientId', clientId)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport mixpanel from 'mixpanel-browser';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AnalyticsService {\r\n private analyticsToken!: string;\r\n\r\n constructor(private configuration: ConfigurationService, private authService: AuthService) {\r\n this.analyticsToken = this.configuration.config.analyticsConfig.token;\r\n }\r\n\r\n public readonly analyticsEvent = {\r\n verifyYourIdentity: 'Verify Your Identity',\r\n login: 'Login',\r\n accountCreated: 'Account Created',\r\n startSetUpAccount: 'Start Account Set-upt',\r\n informationConfirmed: 'Information Confirmed',\r\n informationNotConfirmed: 'information Not Confirmed',\r\n enrollmentStarted: 'Enrollment Started',\r\n cobraPlanDetailsPageView: 'COBRA Plan Details Page View',\r\n enrollmentComplete: 'Enrollment Complete',\r\n enrollmentInComplete: 'Enrollment InComplete',// take me back on enrollment confirmations\r\n viewMoreAfforableOptions: 'View More Afforable Options',\r\n thatsOk: 'Thats Ok',\r\n takeMeBack: 'Take Me Back',\r\n planSelect: 'Plan Select',\r\n browseOtherPlansPageView: 'Browse Other Plans Page View',\r\n filter: 'Filter',\r\n sort: 'Sort',\r\n viewPlanDetails: 'View Plan Details ',\r\n startQuestionaire: 'Start Questionaire',\r\n answeredQuestion: 'Answered Question ',\r\n questionnaireCompleted: 'Questionnaire Completed',\r\n }\r\n\r\n public initialize() {\r\n mixpanel.init(this.analyticsToken, { debug: true, cross_subdomain_cookie: false });\r\n\r\n var user = this.authService.getUserNameObject();\r\n\r\n if (Object.keys(user).length > 0) {\r\n mixpanel.identify(user.objectId);\r\n\r\n this.updateUserProfile({\r\n '$distinct_id': user.objectId,\r\n '$name': user.fullName,\r\n '$email': user.email,\r\n '$phone': null,\r\n 'Username': user.username\r\n });\r\n }\r\n }\r\n\r\n public trackEvent(event: string, data: any = {}) {\r\n mixpanel.track(event, data);\r\n }\r\n\r\n public updateUserProfile(data: any) {\r\n mixpanel.people.set(data);\r\n }\r\n\r\n public trackEventListData(event: string, data: any = []) {\r\n mixpanel.track(event, data);\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { catchError, map, Observable, throwError } from 'rxjs';\r\nimport { contentHeaders } from '../../shared/common/headers';\r\nimport { ApiResponse } from '../models/api.model';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n\r\n constructor(private http: HttpClient, private configurationService: ConfigurationService) { }\r\n\r\n public get(url: string, params?: any): Observable> {\r\n let hasParams = false;\r\n let httpParams = new HttpParams();\r\n if (params) {\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.set(key, params[key]);\r\n hasParams = true;\r\n });\r\n }\r\n\r\n return this.http\r\n .get(this.configurationService.apiBaseUrl + 'api/v1/' + url, {\r\n params: hasParams ? httpParams : undefined,\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n public post(url: string, body?: any, params?: any): Observable> {\r\n let hasParams = false;\r\n let httpParams = new HttpParams();\r\n if (params) {\r\n Object.keys(params).forEach(function (key) {\r\n httpParams = httpParams.set(key, params[key]);\r\n hasParams = true;\r\n });\r\n }\r\n\r\n return this.http\r\n .post(this.configurationService.apiBaseUrl + 'api/v1/' + url, body, {\r\n params: hasParams ? httpParams : undefined,\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport interface InternalStateType {\r\n [key: string]: any;\r\n}\r\n\r\n@Injectable()\r\nexport class AppState {\r\n\r\n public _state: InternalStateType = { };\r\n\r\n /**\r\n * Already return a clone of the current state.\r\n */\r\n public get state() {\r\n return this._state = this._clone(this._state);\r\n }\r\n /**\r\n * Never allow mutation\r\n */\r\n public set state(value) {\r\n throw new Error('do not mutate the `.state` directly');\r\n }\r\n\r\n public get(prop?: any) {\r\n /**\r\n * Use our state getter for the clone.\r\n */\r\n const state = this.state;\r\n return state.hasOwnProperty(prop) ? state[prop] : state;\r\n }\r\n\r\n public set(prop: string, value: any) {\r\n /**\r\n * Internally mutate our state.\r\n */\r\n return this._state[prop] = value;\r\n }\r\n\r\n private _clone(object: InternalStateType) {\r\n /**\r\n * Simple object clone.\r\n */\r\n return JSON.parse(JSON.stringify( object ));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, filter } from 'rxjs';\r\nimport mixpanel from 'mixpanel-browser';\r\nimport { Role } from '../../shared/common/constants';\r\nimport { MsalBroadcastService, MsalService } from '@azure/msal-angular';\r\nimport { InteractionRequiredAuthError, InteractionStatus } from \"@azure/msal-browser\";\r\nimport { LoaderService } from './loader.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public isLoggedInFlag = new Subject();\r\n public isLoginRouteFlag$ = this.isLoggedInFlag.asObservable();\r\n msalInitialized = false;\r\n constructor(private msalService: MsalService, private msalBroadcastService: MsalBroadcastService, private loaderService: LoaderService) {\r\n\r\n this.msalBroadcastService.inProgress$\r\n .pipe(\r\n filter((status: InteractionStatus) => status === InteractionStatus.None)\r\n )\r\n .subscribe(() => {\r\n this.msalInitialized = true;\r\n })\r\n }\r\n\r\n async loginRedirect() {\r\n this.loaderService.startProgressBar();\r\n this.msalService.loginRedirect();\r\n }\r\n\r\n public logout() {\r\n this.loaderService.startProgressBar();\r\n localStorage.clear();\r\n this.msalService.logout();\r\n mixpanel.reset();\r\n }\r\n\r\n public getUserNameObject(): any {\r\n const user = this.msalService.instance.getActiveAccount();\r\n if (user) {\r\n let nameObject = {\r\n 'firstName': user.name?.split(\" \")[0],\r\n 'fullName': user.name, \r\n email: user.username,\r\n objectId: user.localAccountId,\r\n initials: '',\r\n 'username': '',\r\n };\r\n let firstNameChar = user.name?.split(\" \")[0][0] || \"\";\r\n let lastNameChar = user.name?.split(\" \")[1][0] || \"\";\r\n\r\n nameObject.initials = firstNameChar + lastNameChar;\r\n return nameObject;\r\n }\r\n\r\n return []; \r\n }\r\n\r\n public showTokenResponse(url: any) {\r\n if (!url && url.indexOf('#') === -1)\r\n return null;\r\n\r\n const hash = url.split('#')[1];\r\n const response = hash.split('&').reduce((result: any, item: any) => {\r\n const parts = item.split('=');\r\n result[parts[0]] = parts[1];\r\n return result;\r\n }, {});\r\n\r\n return response;\r\n }\r\n\r\n public isLoggedIn() {\r\n return this.msalService.instance.getActiveAccount() != null;\r\n }\r\n\r\n public parseJwt(token: any): string {\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace('-', '+').replace('_', '/');\r\n return JSON.parse(window.atob(base64));\r\n }\r\n\r\n public setIsLoggedInFlag(state: boolean) {\r\n this.isLoggedInFlag.next(state);\r\n }\r\n\r\n public doesUserHaveAdminRole(userRoles: string[]): boolean {\r\n return (userRoles.indexOf(Role.clientAdmin) > -1 || userRoles.indexOf(Role.clientAdmin) > -1);\r\n }\r\n\r\n async getToken() {\r\n const account = this.msalService.instance.getActiveAccount();\r\n if (account) {\r\n if (this.msalInitialized) {\r\n const accessTokenRequest = {\r\n scopes: [\"openid\", \"profile\"],\r\n account: account,\r\n };\r\n\r\n const tokenResponse = await this.msalService.instance\r\n .acquireTokenSilent(accessTokenRequest)\r\n .catch(error => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.instance.acquireTokenRedirect(accessTokenRequest)\r\n } else {\r\n return null;\r\n }\r\n });\r\n return tokenResponse;\r\n } else {\r\n setTimeout(() => {\r\n return this.getToken();\r\n }, 200)\r\n }\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { throwError, Observable, Subject, BehaviorSubject } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport * as moment from 'moment';\r\nimport { AuthService } from './auth.service';\r\nimport { DecimalPipe } from '@angular/common';\r\nimport { MDCSelect } from '@material/select';\r\nimport { MDCFormField } from '@material/form-field';\r\nimport { MDCCheckbox } from '@material/checkbox';\r\n\r\nimport { MDCRipple } from '@material/ripple';\r\nimport { MDCSwitch } from '@material/switch';\r\nimport { MDCLineRipple } from '@material/line-ripple';\r\nimport { MDCTabBar } from '@material/tab-bar';\r\nimport { NumberFormatterDirective } from '../directives/number-formatter.directive';\r\nimport { Router } from '@angular/router';\r\nimport { UserIdleConfig, UserIdleService } from './user-idle.service';\r\nimport { Location } from '@angular/common';\r\nimport { contentHeaders } from '../../shared/common/headers';\r\nimport { TopBannerComponent } from '../components/top-banner/top-banner.component';\r\nimport { ToastComponent } from '../components/toast/toast.component';\r\n\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { SnackbarService } from './snackbar.service';\r\n\r\n@Injectable()\r\nexport class CommonService {\r\n public readonly debounceTime = 500; //ms\r\n public readonly uploadFileMaxSize = 26214400;\r\n\r\n public readonly regExpressions = {\r\n ein: '([0-9]{2}-[0-9]{7})$',\r\n email: '^\\\\b[\\\\w\\\\.-]+@[\\\\w\\\\.-]+\\\\.\\\\w{2,4}\\\\b',\r\n name: '^([A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00f6\\u00f8-\\u00ff\\-\\\\s]*)$', //This name regex might not get used for all the names throughout project\r\n streetAddress: '^\\\\d+\\\\w+\\\\s\\\\w+\\\\s\\\\w+',\r\n addressDetails: '^[0-9A-Za-z\\\\s\\\\-]+$',\r\n nameWithNumerals: '^[A-Za-z0-9\\\\s]+[A-Za-z0-9\\\\s]+$(\\\\.0-9+)?',\r\n password: \"^((?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)|(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*\\\\d)(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*\\\\d)(?=.*[^A-Za-z0-9]))([A-Za-z\\\\d@#$%^&*\\\\-_+=[\\\\]{}|\\\\:',?\\`~"();!]|\\\\.(?!@)){12,64}$\",\r\n customPassword: \"^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{12,}$\",\r\n nameWithSpecialCharacters: '([u0000-~u0080-ÿ]+)$',\r\n username: '^[a-zA-Z0-9\\\\.-]+$',\r\n specialName: '^([ \\u00c0-\\u01ffa-zA-Z\\'\\-])+',\r\n nameWithNumeralsAndFewSpecialCharacters: \"^[a-zA-Z0-9\\\\()\\\\-\\\\,\\\\&\\\\.\\\\!\\\\s]+$\"\r\n };\r\n\r\n public readonly genderTypes = {\r\n male: 'male',\r\n female: 'female'\r\n };\r\n\r\n public static decimalPipe = new DecimalPipe('en-US');\r\n public data = {};\r\n public regex = new RegExp('[0-9]{2}[0-9]{2}[0-9]{4}');\r\n public userRoles: string[] = [];\r\n\r\n public appBarText = new Subject();\r\n public appBarText$ = this.appBarText.asObservable();\r\n\r\n public screenDimension = new Subject();\r\n public screenDimension$ = this.screenDimension.asObservable();\r\n\r\n public enrollDialog = new Subject();\r\n public enrollDialog$ = this.enrollDialog.asObservable();\r\n\r\n public isEnrollDialogOpen = new BehaviorSubject(false);\r\n public isEnrollDialogOpen$ = this.isEnrollDialogOpen.asObservable();\r\n\r\n public userInfo = new BehaviorSubject({});\r\n public userInfo$ = this.userInfo.asObservable();\r\n\r\n public userBasicInfoData = new BehaviorSubject(this.data);\r\n public userBasicInfoData$ = this.userBasicInfoData.asObservable();\r\n\r\n public bottomSheetListItems = new BehaviorSubject(null);\r\n public bottomSheetListItems$ = this.bottomSheetListItems.asObservable();\r\n\r\n public bottomNavbarActiveItem = new BehaviorSubject(null);\r\n public bottomNavbarActiveItem$ = this.bottomNavbarActiveItem.asObservable();\r\n\r\n private serviceUrl!: string;\r\n // public clientUrl: string;\r\n\r\n public userProfilePic = new BehaviorSubject('');\r\n public userProfilePic$ = this.userProfilePic.asObservable();\r\n\r\n public defaultPageSize: number = 10;\r\n public pageBadgesToShowOnDesktop: number = 5;\r\n public pageBadgesToShowOnMobile: number = 2;\r\n public removeDialogDesktopWidth: number = 608;\r\n public removeDialogDesktopHeight: number = 395;\r\n public nameWithNumeralsAndFewSpecialCharactersRegEx: RegExp = /[^a-zA-Z0-9\\s\\-\\.\\&\\,\\!]+/gm;\r\n public idleTime = 1200; //unit is 'seconds'\r\n public logoutTime = 60; //unit is 'seconds'\r\n public snackbarOpened: boolean = false;\r\n public cobraSystemType: any;\r\n public allPlans: any;\r\n public filters: any;\r\n public userInfoNew: any;\r\n constructor(private authService: AuthService, private configuration: ConfigurationService, private http: HttpClient, public snackBar: MatSnackBar, private snackbarService: SnackbarService,\r\n public router: Router, private userIdleService: UserIdleService, private location: Location) {\r\n //this.serviceUrl = this.configuration.config.apiBaseUri;\r\n // this.clientUrl = this.configuration.config.clientBaseUri;\r\n this.snackbarOpened = false;\r\n this.cobraSystemType = this.cobraSystemType;\r\n }\r\n\r\n public confirmLogout(): void {\r\n this.openSnackbarWithTwoActions(\r\n 'Are you sure you want to sign out?',\r\n 5000,\r\n 'YES',\r\n () => {\r\n this.logout();\r\n },\r\n 'CANCEL',\r\n () => {\r\n /* this.snackbarService.clear();*/\r\n }\r\n );\r\n }\r\n\r\n public login() {\r\n this.authService.loginRedirect();\r\n }\r\n\r\n public logout() {\r\n this.authService.logout();\r\n this.goToHome();\r\n }\r\n\r\n public getValues(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/values', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getCityAndState(zipcode: any): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/lookup/cityState', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('zipCode', zipcode)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response.returnedObject;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public setAppBarText(value: string) {\r\n this.appBarText.next(value);\r\n }\r\n\r\n public setScreenDimension(value: any) {\r\n this.screenDimension.next(value);\r\n }\r\n\r\n public toggleEnrollDialog(state: boolean) {\r\n this.enrollDialog.next(state);\r\n }\r\n\r\n public setEnrollDialogState(state: boolean) {\r\n this.isEnrollDialogOpen.next(state);\r\n }\r\n\r\n public getEnrollDialogState(): boolean {\r\n return this.isEnrollDialogOpen.value;\r\n }\r\n\r\n public getMomentDate(dateValue: Date, format: string = 'YYYY-MM-DD') {\r\n const momentDate = moment(dateValue, format);\r\n return momentDate.isValid() ? momentDate.format(format) : null;\r\n }\r\n\r\n public getMomentDateFromString(dateValue: string, dateFormat: string = 'YYYY-MM-DD') {\r\n const momentDate = moment(dateValue, dateFormat);\r\n return momentDate.isValid() ? momentDate.format(dateFormat) : null;\r\n }\r\n\r\n public getMomentDateInDateFormat(dateValue: string, format: string = 'YYYY-MM-DD') {\r\n const momentDate = moment(dateValue, format);\r\n return momentDate.isValid() ? momentDate : null;\r\n }\r\n\r\n public getAge(dateValue: Date) {\r\n const momentDate = moment().diff(dateValue, 'years');\r\n return momentDate;\r\n }\r\n\r\n public manuallyValidateForm(form: HTMLFormElement) {\r\n for (var control in form.controls) {\r\n if (form.controls[control].invalid)\r\n this.manuallyValidateFormField(form, control);\r\n }\r\n }\r\n\r\n public manuallyValidateFormField(form: HTMLFormElement, control: string) {\r\n form.controls[control].touched = true;\r\n form.controls[control].updateValueAndValidity();\r\n //if (document.getElementById(control) !== null)\r\n // document.getElementById(control).parentElement.classList.add('mdc-text-field--invalid');\r\n //else if (document.getElementsByName(control).length > 0) {\r\n // let element = document.getElementsByName(control)[0];\r\n // //element.parentElement.classList.add('mdc-text-field--invalid');\r\n //}\r\n }\r\n\r\n public resetFormValidations(formElement: HTMLFormElement, resetForm: boolean = true) {\r\n if (resetForm) {\r\n formElement.resetForm();\r\n for (var control in formElement.controls) {\r\n formElement.controls[control].markAsPristine();\r\n formElement.controls[control].markAsUntouched();\r\n formElement.controls[control].updateValueAndValidity();\r\n }\r\n } else {\r\n formElement.form.markAsPristine();\r\n formElement.form.markAsUntouched();\r\n }\r\n }\r\n\r\n public getCurrentUnixTimestamp() {\r\n return Math.round((new Date()).getTime() / 1000);\r\n }\r\n\r\n public getRandomUnixTimestamp() {\r\n return Math.round(((new Date()).getTime() / 1000) * Math.random());\r\n }\r\n\r\n public setUserBasicInfoData(data: any) {\r\n this.userBasicInfoData.next(data);\r\n }\r\n\r\n public getUserBasicInfoData(): any {\r\n return this.userBasicInfoData.value;\r\n }\r\n\r\n public getMultiselectDropdownSettings(placeholderText: string, labelKey: string, primaryKey: string, classes: string, noDataLabel: string, isDisabled: boolean = false, badgeShowLimit: number = 1, groupBy: string = '', enableCheckAll: boolean = false, selectAllText: string = '', unSelectAllText: string = '') {\r\n return {\r\n singleSelection: false,\r\n text: (placeholderText ? placeholderText : 'Select'),\r\n enableCheckAll: enableCheckAll,\r\n enableSearchFilter: false,\r\n searchAutofocus: false,\r\n badgeShowLimit: (badgeShowLimit || 1),\r\n labelKey: (labelKey || 'itemName'),\r\n primaryKey: (primaryKey || 'id'),\r\n classes: (classes || ''),\r\n noDataLabel: (noDataLabel || 'No data available'),\r\n disabled: isDisabled,\r\n groupBy: groupBy,\r\n escapeToClose: true,\r\n selectAllText: selectAllText,\r\n unSelectAllText: unSelectAllText\r\n };\r\n }\r\n\r\n public getTimeOfDay():any {\r\n let hoursNow = new Date().getHours();\r\n\r\n if (hoursNow >= 4 && hoursNow < 12)\r\n return 'morning';\r\n else if (hoursNow >= 12 && hoursNow < 17)\r\n return 'afternoon';\r\n else if (hoursNow >= 17 && hoursNow < 22)\r\n return 'evening';\r\n else if ((hoursNow >= 22 && hoursNow <= 23) || ((hoursNow >= 0 && hoursNow < 4)))\r\n return 'night';\r\n }\r\n\r\n public setUserInfo(response: any) {\r\n this.userInfo.next(response);\r\n }\r\n\r\n public getUserInfo(): any {\r\n return this.userInfo.value;\r\n }\r\n\r\n public verifyStringWithRegEx(val: string) {\r\n return this.regex.test(val);\r\n }\r\n\r\n public getFormatedDateTimeString(val: string) {\r\n var datewithslashes = '';\r\n datewithslashes += (val[0] === '0' ? '' : val[0]) + val[1] + '/' + (val[2] === '0' ? '' : val[2]) + val[3] + '/' + val[4] + val[5] + val[6] + val[7];\r\n\r\n //The following code has been written to fix the issue in which a date before the selected date is shown in the mat datepicker when client's timezone has offset greater than 0. This is a known issue of the plugin (https://github.com/angular-ui/bootstrap/issues/2628).\r\n let timezoneOffset = new Date(datewithslashes).getTimezoneOffset();\r\n let dateToSend: any;\r\n if (timezoneOffset > 0)\r\n dateToSend = new Date(new Date(datewithslashes).setMinutes(0 + timezoneOffset));\r\n else\r\n dateToSend = new Date(new Date(datewithslashes).setMinutes(0));\r\n\r\n return dateToSend;\r\n }\r\n\r\n public showErrorTypeSnackbar(message: string, buttonText = 'DISMISS'): void {\r\n this.snackBar.open(message, buttonText, {\r\n duration: 60000,\r\n verticalPosition: 'top'\r\n });\r\n }\r\n\r\n public showInformationSnackbar(message: string, buttonText: string, actionToPerform: () => void): void {\r\n let snackbarRef = this.snackBar.open(message, buttonText, {\r\n duration: 6000,\r\n verticalPosition: 'bottom',\r\n panelClass: 'black-bottom-default'\r\n });\r\n\r\n if (actionToPerform) {\r\n snackbarRef.afterDismissed().subscribe((action:any) => {\r\n if (action.dismissedByAction)\r\n actionToPerform();\r\n });\r\n }\r\n }\r\n\r\n public round(value:any, exp:any) {\r\n if (typeof exp === 'undefined' || +exp === 0)\r\n return Math.round(value);\r\n\r\n value = +value;\r\n exp = +exp;\r\n\r\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0))\r\n return NaN;\r\n\r\n // Shift\r\n value = value.toString().split('e');\r\n value = Math.round(+(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp)));\r\n\r\n // Shift back\r\n value = value.toString().split('e');\r\n return +(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp));\r\n }\r\n\r\n public getContributionFrequencyText(value:any, shortForm = false) {\r\n var returnValue = ' / ';\r\n switch (value) {\r\n case 1:\r\n returnValue += (shortForm ? 'mo.' : 'month');\r\n break;\r\n case 2:\r\n returnValue += (shortForm ? 'yr.' : 'year');\r\n break;\r\n default:\r\n returnValue = '';\r\n break;\r\n }\r\n return returnValue;\r\n }\r\n\r\n public getCostFrequencyText(value:any, abbreviation = false) {\r\n var returnValue = ' / ';\r\n switch (value) {\r\n case 1:\r\n returnValue += (abbreviation ? 'mo.' : 'month');\r\n break;\r\n case 2:\r\n returnValue += (abbreviation ? 'ann' : 'annual');\r\n break;\r\n case 3:\r\n returnValue += (abbreviation ? 'wk.' : 'week');\r\n break;\r\n case 4:\r\n returnValue += (abbreviation ? 'bi-wk.' : 'bi-week');\r\n break;\r\n case 5:\r\n returnValue += (abbreviation ? 'sm-mo.' : 'semi-month');\r\n break;\r\n case 6:\r\n returnValue += (abbreviation ? 'quar.' : 'quarter');\r\n break;\r\n case 7:\r\n returnValue += (abbreviation ? 'bi-ann' : 'bi-annual');\r\n break;\r\n default:\r\n returnValue = '';\r\n break;\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n public getGeneralErrorMessage(): string {\r\n return 'There was some error processing your request. Please contact support.';\r\n }\r\n\r\n public downloadFile(file:any, preferDownload: boolean = false) {\r\n if (file && file.name && (file.base64 || file.byteArray)) {\r\n var fileContent = file.base64 ? file.base64 : file.byteArray;\r\n\r\n let fileExtension = file.name.toString().substring(file.name.toString().lastIndexOf('.') + 1);\r\n fileExtension = fileExtension ? fileExtension.toLowerCase() : '';\r\n let imageSupportedFormats = ['jpeg', 'jpg', 'png', 'svg', 'gif'];\r\n\r\n if (!preferDownload && (fileExtension === 'pdf' || imageSupportedFormats.indexOf(fileExtension) !== -1)) {\r\n let byteCharacters = atob(fileContent);\r\n let byteNumbers = new Array(byteCharacters.length);\r\n for (var i = 0; i < byteCharacters.length; i++) {\r\n byteNumbers[i] = byteCharacters.charCodeAt(i);\r\n }\r\n\r\n let byteArray = new Uint8Array(byteNumbers);\r\n let fileToDisplay = new Blob([byteArray], { type: 'application/pdf;base64' });\r\n var fileURL = URL.createObjectURL(fileToDisplay);\r\n window.open(fileURL);\r\n\r\n } else {\r\n var element = document.createElement('a');\r\n element.setAttribute('href', 'data:application/octet-stream;base64,' + fileContent);\r\n element.setAttribute('target', '_blank');\r\n element.setAttribute('download', file.name);\r\n element.style.display = 'none';\r\n document.body.appendChild(element);\r\n element.click();\r\n document.body.removeChild(element);\r\n }\r\n }\r\n }\r\n\r\n public setBottomSheetListItems(value: any) {\r\n this.bottomSheetListItems.next(value);\r\n }\r\n\r\n public getBottomSheetListItems(): boolean {\r\n return this.bottomSheetListItems.value;\r\n }\r\n\r\n public openSnackbarWithTwoActions(message: string, timeout: number = 10000, actionOneText: string, actionOne: Function, actionSecondText: string, actionSecond: Function): void {\r\n //this.snackbarService.add({\r\n // msg: message,\r\n // timeout: timeout,\r\n // action: {\r\n // text: actionOneText,\r\n // onClick: actionOne\r\n // },\r\n // actionSecond: {\r\n // text: actionSecondText ? actionSecondText : '',\r\n // onClick: actionSecond!||null\r\n // }\r\n //});\r\n }\r\n\r\n public validateEventAndGetCityStateForZipcode(data: any, zipcodeKey: string, event: any = null, cityKey: string = 'city', stateKey: string = 'state') {\r\n if (data && data[zipcodeKey] && (!event || (event && (event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)))) {\r\n data[cityKey] = '';\r\n data[stateKey] = '';\r\n let zipcode = data[zipcodeKey];\r\n if (zipcode && zipcode.length == 5) {\r\n this.getCityAndState(zipcode).subscribe((response) => {\r\n data[cityKey] = response.city ? response.city : '';\r\n data[stateKey] = response.state ? response.state : '';\r\n });\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public address(streetAddress:any, addressDetails:any, city:any, state:any, zip:any) {\r\n let address = '';\r\n address += (streetAddress ? (streetAddress + ', ') : '');\r\n address += (addressDetails ? (addressDetails + ', ') : '');\r\n address += (city ? (city + ', ') : '');\r\n address += (state ? (state + ', ') : '');\r\n address += (zip ? zip : '');\r\n return address;\r\n }\r\n\r\n public copyObjectWithReference(to:any, from:any) {\r\n var keys = Object.keys(from);\r\n keys.map(function (key) {\r\n to[key] = from[key];\r\n });\r\n }\r\n\r\n public getPayrollFrequencyValue(payrollFrequency: any) {\r\n let payPeriods: any;\r\n switch (payrollFrequency) {\r\n case 1:\r\n //monthly\r\n payPeriods = 12;\r\n break;\r\n case 2:\r\n //semi monthly\r\n payPeriods = 24;\r\n break;\r\n case 3:\r\n //weekly\r\n payPeriods = 52;\r\n break;\r\n case 4:\r\n //bi-weekly\r\n payPeriods = 26;\r\n break;\r\n default:\r\n payPeriods = null;\r\n break;\r\n }\r\n return payPeriods;\r\n }\r\n\r\n public getGracePeriodOptions(): number[] {\r\n let gracePeriod = new Array();\r\n for (let index = 0; index <= 31; index++) {\r\n gracePeriod.push(index);\r\n }\r\n return gracePeriod;\r\n }\r\n\r\n public uploadDocument(formData: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/document/upload', formData, {\r\n headers: contentHeaders,\r\n }).pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n public downloadDocument(url: string, fileType: string): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/document/download', {\r\n headers: contentHeaders,\r\n params: new HttpParams().set('url', url).set('documentType', fileType)\r\n }).pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n public getLoggedInUserPermissions(clientId: string): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/permissions/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams().set('b2BAccountID', clientId || '')\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n public getTermsAndConditions(type = ''): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/termsandconditions/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams().set('typeSlug', type)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserTerms(model: any, type = ''): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/termsandconditions/update', model, {\r\n headers: contentHeaders,\r\n params: new HttpParams().set('typeSlug', type)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getPrivacyPolicy(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/privacypolicy/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updatePrivacyPolicy(model: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/privacypolicy/update', model, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public verifyEmail(model: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/email/confirm', model, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getUserBasicInfo(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/user/basicinfo', {\r\n headers: contentHeaders\r\n }).pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n\r\n public getUserProfileInfo(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/user/profileinfo', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getAccountSettingsBasicInfo(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/utility/user/accountsettings/basicInfo/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserAccountSettingsBasicInfo(model: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/user/accountsettings/basicInfo/update', model, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public setUserProfilePic(value: string) {\r\n this.userProfilePic.next(value);\r\n }\r\n\r\n public getUserProfilePic(): string {\r\n return this.userProfilePic.value;\r\n }\r\n\r\n public readFileAsBase64(file:any) {\r\n var reader = new FileReader();\r\n\r\n return new Promise((resolve, reject) => {\r\n reader.onerror = () => {\r\n reader.abort();\r\n this.showErrorTypeSnackbar('Upload profile image is invalid');\r\n };\r\n\r\n reader.onload = () => {\r\n resolve(reader.result);\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public isNumberValid(value: any, isZeroAllowed = true, min:any = null, max:any = null) {\r\n let result = ((value || value == 0) && !isNaN(parseFloat(value)) ? true : false);\r\n result = (!isZeroAllowed ? value != 0 : result);\r\n result = (min || min == 0 ? parseFloat(value) >= parseFloat(min) : result);\r\n result = (max || max == 0 ? parseFloat(value) >= parseFloat(max) : result);\r\n return result;\r\n }\r\n\r\n public closeCustomSnackbarWithTwoActions(): void {\r\n /* this.snackbarService.clear();*/\r\n }\r\n\r\n public formatValueToTitleCase(object: any, key: string) {\r\n if (object && object[key]) {\r\n object[key] = object[key].toLowerCase().replace(/^(.)|\\s(.)/g, ($1:any) => $1.toUpperCase());\r\n }\r\n }\r\n\r\n public initCommonMaterialComponents(disableAllFormFields: boolean = false, parentID: string = ''): void {\r\n setTimeout(() => {\r\n const textFields = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-text-field:not(.date-picker-field):not(.search-input)');\r\n const selects = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-select:not([data-demo-no-auto-js])');\r\n const checkboxes = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-checkbox:not([data-demo-no-auto-js])');\r\n const buttons = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-button:not([data-demo-no-auto-js])');\r\n const formFields = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-form-field:not([data-demo-no-auto-js]');\r\n const switches = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-switch:not([data-demo-no-auto-js]');\r\n const datepickerFields = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.date-picker-field input');\r\n const fabs = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-fab:not([data-demo-no-auto-js])');\r\n const menuRippleDivs = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-line-ripple:not([data-demo-no-auto-js])');\r\n const tabs = document.querySelectorAll((parentID ? '#' + parentID + ' ' : '') + '.mdc-tab-bar');\r\n\r\n //for (let index = 0; index < textFields.length; index++) {\r\n // textFields[index].classList.remove('mdc-text-field--invalid');\r\n // const textField = new MDCTextField(textFields[index] as HTMLElement);\r\n // if (disableAllFormFields)\r\n // textField.disabled = true;\r\n //}\r\n\r\n for (let index = 0; index < selects.length; index++) {\r\n if (selects[index].classList && selects[index].classList.length > 0)\r\n selects[index].classList.remove('mdc-select--disabled');\r\n\r\n const select = new MDCSelect(selects[index] as HTMLElement);\r\n if (disableAllFormFields)\r\n select.disabled = true;\r\n }\r\n\r\n for (let index = 0; index < checkboxes.length; index++) {\r\n const checkbox = new MDCCheckbox(checkboxes[index] as HTMLElement);\r\n if (disableAllFormFields)\r\n checkbox.disabled = true;\r\n }\r\n\r\n for (let index = 0; index < buttons.length; index++) {\r\n const button = new MDCRipple(buttons[index] as HTMLElement);\r\n }\r\n\r\n //for (let index = 0; index < formFields.length; index++) {\r\n // const formField = new MDCFormField(formFields[index] as HTMLElement);\r\n // formField.input = formField;\r\n // if (disableAllFormFields)\r\n // formField.disabled = true;\r\n //}\r\n\r\n for (let index = 0; index < switches.length; index++) {\r\n const switchControl = new MDCSwitch(switches[index] as HTMLButtonElement);\r\n if (disableAllFormFields)\r\n switchControl.disabled = true;\r\n }\r\n\r\n for (let index = 0; index < datepickerFields.length; index++) {\r\n if (disableAllFormFields)\r\n (datepickerFields[index]).disabled = true;\r\n }\r\n\r\n for (let index = 0; index < fabs.length; index++) {\r\n const fab = new MDCRipple(fabs[index] as HTMLElement);\r\n }\r\n\r\n for (let index = 0; index < menuRippleDivs.length; index++) {\r\n const lineRipple = new MDCLineRipple(menuRippleDivs[index] as HTMLElement);\r\n }\r\n\r\n //for (let index = 0; index < tabs.length; index++) {\r\n // const tabBar = new MDCTabBar(tabs[index] as HTMLElement);\r\n // if (disableAllFormFields)\r\n // tabBar.disabled = true;\r\n //}\r\n }, 0);\r\n }\r\n\r\n public getNameByNumber(element:any): any {\r\n let id = element;\r\n if (id === 1)\r\n return 'first';\r\n else if (id === 2)\r\n return 'second';\r\n else if (id === 3)\r\n return 'third';\r\n else if (id === 4)\r\n return 'fourth';\r\n else if (id === 5)\r\n return 'fifth';\r\n }\r\n\r\n public getSingleByNumber(element:any): any {\r\n let id = element;\r\n if (id === 0)\r\n return 'none';\r\n else if (id === 1)\r\n return 'one';\r\n else if (id === 2)\r\n return 'two';\r\n else if (id === 3)\r\n return 'three';\r\n else if (id === 4)\r\n return 'four';\r\n else if (id === 5)\r\n return 'five';\r\n else if (id === 6)\r\n return 'six';\r\n else if (id === 7)\r\n return 'seven';\r\n else if (id === 8)\r\n return 'eight';\r\n else if (id === 9)\r\n return 'nine';\r\n else if (id === 10)\r\n return 'ten';\r\n else if (id === 11)\r\n return 'eleven';\r\n else if (id === 12)\r\n return 'twelve';\r\n else if (id === 13)\r\n return 'thirteen';\r\n else if (id === 14)\r\n return 'forteen';\r\n else if (id === 15)\r\n return 'fifteen';\r\n }\r\n\r\n public getFormattedAmountString(value:any) {\r\n return '$ ' + NumberFormatterDirective.transform(value.toString());\r\n }\r\n\r\n public getFormattedAmountValue(value:any) {\r\n value = value + '';\r\n value = value.replace(/[^0-9]/g, '');\r\n return value !== '' ? parseFloat(value) : 0;\r\n }\r\n\r\n public calculateAge(dateOfBirth: any = '') {\r\n if (dateOfBirth !== '') {\r\n if (dateOfBirth) {\r\n var timeDiff = Math.abs(Date.now() - new Date(dateOfBirth).getTime());\r\n return Math.floor(timeDiff / (1000 * 3600 * 24) / 365.25);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getMatDialogOptions(data: any = null, panelClass: string = ''): any {\r\n let matDialogOptions = {\r\n disableClose: false,\r\n closeOnNavigation: false,\r\n maxWidth: '100vw',\r\n height: '100%',\r\n data: data,\r\n panelClass: panelClass\r\n };\r\n\r\n return matDialogOptions;\r\n }\r\n public getMatDialogOptionsShort(data: any = null, panelClass: string = ''): any {\r\n let matDialogOptions = {\r\n disableClose: false,\r\n closeOnNavigation: false,\r\n maxWidth: '100vw',\r\n margin: 'auto',\r\n data: data,\r\n panelClass: panelClass\r\n };\r\n\r\n return matDialogOptions;\r\n }\r\n\r\n public getSmallMatDialogOptions(data: any = null, panelClass: string = ''): any {\r\n let matDialogOptions = {\r\n disableClose: false,\r\n closeOnNavigation: false,\r\n maxWidth: '100vw',\r\n data: data,\r\n panelClass: panelClass\r\n };\r\n\r\n return matDialogOptions;\r\n }\r\n\r\n public getConfirmationMatDialogOptions(data: any = null, panelClass: string = ''): any {\r\n let matDialogOptions = {\r\n disableClose: false,\r\n closeOnNavigation: false,\r\n maxWidth: '100vw',\r\n data: data,\r\n panelClass: panelClass\r\n };\r\n\r\n return matDialogOptions;\r\n }\r\n\r\n //public showNewInformationSnackbar(result: string = '', message: string = '', buttonText: string = '', duration: number = 6000, actionToPerform: () => void = null) {\r\n // let snackbarRef = this.snackBar.openFromComponent(PrimaryToastComponent, {\r\n // data: {\r\n // result: result,\r\n // message: message,\r\n // buttonText: buttonText\r\n // }, duration: duration,\r\n // panelClass: 'transparent-bottom-default',\r\n // verticalPosition: 'bottom', // 'top' | 'bottom'\r\n // horizontalPosition: 'left', //'start' | 'center' | 'end' | 'left' | 'right'\r\n // });\r\n\r\n // if (actionToPerform) {\r\n // snackbarRef.afterDismissed().subscribe((action) => {\r\n // if (action.dismissedByAction)\r\n // actionToPerform();\r\n // });\r\n // }\r\n //}\r\n\r\n //public showTopBanner(message: string, buttonText: string = '', timeOut: number = 6000, actionToPerform: () => void) {\r\n // //let snackbarRef = this.snackBar.openFromComponent(TopBannerComponent, {\r\n // // data: {\r\n // // message: message,\r\n // // actionButtonText: buttonText\r\n // // }, duration: timeOut,\r\n // // panelClass: 'transparent-top-default',\r\n // // verticalPosition: 'top', // 'top' | 'bottom'\r\n // // horizontalPosition: 'center', //'start' | 'center' | 'end' | 'left' | 'right'\r\n // //});\r\n\r\n // //if (actionToPerform) {\r\n // // snackbarRef.afterDismissed().subscribe((action: any) => {\r\n // // if (action.dismissedByAction)\r\n // // actionToPerform();\r\n // // });\r\n // //}\r\n //}\r\n\r\n public showTopBanner(message: string, buttonText: string = '', timeOut: number = 6000, actionToPerform: { (): void } | null = null, showSupportMail: boolean = false) {\r\n let snackbarRef = this.snackBar.openFromComponent(TopBannerComponent, {\r\n data: {\r\n message: message,\r\n actionButtonText: buttonText,\r\n showSupportMail: showSupportMail,\r\n fontWhite: false\r\n }, duration: timeOut,\r\n panelClass: 'top-banner-default',\r\n verticalPosition: 'top', // 'top' | 'bottom'\r\n horizontalPosition: 'center', //'start' | 'center' | 'end' | 'left' | 'right'\r\n });\r\n\r\n if (actionToPerform) {\r\n snackbarRef.afterDismissed().subscribe((action: any) => {\r\n if (action.dismissedByAction)\r\n actionToPerform();\r\n });\r\n }\r\n }\r\n\r\n public showBlueBanner(message: string, buttonText: string = '', timeOut: number = 6000, actionToPerform: { (): void } | null = null, showSupportMail: boolean = false) {\r\n let snackbarRef = this.snackBar.openFromComponent(TopBannerComponent, {\r\n data: {\r\n message: message,\r\n actionButtonText: buttonText,\r\n showSupportMail: showSupportMail,\r\n fontWhite:true\r\n }, duration: timeOut,\r\n panelClass: 'top-banner-blue',\r\n verticalPosition: 'top', // 'top' | 'bottom'\r\n horizontalPosition: 'center', //'start' | 'center' | 'end' | 'left' | 'right'\r\n });\r\n\r\n if (actionToPerform) {\r\n snackbarRef.afterDismissed().subscribe((action: any) => {\r\n if (action.dismissedByAction)\r\n actionToPerform();\r\n });\r\n }\r\n }\r\n\r\n public setSortData(id: string, sortingDirection: string, sortingOptions: any[], actionToPerform: () => void) {\r\n if (id !== '') {\r\n sortingOptions.map((item) => {\r\n if (item.id === id && item.sortingDirection === sortingDirection)\r\n item.isActive = true;\r\n else\r\n item.isActive = false;\r\n });\r\n\r\n if (actionToPerform)\r\n actionToPerform();\r\n }\r\n }\r\n\r\n public scrollToTop(className: string = 'wrapper') {\r\n if (className) {\r\n if (document.getElementsByClassName(className)[0]) {\r\n document.getElementsByClassName(className)[0].scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n } else {\r\n document.documentElement.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n\r\n public showScrollButton(className: string = 'wrapper') {\r\n if (className) {\r\n if (document.getElementsByClassName(className)[0].scrollTop > 0 || document.documentElement.scrollTop > 0)\r\n return true;\r\n } else {\r\n if (document.documentElement.scrollTop > 0)\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public getSelectedSortOption(sortingOptions: any[]) {\r\n let result = '';\r\n let selected = sortingOptions.find(i => i.isActive);\r\n if (selected)\r\n result = selected.title;\r\n return result;\r\n }\r\n\r\n public setBottomNavbarActiveItem(value: any) {\r\n this.bottomNavbarActiveItem.next(value);\r\n }\r\n\r\n public getBottomNavbarActiveItem(): boolean {\r\n return this.bottomNavbarActiveItem.value;\r\n }\r\n\r\n public showDecisionInformationSnackbar(result: string = '', message: string = '', buttonText: string = '', actionToPerform?: () => any): void {\r\n let snackbarRef = this.snackBar.openFromComponent(ToastComponent, {\r\n data: {\r\n result: result,\r\n message: message,\r\n buttonText: buttonText\r\n }, duration: 6000,\r\n panelClass: 'transparent-bottom-default',\r\n verticalPosition: 'bottom', // 'top' | 'bottom'\r\n horizontalPosition: 'left', //'start' | 'center' | 'end' | 'left' | 'right'\r\n });\r\n\r\n if (actionToPerform) {\r\n snackbarRef.afterDismissed().subscribe((action:any) => {\r\n actionToPerform();\r\n });\r\n }\r\n }\r\n\r\n public generateUUID() {\r\n var d = new Date().getTime();\r\n if (typeof performance !== 'undefined' && typeof performance.now === 'function')\r\n d += performance.now();\r\n\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n }\r\n\r\n public goToDashboard() {\r\n this.router.navigateByUrl('/user/dashboard');\r\n }\r\n\r\n public goToHome() {\r\n this.router.navigateByUrl('');\r\n }\r\n\r\n public goToPlanDetail() {\r\n this.router.navigateByUrl('/user/plan/details');\r\n }\r\n\r\n public scrollTo(scrollHeight: any = 0, className: string = 'wrapper') {\r\n if (className) {\r\n if (document.getElementsByClassName(className)[0]) {\r\n window.scrollTo({\r\n top: scrollHeight > 0 ? scrollHeight : document.getElementsByClassName(className)[0].scrollHeight,\r\n left: 0,\r\n behavior: \"smooth\"\r\n })\r\n }\r\n } else {\r\n window.scrollTo({\r\n top: scrollHeight > 0 ? scrollHeight : document.documentElement.scrollHeight,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n }\r\n\r\n public redirectToCobrapoint() {\r\n window.open('https://cobrapoint.benaissance.com/', '_blank');\r\n }\r\n\r\n public checkAndLogoutUser() {\r\n if (localStorage.lastEventDate) {\r\n var lastEventDateStored:any = localStorage.getItem(\"lastEventDate\");\r\n var lastEventDate = new Date(lastEventDateStored);\r\n var currentDate = new Date();\r\n var seconds = (currentDate.getTime() - lastEventDate.getTime()) / 1000;\r\n if (this.idleTime < seconds) {\r\n localStorage.setItem(\"isStopTimer\", \"false\");\r\n // this.authService.logout();\r\n }\r\n }\r\n }\r\n\r\n public setTimerConfigValue() {\r\n var obj = new UserIdleConfig();\r\n obj.idle = this.idleTime;\r\n obj.timeout = this.logoutTime;\r\n this.userIdleService.setConfigValues(obj);\r\n }\r\n\r\n public setUserIdleWatch() {\r\n this.userIdleService.startWatching();\r\n this.userIdleService.onTimerStart().subscribe(count => {\r\n if (count) {\r\n this.showSnackbarForInactivity();\r\n }\r\n });\r\n this.userIdleService.onTimeout().subscribe(() => {\r\n this.logOutUserWithoutConfirmation();\r\n });\r\n }\r\n\r\n public showSnackbarForInactivity() {\r\n if (!this.snackbarOpened) {\r\n this.snackbarOpened = true;\r\n this.setLogoutAlertSnackbar();\r\n }\r\n }\r\n\r\n public setLogoutAlertSnackbar() {\r\n //let snackBarRef = this.snackBar.open('User is going to logout in ' + this.logoutTime + ' seconds. Do you want to stay?', 'Yes', { duration: (this.logoutTime * 1000), verticalPosition: 'top' });\r\n //snackBarRef.onAction().subscribe(() => {\r\n // this.userIdleService.stopTimer();\r\n // this.snackbarOpened = false;\r\n //});\r\n }\r\n\r\n public logOutUserWithoutConfirmation() {\r\n // this.authService.logout();\r\n }\r\n\r\n public redirectToLogin() {\r\n this.router.navigateByUrl(\"/login\");\r\n }\r\n\r\n public redirectToNotFound() {\r\n this.router.navigateByUrl(\"page/404\");\r\n }\r\n\r\n public setUserRoles(userRoles: any): void {\r\n this.userRoles = userRoles;\r\n }\r\n\r\n public getUserRoles(): string[] {\r\n return this.userRoles;\r\n }\r\n\r\n public locationReplaceUrl(url: string) {\r\n //console.log('Url: ' + url);\r\n this.location.replaceState(url);\r\n }\r\n\r\n //public planEnrollmentType(trackEventName: any, planDEType: any, cobraSystemSlug: any) {\r\n \r\n //}\r\n\r\n public getStatesList() {\r\n return [{ name: 'Alabama', abbreviation: 'AL' }, { name: 'Alaska', abbreviation: 'AK' }, { name: 'American Samoa', abbreviation: 'AS' }, { name: 'Arizona', abbreviation: 'AZ' }, { name: 'Arkansas', abbreviation: 'AR' }, { name: 'California', abbreviation: 'CA' }, { name: 'Colorado', abbreviation: 'CO' }, { name: 'Connecticut', abbreviation: 'CT' }, { name: 'Delaware', abbreviation: 'DE' }, { name: 'District Of Columbia', abbreviation: 'DC' }, { name: 'Federated States Of Micronesia', abbreviation: 'FM' }, { name: 'Florida', abbreviation: 'FL' }, { name: 'Georgia', abbreviation: 'GA' }, { name: 'Guam', abbreviation: 'GU' }, { name: 'Hawaii', abbreviation: 'HI' }, { name: 'Idaho', abbreviation: 'ID' }, { name: 'Illinois', abbreviation: 'IL' }, { name: 'Indiana', abbreviation: 'IN' }, { name: 'Iowa', abbreviation: 'IA' }, { name: 'Kansas', abbreviation: 'KS' }, { name: 'Kentucky', abbreviation: 'KY' }, { name: 'Louisiana', abbreviation: 'LA' }, { name: 'Maine', abbreviation: 'ME' }, { name: 'Marshall Islands', abbreviation: 'MH' }, { name: 'Maryland', abbreviation: 'MD' }, { name: 'Massachusetts', abbreviation: 'MA' }, { name: 'Michigan', abbreviation: 'MI' }, { name: 'Minnesota', abbreviation: 'MN' }, { name: 'Mississippi', abbreviation: 'MS' }, { name: 'Missouri', abbreviation: 'MO' }, { name: 'Montana', abbreviation: 'MT' }, { name: 'Nebraska', abbreviation: 'NE' }, { name: 'Nevada', abbreviation: 'NV' }, { name: 'New Hampshire', abbreviation: 'NH' }, { name: 'New Jersey', abbreviation: 'NJ' }, { name: 'New Mexico', abbreviation: 'NM' }, { name: 'New York', abbreviation: 'NY' }, { name: 'North Carolina', abbreviation: 'NC' }, { name: 'North Dakota', abbreviation: 'ND' }, { name: 'Northern Mariana Islands', abbreviation: 'MP' }, { name: 'Ohio', abbreviation: 'OH' }, { name: 'Oklahoma', abbreviation: 'OK' }, { name: 'Oregon', abbreviation: 'OR' }, { name: 'Palau', abbreviation: 'PW' }, { name: 'Pennsylvania', abbreviation: 'PA' }, { name: 'Puerto Rico', abbreviation: 'PR' }, { name: 'Rhode Island', abbreviation: 'RI' }, { name: 'South Carolina', abbreviation: 'SC' }, { name: 'South Dakota', abbreviation: 'SD' }, { name: 'Tennessee', abbreviation: 'TN' }, { name: 'Texas', abbreviation: 'TX' }, { name: 'Utah', abbreviation: 'UT' }, { name: 'Vermont', abbreviation: 'VT' }, { name: 'Virgin Islands', abbreviation: 'VI' }, { name: 'Virginia', abbreviation: 'VA' }, { name: 'Washington', abbreviation: 'WA' }, { name: 'West Virginia', abbreviation: 'WV' }, { name: 'Wisconsin', abbreviation: 'WI' }, { name: 'Wyoming', abbreviation: 'WY' }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n private configData: any;\r\n \r\n constructor(private httpClient: HttpClient) {\r\n\r\n }\r\n\r\n public loadConfig(): Promise {\r\n const promise = this.httpClient.get('/config')\r\n .toPromise()\r\n .then((response: any) => {\r\n this.configData = response.value;\r\n return this.configData;\r\n });\r\n return promise;\r\n }\r\n\r\n get apiBaseUrl(): any {\r\n return this.configData.apiBaseUri;\r\n }\r\n\r\n get clientBaseUrl(): any {\r\n return this.configData.clientBaseUri;\r\n }\r\n\r\n get tPNexusClientBaseUrl(): any {\r\n return this.configData.tpNexusConfig.clientUrl;\r\n }\r\n\r\n get msalConfig(): any {\r\n return this.configData.msalConfig;\r\n }\r\n\r\n get config(): any {\r\n return this.configData;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IpService {\r\n\r\n constructor() { }\r\n public getIPAddress() {\r\n var request = new XMLHttpRequest();\r\n request.open('GET', \"https://api.ipify.org/?format=json\", false);\r\n request.send(null);\r\n const response = JSON.parse(request.responseText);\r\n return response.ip;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n isProgressBarRunning = new Subject();\r\n isLoaderRunning = new Subject();\r\n\r\n constructor() { }\r\n\r\n startProgressBar() {\r\n this.isProgressBarRunning.next(true);\r\n }\r\n\r\n stopProgressBar() {\r\n this.isProgressBarRunning.next(false);\r\n }\r\n\r\n startLoader() {\r\n this.isLoaderRunning.next(true);\r\n }\r\n\r\n stopLoader() {\r\n this.isLoaderRunning.next(false);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class PagerService {\r\n getPager(totalItems: number, currentPage: number = 1, NumberOfPageShow: number = 5, pageSize: number = 10) {\r\n // calculate total pages\r\n let totalPages = Math.ceil(totalItems / pageSize);\r\n\r\n // ensure current page isn't out of range\r\n if (currentPage < 1)\r\n currentPage = 1;\r\n else if (currentPage > totalPages)\r\n currentPage = totalPages;\r\n\r\n let startPage: number, endPage: number;\r\n if (totalPages <= NumberOfPageShow + 2) {\r\n startPage = 1;\r\n endPage = totalPages;\r\n } else {\r\n if (currentPage <= (NumberOfPageShow / 2)) {\r\n startPage = 1;\r\n endPage = NumberOfPageShow;\r\n } else if (currentPage + NumberOfPageShow >= totalPages) {\r\n startPage = totalPages - (totalPages == NumberOfPageShow + 1 ? NumberOfPageShow : NumberOfPageShow + 1);\r\n endPage = totalPages;\r\n } else {\r\n startPage = currentPage - (NumberOfPageShow % 2 == 0 ? (NumberOfPageShow / 2) - 1 : Math.floor(NumberOfPageShow / 2));\r\n endPage = currentPage + Math.floor(NumberOfPageShow / 2);\r\n }\r\n }\r\n\r\n // calculate start and end item indexes\r\n let startIndex = (currentPage - 1) * pageSize;\r\n let endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n let pages = Array.from(Array((endPage + 1) - startPage).keys()).map(i => startPage + i);\r\n\r\n // return object with all pager properties required by the view\r\n return {\r\n totalItems: totalItems,\r\n currentPage: currentPage,\r\n pageSize: pageSize,\r\n totalPages: totalPages,\r\n startPage: startPage,\r\n endPage: endPage,\r\n startIndex: startIndex,\r\n endIndex: endIndex,\r\n pages: pages\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SnackbarService {\r\n\r\n constructor(private snackbar: MatSnackBar) { }\r\n\r\n openCOnfirmationSnackBar(message: string, action1: string, action2: string) {\r\n const snackBarRef = this.snackbar.open(message, action1, {\r\n duration: 5000,\r\n panelClass: ['snackbar']\r\n });\r\n\r\n snackBarRef.onAction().subscribe(() => {\r\n // Action 1 (Yes) logic\r\n snackBarRef.dismissWithAction();\r\n });\r\n\r\n snackBarRef.afterDismissed().subscribe((dismissedAction:any) => {\r\n if (dismissedAction === 'action') {\r\n // Action 2 (No) logic\r\n }\r\n });\r\n\r\n // snackBarRef.addAction(action2);\r\n }\r\n}\r\n","\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport {\r\n Observable,\r\n Subject,\r\n Subscription,\r\n merge,\r\n fromEvent,\r\n from,\r\n interval,\r\n timer,\r\n of\r\n} from 'rxjs';\r\nimport {\r\n bufferTime,\r\n distinctUntilChanged,\r\n filter,\r\n finalize,\r\n map,\r\n scan,\r\n switchMap,\r\n take,\r\n takeUntil,\r\n tap\r\n} from 'rxjs/operators';\r\n\r\nexport class UserIdleConfig {\r\n idle!: number;\r\n timeout!: number;\r\n ping!: number;\r\n}\r\n\r\n@Injectable()\r\nexport class UserIdleService {\r\n ping$!: Observable;\r\n\r\n /**\r\n * Events that can interrupts user's inactivity timer.\r\n */\r\n protected activityEvents$: Observable;\r\n\r\n protected timerStart$ = new Subject();\r\n protected timeout$ = new Subject();\r\n protected idle$: Observable;\r\n protected timer$!: Observable;\r\n /**\r\n * Idle value in seconds.\r\n * Default equals to 10 minutes.\r\n */\r\n protected idle = 10;\r\n /**\r\n * Timeout value in seconds.\r\n * Default equals to 5 minutes.\r\n */\r\n protected timeout = 5;\r\n /**\r\n * Ping value in seconds.\r\n * * Default equals to 2 minutes.\r\n */\r\n protected ping = 12;\r\n /**\r\n * Timeout status.\r\n */\r\n protected isTimeout!: boolean;\r\n /**\r\n * Timer of user's inactivity is in progress.\r\n */\r\n protected isInactivityTimer!: boolean;\r\n\r\n protected idleSubscription!: Subscription;\r\n\r\n constructor(@Optional() config: UserIdleConfig) {\r\n if (config) {\r\n this.idle = config.idle;\r\n this.timeout = config.timeout;\r\n this.ping = config.ping;\r\n }\r\n\r\n this.activityEvents$ = merge(\r\n fromEvent(window, 'mousemove'),\r\n fromEvent(window, 'resize'),\r\n fromEvent(document, 'keydown')\r\n );\r\n\r\n this.idle$ = from(this.activityEvents$);\r\n }\r\n\r\n /**\r\n * Start watching for user idle and setup timer and ping.\r\n */\r\n startWatching() {\r\n if (this.idleSubscription) {\r\n this.idleSubscription.unsubscribe();\r\n }\r\n\r\n // If any of user events is not active for idle-seconds when start timer.\r\n this.idleSubscription = this.idle$\r\n .pipe(\r\n bufferTime(5000), // Starting point of detecting of user's inactivity\r\n filter(arr => !arr.length && !this.isInactivityTimer),\r\n tap(() => this.isInactivityTimer = true),\r\n switchMap(() => interval(1000).pipe(\r\n takeUntil(\r\n merge(\r\n this.activityEvents$,\r\n timer(this.idle * 1000).pipe(\r\n tap(() => this.timerStart$.next(true))\r\n )\r\n )\r\n ),\r\n finalize(() => (this.isInactivityTimer = false))\r\n )\r\n )\r\n )\r\n .subscribe();\r\n\r\n this.setupTimer(this.timeout);\r\n this.setupPing(this.ping);\r\n }\r\n\r\n stopWatching() {\r\n this.stopTimer();\r\n if (this.idleSubscription) {\r\n this.idleSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n stopTimer() {\r\n this.timerStart$.next(false);\r\n }\r\n\r\n resetTimer() {\r\n this.stopTimer();\r\n this.isTimeout = false;\r\n }\r\n\r\n /**\r\n * Return observable for timer's countdown number that emits after idle.\r\n */\r\n onTimerStart(): Observable {\r\n return this.timerStart$.pipe(\r\n distinctUntilChanged(),\r\n switchMap(start => (start ? this.timer$ : of(null)))\r\n );\r\n }\r\n\r\n /**\r\n * Return observable for timeout is fired.\r\n */\r\n onTimeout(): Observable {\r\n return this.timeout$.pipe(\r\n filter(timeout => !!timeout),\r\n tap(() => this.isTimeout = true),\r\n map(() => true)\r\n );\r\n }\r\n\r\n getConfigValue(): UserIdleConfig {\r\n return {\r\n idle: this.idle,\r\n timeout: this.timeout,\r\n ping: this.ping\r\n };\r\n }\r\n\r\n /**\r\n * Set config values.\r\n * @param config\r\n */\r\n setConfigValues(config: any) {\r\n if (config.idle && config.timeout) {\r\n if ((this.idle == config.idle) && (this.timeout == config.timeout)) {\r\n return;\r\n }\r\n }\r\n if (this.idleSubscription && !this.idleSubscription.closed) {\r\n console.error('Call stopWatching() before set config values');\r\n return;\r\n }\r\n\r\n if (config.idle) {\r\n this.idle = config.idle;\r\n }\r\n if (config.ping) {\r\n this.ping = config.ping;\r\n }\r\n if (config.timeout) {\r\n this.timeout = config.timeout;\r\n }\r\n }\r\n\r\n /**\r\n * Setup timer.\r\n *\r\n * Counts every seconds and return n+1 and fire timeout for last count.\r\n * @param timeout Timeout in seconds.\r\n */\r\n protected setupTimer(timeout: number) {\r\n this.timer$ = interval(1000).pipe(\r\n take(timeout),\r\n map(() => 1),\r\n scan((acc, n) => acc + n),\r\n tap(count => {\r\n if (count === timeout) {\r\n this.timeout$.next(true);\r\n }\r\n })\r\n );\r\n }\r\n\r\n /**\r\n * Setup ping.\r\n *\r\n * Pings every ping-seconds only if is not timeout.\r\n * @param ping\r\n */\r\n protected setupPing(ping: number) {\r\n this.ping$ = interval(ping * 1000).pipe(\r\n filter(() => !this.isTimeout)\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { ConfigurationService } from './configuration.service';\r\nimport { contentHeaders } from '../../shared/common/headers';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private serviceUrl!: string;\r\n\r\n constructor(private configuration: ConfigurationService, private http: HttpClient) {\r\n this.serviceUrl = this.configuration.apiBaseUrl;\r\n }\r\n\r\n public validateUser(userLoginRequestDTO: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/validate', userLoginRequestDTO, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getUserBasicInfo(model: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/basicInfo', model, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserBasicInfo(model: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/basicInfo/update', model, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public loginInfoHandling(): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/login/info/handling', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n /*New service come from decision services */\r\n\r\n public getTermsAndConditions(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/terms-and-conditions/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateTermsAndConditions(): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/terms-and-conditions/accept', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n /**/\r\n public getUserDemographicInformation(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/demographic-info/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserDemographicInformation(data: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/demographic-info/update', data, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getDashboardInformation(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/dashboard-info/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getPlanInformation(planId: string, checkboxChecked: boolean): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/plan/' + planId + '/details/get/' + checkboxChecked + '', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getDependents(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/dependents/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserDependents(data: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/dependents/update', data, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getQbCobraPlanInformation(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/cobra-plan/details/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getCoverageTier(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/get/coverage/tier', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getZipCodeCountyNameInformation(zipCode: string): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/county/' + zipCode + '/get/codes', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getUserElectionCobraSubsidyInfo(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/election/cobra/subsidy/data/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserElectionInformation(data: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/election/update', data, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getUtilizationOption(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/utilization/option/list/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public checkIfUserIsValid(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/requested-url/authorization/verify', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getRecommendedPlans(filters: any, zipcode: string = '', countyCode: string = ''): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/recommended/plans/get', filters, {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('zipCode', zipcode)\r\n .set('countyCode', countyCode)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateUserHouseHoldIncome(houseHoldIncome: any): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/household/income/update', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n .set('houseHoldIncome', houseHoldIncome)\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public followupLogging(uniqueCode: string): Observable { \r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/utility/followup/logging', { uniqueCode: uniqueCode }, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n\r\n public getLoggedInUserRoles(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/user-roles/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public recordUserClickOnEnrollButton(planType: string): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/enroll-button/' + planType + '/click/record', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public checkIfUserHasAdminRole(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/is-admin/check', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getZipCodeCountyNameAndStateInformation(zipCode: string): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/' + zipCode + '/county/codes/state/get', {\r\n headers: contentHeaders,\r\n params: new HttpParams()\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public updateSupplementalPlanTypeInNexus(hasUserOptedForMedical: any): Observable {\r\n return this.http\r\n .post(this.serviceUrl + 'api/v1/user/supplementalPlanType/update/' + hasUserOptedForMedical, {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n public getUserPlanAvailabilityAndPlanEnrollmentStatus(): Observable {\r\n return this.http\r\n .get(this.serviceUrl + 'api/v1/user/planAvailability-PlanEnrollment-Status-info/get', {\r\n headers: contentHeaders\r\n })\r\n .pipe(\r\n map((response: any) => {\r\n return response;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n }));\r\n }\r\n\r\n}\r\n","export const Role = {\r\n participant: 'participant',\r\n masterUser: 'master-user',\r\n clientAdmin: 'client-administrator'\r\n};\r\n\r\nexport const ReportType = {\r\n allAnalytics: 'all-analytics'\r\n};\r\n\r\nexport const ReportFormat = {\r\n csv: 'csv',\r\n pdf: 'pdf'\r\n};\r\n\r\nexport const AnalyticsChartView = {\r\n number: 'number',\r\n percentage: 'percentage'\r\n};\r\n\r\nexport const AnalyticsChartType = {\r\n doughnut: 'doughnut',\r\n bar: 'bar'\r\n};\r\n","import { HttpHeaders } from '@angular/common/http';\r\n\r\nexport const contentHeaders = new HttpHeaders();\r\ncontentHeaders.append('Accept', 'application/json');\r\ncontentHeaders.append('Content-Type', 'application/json');\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'trust_html' })\r\n\r\nexport class TrustHtmlPipe implements PipeTransform {\r\n\r\n constructor(private _sanitizer: DomSanitizer) { }\r\n\r\n transform(value: string): SafeHtml {\r\n return this._sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","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\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\n\r\nenableProdMode();\r\n\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["RouterModule","RedirectGuard","MsalGuard","AdminGuard","routes","path","loadChildren","then","m","HomeModule","canActivate","AdminModule","canActivateChild","UserModule","AppRoutingModule","forRoot","imports","exports","MSAL_GUARD_CONFIG","EventType","InteractionStatus","filter","Subject","i0","AppComponent","constructor","msalGuardConfig","authService","loaderService","msalBroadcastService","msalService","analyticsService","isProgressBarRunning","isLoaderRunning","initialize","ngOnDestroy","_destroying$","next","undefined","complete","ngOnInit","isLoggedIn","msalSubject$","pipe","msg","eventType","LOGIN_SUCCESS","subscribe","result","console","log","payload","instance","setActiveAccount","account","inProgress$","status","None","setLoginDisplay","loginDisplay","getAllAccounts","length","checkAndSetActiveAccount","activeAccount","getActiveAccount","accounts","selectors","decls","vars","consts","template","BrowserModule","APP_INITIALIZER","FormsModule","HttpClientModule","HTTP_INTERCEPTORS","CoreModule","ConfigurationService","MsalBroadcastService","MsalInterceptor","MsalModule","MsalRedirectComponent","MsalService","MSAL_INSTANCE","MSAL_INTERCEPTOR_CONFIG","InteractionType","PublicClientApplication","BrowserAnimationsModule","NgxDaterangepickerMd","ChartsModule","callConfig","configService","x","loadConfig","getConfig","request","XMLHttpRequest","open","send","response","JSON","parse","responseText","value","msalConfig","MSALInstanceFactory","MSALInterceptorConfigFactory","protectedResourceMap","Map","set","interactionType","Redirect","MSALGuardConfigFactory","authRequest","scopes","AppModule","bootstrap","provide","useClass","multi","useFactory","deps","declarations","EventEmitter","AcceptCookiesComponent","apiService","ipService","acceptCookies","isCookiesAcceptedAfterLogin","emit","browserInfo","getBrowserName","getLocation","data","latitude","longitude","ipAddress","getIPAddress","post","userAgent","window","navigator","toLowerCase","isEdge","indexOf","isOpera","isChrome","isIE","isFirefox","isSafari","geolocation","getCurrentPosition","position","coords","error","openPrivacyDialog","acceptCookiesWithoutLoggedIn","isCookiesAcceptedBeforeLogin","outputs","ctx","TermsOfUseComponent","PrivacyPolicyComponent","FooterComponent","router","commonService","cdr","userService","snackBar","userIdleService","dialog","currentYear","Date","getFullYear","checkCookiesAccepted","get","res","isCookiesAccepted","returnedObject","cookiesAfterLogin","openTermDialog","termDialog","getMatDialogOptions","privacyDialog","isNavDrawerOpen","LoaderComponent","inputs","small","modalTitle","toString","styles","MAT_DIALOG_DATA","dialogRef","MAT_SNACK_BAR_DATA","ToastComponent","_snackRef","close","dismiss","TopBannerComponent","performAction","dismissWithAction","CommonModule","AuthInterceptor","LoaderInterceptor","ErrorInterceptor","AuthService","UserIdleService","MaterialModule","AppState","CommonService","AnalyticsService","AdminService","NgProgress","UserService","TrustHtmlPipe","PagerService","EnrollmentGuard","SnackbarService","NumberFormatterDirective","elementRef","control","RegExp","affixType","el","nativeElement","onFocus","event","checkForUpdatedSpecialCharacter","parseBeginningZeroes","allowZero","specialCharacterToSupport","setTimeout","selectionEnd","selectionStart","onBlur","checkForMinAndMaxLimit","transform","autoFillZero","onKeyDown","validValue","regex","specialKeys","key","ctrlKey","current","String","match","preventDefault","onKeyUp","replace","integer","fraction","split","decimalSeparator","fractionSize","padding","substring","thousandsSeparator","parseInt","checkForMinLimit","currentCopy","nextCopy","checkIfStringValueIsNotValidFloatNumber","intPart","decimalPart","isMaxLimitCrossed","isMinLimitNotReached","max","min","maxLimit","parseFloat","minLimit","isNaN","maxLimitIntPart","substr","minLimitIntPart","setValue","isDecimalNumber","hostBindings","map","route","state","checkIfUserHasAdminRole","success","logout","factory","checkIfUserIsValid","navigateByUrl","url","providedIn","from","lastValueFrom","moment","intercept","req","handle","accessToken","localStorage","getItem","isTokenValid","clone","setHeaders","Authorization","getToken","token","idToken","isBefore","unix","parseJwt","exp","base64Url","base64","atob","throwError","tap","err","errorMessage","message","userMessage","showTopBanner","finalize","startProgressBar","stopProgressBar","MatFormFieldModule","MatCardModule","MatDialogRef","MatInputModule","MatIconModule","MatButtonModule","MatMenuModule","MatDialogModule","MatSelectModule","MatTabsModule","MatStepperModule","ReactiveFormsModule","STEPPER_GLOBAL_OPTIONS","MatTableModule","MatPaginatorModule","MatTooltipModule","MatProgressBarModule","MatSnackBarModule","MatRadioModule","MatCheckboxModule","MatDatepickerModule","MatNativeDateModule","MatToolbarModule","MatSidenavModule","MatExpansionModule","MatSlideToggleModule","MatSliderModule","NgxMatSelectSearchModule","MatButtonToggleModule","NgxSliderModule","useValue","displayDefaultIndicatorType","HttpParams","catchError","contentHeaders","configuration","http","serviceUrl","apiBaseUrl","getSettingsConfigurationData","headers","downloadReport","reportRequest","getRegistrationStatisticsAnalyticsData","analyticsRequest","getQuestionnaireUtilizationAnalyticsData","getUserEnrollmentsAnalyticsData","getRegistrationFailuresAnalyticsData","getCobraElectionAnalysisAnalyticsData","getEmployerSubsidizedCobraElectionsAnalyticsData","getYtdMarketplaceEnrollmentAnalyticsData","getClients","pageNumber","pageSize","search","params","getPlans","clientId","addUpdateB2BAccountPlan","planInformation","toggleB2BAccount","addUpdateB2BAccount","b2BAccountInfo","toggleB2BAccountPlan","planId","getFailedCredentials","reSharedCredential","isNexusB2BAccountAlreadyExists","nexusB2BAccountId","mixpanel","verifyYourIdentity","login","accountCreated","startSetUpAccount","informationConfirmed","informationNotConfirmed","enrollmentStarted","cobraPlanDetailsPageView","enrollmentComplete","enrollmentInComplete","viewMoreAfforableOptions","thatsOk","takeMeBack","planSelect","browseOtherPlansPageView","sort","viewPlanDetails","startQuestionaire","answeredQuestion","questionnaireCompleted","analyticsToken","config","analyticsConfig","init","debug","cross_subdomain_cookie","user","getUserNameObject","Object","keys","identify","objectId","updateUserProfile","fullName","email","username","trackEvent","track","people","trackEventListData","ApiService","configurationService","hasParams","httpParams","forEach","body","_state","_clone","Error","prop","hasOwnProperty","object","stringify","Role","InteractionRequiredAuthError","isLoggedInFlag","asObservable","msalInitialized","loginRedirect","clear","reset","nameObject","name","localAccountId","initials","firstNameChar","lastNameChar","showTokenResponse","hash","reduce","item","parts","setIsLoggedInFlag","doesUserHaveAdminRole","userRoles","clientAdmin","accessTokenRequest","tokenResponse","acquireTokenSilent","catch","acquireTokenRedirect","BehaviorSubject","DecimalPipe","MDCSelect","MDCCheckbox","MDCRipple","MDCSwitch","MDCLineRipple","UserIdleConfig","snackbarService","location","ein","streetAddress","addressDetails","nameWithNumerals","password","customPassword","nameWithSpecialCharacters","specialName","nameWithNumeralsAndFewSpecialCharacters","male","female","appBarText","screenDimension","enrollDialog","isEnrollDialogOpen","userInfo","userBasicInfoData","bottomSheetListItems","bottomNavbarActiveItem","userProfilePic","snackbarOpened","cobraSystemType","confirmLogout","openSnackbarWithTwoActions","goToHome","getValues","getCityAndState","zipcode","setAppBarText","setScreenDimension","toggleEnrollDialog","setEnrollDialogState","getEnrollDialogState","getMomentDate","dateValue","format","momentDate","isValid","getMomentDateFromString","dateFormat","getMomentDateInDateFormat","getAge","diff","manuallyValidateForm","form","controls","invalid","manuallyValidateFormField","touched","updateValueAndValidity","resetFormValidations","formElement","resetForm","markAsPristine","markAsUntouched","getCurrentUnixTimestamp","Math","round","getTime","getRandomUnixTimestamp","random","setUserBasicInfoData","getUserBasicInfoData","getMultiselectDropdownSettings","placeholderText","labelKey","primaryKey","classes","noDataLabel","isDisabled","badgeShowLimit","groupBy","enableCheckAll","selectAllText","unSelectAllText","singleSelection","text","enableSearchFilter","searchAutofocus","disabled","escapeToClose","getTimeOfDay","hoursNow","getHours","setUserInfo","getUserInfo","verifyStringWithRegEx","val","test","getFormatedDateTimeString","datewithslashes","timezoneOffset","getTimezoneOffset","dateToSend","setMinutes","showErrorTypeSnackbar","buttonText","duration","verticalPosition","showInformationSnackbar","actionToPerform","snackbarRef","panelClass","afterDismissed","action","dismissedByAction","NaN","getContributionFrequencyText","shortForm","returnValue","getCostFrequencyText","abbreviation","getGeneralErrorMessage","downloadFile","file","preferDownload","byteArray","fileContent","fileExtension","lastIndexOf","imageSupportedFormats","byteCharacters","byteNumbers","Array","i","charCodeAt","Uint8Array","fileToDisplay","Blob","type","fileURL","URL","createObjectURL","element","document","createElement","setAttribute","style","display","appendChild","click","removeChild","setBottomSheetListItems","getBottomSheetListItems","timeout","actionOneText","actionOne","actionSecondText","actionSecond","validateEventAndGetCityStateForZipcode","zipcodeKey","cityKey","stateKey","keyCode","city","address","zip","copyObjectWithReference","to","getPayrollFrequencyValue","payrollFrequency","payPeriods","getGracePeriodOptions","gracePeriod","index","push","uploadDocument","formData","downloadDocument","fileType","getLoggedInUserPermissions","getTermsAndConditions","updateUserTerms","model","getPrivacyPolicy","updatePrivacyPolicy","verifyEmail","getUserBasicInfo","getUserProfileInfo","getAccountSettingsBasicInfo","updateUserAccountSettingsBasicInfo","setUserProfilePic","getUserProfilePic","readFileAsBase64","reader","FileReader","Promise","resolve","reject","onerror","abort","onload","readAsDataURL","isNumberValid","isZeroAllowed","closeCustomSnackbarWithTwoActions","formatValueToTitleCase","$1","toUpperCase","initCommonMaterialComponents","disableAllFormFields","parentID","textFields","querySelectorAll","selects","checkboxes","buttons","formFields","switches","datepickerFields","fabs","menuRippleDivs","tabs","classList","remove","select","checkbox","button","switchControl","fab","lineRipple","getNameByNumber","id","getSingleByNumber","getFormattedAmountString","getFormattedAmountValue","calculateAge","dateOfBirth","timeDiff","abs","now","floor","matDialogOptions","disableClose","closeOnNavigation","maxWidth","height","getMatDialogOptionsShort","margin","getSmallMatDialogOptions","getConfirmationMatDialogOptions","timeOut","showSupportMail","openFromComponent","actionButtonText","fontWhite","horizontalPosition","showBlueBanner","setSortData","sortingDirection","sortingOptions","isActive","scrollToTop","className","getElementsByClassName","scrollTo","top","left","behavior","documentElement","showScrollButton","scrollTop","getSelectedSortOption","selected","find","title","setBottomNavbarActiveItem","getBottomNavbarActiveItem","showDecisionInformationSnackbar","generateUUID","d","performance","c","r","goToDashboard","goToPlanDetail","scrollHeight","redirectToCobrapoint","checkAndLogoutUser","lastEventDate","lastEventDateStored","currentDate","seconds","idleTime","setItem","setTimerConfigValue","obj","idle","logoutTime","setConfigValues","setUserIdleWatch","startWatching","onTimerStart","count","showSnackbarForInactivity","onTimeout","logOutUserWithoutConfirmation","setLogoutAlertSnackbar","redirectToLogin","redirectToNotFound","setUserRoles","getUserRoles","locationReplaceUrl","replaceState","getStatesList","httpClient","promise","toPromise","configData","apiBaseUri","clientBaseUrl","clientBaseUri","tPNexusClientBaseUrl","tpNexusConfig","clientUrl","IpService","ip","LoaderService","startLoader","stopLoader","getPager","totalItems","currentPage","NumberOfPageShow","totalPages","ceil","startPage","endPage","startIndex","endIndex","pages","snackbar","openCOnfirmationSnackBar","action1","action2","snackBarRef","onAction","dismissedAction","merge","fromEvent","interval","timer","of","bufferTime","distinctUntilChanged","scan","switchMap","take","takeUntil","ping","activityEvents$","idle$","idleSubscription","unsubscribe","arr","isInactivityTimer","timerStart$","setupTimer","setupPing","stopWatching","stopTimer","resetTimer","isTimeout","start","timer$","timeout$","getConfigValue","closed","acc","n","ping$","validateUser","userLoginRequestDTO","updateUserBasicInfo","loginInfoHandling","updateTermsAndConditions","getUserDemographicInformation","updateUserDemographicInformation","getDashboardInformation","getPlanInformation","checkboxChecked","getDependents","updateUserDependents","getQbCobraPlanInformation","getCoverageTier","getZipCodeCountyNameInformation","zipCode","getUserElectionCobraSubsidyInfo","updateUserElectionInformation","getUtilizationOption","getRecommendedPlans","filters","countyCode","updateUserHouseHoldIncome","houseHoldIncome","followupLogging","uniqueCode","getLoggedInUserRoles","recordUserClickOnEnrollButton","planType","getZipCodeCountyNameAndStateInformation","updateSupplementalPlanTypeInNexus","hasUserOptedForMedical","getUserPlanAvailabilityAndPlanEnrollmentStatus","participant","masterUser","ReportType","allAnalytics","ReportFormat","csv","pdf","AnalyticsChartView","number","percentage","AnalyticsChartType","doughnut","bar","HttpHeaders","append","_sanitizer","bypassSecurityTrustHtml","pure","enableProdMode","getBaseUrl","getElementsByTagName","href","providers","__NgCli_bootstrap_1","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[43]}