{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/account/account-routing.module.ts","./src/app/account/account.module.ts","./src/app/account/components/index.ts","./src/app/account/components/login-box/login-box.component.ts","./src/app/account/components/login-box/login-box.component.html","./src/app/account/components/login-page/login-page.component.ts","./src/app/account/components/login-page/login-page.component.html","./src/app/account/components/my-account-page/my-account-page.component.ts","./src/app/account/components/my-account-page/my-account-page.component.html","./src/app/account/components/register-box/register-box.component.ts","./src/app/account/components/register-box/register-box.component.html","./src/app/account/components/register-page/register-page.component.ts","./src/app/account/components/register-page/register-page.component.html","./src/app/account/components/reset-password-page/reset-password-page.component.ts","./src/app/account/components/reset-password-page/reset-password-page.component.html","./src/app/account/components/verify-email/verify-email.component.ts","./src/app/account/components/verify-email/verify-email.component.html","./src/app/account/guards/auth.guard.ts","./src/app/account/guards/index.ts","./src/app/account/guards/no-auth.guard.ts","./src/app/account/guards/notification-preferences.resolver.ts","./src/app/account/models/profile-model.ts","./src/app/account/services/account.service.ts","./src/app/account/services/index.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routes.ts","./src/app/appointments/appointments-routing.module.ts","./src/app/appointments/appointments.module.ts","./src/app/appointments/components/appointment-item/appointment-item.component.ts","./src/app/appointments/components/appointment-item/appointment-item.component.html","./src/app/appointments/components/appointment-page/appointment-page.component.ts","./src/app/appointments/components/appointment-page/appointment-page.component.html","./src/app/appointments/components/appointment-verify-page/appointment-verify-page.component.ts","./src/app/appointments/components/appointment-verify-page/appointment-verify-page.component.html","./src/app/appointments/components/appointments-list-page/appointments-list-page.component.ts","./src/app/appointments/components/appointments-list-page/appointments-list-page.component.html","./src/app/appointments/components/cancel-modal/cancel-modal.component.ts","./src/app/appointments/components/cancel-modal/cancel-modal.component.html","./src/app/appointments/components/index.ts","./src/app/appointments/guards/can-activate-appointment-page.guard.ts","./src/app/appointments/guards/index.ts","./src/app/appointments/models/appointment.ts","./src/app/appointments/services/appointments.service.ts","./src/app/appointments/services/index.ts","./src/app/booking/actions/booking.actions.ts","./src/app/booking/actions/index.ts","./src/app/booking/booking-routing.module.ts","./src/app/booking/booking.module.ts","./src/app/booking/components/auto-insurance-step-page/auto-insurance-step-page.component.ts","./src/app/booking/components/auto-insurance-step-page/auto-insurance-step-page.component.html","./src/app/booking/components/booking-container-page/booking-container-page.component.ts","./src/app/booking/components/booking-summary-box/booking-summary-box.component.ts","./src/app/booking/components/booking-summary-box/booking-summary-box.component.html","./src/app/booking/components/guest-step-page/guest-step-page.component.ts","./src/app/booking/components/guest-step-page/guest-step-page.component.html","./src/app/booking/components/index.ts","./src/app/booking/components/insurance-type-step-page/insurance-type-step-page.component.ts","./src/app/booking/components/insurance-type-step-page/insurance-type-step-page.component.html","./src/app/booking/components/location-step-page/location-step-page.component.ts","./src/app/booking/components/location-step-page/location-step-page.component.html","./src/app/booking/components/login-step-page/login-step-page.component.ts","./src/app/booking/components/login-step-page/login-step-page.component.html","./src/app/booking/components/practitioner-step-page/practitioner-step-page.component.ts","./src/app/booking/components/practitioner-step-page/practitioner-step-page.component.html","./src/app/booking/components/previous-visit-step-page/previus-visit-step-page.component.ts","./src/app/booking/components/previous-visit-step-page/previus-visit-step-page.component.html","./src/app/booking/components/primary-insurance-step-page/primary-insurance-step-page.component.ts","./src/app/booking/components/primary-insurance-step-page/primary-insurance-step-page.component.html","./src/app/booking/components/review-step-page/review-step-page.component.ts","./src/app/booking/components/review-step-page/review-step-page.component.html","./src/app/booking/components/service-step-page/service-step-page.component.ts","./src/app/booking/components/service-step-page/service-step-page.component.html","./src/app/booking/components/successfully-confirmation-step-page/successfully-confirmation-step-page.component.ts","./src/app/booking/components/successfully-confirmation-step-page/successfully-confirmation-step-page.component.html","./src/app/booking/components/timeslot-step-page/timeslot-step-page.component.ts","./src/app/booking/components/timeslot-step-page/timeslot-step-page.component.html","./src/app/booking/components/work-insurance-step-page/work-insurance-step-page.component.ts","./src/app/booking/components/work-insurance-step-page/work-insurance-step-page.component.html","./src/app/booking/guards/can-activate-if-timeslot.guard.ts","./src/app/booking/guards/can-activate-location-step.guard.ts","./src/app/booking/guards/can-activate-practitiner-step.guard.ts","./src/app/booking/guards/can-activate-previous-visit-step.guard.ts","./src/app/booking/guards/can-activate-service-step.guard.ts","./src/app/booking/guards/can-activate-timeslot-step.guard.ts","./src/app/booking/guards/clinic-step.resolver.ts","./src/app/booking/guards/index.ts","./src/app/booking/guards/practitioner-step.resolver.ts","./src/app/booking/models/booking-day.ts","./src/app/booking/models/index.ts","./src/app/booking/models/insurance-type.ts","./src/app/booking/reducers/booking.reducer.ts","./src/app/booking/reducers/index.ts","./src/app/booking/services/booking.service.ts","./src/app/booking/services/index.ts","./src/app/chat/chat-api-integration.service.ts","./src/app/chat/chat.component.ts","./src/app/chat/chat.component.html","./src/app/chat/chat.module.ts","./src/app/clinic/clinic-routing.module.ts","./src/app/clinic/clinic.module.ts","./src/app/clinic/components/index.ts","./src/app/clinic/components/map-modal/map-modal.component.ts","./src/app/clinic/components/map-modal/map-modal.component.html","./src/app/clinic/services/clinic.service.ts","./src/app/clinic/services/index.ts","./src/app/core/core.module.ts","./src/app/core/services/auth-helper.service.ts","./src/app/core/services/auth.service.ts","./src/app/core/services/catalogs.service.ts","./src/app/core/services/custom-icon.service.ts","./src/app/core/services/dom.service.ts","./src/app/core/services/errors.interceptor.ts","./src/app/core/services/event.service.ts","./src/app/core/services/full-steam-integration.client.ts","./src/app/core/services/full-steam-integration.service.ts","./src/app/core/services/global-errors.service.ts","./src/app/core/services/helper.service.ts","./src/app/core/services/index.ts","./src/app/core/services/loader.service.ts","./src/app/core/services/navigateWrapper.service.ts","./src/app/core/services/ping.service.ts","./src/app/core/services/startup.service.ts","./src/app/core/services/token.interceptor.ts","./src/app/core/services/upload.service.ts","./src/app/main-container.component.ts","./src/app/menu/components/side-navbar/side-navbar.component.ts","./src/app/menu/components/side-navbar/side-navbar.component.html","./src/app/menu/components/top-navbar/top-navbar.component.ts","./src/app/menu/components/top-navbar/top-navbar.component.html","./src/app/menu/components/top-navbar/top-navbar.service.ts","./src/app/menu/menu.module.ts","./src/app/ngrx/index.ts","./src/app/ngrx/type.ts","./src/app/onboarding/components/additional-info-page/additional-info-page.component.ts","./src/app/onboarding/components/additional-info-page/additional-info-page.component.html","./src/app/onboarding/components/address-contact-info-page/address-contact-info-page.component.ts","./src/app/onboarding/components/address-contact-info-page/address-contact-info-page.component.html","./src/app/onboarding/components/consent-form-page/consent-form-page.component.ts","./src/app/onboarding/components/consent-form-page/consent-form-page.component.html","./src/app/onboarding/components/consent-forms-list-page/consent-forms-list-page.component.ts","./src/app/onboarding/components/consent-forms-list-page/consent-forms-list-page.component.html","./src/app/onboarding/components/emergency-contact-info-page/emergency-contact-info-page.component.ts","./src/app/onboarding/components/emergency-contact-info-page/emergency-contact-info-page.component.html","./src/app/onboarding/components/generic-form-page/generic-form-page.component.ts","./src/app/onboarding/components/generic-form-page/generic-form-page.component.html","./src/app/onboarding/components/generic-forms-list-page/generic-forms-list-page.component.ts","./src/app/onboarding/components/generic-forms-list-page/generic-forms-list-page.component.html","./src/app/onboarding/components/index.ts","./src/app/onboarding/components/insurance-page/insurance-form.component.ts","./src/app/onboarding/components/insurance-page/insurance-form.component.html","./src/app/onboarding/components/insurance-page/insurance-page.component.ts","./src/app/onboarding/components/insurance-page/insurance-page.component.html","./src/app/onboarding/components/medical-form-page/medical-form-page.component.ts","./src/app/onboarding/components/medical-form-page/medical-form-page.component.html","./src/app/onboarding/components/medical-forms-list-page/medical-forms-list-page.component.ts","./src/app/onboarding/components/medical-forms-list-page/medical-forms-list-page.component.html","./src/app/onboarding/components/medical-info-page/medical-info-page.component.ts","./src/app/onboarding/components/medical-info-page/medical-info-page.component.html","./src/app/onboarding/components/onboarding-container-page/onboarding-container-page.component.ts","./src/app/onboarding/components/onboarding-container-page/onboarding-container-page.component.html","./src/app/onboarding/components/onboarding-summary-box/onboarding-summary-box.component.ts","./src/app/onboarding/components/onboarding-summary-box/onboarding-summary-box.component.html","./src/app/onboarding/components/onboarding-summary-box/onboarding-summary-dialog.component.ts","./src/app/onboarding/components/onboarding-summary-box/onboarding-summary-dialog.component.html","./src/app/onboarding/components/patient-info-page/patient-info-page.component.ts","./src/app/onboarding/components/patient-info-page/patient-info-page.component.html","./src/app/onboarding/components/primary-physician-info-page/primary-physician-info-page.component.ts","./src/app/onboarding/components/primary-physician-info-page/primary-physician-info-page.component.html","./src/app/onboarding/components/screening-form-page/screening-form-page.component.ts","./src/app/onboarding/components/screening-form-page/screening-form-page.component.html","./src/app/onboarding/components/screening-forms-list-page/screening-forms-list-page.component.ts","./src/app/onboarding/components/screening-forms-list-page/screening-forms-list-page.component.html","./src/app/onboarding/components/signature-page/signature-page.component.ts","./src/app/onboarding/components/signature-page/signature-page.component.html","./src/app/onboarding/components/success-page/success-page.component.ts","./src/app/onboarding/components/success-page/success-page.component.html","./src/app/onboarding/models/forms.enum.ts","./src/app/onboarding/models/index.ts","./src/app/onboarding/onboarding-routing.module.ts","./src/app/onboarding/onboarding.module.ts","./src/app/onboarding/services/forms.resolver.ts","./src/app/onboarding/services/index.ts","./src/app/onboarding/services/onboarding.service.ts","./src/app/onboarding/services/progress.resolver.ts","./src/app/onboarding/services/states.resolver.ts","./src/app/organization/actions/index.ts","./src/app/organization/actions/organization.actions.ts","./src/app/organization/reducers/index.ts","./src/app/organization/reducers/organization.reducer.ts","./src/app/sample/actions/index.ts","./src/app/sample/actions/name-list.action.ts","./src/app/sample/components/sample/sample-page.component.ts","./src/app/sample/components/sample/sample-page.component.html","./src/app/sample/effects/sample.effect.ts","./src/app/sample/reducers/index.ts","./src/app/sample/reducers/sample.reducer.ts","./src/app/sample/sample-routing.module.ts","./src/app/sample/sample.module.ts","./src/app/sample/sample.routes.ts","./src/app/sample/services/name-list.service.ts","./src/app/shared/components/appointment-pickup/appointment-pickup.component.ts","./src/app/shared/components/appointment-pickup/appointment-pickup.component.html","./src/app/shared/components/base/base.component.ts","./src/app/shared/components/booking-steps/booking-steps.component.ts","./src/app/shared/components/booking-steps/booking-steps.component.html","./src/app/shared/components/country-state/country-state.component.ts","./src/app/shared/components/country-state/country-state.component.html","./src/app/shared/components/date-input/date-input.component.ts","./src/app/shared/components/date-input/date-input.component.html","./src/app/shared/components/file-upload/file-upload.component.ts","./src/app/shared/components/file-upload/file-upload.component.html","./src/app/shared/components/form-render/fields.enum.ts","./src/app/shared/components/form-render/form-render.component.ts","./src/app/shared/components/form-render/form-render.component.html","./src/app/shared/components/gender-input/gender-input.component.ts","./src/app/shared/components/gender-input/gender-input.component.html","./src/app/shared/components/index.ts","./src/app/shared/components/logout-warning-modal/logout-warning-modal.component.ts","./src/app/shared/components/logout-warning-modal/logout-warning-modal.component.html","./src/app/shared/components/phone-input/phone-input.component.ts","./src/app/shared/components/phone-input/phone-input.component.html","./src/app/shared/components/practitioner-avatar/practitioner-avatar.component.ts","./src/app/shared/components/practitioner-avatar/practitioner-avatar.component.html","./src/app/shared/components/register-inactive-user-error-modal/register-inactive-user-error-modal.component.ts","./src/app/shared/components/register-inactive-user-error-modal/register-inactive-user-error-modal.component.html","./src/app/shared/components/register-onboarding-step/register-onboarding-step.component.ts","./src/app/shared/components/register-onboarding-step/register-onboarding-step.component.html","./src/app/shared/components/select-list/select-list.component.ts","./src/app/shared/components/select-list/select-list.component.html","./src/app/shared/components/send-email-dialog/send-email-dialog.component.ts","./src/app/shared/components/send-email-dialog/send-email-dialog.component.html","./src/app/shared/components/signature-input/signature-input.component.ts","./src/app/shared/components/signature-input/signature-input.component.html","./src/app/shared/components/user-avatar/user-avatar.component.ts","./src/app/shared/components/user-avatar/user-avatar.component.html","./src/app/shared/directives/submit-if-validate/submit-if-validate.directive.ts","./src/app/shared/models/Common.ts","./src/app/shared/models/gender.enum.ts","./src/app/shared/models/organization.enum.ts","./src/app/shared/models/phoneType.enum.ts","./src/app/shared/multilingual/components/index.ts","./src/app/shared/multilingual/components/lang-switcher.component.ts","./src/app/shared/multilingual/components/lang-switcher.component.html","./src/app/shared/multilingual/index.ts","./src/app/shared/multilingual/multilingual.module.ts","./src/app/shared/multilingual/services/index.ts","./src/app/shared/multilingual/services/multilingual.service.ts","./src/app/shared/pipes/enumKeys.pipe.ts","./src/app/shared/pipes/keys.pipe.ts","./src/app/shared/shared.module.ts","./src/app/shared/validators/custom-validators.ts","./src/app/shared/validators/email-in-use-validator.ts","./src/app/shared/validators/index.ts","./src/app/static/components/500-page/500-page.component.ts","./src/app/static/components/500-page/500-page.component.html","./src/app/static/components/not-found-page/not-found-page.component.ts","./src/app/static/components/not-found-page/not-found-page.component.html","./src/environments/environment.staging.ts","./src/main.ts","ignored|C:\\BuildAgent\\work\\eeb28c4e96b6042\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\build|canvas","ignored|C:\\BuildAgent\\work\\eeb28c4e96b6042\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\build|fs","ignored|C:\\BuildAgent\\work\\eeb28c4e96b6042\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\build|http","ignored|C:\\BuildAgent\\work\\eeb28c4e96b6042\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\build|https","ignored|C:\\BuildAgent\\work\\eeb28c4e96b6042\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\build|url","ignored|C:\\BuildAgent\\work\\eeb28c4e96b6042\\node_modules\\ng2-pdf-viewer\\node_modules\\pdfjs-dist\\build|zlib"],"sourcesContent":["import { NoAuthGuard } from './guards/no-auth.guard';\nimport { AuthGuard } from './guards/auth.guard';\nimport { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { MyAccountPageComponent, RegisterPageComponent, LoginPageComponent, ResetPasswordPageComponent } from './components/index';\nimport { NotificationPreferencesResolver } from './guards/notification-preferences.resolver';\nimport { RegisterOnboardingStepComponent } from '../shared/components/register-onboarding-step/register-onboarding-step.component';\nimport { VerifyEmailComponent } from './components/verify-email/verify-email.component';\n\nexport const accountRoutes: Routes = [\n {\n path: 'account',\n component: MyAccountPageComponent,\n canActivate: [AuthGuard],\n resolve: { notificationPreferences: NotificationPreferencesResolver },\n },\n { path: 'login', component: LoginPageComponent, canActivate: [NoAuthGuard] },\n { path: 'register/:token/:type', component: RegisterPageComponent, canActivate: [NoAuthGuard] },\n { path: 'reset-password', component: ResetPasswordPageComponent, canActivate: [NoAuthGuard] },\n { path: 'complete-registration', component: RegisterOnboardingStepComponent, canActivate: [NoAuthGuard] },\n { path: 'account/verify-email', component: VerifyEmailComponent },\n];\n\n@NgModule({\n imports: [\n // RouterModule.forChild(routes)\n ],\n exports: [RouterModule],\n})\nexport class AccountRoutingModule {}\n","import { SharedModule } from './../shared/shared.module';\nimport { ACCOUNT_SERVICES } from './services/index';\nimport { ACCOUNT_COMPONENTS } from './components/index';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { AccountRoutingModule } from './account-routing.module';\nimport { ACCOUNT_GUARDS } from './guards/index';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { VerifyEmailComponent } from './components/verify-email/verify-email.component';\n\n@NgModule({\n imports: [\n SharedModule,\n AccountRoutingModule,\n FlexLayoutModule\n ],\n declarations: [\n ...ACCOUNT_COMPONENTS,\n VerifyEmailComponent,\n\n ],\n providers: [\n ...ACCOUNT_SERVICES,\n ...ACCOUNT_GUARDS,\n\n ],\n exports: [\n ...ACCOUNT_COMPONENTS,\n\n ]\n})\nexport class AccountModule {\n\n constructor(@Optional() @SkipSelf() parentModule: AccountModule) {\n if (parentModule) {\n throw new Error('AccountModule already loaded; Import in root module only.');\n }\n }\n}\n","import { RegisterBoxComponent } from './register-box/register-box.component';\nimport { LoginPageComponent } from './login-page/login-page.component';\nimport { LoginBoxComponent } from './login-box/login-box.component';\nimport { MyAccountPageComponent } from './my-account-page/my-account-page.component';\nimport { RegisterPageComponent } from './register-page/register-page.component';\nimport { ResetPasswordPageComponent } from './reset-password-page/reset-password-page.component';\n\nexport const ACCOUNT_COMPONENTS: any[] = [\n MyAccountPageComponent,\n LoginPageComponent,\n LoginBoxComponent,\n RegisterPageComponent,\n RegisterBoxComponent,\n ResetPasswordPageComponent\n];\n\nexport * from './my-account-page/my-account-page.component';\nexport * from './login-page/login-page.component';\nexport * from './login-box/login-box.component';\nexport * from './register-box/register-box.component';\nexport * from './register-page/register-page.component';\nexport * from './reset-password-page/reset-password-page.component';\n","import { CustomValidators } from './../../../shared/validators/custom-validators';\nimport { ActivatedRoute } from '@angular/router';\nimport { tap, switchMap, takeUntil } from 'rxjs/operators';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { AuthService } from '../../../core/services/auth.service';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from './../../../ngrx';\nimport { AccountService } from '../../services';\nimport { NavigateWrapperService, StartupService } from '../../../core/services';\nimport { MatDialog } from '@angular/material/dialog';\nimport { SendEmailDialogComponent } from '../../../../../src/app/shared/components/send-email-dialog/send-email-dialog.component';\nimport { BookingAppointment } from '../../../booking/models';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { VerifyEmailRequest } from '../../services/account.model';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'pp-login-box',\n templateUrl: 'login-box.component.html',\n styleUrls: ['login-box.component.scss'],\n})\nexport class LoginBoxComponent extends BaseComponent implements OnInit, OnDestroy {\n @Input() returnUrl;\n @Input() infoMessage;\n @Input() showRegister = true;\n @Input() boxTitle = 'login';\n\n appointment: BookingAppointment;\n\n loginForm: FormGroup;\n forgotForm: FormGroup;\n response: any;\n error = '';\n view = 'login';\n\n showLoader = false;\n impersonateToken: string;\n\n useOnlineBooking = false;\n\n constructor(\n private route: ActivatedRoute,\n private formBuilder: FormBuilder,\n private authService: AuthService,\n private accountService: AccountService,\n private store: Store,\n public dialog: MatDialog,\n private navigateService: NavigateWrapperService,\n private startupService: StartupService,\n private translateService: TranslateService\n ) {\n super();\n }\n\n ngOnInit(): void {\n if (this.route.snapshot.queryParams.loginMessage) {\n this.infoMessage = this.translateService.instant(this.route.snapshot.queryParams.loginMessage);\n }\n this.store\n .select(fromRoot.getBookingAppointmentObject)\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.appointment = {\n locationGuid: data.locationGuid,\n serviceId: data.serviceId,\n practitionerId: data.practitionerId,\n isNewPatient: data.isNewPatient,\n index: data.index,\n date: data.date,\n };\n });\n\n this.forgotForm = this.formBuilder.group({\n email: ['', [Validators.required, CustomValidators.email]],\n });\n\n this.impersonateToken = this.route.snapshot.queryParams.impersonateToken;\n this.initLoginForm();\n this.returnUrl = this.returnUrl || this.route.snapshot.queryParams.returnUrl || 'appointments';\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.cleanUpLastPassElemets();\n }\n\n onSubmit() {\n this.error = '';\n this.showLoader = true;\n this.authService\n .login(\n this.isImpersonateLogin()\n ? { username: 'impersonate', password: 'impersonate', impersonate_token: this.impersonateToken }\n : this.loginForm.value\n )\n .pipe(\n switchMap(() => {\n return this.accountService.me();\n })\n )\n .subscribe(\n () => {\n if (this.appointment.practitionerId) {\n this.navigateService.navigate(['pickup-appointment'], this.appointment);\n return;\n }\n\n if (\n this.route.snapshot.queryParams.Index &&\n this.route.snapshot.queryParams.Date &&\n this.route.snapshot.queryParams.ServiceId &&\n this.route.snapshot.queryParams.LocationGuid\n ) {\n this.navigateService.navigate(['pickup-appointment'], this.route.snapshot.queryParams);\n return;\n }\n\n this.navigateService.navigate([this.returnUrl]);\n },\n (error) => {\n this.error = error.error_description;\n this.showLoader = false;\n }\n );\n }\n\n initLoginForm() {\n this.useOnlineBooking = this.startupService.startupData.useOnlineBooking;\n const controlsConfig: any = {\n username: [this.route.snapshot.queryParams['email'] || '', [Validators.required, CustomValidators.email]],\n password: [undefined, [Validators.required]],\n };\n if (this.isImpersonateLogin()) {\n controlsConfig.username = [''];\n controlsConfig.password = [''];\n }\n this.loginForm = this.formBuilder.group(controlsConfig);\n }\n\n onSendResetLink() {\n this.accountService\n .forgotPassword(this.forgotForm.value.email)\n .pipe(tap(() => this.initLoginForm()))\n .subscribe(() => {\n this.changeView('forgot-success');\n });\n }\n\n changeView(view) {\n this.view = view;\n this.cleanUpLastPassElemets();\n }\n\n cleanUpLastPassElemets() {\n document.querySelectorAll(\"[id*='lpform']\").forEach((el) => {\n el.parentNode.removeChild(el);\n });\n }\n\n openCreateAccountDialog(): void {\n const verifyEmailRequest: VerifyEmailRequest = {\n email: null,\n };\n if (\n this.appointment.date &&\n this.appointment.index &&\n this.appointment.locationGuid &&\n this.appointment.practitionerId &&\n this.appointment.serviceId\n ) {\n verifyEmailRequest.slotData = {\n date: this.appointment.date,\n index: this.appointment.index,\n locationGuid: this.appointment.locationGuid,\n practitionerId: this.appointment.practitionerId,\n serviceId: this.appointment.serviceId,\n };\n }\n\n const dialogRef = this.dialog.open(SendEmailDialogComponent, {\n width: '400px',\n height: '450px',\n autoFocus: false,\n data: verifyEmailRequest,\n });\n\n dialogRef.afterClosed().pipe(takeUntil(this.destroy$)).subscribe();\n }\n\n isImpersonateLogin(): boolean {\n return !!this.impersonateToken;\n }\n}\n","
\n
\n

{{ 'forgot-password' | translate }}

\n
{{ 'forgot-email' | translate }}
\n
\n
\n
\n \n \n

\n {{ 'form-input-error-email-format' | translate }}\n

\n
\n
\n \n \n
\n
\n
\n
\n\n
\n

\n {{ 'reset-email-sent-success-title' | translate }}\n

\n

\n {{ 'reset-email-sent-success-msg1' | translate }}\n {{ forgotForm.get('email').value }}\n

\n

\n {{ 'reset-email-sent-success-msg2' | translate }}\n

\n \n
\n\n
\n

{{ boxTitle | translate }}

\n

0\">\n {{ infoMessage | translate }}\n

\n
\n
0\">\n
\n \n info\n \n {{ error | translate }}\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n

\n {{ 'form-input-error-email-format' | translate }}\n

\n
\n
\n \n \n \n {{ 'forgot-password' | translate }}\n \n
\n \n \n \n {{ 'login' | translate }}\n \n
\n
or
\n
\n \n
\n \n
\n
\n\n","import { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pp-login-page',\n templateUrl: 'login-page.component.html'\n})\n\nexport class LoginPageComponent implements OnInit {\n constructor(\n\n ) { }\n\n ngOnInit() { }\n\n\n}\n","
\n
\n
\n\n \n\n
\n
\n
\n","import { StartupService } from './../../../core/services/startup.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\nimport { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { AccountService } from '../../services/account.service';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { ActivatedRoute } from '@angular/router';\nimport { NotificationsEnum } from '../../models/profile-model';\nimport { AuthService, NavigateWrapperService } from '../../../core/services';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { PhoneTypeEnum } from '../../../shared/models/phoneType.enum';\nimport { GenderEnum } from '../../../shared/models/gender.enum';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { parseISO } from 'date-fns';\n\n@Component({\n selector: 'pp-my-account-page',\n templateUrl: 'my-account-page.component.html',\n styleUrls: ['my-account-page.component.scss'],\n})\nexport class MyAccountPageComponent extends BaseComponent implements OnInit, OnDestroy {\n profileForm: FormGroup;\n reminderForm: FormGroup;\n changePasswordForm: FormGroup;\n fields: FormField[] = [];\n userInfo: any = {};\n\n profileReadonlyMode = true;\n accountUpdatedSuccessfully = false;\n resetPasswordReadonlyMode = true;\n clinicHasSmsModuleEnabled = false;\n messageDisplayTime = 10000; // ms\n editEmail: boolean = false;\n newEmail: string = '';\n\n private dialogRef: MatDialogRef;\n @ViewChild('sendEmailDialog', { static: true }) sendEmailDialog: TemplateRef;\n\n constructor(\n private formBuilder: FormBuilder,\n private toastr: ToastrService,\n private translateService: TranslateService,\n private accountService: AccountService,\n private startupService: StartupService,\n private route: ActivatedRoute,\n private auth: AuthService,\n private navigateService: NavigateWrapperService,\n private dialog: MatDialog\n ) {\n super();\n }\n\n ngOnInit() {\n this.setUserInfo();\n window.scrollTo(0, 0);\n this.clinicHasSmsModuleEnabled = this.startupService.startupData.hasSms;\n this.initPasswordResetSection();\n this.initNotificationsSection();\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n private setUserInfo() {\n const data = this.accountService.user.getValue();\n\n this.userInfo.firstName = data.personalInfo.firstName;\n this.userInfo.lastName = data.personalInfo.lastName;\n this.userInfo.email = data.contactInfo.emailAddress1 || data.contactInfo.emailAddress2;\n this.userInfo.phone = data.contactInfo.phoneNumber1 || data.contactInfo.phoneNumber2;\n this.userInfo.phoneType = data.contactInfo.phoneNumber1TypeId\n ? PhoneTypeEnum[data.contactInfo.phoneNumber1TypeId]\n : PhoneTypeEnum[data.contactInfo.phoneNumber2TypeId];\n\n if (data.personalInfo.birthDate) {\n this.userInfo.birthDate = parseISO(data.personalInfo.birthDate);\n }\n\n if (data.personalInfo.gender) {\n this.userInfo.gender =\n data.personalInfo.gender.toUpperCase() === GenderEnum.Male\n ? 'gender-male'\n : data.personalInfo.gender.toUpperCase() === GenderEnum.Female.toUpperCase()\n ? 'gender-female'\n : 'gender-other';\n }\n this.userInfo.otherGender = data.personalInfo.otherGender;\n this.userInfo.pendingEmail = data.pendingEmail;\n }\n\n onEnableProfileEditClick() {\n this.enableProfileFormInputs();\n this.accountUpdatedSuccessfully = false;\n }\n\n onCancelProfileEditClick() {\n this.disableProfileFormInputs();\n }\n\n enableProfileFormInputs() {\n this.profileReadonlyMode = false;\n this.enableForm(this.profileForm.value);\n }\n\n disableProfileFormInputs() {\n this.profileReadonlyMode = true;\n this.disableForm(this.profileForm);\n }\n\n enableResetPasswordFormInputs() {\n this.resetPasswordReadonlyMode = false;\n\n this.enableForm(this.changePasswordForm);\n }\n\n disableResetPasswordFormInputs() {\n this.resetPasswordReadonlyMode = true;\n this.initPasswordResetSection();\n }\n\n onChangePasswordClick() {\n if (!this.changePasswordForm.valid) {\n return;\n }\n this.accountService.changePassword(this.changePasswordForm.value).subscribe(\n (res) => {\n this.auth.logout();\n this.disableResetPasswordFormInputs();\n this.toastr.success(this.translateService.instant('reset-password-successfully'));\n this.navigateService.navigate(['login'], { returnUrl: 'appointments' });\n },\n (err) => {\n this.toastr.error(this.translateService.instant('reset-password-error'));\n }\n );\n }\n\n onToogleNotificationClick(type, receive) {\n this.accountService.updateNotifications(type, receive).subscribe(\n (res) => {\n this.toastr.success(this.translateService.instant('account-updated-successfully'));\n },\n (err) => this.toastr.error(this.translateService.instant('account-updated-error'))\n );\n }\n\n private enableForm(form) {\n Object.keys(form.value).forEach((key) => form.get(key).enable());\n }\n\n private disableForm(form) {\n Object.keys(form.value).forEach((key) => form.get(key).disable());\n }\n\n private initPasswordResetSection() {\n this.changePasswordForm = this.formBuilder.group(\n {\n oldPassword: new FormControl({ value: '', disabled: true }, [Validators.required]),\n password: new FormControl({ value: '', disabled: true }, [Validators.required, Validators.minLength(6)]),\n confirmPassword: new FormControl({ value: '', disabled: true }, [Validators.required]),\n },\n {\n validator: CustomValidators.Match('password', 'confirmPassword'),\n }\n );\n }\n\n private initNotificationsSection() {\n const preferences = this.route.snapshot.data.notificationPreferences;\n\n this.reminderForm = this.formBuilder.group({\n email: preferences.receiveMarketingEmailNotification,\n sms: preferences.receiveSmsNotification,\n });\n\n this.reminderForm\n .get('email')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((val) => {\n this.onToogleNotificationClick(NotificationsEnum.email, val);\n });\n\n this.reminderForm\n .get('sms')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((val) => {\n if (!this.userInfo.phone && val) {\n this.toastr.error(this.translateService.instant('no-phone-number-sms'));\n this.reminderForm.controls.sms.setValue(false, { emitEvent: false });\n return;\n }\n\n if (!this.userInfo.phone) {\n this.reminderForm.controls.sms.setValue(false, { emitEvent: false });\n this.onToogleNotificationClick(NotificationsEnum.sms, false);\n return;\n }\n\n if (this.userInfo.phoneType !== PhoneTypeEnum[PhoneTypeEnum.Mobile]) {\n this.toastr.error(this.translateService.instant('no-mobile-phone-number'));\n this.reminderForm.controls.sms.setValue(false, { emitEvent: false });\n return;\n }\n this.onToogleNotificationClick(NotificationsEnum.sms, val);\n });\n }\n\n public toggleEmailChange(): void {\n this.editEmail = !this.editEmail;\n\n if (!this.editEmail) this.newEmail = '';\n }\n\n public saveEmailChange(): void {\n this.accountService.changeEmail({ email: this.userInfo?.pendingEmail || this.newEmail }).subscribe((data) => {\n this.dialogRef = this.dialog.open(this.sendEmailDialog);\n this.accountService.me().subscribe(() => {\n this.setUserInfo();\n });\n this.dialogRef.afterClosed().subscribe((result) => {\n this.toggleEmailChange();\n });\n this.toastr.success('Email sent!');\n });\n }\n\n public resendEmailChange(): void {\n this.accountService.changeEmail({ email: this.userInfo?.pendingEmail || this.newEmail }).subscribe((data) => {\n this.toastr.success('Email sent!');\n this.accountService.me().subscribe(() => {\n this.setUserInfo();\n });\n this.closeChangeEmailDialog();\n });\n }\n\n public closeChangeEmailDialog(): void {\n this.dialogRef.close();\n }\n}\n","
\n
\n

{{ 'my-account' |\n translate }}

\n
\n
\n\n
\n

Profile\n

\n\n
\n
\n \n {{userInfo.firstName}}\n
\n
\n
\n
\n \n {{userInfo.lastName}}\n
\n
\n
\n
\n \n {{userInfo.email}}\n {{'change-email'|translate}}\n
\n
\n \n {{userInfo.email}}\n
\n
\n \n {{userInfo.pendingEmail}}\n {{'PendingEmailValidation' | translate}}\n {{'ResendVerificationMail'|translate}}\n
\n
\n \n \n \n \n
\n {{\"wrong-email-format\"|translate}}
\n
\n {{\"email-required\"|translate}}
\n
\n \n
\n
\n
\n \n {{userInfo.phone }} \n \n {{userInfo.phoneType }}\n
\n
\n
\n
\n \n {{userInfo.birthDate | date:\n 'mediumDate'}}\n
\n
\n
\n
\n \n \n {{userInfo.gender| translate}}\n \n {{userInfo.otherGender}}\n
\n
\n\n \n \n
\n

\n {{ 'security' | translate }}

\n
\n
\n
\n \n \n
\n

\n {{\n 'form-input-error-required'\n | translate}}\n

\n
\n
\n
\n \n \n
\n

\n {{\n 'form-input-error-required'\n | translate}}\n

\n

\n {{\n 'form-input-error-password-minlength'\n | translate}}\n {{changePasswordForm.get('password').errors.minlength.requiredLength}}\n

\n
\n
\n
\n \n \n\n
\n

\n {{\n 'form-input-error-required'\n | translate}}\n

\n

\n {{\n 'form-input-error-confirm-password-match'\n | translate}}\n

\n\n
\n
\n \n
\n\n
\n
\n\n
\n

\n {{ 'notifications' | translate }}

\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n {{ 'marketing-emails' |\n translate }}\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n {{ 'sms-reminder' |\n translate }}\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n \n
\n\n
\n
{{ 'check-email-title' | translate }}
\n
\n We sent you a confirmation email on your new address\n
\n
\n Click the link in your mail to confirm your change\n
\n
\n \n
\n
\n {{ 'do-not-see-email' | translate }}\n
\n
\n {{ 'check-spam-folder' | translate }}\n
\n
\n Click here  \n
to send the email again
\n
\n
\n
\n","import { RegisterModel } from './../../models/register-model';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit } from '@angular/core';\nimport { AuthService, NavigateWrapperService, StartupService } from '../../../core/services/index';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from './../../../ngrx';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { ToastrService } from 'ngx-toastr';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AccountService } from '../../services';\nimport { Common } from '../../../shared/models/Common';\nimport { catchError } from 'rxjs/operators';\nimport { RegisterInactiveUserErrorModalComponent } from '../../../shared/components/register-inactive-user-error-modal/register-inactive-user-error-modal.component';\n\n@Component({\n selector: 'pp-register-box',\n templateUrl: 'register-box.component.html',\n})\nexport class RegisterBoxComponent implements OnInit {\n registerForm: FormGroup;\n error: any;\n returnUrl = '';\n email: string;\n token: string;\n type: string;\n\n constructor(\n private route: ActivatedRoute,\n private formBuilder: FormBuilder,\n private authService: AuthService,\n private store: Store,\n private navigateService: NavigateWrapperService,\n private toastr: ToastrService,\n private translateService: TranslateService,\n private accountService: AccountService,\n public dialog: MatDialog,\n private startupService: StartupService\n ) {\n this.email = this.route.snapshot.queryParams['email'];\n this.token = this.route.snapshot.params['token'];\n this.type = this.route.snapshot.params['type'];\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || 'appointments';\n\n // Need ot get the patient email for invites\n if (this.token && !this.email) {\n let appoitmentUid = null;\n let inviteUid = null;\n\n if (this.type === Common.RegisterType.Appointment) {\n appoitmentUid = this.token;\n }\n\n if (this.type === Common.RegisterType.Invite) {\n inviteUid = this.token;\n }\n\n if (appoitmentUid || inviteUid) {\n this.accountService.check(null, appoitmentUid, inviteUid).subscribe(\n (res: any) => {\n if (res.hasAccount) {\n return this.navigateService.navigate(['login'], {\n returnUrl: route.queryParams['returnUrl'],\n email: res.email,\n });\n } else {\n this.registerForm.get('email').setValue(res.email);\n this.email = res.email;\n }\n },\n (err) => {\n this.error = err.error;\n this.toastr.warning(this.translateService.instant(err.error));\n }\n );\n }\n }\n }\n\n ngOnInit() {\n this.initForm();\n }\n\n onSubmit() {\n const user: RegisterModel = {\n token: this.token,\n type: this.type,\n email: this.registerForm.value['email'] || this.email,\n password: this.registerForm.value['password'],\n confirmPassword: this.registerForm.value['confirmPassword'],\n };\n\n this.authService\n .register(user)\n .pipe(\n catchError((err) => {\n if (err?.error === 'patient-is-inactive-error') {\n this.dialog.open(RegisterInactiveUserErrorModalComponent, {\n panelClass: 'modal-error',\n data: {\n email: this.startupService.startupData.email,\n phone: this.startupService.startupData.phoneNumber,\n web: this.startupService.startupData.webAddresss,\n },\n });\n throw err;\n }\n\n this.error = err.error;\n this.toastr.warning(this.translateService.instant(err.error));\n throw err;\n })\n )\n .subscribe(() => {\n this.ngOnInit();\n\n this.authService\n .login({\n username: user['email'],\n password: user['password'],\n })\n .subscribe(() => {\n this.navigateService.navigate([this.returnUrl]);\n });\n });\n }\n\n initForm() {\n this.registerForm = this.formBuilder.group(\n {\n email: [this.email || '', [Validators.required]],\n password: ['', [Validators.required, Validators.minLength(6)]],\n confirmPassword: ['', [Validators.required]],\n },\n { validator: CustomValidators.Match('password', 'confirmPassword') }\n );\n }\n}\n","
\n

{{ 'register' |\n translate }}

\n
\n
\n
\n \n \n
\n
\n {{\n 'password' | translate }}\n \n
\n

\n {{ 'form-input-error-required' | translate }}\n

\n

\n {{ 'form-input-error-password-minlength' |\n translate }}\n

\n
\n
\n
\n {{\n 'confirm-password' | translate }}\n \n

\n {{ 'form-input-error-confirm-password-match' |\n translate }}\n

\n
\n
\n \n
\n
\n
\n
\n","import { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pp-register-page',\n templateUrl: 'register-page.component.html'\n})\n\nexport class RegisterPageComponent implements OnInit {\n constructor(\n\n ) { }\n\n ngOnInit() { }\n\n\n}\n","
\n
\n
\n \n
\n
\n
\n","import { CustomValidators } from './../../../shared/validators/custom-validators';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AuthService, NavigateWrapperService } from '../../../core/services';\nimport { ActivatedRoute } from '@angular/router';\nimport { AccountService } from '../../services';\n\nimport { tap, } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-reset-password-page',\n templateUrl: 'reset-password-page.component.html'\n})\n\nexport class ResetPasswordPageComponent implements OnInit {\n\n resetForm: FormGroup;\n error = '';\n constructor(\n private route: ActivatedRoute,\n private formBuilder: FormBuilder,\n private accountService: AccountService,\n private navigateService: NavigateWrapperService\n ) { }\n\n ngOnInit(): void {\n this.initForm();\n }\n\n onSubmit() {\n this.error = '';\n\n this.accountService.resetPassword(this.resetForm.value)\n .pipe(tap(() => this.initForm()))\n .subscribe(\n () => {\n this.navigateService.navigate(['login']);\n }, error => this.error = error.error);\n }\n\n initForm() {\n this.resetForm = this.formBuilder.group({\n token: [this.route.snapshot.queryParams['t'], [Validators.required]],\n email: [this.route.snapshot.queryParams['e'], [Validators.required]],\n password: ['', [Validators.required, Validators.minLength(6)]],\n confirmPassword: ['', [Validators.required]],\n }, { validator: CustomValidators.Match('password', 'confirmPassword') });\n }\n\n}\n","
\n
\n \n
\n

\n {{ 'reset-password' | translate }}

\n
\n 0\">\n
\n \n error\n \n {{ error | translate }}\n
\n
\n
\n
\n
\n\n
\n {{ 'password' | translate }}\n \n\n \n

\n {{ 'form-input-error-required' | translate}}\n

\n

\n {{ 'form-input-error-password-minlength' | translate}}\n

\n
\n
\n
\n {{ 'confirm-password' | translate }}\n \n \n

\n {{ 'form-input-error-confirm-password-match' | translate}}\n

\n
\n
\n \n
\n
\n \n\n
\n\n
\n \n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AccountService } from '../../services';\nimport { AuthService, NavigateWrapperService } from '../../../core/services';\nimport { catchError } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-verify-email',\n templateUrl: './verify-email.component.html',\n styleUrls: ['./verify-email.component.scss'],\n})\nexport class VerifyEmailComponent implements OnInit {\n constructor(\n private activatedRoute: ActivatedRoute,\n private accountService: AccountService,\n private authService: AuthService,\n private navigateWrapperService: NavigateWrapperService\n ) {}\n\n ngOnInit(): void {\n if (!this.activatedRoute?.snapshot?.queryParams?.token) {\n return;\n }\n this.accountService\n .changeEmailVerify({ tokenData: this.activatedRoute.snapshot.queryParams.token })\n .pipe(\n catchError((err) => {\n this.navigateWrapperService.navigate(['booking', 'previous-visit'], {\n loginMessage: 'ChangeEmailError',\n });\n throw err;\n })\n )\n .subscribe((data) => {\n this.authService.logout();\n this.navigateWrapperService.navigate(['booking', 'previous-visit'], {\n loginMessage: 'ChangeEmailSuccess',\n email: this.activatedRoute?.snapshot?.queryParams?.email || '',\n });\n });\n }\n}\n","\n","import { Observable, of, Subject } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute, Router } from '@angular/router';\nimport { AuthHelperService, NavigateWrapperService, AuthService } from '../../core/services/index';\nimport { map, catchError, takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class AuthGuard implements CanActivate, OnDestroy {\n private loggedIn = false;\n private destroy$: Subject = new Subject();\n\n constructor(\n private authHelperService: AuthHelperService,\n private authService: AuthService,\n private route: ActivatedRoute,\n private router: Router,\n private navigateService: NavigateWrapperService\n ) {\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((val) => (this.loggedIn = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n return this.authService.refreshTokens().pipe(\n map((res) => !!res), // user has token data so it's logged in\n catchError(() => {\n this.authService.logout();\n this.navigateService.navigate(['login'], { returnUrl: state.url });\n\n return of(false);\n })\n );\n }\n}\n","import { NoAuthGuard } from './no-auth.guard';\nimport { AuthGuard } from './auth.guard';\nimport { NotificationPreferencesResolver } from './notification-preferences.resolver';\n\nexport const ACCOUNT_GUARDS: any[] = [\n AuthGuard,\n NoAuthGuard,\n NotificationPreferencesResolver\n];\n\nexport * from './auth.guard';\nexport * from './no-auth.guard';\nexport * from './notification-preferences.resolver';\n\n","import { NavigateWrapperService } from './../../core/services/navigateWrapper.service';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { CanActivate } from '@angular/router';\nimport { AuthHelperService, StartupService } from '../../core/services/index';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class NoAuthGuard implements CanActivate, OnDestroy {\n private loggedIn = false;\n private destroy$: Subject = new Subject();\n\n constructor(\n private authHelperService: AuthHelperService,\n private navigateService: NavigateWrapperService,\n private startupService: StartupService\n ) {\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((val) => (this.loggedIn = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate() {\n if (!this.loggedIn && this.startupService.startupData.usePatientPortal) {\n return true;\n }\n\n if (!this.startupService.startupData.usePatientPortal) {\n this.navigateService.navigate(['booking', 'previous-visit']);\n } else {\n this.navigateService.navigate([new URLSearchParams(window.location.search).get('returnUrl') || 'appointments']);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Resolve } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { AccountService } from '../services';\n\n\n@Injectable()\nexport class NotificationPreferencesResolver implements Resolve> {\n constructor(\n private accountService: AccountService,\n ) { }\n\n resolve() {\n return this.accountService.getNotifications();\n }\n}\n","export interface ProfileModel {\n sub: string;\n jti: string;\n useage: string;\n at_hash: string;\n nbf: number;\n exp: number;\n iat: number;\n iss: string;\n\n unique_name: string;\n email_confirmed: boolean;\n role: string[];\n}\n\n\nexport enum NotificationsEnum {\n email = 1,\n sms = 2\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from './../../../environments/environment';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from './../../ngrx';\nimport { BookingActions } from '../../booking/actions/index';\nimport { tap } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ChangeEmailRequest, ConfirmAccountExtendedRequest, ConfirmAccountRequest, VerifyEmailRequest } from './account.model';\n@Injectable()\nexport class AccountService {\n user = new BehaviorSubject(undefined);\n\n constructor(private store: Store, private http: HttpClient) {}\n\n changePassword(body) {\n return this.http.put(`${environment.apiUrl}/Account/password`, body);\n }\n\n changeEmail(data: ChangeEmailRequest) {\n return this.http.put(`${environment.apiUrl}/Account/change-email`, data);\n }\n\n changeEmailVerify(data: ChangeEmailRequest) {\n return this.http.post(`${environment.apiUrl}/Account/change-email-verification`, data);\n }\n\n getNotifications() {\n return this.http.get(`${environment.apiUrl}/Account/notifications`);\n }\n\n updateNotifications(type, receive) {\n return this.http.put(`${environment.apiUrl}/Account/notifications`, {\n type,\n receive,\n });\n }\n\n confirmAccountExtended(data: ConfirmAccountExtendedRequest): Observable {\n return this.http.post(`${environment.apiUrl}/Account/confirm-account-extended`, data);\n }\n\n confirmAccount(data: ConfirmAccountRequest): Observable {\n return this.http.post(`${environment.apiUrl}/Account/confirm-account`, data);\n }\n\n verifyAccount(data: VerifyEmailRequest): Observable {\n return this.http.post(`${environment.apiUrl}/Account/verify-account`, data);\n }\n\n check(email, appointmentUid, token) {\n const params = {\n email: email,\n uid: appointmentUid,\n token: token,\n };\n\n if (!email) {\n delete params.email;\n }\n\n if (!appointmentUid) {\n delete params.uid;\n }\n\n if (!token) {\n delete params.token;\n }\n\n return this.http.get(`${environment.apiUrl}/Account/check`, {\n params: params,\n });\n }\n\n forgotPassword(email) {\n return this.http.post(`${environment.apiUrl}/Account/forgotpassword`, {\n email,\n });\n }\n\n resetPassword(body) {\n return this.http.post(`${environment.apiUrl}/Account/resetpassword`, body);\n }\n\n me() {\n return this.http.get(`${environment.apiUrl}/Account/me`).pipe(\n tap((userInfo: any) => {\n this.user.next(userInfo);\n this.store.dispatch(new BookingActions.SetExistingPatientAction(userInfo.isExisting));\n })\n );\n }\n}\n","\nimport { AccountService } from './account.service';\n\nexport const ACCOUNT_SERVICES: any[] = [\n AccountService,\n];\nexport * from './account.service';\n","// angular\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n// app\nimport { AppRoutes } from './app.routes';\n\n@NgModule({\n imports: [\n RouterModule.forRoot(AppRoutes, { relativeLinkResolution: 'legacy' })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n\n","import { AuthHelperService } from './core/services/auth-helper.service';\nimport { EventService } from './core/services/event.service';\nimport { Component, HostListener, AfterViewInit, OnDestroy, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GlobalErrorsService } from './core/services/global-errors.service';\nimport { BaseComponent } from './shared/components/base/base.component';\nimport { distinctUntilChanged, filter, take, takeUntil } from 'rxjs/operators';\nimport { AccountService } from './account/services';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRoot from './ngrx';\n\n@Component({\n selector: 'pp-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Xamarin. Used to hide the web navigation. */\n isXamarinLoaded: boolean;\n\n error: any = undefined;\n\n constructor(\n private translateService: TranslateService,\n private eventService: EventService,\n private authHelperService: AuthHelperService,\n private globalErrorsService: GlobalErrorsService,\n private accountService: AccountService,\n private store: Store\n ) {\n super();\n // i18n setup\n const languages = ['es', 'en', 'zh', 'ja'];\n this.translateService.addLangs(languages);\n this.translateService.setDefaultLang('en');\n const browserLang = this.translateService.getBrowserLang();\n this.translateService.use(languages.includes(browserLang) ? browserLang : 'en');\n\n // global erros\n globalErrorsService.displayError.pipe(takeUntil(this.destroy$)).subscribe((error) => (this.error = error));\n\n // xamarin\n this.isXamarinLoaded = false;\n }\n\n ngOnInit(): void {\n this.accountService.user\n .pipe(\n distinctUntilChanged((prev, curr) => (prev && curr ? prev.uniqueId === curr.uniqueId : false)),\n takeUntil(this.destroy$)\n )\n .subscribe((patientInfo) => {\n if (!patientInfo) {\n this.store\n .pipe(select(fromRoot.getOrganizationState))\n .pipe(\n filter((organization) => !!organization),\n take(1),\n takeUntil(this.destroy$)\n )\n .subscribe((organization: any) => {\n this.initializePendo('', organization.guid, organization.name);\n });\n return;\n }\n this.identityPendo(patientInfo.uniqueId, patientInfo.clinicInfo.clinicUniqueId, patientInfo.clinicInfo.clinicName);\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n /** Xamarin. Listen to \"hideWebNavigation\" event raised from C# in order to hide the navigation menu. */\n @HostListener('window:hideWebNavigation', ['$event'])\n hideWebNavigation(event: CustomEvent) {\n if (event.detail) {\n this.isXamarinLoaded = event.detail === 'true';\n }\n }\n\n ngAfterViewInit(): void {\n /** Xamarin. Raise event when the app has loaded. */\n this.eventService.raise('angular_loaded');\n\n /** Xamarin. Raise event with the authentication token. */\n this.authHelperService.tokens$.pipe(takeUntil(this.destroy$)).subscribe((token) => {\n this.eventService.raise('auth_token', token);\n });\n }\n\n private initializePendo(patientId: string, clinicId: string, clinicName: string): void {\n if (window['pendo']) {\n window['pendo'].initialize({\n visitor: {\n id: patientId,\n role: 'patient',\n },\n account: {\n id: clinicId,\n clinicId: clinicId,\n clinicName: clinicName,\n },\n });\n }\n }\n\n private identityPendo(patientId: string, clinicId: string, clinicName: string): void {\n if (window['pendo']) {\n if ((window as any).pendo && (window as any).pendo.isReady()) {\n (window as any).pendo.identify(patientId, clinicId);\n return;\n }\n\n this.initializePendo(patientId, clinicId, clinicName);\n }\n }\n}\n","
\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n","import { OnboardingModule } from './onboarding/onboarding.module';\nimport { AppComponent } from './app.component';\nimport { ClinicModule } from './clinic/clinic.module';\nimport { BookingModule } from './booking/booking.module';\nimport { HttpClient, HttpClientJsonpModule, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { StartupService } from './core/services/startup.service';\nimport { ToastrModule } from 'ngx-toastr';\nimport { CoreModule } from './core/core.module';\nimport { PpMenuModule } from './menu/menu.module';\nimport { SharedModule } from './shared/shared.module';\nimport { AppRoutingModule } from './app-routing.module';\nimport { SampleModule } from './sample/sample.module';\nimport { EmailInUseValidator } from './shared/validators/index';\nimport { NgModule, APP_INITIALIZER } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { reducers, metaReducers } from './ngrx';\nimport { StoreModule } from '@ngrx/store';\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\nimport { AppointmentsModule } from './appointments/appointments.module';\nimport { AccountModule } from './account/account.module';\nimport { TokenInterceptor } from './core/services/token.interceptor';\nimport { AuthService } from './core/services/auth.service';\nimport { AuthHelperService } from './core/services/auth-helper.service';\nimport { MultilingualModule } from './shared/multilingual/index';\nimport { ErrorsInterceptor } from './core/services/errors.interceptor';\nimport { MainContainerComponent } from './main-container.component';\nimport { GlobalErrorsService } from './core/services/global-errors.service';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { STATIC_COMPONENTS } from './static/components';\nimport { FullSteamIntegrationService } from './core/services/full-steam-integration.service';\nimport { UpNgFullsteamModule, UpFullSteamIntegrationService } from '@unifiedpractice/up-ng-fullsteam';\nimport { FullSteamIntegrationClient } from './core/services/full-steam-integration.client';\nimport { ChatModule } from './chat/chat.module';\n\nexport function createTranslateLoader(http: HttpClient) {\n return new TranslateHttpLoader(http, `assets/i18n/`, '.json');\n}\n\n// load data before app start\nexport function startupServiceFactory(startupService: StartupService): Function {\n return () => startupService.load();\n}\n\n@NgModule({\n declarations: [AppComponent, MainContainerComponent, ...STATIC_COMPONENTS],\n imports: [\n BrowserAnimationsModule,\n SharedModule,\n CoreModule,\n AppRoutingModule,\n HttpClientJsonpModule,\n\n MultilingualModule,\n PpMenuModule,\n\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: createTranslateLoader,\n deps: [HttpClient],\n },\n }),\n\n ToastrModule.forRoot({\n preventDuplicates: true,\n closeButton: true,\n }),\n\n // ngrx-store modules\n StoreModule.forRoot(reducers, { metaReducers, runtimeChecks: { strictStateImmutability: true, strictActionImmutability: true } }),\n StoreDevtoolsModule.instrument(),\n\n FlexLayoutModule,\n SampleModule,\n ClinicModule,\n BookingModule,\n AccountModule,\n AppointmentsModule,\n OnboardingModule,\n UpNgFullsteamModule.forRoot({\n service: {\n provide: UpFullSteamIntegrationService,\n useClass: FullSteamIntegrationService,\n deps: [FullSteamIntegrationClient, TranslateService],\n },\n }),\n HttpClientModule,\n ChatModule,\n ],\n providers: [\n GlobalErrorsService,\n StartupService,\n {\n provide: APP_INITIALIZER,\n useFactory: startupServiceFactory,\n multi: true,\n deps: [StartupService],\n },\n AuthService,\n AuthHelperService,\n\n TokenInterceptor,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptor,\n multi: true,\n },\n ErrorsInterceptor,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ErrorsInterceptor,\n multi: true,\n },\n EmailInUseValidator,\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { NotFoundPageComponent } from './static/components/not-found-page/not-found-page.component';\nimport { Routes } from '@angular/router';\nimport { bookingRoutes } from './booking/booking-routing.module';\nimport { MainContainerComponent } from './main-container.component';\nimport { accountRoutes } from './account/account-routing.module';\nimport { onboardingRoutes } from './onboarding/onboarding-routing.module';\nimport { appointmentsRoutes } from './appointments/appointments-routing.module';\nimport { ChatComponent } from './chat/chat.component';\n/**\n * Define app module routes here, e.g., to lazily load a module\n * (do not place feature module routes here, use an own -routing.module.ts in the feature instead)\n */\nexport const AppRoutes: Routes = [\n {\n path: ':clinicId',\n component: MainContainerComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'booking/previous-visit' },\n ...accountRoutes,\n ...appointmentsRoutes,\n ...bookingRoutes,\n ...onboardingRoutes,\n {\n path: 'chat',\n redirectTo: 'chat/',\n pathMatch: 'full',\n },\n { path: 'chat/:channelId', pathMatch: 'full', component: ChatComponent },\n ],\n },\n { path: '**', component: NotFoundPageComponent },\n];\n","import { NoAuthGuard } from './../account/guards/no-auth.guard';\n\nimport { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AppointmentsListPageComponent, AppointmentPageComponent, AppointmentVerifyPageComponent } from './components/index';\nimport { AuthGuard } from '../account/guards/index';\nimport { CanActivateAppointmentPageGuard } from './guards';\nimport { FormsResolver } from '../onboarding/services/forms.resolver';\nimport { AppointmentPickupComponent } from '../shared/components/appointment-pickup/appointment-pickup.component';\n\nexport const appointmentsRoutes: Routes = [\n {\n path: 'appointments',\n component: AppointmentsListPageComponent,\n canActivate: [AuthGuard],\n },\n {\n path: 'appointments/:uid',\n component: AppointmentPageComponent,\n canActivate: [CanActivateAppointmentPageGuard],\n },\n {\n path: 'appointments/pickup',\n component: AppointmentPageComponent,\n canActivate: [CanActivateAppointmentPageGuard],\n },\n {\n path: 'appointments/:uid/verify',\n component: AppointmentVerifyPageComponent,\n canActivate: [NoAuthGuard],\n },\n {\n path: 'pickup-appointment',\n component: AppointmentPickupComponent,\n canActivate: [AuthGuard],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(appointmentsRoutes)],\n exports: [RouterModule],\n providers: [FormsResolver],\n})\nexport class AppointmentsRoutingModule {}\n","import { AccountModule } from './../account/account.module';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { AppointmentsRoutingModule } from './appointments-routing.module';\nimport { SharedModule } from '../shared/shared.module';\nimport { APPOINTMENTS_COMPONENTS } from './components/index';\nimport { APPOINTMENTS_SERVICES } from './services/index';\nimport { APPOINTMENT_GUARDS } from './guards';\nimport { ClinicModule } from '../clinic/clinic.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n imports: [\n SharedModule,\n AccountModule,\n ClinicModule,\n AppointmentsRoutingModule,\n FlexLayoutModule\n ],\n declarations: [\n ...APPOINTMENTS_COMPONENTS\n ],\n providers: [\n ...APPOINTMENTS_SERVICES,\n ...APPOINTMENT_GUARDS\n ]\n})\nexport class AppointmentsModule {\n\n constructor(@Optional() @SkipSelf() parentModule: AppointmentsModule) {\n if (parentModule) {\n throw new Error('AppointmentsModule already loaded; Import in root module only.');\n }\n }\n\n}\n","import { ClinicService } from './../../../clinic/services';\nimport { AccountService } from './../../../account/services/account.service';\nimport { AppointmentsService } from './../../services/appointments.service';\nimport { CancelModalComponent } from './../cancel-modal/cancel-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { Appointment } from '../../models/appointment';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../../booking/actions/booking.actions';\nimport { StartupService, NavigateWrapperService } from '../../../core/services';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { parseISO } from 'date-fns';\nimport { OrganizationTypeEnum } from '../../../shared/models/organization.enum';\nimport { environment } from '../../../../environments/environment';\n\n@Component({\n selector: 'pp-appointment-item',\n templateUrl: 'appointment-item.component.html',\n styleUrls: ['appointment-item.component.scss'],\n})\nexport class AppointmentItemComponent extends BaseComponent implements OnInit, OnDestroy {\n @Input() appointment: Appointment;\n @Input() canRescheduleAppointments: boolean;\n @Input() minHoursCancelOrReschedule: number;\n canCancel = false;\n status = '';\n canReschedule = false;\n canBookSimilar = false;\n organization$ = this.store.pipe(select(fromRoot.getOrganizationState));\n organization;\n mediaBaseUrl = environment.resourceUrl;\n\n constructor(\n private dialog: MatDialog,\n private store: Store,\n private navigateService: NavigateWrapperService,\n public startupService: StartupService,\n private accountService: AccountService,\n private clinicService: ClinicService,\n public appointmentsService: AppointmentsService\n ) {\n super();\n }\n\n ngOnInit() {\n this.organization$.pipe(takeUntil(this.destroy$)).subscribe((response) => {\n this.organization = response;\n });\n if (this.appointment) {\n this.appointment.localDateTimeDateObj = parseISO(this.appointment.localDateTime);\n this.setAppointmentStatus();\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n get hasOrganizationCCPE() {\n return this.organization?.useCancellationPolicy;\n }\n\n isUniversity(): boolean {\n return this.organization?.organizationType === OrganizationTypeEnum.univeristy;\n }\n\n onOpenCancelModalClick() {\n const dialogRef = this.dialog.open(CancelModalComponent, {\n data: this.appointment,\n panelClass: 'cancel-app-modal-content',\n });\n\n dialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n if (result) {\n this.appointment.acceptedState = result.acceptedState;\n this.appointment.appointmentState = result.appointmentState;\n this.setAppointmentStatus();\n }\n });\n }\n\n onRescheduleClick() {\n this.store.dispatch(new BookingActions.SetAppointmentUid(this.appointment.appointmentUid));\n this.setBookingStoreDataAndRedirect();\n }\n\n onBookSimilarClick() {\n this.setBookingStoreDataAndRedirect();\n }\n\n getStatusIcon(status: string): string {\n switch (status) {\n case 'pending':\n return 'appointment_pending';\n case 'completed':\n return 'completed';\n case 'missed':\n return 'appointment_rejected';\n case 'accepted':\n return 'appointment_accepted';\n case 'cancelled':\n return 'appointment_cancelled';\n default:\n return '';\n }\n }\n\n cancelationPolicyInfoForService(cancellationFee: number): string {\n return `Cancellation Policy: $${cancellationFee} if cancelled less than ${this.organization?.cancellationPeriod} hours before the appointment.`;\n }\n\n setAppointmentStatus() {\n this.status = this.appointmentsService.getStatus(this.appointment);\n this.canReschedule = this.appointmentsService.canCancelOrReschedule(\n this.status,\n this.appointment.utcDateTime,\n this.canRescheduleAppointments,\n this.minHoursCancelOrReschedule\n );\n this.canCancel = this.appointmentsService.canCancelOrReschedule(\n this.status,\n this.appointment.utcDateTime,\n this.canRescheduleAppointments,\n this.minHoursCancelOrReschedule\n );\n this.canBookSimilar = this.appointmentsService.canBookSimilar();\n }\n\n private setBookingStoreDataAndRedirect() {\n this.appointment.service.cancellationFee = this.appointment.cancellationFee;\n if (!this.appointment.location.isActiveForOnlineBooking) {\n this.store.dispatch(new BookingActions.SetMessageOnLocationStep('location-not-available'));\n return this.navigateService.navigate(['booking', 'location']);\n } else {\n this.store.dispatch(new BookingActions.SetLocationAction(this.appointment.location));\n }\n\n if (this.clinicService.serviceNotAvailableForAuthenticated(this.appointment.service)) {\n this.store.dispatch(new BookingActions.SetMessageOnServiceStep('service-not-available'));\n return this.navigateService.navigate(['booking', 'service']);\n } else {\n this.store.dispatch(new BookingActions.SetServiceAction(this.appointment.service));\n }\n\n if (!this.appointment.practitioner.isActiveForOnlineBooking) {\n this.store.dispatch(new BookingActions.SetMessageOnPractitionerStep('practitioner-not-available'));\n return this.navigateService.navigate(['booking', 'practitioner']);\n } else {\n this.store.dispatch(new BookingActions.SetPractitionerAction(this.appointment.practitioner));\n }\n if (this.isUniversity() && this.appointment.intern) {\n this.store.dispatch(new BookingActions.SetPreferredPractitionerOption('Intern'));\n }\n return this.navigateService.navigate(['booking', 'timeslot']);\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n
\n \n
\n
\n \n {{ appointment?.localDateTimeDateObj | date: 'mediumDate' }}\n
\n
\n {{ 'time' | translate }}:\n {{ appointment?.localDateTimeDateObj | date: 'shortTime' }}\n {{ appointment?.location?.timeZoneAbbreviation }}\n
\n
\n {{ status | translate }}\n
\n
\n
\n {{ appointment?.location.name }}\n
\n
\n 0\"\n class=\"appointment-icon appointment-icon__white appointment-icon__status\"\n [svgIcon]=\"getStatusIcon(status)\"\n >\n {{ status | translate }}\n
\n
\n
\n
\n \n
{{ appointment?.service.name }}
\n
0\" fxHide.lt-sm fxFlex class=\"divider\">
\n
\n \n
\n {{ appointment?.service.description }}\n
\n
\n
\n
\n
0\" fxFlex class=\"divider\">
\n
\n
\n access_time\n
{{ appointment?.duration }} min
\n
\n
\n
\n
\n {{ 'practitioner' | translate }}: {{ appointment?.practitioner.firstName }}\n {{ appointment?.practitioner.lastName }}\n
\n
\n
\n
\n {{ 'practitioner' | translate }}\n
\n \n
\n
\n
\n {{ 'Supervisor' | translate }}\n
\n \n
\n
\n
\n {{ 'Interns' | translate }}\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n {{\n 'BookingStep.Service.CancelationPolicy'\n | translate: { cancellationFee: appointment?.cancellationFee, unitOfTime: organization?.cancellationPeriod }\n }}\n
\n \n \n
\n {{ 'Location' | translate }}:\n {{ appointment?.location.name }}\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n\n\n\n
\n \n\n
\n
\n {{ practitioner?.firstName }}\n {{ practitioner?.lastName }}\n
\n
\n
\n
\n","import { StartupService } from './../../../core/services/startup.service';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { isBefore, parseISO } from 'date-fns';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BookingActions } from '../../../booking/actions/booking.actions';\nimport { GlobalErrorsService, NavigateWrapperService } from '../../../core/services';\nimport { OnboardingService } from '../../../onboarding/services';\nimport { Appointment } from '../../models/appointment';\nimport { ClinicService } from './../../../clinic/services';\nimport * as fromRoot from './../../../ngrx';\nimport { AppointmentsService } from './../../services/appointments.service';\nimport { CancelModalComponent } from './../cancel-modal/cancel-modal.component';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-appointment-page',\n templateUrl: 'appointment-page.component.html',\n})\nexport class AppointmentPageComponent extends BaseComponent implements OnInit, OnDestroy {\n private token: string;\n private uid: string;\n\n appointment: Appointment;\n showOnboardingAlert = false;\n showNotFound = false;\n canCancelRescheduleFromSettings = false;\n minHoursToCancelRescheduleFromSettings: number;\n canReschedule = false;\n canCancel = false;\n canBookSimilar = false;\n status = '';\n pastAppointment = false;\n\n cancellationPeriod: number;\n\n constructor(\n public appointmentsService: AppointmentsService,\n private dialog: MatDialog,\n private store: Store,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService,\n private onboardingService: OnboardingService,\n private globalErrorsService: GlobalErrorsService,\n private clinicService: ClinicService,\n private startupService: StartupService\n ) {\n super();\n this.route.params.pipe(first(), takeUntil(this.destroy$)).subscribe((params) => {\n this.uid = params['uid'];\n this.onboardingService.setAppointmentUid(params['uid']);\n });\n\n this.route.queryParams.pipe(first(), takeUntil(this.destroy$)).subscribe((params) => {\n this.token = params['token'];\n this.onboardingService.setToken(params['token']);\n });\n\n this.onboardingService\n .progress()\n .pipe(takeUntil(this.destroy$))\n .subscribe((progress: any) => {\n this.showOnboardingAlert = progress.completion < 100;\n });\n }\n\n ngOnInit() {\n this.appointmentsService.get(this.uid, this.token).subscribe(\n (res: any) => {\n this.appointment = res.appointment;\n this.appointment.localDateTimeDateObj = parseISO(res.appointment.localDateTime);\n this.canCancelRescheduleFromSettings = res.canCancelRescheduleAppointment;\n this.minHoursToCancelRescheduleFromSettings = res.minimumHoursToCancelReschedule;\n this.setAppointmentStatus();\n },\n (err) => {\n this.globalErrorsService.display404();\n }\n );\n this.cancellationPeriod = this.startupService.startupData.cancellationPeriod;\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n onOpenCancelModalClick() {\n const dialogRef = this.dialog.open(CancelModalComponent, {\n data: this.appointment,\n panelClass: 'cancel-app-modal-content',\n });\n\n dialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n if (result) {\n this.appointment.acceptedState = result.acceptedState;\n this.appointment.appointmentState = result.appointmentState;\n this.setAppointmentStatus();\n }\n });\n }\n\n onRescheduleClick() {\n this.store.dispatch(new BookingActions.SetAppointmentUid(this.appointment.appointmentUid));\n this.store.dispatch(new BookingActions.SetExistingPatientAction(true));\n this.setBookingStoreDataAndRedirect();\n }\n\n setAppointmentStatus() {\n this.status = this.appointmentsService.getStatus(this.appointment);\n this.canReschedule = this.appointmentsService.canCancelOrReschedule(\n this.status,\n this.appointment.localDateTimeDateObj,\n this.canCancelRescheduleFromSettings,\n this.minHoursToCancelRescheduleFromSettings\n );\n this.canCancel = this.appointmentsService.canCancelOrReschedule(\n this.status,\n this.appointment.localDateTimeDateObj,\n this.canCancelRescheduleFromSettings,\n this.minHoursToCancelRescheduleFromSettings\n );\n this.canBookSimilar = this.appointmentsService.canBookSimilar();\n this.pastAppointment = !isBefore(new Date(), this.appointment.localDateTimeDateObj);\n }\n\n private setBookingStoreDataAndRedirect() {\n if (!this.appointment.location.isActiveForOnlineBooking) {\n this.store.dispatch(new BookingActions.SetMessageOnLocationStep('location-not-available'));\n return this.navigateService.navigate(['booking', 'location']);\n } else {\n this.store.dispatch(new BookingActions.SetLocationAction(this.appointment.location));\n }\n\n if (this.clinicService.serviceNotAvailableForAuthenticated(this.appointment.service)) {\n this.store.dispatch(new BookingActions.SetMessageOnServiceStep('service-not-available'));\n return this.navigateService.navigate(['booking', 'service']);\n } else {\n this.store.dispatch(new BookingActions.SetServiceAction(this.appointment.service));\n }\n\n if (!this.appointment.practitioner.isActiveForOnlineBooking) {\n this.store.dispatch(new BookingActions.SetMessageOnPractitionerStep('practitioner-not-available'));\n return this.navigateService.navigate(['booking', 'practitioner']);\n } else {\n this.store.dispatch(new BookingActions.SetPractitionerAction(this.appointment.practitioner));\n }\n return this.navigateService.navigate(['booking', 'timeslot']);\n }\n\n completeForms() {\n const queryParams = this.onboardingService.getQueryParams();\n this.navigateService.navigate(['onboarding'], queryParams, true);\n }\n}\n","
\n
\n
\n
\n
\n
\n \n {{ 'complete-onboarding-forms' | translate }}\n \n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n

\n {{ 'upcoming-appointment-title' | translate }}\n

\n

\n {{ 'appointment-details' | translate }}\n

\n
\n
\n
\n \n\n {{ appointment.location.name }} \n
\n
\n
\n
\n \n {{ appointment.telehealthMeetingUrl }}\n
\n
\n
\n
\n \n\n {{ appointment.service.name }} \n
\n
\n
\n
\n \n {{ appointment.practitioner.firstName }} {{ appointment.practitioner.lastName }}\n \n \n \n
\n
\n
\n
\n \n {{ appointment.localDateTime | date: 'fullDate' }} at {{ appointment.localDateTime | date: 'shortTime' }}\n \n
\n
\n
0\">\n
\n \n \n If you cancel this appointment within {{ cancellationPeriod }} hours before its scheduled start time, you will be charged\n ${{ appointment.cancellationFee }} cancellation fee.\n \n
\n
\n
\n
\n
\n \n {{ status | translate }}\n
\n
\n
\n
\n refresh\n {{ 'reschedule' | translate }}\n
\n
\n delete\n {{ 'cancel' | translate }}\n
\n
\n
\n
\n
\n
\n
\n","import { AppointmentsService } from './../../services/appointments.service';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { AuthHelperService, NavigateWrapperService } from '../../../core/services';\nimport { AccountService } from '../../../account/services';\nimport { Common } from '../../../shared/models/Common';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { ToastrService } from 'ngx-toastr';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-appointment-verify-page',\n templateUrl: 'appointment-verify-page.component.html',\n})\nexport class AppointmentVerifyPageComponent extends BaseComponent implements OnInit, OnDestroy {\n appointmetUid: string;\n token: string;\n form: FormGroup;\n error = '';\n loggedIn = false;\n\n constructor(\n private formBuilder: FormBuilder,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService,\n private appointmentsService: AppointmentsService,\n private authHelperService: AuthHelperService,\n private accountService: AccountService,\n private toastr: ToastrService,\n private translateService: TranslateService\n ) {\n super();\n this.route.params.pipe(first(), takeUntil(this.destroy$)).subscribe((params) => {\n this.appointmetUid = params['uid'];\n });\n }\n\n ngOnInit() {\n this.accountService.check(null, this.appointmetUid, null).subscribe(\n (res: any) => {\n if (res.hasAccount) {\n return this.navigateService.navigate(['login'], {\n returnUrl: this.route.snapshot.queryParams['returnUrl'],\n email: res.email,\n });\n } else {\n return this.navigateService.navigate(['register', this.appointmetUid, Common.RegisterType.Appointment], {\n returnUrl: this.route.snapshot.queryParams['returnUrl'],\n email: res.email,\n });\n }\n },\n (err) => {\n this.error = err.error;\n this.toastr.warning(this.translateService.instant(err.error));\n }\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","
\n
\n \n\n
\n

Verify

\n
\n 0\">\n
\n \n info\n \n {{ error | translate }}\n
\n
\n
\n
\n
\n
\n Email\n \n
\n\n
\n \n
\n
\n
\n
\n\n
\n \n\n","import { ToastrService } from 'ngx-toastr';\nimport { Appointment } from './../../models/appointment';\nimport { AppointmentsFilterDirection, AppointmentsService } from './../../services/appointments.service';\nimport { Component, OnInit, Input } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../../booking/actions/index';\nimport { Store } from '@ngrx/store';\nimport { StartupService, NavigateWrapperService } from '../../../core/services';\nimport { OnboardingService } from '../../../onboarding/services';\nimport { ClinicService } from '../../../clinic/services';\nimport { ClinicLocation } from '../../../clinic/models';\nimport { tap, flatMap } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-appointments-list-page',\n templateUrl: 'appointments-list-page.component.html',\n styleUrls: ['appointments-list-page.component.scss'],\n})\nexport class AppointmentsListPageComponent implements OnInit {\n upcomingList: Appointment[] = [];\n previousList: Appointment[] = [];\n currentList: Appointment[] = [];\n locations: ClinicLocation[] = [];\n acceptedPayments = [];\n selectedLocation: ClinicLocation;\n showMoreUpcomingBtn = true;\n showMorePreviousBtn = true;\n useOnlineBooking = true;\n showOnboardingAlert = false;\n loading = false;\n loadingUpcoming = true;\n loadingPast = true;\n canRescheduleAppointments = false;\n minHoursToCancelReschedule: number;\n\n skipFutureApptsCounter: number = 0;\n skipPastApptsCouner: number = 0;\n showLocationMap: boolean = false;\n\n private take = 6;\n\n onlineBookingDisabledMessage;\n\n constructor(\n private appointmentsService: AppointmentsService,\n private store: Store,\n private toastr: ToastrService,\n private clinicService: ClinicService,\n private startupService: StartupService,\n private onboardingService: OnboardingService,\n public navigateService: NavigateWrapperService\n ) {\n this.useOnlineBooking = startupService.startupData.useOnlineBooking;\n\n startupService.startupData.acceptedPayments.forEach((payment) => {\n this.acceptedPayments.push({\n name: payment,\n src: 'assets/img/' + payment.toString().toLowerCase() + '@2x.png',\n });\n });\n\n this.onboardingService\n .getOnboardingForms()\n .pipe(flatMap((res) => this.onboardingService.progress()))\n .subscribe((progress: any) => {\n this.showOnboardingAlert = progress.completion < 100;\n });\n\n this.onlineBookingDisabledMessage = startupService.startupData.onlineBookingDisabledMessage;\n }\n\n ngOnInit(): void {\n this.onShowMoreUpcomingClick();\n this.onShowMorePreviousClick();\n this.store.dispatch(new BookingActions.ResetAllAction({}));\n\n this.clinicService.getLocations().subscribe(\n (res: ClinicLocation[]) => {\n this.locations = res;\n this.selectedLocation = this.locations[0];\n },\n (err) => {}\n );\n }\n\n onShowMoreUpcomingClick(): void {\n this.loading = true;\n\n const query = {\n Direction: AppointmentsFilterDirection.Future,\n Skip: this.skipFutureApptsCounter * this.take - 1,\n Take: this.take,\n };\n\n this.appointmentsService\n .getFutureAndPastAppointments(query.Direction, query.Take, query.Skip)\n .pipe(tap(() => (this.loading = this.loadingUpcoming = false)))\n .subscribe((list) => {\n this.skipFutureApptsCounter++;\n this.currentList = list.appointments || [];\n this.canRescheduleAppointments = list.canRescheduleAppointments;\n this.minHoursToCancelReschedule = list.minimumHoursToCancelReschedule;\n if (this.currentList.length < this.take) {\n this.showMoreUpcomingBtn = false;\n } else {\n this.currentList.pop();\n }\n this.upcomingList = [...this.upcomingList, ...this.currentList];\n });\n }\n\n onShowMorePreviousClick(): void {\n this.loading = true;\n\n const query = {\n Direction: AppointmentsFilterDirection.Past,\n Skip: this.skipPastApptsCouner * this.take - 1,\n Take: this.take,\n };\n\n this.appointmentsService\n .getFutureAndPastAppointments(query.Direction, query.Take, query.Skip)\n .pipe(tap(() => (this.loading = this.loadingPast = false)))\n .subscribe((list) => {\n this.skipPastApptsCouner++;\n list = list.appointments || [];\n if (list.length < this.take) {\n this.showMorePreviousBtn = false;\n } else {\n list.pop();\n }\n\n this.previousList = [...this.previousList, ...list];\n });\n }\n\n completeForms(): void {\n this.navigateService.navigate(['onboarding']);\n }\n\n onLocationChange(location): void {\n this.showLocationMap = false;\n this.selectedLocation = location;\n }\n\n navigateTo(route): void {\n this.navigateService.navigate([route]);\n }\n}\n","
\n \n
\n \n info\n \n {{ onlineBookingDisabledMessage || ('no-online-booking-banner' | translate) }}\n
\n
\n\n \n
\n \n
\n
\n \n
\n
\n
{{ 'complete-onboarding-forms' | translate }}
\n
\n \n
\n
\n
\n \n
\n \n\n
\n
\n
\n

\n {{ 'my-appointments' | translate }}\n {{ 'my-appointments-upcoming' | translate }}\n

\n \n
\n\n

\n {{ 'my-appointments-upcoming' | translate }}\n

\n\n
\n \n \n
\n\n \n\n
\n 0\"\n [disabled]=\"loading\"\n >\n {{ 'show-more-upcoming' | translate }}\n \n \n \n \n
\n\n
\n
\n
{{ 'no-upcoming-appointments' | translate }}
\n {{ 'book-now' | translate }}\n
\n
\n\n
\n

0\" class=\"top-title\" ngClass.lt-sm=\"text-center\">\n {{ 'my-appointments-past' | translate }}\n {{ 'past' | translate }}\n

\n
\n\n
\n \n \n
\n\n \n\n
0\">\n \n
\n
\n
\n
\n \n
\n
\n 1\" (selectionChange)=\"onLocationChange($event.value)\" [value]=\"selectedLocation\">\n \n {{ location.name }}\n \n \n

\n {{ locations[0].name }}\n

\n
\n
\n
\n \n

{{ selectedLocation.email }}

\n
\n
\n
\n
\n \n

{{ selectedLocation.phoneNumber }}

\n
\n
\n
\n
\n \n {{ 'street-address' | translate }}:\n {{ selectedLocation.addressLine1 + (selectedLocation.addressLine2 ? ', ' : '') }}\n {{ selectedLocation.addressLine2 }}\n \n
\n
\n\n
\n
\n \n {{ 'city' | translate }}:\n {{ selectedLocation.city }}\n \n
\n
\n\n
\n
\n \n {{ 'state' | translate }}:\n {{ selectedLocation.state }}\n \n
\n
\n\n
\n
\n \n {{ 'zipCode' | translate }}:\n {{ selectedLocation.zipCode }}\n \n
\n
\n\n
\n
\n

\n {{ 'country' | translate }}:\n {{ selectedLocation.country }}\n

\n
\n
\n \n
\n place\n {{ 'see-map' | translate }}\n
\n
\n\n
0\">\n
\n \n
\n
\n
\n
\n \n \"{{\n \n
\n
\n \n {{ payment.name | translate }}\n \n
\n
\n
\n\n
\n \n \n \n
\n
\n
\n \n\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AppointmentsService } from '../../services';\nimport { StartupService } from './../../../core/services/startup.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRoot from './../../../ngrx';\nimport { State } from './../../../organization/reducers';\nimport { zonedTimeToUtc } from 'date-fns-tz';\n\n@Component({\n selector: 'pp-cancel-modal',\n styleUrls: ['./cancel-modal.component.scss'],\n templateUrl: 'cancel-modal.component.html',\n})\nexport class CancelModalComponent implements OnInit {\n cancelInProgress: boolean = false;\n\n reason = '';\n cancellationPeriod: number;\n cancellationPolicyTitle: string;\n organization$ = this.store.pipe(select(fromRoot.getOrganizationState));\n organization: State;\n\n get cancellationPolicyWarningText(): string {\n return `According to the agreed ${this.cancellationPolicyTitle}, cancelling the appointment within ${this.cancellationPeriod} hours before its scheduled start time will be charged a late cancellation fee of $${this.data.cancellationFee}.`;\n }\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private appointmentsService: AppointmentsService,\n public dialogRef: MatDialogRef,\n private startupService: StartupService,\n private store: Store\n ) {}\n\n ngOnInit() {\n this.cancellationPeriod = this.startupService.startupData.cancellationPeriod;\n this.cancellationPolicyTitle = this.startupService.startupData.cancellationPolicyTitle;\n this.organization$.pipe().subscribe((response) => (this.organization = response));\n }\n\n onCancelClick() {\n this.cancelInProgress = true;\n\n this.appointmentsService.cancel(this.data.appointmentUid, this.reason).subscribe(\n (res) => {\n this.dialogRef.close(res);\n },\n (err) => {\n if (err.status === 401) {\n this.dialogRef.close();\n }\n }\n );\n }\n\n public showCcpeSection(): boolean {\n let currentDateTimeUTC = zonedTimeToUtc(new Date(), Intl.DateTimeFormat().resolvedOptions().timeZone);\n let bookingDateTimeUTC = zonedTimeToUtc(this.data.utcDateTime, 'UTC');\n bookingDateTimeUTC.setHours(bookingDateTimeUTC.getHours() - this.cancellationPeriod);\n const appointmentIsInCcpeTimeFrame = currentDateTimeUTC > bookingDateTimeUTC;\n\n return (\n appointmentIsInCcpeTimeFrame &&\n this.organization.useCancellationPolicy &&\n this.data.cancellationFee > 0 &&\n !this.data.doNotChargeCancellationFee\n );\n }\n}\n","\n

\n {{ 'cancel-appointment-title-question' | translate }}\n

\n\n
\n
\n
\n {{ data.localDateTimeDateObj | date: 'mediumDate' }}\n {{ data.localDateTimeDateObj | date: 'shortTime' }}\n
\n
\n
\n
\n

\n {{ data.service.name }}\n

\n

{{ data.practitioner.firstName }} {{ data.practitioner.lastName }}

\n

{{ 'location' | translate }}: {{ data.location.name }}

\n
\n
\n
\n
\n
\n \n {{ data.status | translate }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n {{ 'reason-label' | translate }}\n

\n \n
\n
\n
\n\n
\n
\n
\n

\n {{ cancellationPolicyTitle }}\n

\n \n
\n
\n
\n
\n \n \n
\n
\n
\n\n
\n \n \n
\n
\n","import { CancelModalComponent } from './cancel-modal/cancel-modal.component';\nimport { AppointmentsListPageComponent } from './appointments-list-page/appointments-list-page.component';\nimport { AppointmentItemComponent } from './appointment-item/appointment-item.component';\nimport { AppointmentPageComponent } from './appointment-page/appointment-page.component';\nimport { AppointmentVerifyPageComponent } from './appointment-verify-page/appointment-verify-page.component';\n\nexport const APPOINTMENTS_COMPONENTS: any[] = [\n AppointmentsListPageComponent,\n AppointmentItemComponent,\n AppointmentPageComponent,\n AppointmentVerifyPageComponent,\n CancelModalComponent\n];\n\nexport * from './appointments-list-page/appointments-list-page.component';\nexport * from './cancel-modal/cancel-modal.component';\nexport * from './appointment-item/appointment-item.component';\nexport * from './appointment-page/appointment-page.component';\nexport * from './appointment-verify-page/appointment-verify-page.component';\n","import { Subject } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';\nimport { AuthHelperService, NavigateWrapperService, StartupService } from '../../core/services/index';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivateAppointmentPageGuard implements CanActivate, OnDestroy {\n private loggedIn = false;\n private destroy$: Subject = new Subject();\n\n constructor(\n private authHelperService: AuthHelperService,\n private navigateService: NavigateWrapperService,\n private startupService: StartupService\n ) {\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((val) => (this.loggedIn = val));\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.loggedIn) {\n this.navigateService.navigate(['appointments'], { returnUrl: state.url });\n\n return false;\n }\n\n if (!this.startupService.startupData.usePatientPortal) {\n return true;\n }\n\n // go to verify page\n this.navigateService.navigate(['appointments/' + route.params.uid + '/verify'], { returnUrl: state.url });\n\n return false;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { CanActivateAppointmentPageGuard } from \"./can-activate-appointment-page.guard\";\n\nexport const APPOINTMENT_GUARDS: any[] = [\n CanActivateAppointmentPageGuard\n];\n\nexport * from \"./can-activate-appointment-page.guard\";\n\n\n","import { ClinicLocation, Service, Practitioner } from '../../clinic/models/index';\n\nexport interface Appointment {\n calendarAppointmentId: number;\n appointmentUid: string;\n locationGuid: string;\n location: ClinicLocation;\n serviceId: number;\n service: Service;\n patientId: number;\n practitionerId: number;\n practitioner: Practitioner;\n index: number;\n duration: number;\n localDateTime: string;\n localDateTimeDateObj: Date;\n utcDateTime: string;\n isForNewPatients: true;\n reasonForVisit: string;\n cancellationFee: number;\n cancellationPeriod: number;\n telehealthMeetingUrl: string;\n doNotChargeCancellationFee: boolean;\n\n billingState: BillingState;\n appointmentStatus: AppointmentStatus;\n appointmentState: AppointmentState;\n acceptedState: AppointmentAcceptedState;\n cancelledState: AppointmentCanceledState;\n arrivedState: AppointmentArrivedState;\n appointmentType: AppointmentType;\n isMatchingError: boolean;\n hasPatientPortalAccount: boolean;\n\n status: string;\n participants: [\n {\n personId: number;\n participantName: {\n firstName: string;\n middleName: string;\n lastName: string;\n };\n personTypeIds: [number];\n }\n ];\n supervisor: Practitioner;\n intern: Practitioner;\n assistingIntern: Practitioner;\n}\n\nexport enum AppointmentStatus {\n Accepted,\n Confirmed,\n NotConfirmed,\n NoShow,\n ArrivedOnTime,\n ArrivedLate,\n InSession,\n Completed,\n}\n\nexport enum AppointmentState {\n Created,\n Accepted,\n Rejected,\n Confirmed,\n NotConfirmed,\n Completed,\n}\n\nexport enum AppointmentAcceptedState {\n Created,\n Rescheduled,\n Cancelled,\n Arrived,\n NotArrived,\n InSession,\n}\n\nexport enum AppointmentCanceledState {\n CancelledByPatient,\n CancelledByPractitioner,\n}\n\nexport enum AppointmentArrivedState {\n ArrivedOnTime,\n ArrivedLate,\n}\n\nexport enum AppointmentType {\n SelfPay,\n Insurance,\n Promotion,\n ProBono,\n Other,\n}\n\nexport enum BillingState {\n PaidInFull,\n BalanceDue,\n Settled,\n InvoiceCreated,\n ClaimCreated,\n ClaimSubmitted,\n ClaimPartialPay,\n ClaimComplete,\n ClaimSubmittedToOA,\n ClaimSubmittedExternally,\n}\n","import {\n Appointment,\n AppointmentState,\n AppointmentAcceptedState\n} from \"./../models/appointment\";\nimport { Injectable } from \"@angular/core\";\nimport {\n HttpClient,\n HttpParams,\n} from \"@angular/common/http\";\nimport { environment } from \"./../../../environments/environment\";\nimport { isBefore, addHours } from \"date-fns\";\nimport { StartupService } from \"../../core/services\";\nimport { map } from \"rxjs/operators\";\nimport { zonedTimeToUtc } from \"date-fns-tz\";\n\nexport enum AppointmentsFilterDirection {\n Past = 1,\n Future = 2\n}\n@Injectable()\nexport class AppointmentsService {\n constructor(\n private http: HttpClient,\n private startupService: StartupService\n ) { }\n\n list(query) {\n let params = new HttpParams();\n Object.keys(query).forEach(\n key => (params = query[key] ? params.append(key, query[key]) : params)\n );\n return this.http.get(`${environment.apiUrl}/Appointments`, {\n params\n });\n // .map((res: any) => res.data);\n }\n\n getFutureAndPastAppointments(direction: number, take: number, skip: number) {\n skip = skip < 0 ? 0 : skip;\n return this.http.get(`${environment.apiUrl}/Appointments?Direction=${direction}&Take=${take}&Skip=${skip}`);\n }\n\n get(uid, token) {\n let url = `${environment.apiUrl}/Appointments/${uid}`;\n\n if (token) {\n url = `${url}?token=${token}`;\n }\n\n return this.http.get(url).pipe(\n map(apt => {\n return apt;\n })\n );\n }\n\n cancel(appointmentUid, reason?) {\n return this.http.put(\n `${environment.apiUrl}/Appointments/${appointmentUid}/cancel`,\n { reason }\n );\n }\n\n getStatus(appointment) {\n let status = \"\";\n\n if (\n appointment.appointmentState ===\n AppointmentState[AppointmentState.Created]\n ) {\n status = \"pending\";\n }\n\n if (\n appointment.appointmentState ===\n AppointmentState[AppointmentState.Completed]\n ) {\n status = \"completed\";\n }\n\n if (\n appointment.appointmentState ===\n AppointmentState[AppointmentState.Accepted] &&\n appointment.acceptedState ===\n AppointmentAcceptedState[AppointmentAcceptedState.NotArrived]\n ) {\n status = \"missed\";\n }\n\n if (\n appointment.appointmentState ===\n AppointmentState[AppointmentState.Accepted] ||\n appointment.appointmentState ===\n AppointmentState[AppointmentState.Confirmed] ||\n appointment.appointmentState ===\n AppointmentState[AppointmentState.NotConfirmed]\n ) {\n status = \"accepted\";\n }\n\n if (\n appointment.appointmentState ===\n AppointmentState[AppointmentState.Rejected] ||\n (appointment.appointmentState ===\n AppointmentState[AppointmentState.Accepted] &&\n appointment.acceptedState ===\n AppointmentAcceptedState[AppointmentAcceptedState.Cancelled]) ||\n (appointment.appointmentState ===\n AppointmentState[AppointmentState.Created] &&\n appointment.acceptedState ===\n AppointmentAcceptedState[AppointmentAcceptedState.Cancelled])\n ) {\n status = \"cancelled\";\n }\n\n return status;\n }\n\n canCancelOrReschedule(\n status,\n bookingTime,\n canReschedule,\n minHoursPatientAllowedCancelOrReschedule\n ) {\n let currentDateTimeUTC = zonedTimeToUtc(new Date(), Intl.DateTimeFormat().resolvedOptions().timeZone);\n let bookingDateTimeUTC = zonedTimeToUtc(bookingTime, \"UTC\");\n\n return (\n (status === \"accepted\" || status === \"pending\") &&\n isBefore(addHours(currentDateTimeUTC, minHoursPatientAllowedCancelOrReschedule), bookingDateTimeUTC) &&\n canReschedule &&\n this.startupService.startupData.useOnlineBooking\n );\n }\n\n canBookSimilar() {\n return this.startupService.startupData.useOnlineBooking;\n }\n}\n","import { AppointmentsService } from './appointments.service';\n\nexport const APPOINTMENTS_SERVICES: any[] = [\n AppointmentsService\n];\n\nexport * from './appointments.service';\n","import { InsuranceType } from './../models/insurance-type';\nimport { BookingConfirmationStatus, Guest } from './../models/booking-day';\nimport { ClinicLocation } from './../../clinic/models/location';\nimport { Practitioner } from './../../clinic/models/practitioner';\nimport { Service } from './../../clinic/models/service';\nimport { Action } from '@ngrx/store';\nimport { type } from '../../ngrx/type';\nimport { Timeslot } from '../models/index';\n\n/**\n * Each action should be namespaced\n * this allows the interior to have similar typed names as other actions\n * however still allow index exports\n */\nexport namespace BookingActions {\n // Category to uniquely identify the actions\n export const CATEGORY = '[Booking]';\n\n export const SET_EXISTING_PATIENT = type(`${CATEGORY} Set Existing Patient`);\n export const SET_LOCATION = type(`${CATEGORY} Set Location`);\n export const SET_QUERY_LOCATION = type(`${CATEGORY} Set Query Param Location`);\n export const SET_LOCATION_SERVICE = type(`${CATEGORY} Set Location Service`);\n export const SET_PRACTITIONER = type(`${CATEGORY} Set Practitioner`);\n export const SET_PREFERRED_PRACTITIONER_OPTION = type(`${CATEGORY} SET_PREFERRED_PRACTITIONER_OPTION`);\n export const SET_PRACTITIONERS = type(`${CATEGORY} Set Practitioners`);\n export const SET_TIMESLOT = type(`${CATEGORY} SET_TIMESLOT`);\n export const SET_LOCATION_UID = type(`${CATEGORY} SET_LOCATION_UID`);\n export const SET_CLINIC_UID = type(`${CATEGORY} SET_CLINIC_UID`);\n export const SET_INSURANCE_TYPE = type(`${CATEGORY} SET_INSURANCE_TYPE`);\n export const SET_INSURANCE = type(`${CATEGORY} SET_INSURANCE`);\n export const SET_WORK_INSURANCE = type(`${CATEGORY} SET_WORK_INSURANCE`);\n export const SET_AUTO_INSURANCE = type(`${CATEGORY} SET_AUTO_INSURANCE`);\n export const SET_ACCOUNT = type(`${CATEGORY} SET_ACCOUNT`);\n export const SET_ADDITIONAL_DATA = type(`${CATEGORY} SET_ADDITIONAL_DATA`);\n export const CAN_CHANGE_LOCATION = type(`${CATEGORY} CAN_CHANGE_LOCATION`);\n export const CAN_CHANGE_PRACTITIONER = type(`${CATEGORY} CAN_CHANGE_PRACTITIONER`);\n export const RESET_ALL = type(`${CATEGORY} RESET_ALL`);\n\n export const SET_APPOINTMENT_UID = type(`${CATEGORY} SET_APPOINTMET_UID`);\n export const SET_MESSAGE_ON_SUCCEESS_STEP = type(`${CATEGORY} SET_MESSAGE_ON_SUCCEESS_STEP`);\n export const SET_MESSAGE_ON_Practitioner_STEP = type(`${CATEGORY} SET_MESSAGE_ON_Practitioner_STEP`);\n export const SET_MESSAGE_ON_Location_STEP = type(`${CATEGORY} SET_MESSAGE_ON_Location_STEP`);\n export const SET_MESSAGE_ON_Service_STEP = type(`${CATEGORY} SET_MESSAGE_ON_Service_STEP`);\n export const SET_BOOKING_CONFIRMATION_STATUS = type(`${CATEGORY} SET_BOOKING_CONFIRMATION_STATUS`);\n\n /**\n * Every action is comprised of at least a type and an optional\n * payload. Expressing actions as classes enables powerful\n * type checking in reducer functions.\n *\n * See Discriminated Unions: https://www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions\n */\n /**\n * General scheduling actions\n */\n\n export class ResetAllAction implements Action {\n type = RESET_ALL;\n\n constructor(public payload: any) {}\n }\n\n // export class ResetContentAction implements Action {\n // type = RESET_CONTENT;\n\n // constructor(public payload: any) { }\n // }\n\n /**\n * Step 1 - Previous location actions\n */\n export class SetExistingPatientAction implements Action {\n type = SET_EXISTING_PATIENT;\n\n constructor(public payload: boolean) {}\n }\n\n /**\n * Step 2 - Location and service actions\n */\n export class SetLocationAction implements Action {\n type = SET_LOCATION;\n\n constructor(public payload: ClinicLocation) {}\n }\n export class SetQueryParamLocationAction implements Action {\n type = SET_QUERY_LOCATION;\n\n constructor(public payload: string) {}\n }\n\n export class SetServiceAction implements Action {\n type = SET_LOCATION_SERVICE;\n\n constructor(public payload: Service) {}\n }\n\n export class CanChangeLocationAction implements Action {\n type = CAN_CHANGE_LOCATION;\n\n constructor(public payload: boolean) {}\n }\n\n /**\n * Step 3 - Practitioner and date actions\n */\n export class SetPractitionerAction implements Action {\n type = SET_PRACTITIONER;\n\n constructor(public payload: Practitioner) {}\n }\n\n export class SetPreferredPractitionerOption implements Action {\n type = SET_PREFERRED_PRACTITIONER_OPTION;\n\n constructor(public payload: string) {}\n }\n\n export class SetPractitionersAction implements Action {\n type = SET_PRACTITIONERS;\n\n constructor(public payload: Practitioner[]) {}\n }\n\n export class CanChangePractitionerAction implements Action {\n type = CAN_CHANGE_PRACTITIONER;\n\n constructor(public payload: boolean) {}\n }\n\n export class SetTimeslotAction implements Action {\n type = SET_TIMESLOT;\n\n constructor(public payload: Timeslot) {}\n }\n\n export class SetClinicGuid implements Action {\n type = SET_CLINIC_UID;\n\n constructor(public payload: string) {}\n }\n export class SetLocationGuid implements Action {\n type = SET_LOCATION_UID;\n\n constructor(public payload: string) {}\n }\n\n export class SetAccount implements Action {\n type = SET_ACCOUNT;\n\n constructor(public payload: Guest) {}\n }\n export class SetAdditionalInfo implements Action {\n type = SET_ADDITIONAL_DATA;\n\n constructor(public payload: Guest) {}\n }\n\n export class SetInsuranceType implements Action {\n type = SET_INSURANCE_TYPE;\n\n constructor(public payload: InsuranceType) {}\n }\n export class SetInsurance implements Action {\n type = SET_INSURANCE;\n\n constructor(public payload: any) {}\n }\n export class SetWorkInsurance implements Action {\n type = SET_WORK_INSURANCE;\n\n constructor(public payload: any) {}\n }\n export class SetAutoInsurance implements Action {\n type = SET_AUTO_INSURANCE;\n\n constructor(public payload: any) {}\n }\n export class SetAppointmentUid implements Action {\n type = SET_APPOINTMENT_UID;\n\n constructor(public payload: any) {}\n }\n export class SetMessageOnSuccessStep implements Action {\n type = SET_MESSAGE_ON_SUCCEESS_STEP;\n constructor(public payload: any) {}\n }\n export class SetMessageOnPractitionerStep implements Action {\n type = SET_MESSAGE_ON_Practitioner_STEP;\n constructor(public payload: string) {}\n }\n export class SetMessageOnLocationStep implements Action {\n type = SET_MESSAGE_ON_Location_STEP;\n constructor(public payload: string) {}\n }\n export class SetMessageOnServiceStep implements Action {\n type = SET_MESSAGE_ON_Service_STEP;\n constructor(public payload: string) {}\n }\n export class SetBookingConfirmationStatus implements Action {\n type = SET_BOOKING_CONFIRMATION_STATUS;\n constructor(public payload: BookingConfirmationStatus) {}\n }\n\n /**\n * Export a type alias of all actions in this action group\n * so that reducers can easily compose action types\n */\n export type Actions =\n | SetExistingPatientAction\n | SetLocationAction\n | SetServiceAction\n | SetPractitionerAction\n | SetPractitionersAction\n | SetTimeslotAction\n | CanChangeLocationAction\n | CanChangePractitionerAction\n | SetAdditionalInfo\n | SetAccount\n | SetInsuranceType\n | SetInsurance\n | SetWorkInsurance\n | SetAutoInsurance\n | SetAppointmentUid\n | ResetAllAction\n | SetMessageOnSuccessStep\n | SetMessageOnPractitionerStep\n | SetMessageOnLocationStep\n | SetMessageOnServiceStep\n | SetClinicGuid\n | SetQueryParamLocationAction\n | SetPreferredPractitionerOption\n | SetBookingConfirmationStatus;\n}\n","\nexport * from './booking.actions';\n","import { WorkInsuranceStepPageComponent } from './components/work-insurance-step-page/work-insurance-step-page.component';\nimport { AutoInsuranceStepPageComponent } from './components/auto-insurance-step-page/auto-insurance-step-page.component';\nimport { CanActivateIfTimeslotGuard } from './guards';\nimport { LoginStepPageComponent } from './components/login-step-page/login-step-page.component';\nimport { GuestStepPageComponent } from './components/guest-step-page/guest-step-page.component';\n\nimport { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\n// Components\nimport {\n BookingContainerPageComponent,\n PreviusVisitStepPageComponent,\n LocationStepPageComponent,\n ServiceStepPageComponent,\n TimeslotStepPageComponent,\n InsuranceTypeStepPageComponent,\n PrimaryInsuranceStepPageComponent,\n ReviewStepPageComponent,\n SuccessfullyConfirmationStepPageComponent,\n PractitionerStepPageComponent,\n} from './components/index';\n\n// Guards\nimport {\n CanActivateServiceStepGuard,\n CanActivateLocationStepGuard,\n CanActivatePractitionerStepGuard,\n CanActivateTimeslotStepGuard,\n CanActivatePreviousVisitStepGuard,\n} from './guards/index';\n\n// Resolvers\nimport { ClinicStepResolver } from './guards/clinic-step.resolver';\nimport { StatesResolver } from '../onboarding/services/states.resolver';\n\nexport const bookingRoutes: Routes = [\n {\n path: 'booking',\n component: BookingContainerPageComponent,\n children: [\n { path: '', redirectTo: 'previous-visit', pathMatch: 'full' },\n {\n path: 'previous-visit',\n component: PreviusVisitStepPageComponent,\n canActivate: [CanActivatePreviousVisitStepGuard],\n },\n { path: 'previous-visit/:locationGuid', component: PreviusVisitStepPageComponent },\n {\n path: 'location',\n component: LocationStepPageComponent,\n resolve: { locations: ClinicStepResolver },\n canActivate: [CanActivateLocationStepGuard],\n },\n {\n path: 'service',\n component: ServiceStepPageComponent,\n canActivate: [CanActivateServiceStepGuard],\n },\n {\n path: 'practitioner',\n component: PractitionerStepPageComponent,\n canActivate: [CanActivatePractitionerStepGuard],\n },\n {\n path: 'timeslot',\n component: TimeslotStepPageComponent,\n canActivate: [CanActivateTimeslotStepGuard],\n },\n {\n path: 'auth',\n component: LoginStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'register',\n component: GuestStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'insurance-type',\n component: InsuranceTypeStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'primary-insurance',\n component: PrimaryInsuranceStepPageComponent,\n resolve: { states: StatesResolver },\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'auto-insurance',\n component: AutoInsuranceStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'work-insurance',\n component: WorkInsuranceStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'review',\n component: ReviewStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n {\n path: 'success',\n component: SuccessfullyConfirmationStepPageComponent,\n canActivate: [CanActivateIfTimeslotGuard],\n },\n ],\n },\n];\n\n@NgModule({\n exports: [RouterModule],\n providers: [ClinicStepResolver, StatesResolver],\n})\nexport class BookingRoutingModule {}\n","import { AccountModule } from './../account/account.module';\nimport { BOOKING_GUARDS } from './guards/index';\nimport { BOOKING_SERVICES } from './services/index';\nimport { BOOKING_COMPONENTS } from './components/index';\nimport { SharedModule } from './../shared/shared.module';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { BookingRoutingModule } from './booking-routing.module';\nimport { ClinicModule } from '../clinic/clinic.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FullSteamIntegrationService } from '../core/services/full-steam-integration.service';\nimport { FullSteamIntegrationClient } from '../core/services/full-steam-integration.client';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UpNgFullsteamModule, UpFullSteamIntegrationService } from '@unifiedpractice/up-ng-fullsteam';\n\n@NgModule({\n imports: [\n SharedModule,\n AccountModule,\n BookingRoutingModule,\n ClinicModule,\n FlexLayoutModule,\n UpNgFullsteamModule.forRoot({\n service: {\n provide: UpFullSteamIntegrationService,\n useClass: FullSteamIntegrationService,\n deps: [FullSteamIntegrationClient, TranslateService],\n },\n }),\n ],\n declarations: [...BOOKING_COMPONENTS],\n providers: [...BOOKING_SERVICES, ...BOOKING_GUARDS],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class BookingModule {\n constructor(@Optional() @SkipSelf() parentModule: BookingModule) {\n if (parentModule) {\n throw new Error('BookingModule already loaded; Import in root module only.');\n }\n }\n}\n","import { CustomValidators } from './../../../shared/validators/custom-validators';\nimport { FormField } from './../../../shared/components/form-render/form-field.model';\nimport { Store } from '@ngrx/store';\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { Component, OnInit, ChangeDetectorRef } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\n\n@Component({\n selector: 'pp-auto-insurance-step-page',\n templateUrl: 'auto-insurance-step-page.component.html'\n})\n\nexport class AutoInsuranceStepPageComponent implements OnInit {\n\n fields: FormField[] = [];\n insuredInfoField: FormField[] = [];\n insuredInfo: FormGroup;\n autoAccidentInsurance: FormGroup;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private store: Store,\n private formBuilder: FormBuilder,\n public navigateService: NavigateWrapperService\n ) { }\n\n ngOnInit() {\n\n this.insuredInfo = this.formBuilder.group({});\n this.autoAccidentInsurance = this.formBuilder.group({\n insuranceIsCoveredByOther: new FormControl(false),\n insuredInfo: this.insuredInfo\n });\n\n this.fields = [\n {\n key: 'accidentDate',\n label: 'accidentDate',\n type: FormFieldsEnum.DatePicker,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'caseClaimNo',\n label: 'caseClaimNo',\n planceholder: 'caseClaimNo-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'caseManagerName',\n label: 'caseManagerName',\n planceholder: 'caseManagerName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'caseManagerPhone',\n label: 'caseManagerPhone',\n planceholder: 'caseManagerPhone-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), CustomValidators.phone],\n }\n , {\n key: 'caseManagerAddress',\n label: 'caseManagerAddress',\n planceholder: 'caseManagerAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n ];\n\n this.insuredInfoField = [\n {\n key: 'patientRelationtionshipToInsuredType',\n label: 'patientRelationtionshipToInsuredType',\n type: FormFieldsEnum.DropdownSingleSelect,\n itemsList: Common.InsuranceRelationships\n }\n , {\n key: 'firstName',\n label: 'insuredInfoFirstName',\n planceholder: 'insuredInfoFirstName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n }\n , {\n key: 'middleName',\n label: 'insuredInfoMiddleName',\n planceholder: 'insuredInfoMiddleName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'lastName',\n label: 'insuredInfoLastName',\n planceholder: 'insuredInfoLastName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n }\n , {\n key: 'dateOfBirth',\n label: 'insuredInfoDateOfBirth',\n type: FormFieldsEnum.DatePicker,\n }\n ];\n\n this.updateCoveredInsurance();\n\n // scroll top\n window.scrollTo(0, 0);\n }\n\n updateCoveredInsurance() {\n\n if (!this.autoAccidentInsurance.value.insuranceIsCoveredByOther) {\n this.autoAccidentInsurance.get('insuredInfo').disable();\n } else {\n this.autoAccidentInsurance.get('insuredInfo').enable();\n }\n\n this.cdr.detectChanges();\n }\n\n onContinueClick() {\n this.store.dispatch(new BookingActions.SetAutoInsurance(this.autoAccidentInsurance.value));\n this.navigateService.navigate(['booking', 'review']);\n }\n}\n","
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n

{{ 'auto-insurance' | translate }}

\n
\n
\n \n
\n\n
\n
\n \n
\n\n
\n
\n \n {{ 'yes-existing-patient' | translate }} \n {{ 'no-firsttime-patient' | translate }} \n \n
\n
\n
\n\n
\n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n","import { Component, OnInit, HostListener, OnDestroy } from '@angular/core';\nimport { Location, PlatformLocation } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { SubscriptionLike as ISubscription } from 'rxjs';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\n\n@Component({\n selector: 'pp-booking-container-page',\n template: ''\n})\n\nexport class BookingContainerPageComponent implements OnDestroy {\n private subscriptions: ISubscription[] = [];\n constructor(\n private location: Location,\n private _location: PlatformLocation,\n private navigateService: NavigateWrapperService,\n private router: Router\n\n ) {\n this.subscriptions.push(\n this.location.subscribe(e => {\n if (e && e.pop && e.url) {\n let nextRoute = e.url;\n\n if (this.navigateService.backRoute) {\n nextRoute = this.navigateService.backRoute;\n this.navigateService.backRoute = undefined;\n } else if (this.navigateService.forwardRoute) {\n nextRoute = this.navigateService.forwardRoute;\n this.navigateService.forwardRoute = undefined;\n }\n\n this.navigateService.redirectGoBack(this.router.url, nextRoute);\n }\n })\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n}\n","import { InsuranceType } from './../../models/insurance-type';\nimport { Practitioner } from './../../../clinic/models/practitioner';\nimport { Component, OnInit, Input, OnDestroy, OnChanges, Output, EventEmitter } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { select, Store } from '@ngrx/store';\nimport { Service, ClinicLocation } from '../../../clinic/models/index';\nimport { Timeslot } from '../../models/index';\nimport { environment } from './../../../../environments/environment';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\n\nimport { zip } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { ClinicService } from '../../../clinic/services';\nimport { find as _find, isEmpty as _isEmpty } from 'lodash-es';\nimport { OrganizationTypeEnum } from '../../../shared/models/organization.enum';\nimport { BookingActions } from '../../actions';\n\n@Component({\n selector: 'pp-booking-summary-box',\n templateUrl: 'booking-summary-box.component.html',\n styleUrls: ['booking-summary-box.component.scss'],\n})\nexport class BookingSummaryBoxComponent extends BaseComponent implements OnInit, OnDestroy {\n @Input() title = '';\n @Input() showConfirmButton: boolean = false;\n @Input() confirmDisabled: boolean;\n @Input() showLoader: boolean;\n @Output() confirmClicked: EventEmitter = new EventEmitter();\n\n mediaBaseUrl = environment.resourceUrl;\n location: ClinicLocation;\n service: Service;\n @Input() practitioner: Practitioner;\n @Input() timeslot: Timeslot;\n insuranceType: InsuranceType;\n canChangeBookingLocation = false;\n canChangeBookingPractitioner = false;\n intern: Practitioner;\n assistingIntern: Practitioner;\n supervisor: Practitioner;\n practitioners: Practitioner[];\n organization;\n isLoadingPractitioners: boolean;\n\n constructor(private store: Store, public navigateService: NavigateWrapperService, private clinicService: ClinicService) {\n super();\n }\n\n ngOnInit() {\n this.store\n .pipe(select(fromRoot.getOrganizationState))\n .pipe(takeUntil(this.destroy$))\n .subscribe((response) => {\n this.organization = response;\n });\n zip(\n this.store.select(fromRoot.getBookingLocation).pipe(first()),\n this.store.select(fromRoot.getBookingService).pipe(first()),\n this.store.select(fromRoot.getBookingPractitioner).pipe(first()),\n this.store.select(fromRoot.canChangeBookingLocation).pipe(first()),\n this.store.select(fromRoot.canChangeBookingPractitioner).pipe(first()),\n this.store.select(fromRoot.getBookingDateTime).pipe(first()),\n this.store.select(fromRoot.getBookingInsuranceType).pipe(first()),\n this.store.select(fromRoot.getBookingPractitioners)\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n this.location = res[0];\n this.service = res[1];\n this.practitioner = res[2];\n this.canChangeBookingLocation = res[3];\n this.canChangeBookingPractitioner = res[4];\n this.timeslot = res[5];\n if (this.timeslot?.assistingInternId || this.timeslot?.mainInternId || this.timeslot?.supervisorId) {\n this.practitioner = null;\n }\n this.insuranceType = res[6];\n this.practitioners = res[7];\n const missingPractitionerIds: number[] = [];\n if (this.timeslot?.mainInternId) {\n this.intern = _find(this.practitioners, { id: this.timeslot?.mainInternId });\n if (!this.intern) {\n missingPractitionerIds.push(this.timeslot?.mainInternId);\n }\n }\n if (this.timeslot?.assistingInternId) {\n this.assistingIntern = _find(this.practitioners, { id: this.timeslot?.assistingInternId });\n if (!this.assistingIntern) {\n missingPractitionerIds.push(this.timeslot?.assistingInternId);\n }\n }\n if (this.timeslot?.supervisorId) {\n this.supervisor = _find(this.practitioners, { id: this.timeslot?.supervisorId });\n if (!this.supervisor) {\n missingPractitionerIds.push(this.timeslot?.supervisorId);\n }\n }\n if (!_isEmpty(missingPractitionerIds)) {\n this.isLoadingPractitioners = true;\n this.clinicService.getPractitionersByIds(missingPractitionerIds).subscribe((practitioners: Practitioner[]) => {\n if (this.timeslot?.mainInternId && !this.intern) {\n this.intern = _find(practitioners, { id: this.timeslot?.mainInternId });\n }\n if (this.timeslot?.assistingInternId && !this.assistingIntern) {\n this.assistingIntern = _find(practitioners, { id: this.timeslot?.assistingInternId });\n }\n if (this.timeslot?.supervisorId && !this.supervisor) {\n this.supervisor = _find(practitioners, { id: this.timeslot?.supervisorId });\n }\n this.isLoadingPractitioners = false;\n });\n }\n });\n }\n\n isUniversity(): boolean {\n return this.organization?.organizationType === OrganizationTypeEnum.univeristy;\n }\n\n navigateTo(route, enabled = true) {\n if (enabled) {\n this.navigateService.navigate([route]);\n }\n }\n\n editInsurance() {\n switch (this.insuranceType) {\n case InsuranceType.Primary:\n this.navigateService.navigate(['booking', 'primary-insurance']);\n break;\n case InsuranceType.AutoAccident:\n this.navigateService.navigate(['booking', 'auto-insurance']);\n break;\n case InsuranceType.WorkAccident:\n this.navigateService.navigate(['booking', 'work-insurance']);\n break;\n default:\n this.navigateService.navigate(['booking', 'insurance-type']);\n break;\n }\n }\n\n changePractitioner() {\n this.resetPractitioners();\n this.resetTimeslot();\n this.navigateTo('booking/practitioner', true);\n }\n\n changeService() {\n this.resetPractitioners();\n this.resetService();\n this.resetTimeslot();\n this.navigateTo('booking/service', true);\n }\n\n changeLocation() {\n this.store.dispatch(new BookingActions.SetLocationAction(null));\n this.resetPractitioners();\n this.resetService();\n this.resetTimeslot();\n this.navigateTo('booking/location', true);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n private resetService() {\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n }\n\n private resetTimeslot() {\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n }\n\n private resetPractitioners() {\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n this.store.dispatch(new BookingActions.SetPreferredPractitionerOption(null));\n }\n\n protected readonly encodeURI = encodeURI;\n}\n","
\n

{{ title }}

\n
\n \n
\n
\n {{ 'location' | translate }}\n
\n
\n
\n {{ location.name }}\n
\n \n
\n
\n \n
\n
\n {{ 'service' | translate }}\n
\n
\n
\n {{ service.name }}\n
\n \n
\n
\n \n \n
{{ 'practitioner' | translate }}
\n
\n
\n \n \n \n
\n\n \n {{ 'no-practitioner-prefrence' | translate }}\n \n \n
\n
\n \n
\n
\n {{ 'Practitioner' | translate }}:\n
\n
\n
\n \n
\n
\n
\n \n \n
\n {{ 'Practitioner' | translate }}:\n {{ 'Supervisor' | translate }}:\n
\n
\n
\n \n \n \n
\n \n
\n \n \n
\n
\n {{ 'Interns' | translate }}:\n
\n
\n \n \n \n
\n \n \n \n
\n
\n
\n \n
\n
\n {{ 'date' | translate }}\n
\n\n
\n
\n {{ timeslot.dateObj | date: 'MMM d, y, h:mm a' }}\n
\n \n
\n
\n \n
\n
\n {{ 'insurance' | translate }}\n
\n
\n
\n {{ insuranceType | translate }}\n
\n \n
\n
\n \n
\n \n
\n \n
\n \n\n
\n
\n {{ practitioner?.firstName }}\n {{ practitioner?.lastName }}\n
\n
\n
\n
\n\n","import { StartupService } from './../../../core/services/startup.service';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { Store } from '@ngrx/store';\n\nimport { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { AccountService } from '../../../account/services';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { zip } from 'rxjs';\nimport { Guest } from '../../models';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { parseISO } from 'date-fns';\n\n@Component({\n selector: 'pp-guest-step-page',\n templateUrl: 'guest-step-page.component.html',\n})\nexport class GuestStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n guest: FormGroup;\n\n filledData: Guest;\n isExistingPatient: false;\n fields: FormField[] = [];\n\n constructor(\n private store: Store,\n private formBuilder: FormBuilder,\n private accountServie: AccountService,\n private navigateService: NavigateWrapperService,\n private startupService: StartupService\n ) {\n super();\n }\n\n ngOnInit() {\n window.scrollTo(0, 0);\n\n this.guest = this.formBuilder.group({\n termsAgreed: new FormControl(false, [Validators.requiredTrue]),\n email: new FormControl('', {\n validators: [Validators.required, CustomValidators.email],\n updateOn: 'blur',\n }),\n });\n\n zip(this.store.select(fromRoot.getBookingAccount), this.store.select(fromRoot.getBookingExistingPatient))\n .pipe(takeUntil(this.destroy$))\n .subscribe((arr) => {\n this.filledData = arr[0] || {};\n this.isExistingPatient = arr[1];\n\n this.fields = this.initFields(this.filledData);\n this.guest.get('email').setValue(this.filledData.email || '');\n });\n }\n\n initFields(data) {\n const fields: FormField[] = [\n {\n key: 'firstName',\n label: 'first-name',\n planceholder: 'first-name-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.maxLength(300)],\n value: data.firstName || '',\n },\n {\n key: 'lastName',\n label: 'last-name',\n planceholder: 'last-name-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.maxLength(300)],\n value: data.lastName || '',\n },\n {\n key: 'phone',\n label: 'phone-number',\n type: FormFieldsEnum.Phone,\n validators: [Validators.required],\n value:\n data.phoneNumber && data.phoneType\n ? {\n number: data.phoneNumber,\n phoneType: data.phoneType,\n }\n : null,\n },\n {\n key: 'dateOfBirth',\n label: 'date-of-birth',\n type: FormFieldsEnum.DatePicker,\n validators: [Validators.required],\n value: data.dateOfBirth ? parseISO(data.dateOfBirth) : null,\n },\n {\n key: 'genderObj',\n label: 'gender',\n type: FormFieldsEnum.Gender,\n validators: [Validators.required],\n value: {\n gender: data.gender || '',\n otherGender: data.otherGender,\n },\n },\n ];\n\n return fields;\n }\n\n onCreateAccountClick() {\n if (!this.guest.valid) {\n return;\n }\n\n const account: Guest = this.guest.value;\n account.otherGender = this.guest.value.genderObj.otherGender;\n account.gender = this.guest.value.genderObj.gender;\n account.phoneNumber = this.guest.value.phone.number;\n account.phoneType = this.guest.value.phone.phoneType;\n delete this.guest.value.genderObj;\n delete this.guest.value.phone;\n\n this.store.dispatch(new BookingActions.SetAccount(account));\n\n if (this.isExistingPatient || !this.clinicAcceptsInsurance()) {\n return this.navigateService.navigate(['booking', 'review']);\n } else {\n return this.navigateService.navigate(['booking', 'insurance-type']);\n }\n }\n\n clinicAcceptsInsurance() {\n return (\n this.startupService.startupData.acceptsInsurance &&\n (this.startupService.startupData.acceptsMajorInsurance ||\n this.startupService.startupData.acceptsAutoAccident ||\n this.startupService.startupData.acceptsWorkerCompensation)\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","
\n
\n {{ 'register' | translate }}\n
\n
\n

{{'fill-in-personal-info'\n | translate}}

\n

\n {{'required-fields-note'\n | translate}}\n

\n
\n\n
\n
\n \n \n
\n

\n {{\n 'form-input-error-required'\n | translate}}\n

\n

\n {{\n 'form-input-error-email-format'\n | translate}}\n

\n

\n {{ 'email-is-in-use' |\n translate}}\n

\n
\n
\n
\n\n
\n\n \n\n
\n \n\n {{ 'read-and-accept' |\n translate }}\n Terms\n of Use\n and\n Privacy\n Policy\n \n \n\n \n
\n

\n {{\n 'form-input-error-terms-not-greed'\n | translate}}\n

\n\n
\n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n","import { AutoInsuranceStepPageComponent } from './auto-insurance-step-page/auto-insurance-step-page.component';\nimport { WorkInsuranceStepPageComponent } from './work-insurance-step-page/work-insurance-step-page.component';\nimport { LoginStepPageComponent } from './login-step-page/login-step-page.component';\nimport { GuestStepPageComponent } from './guest-step-page/guest-step-page.component';\nimport { LocationStepPageComponent } from './location-step-page/location-step-page.component';\nimport { BookingSummaryBoxComponent } from './booking-summary-box/booking-summary-box.component';\nimport { ReviewStepPageComponent } from './review-step-page/review-step-page.component';\nimport { SuccessfullyConfirmationStepPageComponent } from './successfully-confirmation-step-page/successfully-confirmation-step-page.component';\nimport { InsuranceTypeStepPageComponent } from './insurance-type-step-page/insurance-type-step-page.component';\nimport { TimeslotStepPageComponent } from './timeslot-step-page/timeslot-step-page.component';\nimport { PractitionerStepPageComponent } from './practitioner-step-page/practitioner-step-page.component';\nimport { BookingContainerPageComponent } from './booking-container-page/booking-container-page.component';\n\nimport { PreviusVisitStepPageComponent } from './previous-visit-step-page/previus-visit-step-page.component';\nimport { ServiceStepPageComponent } from './service-step-page/service-step-page.component';\nimport { PrimaryInsuranceStepPageComponent } from './primary-insurance-step-page/primary-insurance-step-page.component';\n\nexport const BOOKING_COMPONENTS: any[] = [\n BookingContainerPageComponent\n , PreviusVisitStepPageComponent\n , LocationStepPageComponent\n , ServiceStepPageComponent\n , PractitionerStepPageComponent\n , TimeslotStepPageComponent\n , InsuranceTypeStepPageComponent\n , PrimaryInsuranceStepPageComponent\n , SuccessfullyConfirmationStepPageComponent\n , ReviewStepPageComponent\n , BookingSummaryBoxComponent\n , GuestStepPageComponent\n , LoginStepPageComponent\n , WorkInsuranceStepPageComponent\n , AutoInsuranceStepPageComponent\n];\n\nexport * from './booking-container-page/booking-container-page.component';\nexport * from './previous-visit-step-page/previus-visit-step-page.component';\nexport * from './location-step-page/location-step-page.component';\nexport * from './service-step-page/service-step-page.component';\nexport * from './practitioner-step-page/practitioner-step-page.component';\nexport * from './timeslot-step-page/timeslot-step-page.component';\nexport * from './insurance-type-step-page/insurance-type-step-page.component';\nexport * from './primary-insurance-step-page/primary-insurance-step-page.component';\nexport * from './successfully-confirmation-step-page/successfully-confirmation-step-page.component';\nexport * from './review-step-page/review-step-page.component';\nexport * from './booking-summary-box/booking-summary-box.component';\nexport * from './guest-step-page/guest-step-page.component';\nexport * from './login-step-page/login-step-page.component';\nexport * from './work-insurance-step-page/work-insurance-step-page.component';\nexport * from './auto-insurance-step-page/auto-insurance-step-page.component';\n\n","import { InsuranceType } from './../../models/insurance-type';\nimport { StartupService } from './../../../core/services/startup.service';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { Store } from '@ngrx/store';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-insurance-type-step-page',\n templateUrl: 'insurance-type-step-page.component.html',\n})\nexport class InsuranceTypeStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n insuranceCompanies = [];\n primaryInsurance = false;\n workInsurance = false;\n autoInsurance = false;\n isExistingPatient = false;\n insuranceMessageNewPatient;\n insuranceMessageExistingPatient;\n insuranceTypeEnum = InsuranceType;\n\n constructor(\n private store: Store,\n private startupService: StartupService,\n private navigateService: NavigateWrapperService\n ) {\n super();\n }\n\n ngOnInit() {\n this.store\n .select(fromRoot.getBookingExistingPatient)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.isExistingPatient = val));\n\n this.insuranceCompanies = this.startupService.startupData.insuranceCompanies;\n this.primaryInsurance = this.startupService.startupData.acceptsMajorInsurance;\n this.autoInsurance = this.startupService.startupData.acceptsAutoAccident;\n this.workInsurance = this.startupService.startupData.acceptsWorkerCompensation;\n this.insuranceMessageNewPatient = this.startupService.startupData.insuranceMessageNewPatient;\n this.insuranceMessageExistingPatient = this.startupService.startupData.insuranceMessageExistingPatient;\n\n // scroll top\n window.scrollTo(0, 0);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n navigateTo(route, insurnaceType: InsuranceType) {\n this.store.dispatch(new BookingActions.SetInsuranceType(insurnaceType));\n this.navigateService.navigate([route]);\n }\n}\n","
\n
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n\n \n info\n \n\n

\n {{ insuranceMessageExistingPatient }}\n

\n\n

\n {{ insuranceMessageNewPatient }}\n

\n\n
\n
\n
\n
\n

{{'fill-insurance-question'\n | translate }}

\n
\n \n \n
\n
\n \n \n
\n\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { ClinicLocation } from './../../../clinic/models/location';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\n\nimport { MatDialog } from '@angular/material/dialog';\nimport { MapModalComponent } from '../../../clinic/components/index';\nimport { BookingService } from '../../services';\nimport { AuthHelperService } from '../../../core/services';\nimport { PlatformLocation } from '@angular/common';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-location-step-page',\n templateUrl: 'location-step-page.component.html',\n styleUrls: ['location-step-page.component.scss'],\n})\nexport class LocationStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n message = undefined;\n locations: ClinicLocation[];\n selectedLocation: ClinicLocation;\n telehealthLocations: ClinicLocation[] = [];\n\n constructor(\n private authHelperService: AuthHelperService,\n private store: Store,\n private route: ActivatedRoute,\n private dialog: MatDialog,\n private bookingService: BookingService,\n private location: PlatformLocation,\n private navigateService: NavigateWrapperService\n ) {\n super();\n this.locations = this.route.snapshot.data.locations;\n this.telehealthLocations = this.locations.filter((ser) => ser.hasTelehealthServices === true);\n this.navigateService.pushRoute('booking/location', this.locations.length === 1);\n }\n\n ngOnInit() {\n this.clearPreviousAppointment();\n this.store\n .select(fromRoot.getQueryLocationGuid)\n .pipe(first(), takeUntil(this.destroy$))\n .subscribe((guid) => {\n // Skip this step\n // IF there is a location guid in url\n const location = this.getLocationByGuid(guid);\n if (guid && location) {\n this.setLocation(location, false);\n\n // IF it is a single location clinic\n } else if (this.locations.length === 1) {\n this.setLocation(this.locations[0], false);\n this.store.dispatch(new BookingActions.CanChangeLocationAction(false));\n }\n });\n\n this.store\n .select(fromRoot.getBookingLocationStepMessage)\n .pipe(first(), takeUntil(this.destroy$))\n .subscribe((msg) => {\n this.message = msg;\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n public setLocation(location: ClinicLocation, userAction: boolean): void {\n if (!this.selectedLocation || (this.selectedLocation && this.selectedLocation.id !== location.id)) {\n this.store.dispatch(new BookingActions.SetLocationAction(location));\n\n // reset the service\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n\n // reset the practitiner\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n\n this.store.dispatch(new BookingActions.SetMessageOnLocationStep(null));\n }\n\n if (userAction) {\n this.navigateService.nextRoute = undefined;\n }\n\n let route = 'booking/service';\n if (this.navigateService.nextRoute) {\n route = this.navigateService.nextRoute;\n this.navigateService.nextRoute = undefined;\n }\n this.navigateService.navigate([route]);\n }\n\n openMap(location) {\n const dialogRef = this.dialog.open(MapModalComponent, {\n data: location,\n panelClass: 'map-modal',\n });\n\n dialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {});\n }\n\n private getLocationByGuid(guid) {\n return this.locations.find((loc) => loc.guid === guid);\n }\n\n private clearPreviousAppointment() {\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n this.store.dispatch(new BookingActions.SetPreferredPractitionerOption(null));\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n this.store.dispatch(new BookingActions.SetLocationAction(null));\n }\n}\n","\n\n","import { Component, AfterViewInit, OnInit, OnDestroy } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Store } from '@ngrx/store';\nimport { takeUntil } from 'rxjs/operators';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { SendEmailDialogComponent } from '../../../shared/components/send-email-dialog/send-email-dialog.component';\nimport { BookingAppointment } from '../../models';\nimport * as fromRoot from './../../../ngrx';\nimport { VerifyEmailRequest } from '../../../account/services/account.model';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-login-step-page',\n templateUrl: 'login-step-page.component.html',\n styleUrls: ['login-step-page.component.scss'],\n})\nexport class LoginStepPageComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n appointment: BookingAppointment;\n constructor(private navigateService: NavigateWrapperService, public dialog: MatDialog, private store: Store) {\n super();\n }\n ngOnInit(): void {\n this.store\n .select(fromRoot.getBookingAppointmentObject)\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.appointment = {\n locationGuid: data.locationGuid,\n serviceId: data.serviceId,\n practitionerId: data.practitionerId,\n isNewPatient: data.isNewPatient,\n index: data.index,\n date: data.date,\n };\n });\n }\n\n ngAfterViewInit() {\n const contentContainer = document.querySelector('pp-booking-summary-box > div > form > div.summary-timeslot');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n openCreateAccountDialog(): void {\n const dialogRef = this.dialog.open(SendEmailDialogComponent, {\n width: '400px',\n height: '450px',\n autoFocus: false,\n data: {\n email: null,\n slotData: {\n date: this.appointment.date,\n index: this.appointment.index,\n locationGuid: this.appointment.locationGuid,\n practitionerId: this.appointment.practitionerId,\n serviceId: this.appointment.serviceId,\n },\n } as VerifyEmailRequest,\n });\n\n dialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n console.log('The dialog was closed');\n });\n }\n\n onGuestClick() {\n console.log(this.appointment);\n }\n}\n","
\n
\n
\n

\n {{ 'booking-auth-step-title' | translate }}\n

\n
\n
\n
\n
\n
\n

{{ 'fill-in-personal-info' | translate }}

\n
\n
\n {{ 'create-account-question' | translate }}\n
\n
\n \n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n","import { BookingService } from './../../services/booking.service';\nimport { StartupService } from './../../../core/services/startup.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { Store } from '@ngrx/store';\nimport { Practitioner } from '../../../clinic/models/index';\nimport { ClinicService } from '../../../clinic/services/index';\nimport { environment } from './../../../../environments/environment';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { OrganizationTypeEnum } from '../../../shared/models/organization.enum';\n\nimport { zip } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { TranslateService } from '@ngx-translate/core';\n\ntype PractitionerSelectionType = 'FeelingLucky' | 'Practitioner' | 'Intern';\n\n@Component({\n selector: 'pp-practitioner-step-page',\n templateUrl: 'practitioner-step-page.component.html',\n styleUrls: ['practitioner-step-page.component.scss'],\n})\nexport class PractitionerStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n practitionerSelectionTypes: PractitionerSelectionType[] = [];\n practitionerSelectedType: PractitionerSelectionType;\n mediaBaseUrl = environment.resourceUrl;\n practitioners: Practitioner[] = [];\n interns: Practitioner[] = [];\n filteredInterns: Practitioner[] = [];\n showLoader = false;\n allowPractitionerNoPreferenceBooking = false;\n noPreference: Practitioner = {\n id: null,\n firstName: this.translateService.instant('no-practitioner-prefrence'), // translation key\n lastName: '',\n avatarUrl: null,\n isActiveForOnlineBooking: false,\n isActive: true,\n isIntern: false,\n name: '',\n description: '',\n };\n message = undefined;\n isUniversity = false;\n\n constructor(\n private store: Store,\n private route: ActivatedRoute,\n private clinicService: ClinicService,\n private startupService: StartupService,\n private bookingService: BookingService,\n private navigateService: NavigateWrapperService,\n private translateService: TranslateService\n ) {\n super();\n this.practitioners = this.route.snapshot.data.practitioners;\n }\n\n ngOnInit() {\n this.allowPractitionerNoPreferenceBooking = this.startupService.startupData.allowPractitionerNoPreferenceBooking;\n this.showLoader = true;\n this.isUniversity = this.startupService.startupData.organizationType === OrganizationTypeEnum.univeristy;\n if (this.isUniversity && this.allowPractitionerNoPreferenceBooking) {\n this.practitionerSelectionTypes.push('FeelingLucky');\n }\n\n // this.store.select(fromRoot.getBookingService)\n zip(this.store.select(fromRoot.getBookingService), this.store.select(fromRoot.getBookingLocation))\n .pipe(\n switchMap((res) => {\n const service = res[0];\n const location = res[1];\n if (service && location) {\n return this.clinicService.getPractitioners(service.id, location.guid);\n }\n return [];\n }),\n tap(() => {\n this.showLoader = false;\n const contentContainer = document.querySelector('pp-booking-summary-box > div > form > div.summary-service');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n }),\n takeUntil(this.destroy$)\n )\n .subscribe((practitoners) => {\n this.practitioners = practitoners.practitioners;\n if (!this.isUniversity && this.practitioners.length > 1 && this.allowPractitionerNoPreferenceBooking) {\n this.practitioners.push(this.noPreference);\n }\n this.store.dispatch(new BookingActions.SetPractitionersAction(practitoners.practitioners));\n // Skip this step\n // IF it is a single practitioner clinic\n if (this.practitioners.length === 1) {\n this.store.dispatch(new BookingActions.CanChangePractitionerAction(false));\n this.setPractitioner(this.practitioners[0], false);\n } else {\n this.store.dispatch(new BookingActions.CanChangePractitionerAction(true));\n if (this.isUniversity) {\n this.interns = this.practitioners.filter((p) => p.isIntern);\n this.filteredInterns = [...this.interns];\n this.practitioners = this.practitioners.filter((p) => !p.isIntern);\n if (this.practitioners.length) {\n this.practitionerSelectionTypes.push('Practitioner');\n }\n if (this.interns.length) {\n this.practitionerSelectionTypes.push('Intern');\n }\n if (!this.allowPractitionerNoPreferenceBooking && this.practitioners?.length === 0) {\n this.selectPractitionerPreference('Intern');\n }\n if (!this.allowPractitionerNoPreferenceBooking && this.interns?.length === 0) {\n this.selectPractitionerPreference('Practitioner');\n }\n } else {\n if (this.practitioners.length) {\n this.practitionerSelectionTypes.push('Practitioner');\n }\n }\n }\n\n this.navigateService.pushRoute('booking/practitioner', this.practitioners.length === 1);\n });\n\n this.store\n .select(fromRoot.getBookingPractitionerStepMessage)\n .pipe(takeUntil(this.destroy$))\n .subscribe((msg) => (this.message = msg));\n }\n\n setPractitioner(practitioner: Practitioner, userAction: boolean): void {\n this.resetScheduling();\n\n this.store.dispatch(new BookingActions.SetPractitionerAction(practitioner));\n this.store.dispatch(new BookingActions.SetPreferredPractitionerOption(this.practitionerSelectedType));\n\n if (userAction) {\n this.navigateService.nextRoute = undefined;\n }\n\n let route = 'booking/timeslot';\n if (this.navigateService.nextRoute) {\n route = this.navigateService.nextRoute;\n this.navigateService.nextRoute = undefined;\n }\n this.navigateService.navigate([route]);\n }\n\n private resetScheduling() {\n this.store.dispatch(new BookingActions.SetMessageOnPractitionerStep(null));\n\n // reset scheduling pratitioner when the service is changed\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n\n // reset scheduling time when the service is changed\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n }\n\n filterInterns(searchTerm: string) {\n this.filteredInterns = this.interns.filter((i: Practitioner) => {\n return i.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;\n });\n }\n\n selectPractitionerPreference(selectionType: PractitionerSelectionType) {\n this.practitionerSelectedType = selectionType;\n if (selectionType === 'FeelingLucky') {\n this.setPractitioner(this.noPreference, true);\n }\n if (selectionType === 'Practitioner' && this.practitioners.length === 1) {\n this.store.dispatch(new BookingActions.CanChangePractitionerAction(false));\n this.setPractitioner(this.practitioners[0], false);\n }\n\n if (selectionType === 'Intern' && this.interns.length === 1) {\n this.store.dispatch(new BookingActions.CanChangePractitionerAction(false));\n this.setPractitioner(this.interns[0], false);\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","
\n
\n
\n
\n \n info\n \n {{ message | translate }}\n
\n
\n
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n
\n \n 0\"\n >\n \n
\n
\n \n
\n
\n
\n {{ 'PractitionerSelectionType' + selectionType | translate }}\n
\n
\n {{ 'PractitionerSelectionType' + selectionType + 'Description' | translate }}\n
\n
\n
\n
\n
\n
\n\n
\n

\n {{ 'title-select-practitioner' | translate }}\n

\n
\n \n info\n \n\n {{ 'UniversityNoPractitionersAvailable' | translate }}\n
\n
\n\n \n
\n

\n {{ 'title-select-practitioner' | translate }}\n

\n

\n {{ 'title-select-practitioner-or-intern' | translate }}\n

\n\n
\n
{{ 'interns' | translate }}
\n
9\">\n \n
\n
\n \n
\n \n
\n
\n
\n
\n\n \n
\n {{ 'practitioners' | translate }}\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n info\n \n {{ 'no-practitioners-available' | translate }}\n
\n
\n
\n
\n\n \n
\n

\n {{ 'title-select-practitioner' | translate }}\n

\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n\n\n\n
\n \n\n
\n
\n {{ practitioner.firstName }}\n {{ practitioner.lastName }}\n
\n
\n {{ practitioner.description }}\n
\n
\n
\n
\n","import { Store } from '@ngrx/store';\nimport { Component, OnInit } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/booking.actions';\nimport { ActivatedRoute } from '@angular/router';\nimport { AuthHelperService, StartupService } from '../../../core/services';\nimport { Location } from '@angular/common';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\n\n@Component({\n selector: 'pp-previus-visit-step-page',\n templateUrl: 'previus-visit-step-page.component.html',\n styleUrls: ['previus-visit-step-page.component.scss'],\n})\nexport class PreviusVisitStepPageComponent implements OnInit {\n isExistingPatient;\n useOnlineBooking = true;\n loginEnabled = false;\n\n onlineBookingDisabledMessage;\n redirectLoginUrl;\n\n constructor(\n private store: Store,\n private route: ActivatedRoute,\n private startupService: StartupService,\n private location: Location,\n private navigateService: NavigateWrapperService,\n public authHelperService: AuthHelperService\n ) {\n // save the location guid from query param, if exists\n this.store.dispatch(new BookingActions.SetQueryParamLocationAction(this.route.snapshot.params['locationGuid']));\n\n this.useOnlineBooking = startupService.startupData.useOnlineBooking;\n this.loginEnabled = this.startupService.startupData.usePatientPortal;\n\n this.onlineBookingDisabledMessage = startupService.startupData.onlineBookingDisabledMessage;\n\n this.navigateService.pushRoute('booking/previous-visit', false);\n }\n\n ngOnInit() {\n this.redirectLoginUrl = 'appointments';\n }\n\n setPreviousVisit(isExistingPatient) {\n if (this.useOnlineBooking) {\n this.store.dispatch(new BookingActions.SetExistingPatientAction(isExistingPatient));\n this.navigateService.navigate(['booking', 'location']);\n }\n }\n}\n","
\n
\n
\n

{{ 'book-an-appointment' | translate }}

\n
\n
\n
\n
{{ 'you-must-create-acc' | translate }}
\n

{{ 'step-1-question-title' | translate }}

\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n \n info\n \n {{ [onlineBookingDisabledMessage] || ('OnlineBookingDisabledDefaultMessage' | translate) }}\n
\n
\n
\n
\n \n
\n
\n
\n","import { Common } from './../../../shared/models/Common';\nimport { ActivatedRoute } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { Component, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { StartupService } from '../../../core/services';\nimport { Observable } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-primary-insurance-step-page',\n templateUrl: 'primary-insurance-step-page.component.html',\n})\nexport class PrimaryInsuranceStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n primaryInsurance: FormGroup;\n insuredInfo: FormGroup;\n primaryInsFields: FormField[] = [];\n insuredInfoField: FormField[] = [];\n insuranceCompanies = [];\n filteredOptions: Observable;\n\n private states: any;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private store: Store,\n private formBuilder: FormBuilder,\n private startupService: StartupService,\n private route: ActivatedRoute,\n public navigateService: NavigateWrapperService\n ) {\n super();\n this.states = this.route.snapshot.data.states;\n }\n\n ngOnInit() {\n this.startupService.startupData.insuranceCompanies.forEach((c) => {\n this.insuranceCompanies.push(c.name);\n });\n\n this.insuredInfo = this.formBuilder.group({});\n this.primaryInsurance = this.formBuilder.group({\n companyName: new FormControl('', [Validators.required]),\n insuranceIsCoveredByOther: new FormControl(false),\n });\n\n this.filteredOptions = this.primaryInsurance.get('companyName').valueChanges.pipe(map((val) => this.filter(val)));\n\n this.primaryInsFields = [\n {\n key: 'planType',\n label: 'planType',\n planceholder: 'planType-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n },\n {\n key: 'cardID',\n label: 'insuranceCardID',\n planceholder: 'insuranceCardID-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n },\n {\n key: 'groupNumber',\n label: 'groupNumber',\n planceholder: 'groupNumber-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n },\n {\n key: 'providerPhone',\n label: 'insuranceProviderPhone',\n planceholder: 'insuranceProviderPhone-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), CustomValidators.phone],\n },\n ];\n\n this.insuredInfoField = [\n {\n key: 'patientRelationtionshipToInsuredType',\n label: 'patientRelationtionshipToInsuredType',\n type: FormFieldsEnum.DropdownSingleSelect,\n itemsList: Common.InsuranceRelationships,\n },\n {\n key: 'firstName',\n label: 'insuredInfoFirstName',\n planceholder: 'insuredInfoFirstName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n },\n {\n key: 'middleName',\n label: 'insuredInfoMiddleName',\n planceholder: 'insuredInfoMiddleName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n },\n {\n key: 'lastName',\n label: 'insuredInfoLastName',\n planceholder: 'insuredInfoLastName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n },\n {\n key: 'dateOfBirth',\n label: 'insuredInfoDateOfBirth',\n type: FormFieldsEnum.DatePicker,\n },\n ];\n\n this.primaryInsurance\n .get('insuranceIsCoveredByOther')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n if (res) {\n this.primaryInsurance.addControl('insuredInfo', this.insuredInfo);\n } else {\n this.primaryInsurance.removeControl('insuredInfo');\n }\n });\n\n window.scrollTo(0, 0);\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n filter(val: string): string[] {\n return this.insuranceCompanies.filter((option) => option.toLowerCase().indexOf(val.toLowerCase()) === 0);\n }\n\n updateCoveredInsurance() {\n if (!this.primaryInsurance.value.insuranceIsCoveredByOther) {\n this.primaryInsurance.get('insuredInfo').disable();\n } else {\n this.primaryInsurance.get('insuredInfo').enable();\n }\n\n this.cdr.detectChanges();\n }\n\n onContinueClick() {\n const company = this.startupService.startupData.insuranceCompanies.find((cmp) => cmp.name === this.primaryInsurance.value.companyName);\n if (company) {\n this.primaryInsurance.value.companyId = company.id;\n }\n this.store.dispatch(new BookingActions.SetInsurance(this.primaryInsurance.value));\n this.navigateService.navigate(['booking', 'review']);\n }\n}\n","
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n

{{ 'primary-insurance' | translate }}

\n

\n {{ 'required-fields-note' | translate }}\n

\n
\n
\n
\n \n \n \n

\n {{ 'form-input-error-required' | translate }}\n

\n
\n\n \n \n {{ option }}\n \n \n
\n
\n\n
\n \n
\n\n
\n
\n \n
\n\n
\n
\n \n {{ 'yes-existing-patient' | translate }} \n {{ 'no-firsttime-patient' | translate }} \n \n
\n
\n
\n\n
\n \n
\n \n\n
\n
\n \n \n
\n
\n
\n\n","import { Appointment } from './../../../appointments/models/appointment';\nimport { PhoneTypeEnum } from './../../../shared/models/phoneType.enum';\nimport { StartupService } from './../../../core/services/startup.service';\nimport { AppointmentData, BookingConfirmationStatus, Timeslot } from './../../models/booking-day';\nimport { BookingService } from './../../services/booking.service';\nimport { Component, OnInit, OnDestroy, AfterViewInit, ViewChild } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { select, Store } from '@ngrx/store';\nimport { ClinicService } from '../../../clinic/services/index';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { AuthHelperService } from '../../../core/services/index';\nimport { AppointmentState } from '../../../appointments/models/appointment';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { OnboardingService } from '../../../onboarding/services';\n\nimport { Observable, zip } from 'rxjs';\nimport { first, finalize, takeUntil, filter, catchError } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { AccountService } from '../../../account/services';\nimport { UpFullSteamService, CardProfile, UpFullsteamControlComponent } from '@unifiedpractice/up-ng-fullsteam';\nimport { State as OrganizationState } from '../../../organization/reducers';\nimport { Service } from '../../../clinic/models';\nimport { OrganizationTypeEnum } from '../../../shared/models/organization.enum';\n\n@Component({\n selector: 'pp-review-step-page',\n templateUrl: 'review-step-page.component.html',\n})\nexport class ReviewStepPageComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('fullSteamControl') fullSteamControl: UpFullsteamControlComponent;\n additionalInfoForm: FormGroup;\n showLoader = false;\n showError = false;\n errorMessage = '';\n loggedIn = false;\n showSmsCheckbox = false;\n paymentSuccess = false;\n organization: OrganizationState;\n service: Service;\n\n bookingFlowState: 'unauth' | 'auth' | 'reschedule' = 'unauth';\n\n private appointment: AppointmentData;\n private savedInfo: any = {};\n patientData = {\n fullName: '',\n id: 0,\n patientCode: '',\n zipCode: '',\n };\n timeslot: Timeslot;\n\n constructor(\n private store: Store,\n private formBuilder: FormBuilder,\n private bookingService: BookingService,\n private authHelperService: AuthHelperService,\n private startupService: StartupService,\n private navigateService: NavigateWrapperService,\n private onbardingService: OnboardingService,\n private clinicService: ClinicService,\n private accountService: AccountService,\n private upFullSteamService: UpFullSteamService\n ) {\n super();\n }\n\n ngOnInit() {\n this.upFullSteamService.initGlobalFSFunctions();\n this.accountService.user\n .pipe(\n filter((user) => user),\n takeUntil(this.destroy$)\n )\n .subscribe((user) => {\n this.patientData.patientCode = user.patientCode;\n this.patientData.id = user.patientId;\n this.patientData.fullName = `${user.personalInfo.firstName} ${user.personalInfo.lastName}`;\n });\n this.store.pipe(select(fromRoot.getOrganizationState), takeUntil(this.destroy$)).subscribe((organization) => {\n this.organization = organization;\n });\n zip(this.authHelperService.loggedIn$, this.store.select(fromRoot.getBookingService), this.store.select(fromRoot.getBookingDateTime))\n .pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n this.loggedIn = res[0];\n this.service = res[1];\n this.timeslot = res[2];\n if (this.loggedIn && this.clinicService.serviceNotAvailableForAuthenticated(res[1])) {\n this.store.dispatch(new BookingActions.SetMessageOnServiceStep('service-not-available'));\n\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n\n // reset scheduling pratitioner when the location is changed\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n\n // reset scheduling time when the location is changed\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n\n this.navigateService.navigate(['booking', 'service']);\n }\n });\n\n zip(\n this.store.select(fromRoot.getBookingAppointmentObject).pipe(first()),\n this.store.select(fromRoot.getBookingAdditionalInformation).pipe(first())\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n this.appointment = res[0];\n this.savedInfo = res[1] || {};\n\n this.additionalInfoForm = this.formBuilder.group({\n reasonForVisit: this.savedInfo.reasonForVisit || '',\n referal: this.savedInfo.referal || '',\n receiveSms: false,\n });\n\n this.showSmsCheckbox =\n this.startupService.startupData.hasSms && this.appointment.account && this.appointment.account.phoneType === PhoneTypeEnum.Mobile;\n });\n }\n\n ngAfterViewInit() {\n const contentContainer = document.querySelector('pp-booking-summary-box > div > form > div.summary-insuranceType');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n }\n\n onSave(ev) {\n this.paymentSuccess = true;\n this.appointment.cardData = JSON.parse(ev);\n }\n\n cardSelectionChanged(event: any): void {\n const cardProfile = event as CardProfile;\n if (cardProfile.id === -1) {\n this.paymentSuccess = false;\n return;\n }\n this.appointment.cardId = cardProfile.id;\n this.appointment.cardData = null;\n this.paymentSuccess = true;\n }\n\n saveAditionalData() {\n this.appointment.additionalInformation = this.additionalInfoForm.value;\n this.store.dispatch(new BookingActions.SetAdditionalInfo(this.additionalInfoForm.value));\n }\n\n confirmAppointment(): void {\n this.showLoader = true;\n this.saveAditionalData();\n\n this.appointment.practitionerId = this.timeslot.practitionerId;\n\n if (this.startupService.startupData.organizationType === OrganizationTypeEnum.univeristy) {\n this.appointment.supervisorId = this.timeslot.supervisorId;\n this.appointment.mainInternId = this.timeslot.mainInternId;\n this.appointment.assistingInternId = this.timeslot.assistingInternId;\n }\n\n // Unauthenticated flow\n let create$: Observable = this.bookingService.createGuestBooking(this.appointment);\n\n if (this.loggedIn) {\n {\n // Authenticated flow\n this.bookingFlowState = 'auth';\n create$ = this.bookingService.createAuthBooking(this.appointment);\n }\n }\n\n if (this.appointment.appointmentUid) {\n // Reschedule flow\n this.bookingFlowState = 'reschedule';\n create$ = this.bookingService.reschedule(this.appointment);\n }\n\n create$\n .pipe(\n finalize(() => {\n this.showLoader = false;\n this.onbardingService.clearCache();\n }),\n catchError((err: any) => {\n if (err.error) {\n this.bookingService.redirectToStepWithError(err.error);\n }\n this.errorMessage = err.errorDescription;\n this.showError = true;\n throw err;\n }),\n takeUntil(this.destroy$)\n )\n .subscribe((res: Appointment) => {\n this.setSuccessMessage(res);\n this.navigateService.navigate(['booking', 'success']);\n });\n }\n\n onConfirmClick() {\n if (this.showPayment() && !this.paymentSuccess) {\n this.showLoader = true;\n this.fullSteamControl.submitSaveCard();\n return;\n }\n this.confirmAppointment();\n }\n\n setSuccessMessage(res: Appointment) {\n if (+AppointmentState[res.appointmentState] === +AppointmentState.Accepted) {\n switch (this.bookingFlowState) {\n case 'reschedule':\n this.store.dispatch(\n new BookingActions.SetMessageOnSuccessStep({\n title: 'booking-success-title-reschedule-auto-accept',\n text: '',\n })\n );\n break;\n case 'auth':\n this.store.dispatch(\n new BookingActions.SetMessageOnSuccessStep({\n title: 'booking-success-title-logged-in',\n text: 'booking-success-info-logged-in',\n })\n );\n break;\n default:\n if (res.isMatchingError) {\n this.store.dispatch(new BookingActions.SetBookingConfirmationStatus(BookingConfirmationStatus.CreatedWithMatchingError));\n }\n if (res.hasPatientPortalAccount && !res.isMatchingError) {\n this.store.dispatch(new BookingActions.SetBookingConfirmationStatus(BookingConfirmationStatus.AutoAcceptedWithExistingUser));\n }\n if (!res.hasPatientPortalAccount && !res.isMatchingError) {\n this.store.dispatch(new BookingActions.SetBookingConfirmationStatus(BookingConfirmationStatus.AutoAcceptedWithNewUser));\n }\n this.store.dispatch(\n new BookingActions.SetMessageOnSuccessStep({\n title: 'booking-success-title-not-logged-in',\n text: 'booking-success-info-not-logged-in',\n })\n );\n break;\n }\n }\n\n if (+AppointmentState[res.appointmentState] === +AppointmentState.Created) {\n switch (this.bookingFlowState) {\n case 'reschedule':\n this.store.dispatch(\n new BookingActions.SetMessageOnSuccessStep({\n title: 'booking-success-title-reschedule-no-auto-accept',\n text: '',\n })\n );\n break;\n case 'auth':\n this.store.dispatch(\n new BookingActions.SetMessageOnSuccessStep({\n title: 'booking-success-title-logged-in',\n text: 'booking-success-info-logged-in-auto-accept-off',\n })\n );\n break;\n default:\n if (res.isMatchingError) {\n this.store.dispatch(new BookingActions.SetBookingConfirmationStatus(BookingConfirmationStatus.CreatedWithMatchingError));\n }\n if (res.hasPatientPortalAccount && !res.isMatchingError) {\n this.store.dispatch(new BookingActions.SetBookingConfirmationStatus(BookingConfirmationStatus.CreatedWithExistingUser));\n }\n if (!res.hasPatientPortalAccount && !res.isMatchingError) {\n this.store.dispatch(new BookingActions.SetBookingConfirmationStatus(BookingConfirmationStatus.CreatedWithNewUser));\n }\n this.store.dispatch(\n new BookingActions.SetMessageOnSuccessStep({\n title: 'booking-success-title-matching-error',\n text: 'booking-success-info-matching-error',\n })\n );\n break;\n }\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n showPayment(): boolean {\n return this.service.enforceCancellation && this.organization.useCancellationPolicy;\n }\n\n fsError(event): void {\n this.showLoader = false;\n this.paymentSuccess = false;\n this.appointment.cardData = null;\n this.appointment.cardId = null;\n }\n\n fsSucces(event): void {\n this.paymentSuccess = true;\n this.appointment.cardId = event;\n this.confirmAppointment();\n }\n\n validationError(event): void {\n this.showLoader = false;\n }\n}\n","
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n \n \n
\n
\n
\n
\n

{{ organization.cancellationPolicyTitle }}

\n
\n {{\n 'BillingInformation.CancelationFeeDescription'\n | translate: { amount: service.cancellationFee, dueTime: this.organization.cancellationPeriod }\n }}\n
\n
\n {{ organization.cancellationPolicyDescription }}\n
\n
\n \n \n
\n\n
\n
\n \n warning\n \n {{ errorMessage | translate }}\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n warning\n \n {{ errorMessage | translate }}\n
\n
\n
\n \n
\n
\n

*{{ 'sms-reminder-explanation' | translate }}

\n
\n
\n
\n
\n
\n
\n
\n","import { ClinicService } from './../../../clinic/services/clinic.service';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { select, Store } from '@ngrx/store';\nimport { Service } from '../../../clinic/models/index';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { combineLatest } from 'rxjs';\nimport { tap, switchMap, takeUntil, filter } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-service-step-page',\n templateUrl: 'service-step-page.component.html',\n styleUrls: ['service-step-page.component.scss'],\n})\nexport class ServiceStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n services: Service[] = [];\n organization$ = this.store.pipe(select(fromRoot.getOrganizationState));\n organization;\n showLoader = true;\n message = undefined;\n\n get hasOrganizationCCPE() {\n return this.organization.useCancellationPolicy;\n }\n\n constructor(private store: Store, private clinicService: ClinicService, private navigateService: NavigateWrapperService) {\n super();\n }\n\n ngOnInit() {\n this.showLoader = true;\n this.organization$.pipe(takeUntil(this.destroy$)).subscribe((response) => (this.organization = response));\n\n combineLatest([\n this.store.select(fromRoot.getBookingLocation),\n this.store.select(fromRoot.getBookingExistingPatient).pipe(filter((res) => res !== null)),\n ])\n .pipe(\n switchMap((res) => {\n const location = res[0];\n const isExistingPatient = res[1];\n\n if (location && isExistingPatient !== null) {\n return this.clinicService.getServices(location.guid, !isExistingPatient);\n }\n\n return [];\n }),\n tap(() => {\n this.showLoader = false;\n const contentContainer = document.querySelector('pp-booking-summary-box > div > form > div.summary-location');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n }),\n takeUntil(this.destroy$)\n )\n .subscribe((res) => {\n this.services = res;\n // Skip this step\n // IF it is a single practitioner clinic\n if (this.services.length === 1) {\n this.setService(this.services[0], false);\n }\n\n this.navigateService.pushRoute('booking/service', this.services.length === 1);\n });\n\n this.store\n .select(fromRoot.getBookingServiceStepMessage)\n .pipe(takeUntil(this.destroy$))\n .subscribe((msg) => {\n this.message = msg;\n });\n }\n\n public setService(service: Service, userAction: boolean): void {\n this.resetScheduling();\n\n this.store.dispatch(new BookingActions.SetServiceAction(service));\n\n if (userAction) {\n this.navigateService.nextRoute = undefined;\n }\n\n let route = 'booking/practitioner';\n if (this.navigateService.nextRoute) {\n route = this.navigateService.nextRoute;\n this.navigateService.nextRoute = undefined;\n }\n this.navigateService.navigate([route]);\n }\n\n private resetScheduling() {\n this.store.dispatch(new BookingActions.SetMessageOnServiceStep(null));\n\n // reset scheduling service when the service is changed\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n\n // reset scheduling pratitioner when the service is changed\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n\n // reset scheduling time when the service is changed\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","
\n
\n
\n
\n \n info\n \n {{ message | translate }}\n
\n
\n
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n
\n
\n

{{ 'title-select-service' | translate }}

\n
\n
\n
\n \n \n
\n
\n \n access_time\n {{ service.displayedDuration }} min\n
\n
\n
\n\n
\n

{{ 'title-select-service' | translate }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { Store } from '@ngrx/store';\nimport { AuthHelperService } from '../../../core/services';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { BookingConfirmationStatus } from '../../models';\n\n@Component({\n selector: 'pp-successfully-confirmation-step-page',\n templateUrl: 'successfully-confirmation-step-page.component.html',\n styleUrls: ['successfully-confirmation-step-page.component.scss'],\n})\nexport class SuccessfullyConfirmationStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n title = 'booking-success-title-not-logged-in';\n text = 'booking-success-info-not-logged-in';\n bookingConfirmationTitle;\n bookingConfirmationText;\n buttonLabel: string = '';\n loggedIn = false;\n bookingConfirmationStatus: BookingConfirmationStatus = null;\n\n constructor(\n private store: Store,\n private authHelperService: AuthHelperService,\n private navigateService: NavigateWrapperService\n ) {\n super();\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n }\n\n ngOnInit() {\n this.store\n .select(fromRoot.getBookingSuccessStepMessages)\n .pipe(takeUntil(this.destroy$))\n .subscribe((message) => {\n this.title = message.title;\n this.text = message.text;\n });\n this.store\n .select(fromRoot.getBookingConfirmationStatus)\n .pipe(\n filter((bookingConfirmationStatus) => !!bookingConfirmationStatus),\n takeUntil(this.destroy$)\n )\n .subscribe((bookingConfirmationStatus) => {\n this.bookingConfirmationStatus = bookingConfirmationStatus;\n this.updateBookingInfoMessages(bookingConfirmationStatus);\n });\n this.store.dispatch(new BookingActions.ResetAllAction(null));\n\n // scroll top\n window.scrollTo(0, 0);\n }\n\n navigateTo(route, enabled = true) {\n if (!this.loggedIn) {\n this.store.dispatch(new BookingActions.SetExistingPatientAction(null));\n }\n\n if (enabled) {\n this.navigateService.navigate([route]);\n }\n }\n\n updateBookingInfoMessages(bookingConfirmationStatus: BookingConfirmationStatus): void {\n switch (bookingConfirmationStatus) {\n case BookingConfirmationStatus.AutoAcceptedWithNewUser:\n case BookingConfirmationStatus.CreatedWithNewUser:\n case BookingConfirmationStatus.CreatedWithUserWithoutPP:\n this.bookingConfirmationTitle = 'BookingConfirmation.ActionRequiredUser.Title';\n this.bookingConfirmationText = 'BookingConfirmation.ActionRequiredUser.Description';\n this.buttonLabel = 'BookingConfirmation.ActionRequiredUser.Button';\n break;\n case BookingConfirmationStatus.CreatedWithMatchingError:\n this.bookingConfirmationTitle = 'BookingConfirmation.ActionRequiredClinic.Title';\n this.bookingConfirmationText = 'BookingConfirmation.ActionRequiredClinic.Description';\n this.buttonLabel = 'BookingConfirmation.GotItButton';\n break;\n case BookingConfirmationStatus.CreatedWithExistingUser:\n this.bookingConfirmationTitle = 'BookingConfirmation.PendingConfirmation.Title';\n this.bookingConfirmationText = 'BookingConfirmation.PendingConfirmation.Description';\n this.buttonLabel = 'BookingConfirmation.GotItButton';\n break;\n case BookingConfirmationStatus.AutoAcceptedWithExistingUser:\n this.bookingConfirmationTitle = 'BookingConfirmation.SuccessfullyScheduled.Title';\n this.bookingConfirmationText = 'BookingConfirmation.SuccessfullyScheduled.Description';\n this.buttonLabel = 'BookingConfirmation.GotItButton';\n break;\n }\n }\n\n canShowStepper(): boolean {\n return (\n this.bookingConfirmationStatus === BookingConfirmationStatus.AutoAcceptedWithNewUser ||\n this.bookingConfirmationStatus === BookingConfirmationStatus.CreatedWithNewUser ||\n this.bookingConfirmationStatus === BookingConfirmationStatus.CreatedWithUserWithoutPP\n );\n }\n\n getStatusIcon(): string {\n return this.bookingConfirmationStatus === BookingConfirmationStatus.CreatedWithMatchingError ? 'sand-clock.svg' : 'success2.svg';\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n
\n \n
\n

{{ title | translate }}

\n

{{ text | translate }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
{{ bookingConfirmationTitle | translate }}
\n
{{ bookingConfirmationText | translate }}
\n
\n \n
\n
{{ 'BookingConfirmation.CheckJunk' | translate }}
\n
\n
\n
\n","import { BookingDay } from './../../models/booking-day';\nimport { BookingService } from './../../services/booking.service';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { Store } from '@ngrx/store';\nimport { ClinicService } from '../../../clinic/services/index';\nimport { startOfDay, addDays, isBefore, isEqual, isSameMonth, isSameYear, isSameDay } from 'date-fns';\nimport { AuthHelperService, StartupService } from '../../../core/services/index';\nimport { Location } from '@angular/common';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\nimport { of, zip } from 'rxjs';\nimport { catchError, first, map, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'pp-timeslot-step-page',\n templateUrl: 'timeslot-step-page.component.html',\n styleUrls: ['timeslot-step-page.component.scss'],\n})\nexport class TimeslotStepPageComponent extends BaseComponent implements OnInit, OnDestroy {\n bookingDays: BookingDay[] = [];\n selectedTimeSlot;\n\n locationGuid;\n serviceId;\n practitionerId;\n isNewPatient;\n rescheduledAppointmentUid;\n startDate: Date;\n endDate: Date;\n today: Date;\n\n showLoader = true;\n loggedIn = false;\n loginEnabled = false;\n errorMessage: string;\n preferredPractitionerOption: 'FeelingLucky' | 'Practitioner' | 'Intern';\n loadingSlotId: number | null;\n loadingDayIndex: number | null;\n\n constructor(\n private store: Store,\n private clinicService: ClinicService,\n private bookingService: BookingService,\n private authHelperService: AuthHelperService,\n private location: Location,\n private navigateService: NavigateWrapperService,\n private startupService: StartupService,\n private activatedRoute: ActivatedRoute\n ) {\n super();\n this.navigateService.pushRoute('booking/timeslot', false);\n this.loginEnabled = this.startupService.startupData.usePatientPortal;\n }\n\n ngOnInit() {\n this.checkErrors();\n this.today = new Date();\n this.startDate = this.today;\n // first week from today to Saturday\n const saturdayDiff = 6 - (this.today.getDay() % 7);\n this.endDate = startOfDay(addDays(this.startDate, saturdayDiff));\n\n zip(\n this.store.select(fromRoot.getBookingLocation),\n this.store.select(fromRoot.getBookingService),\n this.store.select(fromRoot.getBookingPractitioner),\n this.store.select(fromRoot.getBookingExistingPatient),\n this.store.select(fromRoot.getBookingRescheduledAppointmentUid),\n this.store.select(fromRoot.getPreferredPractitionerOptions)\n )\n .pipe(takeUntil(this.destroy$))\n .subscribe((apt) => {\n this.locationGuid = apt[0].guid;\n this.serviceId = apt[1].id;\n this.practitionerId = apt[2].id;\n this.isNewPatient = !apt[3];\n this.rescheduledAppointmentUid = apt[4];\n this.preferredPractitionerOption = apt[5] as 'FeelingLucky' | 'Practitioner' | 'Intern';\n this.getAvailabilities();\n });\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.store\n .select(fromRoot.getBookingDateTime)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => {\n this.selectedTimeSlot = val;\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n checkErrors(): void {\n if (this.activatedRoute.snapshot.queryParams.error) {\n this.errorMessage = this.activatedRoute.snapshot.queryParams.error;\n }\n }\n\n onNextWeekClick() {\n if (this.showLoader) {\n return;\n }\n this.startDate = startOfDay(addDays(this.endDate, 1));\n this.endDate = startOfDay(addDays(this.endDate, 7));\n this.getAvailabilities();\n }\n\n onPreviousWeekClick() {\n if (this.showLoader || isEqual(this.startDate, this.today)) {\n return;\n }\n this.startDate = startOfDay(addDays(this.startDate, -7));\n\n if (isBefore(this.startDate, this.today)) {\n this.startDate = this.today;\n }\n\n this.endDate = startOfDay(addDays(this.endDate, -7));\n\n this.getAvailabilities();\n }\n\n isPreviousDisabled() {\n return this.startDate === this.today;\n }\n\n getAvailabilities() {\n this.bookingDays = [];\n this.showLoader = true;\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n return this.bookingService\n .getAvailableDates(\n this.locationGuid,\n this.serviceId,\n this.practitionerId,\n this.isNewPatient,\n this.startDate,\n this.endDate,\n this.rescheduledAppointmentUid,\n this.preferredPractitionerOption\n )\n .pipe(\n tap(() => {\n this.showLoader = false;\n const contentContainer = document.querySelector('pp-booking-summary-box > div > form > div.summary-practitioner');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n }),\n catchError((err: any) => {\n if (err.error) {\n this.bookingService.redirectToStepWithError(err.error);\n }\n throw err;\n })\n )\n .subscribe((days) => {\n this.bookingDays = days;\n });\n }\n\n setTimeslot(timeslot, index: number, dayIndex: number) {\n if (this.loadingSlotId) {\n return;\n }\n this.loadingSlotId = index;\n this.loadingDayIndex = dayIndex;\n this.store\n .select(fromRoot.getBookingPractitioner)\n .pipe(\n first(),\n switchMap((practitioner) => {\n if (!practitioner?.id && timeslot.practitionerId) {\n // I don't have a preference was selected\n return this.clinicService.getPractitionersByIds([timeslot.practitionerId]).pipe(map((practitioners) => practitioners[0]));\n }\n return of(practitioner);\n }),\n takeUntil(this.destroy$)\n )\n .subscribe((practitioner) => {\n this.loadingSlotId = null;\n this.loadingDayIndex = null;\n this.store.dispatch(new BookingActions.SetPractitionerAction(practitioner));\n this.store.dispatch(new BookingActions.SetTimeslotAction(timeslot));\n this.onContinueClick();\n });\n }\n\n onContinueClick() {\n if (this.loggedIn || this.rescheduledAppointmentUid) {\n this.navigateService.navigate(['booking', 'review']);\n } else {\n if (this.loginEnabled) {\n this.navigateService.navigate(['booking', 'auth']);\n } else {\n this.navigateService.navigate(['booking', 'register']);\n }\n }\n }\n\n isSameDate(date, compareDate) {\n return isSameMonth(date, compareDate) && isSameDay(date, compareDate) && isSameYear(date, compareDate);\n }\n}\n","
\n
\n {{ errorMessage || 'book-appointment' | translate }}\n
\n
\n
\n
\n

{{ 'select-a-start-date' | translate }}

\n

\n {{ 'available-timeslots' | translate }}\n

\n \n
\n
\n
\n {{ startDate | date: 'MMMM d' }}\n - {{ endDate | date: 'MMMM d' }}\n
\n
\n \n arrow_back\n {{ 'previous-week' | translate }}\n \n \n {{ 'next-week' | translate }}\n arrow_forward\n \n
\n
\n
\n\n
\n
\n

{{ bookingDay.date | date: 'EEEE, MMMM d' }}

\n \n \n \n \n \n
\n\n
0\">\n \n {{ 'more' | translate }}\n \n {{ availability.timeString }}\n \n \n
\n
\n
\n\n
\n
\n
\n \n info\n \n {{ 'no-timeslots-available' | translate }}\n
\n
\n
\n\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n\n\n\n \n \n\n","import { Store } from '@ngrx/store';\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { Component, OnInit, ChangeDetectorRef } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { BookingActions } from '../../actions/index';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService } from '../../../core/services/navigateWrapper.service';\n\n@Component({\n selector: 'pp-work-insurance-step-page',\n templateUrl: 'work-insurance-step-page.component.html'\n})\n\nexport class WorkInsuranceStepPageComponent implements OnInit {\n\n fields: FormField[] = [];\n insuredInfoField: FormField[] = [];\n insuredInfo: FormGroup;\n workAccidentInsurance: FormGroup;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private store: Store,\n private formBuilder: FormBuilder,\n public navigateService: NavigateWrapperService\n ) { }\n\n ngOnInit() {\n this.insuredInfo = this.formBuilder.group({});\n this.workAccidentInsurance = this.formBuilder.group({\n insuranceIsCoveredByOther: new FormControl(false),\n insuredInfo: this.insuredInfo\n });\n\n this.fields = [\n {\n key: 'companyName',\n label: 'insName',\n planceholder: 'insName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n },\n {\n key: 'companyPhone',\n label: 'insPhone',\n planceholder: 'insPhone-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), CustomValidators.phone],\n }\n , {\n key: 'companyAddress',\n label: 'insAddress',\n planceholder: 'insAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'injuryDate',\n label: 'dateOfInjury',\n type: FormFieldsEnum.DatePicker,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'caseNo',\n label: 'caseClaimNo',\n planceholder: 'caseClaimNo-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'employerName',\n label: 'empName',\n planceholder: 'empName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(500)],\n }\n , {\n key: 'employerAddress',\n label: 'empAddress',\n planceholder: 'empAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(500)],\n }\n ];\n\n this.insuredInfoField = [\n {\n key: 'patientRelationtionshipToInsuredType',\n label: 'patientRelationtionshipToInsuredType',\n type: FormFieldsEnum.DropdownSingleSelect,\n itemsList: Common.InsuranceRelationships\n }\n , {\n key: 'firstName',\n label: 'insuredInfoFirstName',\n planceholder: 'insuredInfoFirstName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n }\n , {\n key: 'middleName',\n label: 'insuredInfoMiddleName',\n planceholder: 'insuredInfoMiddleName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n }\n , {\n key: 'lastName',\n label: 'insuredInfoLastName',\n planceholder: 'insuredInfoLastName-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300), Validators.required],\n }\n , {\n key: 'dateOfBirth',\n label: 'insuredInfoDateOfBirth',\n type: FormFieldsEnum.DatePicker,\n }\n ];\n\n this.updateCoveredInsurance();\n\n // scroll top\n window.scrollTo(0, 0);\n }\n\n updateCoveredInsurance() {\n\n if (!this.workAccidentInsurance.value.insuranceIsCoveredByOther) {\n this.workAccidentInsurance.get('insuredInfo').disable();\n } else {\n this.workAccidentInsurance.get('insuredInfo').enable();\n }\n\n this.cdr.detectChanges();\n }\n\n onContinueClick() {\n // console.log(this.workAccidentInsurance.value);\n this.store.dispatch(new BookingActions.SetWorkInsurance(this.workAccidentInsurance.value));\n this.navigateService.navigate(['booking', 'review']);\n\n }\n}\n","
\n
\n {{ 'book-appointment' | translate }}\n
\n
\n

{{ 'work-insurance' | translate }}

\n
\n
\n \n
\n\n
\n
\n \n
\n\n
\n
\n \n {{ 'yes-existing-patient' | translate }} \n {{ 'no-firsttime-patient' | translate }} \n \n
\n
\n
\n\n
\n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n","import { ClinicService } from '../../clinic/services/clinic.service';\nimport { Subject } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\nimport * as fromRoot from '../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { NavigateWrapperService } from '../../core/services';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivateIfTimeslotGuard implements CanActivate, OnDestroy {\n private timeslot;\n private destroy$: Subject = new Subject();\n\n constructor(\n private store: Store,\n private route: ActivatedRoute,\n private clinicService: ClinicService,\n private navigateService: NavigateWrapperService\n ) {\n this.store\n .select(fromRoot.getBookingDateTime)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.timeslot = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.timeslot) {\n return true;\n }\n\n // go to a previous step\n this.navigateService.navigate(['booking', 'timeslot']);\n\n return false;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\nimport * as fromRoot from './../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { NavigateWrapperService, AuthHelperService } from '../../core/services';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivateLocationStepGuard implements CanActivate, OnDestroy {\n private isExistingPatient: boolean;\n private loggedIn: boolean;\n private destroy$: Subject = new Subject();\n\n constructor(\n private store: Store,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n this.store\n .select(fromRoot.getBookingExistingPatient)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => {\n this.isExistingPatient = val;\n });\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((val) => (this.loggedIn = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if ((this.isExistingPatient !== null && this.isExistingPatient !== undefined) || this.loggedIn) {\n return true;\n }\n // go to location step\n this.navigateService.navigate(['booking', 'previous-visit']);\n return false;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport * as fromRoot from './../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { NavigateWrapperService } from '../../core/services';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivatePractitionerStepGuard implements CanActivate, OnDestroy {\n private service: any;\n private practitioner: any;\n private canChangePractitioner: any;\n private destroy$: Subject = new Subject();\n\n constructor(private store: Store, private route: ActivatedRoute, private navigateService: NavigateWrapperService) {\n this.store\n .select(fromRoot.getBookingService)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.service = val));\n this.store\n .select(fromRoot.getBookingPractitioner)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.practitioner = val));\n this.store\n .select(fromRoot.canChangeBookingPractitioner)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.canChangePractitioner = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.service) {\n return true;\n }\n\n // go to location step\n this.navigateService.navigate(['booking', 'service']);\n\n return false;\n }\n}\n","import { AuthHelperService } from './../../core/services/auth-helper.service';\nimport { getBookingExistingPatient } from './../../ngrx/index';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport * as fromRoot from './../../ngrx';\nimport { BookingActions } from '../actions/index';\nimport { Store } from '@ngrx/store';\nimport { StartupService, NavigateWrapperService } from '../../core/services';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivatePreviousVisitStepGuard implements CanActivate, OnDestroy {\n private loggedIn = false;\n private destroy$: Subject = new Subject();\n\n constructor(\n private authHelperService: AuthHelperService,\n private store: Store,\n private startupService: StartupService,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService\n ) {\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((val) => (this.loggedIn = val));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (!this.loggedIn) {\n return true;\n } else if (!this.startupService.startupData.useOnlineBooking) {\n this.navigateService.navigate(['appointments']);\n\n return false;\n }\n // go to location page\n this.navigateService.navigate(['booking', 'location']);\n\n return false;\n }\n}\n","import { ClinicService } from './../../clinic/services/clinic.service';\nimport { Subject } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\n\nimport * as fromRoot from './../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { NavigateWrapperService } from '../../core/services';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivateServiceStepGuard implements CanActivate, OnDestroy {\n private location: boolean;\n private destroy$: Subject = new Subject();\n\n constructor(\n private store: Store,\n private clinicService: ClinicService,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService\n ) {\n this.store\n .select(fromRoot.getBookingLocation)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.location = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.location) {\n return true;\n }\n\n // go to location step\n this.navigateService.navigate(['booking', 'location']);\n\n return false;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, ActivatedRoute } from '@angular/router';\nimport * as fromRoot from './../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { NavigateWrapperService } from '../../core/services';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class CanActivateTimeslotStepGuard implements CanActivate, OnDestroy {\n private practitioner;\n private destroy$: Subject = new Subject();\n\n constructor(private store: Store, private route: ActivatedRoute, private navigateService: NavigateWrapperService) {\n this.store\n .select(fromRoot.getBookingPractitioner)\n .pipe(takeUntil(this.destroy$))\n .subscribe((val) => (this.practitioner = val));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n if (this.practitioner) {\n return true;\n }\n\n // go to location step\n this.navigateService.navigate(['booking', 'practitioner']);\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ClinicService } from '../../clinic/services/index';\nimport { Resolve } from '@angular/router';\n\n@Injectable()\nexport class ClinicStepResolver implements Resolve {\n constructor(private clinicService: ClinicService) { }\n\n resolve() {\n return this.clinicService.getLocations();\n }\n}\n","import { CanActivatePreviousVisitStepGuard } from './can-activate-previous-visit-step.guard';\nimport { CanActivateIfTimeslotGuard } from './can-activate-if-timeslot.guard';\nimport { CanActivateTimeslotStepGuard } from './can-activate-timeslot-step.guard';\nimport { CanActivatePractitionerStepGuard } from './can-activate-practitiner-step.guard';\nimport { CanActivateLocationStepGuard } from './can-activate-location-step.guard';\nimport { CanActivateServiceStepGuard } from './can-activate-service-step.guard';\nimport { PractitionerStepResolver } from './practitioner-step.resolver';\n\nexport const BOOKING_GUARDS: any[] = [\n CanActivateServiceStepGuard,\n CanActivateLocationStepGuard,\n CanActivatePractitionerStepGuard,\n CanActivateTimeslotStepGuard,\n CanActivateIfTimeslotGuard,\n CanActivatePreviousVisitStepGuard,\n\n PractitionerStepResolver\n];\n\nexport * from './can-activate-service-step.guard';\nexport * from './can-activate-location-step.guard';\nexport * from './can-activate-practitiner-step.guard';\nexport * from './can-activate-timeslot-step.guard';\nexport * from './can-activate-if-timeslot.guard';\nexport * from './can-activate-previous-visit-step.guard';\n","import { Practitioner } from './../../clinic/models/practitioner';\nimport { Store } from '@ngrx/store';\nimport { Injectable } from '@angular/core';\nimport { ClinicService } from '../../clinic/services/index';\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\nimport * as fromRoot from './../../ngrx';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class PractitionerStepResolver implements Resolve {\n constructor(private store: Store, private clinicService: ClinicService) {\n console.log('constructor PractitionerStepResolver');\n }\n\n resolve(route: ActivatedRouteSnapshot): Observable {\n return this.clinicService.getPractitioners(null, null);\n }\n}\n","import { PhoneTypeEnum } from './../../shared/models/phoneType.enum';\nexport interface BookingDay {\n date: Date;\n availabilities: Timeslot[];\n // displayedAvailabilities: Timeslot[];\n dropdownAvailabilities: Timeslot[];\n}\n\nexport interface Timeslot {\n offset: number;\n slotIndex: number;\n mainInternId?: number;\n supervisorId?: number;\n assistingInternId?: number;\n practitionerId?: number;\n localDateTime: string; // clinic location local date Timeslot\n dateObj: Date;\n timeString: string;\n date: string;\n}\n\nexport interface Guest {\n email: string;\n password: string;\n confirmPassword: string;\n firstName: string;\n lastName: string;\n phoneNumber: string;\n phoneType: PhoneTypeEnum;\n // cellNumber: string;\n // homeNumber: string;\n gender: string;\n otherGender: string;\n dateOfBirth: Date;\n}\n\n// only a mapper to send the appointment to server\nexport interface AppointmentData {\n appointmentUid: string;\n locationGuid: string;\n isNewPatient: boolean;\n serviceId: number;\n practitionerId?: number;\n mainInternId?: number;\n supervisorId?: number;\n assistingInternId?: number;\n index: number;\n date: string;\n account: Guest;\n additionalInformation: {\n reasonForVisit: string;\n receiveSms: boolean;\n referral: string;\n };\n basicInsurance: any;\n workerCompensationInsurance: any;\n autoAccidentInsurance: any;\n cardData?: any;\n cardId?: number;\n}\n\nexport interface BookingAppointment {\n locationGuid: string;\n serviceId: number;\n practitionerId: number;\n isNewPatient: boolean;\n index: number;\n date: string;\n}\n\nexport enum BookingConfirmationStatus {\n AutoAcceptedWithNewUser = 'AutoAcceptedWithNewUser',\n CreatedWithNewUser = 'CreatedWithNewUser',\n CreatedWithMatchingError = 'CreatedWithMatchingError',\n CreatedWithUserWithoutPP = 'CreatedWithUserWithoutPP',\n AutoAcceptedWithExistingUser = 'AutoAcceptedWithExistingUser',\n CreatedWithExistingUser = 'CreatedWithExistingUser',\n}\n","\nexport * from './booking-day';\nexport * from './insurance-type';\n","export enum InsuranceType {\n NoInsurance = 'no-insurance',\n Primary = 'primary-insurance',\n AutoAccident = 'auto-accident',\n WorkAccident = 'work-accident'\n}\n","import { BookingConfirmationStatus, Timeslot } from './../models/booking-day';\nimport { InsuranceType } from './../models/insurance-type';\nimport { BookingActions } from '../actions/index';\n\nexport interface State {\n appointmentUid: string;\n appointmentId: number;\n isExistingPatient: any;\n location: any;\n queryLocationGuid: any;\n service: any;\n practitioner: any;\n preferredPractitionerOption?: string;\n practitioners: any;\n dateDay: any;\n timeslot: Timeslot;\n account: any;\n clinicGuid: any;\n locationQueryGuid: any;\n currentStep: any;\n canChangeLocation: any;\n canChangePractitioner: any;\n insuranceType: InsuranceType;\n basicInsurance: any;\n workerCompensationInsurance: any;\n autoAccidentInsurance: any;\n additionalInformation: any;\n\n successStepTitle: string;\n successStepText: string;\n bookingConfirmationStatus: BookingConfirmationStatus;\n\n locationStepMsg: string;\n practitionerStepMsg: string;\n serviceStepMsg: string;\n}\n\nexport const initialState: State = {\n appointmentUid: null,\n appointmentId: null,\n isExistingPatient: null,\n location: null,\n queryLocationGuid: null,\n service: null,\n practitioner: null,\n practitioners: null,\n dateDay: null,\n timeslot: null,\n account: null,\n clinicGuid: null,\n locationQueryGuid: null,\n currentStep: null,\n canChangeLocation: true,\n canChangePractitioner: true,\n additionalInformation: null,\n insuranceType: null,\n basicInsurance: null,\n workerCompensationInsurance: null,\n autoAccidentInsurance: null,\n\n successStepTitle: 'booking-success-title-not-logged-in',\n successStepText: '',\n\n locationStepMsg: null,\n practitionerStepMsg: null,\n serviceStepMsg: null,\n bookingConfirmationStatus: null,\n};\n\nexport function reducer(\n state: State = initialState,\n // could support multiple state actions via union type here\n action: BookingActions.Actions\n): State {\n switch (action.type) {\n case BookingActions.SET_EXISTING_PATIENT: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n isExistingPatient: value,\n });\n }\n\n case BookingActions.SET_LOCATION: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n location: value,\n });\n }\n\n case BookingActions.SET_QUERY_LOCATION: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n queryLocationGuid: value,\n });\n }\n\n case BookingActions.SET_LOCATION_SERVICE: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n service: value,\n });\n }\n\n case BookingActions.SET_PRACTITIONER: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n practitioner: value,\n });\n }\n\n case BookingActions.SET_PREFERRED_PRACTITIONER_OPTION: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n preferredPractitionerOption: value,\n });\n }\n\n case BookingActions.SET_PRACTITIONERS: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n practitioners: value,\n });\n }\n\n case BookingActions.CAN_CHANGE_LOCATION: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n canChangeLocation: value,\n });\n }\n case BookingActions.CAN_CHANGE_PRACTITIONER: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n canChangePractitioner: value,\n });\n }\n case BookingActions.SET_ACCOUNT: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n account: value,\n });\n }\n case BookingActions.SET_ADDITIONAL_DATA: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n additionalInformation: value,\n });\n }\n\n case BookingActions.SET_INSURANCE_TYPE: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n insuranceType: value,\n });\n }\n\n case BookingActions.SET_INSURANCE: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n basicInsurance: value,\n });\n }\n case BookingActions.SET_WORK_INSURANCE: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n workerCompensationInsurance: value,\n });\n }\n case BookingActions.SET_AUTO_INSURANCE: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n autoAccidentInsurance: value,\n });\n }\n case BookingActions.SET_APPOINTMENT_UID: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n appointmentUid: value,\n });\n }\n\n case BookingActions.SET_TIMESLOT: {\n const value = action.payload;\n\n if (value == null) {\n return Object.assign({}, state, {\n timeslot: null,\n });\n }\n\n return Object.assign({}, state, {\n timeslot: value,\n });\n }\n case BookingActions.RESET_ALL: {\n let { successStepTitle, ...x } = initialState;\n let { successStepText, ...y } = x;\n let { isExistingPatient, ...newState } = y;\n\n return Object.assign({}, state, newState);\n }\n case BookingActions.SET_MESSAGE_ON_SUCCEESS_STEP: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n successStepTitle: value.title,\n successStepText: value.text,\n });\n }\n case BookingActions.SET_BOOKING_CONFIRMATION_STATUS: {\n const value = action.payload;\n\n return Object.assign({}, state, {\n bookingConfirmationStatus: value,\n });\n }\n case BookingActions.SET_MESSAGE_ON_Practitioner_STEP: {\n const value = action.payload;\n return Object.assign({}, state, {\n practitionerStepMsg: value,\n });\n }\n case BookingActions.SET_MESSAGE_ON_Location_STEP: {\n const value = action.payload;\n return Object.assign({}, state, {\n locationStepMsg: value,\n });\n }\n case BookingActions.SET_MESSAGE_ON_Service_STEP: {\n const value = action.payload;\n return Object.assign({}, state, {\n serviceStepMsg: value,\n });\n }\n default:\n return state;\n }\n}\n\n/**\n * Selectors\n */\n\nexport const getExistingPatient = (state: State) => state.isExistingPatient;\n\nexport const getLocation = (state: State) => state.location;\n\nexport const getQueryLocationGuid = (state: State) => state.queryLocationGuid;\n\nexport const getService = (state: State) => state.service;\n\nexport const getPractitioner = (state: State) => state.practitioner;\nexport const getPractitioners = (state: State) => state.practitioners;\n\nexport const getTimeslot = (state: State) => state.timeslot;\n\nexport const getClinicGuid = (state: State) => state.clinicGuid;\n\nexport const getLocationQueryGuid = (state: State) => state.locationQueryGuid;\n\nexport const getCurrentStep = (state: State) => state.currentStep;\n\nexport const canChangeLocation = (state: State) => state.canChangeLocation;\nexport const canChangePractitioner = (state: State) => state.canChangePractitioner;\nexport const getAccount = (state: State) => state.account;\nexport const getAdditionalInformation = (state: State) => state.additionalInformation;\nexport const getInsuranceType = (state: State) => state.insuranceType;\n\nexport const getRescheduledAppointmentUid = (state: State) => state.appointmentUid;\nexport const getPreferredPractitionerOption = (state: State) => state.preferredPractitionerOption;\n\nexport const getLocationStepMessage = (state: State) => state.locationStepMsg;\nexport const getPractitionerStepMessage = (state: State) => state.practitionerStepMsg;\nexport const getServiceStepMessage = (state: State) => state.serviceStepMsg;\n\nexport const getSuccessStepMessages = (state: State) => {\n return {\n title: state.successStepTitle,\n text: state.successStepText,\n };\n};\nexport const getBookingConfirmationStatus = (state: State) => {\n return state.bookingConfirmationStatus;\n};\n\nexport const getLocationAndExisting = (state: State) => {\n return {\n isNewPatient: state.isExistingPatient,\n locationGuid: state.location.guid,\n };\n};\nexport const getLocationAndService = (state: State) => {\n return {\n location: state.location,\n service: state.service,\n };\n};\n\nexport const getAppointment = (state: State) => {\n const apt = {\n appointmentUid: state.appointmentUid ? state.appointmentUid : null,\n locationGuid: state.location ? state.location.guid : null,\n serviceId: state.service ? state.service.id : null,\n isNewPatient: !state.isExistingPatient,\n practitionerId: state.practitioner ? state.practitioner.id : null,\n index: state.timeslot ? state.timeslot.slotIndex : null,\n date: state.timeslot ? state.timeslot.date : null,\n account: state.account,\n additionalInformation: state.additionalInformation,\n workerCompensationInsurance: state.workerCompensationInsurance,\n autoAccidentInsurance: state.autoAccidentInsurance,\n basicInsurance: state.basicInsurance,\n };\n\n return apt;\n};\n","\nexport * from './booking.reducer';\n","import { BookingDay } from './../models/booking-day';\nimport { environment } from './../../../environments/environment';\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { format, parseISO } from 'date-fns';\nimport { map } from 'rxjs/operators';\nimport { BookingActions } from '../actions';\nimport { NavigateWrapperService } from '../../core/services';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from '../../ngrx';\n\n@Injectable()\nexport class BookingService {\n constructor(\n private http: HttpClient,\n private navigateService: NavigateWrapperService,\n\n private store: Store\n ) {}\n\n createGuestBooking(appointment) {\n return this.http.post(`${environment.apiUrl}/Appointments/guest`, appointment);\n }\n\n createAuthBooking(appointment) {\n appointment = this.authAppoimentMapper(appointment);\n\n return this.http.post(`${environment.apiUrl}/Appointments`, appointment);\n }\n\n reschedule(appointment) {\n appointment = this.authAppoimentMapper(appointment);\n const uid = appointment.appointmentUid;\n delete appointment.appointmentUid;\n return this.http.put(`${environment.apiUrl}/Appointments/${uid}/reschedule`, appointment);\n }\n\n /**\n * get all the availabilites from server\n * save the availabe dates in memory for timeslots display\n * return the array with the available dates used by the calendar component to lock the days\n *\n * @param locationGuid - selected location guid\n * @param serviceId - selected service id\n * @param practitionerId - selected practitioner\n * @param isForNewPatients - if the user is an existing patient\n * @param startDate - first day of the interval\n * @param endDate - last day of the interval\n */\n getAvailableDates(\n locationGuid: string,\n serviceId: number,\n practitionerId: number,\n isForNewPatients: boolean,\n startDate: Date,\n endDate: Date,\n rescheduledAppointmentUid?: string,\n preferredPractitionerOption?: 'FeelingLucky' | 'Practitioner' | 'Intern'\n ) {\n let params = new HttpParams()\n .set('LocationGuid', locationGuid)\n .set('ServiceId', serviceId.toString())\n .set('IsForNewPatients', isForNewPatients.toString())\n .set('StartDate', format(startDate, 'yyyy-MM-dd'))\n .set('EndDate', format(endDate, 'yyyy-MM-dd'));\n\n if (practitionerId) {\n params = params.set('PractitionerId', practitionerId.toString());\n }\n if (rescheduledAppointmentUid) {\n params = params.set('rescheduledAppointmentUid', rescheduledAppointmentUid);\n }\n if (preferredPractitionerOption) {\n params = params.set('PreferredPractitionerOption', preferredPractitionerOption);\n }\n\n return this.http.get(`${environment.apiUrl}/Availabilities`, { params }).pipe(\n map((res) => {\n const availableDays: BookingDay[] = [];\n\n for (const bd of res) {\n if (bd.availabilities.length > 0) {\n bd.date = parseISO(bd.date as any);\n\n for (const av of bd.availabilities) {\n av.dateObj = parseISO(av.date);\n av.timeString = format(av.dateObj, 'h:mm a');\n }\n\n bd.dropdownAvailabilities = [];\n\n availableDays.push(bd);\n }\n }\n\n return availableDays;\n })\n );\n }\n\n authAppoimentMapper(appointment) {\n const apt = {\n locationGuid: appointment.locationGuid,\n serviceId: appointment.serviceId,\n practitionerId: appointment.practitionerId,\n index: appointment.index,\n date: appointment.date,\n cardData: appointment.cardData,\n cardId: appointment.cardId,\n };\n if (appointment.supervisorId) {\n apt['supervisorId'] = appointment.supervisorId;\n }\n if (appointment.mainInternId) {\n apt['mainInternId'] = appointment.mainInternId;\n }\n if (appointment.assistingInternId) {\n apt['assistingInternId'] = appointment.assistingInternId;\n }\n\n if (appointment.appointmentUid) {\n apt['appointmentUid'] = appointment.appointmentUid;\n }\n\n return apt;\n }\n\n redirectToStepWithError(error: string): void {\n switch (error) {\n case 'no-availabilities':\n this.navigateService.navigate(['booking', 'timeslot'], { error: 'timeslot-not-available' });\n break;\n case 'service-onlinescheduling-not-allowed':\n this.store.dispatch(new BookingActions.SetMessageOnServiceStep('service-not-available'));\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n this.navigateService.navigate(['booking', 'service']);\n break;\n case 'location-onlinescheduling-not-allowed':\n this.store.dispatch(new BookingActions.SetServiceAction(null));\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n this.store.dispatch(new BookingActions.SetMessageOnLocationStep('location-not-available'));\n this.navigateService.navigate(['booking', 'location']);\n break;\n case 'practitioner-onlinescheduling-not-allowed':\n this.store.dispatch(new BookingActions.SetPractitionerAction(null));\n this.store.dispatch(new BookingActions.SetTimeslotAction(null));\n this.store.dispatch(new BookingActions.SetMessageOnPractitionerStep('practitioner-not-available'));\n this.navigateService.navigate(['booking', 'practitioner']);\n break;\n }\n }\n}\n","import { BookingService } from './booking.service';\n\nexport const BOOKING_SERVICES: any[] = [\n BookingService\n];\n\nexport * from './booking.service';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { UpChatApiIntegrationService, FeaturePlan, StreamUserDto, FeaturePlanType, ApplicationType } from '@unifiedpractice/up-chat-lib';\nimport { environment } from '../../environments/environment';\nimport { StartupService } from '../core/services';\nimport { AccountService } from '../account/services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ChatApiIntegrationService extends UpChatApiIntegrationService {\n constructor(private httpClient: HttpClient, private startupService: StartupService, private accountService: AccountService) {\n super();\n }\n\n widgetGetClinicDetails(clinicId: string): any {\n return of();\n }\n\n widgetCreateChannelWithGuestUser(userData: any): any {\n return of(true);\n }\n // @ts-ignore\n getFeaturePlans(): Observable {\n return of([\n {\n type: FeaturePlanType.Starter,\n options: [\n {\n description: 'files-exchange',\n available: true,\n },\n {\n description: 'hipaa',\n available: true,\n },\n {\n description: 'aca-compliance',\n available: true,\n },\n {\n description: 'live-messages',\n available: false,\n },\n {\n description: 'live-team-chat',\n available: false,\n },\n {\n description: 'live-widget',\n available: false,\n },\n ],\n },\n {\n type: FeaturePlanType.Enhanced,\n options: [\n {\n description: 'files-exchange',\n available: true,\n },\n {\n description: 'hipaa',\n available: true,\n },\n {\n description: 'aca-compliance',\n available: true,\n },\n {\n description: 'live-messages',\n available: true,\n },\n {\n description: 'live-team-chat',\n available: false,\n },\n {\n description: 'live-widget',\n available: false,\n },\n ],\n },\n {\n type: FeaturePlanType.Premium,\n options: [\n {\n description: 'files-exchange',\n available: true,\n },\n {\n description: 'hipaa',\n available: true,\n },\n {\n description: 'aca-compliance',\n available: true,\n },\n {\n description: 'live-messages',\n available: true,\n },\n {\n description: 'live-team-chat',\n available: true,\n },\n {\n description: 'website-chat-leads',\n available: true,\n },\n ],\n },\n ]);\n }\n\n // @ts-ignore\n getCurrentFeaturePlan(): FeaturePlanType {\n return this.startupService.getChatFeaturePlan();\n }\n\n // @ts-ignore\n setFeaturePlanDisplay(value: boolean): Observable {\n return of(true);\n }\n\n // @ts-ignore\n getUserChannels(): Observable {\n return this.httpClient.get(`${environment.apiUrl}/Stream/channels`) as Observable;\n }\n\n // @ts-ignore\n initStreamPatient(channelType: 'Practitioner' | 'FrontDesk'): Observable {\n return this.httpClient.post(`${environment.apiUrl}/Stream/channel`, { channelType }) as unknown as Observable;\n }\n\n // @ts-ignore\n createChannelWithPatient(): Observable {\n return this.httpClient.post(`${environment.apiUrl}/Stream/init`, {}) as unknown as Observable;\n }\n\n // @ts-ignore\n createChannelWithClinicStaff(): Observable {\n return of(null) as unknown as Observable;\n }\n\n // @ts-ignore\n getChatContext(): ApplicationType {\n return ApplicationType.PP;\n }\n\n isLiveChatEnabled(): boolean {\n return this.startupService.getChatFeaturePlan() !== null && this.startupService.getChatFeaturePlan() !== FeaturePlanType.Starter;\n }\n\n isLiveChatEnabledForPatients(): boolean {\n return this.startupService.isLiveChatEnabled();\n }\n\n patientHasPrimaryPractitioner(): boolean {\n return !!this.accountService.user.getValue().primaryPractitionerId;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToastrService } from 'ngx-toastr';\nimport { NavigateWrapperService, StartupService } from '../core/services';\nimport { UpChatLibService } from '@unifiedpractice/up-chat-lib';\nimport { ActivatedRoute } from '@angular/router';\nimport { BaseComponent } from '../shared/components/base/base.component';\nimport { filter, switchMap, take, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-chat',\n templateUrl: './chat.component.html',\n styleUrls: ['./chat.component.scss'],\n})\nexport class ChatComponent extends BaseComponent implements OnInit, OnDestroy {\n constructor(\n private toastr: ToastrService,\n public startupService: StartupService,\n private upChatLibService: UpChatLibService,\n private navigateWrapperService: NavigateWrapperService,\n private activatedRoute: ActivatedRoute\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.upChatLibService.channels$\n .pipe(\n filter((channels) => !!channels),\n take(1),\n switchMap(() => this.activatedRoute.params),\n takeUntil(this.destroy$)\n )\n .subscribe((params) => {\n this.upChatLibService.activateChannel(params?.channelId || '0');\n });\n }\n\n chatError(message: string): void {\n this.toastr.error(message);\n }\n\n navigateToChannel(channelId: string): void {\n if (channelId) {\n this.navigateWrapperService.navigate(['chat', channelId]);\n }\n }\n}\n","\n
\n {{ 'StreamChatModuleDisabled' | translate }}\n
\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { UpChatApiIntegrationService, UpChatLibModule } from '@unifiedpractice/up-chat-lib';\nimport { ChatApiIntegrationService } from './chat-api-integration.service';\nimport { ChatComponent } from './chat.component';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { StartupService } from '../core/services';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n TranslateModule,\n UpChatLibModule.forRoot({\n apiKey: '',\n service: {\n provide: UpChatApiIntegrationService,\n useClass: ChatApiIntegrationService,\n },\n }),\n ],\n declarations: [ChatComponent],\n exports: [UpChatLibModule],\n providers: [ChatApiIntegrationService],\n})\nexport class ChatModule {\n constructor(private startupService: StartupService) {\n this.startupService.keyData.subscribe((config) => {\n if (config) {\n const apiKey = atob(config.streamChat);\n UpChatLibModule.forRoot({\n apiKey: apiKey,\n service: {\n provide: UpChatApiIntegrationService,\n useClass: ChatApiIntegrationService,\n },\n });\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ClinicRoutingModule { }\n","import { CLINIC_COMPONENTS } from './components/index';\nimport { SharedModule } from './../shared/shared.module';\nimport { CLINIC_SERVICES } from './services/index';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { ClinicRoutingModule } from './clinic-routing.module';\nimport { AccountModule } from '../account/account.module';\n\n@NgModule({\n imports: [\n SharedModule,\n AccountModule,\n ClinicRoutingModule\n ],\n declarations: [\n ...CLINIC_COMPONENTS\n ],\n providers: [\n ...CLINIC_SERVICES\n ],\n exports: [\n ...CLINIC_COMPONENTS\n ]\n})\n\nexport class ClinicModule {\n constructor(@Optional() @SkipSelf() parentModule: ClinicModule) {\n if (parentModule) {\n throw new Error('ClinicModule already loaded; Import in root module only.');\n }\n }\n}\n","import { MapModalComponent } from './map-modal/map-modal.component';\n\nexport const CLINIC_COMPONENTS: any[] = [\n MapModalComponent\n];\nexport * from './map-modal/map-modal.component';\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'pp-map-modal',\n templateUrl: 'map-modal.component.html'\n})\n\nexport class MapModalComponent implements OnInit {\n\n markers = [];\n center: google.maps.LatLngLiteral = { lat: 0, lng: 0 };\n markerOptions: google.maps.MarkerOptions = { draggable: false };\n markerPosition: google.maps.LatLngLiteral = { lat: 0, lng: 0 };\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n this.center = {\n lat: data.latitude,\n lng: data.longitude\n }\n this.markerPosition = {\n lat: data.latitude,\n lng: data.longitude\n }\n }\n\n ngOnInit() { }\n\n // onNoClick(): void {\n // this.dialogRef.close();\n // }\n}\n","\n\n\n \n \n \n \n \n\n","import { AccountService } from './../../account/services/account.service';\nimport { Service } from './../models/service';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Practitioner } from '../models/index';\nimport { environment } from './../../../environments/environment';\nimport { ClinicLocation } from '../models/location';\n\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport * as fromRoot from './../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { join as _join, map as _map } from 'lodash';\n\n@Injectable()\nexport class ClinicService {\n constructor(private http: HttpClient, private accountService: AccountService, private store: Store) {}\n\n getPractitioners(serviceId: number, locationGuid): Observable {\n const params = new HttpParams().set('ServiceId', serviceId.toString()).set('LocationGuid', locationGuid);\n\n return this.http.get(`${environment.apiUrl}/Practitioners`, { params }) as Observable;\n }\n getPractitionersByIds(practitionerIds: number[]): Observable {\n return this.http\n .get(\n `${environment.apiUrl}/Practitioners/clinicpractitioners?${_join(\n _map(practitionerIds, (id) => `PractitionerIds=${id}`),\n '&'\n )}`\n )\n .pipe(map((response: any) => response?.practitioners || [])) as Observable;\n }\n\n getLocations(): Observable {\n return this.http.get(`${environment.apiUrl}/Locations`) as Observable;\n }\n\n getServices(locationGuid, isNewPatient): Observable {\n const params = new HttpParams().set('LocationGuid', locationGuid).set('IsForNewPatients', (isNewPatient || false).toString());\n\n return this.http.get(`${environment.apiUrl}/Services`, { params }).pipe(\n map((result) => {\n for (const s of result) {\n s.displayedDuration = isNewPatient ? s.durationForNewPatients : s.durationForExistingPatients;\n }\n\n return result;\n })\n );\n }\n\n serviceNotAvailableForAuthenticated(service) {\n const user = this.accountService.user.getValue();\n const isExistingUser = user && user.isExisting;\n return (\n !service.isActiveForOnlineBooking ||\n (isExistingUser && service.durationForExistingPatients === 0) ||\n (!isExistingUser && service.durationForNewPatients === 0)\n );\n }\n}\n","\nimport { ClinicService } from './clinic.service';\n\nexport const CLINIC_SERVICES: any[] = [\n ClinicService\n];\n\nexport * from './clinic.service';\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { SharedModule } from './../shared/shared.module';\nimport { CORE_SERVICES } from './services/index';\nimport { ToastrModule } from 'ngx-toastr';\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\n\n@NgModule({\n imports: [\n SharedModule,\n NgIdleKeepaliveModule.forRoot(),\n ],\n declarations: [],\n exports: [],\n providers: [\n ...CORE_SERVICES,\n\n ]\n})\nexport class CoreModule {\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\n if (parentModule) {\n throw new Error('CoreModule already loaded; Import in root module only.');\n }\n }\n}\n","import { ProfileModel } from '../../account/models/profile-model';\nimport { AuthTokenModel } from '../../account/models/auth-tokens-model';\nimport { Injectable, OnDestroy } from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\nimport { AuthStateModel } from '../../account/models/auth-state-model';\n\n@Injectable()\nexport class AuthHelperService implements OnDestroy {\n refreshSubscription$: Subscription;\n\n private state: BehaviorSubject = new BehaviorSubject({ profile: null, tokens: null, authReady: false });\n state$: Observable = this.state.asObservable();\n tokens$: Observable;\n profile$: Observable;\n loggedIn$: Observable;\n token: AuthTokenModel;\n\n constructor() {\n this.tokens$ = this.state.pipe(filter((state) => state.authReady)).pipe(map((state) => state.tokens));\n this.profile$ = this.state.pipe(filter((state) => state.authReady)).pipe(map((state) => state.profile));\n this.loggedIn$ = this.tokens$.pipe(map((tokens) => !!tokens));\n }\n\n ngOnDestroy(): void {\n this.state.complete();\n }\n\n public storeToken(tokens: AuthTokenModel): void {\n const previousTokens = this.retrieveTokens();\n if (previousTokens != null && tokens.refresh_token == null) {\n tokens.refresh_token = previousTokens.refresh_token;\n }\n this.token = tokens;\n localStorage.setItem('auth-tokens', JSON.stringify(tokens));\n }\n\n public retrieveTokens(): AuthTokenModel {\n const tokensString = localStorage.getItem('auth-tokens');\n const tokensModel: AuthTokenModel = tokensString == null ? null : JSON.parse(tokensString);\n this.token = tokensModel;\n return tokensModel;\n }\n\n public removeToken(): void {\n localStorage.removeItem('auth-tokens');\n this.token = undefined;\n }\n\n public updateState(newState: AuthStateModel): void {\n const previousState = this.state.getValue();\n this.state.next(Object.assign({}, previousState, newState));\n }\n}\n","import { Store } from '@ngrx/store';\nimport { AuthHelperService } from './auth-helper.service';\nimport { environment } from './../../../environments/environment';\nimport { RefreshGrantModel } from '../../account/models/refresh-grant-model';\nimport { LoginModel } from '../../account/models/login-model';\nimport { RegisterModel } from '../../account/models/register-model';\nimport { ProfileModel } from '../../account/models/profile-model';\nimport { AuthTokenModel } from '../../account/models/auth-tokens-model';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable, of, interval, throwError, Subject } from 'rxjs';\nimport { map, catchError, tap, flatMap, first, takeUntil } from 'rxjs/operators';\nimport * as jwtDecode from 'jwt-decode';\nimport * as fromRoot from './../../ngrx';\nimport { BookingActions } from '../../booking/actions/index';\nimport { OnboardingService } from '../../onboarding/services';\nimport { AccountService } from '../../account/services';\nimport { ChannelService, ChatClientService } from 'stream-chat-angular';\n\n@Injectable()\nexport class AuthService implements OnDestroy {\n private destroy$: Subject = new Subject();\n\n constructor(\n private http: HttpClient,\n private authHelper: AuthHelperService,\n private store: Store,\n private onboardingService: OnboardingService,\n private accountService: AccountService,\n\n private chatService: ChatClientService,\n private channelService: ChannelService\n ) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n init(): Observable {\n return this.startupTokenRefresh().pipe(tap(() => this.scheduleRefresh()));\n }\n\n register(data: RegisterModel): Observable {\n return this.http.post(`${environment.apiUrl}/account/register`, data).pipe(catchError((res) => throwError(res)));\n }\n\n login(user: LoginModel): Observable {\n return this.getTokens(user, 'password').pipe(tap((res) => this.scheduleRefresh()));\n }\n\n logout(): void {\n this.channelService?.reset();\n this.chatService?.chatClient?.disconnectUser();\n this.authHelper.updateState({ profile: null, tokens: null });\n if (this.authHelper.refreshSubscription$) {\n this.authHelper.refreshSubscription$.unsubscribe();\n }\n this.authHelper.removeToken();\n this.accountService.user.next(null);\n this.store.dispatch(new BookingActions.ResetAllAction({}));\n this.store.dispatch(new BookingActions.SetExistingPatientAction(null));\n this.onboardingService.clearCache();\n }\n\n refreshTokens(): Observable {\n return this.authHelper.state$.pipe(\n first(),\n map((state) => state.tokens),\n flatMap((tokens) => this.getTokens({ refresh_token: tokens.refresh_token }, 'refresh_token')),\n catchError((error) => throwError('Session Expired'))\n );\n }\n\n private getTokens(data: RefreshGrantModel | LoginModel, grantType: string): Observable {\n const headers = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');\n Object.assign(data, { grant_type: grantType, scope: 'openid offline_access' });\n\n const params = new URLSearchParams();\n Object.keys(data).forEach((key) => params.append(key, data[key]));\n\n return this.http.post(`${environment.apiUrl}/connect/token`, params.toString(), { headers }).pipe(\n tap((res) => {\n const tokens: AuthTokenModel = res;\n const now = new Date();\n tokens.expiration_date = new Date(now.getTime() + tokens.expires_in * 1000).getTime().toString();\n\n const profile: ProfileModel = jwtDecode(tokens.id_token);\n\n this.authHelper.storeToken(tokens);\n this.authHelper.updateState({ authReady: true, tokens, profile });\n this.accountService.me().subscribe();\n })\n );\n }\n\n private startupTokenRefresh(): Observable {\n return of(this.authHelper.retrieveTokens()).pipe(\n flatMap((tokens: AuthTokenModel) => {\n if (!tokens) {\n this.authHelper.updateState({ authReady: true });\n return throwError('No token in Storage !');\n }\n const profile: ProfileModel = jwtDecode(tokens.id_token);\n this.authHelper.updateState({ tokens, profile });\n\n if (+tokens.expiration_date > new Date().getTime()) {\n this.authHelper.updateState({ authReady: true });\n }\n return this.refreshTokens();\n }),\n catchError((error) => {\n this.logout();\n this.authHelper.updateState({ authReady: true });\n return throwError(error);\n })\n );\n }\n\n private scheduleRefresh(): void {\n this.authHelper.refreshSubscription$ = this.authHelper.tokens$\n .pipe(\n first(),\n // refresh every 5 minutes before expiration\n flatMap((tokens) => interval((tokens.expires_in - 300) * 1000)),\n flatMap(() => this.refreshTokens()),\n takeUntil(this.destroy$)\n )\n .subscribe();\n }\n}\n","import { CountryStateComponent } from './../../shared/components/country-state/country-state.component';\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { environment } from './../../../environments/environment';\n\nimport { BehaviorSubject, Subject, Observable, Subscription, of, interval } from 'rxjs';\nimport { map, switchMap, catchError, mergeMap, filter, tap, flatMap, first, shareReplay } from 'rxjs/operators';\n\n\n@Injectable()\nexport class CatalogsService {\n constructor(private http: HttpClient) { }\n\n private _countries;\n private _states;\n\n public getCountries() {\n if (!this._countries) {\n return this.http.get(`${environment.apiUrl}/Catalogs/countries`)\n .pipe(\n tap((data) => {\n this._countries = data;\n const us = { code: 'US', name: 'United States' };\n this._countries.unshift(us);\n }),\n shareReplay(1)\n );\n }\n return of(this._countries);\n }\n\n public getStates() {\n if (!this._states) {\n const params = new HttpParams().set('countryCode', 'US');\n return this.http.get(`${environment.apiUrl}/Catalogs/states`, { params })\n .pipe(\n map(data => {\n this._states = Object.keys(data).map(prop => {\n return { label: data[prop].name, value: data[prop].code };\n });\n return this._states;\n }),\n shareReplay(1)\n );\n }\n return of(this._states);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomIconService {\n constructor(private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer) {}\n\n load(): Promise {\n return Promise.resolve(this.init());\n }\n\n private init(): void {\n this.matIconRegistry.addSvgIcon('date', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/date.svg`));\n this.matIconRegistry.addSvgIcon(\n 'appointment_accepted',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointment_accepted.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'appointment_cancelled',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointment_cancelled.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'appointment_pending',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointment_pending.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'appointment_rejected',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointment_rejected.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'appointment_refresh',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointment_refresh.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'appointment_delete',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointment_delete.svg`)\n );\n this.matIconRegistry.addSvgIcon('location', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/location.svg`));\n this.matIconRegistry.addSvgIcon('appointments', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointments.svg`));\n this.matIconRegistry.addSvgIcon('appointments', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/appointments.svg`));\n this.matIconRegistry.addSvgIcon('forms', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/forms.svg`));\n this.matIconRegistry.addSvgIcon('forms-warn', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/forms-warn.svg`));\n this.matIconRegistry.addSvgIcon('my-profile', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-profile.svg`));\n this.matIconRegistry.addSvgIcon('calendar-icon', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/calendar_icon.svg`));\n this.matIconRegistry.addSvgIcon(\n 'book-appointment',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/book-appointment.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'my-profile-active-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-profile-active-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon('my-profile-v2', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-profile-v2.svg`));\n this.matIconRegistry.addSvgIcon(\n 'book-appointment-active-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/book-appointment-active-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'book-appointment-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/book-appointment-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'my-forms-warn-active-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-forms-warn-active-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'my-forms-warn-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-forms-warn-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'my-forms-active-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-forms-active-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon('my-forms-v2', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-forms-v2.svg`));\n this.matIconRegistry.addSvgIcon(\n 'my-appointments-active-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-appointments-active-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon(\n 'my-appointments-v2',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/my-appointments-v2.svg`)\n );\n this.matIconRegistry.addSvgIcon('approved', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/approved.svg`));\n this.matIconRegistry.addSvgIcon('warning-red', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/warning-red.svg`));\n this.matIconRegistry.addSvgIcon('warning-yellow', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/warning-yellow.svg`));\n this.matIconRegistry.addSvgIcon('person-remove', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/person-remove.svg`));\n this.matIconRegistry.addSvgIcon(\n 'supervisor-account',\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/supervisor-account.svg`)\n );\n this.matIconRegistry.addSvgIcon('manage-accounts', this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/icon/manage-accounts.svg`));\n }\n}\n","\nimport {\n Injectable,\n Injector,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n ApplicationRef,\n ComponentRef\n} from '@angular/core';\n\n@Injectable()\nexport class DomService {\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector\n ) { }\n\n createComponentRef(component: any): ComponentRef {\n const componentRef = this.componentFactoryResolver\n .resolveComponentFactory(component)\n .create(this.injector);\n this.appRef.attachView(componentRef.hostView);\n return componentRef;\n }\n\n getDomElementFromComponentRef(componentRef: ComponentRef): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef)\n .rootNodes[0] as HTMLElement;\n }\n\n addChild(child: HTMLElement, parent: HTMLElement = document.body) {\n parent.appendChild(child);\n }\n\n removeChild(child: HTMLElement, parent: HTMLElement = document.body) {\n parent.removeChild(child);\n }\n\n destroyRef(componentRef: ComponentRef, delay: number = 0) {\n setTimeout(() => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }, delay);\n }\n\n appendChild(element: any, target: any) {\n if (this.isElement(target)) {\n target.appendChild(element);\n } else if (target.el && target.el.nativeElement) {\n target.el.nativeElement.appendChild(element);\n } else { throw new Error('Cannot append ' + target + ' to ' + element); }\n }\n\n isElement(obj: any) {\n return (typeof HTMLElement === 'object' ? obj instanceof HTMLElement :\n obj && typeof obj === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string'\n );\n }\n\n relativePosition(element: any, target: any): void {\n const elementDimensions =\n element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n const targetHeight = target.offsetHeight;\n const targetWidth = target.offsetWidth;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = this.getWindowScrollTop();\n const viewport = this.getViewport();\n let top, left;\n\n if ((targetOffset.top + targetHeight + elementDimensions.height) > viewport.height) {\n top = -1 * (elementDimensions.height);\n if (targetOffset.top + top < 0) {\n top = 0;\n }\n } else {\n top = targetHeight;\n }\n\n\n if ((targetOffset.left + elementDimensions.width) > viewport.width) {\n left = targetWidth - elementDimensions.width;\n } else { left = 0; }\n\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n\n\n absolutePosition(element: any, target: any): void {\n const elementDimensions =\n element.offsetParent ? { width: element.offsetWidth, height: element.offsetHeight } : this.getHiddenElementDimensions(element);\n const elementOuterHeight = elementDimensions.height;\n const elementOuterWidth = elementDimensions.width;\n const targetOuterHeight = target.offsetHeight;\n const targetOuterWidth = target.offsetWidth;\n const targetOffset = target.getBoundingClientRect();\n const windowScrollTop = this.getWindowScrollTop();\n const windowScrollLeft = this.getWindowScrollLeft();\n const viewport = this.getViewport();\n let top, left;\n\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n if (top < 0) {\n top = 0 + windowScrollTop;\n }\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n }\n\n if (targetOffset.left + targetOuterWidth + elementOuterWidth > viewport.width) {\n left = targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth;\n } else {\n left = targetOffset.left + windowScrollLeft;\n }\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n\n getViewport(): any {\n const win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n\n return { width: w, height: h };\n }\n\n getWindowScrollTop(): number {\n const doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n\n getWindowScrollLeft(): number {\n const doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n\n getHiddenElementDimensions(element: any): any {\n const dimensions: any = {};\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n\n return dimensions;\n }\n}\n","import { catchError, map, tap } from 'rxjs/operators';\nimport { throwError, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse, HttpErrorResponse } from '@angular/common/http';\nimport { ActivatedRoute } from '@angular/router';\nimport { ToastrService } from 'ngx-toastr';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AuthService, NavigateWrapperService } from '.';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Location } from '@angular/common';\n\n@Injectable()\nexport class ErrorsInterceptor implements HttpInterceptor {\n constructor(\n private toastr: ToastrService,\n private translateService: TranslateService,\n private authService: AuthService,\n private dialog: MatDialog,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService,\n public location: Location\n ) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n tap((event: HttpEvent) => {\n if (event instanceof HttpResponse) {\n // do stuff with response if you want\n if (event.body && event.body.success === false) {\n throw new HttpErrorResponse({ error: event.body });\n }\n }\n }),\n map((event) => {\n if (event instanceof HttpResponse && event.body) {\n const nevent = event.clone({\n body: event.body.data,\n });\n return nevent;\n }\n return event;\n }),\n catchError((error: HttpErrorResponse) => {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n } else {\n if (error.status === 401) {\n this.dialog.closeAll();\n this.authService.logout();\n this.navigateService.navigate(['login'], { returnUrl: this.location.path() });\n return throwError({ error: 'unauthorized' });\n }\n\n if (error.status === 404) {\n this.toastr.error(this.translateService.instant('resource-not-found'));\n return throwError({ error: 'resource-not-found' });\n }\n\n if (error.error) {\n // TODO\n // implement \"page level errors vs general errors\" logic\n // hint: set a custom header before the call is triggered\n console.error(`Backend returned code ${error.error.error}, ` + `body was: ${error.error.errorDescription}`);\n\n // if be raise exception it will return 200 with error object.\n if (error.status === 0) {\n this.toastr.error(error.error.errorDescription);\n }\n }\n\n return throwError(error.error);\n }\n // return an throwError with a user-facing error message\n return throwError('Something bad happened; please try again later.');\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n/** Xamarin. Service to raise custom events and send data to the mobile app. */\n@Injectable()\nexport class EventService {\n\n constructor() { }\n\n /** Xamarin. Raise events with data for the mobile app. Event listeners are injected from C#.\n * @param {string} name - Required. The name of the event.\n * @param {object} data - Optional. Tha data to pass in the event detail. Data is passed as string: JSON.stringify(data).\n * @example this.eventService.raise('angular_loaded');\n */\n raise(name, data?) {\n const event = new CustomEvent(name, {\n detail: {\n EventType: name,\n EventData: JSON.stringify(data)\n }\n });\n window.dispatchEvent(event);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { environment } from '../../../environments/environment';\nimport { Observable, of } from 'rxjs';\nimport { FullSteamAuthenticationModel, FullSteamAuthenticationResponse, CardProfile } from '@unifiedpractice/up-ng-fullsteam';\nimport { AuthHelperService } from './auth-helper.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FullSteamIntegrationClient {\n constructor(private http: HttpClient, private auth: AuthHelperService) {}\n\n getFullSteamAuthenticationKey(authenticationModel: FullSteamAuthenticationModel): Observable {\n let params: HttpParams = new HttpParams()\n .set('OperationType', authenticationModel.operationType.toString())\n .set('PerformCaptcha', authenticationModel.performCaptcha.toString());\n\n if (authenticationModel.amount) {\n params = params.set('Amount', authenticationModel.amount.toString());\n }\n\n return this.http.get(`${environment.apiUrl}/FullSteam/authenticationkey`, { params }) as Observable;\n }\n\n fullSteamSaveCard(request: string): Observable<{ data: number; messages: [] }> {\n if (!this.auth.token) {\n return of({ data: 0, messages: [] }) as Observable<{ data: number; messages: [] }>;\n }\n const headers: HttpHeaders = new HttpHeaders({\n Authorization: `${this.auth.token.token_type} ${this.auth.token.access_token}`,\n 'Content-Type': 'application/json',\n });\n\n return this.http.post<{ data: number; messages: [] }>(`${environment.apiUrl}/FullSteam/savecard`, request, {\n headers,\n withCredentials: true,\n });\n }\n\n getCards(): Observable {\n if (!this.auth.token) {\n return of([]);\n }\n const headers: HttpHeaders = new HttpHeaders({\n Authorization: `${this.auth.token.token_type} ${this.auth.token.access_token}`,\n 'Content-Type': 'application/json',\n });\n\n return this.http.get(`${environment.apiUrl}/Account/cards`, { headers, withCredentials: true }) as Observable;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n FullSteamAuthenticationModel,\n FullSteamAuthenticationResponse,\n SaleSuccess,\n UpFullSteamIntegrationService,\n UpFullSteamScript,\n CardProfile,\n} from '@unifiedpractice/up-ng-fullsteam';\nimport { Observable, of } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { FullSteamIntegrationClient } from './full-steam-integration.client';\nimport { TranslateService } from '@ngx-translate/core';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FullSteamIntegrationService extends UpFullSteamIntegrationService {\n jqueryJSLibrary: UpFullSteamScript = {\n name: 'jquery',\n src: environment.jqueryJSLibrary,\n };\n fullSteamJSLibrary: UpFullSteamScript = {\n name: 'fullsteam',\n src: environment.fullSteamJSLibrary,\n };\n\n constructor(private fullSteamIntegrationClient: FullSteamIntegrationClient, private translateService: TranslateService) {\n super();\n }\n\n fullSteamSaleSuccess(response: string): Observable {\n return of();\n }\n getFullSteamAuthenticationKey(authenticationModel: FullSteamAuthenticationModel): Observable {\n return this.fullSteamIntegrationClient.getFullSteamAuthenticationKey(authenticationModel);\n }\n translateString(str: string, params?: any): string {\n return this.translateService.instant(str, params);\n }\n\n fullSteamSaveCard(request: string): Observable<{ data: number; messages: [] }> {\n // @ts-ignore\n return this.fullSteamIntegrationClient.fullSteamSaveCard(request).pipe(map((d) => ({ data: d })));\n }\n\n getCards(userId: number): Observable {\n return this.fullSteamIntegrationClient.getCards();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Router, NavigationStart } from '@angular/router';\nimport { takeUntil } from 'rxjs/operators';\n\n@Injectable()\nexport class GlobalErrorsService implements OnDestroy {\n displayError = new BehaviorSubject(undefined);\n private destroy$: Subject = new Subject();\n\n constructor(private router: Router) {}\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n display404() {\n this.displayError.next('404');\n }\n display500() {\n this.displayError.next('500');\n }\n\n hideAll() {\n this.displayError.next(undefined);\n }\n\n subscribeToRouter() {\n this.router.events.pipe(takeUntil(this.destroy$)).subscribe((val) => {\n if (val instanceof NavigationStart && this.displayError.getValue() !== undefined) {\n this.hideAll();\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class HelperService {\n\n constructor() { }\n\n mobileAndTabletcheck = function () {\n const UA = navigator.userAgent || navigator.vendor;\n // tslint:disable-next-line:max-line-length\n return (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(UA) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(UA.substr(0, 4)));\n };\n}\n","import { EventService } from './event.service';\n// import { AuthHelperService } from './auth-helper.service';\n// import { AuthService } from './auth.service';\nimport { StartupService } from './startup.service';\nimport { LoaderService } from './loader.service';\nimport { DomService } from './dom.service';\nimport { CatalogsService } from './catalogs.service';\nimport { PingService } from './ping.service';\n// import { GlobalErrorsService } from './global-errors.service';\nimport { NavigateWrapperService } from './navigateWrapper.service';\nimport { UploadService } from './upload.service';\nimport { HelperService } from './helper.service';\n\n// registered in app module\nexport const CORE_SERVICES: any[] = [\n DomService,\n LoaderService,\n StartupService,\n UploadService,\n EventService,\n CatalogsService,\n PingService,\n // GlobalErrorsService,\n NavigateWrapperService,\n HelperService\n];\n\nexport * from './dom.service';\nexport * from './loader.service';\nexport * from './startup.service';\nexport * from './auth-helper.service';\nexport * from './auth.service';\nexport * from './event.service';\nexport * from './catalogs.service';\nexport * from './ping.service';\nexport * from './global-errors.service';\nexport * from './navigateWrapper.service';\nexport * from './upload.service';\nexport * from './helper.service';\n\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class LoaderService {\n\n show() {\n document.getElementById('full-screen-loader').style.display = 'block';\n\n }\n\n hide() {\n document.getElementById('full-screen-loader').style.display = 'none';\n\n }\n\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { Router, ActivatedRoute, NavigationExtras } from '@angular/router';\n\n@Injectable()\nexport class NavigateWrapperService {\n\n private clinicSlug: string;\n private _skipRoutes = [];\n private _routes = [];\n public nextRoute: string = undefined;\n public backRoute: string = undefined;\n public forwardRoute: string = undefined;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private location: Location\n ) {\n this.clinicSlug = this.location.path().split('/')[1];\n // console.log('NavigateWrapperService', this.clinicSlug);\n }\n\n /** Booking steps only.\n * Adds all booking routes, in their order, into an array. Helps to identify if back or forward button was pressed.\n * Adds all routes that are skipped, in their order, into an array.\n * Returns void.\n * **/\n public pushRoute(route: string, skip: boolean) {\n route = `/${this.clinicSlug}/` + route;\n if (route && this._routes.indexOf(route) < 0) {\n this._routes.push(route);\n if (skip) {\n this._skipRoutes.push(route);\n }\n }\n }\n\n /** Booking steps only.\n * Gets the next route to navigate to when Back is pressed.\n * @param currentRoute: the route from wich the navigation started.\n * @param nextRoute: the rpute to navigate to.\n * Returns void. Sets the next route for Back button to navigate to.\n */\n public redirectGoBack(currentRoute: string, nextRoute: string) {\n // console.log('redirectGoBack', currentRoute, nextRoute, this._skipRoutes);\n if (currentRoute && nextRoute) {\n if (this._skipRoutes.indexOf(nextRoute) !== -1) {\n const currentIndex = this._routes.indexOf(currentRoute);\n const nextIndex = this._routes.indexOf(nextRoute);\n if (currentIndex !== -1 && nextIndex !== -1) {\n if (currentIndex > nextIndex) {\n this.backRoute = this._routes[nextIndex - 2];\n return this.redirectGoBack(this._routes[nextIndex], this._routes[nextIndex - 1]);\n } else {\n this.forwardRoute = this._routes[nextIndex + 2];\n return this.redirectGoBack(this._routes[nextIndex], this._routes[nextIndex + 1]);\n }\n }\n }\n }\n\n this.nextRoute = nextRoute ? nextRoute : currentRoute;\n }\n\n /**\n * Navigates to provided route.\n * @param route: The Route to navigate to.\n * Returns void.\n */\n public navigate(route: any[], queryParams: any = null, preserveQueryParams: boolean = false) {\n if (route) {\n\n // append clinic slug logic\n if (route.length === 1) {\n // fix when redirect from login\n if (route[0].indexOf(this.clinicSlug) === -1) {\n route = route[0].split('/');\n route.unshift(this.clinicSlug);\n }\n } else { route.unshift(this.clinicSlug); }\n\n const navigationExtras: NavigationExtras = {};\n\n if (queryParams) {\n navigationExtras.queryParams = queryParams;\n if (preserveQueryParams) {\n navigationExtras.queryParamsHandling = 'preserve';\n }\n }\n\n this.router.navigate(route, navigationExtras);\n\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DEFAULT_INTERRUPTSOURCES, Idle } from '@ng-idle/core';\nimport { Keepalive } from '@ng-idle/keepalive';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { environment } from '../../../environments/environment';\nimport { LogoutWarningModalComponent } from '../../shared/components/logout-warning-modal/logout-warning-modal.component';\nimport { AuthHelperService } from './auth-helper.service';\nimport { AuthService } from './auth.service';\nimport { StartupService } from './startup.service';\n\n\n\n/**\n * Service used:\n * https://hackedbychinese.github.io/ng2-idle/\n */\n\n@Injectable()\nexport class PingService implements OnDestroy {\n dialogRef;\n warningPeriod = environment.defaultWarningTime * 60; // in seconds\n private destroy$: Subject = new Subject();\n\n constructor(\n private idle: Idle,\n private keepalive: Keepalive,\n private http: HttpClient,\n private startupService: StartupService,\n private dialog: MatDialog,\n private authService: AuthService,\n private authHelperService: AuthHelperService,\n private route: ActivatedRoute,\n\n private router: Router\n ) {\n /**\n * substract 1 minute from SessionTime,\n */\n const secondsUntilWarningDisplayed = (environment.defaultSessionTime - environment.defaultWarningTime) * 60;\n this.init(secondsUntilWarningDisplayed);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n init(idleInterval) {\n // interval until logout warning pop-up appears\n this.idle.setIdle(idleInterval);\n\n // sets a timeout period. after {warningPeriod} seconds of inactivity, the user will be considered timed out.\n this.idle.setTimeout(this.warningPeriod);\n\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\n this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\n\n this.idle.onIdleEnd.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.dialog.closeAll();\n });\n\n // logout\n // redirect user to logout if there was no interaction\n this.idle.onTimeout.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.dialog.closeAll();\n this.logout();\n });\n\n this.idle.onIdleStart.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.openWarningModal();\n });\n\n // triggered every second when idle start\n this.idle.onTimeoutWarning.pipe(takeUntil(this.destroy$)).subscribe(() => { });\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n if (loggedIn) {\n this.idle.watch();\n } else {\n this.idle.stop();\n }\n });\n }\n\n openWarningModal() {\n if (this.dialog.openDialogs.length === 0) {\n this.dialogRef = this.dialog.open(LogoutWarningModalComponent, {\n data: this.warningPeriod,\n });\n }\n }\n\n logout() {\n this.authService.logout();\n this.router.navigate(['login'], { relativeTo: this.route.root.firstChild });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { environment } from './../../../environments/environment';\nimport { Location } from '@angular/common';\nimport { Injectable, Injector } from '@angular/core';\nimport { AuthService } from './auth.service';\nimport { GlobalErrorsService } from './global-errors.service';\nimport { map } from 'rxjs/operators';\nimport { CustomIconService } from './custom-icon.service';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from './../../ngrx';\nimport { OrganizationActions } from '../../organization/actions';\nimport { FeaturePlanType } from '@unifiedpractice/up-chat-lib';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class StartupService {\n private _keyData = new BehaviorSubject(null); // Holds the API data\n _keyData$: Observable = this._keyData.asObservable();\n private _startupData: any;\n\n constructor(\n private http: HttpClient,\n private injector: Injector,\n private authService: AuthService,\n private location: Location,\n private store: Store,\n private customIconService: CustomIconService\n ) {\n // save the tenant slug to append it to api call\n const ar = location.path().split('/');\n environment.apiUrl = environment.apiUrl + '/' + ar[1];\n environment.resourceUrl = environment.apiUrl;\n }\n\n // This is the method you want to call at bootstrap\n // Important: It should return a Promise\n load(): Promise {\n this.initAuthTokenRefresh();\n\n this._startupData = null;\n return Promise.all([this.getAccessKeys(), this.getOrganizationData(), this.customIconService.load(), this.initializeGoogleMaps()]);\n }\n\n get keyData(): any {\n return this._keyData.asObservable();\n }\n\n get startupData(): any {\n return this._startupData || {};\n }\n\n initAuthTokenRefresh(): void {\n // This starts up the token refresh preocess for the app\n this.authService.init().subscribe(\n () => {},\n (error) => console.error(error)\n );\n }\n\n getAccessKeys(): Promise {\n const globalErrorsService = this.injector.get(GlobalErrorsService);\n const data = {};\n return this.http\n .post(`${environment.apiUrl}/stream/secrets`, data)\n .pipe(\n map((res: any) => {\n this._keyData.next(res);\n this.store.dispatch(new OrganizationActions.SetOrganization(res));\n return res;\n })\n )\n .toPromise()\n .catch((err: any) => {\n // globalErrorsService.display404();\n return Promise.resolve();\n });\n }\n\n getOrganizationData(): Promise {\n const globalErrorsService = this.injector.get(GlobalErrorsService);\n return this.http\n .get(`${environment.apiUrl}/organization`)\n .pipe(\n map((res: any) => {\n this._startupData = res;\n this.store.dispatch(new OrganizationActions.SetOrganization(res));\n return res;\n })\n )\n .toPromise()\n .catch((err: any) => {\n // globalErrorsService.display404();\n return Promise.resolve();\n });\n }\n\n isLiveChatEnabled(): boolean {\n return this._startupData.useStreamChat;\n }\n\n isStreamChatModuleEnabled(): boolean {\n return this._startupData.hasStreamChat;\n }\n\n allowCreateChatChannel(): boolean {\n return this._startupData.allowCreateChatChannel;\n }\n\n getChatFeaturePlan(): FeaturePlanType {\n /*\n Starter = 11,\n Enhanced = 12,\n Premium = 13\n */\n switch (this._startupData.pricingPlanId) {\n case 11:\n return FeaturePlanType.Starter;\n case 12:\n return FeaturePlanType.Enhanced;\n case 13:\n return FeaturePlanType.Premium;\n default:\n return null;\n }\n }\n\n private initializeGoogleMaps(): Promise {\n return this.http\n .jsonp(`https://maps.googleapis.com/maps/api/js?key=${environment.googleMapsApiKey}`, 'callback')\n .toPromise()\n .catch((err: any) => {\n return Promise.resolve();\n });\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthHelperService } from './auth-helper.service';\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor {\n constructor(private inj: Injector, private auth: AuthHelperService) {}\n\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\n // in case injector fails on constructor\n if (!this.auth) {\n this.auth = this.inj.get(AuthHelperService);\n }\n\n if (this.auth.token) {\n const _headers = new HttpHeaders();\n let headers = _headers.set('Authorization', `${this.auth.token.token_type} ${this.auth.token.access_token}`);\n\n // prevents the interceptor to remove the Authorization when setting the content type\n if (request.url.includes('FullSteam/savecard') || request.url.includes('Account/cards')) {\n return next.handle(request);\n }\n // if need a different content type;\n // eg. in token refresh call\n if (request.headers.getAll('Content-Type')) {\n headers = _headers.set('Content-Type', request.headers.getAll('Content-Type'));\n }\n\n request = request.clone({\n headers: headers,\n });\n }\n\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpEventType, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { catchError } from 'rxjs/operators';\nimport { Observable , Subject } from 'rxjs';\nimport { environment } from '../../../environments/environment';\n\n@Injectable()\nexport class UploadService {\n\n constructor(private http: HttpClient) { }\n\n public upload(uploadUrl: string, files: Set): { [key: string]: Observable } {\n // this will be the our resulting map\n const status = {};\n\n files.forEach(file => {\n // create a new multipart-form for every file\n const formData: FormData = new FormData();\n formData.append('file', file, file.name);\n\n // create a http-post request and pass the form\n // tell it to report the upload progress\n const req = new HttpRequest('POST', environment.apiUrl + uploadUrl, formData, {\n reportProgress: true\n });\n\n // create a new progress-subject for every file\n const progress = new Subject();\n\n // send the http-request and subscribe for progress-updates\n this.http.request(req).subscribe(event => {\n if (event.type === HttpEventType.UploadProgress) {\n\n // calculate the progress percentage\n const percentDone = Math.round(100 * event.loaded / event.total);\n\n // pass the percentage into the progress-stream\n progress.next(percentDone);\n } else if (event instanceof HttpResponse) {\n\n // Close the progress-stream if we get an answer form the API\n // The upload is complete\n progress.complete();\n }\n });\n\n // Save every progress-observable in a map of all observables\n status[file.name] = {\n progress: progress.asObservable()\n };\n });\n\n // return the map of progress.observables\n return status;\n }\n\n}\n","import { Component } from '@angular/core';\nimport { AuthHelperService } from './core/services';\n\n@Component({\n selector: 'pp-main-container',\n template: `\n \n
\n
\n \n
\n
\n
\n `,\n})\nexport class MainContainerComponent {\n // the only purpose is to have a main route that contains the clinic name\n\n // all the routes that require clinic-name param\n // must be children to this route and should be imported in the app.routes\n\n constructor(public authHelperService: AuthHelperService) {}\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AuthHelperService, StartupService } from '../../../core/services';\nimport { OnboardingService } from '../../../onboarding/services';\nimport { flatMap, takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { TopNavbarService } from '../top-navbar/top-navbar.service';\nimport { FeaturePlanType } from '@unifiedpractice/up-chat-lib';\n\n@Component({\n selector: 'pp-side-navbar',\n templateUrl: './side-navbar.component.html',\n styleUrls: ['./side-navbar.component.scss'],\n})\nexport class SideNavbarComponent extends BaseComponent implements OnInit, OnDestroy {\n loggedIn = false;\n areOnboardingFormsCompleted = false;\n useOnlineBooking = true;\n FeaturePlanType: typeof FeaturePlanType = FeaturePlanType;\n\n constructor(\n private authHelperService: AuthHelperService,\n private onboardingService: OnboardingService,\n public topNavbarService: TopNavbarService,\n public startupService: StartupService\n ) {\n super();\n this.useOnlineBooking = startupService.startupData.useOnlineBooking;\n }\n\n ngOnInit(): void {\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n if (this.loggedIn) {\n this.checkOnboardingFormsCompleted();\n }\n });\n }\n checkOnboardingFormsCompleted(): void {\n this.onboardingService\n .getOnboardingForms()\n .pipe(\n flatMap((res) => this.onboardingService.progress()),\n takeUntil(this.destroy$)\n )\n .subscribe((progress: any) => {\n this.areOnboardingFormsCompleted = progress.completion === 100;\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n isMenuItemActive(path: string): boolean {\n if (window.location.pathname.indexOf(path) > -1) {\n return true;\n }\n\n if (window.location.pathname.indexOf('booking') > -1 && path === 'appointments' && !this.isBookingAppointmentRouting()) {\n return true;\n }\n\n if (window.location.pathname.indexOf('onboarding') > -1 && path === 'onboarding/medical-forms') {\n return true;\n }\n\n return false;\n }\n\n isBookingAppointmentMenuItemActive(): boolean {\n return this.isBookingAppointmentRouting();\n }\n\n isBookingAppointmentRouting(): boolean {\n return (\n window.location.pathname.indexOf('booking/location') > -1 ||\n window.location.pathname.indexOf('booking/service') > -1 ||\n window.location.pathname.indexOf('booking/practitioner') > -1 ||\n window.location.pathname.indexOf('booking/timeslot') > -1 ||\n window.location.pathname.indexOf('booking/review') > -1 ||\n window.location.pathname.indexOf('booking/success') > -1\n );\n }\n\n isChatActivated(): boolean {\n return !!this.startupService.isStreamChatModuleEnabled();\n }\n}\n","
\n
\n \n \n \n
\n {{ 'my-appointments' | translate }}\n
\n
\n \n \n \n \n \n
\n {{ 'my-forms' | translate }}\n
\n
\n \n \n
\n {{ 'book-appointment' | translate }}\n
\n \n \n \n
\n {{ 'my-profile' | translate }}\n
\n \n\n \n \n
\n {{\n (startupService.getChatFeaturePlan() === FeaturePlanType.Starter || !startupService.isLiveChatEnabled() ? 'FileShare' : 'Chat')\n | translate\n }}\n \n
\n \n\n
\n \n
\n \n\n","import { Router } from '@angular/router';\nimport { LoaderService } from './../../../core/services/loader.service';\nimport { StartupService } from './../../../core/services/startup.service';\nimport { environment } from './../../../../environments/environment';\nimport { Component, OnInit, HostListener, Input, OnDestroy } from '@angular/core';\nimport { AuthService, AuthHelperService, NavigateWrapperService } from '../../../core/services/index';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { TopNavbarService } from './top-navbar.service';\nimport { FeaturePlanType } from '@unifiedpractice/up-chat-lib';\n\n@Component({\n selector: 'pp-top-navbar',\n templateUrl: './top-navbar.component.html',\n styleUrls: ['./top-navbar.component.scss'],\n})\nexport class TopNavbarComponent extends BaseComponent implements OnInit, OnDestroy {\n loggedIn = false;\n\n /** Xamarin. Used to hide the web navigation. */\n @Input() xamarin: boolean;\n\n user: any = {\n firstName: undefined,\n initials: undefined,\n avatarUrl: undefined,\n };\n clinicLogoUrl = '';\n loginEnabled = true;\n\n clinicName = '';\n webAddress = '';\n email = '';\n phone = '';\n FeaturePlanType: typeof FeaturePlanType = FeaturePlanType;\n\n constructor(\n public startupService: StartupService,\n private loader: LoaderService,\n private authHelperService: AuthHelperService,\n private authService: AuthService,\n private router: Router,\n private navigateService: NavigateWrapperService,\n public topNavbarService: TopNavbarService\n ) {\n super();\n this.xamarin = false;\n }\n\n /** Xamarin. Listen to \"navigate\" custom event raised from C# and navigate to provided path */\n @HostListener('window:navigate', ['$event'])\n navigate(event: CustomEvent) {\n if (event.detail) {\n if (event.detail === 'logout') {\n this.topNavbarService.logout();\n } else {\n this.navigateService.navigate([event.detail]);\n // TODO: add the Tenant to the navigation.\n }\n }\n }\n\n ngOnInit() {\n if (this.startupService.startupData.logoUrl) {\n this.clinicLogoUrl = `${environment.resourceUrl}/${this.startupService.startupData.logoUrl}`;\n } else {\n this.clinicLogoUrl = './../../../../assets/img/logo-symbol.png';\n }\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.loginEnabled = this.startupService.startupData.usePatientPortal;\n\n this.clinicName = this.startupService.startupData.name;\n this.webAddress = this.startupService.startupData.webAddress;\n this.email = this.startupService.startupData.email;\n this.phone = this.startupService.startupData.phoneNumber;\n\n if (this.webAddress && !this.webAddress.includes('http')) {\n this.webAddress = 'http://' + this.webAddress;\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n login() {\n if (this.router.url.includes('login')) {\n this.navigateService.navigate(['booking', 'previous-visit']);\n } else if (\n this.router.url.includes('location') ||\n this.router.url.includes('service') ||\n this.router.url.includes('practitioner') ||\n this.router.url.includes('timeslot')\n ) {\n this.navigateService.navigate(['login'], { returnUrl: this.router.url });\n } else if (this.router.url.includes('previous-visit')) {\n this.navigateService.navigate(['login'], { returnUrl: 'appointments' });\n } else {\n this.navigateService.navigate(['login'], { returnUrl: 'booking/review' });\n }\n }\n\n isChatActivated(): boolean {\n return !!this.startupService.isStreamChatModuleEnabled();\n }\n}\n","
\n \n
\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { AuthService, NavigateWrapperService } from '../../../core/services';\nimport { OnboardingService } from '../../../onboarding/services';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { OnboardingSummaryDialogComponent } from '../../../onboarding/components';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TopNavbarService implements OnDestroy {\n private destroy$: Subject = new Subject();\n constructor(\n private dialog: MatDialog,\n private navigateService: NavigateWrapperService,\n private onboardingService: OnboardingService,\n private authService: AuthService\n ) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n navigateTo(route): void {\n if (!this.onboardingService.canSkipForm()) {\n this.openConfirmationModal()\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: boolean) => {\n this.navigateWithConfirmation(result, route);\n });\n\n return;\n }\n this.navigateService.navigate([route]);\n }\n\n private navigateWithConfirmation(saveChanges: boolean, route: string, callback?: () => void): void {\n if (saveChanges) {\n if (this.onboardingService.isFormValid()) {\n this.onboardingService.skipAndSave.next(true);\n this.onboardingService.setFormSkip(true);\n if (callback) {\n callback();\n }\n this.navigateService.navigate([route]);\n }\n return;\n }\n this.onboardingService.setFormSkip(true);\n this.onboardingService.skipAndSave.next(false);\n if (callback) {\n callback();\n }\n this.navigateService.navigate([route]);\n }\n\n openConfirmationModal(): MatDialogRef {\n return this.dialog.open(OnboardingSummaryDialogComponent, {\n width: '350px',\n data: { formValid: true },\n });\n }\n\n logout() {\n if (!this.onboardingService.canSkipForm()) {\n this.openConfirmationModal()\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: boolean) => {\n this.navigateWithConfirmation(result, 'booking/previous-visit', () => this.authService.logout());\n });\n return;\n }\n this.authService.logout();\n this.navigateService.navigate(['booking', 'previous-visit']);\n }\n}\n","import { MENU_COMPONENTS } from './components/index';\nimport { MENU_DIRECTIVES } from './directives/index';\nimport { SharedModule } from './../shared/shared.module';\nimport { NgModule } from '@angular/core';\nimport { SideNavbarComponent } from './components/side-navbar/side-navbar.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { ChatModule } from '../chat/chat.module';\n\n@NgModule({\n imports: [SharedModule, FlexLayoutModule, ChatModule],\n declarations: [...MENU_COMPONENTS, ...MENU_DIRECTIVES, SideNavbarComponent],\n exports: [...MENU_COMPONENTS, ...MENU_DIRECTIVES, SideNavbarComponent],\n providers: [\n // ...MENU_SERVICES\n ],\n})\nexport class PpMenuModule {}\n","import { createSelector } from 'reselect';\nimport { ActionReducer } from '@ngrx/store';\nimport { environment } from '../../environments/environment';\n\n/**\n * The compose function is one of our most handy tools. In basic terms, you give\n * it any number of functions and it returns a function. This new function\n * takes a value and chains it through every composed function, returning\n * the output.\n *\n * More: https://drboolean.gitbooks.io/mostly-adequate-guide/content/ch5.html\n */\nimport { compose } from '@ngrx/core/compose';\n\n/**\n * storeFreeze prevents state from being mutated. When mutation occurs, an\n * exception will be thrown. This is useful during development mode to\n * ensure that none of the reducers accidentally mutates the state.\n */\n\n/**\n * combineReducers is another useful metareducer that takes a map of reducer\n * functions and creates a new reducer that gathers the values\n * of each reducer and stores them using the reducer's key. Think of it\n * almost like a database, where every reducer is a table in the db.\n *\n * More: https://egghead.io/lessons/javascript-redux-implementing-combinereducers-from-scratch\n */\nimport { combineReducers, ActionReducerMap, MetaReducer } from '@ngrx/store';\n\n/**\n * Every reducer module's default export is the reducer function itself. In\n * addition, each module should export a type or interface that describes\n * the state of the reducer plus any selector functions. The `* as`\n * notation packages up all of the exports into a single object.\n */\nimport * as fromSample from '../sample/reducers';\nimport * as fromBooking from '../booking/reducers';\nimport * as fromOrganization from '../organization/reducers';\n\n/**\n * As mentioned, we treat each reducer like a table in a database. This means\n * our top level state interface is just a map of keys to inner state types.\n */\nexport interface State {\n sample: fromSample.State;\n booking: fromBooking.State;\n organization: fromOrganization.State;\n}\n\n/**\n * Because metareducers take a reducer function and return a new reducer,\n * we can use our compose helper to chain them together. Here we are\n * using combineReducers to make our top level reducer, and then\n * wrapping that in storeLogger. Remember that compose applies\n * the result from right to left.\n */\nexport const reducers: ActionReducerMap = {\n sample: fromSample.reducer,\n booking: fromBooking.reducer,\n organization: fromOrganization.reducer,\n};\n\n// export function localStorageSyncReducer(reducer: ActionReducer): ActionReducer {\n// return compose(storeFreeze, localStorageSync({ keys: ['patientSearchInput'], rehydrate: true }), combineReducers)(reducers);\n// }\n\nexport const metaReducers: Array> = [\n // localStorageSyncReducer\n];\n\nconst developmentReducer: ActionReducer = compose(combineReducers)(reducers);\nconst productionReducer: ActionReducer = compose(combineReducers)(reducers);\n\nexport function reducer(state: any, action: any) {\n if (environment.production) {\n return productionReducer(state, action);\n } else {\n return developmentReducer(state, action);\n }\n}\n\n/**\n * A selector function is a map function factory. We pass it parameters and it\n * returns a function that maps from the larger state tree into a smaller\n * piece of state. This selector simply selects the `books` state.\n *\n * Selectors are used with the `select` operator.\n *\n * ```ts\n * class MyComponent {\n * \tconstructor(state$: Observable) {\n * \t this.booksState$ = state$.select(getBooksState);\n * \t}\n * }\n * ```\n */\n// export const getSampleState = (state: State) => state.sample;\nexport const getBookingState = (state: State) => state.booking;\n\n// Organization Reducer\nexport const getOrganizationState = (state: State) => state.organization;\n/**\n * Every reducer module exports selector functions, however child reducers\n * have no knowledge of the overall state tree. To make them useable, we\n * need to make new selectors that wrap them.\n *\n * The createSelector function from the reselect library creates\n * very efficient selectors that are memoized and only recompute when arguments change.\n * The created selectors can also be composed together to select different\n * pieces of state.\n */\n\n// example\n// export const getNames = createSelector(getSampleState, fromSample.getNames);\n\n// Booking reducer\nexport const getBookingExistingPatient = createSelector(getBookingState, fromBooking.getExistingPatient);\nexport const getBookingLocation = createSelector(getBookingState, fromBooking.getLocation);\nexport const getQueryLocationGuid = createSelector(getBookingState, fromBooking.getQueryLocationGuid);\nexport const getBookingService = createSelector(getBookingState, fromBooking.getService);\nexport const getBookingPractitioner = createSelector(getBookingState, fromBooking.getPractitioner);\nexport const getBookingPractitioners = createSelector(getBookingState, fromBooking.getPractitioners);\nexport const getBookingDateTime = createSelector(getBookingState, fromBooking.getTimeslot);\nexport const getBookingClinicGuid = createSelector(getBookingState, fromBooking.getClinicGuid);\nexport const getBookingLocationQueryGuid = createSelector(getBookingState, fromBooking.getLocationQueryGuid);\nexport const getBookingCurrentStep = createSelector(getBookingState, fromBooking.getCurrentStep);\nexport const getBookingLocationAndExisting = createSelector(getBookingState, fromBooking.getLocationAndExisting);\nexport const getBookingAccount = createSelector(getBookingState, fromBooking.getAccount);\nexport const getBookingAdditionalInformation = createSelector(getBookingState, fromBooking.getAdditionalInformation);\nexport const getBookingAppointmentObject = createSelector(getBookingState, fromBooking.getAppointment);\nexport const getBookingInsuranceType = createSelector(getBookingState, fromBooking.getInsuranceType);\nexport const getBookingRescheduledAppointmentUid = createSelector(getBookingState, fromBooking.getRescheduledAppointmentUid);\nexport const getPreferredPractitionerOptions = createSelector(getBookingState, fromBooking.getPreferredPractitionerOption);\nexport const getBookingSuccessStepMessages = createSelector(getBookingState, fromBooking.getSuccessStepMessages);\nexport const getBookingConfirmationStatus = createSelector(getBookingState, fromBooking.getBookingConfirmationStatus);\n\nexport const getBookingLocationStepMessage = createSelector(getBookingState, fromBooking.getLocationStepMessage);\nexport const getBookingPractitionerStepMessage = createSelector(getBookingState, fromBooking.getPractitionerStepMessage);\nexport const getBookingServiceStepMessage = createSelector(getBookingState, fromBooking.getServiceStepMessage);\n\nexport const canChangeBookingLocation = createSelector(getBookingState, fromBooking.canChangeLocation);\nexport const canChangeBookingPractitioner = createSelector(getBookingState, fromBooking.canChangePractitioner);\n","/**\n * This function coerces a string into a string literal type.\n * Using tagged union types in TypeScript 2.0, this enables\n * powerful typechecking of our reducers.\n * \n * Since every action label passes through this function it\n * is a good place to ensure all of our action labels\n * are unique.\n */\n\nlet typeCache: { [label: string]: boolean } = {};\nexport function type(label: T | ''): T {\n if (typeCache[label]) {\n throw new Error(`Action type \"${label}\" is not unqiue\"`);\n }\n\n typeCache[label] = true;\n\n return label;\n}\n","import { FormField } from './../../../shared/components/form-render/form-field.model';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Validators, FormGroup, FormBuilder, FormControl } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-additional-info-page',\n templateUrl: 'additional-info-page.component.html',\n})\nexport class AdditionalInfoPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loaderRows = [0, 1, 2, 3, 4];\n\n fields1: FormField[] = [];\n fields2: FormField[] = [];\n fields3: FormField[] = [];\n form: FormGroup;\n\n private customFields = [];\n\n loggedIn = false;\n showLoader = true;\n saving = false;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n super();\n }\n\n ngOnInit() {\n this.form = this.fb.group({\n currentlySeeingMD: new FormControl(false),\n });\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.onboardingService\n .getAdditionalInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n this.customFields = res.customFields;\n\n this.fields1 = this.initFields1(res);\n this.fields2 = this.initFields2(res);\n this.fields3 = this.initFields3(res);\n\n this.form.get('currentlySeeingMD').setValue(res.currentlySeeingMD);\n\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n\n this.showLoader = false;\n });\n\n this.form\n .get('currentlySeeingMD')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n if (!res) {\n if (this.form.get('conditionTreated')) {\n this.form.removeControl('conditionTreated');\n }\n }\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n const isFormChangedAndFormNotCompleted = this.form.pristine;\n this.onboardingService.setFormSkip(isFormChangedAndFormNotCompleted);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n initFields1(data) {\n const fields: FormField[] = [\n {\n key: 'hadAccupunctureBefore',\n label: 'additional-hadacupunctureBefore-label',\n type: FormFieldsEnum.CheckBox,\n value: data.hadAccupunctureBefore || false,\n },\n {\n key: 'hadChineseHerbalMedicineBefore',\n label: 'additional-hadChineseHerbalMedicineBefore-label',\n type: FormFieldsEnum.CheckBox,\n value: data.hadChineseHerbalMedicineBefore || false,\n },\n\n {\n key: 'notes',\n label: 'additional-notes-label',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(1000)],\n value: data.notes || '',\n },\n ];\n\n return fields;\n }\n\n initFields2(data) {\n const fields: FormField[] = [\n {\n key: 'conditionTreated',\n label: 'additional-conditionTreated-label',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(1000)],\n value: data.conditionTreated || '',\n },\n ];\n\n return fields;\n }\n\n initFields3(data) {\n const fields: FormField[] = [\n {\n key: 'therapyPrescribed',\n label: 'additional-therapyPrescribed-label',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(1000)],\n value: data.therapyPrescribed || '',\n },\n ];\n\n if (data.customFields) {\n for (const cf of data.customFields) {\n fields.push(this.mapFromCustomField(cf));\n }\n }\n\n return fields;\n }\n\n mapFromCustomField(cf) {\n const validators = [];\n if (cf.template.isRequired) {\n validators.push(Validators.required);\n }\n\n const field: FormField = {\n key: cf.template.displayName,\n label: cf.template.displayName,\n type: cf.template.type,\n value: cf.value || null,\n validators: validators,\n };\n\n if (field.type === FormFieldsEnum.DropdownSingleSelect || field.type === FormFieldsEnum.DropdownMultipleSelect) {\n const options = cf.template.customAttributes['options'];\n field.itemsList = [];\n for (const o of options) {\n field.itemsList.push({ value: o, label: o });\n }\n }\n\n return field;\n }\n\n mapToCustomField(customFieldId, formValue) {\n const cf: any = this.customFields.filter((f) => f.template.displayName === customFieldId)[0];\n\n if (cf) {\n return {\n id: cf.id,\n name: cf.template.displayName,\n templateId: cf.template.id,\n type: cf.template.type,\n value: !formValue || formValue.length === 0 ? (cf.template.type === FormFieldsEnum.CheckBox ? false : null) : formValue,\n };\n }\n return null;\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n const formValue = this.form.value;\n formValue.customFields = [];\n\n // tslint:disable-next-line:forin\n for (const key in formValue) {\n const customField = this.mapToCustomField(key, formValue[key]);\n if (customField) {\n formValue.customFields.push(customField);\n }\n }\n\n this.onboardingService.saveAdditionalInfo(formValue).subscribe((res) => {\n this.saving = false;\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.Additional);\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding/success'], null, true);\n }\n }\n });\n }\n}\n","
\n

{{ 'additional-information' | translate }}

\n
\n
\n \n
\n\n
\n
\n
\n
\n {{ 'additional-currentlySeeingMD-label' | translate }}\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n

\n {{ 'additional-information' | translate }}\n

\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { ToastrService } from 'ngx-toastr';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'pp-address-contact-info-page',\n templateUrl: 'address-contact-info-page.component.html',\n})\nexport class AddressContactInfoPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loaderRows = [0, 1, 2, 3, 4];\n\n fields1: FormField[] = [];\n fields2: FormField[] = [];\n fields3: FormField[] = [];\n\n form: FormGroup;\n phoneTypes: any;\n loggedIn = false;\n showLoader = true;\n saving = false;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService,\n private toastr: ToastrService,\n private translateService: TranslateService\n ) {\n super();\n }\n\n ngOnInit() {\n const countryState = new FormControl(null);\n\n this.fields1 = this.initFields1({});\n this.fields2 = this.initFields2({});\n this.fields3 = this.initFields3({});\n\n this.form = this.fb.group({\n countryState: countryState,\n });\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n this.onboardingService\n .getContactInfo()\n .pipe(takeUntil(this.destroy$))\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n this.fields1 = this.initFields1(res);\n this.fields2 = this.initFields2(res);\n this.fields3 = this.initFields3(res);\n this.form.controls['countryState'].setValue({ country: res.countryCode, state: res.stateCode, otherState: res.state });\n this.showLoader = false;\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onboardingService.setFormSkip(this.form.pristine);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n initFields1(data) {\n const fields: FormField[] = [\n {\n key: 'streetAddress',\n label: 'street-address',\n type: FormFieldsEnum.TextBox,\n value: data.addressLine1 || '',\n },\n {\n key: 'streetAddress2',\n label: 'street-address2',\n type: FormFieldsEnum.TextBox,\n value: data.addressLine2 || '',\n },\n {\n key: 'phone',\n label: 'phone',\n type: FormFieldsEnum.Phone,\n value: {\n number: data.phoneNumber1,\n phoneType: data.phoneNumber1TypeId,\n required: true,\n },\n },\n {\n key: 'alternatePhone',\n label: 'alternate-phone',\n type: FormFieldsEnum.Phone,\n value: {\n number: data.phoneNumber2,\n phoneType: data.phoneNumber2TypeId,\n },\n },\n ];\n return fields;\n }\n\n initFields2(data) {\n const fields: FormField[] = [\n {\n key: 'city',\n label: 'city',\n type: FormFieldsEnum.TextBox,\n value: data.city || '',\n },\n {\n key: 'zipCode',\n label: 'zipCode',\n type: FormFieldsEnum.TextBox,\n value: data.zipCode || '',\n },\n ];\n return fields;\n }\n\n initFields3(data) {\n const fields: FormField[] = [\n {\n key: 'fax',\n label: 'fax-number',\n type: FormFieldsEnum.TextBox,\n value: data.faxNumber || '',\n },\n {\n key: 'email',\n label: 'primary-email',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.email],\n value: data.emailAddress || '',\n readonly: true,\n },\n ];\n return fields;\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n\n const data = {\n addressLine1: this.form.value.streetAddress,\n addressLine2: this.form.value.streetAddress2,\n city: this.form.value.city,\n zipCode: this.form.value.zipCode,\n countryCode: this.form.value.countryState ? this.form.value.countryState.country : undefined,\n stateCode: this.form.value.countryState ? this.form.value.countryState.state : undefined,\n phoneNumber1: this.form.value.phone.number,\n phoneNumber1TypeId: this.form.value.phone.phoneType,\n phoneNumber2: this.form.value.alternatePhone ? this.form.value.alternatePhone.number : undefined,\n phoneNumber2TypeId: this.form.value.alternatePhone ? this.form.value.alternatePhone.phoneType : undefined,\n faxNumber: this.form.value.fax,\n emailAddress: this.form.value.email,\n };\n\n this.onboardingService.saveContactInfo(data).subscribe(\n (res) => {\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.Contact);\n this.saving = false;\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding', 'success']);\n }\n }\n },\n (error) => {\n const jsonData: any = JSON.parse(error.errorDescription);\n const errorMessages = Object.values(jsonData).reduce((acc: any, field) => acc.concat((field as any[]).map((item) => item.errorMessage)), []) as string [];\n this.toastr.error(this.translateService.instant(errorMessages.join('\\r\\n')));\n this.saving = false;\n }\n );\n }\n}\n","
\n

\n {{'contact-information'\n |\n translate}}

\n\n
\n\n
\n \n \n\n
\n \n \n\n \n

\n {{ 'form-input-error-state-error' | translate}}\n

\n

\n {{ 'form-input-error-required' | translate}}\n

\n
\n
\n\n \n \n \n
\n\n \n\n
\n
\n \n
\n
\n\n\n\n\n
\n

\n {{'contact-information'\n |\n translate}}

\n
\n
\n
\n
\n
\n
\n
\n","import { environment } from './../../../../environments/environment';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { ActivatedRoute } from '@angular/router';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Common } from '../../../shared/models/Common';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-consent-form-page',\n templateUrl: 'consent-form-page.component.html',\n})\nexport class ConsentFormPageComponent extends BaseComponent implements OnInit, OnDestroy {\n form: FormGroup;\n consentForm: any;\n uid: any;\n saving = false;\n loggedIn = false;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService,\n private sanitizer: DomSanitizer,\n private authHelperService: AuthHelperService\n ) {\n super();\n }\n\n ngOnInit() {\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.route.params.pipe(takeUntil(this.destroy$)).subscribe((params) => {\n this.form = this.fb.group({});\n\n this.uid = params['uid'];\n const form = this.onboardingService.getForm(this.uid);\n\n this.parseData(form);\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onboardingService.setFormSkip(true);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n private parseData(form) {\n if (form) {\n if (form.type === Common.FormType.ConsentForm) {\n this.consentForm = {\n uid: form.uid,\n name: form.name,\n type: form.type,\n width: form.width,\n height: this.getHeight(form.sections[0].controls, form.cellUnitHeight).toString() + 'px',\n cellUnitHeight: form.cellUnitHeight,\n totalColumns: form.sections[0].columns,\n controls: this.getControls(form.sections[0].controls, form.cellUnitHeight, form.name),\n isCompleted: form.isCompleted,\n isSigned: form.isSigned,\n };\n }\n }\n }\n\n private getControls(data, cellHeight, name) {\n const controls = [];\n\n if (data.length > 0) {\n let type: FormFieldsEnum;\n\n data.forEach((control) => {\n switch (control.type) {\n case Common.FormControlType.Heading:\n type = FormFieldsEnum.Heading;\n break;\n case Common.FormControlType.FreeText:\n type = FormFieldsEnum.FreeText;\n break;\n case Common.FormControlType.TextInput:\n type = FormFieldsEnum.TextInput;\n break;\n case Common.FormControlType.CustomCheckbox:\n type = FormFieldsEnum.CustomCheckbox;\n break;\n case Common.FormControlType.DateInput:\n type = FormFieldsEnum.DateInput;\n break;\n case Common.FormControlType.CheckboxList:\n type = FormFieldsEnum.CheckboxList;\n break;\n case Common.FormControlType.Slider:\n type = FormFieldsEnum.Slider;\n break;\n case Common.FormControlType.File:\n type = FormFieldsEnum.File;\n break;\n default:\n break;\n }\n\n // add only the file controls\n // rest of controls will be rendered in the signature-page\n if (type === FormFieldsEnum.File) {\n // set the path to the file\n if (control.settings.path) {\n const path = `${environment.resourceUrl}/files/Forms/Consent/${control.settings.path}`;\n control.settings.trustPath = this.sanitizer.bypassSecurityTrustResourceUrl(path);\n control.settings.sPath = path;\n }\n\n controls.push({\n key: control.id,\n type: type,\n id: control.id,\n value: control.value,\n width: control.width,\n height: control.height,\n widthPx: (control.width * cellHeight).toString() + 'px',\n heightPx: (control.height * cellHeight).toString() + 'px',\n coordX: control.x,\n coordY: control.y,\n settings: control.settings,\n fileName: name,\n });\n }\n });\n }\n\n return controls;\n }\n\n getHeight(data, cellHeight) {\n let value = 0;\n if (data.length > 0) {\n const lastCtrl = data[data.length - 1];\n // tslint:disable-next-line:radix\n value = (parseInt(lastCtrl.y) + parseInt(lastCtrl.height)) * cellHeight;\n }\n return value;\n }\n\n onSubmit(redirect: boolean = true) {\n if (this.consentForm.isCompleted) {\n this.navigateToNextForm(redirect);\n return;\n }\n this.saving = true;\n\n const data = {\n isCompleted: this.form.valid,\n };\n\n this.onboardingService.saveConsentForm(this.uid, data).subscribe((res) => {\n this.saving = false;\n this.navigateToNextForm(redirect);\n });\n }\n\n navigateToNextForm(redirect: boolean): void {\n this.onboardingService.consentForms.filter((mf) => mf.uid === this.uid)[0].isCompleted = true;\n let nextForm = false;\n\n // get next incomplete form\n let form = this.onboardingService.consentForms.filter((mf) => !mf.isCompleted)[0];\n\n // get next completed form (authenticated flow)\n if (!form && this.loggedIn) {\n const index = this.onboardingService.consentForms.findIndex((f) => f.uid === this.uid);\n if (index < this.onboardingService.consentForms.length - 1) {\n form = this.onboardingService.consentForms[index + 1];\n }\n }\n\n // allow redirect to next form if it's not the last one\n if (form && this.uid !== this.onboardingService.consentForms[this.onboardingService.consentForms.length - 1].uid) {\n nextForm = true;\n }\n\n this.onboardingService.setFormSkip(true);\n // actual redirect\n\n if (nextForm) {\n if (redirect) {\n this.navigateService.navigate(['onboarding', 'consent-forms', form.uid], null, true);\n }\n return;\n }\n\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.ConsentForms);\n // all medical forms are completed, move to next forms\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (redirect) {\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding', 'success']);\n }\n }\n }\n}\n","
\n
\n \n
\n\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { OnboardingFormsEnum } from '../../models';\n\n@Component({\n selector: 'pp-consent-list-page',\n templateUrl: 'consent-forms-list-page.component.html'\n})\n\nexport class ConsentFormsListPageComponent implements OnInit {\n\n public get formTypes() {\n return OnboardingFormsEnum;\n }\n ngOnInit() {\n\n }\n\n}\n","
\n\n

{{'consent-forms'\n | translate}}

\n \n \n\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Common } from '../../../shared/models/Common';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-emergency-contact-info-page',\n templateUrl: 'emergency-contact-info-page.component.html',\n})\nexport class EmergencyContactInfoPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loaderRows = [0, 1, 2, 3, 4];\n\n fields: FormField[] = [];\n form: FormGroup;\n relationships: any;\n\n loggedIn = false;\n showLoader = true;\n saving = false;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n super();\n }\n\n ngOnInit() {\n this.relationships = Common.Relationships;\n this.form = this.fb.group({});\n this.fields = this.initFields({});\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.onboardingService\n .getEmergencyInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n this.fields = this.initFields(res);\n this.showLoader = false;\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onboardingService.setFormSkip(this.form.pristine);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n private initFields(data) {\n const fields: FormField[] = [\n {\n key: 'contactName',\n label: 'contact-name',\n planceholder: 'name',\n type: FormFieldsEnum.TextBox,\n value: data.name || '',\n },\n {\n key: 'email',\n label: 'email',\n planceholder: 'email-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.email || '',\n validators: [CustomValidators.email],\n },\n {\n key: 'contactPhone',\n label: 'contact-phone-number',\n planceholder: 'phone-eg',\n type: FormFieldsEnum.TextBox,\n value: data.phoneNumber1 || '',\n validators: [CustomValidators.phone, Validators.maxLength(20)],\n },\n {\n key: 'alternatePhone',\n label: 'alternate-phone',\n planceholder: 'phone-eg',\n type: FormFieldsEnum.TextBox,\n value: data.phoneNumber2 || '',\n validators: [CustomValidators.phone, Validators.maxLength(20)],\n },\n {\n key: 'relationship',\n label: 'relationship',\n planceholder: 'select',\n type: FormFieldsEnum.DropdownSingleSelect,\n itemsList: this.relationships,\n value: data.relationship || undefined,\n },\n ];\n return fields;\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n const data = {\n relationship: this.form.value.relationship,\n name: this.form.value.contactName,\n phoneNumber1: this.form.value.contactPhone,\n phoneNumber2: this.form.value.alternatePhone,\n email: this.form.value.email,\n };\n this.onboardingService.saveEmergencyInfo(data).subscribe((res) => {\n this.saving = false;\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.EmergencyContact);\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding/success'], null, true);\n }\n }\n });\n }\n}\n","
\n

\n {{'emergency-information'\n | translate}}

\n\n
\n\n
\n \n \n
\n\n
\n\n
\n
\n \n
\n
\n\n
\n\n\n
\n

\n {{'emergency-information'\n |\n translate}}

\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, HostListener, OnDestroy, Input, ChangeDetectorRef, AfterViewChecked } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { ActivatedRoute } from '@angular/router';\nimport { flatMap, takeUntil, tap } from 'rxjs/operators';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { OnboardingFormsEnum } from '../../models';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-generic-form-page',\n templateUrl: 'generic-form-page.component.html',\n})\nexport class GenericFormPageComponent extends BaseComponent implements OnInit, OnDestroy, AfterViewChecked {\n @Input() formType: OnboardingFormsEnum;\n saving = false;\n loggedIn = false;\n form: FormGroup;\n formToComplete: any;\n uid: any;\n gridStackCssClass = '';\n classElement: HTMLElement = document.getElementById('onboardingForms');\n classElementHtml = '';\n mediaXL = `@media (min-width: 991px) { `;\n\n @HostListener('window:resize', ['$event'])\n onResize(event): void {\n if (event.target.innerWidth < 991) {\n this.gridStackCssClass = 'grid-stack grid-stack-one-column-mode';\n } else {\n this.gridStackCssClass = 'grid-stack';\n if (this.formToComplete) {\n this.gridStackCssClass += ' grid-stack-' + this.formToComplete.totalColumns;\n }\n }\n }\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService,\n private changeDetector: ChangeDetectorRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.route.params.pipe(takeUntil(this.destroy$)).subscribe((params) => {\n this.uid = params['uid'];\n\n const form = this.onboardingService.getForm(this.uid);\n\n this.parseData(form);\n\n this.form = this.fb.group({});\n if (window.innerWidth < 991) {\n this.gridStackCssClass = 'grid-stack grid-stack-one-column-mode';\n } else {\n this.gridStackCssClass = 'grid-stack';\n if (this.formToComplete) {\n this.gridStackCssClass += ' grid-stack-' + this.formToComplete.totalColumns;\n }\n }\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n const isFormChangedAndFormNotCompleted = this.form.pristine;\n this.onboardingService.setFormSkip(isFormChangedAndFormNotCompleted);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngAfterViewChecked(): void {\n this.changeDetector.detectChanges();\n }\n\n isEditableForm(): boolean {\n return (\n this.formType == OnboardingFormsEnum.Demographic ||\n this.formType == OnboardingFormsEnum.Additional ||\n this.formType == OnboardingFormsEnum.Contact ||\n this.formType == OnboardingFormsEnum.EmergencyContact ||\n this.formType == OnboardingFormsEnum.PrimaryPhysician ||\n this.formType == OnboardingFormsEnum.Medical ||\n this.formType == OnboardingFormsEnum.Insurance ||\n this.formType == OnboardingFormsEnum.MedicalForms ||\n this.formType == OnboardingFormsEnum.ScreeningForms ||\n this.formType == OnboardingFormsEnum.SignForms\n );\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n private parseData(form): void {\n if (form) {\n if (form.type === Common.FormType.MedicalForm || form.type === Common.FormType.ScreeningForm) {\n this.formToComplete = {\n uid: form.uid,\n name: form.name,\n type: form.type,\n width: form.width,\n height: form.sections ? this.getHeight(form.sections[0].controls, form.cellUnitHeight).toString() + 'px' : '0px',\n cellUnitHeight: form.cellUnitHeight,\n totalColumns: form.sections ? form.sections[0].columns : 1,\n controls: form.sections ? this.getControls(form.sections[0].controls, form.cellUnitHeight) : [],\n isCompleted: form.isCompleted,\n isSigned: form.isSigned,\n };\n }\n\n this.gridStackCssClass += ' grid-stack-' + this.formToComplete.totalColumns;\n }\n }\n\n private getControls(data, cellHeight) {\n const controls = [];\n\n if (data.length > 0) {\n let topXL = 0;\n const level = 0;\n let type: FormFieldsEnum;\n\n data.forEach((control) => {\n // get control type\n switch (control.type) {\n case Common.FormControlType.Heading:\n type = FormFieldsEnum.Heading;\n break;\n case Common.FormControlType.FreeText:\n type = FormFieldsEnum.FreeText;\n break;\n case Common.FormControlType.TextInput:\n type = FormFieldsEnum.TextInput;\n break;\n case Common.FormControlType.CustomCheckbox:\n type = FormFieldsEnum.CustomCheckbox;\n break;\n case Common.FormControlType.DateInput:\n type = FormFieldsEnum.DateInput;\n break;\n case Common.FormControlType.CheckboxList:\n type = FormFieldsEnum.CheckboxList;\n break;\n case Common.FormControlType.Slider:\n type = FormFieldsEnum.Slider;\n break;\n case Common.FormControlType.Signature:\n type = FormFieldsEnum.Signature;\n break;\n default:\n break;\n }\n\n // create the style with the heights for the current control\n topXL = control.y * cellHeight;\n this.mediaXL += ' #' + control.id + ' { top:' + topXL + 'px; } ';\n\n controls.push({\n key: control.id,\n type: type,\n id: control.id,\n value: control.value,\n width: control.width,\n height: control.height,\n widthPx: (control.width * cellHeight).toString() + 'px',\n heightPx: (control.height * cellHeight).toString() + 'px',\n coordX: control.x,\n coordY: control.y,\n settings: control.settings,\n });\n });\n\n this.mediaXL += ' } ';\n\n // add the style to the css stylesheet\n this.classElementHtml += this.mediaXL;\n this.classElement.innerHTML = this.classElementHtml;\n }\n\n return controls;\n }\n\n getHeight(data, cellHeight) {\n let value = 0;\n if (data.length > 0) {\n const lastCtrl = data[data.length - 1];\n // tslint:disable-next-line:radix\n value = (parseInt(lastCtrl.y) + parseInt(lastCtrl.height)) * cellHeight;\n }\n return value;\n }\n\n private parseFormValues(data) {\n const values = [];\n\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n const value = data[key];\n const control = this.formToComplete.controls.find((c) => c.id === key);\n let type = '';\n\n switch (control.type) {\n case FormFieldsEnum.TextInput:\n type = Common.FormControlType.TextInput;\n break;\n case FormFieldsEnum.CustomCheckbox:\n type = Common.FormControlType.CustomCheckbox;\n break;\n case FormFieldsEnum.DateInput:\n type = Common.FormControlType.DateInput;\n break;\n case FormFieldsEnum.CheckboxList:\n type = Common.FormControlType.CheckboxList;\n break;\n case FormFieldsEnum.Slider:\n type = Common.FormControlType.Slider;\n break;\n case FormFieldsEnum.Signature:\n type = Common.FormControlType.Signature;\n break;\n default:\n break;\n }\n\n let objValue = value;\n if (value && value.hasOwnProperty('value')) {\n objValue = value.value;\n }\n\n if (control && type) {\n values.push({\n Id: key,\n Type: type,\n ValueWrapper: {\n Value: objValue,\n },\n });\n }\n }\n }\n\n return values;\n }\n\n private updateForm(uid, controlsValues): void {\n let form: any;\n if (this.formType === OnboardingFormsEnum.MedicalForms) {\n form = this.onboardingService.medicalForms.filter((mf) => mf.uid === this.uid)[0];\n } else {\n form = this.onboardingService.screeningForms.filter((mf) => mf.uid === this.uid)[0];\n }\n if (form && form.sections) {\n form.sections[0].controls.forEach((control) => {\n const controlValue = controlsValues.find((x) => x.Id === control.id);\n if (controlValue) {\n control.value = controlValue.ValueWrapper.Value;\n }\n });\n }\n }\n\n onSubmit(redirect: boolean = true): void {\n this.saving = true;\n if (this.uid && this.form.value) {\n const controlsValues = this.parseFormValues(this.form.value);\n if (this.form.valid) {\n this.onboardingService.saveMedicalForm(this.uid, { ControlsValues: controlsValues }).subscribe(\n () => {\n this.saving = false;\n if (this.formType === OnboardingFormsEnum.MedicalForms) {\n this.onboardingService.medicalForms.filter((mf) => mf.uid === this.uid)[0].isCompleted = true;\n } else {\n this.onboardingService.screeningForms.filter((mf) => mf.uid === this.uid)[0].isCompleted = true;\n }\n\n this.updateForm(this.uid, controlsValues);\n\n let nextForm = false;\n\n // get next incomplete form\n let form;\n if (this.formType === OnboardingFormsEnum.MedicalForms) {\n form = this.onboardingService.medicalForms.filter((mf) => !mf.isCompleted && !mf.isLegacy)[0];\n } else {\n form = this.onboardingService.screeningForms.filter((mf) => !mf.isCompleted && !mf.isLegacy)[0];\n }\n // get next completed form (authenticated flow)\n if (!form && this.loggedIn) {\n const forms =\n this.formType === OnboardingFormsEnum.MedicalForms\n ? this.onboardingService.medicalForms.filter((mf) => !mf.isLegacy)\n : this.onboardingService.screeningForms.filter((mf) => !mf.isLegacy);\n const index = forms.findIndex((f) => f.uid === this.uid);\n if (index < forms.length - 1) {\n form = forms[index + 1];\n }\n }\n\n // allow redirect to next form if it's not the last one\n if (\n form &&\n this.uid !==\n (this.formType === OnboardingFormsEnum.MedicalForms\n ? this.onboardingService.medicalForms[this.onboardingService.medicalForms.length - 1].uid\n : this.onboardingService.screeningForms[this.onboardingService.screeningForms.length - 1].uid)\n ) {\n nextForm = true;\n }\n\n // actual redirect\n\n this.onboardingService.setFormSkip(true);\n if (nextForm) {\n if (redirect) {\n this.navigateService.navigate(\n ['onboarding', this.formType === OnboardingFormsEnum.MedicalForms ? 'medical-forms' : 'screening-forms', form.uid],\n null,\n true\n );\n }\n return;\n }\n this.onboardingService.updateSummary(\n this.formType === OnboardingFormsEnum.MedicalForms\n ? Common.OnboardingSummaryForms.MedicalForms\n : Common.OnboardingSummaryForms.ScreeningForms\n );\n // all forms are completed, move to next form\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (redirect) {\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding', 'success']);\n }\n }\n },\n () => {\n this.saving = false;\n }\n );\n }\n }\n }\n}\n","
\n
\n
\n
{{ formToComplete.name }}
\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { OnboardingService } from '../../services';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { OnboardingFormsEnum } from '../../models';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-generic-forms-list-page',\n styleUrls: ['generic-forms-list-page.component.scss'],\n templateUrl: 'generic-forms-list-page.component.html',\n})\nexport class GenericFormsListPageComponent extends BaseComponent implements OnInit, OnDestroy {\n @Input() formType: OnboardingFormsEnum;\n forms;\n navigationUrl: string;\n loggedIn = false;\n summaryFormsId: string;\n\n constructor(\n private onboardingService: OnboardingService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n super();\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n }\n\n ngOnInit() {\n switch (this.formType) {\n case OnboardingFormsEnum.MedicalForms: {\n this.forms = this.onboardingService.medicalForms;\n if (this.forms.length === 1) {\n this.navigateService.navigate(['onboarding', 'medical-forms', this.forms[0].uid], null, true);\n }\n this.navigationUrl = 'medical-forms';\n this.summaryFormsId = Common.OnboardingSummaryForms.MedicalForms.id;\n break;\n }\n case OnboardingFormsEnum.ConsentForms: {\n this.forms = this.onboardingService.consentForms;\n if (this.forms.length === 1) {\n this.navigateService.navigate(['onboarding', 'consent-forms', this.forms[0].uid], null, true);\n }\n this.navigationUrl = 'consent-forms';\n this.summaryFormsId = Common.OnboardingSummaryForms.ConsentForms.id;\n break;\n }\n default: {\n this.forms = this.onboardingService.screeningForms;\n if (this.forms.length === 1) {\n this.navigateService.navigate(['onboarding', 'screening-forms', this.forms[0].uid], null, true);\n }\n this.navigationUrl = 'screening-forms';\n this.summaryFormsId = Common.OnboardingSummaryForms.ScreeningForms.id;\n break;\n }\n }\n this.onboardingService.setFormSkip(true);\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n navigateToForm(uid: string): void {\n if (this.navigationUrl && uid) {\n this.navigateService.navigate(['onboarding', this.navigationUrl, uid], null, true);\n }\n }\n\n onSubmit() {\n let unncompletedForms = this.forms.filter((mf) => !mf.isCompleted);\n if (unncompletedForms.length > 0 && unncompletedForms[0] && unncompletedForms[0].uid) {\n this.navigateService.navigate(['onboarding', this.navigationUrl, unncompletedForms[0].uid], null, true);\n return;\n }\n\n let form = this.forms.filter((mf) => (!mf.isCompleted || (mf.isCompleted && this.loggedIn)) && !mf.isLegacy)[0];\n if (!form) {\n form = this.forms.filter((mf) => mf.isCompleted && this.loggedIn && !mf.isLegacy)[0];\n }\n if (form && form.uid) {\n this.navigateService.navigate(['onboarding', this.navigationUrl, form.uid], null, true);\n } else {\n this.onboardingService.summaryForms.filter((sm) => sm.id === this.summaryFormsId)[0].completed = true;\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding', 'success']);\n }\n }\n }\n}\n","
\n
\n
\n
\n assignment\n
\n
\n
\n {{ form.name }}\n
\n
\n
\n check_circle\n
\n
\n info\n
\n
\n \n
\n
\n \n
\n
\n
\n","import { OnboardingContainerPageComponent } from './onboarding-container-page/onboarding-container-page.component';\nimport { OnboardingSummaryBoxComponent } from './onboarding-summary-box/onboarding-summary-box.component';\nimport { OnboardingSummaryDialogComponent } from './onboarding-summary-box/onboarding-summary-dialog.component';\nimport { MedicalFormsListPageComponent } from './medical-forms-list-page/medical-forms-list-page.component';\nimport { MedicalFormPageComponent } from './medical-form-page/medical-form-page.component';\nimport { ScreeningFormsListPageComponent } from './screening-forms-list-page/screening-forms-list-page.component';\nimport { ScreeningFormPageComponent } from './screening-form-page/screening-form-page.component';\nimport { ConsentFormsListPageComponent } from './consent-forms-list-page/consent-forms-list-page.component';\nimport { ConsentFormPageComponent } from './consent-form-page/consent-form-page.component';\nimport { InsurancePageComponent } from './insurance-page/insurance-page.component';\nimport { MedicalInfoPageComponent } from './medical-info-page/medical-info-page.component';\nimport { PrimaryPhysicianInfoPageComponent } from './primary-physician-info-page/primary-physician-info-page.component';\nimport { EmergencyContactInfoPageComponent } from './emergency-contact-info-page/emergency-contact-info-page.component';\nimport { AddressContactInfoPageComponent } from './address-contact-info-page/address-contact-info-page.component';\nimport { AdditionalInfoPageComponent } from './additional-info-page/additional-info-page.component';\nimport { PatientInfoPageComponent } from './patient-info-page/patient-info-page.component';\nimport { SignaturePageComponent } from './signature-page/signature-page.component';\nimport { SuccessPageComponent } from './success-page/success-page.component';\nimport { InsuranceFormComponent } from './insurance-page/insurance-form.component';\nimport {GenericFormsListPageComponent} from './generic-forms-list-page/generic-forms-list-page.component';\nimport {GenericFormPageComponent} from './generic-form-page/generic-form-page.component';\n\nexport const ONBOARDING_COMPONENTS: any[] = [\n OnboardingContainerPageComponent\n , OnboardingSummaryBoxComponent\n , OnboardingSummaryDialogComponent\n , MedicalFormsListPageComponent\n , MedicalFormPageComponent\n , ScreeningFormsListPageComponent\n , ScreeningFormPageComponent\n , ConsentFormsListPageComponent\n , ConsentFormPageComponent\n , GenericFormsListPageComponent\n , GenericFormPageComponent\n , InsurancePageComponent\n , MedicalInfoPageComponent\n , PrimaryPhysicianInfoPageComponent\n , EmergencyContactInfoPageComponent\n , AddressContactInfoPageComponent\n , AdditionalInfoPageComponent\n , PatientInfoPageComponent\n , SignaturePageComponent\n , SuccessPageComponent\n , InsuranceFormComponent\n];\n\nexport * from './onboarding-container-page/onboarding-container-page.component';\nexport * from './onboarding-summary-box/onboarding-summary-box.component';\nexport * from './onboarding-summary-box/onboarding-summary-dialog.component';\nexport * from './medical-forms-list-page/medical-forms-list-page.component';\nexport * from './medical-form-page/medical-form-page.component';\nexport * from './screening-forms-list-page/screening-forms-list-page.component';\nexport * from './screening-form-page/screening-form-page.component';\nexport * from './consent-forms-list-page/consent-forms-list-page.component';\nexport * from './consent-form-page/consent-form-page.component';\nexport * from './generic-forms-list-page/generic-forms-list-page.component';\nexport * from './generic-form-page/generic-form-page.component';\nexport * from './insurance-page/insurance-page.component';\nexport * from './medical-info-page/medical-info-page.component';\nexport * from './primary-physician-info-page/primary-physician-info-page.component';\nexport * from './emergency-contact-info-page/emergency-contact-info-page.component';\nexport * from './address-contact-info-page/address-contact-info-page.component';\nexport * from './additional-info-page/additional-info-page.component';\nexport * from './patient-info-page/patient-info-page.component';\nexport * from './signature-page/signature-page.component';\nexport * from './success-page/success-page.component';\n\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Common } from '../../../shared/models/Common';\nimport { Observable } from 'rxjs';\nimport { startWith, map, takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { parseISO } from 'date-fns';\n\n@Component({\n selector: 'pp-insurance-form',\n templateUrl: 'insurance-form.component.html',\n})\nexport class InsuranceFormComponent extends BaseComponent implements OnInit, OnDestroy {\n @Input() insuranceCompanies = [];\n @Input() states = [];\n @Input() filledData;\n @Input() form: FormGroup;\n @Input() fields: FormField[];\n @Input() showInsuranceAutocomplete = true;\n\n relationships: { value: number; label: string }[];\n coveredByOtherFG: FormGroup;\n coveredByOtherFields: FormField[];\n filteredCompanies: Observable;\n\n constructor(private fb: FormBuilder) {\n super();\n }\n\n ngOnInit() {\n this.filledData = this.filledData || {};\n this.relationships = Common.InsuranceRelationships;\n\n this.coveredByOtherFG = this.fb.group({});\n this.coveredByOtherFields = this.getCoveredByOtherFields(this.filledData);\n\n this.form.addControl('id', new FormControl(this.filledData.id));\n this.form.addControl('insuranceIsCoveredByOther', new FormControl(!!this.filledData.insuranceIsCoveredByOther));\n\n if (this.filledData.insuranceIsCoveredByOther) {\n this.form.addControl('insuredInfo', this.coveredByOtherFG);\n }\n\n this.form\n .get('insuranceIsCoveredByOther')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((res) => {\n if (res) {\n this.form.addControl('insuredInfo', this.coveredByOtherFG);\n } else {\n this.form.removeControl('insuredInfo');\n }\n });\n\n if (this.showInsuranceAutocomplete) {\n this.form.addControl('companyId', new FormControl(this.filledData.companyId));\n this.form.addControl('companyName', new FormControl(this.filledData.companyName, [Validators.required]));\n this.filteredCompanies = this.form.get('companyName').valueChanges.pipe(\n startWith(''),\n map((name) => (name ? this._filterCompanies(name) : this.insuranceCompanies.slice()))\n );\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n setCompanyId(name) {\n const company = this.insuranceCompanies.find((el) => el.name === name);\n this.form.get('companyId').setValue(company.id);\n }\n private _filterCompanies(val: string): any[] {\n if (!val) {\n return;\n }\n return this.insuranceCompanies.filter((option) => option.name.toLowerCase().indexOf(val.toLowerCase()) === 0);\n }\n\n private getCoveredByOtherFields(info) {\n const data = info.insuredInfo ? info.insuredInfo : {};\n\n const fields: FormField[] = [\n {\n key: 'patientRelationtionshipToInsuredType',\n label: 'patientRelationtionshipToInsuredType',\n planceholder: 'select',\n type: FormFieldsEnum.DropdownSingleSelect,\n itemsList: this.relationships,\n value: data.patientRelationtionshipToInsuredType || undefined,\n },\n {\n key: 'firstName',\n label: 'insuredInfoFirstName',\n planceholder: 'insuredInfoFirstName-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.firstName || '',\n validators: [Validators.required],\n },\n {\n key: 'middleName',\n label: 'insuredInfoMiddleName',\n planceholder: 'insuredInfoMiddleName-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.middleName || '',\n },\n {\n key: 'lastName',\n label: 'insuredInfoLastName',\n planceholder: 'insuredInfoLastName-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.lastName || '',\n validators: [Validators.required],\n },\n {\n key: 'dateOfBirth',\n label: 'insuredInfoDateOfBirth',\n type: FormFieldsEnum.DatePicker,\n value: data.dateOfBirth ? parseISO(data.dateOfBirth) : null,\n },\n ];\n return fields;\n }\n}\n","
\n
\n
\n \n \n
\n

\n {{ 'form-input-error-required' | translate }}\n

\n
\n\n \n \n {{ option.name }}\n \n \n
\n\n \n\n
\n \n
\n\n
\n
\n \n {{ 'yes-existing-patient' | translate }} \n {{ 'no-firsttime-patient' | translate }} \n \n
\n
\n
\n\n
\n \n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { environment } from '../../../../environments/environment';\nimport { Common } from '../../../shared/models/Common';\nimport { StartupService, NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { parseISO } from 'date-fns';\nimport { isEmpty as _isEmpty, keys as _keys } from 'lodash-es';\n\n@Component({\n selector: 'pp-insurance-page',\n templateUrl: 'insurance-page.component.html',\n})\nexport class InsurancePageComponent extends BaseComponent implements OnInit, OnDestroy {\n insuranceCompanies = [];\n loaderRows = [0, 1, 2, 3, 4];\n formData: FormData = new FormData();\n form: FormGroup;\n loggedIn = false;\n showLoader = true;\n saving = false;\n acceptsMajorInsurance: any;\n acceptsAutoAccident: any;\n acceptsWorkerCompensation: any;\n secondaryFG: FormGroup;\n primaryFG: FormGroup;\n insuranceFilledInfo: any;\n primaryInsuranceFields: FormField[];\n secondaryInsuranceFields: FormField[];\n autoFG: FormGroup;\n workFG: FormGroup;\n autoInsuranceFields: FormField[];\n workInsuranceFields: FormField[];\n\n private relationships: any;\n public states: any;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private route: ActivatedRoute,\n private startupService: StartupService,\n private navigateService: NavigateWrapperService,\n public authHelperService: AuthHelperService\n ) {\n super();\n this.states = this.route.snapshot.data.states;\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n }\n\n ngOnInit() {\n this.acceptsMajorInsurance = this.startupService.startupData.acceptsMajorInsurance;\n this.acceptsAutoAccident = this.startupService.startupData.acceptsAutoAccident;\n this.acceptsWorkerCompensation = this.startupService.startupData.acceptsWorkerCompensation;\n this.insuranceCompanies = this.startupService.startupData.insuranceCompanies;\n this.relationships = Common.InsuranceRelationships;\n\n this.primaryFG = this.fb.group({});\n this.secondaryFG = this.fb.group({});\n this.autoFG = this.fb.group({});\n this.workFG = this.fb.group({});\n\n this.form = this.fb.group({\n hasPrimaryInsurance: new FormControl(false),\n hasSecondaryInsurance: new FormControl(false),\n hasAutoInsurance: new FormControl(false),\n hasWorkInsurance: new FormControl(false),\n });\n\n this.form\n .get('hasPrimaryInsurance')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((newVal) => {\n if (newVal) {\n this.form.addControl('primary', this.primaryFG);\n } else {\n // save the data if the user toggle of the slider\n this.insuranceFilledInfo.primary = this.primaryFG.value;\n this.form.removeControl('primary');\n }\n });\n\n this.form\n .get('hasSecondaryInsurance')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((newVal) => {\n if (newVal) {\n this.form.addControl('secondary', this.secondaryFG);\n } else {\n // save the data if the user toggle of the slider\n this.insuranceFilledInfo.secondary = this.secondaryFG.value;\n this.form.removeControl('secondary');\n }\n });\n\n this.form\n .get('hasAutoInsurance')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((newVal) => {\n if (newVal) {\n this.form.addControl('autoAccident', this.autoFG);\n } else {\n // save the data if the user toggle of the slider\n this.insuranceFilledInfo.autoAccident = this.autoFG.value;\n this.form.removeControl('autoAccident');\n }\n });\n\n this.form\n .get('hasWorkInsurance')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((newVal) => {\n if (newVal) {\n this.form.addControl('workerCompensation', this.workFG);\n } else {\n // save the data if the user toggle of the slider\n this.insuranceFilledInfo.workerCompensation = this.workFG.value;\n this.form.removeControl('workerCompensation');\n }\n });\n\n this.onboardingService\n .getInsuranceInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n if (res.primary) {\n this.primaryFG.setControl('cardFrontImagePath', new FormControl(res.primary.cardFrontImagePath));\n this.primaryFG.setControl('cardBackImagePath', new FormControl(res.primary.cardBackImagePath));\n }\n if (res.secondary) {\n this.secondaryFG.setControl('cardFrontImagePath', new FormControl(res.secondary.cardFrontImagePath));\n this.secondaryFG.setControl('cardBackImagePath', new FormControl(res.secondary.cardBackImagePath));\n }\n this.insuranceFilledInfo = res || {};\n\n this.primaryInsuranceFields = this.initMajorInsurance(res.primary);\n this.secondaryInsuranceFields = this.initMajorInsurance(res.secondary);\n this.autoInsuranceFields = this.initAutoInsurance(res.autoAccident);\n this.workInsuranceFields = this.initWorkInsurance(res.workerCompensation);\n\n if (res.primary) {\n this.primaryFG.setControl('cardFrontImagePath', new FormControl(res.primary.cardFrontImagePath));\n this.primaryFG.setControl('cardBackImagePath', new FormControl(res.primary.cardBackImagePath));\n }\n if (res.secondary) {\n this.secondaryFG.setControl('cardFrontImagePath', new FormControl(res.secondary.cardFrontImagePath));\n this.secondaryFG.setControl('cardBackImagePath', new FormControl(res.secondary.cardBackImagePath));\n }\n\n this.form.get('hasPrimaryInsurance').setValue(!!res.primary);\n this.form.get('hasSecondaryInsurance').setValue(!!res.secondary);\n this.form.get('hasAutoInsurance').setValue(!!res.autoAccident);\n this.form.get('hasWorkInsurance').setValue(!!res.workerCompensation);\n\n if (!_isEmpty(_keys(res.primary))) this.setSwitchDisable('hasPrimaryInsurance');\n if (!_isEmpty(_keys(res.secondary))) this.setSwitchDisable('hasSecondaryInsurance');\n if (!_isEmpty(_keys(res.autoAccident))) this.setSwitchDisable('hasAutoInsurance');\n if (!_isEmpty(_keys(res.workerCompensation))) this.setSwitchDisable('hasWorkInsurance');\n\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n\n /*if (this.onboardingService.summaryForms.find((form) => form.id === Common.OnboardingSummaryForms.Insurance.id)) {\n this.formComplete = this.onboardingService.summaryForms.find(\n (form) => form.id === Common.OnboardingSummaryForms.Insurance.id\n ).completed;\n }*/\n\n this.showLoader = false;\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n /*if (this.formComplete) {\n this.onboardingService.setFormSkip(true);\n } else {\n this.onboardingService.setFormSkip(this.form.pristine);\n }*/\n this.onboardingService.setFormSkip(this.form.pristine);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n getCardImageUrl(path: string) {\n if (path) {\n path = path.toLowerCase();\n const pos = path.indexOf('media');\n const relativePath = path.substring(pos, path.length);\n const url = new URL(`${environment.resourceUrl}/${relativePath}?nekot_ssecca=${this.authHelperService.token.access_token}`);\n return url.href;\n }\n return undefined;\n }\n\n cleanUp(form) {\n delete form.hasPrimaryInsurance;\n delete form.hasSecondaryInsurance;\n delete form.hasAutoInsurance;\n delete form.hasWorkInsurance;\n\n return form;\n }\n\n setSwitchDisable(selector) {\n let switchControl = this.form.controls[selector];\n if (switchControl && !switchControl.disabled) switchControl.disable();\n }\n\n private initMajorInsurance(data) {\n data = data || {};\n const fields: FormField[] = [\n {\n key: 'planType',\n label: 'planType',\n planceholder: 'planType-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.planType || '',\n },\n {\n key: 'cardID',\n label: 'insuranceCardID',\n planceholder: 'planType-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.cardID || '',\n validators: [Validators.required],\n },\n {\n key: 'groupNumber',\n label: 'groupNumber',\n planceholder: 'insuranceCardID-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.groupNumber || '',\n },\n {\n key: 'providerPhone',\n label: 'insuranceProviderPhone',\n planceholder: 'insuranceProviderPhone-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.providerPhone || '',\n validators: [CustomValidators.phone, Validators.maxLength(20)],\n },\n {\n key: 'claimAddress',\n label: 'claimAddress',\n planceholder: 'claimAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.claimAddress || '',\n },\n {\n key: 'city',\n label: 'city',\n planceholder: 'city',\n type: FormFieldsEnum.TextBox,\n value: data.city || '',\n },\n {\n key: 'zipCode',\n label: 'zipCode',\n planceholder: 'zipCode',\n type: FormFieldsEnum.TextBox,\n value: data.zipCode || '',\n },\n {\n key: 'state',\n label: 'state',\n planceholder: 'select',\n type: FormFieldsEnum.DropdownSingleSelect,\n itemsList: this.states,\n value: data.state,\n },\n ];\n return fields;\n }\n\n initAutoInsurance(data) {\n data = data || {};\n const fields: FormField[] = [\n {\n key: 'accidentDate',\n label: 'accidentDate',\n type: FormFieldsEnum.DatePicker,\n value: data.accidentDate ? parseISO(data.accidentDate) : null,\n },\n {\n key: 'caseClaimNo',\n label: 'caseClaimNo',\n planceholder: 'caseClaimNo-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.caseClaimNo || undefined,\n },\n {\n key: 'caseManagerName',\n label: 'caseManagerName',\n planceholder: 'caseManagerName-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.caseManagerName || '',\n },\n {\n key: 'caseManagerPhone',\n label: 'caseManagerPhone',\n planceholder: 'caseManagerPhone-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.caseManagerPhone || '',\n validators: [CustomValidators.phone, Validators.maxLength(20)],\n },\n {\n key: 'caseManagerAddress',\n label: 'caseManagerAddress',\n planceholder: 'caseManagerAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.caseManagerAddress || '',\n },\n ];\n return fields;\n }\n\n initWorkInsurance(data) {\n data = data || {};\n const fields: FormField[] = [\n {\n key: 'injuryDate',\n label: 'dateOfInjury',\n type: FormFieldsEnum.DatePicker,\n value: data.injuryDate ? parseISO(data.injuryDate) : null,\n },\n {\n key: 'caseNo',\n label: 'caseClaimNo',\n planceholder: 'caseClaimNo-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.caseNo || undefined,\n },\n {\n key: 'employerName',\n label: 'empName',\n planceholder: 'empName-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.employerName || '',\n },\n {\n key: 'employerAddress',\n label: 'empAddress',\n planceholder: 'empAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.employerAddress || '',\n },\n {\n key: 'companyName',\n label: 'insName',\n type: FormFieldsEnum.TextBox,\n value: data.companyName || '',\n },\n {\n key: 'companyPhone',\n label: 'insPhone',\n planceholder: 'insPhone-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.companyPhone || '',\n validators: [CustomValidators.phone, Validators.maxLength(20)],\n },\n {\n key: 'companyAddress',\n label: 'insAddress',\n planceholder: 'insAddress-placeholder',\n type: FormFieldsEnum.TextBox,\n value: data.companyAddress || '',\n },\n ];\n return fields;\n }\n\n makeFormReadOnly(formGroup): any {\n const controls = Object.keys(formGroup.controls);\n\n for (let i = 0; i < controls.length; i++) {\n const obj = formGroup.controls[controls[i]];\n if (obj.controls) {\n // put the function call in the event queue\n // instead of recursive call\n // to prevent stack overflow\n setTimeout(() => {\n this.makeFormReadOnly(obj);\n }, 0);\n } else {\n obj.disable();\n }\n }\n\n return;\n }\n\n setFiles(fileObj: any) {\n if (!fileObj) {\n return;\n }\n if (fileObj.file) {\n this.formData.set(fileObj.name, fileObj.file);\n } else {\n this.formData.delete(fileObj.name);\n }\n }\n\n onSubmit(redirect: boolean = true) {\n const insuranceInfo = this.cleanUp(this.form.value);\n\n this.formData.append('request', JSON.stringify(insuranceInfo));\n this.saving = true;\n this.onboardingService.saveInsuranceInfo(this.formData).subscribe((res) => {\n this.saving = false;\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.Insurance);\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding', 'success']);\n }\n }\n });\n }\n}\n","
\n

\n {{ 'insurance-information' | translate }}\n

\n\n
\n \n
\n
\n
\n
\n
{{ 'primary-insurance' | translate }}
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n\n \n \n \n\n \n
\n \n
\n \n \n
\n\n
\n \n \n
\n
\n\n \n
\n
\n
\n
\n
{{ 'secondaryInsurance' | translate }}
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n\n \n \n \n\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n
\n
\n
\n
{{ 'auto-accident-radiobox' | translate }}
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n\n \n \n \n\n \n
\n
\n
\n
\n
{{ 'work-insurance-radiobox' | translate }}
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n\n \n \n \n \n\n
\n
\n \n
\n
\n
\n\n\n
\n

\n {{ 'insurance-information' | translate }}\n

\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { OnboardingFormsEnum } from '../../models';\n\n@Component({\n selector: 'pp-medical-form-page',\n templateUrl: 'medical-form-page.component.html'\n})\n\nexport class MedicalFormPageComponent implements OnInit {\n public get formTypes() {\n return OnboardingFormsEnum;\n }\n ngOnInit() {}\n}\n","
\n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { OnboardingFormsEnum } from '../../models';\n\n@Component({\n selector: 'pp-medical-forms-list-page',\n templateUrl: 'medical-forms-list-page.component.html'\n})\n\nexport class MedicalFormsListPageComponent implements OnInit {\n\n public get formTypes() {\n return OnboardingFormsEnum;\n }\n\n ngOnInit() {\n\n }\n}\n","
\n\n

\n {{'medical-forms' | translate}}

\n\n \n \n\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup, FormArray, FormBuilder, FormControl } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { parseISO } from 'date-fns';\n\n@Component({\n selector: 'pp-medical-info-page',\n templateUrl: 'medical-info-page.component.html',\n})\nexport class MedicalInfoPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loaderRows = [0, 1, 2, 3, 4];\n\n form: FormGroup;\n loggedIn = false;\n showLoader = true;\n saving = false;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n super();\n }\n\n ngOnInit() {\n this.form = this.fb.group({\n showMedication: new FormControl(false),\n showVitamins: new FormControl(false),\n showAllergies: new FormControl(false),\n showMedicalDevices: new FormControl(false),\n medications: new FormArray([]),\n vitaminsSuplements: new FormArray([]),\n allergies: new FormArray([]),\n medicalDevices: new FormArray([]),\n });\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.onboardingService\n .getMedicalInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n if (res.medications && res.medications.length > 0) {\n res.medications.forEach((medication) => {\n this.addMedication(medication);\n this.form.controls['showMedication'].setValue(true);\n });\n } else {\n this.addMedication({});\n }\n\n if (res.vitaminsSuplements && res.vitaminsSuplements.length > 0) {\n res.vitaminsSuplements.forEach((vitamins) => {\n this.addVitamins(vitamins);\n this.form.controls['showVitamins'].setValue(true);\n });\n } else {\n this.addVitamins({});\n }\n\n if (res.allergies && res.allergies.length > 0) {\n res.allergies.forEach((allergy) => {\n this.addAllergies(allergy);\n this.form.controls['showAllergies'].setValue(true);\n });\n } else {\n this.addAllergies({});\n }\n\n if (res.medicalDevices && res.medicalDevices.length > 0) {\n res.medicalDevices.forEach((device) => {\n this.addMedicalDevices(device);\n this.form.controls['showMedicalDevices'].setValue(true);\n });\n } else {\n this.addMedicalDevices({});\n }\n\n if (\n !(\n this.form.controls['showMedication'].value ||\n this.form.controls['showVitamins'].value ||\n this.form.controls['showAllergies'].value ||\n this.form.controls['showMedicalDevices'].value\n )\n ) {\n this.form.controls['showMedication'].setValue(true);\n }\n\n this.showLoader = false;\n\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n const isFormChangedAndFormNotCompleted = this.form.pristine;\n this.onboardingService.setFormSkip(isFormChangedAndFormNotCompleted);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n addMedication(data) {\n const control = this.form.controls['medications'];\n control.push(\n new FormGroup({\n name: new FormControl(data.name || ''),\n dosage: new FormControl(data.dosage || ''),\n duration: new FormControl(data.duration || ''),\n startDate: new FormControl(data.startDate ? parseISO(data.startDate) : null),\n discontinuedDate: new FormControl(data.discontinuedDate ? parseISO(data.discontinuedDate) : null),\n })\n );\n }\n\n addVitamins(data) {\n const control = this.form.controls['vitaminsSuplements'];\n control.push(\n new FormGroup({\n name: new FormControl(data.name || ''),\n dosage: new FormControl(data.dosage || ''),\n duration: new FormControl(data.duration || ''),\n startDate: new FormControl(data.startDate ? parseISO(data.startDate) : null),\n discontinuedDate: new FormControl(data.discontinuedDate ? parseISO(data.discontinuedDate) : null),\n })\n );\n }\n\n addAllergies(data) {\n const control = this.form.controls['allergies'];\n control.push(\n new FormGroup({\n name: new FormControl(data.name || ''),\n reaction: new FormControl(data.reaction || ''),\n startDate: new FormControl(data.startDate ? parseISO(data.startDate) : null),\n discontinuedDate: new FormControl(data.discontinuedDate ? parseISO(data.discontinuedDate) : null),\n })\n );\n }\n\n addMedicalDevices(data) {\n const control = this.form.controls['medicalDevices'];\n control.push(\n new FormGroup({\n name: new FormControl(data.name || ''),\n startDate: new FormControl(data.startDate ? parseISO(data.startDate) : null),\n discontinuedDate: new FormControl(data.discontinuedDate ? parseISO(data.discontinuedDate) : null),\n })\n );\n }\n\n // remove item from the list\n removeItem(i: number, arrayControl) {\n const control = this.form.controls[arrayControl];\n control.removeAt(i);\n }\n\n getControls(frmGrp: FormGroup, key: string) {\n return (frmGrp.controls[key]).controls;\n }\n\n private cleanUpData(formValues) {\n const medicalInfo = formValues;\n\n delete medicalInfo.showMedication;\n delete medicalInfo.showVitamins;\n delete medicalInfo.showAllergies;\n delete medicalInfo.showMedicalDevices;\n\n medicalInfo.medications = medicalInfo.medications.filter((m) => m.name !== '');\n medicalInfo.vitaminsSuplements = medicalInfo.vitaminsSuplements.filter((m) => m.name !== '');\n medicalInfo.allergies = medicalInfo.allergies.filter((m) => m.name !== '');\n medicalInfo.medicalDevices = medicalInfo.medicalDevices.filter((m) => m.name !== '');\n\n medicalInfo.medications.forEach((medication) => {\n medication.startDate = medication.startDate\n ? `${medication.startDate.getFullYear()}-${medication.startDate.getMonth() + 1}-${medication.startDate.getDate()}`\n : null;\n // tslint:disable-next-line:max-line-length\n medication.discontinuedDate = medication.discontinuedDate\n ? `${medication.discontinuedDate.getFullYear()}-${\n medication.discontinuedDate.getMonth() + 1\n }-${medication.discontinuedDate.getDate()}`\n : null;\n });\n\n medicalInfo.vitaminsSuplements.forEach((vitamin) => {\n vitamin.startDate = vitamin.startDate\n ? `${vitamin.startDate.getFullYear()}-${vitamin.startDate.getMonth() + 1}-${vitamin.startDate.getDate()}`\n : null;\n // tslint:disable-next-line:max-line-length\n vitamin.discontinuedDate = vitamin.discontinuedDate\n ? `${vitamin.discontinuedDate.getFullYear()}-${vitamin.discontinuedDate.getMonth() + 1}-${vitamin.discontinuedDate.getDate()}`\n : null;\n });\n\n medicalInfo.allergies.forEach((allergy) => {\n allergy.startDate = allergy.startDate\n ? `${allergy.startDate.getFullYear()}-${allergy.startDate.getMonth() + 1}-${allergy.startDate.getDate()}`\n : null;\n // tslint:disable-next-line:max-line-length\n allergy.discontinuedDate = allergy.discontinuedDate\n ? `${allergy.discontinuedDate.getFullYear()}-${allergy.discontinuedDate.getMonth() + 1}-${allergy.discontinuedDate.getDate()}`\n : null;\n });\n\n medicalInfo.medicalDevices.forEach((device) => {\n device.startDate = device.startDate\n ? `${device.startDate.getFullYear()}-${device.startDate.getMonth() + 1}-${device.startDate.getDate()}`\n : null;\n // tslint:disable-next-line:max-line-length\n device.discontinuedDate = device.discontinuedDate\n ? `${device.discontinuedDate.getFullYear()}-${device.discontinuedDate.getMonth() + 1}-${device.discontinuedDate.getDate()}`\n : null;\n });\n\n return medicalInfo;\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n const medicalInfo = this.cleanUpData(this.form.value);\n\n this.onboardingService.saveMedicalInfo(medicalInfo).subscribe((res) => {\n this.saving = false;\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.Medical);\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding/success'], null, true);\n }\n }\n });\n }\n}\n","
\n

{{ 'medical-information' | translate }}

\n\n
\n \n
\n
\n
\n
\n {{ 'medications' | translate }}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n \n \n \n
\n\n
\n \n \n \n \n
\n
\n
\n \n
\n\n \n
\n
\n
\n
\n {{ 'Vitamins-Supplements' | translate }}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n\n
\n \n \n \n \n
\n\n
\n \n \n \n \n
\n
\n
\n \n
\n\n \n
\n
\n
\n
\n {{ 'Allergies' | translate }}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n \n
\n\n
\n \n \n \n \n
\n
\n
\n \n
\n\n \n
\n
\n
\n
\n {{ 'Medical-Devices' | translate }}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n \n \n
\n\n
\n \n \n \n \n
\n
\n
\n \n
\n\n
\n
\n \n
\n
\n
\n
\n\n
\n

\n {{ 'medical-information' | translate }}\n

\n
\n
\n
\n
\n
\n
\n
\n","import { Location } from '@angular/common';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { OnboardingService } from '../../services';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n selector: 'pp-onboarding-container-page',\n templateUrl: 'onboarding-container-page.component.html',\n})\nexport class OnboardingContainerPageComponent implements OnInit, OnDestroy {\n private subscriptions = [];\n progress: any;\n\n constructor(private location: Location, private route: ActivatedRoute, private onboardingService: OnboardingService) {}\n\n ngOnInit() {\n this.progress = this.route.snapshot.data.progress;\n\n this.subscriptions.push(\n this.location.subscribe((e) => {\n if (e && e.pop && e.url) {\n const nextRoute = e.url;\n if (nextRoute.endsWith('onboarding')) {\n window.history.go(-1);\n }\n }\n })\n );\n }\n\n fail() {\n this.onboardingService.error().subscribe((res) => {});\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((s) => s.unsubscribe());\n }\n}\n","
\n\n
\n
\n {{'forms' | translate}}\n
\n
\n\n
\n\n \n\n
\n\n
\n \n
\n
\n
\n\n\n
\n","import { Router, NavigationEnd, NavigationStart } from '@angular/router';\nimport { Component, Input, OnDestroy, OnChanges, SimpleChanges, OnInit } from '@angular/core';\nimport * as fromRoot from './../../../ngrx';\nimport { Store } from '@ngrx/store';\nimport { Common } from '../../../shared/models/Common';\nimport { OnboardingService } from '../../services';\nimport { StartupService, NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { MatDialog } from '@angular/material/dialog';\nimport { OnboardingSummaryDialogComponent } from './onboarding-summary-dialog.component';\nimport { takeUntil } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-onboarding-summary-box',\n templateUrl: 'onboarding-summary-box.component.html',\n})\nexport class OnboardingSummaryBoxComponent extends BaseComponent implements OnInit, OnDestroy, OnChanges {\n @Input() progress: any;\n currentRoute;\n onboardingForms = [];\n hideXS = false;\n loggedIn = false;\n formValid = true;\n navRoute;\n\n constructor(\n private store: Store,\n private router: Router,\n private onboardingService: OnboardingService,\n private startupService: StartupService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService,\n public dialog: MatDialog\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.router.events.pipe(takeUntil(this.destroy$)).subscribe((event: any) => {\n if (event instanceof NavigationStart) {\n if (!this.onboardingService.canSkipForm()) {\n this.openDialog();\n return;\n }\n }\n\n if (event instanceof NavigationEnd) {\n const urlParts = event.url.split('/');\n\n if (urlParts.length > 2) {\n this.currentRoute = `${urlParts[2] ? urlParts[2] : ''}/${urlParts[3] ? urlParts[3] : ''}`;\n\n if (this.currentRoute.indexOf('?') !== -1) {\n this.currentRoute = this.currentRoute.split('?')[0];\n }\n\n this.hideXS = this.currentRoute.indexOf('success') !== -1;\n }\n }\n });\n\n this.onboardingService.formValid.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => (this.formValid = res));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.progress || !changes.progress.currentValue) {\n return;\n }\n const progress = changes.progress.currentValue;\n\n if (!this.onboardingService.summaryForms) {\n // Get all sumary box forms\n for (const key in Common.OnboardingSummaryForms) {\n if (Common.OnboardingSummaryForms.hasOwnProperty(key)) {\n // No medical forms\n if (\n key === Common.OnboardingSummaryForms.MedicalForms.id &&\n (!this.onboardingService.medicalForms || this.onboardingService.medicalForms.length === 0)\n ) {\n continue;\n }\n\n // No consent forms\n if (\n (key === Common.OnboardingSummaryForms.ConsentForms.id || key === Common.OnboardingSummaryForms.SignForms.id) &&\n (!this.onboardingService.consentForms || this.onboardingService.consentForms.length === 0)\n ) {\n continue;\n }\n\n // No screening forms\n if (\n key === Common.OnboardingSummaryForms.ScreeningForms.id &&\n (!this.onboardingService.screeningForms || this.onboardingService.screeningForms.length === 0)\n ) {\n continue;\n }\n\n // No insurance forms\n if (key === Common.OnboardingSummaryForms.Insurance.id && this.startupService.startupData) {\n const acceptsInsurance =\n this.startupService.startupData.acceptsInsurance &&\n (this.startupService.startupData.acceptsMajorInsurance ||\n this.startupService.startupData.acceptsAutoAccident ||\n this.startupService.startupData.acceptsWorkerCompensation);\n\n if (!acceptsInsurance) {\n continue;\n }\n }\n\n const form = {\n id: Common.OnboardingSummaryForms[key].id,\n name: Common.OnboardingSummaryForms[key].name,\n route: Common.OnboardingSummaryForms[key].route,\n xsVisible: true,\n completed: undefined,\n };\n\n this.onboardingForms.push(form);\n }\n }\n\n // If any form was completed\n if (progress.completion > 0 && progress.completedSteps.length > 0) {\n this.onboardingForms.forEach((form) => {\n if (progress.completedSteps.filter((step) => step === form.id)[0]) {\n form.completed = true;\n } else {\n form.completed = false;\n }\n });\n } else {\n // All summary forms are uncompleted\n this.onboardingForms.forEach((form) => (form.completed = false));\n }\n\n // Copy to service (cache)\n this.onboardingService.summaryForms = this.onboardingForms;\n } else {\n // Summary forms already generated, copy to render\n this.onboardingForms = this.onboardingService.summaryForms;\n }\n\n const uncompleteForm = this.onboardingForms.find((form) => !form.completed);\n if (uncompleteForm) {\n this.navigateTo(uncompleteForm.route);\n }\n }\n\n openDialog(): void {\n const dialogRef = this.dialog.open(OnboardingSummaryDialogComponent, {\n width: '350px',\n data: { formValid: this.formValid },\n });\n\n dialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((result: boolean) => {\n this.onboardingService.setFormSkip(true);\n\n if (result) {\n if (this.formValid) {\n this.onboardingService.skipAndSave.next(true);\n this.navigateTo(this.navRoute);\n }\n } else {\n this.onboardingService.skipAndSave.next(false);\n if (this.formValid) {\n this.navigateTo(this.navRoute);\n }\n }\n\n this.onboardingService.setFormSkip(false);\n this.onboardingService.skipAndSave.next(false);\n });\n }\n\n navigateTo(route) {\n if (this.onboardingService.canSkipForm()) {\n const queryParams = this.onboardingService.getQueryParams();\n if (queryParams) {\n this.navigateService.navigate([route], queryParams);\n } else {\n this.navigateService.navigate([route]);\n }\n } else {\n this.navRoute = route;\n this.openDialog();\n }\n }\n\n getFormColor(form: any) {\n return form.completed\n ? this.currentRoute === form.route\n ? '#81c884'\n : '#42a5f5'\n : this.currentRoute === form.route\n ? '#81c884'\n : '#90a4ae';\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","\n

\n {{'online-forms' | translate}}

\n
\n\n
\n\n
\n\n
0 && onboardingForms[i-1].completed)\">\n \n \n {{ (form.completed === true) ? 'check_circle' :\n (form.completed\n === false) ? 'mode_edit' : ''}}\n
\n\n
0 && !onboardingForms[i-1].completed && !onboardingForms[i].completed)\">\n \n \n {{ (form.completed === true) ? 'check_circle' :\n (form.completed\n === false) ? 'mode_edit' : ''}}\n
\n\n
\n\n
\n\n
\n\n\n
\n
\n\n
\n\n
\n 0\" (click)=\"navigateTo(onboardingForms[i-1].route)\">\n chevron_left\n
\n\n
\n \n {{ form.name | translate }}\n \n\n
\n \n\n \n \n \n\n \n \n {{j+1}}\n \n\n \n
\n
\n\n
\n i + 1 && onboardingForms[i].completed\"\n (click)=\"navigateTo(onboardingForms[i+1].route)\">\n chevron_right\n \n
\n\n
\n\n
\n
\n","import { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'pp-onboarding-summary-dialog',\n templateUrl: 'onboarding-summary-dialog.component.html',\n})\nexport class OnboardingSummaryDialogComponent {\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) {\n dialogRef.disableClose = true;\n }\n}\n","
\n

{{'onboarding-skip-msg' |\n translate}}

\n

{{'onboarding-invalid-form-msg'\n |\n translate}}

\n
\n\n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n\n
\n","import { FormField } from './../../../shared/components/form-render/form-field.model';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { parseISO } from 'date-fns';\n\n@Component({\n selector: 'pp-patient-info-page',\n templateUrl: 'patient-info-page.component.html',\n})\nexport class PatientInfoPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loaderRows = [0, 1, 2, 3, 4];\n\n fields: FormField[] = [];\n form: FormGroup;\n loggedIn = false;\n showLoader = true;\n saving = false;\n\n constructor(\n private onboardingService: OnboardingService,\n private fb: FormBuilder,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n super();\n }\n\n ngOnInit() {\n this.form = this.fb.group([]);\n this.fields = this.initFields({});\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.onboardingService\n .getPatientInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n this.fields = this.initFields(res);\n this.showLoader = false;\n\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n });\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onboardingService.setFormSkip(this.form.pristine);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n initFields(data) {\n const fields: FormField[] = [\n {\n key: 'firstName',\n label: 'first-name',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.maxLength(300)],\n value: data.firstName,\n },\n {\n key: 'middleName',\n label: 'middle-name',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.maxLength(300)],\n value: data.middleName,\n },\n {\n key: 'lastName',\n label: 'last-name',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.maxLength(300)],\n value: data.lastName,\n },\n {\n key: 'birthDate',\n label: 'date-of-birth',\n type: FormFieldsEnum.DatePicker,\n validators: [Validators.required],\n value: data.birthDate ? parseISO(data.birthDate) : null,\n },\n\n {\n key: 'gender',\n label: 'gender',\n type: FormFieldsEnum.Gender,\n validators: [Validators.required],\n value: {\n gender: data.gender,\n otherGender: data.otherGender,\n },\n },\n {\n key: 'occupation',\n label: 'occupation',\n type: FormFieldsEnum.TextBox,\n value: data.occupation,\n },\n {\n key: 'employed',\n label: 'employment-status',\n type: FormFieldsEnum.DropdownSingleSelect,\n planceholder: 'select',\n itemsList: Common.EmploymentStatus,\n value: data.employed,\n },\n {\n key: 'maritalStatus',\n label: 'marital-status',\n type: FormFieldsEnum.DropdownSingleSelect,\n planceholder: 'select',\n itemsList: Common.MaritalStatus,\n value: data.maritalStatus,\n },\n ];\n return fields;\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n this.form.value.otherGender = this.form.value.gender.otherGender;\n this.form.value.gender = this.form.value.gender.gender;\n\n this.onboardingService.savePatientInfo(this.form.value).subscribe(() => {\n this.saving = false;\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.Personal);\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding/success'], null, true);\n }\n }\n });\n }\n}\n","
\n

\n {{'patient-information'\n | translate}}

\n\n
\n
\n \n \n
\n
\n\n
\n
\n \n
\n
\n\n
\n\n\n
\n

\n {{'patient-information'\n |\n translate}}

\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { OnboardingService } from '../../services';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { Common } from '../../../shared/models/Common';\nimport { NavigateWrapperService, AuthHelperService } from '../../../core/services';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\n\n@Component({\n selector: 'pp-primary-physician-info-page',\n templateUrl: 'primary-physician-info-page.component.html',\n})\nexport class PrimaryPhysicianInfoPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loaderRows = [0, 1, 2, 3, 4];\n\n fields: FormField[] = [];\n form: FormGroup;\n loggedIn = false;\n showLoader = true;\n saving = false;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService\n ) {\n super();\n }\n\n ngOnInit() {\n this.form = this.fb.group({});\n this.fields = this.initFields({});\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n\n this.onboardingService\n .getPrimaryPhisicianInfo()\n .pipe(takeUntil(this.destroy$))\n .subscribe((res: any) => {\n this.fields = this.initFields(res);\n this.showLoader = false;\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n });\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onboardingService.setFormSkip(this.form.pristine);\n this.onboardingService.formValid.next(this.form.valid);\n });\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n initFields(data) {\n const fields: FormField[] = [\n {\n key: 'name',\n label: 'psysician-name',\n type: FormFieldsEnum.TextBox,\n value: data.name || '',\n },\n {\n key: 'phone',\n label: 'phone-number',\n planceholder: 'phone-eg',\n type: FormFieldsEnum.TextBox,\n value: data.phone || '',\n validators: [CustomValidators.phone, Validators.maxLength(20)],\n },\n {\n key: 'specialty',\n label: 'specialty',\n type: FormFieldsEnum.TextBox,\n value: data.specialty || '',\n },\n {\n key: 'currentTreatmentPlan',\n label: 'current-treatment-plan',\n type: FormFieldsEnum.TextBox,\n value: data.currentTreatmentPlan || '',\n },\n ];\n return fields;\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n this.onboardingService.savePrimaryPhisicianInfo(this.form.value).subscribe((res) => {\n this.saving = false;\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.PrimaryPhysician);\n this.onboardingService.setFormSkip(true);\n if (redirect) {\n const uncompleted = this.onboardingService.summaryForms.find((f) => !f.completed);\n if (uncompleted) {\n this.navigateService.navigate([uncompleted.route], null, true);\n } else {\n this.navigateService.navigate(['onboarding/success'], null, true);\n }\n }\n });\n }\n}\n","
\n

\n {{'primary-physician-information'\n | translate}}

\n\n
\n\n
\n \n \n
\n\n
\n\n
\n
\n \n
\n
\n\n
\n\n
\n

\n {{'primary-physician-information'\n |\n translate}}

\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { OnboardingFormsEnum } from '../../models';\n\n@Component({\n selector: 'pp-screening-form-page',\n templateUrl: 'screening-form-page.component.html'\n})\n\nexport class ScreeningFormPageComponent implements OnInit {\n public get formTypes() {\n return OnboardingFormsEnum;\n }\n\n ngOnInit() {}\n\n}\n","
\n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { OnboardingFormsEnum } from '../../models';\n\n@Component({\n selector: 'pp-screening-forms-list-page',\n templateUrl: 'screening-forms-list-page.component.html'\n})\n\nexport class ScreeningFormsListPageComponent implements OnInit {\n public get formTypes() {\n return OnboardingFormsEnum;\n }\n\n ngOnInit() { }\n\n}\n","
\n\n

\n {{'screening-forms' | translate}}

\n\n \n \n\n
\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { FormField } from '../../../shared/components/form-render/form-field.model';\nimport { OnboardingService } from '../../services';\nimport { ActivatedRoute } from '@angular/router';\nimport { Common } from '../../../shared/models/Common';\nimport { FormFieldsEnum } from '../../../shared/components/form-render/fields.enum';\nimport { CustomValidators } from '../../../shared/validators/custom-validators';\nimport { NavigateWrapperService } from '../../../core/services';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { BehaviorSubject, combineLatest, of, timer } from 'rxjs';\n\n@Component({\n selector: 'pp-signature-page',\n templateUrl: 'signature-page.component.html',\n})\nexport class SignaturePageComponent extends BaseComponent implements OnInit, OnDestroy {\n form: FormGroup;\n formFields: FormField[] = [];\n isSignFormComplete = false;\n customFields;\n consentForm;\n parentGuardianText: string;\n allConsentFormsAreSigned$: BehaviorSubject = new BehaviorSubject(false);\n saving = false;\n private states: any;\n private controls;\n\n constructor(\n private fb: FormBuilder,\n private onboardingService: OnboardingService,\n private route: ActivatedRoute,\n private navigateService: NavigateWrapperService\n ) {\n super();\n this.states = this.route.snapshot.data.states;\n }\n\n ngOnInit() {\n this.form = this.fb.group({\n isParentGuardian: new FormControl(false),\n Signature: ['', Validators.required],\n });\n\n const consentForm = this.onboardingService.consentForms[0];\n const signForm = this.onboardingService.summaryForms.find((form) => form.id === Common.OnboardingSummaryForms.SignForms.id);\n\n if (signForm) {\n this.isSignFormComplete = signForm.completed;\n this.allConsentFormsAreSigned$.next(this.isSignFormComplete);\n }\n\n if (consentForm && consentForm.sections[0]) {\n let formControls = consentForm.sections[0].controls;\n if (formControls.length > 0) {\n // get the heading text\n const heading = formControls.filter((ctrl) => ctrl.id === 'heading_legal' && ctrl.type === Common.FormControlType.Heading)[0];\n this.parentGuardianText = heading.settings.text;\n\n // remove file and heading controls\n formControls = formControls.filter((ctrl) => ctrl.id !== 'heading_legal' && ctrl.type !== Common.FormControlType.File);\n this.controls = this.getControls(formControls);\n\n this.consentForm = {\n uid: consentForm.uid,\n name: consentForm.name,\n type: consentForm.type,\n controls: this.controls,\n isCompleted: consentForm.isCompleted,\n isSigned: consentForm.isSigned,\n };\n }\n }\n\n const contentContainer = document.querySelector('pp-onboarding-summary-box > div > form > div:nth-child(1) > div.selected');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n\n this.form.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n const isFormChangedAndFormNotCompleted = this.isSignFormComplete ? this.isSignFormComplete : this.form.pristine;\n this.onboardingService.setFormSkip(isFormChangedAndFormNotCompleted);\n this.onboardingService.formValid.next(this.form.valid);\n });\n\n this.onboardingService.skipAndSave.pipe(takeUntil(this.destroy$)).subscribe((res: boolean) => {\n if (res) {\n this.onSubmit(false);\n }\n });\n }\n\n ngOnDestroy() {\n this.allConsentFormsAreSigned$.complete();\n super.ngOnDestroy();\n }\n\n private getControls(data) {\n const controls = [];\n\n let type: FormFieldsEnum;\n let name: string;\n\n data.forEach((control) => {\n const formField: FormField = {\n key: control.id,\n label: control.settings.label,\n type: FormFieldsEnum.TextBox,\n value: '',\n validators: [Validators.required],\n };\n\n const customField = {\n key: control.id,\n type: FormFieldsEnum.TextBox,\n id: control.id,\n settings: control.settings,\n width: control.width,\n height: control.height,\n widthPx: control.width.toString() + 'px',\n heightPx: control.height.toString() + 'px',\n coordX: control.x,\n coordY: control.y,\n };\n\n // get control type\n switch (control.type) {\n case Common.FormControlType.Heading:\n customField.type = FormFieldsEnum.Heading;\n controls.push({\n type: 'CustomField',\n data: customField,\n });\n break;\n case Common.FormControlType.TextInput:\n name = control.id;\n if (name.toLowerCase().includes('name')) {\n formField.planceholder = 'full-name-placeholder';\n } else if (name.toLowerCase().includes('phone')) {\n formField.validators = [Validators.required, CustomValidators.phone];\n formField.planceholder = 'phone-eg';\n } else if (name.toLowerCase().includes('email')) {\n formField.validators = [Validators.required, CustomValidators.email];\n formField.planceholder = 'email-placeholder';\n } else if (name.toLowerCase().includes('state')) {\n formField.type = FormFieldsEnum.DropdownSingleSelect;\n formField.itemsList = this.states;\n formField.planceholder = 'select';\n }\n controls.push({\n type: 'FormField',\n data: formField,\n });\n break;\n case Common.FormControlType.FreeText:\n type = FormFieldsEnum.FreeText;\n break;\n case Common.FormControlType.CustomCheckbox:\n type = FormFieldsEnum.CustomCheckbox;\n break;\n case Common.FormControlType.DateInput:\n type = FormFieldsEnum.DateInput;\n break;\n case Common.FormControlType.CheckboxList:\n type = FormFieldsEnum.CheckboxList;\n break;\n case Common.FormControlType.Slider:\n type = FormFieldsEnum.Slider;\n break;\n case Common.FormControlType.File:\n type = FormFieldsEnum.File;\n break;\n default:\n break;\n }\n });\n\n return controls;\n }\n\n onToggle() {\n if (!this.form.value.isParentGuardian) {\n this.controls.forEach((control) => this.form.removeControl(control.data.key));\n this.form.updateValueAndValidity();\n }\n }\n\n onSubmit(redirect: boolean = true) {\n this.saving = true;\n\n if (this.form.valid) {\n const data = {\n timestamp: +new Date(),\n signature: '',\n isParentOrGuardian: false,\n fullName: '',\n phone: '',\n email: '',\n streetAddress: '',\n city: '',\n state: '',\n zipCode: '',\n };\n\n const formData = this.form.value;\n for (const key in formData) {\n if (formData.hasOwnProperty(key)) {\n if (key.toLowerCase().includes('city')) {\n data.city = formData[key];\n } else if (key.toLowerCase().includes('signature')) {\n const signature = formData[key].split(',');\n if (signature.length > 1) {\n data.signature = signature[1];\n }\n } else if (key.toLowerCase().includes('isparent')) {\n data.isParentOrGuardian = formData[key];\n } else if (key.toLowerCase().includes('fullname')) {\n data.fullName = formData[key];\n } else if (key.toLowerCase().includes('phone')) {\n data.phone = formData[key];\n } else if (key.toLowerCase().includes('email')) {\n data.email = formData[key];\n } else if (key.toLowerCase().includes('address')) {\n data.streetAddress = formData[key];\n } else if (key.toLowerCase().includes('state')) {\n data.state = formData[key];\n } else if (key.toLowerCase().includes('zipcode')) {\n data.zipCode = formData[key];\n }\n }\n }\n\n // sometimes this request is canceled by the framework without any reason. setTimeout is a hack to prevent this.\n setTimeout(() => {\n this.onboardingService\n .saveSignatureInfo(data)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n (res) => {\n this.saving = false;\n this.onboardingService.setFormSkip(true);\n this.onboardingService.updateSummary(Common.OnboardingSummaryForms.SignForms);\n if (redirect) {\n this.navigateService.navigate(['onboarding/success'], null, true);\n }\n },\n () => {\n this.saving = false;\n }\n );\n }, 200);\n }\n }\n}\n","
\n

{{ 'signature-form' | translate }}

\n \n
\n {{ 'all-consent-forms-signed' | translate }}\n
\n
\n \n
\n
\n
\n
\n
\n {{ parentGuardianText | translate }}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n {{ 'signature-form-accept' | translate }}\n
\n\n \n
\n
\n\n
\n
\n \n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AuthHelperService, NavigateWrapperService } from '../../../core/services';\nimport { OnboardingService } from '../../services';\nimport { BaseComponent } from '../../../shared/components/base/base.component';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-success-page',\n templateUrl: 'success-page.component.html',\n})\nexport class SuccessPageComponent extends BaseComponent implements OnInit, OnDestroy {\n loggedIn: boolean;\n appointmentUid: string;\n\n constructor(\n private navigateService: NavigateWrapperService,\n private authHelperService: AuthHelperService,\n private onboardingService: OnboardingService\n ) {\n super();\n }\n\n ngOnInit() {\n this.appointmentUid = this.onboardingService.getAppointmentUid();\n\n const contentContainer = document.querySelector('.wrap-buttons-appointment');\n if (contentContainer) {\n contentContainer.scrollIntoView();\n }\n\n this.authHelperService.loggedIn$.pipe(takeUntil(this.destroy$)).subscribe((loggedIn) => {\n this.loggedIn = loggedIn;\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n navigateTo(route, enabled = true) {\n if (enabled) {\n this.navigateService.navigate([route]);\n }\n }\n}\n","
\n
\n \"\"\n
\n\n

{{ 'title-onboardig-complete' | translate }}

\n

{{ 'title-onboardig-complete-loggedout' | translate }}

\n\n

\n {{ 'onboardig-complete-description' | translate }}\n

\n

\n {{ 'onboardig-complete-description-loggedout' | translate }}\n

\n\n
\n
\n \n\n \n\n \n {{ 'back-to-appointment' | translate }}\n \n
\n
\n
\n","export enum OnboardingFormsEnum {\n Personal,\n Demographic,\n Additional,\n Contact,\n EmergencyContact,\n PrimaryPhysician,\n Medical,\n Insurance,\n MedicalForms,\n ConsentForms,\n ScreeningForms,\n SignForms\n}\n\n","\nexport { OnboardingFormsEnum } from './forms.enum'\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {\n OnboardingContainerPageComponent,\n MedicalFormsListPageComponent,\n MedicalFormPageComponent,\n ConsentFormsListPageComponent,\n ConsentFormPageComponent,\n InsurancePageComponent,\n MedicalInfoPageComponent,\n PrimaryPhysicianInfoPageComponent,\n EmergencyContactInfoPageComponent,\n AddressContactInfoPageComponent,\n AdditionalInfoPageComponent,\n PatientInfoPageComponent,\n SignaturePageComponent,\n SuccessPageComponent,\n ScreeningFormPageComponent,\n ScreeningFormsListPageComponent,\n} from './components';\n\n// Resolvers\nimport { StatesResolver } from './services/states.resolver';\nimport { FormsResolver } from './services/forms.resolver';\nimport { ProgressResolver } from './services/progress.resolver';\n\nconst children = [\n { path: 'patient-info', component: PatientInfoPageComponent },\n { path: 'additional-info', component: AdditionalInfoPageComponent },\n { path: 'contact-info', component: AddressContactInfoPageComponent },\n { path: 'emergency-contact-info', component: EmergencyContactInfoPageComponent },\n { path: 'primary-physician-info', component: PrimaryPhysicianInfoPageComponent },\n { path: 'medical-info', component: MedicalInfoPageComponent },\n { path: 'insurance', component: InsurancePageComponent, resolve: { states: StatesResolver } },\n { path: 'medical-forms', component: MedicalFormsListPageComponent, resolve: { forms: FormsResolver } },\n { path: 'medical-forms/:uid', component: MedicalFormPageComponent, resolve: { forms: FormsResolver } },\n { path: 'screening-forms', component: ScreeningFormsListPageComponent, resolve: { forms: FormsResolver } },\n { path: 'screening-forms/:uid', component: ScreeningFormPageComponent, resolve: { forms: FormsResolver } },\n { path: 'consent-forms', component: ConsentFormsListPageComponent, resolve: { forms: FormsResolver } },\n { path: 'consent-forms/:uid', component: ConsentFormPageComponent, resolve: { forms: FormsResolver } },\n { path: 'signature', component: SignaturePageComponent, resolve: { states: StatesResolver, forms: FormsResolver } },\n { path: 'success', component: SuccessPageComponent },\n { path: '', component: SuccessPageComponent },\n];\n\nexport const onboardingRoutes: Routes = [\n {\n path: 'onboarding',\n component: OnboardingContainerPageComponent,\n resolve: { forms: FormsResolver, progress: ProgressResolver },\n children: children,\n },\n];\n\n@NgModule({\n imports: [\n // RouterModule.forChild(onboardingRoutes)\n ],\n exports: [RouterModule],\n providers: [StatesResolver, FormsResolver, ProgressResolver],\n})\nexport class OnboardingRoutingModule {}\n","import { SharedModule } from './../shared/shared.module';\nimport { ONBOARDING_SERVICES } from './services/index';\nimport { ONBOARDING_COMPONENTS } from './components/index';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { OnboardingSummaryDialogComponent } from './components/onboarding-summary-box/onboarding-summary-dialog.component';\n\nimport { OnboardingRoutingModule } from './onboarding-routing.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n imports: [SharedModule, OnboardingRoutingModule, FlexLayoutModule],\n declarations: [...ONBOARDING_COMPONENTS],\n providers: [...ONBOARDING_SERVICES]\n})\nexport class OnboardingModule {\n constructor(@Optional() @SkipSelf() parentModule: OnboardingModule) {\n if (parentModule) {\n throw new Error('OnboardingModule already loaded; Import in root module only.');\n }\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { Resolve, ActivatedRouteSnapshot, ActivatedRoute } from '@angular/router';\nimport { OnboardingService } from '.';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class FormsResolver implements Resolve {\n constructor(private onboardingService: OnboardingService) {\n\n }\n\n resolve(route: ActivatedRouteSnapshot) {\n this.onboardingService.setAppointmentUid(route.queryParams['uid']);\n this.onboardingService.setToken(route.queryParams['token']);\n return this.onboardingService.getOnboardingForms();\n }\n}\n","\nimport { OnboardingService } from './onboarding.service';\n\nexport const ONBOARDING_SERVICES: any[] = [\n OnboardingService,\n];\nexport * from './onboarding.service';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { environment } from './../../../environments/environment';\nimport { Common } from '../../shared/models/Common';\nimport { BehaviorSubject, Subject, of, Observable } from 'rxjs';\nimport { map, tap, shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class OnboardingService {\n skipAndSave = new Subject();\n formValid = new BehaviorSubject(false);\n\n medicalForms;\n consentForms;\n screeningForms;\n summaryForms;\n\n private forms;\n private _progress;\n private appointmentUid: string;\n private token: string;\n private skipForm = true;\n\n constructor(private http: HttpClient) {}\n\n isFormValid(): boolean {\n return this.formValid.getValue();\n }\n\n setFormSkip(value: boolean) {\n this.skipForm = value;\n }\n\n canSkipForm(): boolean {\n return this.skipForm;\n }\n\n setAppointmentUid(uid: string) {\n if (uid) {\n this.appointmentUid = uid;\n }\n }\n getAppointmentUid() {\n return this.appointmentUid;\n }\n\n setToken(token: string) {\n if (token) {\n this.token = token;\n }\n }\n getToken() {\n return this.token;\n }\n\n getQueryParams() {\n const queryParams: any = {};\n if (this.appointmentUid) {\n queryParams.uid = this.appointmentUid;\n }\n if (this.token) {\n queryParams.token = this.token;\n }\n if (queryParams.uid || queryParams.token) {\n return queryParams;\n }\n return null;\n }\n\n getOnboardingForms() {\n if (!this.forms) {\n return this.http.get(this.getRequestUrl('onboardingforms')).pipe(\n tap((data: any[]) => {\n this.medicalForms = data.filter((form) => form.type === Common.FormType.MedicalForm);\n this.consentForms = data.filter((form) => form.type === Common.FormType.ConsentForm);\n this.screeningForms = data.filter((form) => form.type === Common.FormType.ScreeningForm);\n this.forms = data;\n }),\n shareReplay(1)\n );\n }\n return of(this.forms);\n }\n\n getForm(formuid) {\n let form;\n if (this.forms) {\n form = this.forms.filter((f) => f.uid === formuid)[0];\n }\n return form;\n }\n\n updateSummary(form) {\n if (this.summaryForms) {\n if (this.summaryForms.filter((sm) => sm.id === form.id)[0]) {\n this.summaryForms.filter((sm) => sm.id === form.id)[0].completed = true;\n }\n // update the progress\n const completedForms = this.summaryForms.filter((sm) => sm.completed).length;\n this._progress.completion = Math.ceil((completedForms / this.summaryForms.length) * 100);\n }\n }\n\n clearCache() {\n this.forms = null;\n this._progress = null;\n this.medicalForms = null;\n this.consentForms = null;\n this.screeningForms = null;\n this.summaryForms = null;\n }\n\n validate(token) {\n return this.http.get(this.getRequestUrl('validate'), { params: { token: token } }).pipe(map((res: boolean) => res));\n }\n\n progress(): Observable {\n if (!this._progress) {\n return this.http.get(this.getRequestUrl('progress')).pipe(\n tap((data: any) => (this._progress = data)),\n shareReplay(1)\n );\n }\n\n return of(this._progress);\n }\n\n getAdditionalInfo() {\n return this.http.get(this.getRequestUrl('additional'));\n }\n saveAdditionalInfo(data) {\n return this.http.post(this.getRequestUrl('additional'), data);\n }\n\n getContactInfo() {\n return this.http.get(this.getRequestUrl('contact'));\n }\n saveContactInfo(data) {\n return this.http.post(this.getRequestUrl('contact'), data);\n }\n\n getEmergencyInfo() {\n return this.http.get(this.getRequestUrl('emergency'));\n }\n saveEmergencyInfo(data) {\n return this.http.post(this.getRequestUrl('emergency'), data);\n }\n\n getInsuranceInfo() {\n return this.http.get(this.getRequestUrl('insurance'));\n }\n saveInsuranceInfo(data) {\n return this.http.post(this.getRequestUrl('insurance'), data);\n }\n\n saveMedicalForm(formuid, data) {\n return this.http.post(this.getRequestUrl(`medicalforms/${formuid}`), data);\n }\n saveConsentForm(formuid, data) {\n return this.http.post(this.getRequestUrl(`consentforms/${formuid}`), data);\n }\n\n getMedicalInfo() {\n return this.http.get(this.getRequestUrl('medical'));\n }\n saveMedicalInfo(data) {\n return this.http.post(this.getRequestUrl('medical'), data);\n }\n\n getPatientInfo() {\n return this.http.get(this.getRequestUrl('personal'));\n }\n savePatientInfo(data) {\n return this.http.post(this.getRequestUrl('personal'), data);\n }\n\n getPrimaryPhisicianInfo() {\n return this.http.get(this.getRequestUrl('primaryphisician'));\n }\n savePrimaryPhisicianInfo(data) {\n return this.http.post(this.getRequestUrl('primaryphisician'), data);\n }\n\n saveSignatureInfo(data) {\n return this.http.post(this.getRequestUrl('sign'), data);\n }\n\n error() {\n return this.http.get(`${environment.apiUrl}/test/error500`);\n }\n\n private getRequestUrl(action: string) {\n let url = `${environment.apiUrl}/Onboarding/${action}`;\n if (this.appointmentUid) {\n url = `${url}?uid=${this.appointmentUid}`;\n }\n if (this.token) {\n url = `${url}&token=${this.token}`;\n }\n return url;\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { Resolve, ActivatedRouteSnapshot, ActivatedRoute } from '@angular/router';\nimport { OnboardingService } from '.';\nimport { first } from 'rxjs/operators';\n\n@Injectable()\nexport class ProgressResolver implements Resolve {\n constructor(private onboardingService: OnboardingService) {\n\n }\n\n resolve(route: ActivatedRouteSnapshot) {\n this.onboardingService.setAppointmentUid(route.queryParams['uid']);\n this.onboardingService.setToken(route.queryParams['token']);\n return this.onboardingService.progress();\n }\n}\n","\nimport { Injectable } from '@angular/core';\nimport { Resolve } from '@angular/router';\nimport { CatalogsService } from '../../core/services';\n\n@Injectable()\nexport class StatesResolver implements Resolve {\n constructor(private catalogsService: CatalogsService) { }\n\n resolve() {\n return this.catalogsService.getStates();\n }\n}\n","export * from './organization.actions'\n","import { Action } from '@ngrx/store';\nimport { type } from '../../ngrx/type';\n\nexport namespace OrganizationActions {\n export const ORGANIZATION = '[Organization]';\n export const SET_ORGANIZATION = type(`${ORGANIZATION} Set ORGANIZATION`);\n\n export class SetOrganization implements Action {\n type = SET_ORGANIZATION;\n constructor(public payload: any) { }\n }\n\n export type Actions = SetOrganization;\n}\n","export * from './organization.reducer';\n","import { OrganizationActions } from '../actions';\n\nexport interface State {\n guid: string;\n name: string;\n hasSameAddressAsOrganization: boolean;\n country: string;\n city: string;\n zipCode: string;\n addressLine1: string;\n addressLine2: string;\n email: string;\n phoneNumber: string;\n organizationType: number;\n /** Allow patients to book appointments online */\n useOnlineBooking: boolean;\n allowCancelOrReschedule: boolean;\n allowPractitionerNoPreferenceBooking: boolean;\n acceptsInsurance: boolean;\n acceptsMajorInsurance: boolean;\n acceptsAutoAccident: boolean;\n acceptsWorkerCompensation: boolean;\n acceptedPayments: any[];\n hasSms: boolean;\n hasCcpe: boolean;\n usePatientPortal: boolean;\n useCancellationPolicy: boolean;\n cancellationPeriod: number;\n cancellationPolicyTitle: string;\n cancellationPolicyDescription: string;\n}\n\nexport const initialState: State = {\n guid: null,\n name: null,\n hasSameAddressAsOrganization: null,\n country: null,\n city: null,\n zipCode: null,\n addressLine1: null,\n addressLine2: null,\n email: null,\n phoneNumber: null,\n organizationType: null,\n useOnlineBooking: null,\n allowCancelOrReschedule: null,\n allowPractitionerNoPreferenceBooking: null,\n acceptsInsurance: null,\n acceptsMajorInsurance: null,\n acceptsAutoAccident: null,\n acceptsWorkerCompensation: null,\n acceptedPayments: null,\n hasSms: null,\n hasCcpe: null,\n usePatientPortal: null,\n useCancellationPolicy: null,\n cancellationPeriod: null,\n cancellationPolicyTitle: null,\n cancellationPolicyDescription: null,\n};\n\nexport function reducer(state: State = initialState, action: OrganizationActions.Actions): State {\n switch (action.type) {\n case OrganizationActions.SET_ORGANIZATION: {\n const value = action.payload;\n return Object.assign({}, state, value);\n }\n\n default:\n return state;\n }\n}\n","export * from './name-list.action';\n","import { Action } from '@ngrx/store';\nimport { type } from '../../ngrx/type';\n\n/**\n * Each action should be namespaced\n * this allows the interior to have similar typed names as other actions\n * however still allow index exports\n */\nexport namespace NameList {\n // Category to uniquely identify the actions\n export const CATEGORY: string = 'NameList';\n\n export const INIT = type(`${CATEGORY} Init`);\n export const INITIALIZED = type(`${CATEGORY} Initialized`);\n export const INIT_FAILED = type(`${CATEGORY} Init Failed`);\n export const ADD = type(`${CATEGORY} Add`);\n export const NAME_ADDED = type(`${CATEGORY} Name Added`);\n\n\n /**\n * Every action is comprised of at least a type and an optional\n * payload. Expressing actions as classes enables powerful\n * type checking in reducer functions.\n *\n * See Discriminated Unions: https://www.typescriptlang.org/docs/handbook/advanced-types.html#discriminated-unions\n */\n export class InitAction implements Action {\n type = INIT;\n payload: string = null;\n }\n\n export class InitializedAction implements Action {\n type = INITIALIZED;\n\n constructor(public payload: Array) { }\n }\n\n export class InitFailedAction implements Action {\n type = INIT_FAILED;\n payload: string = null;\n }\n\n export class AddAction implements Action {\n type = ADD;\n\n constructor(public payload: string) { }\n }\n\n export class NameAddedAction implements Action {\n type = NAME_ADDED;\n\n constructor(public payload: string) { }\n }\n\n /**\n * Export a type alias of all actions in this action group\n * so that reducers can easily compose action types\n */\n export type Actions\n = InitAction\n | InitializedAction\n | InitFailedAction\n | AddAction\n | NameAddedAction;\n}\n","import { NameListService } from './../../services/name-list.service';\nimport { NameList } from '../../actions';\nimport { Observable } from 'rxjs';\n\nimport { Store } from '@ngrx/store';\nimport { Component, OnInit } from '@angular/core';\n\nimport { environment } from '../../../../environments/environment';\n\nimport * as fromRoot from '../../../ngrx';\n\n@Component({\n selector: 'pp-sample',\n templateUrl: './sample-page.component.html',\n styleUrls: ['./sample-page.component.scss']\n})\nexport class SampleComponent implements OnInit {\n\n public env: any;\n\n inputName: string;\n names$: Observable;\n\n constructor(\n private store: Store,\n private nameListService: NameListService\n ) { }\n\n ngOnInit() {\n this.env = environment;\n\n // this.names$ = this.store.select(fromRoot.getNames);\n\n // this.nameListService.testEndpoint().subscribe((res) => console.log('test endpoint res', res));\n }\n\n addToCollection() {\n this.store.dispatch(new NameList.AddAction(this.inputName));\n this.inputName = '';\n }\n\n}\n","
\n
\n
\n
\n
\n \n info\n \n Lorem ipsum dolor sit amet, consectetur\n adipisicing elit, sed\n do eiusmod tempor incididunt ut labore et\n dolore magna aliqua. Ut enim ad minim veniam,\n quis nostrud exercitation ullamco laboris\n nisi ut aliquip ex ea commodo consequat.\n Duis aute irure dolor in reprehenderit in\n voluptate velit esse cillum dolore eu fugiat\n nulla pariatur.\n
\n
\n
\n
\n
\n

Book an appointment

\n
\n \n
\n

Have you been to any of our\n clinics before?\n

\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n
\n

Login

\n

If you have an account, please login to\n simplify\n the booking process.

\n
\n
\n
\n Email\n \n
\n
\n Password\n Forgot?\n \n
\n
\n Login\n
\n
\n
\n
\n
\n
\n \n\n\n\n","// angular\nimport { Injectable } from '@angular/core';\n\n// libs\nimport { Store, Action } from '@ngrx/store';\nimport { createEffect, Actions } from '@ngrx/effects';\nimport { Observable } from 'rxjs';\n\n\n\n// module\nimport { NameListService } from '../services/index';\nimport { NameList } from '../actions/index';\n\n@Injectable()\nexport class SampleEffects {\n\n /**\n * This effect makes use of the `startWith` operator to trigger\n * the effect immediately on startup.\n */\n // @Effect() init$: Observable = this.actions$\n // .ofType(NameList.INIT)\n // .startWith(new NameList.InitAction)\n // .switchMap(() => this.nameListService.getNames())\n // .map(payload => {\n // const names = payload;\n // return new NameList.InitializedAction(names);\n // })\n // // nothing reacting to failure at moment but you could if you want (here for example)\n // .catch(() => Observable.of(new NameList.InitFailedAction()));\n\n // @Effect() add$: Observable = this.actions$\n // .ofType(NameList.ADD)\n // .map((action: NameList.AddAction) => {\n // const name = action.payload;\n\n // return new NameList.NameAddedAction(name);\n // });\n\n // constructor(\n // private store: Store,\n // private actions$: Actions,\n // private nameListService: NameListService\n // ) { }\n}\n","export * from './sample.reducer'\n","import { NameList } from '../actions/index';\nimport { Observable } from 'rxjs';\n\nexport interface State {\n names: Array;\n}\n\nexport const sampleInitialState: State = {\n names: >[]\n};\n\nexport function reducer(\n state: State = sampleInitialState,\n // could support multiple state actions via union type here\n // ie: NameList.Actions | Other.Actions\n // the seed's example just has one set of actions: NameList.Actions\n action: NameList.Actions\n): State {\n switch (action.type) {\n case NameList.INITIALIZED:\n return (Object).assign({}, state, {\n names: action.payload\n });\n\n case NameList.NAME_ADDED:\n return (Object).assign({}, state, {\n names: [...state.names, action.payload]\n });\n\n default:\n return state;\n }\n}\n\n// selects specific slice from sample state\n// export const getNames = (state: State) => state.names;\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n// app\nimport { SampleRoutes } from './sample.routes';\n\n@NgModule({\n imports: [\n RouterModule.forChild(SampleRoutes)\n ],\n exports: [\n RouterModule\n ]\n})\nexport class SampleRoutingModule { }\n","import { SharedModule } from './../shared/shared.module';\nimport { NameListService } from './services/name-list.service';\n\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\n\n// app\nimport { SampleComponent } from './components/sample/sample-page.component';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { SampleEffects } from './effects/sample.effect';\n// app\nimport { SampleRoutingModule } from './sample-routing.module';\n\n@NgModule({\n imports: [\n SharedModule,\n EffectsModule.forRoot([SampleEffects]),\n SampleRoutingModule,\n ],\n declarations: [SampleComponent],\n providers: [NameListService]\n})\nexport class SampleModule {\n\n constructor(@Optional() @SkipSelf() parentModule: SampleModule) {\n if (parentModule) {\n throw new Error('SampleModule already loaded; Import in root module only.');\n }\n }\n}\n","import { Routes } from '@angular/router';\n// app\nimport { SampleComponent } from './components/sample/sample-page.component';\n\nexport const SampleRoutes: Routes = [\n {\n path: 'sample',\n component: SampleComponent\n },\n];\n","import { HttpClient } from '@angular/common/http';\n// angular\nimport { Injectable } from '@angular/core';\n\n\n// libs\nimport { Observable } from 'rxjs';\n\n\n// module\nimport { NameList } from '../actions/index';\n\nimport { environment } from '../../../environments/environment';\n\n\n@Injectable()\nexport class NameListService {\n public env: any = environment;\n constructor(\n private http: HttpClient\n ) {\n\n }\n\n getNames(): Observable {\n return this.http.get('assets/data.json');\n\n }\n\n\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from '../../../ngrx';\nimport { BookingActions } from '../../../booking/actions';\nimport { ActivatedRoute } from '@angular/router';\nimport { ClinicService } from '../../../clinic/services';\nimport { find as _find } from 'lodash-es';\nimport { ClinicLocation, Service } from '../../../clinic/models';\nimport { NavigateWrapperService } from '../../../core/services';\nimport { BookingService } from '../../../booking/services';\nimport { BookingDay } from '../../../booking/models';\nimport { RegistrationParams } from '../register-onboarding-step/register-onboarging-step.model';\nimport { BaseComponent } from '../base/base.component';\nimport { catchError, map, takeUntil } from 'rxjs/operators';\nimport { combineLatest, of } from 'rxjs';\n\n@Component({\n selector: 'pp-appointment-pickup',\n templateUrl: './appointment-pickup.component.html',\n styleUrls: ['./appointment-pickup.component.scss'],\n})\nexport class AppointmentPickupComponent extends BaseComponent implements OnInit, OnDestroy {\n queryParams: RegistrationParams;\n constructor(\n private store: Store,\n private activatedRoute: ActivatedRoute,\n private clinicService: ClinicService,\n private navigateService: NavigateWrapperService,\n private bookingService: BookingService\n ) {\n super();\n }\n\n ngOnInit() {\n this.queryParams = {\n email: this.activatedRoute.snapshot.queryParams.email,\n date: this.activatedRoute.snapshot.queryParams.Date || this.activatedRoute.snapshot.queryParams.date,\n index: Number(this.activatedRoute.snapshot.queryParams.Index || this.activatedRoute.snapshot.queryParams.index),\n locationGuid: this.activatedRoute.snapshot.queryParams.LocationGuid || this.activatedRoute.snapshot.queryParams.locationGuid,\n practitionerId: Number(\n this.activatedRoute.snapshot.queryParams.PractitionerId || this.activatedRoute.snapshot.queryParams.practitionerId\n ),\n serviceId: Number(this.activatedRoute.snapshot.queryParams.ServiceId || this.activatedRoute.snapshot.queryParams.serviceId),\n token: this.activatedRoute.snapshot.queryParams.token,\n type: this.activatedRoute.snapshot.queryParams.type,\n };\n if (!this.queryParams.locationGuid) {\n this.navigateService.navigate([this.activatedRoute.snapshot.queryParams.returnUrl || 'appointments']);\n return;\n }\n\n this.clinicService\n .getLocations()\n .pipe(takeUntil(this.destroy$))\n .subscribe((locations: ClinicLocation[]) => {\n const selectedLocation = _find(locations, (location) => location.guid === this.queryParams.locationGuid);\n if (!this.queryParams.serviceId) {\n this.store.dispatch(new BookingActions.SetLocationAction(selectedLocation));\n this.navigateService.navigate(['booking', 'location']);\n return;\n }\n combineLatest([\n this.clinicService.getServices(selectedLocation.guid, true),\n this.clinicService.getServices(selectedLocation.guid, false),\n ])\n .pipe(\n map(([servicesForNew, servicesForExisting]) => [...servicesForNew, ...servicesForExisting]),\n takeUntil(this.destroy$)\n )\n .subscribe((services: Service[]) => {\n const selectedService = _find(services, (service) => service.id === this.queryParams.serviceId);\n\n this.clinicService\n .getPractitioners(selectedService.id, selectedLocation.guid)\n .pipe(takeUntil(this.destroy$))\n .subscribe((practitioners: any) => {\n const selectedPractitioner = _find(\n practitioners.practitioners,\n (practitioner) => practitioner.id === this.queryParams.practitionerId\n );\n if (!this.queryParams.date) {\n this.store.dispatch(new BookingActions.SetLocationAction(selectedLocation));\n this.store.dispatch(new BookingActions.SetServiceAction(selectedService));\n this.store.dispatch(new BookingActions.SetPractitionerAction(selectedPractitioner));\n this.navigateService.navigate(['booking', 'timeslot']);\n return;\n }\n combineLatest([\n this.bookingService\n .getAvailableDates(\n selectedLocation.guid,\n selectedService.id,\n selectedPractitioner ? selectedPractitioner.id : undefined,\n true,\n new Date(this.queryParams.date),\n new Date(this.queryParams.date)\n )\n .pipe(catchError(() => of([]))),\n this.bookingService\n .getAvailableDates(\n selectedLocation.guid,\n selectedService.id,\n selectedPractitioner ? selectedPractitioner.id : undefined,\n false,\n new Date(this.queryParams.date),\n new Date(this.queryParams.date)\n )\n .pipe(catchError(() => of([]))),\n ])\n .pipe(map(([availabilitiesForNew, availabilitiesForExisting]) => [...availabilitiesForNew, ...availabilitiesForExisting]))\n .subscribe((availabilities: BookingDay[]) => {\n this.store.dispatch(new BookingActions.SetLocationAction(selectedLocation));\n this.store.dispatch(new BookingActions.SetServiceAction(selectedService));\n this.store.dispatch(new BookingActions.SetPractitionerAction(selectedPractitioner));\n const selectedTimeslot = _find(\n availabilities[0].availabilities,\n (availability) => availability.slotIndex === this.queryParams.index\n );\n\n if (!selectedTimeslot) {\n this.navigateService.navigate(['booking', 'timeslot'], { error: 'timeslot-not-available' });\n return;\n }\n this.store.dispatch(new BookingActions.SetTimeslotAction(selectedTimeslot));\n this.navigateService.navigate(['booking', 'review']);\n });\n });\n });\n });\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","
\n","import {Component, OnDestroy,} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Component({\n selector: 'pp-base',\n template: '',\n})\nexport class BaseComponent implements OnDestroy {\n\n protected destroy$: Subject = new Subject();\n\n constructor() { }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'pp-booking-steps',\n templateUrl: './booking-steps.component.html',\n styleUrls: ['./booking-steps.component.scss'],\n})\nexport class BookingStepsComponent implements OnInit {\n @Input() step: 'step-1' | 'step-2';\n\n constructor() {}\n\n ngOnInit() {}\n}\n","
\n \n
\n
\n
\n
\n
\n
\n","import { Component, forwardRef, OnDestroy } from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { CatalogsService } from '../../../core/services/catalogs.service';\nimport { BaseComponent } from '../base/base.component';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-country-state',\n templateUrl: './country-state.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => CountryStateComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => CountryStateComponent),\n multi: true,\n },\n ],\n})\nexport class CountryStateComponent extends BaseComponent implements OnDestroy {\n countries: any;\n states: any;\n form: FormGroup;\n\n // Function to call when the input is touched (when a star is clicked).\n onTouched = () => {};\n\n constructor(private catalogsService: CatalogsService, private formBuilder: FormBuilder) {\n super();\n catalogsService\n .getCountries()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n // add US on top of the list for a quicker find\n this.countries = data;\n });\n catalogsService\n .getStates()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.states = data;\n });\n\n this.form = this.formBuilder.group({\n country: new FormControl(undefined),\n state: new FormControl(undefined),\n otherState: new FormControl(''),\n });\n\n this.form.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((val) => {\n this.change();\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n writeValue(obj: any) {\n if (obj) {\n if (obj.country) {\n this.form.setControl('country', new FormControl(obj.country, [Validators.required]));\n }\n if (obj.state) {\n this.form.setControl('state', new FormControl(obj.state, [Validators.required]));\n }\n if (obj.otherState) {\n this.form.setControl('otherState', new FormControl(obj.otherState));\n }\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n // validates the form, returns null when valid else the validation object\n validate(c: FormControl) {\n if (this.form.get('country').value && this.form.get('country').value === 'US' && !this.form.get('state').value) {\n return {\n stateError: {\n valid: false,\n },\n };\n }\n return null;\n }\n\n change() {\n if (!this.form.get('country').value) {\n this.propagateChange(null);\n } else {\n this.propagateChange({\n country: this.form.value.country,\n state: this.form.value.country === 'US' ? this.form.value.state : this.form.value.otherState,\n });\n }\n }\n\n private propagateChange = (_: any) => {};\n}\n","
\n
\n\n
\n \n \n {{ 'select' | translate }}\n {{c.name}} \n \n
\n\n
\n \n \n {{ 'select' | translate }}\n {{s.label}} \n \n
\n\n
\n \n \n
\n\n
\n
\n","import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Component, OnInit, forwardRef, Input, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { format, parseISO } from 'date-fns';\nimport { BaseComponent } from '../base/base.component';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-date-input',\n templateUrl: 'date-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateInputComponent),\n multi: true,\n },\n ],\n})\nexport class DateInputComponent extends BaseComponent implements OnInit, OnChanges, OnDestroy {\n @Input() disabled = false;\n\n dateFormControl: FormControl = new FormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.dateFormControl.valueChanges\n .pipe(\n filter((date) => !!date),\n takeUntil(this.destroy$)\n )\n .subscribe((date) => {\n this.onChange(date);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.disabled?.currentValue !== undefined) {\n this.setDisabledState(this.disabled);\n }\n }\n\n writeValue(obj: any) {\n if (obj) {\n if (typeof obj === 'string') {\n this.dateFormControl.setValue(parseISO(obj), { emitEvent: false });\n } else {\n this.dateFormControl.setValue(obj, { emitEvent: false });\n }\n }\n }\n\n registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n registerOnTouched() {}\n\n onChange(date: Date): void {\n this.propagateChange(format(date, 'yyyy-MM-dd'));\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.dateFormControl.disable({ emitEvent: false });\n return;\n }\n this.dateFormControl.enable({ emitEvent: false });\n }\n\n private propagateChange = (_: any) => {};\n}\n","
\n \n \n \n
\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { forkJoin } from 'rxjs';\nimport { UploadService } from '../../../core/services/upload.service';\n\n@Component({\n selector: 'pp-file-upload',\n templateUrl: 'file-upload.component.html'\n})\nexport class FileUploadComponent {\n\n @Input() name: string;\n @Input() url: string;\n @Output() onFileSelect = new EventEmitter();\n\n formatsAllowed = '.jpg, .png, .pdf, .jpeg, .hiec';\n\n @ViewChild('fileInput', { static: true }) fileInput;\n // public files: Set = new Set();\n public file: File;\n\n localPath: any;\n\n constructor(\n public uploadService: UploadService) {\n }\n\n addFiles() {\n this.fileInput.nativeElement.click();\n }\n\n onFilesAdded(event) {\n const reader = new FileReader();\n\n // const files: { [key: string]: File } = this.file.nativeElement.files;\n // for (const key in files) {\n // // tslint:disable-next-line:radix\n // if (!isNaN(parseInt(key))) {\n // this.files.add(files[key]);\n\n // this.onFileSelect.emit({ name: this.name, file: files[key] });\n // }\n // }\n\n if (event.target.files && event.target.files.length > 0) {\n const file = event.target.files[0];\n\n this.file = file;\n\n reader.readAsDataURL(file);\n reader.onload = () => {\n this.localPath = reader.result;\n this.onFileSelect.emit({ name: this.name, file: file });\n };\n }\n\n }\n\n removeFile(file) {\n // this.files.delete(file);\n this.file = undefined;\n this.fileInput.nativeElement.value = '';\n this.onFileSelect.emit({ name: this.name, file: null });\n }\n\n isPdf(url) {\n return url.indexOf('.pdf') > -1;\n }\n}\n","\n\n\n\n\n\n
\n
\n {{'upload-info-message' | translate}}\n \n
\n
\n
-1;else renderImageTemplate\">\n picture_as_pdf\n {{file.name}}\n \n
\n\n \n \"your\n \n
\n\n
\n\n
\n
\n {{'previous-upload' | translate}}\n \n
\n \n
\n","export enum FormFieldsEnum {\n TextBox = 1,\n DropdownSingleSelect = 2,\n DropdownMultipleSelect = 3,\n CheckBox = 4,\n DatePicker = 5,\n Gender = 100,\n Phone = 101,\n\n Heading = 200,\n FreeText = 201,\n TextInput = 202,\n DateInput = 203,\n CustomCheckbox = 204,\n CheckboxList = 205,\n Slider = 206,\n File = 2017,\n Signature = 2018\n}\n","import { HelperService } from './../../../core/services/helper.service';\nimport { FormField } from './form-field.model';\nimport { FormFieldsEnum } from './fields.enum';\nimport { Component, OnInit, Input, ViewChild, TemplateRef, Output, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'pp-form-render',\n templateUrl: 'form-render.component.html',\n})\nexport class FormRenderComponent implements OnInit, OnChanges {\n @Input() formFields: FormField[] = [];\n @Input() customFields: any[];\n @Input() form: FormGroup;\n\n @Output() onSubmit = new EventEmitter();\n\n @ViewChild('textBoxTemplate', { static: true }) textBoxTemplate: TemplateRef;\n @ViewChild('dropdownSingleChoiceTemplate', { static: true }) dropdownSingleChoiceTemplate: TemplateRef;\n @ViewChild('dropdownMultipleChoiceTemplate', { static: true }) dropdownMultipleChoiceTemplate: TemplateRef;\n @ViewChild('checkBoxTemplate', { static: true }) checkBoxTemplate: TemplateRef;\n @ViewChild('datePickerTemplate', { static: true }) datePickerTemplate: TemplateRef;\n @ViewChild('genderTemplate', { static: true }) genderTemplate: TemplateRef;\n @ViewChild('phoneTemplate', { static: true }) phoneTemplate: TemplateRef;\n\n @ViewChild('headingTemplate', { static: true }) headingTemplate: TemplateRef;\n @ViewChild('freeTextTemplate', { static: true }) freeTextTemplate: TemplateRef;\n @ViewChild('textInputTemplate', { static: true }) textInputTemplate: TemplateRef;\n @ViewChild('dateInputTemplate', { static: true }) dateInputTemplate: TemplateRef;\n @ViewChild('customCheckboxTemplate', { static: true }) customCheckboxTemplate: TemplateRef;\n @ViewChild('checkboxListTemplate', { static: true }) checkboxListTemplate: TemplateRef;\n @ViewChild('numberSelectTemplate', { static: true }) numberSelectTemplate: TemplateRef;\n @ViewChild('filePDFTemplate', { static: true }) filePDFTemplate: TemplateRef;\n @ViewChild('signatureTemplate', { static: true }) signatureTemplate: TemplateRef;\n\n requiredValidator = Validators.required;\n pdfZoom = 1;\n pdfLoaded = false;\n os = false;\n ftp = false;\n\n constructor(public sanitizer: DomSanitizer, public helperService: HelperService) {}\n\n ngOnInit() {}\n ngOnChanges(changes: SimpleChanges) {\n if (changes.formFields) {\n const formFields = changes.formFields.currentValue;\n\n for (const field of formFields) {\n const control =\n field.validators && field.validators.length > 0\n ? new FormControl(field.value || this.defaultValue(field.type), field.validators)\n : new FormControl(field.value || this.defaultValue(field.type));\n\n if (this.form.controls[field.key]) {\n this.form.setControl(field.key, control);\n } else {\n this.form.addControl(field.key, control);\n }\n }\n }\n if (changes.customFields) {\n const customFormFields = changes.customFields.currentValue;\n for (const field of customFormFields) {\n if (field.type !== FormFieldsEnum.Heading && field.type !== FormFieldsEnum.FreeText) {\n const control = new FormControl(field.value);\n if (this.form.controls[field.key]) {\n this.form.setControl(field.key, control);\n if ((field.settings && field.settings.required) || field.type === FormFieldsEnum.Signature) {\n this.form.controls[field.key].setValidators(Validators.required);\n this.form.controls[field.key].updateValueAndValidity();\n }\n } else {\n this.form.addControl(field.key, control);\n\n if ((field.settings && field.settings.required) || field.type === FormFieldsEnum.Signature) {\n this.form.controls[field.key].setValidators(Validators.required);\n this.form.controls[field.key].updateValueAndValidity();\n }\n }\n }\n }\n }\n }\n\n getTemplate(item) {\n switch (item.type) {\n case FormFieldsEnum.TextBox:\n return this.textBoxTemplate;\n case FormFieldsEnum.DropdownSingleSelect:\n return this.dropdownSingleChoiceTemplate;\n case FormFieldsEnum.DropdownMultipleSelect:\n return this.dropdownMultipleChoiceTemplate;\n case FormFieldsEnum.CheckBox:\n return this.checkBoxTemplate;\n case FormFieldsEnum.DatePicker:\n return this.datePickerTemplate;\n case FormFieldsEnum.Gender:\n return this.genderTemplate;\n case FormFieldsEnum.Phone:\n return this.phoneTemplate;\n case FormFieldsEnum.Heading:\n return this.headingTemplate;\n case FormFieldsEnum.FreeText:\n return this.freeTextTemplate;\n case FormFieldsEnum.TextInput:\n return this.textInputTemplate;\n case FormFieldsEnum.DateInput:\n return this.dateInputTemplate;\n case FormFieldsEnum.CustomCheckbox:\n return this.customCheckboxTemplate;\n case FormFieldsEnum.CheckboxList:\n return this.checkboxListTemplate;\n case FormFieldsEnum.Slider:\n return this.numberSelectTemplate;\n case FormFieldsEnum.File:\n return this.filePDFTemplate;\n case FormFieldsEnum.Signature:\n return this.signatureTemplate;\n default:\n break;\n }\n }\n\n defaultValue(type: FormFieldsEnum) {\n switch (type) {\n case FormFieldsEnum.TextBox:\n return '';\n case FormFieldsEnum.DropdownSingleSelect:\n return undefined;\n case FormFieldsEnum.DropdownMultipleSelect:\n return undefined;\n case FormFieldsEnum.CheckBox:\n return false;\n case FormFieldsEnum.DatePicker:\n return undefined;\n case FormFieldsEnum.TextInput:\n return '';\n case FormFieldsEnum.CustomCheckbox:\n return undefined;\n case FormFieldsEnum.CheckboxList:\n return undefined;\n case FormFieldsEnum.Slider:\n return undefined;\n default:\n break;\n }\n }\n getNumberSelectValues(min: number, max: number, step: number): any[] {\n if (!step) {\n step = 1;\n }\n const values = [];\n const stepsTotal = (max - min) / step;\n values.push(min);\n for (let i = 0; i < stepsTotal; i++) {\n const newValue = (min += step);\n values.push(newValue > max ? max : newValue);\n }\n return values;\n }\n}\n","\n\n\n\n
\n -1 }\"\n >{{ item.label | translate }}\n \n\n
\n

\n {{ (item.errorMessages && item.errorMessages.required ? item.errorMessages.required : 'form-input-error-required') | translate }}\n

\n

\n {{ (item.errorMessages && item.errorMessages.maxlength ? item.errorMessages.maxlength : 'form-input-error-maxlength') | translate }}\n

\n

\n {{ (item.errorMessages && item.errorMessages.email ? item.errorMessages.email : 'form-input-error-email-format') | translate }}\n

\n

\n {{ (item.errorMessages && item.errorMessages.phone ? item.errorMessages.phone : 'form-input-error-phone-format') | translate }}\n

\n
\n
\n
\n\n\n
\n -1 }\"\n >{{ item.label | translate }}\n
\n\n
\n \n {{ 'select' | translate }}\n \n {{ opt.label | translate }} \n \n
\n\n \n

\n {{ (item.errorMessages && item.errorMessages.required ? item.errorMessages.required : 'form-input-error-required') | translate }}\n

\n \n
\n\n\n
\n -1 }\"\n >{{ item.label | translate }}\n
\n\n
\n \n \n {{ opt.label | translate }} \n \n
\n\n
\n

\n {{ (item.errorMessages && item.errorMessages.required ? item.errorMessages.required : 'form-input-error-required') | translate }}\n

\n
\n
\n\n\n
\n
\n -1 }\"\n >{{ item.label | translate }}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n
\n -1 }\"\n >{{ item.label | translate }}\n \n \n
\n \n

\n {{ (item.errorMessages && item.errorMessages.required ? item.errorMessages.required : 'form-input-error-required') | translate }}\n

\n

\n {{ (item.errorMessages && item.errorMessages.invalidDate ? item.errorMessages.invalidDate : 'form-input-error-date') | translate }}\n

\n \n
\n\n\n
\n -1 }\"\n >{{ item.label | translate }}\n \n\n \n
\n
\n

\n {{ (item.errorMessages && item.errorMessages.gender ? item.errorMessages.gender : 'form-input-error-required') | translate }}\n

\n
\n
\n\n\n
\n -1 }\"\n >{{ item.label | translate }}\n \n \n \n

\n {{ 'form-input-error-phone-format' | translate }}\n

\n\n

\n {{ 'form-input-error-phoneType-format' | translate }}\n

\n\n \n {{ (item.errorMessages && item.errorMessages.required ? item.errorMessages.required : 'form-input-error-required') | translate }}\n

\n
\n \n
\n\n\n\n\n\n\n\n \n
\n
\n {{ item.settings.text }}\n
\n
\n \n
\n\n\n \n
\n \n
\n\n\n \n
\n \n \n \n
\n \n
\n\n\n \n
\n \n
\n

\n {{ 'signature-required' | translate }}\n

\n
\n
\n \n
\n\n\n \n
\n
\n \n
\n\n\n \n
\n
\n \n \n
\n\n\n \n
\n
\n \n \n
\n\n\n \n
\n
\n \n
\n\n\n
\n
\n

{{ item.fileName }}

\n
\n
\n {{ 'file-is-loading' | translate }}\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n\n \n {{ 'open-in-new-window' | translate }}\n \n \n
\n
\n
\n","import { GenderEnum } from './../../models/gender.enum';\nimport { FormControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, Validator } from '@angular/forms';\nimport { Component, OnInit, forwardRef } from '@angular/core';\n\n@Component({\n selector: 'pp-gender-input',\n templateUrl: 'gender-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => GenderInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => GenderInputComponent),\n multi: true,\n }\n ]\n})\nexport class GenderInputComponent implements ControlValueAccessor, Validator {\n\n disabled = false;\n\n gender = undefined;\n otherGender = undefined;\n\n // Function to call when the input is touched (when a star is clicked).\n onTouched = () => { };\n\n constructor() { }\n\n writeValue(obj: any): void {\n if (obj) {\n this.gender = obj.gender;\n this.otherGender = obj.otherGender;\n }\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // validates the form, returns null when valid else the validation object\n // in this case we're checking if the date parsing has passed or failed from the onChange method\n public validate(c: FormControl) {\n\n if (!this.gender) {\n return {\n gender: {\n valid: false,\n }\n };\n }\n\n return null;\n }\n\n change() {\n // Angular does not know that the value has changed\n // from our component, so we need to update her with the new value.\n\n if (!this.gender) {\n this.propagateChange(null);\n return;\n }\n\n this.propagateChange({\n gender: this.gender,\n otherGender: this.gender === GenderEnum.Other ? this.otherGender : undefined\n });\n }\n\n\n // the method set in registerOnChange to emit changes back to the form\n // tslint:disable-next-line:no-empty\n private propagateChange = (_: any) => { };\n\n}\n","
\n
\n \n {{ 'select' | translate }}\n {{ 'gender-male' | translate }}\n \n {{ 'gender-female' | translate }}\n \n {{ 'gender-other' | translate }}\n \n \n
\n\n\n
\n \n
\n\n\n
\n","export * from './date-input/date-input.component';\nexport * from './country-state/country-state.component';\nexport * from './gender-input/gender-input.component';\nexport * from './phone-input/phone-input.component';\nexport * from './select-list/select-list.component';\nexport * from './signature-input/signature-input.component';\nexport * from './logout-warning-modal/logout-warning-modal.component';\nexport * from './file-upload/file-upload.component';\n","import { Observable, Subscription, interval } from 'rxjs';\nimport { ToastrService } from 'ngx-toastr';\nimport { Component, OnInit, Inject, OnDestroy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'pp-logout-warning-modal',\n templateUrl: 'logout-warning-modal.component.html'\n})\n\nexport class LogoutWarningModalComponent implements OnInit, OnDestroy {\n\n counter: number;\n private intervalSub: Subscription;\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef,\n private toastr: ToastrService,\n private translateService: TranslateService,\n ) { this.counter = this.data; }\n\n ngOnInit() {\n this.intervalSub = interval(1000).subscribe(() => {\n this.counter--;\n if (this.counter <= 0) {\n this.counter = 0;\n this.intervalSub.unsubscribe();\n }\n });\n }\n\n ngOnDestroy() {\n this.intervalSub.unsubscribe();\n }\n}\n","

\n {{'keep-me-logged-in-warning-title' | translate}}\n

\n\n
\n
\n
\n {{'keep-me-logged-message' | translate}}\n {{counter}} \n {{'seconds' | translate}}\n
\n
\n
\n\n
\n\n
\n \n
\n","import {\n FormControl,\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n FormGroup,\n FormBuilder,\n Validators,\n AbstractControl,\n ValidationErrors,\n} from '@angular/forms';\nimport { Component, forwardRef, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { PhoneTypeEnum } from '../../models/phoneType.enum';\nimport { CustomValidators } from '../../validators/custom-validators';\nimport { BaseComponent } from '../base/base.component';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'pp-phone-input',\n templateUrl: 'phone-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => PhoneInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PhoneInputComponent),\n multi: true,\n },\n ],\n})\nexport class PhoneInputComponent extends BaseComponent implements ControlValueAccessor, Validator, OnDestroy {\n disabled = false;\n phoneTypes: any;\n form: FormGroup;\n private isRequired = false;\n\n // Function to call when the input is touched (when a star is clicked).\n onTouched = () => {};\n\n constructor(private formBuilder: FormBuilder, private cdr: ChangeDetectorRef) {\n super();\n this.phoneTypes = this.getPhoneTypes();\n\n this.form = this.formBuilder.group({\n number: new FormControl(undefined, [CustomValidators.phone, Validators.maxLength(20)]),\n phoneType: new FormControl(undefined),\n });\n\n this.form.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.change();\n });\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n writeValue(obj: any): void {\n if (obj) {\n this.form.setControl('number', new FormControl(obj.number, [CustomValidators.phone, Validators.maxLength(20)]));\n this.form.setControl('phoneType', new FormControl(obj.phoneType));\n }\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // Angular does not know that the value has changed\n // from our component, so we need to update her with the new value.\n change() {\n let res = null;\n if (this.form.valid && this.form.value.number && this.form.value.phoneType) {\n res = this.form.value;\n }\n this.propagateChange(res);\n }\n\n validate(c: AbstractControl): ValidationErrors | any {\n if (this.form.get('number').invalid) {\n return {\n phone: true,\n };\n }\n\n if (this.form.value.number && this.form.value.number.length > 0 && !this.form.value.phoneType) {\n return {\n phoneType: true,\n };\n }\n\n return null;\n }\n\n // the method set in registerOnChange to emit changes back to the form\n // tslint:disable-next-line:no-empty\n private propagateChange = (_: any) => {};\n\n private getPhoneTypes() {\n const phoneTypes = [];\n\n for (const key in PhoneTypeEnum) {\n if (PhoneTypeEnum.hasOwnProperty(key)) {\n const element = PhoneTypeEnum[key];\n const isValueProperty = parseInt(element, 10) >= 0;\n if (isValueProperty) {\n phoneTypes.push({ label: PhoneTypeEnum[element], value: element });\n }\n }\n }\n\n return phoneTypes;\n }\n}\n","
\n
\n
\n \n
\n
\n \n {{ 'select' |\n translate }}\n \n {{pt.label}} \n \n
\n
\n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { environment } from '../../../../environments/environment';\n\n@Component({\n selector: 'pp-practitioner-avatar',\n templateUrl: './practitioner-avatar.component.html',\n styleUrls: ['./practitioner-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PractitionerAvatarComponent {\n @Input() avatarUrl: string;\n @Input() size: number;\n\n mediaBaseUrl = environment.resourceUrl;\n}\n","\n\n\n
\n \"\"\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { StartupService } from '../../../core/services';\n\n@Component({\n selector: 'pp-register-inactive-user-error-modal',\n templateUrl: './register-inactive-user-error-modal.component.html',\n styleUrls: ['./register-inactive-user-error-modal.component.scss'],\n})\nexport class RegisterInactiveUserErrorModalComponent implements OnInit {\n constructor(@Inject(MAT_DIALOG_DATA) public data: any, public dialogRef: MatDialogRef, public startupService: StartupService) {}\n\n ngOnInit(): void {}\n}\n","\n
\n \n
\n
\n
\n {{ 'PatientArchivedByClinicTitle' | translate }}\n
\n
\n {{ 'PatientArchivedByClinicDescription' | translate }}\n
\n
\n
\n {{ 'Email' | translate }}: {{ startupService.startupData.email }}\n
\n
\n {{ 'Phone' | translate }}:\n {{ startupService.startupData.phoneNumber }}\n
\n
\n {{ 'Web' | translate }}:\n {{ startupService.startupData.webAddresss }}\n
\n
\n
\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { BaseComponent } from '../base/base.component';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { FormField } from '../form-render/form-field.model';\nimport { Store } from '@ngrx/store';\nimport * as fromRoot from '../../../ngrx';\nimport { AccountService } from '../../../account/services';\nimport { AuthService, NavigateWrapperService, StartupService } from '../../../core/services';\nimport { CustomValidators } from '../../validators/custom-validators';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { FormFieldsEnum } from '../form-render/fields.enum';\nimport { ActivatedRoute } from '@angular/router';\nimport { RegistrationParams } from './register-onboarging-step.model';\nimport { ConfirmAccountExtendedRequest } from '../../../account/services/account.model';\nimport { RegisterInactiveUserErrorModalComponent } from '../register-inactive-user-error-modal/register-inactive-user-error-modal.component';\nimport { MatDialog } from '@angular/material/dialog';\n\n@Component({\n selector: 'pp-register-onboarding-step',\n templateUrl: './register-onboarding-step.component.html',\n styleUrls: ['./register-onboarding-step.component.scss'],\n})\nexport class RegisterOnboardingStepComponent extends BaseComponent implements OnInit, OnDestroy {\n guest: FormGroup;\n fields: FormField[] = [];\n queryParams: RegistrationParams;\n showBookingStepts: boolean = true;\n\n confirmPasswordForm: FormGroup;\n\n constructor(\n private store: Store,\n private formBuilder: FormBuilder,\n private accountService: AccountService,\n private navigateService: NavigateWrapperService,\n private startupService: StartupService,\n private activatedRoute: ActivatedRoute,\n private authService: AuthService,\n public dialog: MatDialog\n ) {\n super();\n }\n\n ngOnInit() {\n this.queryParams = {\n email: this.activatedRoute.snapshot.queryParams.email,\n date: this.activatedRoute.snapshot.queryParams.Date,\n index: this.activatedRoute.snapshot.queryParams.Index,\n locationGuid: this.activatedRoute.snapshot.queryParams.LocationGuid,\n practitionerId: this.activatedRoute.snapshot.queryParams.PractitionerId,\n serviceId: this.activatedRoute.snapshot.queryParams.ServiceId,\n token: this.activatedRoute.snapshot.queryParams.token,\n type: this.activatedRoute.snapshot.queryParams.type,\n };\n\n if (this.activatedRoute.snapshot.queryParams.bookingSteps && this.activatedRoute.snapshot.queryParams.bookingSteps == 0) {\n this.showBookingStepts = false;\n }\n this.initConfirmPasswordForm();\n window.scrollTo(0, 0);\n\n this.guest = this.formBuilder.group(\n {\n termsAgreed: new FormControl(false, [Validators.requiredTrue]),\n email: new FormControl(\n { value: this.queryParams.email, disabled: true },\n {\n validators: [Validators.required, CustomValidators.email],\n updateOn: 'blur',\n }\n ),\n password: [null, [Validators.required, Validators.minLength(6)]],\n confirmPassword: [null, [Validators.required]],\n },\n { validator: CustomValidators.Match('password', 'confirmPassword') }\n );\n this.fields = this.initFields();\n }\n\n submitSetPasswordForm() {\n this.accountService\n .confirmAccount({\n email: this.queryParams.email,\n confirmPassword: this.confirmPasswordForm.get('confirmPassword').value,\n password: this.confirmPasswordForm.get('password').value,\n token: this.queryParams.token,\n })\n .pipe(\n catchError((err) => {\n if (err?.error === 'patient-is-inactive-error') {\n this.openArchivedPatientError();\n }\n throw err;\n })\n )\n .subscribe(() => {\n this.login();\n });\n }\n\n initConfirmPasswordForm() {\n this.confirmPasswordForm = this.formBuilder.group(\n {\n email: [{ value: this.queryParams.email, disabled: true }, [Validators.required]],\n password: ['', [Validators.required, Validators.minLength(6)]],\n confirmPassword: ['', [Validators.required]],\n },\n { validator: CustomValidators.Match('password', 'confirmPassword') }\n );\n }\n\n initFields() {\n const fields: FormField[] = [\n {\n key: 'firstName',\n label: 'first-name',\n planceholder: 'first-name-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.maxLength(300)],\n value: null,\n },\n {\n key: 'lastName',\n label: 'last-name',\n planceholder: 'last-name-placeholder',\n type: FormFieldsEnum.TextBox,\n validators: [Validators.required, Validators.maxLength(300)],\n value: null,\n },\n {\n key: 'phone',\n label: 'phone-number',\n type: FormFieldsEnum.Phone,\n validators: [Validators.required],\n value: null,\n },\n {\n key: 'dateOfBirth',\n label: 'date-of-birth',\n type: FormFieldsEnum.DatePicker,\n validators: [Validators.required],\n value: null,\n },\n {\n key: 'genderObj',\n label: 'gender',\n type: FormFieldsEnum.Gender,\n validators: [Validators.required],\n value: {\n gender: null,\n otherGender: null,\n },\n },\n ];\n\n return fields;\n }\n\n onCreateAccountClick() {\n if (!this.guest.valid) {\n return;\n }\n\n const requestData: ConfirmAccountExtendedRequest = {\n token: this.queryParams.token,\n email: this.queryParams.email,\n password: this.guest.get('password').value,\n confirmPassword: this.guest.get('confirmPassword').value,\n firstName: this.guest.get('firstName').value,\n lastName: this.guest.get('lastName').value,\n phone: {\n phoneNumber: this.guest.value.phone.number,\n type: this.guest.value.phone.phoneType,\n },\n dateOfBirth: this.guest.get('dateOfBirth').value,\n gender: this.guest.value.genderObj.gender,\n otherGender: this.guest.value.genderObj.otherGender,\n };\n this.accountService\n .confirmAccountExtended(requestData)\n .pipe(\n catchError((err) => {\n if (err?.error === 'patient-is-inactive-error') {\n this.openArchivedPatientError();\n }\n throw err;\n })\n )\n .subscribe((data) => {\n this.login();\n });\n }\n\n clinicAcceptsInsurance() {\n return (\n this.startupService.startupData.acceptsInsurance &&\n (this.startupService.startupData.acceptsMajorInsurance ||\n this.startupService.startupData.acceptsAutoAccident ||\n this.startupService.startupData.acceptsWorkerCompensation)\n );\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n\n login(): void {\n this.authService\n .login({\n username: this.queryParams.email,\n password: this.queryParams.type === 'extended' ? this.guest.get('password').value : this.confirmPasswordForm.get('password').value,\n })\n .pipe(\n switchMap(() => {\n return this.accountService.me();\n })\n )\n .subscribe(() => {\n this.navigateService.navigate(['pickup-appointment'], this.activatedRoute.snapshot.queryParams);\n });\n }\n private openArchivedPatientError(): void {\n this.dialog.open(RegisterInactiveUserErrorModalComponent, {\n panelClass: 'modal-error',\n data: {\n email: this.startupService.startupData.email,\n phone: this.startupService.startupData.phoneNumber,\n web: this.startupService.startupData.webAddresss,\n },\n });\n }\n}\n","
\n
\n {{ 'register' | translate }}\n
\n
\n

{{\n 'fill-in-personal-info' | translate }}

\n

\n {{ 'required-fields-note' |\n translate }}\n

\n
\n
\n
\n \n {{ 'email' | translate }}\n \n \n

\n {{ 'form-input-error-required' | translate }}\n

\n

\n {{ 'form-input-error-email-format' | translate\n }}\n

\n

\n {{ 'email-is-in-use' | translate }}\n

\n
\n
\n
\n\n
\n \n \n\n
\n \n {{ 'read-and-accept' | translate }}\n Terms of Use\n and\n Privacy Policy \n \n \n
\n

\n {{ 'form-input-error-terms-not-greed' |\n translate }}\n

\n
\n
\n
\n
\n
\n {{\n 'password' | translate }}\n \n \n

\n {{ 'form-input-error-required' | translate }}\n

\n

\n {{ 'form-input-error-password-minlength' |\n translate }}\n

\n
\n
\n
\n {{\n 'confirm-password' | translate }}\n \n

\n {{ 'form-input-error-confirm-password-match' |\n translate }}\n

\n
\n
\n \n\n
\n
\n \n \n
\n
\n \n\n\n
\n
\n \n
{{ 'register' | translate }}\n
\n
\n
\n \n \n
\n
\n {{\n 'password' | translate }}\n \n
\n

\n {{ 'form-input-error-required' | translate }}\n

\n

\n {{ 'form-input-error-password-minlength' |\n translate }}\n

\n
\n
\n
\n {{\n 'confirm-password' | translate }}\n \n

\n {{ 'form-input-error-confirm-password-match' |\n translate }}\n

\n
\n
\n \n
\n
\n
\n
\n\n","import { GenderEnum } from './../../models/gender.enum';\nimport { FormControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, Validator } from '@angular/forms';\nimport { Component, OnInit, forwardRef, Input } from '@angular/core';\n\n@Component({\n selector: 'pp-select-list',\n templateUrl: 'select-list.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => SelectListComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(() => SelectListComponent),\n multi: true,\n }\n ]\n})\nexport class SelectListComponent implements ControlValueAccessor, Validator, OnInit {\n\n @Input() item: any;\n disabled = false;\n values = [];\n options = [];\n singleChoice: boolean;\n\n // Function to call when the input is touched (when a star is clicked).\n onTouched = () => { };\n\n constructor() { }\n\n ngOnInit() {\n this.singleChoice = this.item.settings.isSingle;\n this.values = this.item.value || [];\n\n let rowCounter = 0;\n this.item.settings.options.forEach(row => {\n let optionCounter = 0;\n row.forEach(control => {\n\n this.options.push({\n label: control.label,\n value: `${this.item.id}_${rowCounter}_${optionCounter}`\n });\n\n control.value = `${this.item.id}_${rowCounter}_${optionCounter}`;\n\n optionCounter++;\n });\n rowCounter++;\n });\n\n // console.log(this.options);\n // console.log(this.item);\n }\n\n writeValue(obj: any): void {\n if (obj) {\n this.values = obj || [];\n }\n }\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // validates the form, returns null when valid else the validation object\n // in this case we're checking if the date parsing has passed or failed from the onChange method\n public validate(c: FormControl) {\n return null;\n }\n\n change(option) {\n if (option) {\n const index: number = this.values.indexOf(option);\n if (this.singleChoice) {\n this.values = option;\n } else {\n if (index !== -1) {\n this.values.splice(index, 1);\n } else {\n this.values.push(option);\n }\n }\n\n }\n if (this.values.length === 0) {\n this.propagateChange(null);\n } else {\n this.propagateChange({\n value: this.singleChoice ? [this.values] : this.values\n });\n }\n }\n\n // the method set in registerOnChange to emit changes back to the form\n // tslint:disable-next-line:no-empty\n private propagateChange = (_: any) => { };\n\n}\n","
\n \n
\n -1\"\n (change)=\"change(ctrl.value)\"\n >\n {{ ctrl.label }}\n \n\n -1\"\n (change)=\"change(ctrl.value)\"\n >\n {{ ctrl.label }}\n \n
\n
\n\n\n
\n \n \n {{ option.label }}\n \n \n\n \n \n {{ option.label }}\n \n \n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { CustomValidators } from '../../validators/custom-validators';\nimport { BaseComponent } from '../base/base.component';\nimport { AccountService } from '../../../account/services';\nimport { VerifyEmailRequest } from '../../../account/services/account.model';\nimport { ToastrService } from 'ngx-toastr';\n\n@Component({\n selector: 'pp-send-email-dialog',\n templateUrl: './send-email-dialog.component.html',\n styleUrls: ['./send-email-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendEmailDialogComponent extends BaseComponent implements OnInit, OnDestroy {\n emailFormControl: FormControl = new FormControl('', [Validators.required, CustomValidators.email]);\n\n isLoading: boolean = false;\n showConfirmation: boolean = false;\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: VerifyEmailRequest,\n public dialogRef: MatDialogRef,\n private accountService: AccountService,\n private changeDetector: ChangeDetectorRef,\n private toastr: ToastrService) {\n super();\n }\n\n ngOnInit() { }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n createAccount(): void {\n this.emailFormControl.markAsTouched();\n if (this.emailFormControl.invalid) {\n return;\n }\n\n this.accountService\n .verifyAccount({\n ...this.data,\n email: this.emailFormControl.value,\n })\n .subscribe((data) => {\n this.isLoading = true;\n this.showConfirmation = true;\n this.changeDetector.markForCheck();\n });\n }\n\n resendEmail(): void {\n this.accountService\n .verifyAccount({\n ...this.data,\n email: this.emailFormControl.value,\n })\n .subscribe((data) => {\n this.isLoading = true;\n this.showConfirmation = true;\n this.toastr.success(\"Email sent !\");\n this.changeDetector.markForCheck();\n });\n }\n\n closeDialog(): void {\n this.dialogRef.close();\n }\n}\n","
\n \n
\n\n\n
\n
{{ 'check-email-title' | translate }}
\n
{{ 'verify-email' | translate }}
\n
\n \n
\n
\n {{ 'do-not-see-email' | translate }}\n
\n
\n {{ 'check-spam-folder' | translate }}\n
\n
\n Click here  \n
to send the email again
\n
\n
\n
\n\n\n
{{ 'get-started' | translate }}
\n\n
\n
\n
\n
{{ 'email' | translate }}
\n
\n \n
\n\n \n {{ 'form-input-error-required' | translate }}\n \n \n {{ 'form-input-error-email-format' | translate }}\n \n
\n\n
\n \n
\n
\n
\n
\n","import { FormControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, ControlValueAccessor, Validator, ValidationErrors } from '@angular/forms';\nimport { Component, forwardRef, ViewChild, AfterViewInit, ViewChildren, ElementRef, QueryList } from '@angular/core';\nimport { SignaturePad } from 'angular2-signaturepad';\n\n@Component({\n selector: 'pp-signature-input',\n templateUrl: 'signature-input.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SignatureInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SignatureInputComponent),\n multi: true,\n },\n ],\n})\nexport class SignatureInputComponent implements ControlValueAccessor, Validator, AfterViewInit {\n @ViewChild(SignaturePad, { static: true }) public signaturePad: SignaturePad;\n @ViewChildren('container') public container: QueryList;\n\n options: Object = {};\n signature: any = null;\n propagateChange: Function = null;\n\n updateSignature(signature: any): void {\n this.signature = signature;\n this.propagateChange(this.signature);\n }\n\n writeValue(obj: any): void {\n if (!obj) {\n return;\n }\n this.signature = obj.signature;\n if (this.signature) {\n this.signaturePad.fromDataURL(this.signature);\n }\n }\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(): void {}\n\n ngAfterViewInit(): void {\n this.setOptions();\n this.signaturePad.clear();\n }\n\n\n setOptions() {\n this.signaturePad.set('backgroundColor', 'rgb(255,255,255)');\n this.signaturePad.set('penColor', 'rgb(142, 156, 164)');\n this.signaturePad.clear();\n }\n\n drawBegin(): void {}\n\n drawComplete(): void {\n this.updateSignature(this.signaturePad.toDataURL('image/png', 0.5));\n }\n\n clear(): void {\n this.signaturePad.clear();\n this.updateSignature('');\n }\n\n validate(c: FormControl): ValidationErrors | null {\n if (!this.signature) {\n return { valid: false };\n }\n return null;\n }\n}\n","
\n \n\n \n \n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'pp-user-avatar',\n templateUrl: './user-avatar.component.html',\n styleUrls: ['./user-avatar.component.scss'],\n})\nexport class UserAvatarComponent implements OnInit {\n @Input() avatarUrl: string;\n @Input() text: string;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n \n

{{text}}

\n
\n","import { Directive, Input, Output, EventEmitter, HostListener } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Directive({ selector: '[ppSubmitIfValid]' })\nexport class SubmitIfValidDirective {\n // tslint:disable-next-line:no-input-rename\n @Input('ppSubmitIfValid') formRef: FormGroup;\n @Output() valid = new EventEmitter();\n constructor() { }\n\n @HostListener('click')\n handleClick() {\n this.makeFieldsAsDirty(this.formRef);\n this.emitIfValid();\n\n }\n\n private makeFieldsAsDirty(formGroup) {\n const controls = Object.keys(formGroup.controls);\n\n for (let i = 0; i < controls.length; i++) {\n const obj = formGroup.controls[controls[i]];\n if (obj.controls) {\n // put the function call in the event queue\n // instead of recursive call\n // to prevent stack overflow\n setTimeout(() => { this.makeFieldsAsDirty(obj); }, 0);\n } else {\n obj.markAsDirty();\n }\n }\n\n return;\n }\n\n private emitIfValid() {\n if (this.formRef.valid) {\n this.valid.emit();\n } else {\n setTimeout(() => {\n this.scrollToFirstError();\n }, 0);\n }\n }\n\n private scrollToFirstError(): any {\n const contentContainer: HTMLElement = document.querySelector('.form-control.ng-invalid.ng-dirty');\n if (contentContainer) {\n contentContainer.parentElement.scrollIntoView();\n }\n }\n\n\n}\n","/**\n * Static data. Used for lists/dropdowns. Labels are translated.\n */\nexport class Common {\n\n static Relationships = [\n { value: 8, label: 'partner' },\n { value: 1, label: 'wife' },\n { value: 2, label: 'husband' },\n { value: 3, label: 'mother' },\n { value: 4, label: 'father' },\n { value: 5, label: 'brother' },\n { value: 6, label: 'sister' },\n { value: 9, label: 'friend' },\n { value: 10, label: 'other-family' },\n { value: 7, label: 'other' }\n ];\n\n static MaritalStatus = [\n { value: 1, label: 'single' },\n { value: 2, label: 'married' },\n { value: 3, label: 'other' }\n ];\n\n static EmploymentStatus =\n [\n { value: 1, label: 'employed' },\n { value: 2, label: 'full-time-student' },\n { value: 3, label: 'part-time-student' },\n { value: 4, label: 'unemployed' }\n ];\n\n static InsuranceRelationships = [\n { value: 1, label: 'spouse' },\n { value: 2, label: 'child' },\n { value: 3, label: 'other' }\n ];\n\n static FormControlType = {\n Heading: 'heading',\n FreeText: 'freeText',\n TextInput: 'input',\n DateInput: 'date',\n CustomCheckbox: 'customCheckbox',\n CheckboxList: 'checkboxList',\n Slider: 'numberSlider',\n File: 'file',\n Signature: 'signature'\n };\n\n static FormType = {\n MedicalForm: 0,\n ConsentForm: 1,\n ScreeningForm: 2\n };\n\n static OnboardingSummaryForms = {\n Personal: {\n id: 'Personal',\n name: 'patient-information',\n route: 'onboarding/patient-info',\n },\n Contact: {\n id: 'ContactInfo',\n name: 'contact-information',\n route: 'onboarding/contact-info',\n },\n EmergencyContact: {\n id: 'EmergencyContact',\n name: 'emergency-information',\n route: 'onboarding/emergency-contact-info',\n },\n PrimaryPhysician: {\n id: 'PrimaryPhysician',\n name: 'primary-physician-information',\n route: 'onboarding/primary-physician-info',\n },\n Medical: {\n id: 'MedicalInfo',\n name: 'medical-information',\n route: 'onboarding/medical-info',\n },\n Insurance: {\n id: 'Insurance',\n name: 'insurance-information',\n route: 'onboarding/insurance',\n },\n Additional: {\n id: 'Additional',\n name: 'additional-information',\n route: 'onboarding/additional-info',\n },\n MedicalForms: {\n id: 'MedicalForms',\n name: 'medical-forms',\n route: 'onboarding/medical-forms',\n },\n ConsentForms: {\n id: 'ConsentForms',\n name: 'consent-forms',\n route: 'onboarding/consent-forms',\n },\n ScreeningForms: {\n id: 'ScreeningForms',\n name: 'screening-forms',\n route: 'onboarding/screening-forms',\n },\n SignForms: {\n id: 'SignForms',\n name: 'signature-form',\n route: 'onboarding/signature',\n }\n };\n\n static RegisterType = {\n Appointment: 'a',\n Invite: 'i'\n };\n\n}\n\n\n","export enum GenderEnum {\n Male = 'M',\n Female = 'F',\n Other = 'O'\n}\n","export enum OrganizationTypeEnum {\n univeristy = 4\n}\n","/** Identical with the backend enum */\nexport enum PhoneTypeEnum {\n Mobile = 1,\n Home = 2,\n Work = 3,\n Other = 4\n}\n","import { LangSwitcherComponent } from './lang-switcher.component';\n\nexport const MULTILANG_COMPONENTS: any[] = [\n LangSwitcherComponent\n];\n\nexport * from './lang-switcher.component';\n","import { Lang } from './../models/lang';\n\n// libs\nimport { Component, Inject, OnInit } from '@angular/core';\n\n\n// app\nimport { MultilingualService } from '../services/index';\n\n@Component({\n selector: 'pp-lang-switcher',\n templateUrl: 'lang-switcher.component.html',\n styleUrls: ['lang-switcher.component.scss'],\n})\nexport class LangSwitcherComponent implements OnInit {\n\n public lang: string;\n public supportedLanguages: Array;\n\n constructor(\n private multilangService: MultilingualService\n ) { }\n\n changeLang(e: any) {\n let lang = this.supportedLanguages[0].code; // fallback to default 'en'\n\n if (e && e.target) {\n lang = e.target.value;\n }\n\n this.multilangService.changeLang(lang)\n }\n\n ngOnInit() {\n this.supportedLanguages = [\n { code: 'en', title: 'English' },\n { code: 'es', title: 'Spanish' },\n { code: 'zh', title: 'Chinese' },\n { code: 'ja', title: 'Japanese' },\n\n ];\n }\n}\n","
\n\n\t
\n \n Change Language:\n \n\t\t\n\t
\n\n
\n","export * from './services/index';\nexport * from './components/index';\n// export * from './actions/index';\n// export * from './effects/index';\n// export * from './reducers/index';\nexport * from './multilingual.module';\n","\n// angular\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { NgModule, ModuleWithProviders, Optional, SkipSelf, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n// module\nimport { MULTILANG_COMPONENTS } from './components/index';\nimport { MULTILANG_PROVIDERS } from './services/index';\n\n/**\n * Do not specify providers for modules that might be imported by a lazy loaded module.\n */\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n FormsModule\n ],\n declarations: [\n ...MULTILANG_COMPONENTS\n ],\n providers: [\n ...MULTILANG_PROVIDERS\n ],\n exports: [\n ...MULTILANG_COMPONENTS,\n\n ]\n})\nexport class MultilingualModule {\n\n constructor(@Optional() @SkipSelf() parentModule: MultilingualModule) {\n if (parentModule) {\n throw new Error('MultilingualModule already loaded; Import in root module only.');\n }\n }\n}\n","import { MultilingualService } from './multilingual.service';\n\n/**\n * This is located in the i18n folder for organization\n * However these are imported in CoreModule since\n * MultilingualService should be a singleton across entire app\n * lazy-loaded modules or not.\n */\nexport const MULTILANG_PROVIDERS: any[] = [\n MultilingualService,\n];\n\nexport * from './multilingual.service';\n","// angular\nimport { Injectable, InjectionToken } from '@angular/core';\n\n// libs\nimport { TranslateService } from '@ngx-translate/core';\n\n// service\n@Injectable()\nexport class MultilingualService {\n\n constructor(\n private translate: TranslateService\n ) {\n // // this language will be used as a fallback when a translation isn't found in the current language\n // this.translate.setDefaultLang('en');\n\n // // use browser/platform lang if available\n // const userLang = window.navigator.language.split('-')[0];\n\n // this.translate.use(userLang);\n }\n\n changeLang(lang) {\n this.translate.use(lang);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'enumkeys', pure: false })\nexport class EnumKeysPipe implements PipeTransform {\n transform(value: any, args: any[] = null): any {\n const keys = [];\n for (const enumMember in value) {\n if (!isNaN(parseInt(enumMember, 10))) {\n keys.push({ key: enumMember, value: value[enumMember] });\n // Uncomment if you want log\n // console.log(\"enum member: \", value[enumMember]);\n }\n }\n return keys;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'keys', pure: false })\nexport class KeysPipe implements PipeTransform {\n transform(value: any, args: any[] = null): any {\n return Object.keys(value); // .map(key => value[key]);\n // const keys = [];\n // for (const enumMember in value) {\n // if (!isNaN(parseInt(enumMember, 10))) {\n // keys.push({ key: enumMember, value: value[enumMember] });\n // // Uncomment if you want log\n // // console.log(\"enum member: \", value[enumMember]);\n // }\n // }\n // return keys;\n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport {\n CountryStateComponent,\n DateInputComponent,\n FileUploadComponent,\n GenderInputComponent,\n LogoutWarningModalComponent,\n PhoneInputComponent,\n SelectListComponent,\n SignatureInputComponent,\n} from './components/index';\nimport { SHARED_DIRECTIVES } from './directives/index';\nimport { SHARED_PIPES } from './pipes/index';\n\nimport { MultilingualModule } from './multilingual/multilingual.module';\n\n// primeng\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\nimport { TranslateModule } from '@ngx-translate/core';\n\n// angular material\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { SignaturePadModule } from 'angular2-signaturepad';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { AppointmentPickupComponent } from './components/appointment-pickup/appointment-pickup.component';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { RegisterInactiveUserErrorModalComponent } from './components/register-inactive-user-error-modal/register-inactive-user-error-modal.component';\nimport { UserAvatarComponent } from './components/user-avatar/user-avatar.component';\nimport { FormRenderComponent } from './components/form-render/form-render.component';\nimport { SendEmailDialogComponent } from './components/send-email-dialog/send-email-dialog.component';\nimport { BaseComponent } from './components/base/base.component';\nimport { BookingStepsComponent } from './components/booking-steps/booking-steps.component';\nimport { RegisterOnboardingStepComponent } from './components/register-onboarding-step/register-onboarding-step.component';\nimport { PractitionerAvatarComponent } from './components/practitioner-avatar/practitioner-avatar.component';\n\nconst SHARED_MODULES: any[] = [\n BrowserModule,\n CommonModule,\n HttpClientModule,\n FormsModule,\n GoogleMapsModule,\n ReactiveFormsModule,\n RouterModule,\n MultilingualModule,\n TranslateModule,\n PdfViewerModule,\n SignaturePadModule,\n MatButtonModule,\n MatDialogModule,\n MatSelectModule,\n MatSliderModule,\n MatCheckboxModule,\n MatIconModule,\n MatRadioModule,\n MatAutocompleteModule,\n MatMenuModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatFormFieldModule,\n MatProgressBarModule,\n MatListModule,\n MatTooltipModule,\n FlexLayoutModule,\n];\nexport const SHARED_COMPONENTS: any[] = [\n DateInputComponent,\n FormRenderComponent,\n CountryStateComponent,\n GenderInputComponent,\n PhoneInputComponent,\n SelectListComponent,\n SignatureInputComponent,\n FileUploadComponent,\n SendEmailDialogComponent,\n BaseComponent,\n BookingStepsComponent,\n RegisterOnboardingStepComponent,\n AppointmentPickupComponent,\n LogoutWarningModalComponent,\n SendEmailDialogComponent,\n UserAvatarComponent,\n PractitionerAvatarComponent,\n];\n/**\n * SharedModule\n * Only for shared components, directives and pipes\n * Do not specify providers here\n * https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#what-kinds-of-modules-should-i-have-and-how-should-i-use-them-\n */\n\n@NgModule({\n imports: [...SHARED_MODULES],\n declarations: [\n ...SHARED_COMPONENTS,\n ...SHARED_DIRECTIVES,\n ...SHARED_PIPES,\n AppointmentPickupComponent,\n RegisterInactiveUserErrorModalComponent,\n ],\n exports: [...SHARED_MODULES, ...SHARED_COMPONENTS, ...SHARED_DIRECTIVES, ...SHARED_PIPES],\n})\nexport class SharedModule {\n constructor(@Optional() @SkipSelf() parentModule: SharedModule) {\n if (parentModule) {\n throw new Error('SharedModule already loaded; Import in root module only.');\n }\n }\n}\n","import { AbstractControl, FormControl } from '@angular/forms';\n\nexport class CustomValidators {\n /**\n * Match two controls if they are the same\n * @param firstControlName\n * @param secondControlName\n * @returns {(AC: AbstractControl) => any}\n * @constructor\n */\n static Match(firstControlName, secondControlName) {\n return (AC: AbstractControl) => {\n const firstControlValue = AC.get(firstControlName).value; // to get value in input tag\n const secondControlValue = AC.get(secondControlName).value; // to get value in input tag\n if (firstControlValue !== secondControlValue) {\n AC.get(secondControlName).setErrors({ MatchFields: true });\n // console.log(false);\n } else {\n AC.get(secondControlName).setErrors(null);\n // console.log(true);\n return null;\n }\n };\n }\n\n /**\n * Validate control dependend on another. If baseControl has a value, dependendControl is required.\n * @param baseControl: control on wich the validation is done.\n * @param dependendControl: control to validate if the baseControl has a value.\n * @returns {(AC: AbstractControl) => any}\n * @example\n */\n static requiredDependent(baseControl, dependendControl) {\n return (AC: AbstractControl) => {\n if (AC.get(baseControl) && AC.get(dependendControl)) {\n const baseControlValue = AC.get(baseControl).value;\n const dependendControlValue = AC.get(dependendControl).value;\n if (baseControlValue && !dependendControlValue) {\n AC.get(dependendControl).setErrors({ requiredDependent: true });\n } else {\n AC.get(dependendControl).setErrors(null);\n return null;\n }\n } else {\n AC.get(dependendControl).setErrors(null);\n return null;\n }\n };\n }\n\n /**\n * Validator for phone numbers. Only validates controls with values.\n * @param control: FormControl\n * @returns validation object: 'phone { invalid: true }' if the value from param (control) does not match the regex, null otherwise.\n * @example usage: validators: [Validators.required, CustomValidators.phone]\n */\n static phone(control: FormControl) {\n const phoneRegExp = new RegExp('^(?:\\\\+?(\\\\d{1,3}))?([-. (]*(\\\\d{3})[-. )]*)?((\\\\d{3})[-. ]*(\\\\d{2,4})(?:[-.x ]*(\\\\d+))?)$');\n const phoneNo = control.value;\n if (phoneNo && !phoneRegExp.test(phoneNo)) {\n return {\n phone: {\n invalid: true,\n },\n };\n }\n return null;\n }\n\n /**\n * Validator for emails. Only validates controls with values.\n * @param control: FormControl\n * @returns validation object: 'email { invalid: true }' if the value from param (control) does not match the regex, null otherwise.\n * @example usage: validators: [Validators.required, CustomValidators.email]\n */\n static email(control: FormControl) {\n // tslint:disable-next-line:max-line-length\n const emailRegExp =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n const email = control.value;\n if (email && !emailRegExp.test(email)) {\n return {\n email: {\n invalid: true,\n },\n };\n }\n return null;\n }\n}\n","import { AccountService } from '../../account/services';\nimport { AbstractControl } from '@angular/forms';\nimport { map } from 'rxjs/operators';\nimport { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class EmailInUseValidator {\n static createValidator(accountService: AccountService) {\n return (control: AbstractControl) => {\n return accountService.check(control.value, null, null).\n pipe(map((res: any) => {\n return res.hasAccount ? { emailIsInUse: true } : null;\n }));\n };\n }\n}\n","export * from './email-in-use-validator';\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'pp-500-page',\n templateUrl: '500-page.component.html'\n})\nexport class FiveHundredPageComponent { }\n","\n\n
\n
\n
\n
\n

\n {{ '500-page-title' | translate }}\n

\n
\n
\n

{{ '500-page-description' | translate }}

\n
\n
\n \"\"\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'pp-not-found-page',\n templateUrl: 'not-found-page.component.html'\n})\nexport class NotFoundPageComponent { }\n","\n\n
\n
\n
\n
\n

\n {{ 'page-not-found-title' | translate }}\n

\n
\n
\n

{{ 'page-not-found-description' | translate }}

\n
\n
\n \"\"\n
\n
\n
\n
\n
\n
\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `.angular-cli.json`.\n\nexport const environment = {\n production: false,\n envName: 'staging',\n apiUrl: 'https://pp.api.staging.unifiedpractice.com/t',\n resourceUrl: 'https://pp.staging.unifiedpractice.com',\n googleMapsApiKey: 'AIzaSyD8ilfdA1t8O2gvq7ao_nseFS1bjuzytoQ',\n // defaultPingInterval: 60, // seconds\n defaultSessionTime: 30, // minutes\n defaultWarningTime: 1, // minutes - time to display keep-me-logged-in pop before autologout\n matomoAnalitycsId: 8,\n jqueryJSLibrary: 'https://code.jquery.com/jquery-3.5.1.min.js',\n fullSteamJSLibrary: 'https://hostedpayments-ext.fullsteampay.net/js/hostedcontrols/2.0.0/fullsteam.hostedcontrols.js',\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nimport './app/ngrx/rxjs-operators';\nimport { StartupService } from './app/core/services';\n\nif (environment.production) {\n enableProdMode();\n}\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .then((moduleRef) => {\n // Get the ConfigService instance\n const configService = moduleRef.injector.get(StartupService);\n\n const configData = configService.keyData.subscribe((config) => {\n if (config) {\n const apiKey = atob(config.pendoWeb);\n (() => {\n const script_pendo = document.createElement('script');\n script_pendo.innerHTML = `\n (function (apiKey) {\n (function (p, e, n, d, o) {\n var v, w, x, y, z; o = p[d] = p[d] || {}; o._q = [];\n v = ['initialize', 'identify', 'updateOptions', 'pageLoad']; for (w = 0, x = v.length; w < x; ++w)(function (m) {\n o[m] = o[m] || function () { o._q[m === v[0] ? 'unshift' : 'push']([m].concat([].slice.call(arguments, 0))); };\n })(v[w]);\n y = e.createElement(n); y.async = 0; y.src = 'https://cdn.pendo.io/agent/static/' + apiKey + '/pendo.js';\n z = e.getElementsByTagName(n)[0]; z.parentNode.insertBefore(y, z);\n })(window, document, 'script', 'pendo');\n })('${apiKey}');\n `;\n\n document.body.appendChild(script_pendo);\n })();\n }\n });\n\n // You can use this data as needed, e.g., log, modify global state, etc.\n })\n .catch((err) => console.error('Error bootstrapping app:', err));\n\nfunction pendoService(apiKey) {\n console.log('apiKey', apiKey);\n}\n","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}