{"version":3,"file":"main.b49767fb908c9e3d.js","mappings":"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lB;AAED,wEAAwB;KACrB,eAAe,CAAC,sDAAS,CAAC;KAC1B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACb,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACnE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,GACP,0EAA0E,CAAC;IAC7E,IAAI,GAAG,EAAE;QACP,IAAI,GAAG,CAAC,OAAO,EAAE;YACf,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;SACnC;aAAM;YACL,OAAO,GAAG,SAAS,GAAG,GAAG,CAAC;SAC3B;KACF;IACD,aAAc,CAAC,WAAW,GAAG,KAAK,CAAC;IACnC,eAAgB,CAAC,WAAW,GAAG,OAAO,CAAC;AACzC,CAAC,CAAC,CAAC;;;;;;;;;;;AC9BL;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;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/appload/module/appload.module.ts","./src/app/appload/service/appload.service.ts","./src/app/features/common/common.module.ts","./src/app/features/common/components/changepassword/changepassword.component.ts","./src/app/features/common/components/changepassword/changepassword.component.html","./src/app/features/common/components/changepassword/password-change/password-change.component.ts","./src/app/features/common/components/changepassword/password-change/password-change.component.html","./src/app/features/common/components/contact/contact.component.ts","./src/app/features/common/components/contact/contact.component.html","./src/app/features/common/components/creditcard/credit-card-success-common/credit-card-success-common.component.ts","./src/app/features/common/components/creditcard/credit-card-success-common/credit-card-success-common.component.html","./src/app/features/common/components/creditcard/creditcard-cancel/creditcard-cancel.component.ts","./src/app/features/common/components/creditcard/creditcard-cancel/creditcard-cancel.component.html","./src/app/features/common/components/creditcard/creditcard-success/creditcard-success.component.ts","./src/app/features/common/components/creditcard/creditcard-success/creditcard-success.component.html","./src/app/features/common/components/creditcard/creditcard.component.ts","./src/app/features/common/components/creditcard/creditcard.component.html","./src/app/features/common/components/faq/employer-faq/employer-faq.component.ts","./src/app/features/common/components/faq/employer-faq/employer-faq.component.html","./src/app/features/common/components/faq/faq.component.ts","./src/app/features/common/components/faq/faq.component.html","./src/app/features/common/components/faq/ncp-faq/ncp-faq.component.ts","./src/app/features/common/components/faq/ncp-faq/ncp-faq.component.html","./src/app/features/common/components/forgotpassword/forgot-password/forgot-password.component.ts","./src/app/features/common/components/forgotpassword/forgot-password/forgot-password.component.html","./src/app/features/common/components/forgotpassword/forgotpassword.component.ts","./src/app/features/common/components/forgotpassword/forgotpassword.component.html","./src/app/features/common/components/forgotusername/forgot-username/forgot-username.component.ts","./src/app/features/common/components/forgotusername/forgot-username/forgot-username.component.html","./src/app/features/common/components/forgotusername/forgotusername.component.ts","./src/app/features/common/components/forgotusername/forgotusername.component.html","./src/app/features/common/components/home/home.component.ts","./src/app/features/common/components/home/home.component.html","./src/app/features/common/components/howtos/howtos.component.ts","./src/app/features/common/components/howtos/howtos.component.html","./src/app/features/common/components/login/login.component.ts","./src/app/features/common/components/login/login.component.html","./src/app/features/common/components/logoutwarning/logoutwarning.component.ts","./src/app/features/common/components/logoutwarning/logoutwarning.component.html","./src/app/features/common/components/privacypolicy/privacypolicy.component.ts","./src/app/features/common/components/privacypolicy/privacypolicy.component.html","./src/app/features/common/components/register/register.component.ts","./src/app/features/common/components/register/register.component.html","./src/app/features/common/components/securitypolicy/securitypolicy.component.ts","./src/app/features/common/components/securitypolicy/securitypolicy.component.html","./src/app/features/common/components/termsandconditions/termsandconditions.component.ts","./src/app/features/common/components/termsandconditions/termsandconditions.component.html","./src/app/features/common/components/webaccessibility/webaccessibility.component.ts","./src/app/features/common/components/webaccessibility/webaccessibility.component.html","./src/app/features/employer/components/achd/information/achd-information.component.ts","./src/app/features/employer/components/achd/information/achd-information.component.html","./src/app/features/employer/components/achd/landing/achd.landing.component.ts","./src/app/features/employer/components/achd/landing/achd.landing.component.html","./src/app/features/employer/components/achd/payment/payment.component.ts","./src/app/features/employer/components/achd/payment/payment.component.html","./src/app/features/employer/components/achd/paymentaccount/paymentaccountlist.component.ts","./src/app/features/employer/components/achd/paymentaccount/paymentaccountlist.component.html","./src/app/features/employer/components/creditcard/landing/creditcard.landing.component.ts","./src/app/features/employer/components/creditcard/landing/creditcard.landing.component.html","./src/app/features/employer/components/creditcard/payment/creditcard.payment.component.ts","./src/app/features/employer/components/creditcard/payment/creditcard.payment.component.html","./src/app/features/employer/components/creditcard/payment/empsecurity-code-help/empsecurity-code-help.component.ts","./src/app/features/employer/components/creditcard/payment/empsecurity-code-help/empsecurity-code-help.component.html","./src/app/features/employer/components/creditcard/payment/interactive-credit-card-emp/interactive-credit-card-emp.component.ts","./src/app/features/employer/components/creditcard/payment/interactive-credit-card-emp/interactive-credit-card-emp.component.html","./src/app/features/employer/components/eft/createfile/createfile.component.ts","./src/app/features/employer/components/eft/createfile/createfile.component.html","./src/app/features/employer/components/eft/information/eft-information.component.ts","./src/app/features/employer/components/eft/information/eft-information.component.html","./src/app/features/employer/components/eft/landing/eft.landing.component.ts","./src/app/features/employer/components/eft/landing/eft.landing.component.html","./src/app/features/employer/components/home/home.component.ts","./src/app/features/employer/components/home/home.component.html","./src/app/features/employer/components/profile/employer-profile-account/employer-profile-account.component.ts","./src/app/features/employer/components/profile/employer-profile-account/employer-profile-account.component.html","./src/app/features/employer/components/profile/empprofile-security/empprofile-security.component.ts","./src/app/features/employer/components/profile/empprofile-security/empprofile-security.component.html","./src/app/features/employer/components/profile/profile.component.ts","./src/app/features/employer/components/profile/profile.component.html","./src/app/features/employer/components/register/employer.register.component.ts","./src/app/features/employer/components/register/employer.register.component.html","./src/app/features/employer/components/register/secondary-registration/empsecondary-registration/empsecondary-registration.component.ts","./src/app/features/employer/components/register/secondary-registration/empsecondary-registration/empsecondary-registration.component.html","./src/app/features/employer/components/register/secondary-registration/secondary-registration.component.ts","./src/app/features/employer/components/register/secondary-registration/secondary-registration.component.html","./src/app/features/employer/employer-routing.module.ts","./src/app/features/employer/employer.module.component.ts","./src/app/features/employer/employer.module.component.html","./src/app/features/employer/employer.module.ts","./src/app/features/employer/services/employer.service.ts","./src/app/features/layout/base-layout.module.ts","./src/app/features/layout/footer/footer.component.ts","./src/app/features/layout/footer/footer.component.html","./src/app/features/layout/global-nav/global-nav.component.ts","./src/app/features/layout/global-nav/global-nav.component.html","./src/app/features/layout/page-content/page-content.component.ts","./src/app/features/layout/page-content/page-content.component.html","./src/app/helpers/components/error-dialog/error-dialog.component.ts","./src/app/helpers/components/error-dialog/error-dialog.component.html","./src/app/helpers/interceptors/busy.interceptor.ts","./src/app/helpers/interceptors/request.interceptor.ts","./src/app/helpers/interceptors/token.interceptor.ts","./src/app/helpers/services/autologout.service.ts","./src/app/helpers/services/credit-card-payment.service.ts","./src/app/helpers/services/universal.device.detector.service.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$","ignored|C:\\agent1\\_work\\10\\s\\epay-web-ok\\node_modules\\xlsx|crypto","ignored|C:\\agent1\\_work\\10\\s\\epay-web-ok\\node_modules\\xlsx|fs","ignored|C:\\agent1\\_work\\10\\s\\epay-web-ok\\node_modules\\xlsx|stream"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './features/common/components/home/home.component';\r\nimport { LogoutWarningComponent } from './features/common/components/logoutwarning/logoutwarning.component';\r\nimport { ChangePasswordComponent } from './features/common/components/changepassword/changepassword.component';\r\nimport { PrivacyPolicyComponent } from './features/common/components/privacypolicy/privacypolicy.component';\r\nimport { FaqComponent } from './features/common/components/faq/faq.component';\r\nimport { SecurityPolicyComponent } from './features/common/components/securitypolicy/securitypolicy.component';\r\nimport { ContactComponent } from './features/common/components/contact/contact.component';\r\nimport { TermsAndConditionsComponent } from './features/common/components/termsandconditions/termsandconditions.component';\r\nimport { WebAccessibilityComponent } from './features/common/components/webaccessibility/webaccessibility.component';\r\nimport { HowTosComponent } from './features/common/components/howtos/howtos.component';\r\nimport { RegisterComponent } from './features/common/components/register/register.component';\r\nimport { CreditCardComponent } from './features/common/components/creditcard/creditcard.component';\r\nimport { LoginComponent } from './features/common/components/login/login.component';\r\nimport { ForgotPasswordComponent } from './features/common/components/forgotpassword/forgotpassword.component';\r\nimport { ForgotUsernameComponent } from './features/common/components/forgotusername/forgotusername.component';\r\nimport { CreditCardSuccessComponent } from '../app/features/common/components/creditcard/creditcard-success/creditcard-success.component';\r\nimport { CreditCardCancelComponent } from '../app/features/common/components/creditcard/creditcard-cancel/creditcard-cancel.component';\r\nimport { EmployerFAQComponent } from './features/common/components/faq/employer-faq/employer-faq.component';\r\nimport { NcpFAQComponent } from './features/common/components/faq/ncp-faq/ncp-faq.component';\r\n\r\nconst routes: Routes = [\r\n  { path: 'home', component: HomeComponent },\r\n  {\r\n    path: 'employer',\r\n    loadChildren: () =>\r\n      import('./features/employer/employer.module').then(\r\n        (m) => m.EmployerModule\r\n      ),\r\n  },\r\n  {\r\n    path: 'ncp',\r\n    loadChildren: () =>\r\n      import('./features/ncp/ncp.module').then((m) => m.NcpModule),\r\n  },\r\n  { path: 'login', component: LoginComponent },\r\n  { path: 'forgotpassword', component: ForgotPasswordComponent },\r\n  { path: 'forgotusername', component: ForgotUsernameComponent },\r\n  { path: 'register', component: RegisterComponent },\r\n  { path: 'creditcard', component: CreditCardComponent },\r\n  { path: 'creditcardsuccess', component: CreditCardSuccessComponent },\r\n  { path: 'creditcardcancel', component: CreditCardCancelComponent },\r\n  { path: 'logoutwarning', component: LogoutWarningComponent },\r\n  { path: 'changepassword', component: ChangePasswordComponent },\r\n  { path: 'privacypolicy', component: PrivacyPolicyComponent },\r\n  { path: 'securitypolicy', component: SecurityPolicyComponent },\r\n  { path: 'contact', component: ContactComponent },\r\n  { path: 'demo', component: HowTosComponent },\r\n  { path: 'termsandconditions', component: TermsAndConditionsComponent },\r\n  { path: 'webaccessibility', component: WebAccessibilityComponent },\r\n  { path: 'faq', component: FaqComponent },\r\n  { path: 'employerFAQ', component: EmployerFAQComponent },\r\n  { path: 'ncpFAQ', component: NcpFAQComponent },\r\n  { path: '', redirectTo: 'home', pathMatch: 'full' },\r\n  { path: '**', component: HomeComponent },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forRoot(routes, { onSameUrlNavigation: 'reload' })],\r\n  exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BREAKPOINTS, BusyService } from 'epay-library';\r\nimport { AppLoadService } from '../app/appload/service/appload.service';\r\n\r\nimport { AuthService } from 'epay-library';\r\nimport { ErrorHandlerService } from 'epay-library';\r\nimport { ViewportService, CommonSettings } from 'epay-library';\r\nimport { AutoLogoutService } from './helpers/services/autologout.service';\r\nimport { observeOn } from 'rxjs/operators';\r\nimport { asapScheduler } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'app-root',\r\n  templateUrl: './app.component.html'\r\n})\r\n\r\nexport class AppComponent implements OnInit, OnDestroy{\r\n  title = CommonSettings.Title;\r\n  baseurl = CommonSettings.BaseApi;\r\n\r\n  websiteMessage: any;\r\n  isLoggedIn = false;\r\n  isMobile = false;\r\n  username = '';\r\n  usertype = '';\r\n  busy = false;\r\n  message = '';\r\n  errorMessage = '';\r\n\r\n  constructor(\r\n    private authservice: AuthService,\r\n    private router: Router,\r\n    private appLoadService: AppLoadService,\r\n    private busyService: BusyService,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    public viewpointService: ViewportService,\r\n    public autologoutService: AutoLogoutService) {\r\n      busyService.busyState$\r\n      // asapScheduler ensures this is async; remove this and look in console to see nasty error without this\r\n      .pipe(observeOn(asapScheduler))\r\n      .subscribe((bs) => {\r\n        this.busy = bs.isBusy;\r\n        this.message = bs.message ? bs.message : '';\r\n      });\r\n    }\r\n\r\n  ngOnInit() {\r\n    this.viewpointService.IsMobile.subscribe(\r\n      (ismobile: boolean) => this.isMobile = ismobile\r\n    );\r\n    this.router.routeReuseStrategy.shouldReuseRoute = function () {\r\n      return false;\r\n    };\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.authservice.logout(this.baseurl);\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n","<div id=\"page\" class=\"page page-tn\">\r\n  <div class=\"main\">\r\n    <epay-global-nav [baseurl]=\"baseurl\"\r\n      [isMobile]=\"isMobile\">\r\n    </epay-global-nav>\r\n    <div class=\"spinner-overlay\" [hidden]=\"!busy\">\r\n      <div class=\"spinner-center\">\r\n        <mat-spinner diameter=\"85\">\r\n        </mat-spinner>\r\n        {{message}}\r\n      </div>\r\n    </div>\r\n    <div [hidden]=\"busy\" class=\"masterpanel\">\r\n      <router-outlet>\r\n      </router-outlet>\r\n    </div>\r\n  </div>\r\n  <epay-footer></epay-footer>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { CommonEpayModule } from './features/common/common.module';\r\nimport { EmployerModule } from './features/employer/employer.module';\r\nimport { DatePipe } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { TokenInterceptor } from './helpers/interceptors/token.interceptor';\r\nimport { BusyInterceptor } from './helpers/interceptors/busy.interceptor';\r\nimport { UniversalDeviceDetectorService } from './helpers/services/universal.device.detector.service';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { BaseLayoutModule } from './features/layout/base-layout.module';\r\nimport { ApploadModule } from './appload/module/appload.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { HomeComponent } from './features/common/components/home/home.component';\r\nimport { FooterComponent } from './features/layout/footer/footer.component';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { AngularMyDatePickerModule } from 'angular-mydatepicker';\r\nimport { ngxInputRegulateModule } from 'ngx-input-regulate';\r\nimport { RequestInterceptor } from './helpers/interceptors/request.interceptor';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport { ErrorDialogComponent } from './helpers/components/error-dialog/error-dialog.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    AppComponent,\r\n    HomeComponent,\r\n    FooterComponent,\r\n    ErrorDialogComponent\r\n  ],\r\n  imports: [\r\n    ApploadModule,\r\n    AppRoutingModule,\r\n    BaseLayoutModule,\r\n    BrowserAnimationsModule,\r\n    BrowserModule,\r\n    CommonEpayModule,\r\n    EmployerModule,\r\n    HttpClientModule,\r\n    MatProgressSpinnerModule,\r\n    MatDialogModule,\r\n    MatSnackBarModule,\r\n    MatExpansionModule,\r\n    MatSelectModule,\r\n    MatAutocompleteModule,\r\n    NgbModule,\r\n    RouterModule,\r\n    AngularMyDatePickerModule,\r\n    ngxInputRegulateModule,\r\n    \r\n  ],\r\n  providers: [\r\n    DatePipe,\r\n    { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true },\r\n    { provide: HTTP_INTERCEPTORS, useClass: BusyInterceptor, multi: true },\r\n    { provide: HTTP_INTERCEPTORS, useClass: RequestInterceptor, multi: true },\r\n    {\r\n      provide: DeviceDetectorService,\r\n      useClass: UniversalDeviceDetectorService,\r\n    },\r\n  ],\r\n  bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { AppLoadService } from '../service/appload.service';\r\n\r\n// export function getSettings(apploadservice: AppLoadService) {\r\n//   return () => apploadservice.getParameterSettings();\r\n// }\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [HttpClientModule, CommonModule],\r\n  providers: [\r\n    {\r\n      provide: APP_INITIALIZER,\r\n      deps: [AppLoadService],\r\n      multi: true,\r\n      useFactory: (appLoadService: AppLoadService) => {\r\n        return () => {\r\n          return appLoadService.getConfigSettings().then(() => {\r\n            return appLoadService.getParameterSettings();\r\n          });\r\n        };\r\n      },\r\n    },\r\n  ],\r\n})\r\nexport class ApploadModule {}\r\n","import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { CommonSettings } from 'epay-library';\r\nimport { lastValueFrom, Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AppLoadService {\r\n  constructor(private httpClient: HttpClient) {}\r\n\r\n  async getParameterSettings(): Promise<any> {\r\n    let apiCmd = 'Parameters';\r\n    let gateway = 'EPayGateway/EPay/api/v1/';\r\n\r\n    const obsParameterValue = this.httpClient\r\n      .get<any>(CommonSettings.BaseApi + gateway + apiCmd, {\r\n        headers: new HttpHeaders({\r\n          Client: CommonSettings.ClientID,\r\n        }),\r\n      })\r\n      .pipe(\r\n        map((parameterValues: any) => {\r\n          console.log('Loading settings....');\r\n          CommonSettings.NumOfDaysForPaymentHistory =\r\n            parameterValues.EPay_NumOfDaysForPaymentHistory;\r\n          CommonSettings.NumOfDaysOutForCalendar =\r\n            parameterValues.EPay_NumOfDaysOutForCalendar;\r\n          CommonSettings.DaysToShowEFTFileHistory =\r\n            parameterValues.EPay_DaysToShowEFTFileHistory;\r\n          CommonSettings.Timezone = parameterValues.EPay_ClientTimeZone;\r\n          CommonSettings.EmpWebsiteCode = parameterValues.EPay_EmpWebsiteCode;\r\n          CommonSettings.AppInsightsConnectionString =\r\n            parameterValues.EPay_AppInsightConnectionString;\r\n          CommonSettings.AppInsightsEnableAutoRouteTracking =\r\n            parameterValues.EPay_AppInsightEnableAutoRouteTracking;\r\n          CommonSettings.CreditCardVendorID =\r\n            parameterValues.EPay_CreditCardVendorID;\r\n          CommonSettings.FortPointAccessToken =\r\n            parameterValues.EPay_FortPointAccessToken;\r\n          CommonSettings.FortPointCreditCardUrl =\r\n            parameterValues.EPay_FortPointCreditCardUrl;\r\n          CommonSettings.FortPointStateCode =\r\n            parameterValues.EPay_FortPointStateCode;\r\n          CommonSettings.ChatUrl = parameterValues.EPay_Chat_url;\r\n          return parameterValues;\r\n        }),\r\n        catchError(this.handleError)\r\n      );\r\n\r\n    return await lastValueFrom(obsParameterValue);\r\n  }\r\n\r\n  async getConfigSettings(): Promise<any> {\r\n    //Get settings from config file\r\n    const configSettings = this.httpClient\r\n      .get<any>('/assets/config/config.json')\r\n      .pipe(\r\n        map((configs: any) => {\r\n          CommonSettings.Title = configs.title;\r\n          CommonSettings.BaseApi = configs.baseApi;\r\n          CommonSettings.TokenApi = configs.tokenApi;\r\n          CommonSettings.ClientID = configs.clientID.toString();\r\n          CommonSettings.ClientName = configs.clientName;\r\n          CommonSettings.StateName = configs.stateName;\r\n          CommonSettings.TimeOutInMins = configs.timeoutInMins.toString();\r\n          CommonSettings.Environment = configs.environment;\r\n\r\n          CommonSettings.CanCreateNewEmployer = this.toBoolean(configs.canCreateNewEmployer);\r\n          CommonSettings.UseEmailForLogin = this.toBoolean(configs.useEmailForLogin);\r\n          CommonSettings.CanRegisterWithClosedCase =\r\n          this.toBoolean(configs.canRegisterWithClosedCase);\r\n          CommonSettings.CanMakePaymentsToClosedCases =\r\n          this.toBoolean(configs.canMakePaymentsToClosedCases);\r\n          CommonSettings.EmployerUseCaseNumberForPayments =\r\n          this.toBoolean(configs.employerUseCaseNumberForPayments);\r\n          CommonSettings.NCPUseCaseNumberForPayments =\r\n          this.toBoolean(configs.ncpUseCaseNumberForPayment);\r\n          CommonSettings.SaveEmployeesForPayments =\r\n          this.toBoolean(configs.saveEmployeesForPayments);\r\n          CommonSettings.AllowEINSearch = this.toBoolean(configs.allowEINSearch);\r\n          CommonSettings.CanInactivateNCPAccount =\r\n          this.toBoolean(configs.canInactivateNCPAccount);\r\n\r\n          return configs;\r\n        }),\r\n        catchError(this.handleError)\r\n      );\r\n\r\n    return await lastValueFrom(configSettings);\r\n  }\r\n\r\n  toBoolean(value: string): boolean {\r\n    if (value === 'true')\r\n      return true;\r\n    else\r\n      return false;\r\n  }\r\n\r\n  private handleError(err: HttpErrorResponse) {\r\n    let errorMessage = '';\r\n    if (err.error instanceof ErrorEvent) {\r\n      errorMessage = `An Error Occurred: ${err.error.message}`;\r\n    } else {\r\n      errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n      console.log('Error Occurred: ' + errorMessage);\r\n    }\r\n    return throwError(() => err);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangePasswordComponent } from './components/changepassword/changepassword.component';\r\nimport { ContactComponent } from './components/contact/contact.component';\r\nimport { CreditCardComponent } from './components/creditcard/creditcard.component';\r\nimport { FaqComponent } from './components/faq/faq.component';\r\nimport { HowTosComponent } from './components/howtos/howtos.component';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ForgotPasswordComponent } from './components/forgotpassword/forgotpassword.component';\r\nimport { ForgotUsernameComponent } from './components/forgotusername/forgotusername.component';\r\nimport { PrivacyPolicyComponent } from './components/privacypolicy/privacypolicy.component';\r\nimport { RegisterComponent } from './components/register/register.component';\r\nimport { SecurityPolicyComponent } from './components/securitypolicy/securitypolicy.component';\r\nimport { TermsAndConditionsComponent } from './components/termsandconditions/termsandconditions.component';\r\nimport { WebAccessibilityComponent } from './components/webaccessibility/webaccessibility.component';\r\nimport { CreditCardSuccessComponent } from './components/creditcard/creditcard-success/creditcard-success.component';\r\nimport { CreditCardCancelComponent } from './components/creditcard/creditcard-cancel/creditcard-cancel.component';\r\nimport { LogoutWarningComponent } from './components/logoutwarning/logoutwarning.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { BaseLayoutModule } from '../layout/base-layout.module';\r\nimport { CommonLibraryModule, HelperLibraryModule, MaterialLibraryModule } from 'epay-library';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { EmployerFAQComponent } from './components/faq/employer-faq/employer-faq.component';\r\nimport { NcpFAQComponent } from './components/faq/ncp-faq/ncp-faq.component';\r\nimport { PasswordChangeComponent } from './components/changepassword/password-change/password-change.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { ngxInputRegulateModule } from 'ngx-input-regulate';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CommonForgotPasswordComponent } from './components/forgotpassword/forgot-password/forgot-password.component';\r\nimport { CommonForgotUsernameComponent } from './components/forgotusername/forgot-username/forgot-username.component';\r\nimport { CreditCardSuccessCommonComponent } from './components/creditcard/credit-card-success-common/credit-card-success-common.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    ChangePasswordComponent,\r\n    ContactComponent,\r\n    CreditCardComponent,\r\n    FaqComponent,\r\n    HowTosComponent,\r\n    LoginComponent,\r\n    PrivacyPolicyComponent,\r\n    RegisterComponent,\r\n    SecurityPolicyComponent,\r\n    TermsAndConditionsComponent,\r\n    WebAccessibilityComponent,\r\n    CreditCardSuccessComponent,\r\n    CreditCardCancelComponent,\r\n    LogoutWarningComponent,\r\n    ForgotPasswordComponent,\r\n    ForgotUsernameComponent,\r\n    EmployerFAQComponent,\r\n    NcpFAQComponent,\r\n    PasswordChangeComponent,\r\n    CommonForgotPasswordComponent,\r\n    CommonForgotUsernameComponent,\r\n    CreditCardSuccessCommonComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    RouterModule,\r\n    BaseLayoutModule,\r\n    CommonLibraryModule,\r\n    MatExpansionModule,\r\n    MatCardModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    HelperLibraryModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    MatIconModule,\r\n    MaterialLibraryModule,\r\n    ngxInputRegulateModule\r\n  ],\r\n  exports: [\r\n    ChangePasswordComponent,\r\n    ContactComponent,\r\n    CreditCardComponent,\r\n    FaqComponent,\r\n    HowTosComponent,\r\n    LoginComponent,\r\n    PrivacyPolicyComponent,\r\n    RegisterComponent,\r\n    SecurityPolicyComponent,\r\n    TermsAndConditionsComponent,\r\n    WebAccessibilityComponent,\r\n    CreditCardSuccessComponent,\r\n    CreditCardCancelComponent,\r\n    LogoutWarningComponent,\r\n  ],\r\n})\r\nexport class CommonEpayModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-changepassword',\r\n  templateUrl: './changepassword.component.html',\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n  pagetitle = 'Change Password';\r\n  baseurl: string;\r\n  constructor() {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <!-- <epay-lib-common-changepassword\r\n    [baseurl]=\"baseurl\">\r\n  </epay-lib-common-changepassword> -->\r\n\r\n  <password-change [baseurl]=\"baseurl\"></password-change>\r\n</epay-page-content>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroupDirective, NgForm, FormBuilder, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ErrorHandlerService, RegisterLibraryService, AuthService } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { error } from '@angular/compiler/src/util';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nfunction passwordMatcher(\r\n  c: AbstractControl\r\n): { [key: string]: boolean } | null {\r\n  const password1Ctrl = c.get('newpassword1');\r\n  const password2Ctrl = c.get('newpassword2');\r\n  if (password1Ctrl === null || password2Ctrl === null) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.pristine || password2Ctrl.pristine) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.value === password2Ctrl.value) {\r\n    return null;\r\n  }\r\n  return { doNotMatch: true };\r\n}\r\n\r\n/** Error when the parent is invalid */\r\nclass CrossFieldErrorMatcher implements ErrorStateMatcher {\r\n  isErrorState(\r\n    control: FormControl | null,\r\n    form: FormGroupDirective | NgForm | null\r\n  ): boolean {\r\n    if (control) {\r\n      return (control.dirty || control.touched) && control.parent!.invalid;\r\n    }\r\n    return false;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'password-change',\r\n  templateUrl: './password-change.component.html'\r\n})\r\nexport class PasswordChangeComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n\r\n  errorMatcher = new CrossFieldErrorMatcher();\r\n  passwordFrmGp: any;\r\n  currentPasswordHide = true;\r\n  passwordHide = true;\r\n  passwordConfirmHide = true;\r\n  errorMessage = '';\r\n  loginPattern =\r\n    /(?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*/;\r\n\r\n  passwordPattern = /(?=^[A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\d]{8,12}$)(?=(.*[A-Za-z]){6})(?=(.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]){1})(?=(.*\\d){2})^.*/;\r\n\r\n  oldPasswordError = false;\r\n\r\n  openConfirmation = false;\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationNumber = '';\r\n  goToPrimaryUrl = '';\r\n  goToPrimary = '';\r\n  restart = false;\r\n  passwordHint =\r\n    'Must contain at least 6 letters, 2 numbers, and at least 1 special character with a maximum of 12 characters in length.';\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private registerService: RegisterLibraryService,\r\n    private authservice: AuthService,\r\n    public snackbar: MatSnackBar\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.loadFormGroups();\r\n  }\r\n\r\n  toggleCurrentPasswordHide() {\r\n    this.currentPasswordHide = !this.currentPasswordHide;\r\n  }\r\n\r\n  togglePasswordHide() {\r\n    this.passwordHide = !this.passwordHide;\r\n  }\r\n\r\n  toggleConfirmPasswordHide() {\r\n    this.passwordConfirmHide = !this.passwordConfirmHide;\r\n  }\r\n\r\n  changePassword() {\r\n    const updatepassword = {\r\n      oldPassword: this.passwordFrmGp.get('currentpassword').value,\r\n      newPassword: this.passwordFrmGp.get('newpassword1').value,\r\n      confirmNewPassword: this.passwordFrmGp.get('newpassword2').value,\r\n    };\r\n    this.registerService.resetPassword(this.baseurl, updatepassword).subscribe({\r\n      next: (result: any) => {\r\n        this.onSaveComplete(result.confirmationNumber);\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  onSaveComplete(confirmationNum: string) {\r\n    this.passwordFrmGp.reset();\r\n    this.confirmationTitle = 'Success';\r\n    this.confirmationMessage = `Your password has been changed. Please click \"Log Out\" below to login with new password.`;\r\n    this.confirmationNumber = confirmationNum;\r\n    this.goToPrimaryUrl = '/login';\r\n    this.goToPrimary = 'Log Out';\r\n    this.restart = true;\r\n    this.openConfirmation = true;\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.passwordFrmGp = this.formbuilder.group(\r\n      {\r\n        currentpassword: ['', Validators.required],\r\n        newpassword1: [\r\n          '',\r\n          [\r\n            Validators.required,\r\n            Validators.minLength(8),\r\n            Validators.maxLength(12),\r\n            Validators.pattern(this.passwordPattern),\r\n          ],\r\n        ],\r\n        newpassword2: ['', Validators.required],\r\n      },\r\n      { validator: passwordMatcher }\r\n    );\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n\r\n","<div class=\"container m--full-bleed mt-2\">\r\n    <div class=\"row m--full-bleed justify-content-center\">\r\n      <div class=\"col-12 flex-input-col\">\r\n        <div *ngIf=\"!openConfirmation\" class=\"form-display-card\">\r\n          <form [formGroup]=\"passwordFrmGp\" (ngSubmit)=\"changePassword()\">\r\n            <mat-card class=\"max-w max-gs card-container\">\r\n              <mat-card-header>\r\n                <mat-card-title>Change Password is Required</mat-card-title>\r\n              </mat-card-header>\r\n  \r\n              <div class=\"row\">\r\n                <div class=\"flex-input-col col-lg-6\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Current Password\" [type]=\"currentPasswordHide ? 'password' : 'text'\"\r\n                      formControlName=\"currentpassword\">\r\n                    <mat-icon matSuffix (click)=\"toggleCurrentPasswordHide()\">{{currentPasswordHide ?\r\n                      'visibility_off'\r\n                      :\r\n                      'visibility'}}\r\n                    </mat-icon>\r\n                    <mat-error *ngIf=\"passwordFrmGp.get('currentpassword').hasError('required')\">Required.</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n              </div>\r\n  \r\n  \r\n              <div class=\"flex-input-col\">\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"New Password\" [type]=\"passwordHide ? 'password' : 'text'\"\r\n                    formControlName=\"newpassword1\">\r\n                  <mat-hint>{{passwordHint}}</mat-hint>\r\n                  <mat-icon matSuffix (click)=\"togglePasswordHide()\">{{passwordHide ? 'visibility_off' :\r\n                    'visibility'}}\r\n                  </mat-icon>\r\n                  <mat-error *ngIf=\"passwordFrmGp.get('newpassword1').hasError('pattern')\">\r\n                    Must contain at least 6 letters, 2 numbers, and at least 1 special character with a maximum of 12 characters in length.\r\n                  </mat-error>\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <input matInput [errorStateMatcher]=\"errorMatcher\" placeholder=\"Confirm New Password\"\r\n                    [type]=\"passwordConfirmHide ? 'password' : 'text'\" formControlName=\"newpassword2\">\r\n                  <mat-icon matSuffix (click)=\"toggleConfirmPasswordHide()\">{{passwordConfirmHide ?\r\n                    'visibility_off' :\r\n                    'visibility'}}\r\n                  </mat-icon>\r\n                  <mat-error *ngIf=\"passwordFrmGp.hasError('doNotMatch')\">\r\n                    Passwords do not match.\r\n                  </mat-error>\r\n                </mat-form-field>\r\n              </div>\r\n  \r\n              <div>\r\n                <button [disabled]=\"passwordFrmGp.invalid\" class=\"btn btn-submit mt-4\" mat-raised-button\r\n                  type=\"submit\">Save</button>\r\n              </div>\r\n            </mat-card>\r\n          </form>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  \r\n  \r\n    <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [baseurl]=\"baseurl\" [confirmationTitle]=\"confirmationTitle\"\r\n      [confirmationMessage]=\"confirmationMessage\" [confirmationNumber]=\"confirmationNumber\" [restart]=\"restart\"\r\n      [goToPrimary]=\"goToPrimary\" [goToPrimaryUrl]=\"goToPrimaryUrl\">\r\n    </epay-lib-common-confirmation>","import { Component, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-contact',\r\n  templateUrl: './contact.component.html',\r\n})\r\nexport class ContactComponent implements OnInit {\r\n  pagetitle = 'Contact Information';\r\n  chaturl = '';\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n    this.chaturl = CommonSettings.ChatUrl;\r\n  }\r\n\r\n  openChat() {\r\n    window.open(this.chaturl, '', 'width=510, height=900');\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"box-panel shadow max-w max-gs\">\r\n    <div class=\"m--pa4\">\r\n      <h2 class=\"mb-5\">Contact Us</h2>\r\n      <h3>Address</h3>\r\n      Oklahoma Centralized Support Registry <br>\r\n      P.O. Box 268809 <br>\r\n      Oklahoma City, OK 73126-8809 <br>\r\n      <br>\r\n      <h3>Telephone</h3>\r\n      1-855-363-1754\r\n      <div style=\"font-size: smaller;\"><i>Note: If you are calling from a cell phone and have free long distance, \r\n        please call the local number instead of the toll free number.</i></div>\r\n      <br>\r\n      <h3>E-mail</h3>\r\n      <address>\r\n        <a href=\"mailto:okecsupport@smimail.net\">\r\n          <u>okecsupport@smimail.net</u>\r\n        </a>\r\n      </address>\r\n      <div style=\"font-size: smaller;\"><i>Note: All questions related to a child support case should be directed to CARE at 1-800-522-2922.</i>\r\n      </div>\r\n      <br>\r\n      <!-- <h3>Live Chat</h3>\r\n      <div>\r\n        <span>\r\n          <img (click)=\"openChat()\" src=\"../../../../../assets/images/chaticonmid.png\">\r\n        </span>\r\n      </div> -->\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CreditCardService, ErrorHandlerService } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'credit-card-success-common',\r\n  templateUrl: './credit-card-success-common.component.html'\r\n})\r\nexport class CreditCardSuccessCommonComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n  @Input() encryptedTransactionId = '';\r\n  @Input() clientId = '';\r\n\r\n  paymentDate = '';\r\n  empName = '';\r\n  confirmationId = '';\r\n  amount = 0;\r\n  processFee = 0;\r\n  totalAmount = 0;\r\n  transactionId = '';\r\n  payorType = '';\r\n\r\n  errorMessage = '';\r\n\r\n  constructor(\r\n    private router: Router,\r\n    private creditcardservice: CreditCardService,\r\n    private errorhandleservice: ErrorHandlerService\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.creditcardservice\r\n      .getCreditCardAttemptLogDetails(\r\n        this.baseurl,\r\n        this.encryptedTransactionId,\r\n        this.clientId\r\n      )\r\n      .subscribe({\r\n        next: (response: any) => {\r\n          this.paymentDate = response[0].logEntryTime;\r\n          this.empName = response[0].employerName;\r\n          this.confirmationId = response[0].confirmationNumber;\r\n          this.amount = +response[0].paymentAmount;\r\n          this.processFee = +response[0].convenienceAmount;\r\n          this.totalAmount = +response[0].totalPaymentAmount;\r\n          this.transactionId = response[0].transactionNumber;\r\n          this.payorType = response[0].payorType;\r\n        },\r\n        error: (error: any) => {\r\n          console.log(error);\r\n          this.logError(error);\r\n          this.handleError(error.staus);\r\n        },\r\n      });\r\n  }\r\n\r\n  Print() {\r\n    window.print();\r\n  }\r\n\r\n  GoToHomePage() {\r\n    this.router.navigateByUrl('home');\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorhandleservice.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    this.errorhandleservice.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n","<div class=\"container m--full-bleed\">\r\n    <div class=\"form-display-card\">\r\n      <mat-card class='mat-card-display mb-5'>\r\n        <mat-card-header>\r\n          <mat-card-title class=\"justify-content-right\">\r\n            <h2 class=\"mat-card-title align-items-start\">\r\n              <span class=\"fa fa-credit-card fa-md-black mr-2\"></span> Credit Card Payment Successful\r\n            </h2>\r\n          </mat-card-title>\r\n        </mat-card-header>\r\n        <mat-card-content>\r\n          <div class=\"section-to-print\">\r\n            <p class=\"mb-5\">Your payment has been successfully processed and a receipt has been sent to the email\r\n              address you provided.</p>\r\n            <div class=\"row m--full-bleed\">\r\n              <!-- Employer, if applicable -->\r\n              <div *ngIf=\"payorType === 'EMP'\" class=\"col-12\">\r\n                <dl class=\"account-details-sum\">\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Employer Name</dt>\r\n                    <dd class=\"account-dt-info\">{{empName}}</dd>\r\n                  </div>\r\n                </dl>\r\n              </div>\r\n              <div class=\"col-12 col-md-6\">\r\n                <!-- overview-->\r\n                <dl class=\"account-details-sum\">\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Date</dt>\r\n                    <dd class=\"account-dt-info\">{{paymentDate | validDate}}</dd>\r\n                  </div>\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Confirmation Number</dt>\r\n                    <dd class=\"account-dt-info\">{{confirmationId}}</dd>\r\n                  </div>\r\n                </dl>\r\n              </div>\r\n              <div class=\"col-12 col-md-6\">\r\n                <!-- payment details -->\r\n                <dl class=\"account-details-sum\">\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Amount</dt>\r\n                    <dd class=\"account-dt-info\">{{amount | currency}}</dd>\r\n                  </div>\r\n                  <!-- <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Service Fee</dt>\r\n                    <dd class=\"account-dt-info\">{{processFee | currency}}</dd>\r\n                  </div> -->\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Total Amount</dt>\r\n                    <dd class=\"account-dt-info\">{{totalAmount | currency}}</dd>\r\n                  </div>\r\n                </dl>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </mat-card-content>\r\n      </mat-card>\r\n      <div class=\"t-alignC pt-2 pb-2\">\r\n        <button class=\"btn\" (click)=\"GoToHomePage()\">Home</button>\r\n        <button class=\"btn\" (click)=Print()>Print</button>\r\n      </div>\r\n    </div>\r\n  </div>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-creditcard-cancel',\r\n  templateUrl: './creditcard-cancel.component.html'\r\n})\r\nexport class CreditCardCancelComponent implements OnInit {\r\n  pagetitle = \"Credit Card Payment Cancelled\";\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main\" id=\"page-content-main\">\r\n    <div class=\"row justify-content-center\">\r\n      <mat-card class=\"col-5 mt-3\">\r\n        <mat-card-content>\r\n          <div class=\"row justify-content-center\">\r\n            <p>Your payment attempt has been cancelled. The information was not saved.</p>\r\n            <div class=\"next-links mb-3\">\r\n              <a class=\"btn-link mt-3\" [routerLink]=\"['/login']\">Login</a>\r\n              <a class=\"btn-link mt-3\" [routerLink]=\"['/home']\">Home</a>\r\n            </div>\r\n          </div>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-creditcard-success',\r\n  templateUrl: './creditcard-success.component.html'\r\n})\r\nexport class CreditCardSuccessComponent implements OnInit {\r\n  pagetitle = \"Credit Card Payment Success\";\r\n  encryptedTransactionId: string;\r\n  baseurl = CommonSettings.BaseApi;\r\n  clientId = CommonSettings.ClientID;\r\n\r\n  constructor(private route: ActivatedRoute) {\r\n    this.encryptedTransactionId = '';\r\n   }\r\n\r\n  ngOnInit(): void {\r\n    this.route.queryParams.subscribe(params => {\r\n      this.encryptedTransactionId = params['tid'];\r\n    });\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gs\" id=\"page-content-main\">\r\n    <!-- <epay-lib-common-creditcard-success [encryptedTransactionId]=\"encryptedTransactionId\" [baseurl]=\"baseurl\"\r\n      [clientId]=\"clientId\">\r\n    </epay-lib-common-creditcard-success> -->\r\n\r\n    <credit-card-success-common [encryptedTransactionId]=\"encryptedTransactionId\" [baseurl]=\"baseurl\"\r\n    [clientId]=\"clientId\"></credit-card-success-common>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-creditcard',\r\n  templateUrl: './creditcard.component.html'\r\n})\r\nexport class CreditCardComponent implements OnInit {\r\n  pagetitle = \"New Credit Card Payment\";\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow t-alignC max-w max-gs\" id=\"page-content-main\">\r\n    <h2 class=\"mb-5\">Select Your Account Type</h2>\r\n    <div class=\"account-link-options\">\r\n      <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"['/ncp/creditcard']\">Noncustodial Parent</a>\r\n      <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"['/login']\" [state]=\"{ creditCardMessage: 'To make a credit card payment, please login and select Credit Card Payment in the drop-down menu.' }\">Employer</a>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'app-employer-faq',\r\n  templateUrl: './employer-faq.component.html'\r\n})\r\nexport class EmployerFAQComponent implements OnInit {\r\n  chaturl: string ='';\r\n\r\n  constructor() {\r\n    this.chaturl = CommonSettings.ChatUrl;\r\n   }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  openChat() {\r\n    window.open(this.chaturl, '', 'width=510, height=900');\r\n  }\r\n}\r\n","<div class=\"container \" id=\"page-content-main\">\r\n  <div class=\"mt-4\">\r\n    <div class=\"\">\r\n      <mat-card class=\"mb-3\" style=\"border-radius: 10px\">\r\n        <mat-card-content>\r\n          <a [routerLink]=\"['/home']\" class=\"ts-l tw-b\">\r\n              <span class=\"fa fa-chevron-circle-left fa-sm-blue\" matTooltip=\"GO BACK\"\r\n              matTooltipClass=\"tooltip-md\">\r\n            </span>\r\n            Back\r\n          </a>\r\n          <br><br>\r\n          <div class=\"container-fluid\">\r\n            <h2>Employer FAQ</h2>\r\n            <p>\r\n            <div class=\"accordion accordion-flush\" id=\"accordionFlushExample\">\r\n\r\n            <!-------ACH CREDIT ------------->\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingOne\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseOne\" aria-expanded=\"false\" aria-controls=\"flush-collapseOne\"\r\n                    style=\"font-weight: bold;\">\r\n                    ACH Credit (EFT/ EDI)\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseOne\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingOne\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How can I obtain information on the EFT/ EDI process?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Download an information packet at this web site or contact the Oklahoma Employer Services Center at 1-866-553-2368.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I recently arranged for a prenote transmission, when can I stop mailing in checks?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Five business days are required to validate bank account information that has not been\r\n                          previously verified. You should continue to remit a check for your employees’\r\n                          child support withholdings during this five business day period. You will be\r\n                          notified if the prenote is unsuccessful, at which point you must continue to\r\n                          remit a check until your bank account information has been successfully verified.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What should I do if the wrong amount is withheld from an employee’s paycheck?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Contact OKESC at 1-866-553-2368.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I transmit a debit transaction (reversal) if there is a mistake?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          No, debit transactions are not allowed.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            <!-------ACH DEBIT---------------------->\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingTwo\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseTwo\" aria-expanded=\"false\" aria-controls=\"flush-collapseTwo\"\r\n                    style=\"font-weight: bold;\">\r\n                    ACH Debit\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseTwo\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingTwo\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                     <!------REGISTRATION and PASSWORDS------------------------------------------------------------------------------------------>\r\n                     <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Questions about Registering and Scheduling a Bank Draft\r\n                        </mat-expansion-panel-header>\r\n                         <!------------------------------------------------------------------------------------------------>\r\n                         <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                What should I do to have child support payments automatically withdrawn from my bank account?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Click Employer at this web site, register an account, and schedule a payment.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                What information is required to register an account on the web site?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <ul class=\"list-bullet mx-4\">\r\n                              <li>Employer Name</li>\r\n                              <li>Contact Name</li> \r\n                              <li>Telephone Number</li>\r\n                              <li>Valid Email Address</li>\r\n                              <li>Bank information: bank name, routing number, account number, type of account; checking or savings</li>\r\n                            </ul>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                         <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                Can I schedule more than one payment, for example, a payment on the 20th of the month, as well as a \r\n                                payment every two weeks on Friday?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Yes, however, you will need to schedule each payment separately.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------BANK DRAFT------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Questions about Scheduling a Bank Draft\r\n                        </mat-expansion-panel-header>\r\n                          <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  What should I do to have child support payments automatically withdrawn from my bank account?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                Click Employer at this web site, register an account, and schedule a payment.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                          <!------------------------------------------------------------------------------------------------>\r\n                          <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  Can I schedule more than one payment, for example, a payment on the 20th of the month,\r\n                                  as well as a payment every two weeks on Friday?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                Yes, however, you will need to schedule each payment separately.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                           <!------------------------------------------------------------------------------------------------>\r\n                           <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  Can I have more than one bank account authorized for a payment?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                No, you can only authorize one bank account for a payment.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                          <!------------------------------------------------------------------------------------------------>\r\n                          <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  What day will funds be withdrawn from my bank account?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                Funds will be withdrawn on the scheduled payment date. If that date falls on a\r\n                                Saturday, Sunday, or bank holiday the funds will be withdrawn the next business day.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                          <!------------------------------------------------------------------------------------------------>\r\n                          <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  How long will it take for Oklahoma Child Support Services to receive a child support payment \r\n                                  once it is withdrawn from my bank account? \r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                The payment will be processed on the scheduled date unless there are technical difficulties. Your \r\n                                employees will receive credit for the payment in two to three business days.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                          <!------------------------------------------------------------------------------------------------>\r\n                          <!-- <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  How long will it take for Oklahoma Child Support Services to receive a child support\r\n                                  payment once it is withdrawn from my bank account?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                The payment will be processed on the scheduled date unless there are technical difficulties.\r\n                                Your employees will receive credit for the payment on the same date.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion> -->\r\n                           <!------------------------------------------------------------------------------------------------>\r\n                           <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  What happens if my payment is scheduled for a weekend or a holiday?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                If a withdrawal falls on a Saturday, Sunday, or bank holiday,\r\n                                the funds will be withdrawn the next business day. Your\r\n                                employees will receive credit for the payment in two to three business days.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                           <!------------------------------------------------------------------------------------------------>\r\n                           <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  What is the earliest date that I can schedule a payment?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                Your payment start date must be at least five business days from the date you register your account.\r\n                                This will allow sufficient time for your bank account information to be verified (prenote).\r\n                                If your account has been previously verified then the payment must be scheduled at least two business\r\n                                days prior to its due date.\r\n                                <br><br>\r\n                                <span style=\"font-weight: 600;\">Example:</span> If you register your account on Monday the 1st, you must set your payment\r\n                                start date no earlier than Tuesday the 9th.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                          <!------------------------------------------------------------------------------------------------>\r\n                          <mat-accordion multi>\r\n                            <mat-expansion-panel>\r\n                              <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                                <div class=\"m-3\">\r\n                                  I entered a start date and the web site calculated a different date for my first payment. What am I doing wrong?\r\n                                </div>\r\n                              </mat-expansion-panel-header>\r\n                              <div class=\"mx-4\">\r\n                                If you entered a start date that is less than five business days from today's date, your date will be\r\n                                automatically adjusted to include the five business day verification (prenote) period.\r\n                                <br><br>\r\n                                <span style=\"font-weight: 600;\">Example:</span> Today is January 26 (Monday) and you entered January 30 (Friday) as your payment start date.\r\n                                The web site calculates the start date as February 3, taking the five business day verification period\r\n                                into consideration; January 27 - February 2.\r\n                              </div>\r\n                            </mat-expansion-panel>\r\n                          </mat-accordion>\r\n                        </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------PRENOTE------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Questions about Verification (Prenote) Period\r\n                        </mat-expansion-panel-header>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                What happens after I register an account and schedule a payment?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              If your bank account information has not been previously verified, it will be\r\n                              submitted to your bank for verification (prenote). If the prenote is successful,\r\n                              your payments will be withdrawn as scheduled. If the prenote is unsuccessful,\r\n                              you will be notified by e-mail and no payment will be processed.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                Why would a prenote be returned as unsuccessful?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Most prenotes are returned as unsuccessful when the bank account information was entered incorrectly.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                I received an e-mail that the prenote was unsuccessful. What should I do now?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Edit your bank account information through this web site and reschedule your payment.\r\n                              The prenote will be resubmitted. You may want to contact your bank if you need assistance\r\n                              identifying the routing and account numbers.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------EDIT OR CHANGE BANK ACCOUNTS------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Questions about Editing or Changing Bank Accounts\r\n                        </mat-expansion-panel-header>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                I changed my bank account, what should I do?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Submit your new bank account information when you schedule your next payment. A prenote will be sent to \r\n                              verify the new bank account information. If your payment is due before the end of the five business day \r\n                              verification (prenote) period, you will need to mail your employees’ withholdings to the Oklahoma \r\n                              Centralized Support Registry in order to avoid delinquency on their child support accounts.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                         <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                I authorized a bank draft and now I want to cancel it. What should I to do?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Change or cancel your payment through this web site. You must allow two business\r\n                              days prior to the payment's scheduled date to cancel your payment.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------UNAVAILABLE FUNDS------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Questions about Unavailable Funds\r\n                        </mat-expansion-panel-header>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                What if my bank account does not have sufficient funds to cover a payment?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              You must cancel your payment at least two business days prior to its scheduled date.\r\n                              You can cancel your payment at this web site.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                What if I fail to cancel the payment two business days prior to its\r\n                                scheduled date and there are insufficient funds in my account?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              Your account will be placed on hold and your automatic withdrawal will be cancelled. You will be \r\n                              required to remit all future payments with a guaranteed payment instrument such as a money \r\n                              order, cashier's check, or certified check. Call CARE at 1-800-522-2922 as soon as possible, \r\n                              as it may be possible to stop or prevent the issuance of erroneous funds, thereby avoiding a bad debt.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                        <!------------------------------------------------------------------------------------------------>\r\n                        <mat-accordion multi>\r\n                          <mat-expansion-panel>\r\n                            <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                              <div class=\"m-3\">\r\n                                Why is my bank account on hold?\r\n                              </div>\r\n                            </mat-expansion-panel-header>\r\n                            <div class=\"mx-4\">\r\n                              We attempted to withdraw the funds from your bank account and they were not available.\r\n                              You will be required to remit all future payments by a guaranteed instrument such as a\r\n                              money order, cashier's check, or certified check, or credit card.\r\n                            </div>\r\n                          </mat-expansion-panel>\r\n                        </mat-accordion>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <!----- PASSWORD ------------------------------------------------------------------------------------------->\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingFour\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseFour\" aria-expanded=\"false\" aria-controls=\"flush-collapseFour\"\r\n                    style=\"font-weight: bold;\">\r\n                    Password FAQs\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseFour\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingFour\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                    <mat-expansion-panel>\r\n                      <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                        <div class=\"mt-3\">\r\n                          I am having trouble creating a password.\r\n                        </div>\r\n                      </mat-expansion-panel-header>\r\n                      <div class=\"mx-4\">\r\n                        Your password must consist of at least two numbers and six letters, and not exceed 12\r\n                        characters in length. In addition, it cannot contain any special characters.\r\n                        For example, question marks, number signs, periods.\r\n                      </div>\r\n                    </mat-expansion-panel>\r\n                  </mat-accordion>\r\n                  <!------------------------------------------------------------------------------------------------>\r\n                  <mat-accordion multi>\r\n                    <mat-expansion-panel>\r\n                      <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                        <div class=\"mt-3\">\r\n                          Can my password be the same as my user ID?\r\n                        </div>\r\n                      </mat-expansion-panel-header>\r\n                      <div class=\"mx-4\">\r\n                        No, it must be different from your user ID.\r\n                      </div>\r\n                    </mat-expansion-panel>\r\n                  </mat-accordion>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                    <mat-expansion-panel>\r\n                      <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                        <div class=\"mt-3\">\r\n                          Does my password ever expire?\r\n                        </div>\r\n                      </mat-expansion-panel-header>\r\n                      <div class=\"mx-4\">\r\n                        No, your password does not expire.\r\n                      </div>\r\n                    </mat-expansion-panel>\r\n                  </mat-accordion>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                    <mat-expansion-panel>\r\n                      <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                        <div class=\"mt-3\">\r\n                          I forgot my password. What should I do?\r\n                        </div>\r\n                      </mat-expansion-panel-header>\r\n                      <div class=\"mx-4\">\r\n                        On the login page, click \"Forgot your password?\", enter the required information, and create a new password.\r\n                      </div>\r\n                    </mat-expansion-panel>\r\n                  </mat-accordion>\r\n                  <!------------------------------------------------------------------------------------------------>\r\n                  <mat-accordion multi>\r\n                    <mat-expansion-panel>\r\n                      <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                        <div class=\"mt-3\">\r\n                          If I forget my password and change it but remember it later and want to change it back to the original password can I?\r\n                        </div>\r\n                      </mat-expansion-panel-header>\r\n                      <div class=\"mx-4\">\r\n                        Yes, you can.\r\n                      </div>\r\n                    </mat-expansion-panel>\r\n                  </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              \r\n              <!-----CREDIT CARDS------------------------------------------------------------------------------------->\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingThree\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseThree\" aria-expanded=\"false\" aria-controls=\"flush-collapseThree\"\r\n                    style=\"font-weight: bold;\">\r\n                    Credit Card FAQs\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseThree\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingThree\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What credit cards do you accept?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            You may use your MasterCard® or Visa® to make a child support payment.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                         What browsers do you support for e-wallet payments?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Apple Pay payments must be made with an Apple device. Google Pay and PayPal payments\r\n                          may be made with any browser. You must use Safari (iOS) or Chrome (Android) when\r\n                          making a payment through Venmo.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What information is required to make a credit card payment?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          The following information is required to make a credit card payment: <br>\r\n\r\n                          <ul class=\"list-bullet mx-3\">\r\n                            <br>\r\n                            <li>Credit card holder's name.</li>\r\n                            <li>Credit card holder's billing address.</li>\r\n                            <li>Valid e-mail address.</li>\r\n                            <li>MasterCard® or Visa® credit card number and expiration date and CVV2/ CVC2 3-digit security code.</li>\r\n                          </ul>\r\n                        </div>\r\n\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What should I do if I don't have an e-mail address?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        A valid e-mail address is required in order for us to communicate with you electronically.\r\n                        If you do not have an e-mail address we cannot send you information such as a confirmation\r\n                        of your transactions. Free e-mail accounts are available on the Internet. To locate one,\r\n                        use any search engine and search for \"free e-mail\".\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I make a credit card payment by phone?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, you can make a non-recurring payment for an employee by calling 1.844.324.3856.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Is there a minimum payment requirement?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, there is a minimum payment requirement of $1.00.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the maximum payment that I can make?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The maximum payment that you can make in one transaction is $9,999.99; if your card has\r\n                        that amount of credit available. Multiple transactions can be made in one day if each\r\n                        transaction does not exceed $9,999.99, and the appropriate amount of credit is available.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the purpose of the service fee?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The credit card service fee is charged for the convenience of using this easy\r\n                        payment method. Without the service fee, the cost of providing this service would be prohibitive.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How much is the service fee?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The service fee for using this service is 2.50% of the amount of the primary child support payment.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Will the service fee be applied to my child support obligation?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The service fee is separate from your child support obligation and is not applied to it.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          When will my credit card be charged for my child support payment?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Your credit card is charged at the time you submit the transaction, and your credit card company authorizes it.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          When will my payment be applied to my employees' child support accounts?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        They will receive credit in two to three business days.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the CVV2/ CVC2 3 or 4-digit security code and where do I find it?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The CVV2/ CVC2 3-digit security code is an added security measure. It is used to establish that you are \r\n                        in possession of the credit card. The code is printed just above the signature panel in reverse italics \r\n                        on the back of your card. Usually your card number precedes it.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          My credit card transaction was declined, what should I do?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        You will need to contact your credit card company to determine why the payment was not authorized.\r\n                        It could have been declined for one of the following reasons: <br>\r\n                        \r\n                        <br />\r\n                        &nbsp; &bull; The credit card number and/ or CVV2/ CVC2 security code was incorrectly entered.<br>\r\n                        \r\n                        <br />\r\n                        &nbsp; &bull; There is a discrepancy between the address you entered and the billing address that\r\n                        is on file with the card-issuing bank. You must enter the billing address that appears on your credit card statement. <br>\r\n                        \r\n                        <br />\r\n                        &nbsp; &bull; A foreign address (a country other than the US) was entered. The web site is unable\r\n                        to process credit card payments with a foreign address.<br>\r\n                        \r\n                        <br />\r\n                        &nbsp; &bull; There is insufficient credit available for the payment amount.\r\n                        <br>\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How do I obtain a refund on a credit card payment made through this website?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        You will need to contact Oklahoma Child Support Customer Service at 1-855-363-1754.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion> -->\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <!-----GENERAL ------------------------------------------------------------------------------------------->\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingFour\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseFour\" aria-expanded=\"false\" aria-controls=\"flush-collapseFour\"\r\n                    style=\"font-weight: bold;\">\r\n                    General FAQs\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseFour\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingFour\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Are employers required to send child support payments electronically?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            Employers are not required to remit payments electronically. However,\r\n                            by submitting electronically, employers can reduce their cost for submitting child support payments.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I tried to register my employer on the web site, but my company name could not be located. What should I do?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Contact the Oklahoma Centralized Support Registry at 1-855-363-1754 and report the problem. \r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Why am I unable to upload or download files with my employees’ payment information?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Microsoft Excel must be installed on your device to upload or download files.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n               <!-----TECHNICAL ISSUES---------------------------------------------------------------------------->\r\n               <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingFive\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseFive\" aria-expanded=\"false\" aria-controls=\"flush-collapseFive\"\r\n                    style=\"font-weight: bold;\">\r\n                    Technical Issues\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseFive\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingFive\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          It appears there is a problem with the web site. What should I do?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            Contact the Oklahoma Centralized Support Registry at 1-855-363-1754 and report the problem. \r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <!-----UNAUTHORIZED ACCESS TO ACCOUNT---------------------------------------------------------------------------->\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingSix\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseSix\" aria-expanded=\"false\" aria-controls=\"flush-collapseSix\"\r\n                    style=\"font-weight: bold;\">\r\n                    Unauthorized Access of an Account\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseSix\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingSix\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I believe someone has access to my web site user ID and password. What do I need to do?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            Change your user ID and password through this web site.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Money has been withdrawn from my account without my permission. What should I do?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Contact the Oklahoma Centralized Support Registry at 1-855-363-1754 immediately. You will be \r\n                        asked to submit your claim in writing.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <!--------CONTACT INFORMATION------------------------------------------------------------------------------------>\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingSeven\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseSeven\" aria-expanded=\"false\" aria-controls=\"flush-collapseSeven\"\r\n                    style=\"font-weight: bold;\">\r\n                    Contact Information\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseSeven\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingSeven\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body mx-3\">\r\n                    Assistance with web site and payment schedules: 1-855-363-1754, Oklahoma Centralized Support Registry\r\n                    <br />\r\n\r\n                    <br />\r\n                    Assistance with employer-related questions: 1-866-553-2368, Oklahoma Employer Services Center\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-faq',\r\n  templateUrl: './faq.component.html',\r\n})\r\nexport class FaqComponent implements OnInit {\r\n  pagetitle = 'FAQs';\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit(): void {\r\n\r\n  }\r\n\r\n}\r\n","<epay-page-content>\r\n  <div class=\"page-content-main box-panel shadow t-alignC max-w max-gs\" id=\"page-content-main\">\r\n    <h2 class=\"mb-5\">Select Account Type</h2>\r\n    <div class=\"account-type-links mx-5\">\r\n      <div class=\"mb-3\">\r\n        <a class=\"btn-link mx-3 mb-3\"[routerLink]=\"['/ncpFAQ']\">Noncustodial Parent</a>\r\n        <a class=\"btn-link mx-3 mb-3\"[routerLink]=\"['/employerFAQ']\">Employer</a>\r\n\r\n      </div>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'app-ncp-faq',\r\n  templateUrl: './ncp-faq.component.html'\r\n})\r\nexport class NcpFAQComponent implements OnInit {\r\n  chaturl: string ='';\r\n\r\n  constructor() {\r\n    this.chaturl = CommonSettings.ChatUrl;\r\n   }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  openChat() {\r\n    window.open(this.chaturl, '', 'width=510, height=900');\r\n  }\r\n\r\n}\r\n","<div class=\"container \" id=\"page-content-main\">\r\n  <div class=\"mt-4\">\r\n    <div class=\"\">\r\n      <mat-card class=\"mb-3\" style=\"border-radius: 10px\">\r\n        <mat-card-content>\r\n          <a [routerLink]=\"['/home']\" class=\"ts-l tw-b\">\r\n              <span class=\"fa fa-chevron-circle-left fa-sm-blue\" matTooltip=\"GO BACK\"\r\n              matTooltipClass=\"tooltip-md\">\r\n            </span>\r\n            Back\r\n          </a>\r\n          <br><br>\r\n          <div class=\"container-fluid\">\r\n            <h2>Noncustodial Parent FAQ</h2>\r\n            <p>\r\n              Welcome to the OK Child Support Internet Payment Web Site. This site allows child support payors to initiate bank \r\n              draft authorizations to satisfy child support court orders via the web. Although a user may be registered to access \r\n              OK Child Support case information, a separate registration is required to submit child support payments through the \r\n              OK Child Support Internet Payment Web Site.\r\n            </p>\r\n            <div class=\"accordion accordion-flush\" id=\"accordionFlushExample\">\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingOne\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseOne\" aria-expanded=\"false\" aria-controls=\"flush-collapseOne\"\r\n                    style=\"font-weight: bold;\">\r\n                    Questions About Registering\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseOne\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingOne\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <br>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c; padding-top: 20px\">\r\n                          Can I have child support payments automatically withdrawn from my bank account if I am under an Income Withholding Order?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Yes, but income withholding will remain in effect and not be terminated.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          If I elect to have child support payments automatically withdrawn from my bank account, can I pay what I want?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Yes, however, we encourage you to schedule your payments in an amount equal\r\n                          to your current child support obligation(s) to avoid delinquency.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What do I need to do to have child support payments automatically withdrawn from my bank account?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Click Non-Custodial Parent at this web site, register an account, and schedule a payment. You must have a valid e-mail address.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What if I want to use the web site but I don't have an e-mail address?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          A valid e-mail address is required in order for us to communicate with you electronically.\r\n                          If you do not have an e-mail address we cannot send you information such as a confirmation\r\n                          of your transactions. Free e-mail accounts are available on the Internet. To locate one,\r\n                          use any search engine and search for \"free e-mail.\"\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What information is required to register an account on the web site?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          If you want to register an account for yourself, the following information is required:\r\n                          <div class=\"row\">\r\n                            <div class=\"col\">\r\n                              <h5 class=\"mt-3\"><u>Personal Information</u></h5>\r\n                              <ul>\r\n                                <li>Full Legal Name</li>\r\n                                <li>Address</li>\r\n                                <li>Social Security Number</li>\r\n                                <li>Family group number (FGN)</li>\r\n                                <li>Telephone Number</li>\r\n                                <li>Valid E-mail Address</li>\r\n                              </ul>\r\n                            </div>\r\n                            <div class=\"col\">\r\n                              <h5 class=\"mt-3\"><u>Bank Information</u></h5>\r\n                              <ul>\r\n                                <li>Bank Name</li>\r\n                                <li>Routing Number</li>\r\n                                <li>Account Number</li>\r\n                                <li>Type of Account: Checking or Savings</li>\r\n                              </ul>\r\n                            </div>\r\n                          </div>\r\n                          <br>\r\n\r\n                          If you want to register an account and make a payment for someone else, you will need to provide the following information for yourself:\r\n                          <div class=\"row\">\r\n                            <div class=\"col\">\r\n                              <h5 class=\"mt-3\"><u>Your Contact Information</u></h5>\r\n                              <ul>\r\n                                <li>Full Legal Name</li>\r\n                                <li>Address</li>\r\n                                <li>Relation To Payor</li>\r\n                                <li>Telephone Number</li>\r\n                                <li>Valid E-mail Address</li>\r\n                              </ul>\r\n                            </div>\r\n                            <div class=\"col\">\r\n                              <h5 class=\"mt-3\"><u>Payor Information</u></h5>\r\n                              <ul>\r\n                                <li>Full Legal Name</li>\r\n                                <li>Social Security Number</li>\r\n                                <li>Address</li>\r\n                                <li>Family group number (FGN) of the payor</li>\r\n                                <li>Telephone Number</li>\r\n                              </ul>\r\n                            </div>\r\n                            <div class=\"col\">\r\n                              <h5 class=\"mt-3\"><u>Bank Information</u></h5>\r\n                              <ul>\r\n                                <li>Bank Name</li>\r\n                                <li>Routing Number</li>\r\n                                <li>Account Number</li>\r\n                                <li>Type of Account: Checking or Savings</li>\r\n                              </ul>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Where can I find my family group number (FGN)? \r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Your FGN is located on your payor coupons, child support court order, and other documents related to your \r\n                          child support order. You may also contact Oklahoma SDU Customer Service at 1-855-363-1754 or contact CARE \r\n                          at 1-800-522-2922 for this information.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!---------------------------------------------------------------------------------------------->\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I have more than one bank account authorized for a payment?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          No, you can only authorize one bank account for a payment.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingTwo\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseTwo\" aria-expanded=\"false\" aria-controls=\"flush-collapseTwo\"\r\n                    style=\"font-weight: bold;\">\r\n                    Questions About Setting Up a Payment\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseTwo\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingTwo\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What are my payment options?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            You may schedule a one-time only (non-recurring) payment or you may schedule recurring payments using one of the following options:\r\n                            <br><br>\r\n                            <ul>\r\n                              <li>Weekly: Monday, Tuesday, Wednesday, Thursday, or Friday </li><br>\r\n                              <li>Every two weeks: Monday, Tuesday, Wednesday, Thursday, or Friday </li><br>\r\n                              <li>Semi-Monthly: two payments per month based on the following schedule:\r\n                                <div class=\"row\">\r\n                                  <div class=\"col-6\">\r\n                                    <table class=\"table table-borderd\">\r\n                                      <tr>\r\n                                        <td>1st & 16th</td>\r\n                                        <td>6th & 21st</td>\r\n                                        <td>11th & 26th</td>\r\n                                      </tr>\r\n                                      <tr>\r\n                                        <td>2nd & 17th</td>\r\n                                        <td>7th & 22nd</td>\r\n                                        <td>12th & 27th</td>\r\n                                      </tr>\r\n                                      <tr>\r\n                                        <td>3rd & 18th</td>\r\n                                        <td>8th & 23rd</td>\r\n                                        <td>13th & 28th</td>\r\n                                      </tr>\r\n                                      <tr>\r\n                                        <td>4th & 19th</td>\r\n                                        <td>9th & 24th</td>\r\n                                        <td>14th & 29th</td>\r\n                                      </tr>\r\n                                      <tr>\r\n                                        <td>5th & 20th</td>\r\n                                        <td>10th & 25th</td>\r\n                                        <td>15th & 30th</td>\r\n                                      </tr>\r\n                                    </table>\r\n                                  </div>\r\n                                </div>\r\n                              </li>\r\n                              <li>Monthly: 1st-31st</li><br>\r\n                            </ul>\r\n                            <span style=\"font-weight: 600;\"> Note:</span> Semi-monthly and monthly payments will occur on the last day of the month in months with fewer days than the date scheduled. For example, if the 15th and 30th are selected, February's payments would occur on the 15th and 28th (the last day of the month).\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I schedule more than one payment, for example,\r\n                          a payment on the 20th of the month, as well as a payment every two weeks on Friday?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Yes, however, you will need to schedule each payment separately.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What day will funds be withdrawn from my bank account?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Funds will be withdrawn on the scheduled payment date. If that date falls on\r\n                        a Saturday, Sunday, or bank holiday the funds will be withdrawn the next business day.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How long will it take for Oklahoma Child Support Services to receive a payment once it is withdrawn from my bank account? \r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        You will receive credit for the payment in two to three business days.                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What happens if my payment is scheduled for a weekend or a holiday?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        If a withdrawal falls on a Saturday, Sunday, or a bank or state holiday, the funds will be\r\n                        withdrawn the next business day. You will receive credit for the payment in two to three business days.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          When may I schedule a payment?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        A payment must be scheduled at least two business days prior to its due date,\r\n                        assuming that your bank account information has been previously verified (prenote).\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the earliest date that I can select for my first payment date?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Your first payment date must be at least five business days from the date you register your account.\r\n                        This will allow sufficient time for your bank account information to be verified (prenote).\r\n                        If your account has been previously verified then the payment must be scheduled at least two\r\n                        business days prior to its due date.\r\n                        <br><br>\r\n                        <span style=\"font-weight: 600;\">Example:</span>  If you register your account and establish a payment schedule on Monday the 1st,\r\n                        you must set your first payment date no earlier than Monday the 8th.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I entered a start date and the web site calculated a different date for my first payment. What am I doing wrong?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        If you entered a start date that is less than five business days from today's date,\r\n                        your date will be automatically adjusted to include the five business day verification (prenote) process.\r\n                        <br><br>\r\n                        <span style=\"font-weight: 600;\">Example:</span>  Today is January 26 (Monday) and a payment frequency of semi-monthly (15th and 30th) is selected.\r\n                        Friday the 30th is entered as the first payment date. The first payment date is set to February 16. <br />\r\n                        <br />\r\n                        The 16th is determined by calculating five business days (January 27 - February 2), and then determining if\r\n                        the 15th is a business day. Since the 15th is on a Sunday your first payment date is set to the 16th.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingThree\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseThree\" aria-expanded=\"false\" aria-controls=\"flush-collapseThree\"\r\n                    style=\"font-weight: bold;\">\r\n                    Questions About the Verification (Prenote) Period\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseThree\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingThree\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What happens after I register an account and establish a payment schedule?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            If your bank account information has not been previously verified, it will be\r\n                            submitted to your bank for verification (prenote). If the prenote is successful,\r\n                            your payments will be withdrawn as scheduled. If the prenote is unsuccessful,\r\n                            you will be notified by e-mail and no payment will be processed.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Why would a prenote be returned as unsuccessful?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Most prenote's are returned as unsuccessful when the bank account information was entered incorrectly.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I received an e-mail that the prenote was unsuccessful. What should I do now?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Edit your bank account information through this web site and reschedule your payment.\r\n                        The prenote will be resubmitted. You may want to contact your bank if you need assistance\r\n                        identifying the routing and account numbers.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingFour\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseFour\" aria-expanded=\"false\" aria-controls=\"flush-collapseFour\"\r\n                    style=\"font-weight: bold;\">\r\n                    Questions About Editing or Changing an Account\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseFour\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingFour\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How do I make a change to my account?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            Make your changes through this web site.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I changed my bank account, what should I do?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Edit your bank account information through this web site. A prenote will be sent to\r\n                          verify the new bank account information. In addition, you will need to establish a\r\n                          new payment schedule since any existing payment schedule(s) will be cancelled when\r\n                          you edit your bank account information.\r\n                          <br><br>\r\n                          If a child support payment is due before the end of the five business day verification (prenote) period, you will\r\n                          need to mail your payment in order to avoid delinquency.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How do I reactivate a bank draft that I previously cancelled?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Establish another payment schedule through this web site.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I authorized a bank draft and now I want to change it. What do I need to do?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Change or cancel your payment through this web site. You must allow two business\r\n                        days prior to the payment's scheduled date to make your changes.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingFive\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseFive\" aria-expanded=\"false\" aria-controls=\"flush-collapseFive\"\r\n                    style=\"font-weight: bold;\">\r\n                    Questions About Unavailable Funds\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseFive\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingFive\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What if my bank account does not have sufficient funds to cover a payment?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            You must cancel your payment at least two business days prior to its scheduled date. You can cancel your payment at this web site.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What if I fail to cancel the payment two business days prior to its scheduled date and there are insufficient funds in my account?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Your account will be placed on hold and your automatic withdrawal will be cancelled. You will then be required to \r\n                          remit all future payments by a guaranteed payment instrument such as a money order, cashier's check, certified \r\n                          check, or credit card. Call CARE at 1-800-522-2922 to notify OCSS in case we are able to stop the payment from \r\n                          issuing.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Why is my account on hold?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        We attempted to withdraw the funds from your bank account and they were not available.\r\n                        You will be required to remit all future payments by a guaranteed instrument such as a\r\n                        money order, cashier's check, or certified check, or credit card.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingSix\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseSix\" aria-expanded=\"false\" aria-controls=\"flush-collapseSix\"\r\n                    style=\"font-weight: bold;\">\r\n                    Credit Card FAQs\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseSix\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingSix\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What credit cards do you accept?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            You may use your MasterCard® or Visa® to make a child support payment.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                         What browsers do you support for e-wallet payments?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Apple Pay payments must be made with an Apple device. Google Pay and PayPal payments\r\n                          may be made with any browser. You must use Safari (iOS) or Chrome (Android) when\r\n                          making a payment through Venmo.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What information is required to make a credit card payment?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-3\">\r\n                        The following information is required to make a credit card payment: <br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; Non-custodial parent's first and last name.<br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; Non-custodial parent's social security number.<br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; Noncustodial parent's family group number(FGN).<br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; Credit card holder's name.<br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; Credit card holder's billing address.<br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; Valid e-mail address.<br>\r\n\r\n                        <br />\r\n                        &nbsp; &bull; MasterCard® or Visa® credit card number and expiration date and CVV2/ CVC2 3-digit security code.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What should I do if I don't have an e-mail address?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        A valid e-mail address is required in order for us to communicate with you electronically.\r\n                        If you do not have an e-mail address we cannot send you information such as a confirmation\r\n                        of your transactions. Free e-mail accounts are available on the Internet. To locate one,\r\n                        use any search engine and search for \"free e-mail\".\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How can I obtain my Family Group Number (FGN)?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Your FGN is located on your payor coupons, child support court order, and other documents related to \r\n                        your child support order. You may also contact Oklahoma SDU Customer Service at 1-855-363-1754 or CARE \r\n                        at 1-800-522-2922 for this information.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I make a credit card payment if I am under an Order for Income Withholding?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, but income withholding will remain in effect and will not be terminated.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I make a credit card payment by phone?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, you can make a non-recurring payment by calling 1.844.324.3856.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Is there a minimum payment requirement?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, there is a minimum payment requirement of $1.00.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the maximum payment that I can make?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The maximum payment that you can make in one transaction is $9,999.99; assuming that your card has\r\n                        that amount of credit available. Multiple transactions can be made in one day if each\r\n                        transaction does not exceed $9,999.99, and the appropriate amount of credit is available.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the purpose of the service fee?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The credit card service fee is charged for the convenience of using this easy\r\n                        payment method. Without the service fee, the cost of providing this service would be prohibitive.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How much is the service fee?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The service fee for using this service is 2.50% of the amount of the primary child support payment.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Will the service fee be applied to my child support obligation?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The service fee is separate from your child support obligation and is not applied to it.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          When will my credit card be charged for my child support payment?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Your credit card is charged at the time you submit the transaction, and your credit card company authorizes it.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          When will my payment be applied to my child support account?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        You will receive credit for the payment in two to three business days.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can I make a payment for a non-custodial parent with my credit card?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, you can use your credit card to make a payment for a noncustodial parent; however, you will \r\n                        need their first and last name, social security number, and family group number (FGN).\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          What is the CVV2/ CVC2 3 or 4-digit security code and where do I find it?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        The CVV2/ CVC2 3-digit security code is an added security measure. It is used to establish that \r\n                        you are in possession of the credit card. The code is printed just above the signature panel in \r\n                        reverse italics on the back of your card. Usually your card number precedes it.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          My credit card transaction was declined, what should I do?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          You will need to contact your credit card company to determine why the payment was not authorized.\r\n                          It could have been declined for one of the following reasons: <br>\r\n\r\n                          <ul class=\"list-bullet mx-3\">\r\n                            <li>\r\n                              The credit card number and/ or CVV2/ CVC2 security code was incorrectly entered. <br />\r\n                            </li>\r\n                    \r\n                            <li>\r\n                              There is a discrepancy between the address you entered and the billing address that is on \r\n                              file with the card-issuing bank. You must enter the billing address that appears on your credit \r\n                              card statement. <br />\r\n                            </li>\r\n                    \r\n                            <li>\r\n                              A foreign address (a country other than the US) was entered. The web site is unable to process \r\n                              credit card payments with a foreign address. <br />\r\n                            </li>\r\n                    \r\n                            <li>\r\n                              There is insufficient credit available for the payment amount. <br />\r\n                            </li>\r\n                          </ul>\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <!-- <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          How do I obtain a refund on a credit card payment made through this website?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        You will need to contact Oklahoma Child Support Customer Service at 1-855-363-1754.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br> -->\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingSeven\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseSeven\" aria-expanded=\"false\" aria-controls=\"flush-collapseSeven\"\r\n                    style=\"font-weight: bold;\">\r\n                    Questions About Security\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseSeven\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingSeven\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I am having trouble creating a user ID or password.\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            Your user ID and password must each consist of at least two numbers, six letters,\r\n                            and not exceed 12 characters in length. In addition, they cannot contain any special\r\n                            characters. For example, question marks, number signs, periods.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                     <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Can my password be the same as my user ID?\r\n                        </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          No, it must be different from your user ID.\r\n                        </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Does my password ever expire?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        No, your password does not expire.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I forgot my password. What do I need to do?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        On the login page, click \"Forgot your password?\", enter the required information, and create a new password.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          If I forget my password and change it, but remember it later and want to change it back to the original password can I?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Yes, you can.\r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I tried to register an account on the web site and received the message \"user not found.\" What should I do now?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Contact Oklahoma SDU Customer Service at 1-855-363-1754 and verify that your name, address, and social security \r\n                        number are correct in the child support system. \r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingNine\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                  data-bs-target=\"#flush-collapseNine\" aria-expanded=\"false\" aria-controls=\"flush-collapseNine\"\r\n                  style=\"font-weight: bold;\">\r\n                  Questions About Technical Issues\r\n                </button>\r\n                </h2>\r\n                <div id=\"flush-collapseNine\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingNine\"\r\n                data-bs-parent=\"#accordionFlushExample\">\r\n                <div class=\"accordion-body\">\r\n                  <!------------------------------------------------------------------------------------------------>\r\n                  <mat-accordion multi>\r\n                    <mat-expansion-panel>\r\n                      <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                        It appears there is a problem with the web site. What do I need to do?\r\n                      </mat-expansion-panel-header>\r\n                        <div class=\"mx-2\">\r\n                          Contact Oklahoma SDU Customer Service at 1-855-363-1754 to report the problem.\r\n                        </div>\r\n                    </mat-expansion-panel>\r\n                  </mat-accordion>\r\n                  <br>\r\n                </div>\r\n              </div>\r\n\r\n              </div>\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingEight\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseEight\" aria-expanded=\"false\" aria-controls=\"flush-collapseEight\"\r\n                    style=\"font-weight: bold;\">\r\n                    Unauthorized Access of an Account\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseEight\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingEight\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body\">\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          I believe someone has access to my web site user ID and password. What do I need to do?\r\n                        </mat-expansion-panel-header>\r\n                          <div class=\"mx-2\">\r\n                            Change your user ID and password through this web site.\r\n                          </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                    <!------------------------------------------------------------------------------------------------>\r\n                    <mat-accordion multi>\r\n                      <mat-expansion-panel>\r\n                        <mat-expansion-panel-header style=\"font-weight: 600; color: #174a7c\">\r\n                          Money has been withdrawn from my account without my permission. What should I do?\r\n                        </mat-expansion-panel-header>\r\n                       <div class=\"mx-2\">\r\n                        Contact Oklahoma SDU Customer Service at 1-855-363-1754 immediately. You will be asked to submit your claim in writing. \r\n                       </div>\r\n                      </mat-expansion-panel>\r\n                    </mat-accordion>\r\n                    <br>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n\r\n\r\n              <div class=\"accordion-item\">\r\n                <h2 class=\"accordion-header\" id=\"flush-headingTen\">\r\n                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                    data-bs-target=\"#flush-collapseTen\" aria-expanded=\"false\" aria-controls=\"flush-collapseTen\"\r\n                    style=\"font-weight: bold;\">\r\n                    Contact Information\r\n                  </button>\r\n                </h2>\r\n                <div id=\"flush-collapseTen\" class=\"accordion-collapse collapse\" aria-labelledby=\"flush-headingTen\"\r\n                  data-bs-parent=\"#accordionFlushExample\">\r\n                  <div class=\"accordion-body mx-3\">\r\n                    <h3>Address</h3>\r\n                    Oklahoma Centralized Support Registry <br>\r\n                    P.O. Box 268809 <br>\r\n                    Oklahoma City, OK 73126-8809 <br>\r\n                    <br>\r\n                    <h3>Telephone</h3>\r\n                    <div style=\"color:#174a7c;\">Oklahoma SDU Customer Service:</div>\r\n                    1-855-363-1754\r\n                    <br>\r\n                    <br>\r\n                    <h3>E-mail</h3>\r\n                    <address>\r\n                      <a href=\"mailto:okecsupport@smimail.net\">\r\n                        <u>okecsupport@smimail.net</u>\r\n                      </a>\r\n                    </address>\r\n                    <div><STRONG>Note: All questions related to a child support case should be \r\n                      directed to CARE at 1-800-522-2922.</STRONG>\r\n                    </div>\r\n                    <br>\r\n                    <!-- <h3>Live Chat</h3>\r\n                    <div>\r\n                      <span>\r\n                        <img (click)=\"openChat()\" src=\"../../../../../assets/images/chaticonmid.png\">\r\n                      </span>\r\n                    </div> -->\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { StepperOrientation } from '@angular/cdk/stepper';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroupDirective, NgForm, FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { IChallengeQuestion, ErrorHandlerService, ViewportService, CommonService, RegisterLibraryService } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nfunction passwordMatcher(\r\n  c: AbstractControl\r\n): { [key: string]: boolean } | null {\r\n  const password1Ctrl = c.get('newpassword1');\r\n  const password2Ctrl = c.get('newpassword2');\r\n  if (password1Ctrl === null || password2Ctrl === null) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.pristine || password2Ctrl.pristine) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.value === password2Ctrl.value) {\r\n    return null;\r\n  }\r\n  return { doNotMatch: true };\r\n}\r\n\r\n/** Error when the parent is invalid */\r\nclass CrossFieldErrorMatcher implements ErrorStateMatcher {\r\n  isErrorState(\r\n    control: FormControl | null,\r\n    form: FormGroupDirective | NgForm | null\r\n  ): boolean {\r\n    if (control) {\r\n      return (control.dirty || control.touched) && control.parent!.invalid;\r\n    }\r\n    return false;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'common-forgot-password',\r\n  templateUrl: './forgot-password.component.html'\r\n})\r\nexport class CommonForgotPasswordComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n\r\n  isMobile = false;\r\n  stepperOrientation: StepperOrientation = 'horizontal';\r\n  errorMatcher = new CrossFieldErrorMatcher();\r\n  errorMessage = '';\r\n  userQuestion: any;\r\n  loginErrorMessage = '';\r\n  emailErrorMessage = '';\r\n  accountSuccessMessage = '';\r\n  accountErrorMessage = '';\r\n  challengeSuccessMessage = '';\r\n  challengeErrorMessage = '';\r\n  isCheckingLogin = false;\r\n  isCheckingAnswer = false;\r\n  isValidAccount = false;\r\n  isValidAnswer = false;\r\n  isValidLogin = false;\r\n  passwordHide = true;\r\n  passwordConfirmHide = true;\r\n\r\n  openConfirmation = false;\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationEmailAddress = '';\r\n  confirmationNumber = '';\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n\r\n  questions: IChallengeQuestion[] = [];\r\n  usernameFrmGp: FormGroup = new FormGroup({});\r\n  securityFrmGp: FormGroup = new FormGroup({});\r\n  passwordFrmGp: FormGroup = new FormGroup({});\r\n\r\n  // loginPattern =\r\n  //   /((?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*)/;\r\n\r\n  loginPattern = /^[a-zA-Z0-9.@]*$/;\r\n\r\n  // usernamePattern =\r\n  //   /((?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*) || \\S+@\\S+\\.\\S+/;\r\n\r\n  passwordPattern = /(?=^[A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\d]{8,12}$)(?=(.*[A-Za-z]){6})(?=(.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]){1})(?=(.*\\d){2})^.*/;\r\n\r\n  passwordErrorMessage = '';\r\n  passwordHintMessage = 'Must contain at least 6 letters, 2 numbers, and at least one special character with a maximum of 12 characters.';\r\n\r\n  validationLoginIdMessages: { [key: string]: string } = {\r\n    required: 'Username is required.',\r\n    pattern: 'Invalid username',\r\n  };\r\n\r\n  validationEmailMessages: { [key: string]: string } = {\r\n    required: 'Email is required.',\r\n    email: 'Email format is invalid.',\r\n    notFound: 'Account is not found.',\r\n  };\r\n\r\n  validationPasswordMessages: { [key: string]: string } = {\r\n    required: 'Password is required.',\r\n    pattern:\r\n      'Invalid Password.  Must contain at least 6 letters, 2 numbers, and one special character with a maximum of 12 characters.',\r\n    isSameAsLogin: 'Invalid Password.  Password cannot be same as username.',\r\n  };\r\n\r\n  validationChallengeMessages: { [key: string]: string } = {\r\n    required: 'Answer is required.',\r\n    notverified: 'Challenge answer is incorrect.',\r\n  };\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private viewpointService: ViewportService,\r\n    private commonService: CommonService,\r\n    private registerService: RegisterLibraryService,\r\n    public snackbar: MatSnackBar\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.loadFormGroups();\r\n    const emailCtrl = this.usernameFrmGp.get('email');\r\n    const loginIdCtrl = this.usernameFrmGp.get('loginId');\r\n    const answerCtrl = this.securityFrmGp.get('challengeAnswer');\r\n    const password1Ctrl = this.passwordFrmGp.get('newpassword1');\r\n\r\n    this.viewpointService.IsMobile.subscribe(\r\n      (ismobile: boolean) => (this.isMobile = ismobile)\r\n    );\r\n\r\n    this.viewpointService.StepperOrient.subscribe(\r\n      (orient) => (this.stepperOrientation = orient)\r\n    );\r\n\r\n    password1Ctrl!.valueChanges\r\n      .pipe(debounceTime(500))\r\n      .subscribe((passwrd) => this.setPasswordMessage(password1Ctrl!, passwrd));\r\n\r\n    loginIdCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((username) => {\r\n      this.resetAccountCheck();\r\n      emailCtrl!.setErrors(null);\r\n      emailCtrl!.updateValueAndValidity();\r\n\r\n      if ((loginIdCtrl!.touched || loginIdCtrl!.dirty) && loginIdCtrl!.errors) {\r\n        // this.loginErrorMessage = Object.keys(loginIdCtrl!.errors)\r\n        //   .map((key) => this.validationLoginIdMessages[key])\r\n        //   .join(' ');\r\n      } else if (\r\n        (emailCtrl!.touched || emailCtrl!.dirty) &&\r\n        emailCtrl!.errors\r\n      ) {\r\n        this.emailErrorMessage = Object.keys(emailCtrl!.errors)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      } else if (\r\n        (emailCtrl!.touched || emailCtrl!.dirty) &&\r\n        !emailCtrl!.errors\r\n      ) {\r\n        this.isCheckingLogin = true;\r\n        const user = {\r\n          loginId: username,\r\n          email: this.usernameFrmGp.get('email')!.value,\r\n        };\r\n        this.registerService\r\n          .getUserChallengeQuestion(this.baseurl, user)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.setAccountMessage(loginIdCtrl!, emailCtrl!, result);\r\n              this.securityFrmGp.patchValue({\r\n                challengeQuestion: result.challengeQuestion,\r\n              });\r\n            },\r\n            error: (error: any) => {\r\n              this.resetAccountCheck();\r\n              this.errorMessage = error as any;\r\n              this.handleError(error.status);\r\n            },\r\n            complete: () => (this.isCheckingLogin = false),\r\n          });\r\n      }\r\n    });\r\n\r\n    emailCtrl!.valueChanges\r\n      .pipe(debounceTime(500))\r\n      .subscribe((emailAddress) => {\r\n        this.resetAccountCheck();\r\n        if ((emailCtrl!.touched || emailCtrl!.dirty) && emailCtrl!.errors) {\r\n          this.emailErrorMessage = Object.keys(emailCtrl!.errors)\r\n            .map((key) => this.validationEmailMessages[key])\r\n            .join(' ');\r\n        } else if (\r\n          (loginIdCtrl!.touched || loginIdCtrl!.dirty) &&\r\n          loginIdCtrl!.errors\r\n        ) {\r\n          this.emailErrorMessage = Object.keys(loginIdCtrl!.errors)\r\n            .map((key) => this.validationLoginIdMessages[key])\r\n            .join(' ');\r\n        } else if (\r\n          (loginIdCtrl!.touched || loginIdCtrl!.dirty) &&\r\n          !loginIdCtrl!.errors\r\n        ) {\r\n          this.isCheckingLogin = true;\r\n          const user = {\r\n            loginId: this.usernameFrmGp.get('loginId')!.value,\r\n            email: emailAddress,\r\n          };\r\n          this.registerService\r\n            .getUserChallengeQuestion(this.baseurl, user)\r\n            .subscribe({\r\n              next: (result: any) => {\r\n                this.setAccountMessage(loginIdCtrl!, emailCtrl!, result);\r\n                this.securityFrmGp.patchValue({\r\n                  challengeQuestion: result.challengeQuestion,\r\n                });\r\n              },\r\n              error: (error: any) => {\r\n                this.resetAccountCheck();\r\n                this.errorMessage = error as any;\r\n                this.handleError(error.status);\r\n              },\r\n              complete: () => (this.isCheckingLogin = false),\r\n            });\r\n        }\r\n      });\r\n\r\n    answerCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((answer) => {\r\n      if ((answerCtrl!.touched || answerCtrl!.dirty) && answerCtrl!.errors) {\r\n        this.emailErrorMessage = Object.keys(answerCtrl!.errors)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      } else {\r\n        this.isCheckingAnswer = true;\r\n        const answerObj = {\r\n          loginId: this.usernameFrmGp.get('loginId')!.value,\r\n          email: this.usernameFrmGp.get('email')!.value,\r\n          answer: this.securityFrmGp.get('challengeAnswer')!.value,\r\n        };\r\n        this.registerService\r\n          .validateChallengeAnswer(this.baseurl, answerObj)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.setChallengeMessage(answerCtrl!, result);\r\n            },\r\n            error: (error: any) => {\r\n              this.resetChallengeCheck();\r\n              this.errorMessage = error as any;\r\n              this.handleError(error.status);\r\n            },\r\n            complete: () => (this.isCheckingAnswer = false),\r\n          });\r\n      }\r\n    });\r\n  }\r\n\r\n  resetAccountCheck() {\r\n    this.isValidAccount = false;\r\n    this.isCheckingLogin = false;\r\n    this.accountSuccessMessage = '';\r\n    this.accountErrorMessage = '';\r\n    this.emailErrorMessage = '';\r\n    this.loginErrorMessage = '';\r\n    this.userQuestion = '';\r\n  }\r\n\r\n  resetChallengeCheck() {\r\n    this.isCheckingAnswer = false;\r\n    this.securityFrmGp.patchValue({\r\n      challengeAnswer: '',\r\n    });\r\n  }\r\n\r\n  saveNewPassword() {\r\n    const newpassword = {\r\n      validated: true,\r\n      emailAddress: this.usernameFrmGp.get('email')!.value,\r\n      loginID: this.usernameFrmGp.get('loginId')!.value,\r\n      challengeAnswer: this.securityFrmGp.get('challengeAnswer')!.value,\r\n      newPassword1: this.passwordFrmGp.get('newpassword1')!.value,\r\n      newPassword2: this.passwordFrmGp.get('newpassword2')!.value,\r\n    };\r\n    this.registerService.forgotPassword(this.baseurl, newpassword).subscribe({\r\n      next: (result: any) => {\r\n        if (result.validated) {\r\n          this.onSaveComplete(result.confirmation.confirmationNumber);\r\n        } else {\r\n          this.handleError(500);\r\n        }\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  setPasswordMessage(passwordControl: AbstractControl, passwrd: any) {\r\n    this.passwordErrorMessage = '';\r\n    const username = this.usernameFrmGp.get('loginId')!.value;\r\n\r\n    if (\r\n      (passwordControl.touched || passwordControl.dirty) &&\r\n      passwordControl.errors\r\n    ) {\r\n      this.passwordErrorMessage = Object.keys(passwordControl.errors)\r\n        .map((key) => this.validationPasswordMessages[key])\r\n        .join(' ');\r\n    } else if (\r\n      (passwordControl.touched || passwordControl.dirty) &&\r\n      !passwordControl.errors\r\n    ) {\r\n      if (username === passwrd) {\r\n        passwordControl.setErrors({ isSameAsLogin: true });\r\n        this.passwordErrorMessage = Object.keys(passwordControl.errors!)\r\n          .map((key) => this.validationPasswordMessages[key])\r\n          .join(' ');\r\n      } else {\r\n        passwordControl.setErrors(null);\r\n        passwordControl.updateValueAndValidity();\r\n      }\r\n    }\r\n  }\r\n\r\n  setAccountMessage(\r\n    loginControl: AbstractControl,\r\n    emailControl: AbstractControl,\r\n    result: any\r\n  ) {\r\n    this.accountErrorMessage = '';\r\n    this.accountSuccessMessage = '';\r\n\r\n    if (\r\n      (loginControl.dirty || loginControl.touched) &&\r\n      (emailControl.dirty || emailControl.touched)\r\n    ) {\r\n      this.isValidAccount = result.challengeQuestionIndex === -1 ? false : true;\r\n      if (this.isValidAccount) {\r\n        this.accountSuccessMessage = 'Account found.';\r\n      } else {\r\n        emailControl.setErrors({ notFound: true });\r\n        this.accountErrorMessage = Object.keys(emailControl.errors!)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  setChallengeMessage(answerControl: AbstractControl, result: any) {\r\n    if (answerControl.dirty || answerControl.touched) {\r\n      this.isValidAnswer = result.verified;\r\n      if (this.isValidAnswer) {\r\n        this.challengeSuccessMessage = 'Correct!';\r\n      } else {\r\n        answerControl.setErrors({ notverified: true });\r\n        this.challengeErrorMessage = Object.keys(answerControl.errors!)\r\n          .map((key) => this.validationChallengeMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  togglePasswordHide() {\r\n    this.passwordHide = !this.passwordHide;\r\n  }\r\n\r\n  toggleConfirmPasswordHide() {\r\n    this.passwordConfirmHide = !this.passwordConfirmHide;\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.usernameFrmGp = this.formbuilder.group({\r\n      loginId: [\r\n        '',\r\n        [Validators.required, Validators.pattern(this.loginPattern)],\r\n      ],\r\n      email: ['', [Validators.email, Validators.required]],\r\n    });\r\n\r\n    this.securityFrmGp = this.formbuilder.group({\r\n      challengeQuestion: ['', Validators.required],\r\n      challengeAnswer: ['', Validators.required],\r\n    });\r\n\r\n    this.passwordFrmGp = this.formbuilder.group(\r\n      {\r\n        newpassword1: [\r\n          '',\r\n          [Validators.required, Validators.pattern(this.passwordPattern)],\r\n        ],\r\n        newpassword2: ['', Validators.required],\r\n      },\r\n      { validator: passwordMatcher }\r\n    );\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  onSaveComplete(confirmationNum: string) {\r\n    (this.confirmationEmailAddress = this.usernameFrmGp.get('email')!.value),\r\n      this.usernameFrmGp.reset();\r\n    this.securityFrmGp.reset();\r\n    this.passwordFrmGp.reset();\r\n    this.confirmationTitle = 'Success';\r\n    this.confirmationMessage = `Your password has been changed. `;\r\n    this.confirmationNumber = confirmationNum;\r\n    this.goToPrimaryUrl = 'login';\r\n    this.goToPrimary = 'Login';\r\n    this.openConfirmation = true;\r\n  }\r\n\r\n  goToLogin() {\r\n    this.router.navigateByUrl('login');\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n\r\n","<div *ngIf=\"!openConfirmation\" class=\"stepper-panel\">\r\n    <div class=\"form-panel\">\r\n      <mat-stepper [orientation]=\"stepperOrientation\" #stepper linear=\"true\">\r\n        <!-- Current Username & Email -->\r\n        <mat-step class=\"stepper-icon\" [stepControl]=\"usernameFrmGp\">\r\n          <form [formGroup]=\"usernameFrmGp\">\r\n            <ng-template matStepLabel>Enter Your Current Username</ng-template>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput placeholder=\"Username\" #loginId formControlName=\"loginId\" autocomplete=\"off\" required>\r\n                <!-- <mat-error>{{loginErrorMessage}}</mat-error> -->\r\n                <mat-error *ngIf=\"usernameFrmGp.get('loginId')?.hasError('pattern')\">Invalid Username.</mat-error>\r\n                <mat-error *ngIf=\"usernameFrmGp.get('loginId')?.hasError('required')\">Required</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput placeholder=\"Current Email\" formControlName=\"email\" autocomplete=\"off\" required>\r\n                <mat-hint *ngIf=\"isValidAccount && !isCheckingLogin\" class=\"mat-hint-success\">{{accountSuccessMessage}}\r\n                </mat-hint>\r\n                <span *ngIf=\"isCheckingLogin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                <span *ngIf=\"isValidAccount\" matSuffix><i class=\"fa fa-check ts-l c-green0\"></i></span>\r\n                <mat-error *ngIf=\"!accountErrorMessage?.length\">{{emailErrorMessage}}</mat-error>\r\n                <mat-error *ngIf=\"accountErrorMessage?.length\">{{accountErrorMessage}}</mat-error>\r\n\r\n                <mat-error *ngIf=\"usernameFrmGp.get('email')?.hasError('required')\">Required</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-btn-row pt-2 pb-2\">\r\n              <button class=\"btn btn-secondary\" mat-button (click)=\"goToLogin()\">Back</button>\r\n              <button class=\"btn btn-primary-short\" mat-button matStepperNext [disabled]=\"!isValidAccount\">Next</button>\r\n            </div>\r\n          </form>\r\n        </mat-step>\r\n        <!-- 2. Security Question -->\r\n        <mat-step class=\"stepper-icon\" [stepControl]=\"securityFrmGp\">\r\n          <form [formGroup]=\"securityFrmGp\">\r\n            <ng-template matStepLabel>Answer Your Security Question</ng-template>\r\n            <div class=\"flex-input-col\">\r\n              <mat-form-field>\r\n                <input matInput formControlName=\"challengeQuestion\" readonly>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-input-col\">\r\n              <mat-form-field>\r\n                <input matInput placeholder=\"Challenge Answer\" formControlName=\"challengeAnswer\" autocomplete=\"off\">\r\n                <mat-hint *ngIf=\"isValidAnswer && !isCheckingAnswer\" class=\"c-green0\">{{challengeSuccessMessage}}\r\n                </mat-hint>\r\n                <span *ngIf=\"isCheckingAnswer\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                <span *ngIf=\"isValidAnswer\" matSuffix><i class=\"fa fa-check ts-l c-green0\"></i></span>\r\n                <mat-error *ngIf=\"securityFrmGp.get('challengeAnswer')?.hasError('notverified')\">{{challengeErrorMessage}}\r\n                </mat-error>\r\n                <mat-error *ngIf=\"securityFrmGp.get('challengeAnswer')?.hasError('required')\">Required</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-btn-row pt-2 pb-2\">\r\n              <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n              <button class=\"btn btn-primary-short\" mat-button matStepperNext [disabled]=\"!isValidAnswer\">Next</button>\r\n            </div>\r\n          </form>\r\n        </mat-step>\r\n        <!-- 3. Reset -->\r\n        <mat-step class=\"stepper-icon\" [stepControl]=\"passwordFrmGp\">\r\n          <form [formGroup]=\"passwordFrmGp\">\r\n            <ng-template matStepLabel>Complete Information Below</ng-template>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput placeholder=\"New Password\" [type]=\"passwordHide ? 'password' : 'text'\"\r\n                  formControlName=\"newpassword1\" autocomplete=\"off\">\r\n                <mat-hint>{{passwordHintMessage}}</mat-hint>\r\n                <mat-icon matSuffix (click)=\"togglePasswordHide()\">{{passwordHide ? 'visibility_off' : 'visibility'}}\r\n                </mat-icon>\r\n                <mat-error>{{passwordErrorMessage}}</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput [errorStateMatcher]=\"errorMatcher\" placeholder=\"Confirm Password\"\r\n                  [type]=\"passwordConfirmHide ? 'password' : 'text'\" formControlName=\"newpassword2\" autocomplete=\"off\">\r\n                <mat-icon matSuffix (click)=\"toggleConfirmPasswordHide()\">{{passwordConfirmHide ? 'visibility_off' :\r\n                  'visibility'}}</mat-icon>\r\n                <mat-error *ngIf=\"passwordFrmGp.hasError('doNotMatch')\">\r\n                  Passwords do not match.\r\n                </mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-btn-row pt-2 pb-2\">\r\n              <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n              <button [disabled]=\"!passwordFrmGp.valid\" class=\"btn btn-primary-short\" mat-button\r\n                (click)=\"saveNewPassword()\">Change Password</button>\r\n            </div>\r\n          </form>\r\n        </mat-step>\r\n      </mat-stepper>\r\n    </div>\r\n  </div>\r\n  \r\n  <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [confirmationTitle]=\"confirmationTitle\"\r\n    [confirmationMessage]=\"confirmationMessage\" [confirmationEmailAddress]=\"confirmationEmailAddress\"\r\n    [confirmationNumber]=\"confirmationNumber\" [restart]=\"true\" [goToPrimary]=\"goToPrimary\"\r\n    [goToPrimaryUrl]=\"goToPrimaryUrl\">\r\n  </epay-lib-common-confirmation>\r\n  ","import { Component, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-forgotpassword',\r\n  templateUrl: './forgotpassword.component.html',\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n  pagetitle = 'Forgot Password';\r\n  baseurl = '';\r\n\r\n  constructor() {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main max-w max-gl\" id=\"page-content-main\">\r\n    <!-- <epay-lib-common-forgotpassword [baseurl]=\"baseurl\">\r\n    </epay-lib-common-forgotpassword> -->\r\n\r\n    <common-forgot-password [baseurl]=\"baseurl\"></common-forgot-password>\r\n  </div>\r\n</epay-page-content>\r\n","import { StepperOrientation } from '@angular/cdk/stepper';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, AbstractControl, Validators } from '@angular/forms';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { IChallengeQuestion, ErrorHandlerService, ViewportService, RegisterLibraryService } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\nimport { debounceTime } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'common-forgot-username',\r\n  templateUrl: './forgot-username.component.html'\r\n})\r\nexport class CommonForgotUsernameComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n\r\n  isMobile = false;\r\n  stepperOrientation: StepperOrientation = 'horizontal';\r\n\r\n  errorMessage = '';\r\n  userQuestion: any;\r\n  loginErrorMessage = '';\r\n  emailErrorMessage = '';\r\n  accountSuccessMessage = '';\r\n  accountErrorMessage = '';\r\n  challengeSuccessMessage = '';\r\n  challengeErrorMessage = '';\r\n  displayUsername = '';\r\n  isCheckingLogin = false;\r\n  isCheckingAnswer = false;\r\n  isValidAccount = false;\r\n  isValidAnswer = false;\r\n  passwordHide = true;\r\n\r\n  questions: IChallengeQuestion[] = [];\r\n  passwordFrmGp: FormGroup = new FormGroup({});\r\n  securityFrmGp: FormGroup = new FormGroup({});\r\n  submitFrmGp: FormGroup = new FormGroup({});\r\n\r\n  passwordHintMessage = 'Must contain at least 6 letters, 2 numbers, and at least one special character with a maximum of 12 characters.';\r\n\r\n  loginPattern =\r\n    /(?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*/;\r\n\r\n  //passwordPattern = /(?=^[A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\d]{8,12}$)(?=(.*[A-Za-z]){6})(?=(.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]){1})(?=(.*\\d){2})^.*/;\r\n\r\n  validationPasswordMessages: { [key: string]: string } = {\r\n    required: 'Password is required.',\r\n    minlength: 'Invalid password. Passwords must be between 8 to 12 characters in length.',\r\n    maxlength: 'Invalid password. Passwords must be between 8 to 12 characters in length.',\r\n    pattern:\r\n      'Invalid Password.  Must contain at least 6 letters, 2 numbers, and one special character with a maximum of 12 characters.',\r\n  };\r\n\r\n  validationEmailMessages: { [key: string]: string } = {\r\n    required: 'Email is required.',\r\n    email: 'Email format is invalid.',\r\n    notFound: 'Account is not found.',\r\n  };\r\n\r\n  validationChallengeMessages: { [key: string]: string } = {\r\n    required: 'Answer is required.',\r\n    notVerified: 'Challenge answer is incorrect.',\r\n  };\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private viewpointService: ViewportService,\r\n    private registerService: RegisterLibraryService,\r\n    public snackbar: MatSnackBar\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.loadFormGroups();\r\n    const passwordCtrl = this.passwordFrmGp.get('password');\r\n    const emailCtrl = this.passwordFrmGp.get('email');\r\n    const answerCtrl = this.securityFrmGp.get('challengeAnswer');\r\n\r\n    this.viewpointService.IsMobile.subscribe(\r\n      (ismobile: boolean) => (this.isMobile = ismobile)\r\n    );\r\n\r\n    this.viewpointService.StepperOrient.subscribe(\r\n      (orient) => (this.stepperOrientation = orient)\r\n    );\r\n\r\n    passwordCtrl!.valueChanges\r\n      .pipe(debounceTime(200))\r\n      .subscribe((currentPassword) => {\r\n        this.resetAccountCheck();\r\n        emailCtrl!.setErrors(null);\r\n        emailCtrl!.updateValueAndValidity();\r\n        if (\r\n          (passwordCtrl!.touched || passwordCtrl!.dirty) &&\r\n          passwordCtrl!.errors\r\n        ) {\r\n          // this.loginErrorMessage = Object.keys(passwordCtrl!.errors)\r\n          //   .map((key) => this.validationPasswordMessages[key])\r\n          //   .join(' ');\r\n        } else if (\r\n          (emailCtrl!.touched || emailCtrl!.dirty) &&\r\n          emailCtrl!.errors\r\n        ) {\r\n          this.emailErrorMessage = Object.keys(emailCtrl!.errors)\r\n            .map((key) => this.validationEmailMessages[key])\r\n            .join(' ');\r\n        } else if (\r\n          (emailCtrl!.touched || emailCtrl!.dirty) &&\r\n          !emailCtrl!.errors\r\n        ) {\r\n          this.isCheckingLogin = true;\r\n          const user = {\r\n            password: currentPassword,\r\n            email: this.passwordFrmGp.get('email')!.value,\r\n          };\r\n          this.registerService\r\n            .getUserChallengeQuestion(this.baseurl, user)\r\n            .subscribe({\r\n              next: (result: any) => {\r\n                this.setAccountMessage(passwordCtrl!, emailCtrl!, result);\r\n                this.securityFrmGp.patchValue({\r\n                  challengeQuestion: result.challengeQuestion,\r\n                });\r\n                this.isCheckingLogin = false;\r\n              },\r\n              error: (error: any) => {\r\n                this.resetAccountCheck();\r\n                this.errorMessage = error as any;\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              },\r\n            });\r\n        }\r\n      });\r\n\r\n    emailCtrl!.valueChanges\r\n      .pipe(debounceTime(500))\r\n      .subscribe((emailAddress) => {\r\n        this.resetAccountCheck();\r\n        if ((emailCtrl!.touched || emailCtrl!.dirty) && emailCtrl!.errors) {\r\n          this.emailErrorMessage = Object.keys(emailCtrl!.errors)\r\n            .map((key) => this.validationEmailMessages[key])\r\n            .join(' ');\r\n          return;\r\n        } else if (\r\n          (passwordCtrl!.touched || passwordCtrl!.dirty) &&\r\n          passwordCtrl!.errors\r\n        ) {\r\n          // this.emailErrorMessage = Object.keys(passwordCtrl!.errors)\r\n          //   .map((key) => this.validationPasswordMessages[key])\r\n          //   .join(' ');\r\n          return;\r\n        } else if (\r\n          (passwordCtrl!.touched || passwordCtrl!.dirty) &&\r\n          !passwordCtrl!.errors\r\n        ) {\r\n          this.isCheckingLogin = true;\r\n          const user = {\r\n            password: this.passwordFrmGp.get('password')!.value,\r\n            email: emailAddress,\r\n          };\r\n          this.registerService\r\n            .getUserChallengeQuestion(this.baseurl, user)\r\n            .subscribe({\r\n              next: (result: any) => {\r\n                this.setAccountMessage(passwordCtrl!, emailCtrl!, result);\r\n                this.securityFrmGp.patchValue({\r\n                  challengeQuestion: result.challengeQuestion,\r\n                });\r\n                this.isCheckingLogin = false;\r\n              },\r\n              error: (error: any) => {\r\n                this.resetAccountCheck();\r\n                this.errorMessage = error as any;\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              },\r\n            });\r\n        }\r\n      });\r\n\r\n    answerCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((answer) => {\r\n      if ((answerCtrl!.touched || answerCtrl!.dirty) && answerCtrl!.errors) {\r\n        this.emailErrorMessage = Object.keys(answerCtrl!.errors)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      } else {\r\n        this.isCheckingAnswer = true;\r\n        const answerObj = {\r\n          password: this.passwordFrmGp.get('password')!.value,\r\n          email: this.passwordFrmGp.get('email')!.value,\r\n          answer: this.securityFrmGp.get('challengeAnswer')!.value,\r\n        };\r\n        this.registerService\r\n          .validateChallengeAnswer(this.baseurl, answerObj)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.setChallengeMessage(answerCtrl!, result);\r\n              this.isCheckingAnswer = false;\r\n            },\r\n            error: (error: any) => {\r\n              this.resetChallengeCheck();\r\n              this.errorMessage = error as any;\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      }\r\n    });\r\n  }\r\n\r\n  togglePasswordHide() {\r\n    this.passwordHide = !this.passwordHide;\r\n  }\r\n\r\n  resetAccountCheck() {\r\n    this.isValidAccount = false;\r\n    this.isCheckingLogin = false;\r\n    this.accountSuccessMessage = '';\r\n    this.accountErrorMessage = '';\r\n    this.emailErrorMessage = '';\r\n    this.loginErrorMessage = '';\r\n    this.userQuestion = '';\r\n  }\r\n\r\n  resetChallengeCheck() {\r\n    this.isCheckingAnswer = false;\r\n    this.securityFrmGp.patchValue({\r\n      challengeAnswer: '',\r\n    });\r\n  }\r\n\r\n  retrieveUsername() {\r\n    if (this.securityFrmGp.valid) {\r\n      const username = {\r\n        validated: true,\r\n        emailAddress: this.passwordFrmGp.get('email')!.value,\r\n        password: this.passwordFrmGp.get('password')!.value,\r\n        challengeAnswer: this.securityFrmGp.get('challengeAnswer')!.value,\r\n      };\r\n      this.registerService.forgotUsername(this.baseurl, username).subscribe({\r\n        next: (result: any) => {\r\n          this.displayUsername = result.loginID;\r\n        },\r\n        error: (error: any) => {\r\n          this.errorMessage = error as any;\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        },\r\n      });\r\n    }\r\n  }\r\n\r\n  setAccountMessage(\r\n    passwordControl: AbstractControl,\r\n    emailControl: AbstractControl,\r\n    result: any\r\n  ) {\r\n    this.accountErrorMessage = '';\r\n    this.accountSuccessMessage = '';\r\n\r\n    if (passwordControl.dirty && emailControl.dirty) {\r\n      this.isValidAccount = result.challengeQuestionIndex === -1 ? false : true;\r\n      if (this.isValidAccount) {\r\n        this.accountSuccessMessage = 'Account found.';\r\n      } else {\r\n        emailControl.setErrors({ notFound: true });\r\n        this.accountErrorMessage = Object.keys(emailControl.errors!)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  setChallengeMessage(answerControl: AbstractControl, result: any) {\r\n    if (answerControl.dirty || answerControl.touched) {\r\n      this.isValidAnswer = result.verified;\r\n      if (this.isValidAnswer) {\r\n        this.challengeSuccessMessage = 'Correct!';\r\n      } else {\r\n        answerControl.setErrors({ notVerified: true });\r\n        this.challengeErrorMessage = Object.keys(answerControl.errors!)\r\n          .map((key) => this.validationChallengeMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.passwordFrmGp = this.formbuilder.group({\r\n      email: ['', [Validators.email, Validators.required]],\r\n      password: [\r\n        '',\r\n        [Validators.required, Validators.minLength(8), Validators.maxLength(12)],\r\n      ],\r\n    });\r\n\r\n    this.securityFrmGp = this.formbuilder.group({\r\n      challengeQuestion: ['', Validators.required],\r\n      challengeAnswer: ['', Validators.required],\r\n    });\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  onSaveComplete() {\r\n    this.passwordFrmGp.reset();\r\n    this.securityFrmGp.reset();\r\n    this.passwordFrmGp.reset();\r\n    this.router.navigate(['login']);\r\n  }\r\n\r\n  goToLogin() {\r\n    this.passwordFrmGp.reset();\r\n    this.securityFrmGp.reset();\r\n    this.passwordFrmGp.reset();\r\n    this.router.navigateByUrl('login');\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n","<div class=\"stepper-panel username-recovery-flow\">\r\n    <div class=\"form-panel panel-desktop\">\r\n      <mat-stepper [orientation]=\"stepperOrientation\" #stepper linear=\"true\">\r\n        <!-- 1. Current Pass & Email -->\r\n        <mat-step class=\"stepper-icon\" [stepControl]=\"passwordFrmGp\">\r\n          <form [formGroup]=\"passwordFrmGp\">\r\n            <ng-template matStepLabel>Enter Your Current Password</ng-template>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>                <input matInput placeholder=\"Current Password\" [type]=\"passwordHide ? 'password' : 'text'\"\r\n                  formControlName=\"password\" autocomplete=\"off\">\r\n                <mat-icon matSuffix (click)=\"togglePasswordHide()\">{{passwordHide ? 'visibility_off' : 'visibility'}}\r\n                </mat-icon>\r\n                <mat-error>{{loginErrorMessage}}</mat-error>\r\n                <mat-error *ngIf=\"passwordFrmGp.get('password')?.hasError('required')\">Required</mat-error>\r\n                <mat-error *ngIf=\"passwordFrmGp.get('password')?.hasError('maxlength')\">Invalid password. Passwords must be between 8 to 12 characters in length.</mat-error>\r\n                <mat-error *ngIf=\"passwordFrmGp.get('password')?.hasError('minlength')\">Invalid password. Passwords must be between 8 to 12 characters in length.</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput placeholder=\"Current Email\" formControlName=\"email\" autocomplete=\"off\">\r\n                <mat-hint *ngIf=\"isValidAccount && !isCheckingLogin\" class=\"c-green0\">\r\n                  {{accountSuccessMessage}}</mat-hint>\r\n                <span *ngIf=\"isCheckingLogin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                <span *ngIf=\"isValidAccount\" matSuffix><i class=\"fa fa-check ts-l c-green0\"></i></span>\r\n                <mat-error *ngIf=\"!accountErrorMessage?.length\">{{emailErrorMessage}}</mat-error>\r\n                <mat-error *ngIf=\"accountErrorMessage?.length\">{{accountErrorMessage}}</mat-error>\r\n                <mat-error *ngIf=\"passwordFrmGp.get('password')?.hasError('required')\">Required</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-btn-row pt-2 pb-2\">\r\n              <button class=\"btn btn-secondary\" mat-button (click)=\"goToLogin()\">Back</button>\r\n              <button class=\"btn btn-primary-short\" mat-button matStepperNext [disabled]=\"!isValidAccount\">Next</button>\r\n            </div>\r\n          </form>\r\n        </mat-step>\r\n        <!-- 2. Security Question -->\r\n        <mat-step class=\"stepper-icon\" [stepControl]=\"securityFrmGp\">\r\n          <form [formGroup]=\"securityFrmGp\">\r\n            <ng-template matStepLabel>Answer your Security Question</ng-template>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput formControlName=\"challengeQuestion\" readonly>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-input-col pt-2 pb-2\">\r\n              <mat-form-field>\r\n                <input matInput placeholder=\"Challenge Answer\" formControlName=\"challengeAnswer\" autocomplete=\"off\">\r\n                <span *ngIf=\"isCheckingAnswer\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                <span *ngIf=\"isValidAnswer\" matSuffix><i class=\"fa fa-check ts-l c-green0\"></i></span>\r\n                <mat-hint *ngIf=\"isValidAnswer && !isCheckingAnswer\" class=\"c-green0\">\r\n                  {{challengeSuccessMessage}}</mat-hint>\r\n                <mat-error>{{challengeErrorMessage}}</mat-error>\r\n                <mat-error *ngIf=\"securityFrmGp.get('challengeAnswer')?.hasError('required')\">Required</mat-error>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"flex-btn-row pt-2 pb-2\">\r\n              <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n              <button class=\"btn btn-primary-short\" (click)=\"retrieveUsername()\" mat-button matStepperNext\r\n                [disabled]=\"!isValidAnswer\">Next</button>\r\n            </div>\r\n          </form>\r\n        </mat-step>\r\n        <!-- 3. Retrieve Username -->\r\n        <mat-step class=\"stepper-icon\">\r\n          <ng-template matStepLabel>Retrieve Username</ng-template>\r\n          <div class=\"pt-2 pb-2\">\r\n            <p>Your Username is: </p>\r\n            <h2>{{displayUsername}}</h2>\r\n          </div>\r\n          <div class=\"flex-btn-row pt-2 pb-2\">\r\n            <button class=\"btn btn-submit\" mat-raised-button (click)=\"goToLogin()\">Go to Login</button>\r\n          </div>\r\n        </mat-step>\r\n      </mat-stepper>\r\n    </div>\r\n  </div>\r\n  ","import { Component, Input, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-forgotusername',\r\n  templateUrl: './forgotusername.component.html',\r\n})\r\nexport class ForgotUsernameComponent implements OnInit {\r\n  isMobile = false;\r\n  baseurl = '';\r\n  pagetitle = 'Forgot Username';\r\n\r\n  constructor() {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main max-w max-gl\" id=\"page-content-main\">\r\n    <!-- <epay-lib-common-forgotusername [baseurl]=\"baseurl\">\r\n    </epay-lib-common-forgotusername> -->\r\n\r\n    <common-forgot-username [baseurl]=\"baseurl\"></common-forgot-username>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService, ErrorHandlerService } from 'epay-library';\r\nimport { CommonSettings } from 'epay-library';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\n@Component({\r\n  selector: 'epay-home',\r\n  templateUrl: './home.component.html',\r\n})\r\nexport class HomeComponent implements OnInit {\r\n  message1 = '';\r\n  message2 = '';\r\n  message3 = '';\r\n  baseurl: string;\r\n  empWebsiteCode: string;\r\n  isIE = false;\r\n  ieMessage = '';\r\n  mobileMessage = '';\r\n  deviceInfo: any;\r\n  isMobile = false;\r\n  isTablet = false;\r\n  isDesktop = false;\r\n  pagetitle = '';\r\n\r\n  constructor(\r\n    private router: Router,\r\n    private authservice: AuthService,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private deviceService: DeviceDetectorService\r\n  ) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.empWebsiteCode = CommonSettings.EmpWebsiteCode;\r\n    this.pagetitle = 'SMART Oklahoma Child Support Home';\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.authservice\r\n      .getWebsiteMessage(this.baseurl, this.empWebsiteCode)\r\n      .subscribe({\r\n        next: (message: any) => {\r\n          if (message.length) {\r\n            if (message[0].isActive === true) {\r\n              this.message1 = message[0].messageText1;\r\n              this.message2 = message[0].messageText2;\r\n              this.message3 = message[0].messageText3;\r\n            }\r\n          } else {\r\n            this.message1 = '';\r\n            this.message2 = '';\r\n            this.message3 = '';\r\n          }\r\n        },\r\n        error: (error: any) => {\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        },\r\n      });\r\n    this.checkBrowser();\r\n    this.checkDevice();\r\n  }\r\n\r\n  checkBrowser() {\r\n    this.isIE = false;\r\n    this.ieMessage = '';\r\n\r\n    const match = navigator.userAgent.search(/(?:Edge|MSIE|Trident\\/.*; rv:)/);\r\n    if (match !== -1) {\r\n      this.isIE = true;\r\n    }\r\n    this.ieMessage = `You are using Internet Explorer.\r\n                      Some functions and tasks are not supported in this browser.\r\n                      Please switch to Chrome, Edge, or another modern browser.`;\r\n  }\r\n\r\n  checkDevice() {\r\n    this.deviceInfo = this.deviceService.getDeviceInfo();\r\n    this.isMobile = this.deviceService.isMobile();\r\n    this.isTablet = this.deviceService.isTablet();\r\n    this.isDesktop = this.deviceService.isDesktop();\r\n\r\n    if (this.isMobile) {\r\n      this.mobileMessage = `You are using a mobile device. Some functions and tasks are not supported\r\n                           using a mobile device.  Please switch to a desktop for use of all functions.`;\r\n    }\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <!-- TODO: user flow for employer / ncp; existing / new user; ACH / credit -->\r\n  <div class=\"page-content-main max-w max-gxs t-alignC\" id=\"page-content-main\">\r\n    <div class=\"box-panel ie-note mb-5\" *ngIf=\"isIE\">\r\n      <div class=\"small-note-block alert-note\">\r\n        <p class=\"c-red1\">\r\n          {{ieMessage}}\r\n        </p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n    <div class=\"page-content-main max-w max-gs t-alignC\" id=\"page-content-main\">\r\n      <div class=\"box-panel translucent-panel access-panel mb-5\">\r\n        <h1>Welcome to Our New Website</h1>\r\n        <p style=\"font-size: larger;\">\r\n          Our redesigned website has a fresh new look and is easy to navigate.<br>\r\n          The same options are available as on our previous website.<br>\r\n          A Helpful Links menu is available if you need assistance.\r\n        </p>\r\n\r\n      </div>\r\n    </div>\r\n    <div class=\"page-content-main max-w max-gxs t-alignC\" id=\"page-content-main\">\r\n    <div class=\"box-panel translucent-panel access-panel mb-5\">\r\n      <p class=\"mb-2\">This Oklahoma Child Support Internet Payment Website is dedicated to providing quality\r\n        customer service to noncustodial parents and employers who need assistance with the child support payment\r\n        process.</p>\r\n      <!-- Start here -->\r\n      <div class=\"access-links m--pa4 mb-5\">\r\n        <div class=\"mb-3\">\r\n          <a class=\"db btn-link mt-3\" [routerLink]=\"['/login']\">Login</a>\r\n          <a class=\"db btn-link mt-3\" [routerLink]=\"['/register']\">Create Account</a>\r\n          <a class=\"db btn-link mt-3\" [routerLink]=\"['/ncp/creditcard']\">NCP Credit Card Payment</a>\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"small-note-block alert-note mb-2\">\r\n        <p class=\"c-red1\">This Website Does Not Accept Payments Drawn on a Foreign Bank Account</p>\r\n      </div>\r\n      <div class=\"small-note-block xs-note\">\r\n        <p>Note: This website requires that cookies be enabled in your\r\n          browser. By accessing this site, you agree to have cookies stored on your computer. You can read more about\r\n          how this site uses cookies in our <a [routerLink]=\"['/privacypolicy']\">Privacy Policy</a>\r\n        </p>\r\n      </div>\r\n    </div>\r\n\r\n  </div>\r\n  <div class=\"page-content-main max-w max-gs t-alignC\">\r\n    <div class=\"message-panel\" *ngIf=\"message1\">\r\n      <div class=\"box-panel\">\r\n        <p class=\"c-red1b\">{{message1}}</p>\r\n        <p class=\"c-red1b\">{{message2}}</p>\r\n        <p class=\"c-red1b\">{{message3}}</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-howtos',\r\n  templateUrl: './howtos.component.html'\r\n})\r\nexport class HowTosComponent implements OnInit {\r\n\r\n  pagetitle = 'Oklahoma Child Support Website Help';\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"container\">\r\n    <div class=\"shadow max-w max-gs\" id=\"page-content-main\">\r\n      <mat-card class=\"\" style=\"border-radius: 10px\">\r\n        <mat-card-content>\r\n          <h4 style=\"color: rgb(92, 92, 92); margin-left: 1vw\">Helpful Links</h4>\r\n\r\n          <div class=\"accordion-flush\" id=\"accordionExample\">\r\n            <div class=\"accordion-item\">\r\n              <h2 class=\"accordion-header\" id=\"headingOne\">\r\n                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                  data-bs-target=\"#collapseOne\" aria-expanded=\"true\" aria-controls=\"collapseOne\">\r\n                  <h3>Noncustodial Parent Links</h3>\r\n                </button>\r\n              </h2>\r\n              <div id=\"collapseOne\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingOne\"\r\n                data-bs-parent=\"#accordionExample\">\r\n                <div class=\"accordion-body\">\r\n                  <div class=\"mb-5 mt-3\">\r\n                    <h2 class=\"h3 mb-1 panel-default\">Noncustodial Parent Registration</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Register_NCP_Self.pdf\">\r\n                        How to Register a New Account (for self)\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Register_NCP_Third_Party.pdf\">\r\n                        How to Register a New Account (for someone else)\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                  <div class=\"mb-5\">\r\n                    <h2 class=\"h3 mb-1\">Bank Account</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Add Bank Account_NCP.pdf\">\r\n                        How to Add a Bank Account\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                  <div class=\"mb-5\">\r\n                    <h2 class=\"h3 mb-1\">ACHD Payments</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Create Payments_NCP.pdf\">\r\n                        How to Create a New Payment\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            <div class=\"accordion-item\">\r\n              <h2 class=\"accordion-header\" id=\"headingTwo\">\r\n                <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                  data-bs-target=\"#collapseTwo\" aria-expanded=\"false\" aria-controls=\"collapseTwo\">\r\n                  <h3>Employer Links</h3>\r\n                </button>\r\n              </h2>\r\n              <div id=\"collapseTwo\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingTwo\"\r\n                data-bs-parent=\"#accordionExample\">\r\n                <div class=\"accordion-body\">\r\n                  <div class=\"mb-5 mt-3\">\r\n                    <h2 class=\"h3 mb-1\">Employer Registration</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Register.pdf\">\r\n                        How to Register a New Account\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                  <div class=\"mb-5\">\r\n                    <h2 class=\"h3 mb-1\">Bank Account</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Add Bank Account.pdf\">\r\n                        How to Add a Bank Account\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                  <div class=\"mb-5\">\r\n                    <h2 class=\"h3 mb-1\">ACHD Payments</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Create Payments.pdf\">\r\n                        How to Create a New Payment\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                  <div class=\"\">\r\n                    <h2 class=\"h3 mb-1\">EFT/EDI</h2>\r\n                    <p><a target=\"_blank\" href=\"/assets/help/How To Reconcile Employees Create File.pdf\">\r\n                        How to Reconcile Employees and/or Create File\r\n                        <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                      </a></p>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </mat-card-content>\r\n      </mat-card>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService, ErrorHandlerService, CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-login',\r\n  templateUrl: './login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n  pagetitle = 'Login';\r\n  creditCardMessage: string;\r\n  loginType: string;\r\n  tokenurl: string;\r\n  baseurl: string;\r\n  timeoutInMins: string;\r\n  clientId: string;\r\n\r\n  message1 = '';\r\n  message2 = '';\r\n  message3 = '';\r\n  empWebsiteCode = '';\r\n\r\n  constructor(\r\n    private authservice: AuthService,\r\n    private errorHandlerService: ErrorHandlerService\r\n  ) {\r\n    this.creditCardMessage = '';\r\n    this.loginType = '';\r\n    this.tokenurl = CommonSettings.TokenApi;\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.timeoutInMins = CommonSettings.TimeOutInMins;\r\n    this.clientId = CommonSettings.ClientID;\r\n    this.empWebsiteCode = CommonSettings.EmpWebsiteCode;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.authservice\r\n      .getWebsiteMessage(this.baseurl, this.empWebsiteCode)\r\n      .subscribe({\r\n        next: (message: any) => {\r\n          if (message.length) {\r\n            if (message[0].isActive === true) {\r\n              this.message1 = message[0].messageText1;\r\n              this.message2 = message[0].messageText2;\r\n              this.message3 = message[0].messageText3;\r\n            }\r\n          } else {\r\n            this.message1 = '';\r\n            this.message2 = '';\r\n            this.message3 = '';\r\n          }\r\n        },\r\n        error: (error: any) => {\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        },\r\n      });\r\n    if (history.state.creditCardMessage) {\r\n      this.creditCardMessage = history.state.creditCardMessage;\r\n    } else {\r\n      this.creditCardMessage = '';\r\n    }\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div *ngIf=\"creditCardMessage\" class=\"row justify-content-center\">\r\n    <div class=\"col-8 box-panel mt-5 text-center\">\r\n      {{creditCardMessage}}\r\n    </div>\r\n  </div>\r\n  <epay-lib-common-login [tokenurl]=\"tokenurl\" [baseurl]=\"baseurl\" [sessionTimeout]=\"timeoutInMins\"\r\n    [clientId]=\"clientId\">\r\n  </epay-lib-common-login>\r\n  <br>\r\n  <div class=\"page-content-main max-w max-gs t-alignC\">\r\n    <div class=\"message-panel\" *ngIf=\"message1\">\r\n      <div class=\"box-panel\">\r\n        <p class=\"c-red1b\">{{message1}}</p>\r\n        <p class=\"c-red1b\">{{message2}}</p>\r\n        <p class=\"c-red1b\">{{message3}}</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Location } from '@angular/common';\r\nimport { AuthService, CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-logoutwarning',\r\n  templateUrl: './logoutwarning.component.html',\r\n})\r\nexport class LogoutWarningComponent implements OnInit {\r\n  pagetitle = '';\r\n\r\n  constructor(\r\n    private location: Location,\r\n    private authservice: AuthService,\r\n    public snackbar: MatSnackBar\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.pagetitle = 'Logout Warning';\r\n  }\r\n\r\n  stayLoggedIn() {\r\n    this.location.back();\r\n  }\r\n  logout() {\r\n    this.authservice.logout(CommonSettings.BaseApi);\r\n    this.openSnackBar(\r\n      'You have been successfully logged out.',\r\n      3500,\r\n      'snackbar-success'\r\n    );\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"box-panel shadow max-w max-gs\">\r\n    <div class=\"m--pa4\">\r\n      <!-- <div class=\"col-10\"> -->\r\n      <h3>Your session is about to expire.</h3>\r\n      <!-- </div> -->\r\n      <!-- <div class=\"col-10\"> -->\r\n      <p>\r\n        You've been inactive for a while. For your security, we'll automatically sign you out\r\n        in approximately 30 seconds. You may choose \"Stay Signed In\" to continue or \"Sign Out\" if you're done.\r\n      </p>\r\n      <!-- </div> -->\r\n      <div class=\"flex-btn-col pt-2 pb-2\">\r\n        <button class=\"btn btn-primary\" style=\"border-color: gray; background-color: gray; \"\r\n          (click)=\"stayLoggedIn()\">Stay\r\n          Signed In</button>\r\n        <button class=\"btn btn-primary ml-2\" (click)=\"logout()\">Sign Out</button>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-privacypolicy',\r\n  templateUrl: './privacypolicy.component.html'\r\n})\r\nexport class PrivacyPolicyComponent implements OnInit {\r\n  pagetitle = 'Privacy Policy';\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gm\" id=\"page-content-main\">\r\n    <div class=\"m--pa4\" style=\"max-height: 30rem; overflow-y:scroll\">\r\n\r\n      <h2>Privacy Statement</h2>\r\n      <i class=\"text-muted\">Last Updated: 03/18/2024</i>\r\n      <hr>\r\n\r\n      This policy addresses how information obtained through your use of this web site is collected, stored, and used. The following \r\n      topics are covered:  <br />\r\n      <br />\r\n\r\n      <ul class=\"list-bullet mx-3\">\r\n        <li>\r\n          Collection and storage of technical information <br />\r\n        </li>\r\n\r\n        <li>\r\n          Collection and storage of personal information <br />\r\n        </li>\r\n\r\n        <li>\r\n          Collection and storage of account information <br />\r\n        </li>\r\n\r\n        <li>\r\n          Disclosure of personal and account information <br />\r\n        </li>\r\n\r\n        <li>\r\n          International transactions <br />\r\n        </li>\r\n\r\n        <li>\r\n          Securing the web site\r\n        </li>\r\n      </ul>\r\n      <br />\r\n\r\n      <STRONG>Collection and Storage of Technical Information </STRONG>\r\n      <hr>\r\n  \r\n      Whenever you browse the web site or download forms, we collect and store information about your visit. This information \r\n      does not identify you personally and consists of: \r\n      <br />\r\n\r\n      <br />\r\n      <ul class=\"list-bullet mx-3\">\r\n        <li>\r\n          Your Internet protocol address. This is a numerical identifier assigned either to your Internet service provider or your computer. \r\n          It can often be translated to determine the domain name of your service provider. <br />\r\n        </li>\r\n\r\n        <li>\r\n          The date and time of your first and last visit to this site. <br />\r\n        </li>\r\n\r\n        <li>\r\n          The web pages or services you accessed during your visit. <br />\r\n        </li>\r\n      </ul>\r\n      <br />\r\n\r\n      <STRONG>Collection and Storage of Personal Information</STRONG>\r\n      <hr>\r\n  \r\n      Certain personal information is required when you choose to submit a child support payment via our web site. This information is \r\n      collected and stored and readily identifies you; for example, your name, address, telephone number, e-mail address, social security \r\n      number, or case identifier.\r\n      <br />\r\n\r\n      <br>\r\n      <STRONG>Collection and Storage of Account Information</STRONG>\r\n      <hr>\r\n  \r\n      If you register for our bank draft service, the checking or savings account number that you provide is stored for processing purposes. \r\n      If you choose to make a child support payment with your credit card, your card information is collected so we can process your payment, \r\n      however it is not stored. If you choose to make another payment with your credit card at a future time, you will be required to resubmit \r\n      your credit card information. The authorization number provided by your credit card company (when your payment is approved) is collected \r\n      and stored. \r\n      <br />\r\n\r\n      <br />\r\n      <STRONG>Disclosure of Personal and Account Information</STRONG>\r\n      <hr>\r\n  \r\n      It is our policy to treat all personal and account information as confidential. However, we may disclose information to third parties \r\n      about your account, or the transactions you make, in the following situations: \r\n      <br />\r\n\r\n      <br />\r\n      <div class=\"mx-3\">\r\n        1. Where it is necessary for completing transactions, such as to the processing financial institution; <br />\r\n        <br />\r\n  \r\n        2. In order to verify existence and condition of your account for a third party such as a credit bureau or merchant;  <br />\r\n        <br />\r\n  \r\n        3. If you give us your written permission; and  <br />\r\n        <br />\r\n  \r\n        4. Where required by law or in other appropriate circumstances.  <br />\r\n        <br />\r\n      </div>\r\n\r\n      The personal information that you submit, such as a social security number, may become part of the child support file, however, \r\n      all child support files are confidential. <br />\r\n\r\n      <br />\r\n      <STRONG>International Transactions</STRONG>\r\n      <hr>\r\n  \r\n      All payments made through this web site are intended only for payments not associated with a foreign bank account, which would \r\n      classify it as an international ACH transaction (IAT). \r\n      <br />\r\n\r\n      <br />\r\n      <STRONG>Securing the Web Site</STRONG>\r\n      <hr>\r\n  \r\n      We have taken reasonable steps to safeguard the integrity of the data that we collect and store, along with preventing unauthorized \r\n      access to information maintained by the web site. These measures are designed and intended to prevent corruption of data, block unknown \r\n      or unauthorized access to our systems and information, and to provide reasonable protection of private information in our possession. \r\n      Please be advised that, given the inherent nature of technology and the Internet, no security measures can ever be assumed to be 100% \r\n      fail-safe.\r\n      <br />\r\n\r\n      <br />\r\n      <STRONG>Cookies</STRONG>\r\n      <hr>\r\n  \r\n      Cookies are very commonly used when browsing websites. It allows the website to store information on your computer in order to keep \r\n      track of your unique session on the site. There are different types of cookies, and this site only uses a session cookie. Session \r\n      cookies are stored temporarily and then deleted as soon as your web session has completed. It allows you to securely navigate the \r\n      website using a unique session identifier, and the website is able to keep track of who you are. The storage of information related \r\n      to the web session is temporary and the cookie will immediately be deleted as soon as you close or navigate away from the site. For \r\n      security purposes, our website requires the use of session cookies.\r\n      <br />\r\n\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'epay-register',\r\n  templateUrl: './register.component.html'\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n  pagetitle = 'New Account Registration'\r\n  constructor(private router: Router) { }\r\n\r\n  ngOnInit() {\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow t-alignC max-w max-gs\" id=\"page-content-main\">\r\n    <h2 class=\"mb-5\">Select New Account Type</h2>\r\n    <div class=\"account-type-links\">\r\n      <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"['/ncp/register']\">Noncustodial Parent</a>\r\n      <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"['/employer/register']\">Employer</a>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-securitypolicy',\r\n  templateUrl: './securitypolicy.component.html'\r\n})\r\nexport class SecurityPolicyComponent implements OnInit {\r\n  pagetitle = 'Security Measures';\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gm\" id=\"page-content-main\">\r\n    <div class=\"m--pa4\">\r\n      <div class=\"mb-5\">\r\n        <h2 class=\"mb-5\">Security Statement</h2>\r\n        <p>Every time you use this web site, the data transmitted to or from your PC is sent encrypted\r\n          over a 128 bit secure socket layer (SSL). SSL encrypts all information exchanged between this\r\n          web site and your PC, such as credit card numbers and other personal data, using a unique\r\n          session key. Each session key is used only once, during a single session (which may include\r\n          one or more transactions) with a single user. These layers of privacy protection ensure that\r\n          information cannot be viewed if it is intercepted by unauthorized parties. When a message is\r\n          sent, the sending and receiving computers each generate a code based on the message content.\r\n          If even a single character in the message content is altered en route, the receiving computer\r\n          will generate a different code, and then alert the recipient that the message is not legitimate.\r\n          With message integrity, both parties involved in the transaction know that what they’re seeing is\r\n          exactly what the other party sent.</p>\r\n        <p>A trusted third party certificate authority issues this site’s certificate so you can be\r\n          assured this web site is authentic and belongs to the Oklahoma E-Commerce Solution.</p>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployerService } from '../../../employer/services/employer.service';\r\n\r\n@Component({\r\n  selector: 'epay-termsandconditions',\r\n  templateUrl: './termsandconditions.component.html'\r\n})\r\nexport class TermsAndConditionsComponent implements OnInit {\r\n  pagetitle = 'Terms and Conditions'\r\n  terms = '';\r\n  constructor(private employerService: EmployerService) { }\r\n\r\n  ngOnInit() {\r\n    this.employerService.getEmployerTerms().subscribe(\r\n      (result: any) => {\r\n        this.terms = result;\r\n      }\r\n    );\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gm\" id=\"page-content-main\">\r\n    <div class=\"terms-panel\" [innerHTML]=\"terms\">\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-webaccessibility',\r\n  templateUrl: './webaccessibility.component.html'\r\n})\r\nexport class WebAccessibilityComponent implements OnInit {\r\n  pagetitle = 'Accessibility';\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gs\" id=\"page-content-main\">\r\n    <div class=\"m--pa4\">\r\n      <h2 class=\"mb-5\">Accessibility Statement</h2>\r\n      <p>\r\n        This site has been evaluated for compliance with existing accessibility guidelines,\r\n        including Section 508 of the US Rehabilitation Act and the W3C&rsquo;s Web Content\r\n        Accessibility Guidelines (WCAG).\r\n      </p>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployerService } from '../../../services/employer.service';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-achd-information',\r\n  templateUrl: './achd-information.component.html'\r\n})\r\nexport class EMPACHDInformationComponent implements OnInit {\r\n  pagetitle = 'ACH Debit Infomation'\r\n  achdInfo = '';\r\n  baseurl = '';\r\n\r\n  constructor(private employerService: EmployerService) { }\r\n\r\n  ngOnInit() {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.employerService.getACHDInfo().subscribe(\r\n      result => {\r\n        this.achdInfo = result;\r\n      }\r\n    );\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gs\" id=\"page-content-main\">\r\n    <div class=\"\">\r\n      <epay-lib-employer-achd-home [baseurl]=\"baseurl\" [achdInfo]=\"achdInfo\">\r\n      </epay-lib-employer-achd-home>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService, CommonSettings, PhoneHelperService, ViewportService } from 'epay-library';\r\nimport { RegisterLibraryService } from 'epay-library';\r\nimport { ConfirmDialogModel, ConfirmDialogComponent } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { PaymentService } from 'epay-library';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nimport { EMPLOYER_PROFILE_SETTINGS_URL } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-achd-landing',\r\n  templateUrl: './achd.landing.component.html',\r\n})\r\nexport class EMPACHDLandingComponent implements OnInit {\r\n  pagetitle = 'ACH Debit Home';\r\n  secondaryIdAlias = 'Family Group #';\r\n\r\n  paymentaccounts: any[] = [];\r\n  username = '';\r\n  usertype = '';\r\n  isManager = '';\r\n  numOfUsers = 0;\r\n  accountKeys: string[];\r\n  isLoggedIn = false;\r\n  isLoading = false;\r\n  accountAddress = '';\r\n  accountCSZ = '';\r\n  accountEmail = '';\r\n  accountPhone = '';\r\n  employerName = '';\r\n  baseurl = '';\r\n  numOfDaysForPaymentHistory: number;\r\n  setupresult = '';\r\n  isPaymentAccountSetup = false;\r\n  hasSecondaryAccount = false;\r\n  isMobile = false;\r\n  showParticipantCase = false;\r\n  phoneMask = '';\r\n  countryId = '';\r\n\r\n  confirmationSender = '';\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationNumber = '';\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n  openConfirmation = false;\r\n\r\n  profileSettingsUrl = EMPLOYER_PROFILE_SETTINGS_URL;\r\n\r\n  constructor(\r\n    private authservice: AuthService,\r\n    private paymentservice: PaymentService,\r\n    private viewpointService: ViewportService,\r\n    private dialog: MatDialog,\r\n    private datepipe: DatePipe,\r\n    private router: Router,\r\n    private phoneHelperService: PhoneHelperService\r\n  ) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.numOfDaysForPaymentHistory =\r\n      +CommonSettings.NumOfDaysForPaymentHistory;\r\n    this.accountKeys = [];\r\n    this.showParticipantCase = true;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.authservice.currentUserName.subscribe(\r\n      (name: string) => (this.username = name.toUpperCase())\r\n    );\r\n    this.authservice.currentUserType.subscribe(\r\n      (type: string) => (this.usertype = type)\r\n    );\r\n    this.authservice.currentAccountAddress.subscribe((address: string) => {\r\n      this.accountAddress = address;\r\n      this.countryId = address.slice(-2);\r\n      this.setPhoneMask(this.countryId)!;\r\n      console.log(this.countryId + ' ' + this.phoneMask);\r\n    });\r\n    this.authservice.currentAccountPhone.subscribe(\r\n      (phone: string) => (this.accountPhone = phone)\r\n    );\r\n    this.authservice.currentAccountEmail.subscribe(\r\n      (email: string) => (this.accountEmail = email)\r\n    );\r\n    this.authservice.currentEmployerName.subscribe(\r\n      (empName: string) => (this.employerName = empName)\r\n    );\r\n    this.authservice.currentUserAccountManager.subscribe(\r\n      (manager: string) => (this.isManager = manager)\r\n    );\r\n    this.authservice.currentNumberofAccountUsers.subscribe(\r\n      (acctCount: string) => (this.numOfUsers = +acctCount)\r\n    );\r\n\r\n    this.viewpointService.IsMobile.subscribe(\r\n      (mobile: any) => (this.isMobile = mobile)\r\n    );\r\n\r\n    this.paymentservice\r\n      .getPaymentAccounts(this.baseurl)\r\n      .subscribe((accounts: any) => {\r\n        this.paymentaccounts = this.filterOldAccount(accounts);\r\n        if (this.paymentaccounts.length === 0) {\r\n          this.isPaymentAccountSetup = false;\r\n          setTimeout(() => {\r\n            this.setupPaymentAccount();\r\n          }, 3000);\r\n        } else {\r\n          this.isPaymentAccountSetup = true;\r\n        }\r\n      });\r\n  }\r\n\r\n  setPhoneMask(regionCode: string) {\r\n    this.phoneMask = this.phoneHelperService.getMask(regionCode);\r\n  }\r\n\r\n  setupPaymentAccount() {\r\n    if (sessionStorage.getItem('askForBankAccount')?.toString() !== 'false') {\r\n      const message = `You do not have a Bank Account setup.  Would you like to add one now?`;\r\n      const acctdetail = '';\r\n      const dialogData = new ConfirmDialogModel(\r\n        'Setup Bank Account',\r\n        message,\r\n        acctdetail,\r\n        '',\r\n        '',\r\n        '',\r\n        ''\r\n      );\r\n\r\n      const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n        maxWidth: '600px',\r\n        data: dialogData,\r\n      });\r\n\r\n      dialogRef.afterClosed().subscribe({\r\n        next: (dialogResult: any) => (this.setupresult = dialogResult),\r\n        error: (error: any) => console.log(error),\r\n        complete: () => {\r\n          if (this.setupresult) {\r\n            this.router.navigate(['employer/achd/paymentaccounts']);\r\n          } else {\r\n            //sessionStorage.setItem('askForBankAccount', 'false');\r\n            this.router.navigate(['employer/home']);\r\n          }\r\n        },\r\n      });\r\n\r\n      sessionStorage.setItem('askForBankAccount', 'false');\r\n    }\r\n  }\r\n\r\n  filterOldAccount(accounts: any[]) {\r\n    return accounts.filter(\r\n      (account) =>\r\n        this.datepipe.transform(account.inactiveDate, 'yyyy-MM-dd') ===\r\n        '9999-12-31'\r\n    );\r\n  }\r\n\r\n  displayConfirmationPage(result: any) {\r\n    if (result.success) {\r\n      this.confirmationSender = result.sender;\r\n      this.confirmationTitle = 'Success';\r\n      this.confirmationMessage = result.message;\r\n      this.confirmationNumber = result.confirmationNumber;\r\n      this.goToPrimaryUrl = 'employer/home';\r\n      this.goToPrimary = 'Home';\r\n      this.openConfirmation = true;\r\n    }\r\n  }\r\n\r\n  hideConfirmationPage(result: any) {\r\n    this.openConfirmation = !result.hideConfirmation;\r\n  }\r\n\r\n  // goToProfile() {\r\n  //   this.router.navigate(['/employer/profile']);\r\n  // }\r\n\r\n  goToPaymentAccounts() {\r\n    this.router.navigate(['employer/paymentaccounts']);\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main max-w max-gl\" id=\"page-content-main\">\r\n    <div *ngIf=\"!openConfirmation\">\r\n      <div class=\"container m--full-bleed\">\r\n        <!--Scheduled payments-->\r\n        <div class=\"row m--full-bleed mb-3\">\r\n          <div class=\"col-12\">\r\n            <mat-card class=\"card-container\">\r\n              <mat-card-header>\r\n                <mat-card-title>\r\n                  <h2 class=\"mat-card-title mb-0\">Scheduled Payments\r\n                    <a target=\"_blank\" href=\"/assets/help/How To Create Payments.pdf\" class=\"dib ml-1\">\r\n                      <span class=\"fa fa-question-circle fa-sm-blue\" matTooltip=\"HOW TO SETUP A SCHEDULED PAYMENT\"\r\n                        matTooltipClass=\"tooltip-md\">\r\n                      </span>\r\n                    </a>\r\n                  </h2>\r\n                  <div *ngIf=\"isPaymentAccountSetup\">\r\n                    <a [routerLink]=\"['/employer/achd/payment']\" class=\"ts-s\">\r\n                      Add\r\n                      <span class=\"fa fa-plus-circle fa-sm-blue\" matTooltip=\"ADD NEW PAYMENT\"\r\n                        matTooltipClass=\"tooltip-md\">\r\n                      </span>\r\n                    </a>\r\n                  </div>\r\n                </mat-card-title>\r\n              </mat-card-header>\r\n              <mat-card-content>\r\n                <div class=\"max-height-scrollable-block\">\r\n                  <epay-lib-employer-paymentlist [baseurl]=\"baseurl\"\r\n                    [secondaryIdAlias]=\"secondaryIdAlias\"\r\n                    (deletePaymentEmitter)=\"displayConfirmationPage($event)\">\r\n                  </epay-lib-employer-paymentlist>\r\n                </div>\r\n              </mat-card-content>\r\n            </mat-card>\r\n          </div>\r\n        </div>\r\n        <!--Payment history-->\r\n        <div class=\"row m--full-bleed\">\r\n          <div class=\"col-12 col-lg-8\">\r\n            <mat-card>\r\n              <mat-card-header>\r\n                <mat-card-title>Payment History</mat-card-title>\r\n              </mat-card-header>\r\n              <mat-card-content>\r\n                <epay-lib-employer-paymenthistory [baseurl]=\"baseurl\"\r\n                  [secondaryIdAlias]=\"secondaryIdAlias\"\r\n                  [numOfDaysForPaymentHistory]=\"numOfDaysForPaymentHistory\" [showParticipantCase]=\"showParticipantCase\">\r\n                </epay-lib-employer-paymenthistory>\r\n              </mat-card-content>\r\n            </mat-card>\r\n          </div>\r\n          <div *ngIf=\"!isMobile\" class=\"col-12 col-lg-4 form-display-card\">\r\n            <div class=\"\">\r\n              <mat-card class=\"info-help-panel\">\r\n                <mat-card-header>\r\n                  <mat-card-title>My Account</mat-card-title>\r\n                </mat-card-header>\r\n                <mat-card-content>\r\n                  <div class=\"flex-ico-row mb-3\">\r\n                    <div class=\"flex-ico\">\r\n                      <span class=\"fa fa-address-card-o fa-lg-gray\"></span>\r\n                    </div>\r\n                    <div class=\"flex-text\">\r\n                      <h3 class=\"mb-1\">{{username}} {{isManager && '(Manager)'}}\r\n                      </h3>\r\n                      <address class=\"ts-s\">\r\n                        {{accountAddress}} {{accountCSZ}}\r\n                      </address>\r\n                    </div>\r\n                  </div>\r\n                  <dl class=\"account-details-sum\">\r\n                    <div class=\"account-sum-row\">\r\n                      <dt class=\"account-dt\">Employer</dt>\r\n                      <dd class=\"account-dt-info\">{{employerName}} </dd>\r\n                    </div>\r\n                    <div class=\"account-sum-row\">\r\n                      <dt class=\"account-dt\">Phone</dt>\r\n                      <dd class=\"account-dt-info\">{{accountPhone | mask: phoneMask}} </dd>\r\n                    </div>\r\n                    <div class=\"account-sum-row\">\r\n                      <dt class=\"account-dt\">Email</dt>\r\n                      <dd class=\"account-dt-info\">{{accountEmail}} </dd>\r\n                    </div>\r\n                  </dl>\r\n                </mat-card-content>\r\n                <hr>\r\n                <div *ngIf=\"numOfUsers === 1 && isManager\" class=\"text-center\">\r\n                  <mat-card-content>\r\n                    <div class=\"ts-base\">\r\n                      <strong>No additional user found.</strong><br />\r\n                      Click <a [routerLink]=\"['/employer/profile/settings']\" [state]=\"{display: 'account'}\"><i\r\n                          class=\"fa fa-user-plus\"></i> HERE</a> to add an additional user.\r\n                    </div>\r\n                  </mat-card-content>\r\n                  <hr>\r\n                </div>\r\n                <mat-card-content>\r\n                  <div class=\"t-alignC\">\r\n                    <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"profileSettingsUrl\">Profile and Settings</a>\r\n                  </div>\r\n                </mat-card-content>\r\n              </mat-card>\r\n            </div>\r\n            <!-- <div class=\"row mt-3\">\r\n            <mat-card class=\"info-help-panel\">\r\n            <mat-card-header>\r\n                <mat-card-title>Need Help</mat-card-title>\r\n            </mat-card-header>\r\n                <mat-card-content>\r\n                    <div class=\"row\">\r\n                        <span class=\"fa fa-question fa-lg-gray\"></span>\r\n                        <div class=\"col-sm ml-2\">\r\n                            <div class=\"row\"><a href=\"employer/faq\">Frequently Asked Questions</a></div>\r\n                            <div class=\"row\"><a href=\"employer/contact\">Contact Us</a></div>\r\n                        </div>\r\n                    </div>\r\n                </mat-card-content>\r\n            <hr>\r\n            <mat-card-content>\r\n                <div class=\"row justify-content-center\">\r\n                    <button class=\"btn btn-primary\">Help and Support</button>\r\n                </div>\r\n              </mat-card-content>\r\n            </mat-card>\r\n          </div>-->\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [sender]=\"confirmationSender\"\r\n    [confirmationTitle]=\"confirmationTitle\" [confirmationMessage]=\"confirmationMessage\"\r\n    [confirmationNumber]=\"confirmationNumber\" [goToPrimary]=\"goToPrimary\" [goToPrimaryUrl]=\"goToPrimaryUrl\"\r\n    (confirmationEmitter)=\"hideConfirmationPage($event)\">\r\n  </epay-lib-common-confirmation>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployerService } from '../../../services/employer.service';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-payment',\r\n  templateUrl: './payment.component.html',\r\n})\r\nexport class EMPPaymentComponent implements OnInit {\r\n  pagetitle = 'Employer: Create ACHD Debit Payment';\r\n  baseurl = '';\r\n  clientName = '';\r\n  termsContent = '';\r\n  validateCaseNumber: boolean = false;\r\n  saveEmployees: boolean = false;\r\n\r\n  constructor(private employerService: EmployerService) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.clientName = CommonSettings.ClientName;\r\n    this.validateCaseNumber = CommonSettings.EmployerUseCaseNumberForPayments;\r\n    this.saveEmployees = CommonSettings.SaveEmployeesForPayments;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.employerService.getEmployerTerms().subscribe((result) => {\r\n      this.termsContent = result;\r\n    });\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main \" id=\"page-content-main\">\r\n    <div class=\"\">\r\n      <epay-lib-employer-payment\r\n        [baseurl]=\"baseurl\"\r\n        [termsContent]=\"termsContent\"\r\n        [clientName]=\"clientName\"\r\n        [saveEmployees]=\"saveEmployees\"\r\n        [validateCaseNumber]=\"validateCaseNumber\">\r\n      </epay-lib-employer-payment>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-paymentaccountlist',\r\n  templateUrl: './paymentaccountlist.component.html'\r\n})\r\nexport class EMPPaymentAccountListComponent implements OnInit {\r\n  pagetitle = 'ACH Debit Bank Accounts';\r\n  baseurl: string;\r\n  routingHelpImage: string;\r\n\r\n  constructor() {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.routingHelpImage = '../../../../assets/help/aba.jpg';\r\n  }\r\n\r\n  ngOnInit() {\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main max-w max-gl\" id=\"page-content-main\">\r\n    <div class=\"\">\r\n      <epay-lib-employer-paymentaccountlist [baseurl]=\"baseurl\" [routingHelpImage]=\"routingHelpImage\">\r\n      </epay-lib-employer-paymentaccountlist>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService, PhoneHelperService, ViewportService } from 'epay-library';\r\nimport { CommonSettings } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { EMPLOYER_PROFILE_SETTINGS_URL } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-creditcard-landing',\r\n  templateUrl: './creditcard.landing.component.html',\r\n})\r\nexport class EMPCreditCardLandingComponent implements OnInit {\r\n  pagetitle = 'Employer: Create Credit Card Payment';\r\n  baseurl = '';\r\n  daysToShowCCHistory: number;\r\n  username = '';\r\n  usertype = '';\r\n  isManager = '';\r\n  numOfUsers = 0;\r\n  accountKeys: string[] = [];\r\n  isLoggedIn = false;\r\n  isLoading = false;\r\n  accountAddress = '';\r\n  accountCSZ = '';\r\n  accountEmail = '';\r\n  accountPhone = '';\r\n  employerName = '';\r\n  employerEin = '';\r\n  isMobile = false;\r\n  profileSettingsUrl = EMPLOYER_PROFILE_SETTINGS_URL;\r\n  phoneMask = '';\r\n  countryId = '';\r\n\r\n  constructor(\r\n    private authservice: AuthService,\r\n    private router: Router,\r\n    private viewpointService: ViewportService,\r\n    private phoneHelperService: PhoneHelperService\r\n  ) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.daysToShowCCHistory = +CommonSettings.DaysToShowEFTFileHistory;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.authservice.isLoggedIn.subscribe(\r\n      (status: any) => (this.isLoggedIn = status)\r\n    );\r\n    if (this.isLoggedIn) {\r\n      this.authservice.currentUserName.subscribe(\r\n        (name: string) => (this.username = name.toUpperCase())\r\n      );\r\n      this.authservice.currentUserType.subscribe(\r\n        (type: string) => (this.usertype = type)\r\n      );\r\n      this.authservice.currentAccountAddress.subscribe((address: string) => {\r\n        this.accountAddress = address;\r\n        this.countryId = address.slice(-2);\r\n        this.setPhoneMask(this.countryId)!;\r\n        console.log(this.countryId + ' ' + this.phoneMask);\r\n      });\r\n      this.authservice.currentAccountPhone.subscribe(\r\n        (phone: string) => (this.accountPhone = phone)\r\n      );\r\n      this.authservice.currentAccountEmail.subscribe(\r\n        (email: string) => (this.accountEmail = email)\r\n      );\r\n      this.authservice.currentEmployerName.subscribe(\r\n        (empName: string) => (this.employerName = empName)\r\n      );\r\n      this.authservice.currentUserAccountManager.subscribe(\r\n        (manager: string) => (this.isManager = manager)\r\n      );\r\n      this.authservice.currentNumberofAccountUsers.subscribe(\r\n        (acctCount: string) => (this.numOfUsers = +acctCount)\r\n      );\r\n      this.authservice.currentEmployerEIN.subscribe(\r\n        (ein: string) => (this.employerEin = ein)\r\n      );\r\n    }\r\n    this.viewpointService.IsMobile.subscribe(\r\n      (mobile: any) => (this.isMobile = mobile)\r\n    );\r\n  }\r\n\r\n  goToProfile() {\r\n    this.router.navigate([EMPLOYER_PROFILE_SETTINGS_URL]);\r\n  }\r\n\r\n  setPhoneMask(regionCode: string) {\r\n    this.phoneMask = this.phoneHelperService.getMask(regionCode);\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"container m--full-bleed mt-2\">\r\n    <div class=\"row m--full-bleed justify-content-center\">\r\n      <div class=\"col-12 col-lg-8\">\r\n        <mat-card>\r\n          <mat-card-header>\r\n            <mat-card-title>\r\n              <h2 class=\"mat-card-title mb-0\">Credit Card Payment History <a target=\"_blank\"\r\n                  href=\"../../../../../../assets/help/How To Make a Credit Card Payment.pdf\" class=\"dib ml-1\">\r\n                  <span class=\"fa fa-question-circle fa-sm-blue\" matTooltip=\"HOW TO MAKE A CREDIT CARD PAYMENT\"\r\n                    matTooltipClass=\"tooltip-md\">\r\n                  </span>\r\n                </a></h2>\r\n              <div>\r\n                <a [routerLink]=\"['/employer/creditcard/payment']\" class=\"ts-s\">\r\n                  Add\r\n                  <span class=\"fa fa-plus-circle fa-sm-blue\" matTooltip=\"NEW CREDIT CARD PAYMENT\"\r\n                    matTooltipClass=\"tooltip-md\">\r\n                  </span>\r\n                </a>\r\n              </div>\r\n            </mat-card-title>\r\n          </mat-card-header>\r\n          <mat-card-content style=\"max-height: 50vh; overflow: auto;\">\r\n            <epay-lib-common-creditcard-history [baseurl]=\"baseurl\"\r\n              [daysToShowCCHistory]=\"daysToShowCCHistory\">\r\n            </epay-lib-common-creditcard-history>\r\n          </mat-card-content>\r\n        </mat-card>\r\n      </div>\r\n      <div *ngIf=\"!isMobile\" class=\"col-12 col-lg-4 form-display-card\">\r\n        <div class=\"row m--full-bleed\">\r\n          <mat-card class=\"info-help-panel\">\r\n            <mat-card-header>\r\n              <mat-card-title>My Account</mat-card-title>\r\n            </mat-card-header>\r\n            <mat-card-content>\r\n              <div class=\"flex-ico-row mb-3\">\r\n                <div class=\"flex-ico\">\r\n                  <span class=\"fa fa-address-card-o fa-lg-gray\"></span>\r\n                </div>\r\n                <div class=\"flex-text\">\r\n                  <h3 class=\"mb-1\">{{username}} {{isManager && '(Manager)'}}\r\n                  </h3>\r\n                  <address class=\"ts-s\">\r\n                    {{accountAddress}} {{accountCSZ}}\r\n                  </address>\r\n                </div>\r\n              </div>\r\n              <dl class=\"account-details-sum\">\r\n                <div class=\"account-sum-row\">\r\n                  <dt class=\"account-dt\">Employer</dt>\r\n                  <dd class=\"account-dt-info\">{{employerName}} </dd>\r\n                </div>\r\n                <div class=\"account-sum-row\">\r\n                  <dt class=\"account-dt\">Phone</dt>\r\n                  <dd class=\"account-dt-info\">{{accountPhone | mask: phoneMask}} </dd>\r\n                </div>\r\n                <div class=\"account-sum-row\">\r\n                  <dt class=\"account-dt\">Email</dt>\r\n                  <dd class=\"account-dt-info\">{{accountEmail}} </dd>\r\n                </div>\r\n              </dl>\r\n            </mat-card-content>\r\n            <hr>\r\n            <div *ngIf=\"numOfUsers === 1 && isManager\" class=\"text-center\">\r\n              <mat-card-content>\r\n                <div class=\"ts-base\">\r\n                  <strong>No additional user found.</strong><br />\r\n                  Click <a [routerLink]=\"profileSettingsUrl\" [state]=\"{display: 'account'}\"><i\r\n                      class=\"fa fa-user-plus\"></i> HERE</a> to add an additional user.\r\n                </div>\r\n              </mat-card-content>\r\n              <hr>\r\n            </div>\r\n            <mat-card-content>\r\n              <div class=\"t-alignC\">\r\n                <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"profileSettingsUrl\">Profile and Settings</a>\r\n              </div>\r\n            </mat-card-content>\r\n          </mat-card>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { EmployerService } from '../../../services/employer.service';\r\nimport { CommonService, CommonSettings, CreditCardService, ErrorHandlerService, PaymentService, PhoneHelperService, ViewportService } from 'epay-library';\r\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { StepperOrientation } from '@angular/cdk/stepper';\r\nimport { IAngularMyDpOptions } from 'angular-mydatepicker';\r\nimport { IScheduledDay } from 'epay-library/lib/features/common/models/payment/scheduledday';\r\nimport { IScheduledFrequency } from 'epay-library/lib/features/common/models/payment/scheduledfrequency';\r\nimport { IEMPPaymentList } from 'epay-library/lib/features/employer/models/payment/achd/employerPaymentList';\r\nimport { IEMPCCPayment } from 'epay-library/lib/features/employer/models/payment/creditcard/employerCCPayment';\r\nimport { IEMPPaymentCollection } from 'epay-library/lib/features/employer/models/payment/employerPaymentCollection';\r\nimport * as XLSX from 'xlsx';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IPaymentAccount } from 'epay-library/lib/features/common/models/payment/paymentaccount';\r\nimport { ICountry } from 'epay-library';\r\nimport { IState } from 'epay-library';\r\nimport { AuthService, HelperDialogModel, INCPCCPayment, INCPCases } from 'epay-library';\r\nimport { IProcessCreditCard } from 'src/app/helpers/models/creditcard-payment.model';\r\nimport PhoneNumber from 'awesome-phonenumber';\r\nimport { Observable, debounceTime, map, startWith } from 'rxjs';\r\nimport { CreditCardPaymentService } from 'src/app/helpers/services/credit-card-payment.service';\r\nimport { MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport { EMPSecurityCodeHelpComponent } from './empsecurity-code-help/empsecurity-code-help.component';\r\nimport { ErrorDialogComponent, ErrorHandlerDialogModel } from 'src/app/helpers/components/error-dialog/error-dialog.component';\r\n\r\ntype AOA = any[][];\r\n\r\nconst PayorValidationTypes = {\r\n  scheduldedPayment: 'scheduledPayment',\r\n  creditCard: 'creditCard',\r\n  eftEdiFile: 'eftEdiFile',\r\n};\r\n\r\nenum PreviousPayorsType {\r\n  ALL_PAYORS,\r\n  PREVIOUS_PAYORS,\r\n  NONE,\r\n}\r\n\r\ninterface ExpiryYear {\r\n  value: string;\r\n}\r\n\r\ninterface ExpiryMonth {\r\n  value: string;\r\n}\r\n\r\ninterface CreditCardType {\r\n  value: string;\r\n  viewValue: string;\r\n}\r\n\r\nfunction autocompleteExpMonthValidator(validOptions: Array<string>): ValidatorFn {\r\n  return (control: AbstractControl): { [key: string]: any } | null => {\r\n    var expMonth = \"\";\r\n    if (control.value?.length === 1) {\r\n      if (control.value === \"1\" || control.value === \"2\" || control.value === \"3\" || control.value === \"4\"\r\n      || control.value === \"5\" || control.value === \"6\" || control.value === \"7\" || control.value === \"8\" || control.value === \"9\") {\r\n        expMonth = \"0\" + control.value;\r\n      }\r\n      else {\r\n        return null;\r\n      }\r\n    }\r\n    else {\r\n      expMonth = control.value;\r\n    }\r\n\r\n    if (validOptions.indexOf(expMonth) !== -1) {\r\n      return null\r\n    }\r\n    else {\r\n      return { 'invalidExpMonth': true }\r\n    }\r\n    \r\n  }\r\n}\r\n\r\nfunction autocompleteExpYearValidator(validOptions: Array<string>): ValidatorFn {\r\n  return (control: AbstractControl): { [key: string]: any } | null => {\r\n\r\n    if (validOptions.indexOf(control.value) !== -1) {\r\n      return null\r\n    }\r\n    else {\r\n      return { 'invalidExpYear': true }\r\n    }\r\n    \r\n  }\r\n}\r\n\r\n\r\n@Component({\r\n  selector: 'epay-creditcard',\r\n  templateUrl: './creditcard.payment.component.html'\r\n})\r\nexport class EMPCreditCardPaymentComponent implements OnInit, OnChanges, AfterViewInit {\r\n  @Input() isEditPayment: boolean = false;\r\n  @Input() validationType = '';\r\n  @Input() editPayorCollection: IEMPPaymentCollection[] = [];\r\n  @Input() selectedPaymentAccount: IPaymentAccount = {} as IPaymentAccount;\r\n  @Output() validPayorEmitter_OK = new EventEmitter<{\r\n    payorCollection: IEMPPaymentCollection[];\r\n  }>();\r\n  @Output() validPayorCreditCardEmitter_OK = new EventEmitter<{\r\n    creditCardPayment: IEMPCCPayment;\r\n  }>();\r\n\r\n  @ViewChild('LastName', { static: false }) nameField!: ElementRef;\r\n  @ViewChild('inputFile', { static: false }) inputFile!: ElementRef;\r\n  \r\n  pagetitle = 'Employer: Create Credit Card Payment';\r\n  baseurl= '';\r\n  secondaryIdAlias = 'Family Group #'\r\n  clientName= '';\r\n  termsContent= '';\r\n  creditCardUrl= '';\r\n  creditCardOriginKey= '';\r\n  validateCaseNumber = false;\r\n  allowZeroAmount = false;\r\n  isMobile = false;\r\n  creditCardVendorId = 0;\r\n  creditCardDisclaimer = '';\r\n  fortPointStateCode = '';\r\n\r\n  data: any;\r\n  wopts: XLSX.WritingOptions = { bookType: 'xlsx', type: 'array' };\r\n  payorChkType = PreviousPayorsType.NONE;\r\n  currentlyChecked = PreviousPayorsType.NONE;\r\n\r\n  employerEIN = '';\r\n\r\n  stepperOrientation: StepperOrientation = 'horizontal';\r\n\r\n  //Payor Collection arrays\r\n  previousPaymentPayors: IEMPPaymentCollection[] = [];\r\n  previousAllPayors: IEMPPaymentCollection[] = [];\r\n  payorCollection: IEMPPaymentCollection[] = [];\r\n\r\n  termsFrmGp: FormGroup = new FormGroup({});\r\n  reviewFrmGrp: FormGroup = new FormGroup({});\r\n  paymentcollectionFrmGp: FormGroup = new FormGroup({});\r\n  paymentCollection: IEMPPaymentCollection[];\r\n  paymentheader: string[] = [\r\n    'Last Name',\r\n    'SSN',\r\n    'FGN',\r\n    'Amount',\r\n  ];\r\n  empCCPayment: IEMPCCPayment = {} as IEMPCCPayment;\r\n  scheduledFrequencies: IScheduledFrequency[];\r\n  scheduledDaysWeek: IScheduledDay[];\r\n  scheduledDaysBiMonth: IScheduledDay[];\r\n  scheduledDaysMonth: IScheduledDay[];\r\n  scheduledDays: IScheduledDay[];\r\n  scheduledpayments: IEMPPaymentList[] = [];\r\n\r\n  today = new Date();\r\n  maxDate = new Date();\r\n  minDate = new Date();\r\n\r\n  transactionId = '';\r\n  encryptedTransactionId = '';\r\n\r\n  billingSectionIncomplete = false;\r\n  ccSectionIncomplete = false;\r\n\r\n  attemptedCCAttempt = false;\r\n\r\n  ssnHide = true;\r\n  startDate = '';\r\n  showPaymentCollectionForm: boolean;\r\n  numOfPayments = 0;\r\n  totalAmtOfPayments = 0;\r\n  numInvalid = 0;\r\n  numWarning = 0;\r\n  iseditccPayment = false;\r\n  iseditccPaymentCollection = false;\r\n  editccPaymentCollectionIndex: number;\r\n  errorMessage = '';\r\n  validationErrorMessage = '';\r\n  showScheduleDay: boolean;\r\n  selectedFrequency = '';\r\n  selectedFrequencyCode = '';\r\n  selectedDay = '';\r\n  selectedDayCode = '';\r\n  nextScheduledDate = '';\r\n  noPreviousPayors = '';\r\n  isLoadingPreviousPayors = false;\r\n\r\n  scheduleddayCtrl: any;\r\n\r\n  confirmationSender = '';\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationNumber = '';\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n  openConfirmation = false;\r\n  isLoadingEdit = false;\r\n  isTermsSubmitted = false;\r\n  allChecked = false;\r\n\r\n  animateInput = false;\r\n  atLeastOnePayorSelected = false;\r\n  validateAttemptMade = false;\r\n  insertUpdateError = false;\r\n  nameChangeOccured = false;\r\n  insertUpdateErrorMessage = '';\r\n  isBankAccountSelected = false;\r\n\r\n  fileImportHint = `File must contain 4 columns with headers titled \"Last Name\", \"SSN\", \"Case Number\", \"Amount\"`;\r\n  fileErrorMessage = '';\r\n  payorDetailError = '';\r\n  calendarHint = '';\r\n\r\n  toggleEditPayor = false;\r\n  toggleImportPayor = false;\r\n\r\n  currencyPattern = /(?=.*?\\d)^\\$?(([1-9]\\d{0,2}(,\\d{3})*)|\\d+)?(\\.\\d{1,2})?$/;\r\n  ssnPattern = /^(?!000|666)[0-9]{3}([ -]?)(?!00)[0-9]{2}\\1(?!0000)[0-9]{4}$/;\r\n\r\n  //Form Group for payor collection\r\n  payorFrmGp: FormGroup = new FormGroup({});\r\n\r\n  //Edit payor collection\r\n  isEditPayor = false;\r\n  editPayorIndex = 0;\r\n\r\n  fileImported = false;\r\n  isFileValid = false;\r\n\r\n  showPayorCollectionForm = false;\r\n  payorsValid = false;\r\n  isValdiatingPayment = false;\r\n\r\n  previousPayorsChecked = false;\r\n  allPayorsChecked = false;\r\n\r\n  isCreditCardValidation: boolean = false;\r\n  isEftFileValidation: boolean = false;\r\n  isScheduledPaymentValidation: boolean = false;\r\n\r\n  ccSecurityMessage = '';\r\n  civitekOriginKey = '';\r\n  createPaymentButtonText = '';\r\n  forePointAccessToken = '';\r\n  forePointStateCode = '';\r\n  validateFGNumber = false;\r\n  canMakePaymentsToClosedCases = false;\r\n  isLoggedIn = false;\r\n\r\n  ccInfo = {\r\n    cardNumber: null,\r\n    cvc: null,\r\n    expMonth: null,\r\n    expYear: null,\r\n    holder: null\r\n  }\r\n\r\n  requestId = '';\r\n\r\n  cardExpired = false;\r\n  flipCard = false;\r\n  cardSide = 0;\r\n  defaultCC = 'mastercard';\r\n\r\n  totalCCPayment = 0;\r\n\r\n  states: IState[] = [];\r\n  countries: ICountry[] = [];\r\n  selectedCountry = '';\r\n\r\n  ccFrmGp: FormGroup = new FormGroup({});\r\n  casesearchFrmGp: FormGroup = new FormGroup({});\r\n  paymentDetailFrmGp: FormGroup = new FormGroup({});\r\n\r\n  paymentaccountheader: string[] = [\r\n    'Select',\r\n    'Name',\r\n    'Type',\r\n    'Account',\r\n    'Status',\r\n  ];\r\n  cases: INCPCases[] = [];\r\n  creditCardPayment: IEMPCCPayment = {} as IEMPCCPayment;\r\n  creditCardObj: IProcessCreditCard = {} as IProcessCreditCard;\r\n\r\n  panelOpenState = false;\r\n\r\n  months: ExpiryMonth[] = [];\r\n  years: ExpiryYear[] = [];\r\n\r\n  filteredExpMonths$!: Observable<string[]>;\r\n  expMonths: string[] = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'];\r\n  expMonthCtrl = new FormControl();\r\n\r\n  filteredExpYears$!: Observable<string[]>;\r\n  expYears: string[] = [];\r\n  expYearCtrl = new FormControl();\r\n\r\n  ccExpired = false;\r\n\r\n\r\n  creditcardType: CreditCardType[] = [];\r\n  currentYear!: any;\r\n\r\n  caseIsValid = false;\r\n  isValdiatingParent = false;\r\n  hasAttemptedSearch = false;\r\n  selectedCase = '';\r\n  amount = 0;\r\n  hasHold: any;\r\n  //hasHold = true;\r\n  cvvHide = true;\r\n  ccHide = true;\r\n  showValidationMessage = false;\r\n\r\n  ncpAccountData = [];\r\n\r\n  goToCCSuccess = false;\r\n\r\n  phoneMask = '';\r\n  phoneExample = '';\r\n\r\n  dialogData: any;\r\n  dialogRef: any;\r\n  deleteResult = '';\r\n\r\n  ccMask = '0000 0000 0000 0000'; //mastercard, visa\r\n  ccRegex = '^5[1-5][0-9]{14}$'; //mastercard\r\n  ccImgURL = '../../../../../assets/images/Icons/icons8-mastercard.svg'; //mastercard\r\n  expiryRegex = '^(0[1-9]|1[0-2])\\/?([0-9]{4}|[0-9]{2})$'\r\n\r\n  firstNameCtrl: any;\r\n  lastNameCtrl: any;\r\n  ssnCtrl: any;\r\n  caseNumberCtrl: any;\r\n\r\n  emailPattern = /\\S+@\\S+\\.\\S+/;\r\n  numberPattern = /^[0-9]\\d*$/;\r\n  creditcardPattern = `^(3[47][0-9]{13}|(6541|6556)[0-9]{12}|389[0-9]{11}|3(?:0[0-5]|[68][0-9])[0-9]{11}|65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})|63[7-9][0-9]{13}|(?:2131|1800|35\\d{3})\\d{11}|9[0-9]{15}|(6304|6706|6709|6771)[0-9]{12,15}|(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}|(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))|(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}|(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}|(62[0-9]{14,17})|4[0-9]{12}(?:[0-9]{3})?|(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}))$`\r\n  zipPattern = /^[0-9]{5}$/;\r\n\r\n  // Datepicker settings\r\n  dateSettingsOptions: IAngularMyDpOptions = {\r\n    dateFormat: 'mm/dd/yyyy',\r\n    firstDayOfWeek: 'su',\r\n    closeSelectorOnDateSelect: true,\r\n    sunHighlight: false,\r\n    disableWeekends: true,\r\n    disableUntil: {\r\n      year: 0,\r\n      month: 0,\r\n      day: 0,\r\n    },\r\n  };\r\n\r\n  constructor(\r\n    private paymentService: PaymentService,\r\n    private employerService: EmployerService,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private ccPaymentService: CreditCardPaymentService,\r\n    private creditCardService: CreditCardService,\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    public dialog: MatDialog,\r\n    public snackbar: MatSnackBar,\r\n    private viewpointService: ViewportService,\r\n    private commonService: CommonService,\r\n    private phoneHelperService: PhoneHelperService,\r\n    public tooltip: MatTooltipModule,\r\n    private authService: AuthService\r\n    ) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.clientName = CommonSettings.ClientName;\r\n    this.validateCaseNumber = true;\r\n    this.allowZeroAmount = false;\r\n    this.creditCardVendorId = CommonSettings.CreditCardVendorID;\r\n\r\n    this.iseditccPaymentCollection = false;\r\n    this.showPaymentCollectionForm = false;\r\n    this.showScheduleDay = false;\r\n    this.paymentCollection = [];\r\n    this.scheduledDaysWeek = [];\r\n    this.scheduledDaysBiMonth = [];\r\n    this.scheduledDaysMonth = [];\r\n    this.scheduledDays = [];\r\n    this.scheduledFrequencies = [];\r\n    this.editccPaymentCollectionIndex = -1;\r\n    this.maxDate.setDate(\r\n      this.today.getDate() + +CommonSettings.NumOfDaysOutForCalendar\r\n    );\r\n\r\n    this.validateFGNumber = true;\r\n    this.allowZeroAmount = false;\r\n\r\n    this.selectedCountry = 'US';\r\n\r\n    this.createPaymentButtonText = 'Pay Now';\r\n  }\r\n\r\n  ngOnInit() {\r\n    let currentDate = new Date();\r\n    this.currentYear = currentDate.getFullYear();\r\n\r\n    this.expYears = [\r\n      this.currentYear.toString(),\r\n      (this.currentYear + 1).toString(),\r\n      (this.currentYear + 2).toString(),\r\n      (this.currentYear + 3).toString(),\r\n      (this.currentYear + 4).toString(),\r\n      (this.currentYear + 5).toString(),\r\n      (this.currentYear + 6).toString(),\r\n      (this.currentYear + 7).toString(),\r\n      (this.currentYear + 8).toString(),\r\n      (this.currentYear + 10).toString(),\r\n    ];\r\n\r\n    this.expMonthCtrl = new FormControl('', { validators: [ Validators.required]});\r\n    this.expYearCtrl = new FormControl('', { validators: [Validators.required]});\r\n\r\n    this.filteredExpMonths$ = this.expMonthCtrl.valueChanges.pipe(\r\n      startWith(''),\r\n      map((value) => this.filterMonthValue(value))\r\n    );\r\n\r\n    this.filteredExpYears$ = this.expYearCtrl.valueChanges.pipe(\r\n      startWith(''),\r\n      map((value) => this.filterYearValue(value))\r\n    );\r\n\r\n    this.expMonthCtrl.valueChanges.pipe(debounceTime(1500)).subscribe((month: any) => {\r\n      if (month && month.length === 1) {\r\n        var expMonth = \"\";\r\n        if (month === \"1\" || month === \"2\" || month === \"3\" || month === \"4\"\r\n        || month === \"5\" || month === \"6\" || month === \"7\" || month === \"8\" || month === \"9\") {\r\n          expMonth = \"0\" + month;\r\n          this.expMonthCtrl.setValue(expMonth);\r\n        }\r\n      }\r\n\r\n      if (month && this.expYearCtrl.value) {\r\n        this.ccExpired = this.isCCExpired(month, this.expYearCtrl.value);\r\n        console.log(\"CCExpired1: \", this.ccExpired)\r\n\r\n        if (this.ccExpired) {\r\n          this.ccFrmGp.setErrors({expired: true})\r\n        }\r\n        else {\r\n          this.ccFrmGp.setErrors({expired: null})\r\n          this.ccFrmGp.get('ccExpiryMonth')!.setValue(month);\r\n          this.ccFrmGp.get('ccExpiryYear')!.setValue(this.expYearCtrl.value);\r\n        }\r\n      } \r\n    });\r\n\r\n    this.expYearCtrl.valueChanges.pipe(debounceTime(1500)).subscribe((year: any) => {\r\n      if (year && this.expMonthCtrl.value) {\r\n        this.ccExpired = this.isCCExpired(this.expMonthCtrl.value, year);\r\n        console.log(\"CCExpired2: \", this.ccExpired)\r\n\r\n        if (this.ccExpired) {\r\n          this.ccFrmGp.setErrors({expired: true})\r\n        }\r\n        else {\r\n          this.ccFrmGp.setErrors({expired: null})\r\n          this.ccFrmGp.get('ccExpiryYear')!.setValue(year);\r\n          this.ccFrmGp.get('ccExpiryMonth')!.setValue(this.expMonthCtrl.value);\r\n        }\r\n      }\r\n    });\r\n    \r\n\r\n    this.creditcardType = [\r\n      {value: 'mastercard', viewValue: 'MasterCard'},\r\n      {value: 'visa', viewValue: 'Visa'},\r\n    ]\r\n\r\n    this.employerService.getEmployerTerms().subscribe(\r\n      result => {\r\n        this.termsContent = result;\r\n      }\r\n    );\r\n\r\n    this.validationType = PayorValidationTypes.creditCard;\r\n    this.loadFormGroups();\r\n    this.getCountries();\r\n    this.getStates();\r\n    this.setValidationType();\r\n\r\n    if (this.secondaryIdAlias === '') {\r\n      this.secondaryIdAlias = 'Case Number';\r\n    }\r\n\r\n    this.payorFrmGp = this.formbuilder.group({\r\n      filename: ' Choose File',\r\n      collectionFrmGp: this.formbuilder.group({\r\n        lastname: ['', Validators.minLength(1)],\r\n        ssn: [''],\r\n        casenumber: ['', Validators.minLength(1)],\r\n        amount: ['', Validators.pattern(this.currencyPattern)],\r\n      }),\r\n      isValid: ['false', Validators.requiredTrue],\r\n    });\r\n\r\n    // if (this.secondaryIdAlias !== '') {\r\n    //   this.paymentheader = [\r\n    //     'Last Name',\r\n    //     'SSN',\r\n    //     'FGN',\r\n    //     'Amount',\r\n    //   ];\r\n    // } else {\r\n    //   this.secondaryIdAlias = 'Case Number';\r\n    // }\r\n\r\n    this.viewpointService.StepperOrient.subscribe(\r\n      (orient) => (this.stepperOrientation = orient)\r\n    );\r\n\r\n    // Credit Card Payment controls\r\n    const phoneCtrl = this.ccFrmGp.get('phoneGp.phoneNumber');\r\n    const countryCtrl = this.ccFrmGp.get('country');\r\n\r\n    phoneCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\r\n      if (value) {\r\n        const pn = new PhoneNumber(\r\n          value,\r\n          this.ccFrmGp.get('phoneGp.regionCode')!.value\r\n        );\r\n        this.ccFrmGp.get('phoneGp')!.patchValue({\r\n          isValid: pn.isPossible(),\r\n        });\r\n      }\r\n    });\r\n\r\n    countryCtrl!.valueChanges.subscribe((value) => {\r\n      if (value) {\r\n        this.setMaskAndExample(value);\r\n        this.ccFrmGp.patchValue({\r\n          state: '',\r\n          zip5: '',\r\n        });\r\n        this.ccFrmGp.get('phoneGp')!.patchValue({\r\n          regionCode: value,\r\n          countryCode:\r\n            this.phoneHelperService.getCountryCodeForRegionCode(value),\r\n          phoneNumber: '',\r\n          isValid: false,\r\n        });\r\n        if (value === 'US') {\r\n          this.ccFrmGp\r\n            .get('zip5')!\r\n            .setValidators([\r\n              Validators.required,\r\n              Validators.pattern(this.zipPattern),\r\n            ]);\r\n          this.ccFrmGp.get('zip5')!.updateValueAndValidity();\r\n        } else {\r\n          this.ccFrmGp\r\n            .get('zip5')!\r\n            .setValidators([Validators.required, Validators.maxLength(6)]);\r\n          this.ccFrmGp.get('zip5')!.updateValueAndValidity();\r\n        }\r\n        if (value === 'US' || value === 'MX' || value === 'CA') {\r\n          this.selectedCountry = value;\r\n          this.ccFrmGp.get('state')!.enable();\r\n          this.ccFrmGp.get('state')!.setErrors({ required: true });\r\n          this.ccFrmGp.updateValueAndValidity();\r\n          this.getStates();\r\n        } else {\r\n          this.ccFrmGp.get('state')!.disable();\r\n          this.ccFrmGp.get('state')!.setErrors({ required: false });\r\n          this.ccFrmGp.updateValueAndValidity();\r\n        }\r\n      }\r\n    });\r\n\r\n    this.ccFrmGp.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\r\n      if (this.attemptedCCAttempt) {\r\n        if (!this.ccFrmGp.valid) {\r\n          if (\r\n            (\r\n              !this.ccFrmGp.get('ccFirstName')?.value ||\r\n            !this.ccFrmGp.get('ccLastName')?.value ||\r\n            !this.ccFrmGp.get('address1')?.value ||\r\n            !this.ccFrmGp.get('city')?.value ||\r\n            !this.ccFrmGp.get('state')?.value ||\r\n            !this.ccFrmGp.get('zip5')?.value ||\r\n            !this.ccFrmGp.get('email')?.value ||\r\n            !this.ccFrmGp.get('phoneGp.phoneNumber')?.value\r\n            ) || (\r\n            !this.ccFrmGp.get('ccFirstName')?.valid ||\r\n            !this.ccFrmGp.get('ccLastName')?.valid ||\r\n            !this.ccFrmGp.get('address1')?.valid ||\r\n            !this.ccFrmGp.get('city')?.valid ||\r\n            !this.ccFrmGp.get('state')?.valid ||\r\n            !this.ccFrmGp.get('zip5')?.valid ||\r\n            !this.ccFrmGp.get('email')?.valid ||\r\n            !this.ccFrmGp.get('phoneGp.phoneNumber')?.valid\r\n            ))\r\n           {\r\n            this.billingSectionIncomplete = true;\r\n            console.log(\"Billing missing\")\r\n          } else {\r\n            this.billingSectionIncomplete = false;\r\n          }\r\n  \r\n          if (\r\n            (\r\n            !this.ccFrmGp.get('ccNumber')?.value || \r\n            !this.ccFrmGp.get('ccExpiryMonth')?.value ||\r\n            !this.ccFrmGp.get('ccExpiryYear')?.value ||\r\n            !this.ccFrmGp.get('cvv')?.value\r\n            ) || \r\n            (\r\n              !this.ccFrmGp.get('ccNumber')?.valid || \r\n              !this.ccFrmGp.get('ccExpiryMonth')?.valid ||\r\n              !this.ccFrmGp.get('ccExpiryYear')?.valid ||\r\n              !this.ccFrmGp.get('cvv')?.valid\r\n            )) {\r\n              this.ccSectionIncomplete = true;\r\n              console.log(\"cc missing\")\r\n          } else {\r\n            this.ccSectionIncomplete = false;\r\n          }\r\n        }\r\n        else {\r\n          this.billingSectionIncomplete = false;\r\n          this.ccSectionIncomplete = false;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    // this.expMonTrigger.panelClosingActions.subscribe((e) => {\r\n    //   console.log(\"E \", e)\r\n    //   if (!(e && e.source)) {\r\n    //     // clear value if is not from the filtered list\r\n    //     this.expMonthCtrl.setValue('');\r\n    //     this.expMonTrigger.closePanel();\r\n    //   }\r\n    // });\r\n\r\n    // this.expYearTrigger.panelClosingActions.subscribe((e) => {\r\n    //   console.log(\"E \", e)\r\n    //   if (!(e && e.source)) {\r\n    //     // clear value if is not from the filtered list\r\n    //     this.expYearCtrl.setValue('');\r\n    //     this.expYearTrigger.closePanel();\r\n    //   }\r\n    // });\r\n  }\r\n\r\n  ngOnChanges(): void {\r\n    if (this.isEditPayment) {\r\n      this.payorCollection = this.editPayorCollection;\r\n    }\r\n  }\r\n\r\n  isCCExpired(month: string, year: string): boolean {\r\n    var dateVal = month + \"/01/\" + year;\r\n    var ccDate = new Date(dateVal);\r\n    var currentDate = new Date();\r\n\r\n    //console.log(\"Date val: \", dateVal)\r\n    //console.log(\"CCDate \", ccDate)\r\n    //console.log(\"CurrentDate \", currentDate)\r\n\r\n    if (ccDate < currentDate) {\r\n      var expDate = new Date(Number(month)+1 + \"/01/\" + year);\r\n      //console.log(\"EXP DATE: \", expDate)\r\n      return expDate < currentDate\r\n    }\r\n    else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  filterMonthValue(value: string): string[] {\r\n    if (value === '') {\r\n      return this.expMonths.slice();\r\n    }\r\n\r\n    const filterValue = value.toLowerCase();\r\n    return this.expMonths.filter(\r\n      (option: any) => option.toLowerCase().indexOf(filterValue) === 0\r\n    );\r\n  }\r\n\r\n  filterYearValue(value: string): string[] {\r\n    if (value === '') {\r\n      return this.expYears.slice();\r\n    }\r\n\r\n    const filterValue = value.toLowerCase();\r\n    return this.expYears.filter(\r\n      (option: any) => option.toLowerCase().indexOf(filterValue) === 0\r\n    );\r\n  }\r\n\r\n  createCCPaymentAttempt() {\r\n  this.attemptedCCAttempt = true;\r\n\r\n  console.log(\"****** \", this.ccFrmGp)\r\n  console.log(\"NOT VALID: \", !this.ccFrmGp.valid)\r\n\r\n  if (!this.ccFrmGp.valid) {\r\n    if (\r\n      !this.ccFrmGp.get('ccFirstName')?.value\r\n       ||\r\n      !this.ccFrmGp.get('ccLastName')?.value ||\r\n      !this.ccFrmGp.get('address1')?.value ||\r\n      !this.ccFrmGp.get('city')?.value ||\r\n      !this.ccFrmGp.get('state')?.value ||\r\n      !this.ccFrmGp.get('zip5')?.value ||\r\n      !this.ccFrmGp.get('email')?.value ||\r\n      !this.ccFrmGp.get('phoneGp.phoneNumber')?.value\r\n    ) {\r\n      this.billingSectionIncomplete = true;\r\n      console.log(\"Billing missing\")\r\n    }\r\n\r\n    if (\r\n      !this.ccFrmGp.get('ccNumber')?.value || \r\n      !this.ccFrmGp.get('ccExpiryMonth')?.value ||\r\n      !this.ccFrmGp.get('ccExpiryYear')?.value ||\r\n      !this.ccFrmGp.get('cvv')?.value) {\r\n        this.ccSectionIncomplete = true;\r\n        console.log(\"cc missing\")\r\n    }\r\n\r\n    if (this.ccFrmGp?.hasError('expired') || this.expMonthCtrl.hasError('invalidExpMonth') || this.expYearCtrl.hasError('invalidExpYear')) {\r\n      this.ccSectionIncomplete = true;\r\n    }\r\n  }\r\n\r\n  else {\r\n    this.creditCardPayment.confirm = true;\r\n\r\n    this.creditCardPayment.amount = this.totalAmtOfPayments;\r\n    this.totalCCPayment = this.creditCardPayment.totalAmount;\r\n    this.creditCardPayment.firstName = this.ccFrmGp.get('ccFirstName')?.value;\r\n    this.creditCardPayment.lastName = this.ccFrmGp.get('ccLastName')?.value;\r\n    this.creditCardPayment.addressLine1 = this.ccFrmGp.get('address1')?.value;\r\n    this.creditCardPayment.addressLine2 = this.ccFrmGp.get('address2')?.value;\r\n    this.creditCardPayment.addressCity = this.ccFrmGp.get('city')?.value;\r\n    this.creditCardPayment.addressState = this.ccFrmGp.get('state')?.value;\r\n    this.creditCardPayment.addressCountry = this.ccFrmGp.get('country')?.value;\r\n    this.creditCardPayment.addressZIP5 = this.ccFrmGp.get('zip5')?.value;\r\n    this.creditCardPayment.email = this.ccFrmGp.get('email')?.value;\r\n    this.creditCardPayment.phone = this.ccFrmGp.get('phoneGp.phoneNumber')?.value;\r\n\r\n    //console.log(\"CC PAYMENT ATTEMPT PAYLOAD: \", this.creditCardPayment)\r\n\r\n    this.creditCardService\r\n      .insertEmployerCreditCardAttempt(this.baseurl, this.creditCardPayment)\r\n      .subscribe({\r\n        next: (success: any) => {\r\n\r\n          this.transactionId = success.value.transactionId;\r\n\r\n          if (this.transactionId === '') {\r\n            console.log(\r\n              'Did not receieve transactionId for Credit Card payment...'\r\n            );\r\n          } else {\r\n            //this.authService.logout(this.baseurl, true);\r\n          }\r\n        },\r\n        error: (error: any) => {\r\n          console.log(\"Failing here #2\")\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        },\r\n      });\r\n    }\r\n  }\r\n\r\n  processCreditCard() {\r\n    this.createPaymentButtonText = 'Processing....';\r\n    \r\n    let firstName = this.ccFrmGp.get('ccFirstName')?.value;\r\n    let lastName = this.ccFrmGp.get('ccLastName')?.value;\r\n    let cvv = this.ccFrmGp.get('cvv')?.value;\r\n    let ccNumber = this.ccFrmGp.get('ccNumber')?.value;\r\n    let ccExpiryMonth = this.ccFrmGp.get('ccExpiryMonth')?.value;\r\n    let ccExpiryYear = this.ccFrmGp.get('ccExpiryYear')?.value;\r\n    let address1 = this.ccFrmGp.get('address1')?.value;\r\n    let address2 = this.ccFrmGp.get('address2')?.value;\r\n    let city = this.ccFrmGp.get('city')?.value;\r\n    let state = this.ccFrmGp.get('state')?.value;\r\n    let zip = this.ccFrmGp.get('zip5')?.value;\r\n\r\n    this.creditCardObj = {\r\n      transactionId: this.transactionId,\r\n      firstName: firstName,\r\n      lastName: lastName,\r\n      accountNumber: ccNumber,\r\n      expirationMonth: ccExpiryMonth,\r\n      expirationYear: ccExpiryYear,\r\n      securityCode: cvv,\r\n      isEmployer: true,\r\n      addressLine1: address1,\r\n      addressLine2: address2,\r\n      addressCity: city,\r\n      addressState: state,\r\n      addressZIP5: zip\r\n    };\r\n\r\n    console.log(\"Process CC Obj: \", this.creditCardObj);\r\n\r\n    this.ccPaymentService.insertProcessCreditCard(\r\n      this.baseurl, this.creditCardObj\r\n    ).subscribe({\r\n      next: (success: any) => {\r\n\r\n        console.log(\"Process CC Response: \", success)\r\n        console.log(\"Transaction ID: \", this.transactionId)\r\n\r\n        this.encryptedTransactionId = success.encodedTransactionId!\r\n\r\n        if (success) {\r\n          this.authService.logout(CommonSettings.BaseApi);\r\n          this.router.navigate(['/creditcardsuccess'], {queryParams: {tid: this.encryptedTransactionId}});\r\n        }\r\n      },\r\n      error: (error: any) => {\r\n        //this.logError(error);\r\n        //this.handleError(error.status);\r\n        console.log(\"ERR: \", error)\r\n\r\n        this.createPaymentButtonText = 'Pay Now';\r\n\r\n          if (error.error) {\r\n            var errTitle = '';\r\n            var errMsg = '';\r\n\r\n            if (error.error.length !== 0) {\r\n              error.error.forEach((res: any) => {\r\n                if (res.errorCode + ', ' !== errTitle) {\r\n                  errTitle += res.errorCode + ', ';\r\n                }\r\n                errMsg += res.errorMessage + ', ';\r\n              });\r\n            }\r\n  \r\n            this.dialogData = new ErrorHandlerDialogModel(\r\n              \"Error Occurred: Internal Error Occurred\",\r\n              \"Error Code: \" + errTitle,\r\n              errMsg,\r\n              '',\r\n              '',\r\n              '',\r\n              true\r\n            );\r\n    \r\n            this.dialogRef = this.dialog.open(ErrorDialogComponent, {\r\n              maxWidth: '800px',\r\n              data: this.dialogData,\r\n            });\r\n  \r\n            this.dialogRef.afterClosed().subscribe((dialogResult: string) => {\r\n              this.deleteResult = dialogResult;\r\n              if (this.deleteResult) {\r\n                  //this.location.back();\r\n              }\r\n            });\r\n          }\r\n          else {\r\n            this.logError(error);\r\n            this.handleError(error.status);\r\n          }\r\n\r\n      },\r\n    });\r\n  }\r\n\r\n  securityCodeHelp() {\r\n    this.dialog.open(EMPSecurityCodeHelpComponent);\r\n  }\r\n\r\n  rotateCard(control: string) {\r\n    if (control === 'cvv') {\r\n      if (this.cardSide === 0) {\r\n        this.flipCard = !this.flipCard;\r\n        this.cardSide = 1;\r\n      }\r\n    }\r\n\r\n    if (control === 'other') {\r\n      if (this.cardSide === 1) {\r\n        this.flipCard = !this.flipCard;\r\n        this.cardSide = 0;\r\n      }\r\n    }\r\n\r\n  }\r\n\r\n  setMaskAndExample(regionCode: string) {\r\n    this.phoneExample = this.phoneHelperService.getExample(regionCode);\r\n    this.phoneMask = this.phoneHelperService.getMask(regionCode);\r\n  }\r\n\r\n  toggleCVVHide() {\r\n    this.cvvHide = !this.cvvHide;\r\n  }\r\n\r\n  toggleCCHide() {\r\n    this.ccHide = !this.ccHide;\r\n  }\r\n\r\n  emitValidPayorPerValidation() {\r\n    if (this.isScheduledPaymentValidation) {\r\n      this.validPayorEmit();\r\n    } else if (this.isCreditCardValidation) {\r\n      this.validCreditCardEmit();\r\n    }\r\n  }\r\n\r\n  validPayorEmit() {\r\n    if (this.payorsValid) {\r\n      this.validPayorEmitter_OK.emit({\r\n        payorCollection: this.payorCollection,\r\n      });\r\n    }\r\n  }\r\n\r\n  validCreditCardEmit() {\r\n    this.creditCardPayment = {\r\n      batchType: 'WEB',\r\n      payerType: 'EMP',\r\n      confirm: false,\r\n      fee: 0,\r\n      feePercentage: 0,\r\n      amount: this.totalAmtOfPayments,\r\n      totalAmount: this.totalAmtOfPayments,\r\n      participantCollection: this.payorCollection,\r\n      firstName: this.ccFrmGp.get('ccFirstName')?.value ? this.ccFrmGp.get('ccFirstName')?.value : '',\r\n      lastName: this.ccFrmGp.get('ccLastName')?.value ? this.ccFrmGp.get('ccLastName')?.value : '',\r\n      ssn: '',\r\n      addressLine1: this.ccFrmGp.get('address1')?.value ? this.ccFrmGp.get('address1')?.value : '',\r\n      addressLine2: this.ccFrmGp.get('address2')?.value ? this.ccFrmGp.get('address2')?.value : '',\r\n      addressCity: this.ccFrmGp.get('city')?.value ? this.ccFrmGp.get('city')?.value : '',\r\n      addressState: this.ccFrmGp.get('state')?.value ? this.ccFrmGp.get('state')?.value : '',\r\n      addressCountry: this.ccFrmGp.get('country')?.value ? this.ccFrmGp.get('country')?.value : '',\r\n      addressZIP5: this.ccFrmGp.get('zip5')?.value ? this.ccFrmGp.get('zip5')?.value : '',\r\n      email: this.ccFrmGp.get('email')?.value ? this.ccFrmGp.get('email')?.value : '',\r\n      phone: this.ccFrmGp.get('phoneGp.phoneNumber')?.value ? this.ccFrmGp.get('phoneGp.phoneNumber')?.value : ''\r\n    };\r\n\r\n    this.creditCardService\r\n      .insertEmployerCreditCardAttempt(this.baseurl, this.creditCardPayment)\r\n      .subscribe({\r\n        next: (response: any) => {\r\n          this.creditCardPayment.fee = response.value.convenienceAmount;\r\n          this.creditCardPayment.feePercentage =\r\n            response.value.convenienceFeePercentage;\r\n          this.creditCardPayment.totalAmount = response.value.totalPaymentAmount;\r\n          this.creditCardPayment.participantCollection = this.payorCollection;\r\n        },\r\n        error: (error: any) => {\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        },\r\n        complete: () => {\r\n          this.validPayorCreditCardEmitter_OK.emit({\r\n            creditCardPayment: this.creditCardPayment,\r\n          });\r\n        },\r\n      });\r\n  }\r\n\r\n  validatePayors() {\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.noPreviousPayors = '';\r\n    this.validationErrorMessage = '';\r\n    this.isValdiatingPayment = true;\r\n    this.validateAttemptMade = true;\r\n    this.nameChangeOccured = false;\r\n\r\n    const allowZeroAmount = false;\r\n\r\n    let foundError = false;\r\n\r\n    if (this.atLeastOnePayorSelected) {\r\n      this.payorCollection = this.payorCollection.filter((x) => x.isSelected);\r\n      this.payorCollection.forEach((payor) => {\r\n        payor.hasError = false;\r\n        payor.isValidated = false;\r\n        payor.errorMessage = '';\r\n        // Check for invalid payors\r\n        if (payor.amount === null || payor.amount === undefined) {\r\n          foundError = true;\r\n          payor.hasError = true;\r\n          payor.isValidated = true;\r\n          payor.errorMessage = 'Missing Amount';\r\n        } else if (\r\n          Number.isNaN(payor.amount) ||\r\n          payor.amount === 0 ||\r\n          payor.amount < 1.0 ||\r\n          payor.amount > 9999.99\r\n        ) {\r\n          foundError = true;\r\n          payor.hasError = true;\r\n          payor.isValidated = true;\r\n          payor.errorMessage = 'Invalid Amount';\r\n        } else if (\r\n          this.validateCaseNumber &&\r\n          (payor.caseNumber === null || payor.caseNumber === '')\r\n        ) {\r\n          foundError = true;\r\n          payor.hasError = true;\r\n          payor.isValidated = true;\r\n          payor.errorMessage = 'Missing ' + this.secondaryIdAlias;\r\n        } else {\r\n          payor.hasError = false;\r\n          payor.isValidated = false;\r\n          payor.errorMessage = '';\r\n        }\r\n        payor.ssn = payor.ssn.toString().replace(/-/g, '');\r\n        payor.ssn = payor.ssn.toString().replace(/\\s/g, '');\r\n        payor.hadEdit = false;\r\n      });\r\n\r\n      if (foundError) {\r\n        let foundInvalidCount = 0;\r\n        this.payorsValid = false;\r\n        this.isValdiatingPayment = false;\r\n        this.payorFrmGp.patchValue({\r\n          isValid: this.payorsValid,\r\n        });\r\n        this.payorCollection.forEach((payor) => {\r\n          if (payor.hasError) {\r\n            foundInvalidCount++;\r\n          }\r\n        });\r\n        this.numInvalid = foundInvalidCount;\r\n      }\r\n\r\n      if (\r\n        this.payorCollection.length > 0 &&\r\n        this.atLeastOnePayorSelected &&\r\n        !foundError\r\n      ) {\r\n        this.payorCollection.forEach((payor) => {\r\n          //Update ssn to all 0s if blank\r\n          if (payor.ssn.length === 0) {\r\n            payor.ssn = '000000000';\r\n          }\r\n          payor.caseNumber = payor.caseNumber?.toString().padStart(9, '0');\r\n        });\r\n\r\n        this.paymentService\r\n          .isValidPayment(\r\n            this.baseurl,\r\n            this.payorCollection,\r\n            allowZeroAmount.toString(),\r\n            this.validateCaseNumber.toString()\r\n          )\r\n          .subscribe({\r\n            next: (valid: any) => {\r\n              this.payorCollection.forEach((element) => {\r\n                element.hasError = false;\r\n                element.hasWarning = false;\r\n                element.isValidated = true;\r\n              });\r\n              this.payorsValid = true;\r\n              this.nameChangeOccured = false;\r\n              this.payorFrmGp.patchValue({\r\n                isValid: this.payorsValid,\r\n              });\r\n              this.isValdiatingPayment = false;\r\n            },\r\n            error: (error: any) => {\r\n              this.payorsValid = false;\r\n              this.isValdiatingPayment = false;\r\n              this.payorFrmGp.patchValue({\r\n                isValid: this.payorsValid,\r\n              });\r\n              if (error.status === 400) {\r\n                // First, reset all payments hasError to false\r\n                this.payorCollection.forEach((element) => {\r\n                  element.isValidated = true;\r\n                  element.hasError = false;\r\n                  element.hasWarning = false;\r\n                  element.errorMessage = '';\r\n                });\r\n                // Second, add hasError to those indexes returned\r\n                error.error.invalidParticipantPositions.forEach(\r\n                  (invalidPayor: any) => {\r\n                    if (\r\n                      invalidPayor.correctedName !== undefined &&\r\n                      invalidPayor.correctedName !== null &&\r\n                      invalidPayor.correctedName !== ''\r\n                    ) {\r\n                      this.nameChangeOccured = true;\r\n                      this.payorCollection[invalidPayor.index].hasWarning =\r\n                        true;\r\n                      this.payorCollection[invalidPayor.index].lastName =\r\n                        invalidPayor.correctedName;\r\n                      this.payorCollection[invalidPayor.index].errorMessage =\r\n                        invalidPayor.error;\r\n                      this.numWarning++;\r\n                    } else {\r\n                      this.payorCollection[invalidPayor.index].hasError = true;\r\n                      this.payorCollection[invalidPayor.index].errorMessage =\r\n                        invalidPayor.error;\r\n                      this.numInvalid++;\r\n                    }\r\n                  }\r\n                );\r\n                this.validationErrorMessage = error.error.failureMessage;\r\n                this.validationErrorMessage =\r\n                  this.validationErrorMessage.replace(/^\"|\"$/g, '');\r\n              } else {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              }\r\n            },\r\n            complete: () => {\r\n              if (this.payorsValid) {\r\n                this.emitValidPayorPerValidation();\r\n              }\r\n            },\r\n          });\r\n      }\r\n    } else {\r\n      this.isValdiatingPayment = false;\r\n    }\r\n  }\r\n\r\n  getPreviousPaymentPayors(event: any) {\r\n    this.toggleEditPayor = false;\r\n    this.payorsValid = false;\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.isFileValid = false;\r\n    this.fileImported = false;\r\n    this.noPreviousPayors = '';\r\n    this.nameChangeOccured = false;\r\n    this.isLoadingPreviousPayors = false;\r\n    this.previousPaymentPayors = [];\r\n    this.previousAllPayors = [];\r\n    this.payorCollection = [];\r\n\r\n    let lastPaymentIndex = 0;\r\n    this.payorFrmGp.patchValue({\r\n      filename: '',\r\n      isValid: this.payorsValid,\r\n    });\r\n    this.payorFrmGp.updateValueAndValidity();\r\n\r\n    if (!event.target.checked) {\r\n      this.previousPayorsChecked = false;\r\n    } else {\r\n      this.previousPayorsChecked = true;\r\n      this.allPayorsChecked = false;\r\n      this.isLoadingPreviousPayors = true;\r\n\r\n      this.paymentService\r\n        .getPayments(\r\n          this.baseurl,\r\n          this.selectedPaymentAccount.scheduledPaymentAccountKey,\r\n          true\r\n        )\r\n        .subscribe({\r\n          next: (payments: any) => {\r\n            this.scheduledpayments = payments;\r\n            //Filter cancelled payments that don't have payor listed anymore\r\n            this.scheduledpayments.filter(\r\n              (p) => p.participantCollection.length > 0\r\n            );\r\n\r\n            //If we have scheduled payment left after filter, sort them and add to payment Collection for view\r\n            if (this.scheduledpayments.length > 0) {\r\n              this.scheduledpayments.sort(\r\n                (a, b) =>\r\n                  <any>new Date(a.scheduleStartDate) -\r\n                  <any>new Date(b.scheduleStartDate)\r\n              );\r\n\r\n              lastPaymentIndex = this.scheduledpayments.length - 1;\r\n\r\n              this.previousPaymentPayors =\r\n                this.scheduledpayments[lastPaymentIndex].participantCollection;\r\n              this.previousPaymentPayors.forEach((payor) => {\r\n                payor.isSelected = false;\r\n                payor.isValidated = false;\r\n                payor.hasError = false;\r\n                payor.caseNumber = payor.secondaryId;\r\n              });\r\n              this.payorCollection = this.payorCollection.concat(\r\n                this.previousPaymentPayors\r\n              );\r\n              this.isLoadingPreviousPayors = false;\r\n              this.allChecked = false;\r\n            } else {\r\n              this.noPreviousPayors =\r\n                'No previous payors found for the selected bank account.';\r\n              this.isLoadingPreviousPayors = false;\r\n            }\r\n          },\r\n          error: (error: any) => {\r\n            this.isLoadingPreviousPayors = false;\r\n            if (error.status !== 404) {\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            } else {\r\n              this.noPreviousPayors =\r\n                'No previous payors found for the selected bank account.';\r\n              this.isLoadingPreviousPayors = false;\r\n            }\r\n          },\r\n        });\r\n    }\r\n  }\r\n\r\n  getAllPreviousPayors(event: any) {\r\n    this.toggleEditPayor = false;\r\n    this.payorsValid = false;\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.isFileValid = false;\r\n    this.fileImported = false;\r\n    this.noPreviousPayors = '';\r\n    this.nameChangeOccured = false;\r\n    this.isLoadingPreviousPayors = false;\r\n    this.previousPaymentPayors = [];\r\n    this.previousAllPayors = [];\r\n    this.payorCollection = [];\r\n\r\n    this.payorFrmGp.patchValue({\r\n      filename: '',\r\n      isValid: this.payorsValid,\r\n    });\r\n    this.payorFrmGp.updateValueAndValidity();\r\n\r\n    if (!event.target.checked) {\r\n      this.allPayorsChecked = false;\r\n    } else {\r\n      this.allPayorsChecked = true;\r\n      this.previousPayorsChecked = false;\r\n\r\n      this.isLoadingPreviousPayors = true;\r\n\r\n      this.paymentService\r\n        .getPayments(\r\n          this.baseurl,\r\n          this.selectedPaymentAccount.scheduledPaymentAccountKey,\r\n          true\r\n        )\r\n        .subscribe({\r\n          next: (payments: any) => {\r\n            this.scheduledpayments = payments;\r\n            //Filter cancelled payments that don't have payor listed anymore\r\n            this.scheduledpayments.filter(\r\n              (p) => p.participantCollection.length > 0\r\n            );\r\n\r\n            //If we have scheduled payment left after filter, sort them and add to payment Collection for view\r\n            if (this.scheduledpayments.length > 0) {\r\n              this.scheduledpayments.sort(\r\n                (a, b) =>\r\n                  <any>new Date(a.scheduleStartDate) -\r\n                  <any>new Date(b.scheduleStartDate)\r\n              );\r\n\r\n              //Get all previous participants\r\n              this.scheduledpayments.forEach((payment) => {\r\n                this.previousAllPayors = this.previousAllPayors.concat(\r\n                  payment.participantCollection\r\n                );\r\n              });\r\n              //Set defaults for all previous participants\r\n              this.previousAllPayors.forEach((prevPayor) => {\r\n                prevPayor.isSelected = false;\r\n                prevPayor.hasError = false;\r\n                prevPayor.isValidated = false;\r\n                prevPayor.caseNumber = prevPayor.secondaryId;\r\n              });\r\n              //Remove duplicates with same name, ssn, and case number\r\n              this.previousAllPayors = this.previousAllPayors.filter(\r\n                (v, i, a) =>\r\n                  a.findIndex(\r\n                    (t) =>\r\n                      t.lastName.toUpperCase() === v.lastName.toUpperCase() &&\r\n                      t.ssn === v.ssn &&\r\n                      t.caseNumber === v.caseNumber\r\n                  ) === i\r\n              );\r\n\r\n              //Set previous to collection for UI display\r\n              this.payorCollection = this.previousAllPayors;\r\n\r\n              //Set loading values for display\r\n              this.isLoadingPreviousPayors = false;\r\n              this.allChecked = false;\r\n            }\r\n          },\r\n          error: (error: any) => {\r\n            this.isLoadingPreviousPayors = false;\r\n            if (error.status !== 404) {\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            } else {\r\n              this.noPreviousPayors =\r\n                'No previous payors found for the selected bank account.';\r\n              this.isLoadingPreviousPayors = false;\r\n            }\r\n          },\r\n        });\r\n    }\r\n  }\r\n\r\n  toggleSSNHide() {\r\n    this.ssnHide = !this.ssnHide;\r\n  }\r\n\r\n  onFileChange(evt: any) {\r\n    this.previousPayorsChecked = false;\r\n    this.allPayorsChecked = false;\r\n    this.payorsValid = false;\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.isFileValid = false;\r\n    this.noPreviousPayors = '';\r\n    this.nameChangeOccured = false;\r\n\r\n    let headerRowIndex = -1;\r\n    let lastNameHeaderIndex = -1;\r\n    let ssnHeaderIndex = -1;\r\n    let caseHeaderIndex = -1;\r\n    let amountHeaderIndex = -1;\r\n    this.payorCollection = [];\r\n    this.payorFrmGp.patchValue({\r\n      filename: '',\r\n    });\r\n\r\n    /* wire up file reader */\r\n    let target: DataTransfer = evt.target as DataTransfer;\r\n    if (target.files.length > 1) {\r\n      this.isFileValid = false;\r\n      this.fileErrorMessage = 'Cannot import multiple files at once.';\r\n      target = new DataTransfer();\r\n      throw new Error('Cannot use multiple files');\r\n    }\r\n    if (\r\n      !target.files[0].name.endsWith('xlsx') &&\r\n      !target.files[0].name.endsWith('xls')\r\n    ) {\r\n      target = new DataTransfer();\r\n      this.isFileValid = false;\r\n      this.fileErrorMessage = 'File type must be Excel format (.xlsx or .xls)';\r\n      throw new Error('File type not accepted');\r\n    }\r\n    // this.payorCollection = []; Addd import to existing payors\r\n    const reader: FileReader = new FileReader();\r\n    reader.onload = (e: any) => {\r\n      /* read workbook */\r\n      const bstr: string = e.target.result;\r\n      const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n\r\n      /* grab first sheet */\r\n      const worksheetName: string = wb.SheetNames[0];\r\n      const worksheet: XLSX.WorkSheet = wb.Sheets[worksheetName];\r\n\r\n      /* find the headers */\r\n      this.data = XLSX.utils.sheet_to_json(worksheet, { header: 1 }) as AOA;\r\n      for (let x = 0; x < this.data.length; x++) {\r\n        if (this.data[x][0] !== undefined) {\r\n          if (\r\n            this.data[x][0].toString().trim().toLowerCase() ===\r\n              'employee last name' ||\r\n            this.data[x][0].toString().trim().toLowerCase() === 'lastname' ||\r\n            this.data[x][0].toString().trim().toLowerCase() === 'last name' ||\r\n            this.data[x][0].toString().trim().toLowerCase() ===\r\n              'social security number' ||\r\n            this.data[x][0].toString().trim().toLowerCase() === 'ssn' ||\r\n            this.data[x][0].toString().trim().toLowerCase() === 'amt' ||\r\n            this.data[x][0].toString().trim().toLowerCase() === 'amount' ||\r\n            this.data[x][0].toString().trim().toLowerCase() === 'payment amount'\r\n          ) {\r\n            headerRowIndex = x;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      if (headerRowIndex === -1) {\r\n        this.payorFrmGp.patchValue({\r\n          filename: '',\r\n        });\r\n        this.isFileValid = false;\r\n        target = new DataTransfer();\r\n        if (this.validateCaseNumber) {\r\n          this.fileErrorMessage =\r\n            `Invalid File Format. File must be Excel document and contain  at least 4 columns with headers titled\r\n          \"Employee Last Name\", \"SSN\", ` +\r\n            this.secondaryIdAlias +\r\n            ` and \"Amount\".  Please refer to Sample File Example.`;\r\n        } else {\r\n          this.fileErrorMessage = `Invalid File Format. File must be Excel document and contain  at least 3 columns with headers titled\r\n                                \"Employee Last Name\", \"SSN\", and \"Amount\".  Please refer to Sample File Example.`;\r\n        }\r\n        return;\r\n      }\r\n\r\n      /* Find the index for data */\r\n      const headercheck = this.data[headerRowIndex];\r\n      for (let x = 0; x < headercheck.length; x++) {\r\n        if (\r\n          headercheck[x].toString().toLowerCase() === 'employee last name' ||\r\n          headercheck[x].toString().toLowerCase() === 'lastname' ||\r\n          headercheck[x].toString().toLowerCase() === 'last name'\r\n        ) {\r\n          lastNameHeaderIndex = x;\r\n        }\r\n        if (\r\n          headercheck[x].toString().toLowerCase() === 'ssn' ||\r\n          headercheck[x].toString().toLowerCase() === 'social security number'\r\n        ) {\r\n          ssnHeaderIndex = x;\r\n        }\r\n\r\n        if (\r\n          headercheck[x].toString().toLowerCase() === 'case number' ||\r\n          headercheck[x].toString().toLowerCase() === 'case' ||\r\n          headercheck[x].toString().toLowerCase() === 'case id' ||\r\n          headercheck[x].toString().toLowerCase() === 'fgn' ||\r\n          headercheck[x].toString().toLowerCase() === 'family group #' ||\r\n          headercheck[x].toString().toLowerCase() === 'family group number'\r\n        ) {\r\n          caseHeaderIndex = x;\r\n        }\r\n\r\n        if (\r\n          headercheck[x].toString().toLowerCase() === 'payment amount' ||\r\n          headercheck[x].toString().toLowerCase() === 'amount' ||\r\n          headercheck[x].toString().toLowerCase() === 'amt'\r\n        ) {\r\n          amountHeaderIndex = x;\r\n        }\r\n      }\r\n\r\n      if (this.validateCaseNumber) {\r\n        if (\r\n          lastNameHeaderIndex === -1 ||\r\n          ssnHeaderIndex === -1 ||\r\n          amountHeaderIndex === -1 ||\r\n          caseHeaderIndex === -1\r\n        ) {\r\n          this.payorFrmGp.patchValue({\r\n            filename: '',\r\n          });\r\n          this.isFileValid = false;\r\n          target = new DataTransfer();\r\n          this.fileErrorMessage =\r\n            `Invalid File Format. File must be Excel document and contain at least 3 columns with headers titled\r\n                                  \"Employee Last Name\", \"SSN\", ` +\r\n            this.secondaryIdAlias +\r\n            ` and \"Amount\".  Please refer to Sample File.`;\r\n          return;\r\n        }\r\n      } else {\r\n        if (\r\n          lastNameHeaderIndex === -1 ||\r\n          ssnHeaderIndex === -1 ||\r\n          amountHeaderIndex === -1\r\n        ) {\r\n          this.payorFrmGp.patchValue({\r\n            filename: '',\r\n          });\r\n          this.isFileValid = false;\r\n          target = new DataTransfer();\r\n          this.fileErrorMessage = `Invalid File Format. File must be Excel document and contain at least 3 columns with headers titled\r\n                                  \"Employee Last Name\", \"SSN\", and \"Amount\".  Please refer to Sample File.`;\r\n          return;\r\n        }\r\n      }\r\n\r\n      /* save data */\r\n      this.data = this.data.splice(headerRowIndex + 1);\r\n      // tslint:disable-next-line:prefer-for-of\r\n      for (let i = 0; i < this.data.length; i++) {\r\n        const d = this.data[i];\r\n        if (d[0] === undefined) {\r\n          break;\r\n        }\r\n        const p = {\r\n          name: '',\r\n          firstName: '',\r\n          middleName: '',\r\n          lastName: d[lastNameHeaderIndex],\r\n          ssn:\r\n            d[ssnHeaderIndex] === undefined ? '' : d[ssnHeaderIndex].toString(),\r\n          caseNumber: this.validateCaseNumber ? d[caseHeaderIndex] : '',\r\n          amount:\r\n            d[amountHeaderIndex] === undefined ? 0 : +d[amountHeaderIndex],\r\n          isSelected: true,\r\n          isValidated: false,\r\n          hasError: false,\r\n          hasWarning: false,\r\n          hadEdit: false,\r\n          errorMessage: '',\r\n        };\r\n        this.payorCollection.push(p);\r\n      }\r\n    };\r\n    reader.readAsBinaryString(target.files[0]);\r\n\r\n    this.payorFrmGp.patchValue({\r\n      filename: target.files[0].name,\r\n    });\r\n    this.fileImported = true;\r\n    this.isFileValid = true;\r\n    this.payorCollection.reverse();\r\n    reader.onloadend = (e: any) => {\r\n      this.isAllChecked();\r\n      this.payorCollection.forEach((element) => {\r\n        if (element.isSelected) {\r\n          this.atLeastOnePayorSelected = true;\r\n        }\r\n      });\r\n      if (this.payorCollection.length === 0 && this.isFileValid) {\r\n        this.isFileValid = false;\r\n        this.fileErrorMessage =\r\n          'Error importing file.  Please review file to make sure all fields are completed.';\r\n      }\r\n    };\r\n    target = new DataTransfer();\r\n  }\r\n\r\n  resetFile() {\r\n    this.inputFile.nativeElement.value = null;\r\n  }\r\n\r\n  addSavePayorCollection() {\r\n    this.payorsValid = false;\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.noPreviousPayors = '';\r\n    const payor = this.payorFrmGp.value;\r\n    if (\r\n      payor.collectionFrmGp.lastName === '' ||\r\n      payor.collectionFrmGp.lastName === null ||\r\n      //Don't care if ssn is missing for TN\r\n      // payor.collectionFrmGp.ssn === '' ||\r\n      // payor.collectionFrmGp.ssn === null ||\r\n      payor.collectionFrmGp.amount === '' ||\r\n      payor.collectionFrmGp.amount === null ||\r\n      ((payor.collectionFrmGp.casenumber === '' ||\r\n        payor.collectionFrmGp.casenumber === null) &&\r\n        this.validateCaseNumber)\r\n    ) {\r\n      if (!this.validateCaseNumber) {\r\n        this.payorDetailError =\r\n          'Invalid entry, make sure Last Name, SSN, and Amount have been entered.';\r\n      } else {\r\n        this.payorDetailError =\r\n          'Invalid entry, make sure Last Name, SSN, ' +\r\n          this.secondaryIdAlias +\r\n          ' and Amount have been entered.';\r\n      }\r\n      return;\r\n    } else {\r\n      this.payorDetailError = '';\r\n    }\r\n    let founderror = false;\r\n    let formatSSN = '';\r\n    const ssnRegex = new RegExp(this.ssnPattern);\r\n\r\n    if (payor.collectionFrmGp.ssn.length > 0) {\r\n      formatSSN = payor.collectionFrmGp.ssn.toString();\r\n      formatSSN = formatSSN.replace(/-/g, '');\r\n      formatSSN = formatSSN.replace(/\\s/g, '');\r\n\r\n      if (!ssnRegex.test(payor.collectionFrmGp.ssn)) {\r\n        founderror = true;\r\n      }\r\n    }\r\n\r\n    if (!this.isEditPayor) {\r\n      const p = {\r\n        lastName: payor.collectionFrmGp.lastname,\r\n        ssn: formatSSN,\r\n        amount: +payor.collectionFrmGp.amount,\r\n        caseNumber: payor.collectionFrmGp.casenumber,\r\n        firstName: '',\r\n        middleName: '',\r\n        name: '',\r\n        isSelected: true,\r\n        isValidated: false,\r\n        hasError: founderror,\r\n        hasWarning: false,\r\n        hadEdit: false,\r\n        errorMessage: founderror ? 'Invalid SSN' : '',\r\n      };\r\n      this.payorCollection.push(p);\r\n      this.payorCollection.reverse();\r\n    } else {\r\n      this.payorCollection[this.editPayorIndex].lastName =\r\n        payor.collectionFrmGp.lastname;\r\n      this.payorCollection[this.editPayorIndex].ssn = formatSSN;\r\n      this.payorCollection[this.editPayorIndex].caseNumber =\r\n        payor.collectionFrmGp.casenumber;\r\n      this.payorCollection[this.editPayorIndex].amount =\r\n        payor.collectionFrmGp.amount;\r\n      this.payorCollection[this.editPayorIndex].hasError = false;\r\n      this.payorCollection[this.editPayorIndex].errorMessage = '';\r\n      this.payorCollection[this.editPayorIndex].isValidated = false;\r\n\r\n      //If we have a SSN, then make sure it's valid\r\n      if (payor.collectionFrmGp.ssn.length > 0) {\r\n        if (!ssnRegex.test(payor.collectionFrmGp.ssn)) {\r\n          this.payorCollection[this.editPayorIndex].hasError = true;\r\n        } else {\r\n          this.payorCollection[this.editPayorIndex].hasError = false;\r\n        }\r\n      }\r\n      this.payorCollection[this.editPayorIndex].hadEdit = true;\r\n\r\n      this.isEditPayor = false;\r\n      this.editPayorIndex = -1;\r\n    }\r\n\r\n    this.payorsValid = false;\r\n    this.getNumberOfPayments();\r\n    this.payorFrmGp.reset();\r\n    this.payorFrmGp.updateValueAndValidity();\r\n  }\r\n\r\n  resetToggle() {\r\n    this.toggleEditPayor = false;\r\n  }\r\n\r\n  editPayor(payors: IEMPPaymentCollection, index: number) {\r\n    this.toggleEditPayor = true;\r\n    this.nameField.nativeElement.focus();\r\n    this.isEditPayor = true;\r\n    this.editPayorIndex = index;\r\n    this.payorFrmGp.reset();\r\n\r\n    this.payorFrmGp.get('collectionFrmGp')!.patchValue({\r\n      lastname: payors.lastName,\r\n      ssn: payors.ssn,\r\n      amount: payors.amount,\r\n      casenumber: payors.caseNumber,\r\n    });\r\n    this.payorFrmGp.updateValueAndValidity();\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.payorsValid = false;\r\n    this.payorCollection.forEach((payor) => {\r\n      payor.isValidated = false;\r\n      payor.hadEdit = false;\r\n    });\r\n  }\r\n\r\n  deletePayor(i: number) {\r\n    this.payorCollection.splice(i, 1);\r\n    this.numInvalid = 0;\r\n    this.numWarning = 0;\r\n    this.payorsValid = false;\r\n    this.payorCollection.forEach((payor) => {\r\n      payor.isValidated = false;\r\n    });\r\n    this.isAllChecked();\r\n  }\r\n\r\n  selectAllPayments(event: any) {\r\n    if (event.target.checked) {\r\n      this.payorCollection.forEach((p) => {\r\n        p.isSelected = true;\r\n      });\r\n    } else {\r\n      this.payorCollection.forEach((p) => {\r\n        p.isSelected = false;\r\n      });\r\n    }\r\n    this.getNumberOfPayments();\r\n  }\r\n\r\n  clearpayorCollection() {\r\n    this.fileImported = false;\r\n    this.isFileValid = false;\r\n    this.data = null;\r\n    //this.payment = {} as IEMPPayment;\r\n    this.payorCollection = [];\r\n    this.numOfPayments = 0;\r\n    this.payorFrmGp.reset();\r\n    this.payorFrmGp.patchValue({ filename: ' Choose File' });\r\n  }\r\n\r\n  isAllChecked() {\r\n    let checkit = true;\r\n    this.payorCollection.forEach((element) => {\r\n      if (!element.isSelected) {\r\n        checkit = false;\r\n      }\r\n    });\r\n    this.allChecked = checkit;\r\n  }\r\n\r\n  addRemovePayor(event: any, i: number) {\r\n    if (event.target.checked) {\r\n      this.payorCollection[i].isSelected = true;\r\n    } else {\r\n      this.payorCollection[i].isSelected = false;\r\n    }\r\n    this.getNumberOfPayments();\r\n    this.isAllChecked();\r\n  }\r\n\r\n  getNumberOfPayments(): number {\r\n    this.numOfPayments = 0;\r\n    this.totalAmtOfPayments = 0;\r\n    this.atLeastOnePayorSelected = false;\r\n    this.payorCollection.forEach((element) => {\r\n      if (element.isSelected) {\r\n        this.atLeastOnePayorSelected = true;\r\n        this.numOfPayments++;\r\n        this.totalAmtOfPayments += +element.amount;\r\n      }\r\n    });\r\n    this.totalAmtOfPayments = +this.totalAmtOfPayments.toFixed(2);\r\n    return this.numOfPayments;\r\n  }\r\n\r\n  setValidationType() {\r\n    if (this.validationType === PayorValidationTypes.creditCard) {\r\n      this.isCreditCardValidation = true;\r\n      this.isEftFileValidation = false;\r\n      this.isScheduledPaymentValidation = false;\r\n    }\r\n    if (this.validationType === PayorValidationTypes.scheduldedPayment) {\r\n      this.isCreditCardValidation = false;\r\n      this.isEftFileValidation = false;\r\n      this.isScheduledPaymentValidation = true;\r\n    }\r\n    if (this.validationType === PayorValidationTypes.eftEdiFile) {\r\n      this.isCreditCardValidation = false;\r\n      this.isEftFileValidation = true;\r\n      this.isScheduledPaymentValidation = false;\r\n    }\r\n  }\r\n\r\n  validCCPaymentEmitted(ccPayment: any) {\r\n    this.creditCardPayment = ccPayment.creditCardPayment;\r\n    this.paymentCollection = this.creditCardPayment.participantCollection;\r\n    this.getNumberOfPayments();\r\n  }\r\n\r\n  toggleEditPayorTab() {\r\n    this.toggleEditPayor = true;\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.termsFrmGp = this.formbuilder.group({\r\n      accepted: ['', Validators.requiredTrue],\r\n    });\r\n\r\n    this.reviewFrmGrp = this.formbuilder.group({});\r\n\r\n    this.ccFrmGp = this.formbuilder.group({\r\n      ccFirstName: ['', Validators.required],\r\n      ccLastName: ['', Validators.required],\r\n      address1: ['', Validators.required],\r\n      address2: [''],\r\n      city: ['', Validators.required],\r\n      state: ['', Validators.required],\r\n      zip5: ['', [Validators.required, Validators.pattern(this.zipPattern)]],\r\n      country: ['US', Validators.required],\r\n      email: ['', [Validators.required, Validators.pattern(this.emailPattern)]],\r\n      phoneGp: this.formbuilder.group({\r\n        regionCode: 'US',\r\n        phoneNumber: ['', [Validators.required]],\r\n        countryCode: '1',\r\n        isValid: [false, Validators.requiredTrue],\r\n      }),\r\n      phoneExt: '',\r\n\r\n      // Credit Card Info\r\n      ccType: ['mastercard', Validators.required],\r\n      ccNumber: ['', [Validators.required, Validators.pattern(this.ccRegex)]],\r\n      cvv: ['', [Validators.required, Validators.minLength(3)]],\r\n      ccExpiryMonth: ['', [Validators.required, autocompleteExpMonthValidator(this.expMonths)]],\r\n      ccExpiryYear: ['', [Validators.required, autocompleteExpYearValidator(this.expYears),]]\r\n    });\r\n\r\n    // set default country to US\r\n    this.ccFrmGp.patchValue({\r\n      country: 'US',\r\n    });\r\n\r\n    this.setMaskAndExample('US');\r\n\r\n    this.reviewFrmGrp = this.formbuilder.group({});\r\n  }\r\n\r\n  onCountrySelectionChange(event: any) {\r\n    var country = event.value;\r\n\r\n    this.ccFrmGp.get('phoneGp.phoneNumber')?.setValue('');\r\n    this.ccFrmGp.get('zip5')?.setValue('');\r\n    this.ccFrmGp.get('phoneGp.isValid')?.setValue(true);\r\n\r\n    this.setMaskAndExample(country);\r\n\r\n    // if (country !== 'US' || country !== 'CA' || country !== 'MX') {\r\n    //   this.ccFrmGp.get('state')!.disable();\r\n    //   this.ccFrmGp.get('state')!.clearValidators();\r\n    //   this.ccFrmGp.get('state')!.setValue('');\r\n    // }\r\n    // else {\r\n    //   this.ccFrmGp.get('state')!.enable();\r\n    //   this.ccFrmGp.get('state')?.setValidators(Validators.required);\r\n    // }\r\n  }\r\n\r\n  getCountries() {\r\n    this.commonService.getCountries(this.baseurl).subscribe({\r\n      next: (countries: any) => {\r\n        this.countries = countries;\r\n        this.countries = this.countries.sort((a, b) =>\r\n          a.countryName < b.countryName ? 1 : -1\r\n        );\r\n        this.countries.push({\r\n          country: 'MX',\r\n          countryName: 'Mexico',\r\n          alpha3IsoCode: 'MEX',\r\n          numeric3IsoCode: '484',\r\n        });\r\n        this.countries.push({\r\n          country: 'CA',\r\n          countryName: 'Canada',\r\n          alpha3IsoCode: 'CAN',\r\n          numeric3IsoCode: '124',\r\n        });\r\n        this.countries.push({\r\n          country: 'US',\r\n          countryName: 'United States',\r\n          alpha3IsoCode: 'USA',\r\n          numeric3IsoCode: '840',\r\n        });\r\n        this.countries.reverse();\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  getStates() {\r\n    this.selectedCountry = this.ccFrmGp.get('country')!.value;\r\n    this.commonService.getStates(this.baseurl, this.selectedCountry).subscribe({\r\n      next: (states: any) => {\r\n        this.states = states;\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  creditCardTypeOnChange(type: any) {\r\n    this.rotateCard('other');\r\n\r\n    console.log(\"TEST HERE: \", type)\r\n    \r\n    if (type) {\r\n      this.ccFrmGp.get('ccNumber')!.setValue(\"\");\r\n      this.expMonthCtrl!.setValue(\"\");\r\n      this.expYearCtrl!.setValue(\"\");\r\n      this.ccFrmGp.get('cvv')!.setValue(\"\");\r\n  \r\n      this.ccFrmGp.get('ccNumber')!.clearValidators();\r\n      this.expMonthCtrl!.clearValidators();\r\n      this.expYearCtrl!.clearValidators();\r\n      this.ccFrmGp.get('cvv')!.clearValidators();\r\n      this.ccFrmGp.updateValueAndValidity();\r\n  \r\n      this.ccInfo = {\r\n        cardNumber: null,\r\n        cvc: null,\r\n        expMonth: null,\r\n        expYear: null,\r\n        holder: null\r\n      };\r\n  \r\n      switch(type.value) { \r\n        // case \"amex\": { \r\n        //    this.ccMask = \"0000 000000 00000\";\r\n        //    this.ccRegex = \"^3[47][0-9]{13}$\";\r\n        //    this.ccImgURL = '../../../../../assets/images/Icons/amex.svg';\r\n        //    break; \r\n        // } \r\n        // case \"discover\": { \r\n        //   this.ccMask = \"0000 0000 0000 0000\";\r\n        //   this.ccRegex = \"^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$\";\r\n        //   this.ccImgURL = '../../../../../assets/images/Icons/discover.svg';\r\n        //   break; \r\n        // } \r\n        case \"mastercard\": { \r\n          this.ccMask = \"0000 0000 0000 0000\";\r\n          this.ccRegex = \"^5[1-5][0-9]{14}$\";\r\n          this.ccImgURL = '../../../../../assets/images/Icons/icons8-mastercard.svg';\r\n          break; \r\n       } \r\n      case \"visa\": { \r\n        this.ccMask = \"0000 0000 0000 0000\";\r\n        this.ccRegex = \"^4[0-9]{12}(?:[0-9]{3})?$\"; \r\n        this.ccImgURL = '../../../../../assets/images/Icons/icons8-visa.svg';\r\n        break; \r\n      } \r\n      default: { \r\n        this.ccMask = \"0000 0000 0000 0000\";\r\n        this.ccRegex = \"\\b\\d{13,16}\\b\"; \r\n        this.ccImgURL = '../../../../../assets/images/Icons/icons8-mastercard.svg';\r\n          break; \r\n      } \r\n     } \r\n  \r\n     this.ccFrmGp.get('ccNumber')!.setValidators([Validators.required, Validators.pattern(this.ccRegex)]);\r\n     this.expMonthCtrl!.setValidators([Validators.required]);\r\n     this.expYearCtrl!.setValidators([Validators.required]);\r\n     this.ccFrmGp.get('cvv')!.setValidators([Validators.required, Validators.minLength(3)]);\r\n     this.ccFrmGp.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  resetFormValues() {\r\n    this.termsFrmGp.setValue({\r\n      accepted: false,\r\n    });\r\n  }\r\n\r\n  checkReading() {}\r\n\r\n  editccPaymentcollection(ccPayment: IEMPPaymentCollection, index: number) {\r\n    // this.nameField.nativeElement.focus();\r\n    // this.iseditccPaymentCollection = true;\r\n    // this.editccPaymentCollectionIndex = index;\r\n    // this.paymentFrmGp.reset();\r\n    // this.paymentFrmGp.get('collectionFrmGp')!.patchValue({\r\n    //   lastname: ccPayment.lastName,\r\n    //   ssn: ccPayment.ssn,\r\n    //   casenumber: ccPayment.caseNumber,\r\n    //   amount: ccPayment.amount,\r\n    // });\r\n    // this.paymentFrmGp.updateValueAndValidity();\r\n    // this.numInvalid = 0;\r\n    // this.numWarning = 0;\r\n    // this.paymentsValid = false;\r\n    // this.paymentCollection.forEach((payor) => {\r\n    //   payor.isValidated = false;\r\n    //   payor.hadEdit = false;\r\n    // });\r\n  }\r\n\r\n  onSaveComplete(confirmationNum: string) {\r\n    this.termsFrmGp.reset();\r\n    this.reviewFrmGrp.reset();\r\n\r\n    this.confirmationSender = 'Create A New Payment';\r\n    this.confirmationTitle = 'Success';\r\n    this.confirmationMessage = this.iseditccPayment\r\n      ? 'Your scheduled Credit Card Payment has been updated!'\r\n      : 'New scheduled Credit Card Payment has been created!';\r\n    this.confirmationNumber = confirmationNum;\r\n    this.goToPrimaryUrl = 'employer/achd/landing';\r\n    this.goToPrimary = 'ACH Debit Home';\r\n    this.openConfirmation = true;\r\n  }\r\n\r\n  hideConfirmationPage(result: any) {\r\n    this.termsFrmGp.reset();\r\n    this.reviewFrmGrp.reset();\r\n\r\n    this.resetFormValues();\r\n\r\n    this.isTermsSubmitted = false;\r\n    this.iseditccPaymentCollection = false;\r\n    this.showPaymentCollectionForm = false;\r\n    this.showScheduleDay = false;\r\n    this.paymentCollection = [];\r\n\r\n    this.loadFormGroups();\r\n    this.openConfirmation = !result.hideConfirmation;\r\n  }\r\n\r\n  goToHome() {\r\n    this.router.navigateByUrl('employer/home');\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n\r\n  submitTerms() {\r\n    this.isTermsSubmitted = true;\r\n  }\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main max-w\" id=\"page-content-main\">\r\n    <div class=\"\">\r\n\r\n    <div *ngIf=\"!openConfirmation\" class=\"stepper-panel\">\r\n      <div class=\"container m--full-bleed\">\r\n        <div class=\"row m--full-bleed\">\r\n          <div class=\"col-12\">\r\n            <div class=\"form-panel\">\r\n              <mat-stepper [orientation]=\"stepperOrientation\" #stepper linear=\"true\">\r\n                <!-- 1. T&C -->\r\n                <mat-step class=\"stepper-icon\" [stepControl]=\"termsFrmGp\">\r\n                  <form [formGroup]=\"termsFrmGp\">\r\n                    <ng-template matStepLabel>Terms and Conditions</ng-template>\r\n                    <div>\r\n                      <div #cguContainer class=\"terms-panel\" (scroll)=\"checkReading()\" [innerHTML]=\"termsContent\"></div>\r\n                    </div>\r\n                    <div class=\"mt-3\">\r\n                      <label class=\"smart-checkbox pb-2\">\r\n                        <input type=\"checkbox\" class=\"form-check-input smart-checks checkmark\" formControlName=\"accepted\"\r\n                          required>\r\n                        <span class=\"ts-s pt-2\">Accept Terms and Conditions</span>\r\n                        <span class=\"checkmark\"></span>\r\n                        <p class=\"c-red1\" *ngIf=\"isTermsSubmitted && termsFrmGp.get('accepted')?.value !== true\">Please\r\n                          accept the terms and conditions to move forward.</p>\r\n                      </label>\r\n                    </div>\r\n                    <div class=\"flex-btn-row pt-2 pb-2\">\r\n                      <button class=\"btn btn-secondary\" mat-button matStepperPrevious (click)=\"goToHome()\">Back</button>\r\n                      <button class=\"btn btn-primary-short\" (click)=\"submitTerms()\" mat-button matStepperNext>Next</button>\r\n                    </div>\r\n                  </form>\r\n                </mat-step>\r\n                <!-- 2. Add Payor Info -->\r\n                <mat-step>\r\n                  <ng-template matStepLabel>Complete Payor Information</ng-template>\r\n                  <!-- <epay-lib-employer-payor-validation [baseurl]=\"baseurl\" [clientName]=\"clientName\"\r\n                    [validationType]=\"validationType\" [isEditPayment]=\"iseditccPayment\"\r\n                    [editPayorCollection]=\"paymentCollection\"\r\n                    (validCreditCardPaymentEmitter)=\"validCCPaymentEmitted($event)\">\r\n                  </epay-lib-employer-payor-validation> -->\r\n\r\n                  \r\n                  <form [formGroup]=\"payorFrmGp\" (ngSubmit)=\"addSavePayorCollection()\">\r\n\r\n                      <p class=\"mb-1\">\r\n                          Please Import an Excel file or enter the payor details individually below. </p>\r\n                      <div class=\"accordion accordion-flush\" id=\"accordionFlushExample\">\r\n                          <div class=\"accordion-item\" (click)=\"resetToggle()\">\r\n                              <h2 class=\"accordion-header\" id=\"flush-headingOne\">\r\n                                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                                      data-bs-target=\"#flush-collapseOne\" aria-expanded=\"false\" aria-controls=\"flush-collapseOne\"\r\n                                      style=\"font-weight: bold\">\r\n                                      Import Excel File\r\n                                  </button>\r\n                              </h2>\r\n                              <div id=\"flush-collapseOne\" class=\"accordion-collapse collapse\"\r\n                                  [ngClass]=\"{'closed': toggleEditPayor, 'show': !toggleEditPayor && isEditPayor}\"\r\n                                  aria-labelledby=\"flush-headingOne\" data-bs-parent=\"#accordionFlushExample\">\r\n                                  <div class=\"accordion-body\">\r\n                                      <div class=\"file-import-block mt-2 mb-2 mx-2\">\r\n                                          <div class=\"flex-input-col pt-2 pb-2\">\r\n                                              <div class=\"row\">\r\n                                                  <p>Microsoft® Excel must be installed on your device to upload or\r\n                                                      download files.</p>\r\n                                                  <div class=\"col-12 col-lg-5 custom-file\">\r\n                                                      <input id=\"impFile\" #inputFile type=\"file\" class=\"custom-file-input mb-3\"\r\n                                                          multiple=\"false\" accept=\".xls,.xlsx\" (change)=\"onFileChange($event)\"\r\n                                                          (click)=\"resetFile()\" formControlName=\"filename\">\r\n                                                      <label class=\"custom-file-label\" for=\"impFile\"><i *ngIf=\"!fileImported\"\r\n                                                              class=\"fa fa-search\"></i>{{payorFrmGp.get('filename')!.value}}</label>\r\n                                                      <p class=\"c-grey6 ts-xs\">{{fileImportHint}}</p>\r\n                                                  </div>\r\n                                                  <div *ngIf=\"isScheduledPaymentValidation\" class=\"col-12 col-lg-7\">\r\n                                                      <a download=\"ACHD Payor Example\" target=\"_blank\"\r\n                                                          href=\"/assets/forms/employerACHDPayorList.xlsx\">\r\n                                                          Sample File\r\n                                                          <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                                                      </a>\r\n                                                  </div>\r\n                                                  <div *ngIf=\"isCreditCardValidation\" class=\"col-12 col-lg-7\">\r\n                                                      <a download=\"Credit Card Payor Example\" target=\"_blank\"\r\n                                                          href=\"/assets/forms/employerCCPayorList.xlsx\">\r\n                                                          Sample File\r\n                                                          <i class=\"fa fa-download\" aria-hidden=\"true\"></i>\r\n                                                      </a>\r\n                                                  </div>\r\n                                              </div>\r\n                                          </div>\r\n                                          <div *ngIf=\"!isFileValid && fileImported\" class=\"c-red1 ts-s mb-2\">\r\n                                              <i matPrefix class=\"fa fa-exclamation-triangle pa-1\"></i>{{fileErrorMessage}}\r\n                                          </div>\r\n                                      </div>\r\n                  \r\n                                  </div>\r\n                              </div>\r\n                          </div>\r\n                          <div class=\"accordion-item\">\r\n                              <h2 class=\"accordion-header\" id=\"flush-headingTwo\">\r\n                                  <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\"\r\n                                      data-bs-target=\"#flush-collapseTwo\" aria-expanded=\"false\" aria-controls=\"flush-collapseTwo\"\r\n                                      style=\"font-weight: bold\">\r\n                                      Enter Payor Detail\r\n                                  </button>\r\n                              </h2>\r\n                              <div id=\"flush-collapseTwo\" [ngClass]=\"{'closed': !toggleEditPayor, 'show': toggleEditPayor}\"\r\n                                  class=\"accordion-collapse collapse closed\" aria-labelledby=\"flush-headingTwo\"\r\n                                  data-bs-parent=\"#accordionFlushExample\">\r\n                                  <div class=\"accordion-body\">\r\n                                      <div class=\"payor-info-block\">\r\n                                          <div formGroupName=\"collectionFrmGp\">\r\n                                              <div class=\"flex-input-col pt-1 pb-1\">\r\n                                                  <mat-form-field>\r\n                                                      <input #LastName matInput placeholder=\"Last Name\" formControlName=\"lastname\">\r\n                                                  </mat-form-field>\r\n                                                  <mat-form-field>\r\n                                                      <input [type]=\"ssnHide ? 'password' : 'text'\" matInput ngxInputRegulate\r\n                                                          ngxir-pattern=\"^[0-9 -]*$\" placeholder=\"Social Security #\"\r\n                                                          formControlName=\"ssn\">\r\n                                                      <mat-icon matSuffix (click)=\"toggleSSNHide()\">{{ssnHide ? 'visibility_off' :\r\n                                                          'visibility'}}\r\n                                                      </mat-icon>\r\n                                                      <mat-hint>xxx-xx-xxxx or xxxxxxxxx</mat-hint>\r\n                                                      <mat-error>Invalid Format.</mat-error>\r\n                                                  </mat-form-field>\r\n                                              </div>\r\n                                              <div class=\"flex-input-col pt-1 pb-1\">\r\n                                                  <mat-form-field *ngIf=\"validateCaseNumber\">\r\n                                                      <input matInput placeholder=\"{{secondaryIdAlias}}\" formControlName=\"casenumber\">\r\n                                                      <mat-error>Required</mat-error>\r\n                                                  </mat-form-field>\r\n                                                  <mat-form-field>\r\n                                                      <input type=\"number\" matInput placeholder=\"Amount\" formControlName=\"amount\">\r\n                                                      <mat-error>Invalid Format</mat-error>\r\n                                                  </mat-form-field>\r\n                                              </div>\r\n                                          </div>\r\n                                          <div class=\"flex-btn-row\">\r\n                                              <button *ngIf=\"!isEditPayor\" class=\"btn btn-submit\" type=\"submit\">Add</button>\r\n                                              <button *ngIf=\"isEditPayor\" class=\"btn btn-submit\" type=\"submit\">Save</button>\r\n                                          </div>\r\n                                      </div>\r\n                  \r\n                                  </div>\r\n                              </div>\r\n                          </div>\r\n                      </div>\r\n                      <hr>\r\n                      <div class=\"mb-2 load-payors\">\r\n                          <div class=\"flex-input-col pt-2 pb-2\">\r\n                              <label class=\"smart-checkbox\">\r\n                                  <input type=\"checkbox\" [checked]=\"previousPayorsChecked\" class=\"form-check-input smart-checks checkmark\"\r\n                                      label=\"get previous payment payor\" (change)=\"getPreviousPaymentPayors($event)\">\r\n                                  <span class=\"checkmark\"></span>\r\n                                  Get Previous Payment Payors\r\n                              </label>\r\n                          </div>\r\n                          <div class=\"flex-input-col pt-2 pb-2\">\r\n                              <label class=\"smart-checkbox mb-4\">\r\n                                  <input type=\"checkbox\" [checked]=\"allPayorsChecked\" class=\"form-check-input smart-checks checkmark\"\r\n                                      label=\"get all payors\" (change)=\"getAllPreviousPayors($event)\">\r\n                                  <span class=\"checkmark\"></span>\r\n                                  Get ALL Previous Payors\r\n                              </label>\r\n                              <span *ngIf=\"isLoadingPreviousPayors\">\r\n                                  <i class=\"fa fa-refresh fa-spin fa-2x fa-fw ts-l\"></i>\r\n                                  Loading Previous Payors...\r\n                              </span>\r\n                              <span *ngIf=\"noPreviousPayors\" class=\"c-red1\">\r\n                                  <i class=\"fa fa-exclamation-triangle fa-2x fa-fw ts-l\"></i>\r\n                                  {{noPreviousPayors}}\r\n                              </span>\r\n                          </div>\r\n                      </div>\r\n                      <div *ngIf=\"payorCollection?.length\">\r\n                          <hr>\r\n                          <div class=\"row\">\r\n                              <div class=\"col-12 col-md-6\">\r\n                                  <h4>Payors List &nbsp;&nbsp;\r\n                                      <span class=\" ts-s c-red1\" *ngIf=\"numInvalid && numWarning\">{{numInvalid}}\r\n                                          Invalid payor(s) found. {{numWarning}} Payor name change(s) completed.</span>\r\n                                      <span class=\"ts-s c-red1\" *ngIf=\"numInvalid && numWarning === 0\">{{numInvalid}}\r\n                                          Invalid payor(s) found.</span>\r\n                                      <span class=\"ts-s c-gold0\" *ngIf=\"numWarning && numInvalid === 0\">{{numWarning}} Payor name\r\n                                          change(s) completed.</span>\r\n                                      <span class=\"ts-s c-green0\" *ngIf=\"payorsValid\">All Payors are VALID!\r\n                                      </span>\r\n                                      <span *ngIf=\"isValdiatingPayment\" matSuffix><i\r\n                                              class=\"fa fa-refresh fa-spin fa-2x fa-fw ts-l\"></i></span>\r\n                                  </h4>\r\n                              </div>\r\n                              <div class=\"col-12 col-md-6 ts-s\">\r\n                                  <div class=\"flex-responsive-justify\">\r\n                                      <strong class=\"mr-2\">\r\n                                          Selected:\r\n                                          {{getNumberOfPayments()}}/{{payorCollection.length}}</strong>\r\n                                      <strong>\r\n                                          Amount:\r\n                                          <span\r\n                                              [ngStyle]=\"{'color': ((totalAmtOfPayments > 9999.99) && validateAttemptMade) ? 'red' : 'black'}\">\r\n                                              {{totalAmtOfPayments|currency}}</span>\r\n                                      </strong>\r\n                                  </div>\r\n                              </div>\r\n                          </div>\r\n\r\n                          <div class=\"paymentRecordPanel\">\r\n                              <table class=\"table\" id=\"paymentRecords\">\r\n                                  <thead>\r\n                                      <tr>\r\n                                          <th>\r\n                                              <label class=\"smart-checkbox\">\r\n                                                  <input type=\"checkbox\" class=\"form-check-input smart-checks checkmark\" name=\"Checks\"\r\n                                                      [checked]=\"allChecked\" (change)='selectAllPayments($event)'>\r\n                                                  <span class=\"checkmark\"></span>\r\n                                              </label>\r\n                                          </th>\r\n                                          <th>Name</th>\r\n                                          <th>SSN</th>\r\n                                          <th *ngIf=\"validateCaseNumber\">{{secondaryIdAlias}}</th>\r\n                                          <th>Amount</th>\r\n                                          <th>Action</th>\r\n                                          <th>Validation</th>\r\n                                      </tr>\r\n                                  </thead>\r\n                                  <tbody>\r\n                                      <tr *ngFor=\"let payor of payorCollection; let i = index\" [ngClass]=\"{'unverifiedPayment' : payor.isSelected && !payor.isValidated && !payor.hasError,\r\n                                              'verifiedPayment' : payor.isSelected && payor.isValidated && !payor.hasError,\r\n                                              'warningPayment' : payor.isSelected && payor.hasWarning && !payor.hasError,\r\n                                              'errorPayment' : payor.isSelected && payor.hasError,\r\n                                              'editPayment' : payor.hadEdit}\">\r\n                                          <td>\r\n                                              <label class=\"smart-checkbox\">\r\n                                                  <input type=\"checkbox\" id='chkbox{{i}}' name='selectAccount{{i}}'\r\n                                                      (change)=\"addRemovePayor($event, i)\" [checked]=payor.isSelected>\r\n                                                  <span class=\"checkmark\"></span>\r\n                                              </label>\r\n                                          </td>\r\n                                          <td>{{payor.lastName | uppercase}}</td>\r\n                                          <td>{{payor.ssn | maskdata: 4}}</td>\r\n                                          <td *ngIf=\"validateCaseNumber\">{{payor.caseNumber}}</td>\r\n                                          <td>{{payor.amount | currency:'USD':'symbol':'.2-5'}}</td>\r\n                                          <td>\r\n                                              <span matTooltip=\"EDIT PAYOR\" matTooltipClass=\"tooltip-md\" (click)=\"editPayor(payor, i)\"\r\n                                                  class=\"fa fa-pencil-square-o fa-md-blue\">\r\n                                              </span>\r\n                                              <span matTooltip=\"DELETE PAYOR\" matTooltipClass=\"tooltip-md\" (click)=\"deletePayor(i)\"\r\n                                                  class=\"fa fa-trash-o fa-md-blue ml-2\">\r\n                                              </span>\r\n                                          </td>\r\n                                          <td>\r\n                                              <span *ngIf=\"payor.isSelected && payor.isValidated && !payor.hasError && !payor.hasWarning\"\r\n                                                  class=\"c-green0\">\r\n                                                  <i class=\"fa fa-check fa-md-green\" matTooltip=\"VALID PAYOR\"\r\n                                                      matTooltipClass=\"tooltip-md\"></i>\r\n                                                  Valid Payor\r\n                                              </span>\r\n                                              <span *ngIf=\"payor.isSelected && payor.hasError\" class=\"c-red1\">\r\n                                                  <i matPrefix class=\"fa fa-times-circle fa-md-red\" matTooltip=\"INVALID PAYOR\"\r\n                                                      matTooltipClass=\"tooltip-md\"></i>\r\n                                                  {{payor.errorMessage}}\r\n                                              </span>\r\n                                              <span *ngIf=\"payor.isSelected && payor.hasWarning && !payor.hasError\" class=\"c-gold0\">\r\n                                                  <i matPrefix class=\"fa fa-exclamation-triangle fa-md-yellow\" matTooltip=\"WARNING\"\r\n                                                      matTooltipClass=\"tooltip-md\"></i>\r\n                                                  {{payor.errorMessage}}\r\n                                              </span>\r\n                                          </td>\r\n                                      </tr>\r\n                                  </tbody>\r\n                              </table>\r\n                          </div>\r\n                          <p *ngIf=\"!atLeastOnePayorSelected && validateAttemptMade\" class=\"c-red1 mt-1\">\r\n                              <i matPrefix class=\"fa fa-exclamation-triangle fa-md-red\"></i>\r\n                              Please select at least one Payor to Validate.\r\n                          </p>\r\n                          <p *ngIf=\"(totalAmtOfPayments > 9999.99) && validateAttemptMade\" class=\"c-red1 mt-1\">\r\n                              <i matPrefix class=\"fa fa-exclamation-triangle fa-md-red\"></i>\r\n                              Payment amount cannot exceed $9999.99.\r\n                          </p>\r\n                          <p *ngIf=\"(totalAmtOfPayments < 1.00) && validateAttemptMade\" class=\"c-red1 mt-1\">\r\n                              <i matPrefix class=\"fa fa-exclamation-triangle fa-md-red\"></i>\r\n                              Payment amount must exceed $0.99.\r\n                          </p>\r\n                          <p *ngIf=\"nameChangeOccured && validateAttemptMade\" class=\"c-gold0 mt-1\">\r\n                              <i matPrefix class=\"fa fa-exclamation-triangle fa-md-yellow\"></i>\r\n                              Please Validate again to confirm name change.\r\n                          </p>\r\n                      </div>\r\n                  </form>\r\n\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                      <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                  \r\n                      <button *ngIf=\"!payorsValid\" type=\"button\" [disabled]=\"payorCollection.length === 0\" class=\"btn btn-submit\"\r\n                          mat-button (click)=\"validatePayors()\">\r\n                          Validate Payors\r\n                      </button>\r\n                      <button *ngIf=\"payorsValid\" [disabled]=\"totalAmtOfPayments >= 9999/.99\" class=\"btn btn-primary-short\" mat-button\r\n                          (click)=\"emitValidPayorPerValidation()\" matStepperNext>Next</button>\r\n                  </div>\r\n                  \r\n                </mat-step>\r\n\r\n                <!-- 3. Payment Information -->\r\n                <mat-step [stepControl]=\"ccFrmGp\">\r\n                  <ng-template matStepLabel>Complete Payment Information</ng-template>\r\n\r\n                    <div class=\"containr\">\r\n                      <form [formGroup]=\"ccFrmGp\">\r\n\r\n                        <div class=\"accordion mb-3\" id=\"accordionExample\">\r\n                          <div class=\"accordion-item\">\r\n                            <h2 class=\"accordion-header\" id=\"headingOne\">\r\n                              <button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseOne\" aria-expanded=\"true\" aria-controls=\"collapseOne\" style=\"text-decoration: none;\">\r\n                                <h4 [style.color]=\"!billingSectionIncomplete ? 'black' : 'red'\">\r\n                                  Billing Information\r\n                                  <span *ngIf=\"billingSectionIncomplete\" class=\"fa fa-exclamation-triangle\" matTooltip=\"Information Needed\"\r\n                                    matTooltipClass=\"tooltip-md\">\r\n                                  </span>\r\n                                </h4>\r\n                              </button>\r\n                            </h2>\r\n                            <div id=\"collapseOne\" class=\"accordion-collapse collapse show\" aria-labelledby=\"headingOne\" data-bs-parent=\"#accordionExample\">\r\n                              <div class=\"accordion-body\">\r\n                                <div class=\"flex-input-col pt-2 pb-2\">\r\n                                  <!-- <mat-form-field>\r\n                                    <input matInput placeholder=\"First Name\" formControlName=\"ccFirstName\" required>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field> -->\r\n          \r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"First Name\" formControlName=\"ccFirstName\" required>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n\r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Last Name\" formControlName=\"ccLastName\" required>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n                                </div>\r\n          \r\n                                <div class=\"flex-input-col pt-2 pb-2\">\r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Address\" formControlName=\"address1\" required>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n          \r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Line 2\" formControlName=\"address2\">\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n                                </div>\r\n          \r\n                                <div class=\"flex-input-col pt-2 pb-2\">\r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"City\" formControlName=\"city\" required>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n          \r\n                                  <mat-form-field>\r\n                                    <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\"\r\n                                      [placeholder]=\"this.ccFrmGp.get('country')!.value.trim() === 'CA' ? 'Province' : 'State'\"\r\n                                      formControlName=\"state\" required>\r\n                                      <mat-option *ngFor=\"let state of states\" [value]=\"state.code\">\r\n                                        {{state.name}}\r\n                                      </mat-option>\r\n                                    </mat-select>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n          \r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Zip\" formControlName=\"zip5\" required>\r\n                                    <mat-error>Required</mat-error>\r\n                                  </mat-form-field>\r\n                                </div>\r\n          \r\n                                <div class=\"flex-input-col pt-2 pb-2\">\r\n                                  <mat-form-field>\r\n                                    <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\" placeholder=\"Country\"\r\n                                      formControlName=\"country\" [(value)]=\"selectedCountry\"\r\n                                      (selectionChange)=\"onCountrySelectionChange($event)\" required>\r\n                                      <mat-option *ngFor=\"let country of countries\" [value]=\"country.country\">\r\n                                        {{country.countryName}}\r\n                                      </mat-option>\r\n                                    </mat-select>\r\n                                  </mat-form-field>\r\n                                </div>\r\n          \r\n                                <div class=\"flex-input-col pt-2 pb-2\"> \r\n                                  <mat-form-field formGroupName=\"phoneGp\">\r\n                                    <input matInput placeholder=\"Phone\" formControlName=\"phoneNumber\" [mask]=\"phoneMask\" required>\r\n                                    <span matPrefix>+{{ccFrmGp.get('phoneGp.countryCode')!.value}}&nbsp;&nbsp;</span>\r\n                                    <mat-hint>Ex. {{phoneExample}}</mat-hint>\r\n                                    <mat-error *ngIf=\"!ccFrmGp.get('phoneGp.isValid')?.value\">Invalid Format</mat-error>\r\n                                    <mat-error *ngIf=\"ccFrmGp.get('phoneGp.phoneNumber')!.hasError('required')\">Required</mat-error>\r\n                                  </mat-form-field>\r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Phone Ext\" formControlName=\"phoneExt\" autocomplete=\"off\">\r\n                                  </mat-form-field>\r\n\r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n                                    <!-- <mat-error>{{emailErrorMessage}}</mat-error> -->\r\n                                  </mat-form-field>\r\n                                </div>\r\n          \r\n                                <!-- <div class=\"flex-input-col pt-2 pb-2\"> \r\n                                  <mat-form-field>\r\n                                    <input matInput placeholder=\"Email\" formControlName=\"email\">\r\n                                    <!-- <mat-error>{{emailErrorMessage}}</mat-error> \r\n                                  </mat-form-field>\r\n                                </div> \r\n                              -->\r\n                              </div>\r\n\r\n                              <!-- <div class=\"position-relative\">\r\n                                <div class=\"position-absolute end-0\">\r\n                                  <button class=\"btn btn-primary-short\" mat-button>Continue</button>\r\n                                </div>\r\n                              </div> -->\r\n\r\n                            </div>\r\n                          </div>\r\n    \r\n                          <div class=\"accordion-item\">\r\n                            <h2 class=\"accordion-header\" id=\"headingTwo\">\r\n                              <button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapseTwo\" aria-expanded=\"false\" aria-controls=\"collapseTwo\" style=\"text-decoration: none;\">\r\n                                <h4 [style.color]=\"!ccSectionIncomplete ? 'black' : 'red'\">\r\n                                  Credit Card Information\r\n                                  <span *ngIf=\"ccSectionIncomplete\" class=\"fa fa-exclamation-triangle\" matTooltip=\"Information Needed\"\r\n                                    matTooltipClass=\"tooltip-md\">\r\n                                  </span>\r\n                                </h4>\r\n                              </button>\r\n                            </h2>\r\n                            <div id=\"collapseTwo\" class=\"accordion-collapse collapse\" aria-labelledby=\"headingTwo\" data-bs-parent=\"#accordionExample\">\r\n                              <div class=\"accordion-body\">\r\n\r\n                                <div class=\"flex-input-col pt-2 pb-2 mb-3\"> \r\n                                  <div class=\"col-4\">\r\n                                    <button class=\"interactive-cc\" style=\"background: none; border: none; cursor: default; margin-left: -20px;\">\r\n                                      <interactive-credit-card-emp\r\n                                      [no]=\"ccInfo.cardNumber\"\r\n                                      [cvc]=\"ccInfo.cvc\"\r\n                                      [expMonth]=\"expMonthCtrl.value?.length === 2 && expMonthCtrl.valid  ? ccInfo.expMonth : '--'\"\r\n                                      [expYear]=\"expYearCtrl.value?.length === 4 && expYearCtrl.valid  ? ccInfo.expYear : '----'\"\r\n                                      [flip]=\"flipCard\" \r\n                                      [ccType]=\"ccImgURL\"\r\n                                      [cvvHide]=\"cvvHide\"\r\n                                      [ccHide]=\"ccHide\"\r\n                                      [holder]=\"ccFrmGp.get('ccFirstName')?.value && ccFrmGp.get('ccLastName')?.value ? ccFrmGp.get('ccFirstName')?.value[0] + '. ' + ccFrmGp.get('ccLastName')?.value : ''\"\r\n                                      >\r\n                                      </interactive-credit-card-emp>\r\n                                    </button>\r\n                                  </div>\r\n\r\n\r\n                                  <div class=\"col-8\">\r\n                                    <div class=\"row\"> \r\n                                      <div class=\"flex-input-col pt-2 pb-2\">\r\n                                        <mat-form-field>\r\n                                          <mat-label>Credit Card Type</mat-label>\r\n                                          <mat-select formControlName=\"ccType\" [(ngModel)]=\"defaultCC\"\r\n                                          (selectionChange)=\"creditCardTypeOnChange($event)\" required>\r\n                                            <!-- <option value=\"\" selected disabled></option> -->\r\n                                            <!-- <option value=\"amex\">Amex</option>\r\n                                            <option value=\"discover\">Discover</option> -->\r\n                                            <mat-option *ngFor=\"let type of creditcardType\" [value]=\"type.value\" selected>{{type.viewValue}}</mat-option>\r\n                                          </mat-select>\r\n                                        </mat-form-field>\r\n      \r\n                                      <!-- CC # -->\r\n                                      <mat-form-field>\r\n                                        <input matInput placeholder=\"Credit Card #\" formControlName=\"ccNumber\"\r\n                                        [type]=\"ccHide ? 'password' : 'text'\"\r\n                                        [pattern]=\"ccRegex\" [mask]=\"ccMask\" [(ngModel)]=\"ccInfo.cardNumber\"\r\n                                        (focus)=\"rotateCard('other')\">\r\n                                        <mat-icon matSuffix (click)=\"toggleCCHide()\">\r\n                                          {{ ccHide ? 'visibility_off' : 'visibility' }}\r\n                                        </mat-icon>\r\n                                        <mat-error *ngIf=\"ccFrmGp.get('ccNumber')!.hasError('required')\">Required</mat-error>\r\n                                        <mat-error *ngIf=\"ccFrmGp.get('ccNumber')!.hasError('pattern')\">Invalid Card Number</mat-error>\r\n                                      </mat-form-field>\r\n                                      </div>\r\n                                    </div>\r\n  \r\n                                    <div class=\"row\"> \r\n                                      <div class=\"flex-input-col pt-2 pb-2\">\r\n                                        <!-- Epiry Month -->\r\n                                        <!-- <mat-form-field>\r\n                                          <mat-label>MM</mat-label>\r\n                                          <mat-select formControlName=\"ccExpiryMonth\" [(ngModel)]=\"ccInfo.expMonth\"\r\n                                          (focus)=\"rotateCard('other')\" required>\r\n                                            <mat-option value=\"\" selected disabled></mat-option>\r\n                                            <mat-option *ngFor=\"let month of months\" [value]=\"month.value\">{{month.value}}</mat-option>\r\n                                          </mat-select>\r\n                                        </mat-form-field> -->\r\n\r\n                                        <mat-form-field>\r\n                                          <mat-label>MM</mat-label>\r\n                                            <input\r\n                                            type=\"text\"\r\n                                            required\r\n                                            placeholder=\"\"\r\n                                            aria-label=\"MM\"\r\n                                            matInput\r\n                                            maxlength=\"2\"\r\n                                            [(ngModel)]=\"ccInfo.expMonth\"\r\n                                            [formControl]=\"expMonthCtrl\"\r\n                                            formControlName=\"ccExpiryMonth\"\r\n                                            [matAutocomplete]=\"expMonthAutocomplete\"\r\n                                            (focus)=\"rotateCard('other')\"\r\n                                            required\r\n                                            />\r\n                                            <mat-error *ngIf=\"this.ccFrmGp.get('ccExpiryMonth')!.hasError('required')\"\r\n                                            >Required</mat-error\r\n                                            >\r\n                                            <mat-error *ngIf=\"this.ccFrmGp.get('ccExpiryMonth')!.hasError('invalidExpMonth')\"\r\n                                              >Invalid expiry month.</mat-error\r\n                                            >\r\n\r\n                                            <mat-autocomplete autoActiveFirstOption #expMonthAutocomplete=\"matAutocomplete\">\r\n                                            <mat-option\r\n                                              *ngFor=\"let month of filteredExpMonths$ | async\"\r\n                                              [value]=\"month\"\r\n                                            >\r\n                                              {{month}}\r\n                                            </mat-option>\r\n                                          </mat-autocomplete>\r\n                                        </mat-form-field>\r\n\r\n\r\n                                        <!-- Epiry Year -->\r\n                                        <!-- <mat-form-field>\r\n                                          <mat-label>YYYY</mat-label>\r\n                                          <mat-select formControlName=\"ccExpiryYear\" [(ngModel)]=\"ccInfo.expYear\" \r\n                                          (focus)=\"rotateCard('other')\" required>\r\n                                            <mat-option value=\"\" selected disabled></mat-option>\r\n                                            <mat-option *ngFor=\"let year of years\" [value]=\"year.value\">{{year.value}}</mat-option>\r\n                                          </mat-select>\r\n                                        </mat-form-field> -->\r\n                                        <mat-form-field>\r\n                                          <mat-label>YYYY</mat-label>\r\n                                            <input\r\n                                            type=\"text\"\r\n                                            required\r\n                                            placeholder=\"\"\r\n                                            aria-label=\"YYYY\"\r\n                                            matInput\r\n                                            maxlength=\"4\"\r\n                                            [(ngModel)]=\"ccInfo.expYear\"\r\n                                            [formControl]=\"expYearCtrl\"\r\n                                            formControlName=\"ccExpiryYear\"\r\n                                            [matAutocomplete]=\"expYearAutocomplete\"\r\n                                            (focus)=\"rotateCard('other')\"\r\n                                            required\r\n                                            />\r\n                                            <mat-error *ngIf=\"this.ccFrmGp.get('ccExpiryYear')!.hasError('required')\"\r\n                                            >Required</mat-error\r\n                                            >\r\n                                            <mat-error *ngIf=\"this.ccFrmGp.get('ccExpiryYear')!.hasError('invalidExpYear')\"\r\n                                              >Invalid expiry year.</mat-error\r\n                                            >\r\n\r\n                                            <mat-autocomplete autoActiveFirstOption #expYearAutocomplete=\"matAutocomplete\">\r\n                                            <mat-option\r\n                                              *ngFor=\"let year of filteredExpYears$ | async\"\r\n                                              [value]=\"year\"\r\n                                            >\r\n                                              {{year}}\r\n                                            </mat-option>\r\n                                          </mat-autocomplete>\r\n                                        </mat-form-field>\r\n\r\n                                        <!-- CVV -->\r\n                                        <mat-form-field>\r\n                                          <input matInput placeholder=\"3-Digit Security Code\" (focus)=\"rotateCard('cvv')\"\r\n                                          [type]=\"cvvHide ? 'password' : 'text'\" formControlName=\"cvv\" mask=\"000\" [(ngModel)]=\"ccInfo.cvc\"\r\n                                          style=\"cursor:text\">\r\n                                          <mat-icon matSuffix (click)=\"toggleCVVHide()\">\r\n                                            {{ cvvHide ? 'visibility_off' : 'visibility' }}\r\n                                          </mat-icon>\r\n                                          <mat-error *ngIf=\"this.ccFrmGp.get('cvv')?.hasError('required')\">Required</mat-error>\r\n                                          <mat-error *ngIf=\"this.ccFrmGp.get('cvv')?.hasError('minlength')\">CVV/CVC must be 3 digits in length.</mat-error>\r\n                                        </mat-form-field>\r\n                                      </div>\r\n\r\n                                      <mat-error *ngIf=\"this.ccExpired && this.ccFrmGp.get('ccExpiryMonth')!.value && this.ccFrmGp.get('ccExpiryYear')!.value\">Credit Card Expired</mat-error>\r\n\r\n                                    </div>\r\n                                  </div>\r\n                                </div>\r\n                                <span>\r\n                                  <strong>Note:</strong> In order to process a payment with a MasterCard® or Visa® credit card, we need the CVV2 or CVC2\r\n                                  security code. This 3 digit code is <u>found on the back of your credit card</u>. For instructions\r\n                                  on how to find this code, please click <u (click)=\"securityCodeHelp()\" style=\"color: #387aac; font-weight: bold\">here</u>.\r\n                                </span>\r\n\r\n                                <br><br>\r\n\r\n                                <span style=\"font-style:italic\">\r\n                                  To ensure a secure credit card payment, we provide 128 bit SSL encryption. To take advantage of this \r\n                                  security, please ensure that your browser is configured for 128 bit encryption.\r\n                                </span>\r\n\r\n                              </div>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n  \r\n                        <div class=\"flex-btn-row pt-2 pb-2\">\r\n                          <button class=\"btn btn-secondary\" mat-button matStepperPrevious\r\n                          >Back</button>\r\n                          <button class=\"btn btn-primary-short\" mat-button\r\n                            matStepperNext (click)=\"createCCPaymentAttempt()\">Next</button>\r\n                        </div>\r\n                      </form>\r\n                    </div>\r\n\r\n                  </mat-step>\r\n\r\n\r\n                <!-- 4. Review & Submit -->\r\n                <mat-step>\r\n                  <ng-template matStepLabel>Submit Your Payment</ng-template>\r\n                  <!-- <epay-lib-ncp-creditcard-submit\r\n                    [baseurl]=\"baseurl\"\r\n                    [creditCardVendorId]=\"creditCardVendorId\"\r\n                    [creditCardDisclaimer]=\"creditCardDisclaimer\"\r\n                    [creditCardPayment]=\"creditCardPayment\"\r\n                    >\r\n                  </epay-lib-ncp-creditcard-submit> -->\r\n\r\n                  <div class=\"form-display-card\">\r\n                    <mat-card class='mat-card-display mb-3'>\r\n                      <mat-card-header>\r\n                        <mat-card-title class=\"justify-content-center\">\r\n                          <h2 class=\"mat-card-title align-items-start\">\r\n                            <span class=\"fa fa-credit-card fa-md-black dib mr-2\"></span> Review Credit\r\n                            Card Payment Information\r\n                          </h2>\r\n                        </mat-card-title>\r\n                      </mat-card-header>\r\n                      <mat-card-content>\r\n                        <table class=\"table\">\r\n                          <thead>\r\n                            <tr>\r\n                              <th *ngFor=\"let col of paymentheader\">{{col}}</th>\r\n                            </tr>\r\n                          </thead>\r\n                          <tbody>\r\n                            <tr *ngFor=\"let participant of creditCardPayment!.participantCollection\">\r\n                              <td>{{participant.lastName}}</td>\r\n                              <td>{{participant.ssn | maskdata}}</td>\r\n                              <td>{{participant.caseNumber}}</td>\r\n                              <td>{{participant.amount | currency}}</td>\r\n                            </tr>\r\n                          </tbody>\r\n                        </table>\r\n                        <div class=\"col mb-3\">\r\n                          <dl class=\"account-details-sum\">\r\n                            <div class=\"account-sum-row\">\r\n                              <dt class=\"account-dt\">Payment Amount</dt>\r\n                              <dd class=\"account-dt-info\">{{creditCardPayment!.amount | currency}}</dd>\r\n                            </div>\r\n                            <!-- <div class=\"account-sum-row\">\r\n                              <dt class=\"account-dt\">Service Fee %</dt>\r\n                              <dd class=\"account-dt-info\">{{creditCardPayment!.feePercentage | percent: '.2'}}</dd>\r\n                            </div>\r\n                            <div class=\"account-sum-row\">\r\n                              <dt class=\"account-dt\">Service Fee Amount</dt>\r\n                              <dd class=\"account-dt-info\">{{creditCardPayment!.fee | currency}}</dd>\r\n                            </div> -->\r\n                            <div class=\"account-sum-row\">\r\n                              <dt class=\"account-dt\">Total Credit Card Amount</dt>\r\n                              <dd class=\"account-dt-info\">{{creditCardPayment!.totalAmount | currency}}</dd>\r\n                            </div>\r\n                          </dl>\r\n                        </div>\r\n                        <div class=\"pt-2 pb-2\">\r\n                          <div class=\"c-red1 ts-s\" [innerHTML]=\"creditCardDisclaimer\"></div>\r\n                        </div>\r\n                      </mat-card-content>\r\n                    \r\n                    </mat-card>\r\n                    <div class=\"flex-btn-row pt-2 pb-2\">\r\n                      <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                      <button class=\"btn btn-primary-short\" (click)=\"processCreditCard()\">{{createPaymentButtonText}}</button>\r\n                    </div>\r\n                  </div>\r\n\r\n                </mat-step>\r\n\r\n              </mat-stepper>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'emp-security-code-help',\r\n  templateUrl: './empsecurity-code-help.component.html'\r\n})\r\nexport class EMPSecurityCodeHelpComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","\r\n<mat-dialog-content>\r\n  <div class=\"position-relative\" style=\"width: 35vw; height: 35vh\">\r\n    <div class=\"row mx-1\">\r\n      <div class=\"col-8\">\r\n        <h3>CVV2 / CVC2 3-Digit Security Code</h3>\r\n        <span>In order to process payments with Visa&#174; and Mastercard&#174; credit cards, we require the 3-digit CVV2 or CVC2 security code. This code is found on the back of your credit card.</span>\r\n        <br><br>\r\n      </div>\r\n  \r\n      <div class=\"col-4\">\r\n        <img src=\"../../../../../../assets/images/cvv2.gif\" alt=\"CVV Help\" style=\"width: 100%;\">\r\n      </div>\r\n    </div>\r\n\r\n    <div class=\"row mx-1\">\r\n      <h3>What is CVV2 or CVC2 and why do you need them?</h3>\r\n      <span>The CVV2/CVC2 is a three-digit security code that is printed on the back of credit cards. \r\n      This code is used to establish that you are in possession of the card used for the payment. \r\n      </span>\r\n      <br><br>\r\n    </div>\r\n    <br>\r\n    \r\n    <div class=\"row mx-1\">\r\n      <h3>Where is CVV2 located on my card?</h3>\r\n      <span>The CVV2 three-digit value is printed just above the signature panel in reverse italics on the back of your card. Usually it is preceded by your card number.\r\n      </span>\r\n      <br><br>\r\n    </div>\r\n  </div>\r\n  <br>\r\n\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n  <button class=\"btn btn-primary-short\" mat-button mat-dialog-close>Close</button>\r\n</mat-dialog-actions>\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'interactive-credit-card-emp',\r\n  templateUrl: './interactive-credit-card-emp.component.html',\r\n  styleUrls: ['./interactive-credit-card-emp.component.scss']\r\n})\r\nexport class InteractiveCreditCardEMPComponent {\r\n  @Input('flip') flip = false;\r\n\r\n  _no: string = \"---- ---- ---- ----\";\r\n  _cvc: string = \"---\";\r\n  _expMonth: string = \"--\";\r\n  _expYear: string = \"--\";\r\n  _holder: string = \"----- ----\"\r\n\r\n  @Input('cvvHide') cvvHide!: boolean;\r\n  @Input('ccHide') ccHide!: boolean;\r\n\r\n  @Input('ccType') ccType = '';\r\n\r\n  @Input('no') set no(value: any) {\r\n    if (value) {\r\n      this._no = this.formatCreditCardNumber(value);\r\n    }\r\n  }\r\n\r\n  @Input('cvc') set cvc(value: any) {\r\n    if (value) {\r\n      this._cvc = value;\r\n    } \r\n    else {\r\n      this._cvc = \"\"\r\n    }\r\n  }\r\n\r\n  @Input('holder') set holder(value: any) {\r\n    if (value) {\r\n      this._holder = value;\r\n    }\r\n    else {\r\n      this._holder = '';\r\n    }\r\n  }\r\n\r\n  @Input('expMonth') set expMonth(value: any) {\r\n    if (value) this._expMonth = value;\r\n  }\r\n\r\n  @Input('expYear') set expYear(value: any) {\r\n    if (value) this._expYear = value;\r\n  }\r\n\r\n  formatCreditCardNumber(value: any) {\r\n    var v = value.replace(/\\s+/g, '').replace(/([^0-9])/gi, '')\r\n    var matches = v.match(/\\d{4,16}/g);\r\n    var match = matches && matches[0] || ''\r\n    var parts = []\r\n    for (var i=0, len=match.length; i<len; i+=4) {\r\n      parts.push(match.substring(i, i+4))\r\n    }\r\n    if (parts.length) {\r\n      return parts.join(' ')\r\n    } else {\r\n      return value\r\n    }\r\n  }\r\n}\r\n","<div class=\"flip-card\" [class.flip]=\"flip\">\r\n    <div class=\"flip-card-inner\">\r\n      <div class=\"flip-card-front bg\">\r\n        <!-- <img class=\"card-square\" src=\"https://image.ibb.co/cZeFjx/little_square.png\"> -->\r\n        <img class=\"card-logo card-front-logo\" [src]=\"ccType\">\r\n        <p *ngIf=\"!ccHide && _no !== ''\" class=\"card-numer\">{{ _no }}</p>\r\n        <p *ngIf=\"ccHide && _no !== ''\" class=\"card-numer\" mask=\"0000 0000 0000 0000\">{{ _no | maskdata: 4 }}</p>\r\n        <div class=\"card-holder\">\r\n          <span class=\"card-label\">Card Holder</span>\r\n          <p class=\"card-info\">{{ _holder }}</p>\r\n        </div>\r\n        <div class=\"card-expires\">\r\n          <span class=\"card-label\">Expires</span>\r\n          <p class=\"card-info\">{{ _expMonth }}/{{ _expYear }}</p>\r\n        </div>      \r\n      </div>\r\n      <div class=\"flip-card-back bg\">\r\n        <div class=\"card-black-line\"></div>\r\n        <div class=\"card-back-content\">\r\n          <div class=\"card-secret\">\r\n            <p *ngIf=\"!cvvHide && _cvc !== ''\" class=\"card-secret-last\">{{ _cvc }}</p>\r\n            <p *ngIf=\"cvvHide && _cvc !== ''\" class=\"card-secret-last\">{{ _cvc | maskdata: 0 }}</p>\r\n            <p *ngIf=\"_cvc === ''\" style=\"color: rgba(0,0,0,0)\">XXX</p>\r\n          </div>\r\n          <img class=\"card-square card-back-square\" [src]=\"ccType\">\r\n                <!-- <img class=\"card-logo card-back-logo\" src=\"https://www.fireeye.com/partners/strategic-technology-partners/visa-fireeye-cyber-watch-program/_jcr_content/content-par/grid_20_80_full/grid-20-left/image.img.png/1505254557388.png\"> -->\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>","import { Component, OnInit } from '@angular/core';\r\nimport { EmployerService } from '../../../../employer/services/employer.service';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-createfile',\r\n  templateUrl: './createfile.component.html',\r\n})\r\nexport class EMPEFTCreateFileComponent implements OnInit {\r\n  pagetitle = 'Employer: Create ACH Credit File';\r\n  baseurl = '';\r\n  secondaryIdAlias = 'Family Group Number'\r\n  clientName = '';\r\n  termsContent = '';\r\n  routingHelpImage = '';\r\n  isMobile = false;\r\n\r\n  constructor(private employerService: EmployerService) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.clientName = CommonSettings.ClientName;\r\n    this.routingHelpImage = '../../../../assets/help/aba.jpg';\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.employerService.getEmployerTerms().subscribe((result) => {\r\n      this.termsContent = result;\r\n    });\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main max-w\" id=\"page-content-main\">\r\n    <div class=\"\">\r\n      <epay-library-employer-eft-createfile [baseurl]=\"baseurl\" [termsContent]=\"termsContent\" [clientName]=\"clientName\"\r\n        [secondaryIdAlias]=\"secondaryIdAlias\"\r\n      [routingHelpImage]=\"routingHelpImage\">\r\n      </epay-library-employer-eft-createfile>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployerService } from '../../../services/employer.service';\r\n\r\n@Component({\r\n  selector: 'epay-eft-information',\r\n  templateUrl: './eft-information.component.html'\r\n})\r\nexport class EMPEFTInformationComponent implements OnInit {\r\n  pagetitle = 'ACH Credit (EFT/EDI)';\r\n  eftInfo= '';\r\n\r\n  constructor(private employerService: EmployerService) { }\r\n\r\n  ngOnInit() {\r\n    this.employerService.getEFTInfo().subscribe(\r\n      result => {\r\n        this.eftInfo = result;\r\n      }\r\n    );\r\n  }\r\n\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gs\" id=\"page-content-main\">\r\n    <div class=\"\">\r\n      <epay-lib-employer-eft-home [eftInfo]=\"eftInfo\">\r\n      </epay-lib-employer-eft-home>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService, PhoneHelperService, ViewportService } from 'epay-library';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PaymentService } from 'epay-library';\r\nimport { DatePipe } from '@angular/common';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\nimport { EMPLOYER_PROFILE_SETTINGS_URL } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-eft-landing',\r\n  templateUrl: './eft.landing.component.html',\r\n})\r\nexport class EMPEFTLandingComponent implements OnInit {\r\n  pagetitle = 'ACH Credit EFT/EDI';\r\n  paymentaccounts: any[] = [];\r\n  username = '';\r\n  usertype = '';\r\n  isManager = '';\r\n  numOfUsers = 0;\r\n  accountKeys: string[] = [];\r\n  isLoggedIn = false;\r\n  isLoading = false;\r\n  accountAddress = '';\r\n  accountCSZ = '';\r\n  accountEmail = '';\r\n  accountPhone = '';\r\n  employerName = '';\r\n  baseurl = '';\r\n  daysToShowEFTFileHistory: number;\r\n  setupresult = '';\r\n  isPaymentAccountSetup = false;\r\n  isMobile = false;\r\n  phoneMask = '';\r\n  countryId = '';\r\n\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationNumber = '';\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n  openConfirmation = false;\r\n\r\n  profileSettingsUrl = EMPLOYER_PROFILE_SETTINGS_URL;\r\n\r\n  constructor(\r\n    private authservice: AuthService,\r\n    private paymentservice: PaymentService,\r\n    private dialog: MatDialog,\r\n    private datepipe: DatePipe,\r\n    private router: Router,\r\n    private viewpointService: ViewportService,\r\n    private phoneHelperService: PhoneHelperService\r\n  ) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.daysToShowEFTFileHistory = +CommonSettings.DaysToShowEFTFileHistory;\r\n    this.accountKeys = [];\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.authservice.isLoggedIn.subscribe(\r\n      (status: any) => (this.isLoggedIn = JSON.parse(status))\r\n    );\r\n    if (this.isLoggedIn) {\r\n      this.authservice.currentUserName.subscribe(\r\n        (name: string) => (this.username = name.toUpperCase())\r\n      );\r\n      this.authservice.currentUserType.subscribe(\r\n        (type: string) => (this.usertype = type)\r\n      );\r\n      this.authservice.currentAccountAddress.subscribe((address: string) => {\r\n        this.accountAddress = address;\r\n        this.countryId = address.slice(-2);\r\n        this.setPhoneMask(this.countryId)!;\r\n        console.log(this.countryId + ' ' + this.phoneMask);\r\n      });\r\n      this.authservice.currentAccountPhone.subscribe(\r\n        (phone: string) => (this.accountPhone = phone)\r\n      );\r\n      this.authservice.currentAccountEmail.subscribe(\r\n        (email: string) => (this.accountEmail = email)\r\n      );\r\n      this.authservice.currentEmployerName.subscribe(\r\n        (empName: string) => (this.employerName = empName)\r\n      );\r\n      this.authservice.currentUserAccountManager.subscribe(\r\n        (manager: string) => (this.isManager = manager)\r\n      );\r\n      this.authservice.currentNumberofAccountUsers.subscribe(\r\n        (acctCount: string) => (this.numOfUsers = +acctCount)\r\n      );\r\n    }\r\n    this.viewpointService.IsMobile.subscribe(\r\n      (mobile: any) => (this.isMobile = mobile)\r\n    );\r\n  }\r\n\r\n  goToProfile() {\r\n    this.router.navigate(['/employer/profile']);\r\n  }\r\n\r\n  setPhoneMask(regionCode: string) {\r\n    this.phoneMask = this.phoneHelperService.getMask(regionCode);\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div *ngIf=\"!openConfirmation\">\r\n    <div class=\"container m--full-bleed mt-2\">\r\n      <div class=\"row m--full-bleed justify-content-center\">\r\n        <div class=\"col-12 col-lg-8\">\r\n          <mat-card>\r\n            <mat-card-header>\r\n              <mat-card-title>\r\n                <h2 class=\"mat-card-title mb-0\">File History <a target=\"_blank\"\r\n                    href=\"/assets/help/How To Reconcile Employees Create File.pdf\" class=\"dib ml-1\">\r\n                    <span class=\"fa fa-question-circle fa-sm-blue\"\r\n                      matTooltip=\"HOW TO RECONCILE EMPLOYEES AND/OR CREATE FILE\" matTooltipClass=\"tooltip-md\">\r\n                    </span>\r\n                  </a></h2>\r\n                <div>\r\n                  <a [routerLink]=\"['/employer/eft/createfile']\" class=\"ts-s\">\r\n                    Add\r\n                    <span class=\"fa fa-plus-circle fa-sm-blue\" matTooltip=\"ADD NEW EFT/EDI FILE\"\r\n                      matTooltipClass=\"tooltip-md\">\r\n                    </span>\r\n                  </a>\r\n                </div>\r\n              </mat-card-title>\r\n            </mat-card-header>\r\n            <mat-card-content style=\"max-height: 50vh; overflow: auto;\">\r\n              <epay-library-employer-eft-filehistory [baseurl]=\"baseurl\"\r\n                [daysToShowEFTFileHistory]=\"daysToShowEFTFileHistory\">\r\n              </epay-library-employer-eft-filehistory>\r\n            </mat-card-content>\r\n          </mat-card>\r\n        </div>\r\n        <div *ngIf=\"!isMobile\" class=\"col-12 col-lg-4 form-display-card\">\r\n          <div class=\"row m--full-bleed\">\r\n            <mat-card class=\"info-help-panel\">\r\n              <mat-card-header>\r\n                <mat-card-title>My Account</mat-card-title>\r\n              </mat-card-header>\r\n              <mat-card-content>\r\n                <div class=\"flex-ico-row mb-3\">\r\n                  <div class=\"flex-ico\">\r\n                    <span class=\"fa fa-address-card-o fa-lg-gray\"></span>\r\n                  </div>\r\n                  <div class=\"flex-text\">\r\n                    <h3 class=\"mb-1\">{{username}} {{isManager && '(Manager)'}}\r\n                    </h3>\r\n                    <address class=\"ts-s\">\r\n                      {{accountAddress}} {{accountCSZ}}\r\n                    </address>\r\n                  </div>\r\n                </div>\r\n                <dl class=\"account-details-sum\">\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Employer</dt>\r\n                    <dd class=\"account-dt-info\">{{employerName}} </dd>\r\n                  </div>\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Phone</dt>\r\n                    <dd class=\"account-dt-info\">{{accountPhone | mask: phoneMask}} </dd>\r\n                  </div>\r\n                  <div class=\"account-sum-row\">\r\n                    <dt class=\"account-dt\">Email</dt>\r\n                    <dd class=\"account-dt-info\">{{accountEmail}} </dd>\r\n                  </div>\r\n                </dl>\r\n              </mat-card-content>\r\n              <hr>\r\n              <div *ngIf=\"numOfUsers === 1 && isManager\" class=\"text-center\">\r\n                <mat-card-content>\r\n                  <div class=\"ts-base\">\r\n                    <strong>No additional user found.</strong><br />\r\n                    Click <a [routerLink]=\"profileSettingsUrl\" [state]=\"{display: 'account'}\"><i\r\n                        class=\"fa fa-user-plus\"></i> HERE</a> to add an additional user.\r\n                  </div>\r\n                </mat-card-content>\r\n                <hr>\r\n              </div>\r\n              <mat-card-content>\r\n                <div class=\"t-alignC\">\r\n                  <a class=\"btn-link mx-3 mb-3\" [routerLink]=\"profileSettingsUrl\">Profile and Settings</a>\r\n                </div>\r\n              </mat-card-content>\r\n            </mat-card>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [confirmationTitle]=\"confirmationTitle\"\r\n    [confirmationMessage]=\"confirmationMessage\" [confirmationNumber]=\"confirmationNumber\" [goToPrimary]=\"goToPrimary\"\r\n    [goToPrimaryUrl]=\"goToPrimaryUrl\">\r\n  </epay-lib-common-confirmation>\r\n\r\n</epay-page-content>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployerService } from '../../services/employer.service';\r\nimport { CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-home',\r\n  templateUrl: './home.component.html'\r\n})\r\nexport class EMPHomeComponent implements OnInit {\r\n  pagetitle = 'Review Payment Methods';\r\n  achdInfo = '';\r\n  eftInfo = '';\r\n  baseurl = '';\r\n\r\n  constructor(private employerService: EmployerService) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.employerService.getACHDInfo().subscribe(\r\n      result => {\r\n        this.achdInfo = result;\r\n      }\r\n    );\r\n    this.employerService.getEFTInfo().subscribe(\r\n      result => {\r\n        this.eftInfo = result;\r\n      }\r\n    );\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main box-panel shadow max-w max-gm\" id=\"page-content-main\">\r\n    <div class=\"container max-w max-gm\">\r\n      <div class=\"row\">\r\n        <div class=\"col-12 col-md-6 mb-5 m--mb0\">\r\n          <epay-lib-employer-achd-home [achdInfo]=\"achdInfo\" [baseurl]=\"baseurl\">\r\n          </epay-lib-employer-achd-home>\r\n        </div>\r\n        <div class=\"col-12 col-md-6\">\r\n          <epay-lib-employer-eft-home [eftInfo]=\"eftInfo\">\r\n          </epay-lib-employer-eft-home>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport PhoneNumber from 'awesome-phonenumber';\r\nimport { ICountry, IState, ErrorHandlerService, CommonService, RegisterLibraryService, AuthService, PhoneHelperService, ConfirmDialogModel, ConfirmDialogComponent } from 'epay-library';\r\nimport { IEmpProfileAccountLogin } from 'epay-library/lib/features/employer/models/user/profile/employerProfileAccountLogin';\r\nimport { IEmpProfileAccountResults } from 'epay-library/lib/features/employer/models/user/profile/employerProfileAccountResults';\r\nimport { Router } from '@angular/router';\r\nimport { debounceTime } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'employer-profile-account',\r\n  templateUrl: './employer-profile-account.component.html'\r\n})\r\nexport class EmployerProfileAccountComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n  @Input() useEmailForLogin = false;\r\n  @Output() profileConfirmationEmitter = new EventEmitter<{\r\n    success: boolean;\r\n    message: string;\r\n    confirmationNumber: string;\r\n    showConfirmationEmail: boolean;\r\n  }>();\r\n\r\n  loginHintMessage =\r\n  'Must contain at least 8 characters. Alphanumerical values and email format are accepted.';\r\n\r\n  isAccountManager = false;\r\n  numOfAccounts = 0;\r\n  countries: ICountry[] = [];\r\n  selectedCountry = '';\r\n  states: IState[] = [];\r\n  selectedState = '';\r\n  errorMessage = '';\r\n  emailMessage = '';\r\n  loginErrorMessage = '';\r\n  loginSuccessMessage = '';\r\n  isCheckingLogin = false;\r\n  isValidLogin = false;\r\n  isValidEmail = false;\r\n  isCheckingEmail = false;\r\n  emailErrorMessage = '';\r\n  emailSuccessMessage = '';\r\n  profileAccountResults: IEmpProfileAccountResults =\r\n    {} as IEmpProfileAccountResults;\r\n  profileAccounts: IEmpProfileAccountLogin[];\r\n  secondaryAccount: IEmpProfileAccountLogin = {} as IEmpProfileAccountLogin;\r\n  secondaryUserNumber = '';\r\n  showAccountForm = false;\r\n  deleteresult = '';\r\n  isEdit = false;\r\n  userNumber = '';\r\n\r\n  profileAccountHeader = [\r\n    'Username',\r\n    'Name',\r\n    'Account',\r\n    'Creation Date',\r\n    'Action',\r\n  ];\r\n\r\n  secondaryAccountFrmGrp: FormGroup = new FormGroup({});\r\n  phonePattern = /^((\\\\+91-?)|0)?[0-9]{10}$/;\r\n  //loginPattern = /(?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*/;\r\n  loginPattern = /^[a-zA-Z0-9.@]*$/;\r\n  zipPattern = /^[0-9]{5}$/;\r\n  emailPattern = /\\S+@\\S+\\.\\S+/;\r\n  phoneExample = '';\r\n  phoneMask = '';\r\n\r\n  validationLoginIdMessages: { [key: string]: string } = {\r\n    required: 'Username is required.',\r\n    pattern:\r\n      'Invalid Username. Must contain only alphanumerical values with the exception of email format.',\r\n    minlength: 'Invalid Username.  Must contain at least 8 characters.',\r\n    isDuplicate: 'Username is not available for use.',\r\n  };\r\n\r\n  validationEmailMessages: { [key: string]: string } = {\r\n    required: 'Required.',\r\n    pattern: 'Please enter a valid email address.',\r\n    isDuplicate: 'Registration already exist for this email.',\r\n  };\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    public dialog: MatDialog,\r\n    public snackbar: MatSnackBar,\r\n    private commonService: CommonService,\r\n    private registerService: RegisterLibraryService,\r\n    private authService: AuthService,\r\n    private phoneHelperService: PhoneHelperService\r\n  ) {\r\n    this.profileAccounts = [];\r\n    this.showAccountForm = false;\r\n    this.isEdit = false;\r\n    this.selectedCountry = 'US';\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.loadFormGroups();\r\n    this.getCountries();\r\n    this.getStates();\r\n    this.loadEmployerAccounts();\r\n    this.authService.currentUserAccountManager.subscribe(\r\n      (manager) =>\r\n        (this.isAccountManager =\r\n          manager.toLowerCase() === 'true' ? true : false)\r\n    );\r\n\r\n    this.authService.currentUserNumber.subscribe(\r\n      (num) => (this.userNumber = num)\r\n    );\r\n\r\n    if (!this.isAccountManager) {\r\n      this.profileAccountHeader = this.profileAccountHeader.filter(\r\n        (x) => x !== 'Action'\r\n      );\r\n    }\r\n\r\n    const phoneCtrl = this.secondaryAccountFrmGrp.get('phoneGp.phoneNumber');\r\n    const countryCtrl = this.secondaryAccountFrmGrp.get('country');\r\n    const loginCtrl = this.secondaryAccountFrmGrp.get('loginId');\r\n    const emailCtrl = this.secondaryAccountFrmGrp.get('email');\r\n\r\n    loginCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\r\n      if ((loginCtrl?.touched || loginCtrl?.dirty) && loginCtrl?.errors) {\r\n        this.loginErrorMessage = Object.keys(loginCtrl!.errors)!\r\n          .map((key: any) => this.validationLoginIdMessages[key])\r\n          .join(' ');\r\n        this.isValidLogin = false;\r\n      } else {\r\n        this.isCheckingLogin = true;\r\n        if (!this.useEmailForLogin) {\r\n          this.registerService\r\n            .searchDuplicateLogin(this.baseurl, value)\r\n            .subscribe({\r\n              next: (result: any) => {\r\n                this.setLoginMessage(loginCtrl!, result);\r\n                this.isCheckingLogin = false;\r\n              },\r\n              error: (error: any) => {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              },\r\n            });\r\n        } else {\r\n          this.registerService\r\n            .searchDuplicateEmail(this.baseurl, value)\r\n            .subscribe({\r\n              next: (result: any) => this.setLoginMessage(loginCtrl!, result),\r\n              error: (error: any) => {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              },\r\n            });\r\n        }\r\n      }\r\n    });\r\n\r\n    emailCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((email) => {\r\n      this.setEmailMessage(emailCtrl!, email);\r\n    });\r\n\r\n    phoneCtrl!.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\r\n      if (value) {\r\n        const pn = new PhoneNumber(\r\n          value,\r\n          this.secondaryAccountFrmGrp.get('phoneGp.regionCode')!.value\r\n        );\r\n        this.secondaryAccountFrmGrp.get('phoneGp')!.patchValue({\r\n          isValid: pn.isPossible(),\r\n        });\r\n      }\r\n    });\r\n\r\n    countryCtrl!.valueChanges.subscribe((value) => {\r\n      if (value) {\r\n        this.setMaskAndExample(value);\r\n        this.secondaryAccountFrmGrp.get('phoneGp')!.patchValue({\r\n          regionCode: value,\r\n          countryCode:\r\n            this.phoneHelperService.getCountryCodeForRegionCode(value),\r\n          phoneNumber: '',\r\n          isValid: false,\r\n        });\r\n        this.secondaryAccountFrmGrp.patchValue({\r\n          state: '',\r\n          zip5: '',\r\n        });\r\n        if (value === 'US') {\r\n          this.secondaryAccountFrmGrp\r\n            .get('zip5')!\r\n            .setValidators([\r\n              Validators.required,\r\n              Validators.pattern(this.zipPattern),\r\n            ]);\r\n        } else {\r\n          this.secondaryAccountFrmGrp\r\n            .get('zip5')!\r\n            .setValidators([Validators.required, Validators.maxLength(6)]);\r\n        }\r\n        if (value === 'US' || value === 'MX' || value === 'CA') {\r\n          this.selectedCountry = value;\r\n          this.secondaryAccountFrmGrp.get('state')!.enable();\r\n          this.secondaryAccountFrmGrp\r\n            .get('state')!\r\n            .setErrors({ required: true });\r\n          this.secondaryAccountFrmGrp.updateValueAndValidity();\r\n          this.getStates();\r\n        } else {\r\n          this.secondaryAccountFrmGrp.get('state')!.disable();\r\n          this.secondaryAccountFrmGrp\r\n            .get('state')!\r\n            .setErrors({ required: false });\r\n          this.secondaryAccountFrmGrp.updateValueAndValidity();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  displayAccountForm() {\r\n    this.showAccountForm = true;\r\n    this.isEdit = false;\r\n    this.isValidLogin = false;\r\n    this.isCheckingLogin = false;\r\n    this.secondaryAccountFrmGrp.get('loginId')!.enable();\r\n    this.secondaryAccountFrmGrp.reset();\r\n    this.secondaryAccountFrmGrp.patchValue({\r\n      country: 'US',\r\n    });\r\n    this.setMaskAndExample('US');\r\n  }\r\n\r\n  loadEmployerAccounts() {\r\n    this.profileAccounts = [];\r\n    this.numOfAccounts = 0;\r\n\r\n    this.registerService.getEmployerProfileAccounts(this.baseurl).subscribe({\r\n      next: (accounts: any) => {\r\n        this.profileAccountResults = accounts;\r\n        this.profileAccountResults.loginDetails.forEach((account) => {\r\n          this.profileAccounts.push(account);\r\n        });\r\n\r\n        this.profileAccounts = this.profileAccounts.sort((a, b) =>\r\n          a.isAccountManager > b.isAccountManager ? -1 : 1\r\n        );\r\n        this.numOfAccounts = this.profileAccounts.length;\r\n        sessionStorage.setItem('numberOfUsers', this.numOfAccounts.toString());\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  insertUpdateSecondaryAccount() {\r\n    if (this.secondaryAccountFrmGrp.valid) {\r\n      if (this.secondaryAccountFrmGrp.dirty) {\r\n        const secondaryAccount = {\r\n          loginId: this.useEmailForLogin\r\n            ? this.secondaryAccountFrmGrp.get('email')!.value.trim()\r\n            : this.secondaryAccountFrmGrp.get('loginId')!.value.trim(),\r\n          firstName: this.secondaryAccountFrmGrp.get('firstName')!.value.trim(),\r\n          middleName:\r\n            this.secondaryAccountFrmGrp.get('middleName')!.value === null\r\n              ? ''\r\n              : this.secondaryAccountFrmGrp.get('middleName')!.value.trim(),\r\n          lastName: this.secondaryAccountFrmGrp.get('lastName')!.value.trim(),\r\n          address1: this.secondaryAccountFrmGrp.get('address1')!.value.trim(),\r\n          address2:\r\n            this.secondaryAccountFrmGrp.get('address2')!.value === null\r\n              ? ''\r\n              : this.secondaryAccountFrmGrp.get('address2')!.value.trim(),\r\n          city: this.secondaryAccountFrmGrp.get('city')!.value.trim(),\r\n          state: this.secondaryAccountFrmGrp.get('state')!.value.trim(),\r\n          zip5: this.secondaryAccountFrmGrp.get('zip5')!.value.trim(),\r\n          zip4: '',\r\n          countryCode:\r\n            this.secondaryAccountFrmGrp.get('country')!.value === null\r\n              ? 'US'\r\n              : this.secondaryAccountFrmGrp.get('country')!.value.trim(),\r\n          phone: this.secondaryAccountFrmGrp\r\n            .get('phoneGp.phoneNumber')!\r\n            .value.trim(),\r\n          phoneExt:\r\n            this.secondaryAccountFrmGrp.get('phoneExt')!.value === null\r\n              ? ''\r\n              : this.secondaryAccountFrmGrp.get('phoneExt')!.value.trim(),\r\n          email: this.secondaryAccountFrmGrp.get('email')!.value.trim(),\r\n        };\r\n\r\n        if (!this.isEdit) {\r\n          this.registerService\r\n            .addSecondaryAccount(this.baseurl, secondaryAccount)\r\n            .subscribe(\r\n              (response: any) => {\r\n                this.profileConfirmationEmitter.emit({\r\n                  success: true,\r\n                  message:\r\n                    'Account for ' +\r\n                    secondaryAccount.firstName +\r\n                    ' ' +\r\n                    secondaryAccount.lastName +\r\n                    ' has been created. An email was sent to ' +\r\n                    secondaryAccount.email +\r\n                    ' with more instructions to complete their registration.',\r\n                  confirmationNumber: response.confirmationNumber,\r\n                  showConfirmationEmail: false,\r\n                });\r\n                this.onSaveComplete();\r\n              },\r\n              (error: any) => {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              }\r\n            );\r\n        } else {\r\n          this.registerService\r\n            .updateUserAccount(\r\n              this.baseurl,\r\n              secondaryAccount,\r\n              +this.secondaryUserNumber\r\n            )\r\n            .subscribe(\r\n              (response: any) => {\r\n                this.profileConfirmationEmitter.emit({\r\n                  success: true,\r\n                  message:\r\n                    'Account for ' +\r\n                    secondaryAccount.firstName +\r\n                    ' ' +\r\n                    secondaryAccount.lastName +\r\n                    ' has been updated. A confirmation email was sent to ' +\r\n                    secondaryAccount.email +\r\n                    '.',\r\n                  confirmationNumber: response.confirmationNumber,\r\n                  showConfirmationEmail: false,\r\n                });\r\n                this.onSaveComplete();\r\n              },\r\n              (error: any) => {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              }\r\n            );\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  onSaveComplete() {\r\n    this.secondaryAccountFrmGrp.reset();\r\n    this.showAccountForm = false;\r\n    this.secondaryUserNumber = '';\r\n    // this.loadEmployerAccounts();\r\n    // this.router.navigate(['/employer/profile/account']);\r\n  }\r\n\r\n  editaccount(account: IEmpProfileAccountLogin) {\r\n    this.states = [];\r\n    this.showAccountForm = true;\r\n    this.isEdit = true;\r\n    this.secondaryUserNumber = account.userNumberExternal;\r\n    this.secondaryAccountFrmGrp.patchValue(\r\n      {\r\n        loginId: account.loginId,\r\n        firstName: account.contactInfo.firstName,\r\n        middleName: account.contactInfo.middleName,\r\n        lastName: account.contactInfo.lastName,\r\n        address1: account.contactInfo.address1,\r\n        address2: account.contactInfo.address2,\r\n        country: account.contactInfo.countryId,\r\n        city: account.contactInfo.city,\r\n        zip5: account.contactInfo.zip5.trim(),\r\n        phoneExt: account.contactInfo.phoneExt,\r\n        state: account.contactInfo.state,\r\n      },\r\n      { emitEvent: true }\r\n    );\r\n    this.secondaryAccountFrmGrp.patchValue(\r\n      {\r\n        email: account.contactInfo.email,\r\n      },\r\n      { emitEvent: false }\r\n    );\r\n\r\n    if (account.contactInfo.state.trim() !== '') {\r\n      this.secondaryAccountFrmGrp\r\n        .get('zip5')!\r\n        .setValidators([\r\n          Validators.required,\r\n          Validators.pattern(this.zipPattern),\r\n        ]);\r\n      this.secondaryAccountFrmGrp\r\n        .get('state')!\r\n        .setValidators([Validators.required]);\r\n      this.secondaryAccountFrmGrp.updateValueAndValidity();\r\n    } else {\r\n      this.secondaryAccountFrmGrp\r\n        .get('zip5')!\r\n        .setValidators([Validators.required, Validators.maxLength(6)]);\r\n      this.secondaryAccountFrmGrp.get('zip5')!.updateValueAndValidity();\r\n      this.secondaryAccountFrmGrp.get('state')!.clearValidators();\r\n      this.secondaryAccountFrmGrp.get('state')!.disable();\r\n      this.secondaryAccountFrmGrp.updateValueAndValidity();\r\n    }\r\n    this.secondaryAccountFrmGrp.get('phoneGp')!.patchValue(\r\n      {\r\n        regionCode: account.contactInfo.countryId,\r\n        phoneNumber: account.contactInfo.phone\r\n          .substring(account.contactInfo.phone.trim().lastIndexOf(' '))\r\n          .trim(),\r\n        countryCode: this.phoneHelperService.getCountryCodeForRegionCode(\r\n          account.contactInfo.countryId\r\n        ),\r\n        isValid: true,\r\n      },\r\n      { emitEvent: true }\r\n    );\r\n    this.secondaryAccountFrmGrp.get('loginId')!.disable();\r\n\r\n    this.setMaskAndExample(\r\n      this.secondaryAccountFrmGrp.get('country')!.value.trim()\r\n    );\r\n\r\n    console.log(this.secondaryAccountFrmGrp);\r\n    console.log(this.secondaryAccountFrmGrp.valid);\r\n  }\r\n\r\n  deleteaccount(account: IEmpProfileAccountLogin) {\r\n    const message = `Are you sure you want to delete this account?`;\r\n    const acctdetail = account.userName + ' - ' + account.loginId;\r\n    const dialogData = new ConfirmDialogModel(\r\n      'Confirm Deleting Account',\r\n      message,\r\n      acctdetail,\r\n      '',\r\n      '',\r\n      '',\r\n      ''\r\n    );\r\n\r\n    const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n      maxWidth: '700px',\r\n      data: dialogData,\r\n    });\r\n\r\n    dialogRef.afterClosed().subscribe({\r\n      next: (dialogResult: any) => (this.deleteresult = dialogResult),\r\n      error: (error: any) => console.log(error),\r\n      complete: () => {\r\n        if (this.deleteresult) {\r\n          this.registerService\r\n            .deleteSecondaryAccount(this.baseurl, +account.userNumberExternal)\r\n            .subscribe({\r\n              next: (success: any) => {\r\n                this.profileConfirmationEmitter.emit({\r\n                  success: true,\r\n                  message:\r\n                    'Account for ' +\r\n                    account.contactInfo.firstName +\r\n                    ' ' +\r\n                    account.contactInfo.lastName +\r\n                    ' has been deleted. An email was sent to ' +\r\n                    account.contactInfo.email +\r\n                    ' with confirmation.',\r\n                  confirmationNumber: success.confirmationNumber,\r\n                  showConfirmationEmail: false,\r\n                });\r\n                // this.loadEmployerAccounts();\r\n                this.onSaveComplete();\r\n              },\r\n              error: (error: any) => {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              },\r\n            });\r\n        }\r\n      },\r\n    });\r\n  }\r\n\r\n  moveToPrimary(account: IEmpProfileAccountLogin) {\r\n    const message = `Are you sure you change the Account Manager to:`;\r\n    const acctdetail = account.userName + ' - ' + account.loginId;\r\n    const dialogData = new ConfirmDialogModel(\r\n      'Confirm Changing Account',\r\n      message,\r\n      acctdetail,\r\n      '',\r\n      '',\r\n      '',\r\n      ''\r\n    );\r\n\r\n    const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n      maxWidth: '700px',\r\n      data: dialogData,\r\n    });\r\n\r\n    dialogRef.afterClosed().subscribe({\r\n      next: (dialogResult: any) => (this.deleteresult = dialogResult),\r\n      error: (error: any) => console.log(error),\r\n      complete: () => {\r\n        if (this.deleteresult) {\r\n          this.registerService\r\n            .makeAccountManager(this.baseurl, +account.userNumberExternal)\r\n            .subscribe({\r\n              next: (success: any) => this.onSaveComplete(),\r\n              error: (error: any) => {\r\n                this.logError(error);\r\n                this.handleError(error.status);\r\n              },\r\n              complete: () => {\r\n                this.openSnackBar(\r\n                  'Account ' + account.loginId + ' is now Account Manager.',\r\n                  5000,\r\n                  'snackbar-success'\r\n                );\r\n                sessionStorage.setItem('isAccountManager', 'false');\r\n                this.isAccountManager = false;\r\n                this.profileAccountHeader = this.profileAccountHeader.filter(\r\n                  (x) => x !== 'Action'\r\n                );\r\n              },\r\n            });\r\n        }\r\n      },\r\n    });\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.secondaryAccountFrmGrp = this.formbuilder.group({\r\n      loginId: [\r\n        '',\r\n        [ Validators.required,\r\n          Validators.minLength(8),\r\n          //Validators.maxLength(12),\r\n          Validators.pattern(this.loginPattern),],\r\n      ],\r\n      firstName: ['', Validators.required],\r\n      middleName: '',\r\n      lastName: ['', Validators.required],\r\n      address1: ['', Validators.required],\r\n      address2: '',\r\n      city: ['', Validators.required],\r\n      state: ['', Validators.required],\r\n      zip5: ['', [Validators.required]],\r\n      country: ['US', Validators.required],\r\n      email: ['', [Validators.required, Validators.pattern(this.emailPattern)]],\r\n      phoneGp: this.formbuilder.group({\r\n        regionCode: 'US',\r\n        phoneNumber: ['', [Validators.required]],\r\n        countryCode: '1',\r\n        isValid: [false, Validators.requiredTrue],\r\n      }),\r\n      phoneExt: '',\r\n    });\r\n\r\n    // this.setMaskAndExample('US');\r\n    // set default country to US\r\n    // this.secondaryAccountFrmGrp.patchValue({\r\n    //   country: 'US',\r\n    // });\r\n\r\n    if (this.useEmailForLogin) {\r\n      this.secondaryAccountFrmGrp.get('loginId')?.clearValidators();\r\n      this.secondaryAccountFrmGrp.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  getCountries() {\r\n    this.commonService.getCountries(this.baseurl).subscribe({\r\n      next: (countries: any) => {\r\n        this.countries = countries;\r\n        this.countries = this.countries.sort((a, b) =>\r\n          a.countryName < b.countryName ? 1 : -1\r\n        );\r\n        this.countries.push({\r\n          country: 'MX',\r\n          countryName: 'Mexico',\r\n          alpha3IsoCode: 'MEX',\r\n          numeric3IsoCode: '484',\r\n        });\r\n        this.countries.push({\r\n          country: 'CA',\r\n          countryName: 'Canada',\r\n          alpha3IsoCode: 'CAN',\r\n          numeric3IsoCode: '124',\r\n        });\r\n        this.countries.push({\r\n          country: 'US',\r\n          countryName: 'United States',\r\n          alpha3IsoCode: 'USA',\r\n          numeric3IsoCode: '840',\r\n        });\r\n        this.countries.reverse();\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  getStates() {\r\n    this.selectedCountry = this.secondaryAccountFrmGrp.get('country')!.value;\r\n    this.commonService.getStates(this.baseurl, this.selectedCountry).subscribe({\r\n      next: (states) => (this.states = states),\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  setEmailMessage(emailControl: AbstractControl, email: any): void {\r\n    this.resetEmailCheck();\r\n    if (emailControl.touched || emailControl.dirty) {\r\n      if (!emailControl.errors) {\r\n        this.isCheckingEmail = true;\r\n        this.registerService\r\n          .searchDuplicateEmail(this.baseurl, email)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.isValidEmail = !result.isDuplicate;\r\n              if (this.isValidEmail) {\r\n                this.emailSuccessMessage = 'Email is available!';\r\n              } else {\r\n                emailControl.setErrors({ isDuplicate: true });\r\n                this.emailErrorMessage = Object.keys(emailControl.errors!)\r\n                  .map((key) => this.validationEmailMessages[key])\r\n                  .join(' ');\r\n                this.secondaryAccountFrmGrp.updateValueAndValidity();\r\n              }\r\n              this.isCheckingEmail = false;\r\n            },\r\n            error: (error: any) => {\r\n              this.resetEmailCheck();\r\n              this.errorMessage = error as any;\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      } else {\r\n        this.emailErrorMessage = Object.keys(emailControl.errors)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n  setLoginMessage(loginControl: AbstractControl, result: any) {\r\n    this.loginErrorMessage = '';\r\n    this.loginSuccessMessage = '';\r\n\r\n    if (loginControl.dirty) {\r\n      this.isValidLogin = !result.isDuplicate;\r\n      if (this.isValidLogin) {\r\n        this.loginSuccessMessage = 'Username Available!';\r\n      } else {\r\n        loginControl.setErrors({ isDuplicate: true });\r\n        if (!this.useEmailForLogin) {\r\n          this.loginErrorMessage = Object.keys(loginControl.errors!)\r\n            .map((key) => this.validationLoginIdMessages[key])\r\n            .join(' ');\r\n        } else {\r\n          this.loginErrorMessage = Object.keys(loginControl.errors!)\r\n            .map((key) => this.validationEmailMessages[key])\r\n            .join(' ');\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  resetEmailCheck() {\r\n    this.isValidEmail = false;\r\n    this.isCheckingEmail = false;\r\n    this.emailSuccessMessage = '';\r\n    this.emailErrorMessage = '';\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  setMaskAndExample(regionCode: string) {\r\n    this.phoneExample = this.phoneHelperService.getExample(regionCode);\r\n    this.phoneMask = this.phoneHelperService.getMask(regionCode);\r\n  }\r\n\r\n  closeForm() {\r\n    this.showAccountForm = false;\r\n    this.secondaryAccountFrmGrp.get('loginId')!.enable();\r\n    this.secondaryAccountFrmGrp.reset();\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n\r\n","<div class=\"tab-content profile-security\">\r\n    <div class=\"bg-white\">\r\n      <div class=\"form-display-card\">\r\n        <mat-card class=\"card-container\">\r\n          <mat-card-header>\r\n            <mat-card-title>User Account Management\r\n              <div *ngIf=\"isAccountManager && numOfAccounts < 3\">\r\n                <a (click)=\"displayAccountForm()\" class=\"ts-s\">\r\n                  Add\r\n                  <span class=\"fa fa-plus-circle fa-sm-blue\" matTooltip=\"ADD NEW ACCOUNT\" matTooltipClass=\"tooltip-md\">\r\n                  </span>\r\n                </a>\r\n              </div>\r\n            </mat-card-title>\r\n            <mat-card-subtitle>\r\n              Multiple login accounts can be created for an employer. The first login account you create is the\r\n              primary account. Additionally, you can establish up to two secondary accounts. Primary and secondary\r\n              accounts have the same access, except the primary account user can also add or inactivate a secondary\r\n              account. Additionally, the primary account user can change their account to a secondary account.\r\n              If only a primary account is established, in other words, no secondary account, then account information\r\n              cannot be accessed if the primary user is not available to log in.\r\n            </mat-card-subtitle>\r\n          </mat-card-header>\r\n          <mat-card-content>\r\n            <table class=\"table account-users-table x-scrollable-table\">\r\n              <thead>\r\n                <tr>\r\n                  <th *ngFor=\"let col of profileAccountHeader\">{{col}}</th>\r\n                </tr>\r\n              </thead>\r\n              <tbody>\r\n                <tr *ngFor=\"let account of profileAccounts\"\r\n                  [ngClass]=\"{'profile-primary-account' : account.isAccountManager }\">\r\n                  <td>{{account.loginId}}</td>\r\n                  <td>{{account.userName}}</td>\r\n                  <td>{{account.isAccountManager ? 'Manager' : account.isRegistrationComplete ? 'Secondary' :\r\n                    'Secondary\r\n                    (Incomplete Registration)'}}</td>\r\n                  <td>{{account.creationTime | date:'MM/dd/yyyy'}}</td>\r\n                  <td *ngIf=\"isAccountManager\">\r\n                    <span *ngIf=\"isAccountManager\" (click)=\"editaccount(account)\" class=\"fa fa-pencil-square-o fa-md-blue\"\r\n                      matTooltip=\"EDIT ACCOUNT\">\r\n                    </span>\r\n                    <span *ngIf=\"!account.isAccountManager && isAccountManager\" (click)=\"deleteaccount(account)\"\r\n                      class=\"fa fa-trash-o fa-md-blue\" matTooltip=\"DELETE ACCOUNT\">\r\n                    </span>\r\n                    <span *ngIf=\"!account.isAccountManager && account.isRegistrationComplete && isAccountManager\"\r\n                      (click)=\"moveToPrimary(account)\" class=\"fa fa-arrow-circle-o-up fa-md-blue\"\r\n                      matTooltip=\"MAKE PRIMARY ACCOUNT\">\r\n                    </span>\r\n                  </td>\r\n                </tr>\r\n              </tbody>\r\n            </table>\r\n          </mat-card-content>\r\n        </mat-card>\r\n      </div>\r\n    </div>\r\n    <div *ngIf=\"showAccountForm\" class=\"add-edit-account\">\r\n      <div class=\"form-display-card\">\r\n        <mat-card class=\"card-container\">\r\n          <mat-card-header>\r\n            <mat-card-title *ngIf=\"!isEdit\">Add Account</mat-card-title>\r\n            <mat-card-title *ngIf=\"isEdit\">Edit Account</mat-card-title>\r\n          </mat-card-header>\r\n          <mat-card-content class=\"profile-detail-form-field\">\r\n            <form [formGroup]=\"secondaryAccountFrmGrp\" (ngSubmit)=\"insertUpdateSecondaryAccount()\" autocomplete=\"off\">\r\n\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field *ngIf=\"!useEmailForLogin\">\r\n                  <input matInput placeholder=\"Username\" #loginId formControlName=\"loginId\" autocomplete=\"off\" required>\r\n                  <mat-hint *ngIf=\"isValidLogin && !isCheckingLogin\" style=\"color: darkgreen\">{{loginSuccessMessage}}\r\n                  </mat-hint>\r\n                  <mat-hint *ngIf=\"!isValidLogin && !isCheckingLogin\">{{loginHintMessage}}</mat-hint>\r\n                  <span *ngIf=\"isCheckingLogin\" matSuffix><i style=\"font-size: 1.25em;\"\r\n                      class=\"fa fa-refresh fa-spin fa-2x fa-fw\"></i></span>\r\n                  <span *ngIf=\"isValidLogin\" matSuffix><i class=\"fa fa-check c-green0\"></i></span>\r\n                  <mat-error>{{loginErrorMessage}}</mat-error>\r\n                </mat-form-field>\r\n              </div>\r\n\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"First name\" formControlName=\"firstName\" autocomplete=\"off\" required>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Middle name\" formControlName=\"middleName\" autocomplete=\"off\">\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Last name\" formControlName=\"lastName\" autocomplete=\"off\" required>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n              </div>\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Address\" formControlName=\"address1\" autocomplete=\"off\" required>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Line 2\" formControlName=\"address2\" autocomplete=\"off\">\r\n                </mat-form-field>\r\n              </div>\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"City\" formControlName=\"city\" autocomplete=\"off\" required>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\"\r\n                    [placeholder]=\"this.secondaryAccountFrmGrp.get('country')!.value.trim() === 'CA' ? 'Province' : 'State'\"\r\n                    formControlName=\"state\" required>\r\n                    <mat-option *ngFor=\"let state of states\" [value]=\"state.code\">\r\n                      {{state.name}}\r\n                    </mat-option>\r\n                  </mat-select>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Zip\" formControlName=\"zip5\" autocomplete=\"off\" required>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n              </div>\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field>\r\n                  <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\" placeholder=\"Country\"\r\n                    formControlName=\"country\" required>\r\n                    <mat-option *ngFor=\"let country of countries\" [value]=\"country.country\">\r\n                      {{country.countryName}}\r\n                    </mat-option>\r\n                  </mat-select>\r\n                  <mat-error>Required</mat-error>\r\n                </mat-form-field>\r\n              </div>\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field formGroupName=\"phoneGp\">\r\n                  <!-- <input matInput placeholder=\"Phone\" formControlName=\"phoneNumber\" [mask]=\"phoneMask\" required> -->\r\n                  <input matInput placeholder=\"Phone\" formControlName=\"phoneNumber\" [mask]=\"phoneMask\" required>\r\n                  <span matPrefix>+{{secondaryAccountFrmGrp.get('phoneGp.countryCode')?.value}}&nbsp;&nbsp;</span>\r\n                  <mat-hint>Ex. {{phoneExample}}</mat-hint>\r\n                  <mat-error *ngIf=\"!secondaryAccountFrmGrp.get('phoneGp.isValid')?.value\">Invalid Format</mat-error>\r\n                  <mat-error *ngIf=\"secondaryAccountFrmGrp.get('phoneGp.phoneNumber')?.hasError('required')\">Required\r\n                  </mat-error>\r\n                </mat-form-field>\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Phone Ext\" formControlName=\"phoneExt\">\r\n                </mat-form-field>\r\n              </div>\r\n              <div class=\"flex-input-col pt-2 pb-2\">\r\n                <mat-form-field>\r\n                  <input matInput placeholder=\"Email\" formControlName=\"email\" autocomplete=\"off\" required>\r\n                  <mat-hint *ngIf=\"isValidEmail && !isCheckingEmail\" class=\"mat-hint-success\">{{emailSuccessMessage}}\r\n                  </mat-hint>\r\n                  <span *ngIf=\"isCheckingEmail\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                  <span *ngIf=\"isValidEmail\" matSuffix><i class=\"fa fa-check\"\r\n                      style=\"font-size: 25px;color:darkgreen\"></i></span>\r\n                  <mat-error>{{emailErrorMessage}}</mat-error>\r\n                  <mat-error *ngIf=\"secondaryAccountFrmGrp.get('email')?.hasError('required') &&\r\n                                    emailErrorMessage?.length !== 0\">Required</mat-error>\r\n                </mat-form-field>\r\n              </div>\r\n              <div class=\"flex-btn-row pt-2 pb-2\">\r\n                <button class=\"btn btn-secondary\" mat-raised-button (click)=\"closeForm()\">Cancel</button>\r\n                <button *ngIf=\"isEdit\" class=\"btn btn-submit\" [disabled]=\"secondaryAccountFrmGrp.invalid\"\r\n                  (click)=\" insertUpdateSecondaryAccount()\" mat-raised-button type=\"submit\">Save Account</button>\r\n                <button *ngIf=\"!isEdit\" class=\"btn btn-submit\" [disabled]=\"secondaryAccountFrmGrp.invalid\"\r\n                  mat-raised-button type=\"submit\">Create Account</button>\r\n              </div>\r\n            </form>\r\n          </mat-card-content>\r\n        </mat-card>\r\n      </div>\r\n    </div>\r\n  </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroupDirective, NgForm, FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { IChallengeQuestion, ErrorHandlerService, AuthService, RegisterLibraryService, ConfirmDialogModel, ConfirmDialogComponent } from 'epay-library';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nfunction passwordMatcher(\r\n  c: AbstractControl\r\n): { [key: string]: boolean } | null {\r\n  const password1Ctrl = c.get('newPassword1');\r\n  const password2Ctrl = c.get('newPassword2');\r\n  if (password1Ctrl === null || password2Ctrl === null) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.pristine || password2Ctrl.pristine) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.value === password2Ctrl.value) {\r\n    return null;\r\n  }\r\n  return { doNotMatch: true };\r\n}\r\n\r\n/** Error when the parent is invalid */\r\nclass CrossFieldErrorMatcher implements ErrorStateMatcher {\r\n  isErrorState(\r\n    control: FormControl | null,\r\n    form: FormGroupDirective | NgForm | null\r\n  ): boolean {\r\n    if (control) {\r\n      return (control.dirty || control.touched) && control.parent!.invalid;\r\n    }\r\n    return false;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'employer-profile-security',\r\n  templateUrl: './empprofile-security.component.html'\r\n})\r\nexport class EMPProfileSecurityComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n  @Input() useEmailForLogin: any;\r\n  @Output() profileConfirmationEmitter = new EventEmitter<{\r\n    success: boolean;\r\n    restart: boolean;\r\n    message: string;\r\n    confirmationNumber: string;\r\n  }>();\r\n\r\n  @Input() newEmailFromLogin: any;\r\n\r\n  errorMatcher = new CrossFieldErrorMatcher();\r\n  loginFrmGp: FormGroup = new FormGroup({});\r\n  passwordFrmGp: FormGroup = new FormGroup({});\r\n  username = '';\r\n  email = '';\r\n  userNumber = 0;\r\n  questions: IChallengeQuestion[] = [];\r\n  selectedChallengeQuestion = '';\r\n  errorMessage = '';\r\n  currentLoginErrorMessage = '';\r\n  currentLoginPasswordErrorMessage = '';\r\n  currentChangePasswordErrorMessage = '';\r\n  newChangePasswordErrorMessage = '';\r\n  newChangeConfirmPasswordErrorMessage = '';\r\n  newLoginErrorMessage = '';\r\n  newLoginSuccessMessage = '';\r\n  updateLoginDialogresult = '';\r\n  isCheckingLogin = false;\r\n  isValidLogin = false;\r\n  isValidPassword = false;\r\n  currentLoginPasswordHide = true;\r\n  currentChangePasswordHide = true;\r\n  newChangePasswordHide = true;\r\n  newChangeConfirmPasswordHide = true;\r\n\r\n  loginHintMessage = 'Must contain at least 8 characters. Alphanumerical values and email format are accepted.';\r\n\r\n  passwordHintMessage =\r\n    'Must contain at least 6 letters, 2 numbers, and one special character with a maximum of 12 characters.';\r\n  hintMessageUsingEmail = ' Please enter a valid email.';\r\n\r\n  // loginPattern =\r\n  //   /(?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*/;\r\n\r\n  loginPattern = /^[a-zA-Z0-9.@]*$/;\r\n\r\n  passwordPattern = /(?=^[A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\d]{8,12}$)(?=(.*[A-Za-z]){6})(?=(.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]){1})(?=(.*\\d){2})^.*/;\r\n\r\n  emailPattern = /\\S+@\\S+\\.\\S+/;\r\n\r\n  validationLoginIdMessages: { [key: string]: string } = {\r\n    required: 'Required.',\r\n    pattern: '',\r\n    isCurrent: '',\r\n    notCurrentLogin: '',\r\n    isDuplicate: '',\r\n    isNotValid: '',\r\n  };\r\n\r\n  validationPasswordMessages: { [key: string]: string } = {\r\n    required: 'Required.',\r\n    pattern:\r\n      'Invalid Password.  Must contain at least 6 letters, 2 numbers, and one special character with a maximum of 12 characters.',\r\n    isSameAsLogin: 'Invalid format.  Password cannot be same as username.',\r\n    isNotValid: 'Username/password combination is invalid',\r\n  };\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private authService: AuthService,\r\n    private registerService: RegisterLibraryService,\r\n    public snackbar: MatSnackBar,\r\n    public dialog: MatDialog //private accountInfo: EMPLibraryProfileAccountComponent\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    this.loadFormGroups();\r\n    this.getChallengeQuestions();\r\n    this.authService.currentLoginId.subscribe(\r\n      (username: any) => (this.username = username)\r\n    );\r\n    this.authService.currentAccountEmail.subscribe(\r\n      (email: any) => (this.email = email)\r\n    );\r\n    this.authService.currentUserNumber.subscribe(\r\n      (num) => (this.userNumber = +num)\r\n    );\r\n    const currentLoginCtrl = this.loginFrmGp.get('currentLoginId');\r\n    const newloginCtrl = this.loginFrmGp.get('newLoginId');\r\n    const currentLoginPasswordCtrl = this.loginFrmGp.get('currentPassword');\r\n\r\n    // Error messages\r\n    if (this.useEmailForLogin) {\r\n      //this.validationLoginIdMessages[\"required\"] = 'Required.';\r\n      this.validationLoginIdMessages['pattern'] =\r\n        'Invalid format. Please enter a valid Email.';\r\n      this.validationLoginIdMessages['isCurrent'] =\r\n        'Email is your current username.';\r\n      this.validationLoginIdMessages['notCurrentLogin'] =\r\n        'This is not your current Email.';\r\n      this.validationLoginIdMessages['isDuplicate'] =\r\n        'Email is NOT available. ';\r\n      this.validationLoginIdMessages['isNotValid'] =\r\n        'Email & Password combination is invalid';\r\n    } else {\r\n      //this.validationLoginIdMessages[\"required\"] = 'Required.';\r\n      this.validationLoginIdMessages['pattern'] =\r\n        'Invalid Username. Must contain only alphanumerical values with the exception of email format.';\r\n      this.validationLoginIdMessages['isCurrent'] =\r\n        'Username is your current username.';\r\n      this.validationLoginIdMessages['notCurrentLogin'] =\r\n        'This is not your current Username.';\r\n      this.validationLoginIdMessages['isDuplicate'] =\r\n        'Username is NOT available. ';\r\n      this.validationLoginIdMessages['isNotValid'] =\r\n        'Username & Password combination is invalid';\r\n    }\r\n\r\n    // Switch validators based on user-type\r\n    if (this.useEmailForLogin) {\r\n      this.loginFrmGp.clearValidators();\r\n      this.loginFrmGp\r\n        .get('currentLoginId')\r\n        ?.setValidators([\r\n          Validators.required,\r\n          Validators.pattern(this.emailPattern),\r\n        ]);\r\n      this.loginFrmGp\r\n        .get('newLoginId')\r\n        ?.setValidators([\r\n          Validators.required,\r\n          Validators.pattern(this.emailPattern),\r\n        ]);\r\n    } else {\r\n      this.loginFrmGp.clearValidators();\r\n      this.loginFrmGp\r\n        .get('currentLoginId')\r\n        ?.setValidators([\r\n          Validators.required,\r\n          Validators.pattern(this.loginPattern),\r\n        ]);\r\n      this.loginFrmGp\r\n        .get('newLoginId')\r\n        ?.setValidators([\r\n          Validators.required,\r\n          Validators.pattern(this.loginPattern),\r\n        ]);\r\n    }\r\n\r\n    this.loginFrmGp.updateValueAndValidity();\r\n\r\n    currentLoginCtrl!.valueChanges\r\n      .pipe(debounceTime(1000))\r\n      .subscribe((currentLogin) =>\r\n        this.setCurrentLoginMessage(currentLoginCtrl!, currentLogin)\r\n      );\r\n\r\n    currentLoginPasswordCtrl!.valueChanges\r\n      .pipe(debounceTime(1000))\r\n      .subscribe((passwrd) =>\r\n        this.setCurrentLoginPasswordMessage(currentLoginPasswordCtrl!)\r\n      );\r\n\r\n    newloginCtrl!.valueChanges\r\n      .pipe(debounceTime(1000))\r\n      .subscribe((newlogin) =>\r\n        this.setNewLoginMessage(newloginCtrl!, newlogin)\r\n      );\r\n  }\r\n\r\n  updateLogin() {\r\n    if (this.loginFrmGp.valid) {\r\n      const message = `This action will force a Logout.  Are you sure you want to change your username?`;\r\n      const acctdetail =\r\n        'New Username: ' + this.loginFrmGp.get('newLoginId')!.value;\r\n      const dialogData = new ConfirmDialogModel(\r\n        'Confirm Changing Username',\r\n        message,\r\n        acctdetail,\r\n        '',\r\n        '',\r\n        '',\r\n        ''\r\n      );\r\n      const dialogRef = this.dialog.open(ConfirmDialogComponent, {\r\n        maxWidth: '700px',\r\n        data: dialogData,\r\n      });\r\n      dialogRef.afterClosed().subscribe({\r\n        next: (dialogResult: any) => {\r\n          this.updateLoginDialogresult = dialogResult;\r\n        },\r\n        error: (error: any) => {\r\n          console.log(error);\r\n        },\r\n        complete: () => {\r\n          if (this.updateLoginDialogresult) {\r\n            if (this.loginFrmGp.valid) {\r\n              if (this.loginFrmGp.dirty) {\r\n                const loginData = {\r\n                  loginId: this.loginFrmGp.get('newLoginId')!.value,\r\n                  password: this.loginFrmGp.get('currentPassword')!.value,\r\n                };\r\n                this.registerService\r\n                  .changeLoginId(this.baseurl, loginData)\r\n                  .subscribe({\r\n                    next: (result: any) => {\r\n                      if (result.errorMessage) {\r\n                        const currentLoginPasswordCtrl =\r\n                          this.loginFrmGp.get('currentPassword');\r\n                        currentLoginPasswordCtrl!.setErrors({\r\n                          isNotValid: true,\r\n                        });\r\n                        this.setCurrentLoginPasswordMessage(\r\n                          currentLoginPasswordCtrl!\r\n                        );\r\n                        // this.openSnackBar('Incorrect username/password.', 5000, 'snackbar-error');\r\n                      }\r\n\r\n                      if (this.loginFrmGp.get('updateEmail')!.value === true) {\r\n                        // else-if checkbox --> RegisterSerivce.updateUser\r\n                        const updateAccount = {\r\n                          firstName: '',\r\n                          middleName: '',\r\n                          lastName: '',\r\n                          address1: '',\r\n                          address2: '',\r\n                          city: '',\r\n                          state: '',\r\n                          zip5: '',\r\n                          zip4: '',\r\n                          countryCode: '',\r\n                          phone: '',\r\n                          phoneExt: '',\r\n                          email: this.loginFrmGp.get('newLoginId')!.value,\r\n                        };\r\n                        this.registerService\r\n                          .updateUserAccount(\r\n                            this.baseurl,\r\n                            updateAccount,\r\n                            this.userNumber\r\n                          )\r\n                          .subscribe({\r\n                            next: (result: any) => {\r\n                              this.profileConfirmationEmitter.emit({\r\n                                success: true,\r\n                                restart: true,\r\n                                message:\r\n                                  'Username & Email changed to ' +\r\n                                  loginData.loginId +\r\n                                  '.',\r\n                                confirmationNumber: result.confirmationNumber,\r\n                              });\r\n                            },\r\n                            error: (error: any) => {\r\n                              this.logError(error);\r\n                              this.handleError(error.status);\r\n                            },\r\n                          });\r\n                      } else {\r\n                        this.profileConfirmationEmitter.emit({\r\n                          success: true,\r\n                          restart: true,\r\n                          message:\r\n                            'Username changed to ' + loginData.loginId + '.',\r\n                          confirmationNumber: result.confirmationNumber,\r\n                        });\r\n                      }\r\n                    },\r\n                    error: (error: any) => {\r\n                      this.logError(error);\r\n                      this.handleError(error.status);\r\n                    },\r\n                  });\r\n              }\r\n            }\r\n          }\r\n        },\r\n      });\r\n    }\r\n  }\r\n\r\n  updatePassword() {\r\n    if (this.passwordFrmGp.valid) {\r\n      if (this.passwordFrmGp.dirty) {\r\n        const passwrdData = {\r\n          oldPassword: this.passwordFrmGp.get('currentPassword')!.value,\r\n          newPassword: this.passwordFrmGp.get('newPassword1')!.value,\r\n          confirmNewPassword: this.passwordFrmGp.get('newPassword2')!.value,\r\n        };\r\n        this.registerService\r\n          .resetPassword(this.baseurl, passwrdData)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              if (result.errorMessage) {\r\n                this.openSnackBar(\r\n                  'Incorrect current password.',\r\n                  5000,\r\n                  'snackbar-error'\r\n                );\r\n              } else {\r\n                this.profileConfirmationEmitter.emit({\r\n                  success: true,\r\n                  restart: false,\r\n                  message: 'Password has been updated.',\r\n                  confirmationNumber: result.confirmationNumber,\r\n                });\r\n                this.onSaveCompletePasswordChange();\r\n              }\r\n            },\r\n            error: (error: any) => {\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      }\r\n    }\r\n  }\r\n\r\n  getPasswordError(ctrl: any) {\r\n    const control = this.passwordFrmGp.get(ctrl);\r\n    const passwrd = control!.value;\r\n    if ((control!.touched || control!.dirty) && !control!.errors) {\r\n      if (passwrd === this.username) {\r\n        control!.setErrors({ isSameAsLogin: true });\r\n        return Object.keys(control!.errors!)\r\n          .map((key) => this.validationPasswordMessages[key])\r\n          .join(' ');\r\n      }\r\n    } else if (control!.errors) {\r\n      return Object.keys(control!.errors)\r\n        .map((key) => this.validationPasswordMessages[key])\r\n        .join(' ');\r\n    }\r\n    return '';\r\n  }\r\n\r\n  setCurrentLoginMessage(currentLoginControl: AbstractControl, loginId: any) {\r\n    this.loginFrmGp.patchValue({\r\n      currentPassword: '',\r\n    });\r\n    this.currentLoginErrorMessage = '';\r\n    if (currentLoginControl.touched || currentLoginControl.dirty) {\r\n      if (currentLoginControl.errors) {\r\n        this.currentLoginErrorMessage = Object.keys(currentLoginControl.errors)\r\n          .map((key) => this.validationLoginIdMessages[key])\r\n          .join(' ');\r\n      } else {\r\n        if (loginId.toString() !== this.username) {\r\n          currentLoginControl.setErrors({ notCurrentLogin: true });\r\n          this.currentLoginErrorMessage = Object.keys(\r\n            currentLoginControl.errors!\r\n          )\r\n            .map((key) => this.validationLoginIdMessages[key])\r\n            .join(' ');\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  setCurrentLoginPasswordMessage(currentLoginPasswordControl: AbstractControl) {\r\n    this.currentLoginPasswordErrorMessage = '';\r\n    if (\r\n      (currentLoginPasswordControl.touched ||\r\n        currentLoginPasswordControl.dirty) &&\r\n      currentLoginPasswordControl.errors\r\n    ) {\r\n      this.currentLoginPasswordErrorMessage = Object.keys(\r\n        currentLoginPasswordControl.errors\r\n      )\r\n        .map((key) => this.validationLoginIdMessages[key])\r\n        .join(' ');\r\n    }\r\n  }\r\n\r\n  setNewLoginMessage(newLoginControl: AbstractControl, newlogin: any) {\r\n    this.newLoginErrorMessage = '';\r\n    this.newLoginSuccessMessage = '';\r\n    this.isValidLogin = false;\r\n\r\n    if (newLoginControl.touched || newLoginControl.dirty) {\r\n      if (newLoginControl.errors) {\r\n        this.newLoginErrorMessage = Object.keys(newLoginControl.errors)\r\n          .map((key) => this.validationLoginIdMessages[key])\r\n          .join(' ');\r\n      } else if (newlogin.toString() === this.username) {\r\n        newLoginControl.setErrors({ isCurrent: true });\r\n        this.newLoginErrorMessage = Object.keys(newLoginControl.errors!)\r\n          .map((key) => this.validationLoginIdMessages[key])\r\n          .join(' ');\r\n      } else {\r\n        this.isCheckingLogin = true;\r\n        this.registerService\r\n          .searchDuplicateLogin(this.baseurl, newlogin)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.isValidLogin = !result.isDuplicate;\r\n              this.isCheckingLogin = false;\r\n              if (this.isValidLogin) {\r\n                this.newLoginSuccessMessage = 'Username Available!';\r\n              } else {\r\n                newLoginControl.setErrors({ isDuplicate: true });\r\n                this.newLoginErrorMessage = Object.keys(newLoginControl.errors!)\r\n                  .map((key) => this.validationLoginIdMessages[key])\r\n                  .join(' ');\r\n              }\r\n            },\r\n            error: (error: any) => {\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      }\r\n    }\r\n  }\r\n\r\n  toggleLoginPasswordHide() {\r\n    this.currentLoginPasswordHide = !this.currentLoginPasswordHide;\r\n  }\r\n\r\n  toggleChangeCurrentPasswordHide() {\r\n    this.currentChangePasswordHide = !this.currentChangePasswordHide;\r\n  }\r\n\r\n  toggleChangePasswordHide() {\r\n    this.newChangePasswordHide = !this.newChangePasswordHide;\r\n  }\r\n\r\n  toggleChangeConfirmPasswordHide() {\r\n    this.newChangeConfirmPasswordHide = !this.newChangeConfirmPasswordHide;\r\n  }\r\n\r\n  onSaveCompleteLoginChagne() {\r\n    this.loginFrmGp.reset();\r\n  }\r\n\r\n  onSaveCompletePasswordChange() {\r\n    this.passwordFrmGp.reset();\r\n  }\r\n  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r\n  loadFormGroups() {\r\n    this.loginFrmGp = this.formbuilder.group({\r\n      //currentLoginId: ['', [Validators.required, Validators.pattern(this.emailPattern)]],\r\n      currentLoginId: ['', [Validators.required]],\r\n      //newLoginId: ['', [Validators.required, Validators.pattern(this.emailPattern)]],\r\n      newLoginId: ['', [Validators.required, Validators.pattern(this.loginPattern)]],\r\n      currentPassword: [\r\n        '',\r\n        [Validators.required],\r\n      ],\r\n      updateEmail: [''],\r\n    });\r\n\r\n    this.passwordFrmGp = this.formbuilder.group(\r\n      {\r\n        currentPassword: [\r\n          '',\r\n          [Validators.required],\r\n        ],\r\n        newPassword1: [\r\n          '',\r\n          [Validators.required, Validators.pattern(this.passwordPattern)],\r\n        ],\r\n        newPassword2: ['', Validators.required],\r\n      },\r\n      { validator: passwordMatcher }\r\n    );\r\n\r\n    if (this.newEmailFromLogin !== '') {\r\n      this.loginFrmGp.patchValue({\r\n        newLoginId: this.newEmailFromLogin,\r\n      });\r\n    }\r\n  }\r\n\r\n  getChallengeQuestions() {\r\n    this.registerService.getChallengeQuestions(this.baseurl).subscribe({\r\n      next: (questions: any) => {\r\n        this.questions = questions;\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n","<div class=\"tab-content profile-security\">\r\n    <div class=\"bg-white\">\r\n      <div class=\"container\">\r\n        <div class=\"row m--full-bleed\">\r\n          <div class=\"col-12 col-lg-6 form-display-card\">\r\n            <form [formGroup]=\"loginFrmGp\" (ngSubmit)=\"updateLogin()\">\r\n              <mat-card class=\"card-container\">\r\n                <div *ngIf=\"useEmailForLogin; then useEmailId else useLoginId\">\r\n                </div>\r\n              </mat-card>\r\n              <!-- Edit Email -->\r\n              <ng-template #useEmailId>\r\n                <mat-card-header>\r\n                  <mat-card-title>Change Username</mat-card-title>\r\n                </mat-card-header>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Current Username\" formControlName=\"currentLoginId\" autocomplete=\"off\">\r\n                    <mat-error>{{currentLoginErrorMessage}}</mat-error>\r\n                    <mat-error *ngIf=\"loginFrmGp.get('currentLoginId')?.hasError('required')\">{{\r\n                      validationLoginIdMessages[\"required\"] }}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Current Password\" [type]=\"currentLoginPasswordHide ? 'password' : 'text'\"\r\n                      formControlName=\"currentPassword\" autocomplete=\"off\">\r\n                    <mat-icon matSuffix (click)=\"toggleLoginPasswordHide()\">{{currentLoginPasswordHide ? 'visibility_off'\r\n                      : 'visibility'}}</mat-icon>\r\n                    <mat-error>{{currentLoginPasswordErrorMessage}}</mat-error>\r\n                    <mat-error>{{getPasswordError(\"currentPassword\")}}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2 mb-3\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"New Username\" #loginId formControlName=\"newLoginId\" autocomplete=\"off\">\r\n                    <mat-hint *ngIf=\"!isValidLogin\">{{hintMessageUsingEmail}}</mat-hint>\r\n                    <mat-hint *ngIf=\"isValidLogin\" class=\"mat-hint-success\">{{newLoginSuccessMessage}}</mat-hint>\r\n                    <span *ngIf=\"isCheckingLogin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                    <span *ngIf=\"isValidLogin\" matSuffix><i class=\"fa fa-check c-green0\"></i></span>\r\n                    <mat-error>{{newLoginErrorMessage}}</mat-error>\r\n                    <mat-error *ngIf=\"loginFrmGp.get('newLoginId')?.hasError('required')\">{{\r\n                      validationLoginIdMessages[\"required\"] }}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n  \r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <label class=\"smart-checkbox\">\r\n                    <input type=\"checkbox\" class=\"form-check-input smart-checks checkmark\" formControlName=\"updateEmail\">\r\n                    <span class=\"ts-s\">Set Contact Email to New Username</span>\r\n                    <span class=\"checkmark\"></span>\r\n                  </label>\r\n                </div>\r\n  \r\n                <div class=\"flex-btn-row pt-2 pb-2\">\r\n                  <button class=\"btn btn-submit\" mat-raised-button type=\"submit\">Save</button>\r\n                </div>\r\n              </ng-template>\r\n  \r\n              <!-- Update Username -->\r\n              <ng-template #useLoginId>\r\n                <mat-card-header>\r\n                  <mat-card-title>Change Username</mat-card-title>\r\n                </mat-card-header>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Current Username\" formControlName=\"currentLoginId\" autocomplete=\"off\">\r\n                    <mat-error>{{currentLoginErrorMessage}}</mat-error>\r\n                    <mat-error *ngIf=\"loginFrmGp.get('currentLoginId')?.hasError('required')\">{{\r\n                      validationLoginIdMessages[\"required\"] }}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Current Password\" [type]=\"currentLoginPasswordHide ? 'password' : 'text'\"\r\n                      formControlName=\"currentPassword\" autocomplete=\"off\">\r\n                    <mat-icon matSuffix (click)=\"toggleLoginPasswordHide()\">{{currentLoginPasswordHide ? 'visibility_off'\r\n                      : 'visibility'}}</mat-icon>\r\n                    <mat-error>{{currentLoginPasswordErrorMessage}}</mat-error>\r\n                    <!-- <mat-error>{{getPasswordError(\"currentPassword\")}}</mat-error> -->\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"New Username\" #loginId formControlName=\"newLoginId\" autocomplete=\"off\">\r\n                    <mat-hint *ngIf=\"!isValidLogin\">{{loginHintMessage}}</mat-hint>\r\n                    <mat-hint *ngIf=\"isValidLogin\" class=\"mat-hint-success\">{{newLoginSuccessMessage}}</mat-hint>\r\n                    <span *ngIf=\"isCheckingLogin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                    <span *ngIf=\"isValidLogin\" matSuffix><i class=\"fa fa-check c-green0\"></i></span>\r\n                    <mat-error>{{newLoginErrorMessage}}</mat-error>\r\n                    <mat-error *ngIf=\"loginFrmGp.get('newLoginId')?.hasError('required')\">{{\r\n                      validationLoginIdMessages[\"required\"] }}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-btn-row pt-2 pb-2\">\r\n                  <button class=\"btn btn-submit\" mat-raised-button type=\"submit\">Save</button>\r\n                </div>\r\n              </ng-template>\r\n            </form>\r\n          </div>\r\n          <!-- Update Password -->\r\n          <div class=\"col-12 col-lg-6 form-display-card\">\r\n            <form [formGroup]=\"passwordFrmGp\" (ngSubmit)=\"updatePassword()\">\r\n              <mat-card class=\"card-container\">\r\n                <mat-card-header>\r\n                  <mat-card-title>Change Password</mat-card-title>\r\n                </mat-card-header>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Current Password\"\r\n                      [type]=\"currentChangePasswordHide ? 'password' : 'text'\" formControlName=\"currentPassword\"\r\n                      autocomplete=\"off\">\r\n                    <mat-icon matSuffix (click)=\"toggleChangeCurrentPasswordHide()\">{{currentChangePasswordHide ?\r\n                      'visibility_off' : 'visibility'}}</mat-icon>\r\n                    <mat-error>{{getPasswordError(\"currentPassword\")}}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"New Password\" [type]=\"newChangePasswordHide ? 'password' : 'text'\"\r\n                      formControlName=\"newPassword1\" autocomplete=\"off\">\r\n                    <mat-hint>{{passwordHintMessage}}</mat-hint>\r\n                    <mat-icon matSuffix (click)=\"toggleChangePasswordHide()\">{{newChangePasswordHide ? 'visibility_off' :\r\n                      'visibility'}}</mat-icon>\r\n                    <mat-error>{{getPasswordError(\"newPassword1\")}}</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput [errorStateMatcher]=\"errorMatcher\" placeholder=\"Confirm New Password\"\r\n                      [type]=\"newChangeConfirmPasswordHide ? 'password' : 'text'\" formControlName=\"newPassword2\"\r\n                      autocomplete=\"off\">\r\n                    <mat-icon matSuffix (click)=\"toggleChangeConfirmPasswordHide()\">{{newChangeConfirmPasswordHide ?\r\n                      'visibility_off' : 'visibility'}}</mat-icon>\r\n                    <mat-error *ngIf=\"passwordFrmGp.hasError('doNotMatch')\">\r\n                      Passwords do not match.\r\n                    </mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-btn-row pt-2 pb-2\">\r\n                  <button class=\"btn btn-submit\" mat-raised-button type=\"submit\">Save</button>\r\n                </div>\r\n              </mat-card>\r\n            </form>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>","import {\r\n  Component,\r\n  OnInit,\r\n  Input,\r\n  Output,\r\n  EventEmitter,\r\n  ViewChild,\r\n  AfterViewInit,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService, EMPLOYER_PROFILE_SETTINGS_URL, CommonSettings } from 'epay-library';\r\n\r\n@Component({\r\n  selector: 'epay-emp-profile',\r\n  templateUrl: './profile.component.html',\r\n})\r\nexport class EMPProfileComponent implements OnInit {\r\n  pagetitle = 'Employer: Profile & Settings';\r\n  displayDetails = true;\r\n  displaySecurity = true;\r\n  displayAccounts = true;\r\n  selectedTab = 0;\r\n\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationNumber = '';\r\n  showConfirmationEmail = false;\r\n  restart = false;\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n  openConfirmation = false;\r\n  useEmail = CommonSettings.UseEmailForLogin;\r\n  email = '';\r\n  newEmailFromLogin = '';\r\n  showEmailMismatch = false;\r\n\r\n  baseurl = '';\r\n  employerProfileUrl = EMPLOYER_PROFILE_SETTINGS_URL;\r\n\r\n  @Input() passState: any;\r\n\r\n  constructor(private router: Router, private authService: AuthService) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n  }\r\n\r\n  ngOnInit() {\r\n    switch (history.state.display) {\r\n      case 'detail': {\r\n        this.selectedTab = 0;\r\n        break;\r\n      }\r\n      case 'security': {\r\n        this.newEmailFromLogin = history.state.newEmail;\r\n        this.selectedTab = 1;\r\n        break;\r\n      }\r\n      case 'account': {\r\n        this.selectedTab = 2;\r\n        break;\r\n      }\r\n      default: {\r\n        this.selectedTab = 0;\r\n      }\r\n    }\r\n  }\r\n\r\n  goToProfileHome() {\r\n    this.router.navigate([this.employerProfileUrl]);\r\n  }\r\n\r\n  displayConfirmationPage(result: any) {\r\n    if (result.success) {\r\n      this.confirmationTitle = 'Success';\r\n      this.confirmationMessage = result.message;\r\n      this.confirmationNumber = result.confirmationNumber;\r\n      this.showConfirmationEmail = result.showConfirmationEmail;\r\n      this.restart = result.restart;\r\n      this.goToPrimaryUrl = 'employer/home';\r\n      this.goToPrimary = 'Home';\r\n      this.openConfirmation = true;\r\n      this.displayAccounts = false;\r\n      this.displayDetails = false;\r\n      this.displaySecurity = false;\r\n      this.showEmailMismatch = result.showEmailMismatch;\r\n    }\r\n  }\r\n}\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main\" id=\"page-content-main\">\r\n    <div *ngIf=\"!openConfirmation\">\r\n      <div class=\"container m--full-bleed\">\r\n        <div class=\"row m--full-bleed\">\r\n          <!-- <div class=\"col-3 form-display-card\">\r\n            <mat-card style=\"padding: 0px; margin-top: 10px; margin-left: 20px\">\r\n              <mat-card-header class=\"profile-nav-title\" (click)=\"goToProfileHome()\">\r\n                <mat-card-title style=\"padding: 7px 0 0 20px\">Profile & Settings</mat-card-title>\r\n              </mat-card-header>\r\n              <mat-card-content>\r\n                <div>\r\n                  <ul class=\"sidebar-nav\">\r\n                    <li>\r\n                      <a (click)=\"showDetails()\">Your Contact Details <span\r\n                          class=\"fa fa-chevron-right profile-sidenav-icon\"></span></a>\r\n                    </li>\r\n                    <li>\r\n                      <a (click)=\"showSecurity()\">Sign-in Security <span\r\n                          class=\"fa fa-chevron-right profile-sidenav-icon\"></span></a>\r\n                    </li>\r\n                    <li>\r\n                      <a (click)=\"showAccounts()\">User Account Management <span\r\n                          class=\"fa fa-chevron-right profile-sidenav-icon\"></span></a>\r\n                    </li>\r\n                  </ul>\r\n                </div>\r\n              </mat-card-content>\r\n            </mat-card>\r\n          </div> -->\r\n          <mat-tab-group [(selectedIndex)]=\"selectedTab\" animationDuration=\"0ms\" #employerProfileTabGroup>\r\n            <mat-tab label=\"Contact Details\">\r\n              <div class=\"bg-white\">\r\n                <div class=\"pa-3\">\r\n                  <h2 class=\"mb-1\">Your Contact Details</h2>\r\n                  <p class=\"c-grey6 ts-s\">Update your email, phone or address, and more.</p>\r\n                </div>\r\n                <epay-lib-employer-profile-detail *ngIf=\"displayDetails\" [baseurl]=\"baseurl\"\r\n                  (profileConfirmationEmitter)=\"displayConfirmationPage($event)\" [useEmailForLogin]=\"useEmail\">\r\n                </epay-lib-employer-profile-detail>\r\n              </div>\r\n            </mat-tab>\r\n            <mat-tab label=\"Sign-in Security\">\r\n              <div class=\"bg-white\">\r\n                <div class=\"pa-3\">\r\n                  <h2 class=\"mb-1\">Sign-in Security</h2>\r\n                  <p class=\"c-grey6 ts-s\">Update your username and password to ones that are unique to this account.</p>\r\n                </div>\r\n\r\n                <!-- <epay-lib-employer-profile-security *ngIf=\"displaySecurity\" [baseurl]=\"baseurl\"\r\n                  (profileConfirmationEmitter)=\"displayConfirmationPage($event)\" [useEmailForLogin]=\"useEmail\"\r\n                  [newEmailFromLogin]=\"newEmailFromLogin\">\r\n                </epay-lib-employer-profile-security> -->\r\n\r\n                <employer-profile-security *ngIf=\"displaySecurity\" [baseurl]=\"baseurl\"\r\n                  (profileConfirmationEmitter)=\"displayConfirmationPage($event)\" [useEmailForLogin]=\"useEmail\"\r\n                  [newEmailFromLogin]=\"newEmailFromLogin\">\r\n                </employer-profile-security>\r\n\r\n              </div>\r\n            </mat-tab>\r\n            <mat-tab label=\"Manage Users\">\r\n              <div class=\"bg-white\">\r\n                <div class=\"pa-3\">\r\n                  <h2 class=\"mb-1\">User Accounts</h2>\r\n                  <p class=\"c-grey6 ts-s\">Organize your accounts, add/edit other users, and more.</p>\r\n                </div>\r\n                <!-- <epay-lib-employer-profile-account *ngIf=\"displayAccounts\" [baseurl]=\"baseurl\"\r\n                  (profileConfirmationEmitter)=\"displayConfirmationPage($event)\" [useEmailForLogin]=\"useEmail\">\r\n                </epay-lib-employer-profile-account> -->\r\n\r\n              <employer-profile-account *ngIf=\"displayAccounts\" [baseurl]=\"baseurl\"\r\n                (profileConfirmationEmitter)=\"displayConfirmationPage($event)\" [useEmailForLogin]=\"useEmail\">\r\n              </employer-profile-account>\r\n              \r\n              </div>\r\n            </mat-tab>\r\n          </mat-tab-group>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [confirmationTitle]=\"confirmationTitle\"\r\n    [confirmationMessage]=\"confirmationMessage\" [confirmationNumber]=\"confirmationNumber\"\r\n    [showConfirmationEmail]=\"showConfirmationEmail\" [restart]=\"restart\" [goToPrimary]=\"goToPrimary\"\r\n    [goToPrimaryUrl]=\"goToPrimaryUrl\" [showEmailMismatch]=\"showEmailMismatch\">\r\n  </epay-lib-common-confirmation>\r\n</epay-page-content>\r\n","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport {\r\n  FormBuilder,\r\n  FormGroup,\r\n  Validators,\r\n  AbstractControl,\r\n  ValidatorFn,\r\n} from '@angular/forms';\r\nimport {\r\n  FormControl,\r\n  ValidationErrors,\r\n  FormGroupDirective,\r\n  NgForm,\r\n} from '@angular/forms';\r\nimport {\r\n  StepperOrientation,\r\n  STEPPER_GLOBAL_OPTIONS,\r\n} from '@angular/cdk/stepper';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { Router } from '@angular/router';\r\nimport PhoneNumber from 'awesome-phonenumber';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { IEmpSearchResults, ErrorHandlerService, CommonService, \r\n  RegisterLibraryService, PhoneHelperService, ViewportService, HelperDialogModel, HelperDialogComponent, IChallengeQuestion, ICountry, IState, CommonSettings } from 'epay-library';\r\nimport { IEmployer } from 'epay-library/lib/features/employer/models/employer/employer';\r\nimport { IEmpBankAccount } from 'epay-library/lib/features/employer/models/employer/employerBackAccount';\r\nimport { IEmpLogin } from 'epay-library/lib/features/employer/models/user/employerLogin';\r\nimport { IEmpPerson } from 'epay-library/lib/features/employer/models/user/employerPerson';\r\nimport { IEmpUser } from 'epay-library/lib/features/employer/models/user/employerUser';\r\nimport { EmployerService } from '../../services/employer.service';\r\nimport { Location } from '@angular/common';\r\nimport { ErrorDialogComponent, ErrorHandlerDialogModel } from 'src/app/helpers/components/error-dialog/error-dialog.component';\r\n\r\n@Component({\r\n  selector: 'epay-employer-register',\r\n  templateUrl: './employer.register.component.html',\r\n})\r\nexport class EMPRegisterComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n  @Input() termsContent = '';\r\n  @Input() loginHelp = '';\r\n  @Input() canCreateNewEmployer = false;\r\n  @Input() useEmailForLogin = false;\r\n  @Input() allowEINSearch = false;\r\n\r\n  @ViewChild('stepper') myStepper!: MatStepper;\r\n\r\n  pagetitle = \"Employer: Create Account\";\r\n\r\n  useEmailAsUsername = false;\r\n  validatingEmployer = false;\r\n  empOnHold = false;\r\n  empSelected = false;\r\n\r\n  stepperOrientation: StepperOrientation = 'horizontal';\r\n\r\n  errorMatcher = new CrossFieldErrorMatcher();\r\n  termsFrmGp: FormGroup = new FormGroup({});\r\n  searchFrmGrp: FormGroup = new FormGroup({});\r\n  selectedEmployerFrmGp: FormGroup = new FormGroup({});\r\n  createEmployerFrmGp: FormGroup = new FormGroup({});\r\n  demographicFrmGp: FormGroup = new FormGroup({});\r\n  loginFrmGp: FormGroup = new FormGroup({});\r\n  reviewFrmGrp: FormGroup = new FormGroup({});\r\n  employer: IEmployer = {} as IEmployer;\r\n  empuser: IEmpUser = {} as IEmpUser;\r\n  emplogin: IEmpLogin = {} as IEmpLogin;\r\n  empperson: IEmpPerson = {} as IEmpPerson;\r\n  emppaymentaccount: IEmpBankAccount = {} as IEmpBankAccount;\r\n  countries: ICountry[];\r\n  selectedCountry = '';\r\n  states: IState[];\r\n  selectedState = '';\r\n  empsearchresults: IEmpSearchResults[];\r\n  selectedEmployer: IEmpSearchResults = {} as IEmpSearchResults;\r\n  questions: IChallengeQuestion[];\r\n  errorMessage = '';\r\n  searchErrorMessage = '';\r\n  displayedColumns = ['Select', 'Name', 'Address', 'City', 'State', 'Zip'];\r\n  phonePattern = /^((\\\\+91-?)|0)?[0-9]{10}$/;\r\n  loginPattern =\r\n    /(?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*/;\r\n  // loginPattern = /^[a-zA-Z0-9.@]*$/;\r\n\r\n  passwordPattern = /(?=^[A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\d]{8,12}$)(?=(.*[A-Za-z]){6})(?=(.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]){1})(?=(.*\\d){2})^.*/;\r\n\r\n  zipPattern = /^[0-9]{5}$/;\r\n  emailPattern = /\\S+@\\S+\\.\\S+/;\r\n  // einPattern =\r\n  //   /^([07][1-7]|1[0-6]|2[0-7]|[35][0-9]|[468][0-8]|9[0-589])-?\\d{7}$/;\r\n  einPattern = /^[0-9]{9}$/\r\n\r\n  empsearchname = '';\r\n  empsearchein = '';\r\n  selectedEmployerId = '';\r\n  selectedEmployerDataSource = '';\r\n  emailErrorMessage = '';\r\n  emailSuccessMessage = '';\r\n  einErrorMessage = '';\r\n  einSuccessMessage = '';\r\n  loginErrorMessage = '';\r\n  loginSuccessMessage = '';\r\n  selectedUsername = '';\r\n  passwordErrorMessage = '';\r\n  password2ErrorMessage = '';\r\n  selectedPassword = '';\r\n  loginHintMessage =\r\n    'Must contain at least 8 characters. Alphanumerical values and email format are accepted.';\r\n\r\n  passwordHintMessage = 'Must contain at least 6 letters, 2 numbers, and at least one special character with a maximum of 12 characters.';\r\n  selectedChallengeQuestion = '';\r\n\r\n  isTermsContentRead = false;\r\n  isValidEmail = false;\r\n  isCheckingEmail = false;\r\n  isValidLogin = false;\r\n  isCheckingLogin = false;\r\n  isValidEin = false;\r\n  isCheckingEin = false;\r\n  passwordHide = true;\r\n  confirmpasswordHide = true;\r\n  isSearching = false;\r\n  hasSearched = false;\r\n  isTermsSubmitted = false;\r\n  isEmpSearchSubmitted = false;\r\n  showCreateEmp = false;\r\n  employerCreatedSuccessfully = false;\r\n  displayAddEmployerButton = true;\r\n  employerCreatedMessage = '';\r\n\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationEmailAddress = '';\r\n  confirmationNumber = '';\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n  openConfirmation = false;\r\n\r\n  showDialogHelp = false;\r\n\r\n  phoneExample = '';\r\n  phoneMask = '';\r\n  cellExample = '';\r\n  cellMask = '';\r\n\r\n  searchMessage = '';\r\n\r\n  dialogData: any;\r\n  dialogRef: any;\r\n  deleteResult = '';\r\n\r\n  validationEmailMessages: { [key: string]: string } = {\r\n    required: 'Required.',\r\n    pattern: 'Please enter a valid email address.',\r\n    isDuplicate: 'Registration already exist for this email.',\r\n  };\r\n\r\n  validationEinMessages: { [key: string]: string } = {\r\n    required: 'Required.',\r\n    pattern: 'Please enter a valid EIN.',\r\n    isDuplicate: 'Registration already exist for this EIN.',\r\n  };\r\n\r\n  validationLoginIdMessages: { [key: string]: string } = {\r\n    required: 'Username is required.',\r\n    pattern:\r\n    'Invalid Username.  Must contain at least 6 letters and 2 numbers with no special characters or must match the provided email (in previous step) if using email.',\r\n    minlength: 'Invalid Username.  Must contain at least 8 characters.',\r\n    isDuplicate: 'Username is not available for use.',\r\n    isSameAsPassword: 'Invalid Username.  Username cannot be same as password.',\r\n    emailMismatch: 'Username must match the provided email (in previous step) if using email format.'\r\n  };\r\n\r\n  validationPasswordMessages: { [key: string]: string } = {\r\n    required: 'Password is required.',\r\n    pattern:\r\n      'Invalid Password.  Must contain at least 6 letters, 2 numbers, and one special character with a maximum of 12 characters.',\r\n    isSameAsLogin: 'Invalid Password.  Password cannot be same as username.',\r\n  };\r\n\r\n  validationMessages: { [key: string]: string } = {\r\n    required: 'Required',\r\n    pattern: 'Invalid format.',\r\n  };\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private commonService: CommonService,\r\n    private registerService: RegisterLibraryService,\r\n    public snackbar: MatSnackBar,\r\n    public dialog: MatDialog,\r\n    private phoneHelperService: PhoneHelperService,\r\n    private viewpointService: ViewportService,\r\n    private employerService: EmployerService,\r\n    private location: Location\r\n  ) {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.canCreateNewEmployer = CommonSettings.CanCreateNewEmployer;\r\n    this.useEmailForLogin = CommonSettings.UseEmailForLogin;\r\n    this.allowEINSearch = CommonSettings.AllowEINSearch;\r\n\r\n    this.states = [];\r\n    this.countries = [];\r\n    this.questions = [];\r\n    this.empsearchresults = [];\r\n    this.selectedCountry = 'US';\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.employerService.getEmployerTerms().subscribe((result: any) => {\r\n      this.termsContent = result;\r\n    });\r\n    this.employerService.getLoginHelp().subscribe((result: any) => {\r\n      this.loginHelp = result;\r\n    });\r\n\r\n    this.loadFormGroups();\r\n    this.getCountries();\r\n    this.getStates();\r\n    this.getChallengeQuestions();\r\n    this.empsearchname = '';\r\n    this.empsearchein = '';\r\n    this.selectedEmployerId = '';\r\n    this.selectedEmployerDataSource = '';\r\n\r\n    this.searchMessage = this.allowEINSearch\r\n      ? 'Please enter your employer name or EIN number to search for your company.'\r\n      : 'Please enter your employer name to search for your company.';\r\n\r\n    this.viewpointService.StepperOrient.subscribe(\r\n      (orient) => (this.stepperOrientation = orient)\r\n    );\r\n\r\n    const emailCtrl = this.demographicFrmGp.get('email')!;\r\n    const phoneCtrl = this.demographicFrmGp.get('phoneGp.phoneNumber')!;\r\n    const cellCtrl = this.demographicFrmGp.get('cellGp.cellNumber')!;\r\n    const countryCtrl = this.demographicFrmGp.get('country')!;\r\n    const loginCtrl = this.loginFrmGp.get('loginId')!;\r\n    const passwrd1Ctrl = this.loginFrmGp.get('passwordGp.password1')!;\r\n    const einCtrl = this.createEmployerFrmGp.get('ein')!;\r\n\r\n    einCtrl.valueChanges\r\n      .pipe(debounceTime(500))\r\n      .subscribe((ein: any) => this.setEinMessage(einCtrl, ein));\r\n\r\n    emailCtrl.valueChanges\r\n      .pipe(debounceTime(500))\r\n      .subscribe((email: any) => this.setEmailMessage(emailCtrl, email));\r\n\r\n    loginCtrl.valueChanges\r\n    .pipe(debounceTime(500))\r\n    .subscribe((username: any) => {\r\n      this.setLoginMessage(loginCtrl, username);\r\n    });\r\n\r\n    passwrd1Ctrl.valueChanges\r\n      .pipe(debounceTime(500))\r\n      .subscribe((passwrd: any) =>\r\n        this.setPasswordMessage(passwrd1Ctrl, passwrd)\r\n      );\r\n\r\n    phoneCtrl.valueChanges.pipe(debounceTime(500)).subscribe((value: any) => {\r\n      if (value) {\r\n        const pn = new PhoneNumber(\r\n          value,\r\n          this.demographicFrmGp.get('phoneGp.regionCode')!.value\r\n        );\r\n        this.demographicFrmGp.get('phoneGp')!.patchValue({\r\n          isValid: pn.isPossible(),\r\n        });\r\n      }\r\n    });\r\n\r\n    cellCtrl.valueChanges.pipe(debounceTime(500)).subscribe((value: any) => {\r\n      if (value) {\r\n        const pn = new PhoneNumber(\r\n          value,\r\n          this.demographicFrmGp.get('cellGp.regionCode')!.value\r\n        );\r\n        this.demographicFrmGp.get('cellGp')!.patchValue({\r\n          isValid: pn.isPossible(),\r\n        });\r\n      }\r\n    });\r\n\r\n    countryCtrl.valueChanges.subscribe((value: any) => {\r\n      if (value) {\r\n        this.setMaskAndExample(value);\r\n        this.demographicFrmGp.get('phoneGp')!.patchValue({\r\n          regionCode: value,\r\n          countryCode:\r\n            this.phoneHelperService.getCountryCodeForRegionCode(value),\r\n          phoneNumber: '',\r\n          isValid: false,\r\n        });\r\n        this.demographicFrmGp.get('cellGp')!.patchValue({\r\n          regionCode: value,\r\n          countryCode:\r\n            this.phoneHelperService.getCountryCodeForRegionCode(value),\r\n          cellNumber: '',\r\n          isValid: false,\r\n        });\r\n        this.demographicFrmGp.patchValue({\r\n          state: '',\r\n          zip5: '',\r\n        });\r\n        if (value === 'US') {\r\n          this.demographicFrmGp\r\n            .get('zip5')!\r\n            .setValidators([\r\n              Validators.required,\r\n              Validators.pattern(this.zipPattern),\r\n            ]);\r\n          this.demographicFrmGp.get('zip5')!.updateValueAndValidity();\r\n          this.createEmployerFrmGp\r\n            .get('zip5')!\r\n            .setValidators([\r\n              Validators.required,\r\n              Validators.pattern(this.zipPattern),\r\n            ]);\r\n          this.createEmployerFrmGp.get('zip5')!.updateValueAndValidity();\r\n        } else {\r\n          this.demographicFrmGp\r\n            .get('zip5')!\r\n            .setValidators([Validators.required, Validators.maxLength(6)]);\r\n          this.demographicFrmGp.get('zip5')!.updateValueAndValidity();\r\n          this.createEmployerFrmGp\r\n            .get('zip5')!\r\n            .setValidators([Validators.required, Validators.maxLength(6)]);\r\n          this.createEmployerFrmGp.get('zip5')!.updateValueAndValidity();\r\n        }\r\n        if (value === 'US' || value === 'MX' || value === 'CA') {\r\n          this.selectedCountry = value;\r\n          this.demographicFrmGp.get('state')!.enable();\r\n          this.demographicFrmGp.get('state')!.setErrors({ required: true });\r\n          this.demographicFrmGp.updateValueAndValidity();\r\n          this.getStates();\r\n        } else {\r\n          this.demographicFrmGp.get('state')!.disable();\r\n          this.demographicFrmGp.get('state')!.setErrors({ required: false });\r\n          this.demographicFrmGp.updateValueAndValidity();\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  stringify(json: any): string {\r\n    return JSON.stringify(json, null, 2);\r\n  }\r\n\r\n  updateUsernameValidation(loginId: any) {\r\n    var username = loginId.target.value\r\n\r\n    this.loginFrmGp.get('loginId')!.clearValidators();\r\n    this.loginFrmGp.get('loginId')!.updateValueAndValidity();\r\n\r\n    if (username.indexOf('@') !== -1 || username.indexOf('.') !== -1) {\r\n      //console.log(\"USERNAME IS EMAIL FORMAT\");\r\n      this.useEmailAsUsername = true;\r\n\r\n      this.loginFrmGp.get('loginId')!.clearValidators();\r\n      this.loginFrmGp.get('loginId')!.setValidators([\r\n          Validators.required,\r\n          Validators.minLength(8),\r\n          Validators.pattern(this.emailPattern),\r\n      ]);\r\n      this.loginFrmGp.get('loginId')!.updateValueAndValidity();\r\n    }\r\n    else {\r\n      //console.log(\"USERNAME IS LOGIN FORMAT\");\r\n      this.useEmailAsUsername = false;\r\n\r\n      this.loginFrmGp.get('loginId')!.clearValidators();\r\n      this.loginFrmGp.get('loginId')!.setValidators([\r\n          Validators.required,\r\n          Validators.minLength(8),\r\n          Validators.maxLength(12),\r\n          Validators.pattern(this.loginPattern),\r\n      ]);\r\n      this.loginFrmGp.get('loginId')!.updateValueAndValidity();\r\n    }\r\n  }\r\n\r\n  Search() {\r\n    this.searchErrorMessage = '';\r\n    this.selectedEmployerId = '';\r\n    this.selectedEmployerDataSource = '';\r\n    this.selectedEmployer = {} as IEmpSearchResults;\r\n    this.selectedEmployerFrmGp.patchValue({ empselected: '' });\r\n    this.selectedEmployerFrmGp\r\n      .get('empselected')!\r\n      .setValidators(Validators.requiredTrue);\r\n    this.selectedEmployerFrmGp.get('empselected')!.updateValueAndValidity();\r\n    this.isSearching = true;\r\n\r\n    this.employerService\r\n      .getEmployers(\r\n        this.baseurl,\r\n        this.searchFrmGrp.get('empname')!.value,\r\n        this.searchFrmGrp.get('empein')!.value,\r\n        true,\r\n        false\r\n      )\r\n      .subscribe({\r\n        next: (employers) => {\r\n          this.empsearchresults = employers;\r\n          this.hasSearched = true;\r\n          if (\r\n            this.empsearchresults.length === 0 &&\r\n            !this.canCreateNewEmployer\r\n          ) {\r\n            this.searchErrorMessage = `No results found. Please review and minimize search criteria to broaden search results.\r\n                                      If you cannot find your business, please contact the state.`;\r\n          } else if (\r\n            this.empsearchresults.length === 0 &&\r\n            this.canCreateNewEmployer\r\n          ) {\r\n            this.searchErrorMessage = `No results found. Please review and minimize search criteria to broaden search results.\r\n                                      If you cannot find your business, see the link below to Register a New Company.`;\r\n          }\r\n        },\r\n        error: (error: any) => {\r\n          this.hasSearched = false;\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        },\r\n        complete: () => {\r\n          this.isSearching = false;\r\n          this.hasSearched = true;\r\n        },\r\n      });\r\n  }\r\n\r\n  ClearSearch() {\r\n    this.searchFrmGrp.get('empein')!.reset()\r\n\r\n    this.hasSearched = false;\r\n    this.selectedEmployerId = '';\r\n    this.selectedEmployerDataSource = '';\r\n    this.selectedEmployer = {} as IEmpSearchResults;\r\n    this.empsearchresults = [];\r\n    this.searchErrorMessage = '';\r\n    this.searchFrmGrp.patchValue({\r\n      empein: '',\r\n      empname: '',\r\n    });\r\n    this.selectedEmployerFrmGp.patchValue({\r\n      empselected: '',\r\n    });\r\n  }\r\n\r\n  displayCreateEmployer(stepper: MatStepper) {\r\n    this.selectedEmployerFrmGp.patchValue({ empselected: '' });\r\n    this.selectedEmployerFrmGp.get('empselected')!.clearValidators();\r\n    this.selectedEmployerFrmGp.get('empselected')!.updateValueAndValidity();\r\n    this.showCreateEmp = true;\r\n    stepper.next();\r\n  }\r\n\r\n  createNewEmployer() {\r\n    if (this.createEmployerFrmGp.valid) {\r\n      if (this.createEmployerFrmGp.dirty) {\r\n        this.employer.employerName =\r\n          this.createEmployerFrmGp.get('empName')!.value;\r\n        this.employer.ein = this.createEmployerFrmGp.get('ein')!.value;\r\n        this.employer.addressLine1 =\r\n          this.createEmployerFrmGp.get('address1')!.value;\r\n        this.employer.addressLine2 =\r\n          this.createEmployerFrmGp.get('address2')!.value;\r\n        this.employer.city = this.createEmployerFrmGp.get('city')!.value;\r\n        this.employer.state = this.createEmployerFrmGp.get('state')!.value;\r\n        this.employer.zip5 = this.createEmployerFrmGp.get('zip5')!.value;\r\n        this.employer.country = this.createEmployerFrmGp.get('country')!.value;\r\n      }\r\n    }\r\n    this.registerService.addNewEmployer(this.baseurl, this.employer).subscribe(\r\n      (response: any) => {\r\n        //console.log(\"RES \", response)\r\n\r\n        this.selectedEmployer.addressCity = this.employer.city;\r\n        this.selectedEmployer.addressLine1 = this.employer.addressLine1;\r\n        this.selectedEmployer.addressLine2 = this.employer.addressLine2;\r\n        this.selectedEmployer.addressState = this.employer.state;\r\n        this.selectedEmployer.addressZip5 = this.employer.zip5;\r\n        this.selectedEmployer.hasAccount = false;\r\n        this.selectedEmployer.hasHold = false;\r\n        this.selectedEmployer.isSelected = true;\r\n\r\n        this.selectedEmployer.thirdPartyID = response.thirdPartyId;\r\n        this.selectedEmployer.thirdPartyName = this.employer.employerName;\r\n\r\n        this.selectedEmployerId = response.thirdPartyId;\r\n        this.selectedEmployerDataSource = response.thirdPartyDataSource;\r\n\r\n        this.employer.thirdPartyId = response.thirdPartyId;\r\n        this.employer.thirdPartyDataSource = response.thirdPartyDataSource;\r\n        this.employer.ein = response.ein;\r\n\r\n        this.employerCreatedSuccessfully = true;\r\n        this.employerCreatedMessage =\r\n          'New employer created! Click Next to continue.';\r\n        this.displayAddEmployerButton = false;\r\n      },\r\n      (error: any) => {\r\n        this.displayAddEmployerButton = true;\r\n        this.employerCreatedSuccessfully = false;\r\n        this.employerCreatedMessage = '';\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      }\r\n    );\r\n  }\r\n\r\n  createAccount() {\r\n    let demoData;\r\n    let loginData;\r\n\r\n    if (this.demographicFrmGp.valid) {\r\n      if (this.demographicFrmGp.dirty) {\r\n        this.empperson.thirdPartyId = this.selectedEmployerId;\r\n        this.empperson.thirdPartyDataSource = this.selectedEmployerDataSource;\r\n        this.empperson.isElectronicStatement = false;\r\n        demoData = { ...this.empperson, ...this.demographicFrmGp.value };\r\n        if (demoData.state === undefined || demoData.state === null) {\r\n          demoData.state = '';\r\n        }\r\n        demoData.phone = this.demographicFrmGp.get(\r\n          'phoneGp.phoneNumber'\r\n        )!.value;\r\n        if (this.demographicFrmGp.get('cellGp.cellNumber')!.value.length > 0) {\r\n          demoData.cell = this.demographicFrmGp.get('cellGp.cellNumber')!.value;\r\n        } else {\r\n          demoData.cell = '';\r\n        }\r\n        this.empuser.empStep1Validated = true;\r\n      }\r\n    }\r\n\r\n    if (this.loginFrmGp.valid) {\r\n      if (this.loginFrmGp.dirty) {\r\n        loginData = { ...this.emplogin, ...this.loginFrmGp.value };\r\n        loginData.loginId = this.useEmailForLogin\r\n          ? this.demographicFrmGp.get('email')!.value\r\n          : this.loginFrmGp.get('loginId')!.value;\r\n        loginData.password1 = this.loginFrmGp.get(\r\n          'passwordGp.password1'\r\n        )!.value;\r\n        loginData.password2 = this.loginFrmGp.get(\r\n          'passwordGp.password2'\r\n        )!.value;\r\n        this.empuser.empStep2Validated = true;\r\n      }\r\n    }\r\n    this.emppaymentaccount.account1 = '';\r\n    this.emppaymentaccount.account2 = '';\r\n    this.emppaymentaccount.routing1 = '';\r\n    this.emppaymentaccount.routing2 = '';\r\n    this.emppaymentaccount.bankName = '';\r\n    this.emppaymentaccount.accountType = '';\r\n    this.emppaymentaccount.bankNickName = '';\r\n    this.emppaymentaccount.phone = '';\r\n    this.emppaymentaccount.doNotProvide = true;\r\n\r\n    this.empuser.empStep1Validated = true;\r\n    this.empuser.empStep2Validated = true;\r\n    this.empuser.empStep3Validated = true;\r\n\r\n    this.empuser.empStep1 = demoData;\r\n    this.empuser.empStep2 = loginData;\r\n    this.empuser.empStep3 = this.emppaymentaccount;\r\n\r\n    this.registerService.addEmpAccount(this.baseurl, this.empuser).subscribe(\r\n      (response: any) => {\r\n        //console.log(\"RES: \", response)\r\n\r\n        this.confirmationTitle = 'Success';\r\n        this.confirmationMessage =\r\n          'Account for ' +\r\n          this.empuser.empStep1.firstName +\r\n          ' ' +\r\n          this.empuser.empStep1.lastName +\r\n          ' has been created.';\r\n        this.confirmationEmailAddress = this.empuser.empStep1.email;\r\n        this.confirmationNumber = response.confirmation.confirmationNumber;\r\n        this.goToPrimaryUrl = 'login';\r\n        this.goToPrimary = 'Login';\r\n        this.openConfirmation = true;\r\n        this.onSaveComplete();\r\n      },\r\n      (error: any) => {\r\n        //console.log(\"ERR: \", error)\r\n\r\n        if (!error.error.empStep1Validated || !error.error.empStep2Validated || !error.error.empStep3Validated) {\r\n          var errTitle = '';\r\n          var errMsg = '';\r\n          if (!error.error.empStep1Validated) {\r\n            errTitle += error.error.errors.step1[0].errorCode + ' (Employer Search) ';\r\n            errMsg += error.error.errors.step1[0].errorMessage + ' ';\r\n          }\r\n          if (!error.error.empStep2Validated) {\r\n            errTitle += error.error.errors.step2[0].errorCode + ' (Contact Information) ';\r\n            errMsg += error.error.errors.step2[0].errorMessage + ' ';\r\n          }\r\n          if (!error.error.empStep3Validated) {\r\n            errTitle += error.error.errors.step3[0].errorCode + ' (Login Information) ';\r\n            errMsg += error.error.errors.step3[0].errorMessage + ' ';\r\n          }\r\n\r\n          this.dialogData = new ErrorHandlerDialogModel(\r\n            \"Error Occurred: Internal Error Occurred\",\r\n            \"Error Code: \" + errTitle,\r\n            errMsg,\r\n            '',\r\n            '',\r\n            '',\r\n            true\r\n          );\r\n  \r\n          this.dialogRef = this.dialog.open(ErrorDialogComponent, {\r\n            maxWidth: '800px',\r\n            data: this.dialogData,\r\n          });\r\n\r\n          this.dialogRef.afterClosed().subscribe((dialogResult: string) => {\r\n            this.deleteResult = dialogResult;\r\n            if (this.deleteResult) {\r\n                //this.location.back();\r\n            }\r\n          });\r\n        }\r\n        else {\r\n          this.logError(error);\r\n          this.handleError(error.status);\r\n        }\r\n\r\n      }\r\n    );\r\n  }\r\n\r\n  onSaveComplete() {\r\n    this.demographicFrmGp.reset();\r\n    this.loginFrmGp.reset();\r\n    this.termsFrmGp.reset();\r\n    this.searchFrmGrp.reset();\r\n    this.reviewFrmGrp.reset();\r\n  }\r\n\r\n  addRemoveEmployer(event: any, i: number) {\r\n    this.validatingEmployer = false;\r\n    //this.isEmpSearchSubmitted = false;\r\n    this.empSelected = false;\r\n    this.empOnHold = false;\r\n\r\n    this.selectedEmployerId = '';\r\n    this.selectedEmployerDataSource = '';\r\n    if (this.canCreateNewEmployer) {\r\n      this.showCreateEmp = false;\r\n    }\r\n    this.empsearchresults.forEach((emp) => {\r\n      emp.isSelected = false;\r\n    });\r\n\r\n    if (event.target.checked) {\r\n      this.validatingEmployer = true;\r\n      this.empSelected = true;\r\n\r\n      this.selectedEmployerFrmGp\r\n        .get('empselected')!\r\n        .setValidators(Validators.requiredTrue);\r\n      this.selectedEmployerFrmGp.get('empselected')!.updateValueAndValidity();\r\n      this.empsearchresults[i].isSelected = true;\r\n      this.selectedEmployer = {\r\n        thirdPartyName: this.empsearchresults[i].thirdPartyName,\r\n        thirdPartyID: this.empsearchresults[i].thirdPartyID,\r\n        dataSource: this.empsearchresults[i].dataSource,\r\n        addressLine1: this.empsearchresults[i].addressLine1,\r\n        addressLine2: this.empsearchresults[i].addressLine2,\r\n        addressCity: this.empsearchresults[i].addressCity,\r\n        addressState: this.empsearchresults[i].addressState,\r\n        addressZip5: this.empsearchresults[i].addressZip5,\r\n        isSelected: true,\r\n        hasAccount: this.empsearchresults[i].hasAccount,\r\n        hasHold: this.empsearchresults[i].hasHold,\r\n        primaryEmailAddress: this.empsearchresults[i].primaryEmailAddress,\r\n      };\r\n      this.selectedEmployerId = this.empsearchresults[i].thirdPartyID;\r\n      this.selectedEmployerDataSource = this.empsearchresults[i].dataSource;\r\n      if (this.selectedEmployer.hasAccount) {\r\n        this.selectedEmployerFrmGp\r\n          .get('empselected')!\r\n          .setErrors({ hasAccount: true });\r\n      }\r\n      if (this.selectedEmployer.hasHold) {\r\n        this.selectedEmployerFrmGp\r\n          .get('empselected')!\r\n          .setErrors({ hasHold: true });\r\n      }\r\n    } else {\r\n      this.empsearchresults[i].isSelected = false;\r\n      this.selectedEmployer.isSelected = false;\r\n      this.selectedEmployerFrmGp\r\n        .get('empselected')!\r\n        .setErrors({ hasAccount: false });\r\n      this.selectedEmployerFrmGp\r\n        .get('empselected')!\r\n        .setErrors({ hasHold: false });\r\n    }\r\n\r\n    this.employerService\r\n    .getEmployers(\r\n      this.baseurl,\r\n      this.selectedEmployer.thirdPartyName,\r\n      this.searchFrmGrp.get('empein')!.value,\r\n      true,\r\n      true\r\n    ).subscribe({\r\n      next: (res: any) => { \r\n        console.log(\"RES: \", res)\r\n        this.validatingEmployer = false;\r\n        this.isEmpSearchSubmitted = true;\r\n\r\n        console.log(\"1 \", this.selectedEmployer?.hasAccount)\r\n        console.log(\"2 \", this.selectedEmployer?.isSelected)\r\n        console.log(\"3 \", this.isEmpSearchSubmitted)\r\n        console.log(\"4 \", this.empOnHold)\r\n\r\n        if (res.length !== 0) {\r\n          if (!res[0].hasHold) {\r\n            console.log(\"NOT ON HOLD\")\r\n            this.empOnHold = false;\r\n          }\r\n          else{\r\n            console.log(\"HAS HOLD\")\r\n            this.empOnHold = true;\r\n          }\r\n        }\r\n      },\r\n      error: (error: any) => {\r\n        this.hasSearched = false;\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  challengeQuestionChangeEvent() {\r\n    const q: IChallengeQuestion[] = this.questions.filter(\r\n      (question) =>\r\n        question.index ===\r\n        this.loginFrmGp.get('authenticationQuestionIndex')!.value\r\n    );\r\n    this.selectedChallengeQuestion = q[0].name;\r\n  }\r\n\r\n  getChallengeQuestions() {\r\n    this.registerService.getChallengeQuestions(this.baseurl).subscribe({\r\n      next: (questions) => (this.questions = questions),\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  getCountries() {\r\n    this.commonService.getCountries(this.baseurl).subscribe({\r\n      next: (countries: any) => {\r\n        this.countries = countries;\r\n        this.countries = this.countries.sort((a, b) =>\r\n          a.countryName < b.countryName ? 1 : -1\r\n        );\r\n        this.countries.push({\r\n          country: 'MX',\r\n          countryName: 'Mexico',\r\n          alpha3IsoCode: 'MEX',\r\n          numeric3IsoCode: '484',\r\n        });\r\n        this.countries.push({\r\n          country: 'CA',\r\n          countryName: 'Canada',\r\n          alpha3IsoCode: 'CAN',\r\n          numeric3IsoCode: '124',\r\n        });\r\n        this.countries.push({\r\n          country: 'US',\r\n          countryName: 'United States',\r\n          alpha3IsoCode: 'USA',\r\n          numeric3IsoCode: '840',\r\n        });\r\n        this.countries.reverse();\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  getStates() {\r\n    this.selectedCountry = this.demographicFrmGp.get('country')!.value;\r\n    this.commonService.getStates(this.baseurl, this.selectedCountry).subscribe({\r\n      next: (states) => (this.states = states),\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.termsFrmGp = this.formbuilder.group({\r\n      accepted: ['', Validators.requiredTrue],\r\n    });\r\n\r\n    this.searchFrmGrp = this.formbuilder.group({\r\n      empname: '',\r\n      empein: '',\r\n    });\r\n\r\n    this.selectedEmployerFrmGp = this.formbuilder.group({\r\n      empselected: ['', Validators.requiredTrue],\r\n    });\r\n\r\n    this.searchFrmGrp.setValidators([\r\n      this.oneOfControlRequired(\r\n        this.searchFrmGrp.get('empname')!,\r\n        this.searchFrmGrp.get('empein')!\r\n      ),\r\n    ]);\r\n\r\n    this.createEmployerFrmGp = this.formbuilder.group({\r\n      empName: ['', Validators.required],\r\n      ein: ['', [Validators.required, Validators.pattern(this.einPattern)]],\r\n      address1: ['', Validators.required],\r\n      address2: [''],\r\n      city: ['', Validators.required],\r\n      state: ['', Validators.required],\r\n      zip5: ['', [Validators.required, Validators.pattern(this.zipPattern)]],\r\n      country: ['', Validators.required],\r\n    });\r\n\r\n    this.demographicFrmGp = this.formbuilder.group({\r\n      firstName: ['', Validators.required],\r\n      middleName: '',\r\n      lastName: ['', Validators.required],\r\n      title: '',\r\n      suffix: '',\r\n      address1: ['', Validators.required],\r\n      address2: '',\r\n      address3: '',\r\n      address4: '',\r\n      city: ['', Validators.required],\r\n      state: ['', Validators.required],\r\n      zip5: ['', [Validators.required, Validators.pattern(this.zipPattern)]],\r\n      zip4: '',\r\n      country: ['', Validators.required],\r\n      phoneExtension: '',\r\n      email: ['', [Validators.required, Validators.pattern(this.emailPattern)]],\r\n      county: '',\r\n      fax: '',\r\n      ein: '',\r\n      sein: '',\r\n      relationId: '',\r\n      phoneGp: this.formbuilder.group({\r\n        regionCode: 'US',\r\n        phoneNumber: ['', [Validators.required]],\r\n        countryCode: '1',\r\n        isValid: [false, Validators.requiredTrue],\r\n      }),\r\n      cellGp: this.formbuilder.group({\r\n        regionCode: 'US',\r\n        cellNumber: [''],\r\n        countryCode: '1',\r\n        isValid: false,\r\n      }),\r\n    });\r\n\r\n    this.setMaskAndExample('US');\r\n    // set default country to US\r\n    this.demographicFrmGp.patchValue({\r\n      country: 'US',\r\n    });\r\n\r\n    this.loginFrmGp = this.formbuilder.group({\r\n      loginId: [\r\n        '',\r\n        this.useEmailForLogin\r\n          ? ''\r\n          : [\r\n              Validators.required,\r\n              Validators.minLength(8),\r\n              //Validators.maxLength(12),\r\n              Validators.pattern(this.loginPattern),\r\n            ],\r\n      ],\r\n      userName: '',\r\n      passwordGp: this.formbuilder.group(\r\n        {\r\n          password1: [\r\n            '',\r\n            [Validators.required, Validators.pattern(this.passwordPattern)],\r\n          ],\r\n          password2: [\r\n            '',\r\n            [Validators.required],\r\n          ],\r\n        },\r\n        { validators: passwordMatcher }\r\n      ),\r\n      challengeAnswer: ['', Validators.required],\r\n      authenticationQuestionIndex: ['', Validators.required],\r\n      authenticationCaption: '',\r\n      authenticationImageIndex: 0,\r\n    });\r\n\r\n    this.reviewFrmGrp = this.formbuilder.group({});\r\n  }\r\n\r\n  checkReading() {}\r\n\r\n  submitTerms() {\r\n    this.isTermsSubmitted = true;\r\n  }\r\n\r\n  submitEmployer() {\r\n    console.log(\"SUBMIT EMP HIT\");\r\n\r\n    this.validatingEmployer = true;\r\n\r\n    this.employerService\r\n    .getEmployers(\r\n      this.baseurl,\r\n      this.selectedEmployer.thirdPartyName,\r\n      this.searchFrmGrp.get('empein')!.value,\r\n      true,\r\n      true\r\n    ).subscribe((res: any) => {\r\n      console.log(\"2nd search res: \", res)\r\n      this.validatingEmployer = false;\r\n\r\n      if (res.length !== 0) {\r\n        if (!res[0].hasHold) {\r\n          console.log(\"DOESNT HAVE HOLD\")\r\n          this.isEmpSearchSubmitted = true;\r\n          this.empOnHold = false;\r\n        }\r\n        else{\r\n          console.log(\"HAS HOLD\")\r\n          this.isEmpSearchSubmitted = false;\r\n          this.empOnHold = true;\r\n        }\r\n        \r\n      }\r\n    });\r\n    \r\n  }\r\n\r\n  oneOfControlRequired(...controls: AbstractControl[]): ValidatorFn {\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n      for (const aControl of controls) {\r\n        if (!Validators.required(aControl)) {\r\n          return null;\r\n        }\r\n      }\r\n      return { oneOfRequired: true };\r\n    };\r\n  }\r\n\r\n  setEmailMessage(emailControl: AbstractControl, email: any): void {\r\n    this.resetEmailCheck();\r\n    if (emailControl.touched || emailControl.dirty) {\r\n      if (!emailControl.errors) {\r\n        this.isCheckingEmail = true;\r\n        this.registerService\r\n          .searchDuplicateEmail(this.baseurl, email)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.isValidEmail = !result.isDuplicate;\r\n              if (this.isValidEmail) {\r\n                this.emailSuccessMessage = 'Email is available!';\r\n              } else {\r\n                emailControl.setErrors({ isDuplicate: true });\r\n                this.emailErrorMessage = Object.keys(emailControl.errors!)\r\n                  .map((key: any) => this.validationEmailMessages[key])\r\n                  .join(' ');\r\n                this.demographicFrmGp.updateValueAndValidity();\r\n              }\r\n              this.isCheckingEmail = false;\r\n            },\r\n            error: (error: any) => {\r\n              this.resetEmailCheck();\r\n              this.errorMessage = error as any;\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      } else {\r\n        this.emailErrorMessage = Object.keys(emailControl.errors)\r\n          .map((key) => this.validationEmailMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  setLoginMessage(loginControl: AbstractControl, loginId: any): void {\r\n    this.resetLoginCheck();\r\n    if (loginControl.touched || loginControl.dirty) {\r\n      if (this.useEmailAsUsername && loginId !== this.demographicFrmGp.get('email')!.value) {\r\n        loginControl.setErrors({ emailMismatch: true });\r\n        this.loginErrorMessage = Object.keys(loginControl.errors!)\r\n          .map((key) => this.validationLoginIdMessages[key])\r\n          .join(' ');\r\n      }\r\n\r\n      if (!loginControl.errors) {\r\n        if (loginId === this.selectedPassword) {\r\n          loginControl.setErrors({ isSameAsPassword: true });\r\n          this.loginErrorMessage = Object.keys(loginControl.errors!)\r\n            .map((key) => this.validationLoginIdMessages[key])\r\n            .join(' ');\r\n        } \r\n        else {\r\n            this.isCheckingLogin = true;\r\n            this.registerService\r\n              .searchDuplicateLogin(this.baseurl, loginId)\r\n              .subscribe({\r\n                next: (result: any) => {\r\n                  this.isValidLogin = !result.isDuplicate;\r\n                  if (this.isValidLogin) {\r\n                    this.loginSuccessMessage = 'Username is available!';\r\n                    this.selectedUsername = loginId;\r\n                  } else {\r\n                    loginControl.setErrors({ isDuplicate: true });\r\n                    this.loginErrorMessage = Object.keys(loginControl.errors!)\r\n                      .map((key) => this.validationLoginIdMessages[key])\r\n                      .join(' ');\r\n                    this.loginFrmGp.updateValueAndValidity();\r\n                  }\r\n                  this.isCheckingLogin = false;\r\n                },\r\n                error: (error: any) => {\r\n                  this.resetLoginCheck();\r\n                  this.errorMessage = error as any;\r\n                  this.logError(error);\r\n                  this.handleError(error.status);\r\n                },\r\n              });\r\n            }\r\n      } else {\r\n        this.loginErrorMessage = Object.keys(loginControl.errors)\r\n          .map((key) => this.validationLoginIdMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  setPasswordMessage(passwordControl: AbstractControl, passwrd: any): void {\r\n    this.passwordErrorMessage = '';\r\n    if (\r\n      passwordControl.touched ||\r\n      passwordControl.dirty ||\r\n      this.loginFrmGp.invalid\r\n    ) {\r\n      if (!passwordControl.errors) {\r\n        if (this.selectedUsername === passwrd) {\r\n          passwordControl.setErrors({ isSameAsLogin: true });\r\n          this.passwordErrorMessage = Object.keys(passwordControl.errors!)\r\n            .map((key) => this.validationPasswordMessages[key])\r\n            .join(' ');\r\n        }\r\n      } else {\r\n        this.passwordErrorMessage = Object.keys(passwordControl.errors)\r\n          .map((key) => this.validationPasswordMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  setEinMessage(einControl: AbstractControl, ein: any): void {\r\n    this.resetEinCheck();\r\n    if (einControl.touched || einControl.dirty) {\r\n      if (!einControl.errors) {\r\n        this.isCheckingEin = true;\r\n        this.registerService.searchDuplicateEin(this.baseurl, ein).subscribe({\r\n          next: (result: any) => {\r\n            this.isValidEin = !result.isDuplicate;\r\n            if (this.isValidEin) {\r\n              this.einSuccessMessage = 'EIN is valid!';\r\n            } else {\r\n              einControl.setErrors({ isDuplicate: true });\r\n              this.einErrorMessage = Object.keys(einControl.errors!)\r\n                .map((key) => this.validationEinMessages[key])\r\n                .join(' ');\r\n              this.createEmployerFrmGp.updateValueAndValidity();\r\n            }\r\n            this.isCheckingEin = false;\r\n          },\r\n          error: (error: any) => {\r\n            this.resetEinCheck();\r\n            this.errorMessage = error as any;\r\n            this.logError(error);\r\n            this.handleError(error.status);\r\n          },\r\n        });\r\n      } else {\r\n        this.einErrorMessage = Object.keys(einControl.errors)\r\n          .map((key) => this.validationEinMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  getNewEmpErrorMessage(name: any): string {\r\n    let message = '';\r\n    const fieldControl = this.createEmployerFrmGp.get(name);\r\n    if (\r\n      fieldControl!.touched ||\r\n      fieldControl!.dirty ||\r\n      this.demographicFrmGp.invalid\r\n    ) {\r\n      if (fieldControl!.hasError('required')) {\r\n        message = 'Required';\r\n      } else {\r\n        message = 'Invalid Format';\r\n      }\r\n    }\r\n    return message;\r\n  }\r\n\r\n  getDemographicErrorMessage(name: any): string {\r\n    let message = '';\r\n    const fieldControl = this.demographicFrmGp.get(name);\r\n    if (\r\n      fieldControl!.touched ||\r\n      fieldControl!.dirty ||\r\n      this.demographicFrmGp.invalid\r\n    ) {\r\n      if (fieldControl!.hasError('required')) {\r\n        message = 'Required';\r\n      } else {\r\n        message = 'Invalid Format';\r\n      }\r\n    }\r\n    return message;\r\n  }\r\n\r\n  togglePasswordHide() {\r\n    this.passwordHide = !this.passwordHide;\r\n  }\r\n\r\n  toggleConfirmPasswordHide() {\r\n    this.confirmpasswordHide = !this.confirmpasswordHide;\r\n  }\r\n\r\n  resetEmailCheck() {\r\n    this.isValidEmail = false;\r\n    this.isCheckingEmail = false;\r\n    this.emailSuccessMessage = '';\r\n    this.emailErrorMessage = '';\r\n  }\r\n\r\n  resetEinCheck() {\r\n    this.isValidEmail = false;\r\n    this.isCheckingEmail = false;\r\n    this.emailSuccessMessage = '';\r\n    this.emailErrorMessage = '';\r\n  }\r\n\r\n  resetLoginCheck() {\r\n    this.isValidLogin = false;\r\n    this.isCheckingLogin = false;\r\n    this.loginSuccessMessage = '';\r\n    this.loginErrorMessage = '';\r\n    this.selectedUsername = '';\r\n  }\r\n\r\n  setMaskAndExample(regionCode: string) {\r\n    this.phoneExample = this.phoneHelperService.getExample(regionCode);\r\n    this.phoneMask = this.phoneHelperService.getMask(regionCode);\r\n    this.cellExample = this.phoneHelperService.getExample(regionCode);\r\n    this.cellMask = this.phoneHelperService.getMask(regionCode);\r\n  }\r\n\r\n  goToMainHome() {\r\n    this.router.navigate(['home']);\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  displayLoginHelp() {\r\n    const imagePath = '';\r\n    const dialogData = new HelperDialogModel(\r\n      'Login Information Help',\r\n      this.loginHelp,\r\n      imagePath\r\n    );\r\n\r\n    const dialogRef = this.dialog.open(HelperDialogComponent, {\r\n      maxWidth: '1000px',\r\n      data: dialogData,\r\n    });\r\n\r\n    dialogRef.afterClosed().subscribe({\r\n      next: (dialogResult) => (this.showDialogHelp = false),\r\n    });\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}\r\n\r\nfunction passwordMatcher(\r\n  c: AbstractControl\r\n): { [key: string]: boolean } | null {\r\n  const password1Ctrl = c.get('password1');\r\n  const password2Ctrl = c.get('password2');\r\n  if (password1Ctrl === null || password2Ctrl === null) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.pristine || password2Ctrl.pristine) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.value === password2Ctrl.value) {\r\n    return null;\r\n  }\r\n  return { doNotMatch: true };\r\n}\r\n\r\n/** Error when the parent is invalid */\r\nclass CrossFieldErrorMatcher implements ErrorStateMatcher {\r\n  isErrorState(\r\n    control: FormControl | null,\r\n    form: FormGroupDirective | NgForm | null\r\n  ): boolean {\r\n    if (control) {\r\n      return (control.dirty || control.touched) && control.parent!.invalid;\r\n    }\r\n    return false;\r\n  }\r\n}\r\nfunction next(value: IEmpSearchResults[]): void {\r\n  throw new Error('Function not implemented.');\r\n}\r\n\r\n","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main\" id=\"page-content-main\">\r\n    <!-- <epay-lib-employer-register [baseurl]=\"baseurl\" [termsContent]=\"termsContent\" [loginHelp]=\"loginHelp\"\r\n      [canCreateNewEmployer]=\"canCreateNewEmployer\" [useEmailForLogin]=\"useEmailForLogin\">\r\n    </epay-lib-employer-register> -->\r\n\r\n    <div *ngIf=\"!openConfirmation\">\r\n      <div class=\"stepper-panel\">\r\n        <div class=\"justify-content-center\">\r\n          <div class=\"form-panel register-form-field\">\r\n            <mat-stepper [orientation]=\"stepperOrientation\" #stepper linear=\"true\">\r\n              <!-- 1. T&C -->\r\n              <mat-step class=\"stepper-icon\" [stepControl]=\"termsFrmGp\">\r\n                <form [formGroup]=\"termsFrmGp\">\r\n                  <ng-template matStepLabel>Terms and Conditions</ng-template>\r\n                  <div>\r\n                    <div #cguContainer class=\"terms-panel\" (scroll)=\"checkReading()\" [innerHTML]=\"termsContent\">\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"pt-2 pb-2\">\r\n                    <label class=\"smart-checkbox ts-s\">\r\n                      <input type=\"checkbox\" class=\"form-check-input smart-checks checkmark\" formControlName=\"accepted\"\r\n                        required>\r\n                      <span>Accept Terms and Conditions</span>\r\n                      <span class=\"checkmark\"></span>\r\n                      <div class=\"c-red1\" *ngIf=\"isTermsSubmitted && termsFrmGp.get('accepted' )!.value !== true\">Please\r\n                        accept the terms and conditions to move forward.</div>\r\n                    </label>\r\n                  </div>\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" mat-button (click)=\"goToMainHome()\">Back</button>\r\n                    <button class=\"btn\" (click)=\"submitTerms()\" mat-button matStepperNext>Next</button>\r\n                  </div>\r\n                </form>\r\n              </mat-step>\r\n              <!-- 2. Employer Search -->\r\n              <mat-step class=\"stepper-icon\" [stepControl]=\"searchFrmGrp\">\r\n                <form [formGroup]=\"searchFrmGrp\" (ngSubmit)=\"Search()\" autocomplete=\"off\">\r\n                  <ng-template matStepLabel>Complete Employer Search</ng-template>\r\n                  <p>{{searchMessage}}</p>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Employer Name\" formControlName=\"empname\">\r\n                    </mat-form-field>\r\n                    <mat-form-field *ngIf=\"allowEINSearch\">\r\n                      <input matInput mask=\"999999999\" placeholder=\"EIN\" formControlName=\"empein\" minlength=\"9\" maxlength=\"9\">\r\n                      <mat-hint><strong>Ex: 123456789</strong></mat-hint>\r\n                      <mat-error *ngIf=\"searchFrmGrp.get('empein')!.value && \r\n                      searchFrmGrp.get('empein')!.value?.length !== 9\">EIN must be 9 digits. (Ex: 123456789)</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" type=\"reset\" mat-button (click)=\"ClearSearch()\">Clear</button>\r\n                    <button [disabled]=\"searchFrmGrp.get('empein')!.value && searchFrmGrp.get('empein')!.value?.length < 9\" \r\n                    class=\"btn btn-submit\" type=\"submit\">Search</button>\r\n                  </div>\r\n                </form>\r\n                <form [formGroup]=\"selectedEmployerFrmGp\" (ngSubmit)=\"submitEmployer()\">\r\n                  <div class=\"pt-2 pb-2\">\r\n                    <span *ngIf=\"isSearching\">\r\n                      <i class=\"fa fa-refresh fa-spin fa-2x fa-fw mt-4\"></i>\r\n                    </span>\r\n                    <div *ngIf=\"empsearchresults && empsearchresults?.length; else noresults\">\r\n                      <h4>Select Employer</h4>\r\n                      <div class=\"search-result-panel mt-3\">\r\n                        <table class=\"table\">\r\n                          <thead>\r\n                            <tr>\r\n                              <th *ngFor=\"let col of displayedColumns\">{{col}}</th>\r\n                            </tr>\r\n                          </thead>\r\n                          <tbody>\r\n                            <tr *ngFor=\"let emp of empsearchresults; let i = index\" [class.active]='emp.isSelected'>\r\n                              <td>\r\n                                <label class=\"smart-checkbox\">\r\n                                  <input type=\"checkbox\" (change)=\"addRemoveEmployer($event, i)\" [checked]=emp.isSelected\r\n                                    formControlName=\"empselected\">\r\n                                  <span class=\"checkmark\"></span>\r\n                                </label>\r\n                              </td>\r\n                              <td>{{emp.thirdPartyName}}</td>\r\n                              <td>{{emp.addressLine1}} {{emp.addressLine2}}</td>\r\n                              <td>{{emp.addressCity }}</td>\r\n                              <td>{{emp.addressState}}</td>\r\n                              <td>{{emp.addressZip5}}</td>\r\n                            </tr>\r\n                          </tbody>\r\n                        </table>\r\n                      </div>\r\n                      <div class=\"mt-2\" *ngIf=\"\r\n                                  selectedEmployerFrmGp.get('empselected')!.value !== true &&\r\n                                  isEmpSearchSubmitted\">\r\n                        <span class=\"fa fa-exclamation-triangle fa-md-red\"></span>\r\n                        <span class=\"c-red1\">\r\n                          Please select an employer to move forward.\r\n                        </span>\r\n                      </div>\r\n                      <div *ngIf=\"canCreateNewEmployer\" class=\"register-text mt-3\">Can't\r\n                        find your employer ?\r\n                        <i class=\"fa fa-user-plus fa-xs-blue\"></i> <a class=\"login-signup\"\r\n                          (click)=\"displayCreateEmployer(stepper)\"> Register a New Company</a>\r\n                      </div>\r\n                      <div *ngIf=\"!canCreateNewEmployer\" class=\"register-text mt-3\">\r\n                        If you cannot find your business, please contact the state.\r\n                      </div>\r\n                    </div>\r\n                    <ng-template #noresults>\r\n                      <p class=\"ts-l\">{{searchErrorMessage}}</p>\r\n                      <div *ngIf=\"canCreateNewEmployer && hasSearched\" class=\"register-text mt-3\">\r\n                        Can&rsquo;t find your employer?\r\n                        <i class=\"fa fa-user-plus fa-xs-blue\"></i> <a class=\"login-signup\"\r\n                          (click)=\"displayCreateEmployer(stepper)\"> Register a New Company</a>\r\n                      </div>\r\n                    </ng-template>\r\n                  </div>\r\n\r\n                  <div class=\"mt-3 mb-3\" *ngIf=\"empOnHold && selectedEmployer?.isSelected && isEmpSearchSubmitted\">\r\n                    <span class=\"fa fa-exclamation-triangle fa-md-red\"></span>\r\n                    <span class=\"c-red1\">\r\n                      There is a hold on this account. Please call the telephone number located on the Contact Us Page.\r\n                    </span>\r\n                  </div>\r\n\r\n                  <div class=\"mt-3 mb-3\"\r\n                    *ngIf=\"selectedEmployer?.hasAccount && selectedEmployer?.isSelected && !selectedEmployer.hasHold\">\r\n                    <span class=\"fa fa-exclamation-triangle fa-md-red\"></span>\r\n                    <span class=\"c-red1\">\r\n                      There has already been an account established with this employer. However, you can email the\r\n                      primary account at {{selectedEmployer.primaryEmailAddress}} to add you as a secondary user.\r\n                    </span>\r\n                  </div>\r\n    \r\n                  <div *ngIf=\"empsearchresults && empsearchresults.length > 0\" class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                    <!-- <button\r\n                      *ngIf=\"!isEmpSearchSubmitted\"\r\n                      [disabled]=\"selectedEmployer?.hasAccount && selectedEmployer?.isSelected && !selectedEmployer.hasHold || !selectedEmployer?.isSelected\"\r\n                      class=\"btn btn-primary\" type=\"submit\" (click)=\"submitEmployer()\" mat-button\r\n                     >Validate Employer</button> -->\r\n\r\n                    <button\r\n                      [disabled]=\"selectedEmployer?.hasAccount && selectedEmployer?.isSelected || !selectedEmployer?.isSelected || empOnHold\"\r\n                      class=\"btn btn-primary\" type=\"submit\" (click)=\"submitEmployer()\" mat-button\r\n                      matStepperNext>Next</button>\r\n\r\n                      <!-- <span *ngIf=\"validatingEmployer\" matSuffix><i class=\"fa fa-refresh fa-spin fa-2x fa-fw\"></i></span>\r\n                      <span *ngIf=\"!validatingEmployer && isEmpSearchSubmitted && !empOnHold && empSelected && !selectedEmployer?.hasAccount\" class=\"text-success font-weight-bold\" matSuffix>Available for Registration <i class=\"fa fa-check c-green0 ts-l\"></i></span>\r\n                      <span *ngIf=\"!validatingEmployer && isEmpSearchSubmitted && empOnHold && empSelected && !selectedEmployer?.hasAccount\" class=\"text-danger font-weight-bold\" matSuffix>Employer placed on hold <i class=\"fa fa-times-circle c-red2 ts-l\"></i></span> -->\r\n                  </div>\r\n                </form>\r\n              </mat-step>\r\n              <!-- 3. New Employer -->\r\n              <mat-step *ngIf=\"showCreateEmp\" [stepControl]=\"createEmployerFrmGp\">\r\n                <form [formGroup]=\"createEmployerFrmGp\" autocomplete=\"off\">\r\n                  <ng-template matStepLabel> Create New Employer </ng-template>\r\n                  <div>Please enter your Business Information below.</div>\r\n                  <div class=\"flex-input-col pt-3 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Employer Name\" formControlName=\"empName\" required>\r\n                      <mat-error>{{getNewEmpErrorMessage(\"empName\")}}</mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <input matInput mask=\"999999999\" placeholder=\"EIN\" formControlName=\"ein\" required minlength=\"9\" maxlength=\"9\">\r\n                      <mat-hint *ngIf=\"!isCheckingEin && !isValidEin\"><strong>Ex: 123456789</strong></mat-hint>\r\n                      <mat-hint *ngIf=\"(!createEmployerFrmGp.get('ein')!.errors && isValidEin && !isCheckingEin)\" \r\n                      class=\"mat-hint-success\">{{einSuccessMessage}}\r\n                      </mat-hint>\r\n                      <span *ngIf=\"isCheckingEin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                      <span *ngIf=\"!createEmployerFrmGp.get('ein')!.errors && isValidEin && !isCheckingEin\" matSuffix><i \r\n                        class=\"fa fa-check c-green0 ts-l\"></i></span>\r\n                      <!-- <span *ngIf=\"!isValidEin? && !isCheckingEin? && einErrorMessage?.length > 0\" matSuffix><i\r\n                            class=\"fa fa-exclamation-triangle\" style=\"font-size: 20px;color:red\"></i></span> -->\r\n                      <!-- <mat-error>{{einErrorMessage}}</mat-error> -->\r\n                      <mat-error *ngIf=\"createEmployerFrmGp.get('ein')!.value && \r\n                      createEmployerFrmGp.get('ein')!.value?.length !== 9\">EIN must be 9 digits. (Ex: 123456789)</mat-error>\r\n                      <mat-error *ngIf=\"!createEmployerFrmGp.get('ein')!.value\">Required</mat-error>\r\n\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Address\" formControlName=\"address1\" required>\r\n                      <mat-error>{{getNewEmpErrorMessage(\"address1\")}}</mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Line 2\" formControlName=\"address2\">\r\n                      <mat-error>{{getNewEmpErrorMessage(\"address2\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"City\" formControlName=\"city\" required>\r\n                      <mat-error>{{getNewEmpErrorMessage(\"city\")}}</mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\" placeholder=\"State\"\r\n                        formControlName=\"state\" required>\r\n                        <mat-option *ngFor=\"let state of states\" [value]=\"state.code\">\r\n                          {{state.name}}\r\n                        </mat-option>\r\n                      </mat-select>\r\n                      <mat-error>{{getNewEmpErrorMessage(\"state\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Zip\" formControlName=\"zip5\" required>\r\n                      <mat-error>{{getNewEmpErrorMessage(\"zip5\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\" placeholder=\"Country\"\r\n                        formControlName=\"country\" required>\r\n                        <mat-option *ngFor=\"let country of countries\" [value]=\"country.country\">\r\n                          {{country.countryName}}\r\n                        </mat-option>\r\n                      </mat-select>\r\n                      <mat-error>{{getNewEmpErrorMessage(\"country\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                    <button *ngIf=\"displayAddEmployerButton\" class=\"btn btn-primary-short\"\r\n                      [disabled]=\"createEmployerFrmGp.invalid\" (click)=\"createNewEmployer()\" mat-button>Add\r\n                      Employer</button>\r\n                    <button *ngIf=\"employerCreatedSuccessfully\" class=\"btn btn-primary-short\" mat-button\r\n                      matStepperNext>Next</button>\r\n                  </div>\r\n                  <div *ngIf=\"employerCreatedSuccessfully\" class=\"c-green0\">\r\n                    <p>{{employerCreatedMessage}}</p>\r\n                  </div>\r\n                </form>\r\n              </mat-step>\r\n              <!-- 4. Contact -->\r\n              <mat-step [stepControl]=\"demographicFrmGp\">\r\n                <form [formGroup]=\"demographicFrmGp\" autocomplete=\"off\">\r\n                  <ng-template matStepLabel>Fill out your Contact Information</ng-template>\r\n                  <div class=\"\">\r\n                    <p>Please enter your Contact Information below.</p>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"First name\" formControlName=\"firstName\" required>\r\n                      <mat-error>{{getDemographicErrorMessage(\"firstName\")}}</mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Middle name\" formControlName=\"middleName\">\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Last name\" formControlName=\"lastName\" required>\r\n                      <mat-error>{{getDemographicErrorMessage(\"lastName\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Address\" formControlName=\"address1\" required>\r\n                      <mat-error>{{getDemographicErrorMessage(\"address1\")}}</mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Line 2\" formControlName=\"address2\">\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"City\" formControlName=\"city\" required>\r\n                      <mat-error>{{getDemographicErrorMessage(\"city\")}}</mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\" placeholder=\"State\"\r\n                        formControlName=\"state\" required>\r\n                        <mat-option *ngFor=\"let state of states\" [value]=\"state.code\">\r\n                          {{state.name}}\r\n                        </mat-option>\r\n                      </mat-select>\r\n                      <mat-error>{{getDemographicErrorMessage(\"state\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Zip\" formControlName=\"zip5\" required>\r\n                      <mat-error>{{getDemographicErrorMessage(\"zip5\")}}</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\" placeholder=\"Country\"\r\n                        formControlName=\"country\" required>\r\n                        <mat-option *ngFor=\"let country of countries\" [value]=\"country.country\">\r\n                          {{country.countryName}}\r\n                        </mat-option>\r\n                      </mat-select>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field formGroupName=\"phoneGp\">\r\n                      <!-- <input matInput placeholder=\"Phone\" [mask]=\"phoneMask\" formControlName=\"phoneNumber\" required> -->\r\n                      <input matInput placeholder=\"Phone\" formControlName=\"phoneNumber\" [mask]=\"phoneMask\" required>\r\n                      <span matPrefix>+{{demographicFrmGp.get('phoneGp.countryCode' )!.value}}&nbsp;&nbsp;</span>\r\n                      <mat-hint>{{phoneExample}}</mat-hint>\r\n                      <mat-error *ngIf=\"!demographicFrmGp.get('phoneGp.isValid')?.value ||\r\n                                            demographicFrmGp.get('phoneGp ')?.hasError('requiredTrue')\">Invalid Format\r\n                      </mat-error>\r\n                      <mat-error *ngIf=\"demographicFrmGp.get('phoneGp.phoneNumber ')?.hasError('required')\">Required\r\n                      </mat-error>\r\n                    </mat-form-field>\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Phone Ext\" formControlName=\"phoneExtension\">\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field formGroupName=\"cellGp\">\r\n                      <!-- <input matInput placeholder=\"Cell Phone\" [mask]=\"cellMask\" formControlName=\"cellNumber\"> -->\r\n                      <input matInput placeholder=\"Cell Phone\" formControlName=\"cellNumber\" [mask]=\"phoneMask\">\r\n                      <span matPrefix>+{{demographicFrmGp.get('cellGp.countryCode' )!.value}}&nbsp;&nbsp;</span>\r\n                      <mat-hint>{{cellExample}}</mat-hint>\r\n                      <mat-error *ngIf=\"!demographicFrmGp.get('cellGp.isValid')?.value ||\r\n                                           demographicFrmGp.get('cellGp ')?.hasError('requiredTrue')\">Invalid format\r\n                      </mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Email\" formControlName=\"email\" required>\r\n                      <mat-hint *ngIf=\"isValidEmail && !isCheckingEmail\" class=\"mat-hint-success\">{{emailSuccessMessage}}\r\n                      </mat-hint>\r\n                      <span *ngIf=\"isCheckingEmail\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                      <span *ngIf=\"isValidEmail\" matSuffix><i class=\"fa fa-check\"\r\n                          style=\"font-size: 25px;color:darkgreen\"></i></span>\r\n                      <mat-error>{{emailErrorMessage}}</mat-error>\r\n    \r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                    <button class=\"btn btn-primary-short\" [disabled]=\"demographicFrmGp.invalid\" mat-button\r\n                      matStepperNext>Next</button>\r\n                  </div>\r\n                </form>\r\n              </mat-step>\r\n              <!-- 5. Login Info -->\r\n              <mat-step [stepControl]=\"loginFrmGp\">\r\n                <form [formGroup]=\"loginFrmGp\" autocomplete=\"off\">\r\n                  <ng-template matStepLabel>Fill out Login Information</ng-template>\r\n                  <div class=\"mt-3\">\r\n                    Please complete your Login Information below.\r\n                    <span (click)=\"displayLoginHelp()\" class=\"ml-2 fa fa-question-circle fa-sm-blue\"\r\n                      matTooltip=\"LOGIN INFORMATION HELP\" matTooltipClass=\"tooltip-md\">\r\n                    </span>\r\n                  </div>\r\n                    <div class=\"flex-input-col pt-2 pb-3\">\r\n                      <mat-form-field>\r\n                        <input matInput placeholder=\"Username\" #loginId formControlName=\"loginId\" \r\n                        (change)=\"updateUsernameValidation($event)\" required>\r\n                        <!-- <mat-hint *ngIf=\"!isValidLogin && !isCheckingLogin\">{{loginHintMessage}}</mat-hint> -->\r\n                        <mat-hint *ngIf=\"!isValidLogin && !isCheckingLogin\">\r\n                          <strong>Alphanumerical format:</strong> Must contain at least 8 characters (at least 6 letters, 2 numbers) with a max of 12 characters. <br>\r\n                          <strong>Email Format:</strong> Must match the email provided in the previous step. \r\n                        </mat-hint>\r\n                        <mat-hint *ngIf=\"isValidLogin && !isCheckingLogin\" class=\"c-green0\">{{loginSuccessMessage}}\r\n                        </mat-hint>\r\n                        <span *ngIf=\"isCheckingLogin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                        <span *ngIf=\"isValidLogin\" matSuffix><i class=\"fa fa-check c-green0 ts-l\"></i></span>\r\n                        <mat-error>{{loginErrorMessage}}</mat-error>\r\n                        <mat-error *ngIf=\"loginFrmGp.get('loginId')?.hasError('required') &&\r\n                                          loginErrorMessage?.length === 0\">Required</mat-error>\r\n                      </mat-form-field>\r\n                    </div>\r\n                  <div formGroupName=\"passwordGp\">\r\n                    <div class=\"flex-input-col pt-2 pb-2\">\r\n                      <mat-form-field>\r\n                        <input matInput placeholder=\"Password\" [type]=\"passwordHide ? 'password' : 'text'\"\r\n                          formControlName=\"password1\" required>\r\n                        <mat-hint>{{passwordHintMessage}}</mat-hint>\r\n                        <mat-icon matSuffix (click)=\"togglePasswordHide()\">{{passwordHide ? 'visibility_off' :\r\n                          'visibility'}}</mat-icon>\r\n                        <mat-error>{{passwordErrorMessage}}</mat-error>\r\n                        <mat-error *ngIf=\"loginFrmGp.invalid && passwordErrorMessage?.length === 0\">Required</mat-error>\r\n                      </mat-form-field>\r\n                      <mat-form-field>\r\n                        <input matInput [errorStateMatcher]=\"errorMatcher\" placeholder=\"Confirm Password\"\r\n                          [type]=\"confirmpasswordHide ? 'password' : 'text'\" formControlName=\"password2\" required>\r\n                        <mat-icon matSuffix (click)=\"toggleConfirmPasswordHide()\">{{confirmpasswordHide ? 'visibility_off' :\r\n                          'visibility'}}</mat-icon>\r\n                        <mat-error *ngIf=\"loginFrmGp.get('passwordGp')?.hasError('doNotMatch')\">Passwords do not match.\r\n                        </mat-error>\r\n                      </mat-form-field>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\"\r\n                        placeholder=\"Challenge Question\" (selectionChange)=\"challengeQuestionChangeEvent()\"\r\n                        formControlName=\"authenticationQuestionIndex\">\r\n                        <mat-option *ngFor=\"let question of questions\" [value]=\"question.index\">\r\n                          {{question.name}}\r\n                        </mat-option>\r\n                      </mat-select>\r\n                      <mat-error>Required</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-input-col pt-2 pb-2\">\r\n                    <mat-form-field>\r\n                      <input matInput placeholder=\"Challenge Answer\" formControlName=\"challengeAnswer\">\r\n                      <mat-error>Required</mat-error>\r\n                    </mat-form-field>\r\n                  </div>\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                    <button class=\"btn btn-primary-short\" [disabled]=\"loginFrmGp.invalid\" mat-button\r\n                      matStepperNext>Next</button>\r\n                  </div>\r\n                </form>\r\n              </mat-step>\r\n              <mat-step [stepControl]=\"reviewFrmGrp\">\r\n                <form [formGroup]=\"reviewFrmGrp\">\r\n                  <ng-template matStepLabel>Review Your Information</ng-template>\r\n                  <div class=\"container\">\r\n                    <div class=\"row m--full-bleed\">\r\n    \r\n                      <!-- Employer information card-->\r\n                      <div class=\"col-12 col-lg-4 form-display-card mb-5 m--mb0\">\r\n                        <div class=\"mb-2\">\r\n                          <mat-card class='mat-card-display'>\r\n                            <mat-card-header>\r\n                              <mat-card-title class=\"justify-content-start\">\r\n                                <h2 class=\"mat-card-title align-items-start\">\r\n                                  <span class=\"fa fa-building-o fa-md-black mr-2\"></span> Employer Information\r\n                                </h2>\r\n                              </mat-card-title>\r\n                            </mat-card-header>\r\n                            <mat-card-content>\r\n                              <div class=\"\">\r\n                                <div class=\"row review-payment justify-content-center\">\r\n    \r\n                                  <div class=\"col-12 col-lg-6\">\r\n                                    <dl class=\"account-details-sum\">\r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Employer Name\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          {{selectedEmployer.thirdPartyName}}\r\n                                        </dd>\r\n                                      </div>\r\n                                    </dl>\r\n                                  </div>\r\n    \r\n                                  <div class=\"col-12 col-lg-6\">\r\n                                    <dl class=\"account-details-sum\">\r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Address\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          {{selectedEmployer.addressLine1}}\r\n                                          {{selectedEmployer.addressLine2}}\r\n                                          {{selectedEmployer.addressCity}},\r\n                                          {{selectedEmployer.addressState}}\r\n                                          {{selectedEmployer.addressZip5}}\r\n                                        </dd>\r\n                                      </div>\r\n                                    </dl>\r\n                                  </div>\r\n    \r\n                                </div>\r\n                              </div>\r\n                            </mat-card-content>\r\n                          </mat-card>\r\n                        </div>\r\n                        <!--<mat-card class='mat-card-display'>\r\n                          <mat-card-header>\r\n                            <mat-card-title class=\"justify-content-start\">\r\n                              <h2 class=\"mat-card-title align-items-start\">\r\n                                <span class=\"fa fa-building-o fa-md-black mr-2\"></span> Employer Information\r\n                              </h2>\r\n                            </mat-card-title>\r\n                          </mat-card-header>\r\n                          <mat-card-content>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm tw-b\">Employer Name</div>\r\n                              <div class=\"col-sm tw-b\">Address</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\">{{selectedEmployer.thirdPartyName}}</div>\r\n                              <div class=\"col-sm\">{{selectedEmployer.addressLine1}}{{selectedEmployer.addressLine2}}</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\"></div>\r\n                              <div class=\"col-sm\">{{selectedEmployer.addressCity}}, {{selectedEmployer.addressState}}\r\n                                {{selectedEmployer.addressZip5}}</div>\r\n                            </div>\r\n                          </mat-card-content>\r\n                        </mat-card>-->\r\n                      </div>\r\n    \r\n    \r\n                      <!-- Personal information card-->\r\n                      <div class=\"col-12 col-lg-4 form-display-card mb-5 m--mb0\">\r\n                        <div class=\"mb-2\">\r\n                          <mat-card class='mat-card-display'>\r\n                            <mat-card-header>\r\n                              <mat-card-title class=\"justify-content-start\">\r\n                                <h2 class=\"mat-card-title align-items-start\">\r\n                                  <span class=\"fa fa-address-card-o fa-md-black mr-2\"></span> Contact Information\r\n                                </h2>\r\n                              </mat-card-title>\r\n                            </mat-card-header>\r\n                            <mat-card-content>\r\n                              <div class=\"\">\r\n                                <div class=\"row review-payment justify-content-center\">\r\n    \r\n                                  <div class=\"col-12 col-lg-6\">\r\n                                    <dl class=\"account-details-sum\">\r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Name\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          {{this.demographicFrmGp.get('firstName' )!.value}}\r\n                                          {{this.demographicFrmGp.get('middleName' )!.value}}\r\n                                          {{this.demographicFrmGp.get('lastName' )!.value}}\r\n                                        </dd>\r\n                                      </div>\r\n    \r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Address\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          {{this.demographicFrmGp.get('address1')!.value}}\r\n                                          {{this.demographicFrmGp.get('address2' )!.value}}\r\n                                          {{this.demographicFrmGp.get('city' )!.value}}\r\n                                          {{this.demographicFrmGp.get('state')!.value}}\r\n                                          {{this.demographicFrmGp.get('zip5' )!.value}}\r\n                                        </dd>\r\n                                      </div>\r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Email\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          {{this.demographicFrmGp.get('email' )!.value}}\r\n                                        </dd>\r\n                                      </div>\r\n                                    </dl>\r\n                                  </div>\r\n    \r\n                                  <div class=\"col-12 col-lg-6\">\r\n                                    <dl class=\"account-details-sum\">\r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Home Phone\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          +{{this.demographicFrmGp.get('phoneGp.countryCode' )!.value}} &nbsp;\r\n                                          {{this.demographicFrmGp.get('phoneGp.phoneNumber' )!.value | mask: phoneMask}}\r\n                                        </dd>\r\n                                      </div>\r\n                                      <div>\r\n                                        <dt class=\"account-dt\">\r\n                                          Cell Phone\r\n                                        </dt>\r\n                                        <dd class=\"account-dt-info\">\r\n                                          +{{this.demographicFrmGp.get('cellGp.countryCode' )!.value}} &nbsp;&nbsp;\r\n                                          {{this.demographicFrmGp.get('cellGp.cellNumber' )!.value | mask: phoneMask}}\r\n                                        </dd>\r\n                                      </div>\r\n                                    </dl>\r\n                                  </div>\r\n    \r\n                                </div>\r\n                              </div>\r\n                            </mat-card-content>\r\n                          </mat-card>\r\n                        </div>\r\n                        <!--<mat-card class='mat-card-display'>\r\n                          <mat-card-header>\r\n                            <mat-card-title class=\"justify-content-start\">\r\n                              <h2 class=\"mat-card-title align-items-start\">\r\n                                <span class=\"fa fa-address-card-o fa-md-black mr-2\"></span> Contact Information\r\n                              </h2>\r\n                            </mat-card-title>\r\n                          </mat-card-header>\r\n                          <mat-card-content>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm tw-b\">Name</div>\r\n                              <div class=\"col-sm tw-b\">Home Phone</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\">{{this.demographicFrmGp.get('firstName' )!.value}}\r\n                                {{this.demographicFrmGp.get('middleName' )!.value}}\r\n                                {{this.demographicFrmGp.get('lastName' )!.value}}</div>\r\n                              <div class=\"col-sm\">+{{this.demographicFrmGp.get('phoneGp.countryCode' )!.value}} &nbsp;&nbsp;\r\n                                {{this.demographicFrmGp.get('phoneGp.phoneNumber' )!.value}}</div>\r\n                            </div>\r\n                            <div class=\"row mt-2\">\r\n                              <div class=\"col-sm tw-b\">Address</div>\r\n                              <div class=\"col-sm tw-b\">Cell phone</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\">{{this.demographicFrmGp.get('address1' )!.value}}\r\n                                {{this.demographicFrmGp.get('address2' )!.value}}</div>\r\n                              <div class=\"col-sm\" *ngIf=\"this.demographicFrmGp.get('cellGp.cellNumber' )!.value\">\r\n                                +{{this.demographicFrmGp.get('cellGp.countryCode' )!.value}} &nbsp;&nbsp;\r\n                                {{this.demographicFrmGp.get('cellGp.cellNumber' )!.value}}</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\">{{this.demographicFrmGp.get('city' )!.value}},\r\n                                {{this.demographicFrmGp.get('state' )!.value}} {{this.demographicFrmGp.get('zip5' )!.value}}\r\n                              </div>\r\n                            </div>\r\n                            <div class=\"row mt-2\">\r\n                              <div class=\"col-sm tw-b\">Email</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\">{{this.demographicFrmGp.get('email' )!.value}}</div>\r\n                            </div>\r\n                          </mat-card-content>\r\n                        </mat-card>-->\r\n                      </div>\r\n    \r\n                      <div class=\"col-12 col-lg-4 form-display-card mb-5 m--mb0\">\r\n                        <mat-card class='mat-card-display'>\r\n                          <mat-card-header>\r\n                            <mat-card-title class=\"justify-content-start\">\r\n                              <h2 class=\"mat-card-title align-items-start\">\r\n                                <span class=\"fa fa-user-circle-o fa-md-black mr-2\"></span> Login Information\r\n                              </h2>\r\n                            </mat-card-title>\r\n                          </mat-card-header>\r\n                          <mat-card-content>\r\n                            <div class=\"\">\r\n                              <div class=\"row review-payment justify-content-center\">\r\n    \r\n                                <div class=\"col-12 col-lg-6\">\r\n                                  <dl class=\"account-details-sum\">\r\n                                    <div>\r\n                                      <dt class=\"account-dt\">\r\n                                        Username\r\n                                      </dt>\r\n                                      <dd class=\"account-dt-info\">\r\n                                        <div *ngIf=\"useEmailForLogin\">\r\n                                          {{this.demographicFrmGp.get('email')!.value}}\r\n                                        </div>\r\n                                        <div *ngIf=\"!useEmailForLogin\">\r\n                                          {{this.loginFrmGp.get('loginId')!.value}}\r\n                                        </div>\r\n                                      </dd>\r\n                                    </div>\r\n                                    <div>\r\n                                      <dt class=\"account-dt\">\r\n                                        Password\r\n                                      </dt>\r\n                                      <dd class=\"account-dt-info\">\r\n                                        {{this.loginFrmGp.get('passwordGp.password1')!.value | maskdata: 0}}\r\n                                      </dd>\r\n                                    </div>\r\n                                  </dl>\r\n                                </div>\r\n    \r\n                                <div class=\"col-12 col-lg-6\">\r\n                                  <dl class=\"account-details-sum\">\r\n                                    <div>\r\n                                      <dt class=\"account-dt\">\r\n                                        Challenge Question\r\n                                      </dt>\r\n                                      <dd class=\"account-dt-info\">\r\n                                        {{selectedChallengeQuestion}}\r\n                                      </dd>\r\n                                    </div>\r\n                                    <div>\r\n                                      <dt class=\"account-dt\">\r\n                                        Challenge Answer\r\n                                      </dt>\r\n                                      <dd class=\"account-dt-info\">\r\n                                        {{this.loginFrmGp.get('challengeAnswer')!.value}}\r\n                                      </dd>\r\n                                    </div>\r\n                                  </dl>\r\n                                </div>\r\n    \r\n                              </div>\r\n                            </div>\r\n    \r\n                            <!--<div class=\"row\">\r\n                              <div class=\"col-sm tw-b\">Username</div>\r\n                              <div class=\"col-sm tw-b\">Challenge Question</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div *ngIf=\"useEmailForLogin\" class=\"col-sm\">{{this.demographicFrmGp.get('email')!.value}}\r\n                              </div>\r\n                              <div *ngIf=\"!useEmailForLogin\" class=\"col-sm\">{{this.loginFrmGp.get('loginId')!.value}}</div>\r\n                              <div class=\"col-sm\">{{selectedChallengeQuestion}}</div>\r\n                            </div>\r\n                            <div class=\"row mt-2\">\r\n                              <div class=\"col-sm tw-b\">Password</div>\r\n                              <div class=\"col-sm tw-b\">Challenge Answer</div>\r\n                            </div>\r\n                            <div class=\"row\">\r\n                              <div class=\"col-sm\">{{this.loginFrmGp.get('passwordGp.password1')!.value | maskdata: 0}}</div>\r\n                              <div class=\"col-sm\">{{this.loginFrmGp.get('challengeAnswer')!.value}}</div>\r\n                            </div>-->\r\n                          </mat-card-content>\r\n                        </mat-card>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"flex-btn-row pt-2 pb-2\">\r\n                    <button class=\"btn btn-secondary\" mat-button matStepperPrevious>Back</button>\r\n                    <button class=\"btn btn-submit\" mat-raised-button (click)=\"createAccount()\">Create Account</button>\r\n                  </div>\r\n                </form>\r\n              </mat-step>\r\n            </mat-stepper>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    \r\n    <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [confirmationTitle]=\"confirmationTitle\"\r\n      [confirmationMessage]=\"confirmationMessage\" [confirmationEmailAddress]=\"confirmationEmailAddress\"\r\n      [confirmationNumber]=\"confirmationNumber\" [goToPrimary]=\"goToPrimary\" [goToPrimaryUrl]=\"goToPrimaryUrl\">\r\n    </epay-lib-common-confirmation>\r\n\r\n  </div>\r\n</epay-page-content>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, FormControl, FormGroupDirective, NgForm, FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { IChallengeQuestion, ErrorHandlerService, RegisterLibraryService } from 'epay-library';\r\nimport { IEmpLogin } from 'epay-library/lib/features/employer/models/user/employerLogin';\r\nimport { Router } from '@angular/router';\r\nimport { debounceTime } from 'rxjs';\r\n\r\nfunction passwordMatcher(\r\n  c: AbstractControl\r\n): { [key: string]: boolean } | null {\r\n  const password1Ctrl = c.get('password1');\r\n  const password2Ctrl = c.get('password2');\r\n  if (password1Ctrl === null || password2Ctrl === null) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.pristine || password2Ctrl.pristine) {\r\n    return null;\r\n  }\r\n  if (password1Ctrl.value === password2Ctrl.value) {\r\n    return null;\r\n  }\r\n  return { doNotMatch: true };\r\n}\r\n\r\n/** Error when the parent is invalid */\r\nclass CrossFieldErrorMatcher implements ErrorStateMatcher {\r\n  isErrorState(\r\n    control: FormControl | null,\r\n    form: FormGroupDirective | NgForm | null\r\n  ): boolean {\r\n    if (control) {\r\n      return (control.dirty || control.touched) && control.parent!.invalid;\r\n    }\r\n    return false;\r\n  }\r\n}\r\n\r\n@Component({\r\n  selector: 'employer-secondary-registration',\r\n  templateUrl: './empsecondary-registration.component.html'\r\n})\r\nexport class EmployerSecondaryRegistrationComponent implements OnInit {\r\n  @Input() baseurl = '';\r\n  @Input() userEmailForLogin = false;\r\n\r\n  errorMatcher = new CrossFieldErrorMatcher();\r\n  loginFrmGp: FormGroup = new FormGroup({});\r\n  emplogin: IEmpLogin = {} as IEmpLogin;\r\n  questions: IChallengeQuestion[] = [];\r\n  selectedChallengeQuestion = '';\r\n  errorMessage = '';\r\n  loginErrorMessage = '';\r\n  loginSuccessMessage = '';\r\n  isCheckingLogin = false;\r\n  isValidLogin = false;\r\n  passwordHide = true;\r\n  confirmpasswordHide = true;\r\n  passwordErrorMessage = '';\r\n  selectedUsername = '';\r\n\r\n  confirmationTitle = '';\r\n  confirmationMessage = '';\r\n  confirmationEmailAddress = '';\r\n  confirmationNumber = '';\r\n  goToPrimary = '';\r\n  goToPrimaryUrl = '';\r\n  showConfirmationEmail = false;\r\n  openConfirmation = true;\r\n\r\n  loginPattern = /^[a-zA-Z0-9.@]*$/;\r\n  // loginPattern =\r\n  //   /(?=^[A-Za-z\\d]{8,12}$)(?=(.*[A-Za-z]){6,8})(?=(.*\\d){2,4})^.*/;\r\n\r\n  passwordPattern = /(?=^[A-Za-z!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\d]{8,12}$)(?=(.*[A-Za-z]){6})(?=(.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]){1})(?=(.*\\d){2})^.*/;\r\n\r\n  loginHintMessage =\r\n    'Must contain at least 8 characters. Alphanumerical values and email format are accepted.';\r\n\r\n  passwordHintMessage = 'Must contain at least 6 letters, 2 numbers, and at least one special character with a maximum of 12 characters.';\r\n\r\n  validationLoginIdMessages: { [key: string]: string } = {\r\n    required: 'Username is required.',\r\n    pattern:\r\n      'Invalid Username. Must contain only alphanumerical values with the exception of email format.',\r\n    minlength: 'Invalid Username.  Must contain at least 8 characters.',\r\n    isNotReady: 'Username is not available for registration.',\r\n    isDuplicate: 'Username is not available for use.',\r\n    isExpired: 'Username has expired.  Contact account manager.',\r\n    isSameAsPassword: 'Invalid Username.  Username cannot be same as password.',\r\n  };\r\n\r\n  // validationEmailLoginMessages: { [key: string]: string } = {\r\n  //   required: 'Username is required.',\r\n  //   pattern: 'Invalid username.  Must be in email format.',\r\n  //   isNotReady: 'Username is not available for registation.',\r\n  //   isExpired: 'Username has expired.  Contact account manager.',\r\n  // };\r\n\r\n  validationPasswordMessages: { [key: string]: string } = {\r\n    required: 'Password is required.',\r\n    pattern:\r\n      'Invalid Password.  Must contain at least 6 letters, 2 numbers, and one special character with a maximum of 12 characters.',\r\n    isSameAsLogin: 'Invalid Password.  Password cannot be same as username.',\r\n  };\r\n\r\n  constructor(\r\n    private formbuilder: FormBuilder,\r\n    private router: Router,\r\n    private errorHandlerService: ErrorHandlerService,\r\n    private registerService: RegisterLibraryService,\r\n    public snackbar: MatSnackBar\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    // if (!this.userEmailForLogin) {\r\n    //   this.loginHintMessage =\r\n    //     'Must contain at least 6 letters and 2 numbers with no special characters.';\r\n    // } else {\r\n    //   this.loginHintMessage =\r\n    //     'Your username is the email address used for initial registration.';\r\n    // }\r\n    this.loadFormGroups();\r\n    this.getChallengeQuestions();\r\n    const loginCtrl= this.loginFrmGp.get('loginId');\r\n    const passwrd1Ctrl = this.loginFrmGp.get('passwordGp.password1');\r\n\r\n    this.openConfirmation = false;\r\n\r\n    loginCtrl!.valueChanges.pipe(debounceTime(1000)).subscribe((loginId) => {\r\n      if (\r\n        (loginCtrl!.touched || loginCtrl!.dirty) &&\r\n        loginCtrl!.errors\r\n      ) {\r\n        // if (this.userEmailForLogin) {\r\n        //   this.loginErrorMessage = Object.keys(loginCtrl!.errors)\r\n        //     .map((key) => this.validationEmailLoginMessages[key])\r\n        //     .join(' ');\r\n        // } else {\r\n          this.loginErrorMessage = Object.keys(loginCtrl!.errors)\r\n            .map((key) => this.validationLoginIdMessages[key])\r\n            .join(' ');\r\n        // }\r\n        this.isValidLogin = false;\r\n      } else {\r\n        this.isCheckingLogin = true;\r\n        this.registerService\r\n          .searchPendingRegistration(this.baseurl, loginId)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.setLoginMessage(loginCtrl!, result, loginId);\r\n            },\r\n            error: (error: any) => {\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      }\r\n    });\r\n\r\n    passwrd1Ctrl!.valueChanges\r\n      .pipe(debounceTime(1000))\r\n      .subscribe((passwrd) => this.setPasswordMessage(passwrd1Ctrl!, passwrd));\r\n  }\r\n\r\n  completeRegistration() {\r\n    if (this.loginFrmGp.valid) {\r\n      if (this.loginFrmGp.dirty) {\r\n        const loginData = {\r\n          loginId: this.loginFrmGp.get('loginId')!.value,\r\n          password: this.loginFrmGp.get('passwordGp.password1')!.value,\r\n          confirmPassword: this.loginFrmGp.get('passwordGp.password2')!.value,\r\n          challengeQuestion: this.loginFrmGp.get('challengeQuestion')!.value,\r\n          challengeAnswer: this.loginFrmGp.get('challengeAnswer')!.value,\r\n        };\r\n\r\n        this.registerService\r\n          .completeSecondaryRegistration(this.baseurl, loginData)\r\n          .subscribe({\r\n            next: (result: any) => {\r\n              this.confirmationTitle = 'Success';\r\n              this.confirmationMessage =\r\n                'Account for ' +\r\n                result.firstName +\r\n                ' ' +\r\n                result.lastName +\r\n                ' has been created.';\r\n              this.confirmationEmailAddress = result.email;\r\n              this.confirmationNumber = result.confirmationNumber;\r\n              this.goToPrimaryUrl = 'login';\r\n              this.goToPrimary = 'Login';\r\n              this.showConfirmationEmail = true;\r\n              this.openConfirmation = true;\r\n            },\r\n            error: (error: any) => {\r\n              this.openConfirmation = false;\r\n              this.logError(error);\r\n              this.handleError(error.status);\r\n            },\r\n          });\r\n      }\r\n    }\r\n  }\r\n\r\n  setLoginMessage(loginCtrl: AbstractControl, result: any, loginId: string) {\r\n    this.loginErrorMessage = '';\r\n    this.loginSuccessMessage = '';\r\n    this.isValidLogin = false;\r\n\r\n    if (loginCtrl.touched || loginCtrl.dirty) {\r\n      if (result.isPending && !result.isExpired) {\r\n        this.isValidLogin = true;\r\n      } else if (result.isExpired) {\r\n        loginCtrl.setErrors({ isExpired: true });\r\n      } else if (!result.isPending) {\r\n        loginCtrl.setErrors({ isNotReady: true });\r\n      }\r\n\r\n      if (this.isValidLogin) {\r\n        this.loginSuccessMessage = 'Complete login information below!';\r\n        this.selectedUsername = loginId;\r\n        this.isCheckingLogin = false;\r\n      } else {\r\n        // if (this.userEmailForLogin) {\r\n        //   this.loginErrorMessage = Object.keys(loginCtrl.errors!)\r\n        //     .map((key) => this.validationEmailLoginMessages[key])\r\n        //     .join(' ');\r\n        // } else {\r\n          this.loginErrorMessage = Object.keys(loginCtrl.errors!)\r\n            .map((key) => {\r\n              //console.log(\"KEY: \", key)\r\n              this.validationLoginIdMessages[key]\r\n            })\r\n            .join(' ');\r\n        // }\r\n      }\r\n\r\n      this.isCheckingLogin = false;\r\n    }\r\n  }\r\n\r\n  setPasswordMessage(passwordControl: AbstractControl, passwrd: any): void {\r\n    this.passwordErrorMessage = '';\r\n    if (passwordControl.touched || passwordControl.dirty) {\r\n      if (!passwordControl.errors) {\r\n        if (this.selectedUsername === passwrd) {\r\n          passwordControl.setErrors({ isSameAsLogin: true });\r\n          this.passwordErrorMessage = Object.keys(passwordControl.errors!)\r\n            .map((key) => this.validationPasswordMessages[key])\r\n            .join(' ');\r\n        }\r\n      } else {\r\n        this.passwordErrorMessage = Object.keys(passwordControl.errors)\r\n          .map((key) => this.validationPasswordMessages[key])\r\n          .join(' ');\r\n      }\r\n    }\r\n  }\r\n\r\n  resetLoginCheck() {\r\n    this.isValidLogin = false;\r\n    this.isCheckingLogin = false;\r\n    this.loginSuccessMessage = '';\r\n    this.loginErrorMessage = '';\r\n    this.selectedUsername = '';\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  onSaveComplete() {\r\n    this.loginFrmGp.reset();\r\n    this.router.navigate(['login']);\r\n  }\r\n\r\n  loadFormGroups() {\r\n    this.loginFrmGp = this.formbuilder.group({\r\n      loginId: [\r\n        '',\r\n        [\r\n          Validators.required,\r\n          Validators.minLength(8),\r\n          //Validators.maxLength(12),\r\n          Validators.pattern(this.loginPattern),\r\n        ],\r\n      ],\r\n      userName: '',\r\n      passwordGp: this.formbuilder.group(\r\n        {\r\n          password1: [\r\n            '',\r\n            [Validators.required, Validators.pattern(this.passwordPattern)],\r\n          ],\r\n          password2: ['', Validators.required],\r\n        },\r\n        { validators: passwordMatcher }\r\n      ),\r\n      challengeAnswer: ['', Validators.required],\r\n      challengeQuestion: ['', Validators.required],\r\n    });\r\n  }\r\n\r\n  togglePasswordHide() {\r\n    this.passwordHide = !this.passwordHide;\r\n  }\r\n\r\n  toggleConfirmPasswordHide() {\r\n    this.confirmpasswordHide = !this.confirmpasswordHide;\r\n  }\r\n  getChallengeQuestions() {\r\n    this.registerService.getChallengeQuestions(this.baseurl).subscribe({\r\n      next: (questions: any) => {\r\n        this.questions = questions;\r\n      },\r\n      error: (error: any) => {\r\n        this.logError(error);\r\n        this.handleError(error.status);\r\n      },\r\n    });\r\n  }\r\n\r\n  logError(error: Error) {\r\n    this.errorHandlerService.logError(error);\r\n  }\r\n\r\n  handleError(error: number) {\r\n    console.log(this.errorMessage);\r\n    console.log('error', error);\r\n    this.errorHandlerService.handleErrorMessage(error, this.baseurl);\r\n  }\r\n}","<div *ngIf=\"!openConfirmation\">\r\n    <div class=\"footer-gap\">\r\n      <div class=\"container m--full-bleed\">\r\n        <div class=\"row m--full-bleed\">\r\n          <div class=\"col-12 form-panel\">\r\n            <form [formGroup]=\"loginFrmGp\" (ngSubmit)=\"completeRegistration()\">\r\n              <mat-card class=\"card-container\">\r\n                <mat-card-header>\r\n                  <mat-card-title>Complete Registration</mat-card-title>\r\n                </mat-card-header>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Username\" #loginId formControlName=\"loginId\" required>\r\n                    <mat-hint *ngIf=\"!isValidLogin && !isCheckingLogin\">{{loginHintMessage}}</mat-hint>\r\n                    <mat-hint *ngIf=\"isValidLogin && !isCheckingLogin\" style=\"color: darkgreen\">{{loginSuccessMessage}}\r\n                    </mat-hint>\r\n                    <span *ngIf=\"isCheckingLogin\" matSuffix><i class=\"fa fa-refresh fa-spin fa-3x fa-fw\"></i></span>\r\n                    <span *ngIf=\"isValidLogin\" matSuffix><i class=\"fa fa-check\"\r\n                        style=\"font-size: 25px;color:darkgreen\"></i></span>\r\n                    <!-- <mat-error>{{loginErrorMessage}}</mat-error> -->\r\n                    <mat-error *ngIf=\"loginFrmGp.invalid && loginFrmGp.get('loginId')?.value === ''\">Required</mat-error> \r\n                    <mat-error *ngIf=\"loginFrmGp.get('loginId')?.hasError('isNotReady')\">Username is not available for registration.</mat-error>\r\n                    <mat-error *ngIf=\"loginFrmGp.get('loginId')?.hasError('isExpired')\">Username has expired.  Contact account manager.</mat-error>  \r\n                    <mat-error *ngIf=\"loginFrmGp.get('loginId')?.hasError('isSameAsPassword')\">Invalid Username.  Username cannot be same as password.</mat-error>                    \r\n                  \r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\" formGroupName=\"passwordGp\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Password\" [type]=\"passwordHide ? 'password' : 'text'\"\r\n                      formControlName=\"password1\" autocomplete=\"off\" required>\r\n                    <mat-hint>{{passwordHintMessage}}</mat-hint>\r\n                    <mat-icon matSuffix (click)=\"togglePasswordHide()\">{{passwordHide ? 'visibility_off' : 'visibility'}}\r\n                    </mat-icon>\r\n                    <mat-error>{{passwordErrorMessage}}</mat-error>\r\n                    <mat-error *ngIf=\"loginFrmGp.invalid && passwordErrorMessage?.length === 0\">Required</mat-error>\r\n                  </mat-form-field>\r\n                  <mat-form-field>\r\n                    <input matInput [errorStateMatcher]=\"errorMatcher\" placeholder=\"Confirm Password\"\r\n                      [type]=\"confirmpasswordHide ? 'password' : 'text'\" formControlName=\"password2\" autocomplete=\"off\"\r\n                      required>\r\n                    <mat-icon matSuffix (click)=\"toggleConfirmPasswordHide()\">{{confirmpasswordHide ? 'visibility_off' :\r\n                      'visibility'}}</mat-icon>\r\n                    <mat-error *ngIf=\"loginFrmGp.get('passwordGp')?.hasError('doNotMatch')\">\r\n                      Passwords do not match.\r\n                    </mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field class=\"mt-3\" style=\"width: 60%;\">\r\n                    <mat-select matInput disableOptionCentering panelClass=\"matSelectClass\"\r\n                      placeholder=\"Challenge Question\" formControlName=\"challengeQuestion\" required>\r\n                      <mat-option *ngFor=\"let question of questions\" [value]=\"question.index\">\r\n                        {{question.name}}\r\n                      </mat-option>\r\n                    </mat-select>\r\n                    <mat-error>Required</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-input-col pt-2 pb-2\">\r\n                  <mat-form-field>\r\n                    <input matInput placeholder=\"Challenge Answer\" formControlName=\"challengeAnswer\" autocomplete=\"off\"\r\n                      required>\r\n                    <mat-error>Required</mat-error>\r\n                  </mat-form-field>\r\n                </div>\r\n                <div class=\"flex-btn-row pt-2 pb-2\">\r\n                  <button class=\"btn btn-submit mt-3\" mat-raised-button type=\"submit\">Complete Registration</button>\r\n                </div>\r\n              </mat-card>\r\n            </form>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n</div>\r\n  \r\n  <epay-lib-common-confirmation *ngIf=\"openConfirmation\" [confirmationTitle]=\"confirmationTitle\"\r\n    [confirmationMessage]=\"confirmationMessage\" [confirmationEmailAddress]=\"confirmationEmailAddress\"\r\n    [confirmationNumber]=\"confirmationNumber\" [goToPrimary]=\"goToPrimary\" [goToPrimaryUrl]=\"goToPrimaryUrl\">\r\n  </epay-lib-common-confirmation>\r\n  ","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, AbstractControl, Validators, FormControl, FormGroupDirective, NgForm } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { CommonSettings, ErrorHandlerService, IChallengeQuestion, RegisterLibraryService } from 'epay-library';\r\nimport { IEmpLogin } from 'epay-library/lib/features/employer/models/user/employerLogin';\r\nimport { IEmpProfileAccountLogin } from 'epay-library/lib/features/employer/models/user/profile/employerProfileAccountLogin';\r\nimport { IEmpProfileAccountResults } from 'epay-library/lib/features/employer/models/user/profile/employerProfileAccountResults';\r\nimport { debounceTime } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'epay-secondary-registration',\r\n  templateUrl: './secondary-registration.component.html'\r\n})\r\nexport class EMPSecondaryRegistrationComponent implements OnInit {\r\n  pagetitle = 'Employer: Complete Secondary Account Registration';\r\n  baseurl: string;\r\n  userEmailForLogin: boolean;\r\n\r\n  constructor() {\r\n    this.baseurl = CommonSettings.BaseApi;\r\n    this.userEmailForLogin = CommonSettings.UseEmailForLogin;\r\n   }\r\n\r\n  ngOnInit() {\r\n  }\r\n}","<epay-page-content [pagetitle]=\"pagetitle\">\r\n  <div class=\"page-content-main pa-0\" id=\"page-content-main\">\r\n    <!-- <epay-lib-employer-secondary-registration\r\n        [baseurl] = \"baseurl\"\r\n        [userEmailForLogin] = \"userEmailForLogin\">\r\n    </epay-lib-employer-secondary-registration> -->\r\n\r\n    <employer-secondary-registration \r\n    [baseurl] = \"baseurl\"\r\n    [userEmailForLogin] = \"userEmailForLogin\">\r\n    </employer-secondary-registration>\r\n  </div>\r\n</epay-page-content>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuardService } from 'epay-library';\r\nimport { EMPACHDInformationComponent } from './components/achd/information/achd-information.component';\r\nimport { EMPACHDLandingComponent } from './components/achd/landing/achd.landing.component';\r\nimport { EMPPaymentComponent } from './components/achd/payment/payment.component';\r\nimport { EMPPaymentAccountListComponent } from './components/achd/paymentaccount/paymentaccountlist.component';\r\nimport { EMPCreditCardLandingComponent } from './components/creditcard/landing/creditcard.landing.component';\r\nimport { EMPCreditCardPaymentComponent } from './components/creditcard/payment/creditcard.payment.component';\r\nimport { EMPEFTCreateFileComponent } from './components/eft/createfile/createfile.component';\r\nimport { EMPEFTInformationComponent } from './components/eft/information/eft-information.component';\r\nimport { EMPEFTLandingComponent } from './components/eft/landing/eft.landing.component';\r\nimport { EMPHomeComponent } from './components/home/home.component';\r\nimport { EMPProfileComponent } from './components/profile/profile.component';\r\nimport { EMPRegisterComponent } from './components/register/employer.register.component';\r\nimport { EMPSecondaryRegistrationComponent } from './components/register/secondary-registration/secondary-registration.component';\r\nimport { EmployerModuleComponent } from './employer.module.component';\r\n\r\nconst routes: Routes = [\r\n  { path: '', component: EmployerModuleComponent },\r\n  { path: 'register', component: EMPRegisterComponent },\r\n  {\r\n    path: 'completeregistration',\r\n    component: EMPSecondaryRegistrationComponent,\r\n  },\r\n\r\n  {\r\n    path: 'home',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPHomeComponent,\r\n  },\r\n\r\n  {\r\n    path: 'creditcard/payment',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPCreditCardPaymentComponent,\r\n  },\r\n  {\r\n    path: 'creditcard/landing',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPCreditCardLandingComponent,\r\n  },\r\n\r\n  {\r\n    path: 'profile',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPProfileComponent,\r\n  },\r\n  {\r\n    path: 'profile/settings',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPProfileComponent,\r\n  },\r\n\r\n  {\r\n    path: 'achd/landing',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPACHDLandingComponent,\r\n  },\r\n  { path: 'achd/information', component: EMPACHDInformationComponent },\r\n  {\r\n    path: 'achd/payment',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPPaymentComponent,\r\n  },\r\n  {\r\n    path: 'achd/paymentaccounts',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPPaymentAccountListComponent,\r\n  },\r\n\r\n  {\r\n    path: 'eft/landing',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPEFTLandingComponent,\r\n  },\r\n  { path: 'eft/information', component: EMPEFTInformationComponent },\r\n  {\r\n    path: 'eft/createfile',\r\n    canActivate: [AuthGuardService],\r\n    component: EMPEFTCreateFileComponent,\r\n  },\r\n\r\n  { path: '**', component: EMPHomeComponent },\r\n];\r\n\r\n@NgModule({\r\n  imports: [RouterModule.forChild(routes)],\r\n  exports: [RouterModule],\r\n})\r\nexport class EmployerRoutingModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-employer.module',\r\n  templateUrl: './employer.module.component.html'\r\n})\r\nexport class EmployerModuleComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<router-outlet></router-outlet>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { EmployerRoutingModule } from './employer-routing.module';\r\nimport { EmployerModuleComponent } from './employer.module.component';\r\nimport { EmployerLibraryModule, MaterialLibraryModule } from 'epay-library';\r\nimport { HelperLibraryModule } from 'epay-library';\r\nimport { CommonLibraryModule } from 'epay-library';\r\nimport { BaseLayoutModule } from '../layout/base-layout.module';\r\nimport { EMPHomeComponent } from './components/home/home.component';\r\n\r\nimport { EMPRegisterComponent } from './components/register/employer.register.component';\r\nimport { EMPACHDLandingComponent } from './components/achd/landing/achd.landing.component';\r\nimport { EMPCreditCardLandingComponent } from './components/creditcard/landing/creditcard.landing.component';\r\nimport { EMPCreditCardPaymentComponent } from './components/creditcard/payment/creditcard.payment.component';\r\nimport { EMPEFTCreateFileComponent } from './components/eft/createfile/createfile.component';\r\nimport { EMPEFTInformationComponent } from './components/eft/information/eft-information.component';\r\nimport { EMPEFTLandingComponent } from './components/eft/landing/eft.landing.component';\r\nimport { EMPProfileComponent } from './components/profile/profile.component';\r\nimport { EMPACHDInformationComponent } from './components/achd/information/achd-information.component';\r\nimport { EMPPaymentComponent } from './components/achd/payment/payment.component';\r\nimport { EMPPaymentAccountListComponent } from './components/achd/paymentaccount/paymentaccountlist.component';\r\nimport { EMPSecondaryRegistrationComponent } from './components/register/secondary-registration/secondary-registration.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { MaskDataPipe } from 'epay-library';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { ngxInputRegulateModule } from 'ngx-input-regulate';\r\nimport { InteractiveCreditCardEMPComponent } from './components/creditcard/payment/interactive-credit-card-emp/interactive-credit-card-emp.component';\r\nimport { EMPProfileSecurityComponent } from './components/profile/empprofile-security/empprofile-security.component';\r\nimport { EmployerProfileAccountComponent } from './components/profile/employer-profile-account/employer-profile-account.component';\r\nimport { EmployerSecondaryRegistrationComponent } from './components/register/secondary-registration/empsecondary-registration/empsecondary-registration.component';\r\nimport { EMPSecurityCodeHelpComponent } from './components/creditcard/payment/empsecurity-code-help/empsecurity-code-help.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    EmployerModuleComponent,\r\n    EMPHomeComponent,\r\n    EMPRegisterComponent,\r\n    EMPACHDLandingComponent,\r\n    EMPEFTLandingComponent,\r\n    EMPProfileComponent,\r\n    EMPPaymentComponent,\r\n    EMPPaymentAccountListComponent,\r\n    EMPSecondaryRegistrationComponent,\r\n    EMPACHDInformationComponent,\r\n    EMPEFTInformationComponent,\r\n    EMPEFTCreateFileComponent,\r\n    EMPCreditCardPaymentComponent,\r\n    EMPCreditCardLandingComponent,\r\n    InteractiveCreditCardEMPComponent,\r\n    EMPProfileSecurityComponent,\r\n    EmployerProfileAccountComponent,\r\n    EmployerSecondaryRegistrationComponent,\r\n    EMPSecurityCodeHelpComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    EmployerRoutingModule,\r\n    EmployerLibraryModule,\r\n    HelperLibraryModule,\r\n    CommonLibraryModule,\r\n    BaseLayoutModule,\r\n    MatFormFieldModule,\r\n    MaterialLibraryModule,\r\n    ReactiveFormsModule,\r\n    FormsModule,\r\n    ngxInputRegulateModule,\r\n    MatCardModule,\r\n    MatTabsModule,\r\n    MatTooltipModule,\r\n    NgxMaskModule.forRoot(),\r\n  ],\r\n  providers: [MaskDataPipe],\r\n})\r\nexport class EmployerModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  HttpHeaderResponse,\r\n  HttpHeaders,\r\n  HttpParams,\r\n  HttpClient,\r\n  HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport { IEmpSearchResults, CommonSettings } from 'epay-library';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class EmployerService {\r\n  private serviceurl = CommonSettings.BaseApi;\r\n  private environment = CommonSettings.Environment;\r\n  private ecomGateway = 'EcommerceGateway/Ecommmerce';\r\n\r\n  HttpOptions = {\r\n    headers: new HttpHeaders(),\r\n    params: new HttpParams(),\r\n  };\r\n\r\n  constructor(private http: HttpClient) {}\r\n\r\n  getEmployerTerms() {\r\n    const file = 'assets/terms/employer/disclaimer.txt';\r\n    return this.http\r\n      .get(file, { responseType: 'text' })\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  getEFTInfo() {\r\n    const file = 'assets/information/eft.html';\r\n    return this.http\r\n      .get(file, { responseType: 'text' })\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  getACHDInfo() {\r\n    const file = 'assets/information/achd.html';\r\n    return this.http\r\n      .get(file, { responseType: 'text' })\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  getLoginHelp() {\r\n    const file = 'assets/help/loginHelpEmployer.html';\r\n    return this.http\r\n      .get(file, { responseType: 'text' })\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  getEmployers(\r\n    baseurl: string,\r\n    employerName: string,\r\n    employerEIN: string,\r\n    includeAllEmployers: boolean,\r\n    includeHasHold: boolean\r\n  ): Observable<IEmpSearchResults[]> {\r\n    const apiCmd = 'searchEmployer';\r\n    const gateway = 'EPayGateway/EPay/api/v1/Registration:';\r\n    this.HttpOptions.params = new HttpParams()\r\n      .set('thirdPartyName', employerName)\r\n      .set('ein', employerEIN === null ? '' : employerEIN)\r\n      .set('includeAllEmployers', includeAllEmployers) // false = don't show inactive accounts\r\n      .set('includeHasHold', includeHasHold); // false = bypass has hold check\r\n\r\n    return this.http\r\n      .get<IEmpSearchResults[]>(baseurl + gateway + apiCmd, this.HttpOptions)\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  private handleError(err: HttpErrorResponse) {\r\n    let errorMessage = '';\r\n    if (err.error instanceof ErrorEvent) {\r\n      errorMessage = `An error occurred: ${err.error.message}`;\r\n    } else {\r\n      errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n    }\r\n    console.log(errorMessage);\r\n    return throwError(() => err);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GlobalNavComponent } from './global-nav/global-nav.component';\r\nimport { PageContentComponent } from './page-content/page-content.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@NgModule({\r\n  declarations: [GlobalNavComponent, PageContentComponent],\r\n  imports: [CommonModule, RouterModule, NgbModule],\r\n  exports: [GlobalNavComponent, PageContentComponent],\r\n})\r\nexport class BaseLayoutModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from 'epay-library';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'epay-footer',\r\n  templateUrl: './footer.component.html',\r\n  styleUrls: ['./footer.component.scss'],\r\n})\r\nexport class FooterComponent implements OnInit {\r\n  username$: Observable<string> = of('');\r\n  usertype$: Observable<string> = of('');\r\n  isLoggedIn$: Observable<boolean> = of(false);\r\n\r\n  constructor(private authservice: AuthService) {}\r\n\r\n  ngOnInit() {\r\n    this.isLoggedIn$ = this.authservice.isLoggedIn;\r\n    this.username$ = this.authservice.currentUserName;\r\n    this.usertype$ = this.authservice.currentUserType;\r\n  }\r\n}\r\n","<footer class=\"page-footer\">\r\n  <div class=\"footer-nav \">\r\n    <ul class=\"footer-nav-menu\">\r\n      <li>\r\n        <div *ngIf=\"!(isLoggedIn$ | async)\">\r\n          <a [routerLink]=\"['/home']\">Home</a>\r\n        </div>\r\n        <div *ngIf=\"(isLoggedIn$ | async) && (usertype$ | async) === 'employer'\">\r\n          <a [routerLink]=\"['/employer/home']\">Home</a>\r\n        </div>\r\n        <div *ngIf=\"(isLoggedIn$ | async) && (usertype$ | async) === 'NCP'\">\r\n          <a [routerLink]=\"['/ncp/achd/landing']\">Home</a>\r\n        </div>\r\n      </li>\r\n      <li><a [routerLink]=\"['/demo']\">Demo</a></li>\r\n      <li><a [routerLink]=\"['/contact']\">Contact Us</a></li>\r\n      <li><a [routerLink]=\"['/privacypolicy']\">Privacy Policy</a></li>\r\n      <li><a [routerLink]=\"['/faq']\"> FAQs</a></li>\r\n      <li><a [routerLink]=\"['/securitypolicy']\">Security</a></li>\r\n    </ul>\r\n  </div>\r\n  <div class=\"footer-small-text\">\r\n    <p>Please read our <a [routerLink]=\"['/termsandconditions']\">Terms and Conditions</a> and\r\n      <a [routerLink]=\"['/webaccessibility']\">Web Accessibility Policy</a>\r\n    </p>\r\n  </div>\r\n</footer>","import {\r\n  Component,\r\n  Input,\r\n  ChangeDetectionStrategy,\r\n  ViewChild,\r\n  ElementRef,\r\n  HostListener,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n} from '@angular/core';\r\nimport { MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport {\r\n  AuthService,\r\n  EMPLOYER_PROFILE_SETTINGS_URL,\r\n  NCP_PROFILE_SETTINGS_URL,\r\n  CommonSettings\r\n} from 'epay-library';\r\nimport { Observable, of } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n  selector: 'epay-global-nav',\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  templateUrl: './global-nav.component.html',\r\n  styleUrls: ['./global-nav.component.scss'],\r\n})\r\nexport class GlobalNavComponent implements OnInit, OnChanges, OnDestroy {\r\n  sessionTimeout: string;\r\n  isGlobalNavOpen: boolean = false;\r\n  routerNavEndSubscription: Subscription;\r\n  employerProfileUrl = EMPLOYER_PROFILE_SETTINGS_URL;\r\n  ncpProfileUrl = NCP_PROFILE_SETTINGS_URL;\r\n\r\n  @Input() isMobile = false;\r\n  @Input() baseurl = '';\r\n\r\n  username$: Observable<string> = of('');\r\n  usertype$: Observable<string> = of('');\r\n  isLoggedIn$: Observable<boolean> = of(false);\r\n\r\n  @ViewChild('globalNavBlock', { static: true }) globalNavBlock:\r\n    | ElementRef\r\n    | undefined;\r\n  @ViewChild('mobileNavToggleBtn', { static: true })\r\n  mobileNavToggleBtn: ElementRef | undefined;\r\n\r\n  @HostListener('window:click', ['$event'])\r\n  onClickOutside(event: PointerEvent) {\r\n    const clickedEl = event.target;\r\n    const hasClickedOutsideNav =\r\n      !this.globalNavBlock!.nativeElement.contains(clickedEl) &&\r\n      !this.mobileNavToggleBtn!.nativeElement.contains(clickedEl);\r\n    if (hasClickedOutsideNav && this.isGlobalNavOpen) {\r\n      this.isGlobalNavOpen = false;\r\n    }\r\n  }\r\n\r\n  @HostListener('window:keyup', ['$event'])\r\n  onEscKey(event: KeyboardEvent) {\r\n    const whichKey = event.key;\r\n    if (this.isGlobalNavOpen && whichKey === 'Escape') {\r\n      this.isGlobalNavOpen = false;\r\n    }\r\n  }\r\n\r\n  constructor(\r\n    private authservice: AuthService,\r\n    private router: Router,\r\n    public snackbar: MatSnackBar\r\n  ) {\r\n    this.sessionTimeout = CommonSettings.TimeOutInMins;\r\n    this.routerNavEndSubscription = this.router.events\r\n      .pipe(filter((ev) => ev instanceof NavigationEnd))\r\n      .subscribe(() => {\r\n        this.isGlobalNavOpen = false;\r\n      });\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.isLoggedIn$ = this.authservice.isLoggedIn;\r\n    this.username$ = this.authservice.currentUserName;\r\n    this.usertype$ = this.authservice.currentUserType;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['isMobile'] && !this.isMobile) {\r\n      this.isGlobalNavOpen = false;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.routerNavEndSubscription.unsubscribe();\r\n  }\r\n\r\n  logout() {\r\n    this.authservice.logout(this.baseurl);\r\n    // this.isLoggedIn = false;\r\n    // this.usertype = '';\r\n    // this.username = '';\r\n    this.openSnackBar(\r\n      'You have been successfully logged out.',\r\n      3500,\r\n      'snackbar-success'\r\n    );\r\n  }\r\n\r\n  openSnackBar(message: string, time: number, style: string) {\r\n    const config = new MatSnackBarConfig();\r\n    config.horizontalPosition = 'center';\r\n    config.verticalPosition = 'top';\r\n    config.duration = time;\r\n    config.panelClass = style;\r\n    this.snackbar.open(message, '', config);\r\n  }\r\n\r\n  toggleGlobalNav(event: any): void {\r\n    this.isGlobalNavOpen = !this.isGlobalNavOpen;\r\n  }\r\n}\r\n","<nav [ngClass]=\"(isLoggedIn$ | async) ? 'authed' : 'unauthed'\" id=\"mainNav\">\r\n  <header class=\"site-header\">\r\n    <div class=\"branding\">\r\n\r\n      <div *ngIf=\"!(isLoggedIn$ | async)\">\r\n        <a class=\"logo-home-link\" [routerLink]=\"['/home']\">\r\n          <span class=\"logo-home-block\">\r\n            <img class=\"fit\" src=\"../../../../assets//images/thumbnail_okhs_logo.png\"></span>\r\n        </a>\r\n      </div>\r\n\r\n      <div *ngIf=\"(isLoggedIn$ | async) && (usertype$ | async) === 'employer'\">\r\n        <a class=\"logo-home-link\" [routerLink]=\"['/employer/home']\">\r\n          <span class=\"logo-home-block\">\r\n            <img class=\"fit\" src=\"../../../../assets//images/thumbnail_okhs_logo.png\"></span>\r\n        </a>\r\n      </div>\r\n\r\n      <div *ngIf=\"(isLoggedIn$ | async) && (usertype$ | async) === 'NCP'\">\r\n        <a class=\"logo-home-link\" [routerLink]=\"['/ncp/achd/landing']\">\r\n          <span class=\"logo-home-block\">\r\n            <img class=\"fit\" src=\"../../../../assets//images/thumbnail_okhs_logo.png\"></span>\r\n        </a>\r\n      </div>\r\n\r\n      <span class=\"site-title\">\r\n        <b class=\"tf-serif\">SMART Oklahoma <span class=\"text-unit\">Child Support</span></b>\r\n        <span class=\"subtitle tf-sans\">Internet Payment Website</span>\r\n      </span>\r\n    </div>\r\n    <div class=\"welcome welcome-area\">\r\n      <span *ngIf=\"(isLoggedIn$ | async) && !isMobile\">Welcome, {{username$ | async}} </span>\r\n    </div>\r\n    <button class=\"global-nav-toggler navbar-toggler\" type=\"button\" aria-expanded=\"false\"\r\n      aria-label=\"Toggle Global Navigation\" (click)=\"toggleGlobalNav($event)\" #mobileNavToggleBtn>\r\n      <b class=\"fa fa-bars fa-lg\"></b>\r\n    </button>\r\n  </header>\r\n  <div class=\"navbar navbar-expand-lg page-nav-block\">\r\n    <div id=\"global-nav-block\" class=\"collapse navbar-collapse\" [ngClass]=\"{'show': isGlobalNavOpen}\" #globalNavBlock>\r\n      <div *ngIf=\"(isLoggedIn$ | async); else elseBlock\" class=\"authed-nav-block\">\r\n        <div *ngIf=\"(usertype$ | async) === 'employer'; else ncpNavBlock\" class=\"employer-nav-block\" #employerNavBlock>\r\n          <ul ngbNav #navEmployer=\"ngbNav\" class=\"nav-pills global-nav-menu\">\r\n            <li [ngbNavItem]=\"1\">\r\n              <a class=\"nav-link global-nav-link\" [routerLink]=\"['/employer/home']\">Home</a>\r\n            </li>\r\n            <li [ngbNavItem]=\"2\" ngbDropdown>\r\n              <a href (click)=\"false\" class=\"nav-link\" ngbDropdownToggle>ACH Debit\r\n                <span class=\"fa fa-chevron-circle-down\"></span>\r\n              </a>\r\n              <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/landing']\" ngbDropdownItem>ACH Debit Home</a>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/payment']\" ngbDropdownItem>Create New\r\n                  Payment</a>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/paymentaccounts']\" ngbDropdownItem>Manage Bank\r\n                  Accounts</a>\r\n                <div class=\"dropdown-divider\"></div>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/information']\" ngbDropdownItem>About ACH\r\n                  Debit</a>\r\n              </div>\r\n            </li>\r\n            <li [ngbNavItem]=\"3\" ngbDropdown>\r\n              <a href (click)=false class=\"nav-link\" ngbDropdownToggle>ACH Credit (EFT/EDI)\r\n                <span class=\"fa fa-chevron-circle-down\"></span>\r\n              </a>\r\n              <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/eft/landing']\" ngbDropdownItem>ACH Credit (EFT/EDI)\r\n                  Home</a>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/eft/createfile']\" ngbDropdownItem>Reconcile\r\n                  Employees and/or Create\r\n                  File</a>\r\n                <div class=\"dropdown-divider\"></div>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/eft/information']\" ngbDropdownItem>About ACH Credit\r\n                  (EFT/EDI)</a>\r\n              </div>\r\n            </li>\r\n            <li [ngbNavItem]=\"4\" ngbDropdown>\r\n              <a href (click)=false class=\"nav-link\" ngbDropdownToggle>Credit Card\r\n                <span class=\"fa fa-chevron-circle-down\"></span>\r\n              </a>\r\n              <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/creditcard/landing']\" ngbDropdownItem>Credit Card\r\n                  Home</a>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/creditcard/payment']\" ngbDropdownItem>Make a Credit\r\n                  Card Payment</a>\r\n              </div>\r\n            </li>\r\n            <li [ngbNavItem]=\"5\" ngbDropdown>\r\n              <a href (click)=\"false\" class=\"nav-link\" ngbDropdownToggle>Helpful Links\r\n                <span class=\"fa fa-chevron-circle-down\"></span>\r\n              </a>\r\n              <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/information']\" ngbDropdownItem>ACH Debit </a>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/employer/eft/information']\" ngbDropdownItem>ACH Credit\r\n                  (EFT/EDI) </a>\r\n                <a class=\"dropdown-child\" download=\"employereft\" target=\"_blank\" href=\"/assets/forms/employereft.pdf\"\r\n                  ngbDropdownItem>\r\n                  Employer ACH Credit (EFT/ EDI) Packet\r\n                  <i class=\"fa fa-download\" aria-hidden=\"true\"></i></a>\r\n                <a class=\"dropdown-child\"\r\n                  href=\"https://www.nacha.org/system/files/resources/Child-Support-User-%20Guide-%20Feb%202017%202.pdf\"\r\n                  target=\"_blank\" ngbDropdownItem>NACHA&rsquo;s User Guide for Electronic Payments</a>\r\n                <a class=\"dropdown-child\" [routerLink]=\"['/demo']\" ngbDropdownItem>Website Help</a>\r\n              </div>\r\n            </li>\r\n            <li class=\"nav-spacing\" aria-hidden=\"true\"></li>\r\n            <li [ngbNavItem]=\"6\" ngbDropdown>\r\n              <a href (click)=false class=\"nav-link\" ngbDropdownToggle>Account\r\n                <span class=\"fa fa-user-circle-o\"></span>\r\n              </a>\r\n              <div class=\"dropdown-menu dropdown-menu-right\" ngbDropdownMenu>\r\n                <a class=\"dropdown-child\" [routerLink]=\"employerProfileUrl\" ngbDropdownItem>Profile and Settings</a>\r\n                <a class=\"dropdown-child\" (click)=\"logout()\" ngbDropdownItem>Log Out</a>\r\n              </div>\r\n            </li>\r\n          </ul>\r\n          <div [ngbNavOutlet]=\"navEmployer\" class=\"authed-global-nav-block\"></div>\r\n\r\n        </div>\r\n        <ng-template #ncpNavBlock>\r\n          <div class=\"ncp-nav-block\" id=\"ncp-nav-block\">\r\n            <ul ngbNav #navNcp=\"ngbNav\" class=\"nav-pills global-nav-menu\">\r\n              <li [ngbNavItem]=\"1\">\r\n                <a class=\"nav-link global-nav-link\" [routerLink]=\"['/ncp/achd/landing']\">Home</a>\r\n              </li>\r\n              <li [ngbNavItem]=\"2\" ngbDropdown>\r\n                <a href (click)=\"false\" class=\"nav-link\" ngbDropdownToggle>ACH Debit\r\n                  <span class=\"fa fa-chevron-circle-down\"></span>\r\n                </a>\r\n                <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/ncp/achd/landing']\" ngbDropdownItem>ACH Debit Home</a>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/ncp/achd/payment']\" ngbDropdownItem>Create New\r\n                    Payment</a>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/ncp/achd/paymentaccount']\" ngbDropdownItem>Manage Bank\r\n                    Accounts</a>\r\n                  <div class=\"dropdown-divider\"></div>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/ncp/achd/information']\" ngbDropdownItem>About ACH\r\n                    Debit</a>\r\n                </div>\r\n              </li>\r\n              <li [ngbNavItem]=\"3\" ngbDropdown>\r\n                <a href (click)=false class=\"nav-link\" ngbDropdownToggle>Credit Card\r\n                  <span class=\"fa fa-chevron-circle-down\"></span>\r\n                </a>\r\n                <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/ncp/creditcard']\" ngbDropdownItem>Make a Credit Card\r\n                    Payment\r\n                  </a>\r\n                </div>\r\n              </li>\r\n              <li [ngbNavItem]=\"5\" ngbDropdown>\r\n                <a href (click)=\"false\" class=\"nav-link\" ngbDropdownToggle>Helpful Links\r\n                  <span class=\"fa fa-chevron-circle-down\"></span>\r\n                </a>\r\n                <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/information']\" ngbDropdownItem>ACH Debit </a>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/employer/eft/information']\" ngbDropdownItem>ACH Credit\r\n                    (EFT/EDI) </a>\r\n                  <a class=\"dropdown-child\" download=\"employereft\" target=\"_blank\" href=\"/assets/forms/employereft.pdf\"\r\n                    ngbDropdownItem>\r\n                    Employer ACH Credit (EFT/ EDI) Packet\r\n                    <i class=\"fa fa-download\" aria-hidden=\"true\"></i></a>\r\n                  <a class=\"dropdown-child\"\r\n                    href=\"https://www.nacha.org/system/files/resources/Child-Support-User-%20Guide-%20Feb%202017%202.pdf\"\r\n                    target=\"_blank\" ngbDropdownItem>NACHA&rsquo;s User Guide for Electronic Payments</a>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/demo']\" ngbDropdownItem>Website Help</a>\r\n                </div>\r\n              </li>\r\n              <li class=\"nav-spacing\" aria-hidden=\"true\"></li>\r\n              <li [ngbNavItem]=\"5\" ngbDropdown>\r\n                <a href (click)=\"false\" class=\"nav-link global-nav-link\" ngbDropdownToggle>Account\r\n                  <span class=\"fa fa-user-circle-o\"></span>\r\n                </a>\r\n                <div class=\"dropdown-menu dropdown-menu-right\" ngbDropdownMenu>\r\n                  <a class=\"dropdown-child\" [routerLink]=\"['/ncp/profile/settings']\" ngbDropdownItem>Profile and\r\n                    Settings</a>\r\n                  <a class=\"dropdown-child\" (click)=\"logout()\" ngbDropdownItem>Log Out</a>\r\n                </div>\r\n              </li>\r\n            </ul>\r\n            <div [ngbNavOutlet]=\"navNcp\" class=\"authed-global-nav-block\"></div>\r\n          </div>\r\n\r\n        </ng-template>\r\n      </div>\r\n      <ng-template #elseBlock>\r\n        <ul ngbNav #nav=\"ngbNav\" class=\"nav-pills global-nav-menu\">\r\n          <li [ngbNavItem]=\"1\"><a class=\"nav-link global-nav-link\" [routerLink]=\"['/home']\">Home</a></li>\r\n          <li [ngbNavItem]=\"2\" ngbDropdown>\r\n            <a href class=\"nav-link global-nav-link\" (click)=false ngbDropdownToggle>Noncustodial Parent\r\n              <span class=\"fa fa-chevron-circle-down\"></span>\r\n            </a>\r\n            <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n              <!-- <a class=\"dropdown-child\" [routerLink]=\"['/ncp']\" ngbDropdownItem>Information</a>\r\n              <div class=\"dropdown-divider\"></div> -->\r\n              <a class=\"dropdown-child\" [routerLink]=\"['/login']\" ngbDropdownItem>Login</a>\r\n              <a class=\"dropdown-child\" [routerLink]=\"['/ncp/register']\" ngbDropdownItem>Create Account</a>\r\n            </div>\r\n          </li>\r\n          <li [ngbNavItem]=\"3\" ngbDropdown>\r\n            <a href class=\"nav-link global-nav-link\" (click)=false ngbDropdownToggle>Employers\r\n              <span class=\"fa fa-chevron-circle-down\"></span>\r\n            </a>\r\n            <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n              <a class=\"dropdown-child\" [state]=\"{ userType: 'employer' }\" [routerLink]=\"['/login']\"\r\n                ngbDropdownItem>Login</a>\r\n              <a class=\"dropdown-child\" [routerLink]=\"['/employer/register']\" ngbDropdownItem>Create Account</a>\r\n            </div>\r\n          </li>\r\n          <li [ngbNavItem]=\"4\" ngbDropdown>\r\n            <a href class=\"nav-link global-nav-link dropdown-menu-toggle\" (click)=false ngbDropdownToggle>Helpful Links\r\n              <span class=\"fa fa-chevron-circle-down\"></span>\r\n            </a>\r\n            <div class=\"dropdown-menu\" ngbDropdownMenu>\r\n              <a class=\"dropdown-child\" [routerLink]=\"['/employer/achd/information']\" ngbDropdownItem>ACH Debit </a>\r\n              <a class=\"dropdown-child\" [routerLink]=\"['/employer/eft/information']\" ngbDropdownItem>ACH Credit\r\n                (EFT/EDI) </a>\r\n              <a class=\"dropdown-child\" download=\"employereft\" target=\"_blank\" href=\"/assets/forms/employereft.pdf\"\r\n                ngbDropdownItem>\r\n                Employer EFT/EDI Packet\r\n                <i class=\"fa fa-download\" aria-hidden=\"true\"></i></a>\r\n              <a class=\"dropdown-child\"\r\n                href=\"https://www.nacha.org/system/files/resources/Child-Support-User-%20Guide-%20Feb%202017%202.pdf\"\r\n                target=\"_blank\" ngbDropdownItem>NACHA&rsquo;s User Guide for Electronic Payments</a>\r\n              <a class=\"dropdown-child\" [routerLink]=\"['/demo']\" ngbDropdownItem>Website Help</a>\r\n            </div>\r\n          </li>\r\n        </ul>\r\n        <div [ngbNavOutlet]=\"nav\" class=\"unauthed-global-nav-block\"></div>\r\n      </ng-template>\r\n    </div>\r\n  </div>\r\n</nav>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'epay-page-content',\r\n  templateUrl: './page-content.component.html',\r\n  styleUrls: ['./page-content.component.scss'],\r\n})\r\nexport class PageContentComponent implements OnInit {\r\n  @Input() pagetitle = '';\r\n\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","<div class=\"page-title-bar\">\r\n  <h1 class=\"page-title\">\r\n    {{pagetitle}}\r\n  </h1>\r\n</div>\r\n<div class=\"page-content footer-gap\">\r\n  <!--Container-->\r\n  <div class=\"page-container\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n  selector: 'app-error-dialog',\r\n  templateUrl: './error-dialog.component.html'\r\n})\r\nexport class ErrorDialogComponent implements OnInit {\r\n  title: string;\r\n  message: string;\r\n  message2: string;\r\n  message3: string;\r\n  startTime: string;\r\n  endTime: string;\r\n  showDialogButton: boolean;\r\n  acctdetail: string;\r\n\r\n  constructor(    \r\n    public dialogRef: MatDialogRef<ErrorDialogComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: ErrorHandlerDialogModel) { \r\n        // Update view with given values\r\n        this.title = data.title;\r\n        this.message = data.message;\r\n        this.message2 = data.message2;\r\n        this.message3 = data.message3;\r\n        this.startTime = data.startTime;\r\n        this.endTime = data.endTime;\r\n        this.acctdetail = '';\r\n        this.showDialogButton = data.showDialogButton;\r\n        dialogRef.disableClose = true;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  onDismiss(): void {\r\n    this.dialogRef.close(true);\r\n  }\r\n\r\n}\r\n/**\r\n * Class to represent error handler dialog model.\r\n *\r\n * It has been kept here to keep it as part of helper components.\r\n */\r\nexport class ErrorHandlerDialogModel {\r\n  constructor(\r\n    public title: string,\r\n    public message: string,\r\n    public message2: string,\r\n    public message3: string,\r\n    public startTime: string,\r\n    public endTime: string,\r\n    public showDialogButton: boolean\r\n  ) {}\r\n}\r\n","<div class=\"text-center\">\r\n    <h2 mat-dialog-title>\r\n      <span class=\"fa fa-exclamation-triangle fa-lg-red\"></span>\r\n      {{title}}\r\n    </h2>\r\n  \r\n    <div mat-dialog-content>\r\n      <p>{{message}}</p>\r\n    </div>\r\n    <div *ngIf=\"startTime\" mat-dialog-content>\r\n      <p class=\"text-center\">\r\n        {{startTime}} and {{endTime}}\r\n      </p>\r\n    </div>\r\n    <div mat-dialog-content>\r\n      <p class=\"text-center\">\r\n        {{message2}}\r\n      </p>\r\n    </div>\r\n    <div mat-dialog-content>\r\n      <h5>\r\n        {{message3}}\r\n      </h5>\r\n    </div>\r\n  \r\n    <div *ngIf=\"showDialogButton\" mat-dialog-actions>\r\n      <button class=\"btn btn-dialog-primary\" mat-raised-button (click)=\"onDismiss()\">OK</button>\r\n    </div>\r\n  </div>","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { BusyService } from 'epay-library';\r\n\r\n@Injectable()\r\nexport class BusyInterceptor implements HttpInterceptor {\r\n  excludeAPIs: string[];\r\n\r\n  constructor(private busyService: BusyService) {\r\n    this.excludeAPIs = [];\r\n    // add api commands that we don't block ui\r\n    this.excludeAPIs.push('searchDuplicateLoginId');\r\n    this.excludeAPIs.push('getChallengeQuestion');\r\n    this.excludeAPIs.push('validateChallengeAnswer');\r\n    this.excludeAPIs.push('searchEmployer');\r\n    this.excludeAPIs.push('searchDuplicateEmail');\r\n    this.excludeAPIs.push('searchDuplicateEin');\r\n    this.excludeAPIs.push('searchPendingRegistration');\r\n    this.excludeAPIs.push('ScheduledPayments:checkParticipants');\r\n    this.excludeAPIs.push('ScheduledPayments:getNextScheduledDate');\r\n    this.excludeAPIs.push('ScheduledPayments:getEarliestStartDateForNewPayment');\r\n    this.excludeAPIs.push('ScheduledPayments:activeInactive');\r\n    this.excludeAPIs.push('ScheduledPayments:paymentHistory');\r\n    this.excludeAPIs.push('ScheduledPayments:activeInactive');\r\n    this.excludeAPIs.push('ScheduledPaymentAccounts:withStatusAndCounts');\r\n    this.excludeAPIs.push('Registration:states');\r\n    this.excludeAPIs.push('ACHG:getGeneratedFile');\r\n    this.excludeAPIs.push('CreditCard:createCreditCardPaymentEmployer');\r\n    this.excludeAPIs.push('Registration:ssnAndCaseNumberValidation');\r\n    this.excludeAPIs.push('CreditCard:listCases');\r\n  }\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    const msg = req.method === 'GET' ? 'Loading ...' : 'Saving ...';\r\n    if (!this.blockUIExcept(req.url.toString())) {\r\n      this.busyService.increment(msg);\r\n      return next.handle(req).pipe(\r\n        finalize(() => {\r\n          this.busyService.decrement();\r\n        })\r\n      );\r\n    } else {\r\n      return next.handle(req).pipe(\r\n        finalize(() => {\r\n          this.busyService.staystill();\r\n        })\r\n      );\r\n    }\r\n  }\r\n\r\n  blockUIExcept(url: string): boolean {\r\n  let block = false;\r\n  for (const api of this.excludeAPIs) {\r\n    if (url.toLowerCase().includes(api.toLowerCase())) {\r\n      block = true;\r\n      break;\r\n    } else {\r\n      block = false;\r\n    }\r\n  }\r\n  return block;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { Guid } from 'guid-typescript';\r\n\r\n@Injectable()\r\nexport class RequestInterceptor implements HttpInterceptor {\r\n\r\n  requestId = '';\r\n  constructor() {}\r\n\r\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\r\n    let request;\r\n    let guid = Guid.create().toString();\r\n\r\n    request = req.clone({\r\n      params:  req.params.set(\"requestId\", guid)\r\n    });\r\n\r\n    return next.handle(request) as any;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor,\r\n} from '@angular/common/http';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { CommonSettings } from 'epay-library';\r\nimport { AuthService } from 'epay-library';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n  token = '';\r\n  excludeConfig: string[] = [];\r\n\r\n  constructor(private authservice: AuthService) {\r\n    this.excludeConfig.push('/assets/config/config.json');\r\n    this.excludeConfig.push('EPay/api/v1/Parameters');\r\n  }\r\n\r\n  intercept(\r\n    req: HttpRequest<any>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<any>> {\r\n    this.authservice.currentUserToken.subscribe({\r\n      next: (result: any) => (this.token = result),\r\n    });\r\n    let request;\r\n\r\n    if (this.skipConfig(req.url.toString())) {\r\n      request = req.clone({\r\n        setHeaders: {\r\n          Client: environment.clientID,\r\n        },\r\n      });\r\n      return next.handle(request) as any;\r\n    } else {\r\n      if (this.token !== null) {\r\n        if (this.token.startsWith('\"')) {\r\n          this.token = this.token.substring(1, this.token.length - 1);\r\n        }\r\n      }\r\n\r\n      if (this.token !== null && this.token !== undefined) {\r\n        request = req.clone({\r\n          setHeaders: {\r\n            Authorization: `Bearer ${this.token}`,\r\n            Environment: CommonSettings.Environment,\r\n            Client: CommonSettings.ClientID,\r\n            ClientName: CommonSettings.ClientName,\r\n          },\r\n        });\r\n      } else {\r\n        request = req.clone({\r\n          setHeaders: {\r\n            Environment:\r\n              CommonSettings.Environment === undefined\r\n                ? ''\r\n                : CommonSettings.Environment,\r\n            Client:\r\n              CommonSettings.ClientID === undefined\r\n                ? ''\r\n                : CommonSettings.ClientID,\r\n            ClientName:\r\n              CommonSettings.ClientName === undefined\r\n                ? ''\r\n                : CommonSettings.ClientName,\r\n          },\r\n        });\r\n      }\r\n\r\n      return next.handle(request) as any;\r\n    }\r\n  }\r\n\r\n  skipConfig(url: string): boolean {\r\n    let block = false;\r\n    for (const api of this.excludeConfig) {\r\n      if (url.toLowerCase().includes(api.toLowerCase())) {\r\n        block = true;\r\n        break;\r\n      } else {\r\n        block = false;\r\n      }\r\n    }\r\n    return block;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService, CommonSettings } from 'epay-library';\r\n\r\nvar MINUTES_UNITL_AUTO_LOGOUT = 0; // in mins\r\n//const MINUTES_UNITL_AUTO_LOGOUT = 15\r\nconst CHECK_INTERVAL = 15000; // in ms\r\nconst WARNING_TIME = 30000;\r\nconst STORE_KEY =  'lastAction';\r\n\r\n@Injectable(\r\n {\r\n  providedIn: 'root'\r\n })\r\n\r\nexport class AutoLogoutService {\r\n  val: any;\r\n  isLoggedIn = false;\r\n\r\n\r\n public getLastAction() {\r\n    // tslint:disable-next-line:radix\r\n    return parseInt(sessionStorage.getItem(STORE_KEY)!);\r\n  }\r\n public setLastAction(lastAction: number) {\r\n    sessionStorage.setItem(STORE_KEY, lastAction.toString());\r\n  }\r\n\r\n  constructor(private router: Router,\r\n              private authservice: AuthService) {\r\n\r\n    MINUTES_UNITL_AUTO_LOGOUT = +CommonSettings.TimeOutInMins;\r\n    this.authservice.isLoggedIn.subscribe(status => this.isLoggedIn = status);\r\n    this.check();\r\n    this.initListener();\r\n    this.initInterval();\r\n    sessionStorage.setItem(STORE_KEY, Date.now().toString());\r\n  }\r\n\r\n  initListener() {\r\n    document.body.addEventListener('click', () => this.reset());\r\n    document.body.addEventListener('mouseover', () => this.reset());\r\n    document.body.addEventListener('mouseout', () => this.reset());\r\n    document.body.addEventListener('keydown', () => this.reset());\r\n    document.body.addEventListener('keyup', () => this.reset());\r\n    document.body.addEventListener('keypress', () => this.reset());\r\n    window.addEventListener('storage', () => this.storageEvt());\r\n  }\r\n\r\n  reset() {\r\n    this.setLastAction(Date.now());\r\n  }\r\n\r\n  initInterval() {\r\n    setInterval(() => {\r\n      this.check();\r\n    }, CHECK_INTERVAL);\r\n    //console.log(CHECK_INTERVAL)\r\n  }\r\n\r\n  check() {\r\n    if (this.isLoggedIn) {\r\n        const now = Date.now();\r\n        const timeleft = this.getLastAction() + +MINUTES_UNITL_AUTO_LOGOUT * 60 * 1000;\r\n        const diff = timeleft - now;\r\n        const isWarning = diff < WARNING_TIME;\r\n        const isTimeout = diff < 0;\r\n        if (isWarning) {\r\n            this.router.navigateByUrl('logoutwarning');\r\n        }\r\n\r\n        if (isTimeout) {\r\n          this.authservice.logout(CommonSettings.BaseApi);\r\n        }\r\n\r\n        //console.log(diff)\r\n    }\r\n  }\r\n\r\n  storageEvt() {\r\n    this.val = sessionStorage.getItem(STORE_KEY);\r\n  }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, catchError, throwError } from 'rxjs';\r\nimport { IProcessCreditCard} from '../models/creditcard-payment.model';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CreditCardPaymentService {\r\n  gateway = 'EPayGateway/EPay/api/v1/';\r\n\r\n  httpOptions = {\r\n    headers: new HttpHeaders(),\r\n    params: new HttpParams(),\r\n  };\r\n\r\n  constructor(private http: HttpClient) { }\r\n\r\n  resetHeader() {\r\n    this.httpOptions.headers = new HttpHeaders().set(\r\n      'Content-Type',\r\n      'application/json'\r\n    );\r\n  }\r\n\r\n  insertProcessCreditCard(\r\n    baseurl: string,\r\n    ccPayment: IProcessCreditCard\r\n  ): Observable<any> {\r\n    const apiCmd = 'CreditCard:processCreditCard';\r\n    this.resetHeader();\r\n\r\n    return this.http\r\n      .post<any>(baseurl + this.gateway + apiCmd, ccPayment)\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  private handleError(err: HttpErrorResponse) {\r\n    let errorMessage = '';\r\n    if (err.error instanceof ErrorEvent) {\r\n      errorMessage = `An Error Occurred: ${err.error.message}`;\r\n    } else if (err.status === 404 || err.status === 409) {\r\n      return throwError(() => err);\r\n    } else {\r\n      errorMessage = `Server returned code: ${err.status}, error message is: ${err.message}`;\r\n      console.log('Error Occurred: ' + errorMessage);\r\n    }\r\n    return throwError(() => err);\r\n  }\r\n}\r\n\r\n","import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\r\nimport { REQUEST } from '@nguniversal/express-engine/tokens';\r\nimport { Request }  from 'express';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\nimport {isPlatformServer} from '@angular/common';\r\n\r\n@Injectable()\r\nexport class UniversalDeviceDetectorService extends DeviceDetectorService {\r\n  constructor(@Inject(PLATFORM_ID) platformId: any, @Optional() @Inject(REQUEST) request: Request) {\r\n    super(platformId);\r\n    if (isPlatformServer(platformId)) {\r\n      super.setDeviceInfo((request.headers['user-agent'] as string) || '');\r\n    }\r\n  }\r\n}\r\n","export const environment = {\r\n  clientID: '3',\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { CommonSettings } from 'epay-library';\r\nimport { AppModule } from './app/app.module';\r\n\r\nif (\r\n  CommonSettings.Environment === 'PROD' ||\r\n  CommonSettings.Environment === 'prod'\r\n) {\r\n  enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n  .bootstrapModule(AppModule)\r\n  .catch((err) => {\r\n    console.error(err);\r\n    const errorMsgTitle = document.querySelector('#errorMsgTitle');\r\n    const errorMsgElement = document.querySelector('#errorMsgElement');\r\n    let message = '';\r\n    let title =\r\n      'An error occurred loading the website.  Please try back at a later time.';\r\n    if (err) {\r\n      if (err.message) {\r\n        message = 'ERROR: ' + err.message;\r\n      } else {\r\n        message = 'ERROR: ' + err;\r\n      }\r\n    }\r\n    errorMsgTitle!.textContent = title;\r\n    errorMsgElement!.textContent = message;\r\n  });\r\n","var map = {\n\t\"./af\": 2139,\n\t\"./af.js\": 2139,\n\t\"./ar\": 2600,\n\t\"./ar-dz\": 1001,\n\t\"./ar-dz.js\": 1001,\n\t\"./ar-kw\": 9842,\n\t\"./ar-kw.js\": 9842,\n\t\"./ar-ly\": 9826,\n\t\"./ar-ly.js\": 9826,\n\t\"./ar-ma\": 5452,\n\t\"./ar-ma.js\": 5452,\n\t\"./ar-sa\": 1802,\n\t\"./ar-sa.js\": 1802,\n\t\"./ar-tn\": 4094,\n\t\"./ar-tn.js\": 4094,\n\t\"./ar.js\": 2600,\n\t\"./az\": 6375,\n\t\"./az.js\": 6375,\n\t\"./be\": 2086,\n\t\"./be.js\": 2086,\n\t\"./bg\": 5236,\n\t\"./bg.js\": 5236,\n\t\"./bm\": 1704,\n\t\"./bm.js\": 1704,\n\t\"./bn\": 4506,\n\t\"./bn-bd\": 4466,\n\t\"./bn-bd.js\": 4466,\n\t\"./bn.js\": 4506,\n\t\"./bo\": 7891,\n\t\"./bo.js\": 7891,\n\t\"./br\": 3348,\n\t\"./br.js\": 3348,\n\t\"./bs\": 4848,\n\t\"./bs.js\": 4848,\n\t\"./ca\": 5928,\n\t\"./ca.js\": 5928,\n\t\"./cs\": 1839,\n\t\"./cs.js\": 1839,\n\t\"./cv\": 9151,\n\t\"./cv.js\": 9151,\n\t\"./cy\": 5761,\n\t\"./cy.js\": 5761,\n\t\"./da\": 6686,\n\t\"./da.js\": 6686,\n\t\"./de\": 5177,\n\t\"./de-at\": 2311,\n\t\"./de-at.js\": 2311,\n\t\"./de-ch\": 4407,\n\t\"./de-ch.js\": 4407,\n\t\"./de.js\": 5177,\n\t\"./dv\": 9729,\n\t\"./dv.js\": 9729,\n\t\"./el\": 430,\n\t\"./el.js\": 430,\n\t\"./en-au\": 8430,\n\t\"./en-au.js\": 8430,\n\t\"./en-ca\": 1139,\n\t\"./en-ca.js\": 1139,\n\t\"./en-gb\": 6747,\n\t\"./en-gb.js\": 6747,\n\t\"./en-ie\": 9466,\n\t\"./en-ie.js\": 9466,\n\t\"./en-il\": 2121,\n\t\"./en-il.js\": 2121,\n\t\"./en-in\": 1167,\n\t\"./en-in.js\": 1167,\n\t\"./en-nz\": 2030,\n\t\"./en-nz.js\": 2030,\n\t\"./en-sg\": 3646,\n\t\"./en-sg.js\": 3646,\n\t\"./eo\": 3126,\n\t\"./eo.js\": 3126,\n\t\"./es\": 8819,\n\t\"./es-do\": 9293,\n\t\"./es-do.js\": 9293,\n\t\"./es-mx\": 5304,\n\t\"./es-mx.js\": 5304,\n\t\"./es-us\": 6068,\n\t\"./es-us.js\": 6068,\n\t\"./es.js\": 8819,\n\t\"./et\": 3291,\n\t\"./et.js\": 3291,\n\t\"./eu\": 1400,\n\t\"./eu.js\": 1400,\n\t\"./fa\": 43,\n\t\"./fa.js\": 43,\n\t\"./fi\": 6138,\n\t\"./fi.js\": 6138,\n\t\"./fil\": 1466,\n\t\"./fil.js\": 1466,\n\t\"./fo\": 6803,\n\t\"./fo.js\": 6803,\n\t\"./fr\": 5523,\n\t\"./fr-ca\": 697,\n\t\"./fr-ca.js\": 697,\n\t\"./fr-ch\": 9001,\n\t\"./fr-ch.js\": 9001,\n\t\"./fr.js\": 5523,\n\t\"./fy\": 1116,\n\t\"./fy.js\": 1116,\n\t\"./ga\": 6151,\n\t\"./ga.js\": 6151,\n\t\"./gd\": 3094,\n\t\"./gd.js\": 3094,\n\t\"./gl\": 1279,\n\t\"./gl.js\": 1279,\n\t\"./gom-deva\": 4458,\n\t\"./gom-deva.js\": 4458,\n\t\"./gom-latn\": 6320,\n\t\"./gom-latn.js\": 6320,\n\t\"./gu\": 8658,\n\t\"./gu.js\": 8658,\n\t\"./he\": 2153,\n\t\"./he.js\": 2153,\n\t\"./hi\": 8732,\n\t\"./hi.js\": 8732,\n\t\"./hr\": 4960,\n\t\"./hr.js\": 4960,\n\t\"./hu\": 2623,\n\t\"./hu.js\": 2623,\n\t\"./hy-am\": 1862,\n\t\"./hy-am.js\": 1862,\n\t\"./id\": 1068,\n\t\"./id.js\": 1068,\n\t\"./is\": 1260,\n\t\"./is.js\": 1260,\n\t\"./it\": 2991,\n\t\"./it-ch\": 8063,\n\t\"./it-ch.js\": 8063,\n\t\"./it.js\": 2991,\n\t\"./ja\": 6854,\n\t\"./ja.js\": 6854,\n\t\"./jv\": 2390,\n\t\"./jv.js\": 2390,\n\t\"./ka\": 5958,\n\t\"./ka.js\": 5958,\n\t\"./kk\": 7216,\n\t\"./kk.js\": 7216,\n\t\"./km\": 1061,\n\t\"./km.js\": 1061,\n\t\"./kn\": 4060,\n\t\"./kn.js\": 4060,\n\t\"./ko\": 5216,\n\t\"./ko.js\": 5216,\n\t\"./ku\": 894,\n\t\"./ku.js\": 894,\n\t\"./ky\": 609,\n\t\"./ky.js\": 609,\n\t\"./lb\": 3591,\n\t\"./lb.js\": 3591,\n\t\"./lo\": 8381,\n\t\"./lo.js\": 8381,\n\t\"./lt\": 6118,\n\t\"./lt.js\": 6118,\n\t\"./lv\": 7889,\n\t\"./lv.js\": 7889,\n\t\"./me\": 4274,\n\t\"./me.js\": 4274,\n\t\"./mi\": 9226,\n\t\"./mi.js\": 9226,\n\t\"./mk\": 528,\n\t\"./mk.js\": 528,\n\t\"./ml\": 7938,\n\t\"./ml.js\": 7938,\n\t\"./mn\": 5456,\n\t\"./mn.js\": 5456,\n\t\"./mr\": 4393,\n\t\"./mr.js\": 4393,\n\t\"./ms\": 3647,\n\t\"./ms-my\": 3049,\n\t\"./ms-my.js\": 3049,\n\t\"./ms.js\": 3647,\n\t\"./mt\": 6097,\n\t\"./mt.js\": 6097,\n\t\"./my\": 6277,\n\t\"./my.js\": 6277,\n\t\"./nb\": 7245,\n\t\"./nb.js\": 7245,\n\t\"./ne\": 3988,\n\t\"./ne.js\": 3988,\n\t\"./nl\": 2557,\n\t\"./nl-be\": 478,\n\t\"./nl-be.js\": 478,\n\t\"./nl.js\": 2557,\n\t\"./nn\": 9046,\n\t\"./nn.js\": 9046,\n\t\"./oc-lnc\": 3131,\n\t\"./oc-lnc.js\": 3131,\n\t\"./pa-in\": 1731,\n\t\"./pa-in.js\": 1731,\n\t\"./pl\": 8409,\n\t\"./pl.js\": 8409,\n\t\"./pt\": 1178,\n\t\"./pt-br\": 6558,\n\t\"./pt-br.js\": 6558,\n\t\"./pt.js\": 1178,\n\t\"./ro\": 4138,\n\t\"./ro.js\": 4138,\n\t\"./ru\": 3380,\n\t\"./ru.js\": 3380,\n\t\"./sd\": 2889,\n\t\"./sd.js\": 2889,\n\t\"./se\": 2774,\n\t\"./se.js\": 2774,\n\t\"./si\": 3776,\n\t\"./si.js\": 3776,\n\t\"./sk\": 9597,\n\t\"./sk.js\": 9597,\n\t\"./sl\": 3871,\n\t\"./sl.js\": 3871,\n\t\"./sq\": 4228,\n\t\"./sq.js\": 4228,\n\t\"./sr\": 774,\n\t\"./sr-cyrl\": 1928,\n\t\"./sr-cyrl.js\": 1928,\n\t\"./sr.js\": 774,\n\t\"./ss\": 3176,\n\t\"./ss.js\": 3176,\n\t\"./sv\": 2422,\n\t\"./sv.js\": 2422,\n\t\"./sw\": 2530,\n\t\"./sw.js\": 2530,\n\t\"./ta\": 5731,\n\t\"./ta.js\": 5731,\n\t\"./te\": 8025,\n\t\"./te.js\": 8025,\n\t\"./tet\": 2801,\n\t\"./tet.js\": 2801,\n\t\"./tg\": 9958,\n\t\"./tg.js\": 9958,\n\t\"./th\": 4251,\n\t\"./th.js\": 4251,\n\t\"./tk\": 5494,\n\t\"./tk.js\": 5494,\n\t\"./tl-ph\": 8568,\n\t\"./tl-ph.js\": 8568,\n\t\"./tlh\": 3158,\n\t\"./tlh.js\": 3158,\n\t\"./tr\": 9574,\n\t\"./tr.js\": 9574,\n\t\"./tzl\": 4311,\n\t\"./tzl.js\": 4311,\n\t\"./tzm\": 9990,\n\t\"./tzm-latn\": 2380,\n\t\"./tzm-latn.js\": 2380,\n\t\"./tzm.js\": 9990,\n\t\"./ug-cn\": 2356,\n\t\"./ug-cn.js\": 2356,\n\t\"./uk\": 4934,\n\t\"./uk.js\": 4934,\n\t\"./ur\": 4515,\n\t\"./ur.js\": 4515,\n\t\"./uz\": 58,\n\t\"./uz-latn\": 1875,\n\t\"./uz-latn.js\": 1875,\n\t\"./uz.js\": 58,\n\t\"./vi\": 3325,\n\t\"./vi.js\": 3325,\n\t\"./x-pseudo\": 9208,\n\t\"./x-pseudo.js\": 9208,\n\t\"./yo\": 8742,\n\t\"./yo.js\": 8742,\n\t\"./zh-cn\": 2378,\n\t\"./zh-cn.js\": 2378,\n\t\"./zh-hk\": 4569,\n\t\"./zh-hk.js\": 4569,\n\t\"./zh-mo\": 4671,\n\t\"./zh-mo.js\": 4671,\n\t\"./zh-tw\": 259,\n\t\"./zh-tw.js\": 259\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 = 6700;","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["CommonSettings","observeOn","asapScheduler","AppComponent","constructor","authservice","router","appLoadService","busyService","errorHandlerService","viewpointService","autologoutService","Title","BaseApi","busyState$","pipe","subscribe","bs","busy","isBusy","message","ngOnInit","IsMobile","ismobile","isMobile","routeReuseStrategy","shouldReuseRoute","ngOnDestroy","logout","baseurl","logError","error","handleError","console","log","errorMessage","handleErrorMessage","i0","selectors","decls","vars","consts","template","ctx","HttpHeaders","lastValueFrom","throwError","catchError","map","AppLoadService","httpClient","getParameterSettings","apiCmd","gateway","obsParameterValue","get","headers","Client","ClientID","parameterValues","NumOfDaysForPaymentHistory","EPay_NumOfDaysForPaymentHistory","NumOfDaysOutForCalendar","EPay_NumOfDaysOutForCalendar","DaysToShowEFTFileHistory","EPay_DaysToShowEFTFileHistory","Timezone","EPay_ClientTimeZone","EmpWebsiteCode","EPay_EmpWebsiteCode","AppInsightsConnectionString","EPay_AppInsightConnectionString","AppInsightsEnableAutoRouteTracking","EPay_AppInsightEnableAutoRouteTracking","CreditCardVendorID","EPay_CreditCardVendorID","FortPointAccessToken","EPay_FortPointAccessToken","FortPointCreditCardUrl","EPay_FortPointCreditCardUrl","FortPointStateCode","EPay_FortPointStateCode","ChatUrl","EPay_Chat_url","getConfigSettings","configSettings","configs","title","baseApi","TokenApi","tokenApi","clientID","toString","ClientName","clientName","StateName","stateName","TimeOutInMins","timeoutInMins","Environment","environment","CanCreateNewEmployer","toBoolean","canCreateNewEmployer","UseEmailForLogin","useEmailForLogin","CanRegisterWithClosedCase","canRegisterWithClosedCase","CanMakePaymentsToClosedCases","canMakePaymentsToClosedCases","EmployerUseCaseNumberForPayments","employerUseCaseNumberForPayments","NCPUseCaseNumberForPayments","ncpUseCaseNumberForPayment","SaveEmployeesForPayments","saveEmployeesForPayments","AllowEINSearch","allowEINSearch","CanInactivateNCPAccount","canInactivateNCPAccount","value","err","ErrorEvent","status","factory","providedIn","EventEmitter","FormControl","FormGroup","Validators","MatSnackBarConfig","XLSX","PhoneNumber","debounceTime","startWith","EMPSecurityCodeHelpComponent","ErrorDialogComponent","ErrorHandlerDialogModel","ctx_r64","ctx_r66","ctx_r67","ctx_r68","ctx_r70","ctx_r72","ctx_r81","ctx_r83","ctx_r84","ctx_r85","ctx_r86","ctx_r87","ctx_r88","ctx_r89","ctx_r90","ctx_r91","ctx_r93","ctx_r95","ctx_r97","ctx_r98","ctx_r100","ctx_r102","ctx_r103","ctx_r105","ctx_r106","ctx_r107","ctx_r108","ctx_r0","_r32","_r36","PayorValidationTypes","scheduldedPayment","creditCard","eftEdiFile","PreviousPayorsType","autocompleteExpMonthValidator","validOptions","control","expMonth","_a","length","indexOf","autocompleteExpYearValidator","EMPCreditCardPaymentComponent","paymentService","employerService","ccPaymentService","creditCardService","formbuilder","dialog","snackbar","commonService","phoneHelperService","tooltip","authService","bookType","type","NONE","Date","cardNumber","cvc","expYear","holder","dateFormat","firstDayOfWeek","closeSelectorOnDateSelect","sunHighlight","disableWeekends","disableUntil","year","month","day","validateCaseNumber","allowZeroAmount","creditCardVendorId","iseditccPaymentCollection","showPaymentCollectionForm","showScheduleDay","paymentCollection","scheduledDaysWeek","scheduledDaysBiMonth","scheduledDaysMonth","scheduledDays","scheduledFrequencies","editccPaymentCollectionIndex","maxDate","setDate","today","getDate","validateFGNumber","selectedCountry","createPaymentButtonText","currentDate","currentYear","getFullYear","expYears","expMonthCtrl","validators","required","expYearCtrl","filteredExpMonths$","valueChanges","filterMonthValue","filteredExpYears$","filterYearValue","setValue","ccExpired","isCCExpired","ccFrmGp","setErrors","expired","creditcardType","viewValue","getEmployerTerms","result","termsContent","validationType","loadFormGroups","getCountries","getStates","setValidationType","secondaryIdAlias","payorFrmGp","group","filename","collectionFrmGp","lastname","minLength","ssn","casenumber","amount","pattern","currencyPattern","isValid","requiredTrue","StepperOrient","orient","stepperOrientation","phoneCtrl","countryCtrl","pn","patchValue","isPossible","setMaskAndExample","state","zip5","regionCode","countryCode","getCountryCodeForRegionCode","phoneNumber","setValidators","zipPattern","updateValueAndValidity","maxLength","enable","disable","attemptedCCAttempt","valid","_b","_c","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","_r","billingSectionIncomplete","_s","_t","_u","_v","_w","_x","_y","_z","ccSectionIncomplete","ngAfterViewInit","ngOnChanges","isEditPayment","payorCollection","editPayorCollection","dateVal","ccDate","expDate","Number","expMonths","slice","filterValue","toLowerCase","filter","option","createCCPaymentAttempt","hasError","creditCardPayment","confirm","totalAmtOfPayments","totalCCPayment","totalAmount","firstName","lastName","addressLine1","addressLine2","addressCity","addressState","addressCountry","addressZIP5","email","phone","insertEmployerCreditCardAttempt","next","success","transactionId","processCreditCard","cvv","ccNumber","ccExpiryMonth","ccExpiryYear","address1","address2","city","zip","creditCardObj","accountNumber","expirationMonth","expirationYear","securityCode","isEmployer","insertProcessCreditCard","encryptedTransactionId","encodedTransactionId","navigate","queryParams","tid","errTitle","errMsg","forEach","res","errorCode","dialogData","dialogRef","open","maxWidth","data","afterClosed","dialogResult","deleteResult","securityCodeHelp","rotateCard","cardSide","flipCard","phoneExample","getExample","phoneMask","getMask","toggleCVVHide","cvvHide","toggleCCHide","ccHide","emitValidPayorPerValidation","isScheduledPaymentValidation","validPayorEmit","isCreditCardValidation","validCreditCardEmit","payorsValid","validPayorEmitter_OK","emit","batchType","payerType","fee","feePercentage","participantCollection","response","convenienceAmount","convenienceFeePercentage","totalPaymentAmount","complete","validPayorCreditCardEmitter_OK","validatePayors","numInvalid","numWarning","noPreviousPayors","validationErrorMessage","isValdiatingPayment","validateAttemptMade","nameChangeOccured","foundError","atLeastOnePayorSelected","x","isSelected","payor","isValidated","undefined","isNaN","caseNumber","replace","hadEdit","foundInvalidCount","padStart","isValidPayment","element","hasWarning","invalidParticipantPositions","invalidPayor","correctedName","index","failureMessage","getPreviousPaymentPayors","event","toggleEditPayor","isFileValid","fileImported","isLoadingPreviousPayors","previousPaymentPayors","previousAllPayors","lastPaymentIndex","target","checked","previousPayorsChecked","allPayorsChecked","getPayments","selectedPaymentAccount","scheduledPaymentAccountKey","payments","scheduledpayments","p","sort","a","b","scheduleStartDate","secondaryId","concat","allChecked","getAllPreviousPayors","payment","prevPayor","v","i","findIndex","t","toUpperCase","toggleSSNHide","ssnHide","onFileChange","evt","headerRowIndex","lastNameHeaderIndex","ssnHeaderIndex","caseHeaderIndex","amountHeaderIndex","files","fileErrorMessage","DataTransfer","Error","name","endsWith","reader","FileReader","onload","e","bstr","wb","read","worksheetName","SheetNames","worksheet","Sheets","utils","sheet_to_json","header","trim","headercheck","splice","d","middleName","push","readAsBinaryString","reverse","onloadend","isAllChecked","resetFile","inputFile","nativeElement","addSavePayorCollection","payorDetailError","founderror","formatSSN","ssnRegex","RegExp","ssnPattern","test","isEditPayor","editPayorIndex","getNumberOfPayments","reset","resetToggle","editPayor","payors","nameField","focus","deletePayor","selectAllPayments","clearpayorCollection","numOfPayments","checkit","addRemovePayor","toFixed","isEftFileValidation","validCCPaymentEmitted","ccPayment","toggleEditPayorTab","termsFrmGp","accepted","reviewFrmGrp","ccFirstName","ccLastName","country","emailPattern","phoneGp","phoneExt","ccType","ccRegex","onCountrySelectionChange","countries","countryName","alpha3IsoCode","numeric3IsoCode","states","creditCardTypeOnChange","clearValidators","ccInfo","ccMask","ccImgURL","resetFormValues","checkReading","editccPaymentcollection","onSaveComplete","confirmationNum","confirmationSender","confirmationTitle","confirmationMessage","iseditccPayment","confirmationNumber","goToPrimaryUrl","goToPrimary","openConfirmation","hideConfirmationPage","isTermsSubmitted","hideConfirmation","goToHome","navigateByUrl","openSnackBar","time","style","config","horizontalPosition","verticalPosition","duration","panelClass","submitTerms","viewQuery","of","FooterComponent","isLoggedIn$","isLoggedIn","username$","currentUserName","usertype$","currentUserType","NavigationEnd","EMPLOYER_PROFILE_SETTINGS_URL","NCP_PROFILE_SETTINGS_URL","ctx_r19","ctx_r26","_r10","GlobalNavComponent","sessionTimeout","routerNavEndSubscription","events","ev","isGlobalNavOpen","onClickOutside","clickedEl","hasClickedOutsideNav","globalNavBlock","contains","mobileNavToggleBtn","onEscKey","whichKey","key","changes","unsubscribe","toggleGlobalNav","_r7"],"sourceRoot":"webpack:///"}