{"version":3,"sources":["./src/app/page/customer/login/login.component.ts","./src/app/layout/header/header.component.ts","./src/app/page/customer/migrate-customer/migrate-customer.component.ts","./src/app/layout/main/base.component.ts","./src/app/page/gift-voucher/gift-voucher-checkout/gift-voucher-checkout.component.ts","./src/app/page/booking/gift-voucher-redemption/gift-voucher-redemption.component.html","./src/app/page/customer/update-email-address/update-email-address.component.html","./src/app/page/gift-voucher/gift-voucher-thank-you/gift-voucher-thank-you.component.ts","./src/app/page/invalid/invalid.component.ts","./src/app/guards/visitor.guard.ts","./src/app/page/customer/forgot-password/forgot-password.component.html","./src/app/misc/enums.ts","./src/app/page/customer/change-password/change-password.component.html","./src/app/page/customer/incoming-booking/incoming-booking.component.ts","./src/app/api/services/base.service.ts","./src/app/page/customer/reschedule/reschedule.component.html","./src/environments/environment.ts","./src/app/page/customer/reset-password/reset-password.component.ts","./src/app/page/customer/forgot-password/forgot-password.component.ts","./src/app/page/customer/change-password/change-password.component.ts","./src/app/page/customer/logout/logout.component.ts","./src/app/page/gift-voucher/gift-voucher-cart/gift-voucher-cart.component.ts","./src/app/controls/confirmation-dialog/confirmation-dialog.component.ts","./src/app/page/customer/reschedule/reschedule.component.ts","./src/app/services/date.service.ts","./src/app/page/gift-voucher/gift-voucher-home/gift-voucher-home.component.ts","./src/app/page/booking/gift-voucher-redemption/gift-voucher-redemption.component.ts","./src/app/page/customer/reset-password/reset-password.component.html","./src/app/page/gift-voucher/gift-voucher-details/gift-voucher-details.component.html","./src/app/api/models/web-booking.models.ts","./src/app/page/booking/select-consultation/select-consultation.component.ts","./src/app/page/customer/profile/profile.component.ts","./src/app/page/customer/register/register.component.html","./src/app/app.routes.ts","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/controls/cancel-dialog/cancel-dialog.component.ts","./src/app/controls/password-dialog/password-dialog.component.ts","./src/app/app.component.ts","./src/app/page/gift-voucher/gift-voucher-cart/gift-voucher-cart.component.html","./src/app/page/booking/thank-you/thank-you.component.html","./src/app/layout/steps/steps.component.ts","./src/app/page/booking/select-date-and-time/select-date-and-time.component.html","./src/app/controls/confirmation-dialog/confirmation-dialog.component.html","./src/app/page/customer/verify-email-address/verify-email-address.component.html","./src/app/app.module.ts","./src/app/page/covid/covid.component.html","./src/app/page/customer/update-email-address/update-email-address.component.ts","./src/app/page/customer/incoming-booking/incoming-booking.component.html","./src/app/app.constants.ts","./src/app/page/customer/profile/profile.component.html","./src/app/services/navigator.service.ts","./src/app/layout/main/main.component.ts","./src/app/page/booking/service-confirmation/service-confirmation.component.html","./src/app/layout/header/header.component.html","./src/app/page/booking/select-consultation/select-consultation.component.html","./src/app/page/customer/terms-and-conditions/terms-and-conditions.component.ts","./src/app/layout/footer/footer.component.ts","./src/app/services/string.service.ts","./src/app/controls/cancel-dialog/cancel-dialog.component.html","./src/app/page/customer/transaction-history/transaction-history.component.ts","./src/app/api/services/web-booking.service.ts","./src/app/page/booking/thank-you/thank-you.component.ts","./src/app/services/storage.service.ts","./src/app/page/customer/register/register.component.ts","./src/app/page/gift-voucher/gift-voucher-home/gift-voucher-home.component.html","./src/app/page/booking/select-practitioner/select-practitioner.component.ts","./src/app/page/customer/transaction-history/transaction-history.component.html","./src/app/page/customer/verify-email-address/verify-email-address.component.ts","./src/app/services/config.service.ts","./src/app/page/gift-voucher/gift-voucher-checkout/gift-voucher-checkout.component.html","./src/app/layout/footer/footer.component.html","./src/app/page/customer/login/login.component.html","./src/app/page/customer/migrate-customer/migrate-customer.component.html","./src/app/controls/password-dialog/password-dialog.component.html","./src/app/page/booking/select-date-and-time/select-date-and-time.component.ts","./src/app/api/services/web-gift-voucher.service.ts","./src/app/layout/main/main.component.html","./src/app/guards/customer.guard.ts","./src/app/api/models/base.model.ts","./src/app/layout/steps/steps.component.html","./src/app/page/gift-voucher/gift-voucher-thank-you/gift-voucher-thank-you.component.html","./src/app/page/booking/service-confirmation/service-confirmation.component.ts","./src/app/page/customer/terms-and-conditions/terms-and-conditions.component.html","./src/app/page/gift-voucher/gift-voucher-details/gift-voucher-details.component.ts","./src/app/app.component.html","./src/main.ts","./src/app/page/covid/covid.component.ts","./src/app/page/booking/select-practitioner/select-practitioner.component.html","./src/app/page/invalid/invalid.component.html","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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CAAC,EAAG;YAC9G,EAAE,IAAI,EAAE,2DAAY,CAAC,SAAS,EAAE,SAAS,EAAE,0HAAwB,EAAE,WAAW,EAAE,CAAC,qEAAa,CAAC,EAAG;YACpG,EAAE,IAAI,EAAE,2DAAY,CAAC,aAAa,EAAE,SAAS,EAAE,sIAA4B,EAAE,WAAW,EAAE,CAAC,qEAAa,CAAC,EAAG;YAC5G,EAAE,IAAI,EAAE,2DAAY,CAAC,eAAe,EAAE,SAAS,EAAE,wIAA4B,EAAE,WAAW,EAAE,CAAC,qEAAa,CAAC,EAAG;YAE9G,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,iFAAgB,EAAE;SAC9C;KACJ;CACJ,CAAC;AAQK,MAAM,gBAAgB;CAE5B;;;;;;;;;;;;AC1FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;;;;;;AC1RA;AAAA;AAAO,MAAM,qBAAqB;IAQhC,YACS,SAA8C,EAC9C,aAA4B,EACH,IAAS;QAFlC,cAAS,GAAT,SAAS,CAAqC;QAC9C,kBAAa,GAAb,aAAa,CAAe;QACH,SAAI,GAAJ,IAAI,CAAK;QATpC,UAAK,GAAG,SAAS,CAAC;QAClB,gBAAW,GAAG,wGAAwG,CAAC;QACvH,gBAAW,GAAG,KAAK,CAAC;QACpB,iBAAY,GAAG,SAAS,CAAC;QACzB,kBAAa,GAAG,EAAE,CAAC;IAM1B,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACrB,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAC9B;YAED,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAA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","file":"main.js","sourcesContent":["import { AppConfigModel, GetTokenBindingModel, GetTokenViewModel } from './../../../api/models/base.model';\nimport { BaseComponent } from './../../../layout/main/base.component';\nimport { Component, OnInit } from '@angular/core';\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\n\nimport { AppConstants } from 'src/app/app.constants';\nimport { Customer, EmailStatus, ItemCode, SendEmailVerificationBindingModel } from 'src/app/api/models/web-booking.models';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent extends BaseComponent implements OnInit {\n\n form: any;\n\n ngOnInit(): void {\n this.form = this.app.formBuilder\n .group(\n {\n email: new FormControl('', [Validators.required, Validators.email]),\n password: new FormControl('', [Validators.required, Validators.minLength(6)])\n }\n );\n\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n if (this.app.branch == null) { \n this.app.router.navigate([AppConstants.RouteSelectConsultation]); return; \n }\n if(this.app.config.loginEnableStartUpPopUpMessage)\n {\n this.app.showConfirmDialog(\n this.app.config.loginStartUpPopUpMessageContent, \n this.app.config.loginStartUpPopUpContinueButtonText,\n this.app.config.loginStartUpPopUpTitleText);\n }\n });\n this.start();\n }\n\n forgotPassword(): void {\n this.app.router.navigate([AppConstants.RouteForgotPassword]);\n }\n\n checkEmail(): void {\n this.app.spinner.show();\n this.app.webBookingService.CheckEmailStatus(this.form.getRawValue())\n .subscribe(\n data => {\n if (data.status === EmailStatus.Blocked) {\n this.app.spinner.hide();\n this.showErrorMessage('Email address is suspended.');\n }\n else if (data.status === EmailStatus.EmailVerified) {\n this.getToken();\n }\n else if (data.status === EmailStatus.ForCustomerMigration) {\n this.app.spinner.hide();\n this.sendMigrationLink();\n }\n else if (data.status === EmailStatus.WaitingForEmailVerification) {\n this.app.spinner.hide();\n this.sendEmailVerification();\n }\n else if (data.status === EmailStatus.NotYetRegistered) {\n this.app.spinner.hide();\n this.showErrorMessage('Email address is not yet registered.');\n }\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getToken(): void {\n const formModel = this.form.getRawValue();\n const model: GetTokenBindingModel =\n {\n username: formModel.email,\n email: formModel.email,\n password: formModel.password,\n grand_type: 'password'\n };\n\n this.app.spinner.show();\n this.app.webBookingService.GetToken(model)\n .subscribe(\n data => {\n data.created_date = this.app.dateService.formatDateTime(new Date());\n this.app.storageService.setItem(AppConstants.Token, JSON.stringify(data));\n this.getProfile();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n \n this.app.storageService.removeItem(AppConstants.GiftVoucherSelectedVouchers);\n this.app.basketItems = null;\n this.app.reCompute();\n\n this.checkCustomerData();\n this.redirectToNextPage();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n register(): void {\n this.app.router.navigate([AppConstants.RouteRegister]);\n }\n\n sendMigrationLink(): void {\n const formModel = this.form.getRawValue();\n this.app.spinner.show();\n const m = {\n email: formModel.email,\n branchId: this.app.branch.branchId\n };\n this.app.webBookingService.SendMigrationLink(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, formModel.email);\n this.showInfoMessage('Please check your email to get your online account activation code');\n this.app.router.navigate([AppConstants.RouteMigrateCustomer]);\n },\n error => {\n this.showErrorMessage(error);\n });\n }\n\n sendEmailVerification(): void {\n const formModel = this.form.getRawValue();\n this.app.spinner.show();\n const m = new SendEmailVerificationBindingModel();\n m.email = formModel.email;\n this.app.webBookingService.SendEmailVerification(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, formModel.email);\n this.showInfoMessage('Please check your email to get your email verification code');\n this.app.router.navigate([AppConstants.RouteVerifyEmailAddress]);\n },\n error => {\n this.showErrorMessage(error);\n });\n }\n}\n","import { Component, forwardRef, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AppConstants } from 'src/app/app.constants';\nimport { MainComponent } from '../main/main.component';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor(\n @Inject(forwardRef(() => MainComponent)) public app: MainComponent) { }\n\n ngOnInit(): void {\n \n }\n\n gotoCart() {\n this.app.router.navigate([AppConstants.RouteCheckout]);\n }\n}\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { GetTokenBindingModel } from 'src/app/api/models/base.model';\nimport { Customer, IsValidMigrationKeyBindingModel, ItemCode, SendMigrationLinkBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\nimport { Gender } from 'src/app/misc/enums';\n\n@Component({\n selector: 'app-migrate-customer',\n templateUrl: './migrate-customer.component.html',\n styleUrls: ['./migrate-customer.component.scss']\n})\nexport class MigrateCustomerComponent extends BaseComponent implements OnInit {\n\n form: FormGroup;\n isValidCode: boolean;\n\n email: string;\n customerId: string;\n\n healthFunds: any[];\n states: any[];\n selectedState: any = { suburbs: [] };\n filteredSuburbs: any[] = [];\n countries: any[];\n genders: any[];\n yesNo = [];\n \n public modalRef: BsModalRef;\n @ViewChild('addressNotesDialog') addressNotesDialog: TemplateRef;\n\n isAddressHasBeenClicked = false;\n\n ngOnInit() {\n this.app.pageTitle = 'Update your information';\n\n this.genders = [\n { value: 1, viewValue: 'Male' },\n { value: 2, viewValue: 'Female' }\n ];\n\n this.yesNo = [\n { value: true, viewValue: 'Yes' },\n { value: false, viewValue: 'No' }\n ];\n\n // this.form = this.app.formBuilder.group({\n // email: ['', { validators: Validators.required }],\n // firstName: ['', { validators: Validators.required }],\n // lastName: ['', { validators: Validators.required }],\n // mobilePhoneNumber: ['', { validators: Validators.required }],\n // dateOfBirth: [''],\n // migrationKey: ['', { validators: Validators.required }],\n // customerId: [''],\n // password: ['', { validators: Validators.required }],\n // confirmPassword: ['', { validators: Validators.required }],\n // healthFundId: [''],\n // gender: [''],\n // isAustralianPhoneNumber: [''],\n // address1: [''],\n // address4: [''],\n // postCode: [''],\n // stateId: [''],\n // countryId: ['']\n // });\n \n this.form = this.app.formBuilder.group({\n email: [''],\n firstName: [''],\n lastName: [''],\n mobilePhoneNumber: ['', { validators: Validators.required }],\n dateOfBirth: [''],\n migrationKey: ['', { validators: Validators.required }],\n customerId: [''],\n password: ['', { validators: Validators.required }],\n confirmPassword: ['', { validators: Validators.required }],\n healthFundId: [''],\n gender: [''],\n gender1: [''],\n isAustralianPhoneNumber: [''],\n address1: [''],\n address4: [''],\n postCode: [''],\n stateId: [''],\n countryId: ['']\n });\n \n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n\n this.customerId = this.app.storageService.getItem(AppConstants.CustomerId);\n if (this.app.stringService.isEmpty(this.customerId)) {\n this.app.router.navigate([AppConstants.RouteInvalid]);\n return;\n }\n\n this.email = this.app.storageService.getItem(AppConstants.CustomerEmail);\n if (this.app.stringService.isEmpty(this.email)) {\n this.app.router.navigate([AppConstants.RouteInvalid]);\n return;\n }\n\n this.getHealthFunds();\n\n this.scrollTo();\n\n });\n this.start();\n }\n\n getHealthFunds(): void {\n this.app.spinner.show();\n const model = { branchId: this.app.branch.branchId };\n this.app.webBookingService.GetHealthFunds(model).subscribe(\n data => {\n this.healthFunds = data;\n this.getStates();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n }\n );\n }\n\n getStates(): void {\n this.app.webBookingService.GetStates().subscribe(\n data => {\n this.states = data;\n this.getCountries();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n getCountries(): void {\n this.app.webBookingService.GetCountries().subscribe(\n data => {\n this.countries = data;\n this.app.spinner.hide();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n resend() {\n this.app.spinner.show();\n const m = new SendMigrationLinkBindingModel();\n m.email = this.email;\n m.branchId = this.app.branch.branchId;\n this.app.webBookingService.SendMigrationLink(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, this.email);\n this.showInfoMessage('Please check your email to active your online account');\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n validateMigrationKey() {\n this.app.spinner.show();\n const m = new IsValidMigrationKeyBindingModel();\n m.migrationKey = this.form.value.migrationKey;\n m.customerId = this.customerId;\n this.app.webBookingService.IsValidMigrationKey(m)\n .subscribe(\n data => {\n if (data.valid) {\n this.app.spinner.hide();\n\n if (data.address != null && data.address.state != null) {\n for (let a = 0; a < this.states.length; a++) {\n if (data.address.state.stateId == this.states[a].stateId) {\n this.selectedState = this.states[a];\n }\n }\n }\n\n let selectedSuburb = '';\n if (this.selectedState != null && this.selectedState.suburbs != null && this.selectedState.suburbs.length > 0) {\n for (let a = 0; a < this.selectedState.suburbs.length; a++) {\n if (this.app.stringService.isNotEmpty(data.address.address4) && data.address.address4.toUpperCase() == this.selectedState.suburbs[a].name.toUpperCase()) {\n selectedSuburb = this.selectedState.suburbs[a].name;\n }\n }\n }\n\n const model =\n {\n firstName: data.firstName,\n lastName: data.lastName,\n email: this.email,\n mobilePhoneNumber: data.mobilePhoneNumber,\n dateOfBirth: this.setBirthOfDate(data.dateOfBirth),\n password: '',\n confirmPassword: '',\n migrationKey: this.form.value.migrationKey,\n customerId: this.customerId,\n healthFundId: data.healthFundId,\n gender: data.gender,\n gender1: '',\n isAustralianPhoneNumber: false,\n address1: data.address != null ? data.address.address1 : '',\n address4: selectedSuburb,\n postCode: data.address != null ? data.address.postCode : '',\n stateId: data.address != null && data.address.state != null ? data.address.state.stateId : '',\n countryId: data.address != null && data.address.country ? data.address.country.countryId : '',\n };\n\n console.log(model);\n this.form.setValue(model);\n\n this.isValidCode = true;\n }\n else {\n this.app.spinner.hide();\n this.showErrorMessage('Failed to validate account activation code');\n this.isValidCode = false;\n }\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage('Failed to validate account activation code');\n this.isValidCode = false;\n });\n }\n\n showAddressNotification()\n { \n if (this.isAddressHasBeenClicked) return; \n this.isAddressHasBeenClicked = true;\n this.modalRef = this.app.modalService.show(\n this.addressNotesDialog,\n {\n class: 'modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n }\n\n onAddress1Change(e:any)\n {\n setTimeout(() => { \n const model = this.form.getRawValue();\n if (this.app.stringService.isNotValidAddress1(model.address1)) {\n model.address1 = '';\n this.form.patchValue(model);\n this.showErrorMessage('PO Box is not allowed.');\n this.app.spinner.hide();\n return false;\n }\n }, 100);\n }\n\n closeDialog(): void {\n this.modalRef.hide();\n }\n\n get formGroup() { return this.form.controls; }\n\n setBirthOfDate(dateOfBirth: string): Date {\n if (this.app.stringService.isNotEmpty(dateOfBirth)) { return this.app.dateService.getNewDate(dateOfBirth); }\n return new Date();\n }\n\n submit() {\n if (this.isValidCode) {\n this.migrate();\n }\n else {\n this.validateMigrationKey();\n }\n }\n\n migrate() {\n // if (this.app.stringService.isEmpty(this.form.value.firstName)) {\n // this.showErrorMessage('First Name is required.');\n // return;\n // }\n // if (this.app.stringService.isEmpty(this.form.value.lastName)) {\n // this.showErrorMessage('Last Name is required.');\n // return;\n // }\n // if (this.app.stringService.isNotEmpty(this.form.value.dateOfBirth)) {\n // const date = new Date(this.form.value.dateOfBirth);\n // this.form.value.dateOfBirth = this.app.dateService.formatDateTime(date);\n // }\n if (this.app.stringService.isEmpty(this.form.value.mobilePhoneNumber)) {\n this.showErrorMessage('Mobile No. is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.address1)) {\n this.showErrorMessage('Address 1 is required.');\n return;\n }\n if (this.app.stringService.isNotValidAddress1(this.form.value.address1)) {\n this.showErrorMessage('PO Box is not allowed.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.address4)) {\n this.showErrorMessage('Suburb is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.postCode)) {\n this.showErrorMessage('Postcode is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.stateId)) {\n this.showErrorMessage('State is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.countryId)) {\n this.showErrorMessage('Country is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.password)) {\n this.showErrorMessage('Password is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.confirmPassword)) {\n this.showErrorMessage('Confirm Password is required.');\n return;\n }\n if (this.form.value.confirmPassword != this.form.value.password) {\n this.showErrorMessage('Password and Confirm Password did not match.');\n return;\n }\n\n this.app.spinner.show();\n this.app.webBookingService.MigrateCustomer(this.form.value)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.showSuccessMessage('Your account successfully activated online.');\n this.getToken(this.email, this.form.value.password);\n this.app.storageService.removeItem(AppConstants.CustomerEmail);\n this.app.storageService.removeItem(AppConstants.CustomerId);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getToken(email: string, password: string) {\n const model: GetTokenBindingModel =\n {\n username: email,\n email,\n password,\n grand_type: 'password'\n };\n this.app.spinner.show();\n this.app.webBookingService.GetToken(model)\n .subscribe(\n data => {\n this.app.spinner.hide();\n data.created_date = this.app.dateService.formatDateTime(new Date());\n this.app.storageService.setItem(AppConstants.Token, JSON.stringify(data));\n this.getProfile();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.checkCustomerData();\n this.redirectToNextPage();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n backToLogin(): void {\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n\n formControlErrorMessage(formControl: string, maxlength: number = 11, minlength: number = 6): string {\n if (this.form.controls[formControl].touched) {\n return this.form.controls[formControl].hasError('required') ? 'This is field is required.' :\n this.form.controls[formControl].hasError('email') ? 'Must be a valid email.' :\n this.form.controls[formControl].hasError('minlength') ? 'Minimum length is ' + minlength + '.' :\n this.form.controls[formControl].hasError('maxlength') ? 'Maximum length is ' + maxlength + '.' :\n '';\n }\n }\n\n onStateOptionClicked(item) {\n this.selectedState = item;\n\n const data = this.form.getRawValue();\n data.postCode = '';\n data.address4 = '';\n this.form.patchValue(data);\n }\n\n onSuburbOptionClicked(item) {\n const data = this.form.getRawValue();\n data.postCode = item.postcode;\n this.form.patchValue(data);\n }\n\n filterSuburb(value: string): void {\n const filterValue = value.toLowerCase();\n\n if (this.selectedState.suburbs.length > 0) {\n this.filteredSuburbs = this.selectedState.suburbs.filter(suburb => {\n return suburb.name.toLowerCase().indexOf(filterValue) === 0;\n });\n } else {\n this.filteredSuburbs = [];\n }\n }\n}\n","import { AppConstants } from 'src/app/app.constants';\nimport { Component, Inject, forwardRef, HostListener, ChangeDetectorRef } from '@angular/core';\nimport { MainComponent } from './main.component';\nimport { FormGroup } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { Appointment, Customer, InvoiceDetailType, ItemCode, ProcessStatus } from 'src/app/api/models/web-booking.models';\n\n@Component({ template: '' })\n\nexport class BaseComponent {\n\n public baseTriggerChild = new Subject();\n idleTimeInHour = 15;\n\n constructor(\n @Inject(forwardRef(() => MainComponent)) public app: MainComponent,\n public cdRef: ChangeDetectorRef) {\n this.app.loadingDescription = 'Loading...'; \n this.app.hasGiftVoucherItem = false;\n this.app.hasBookingItem = true;\n }\n\n // Screen\n public timer: any;\n\n // Start the idle timer when user stop navigating the website\n // Display alert button when user idle for 15 minutes\n // Then reload page when user clicks the alert button\n @HostListener('mouseout') onMouseOut(): void {\n // if (this.app == null || this.app.config == null || this.app.config.idleTimeOut === 0) { return; }\n // let counter = 0;\n // this.timer = setInterval(() => {\n // counter++;\n // if (counter === (this.app.config.idleTimeOut * 60)) {\n // // Alert window\n // alert('You been idle for more than 15 minutes, your season has been timeout.');\n\n // // Add function to call and navigate back to a designated url\n // window.location.reload();\n\n // this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n // this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n // this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n // this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n // this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n\n // this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n\n // // Clear Timer\n // clearInterval(this.timer);\n // }\n // }, 1000);\n }\n\n // Stop the timer once the user navigate back to the website\n @HostListener('mouseover') onMouseOver(): void {\n // if (this.app == null || this.app.config == null || this.app.config.idleTimeOut === 0) { return; }\n // clearInterval(this.timer);\n }\n\n start(): void { \n const cartItems = this.app.storageService.getItem(AppConstants.GiftVoucherSelectedVouchers);\n if (this.app.stringService.isNotEmpty(cartItems)) {\n this.app.basketItems = JSON.parse(cartItems);\n }\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.Customer))) {\n this.app.customer = JSON.parse(this.app.storageService.getItem(AppConstants.Customer)) as Customer;\n }\n\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.Token))) {\n this.app.token = this.app.storageService.getItem(AppConstants.Token);\n this.app.spinner.show();\n this.app.webBookingService.ValidateUserToken()\n .subscribe(\n data => {\n this.getLocations();\n },\n error => {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.removeItem(AppConstants.Token);\n this.app.storageService.removeItem(AppConstants.Customer);\n this.showErrorMessage('Session time out, please login to continue');\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteLogin]);\n });\n }\n else {\n this.getLocations();\n }\n }\n\n getLocations(): void {\n this.app.spinner.show();\n this.app.webBookingService.GetLocations()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.branch = data[0];\n this.app.storageService.setItem(AppConstants.DefaultBranch, JSON.stringify(this.app.branch));\n this.checkCustomerData();\n this.baseTriggerChild.next('go');\n },\n error => {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteLogin]);\n this.showErrorMessage(error);\n }\n );\n }\n\n showErrorMessage(data: any): void {\n const message = this.getBadRequest(data);\n this.app.toastr.error(message, 'Error', { timeOut: 3000 });\n }\n\n showInfoMessage(message: string): void {\n this.app.toastr.info(message, 'Info', { timeOut: 3000 });\n }\n\n showSuccessMessage(message: string): void {\n this.app.toastr.success(message, 'Success', { timeOut: 3000 });\n }\n\n checkCustomerData(): void {\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.Customer))) {\n this.app.customer = JSON.parse(this.app.storageService.getItem(AppConstants.Customer)) as Customer;\n\n const currentDate = new Date();\n\n if (this.app.customer != null) {\n\n if (this.app.stringService.isNotEmpty(this.app.customer.dateJoined)) {\n\n const dateJoined = this.app.dateService.getNewDate(this.app.customer.dateJoined);\n\n if (dateJoined.toDateString() === currentDate.toDateString() &&\n this.app.customer.hasPaidAppointment !== true) {\n this.app.customer.isNewCustomer = true;\n } else if (this.app.customer.hasPaidAppointment !== true) {\n this.app.customer.isNewCustomer = true;\n }\n else {\n this.app.customer.isNewCustomer = false;\n }\n }\n\n\n if (this.app.stringService.isNotEmpty(this.app.customer.lastTransactionDate)) {\n const lastTrasactionDate = this.app.dateService.getNewDate(this.app.customer.lastTransactionDate);\n if (this.getYearDifference(currentDate, lastTrasactionDate) >= 2) {\n this.app.customer.is2YearLastTransaction = true;\n }\n else{\n this.app.customer.is2YearLastTransaction = false;\n }\n }\n else {\n this.app.customer.is2YearLastTransaction = true;\n }\n }\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n }\n }\n\n getYearDifference(d1: any, d2: any) {\n let timeDiff = d1 - d2.getTime();\n let age = (timeDiff / (1000 * 3600 * 24)) / 365.25;\n return age;\n }\n\n redirectToNextPage(): void {\n // Clear Current Service in Process\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.Appointment))) {\n const appointment = JSON.parse(this.app.storageService.getItem(AppConstants.Appointment)) as Array;\n if (appointment != null && appointment.length > 0)\n {\n this.app.storageService.removeItem(AppConstants.Appointment);\n // this.cancelBaseAppointment(appointment[0].appointmentId);\n }\n } \n\n // Clear Current Cart In Progress\n var strBasket = this.app.storageService.getItem(AppConstants.GiftVoucherSelectedVouchers);\n if (this.app.stringService.isNotEmpty(strBasket)) {\n var basket = JSON.parse(strBasket);\n console.log(basket);\n if (basket != null && basket.length > 0) {\n basket.forEach((e: { invoiceDetailType: InvoiceDetailType; appointmentId: any; }) => {\n if (e.invoiceDetailType == InvoiceDetailType.Service) {\n // this.cancelBaseAppointment(e.appointmentId);\n }\n });\n }\n this.app.storageService.removeItem(AppConstants.GiftVoucherSelectedVouchers);\n this.app.reCompute();\n }\n\n // Redirect if to select treatment if no redirect state \n const redirectState = this.app.storageService.getItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n if (this.app.stringService.isEmpty(redirectState) || redirectState === AppConstants.RouteLogin) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n\n // Get Data\n if (this.app.stringService.isEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTreatment))) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n const service = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTreatment)) as ItemCode;\n\n const isNextPageConfirmationPage = redirectState.includes(AppConstants.RouteServiceConfirmation);\n if (isNextPageConfirmationPage === false) {\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.router.navigate([redirectState]);\n return;\n }\n\n \n\n if (!service.newClientTreatment && (this.app.customer.isNewCustomer || this.app.customer.is2YearLastTransaction)) {\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n if (service.newClientTreatment && (!this.app.customer.isNewCustomer || !this.app.customer.is2YearLastTransaction)) {\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n\n this.app.router.navigate([redirectState]);\n }\n\n cancelBaseAppointment(appointmentId: string): void {\n const m = { appointmentId };\n this.app.webBookingService.CancelAppointment(m)\n .subscribe(data => { }, error => { });\n }\n\n getBadRequest(data: any): string {\n let message = '';\n if (data != null && data._body != null) {\n const body = JSON.parse(data._body);\n if (body.message != null) { message = body.message; }\n if (body.error_description != null) { message = body.error_description; }\n }\n else if (data.error != null && data.error !== undefined) {\n if (data.error.message != null) { message = data.error.message; }\n if (data.error.error_description != null) { message = data.error.error_description; }\n }\n else {\n message = data;\n }\n return message;\n }\n\n markFormGroupTouched(formGroup: FormGroup): void {\n if (formGroup === null || formGroup === undefined) { return; }\n for (const i in formGroup.controls) {\n formGroup.controls[i].markAsTouched();\n }\n }\n\n scrollTo(): void {\n location.hash = '#top';\n }\n}\n","import { AfterViewInit, Component, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport { PlaceOrderViewModel, ComputeOrderViewModel, ProcessStatus, CancelPendingTransactionBindingModel, VerifyPendingTransactionBindingModel, ComputeOrderBindingModel, Item, Payment, SetTransactionAsPaidOnlineBindingModel, CommitPaymentBindingModel, PlaceOrderBindingModel, DownloadGiftVoucherBindingModel, SendTransactionToEmailBindingModel } from 'src/app/api/models/web-booking.models';\nimport { RequestType } from 'src/app/api/services/base.service';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\nimport { GiftVoucherOptionType, InvoiceDetailType, PaymentTypeGroup, PendingTrasactionStatus } from 'src/app/misc/enums';\n\ndeclare let paypal: any;\n\n@Component({\n selector: 'app-gift-voucher-checkout',\n templateUrl: './gift-voucher-checkout.component.html',\n styleUrls: ['./gift-voucher-checkout.component.scss']\n})\nexport class GiftVoucherCheckoutComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {\n\n showPayButton = false;\n pendingTransaction: PlaceOrderViewModel = new PlaceOrderViewModel();\n order!: PlaceOrderViewModel;\n computed!: ComputeOrderViewModel;\n\n // PopUp\n public win: any;\n public cFrame: any;\n public iframe: any;\n public description = 'Don’t see the secure PayPal browser? We’ll help you re-launch the window to complete your purchase.';\n public showPopUp = false;\n public responseInitializePaymentCount = 0;\n public responseWorldPayCount = 0;\n public responseInitializePaymentReadyCount = 0;\n public paymentInProgress = false;\n\n timer: any;\n\n public disableCancellation = false;\n public monitoringCounter = 0;\n\n public showPayPal = true;\n\n public acceptTerms: boolean = false;\n\n ngOnInit() {\n this.app.loadingDescription = 'Loading...';\n this.app.pageTitle = '';\n }\n\n ngAfterViewInit(): void {\n this.baseTriggerChild.subscribe(() => {\n this.app.pageTitle = this.app.config.page3Header;\n\n if (this.app.customer == null) {\n this.showInfoMessage('Please login to continue');\n this.app.storageService.setItem(AppConstants.RedirectState, AppConstants.RouteCheckout);\n this.app.router.navigate([AppConstants.RouteLogin]);\n this.app.spinner.hide();\n return;\n }\n\n if (this.app.stringService.isEmpty(this.app.customer.firstName)) {\n this.app.spinner.hide();\n this.app.loadingDescription = 'Loading...';\n this.showErrorMessage('Your First Name is invalid, update your First Name and click update button to continue.');\n this.app.addLogs('Checkout', 'Required to update first name.');\n this.redirectToUpdateProfile();\n return;\n }\n\n if (this.app.stringService.isEmpty(this.app.customer.lastName)) {\n this.app.spinner.hide();\n this.app.loadingDescription = 'Loading...';\n this.showErrorMessage('Your Last Name is invalid, update your Last Name and click update button to continue.');\n this.app.addLogs('Checkout', 'Required to update last name.');\n this.redirectToUpdateProfile();\n return;\n }\n\n this.computeOrder();\n this.app.reCompute();\n });\n\n this.start();\n }\n\n ngOnDestroy(): void {\n this.baseTriggerChild.unsubscribe();\n this.app.cartUpdateTrigger.unsubscribe();\n }\n\n back(requestType?: RequestType) {\n this.app.loadingDescription = 'loading...';\n this.cancelPendingTransaction(requestType);\n this.app.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader);\n this.app.storageService.setItem(AppConstants.GiftVoucherProcessStatus, ProcessStatus.SelectGiftVoucher.toString());\n this.app.router.navigate([AppConstants.RouteGiftVouchers]);\n }\n\n login() {\n this.app.storageService.setItem(AppConstants.RedirectState, AppConstants.RouteCheckout);\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n \n gotoHome() {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n\n gotoVoucher() {\n this.app.router.navigate([AppConstants.RouteGiftVouchers]);\n }\n\n // #region Paypal Button\n createPayPalButton(): void {\n let clientId: string = '';\n if (this.app.config.payPalPaymentMode === 'sandbox') {\n clientId = this.app.config.payPalSandboxCliendId;\n }\n else if (this.app.config.payPalPaymentMode === 'production') {\n clientId = this.app.config.payPalProductionCliendId;\n }\n this.loadExternalScript('https://www.paypal.com/sdk/js?currency=' + this.app.config.payPalCurrencyCode + '&client-id=' + clientId);\n }\n\n loadExternalScript(scriptUrl: string): any {\n const scriptElement = document.createElement('script');\n scriptElement.src = scriptUrl;\n scriptElement.addEventListener('load', () => {\n this.loadPayPalSmartPaymentButton();\n });\n scriptElement.addEventListener('error', (e) => {\n this.showErrorMessage('PayPal online payment loading failed.');\n this.showPayPal = false;\n });\n document.body.appendChild(scriptElement);\n setTimeout(() => {\n this.app.spinner.hide();\n }, 3000);\n }\n\n loadPayPalSmartPaymentButton(): void {\n paypal.Buttons({\n style: {\n layout: 'horizontal',\n tagline: false\n },\n onClick: (data: any, actions: any) => {\n if (this.acceptTerms && this.app.hasBookingItem) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n this.disableCancellation = true;\n return true;\n }\n else if(this.app.hasBookingItem) {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return false;\n }\n return true;\n },\n createOrder: (data: any, actions: { order: { create: (arg0: { purchase_units: { amount: { value: number; }; }[]; }) => any; }; }) => {\n return actions.order.create({\n purchase_units: [{\n amount: {\n value: this.order.onlinePaymentAmountToBePaid\n }\n }]\n });\n },\n\n onApprove: (data: { orderID: string; }, actions: { order: { capture: () => Promise; }; }) => {\n // cset trabsaction as paid online\n const model = {\n customerId: this.app.customer.customerId,\n pendingTransactionId: this.order.pendingTransactionId,\n onlinePaymentTransactionNo: data.orderID\n };\n this.order.onlineOrderId = data.orderID;\n this.app.storageService.setItem(AppConstants.PendingTransaction, JSON.stringify(this.order));\n this.app.webGiftVoucherService.SetTransactionAsPaidOnline(model).subscribe(\n () => {\n // check if appointment is expired.\n this.app.spinner.show();\n\n // proceed paypal payment\n return actions.order.capture().then(\n ( payment: { id: string; }) => { \n // Show a success message to your buyer\n this.app.ngZone.run(() => {\n this.commitPayment(payment.id);\n });\n },\n ( error: any) => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n return;\n });\n },\n error => {\n this.cancelPendingTransaction();\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n },\n\n onCancel: (data: any, actions: any) => {\n return;\n },\n\n onError: (data: any, actions: any) => {\n return;\n }\n }).render('#paypal-button-container');\n }\n //#endregion\n \n // #region Pending Transaction\n cancelPendingTransaction(\n requestType?: RequestType,\n reloadPage?: boolean,\n recreatePending: boolean = false) {\n const pHeader = JSON.parse(this.app.storageService.getItem(AppConstants.GiftVoucherPendingTransactionHeader)) as PlaceOrderViewModel;\n if (this.app.stringService.isEmpty(pHeader) || this.app.stringService.isEmpty(pHeader.pendingTransactionId)) {\n return;\n }\n const model: CancelPendingTransactionBindingModel = new CancelPendingTransactionBindingModel();\n model.customerId = this.app.customer.customerId;\n model.pendingTransactionId = pHeader.pendingTransactionId;\n this.app.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader);\n this.app.webBookingService.CancelPendingTransaction(model, requestType).subscribe(\n () => {\n this.app.spinner.hide();\n if (reloadPage) {\n location.reload();\n }\n if (recreatePending) {\n this.computeOrder();\n } else {\n this.app.spinner.hide();\n }\n },\n () => {\n this.app.spinner.hide();\n },\n );\n }\n\n verifyPendingTransaction() {\n const model: VerifyPendingTransactionBindingModel = new VerifyPendingTransactionBindingModel();\n model.pendingTransactionId = this.order.pendingTransactionId;\n model.customerId = this.app.customer.customerId;\n this.app.webBookingService.VerifyPendingTransaction(model)\n .subscribe(\n () => {\n this.app.spinner.hide();\n this.computeOrder();\n },\n () => {\n this.app.spinner.hide();\n this.computeOrder();\n });\n }\n\n computeOrder() {\n this.app.spinner.show();\n if (this.app.basketItems == null || this.app.basketItems.length === 0) {\n this.app.router.navigate([AppConstants.RouteGiftVouchers]);\n this.app.spinner.hide();\n return;\n }\n\n const model: ComputeOrderBindingModel = new ComputeOrderBindingModel();\n model.branchId = this.app.branch.branchId;\n model.customerId = this.app.customer.customerId;\n model.items = this.app.basketItems;\n const payment: Payment = new Payment();\n payment.paymentTypeGroupId = PaymentTypeGroup.Web;\n model.payments = [];\n model.payments.push(payment);\n\n for (let a = 0; a < this.app.basketItems.length; a++) {\n if (this.app.basketItems[a].originalFee > this.app.basketItems[a].depositAmount) {\n model.enableDepositRequired = true;\n }\n }\n\n this.app.webBookingService.ComputeOrder(model)\n .subscribe(\n (data) => {\n this.computed = data;\n this.showPayButton = true;\n this.app.storageService.setItem(AppConstants.GiftVoucherPendingTransactionHeader, JSON.stringify(data));\n this.scrollTo();\n this.app.spinner.hide();\n this.placeOrder();\n },\n (error) => {\n this.showPayButton = false;\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n }\n\n redirectToUpdateProfile() {\n this.baseTriggerChild.unsubscribe();\n this.app.router.navigate([AppConstants.RouteProfile]);\n this.app.storageService.setItem(AppConstants.RedirectState, AppConstants.RouteCheckout);\n }\n\n placeOrder() {\n this.app.loadingDescription = 'Please do not hit on Refresh or the Back button we are currently processing your transaction.';\n const model: PlaceOrderBindingModel = new PlaceOrderBindingModel();\n model.branchId = this.app.branch.branchId;\n model.customerId = this.app.customer.customerId;\n model.items = this.app.basketItems;\n\n for (let a = 0; a < this.app.basketItems.length; a++) {\n if (this.app.basketItems[a].originalFee > this.app.basketItems[a].depositAmount) {\n model.enableDepositRequired = true;\n }\n }\n\n const payment: Payment = new Payment();\n payment.paymentTypeGroupId = PaymentTypeGroup.Web;\n model.payments = [];\n model.payments.push(payment);\n this.app.webBookingService.PlaceOrder(model)\n .subscribe(\n (data) => {\n this.order = data;\n this.createPayPalButton();\n },\n (error) => {\n const message = this.getBadRequest(error);\n if(message == 'Transaction timeout.'){\n\n var newList: Item[] = [];\n this.app.basketItems.forEach((e, i) => {\n if(e.invoiceDetailType == InvoiceDetailType.Service)\n {\n this.app.cancelAppointment(e.appointmentId);\n }\n else\n {\n newList.push(e);\n }\n });\n this.showErrorMessage(\"Appointment in your cart has been expired. Please retry to book.\");\n\n this.app.basketItems = newList;\n this.app.reCompute();\n this.computeOrder(); \n }\n else{\n this.showErrorMessage(error);\n }\n });\n }\n \n redirectToGiftVoucherRedemption(): void {\n if (this.acceptTerms !== true) {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return;\n }\n this.app.router.navigate([AppConstants.RouteGiftVoucherRedemption]);\n }\n \n commitPayment(onlinePaymentId: string) {\n const commitPaymentBindingModel = {\n customerId: this.app.customer.customerId,\n onlinePaymentTransactionId: onlinePaymentId,\n pendingTransactionId: this.order.pendingTransactionId,\n };\n this.app.webGiftVoucherService.CommitPayment(commitPaymentBindingModel)\n .subscribe(\n data => {\n this.downLoadGiftVoucher(this.order.pendingTransactionId, this.app.customer.customerId);\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n }\n\n downLoadGiftVoucher(pendingTransactionId: string, customerId: string) {\n const model = new DownloadGiftVoucherBindingModel();\n model.customerId = customerId;\n model.pendingTransactionId = pendingTransactionId;\n model.token = JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token;\n this.app.webGiftVoucherService.DownloadGiftVoucher(model)\n .subscribe((data) => {\n this.paymentInProgress = false;\n this.app.storageService.setItem(AppConstants.GiftVoucherUrls, JSON.stringify(data)); \n this.app.webBookingService.SendTransactionToEmail(model).subscribe();\n this.saveAppointmentResult();\n this.app.spinner.hide();\n }, (error) => {\n this.app.spinner.hide(); \n this.app.addLogs('Download GV', error);\n this.app.storageService.setItem(AppConstants.GiftVoucherProcessStatus, ProcessStatus.Result.toString());\n this.paymentInProgress = false;\n this.app.showErrorMessage(error);\n this.app.router.navigate([AppConstants.RouteInvalid]); \n });\n }\n\n saveAppointmentResult(): void { \n this.app.storageService.setItem(AppConstants.BookingTreatmentResult, JSON.stringify(this.app.basketItems));\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.Result.toString());\n \n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.GiftVoucherSelectedVouchers);\n this.app.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader); \n \n this.app.basketItems = []; \n this.app.reCompute();\n this.app.router.navigate([AppConstants.RouteGvThankYou]);\n }\n // #endregion\n\n // #region Pay At the Appointment \n confirmAppointment(): void {\n if (this.acceptTerms !== true) {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return;\n } \n const ids = [];\n for (const appointment of this.app.basketItems) {\n ids.push(appointment.appointmentId);\n }\n const m = {\n appointmentIds: ids,\n branchId: this.app.branch.branchId,\n customerId: this.app.customer.customerId,\n isSecured: false,\n externalGiftVoucherNumber: \"\",\n holdAmount: 0, \n token: JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token\n };\n this.app.spinner.show();\n this.app.webBookingService.ConfirmAppointment(m)\n .subscribe(\n data => {\n this.saveAppointmentResult(); \n this.app.router.navigate([AppConstants.RouteGvThankYou]);\n this.app.spinner.hide();\n },\n error => {\n this.app.spinner.hide(); \n this.app.addLogs('Confirm Appointment', error);\n this.app.storageService.setItem(AppConstants.GiftVoucherProcessStatus, ProcessStatus.Result.toString());\n this.paymentInProgress = false;\n this.app.showErrorMessage(error);\n this.app.router.navigate([AppConstants.RouteInvalid]); \n });\n }\n // #endregion\n\n}\n","\n\n
\n
\n
\n
\n Validate Gift Voucher\n
\n
\n
\n
\n \n Gift Voucher Number 1\n \n \n
\n
\n \n Gift Voucher Number 2\n \n \n
\n
\n \n Gift Voucher Amount Available\n \n \n
\n
\n Validate\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n

Redeem Gift Voucher

\n
\n
\n
\n
\n
\n \n Amount to be Pay\n \n \n
\n
\n \n Redeemed Amount\n \n \n
\n
0\">\n \n Payable using PayPal\n \n \n
\n
\n Pay\n \n
\n
\n\n\n
\n
\n
\n
","
\n
\n
\n
\n

Email verification

\n
\n
\n \n Email Verification Code*\n \n \n Resend email verification code\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { InvoiceDetailType } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-gift-voucher-thank-you',\n templateUrl: './gift-voucher-thank-you.component.html',\n styleUrls: ['./gift-voucher-thank-you.component.scss']\n})\nexport class GiftVoucherThankYouComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n totalAmount: number = 0;\n voucherUrl: string = '';\n resultItems: any[] = [];\n vouchers:any;\n\n ngOnInit() {\n this.app.spinner.show();\n this.app.loadingDescription = 'Loading...';\n this.app.pageTitle = '';\n this.loadExternalScript('https://addevent.com/libs/atc/1.6.1/atc.min.js');\n \n this.baseTriggerChild.subscribe(() => {\n this.app.pageTitle = 'Result';\n \n var strVouchers = this.app.storageService.getItem(AppConstants.GiftVoucherUrls);\n this.resultItems = JSON.parse(this.app.storageService.getItem(AppConstants.BookingTreatmentResult));\n\n this.resultItems.forEach((e, i) => {\n this.totalAmount += e.fee;\n if (e.invoiceDetailType == InvoiceDetailType.GiftVoucher) {\n\n if(this.app.stringService.isNotEmpty(strVouchers))\n {\n this.vouchers = JSON.parse(strVouchers);\n if(this.vouchers!=null && this.vouchers.orderedDetails!=null)\n {\n e.url = this.vouchers.orderedDetails[i].url;\n }\n }\n }\n });\n \n this.app.spinner.hide();\n });\n }\n\n ngAfterViewInit(): void {\n this.start();\n }\n \n loadExternalScript(scriptUrl: string): any {\n return new Promise((resolve, reject) => {\n const scriptElement = document.createElement('script')\n scriptElement.src = scriptUrl\n scriptElement.onload = resolve\n document.body.appendChild(scriptElement);\n });\n }\n \n gotoHome() {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n\n gotoVoucher() {\n this.app.router.navigate([AppConstants.RouteGiftVouchers]);\n }\n\n download(item) {\n window.open(item.url, '_target');\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-invalid',\n templateUrl: './invalid.component.html',\n styleUrls: ['./invalid.component.scss']\n})\nexport class InvalidComponent extends BaseComponent implements OnInit {\n\n ngOnInit() {\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n });\n this.start();\n }\n\n gotoHome() {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AppConstants } from '../app.constants';\nimport { StorageService } from '../services/storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class VisitorGuard implements CanActivate {\n\n constructor(\n public router: Router,\n public storageService: StorageService) {\n }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n\n const hasToken = !!this.storageService.getItem(AppConstants.Token);\n const hasCustomer = !!this.storageService.getItem(AppConstants.Customer);\n if (hasToken && hasCustomer) {\n this.router.navigate([AppConstants.RouteSelectConsultation]);\n return false;\n }\n else {\n this.storageService.removeItem(AppConstants.Token);\n this.storageService.removeItem(AppConstants.Customer);\n return true;\n }\n }\n}\n","
\n
\n
\n
\n

Forgot Password

\n
\n
\n
\n Enter your email address to reset your password\n
\n
\n
\n
\n
\n \n E-mail\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
","export enum OnlineUserStatus {\r\n NotYetRegistered = -1,\r\n NoStatus = 0,\r\n Verified = 1,\r\n WaitingForEmailVerification = 2,\r\n Blocked = 3,\r\n TemporaryAccountForFacebookLogin = 4,\r\n AccountNeedToLinkToFacebook = 5,\r\n AccountNeedToLinkToGSIAndFacebook = 6,\r\n AccountNeedToLinkToIdentityAndFacebook = 7,\r\n AccountNeedToLinkToIdentity = 8,\r\n AddToUserLogins = 9,\r\n FromFacebookCanvasLogin = 10,\r\n AccountNoCustomerRecordWithAspNetUser = 11\r\n}\r\n\r\nexport enum PaymentType {\r\n Cash = 2,\r\n CreditCard = 3,\r\n Cheque = 4,\r\n GiftVoucher = 5,\r\n CreditUsed = 6,\r\n PmPosting = 7,\r\n ArPosting = 8,\r\n BillToAccount = 9,\r\n CreditRefund = 11,\r\n DirectDebit = 12,\r\n RoomCharge = 13,\r\n Hicaps = 14,\r\n MarketSmartRewards = 15,\r\n Web = 16,\r\n Others = 30,\r\n}\r\n\r\n\r\nexport enum OnlinePaymentTypesCode {\r\n PayPal = 1,\r\n EWay = 2,\r\n WorldPay = 3,\r\n ZipMoney = 4,\r\n FacebookPayment = 5,\r\n GiftVoucher = 6,\r\n SagePay = 7,\r\n MasterCardMigs = 8,\r\n AsiaPay = 9,\r\n Cash = 10\r\n}\r\n\r\nexport enum DayOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6\r\n}\r\n\r\nexport enum ItemCodeType {\r\n None = 0,\r\n Service = 1,\r\n Class = 2,\r\n Membership = 3,\r\n GiftVoucher = 4,\r\n Series = 13,\r\n Package = 9,\r\n FoodAndBeverage = 6,\r\n FacilityService = 12\r\n}\r\n\r\nexport enum ProviderGenderPreference {\r\n Male = 1,\r\n Female = 2,\r\n Either = 3\r\n}\r\n\r\nexport enum PaymentTypeGroup {\r\n Cash = 2,\r\n CreditCard = 3,\r\n Cheque = 4,\r\n GiftVoucher = 5,\r\n CreditUsed = 6,\r\n PmPosting = 7,\r\n ArPosting = 8,\r\n BillToAccount = 9,\r\n CreditRefund = 11,\r\n DirectDebit = 12,\r\n RoomCharge = 13,\r\n Hicaps = 14,\r\n MarketSmartRewards = 15,\r\n Web = 16,\r\n Others = 30,\r\n}\r\n\r\n\r\nexport enum InvoiceDetailType {\r\n SurChargeItem = -3,\r\n SpecialBooking = -2,\r\n DefaultDeliveryItem = -1,\r\n Service = 1,\r\n Class = 2,\r\n Membership = 3,\r\n GiftVoucher = 4,\r\n FoodAndBeverage = 6,\r\n Package = 9,\r\n DestinationPackage = 10,\r\n DirectDebit = 11,\r\n FacilityService = 12,\r\n Series = 13,\r\n Stock = 20,\r\n Credit = 21,\r\n Tip = 22,\r\n Refund = 25,\r\n StockDelivery = 26,\r\n None = 0\r\n}\r\n\r\nexport enum GiftVoucherOptionType {\r\n NotGiftVoucher = 0,\r\n IsElectronic = 1,\r\n IsGiftBoxed = 2,\r\n IsRegularPost = 3,\r\n IsExpressPost = 4,\r\n IsPrintAtHome = 5,\r\n IsPickUp = 6,\r\n IsPickUpBranch1 = 7,\r\n IsPickUpBranch2 = 8,\r\n IsPickUpBranch3 = 9,\r\n IsPickUpBranch4 = 10,\r\n}\r\n\r\nexport enum PendingTrasactionStatus {\r\n Pending = 1,\r\n Successful = 2,\r\n Cancelled = 3,\r\n Deleted = 4,\r\n Failed = 5,\r\n OnlinePaymentSuccessful = 6,\r\n ConvertingToInvoice = 7,\r\n TransactionTimeOut = 8,\r\n TransactionTimeOutButPaid = 9\r\n}\r\n\r\nexport enum WebSpecialType {\r\n NotYetImplemented = 0,\r\n ItemCodeGroup = 1,\r\n Service = 2,\r\n Package = 3,\r\n StockGroup = 4,\r\n Stock = 5\r\n}\r\n\r\nexport enum StockCode {\r\n None = 0,\r\n Retail = 1,\r\n Professional = 2\r\n}\r\n\r\nexport enum Gender {\r\n None = 0,\r\n Male = 1,\r\n Female = 2\r\n}\r\n\r\nexport enum AppointmentDetailType {\r\n Preparation = 2,\r\n Special = 4,\r\n Class = 8,\r\n Service = 32,\r\n TurnAround = 1024,\r\n CustomerBreak = 32768,\r\n FandB = 1048576,\r\n FacilityService = 33554432,\r\n TurnaroundEquipment = 1073741824\r\n}","
\n
\n
\n
\n

Change Password

\n
\n
\n
\n Please enter current password and your new password.\n
\n
\n
\n
\n
\n \n Current Password*\n \n \n
\n
\n
\n
\n \n New Password*\n \n \n
\n
\n
\n
\n \n Confirm New Password*\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
","import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\n\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ConfirmationDialogComponent } from 'src/app/controls/confirmation-dialog/confirmation-dialog.component';\nimport { CancelDialogComponent } from 'src/app/controls/cancel-dialog/cancel-dialog.component';\n\n@Component({\n selector: 'app-incoming-booking',\n templateUrl: './incoming-booking.component.html',\n styleUrls: ['./incoming-booking.component.scss'],\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class IncomingBookingComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n // expandedElement: any;\n appointments: any[] = [];\n appointmentsColumns: string[] = ['date', 'action'];\n dsAppointments!: MatTableDataSource;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort;\n\n expandedElement: any;\n\n addEvents: any[] = [];\n\n ngOnInit() {\n this.baseTriggerChild.subscribe((event) => {\n this.app.pageTitle = 'Bookings';\n this.addEvents = [\n {\n description: 'Apple',\n dataDirect: 'apple',\n icon: 'https://www.addevent.com/gfx/icon-apple-t5.svg',\n allDay: 'false',\n dateFormat: 'MM/DD/YYYY',\n },\n {\n description: 'Google (online)',\n dataDirect: 'google',\n icon: 'https://www.addevent.com/gfx/icon-google-t5.svg',\n allDay: 'false',\n dateFormat: 'MM/DD/YYYY',\n },\n {\n description: 'Outlook',\n dataDirect: 'outlook',\n icon: 'https://www.addevent.com/gfx/icon-outlook-t5.svg',\n allDay: 'false',\n dateFormat: 'MM/DD/YYYY',\n },\n {\n description: 'Outlook.com(online)',\n dataDirect: 'outlookcom',\n icon: 'https://www.addevent.com/gfx/icon-outlookcom-t5.svg',\n allDay: 'false',\n dateFormat: 'MM/DD/YYYY',\n },\n {\n description: 'Yahoo(online)',\n dataDirect: 'yahoo',\n icon: 'https://www.addevent.com/gfx/icon-yahoo-t5.svg',\n allDay: 'false',\n dateFormat: 'MM/DD/YYYY',\n },\n ];\n \n this.getIncomingAppointments();\n\n });\n }\n\n ngAfterViewInit(): void {\n this.start();\n }\n\n loadExternalScript(scriptUrl: string): any {\n return new Promise((resolve, reject) => {\n const scriptElement = document.createElement('script');\n scriptElement.src = scriptUrl;\n scriptElement.onload = resolve;\n document.body.appendChild(scriptElement);\n });\n }\n\n back() {\n history.back();\n }\n\n locateUs(): void {\n this.app.router.navigate(['customer/locate-us']);\n }\n\n redirectToCancelAppointment(appointment: any) {\n this.app.storageService.setItem(AppConstants.Appointment, JSON.stringify(appointment));\n this.app.router.navigate(['customer/cancel-appointment']);\n }\n\n confirmDialog(appointment: any): void {\n const dialogRef = this.app.dialog.open(ConfirmationDialogComponent, {\n data: { action: '0' },\n });\n dialogRef.afterClosed().subscribe((result: { action: string; } | null) => {\n console.log(result);\n if (result != null) {\n if (result.action == '1') {\n this.confirmAppointment(appointment);\n }\n }\n });\n }\n\n confirmAppointment(appointment: any) {\n const model = {\n appointmentId: appointment.appointmentId,\n customerId: this.app.customer.customerId,\n branchId: appointment.branchId\n };\n this.app.spinner.show();\n this.app.webBookingService.ConfirmAppointmentByAppoitnmentId(model)\n .subscribe(\n (data) => {\n this.showSuccessMessage('We are looking forward to seeing you. You can click on More Info to check details about your appointment.

');\n this.getIncomingAppointments();\n },\n (error) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n } \n\n cancelDialog(appointment: any): void {\n if(appointment.hoursBeforeAppointment <= 48)\n {\n this.showMessageBox('You appointment is within 48 hours please contact us on +612 9302 2888 to reschedule or cancel.

');\n }\n else{\n const dialogRef = this.app.dialog.open(CancelDialogComponent, {\n data: { action: '0', appointment: appointment },\n });\n dialogRef.afterClosed().subscribe((result: { action: string; } | null) => {\n console.log(result);\n if (result != null) {\n if (result.action == '1') {\n this.cancelAppointment(appointment);\n }\n }\n });\n } \n }\n\n cancelAppointment(appointment: any) {\n const model = {\n appointmentId: appointment.appointmentId,\n customerId: this.app.customer.customerId,\n branchId: appointment.branchId\n };\n this.app.spinner.show();\n this.app.webBookingService.CancelAppointmentByAppoitnmentId(model)\n .subscribe(\n (data) => {\n if(appointment.isPaid)\n {\n this.showMessageBox('Your payment is in credit on your patient profile. Please contact us on +612 9302 2888 if you require a refund.

');\n } \n this.getIncomingAppointments();\n },\n (error) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getIncomingAppointments() {\n this.app.spinner.show();\n this.app.webBookingService.GetIncomingAppointments()\n .subscribe(\n (data: any) => {\n this.appointments = data == null ? [] : data;\n this.dsAppointments = new MatTableDataSource(this.appointments);\n setTimeout(() => {\n this.dsAppointments.paginator = this.paginator;\n this.dsAppointments.sort = this.sort;\n this.app.spinner.hide();\n }, 500);\n this.loadExternalScript('https://addevent.com/libs/atc/1.6.1/atc.min.js');\n },\n (error: string) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n \n showMessageBox(message: string): void {\n const dialogRef = this.app.dialog.open(ConfirmationDialogComponent, {\n data: { \n action: '0',\n description: message,\n showConfirm: false\n },\n });\n dialogRef.afterClosed().subscribe((result: { action: string; } | null) => {\n console.log(result);\n if (result != null) {\n if (result.action == '1') {\n }\n }\n });\n }\n\n reschedule(appointment: any) {\n if(appointment.hoursBeforeAppointment <= 48)\n {\n this.showMessageBox('You appointment is within 48 hours please contact us on +612 9302 2888 to reschedule or cancel.

');\n }\n else{\n this.app.router.navigate(['customer/reschedule'], { queryParams: { aid: appointment.appointmentId } });\n } \n }\n \n rebook(appointment: any) { \n const model = {\n appointmentId: appointment.appointmentId\n }; \n this.app.spinner.show();\n this.app.webBookingService.GetTreatmentsByAppointmentId(model)\n .subscribe(\n (data: any) => {\n this.app.storageService.setItem(AppConstants.BookingSelectedTreatment, JSON.stringify(data));\n this.app.router.navigate([AppConstants.RouteSelectPractitioner]);\n },\n (error: string) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n}\n\n","import { AppConstants } from 'src/app/app.constants';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { catchError, } from 'rxjs/operators';\r\nimport { AppConfigModel } from '../models/base.model';\r\nimport { StorageService } from 'src/app/services/storage.service';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\nimport { StringService } from 'src/app/services/string.service';\r\n\r\n@Injectable()\r\nexport class BaseService {\r\n\r\n public requestOptions: any;\r\n public token = '';\r\n public isAdmin: boolean;\r\n public config: AppConfigModel;\r\n\r\n constructor(\r\n public http: HttpClient,\r\n public storageService: StorageService,\r\n public configService: ConfigService,\r\n public stringService: StringService,\r\n ) {\r\n this.config = this.configService.config;\r\n }\r\n\r\n GetToken(model: GetTokenBindingModel): Observable {\r\n const options = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/x-www-form-urlencoded'\r\n })\r\n };\r\n const body = 'email=' + model.email + '&username=' + model.username + '&password=' + model.password + '&grant_type=password';\r\n\r\n return this.http.post(this.config.apiUrl + 'token', body, options);\r\n }\r\n\r\n getHeaderToken(requestType?: RequestType): void {\r\n let apiKey = '';\r\n let authorization = '';\r\n let contentType = 'application/json';\r\n if (this.stringService.isNotEmpty(this.storageService.getItem(AppConstants.Token))) {\r\n const token = JSON.parse(this.storageService.getItem(AppConstants.Token)) as GetTokenViewModel;\r\n authorization = 'bearer ' + token.access_token;\r\n }\r\n if (this.stringService.isNotEmpty(this.config.apiKey)) {\r\n apiKey = this.config.apiKey;\r\n }\r\n if (requestType === RequestType.Get) {\r\n contentType = 'application/x-www-form-urlencoded';\r\n }\r\n this.requestOptions = {\r\n headers: { 'X-API-Key': apiKey, Authorization: authorization, 'Content-Type': contentType }\r\n };\r\n }\r\n\r\n sendRequest(actionPath: string, model: any, requestType?: RequestType): Observable {\r\n if (requestType === undefined || requestType == null) { requestType = RequestType.Post; }\r\n const url = this.config.apiUrl + actionPath;\r\n this.getHeaderToken(requestType);\r\n // console(this.requestOptions);\r\n switch (requestType) {\r\n case RequestType.Post: return this.post(url, model);\r\n case RequestType.Get: return this.get(url, model);\r\n case RequestType.Beacon: this.beacon(url, model); break;\r\n }\r\n }\r\n\r\n public post(url: string, model: any): Observable {\r\n return this.http.post(url, model, this.requestOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n public get(url: string, model?: any): Observable {\r\n const params = this.convertModelToParam(model);\r\n return this.http.get(url + params, this.requestOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n public beacon(url: string, model?: any): void {\r\n // Convert model to web form request\r\n const params = this.convertModelToParam(model);\r\n\r\n // Generate blob data\r\n const request = new Blob([params], this.requestOptions);\r\n\r\n // Send request using beacon\r\n navigator.sendBeacon(url, request);\r\n }\r\n\r\n handleError(error: HttpErrorResponse): any {\r\n let message = '';\r\n if (error.status === 401) {\r\n message = 'Authorization Failed. Please check API Authorization Key.';\r\n } else if (error.status === 0) {\r\n message = error.statusText + ', unable to connect to the API.';\r\n } else if (error.error != null && error.error !== undefined) {\r\n if (error.error.message != null) { message = error.error.message; }\r\n if (error.error.error_description != null) { message = error.error.error_description; }\r\n } else {\r\n return throwError(error);\r\n }\r\n return throwError(message);\r\n }\r\n\r\n convertModelToParam(model: any): string {\r\n let params = '';\r\n if (model !== undefined && model != null) {\r\n params = Object.keys(model)\r\n .map((k) => k + '=' + model[k])\r\n .join('&');\r\n if (this.stringService.isNotEmpty(params)) {\r\n params = '?' + params;\r\n }\r\n }\r\n return params;\r\n }\r\n}\r\n\r\nexport enum RequestType {\r\n Post = 0,\r\n Get = 1,\r\n Beacon = 2\r\n}\r\n\r\n\r\nexport class GetTokenBindingModel {\r\n public email: string;\r\n public password: string;\r\n public grand_type: string;\r\n public username: string;\r\n constructor() {\r\n this.grand_type = 'password';\r\n }\r\n}\r\n\r\nexport class GetTokenViewModel {\r\n public access_token: string;\r\n public expires_in: number;\r\n public token_type: string;\r\n public userName: string;\r\n public created_date: string;\r\n}\r\n","\n
\n
\n

Select Preferred Date and Time

\n
\n
\n\n
\n
\n
\n
\n \n \n {{date.getDate()}}\n \n \n
\n
\n
\n \n \n \n \n \n \n
 Not\n Available  Available \n  Selected \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n Available Time\n

\n
0\">\n
\n \n {{app.dateService.getNewDate(selectedSlot.appointmentDate)|date:'dd'}} |\n {{app.dateService.getDay(app.dateService.getNewDate(selectedSlot.appointmentDate))}}\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n No available time.\n
\n
\n
\n
\n
\n \n \n\n \n
\n

\n Back\n
\n
\n
\n
\n
\n
\n\n
\n\n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\ndeclare const require: any;\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { Component, OnInit } from '@angular/core';\nimport { GetTokenBindingModel } from 'src/app/api/models/base.model';\nimport { IsValidPasswordResetKeyBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrls: ['./reset-password.component.scss']\n})\nexport class ResetPasswordComponent extends BaseComponent implements OnInit {\n\n newPassword: string;\n confirmNewPassword: string;\n resetKey: string;\n email: string;\n customerId: string;\n\n ngOnInit(): void {\n this.app.pageTitle = 'Reset your password';\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n\n this.customerId = this.app.storageService.getItem(AppConstants.CustomerId);\n if (this.app.stringService.isEmpty(this.customerId)) {\n this.app.router.navigate([AppConstants.RouteInvalid]);\n return;\n }\n\n this.email = this.app.storageService.getItem(AppConstants.CustomerEmail);\n if (this.app.stringService.isEmpty(this.email)) {\n this.app.router.navigate([AppConstants.RouteInvalid]);\n return;\n }\n\n this.scrollTo();\n\n });\n this.start();\n }\n\n backToLogin(): void {\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n\n validateResetKey(): void {\n this.app.spinner.show();\n const m = new IsValidPasswordResetKeyBindingModel();\n m.resetKey = this.resetKey;\n m.customerId = this.customerId;\n this.app.webBookingService.IsValidPasswordResetKey(m)\n .subscribe(\n data => {\n if (data.valid) {\n this.email = data.email;\n this.app.spinner.hide();\n this.newPassword = '';\n this.confirmNewPassword = '';\n }\n else {\n this.app.spinner.hide();\n this.showErrorMessage('Failed to validate reset key');\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n this.app.router.navigate([AppConstants.RouteLogin]);\n });\n }\n\n submit(): void {\n const model = {\n customerId: this.customerId,\n resetKey: this.resetKey,\n newPassword: this.newPassword,\n confirmNewPassword: this.confirmNewPassword\n };\n this.app.webBookingService.ResetPassword(model)\n .subscribe(\n data => {\n this.showInfoMessage('Password reset successful.');\n this.app.storageService.removeItem(AppConstants.CustomerEmail);\n this.app.storageService.removeItem(AppConstants.CustomerId);\n setTimeout(() => {\n this.getToken(this.email, this.newPassword);\n }, 1000);\n },\n error => {\n this.showErrorMessage(error);\n });\n }\n\n resend(): void {\n this.app.spinner.show();\n const model = { email: this.email, resetPageUrl: this.app.configService.config.appUrl + 'reset-password/' };\n this.app.webBookingService.SendPasswordResetKeyLinkToEmail(model)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, this.email);\n this.showSuccessMessage('Reset password code has been sent to your email address.');\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n }\n\n getToken(email: string, password: string): void {\n const model: GetTokenBindingModel =\n {\n username: email,\n email,\n password,\n grand_type: 'password'\n };\n\n this.app.spinner.show();\n this.app.webBookingService.GetToken(model)\n .subscribe(\n data => {\n data.created_date = this.app.dateService.formatDateTime(new Date());\n this.app.storageService.setItem(AppConstants.Token, JSON.stringify(data));\n this.getProfile();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.checkCustomerData();\n this.redirectToNextPage();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\nimport { AppConstants } from 'src/app/app.constants';\nimport { EmailStatus, SendMigrationLinkBindingModel } from 'src/app/api/models/web-booking.models';\n\n@Component({\n selector: 'app-forgot-password',\n templateUrl: './forgot-password.component.html',\n styleUrls: ['./forgot-password.component.css']\n})\nexport class ForgotPasswordComponent extends BaseComponent implements OnInit {\n\n email = '';\n\n ngOnInit() {\n this.app.pageTitle = 'Reset your password';\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n this.scrollTo();\n });\n this.start();\n }\n\n backToLogin() {\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n\n checkEmail() {\n this.app.spinner.show();\n var model = { email: this.email };\n this.app.webBookingService.CheckEmailStatus(model)\n .subscribe(\n data => {\n if (data.status == EmailStatus.Blocked) {\n this.app.spinner.hide();\n this.showErrorMessage('Email address is suspended.');\n }\n else if (data.status == EmailStatus.EmailVerified) {\n this.submit();\n }\n else if (data.status == EmailStatus.ForCustomerMigration) {\n this.sendMigrationLink();\n }\n else if (data.status == EmailStatus.WaitingForEmailVerification) {\n this.submit();\n }\n else if (data.status == EmailStatus.NotYetRegistered) {\n this.app.spinner.hide();\n this.showErrorMessage('Email address is not yet registered.');\n }\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n submit() {\n this.app.spinner.show();\n var model = { email: this.email, resetPageUrl: this.app.configService.config.appUrl + 'reset-password/' };\n this.app.webBookingService.SendPasswordResetKeyLinkToEmail(model)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, this.email);\n this.showSuccessMessage('Reset password code has been sent to your email address.');\n this.app.router.navigate([AppConstants.RouteResetPassword]);\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n }\n\n sendMigrationLink() {\n var m = new SendMigrationLinkBindingModel();\n m.email = this.email;\n m.branchId = this.app.branch.branchId;\n this.app.webBookingService.SendMigrationLink(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, this.email);\n this.showInfoMessage('Please check your email to active your online account');\n this.app.router.navigate([AppConstants.RouteMigrateCustomer]);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ChangePasswordBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n\n@Component({\n selector: 'app-change-password',\n templateUrl: './change-password.component.html',\n styleUrls: ['./change-password.component.scss']\n})\nexport class ChangePasswordComponent extends BaseComponent implements OnInit {\n\n oldPassword: string;\n newPassword: string;\n confirmNewPassword: string;\n\n ngOnInit() {\n this.app.pageTitle = 'Change your password';\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n this.scrollTo();\n });\n this.start();\n }\n\n backToLogin() {\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n\n submit() {\n var model: ChangePasswordBindingModel = {\n oldPassword: this.oldPassword,\n newPassword: this.newPassword,\n confirmPassword: this.confirmNewPassword\n };\n this.app.spinner.show();\n this.app.webBookingService.ChangePassword(model)\n .subscribe(\n data => {\n this.oldPassword = '';\n this.newPassword = '';\n this.confirmNewPassword = '';\n this.app.spinner.hide();\n this.showInfoMessage('Password updated successful.');\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n}\n\n","import { Component, OnInit } from '@angular/core';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-logout',\n templateUrl: './logout.component.html',\n styleUrls: ['./logout.component.scss']\n})\nexport class LogoutComponent extends BaseComponent implements OnInit {\n\n ngOnInit(): void {\n this.app.spinner.show();\n this.app.storageService.removeItem(AppConstants.GiftVoucherSelectedVouchers);\n this.app.storageService.removeItem(AppConstants.Customer);\n this.app.storageService.removeItem(AppConstants.Token);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.GiftVoucherSelectedVouchers);\n this.app.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader); \n \n this.app.basketItems = [];\n this.app.reCompute();\n\n this.app.customer = null;\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n this.app.spinner.hide();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-gift-voucher-cart',\n templateUrl: './gift-voucher-cart.component.html',\n styleUrls: ['./gift-voucher-cart.component.scss']\n})\nexport class GiftVoucherCartComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ToastrService } from 'ngx-toastr';\nimport { ConfigService } from 'src/app/services/config.service';\nimport { StringService } from 'src/app/services/string.service';\n\n@Component({\n selector: 'app-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent implements OnInit {\n\n public title = 'Message';\n public description = 'Are you sure you want to confirm the appointment?

';\n public confirmText = 'Confirm';\n public textAreaHint = 'Comment';\n public textAreaValue = '';\n public showConfirm = true;\n public hideClose = false;\n public IAgree = false;\n public showTickAgree = false;\n\n constructor(\n public dialogRef: MatDialogRef,\n public stringService: StringService,\n public toastr: ToastrService,\n public configService: ConfigService,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n }\n\n ngOnInit() {\n if (this.data != null) {\n if (this.stringService.isNotEmpty(this.data.title)) {\n this.title = this.data.title;\n }\n\n if (this.stringService.isNotEmpty(this.data.description)) {\n this.description = this.data.description;\n }\n\n if (this.stringService.isNotEmpty(this.data.confirmText)) {\n this.confirmText = this.data.confirmText;\n }\n\n if (this.stringService.isNotEmpty(this.data.textAreaHint)) {\n this.textAreaHint = this.data.textAreaHint;\n }\n\n if (this.stringService.isNotEmpty(this.data.textAreaValue)) {\n this.textAreaValue = this.data.textAreaValue;\n }\n\n if (this.stringService.isNotEmpty(this.data.showConfirm)) {\n this.showConfirm = this.data.showConfirm;\n }\n\n if (this.stringService.isNotEmpty(this.data.hideClose)) {\n this.hideClose = this.data.hideClose;\n }\n\n if (this.stringService.isNotEmpty(this.data.showTickAgree)) {\n this.showTickAgree = this.data.showTickAgree;\n }\n }\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n onYesClick(): void {\n if (this.IAgree == false) {\n this.showErrorMessage(this.configService.config.loginAgreeCheckBoxNotTickMesssage);\n return;\n }\n this.data.action = 1;\n this.dialogRef.close(this.data);\n }\n\n showErrorMessage(message: string): void {\n this.toastr.error(message, 'Error', { timeOut: 3000 });\n }\n\n}\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { AppointmentDate, AvailableHour, TimeGrouping, AvailableTime } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-reschedule',\n templateUrl: './reschedule.component.html',\n styleUrls: ['./reschedule.component.scss']\n})\nexport class RescheduleComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n public calendarViewCount: number = 0;\n\n public availableSlots: AppointmentDate[] = [];\n public selectedSlot: AppointmentDate | null = null;\n public selectedHour: AvailableHour | null = null;\n public selectedHourGroup: TimeGrouping | null = null;\n public preferredDateAndTime: AvailableTime | null = null;\n\n public selectedDate: Date | null = new Date();\n public oldStartDate: Date = new Date();\n public oldEndDate: Date = new Date();\n\n public focusedDate: Date = new Date();\n public startDate: Date = new Date();\n public endDate: Date = new Date();\n public minDate: Date = new Date();\n\n public activeRangeEnd: any;\n public tdx!: NodeListOf;\n public previousButton: any;\n public nextButton: any;\n\n public maxGuestCount = 1;\n\n public isConfirmButtonIsDisabled = true;\n public isPassSeven = false;\n\n public appointment: any;\n\n ngOnInit(): void {\n this.baseTriggerChild.subscribe(event => {\n this.initialize();\n });\n }\n ngAfterViewInit(): void {\n this.start();\n }\n \n initialize(): void {\n const aid = this.app.getParameterByName('aid', location.href);\n if (this.app.stringService.isNotEmpty(aid)) {\n this.retrieveAppointmentByAppointmentId(aid);\n } else {\n this.app.router.navigate(['invalid-link']);\n }\n }\n\n \n retrieveAppointmentByAppointmentId(appointmentId: string) {\n const model = {\n appointmentId: appointmentId\n };\n this.app.spinner.show();\n this.app.webBookingService.RetrieveAppointmentByAppointmentId(model)\n .subscribe(\n (data) => {\n this.app.spinner.hide();\n this.appointment = data;\n this.checkAvailableSlot();\n },\n (error) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n checkAvailableSlot(): void {\n this.app.spinner.show();\n\n this.minDate = new Date(this.minDate.getFullYear(), this.minDate.getMonth(), this.minDate.getDate(), 0, 0, 0);\n this.calendarViewCount = 1;\n this.maxGuestCount = 1;\n\n setTimeout((e) => {\n this.previousButton = document.getElementsByClassName('k-prev-view')[0];\n this.previousButton.addEventListener('click', () => {\n const startDate = new Date(this.startDate.getFullYear(), this.startDate.getMonth(), this.startDate.getDate());\n startDate.setDate(this.startDate.getDate() - (this.app.configService.config.bookingAvailableDaysChecking));\n setTimeout((n) => {\n this.selectedSlot = null;\n this.selectedHour = null;\n this.selectedHourGroup = null;\n this.availableSlots = [];\n this.getStartAndEndDate(false, startDate);\n }, 100);\n });\n\n this.nextButton = document.getElementsByClassName('k-next-view')[0];\n this.nextButton.addEventListener('click', () => {\n const startDate = new Date(this.endDate.getFullYear(), this.endDate.getMonth(), this.endDate.getDate());\n startDate.setDate(startDate.getDate() + 1);\n this.selectedDate = startDate;\n setTimeout((n) => {\n this.selectedSlot = null;\n this.selectedHour = null;\n this.selectedHourGroup = null;\n this.availableSlots = [];\n this.getStartAndEndDate(false, startDate);\n }, 100);\n });\n\n const calHeader = document.getElementsByClassName('k-calendar-header')[0];\n const btnToday = calHeader.querySelectorAll('.k-today');\n btnToday[0].addEventListener('click', () => {\n setTimeout(() => {\n this.selectedSlot = null;\n this.selectedHour = null;\n this.selectedHourGroup = null;\n this.getStartAndEndDate(true);\n }, 100);\n });\n\n }, 100);\n\n const tmpSlotDate = this.app.storageService.getItem(AppConstants.BookingSelectedDate);\n let slotDate: any = null;\n if (this.app.stringService.isNotEmpty(tmpSlotDate)) {\n slotDate = JSON.parse(tmpSlotDate);\n const date = this.app.dateService.getNewDate(slotDate.appointmentDate);\n if (date > this.minDate) {\n this.selectedDate = date;\n }\n }\n\n setTimeout((n) => {\n let startDate: Date = null;\n if (slotDate != null) {\n const table = document.getElementsByClassName('k-content')[0];\n this.tdx = table.querySelectorAll('tr > [data-cell-index]');\n const lastTd = this.tdx[this.tdx.length - 1];\n const date = new Date(Date.parse(lastTd.getAttribute('title').toString()));\n let startDay = 1;\n if (this.selectedDate.getMonth() < date.getMonth()) {\n if (this.selectedDate.getDate() > 15) { startDay = 10; }\n }\n startDate = new Date(this.selectedDate.getFullYear(), this.selectedDate.getMonth(), startDay);\n }\n if (startDate < this.minDate) { startDate = this.minDate; }\n this.availableSlots = [];\n this.getStartAndEndDate(false, startDate, true);\n }, 100);\n }\n\n back(): void { \n history.back();\n }\n\n next(): void { \n const model = {\n appointmentId: this.appointment.appointmentId,\n slot: this.preferredDateAndTime.slots[0]\n };\n this.app.spinner.show();\n this.app.webBookingService.Reschedule(model)\n .subscribe(\n (data) => {\n this.app.spinner.hide();\n this.showSuccessMessage('Appointment successfully reschedule.');\n history.back();\n },\n (error) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n onPreferredDateClick(availableDateTimeAndSlot: AvailableTime): void {\n this.preferredDateAndTime = availableDateTimeAndSlot;\n this.isConfirmButtonIsDisabled = false;\n\n // Pass Seven Functionality\n const selectedDate = this.app.dateService.getNewDate(this.preferredDateAndTime.time);\n this.isPassSeven = selectedDate.getHours() >= 19;\n }\n\n onPreferredHourGroupClick(hour: TimeGrouping): void {\n this.selectedHourGroup = hour;\n }\n\n\n onCellEnter(value: Date): void {\n }\n\n onCellLeave(value: Date): void {\n }\n\n onChange(value: Date): void {\n }\n\n onActiveViewChange(value: string): void {\n if (value.toLowerCase() !== 'month') {\n return;\n }\n setTimeout(() => {\n this.selectedSlot = null;\n this.getStartAndEndDate(true);\n }, 30);\n }\n\n getStartAndEndDate(setTodayDate: boolean = false, newStartDate: Date | null = null, isFromInit: boolean = false): void {\n const table = document.getElementsByClassName('k-content')[0];\n this.tdx = table.querySelectorAll('tr > [data-cell-index]');\n\n Array.prototype.forEach.call(this.tdx, (e: Element) => {\n e.removeEventListener('onclick', () => { }, false);\n e.addEventListener('click', (event: any) => {\n if (this.availableSlots === null || this.availableSlots.length === 0) {\n return;\n }\n const nDate = new Date(Date.parse(\n this.app.stringService.isNotEmpty(event.target.title) ? event.target.title : event.target.parentNode.title));\n if (this.isDateBlocked(nDate)) {\n return;\n }\n for (const f of this.availableSlots) {\n if ((this.app.dateService.formatDate(nDate) === this.app.dateService.formatDate(this.app.dateService.getNewDate(f.appointmentDate)))) {\n if (f.availableTimes.length > 0) {\n this.getAvailableSlotPerDay(f.appointmentDate);\n }\n }\n }\n });\n });\n\n const firstTd = this.tdx[0];\n if (this.app.stringService.isNotEmpty(firstTd.getAttribute('title'))) {\n const date = Date.parse(firstTd.getAttribute('title').toString());\n if (this.app.stringService.isNotEmpty(date)) {\n this.startDate = new Date(date);\n }\n }\n if (this.startDate < this.minDate) {\n this.startDate = this.minDate;\n }\n if (this.startDate <= this.minDate) { }\n\n // Get last date of the calendar\n const lastTd = this.tdx[this.tdx.length - 1];\n if (this.app.stringService.isNotEmpty(lastTd.getAttribute('title'))) {\n const date = Date.parse(lastTd.getAttribute('title').toString());\n if (this.app.stringService.isNotEmpty(date)) {\n this.endDate = new Date(date);\n }\n if (this.endDate < this.minDate) {\n this.endDate = this.minDate;\n }\n }\n\n // 30 Days\n if (this.app.configService.config.enable30Days) {\n if (newStartDate != null) {\n this.startDate = newStartDate;\n }\n const lastDay = new Date(this.startDate.getFullYear(), this.startDate.getMonth() + 1, 0).getDate();\n const minusCheck = lastDay === 31 ? 0 : 1;\n this.endDate = new Date(this.startDate.getFullYear(), this.startDate.getMonth(), this.startDate.getDate());\n this.endDate.setDate(this.endDate.getDate() + (this.app.configService.config.bookingAvailableDaysChecking - minusCheck));\n }\n\n this.focusedDate = this.startDate;\n\n let retrieveNewAvailability = false;\n if (this.availableSlots != null && this.availableSlots.length > 0) {\n const x = this.app.dateService.getNewDate(this.availableSlots[0].appointmentDate);\n const y = this.app.dateService.getNewDate(this.availableSlots[this.availableSlots.length - 1].appointmentDate);\n if (this.app.dateService.formatDate(this.startDate) === this.app.dateService.formatDate(x) &&\n this.app.dateService.formatDate(this.endDate) === this.app.dateService.formatDate(y)) {\n if (this.availableSlots === null || this.availableSlots.length === 0) {\n return;\n }\n for (const f of this.availableSlots) {\n if ((this.app.dateService.formatDate(this.minDate) === this.app.dateService.formatDate(this.app.dateService.getNewDate(f.appointmentDate)))) {\n if (f.availableTimes.length > 0) {\n this.getAvailableSlotPerDay(f.appointmentDate);\n }\n }\n }\n } else {\n retrieveNewAvailability = true;\n }\n } else {\n retrieveNewAvailability = true;\n }\n\n if (retrieveNewAvailability) {\n this.getAvailableSlot(setTodayDate, isFromInit);\n }\n this.selectedDate = null;\n }\n\n getAvailableSlot(setTodayDate: boolean = false, isFromInit = false): void {\n\n const maxGuestCount = 1;\n const m = {\n appointmentId: this.appointment.appointmentId,\n branchId: this.appointment.branchId,\n startDate: this.app.dateService.formatDateTime(this.startDate),\n endDate: this.app.dateService.formatDateTime(this.endDate),\n guestCount: maxGuestCount,\n };\n this.app.spinner.show();\n this.app.loadingDescription = 'Checking available dates...';\n this.app.webBookingService.GetAvailableSlotsByAppointmentId(m)\n .subscribe(\n (data: AppointmentDate[]) => {\n this.app.spinner.hide();\n this.availableSlots = data;\n\n const currentDateTime = new Date();\n const currentDate = new Date(currentDateTime.getFullYear(), currentDateTime.getMonth(), currentDateTime.getDate());\n\n Array.prototype.forEach.call(this.tdx, (e: Element) => {\n // Get Date\n const date = new Date(Date.parse(e.getAttribute('title').toString()));\n let className = 'disabled ';\n\n if (date < currentDate) {\n className = 'past-date ';\n }\n\n if (this.availableSlots === null || this.availableSlots.length === 0) {\n e.className = className + 'no-roster';\n if ((className === 'disabled ' || className === 'past-date ') && e.removeEventListener) {\n e.removeEventListener('click', () => { }, false);\n }\n return;\n }\n\n for (const a of this.availableSlots) {\n // Auto Set Today Date\n let slotDate: AppointmentDate;\n let slotTime: AvailableTime;\n if(this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedDate))\n && this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTime)))\n {\n slotDate = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedDate)) as AppointmentDate;\n slotTime = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTime)) as AvailableTime;\n }\n\n if (isFromInit &&\n slotDate != null &&\n slotTime != null &&\n this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(date) &&\n !this.isDateBlocked(date)) {\n\n this.focusedDate = this.app.dateService.getNewDate(slotTime.time);\n this.getAvailableSlotPerDay(slotTime.time, slotDate);\n className = 'meeting k-state-selected';\n } else if (setTodayDate &&\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.minDate) &&\n !this.isDateBlocked(date)) {\n this.selectedSlot = a;\n className = 'meeting k-state-selected';\n } else if (\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n a.availableTimes.length > 0 &&\n !this.isDateBlocked(date)) {\n className = 'meeting';\n } else if (\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n (a.availableTimes.length === 0 ||\n this.isDateBlocked(date))) {\n className = 'no-schedule';\n }\n }\n e.className = className;\n });\n\n },\n (error: any) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n isDateBlocked(date: Date): boolean {\n // const isPromo = this.selectedTreatment.isPromo;\n // if (this.app.config.disableWeekDays != null && this.app.config.disableWeekDays.length > 0) {\n // for (const weekDay of this.app.config.disableWeekDays) {\n // if (weekDay === date.getDay() && isPromo) {\n // return true;\n // }\n // }\n // }\n return false;\n }\n\n getAvailableSlotPerDay(selectedDate: string, slotDate: any = null): void {\n this.isConfirmButtonIsDisabled = true;\n const maxGuestCount = 1;\n\n const m = {\n appointmentId: this.appointment.appointmentId,\n branchId: this.appointment.branchId,\n preferredDate: selectedDate,\n guestCount: maxGuestCount,\n };\n this.app.spinner.show();\n this.app.loadingDescription = 'Checking available time...';\n this.app.webBookingService.GetAvailableSlotPerDayByAppointmentId(m)\n .subscribe(\n (data: string | any[] | null) => {\n this.app.spinner.hide();\n if (data != null && data.length > 0) {\n this.preferredDateAndTime = null;\n this.selectedSlot = data[0];\n this.selectedHourGroup = this.selectedSlot.timeGroupings[0];\n //const slotTime = JSON.parse() as AvailableTime;\n const strSlotTime = this.app.storageService.getItem(AppConstants.BookingSelectedTime);\n if (\n this.selectedSlot != null &&\n slotDate != null &&\n this.app.stringService.isNotEmpty(strSlotTime) &&\n this.selectedSlot.availableTimes != null) {\n const slotTime = JSON.parse(strSlotTime);\n for (const f of this.selectedSlot.availableTimes) {\n if (f.time === slotTime.time) {\n this.preferredDateAndTime = f;\n }\n }\n } else {\n this.preferredDateAndTime = null;\n }\n } else {\n this.selectedSlot = null;\n }\n },\n (error: any) => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n\n\n }\n\n \n\n onBlur(): void {\n }\n\n onFocus(): void {\n }\n\n}\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\n@Injectable()\r\nexport class DateService {\r\n\r\n public days: string[] = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\r\n\r\n constructor(public configService: ConfigService) {\r\n\r\n }\r\n\r\n getNewDate(inputDate: string): Date {\r\n const dateTime = inputDate.split('T');\r\n const dates = dateTime[0].split('-');\r\n const times = dateTime[1].split(':');\r\n\r\n const year: number = +dates[0];\r\n const month: number = +dates[1];\r\n const day: number = +dates[2];\r\n\r\n const hour: number = +times[0];\r\n const minute: number = +times[1];\r\n const second: number = +times[2];\r\n\r\n return new Date(year, month - 1, day, hour, minute, second);\r\n }\r\n\r\n formatTime(date: Date): string {\r\n let hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours = hours % 12;\r\n hours = hours ? hours : 12;\r\n const strMinutes = minutes >= 10 ? minutes : '0' + minutes;\r\n const strHours = hours >= 10 ? hours : '0' + hours;\r\n const strTime = strHours + ':' + strMinutes + ' ' + ampm;\r\n return strTime;\r\n }\r\n\r\n formatHour(date: Date): number {\r\n let hours = date.getHours();\r\n hours = hours % 12;\r\n hours = hours ? hours : 12;\r\n const strHours = hours >= 10 ? hours : 0 + hours;\r\n return hours;\r\n }\r\n\r\n formatDate(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n\r\n const strMinutes = minutes >= 10 ? minutes : '0' + minutes;\r\n const strHours = hours >= 10 ? hours : '0' + hours;\r\n const strMonths = month >= 10 ? month : '0' + month;\r\n const strDays = day >= 10 ? day : '0' + day;\r\n\r\n const strTime = year + '-' + strMonths + '-' + strDays;\r\n return strTime;\r\n }\r\n\r\n formatDateTime(date: Date): string {\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n\r\n const strMinutes = minutes >= 10 ? minutes : '0' + minutes;\r\n const strHours = hours >= 10 ? hours : '0' + hours;\r\n const strMonths = month >= 10 ? month : '0' + month;\r\n const strDays = day >= 10 ? day : '0' + day;\r\n\r\n const strTime = year + '-' + strMonths + '-' + strDays + 'T' + strHours + ':' + strMinutes + ':00';\r\n return strTime;\r\n }\r\n\r\n getDay(date: Date): string {\r\n return this.days[date.getDay() - 1];\r\n }\r\n\r\n addDays(date, days): Date {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\nimport { ProcessStatus, GiftVoucher } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-gift-voucher-home',\n templateUrl: './gift-voucher-home.component.html',\n styleUrls: ['./gift-voucher-home.component.scss']\n})\nexport class GiftVoucherHomeComponent extends BaseComponent implements OnInit {\n\n public giftVoucherGroups: any[];\n public showView: boolean;\n\n ngOnInit() {\n this.app.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader);\n }\n \n ngAfterViewInit(): void {\n this.baseTriggerChild.subscribe(() => {\n this.getGiftVouchers();\n });\n this.start();\n }\n\n getGiftVouchers() {\n this.app.spinner.show();\n const model = {\n branchId: this.app.branch.branchId,\n };\n this.app.webGiftVoucherService.GetGiftVouchers(model)\n .subscribe(\n (data) => {\n this.app.spinner.hide();\n this.giftVoucherGroups = data;\n this.showView = true;\n this.scrollTo();\n },\n (error) => {\n this.showView = true;\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n addToBasket(i: GiftVoucher) {\n if (this.app.stringService.isEmpty(i)) {\n this.showErrorMessage('Please select gift voucher.');\n return;\n }\n this.app.storageService.setItem(AppConstants.GiftVoucherSelectedVoucher, JSON.stringify(i));\n // this.googleAnalyticsService.eventEmitter(\"Select Gift Voucher\", i.name, \"Gift Voucher\", 1);\n this.app.router.navigate(['add-to-basket']);\n }\n\n}\n","import { AfterViewChecked, AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { PlaceOrderViewModel, ProcessStatus, SendTransactionToEmailBindingModel, ComputeOrderBindingModel, Payment, PlaceOrderBindingModel, ValidateGiftVoucherByNumberBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\nimport { PaymentTypeGroup } from 'src/app/misc/enums';\n\ndeclare let paypal: any;\n\n@Component({\n selector: 'app-gift-voucher-redemption',\n templateUrl: './gift-voucher-redemption.component.html',\n styleUrls: ['./gift-voucher-redemption.component.scss']\n})\nexport class GiftVoucherRedemptionComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy, AfterViewChecked {\n\n hidePayButton: boolean = true;\n showPayPal: boolean;\n\n giftVoucherNumber1: string;\n giftVoucherNumber2: string;\n\n public totalAmount: number = 0;\n public amountAvailable: number = 0;\n public redeemedAmount: number = 0;\n public payableUsingPayPal: number = 0;\n\n public order: PlaceOrderViewModel;\n public computedOrder: any;\n\n ngOnInit(): void {\n this.app.storageService.removeItem(AppConstants.BookingResultFailedToHoldGv);\n }\n\n ngAfterViewChecked(): void {\n this.cdRef.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.show();\n if (this.app.stringService.isEmpty(this.app.basketItems==null || this.app.basketItems.length==0)) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectedTreatment.toString());\n this.showErrorMessage('Please select a Treatment');\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.app.reCompute();\n this.app.spinner.hide();\n });\n\n this.start();\n }\n\n ngOnDestroy(): void {\n this.removeRefreshEvent();\n }\n\n addRefreshEvent(): void {\n window.addEventListener('keydown', (event) => {\n if (event.key === 'F5') {\n alert('We are processing your transaction, please wait.');\n event.preventDefault();\n event.stopPropagation();\n }\n });\n }\n\n removeRefreshEvent(): void {\n window.removeEventListener('keydown', (event) => { });\n window.removeEventListener\n }\n\n back(): void {\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n }\n\n\n validate() {\n this.amountAvailable = 0;\n this.redeemedAmount = 0;\n\n this.checkVoucherisNotEmpty();\n if (this.giftVoucherNumber1 == this.giftVoucherNumber2) {\n this.showErrorMessage('gift voucher must not be the same');\n return;\n }\n\n if (this.vouchersisNotEmpty) {\n var isNotValidateVoucher = false;\n\n var giftVouchers = new Array();\n\n if (this.app.stringService.isNotEmpty(this.giftVoucherNumber1)) {\n var model = new ValidateGiftVoucherByNumberBindingModel;\n model.giftVoucherNumber = this.giftVoucherNumber1;\n giftVouchers.push(model);\n }\n\n if (this.app.stringService.isNotEmpty(this.giftVoucherNumber2)) {\n var model = new ValidateGiftVoucherByNumberBindingModel;\n model.giftVoucherNumber = this.giftVoucherNumber2;\n giftVouchers.push(model);\n }\n this.app.spinner.show();\n this.app.webBookingService.ValidateGiftVoucherByNumber(giftVouchers)\n .subscribe(data => {\n this.app.spinner.hide();\n\n data.forEach(element => {\n this.amountAvailable += element.remainingAmount;\n });\n\n this.computeOrder();\n\n }, response => {\n this.app.spinner.hide();\n this.showErrorMessage(response);\n isNotValidateVoucher = true;\n });\n }\n }\n\n vouchersisNotEmpty: boolean = false\n\n //#endregion Transaction\n computeOrder(): void {\n const model: ComputeOrderBindingModel = new ComputeOrderBindingModel();\n model.branchId = this.app.branch.branchId;\n model.customerId = this.app.customer.customerId;\n\n model.items = this.app.basketItems;\n\n const payment: Payment = new Payment();\n payment.paymentTypeGroupId = PaymentTypeGroup.Web;\n model.payments = new Array();\n model.payments.push(payment);\n\n model.enableDepositRequired = this.app.customer.isNewCustomer || this.app.customer.is2YearLastTransaction;\n\n this.app.webBookingService.ComputeOrder(model)\n .subscribe(\n data => {\n this.computedOrder = data;\n this.placeOrder();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n placeOrder(): void {\n const model: PlaceOrderBindingModel = new PlaceOrderBindingModel();\n model.branchId = this.app.branch.branchId;\n model.customerId = this.app.customer.customerId;\n\n model.items = this.app.basketItems;\n\n model.payments = new Array();\n if (this.app.stringService.isNotEmpty(this.giftVoucherNumber1)) {\n var payment = new Payment;\n payment.paymentTypeGroupId = PaymentTypeGroup.GiftVoucher;\n payment.giftVoucherNumber = this.giftVoucherNumber1;\n model.payments.push(payment);\n }\n if (this.app.stringService.isNotEmpty(this.giftVoucherNumber2)) {\n var payment = new Payment;\n payment.paymentTypeGroupId = PaymentTypeGroup.GiftVoucher;\n payment.giftVoucherNumber = this.giftVoucherNumber2;\n model.payments.push(payment);\n }\n if (model.payments.length == 0) {\n var payment: Payment = new Payment();\n payment.paymentTypeGroupId = PaymentTypeGroup.Web;\n model.payments.push(payment);\n }\n\n model.enableDepositRequired = this.app.customer.isNewCustomer || this.app.customer.is2YearLastTransaction;\n\n this.app.webBookingService.PlaceOrder(model)\n .subscribe(\n data => {\n this.order = data;\n this.app.storageService.setItem(AppConstants.PendingTransaction, JSON.stringify(data));\n \n this.totalAmount = data.subTotal;\n\n if (this.totalAmount > this.amountAvailable) this.redeemedAmount = this.amountAvailable;\n else this.redeemedAmount = this.totalAmount\n\n if (this.order.onlinePaymentAmountToBePaid > 0) {\n this.hidePayButton = true;\n this.payableUsingPayPal = this.order.onlinePaymentAmountToBePaid;\n this.createPayPalButton();\n return;\n }\n else\n { \n this.payableUsingPayPal = 0;\n document.getElementById(\"paypal-button-container\").innerHTML = '';\n }\n \n this.hidePayButton = false;\n\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n //#endregion\n\n checkVoucherisNotEmpty() {\n if (this.app.stringService.isNotEmpty(this.giftVoucherNumber1)) {\n this.vouchersisNotEmpty = true;\n }\n\n if (this.app.stringService.isNotEmpty(this.giftVoucherNumber2)) {\n this.vouchersisNotEmpty = true;\n }\n }\n\n //#region Paypal Button\n createPayPalButton(): void {\n let clientId: string;\n if (this.app.config.payPalPaymentMode === 'sandbox') {\n clientId = this.app.config.payPalSandboxCliendId;\n }\n else if (this.app.config.payPalPaymentMode === 'production') {\n clientId = this.app.config.payPalProductionCliendId;\n }\n this.loadExternalScript('https://www.paypal.com/sdk/js?currency=' + this.app.config.payPalCurrencyCode + '&client-id=' + clientId);\n }\n\n loadExternalScript(scriptUrl: string): any {\n const scriptElement = document.createElement('script');\n scriptElement.src = scriptUrl;\n scriptElement.addEventListener('load', () => {\n this.loadPayPalSmartPaymentButton();\n });\n scriptElement.addEventListener('error', (e) => {\n this.showErrorMessage('PayPal online payment loading failed.');\n this.showPayPal = false;\n });\n document.body.appendChild(scriptElement);\n setTimeout(() => {\n this.app.spinner.hide();\n }, 3000);\n }\n\n loadPayPalSmartPaymentButton(): void {\n paypal.Buttons({\n style: {\n layout: 'horizontal',\n tagline: false\n },\n onClick: (data, actions) => {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n this.addRefreshEvent();\n return true;\n },\n createOrder: (data, actions) => {\n return actions.order.create({\n purchase_units: [{\n amount: {\n value: this.order.onlinePaymentAmountToBePaid\n }\n }]\n });\n },\n\n onApprove: (data, actions) => {\n this.app.spinner.show();\n\n // cset trabsaction as paid online\n const setTransactionAsPaidOnlineBindingModel = {\n customerId: this.app.customer.customerId,\n pendingTransactionId: this.order.pendingTransactionId,\n onlinePaymentTransactionId: data.orderID\n };\n this.order.onlineOrderId = data.orderID;\n this.app.storageService.setItem(AppConstants.PendingTransaction, JSON.stringify(this.order));\n this.app.webBookingService.SetTransactionAsPaidOnline(setTransactionAsPaidOnlineBindingModel).subscribe(\n () => { \n\n // proceed paypal payment\n return actions.order.capture().then(\n payment => {\n // Show a success message to your buyer\n const commitPaymentBindingModel = {\n customerId: this.app.customer.customerId,\n onlinePaymentTransactionId: payment.id,\n pendingTransactionId: this.order.pendingTransactionId,\n };\n this.app.webBookingService.CommitPayment(commitPaymentBindingModel).subscribe(\n () => {\n // Send Transaction to email.\n const model = new SendTransactionToEmailBindingModel();\n model.customerId = this.app.customer.customerId;\n model.pendingTransactionId = this.order.pendingTransactionId;\n model.token = JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token,\n this.app.webBookingService.SendTransactionToEmail(model).subscribe(\n () => {\n this.getProfile();\n // this ngzone will fix the warning issue: core.js:3126\n // Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?\n this.app.ngZone.run(() => {\n this.saveAppointmentResult();\n });\n this.app.spinner.hide();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n return;\n });\n \n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n },\n\n onCancel: (data, actions) => {\n return;\n },\n\n onError: (data, actions) => {\n return;\n }\n }).render('#paypal-button-container');\n }\n\n pay() {\n this.app.spinner.show();\n const model = {\n pendingTransactionId : this.order.pendingTransactionId,\n customerId : this.app.customer.customerId\n }; \n this.app.webBookingService.SetTransactionAsPaidOnlineByGv(model)\n .subscribe((data) => {\n this.commit();\n }, (error) => {\n this.app.addLogs('Commit Payment', error);\n this.app.spinner.hide();\n this.app.showErrorMessage(error);\n this.app.storageService.setItem(AppConstants.GiftVoucherProcessStatus, ProcessStatus.Result.toString());\n this.app.router.navigate([AppConstants.RouteInvalid]);\n });\n }\n\n commit()\n {\n const model = {\n pendingTransactionId : this.order.pendingTransactionId,\n customerId : this.app.customer.customerId,\n token : JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token\n }; \n this.app.webBookingService.CommitPayment(model)\n .subscribe((data) => {\n this.app.spinner.hide();\n this.app.webBookingService.SendTransactionToEmail(model).subscribe();\n this.saveAppointmentResult();\n }, (error) => {\n this.app.addLogs('Commit Payment', error);\n this.app.spinner.hide();\n this.app.showErrorMessage(error);\n this.app.storageService.setItem(AppConstants.GiftVoucherProcessStatus, ProcessStatus.Result.toString());\n this.app.router.navigate([AppConstants.RouteInvalid]);\n });\n }\n\n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.checkCustomerData();\n },\n error => {\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n });\n }\n\n goBackToPreviousPage() {\n this.app.router.navigate([AppConstants.RouteCheckout]);\n }\n\n saveAppointmentResult(): void {\n this.app.storageService.setItem(AppConstants.BookingTreatmentResult, JSON.stringify(this.app.basketItems));\n this.app.storageService.setItem(AppConstants.BookingSlotResult, this.app.storageService.getItem(AppConstants.BookingSelectedTime));\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.Result.toString());\n \n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.GiftVoucherSelectedVouchers);\n \n this.app.basketItems = []; \n this.app.reCompute();\n\n this.app.router.navigate([AppConstants.RouteGvThankYou]);\n }\n //#endregion\n\n}\n","
\n
\n
\n
\n

Reset your password

\n
\n
\n
\n Please enter password reset code and your new password.\n
\n
\n
\n
\n
\n \n Password Reset Code*\n \n Resend Password Reset Code\n \n
\n
\n

\n
Your Password must be at least 6 characters, 1 special character \"!\", 1 number,\n one lower case character and one upper case character.

\n
\n
\n \n New Password*\n \n \n
\n
\n
\n
\n \n Confirm New Password*\n \n \n
\n
\n
\n \n
\n
\n
","\n\n
\n
\n \"{{giftVoucher.imageUrl}}\"\n
\n
\n
\n
\n \n
\n
\n

\n {{giftVoucher.name}}
\n {{giftVoucher.fee | number : '1.2-2'}}\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

Gift Voucher Beneficiary

\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n Close\n Continue\n
\n
","export class Customer {\r\n public customerId: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public email: string;\r\n public email2: string;\r\n public mobilePhoneNumber: string;\r\n public status: CustomerStatus;\r\n public token: string;\r\n public tokenExpiry: Date;\r\n public skinTypeId: number;\r\n public dateOfBirth: string;\r\n public address: any;\r\n public sendSms: boolean;\r\n public sendEmail: boolean;\r\n public sendPhone: boolean;\r\n public gender: Gender;\r\n public isNewCustomer: boolean;\r\n public healthFundId: string;\r\n public lastTransactionDate: string;\r\n public dateJoined: string;\r\n public is2YearLastTransaction: boolean;\r\n public hasPaidAppointment: boolean;\r\n}\r\n\r\nexport enum CustomerStatus {\r\n EmailVerified = 1,\r\n WaitingForEmailVerification = 2,\r\n ForCustomerMigration = 3,\r\n Blocked = 4,\r\n RequiredForUpdateEmailVerification = 5\r\n}\r\n\r\nexport enum ProcessStatus {\r\n SelectTreatment = 0,\r\n SelectedTreatment = 1,\r\n SelectedDateAndTime = 2, \r\n ConfirmAppointment = 3,\r\n SelectGiftVoucher = 5,\r\n Checkout = 6,\r\n Result = 4\r\n}\r\n\r\nexport class LoginBindingModel {\r\n public email: string;\r\n public password: string;\r\n}\r\n\r\nexport class LogoutViewModel {\r\n public logout: boolean;\r\n}\r\n\r\nexport class CheckEmailStatusBindingModel {\r\n public email: string;\r\n}\r\n\r\nexport class CheckEmailStatusViewModel {\r\n public status: EmailStatus;\r\n}\r\n\r\nexport enum EmailStatus {\r\n NotYetRegistered = 0,\r\n EmailVerified = 1,\r\n WaitingForEmailVerification = 2,\r\n ForCustomerMigration = 3,\r\n Blocked = 4\r\n}\r\n\r\nexport class SendMigrationLinkBindingModel {\r\n public email: string;\r\n public branchId: string;\r\n}\r\n\r\nexport class SendMigrationLinkViewModel {\r\n public sent: boolean;\r\n public customerId: string;\r\n}\r\n\r\nexport class SendEmailValidationLinkBindingModel {\r\n public email: string;\r\n public branchId: string;\r\n}\r\n\r\nexport class SendEmailVerificationViewModel {\r\n public sent: boolean;\r\n public customerId: string;\r\n}\r\n\r\nexport class SendEmailVerificationBindingModel {\r\n public email: string;\r\n}\r\n\r\nexport class SendPasswordResetKeyLinkToEmailBindingModel {\r\n public email: string;\r\n}\r\n\r\nexport class SendPasswordResetKeyLinkToEmailViewModel {\r\n public sent: boolean;\r\n public customerId: string;\r\n}\r\n\r\nexport class IsValidPasswordResetKeyBindingModel {\r\n public resetKey: string;\r\n public customerId: string;\r\n}\r\n\r\nexport class IsValidPasswordResetKeyViewModel {\r\n public valid: boolean;\r\n public email: string;\r\n}\r\n\r\nexport class ResetPasswordBindingModel {\r\n public customerId: string;\r\n public resetKey: string;\r\n public newPassword: string;\r\n public confirmNewPassword: string;\r\n}\r\n\r\nexport class ResetPasswordViewModel {\r\n public reset: boolean;\r\n}\r\n\r\nexport class RegisterCustomerBindingModel {\r\n public email: string;\r\n public password: string;\r\n public confirmPassword: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public mobilePhoneNumber: string;\r\n public postcode: string;\r\n public branchId: string;\r\n public healthFundId: string;\r\n public dateOfBirths: Date;\r\n public dateOfBirth: string;\r\n public gender: Gender;\r\n public countryId: string;\r\n public stateId: string;\r\n public address1: string;\r\n public address3: string;\r\n public sendSms: boolean;\r\n public sendEmail: boolean;\r\n public sendPhone: boolean;\r\n}\r\n\r\nexport enum Gender {\r\n None = 0,\r\n Male = 1,\r\n Female = 2\r\n}\r\n\r\nexport class UpdateDetailsBindingModel {\r\n public firstName: string;\r\n public lastName: string;\r\n public mobilePhoneNumber: string;\r\n public postcode: string;\r\n public dateOfBirth: Date;\r\n public gender: Gender;\r\n}\r\n\r\nexport class UpdateDetailsViewModel {\r\n public updated: boolean;\r\n}\r\n\r\nexport class ChangePasswordBindingModel {\r\n public oldPassword: string;\r\n public newPassword: string;\r\n public confirmPassword: string;\r\n}\r\n\r\nexport class SetPasswordViewModel {\r\n public updated: boolean;\r\n}\r\n\r\nexport class CustomerTransactionBindingModel {\r\n public branchId: number;\r\n}\r\n\r\nexport class GetLoyaltyPointsBindingModel {\r\n public branchId: number;\r\n}\r\nexport class GetLoyaltyPointsViewModel {\r\n public registeredDate: Date;\r\n public tierId: number;\r\n public tierName: string;\r\n public tierCode: string\r\n public bluePoints: number;\r\n public sequence: number;\r\n}\r\nexport class CustomerTransaction {\r\n public pointsAwardHistories: AwardHistory[];\r\n public unUsedPackages: UnUsedPackage[];\r\n public incomingAppointments: IncomingAppointments[];\r\n}\r\n\r\n\r\nexport class AwardHistory {\r\n public awardDate: Date;\r\n public tenderedAmount: number;\r\n public pointsAwarded: number;\r\n public purchasedItems: PurchasedItem[]\r\n}\r\n\r\nexport class PurchasedItem {\r\n public description: string;\r\n public unitPrice: number;\r\n public quantity: number;\r\n public totalTax: number;\r\n public totalPrice: number;\r\n}\r\n\r\nexport class IncomingAppointments {\r\n public appointmentDate: Date;\r\n public description: string;\r\n public duration: number;\r\n}\r\n\r\nexport class UnUsedPackage {\r\n public unUsedPackageId: number;\r\n public packageId: number;\r\n public name: string;\r\n public sku: string;\r\n public description: string;\r\n public imageUrl: string;\r\n public quantity: number;\r\n public quantityUsed: number;\r\n public quantityLeft: number;\r\n public packageTreatments: PackageTreatment[];\r\n}\r\n\r\nexport class PackageTreatment {\r\n public packageTreatmentId: number;\r\n public name: string;\r\n public sku: string;\r\n public description: string;\r\n public imageUrl: string;\r\n public consultationRequired: boolean;\r\n public hasIncomingConsultation: boolean;\r\n}\r\n\r\nexport class MigrateCustomerBindingModel {\r\n public password: string;\r\n public confirmPassword: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public postcode: string;\r\n public address1: string;\r\n public address3: string;\r\n public mobilePhoneNumber: string;\r\n public migrationKey: string;\r\n public customerId: string;\r\n public dateOfBirth: string;\r\n public sendSms: boolean;\r\n public sendEmail: boolean;\r\n public sendPhone: boolean;\r\n}\r\n\r\nexport class UpdateCustomerBindingModel {\r\n public firstName: string;\r\n public lastName: string;\r\n public postcode: string;\r\n public address1: string;\r\n public address3: string;\r\n public mobilePhoneNumber: string;\r\n public dateOfBirth: string;\r\n public customerId: string;\r\n public email: string;\r\n public sendSms: boolean;\r\n public sendEmail: boolean;\r\n public sendPhone: boolean;\r\n}\r\n\r\nexport class IsValidMigrationKeyBindingModel {\r\n public migrationKey: string;\r\n public customerId: string;\r\n}\r\n\r\nexport class IsValidMigrationKeyViewModel {\r\n public email: string;\r\n public valid: boolean;\r\n public firstName: string;\r\n public lastName: string;\r\n public mobilePhoneNumber: string;\r\n public dateOfBirth: string;\r\n public address: any;\r\n public sendSms: boolean;\r\n public sendEmail: boolean;\r\n public sendPhone: boolean;\r\n public gender: Gender;\r\n public isNewCustomer: boolean;\r\n public healthFundId: string;\r\n}\r\n\r\nexport class MigrateCustomerViewModel {\r\n public migrated: boolean;\r\n}\r\n\r\nexport class UpdateCustomerViewModel {\r\n public updated: boolean;\r\n public requiredForUpdateEmailVerification: boolean;\r\n}\r\n\r\nexport class IsValidEmailVerificationKeyBindingModel {\r\n public emailVerificationKey: string;\r\n public customerId: string;\r\n}\r\n\r\nexport class IsValidEmailVerificationkeyViewModel {\r\n public isValid: boolean;\r\n}\r\n\r\nexport class VerifyCustomerEmailBindingModel {\r\n public emailVerificationKey: string;\r\n}\r\n\r\nexport class VerifyCustomerEmailViewModel {\r\n public verified: boolean;\r\n}\r\n\r\nexport class SetSkinTypeBindingModel {\r\n public skinType: number;\r\n}\r\n\r\nexport class SetSkinTypeViewModel {\r\n public updated: boolean;\r\n public skinTypeId: number;\r\n}\r\n\r\nexport class Branch {\r\n public branchId: string;\r\n public branchName: string;\r\n public contactNumber: string;\r\n public email: string;\r\n public address: string;\r\n public fax: string;\r\n public mapUrl: string;\r\n}\r\n\r\nexport class ItemCode {\r\n constructor() {\r\n this.selected = false;\r\n }\r\n public treatmentId: string;\r\n public name: string;\r\n public description: string;\r\n public itemCodeType: ItemCodeType;\r\n public fee: number;\r\n public duration: number;\r\n public groupName: string;\r\n public category: string;\r\n public selected: boolean;\r\n public displayDuration: string;\r\n public isPromo: boolean;\r\n public bookingCount: number;\r\n public specialityId: number;\r\n public unlimited: boolean;\r\n public shortName: string;\r\n public packageItems: any[];\r\n public info: string;\r\n public newClientTreatment: any;\r\n public depositPercentage: number;\r\n}\r\n\r\nexport class GetOpeningHoursBindingModel {\r\n public branchId: number;\r\n public preferredDate: string;\r\n}\r\n\r\nexport class OpeningHour {\r\n public startTime: string;\r\n public endTime: string;\r\n public timeInterval: number;\r\n}\r\n\r\nexport class GetConsultationGroupBindingModel {\r\n public branchId: number;\r\n}\r\n\r\nexport class Consultation {\r\n public consultationId: number;\r\n public name: string;\r\n public sku: string;\r\n public description: string;\r\n public fee: number;\r\n public imageUrl: string;\r\n public hasIncomingBooking: boolean;\r\n}\r\n\r\nexport class GetConsultationByPackageTreatmentIdBindingModel {\r\n public packageTreatmentId: number;\r\n}\r\n\r\nexport class BookTreatmentBindingModel {\r\n public branchId: string;\r\n public packageTreatmentId: number;\r\n public preferredDateAndTime: string;\r\n public unUsedPackageId: number;\r\n}\r\n\r\nexport class Appointment {\r\n public appointmentId: any;\r\n public appointmentDate: string;\r\n public isPreferredDateAndTimeAvailable: boolean;\r\n public processDate: string;\r\n public startTime: string;\r\n public endTime: string;\r\n public duration: number;\r\n}\r\n\r\nexport class ConfirmAppointmentBindingModel {\r\n public appointmentId: number;\r\n public unUsedPackageId: number;\r\n}\r\n\r\nexport class ConfirmAppointmentViewModel {\r\n public confirmed: boolean;\r\n}\r\n\r\nexport class CancelAppointmentBindingModel {\r\n public appointmentId: number;\r\n}\r\n\r\nexport class CancelAppointmentViewModel {\r\n public cancelled: boolean;\r\n}\r\n\r\n\r\nexport class State {\r\n public stateId: string;\r\n public name: string;\r\n}\r\n\r\nexport class Country {\r\n public countryId: string;\r\n public name: string;\r\n}\r\n\r\n\r\nexport class PlaceOrderViewModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public giftVoucherRedeemedAmount: number;\r\n public onlinePaymentAmountToBePaid: number;\r\n public totalDiscount: number;\r\n public surcharged: number;\r\n public yieldCharged: number;\r\n public subTotal: number;\r\n public deliveryCharge: number;\r\n public pendingTransactionNo: string;\r\n public sagePayFormRequest: SagePayFormRequest;\r\n public onlineOrderId: string;\r\n}\r\n\r\nexport class ComputeOrderViewModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public giftVoucherRedeemedAmount: number;\r\n public onlinePaymentAmountToBePaid: number;\r\n public totalDiscount: number;\r\n public surcharged: number;\r\n public yieldCharged: number;\r\n public subTotal: number;\r\n public deliveryCharge: number;\r\n public pendingTransactionNo: string;\r\n public sagePayFormRequest: SagePayFormRequest;\r\n}\r\n\r\nexport class SagePayFormRequest {\r\n public formPaymentUrl: string;\r\n public vpsProtocol: string;\r\n public txType: string;\r\n public vendor: string;\r\n public crypt: string;\r\n}\r\n\r\nexport class CancelPendingTransactionBindingModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n}\r\n\r\nexport class PlaceOrderBindingModel {\r\n public branchId: string;\r\n public customerId: string;\r\n public items: Item[];\r\n public payments: Payment[];\r\n public sagePayResponseHandlerPage: string;\r\n public enableDepositRequired: any;\r\n}\r\n\r\nexport class Payment {\r\n public paymentTypeGroupId: PaymentTypeGroup;\r\n public giftVoucherNumber: string;\r\n public paymentTypeId: string;\r\n public amountPaid: number;\r\n}\r\n\r\nexport class ComputeOrderBindingModel {\r\n public branchId: string;\r\n public customerId: string;\r\n public items: Item[];\r\n public payments: Payment[];\r\n public sagePayResponseHandlerPage: string;\r\n public enableDepositRequired: any;\r\n}\r\n\r\nexport enum PaymentTypeGroup {\r\n Cash = 2,\r\n CreditCard = 3,\r\n Cheque = 4,\r\n GiftVoucher = 5,\r\n CreditUsed = 6,\r\n PmPosting = 7,\r\n ArPosting = 8,\r\n BillToAccount = 9,\r\n CreditRefund = 11,\r\n DirectDebit = 12,\r\n RoomCharge = 13,\r\n Hicaps = 14,\r\n MarketSmartRewards = 15,\r\n Web = 16,\r\n Others = 30,\r\n}\r\n\r\nexport class SetTransactionAsPaidOnlineBindingModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public onlinePaymentTransactionId: string;\r\n}\r\n\r\n\r\nexport class VerifyPendingTransactionBindingModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n}\r\n\r\nexport class CommitPaymentBindingModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public onlinePaymentTransactionId: string;\r\n}\r\n\r\nexport class CommitPaymentViewModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public receiptUrl: string;\r\n public giftVoucherUrl: string;\r\n public receiptNumber: string;\r\n public bookingReference: string;\r\n public amount: number;\r\n public totalDiscount: number;\r\n public printOnCheckout: boolean;\r\n}\r\n\r\nexport class SendTransactionToEmailBindingModel {\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public token: string;\r\n}\r\n\r\n\r\nexport enum PendingTrasactionStatus {\r\n Pending = 1,\r\n Successful = 2,\r\n Cancelled = 3,\r\n Deleted = 4,\r\n Failed = 5,\r\n OnlinePaymentSuccessful = 6,\r\n ConvertingToInvoice = 7,\r\n TransactionTimeOut = 8,\r\n TransactionTimeOutButPaid = 9\r\n}\r\n\r\nexport class Item {\r\n\r\n public giftVoucherReceiverCollectorName: string\r\n public giftVoucherFrom: string\r\n public giftVoucherMessage: string\r\n public giftVoucherReceiverCollectorId: string\r\n public giftVoucherReceiverCollectorEmail: string\r\n public giftVoucherReceiverCollectorMobileNumber: string\r\n public giftVoucherCollectionDate: string\r\n public giftVoucherReceiverCollectorAddress1: string\r\n public giftVoucherReceiverCollectorAddress2: string\r\n public giftVoucherReceiverCollectorCity: string\r\n public giftVoucherReceiverCollectorState: string\r\n public giftVoucherReceiverCollectorPostCode: string\r\n public giftVoucherTemplateFileName: string\r\n public itemId: string;\r\n public description: string;\r\n public quantity: number;\r\n public fee: number;\r\n public amount: number;\r\n public discount: number;\r\n public tax: number;\r\n public giftVoucherOptionType: GiftVoucherOptionType;\r\n public invoiceDetailType: InvoiceDetailType;\r\n public staffId: string;\r\n public appointmentId: string;\r\n public bookingReference: string;\r\n public roomId: string;\r\n public staffName: string;\r\n public bookingDate: string;\r\n public customerId: string;\r\n public startTime: string;\r\n public endTime: string;\r\n\r\n \r\n public originalFee: number;\r\n public depositAmount: number;\r\n public depositPercentage: number;\r\n\r\n public giftVoucherId: string;\r\n public name: string;\r\n public groupName: string;\r\n public selected: boolean;\r\n public imageUrl: string;\r\n public isForMySelf: boolean;\r\n public beneficiary: Beneficiary;\r\n\r\n}\r\n\r\n\r\nexport enum InvoiceDetailType {\r\n SurChargeItem = -3,\r\n SpecialBooking = -2,\r\n DefaultDeliveryItem = -1,\r\n Service = 1,\r\n Class = 2,\r\n Membership = 3,\r\n GiftVoucher = 4,\r\n FoodAndBeverage = 6,\r\n Package = 9,\r\n DestinationPackage = 10,\r\n DirectDebit = 11,\r\n FacilityService = 12,\r\n Series = 13,\r\n Stock = 20,\r\n Credit = 21,\r\n Tip = 22,\r\n Refund = 25,\r\n StockDelivery = 26,\r\n None = 0\r\n}\r\n\r\nexport enum GiftVoucherOptionType {\r\n NotGiftVoucher = 0,\r\n IsElectronic = 1,\r\n IsGiftBoxed = 2,\r\n IsRegularPost = 3,\r\n IsExpressPost = 4,\r\n IsPrintAtHome = 5,\r\n IsPickUp = 6,\r\n IsPickUpBranch1 = 7,\r\n IsPickUpBranch2 = 8,\r\n IsPickUpBranch3 = 9,\r\n IsPickUpBranch4 = 10,\r\n}\r\n\r\nexport class ValidateGiftVoucherByNumberBindingModel {\r\n public giftVoucherNumber: string;\r\n}\r\n\r\nexport class ValidateGiftVouchersViewModel {\r\n public totalRemainingAmount: number;\r\n}\r\n\r\nexport enum ItemCodeType {\r\n Service = 1,\r\n Package = 9\r\n}\r\n\r\nexport class AppointmentDate {\r\n appointmentDate: string;\r\n unitPrice: number;\r\n yielfPrice: number;\r\n availableHours: AvailableHour[];\r\n availableTimes: AvailableTime[];\r\n timeGroupings: TimeGrouping[];\r\n}\r\n\r\nexport class AvailableHour {\r\n slotCount: number;\r\n availableTimes: AvailableTime[];\r\n time: string;\r\n}\r\n\r\nexport class TimeGrouping {\r\n slotCount: number;\r\n availableTimes: AvailableTime[];\r\n name: string;\r\n hourEnd: string;\r\n hourStart: string;\r\n}\r\n\r\nexport class AvailableTime {\r\n slotCount: number;\r\n slots: Slot[];\r\n time: string;\r\n}\r\n\r\nexport class Slot {\r\n endTime: string;\r\n equipmentId: string;\r\n roomId: string;\r\n staffId: string;\r\n staffName: string;\r\n slotCount: number;\r\n time: string;\r\n}\r\n\r\n\r\n\r\nexport class DownloadGiftVoucherBindingModel {\r\n\r\n public pendingTransactionId: string;\r\n public customerId: string;\r\n public token: string;\r\n\r\n}\r\n\r\nexport class DownloadGiftVoucherViewModel {\r\n\r\n public url: string;\r\n\r\n}\r\n\r\n\r\nexport class GiftVoucher {\r\n\r\n constructor() {\r\n this.selected = false;\r\n }\r\n public giftVoucherId: string;\r\n public name: string;\r\n public description: string;\r\n public fee: number;\r\n public groupName: string;\r\n public selected: boolean;\r\n public imageUrl: string;\r\n public isForMySelf: boolean;\r\n public beneficiary: Beneficiary;\r\n\r\n}\r\n\r\nexport class Beneficiary {\r\n\r\n public customerId: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public message: string;\r\n\r\n}\r\n\r\n","import { BaseComponent } from '../../../layout/main/base.component';\nimport { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { AppConstants } from 'src/app/app.constants';\n\nimport { Branch, ItemCode, ProcessStatus } from 'src/app/api/models/web-booking.models';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\n@Component({\n selector: 'app-select-consultation',\n templateUrl: './select-consultation.component.html',\n styleUrls: ['./select-consultation.component.css']\n})\nexport class SelectConsultationComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n groups: any[];\n\n public modalRef: BsModalRef;\n @ViewChild('covidUpdate') covidUpdate: TemplateRef;\n @ViewChild('covidBlocker') covidBlocker: TemplateRef;\n @ViewChild('unlimtedModal') unlimtedModal: TemplateRef;\n @ViewChild('twoYearsTransaction') twoYearsTransaction: TemplateRef;\n @ViewChild('isNewCustomerDialog') isNewCustomerDialog: TemplateRef;\n\n public feverOrSorTroat: any = null;\n public contactWithConvidPatient: any = null;\n public travell30Days: any = null;\n treatment: ItemCode;\n\n ngOnInit(): void {\n if (this.app.storageService.getItem(AppConstants.BookingProcessStatus) === ProcessStatus.ConfirmAppointment.toString()) {\n this.app.router.navigate([AppConstants.RouteServiceConfirmation]);\n return;\n }\n }\n\n ngAfterViewInit(): void {\n this.baseTriggerChild.subscribe(\n event => {\n this.app.pageTitle = \"Book an Appointment\";\n this.getTreatmentsByGroup(this.app.branch); \n\n if (\n (this.app.customer.isNewCustomer === false ||\n this.app.customer.isNewCustomer === undefined ||\n this.app.customer.isNewCustomer === null) &&\n (this.app.customer.is2YearLastTransaction === false ||\n this.app.customer.is2YearLastTransaction === undefined ||\n this.app.customer.is2YearLastTransaction === null) &&\n (this.app.customer.hasPaidAppointment === true)) {\n console.log(1);\n }\n });\n\n this.start();\n }\n\n getTreatments(branch: Branch): void {\n const model = { branchId: branch.branchId };\n this.app.webBookingService.GetTreatments(model).subscribe(\n data => {\n this.app.spinner.hide();\n this.showDialogForCustomer();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n }\n );\n }\n\n getTreatmentsByGroup(branch: Branch): void {\n const model = { branchId: branch.branchId };\n this.app.webBookingService.GetTreatmentByGroup(model).subscribe(\n data => {\n this.app.spinner.hide();\n this.groups = data;\n this.showDialogForCustomer();\n this.scrollTo();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n }\n );\n }\n\n showDialogForCustomer(): void {\n if (this.app.stringService.isEmpty(this.app.customer)) { return; }\n if (this.app.alreadyAnswer) { return; }\n if (this.app.customer.isNewCustomer) {\n this.modalRef = this.app.modalService.show(\n this.isNewCustomerDialog,\n {\n class: 'modal-lg modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n return;\n }\n if (this.app.customer.is2YearLastTransaction) {\n this.modalRef = this.app.modalService.show(\n this.twoYearsTransaction,\n {\n class: 'modal-lg modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n return;\n }\n }\n\n // groupServicesAndPackagesByInfo(serviceAndPackages: ItemCode[]): void {\n // const tempList = new Array();\n\n // for (const itm1 of serviceAndPackages) {\n // let count = 0;\n // for (const group of tempList) {\n // if (itm1.info === group.info) {\n // count++;\n // }\n // }\n\n // if (count < 1) {\n // const grp = new OrderedServicesAndPackagesList();\n // grp.info = itm1.info;\n // const itemList = Array();\n\n // for (const itm2 of serviceAndPackages) {\n // if (itm2.info === itm1.info) {\n // itemList.push(itm2);\n // }\n // }\n\n // grp.items = itemList;\n\n // if (grp.info != null) {\n // tempList.push(grp);\n // }\n // }\n // }\n\n // this.servicePackageList = tempList;\n\n\n // // Returns Services and Packages in alphabetical.\n // this.servicePackageList.sort(function compare(a, b): number {\n // let comparison = 0;\n // if (a.info > b.info) {\n // comparison = 1;\n // } else if (a.info < b.info) {\n // comparison = -1;\n // }\n // return comparison;\n // });\n\n // }\n\n setSelectedService(service: ItemCode): void {\n if (service.unlimited) {\n this.openModal(this.unlimtedModal);\n }\n else {\n if (service.newClientTreatment) {\n this.treatment = service;\n this.openModal(this.covidUpdate);\n }\n else {\n const treatments = [];\n treatments.push(service);\n this.app.storageService.setItem(AppConstants.BookingSelectedTreatment, JSON.stringify(treatments));\n this.app.router.navigate([AppConstants.RouteSelectPractitioner]);\n }\n }\n }\n\n openModal(template: TemplateRef): void {\n if (this.app.config.enableCovid) {\n this.feverOrSorTroat = null;\n this.contactWithConvidPatient = null;\n this.travell30Days = null;\n this.modalRef = this.app.modalService.show(\n template,\n {\n class: 'modal-lg modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n }\n else {\n const treatments = [];\n treatments.push(this.treatment);\n this.app.storageService.setItem(AppConstants.BookingSelectedTreatment, JSON.stringify(treatments));\n this.app.router.navigate([AppConstants.RouteSelectPractitioner]);\n }\n }\n\n clodeDialog(): void {\n this.modalRef.hide();\n }\n\n confirmMessageDialog(): void {\n this.app.alreadyAnswer = true;\n this.modalRef.hide();\n }\n\n checkCovid(): boolean {\n if (this.modalRef == null || this.modalRef === undefined) { return false; }\n if (this.contactWithConvidPatient === null) {\n this.showErrorMessage('Please answer the following question.');\n return true;\n }\n if (this.feverOrSorTroat === null) {\n this.showErrorMessage('Please answer the following question.');\n return true;\n }\n if (this.travell30Days === null) {\n this.showErrorMessage('Please answer the following question.');\n return true;\n }\n\n if (this.contactWithConvidPatient === 'true' || this.feverOrSorTroat === 'true' || this.travell30Days === 'true') {\n this.modalRef.hide();\n this.openModal(this.covidBlocker);\n return true;\n }\n else {const treatments = [];\n treatments.push(this.treatment);\n this.app.storageService.setItem(AppConstants.BookingSelectedTreatment, JSON.stringify(treatments));\n this.app.router.navigate([AppConstants.RouteSelectPractitioner]);\n this.modalRef.hide();\n return false;\n }\n }\n\n filterService(service: ItemCode): boolean {\n if (this.app.stringService.isEmpty(this.app.customer) || this.app.configService.config.disableNewClientFilter) {\n return true;\n }\n\n if (service.unlimited) { return true; }\n\n if ((this.app.customer.isNewCustomer === true ||\n this.app.customer.is2YearLastTransaction === true ||\n this.app.customer.hasPaidAppointment === false) &&\n service.newClientTreatment === true) {\n return true;\n }\n\n if (\n (this.app.customer.isNewCustomer === false ||\n this.app.customer.isNewCustomer === undefined ||\n this.app.customer.isNewCustomer === null) &&\n (this.app.customer.is2YearLastTransaction === false ||\n this.app.customer.is2YearLastTransaction === undefined ||\n this.app.customer.is2YearLastTransaction === null) &&\n (service.newClientTreatment === false ||\n service.newClientTreatment === undefined ||\n service.newClientTreatment === null) &&\n (this.app.customer.hasPaidAppointment === true)) {\n return true;\n }\n \n return false;\n }\n}\n\nexport class OrderedServicesAndPackagesList {\n public info: string;\n public items: ItemCode[];\n}\n","import { Component, LOCALE_ID, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { FormGroup, Validators } from '@angular/forms';\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\nimport { MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { GetTokenBindingModel } from 'src/app/api/models/base.model';\nimport { SendEmailVerificationBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { PasswordDialogComponent } from 'src/app/controls/password-dialog/password-dialog.component';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.scss'],\n providers: [\n { provide: LOCALE_ID, useValue: 'en-AU' },\n { provide: MAT_DATE_LOCALE, useValue: 'en-AU' },\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\n ],\n})\nexport class ProfileComponent extends BaseComponent implements OnInit {\n\n form: FormGroup;\n\n healthFunds: any[];\n states: any[];\n selectedState: any = { suburbs: [] };\n filteredSuburbs: any[] = [];\n countries: any[];\n genders: any[];\n yesNo = [];\n\n public modalRef: BsModalRef;\n @ViewChild('addressNotesDialog') addressNotesDialog: TemplateRef;\n\n isAddressHasBeenClicked = false;\n\n ngOnInit(): void {\n this.app.pageTitle = 'Update your profile';\n\n // this.form = this.app.formBuilder.group({\n // email: ['', Validators.required],\n // firstName: ['', Validators.required],\n // lastName: ['', Validators.required],\n // mobilePhoneNumber: ['', Validators.required],\n // dateOfBirth: [''],\n // gender: [''],\n // healthFundId: [''],\n // isAustralianPhoneNumber: [''],\n // address1: [''],\n // address4: [''],\n // postCode: [''],\n // stateId: [''],\n // countryId: [''],\n // });\n\n this.form = this.app.formBuilder.group({\n email: [''],\n email2: [''],\n firstName: [''],\n lastName: [''],\n mobilePhoneNumber: ['', Validators.required],\n dateOfBirth: [''],\n gender: [''],\n gender1: [''],\n healthFundId: [''],\n isAustralianPhoneNumber: [''],\n address1: [''],\n address4: [''],\n postCode: [''],\n stateId: [''],\n countryId: [''],\n });\n\n this.genders = [\n { value: 1, viewValue: 'Male' },\n { value: 2, viewValue: 'Female' }\n ];\n\n this.yesNo = [\n { value: true, viewValue: 'Yes' },\n { value: false, viewValue: 'No' }\n ];\n\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n\n this.getHealthFunds();\n\n this.scrollTo();\n });\n\n this.start();\n }\n\n getHealthFunds(): void {\n this.app.spinner.show();\n const model = { branchId: this.app.branch.branchId };\n this.app.webBookingService.GetHealthFunds(model).subscribe(\n data => {\n this.healthFunds = data;\n this.getStates();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n getStates(): void {\n this.app.webBookingService.GetStates().subscribe(\n data => {\n this.states = data;\n this.getCountries();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n getCountries(): void {\n this.app.webBookingService.GetCountries().subscribe(\n data => {\n this.countries = data;\n this.pacthValue();\n this.app.spinner.hide();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n pacthValue() {\n if (this.app.customer.address != null && this.app.customer.address.state != null && this.states != null) {\n for (let a = 0; a < this.states.length; a++) {\n if (this.states[a].stateId == this.app.customer.address.state.stateId) {\n this.selectedState = this.states[a];\n }\n }\n }\n\n this.form.patchValue({\n firstName: this.app.customer.firstName,\n lastName: this.app.customer.lastName,\n email: this.app.customer.email,\n email2: this.app.customer.email2,\n mobilePhoneNumber: this.app.customer.mobilePhoneNumber,\n dateOfBirth: this.setBirthOfDate(this.app.customer.dateOfBirth),\n healthFundId: this.app.customer.healthFundId,\n gender: this.app.customer.gender,\n address1: this.app.customer.address != null ? this.app.customer.address.address1 : '',\n address4: this.app.customer.address != null ? this.app.customer.address.address4 : '',\n postCode: this.app.customer.address != null ? this.app.customer.address.postCode : '',\n stateId: this.app.customer.address != null && this.app.customer.address.state != null ? this.app.customer.address.state.stateId : '',\n countryId: this.app.customer.address != null && this.app.customer.address.country ? this.app.customer.address.country.countryId : '',\n });\n }\n\n setBirthOfDate(dateOfBirth: string): Date {\n if (this.app.stringService.isNotEmpty(dateOfBirth)) return this.app.dateService.getNewDate(dateOfBirth);\n return new Date();\n }\n\n verifyEmailAddress()\n {\n this.app.spinner.show();\n const m = new SendEmailVerificationBindingModel();\n m.email = this.app.customer.email;\n this.app.webBookingService.SendUpdateEmailVerification(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.showInfoMessage('Please check your email to get your email verification code');\n this.app.router.navigate([AppConstants.RouteUpdateEmailAddress]);\n },\n error => {\n this.showErrorMessage(error);\n });\n }\n\n checkIfEmailIsChanged() {\n // if (this.app.stringService.isEmpty(this.form.value.firstName)) {\n // this.showErrorMessage('First Name is required.');\n // return;\n // }\n // if (this.app.stringService.isEmpty(this.form.value.lastName)) {\n // this.showErrorMessage('Last Name is required.');\n // return;\n // }\n if (this.app.stringService.isEmpty(this.form.value.email)) {\n this.showErrorMessage('Mobile No. is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.mobilePhoneNumber)) {\n this.showErrorMessage('Mobile No. is required.');\n return;\n }\n // if (this.app.stringService.isNotEmpty(this.form.value.dateOfBirth)) {\n // var date = new Date(this.form.value.dateOfBirth)\n // this.form.value.dateOfBirth = this.app.dateService.formatDateTime(date);\n // } \n if (this.app.stringService.isEmpty(this.form.value.mobilePhoneNumber)) {\n this.showErrorMessage('Mobile No. is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.address1)) {\n this.showErrorMessage('Address 1 is required.');\n return;\n }\n if (this.app.stringService.isNotValidAddress1(this.form.value.address1)) {\n this.showErrorMessage('PO Box is not allowed.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.stateId)) {\n this.showErrorMessage('State is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.address4)) {\n this.showErrorMessage('Suburb is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.postCode)) {\n this.showErrorMessage('Postcode is required.');\n return;\n }\n if (this.app.stringService.isEmpty(this.form.value.countryId)) {\n this.showErrorMessage('Country is required.');\n return;\n }\n\n if (this.app.stringService.isEmpty(this.form.value.sendSms)) this.form.value.sendSms = false;\n if (this.app.stringService.isEmpty(this.form.value.sendEmail)) this.form.value.sendEmail = false;\n if (this.app.stringService.isEmpty(this.form.value.sendPhone)) this.form.value.sendPhone = false;\n\n var email2 = this.form.value.email;\n if (this.app.customer.email != email2) {\n this.showPasswordDialog();\n }\n else {\n this.updateProfile();\n }\n }\n\n showPasswordDialog(): void {\n const dialogRef = this.app.dialog.open(PasswordDialogComponent, {\n data: this.app.customer,\n });\n dialogRef.afterClosed().subscribe((result: { action: string; } | null) => {\n if (result != null) {\n if (result.action == '1') {\n this.updateProfile();\n }\n }\n });\n }\n \n\n updateProfile(): void {\n this.app.spinner.show();\n this.app.webBookingService.UpdateCustomer(this.form.value)\n .subscribe(\n data => {\n if (data.requiredForUpdateEmailVerification) {\n this.showSuccessMessage('Update email verification code has been sent to your current and new email address.');\n }\n else {\n this.showSuccessMessage('Your profile was successfully updated.');\n }\n this.app.spinner.hide();\n this.getProfile();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.back(true);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n back(isDoubleBack:boolean=false)\n {\n var oldURL = document.referrer;\n var currentUrl = document.location.hostname;\n if(this.app.stringService.isEmpty(oldURL))\n {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n else if(oldURL.includes(currentUrl))\n {\n history.back();\n history.back();\n }\n else{\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n }\n\n get formGroup() { return this.form.controls; }\n\n formControlErrorMessage(formControl: string, maxlength: number = 11, minlength: number = 6): string {\n if (this.form.controls[formControl].touched) {\n return this.form.controls[formControl].hasError('required') ? 'This is field is required.' :\n this.form.controls[formControl].hasError('email') ? 'Must be a valid email.' :\n this.form.controls[formControl].hasError('minlength') ? 'Minimum length is ' + minlength + '.' :\n this.form.controls[formControl].hasError('maxlength') ? 'Maximum length is ' + maxlength + '.' :\n '';\n }\n }\n\n showAddressNotification() {\n if (this.isAddressHasBeenClicked) return;\n this.isAddressHasBeenClicked = true;\n this.modalRef = this.app.modalService.show(\n this.addressNotesDialog,\n {\n class: 'modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n }\n\n onAddress1Change(e: any) {\n setTimeout(() => {\n const model = this.form.getRawValue();\n if (this.app.stringService.isNotValidAddress1(model.address1)) {\n model.address1 = '';\n this.form.patchValue(model);\n this.showErrorMessage('PO Box is not allowed.');\n this.app.spinner.hide();\n return false;\n }\n }, 100);\n }\n\n closeDialog(): void {\n this.modalRef.hide();\n }\n\n onStateOptionClicked(item) {\n this.selectedState = item;\n const data = this.form.getRawValue();\n data.postCode = '';\n data.address4 = '';\n this.form.patchValue(data);\n }\n\n onSuburbOptionClicked(item) {\n const data = this.form.getRawValue();\n data.postCode = item.postcode;\n this.form.patchValue(data);\n }\n\n filterSuburb(value: string): void {\n const filterValue = value.toLowerCase();\n\n if (this.selectedState.suburbs.length > 0) {\n this.filteredSuburbs = this.selectedState.suburbs.filter(suburb => {\n return suburb.name.toLowerCase().indexOf(filterValue) === 0;\n });\n } else {\n this.filteredSuburbs = [];\n }\n }\n\n sendUpdateEmailVerificationCodeToCurrentEmail(): void {\n this.app.spinner.show();\n this.app.webBookingService.SendUpdateEmailVerificationCodeToCurrentEmail()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.showSuccessMessage('Your update email verification code successfully sent to your current email address.');\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n sendUpdateEmailVerificationCodeToNewEmail(): void {\n this.app.spinner.show();\n this.app.webBookingService.SendUpdateEmailVerificationCodeToNewEmail()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.showSuccessMessage('Your update email verification code successfully sent to your new email address.');\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n sendUpdateEmailVerificationCodeToEmail(): void {\n this.app.spinner.show();\n this.app.webBookingService.SendUpdateEmailVerificationCodeToEmail()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.showSuccessMessage('Your update email verification code successfully sent to your new email address.');\n this.app.router.navigate([AppConstants.RouteUpdateEmailAddress]);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n cancelUpdateCustomerEmailAddress(): void {\n this.app.spinner.show();\n this.app.webBookingService.CancelUpdateCustomerEmailAddress()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.getProfile();\n this.showSuccessMessage('Updating email address has been cancelled.');\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n goToUpdateEmailAddress() { \n this.app.router.navigate([AppConstants.RouteUpdateEmailAddress]);\n }\n}\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Register
\r\n \r\n All fields marked with an asterisk (*) are required.\r\n \r\n

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

Personal Information

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n First Name*\r\n \r\n \r\n {{formControlErrorMessage('firstName')}}\r\n \r\n
\r\n
\r\n \r\n Last Name*\r\n \r\n \r\n {{formControlErrorMessage('lastName')}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Date of Birth\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Gender at Birth\r\n \r\n \r\n {{gender.viewValue}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Do you have an Australian No.?\r\n \r\n \r\n {{gender.viewValue}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Mobile Phone*\r\n \r\n \r\n {{formControlErrorMessage('mobilePhoneNumber')}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Health Fund\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

\r\n Address
\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Address 1*\r\n \r\n \r\n {{formControlErrorMessage('address1')}}\r\n \r\n
\r\n
\r\n \r\n State*\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Suburb*\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Suburb*\r\n \r\n \r\n \r\n \r\n {{suburb.name}}\r\n \r\n \r\n \r\n {{formControlErrorMessage('address4')}}\r\n \r\n
\r\n
\r\n \r\n Postcode*\r\n \r\n \r\n {{formControlErrorMessage('postCode')}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Country*\r\n \r\n \r\n {{item.name}}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

Login Information

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n E-mail*\r\n \r\n \r\n {{formControlErrorMessage('email')}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Confirm Email*\r\n \r\n \r\n {{formControlErrorMessage('confirmEmail')}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Password*\r\n \r\n \r\n {{formControlErrorMessage('password')}}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Confirm Password*\r\n \r\n \r\n {{formControlErrorMessage('confirmPassword', 0, 6)}}\r\n \r\n Password and confirm password must match\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n I've read and agree to the Terms and Conditions\r\n \r\n
\r\n Agree to the Terms & Conditions is required\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
","import { TermsAndConditionsComponent } from './page/customer/terms-and-conditions/terms-and-conditions.component';\r\nimport { ResetPasswordComponent } from './page/customer/reset-password/reset-password.component';\r\nimport { ForgotPasswordComponent } from './page/customer/forgot-password/forgot-password.component';\r\nimport { ThankYouComponent } from './page/booking/thank-you/thank-you.component';\r\nimport { AppConstants } from './app.constants';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { MainComponent } from './layout/main/main.component';\r\nimport { SelectConsultationComponent } from './page/booking/select-consultation/select-consultation.component';\r\nimport { SelectPractitionerComponent } from './page/booking/select-practitioner/select-practitioner.component';\r\nimport { LoginComponent } from './page/customer/login/login.component';\r\nimport { RegisterComponent } from './page/customer/register/register.component';\r\nimport { ServiceConfirmationComponent } from './page/booking/service-confirmation/service-confirmation.component';\r\nimport { SelectDateAndTimeComponent } from './page/booking/select-date-and-time/select-date-and-time.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { VerifyEmailAddressComponent } from './page/customer/verify-email-address/verify-email-address.component';\r\nimport { MigrateCustomerComponent } from './page/customer/migrate-customer/migrate-customer.component';\r\nimport { ProfileComponent } from './page/customer/profile/profile.component';\r\nimport { ChangePasswordComponent } from './page/customer/change-password/change-password.component';\r\nimport { LogoutComponent } from './page/customer/logout/logout.component';\r\nimport { InvalidComponent } from './page/invalid/invalid.component';\r\nimport { CovidComponent } from './page/covid/covid.component';\r\nimport { VisitorGuard } from './guards/visitor.guard';\r\nimport { CustomerGuard } from './guards/customer.guard';\r\nimport { GiftVoucherRedemptionComponent } from './page/booking/gift-voucher-redemption/gift-voucher-redemption.component';\r\nimport { GiftVoucherCartComponent } from './page/gift-voucher/gift-voucher-cart/gift-voucher-cart.component';\r\nimport { GiftVoucherCheckoutComponent } from './page/gift-voucher/gift-voucher-checkout/gift-voucher-checkout.component';\r\nimport { GiftVoucherDetailsComponent } from './page/gift-voucher/gift-voucher-details/gift-voucher-details.component';\r\nimport { GiftVoucherHomeComponent } from './page/gift-voucher/gift-voucher-home/gift-voucher-home.component';\r\nimport { GiftVoucherThankYouComponent } from './page/gift-voucher/gift-voucher-thank-you/gift-voucher-thank-you.component';\r\nimport { IncomingBookingComponent } from './page/customer/incoming-booking/incoming-booking.component';\r\nimport { TransactionHistoryComponent } from './page/customer/transaction-history/transaction-history.component';\r\nimport { RescheduleComponent } from './page/customer/reschedule/reschedule.component';\r\nimport { UpdateEmailAddressComponent } from './page/customer/update-email-address/update-email-address.component';\r\n\r\nexport const routes: Routes = [\r\n {\r\n path: '', component: MainComponent,\r\n children: [\r\n {\r\n path: '',\r\n redirectTo: AppConstants.RouteSelectConsultation,\r\n pathMatch: 'full'\r\n },\r\n\r\n { path: AppConstants.RouteInvalid, component: InvalidComponent },\r\n { path: AppConstants.RouteCovid, component: CovidComponent },\r\n { path: AppConstants.RouteTermsAndConditions, component: TermsAndConditionsComponent },\r\n\r\n { path: AppConstants.RouteSelectConsultation, component: SelectConsultationComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteSelectPractitioner, component: SelectPractitionerComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteSelectDate, component: SelectDateAndTimeComponent, canActivate: [CustomerGuard] },\r\n\r\n { path: AppConstants.RouteServiceConfirmation, component: ServiceConfirmationComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteGiftVoucherRedemption, component: GiftVoucherRedemptionComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteThankYou, component: ThankYouComponent, canActivate: [CustomerGuard] },\r\n\r\n { path: AppConstants.RouteLogin, component: LoginComponent, canActivate: [VisitorGuard] },\r\n { path: AppConstants.RouteRegister, component: RegisterComponent, canActivate: [VisitorGuard] },\r\n { path: AppConstants.RouteForgotPassword, component: ForgotPasswordComponent, canActivate: [VisitorGuard] },\r\n { path: AppConstants.RouteResetPassword, component: ResetPasswordComponent, canActivate: [VisitorGuard] },\r\n { path: AppConstants.RouteVerifyEmailAddress, component: VerifyEmailAddressComponent, canActivate: [VisitorGuard] },\r\n { path: AppConstants.RouteUpdateEmailAddress, component: UpdateEmailAddressComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteMigrateCustomer, component: MigrateCustomerComponent, canActivate: [VisitorGuard] },\r\n\r\n { path: AppConstants.RouteLogout, component: LogoutComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteChangePassword, component: ChangePasswordComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteProfile, component: ProfileComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteTransactionHistory, component: TransactionHistoryComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteIncomingAppointment, component: IncomingBookingComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteReSchedule, component: RescheduleComponent, canActivate: [CustomerGuard] },\r\n \r\n { path: AppConstants.RouteGiftVouchers, component: GiftVoucherHomeComponent, canActivate: [CustomerGuard] }, \r\n { path: AppConstants.RouteGiftVoucher, component: GiftVoucherDetailsComponent, canActivate: [CustomerGuard] }, \r\n { path: AppConstants.RouteCart, component: GiftVoucherCartComponent, canActivate: [CustomerGuard] }, \r\n { path: AppConstants.RouteCheckout, component: GiftVoucherCheckoutComponent, canActivate: [CustomerGuard] },\r\n { path: AppConstants.RouteGvThankYou, component: GiftVoucherThankYouComponent, canActivate: [CustomerGuard] },\r\n\r\n { path: '**', component: InvalidComponent }\r\n ]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes)\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {\r\n\r\n}\r\n\r\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { StringService } from 'src/app/services/string.service';\n\n@Component({\n selector: 'app-cancel-dialog',\n templateUrl: './cancel-dialog.component.html',\n styleUrls: ['./cancel-dialog.component.scss']\n})\nexport class CancelDialogComponent implements OnInit {\n\n public title = 'Message';\n public description = 'Please contact us on +61 9302 2888 as your appointment is within 24hrs and a cancellation fee applies.';\n public confirmText = 'Yes';\n public textAreaHint = 'Comment';\n public textAreaValue = '';\n\n constructor(\n public dialogRef: MatDialogRef,\n public stringService: StringService,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n }\n\n ngOnInit() {\n if (this.data != null) {\n if (this.stringService.isNotEmpty(this.data.title)) {\n this.title = this.data.title;\n }\n\n if (this.stringService.isNotEmpty(this.data.description)) {\n this.description = this.data.description;\n }\n\n if (this.stringService.isNotEmpty(this.data.confirmText)) {\n this.confirmText = this.data.confirmText;\n }\n\n if (this.stringService.isNotEmpty(this.data.textAreaHint)) {\n this.textAreaHint = this.data.textAreaHint;\n }\n\n if (this.stringService.isNotEmpty(this.data.textAreaValue)) {\n this.textAreaValue = this.data.textAreaValue;\n }\n \n if (this.data.appointment.hoursBeforeAppointment > 24) {\n this.description = \"Are you sure you want to delete your appointment?\";\n }\n }\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n onYesClick(): void {\n this.data.action = 1;\n this.dialogRef.close(this.data);\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ToastrService } from 'ngx-toastr';\nimport { GetTokenBindingModel } from 'src/app/api/models/base.model';\nimport { WebBookingService } from 'src/app/api/services/web-booking.service';\nimport { AppConstants } from 'src/app/app.constants';\nimport { DateService } from 'src/app/services/date.service';\nimport { StorageService } from 'src/app/services/storage.service';\nimport { StringService } from 'src/app/services/string.service';\n\n@Component({\n selector: 'app-password-dialog',\n templateUrl: './password-dialog.component.html',\n styleUrls: ['./password-dialog.component.scss']\n})\nexport class PasswordDialogComponent implements OnInit {\n\n password: string;\n \n constructor(\n public dialogRef: MatDialogRef,\n public stringService: StringService,\n public webBookingService: WebBookingService,\n public dateService: DateService,\n public spinner: NgxSpinnerService,\n public storageService: StorageService,\n public toastr: ToastrService,\n @Inject(MAT_DIALOG_DATA) public data: any) {\n }\n\n ngOnInit(): void {\n\n }\n\n getToken(): void {\n const model: GetTokenBindingModel =\n {\n username: this.data.email,\n email: this.data.email,\n password: this.password,\n grand_type: 'password'\n };\n\n this.spinner.show();\n this.webBookingService.GetToken(model)\n .subscribe(\n data => {\n data.created_date = this.dateService.formatDateTime(new Date());\n this.storageService.setItem(AppConstants.Token, JSON.stringify(data));\n this.data.action = 1;\n this.spinner.hide();\n this.dialogRef.close(this.data);\n },\n error => {\n this.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n showErrorMessage(data: any): void {\n const message = this.getBadRequest(data);\n this.toastr.error(message, 'Error', { timeOut: 3000 });\n }\n \n getBadRequest(data: any): string {\n let message = '';\n if (data != null && data._body != null) {\n const body = JSON.parse(data._body);\n if (body.message != null) { message = body.message; }\n if (body.error_description != null) { message = body.error_description; }\n }\n else if (data.error != null && data.error !== undefined) {\n if (data.error.message != null) { message = data.error.message; }\n if (data.error.error_description != null) { message = data.error.error_description; }\n }\n else {\n message = data;\n }\n return message;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'universal-health';\n}\n","

gift-voucher-cart works!

\n","\n\n
\n
\n
\n
\n

Booking Completed

\n
\n

Thank you for your booking. An email confirming your booking details has been sent to your inbox.\n

\n
\n \n

Below is your appointment details:

\n
\n
\n
\n  Loading Appointment Details....\n
\n
\n
\n
\n
\n
\n \n Treatment\n \n \n
\n
\n \n Practitioner\n \n \n
\n
\n
\n
\n \n Appointment Date\n \n \n
\n
\n \n Appointment Time\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
    \n
  • \n Add to Calendar\n
  • \n
  • \n
    \n  Apple\n {{appointmentResult.startTime}}\n {{appointmentResult.endTime}}\n Universal Health\n {{treatment.name}}\n {{app.branch.address}}\n {{app.branch.branchName}}\n {{app.branch.email}}\n false\n MM/DD/YYYY\n
    \n
  • \n
  • \n\n
    \n  Google\n (online)\n {{appointmentResult.startTime}}\n {{appointmentResult.endTime}}\n Universal Health\n {{treatment.name}}\n {{app.branch.address}}\n {{app.branch.branchName}}\n {{app.branch.email}}\n false\n MM/DD/YYYY\n
    \n
  • \n
  • \n
    \n  Outlook\n {{appointmentResult.startTime}}\n {{appointmentResult.endTime}}\n Universal Health\n {{treatment.name}}\n {{app.branch.address}}\n {{app.branch.branchName}}\n {{app.branch.email}}\n false\n MM/DD/YYYY\n
    \n
  • \n
  • \n
    \n  Outlook.com\n (online)\n {{appointmentResult.startTime}}\n {{appointmentResult.endTime}}\n Universal Health\n {{treatment.name}}\n {{app.branch.address}}\n {{app.branch.branchName}}\n {{app.branch.email}}\n false\n MM/DD/YYYY\n
    \n
  • \n
  • \n
    \n  Yahoo\n (online)\n {{appointmentResult.startTime}}\n {{appointmentResult.endTime}}\n Universal Health\n {{treatment.name}}\n {{app.branch.address}}\n {{app.branch.branchName}}\n {{app.branch.email}}\n false\n MM/DD/YYYY\n
    \n
  • \n
  • \n Make Another Booking\n
  • \n
\n
\n
","import { Component, forwardRef, Inject, Input, OnInit } from '@angular/core';\nimport { MainComponent } from '../main/main.component';\n\n@Component({\n selector: 'app-steps',\n templateUrl: './steps.component.html',\n styleUrls: ['./steps.component.scss']\n})\nexport class StepsComponent implements OnInit {\n\n constructor(\n @Inject(forwardRef(() => MainComponent)) public app: MainComponent) { }\n \n @Input('step') step;\n\n ngOnInit(): void {\n }\n\n}\n","\n\n
\n
\n

Select Preferred Date and Time

\n
\n
\n\n
\n
\n
\n
\n \n \n {{date.getDate()}}\n \n \n
\n
\n
\n \n \n \n \n \n \n
 Not\n Available  Available \n  Selected \n
\n
\n
\n
\n
\n
\n
\n
\n
\n

\n Available Time\n

\n
0\">\n
\n \n {{app.dateService.getNewDate(selectedSlot.appointmentDate)|date:'dd'}} |\n {{app.dateService.getDay(app.dateService.getNewDate(selectedSlot.appointmentDate))}}\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n No available time.\n
\n
\n
\n
\n
\n \n \n\n \n
\n \n
\n
\n
\n
\n
\n\n\n\n
\n

Message

\n
\n
\n

Appointment successfully added to cart.

\n
\n \n
","

{{title}}

\n
\n
\n
\n I agree with the above conditions\n
\n
\n
\n  \n \n
","
\n
\n
\n
\n

Verify your email addres

\n
\n
\n
\n Please enter email verification code.\n
\n
\n
\n
\n
\n \n Password Reset Code*\n \n \n Resend email verification code\n \n \n
\n
\n
\n
\n \n
\n
\n
\n
","\nimport { ForgotPasswordComponent } from './page/customer/forgot-password/forgot-password.component';\nimport { ServiceConfirmationComponent } from './page/booking/service-confirmation/service-confirmation.component';\nimport { LoginComponent } from './page/customer/login/login.component';\nimport { SelectPractitionerComponent } from './page/booking/select-practitioner/select-practitioner.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { LOCALE_ID, NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { HeaderComponent } from './layout/header/header.component';\nimport { FooterComponent } from './layout/footer/footer.component';\nimport { AppRoutingModule } from './app.routes';\nimport { MainComponent } from './layout/main/main.component';\nimport { SelectConsultationComponent } from './page/booking/select-consultation/select-consultation.component';\nimport { BaseComponent } from './layout/main/base.component';\n\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { FormsModule, FormBuilder, ReactiveFormsModule } from '@angular/forms';\n\nimport { RegisterComponent } from './page/customer/register/register.component';\n\nimport { ThankYouComponent } from './page/booking/thank-you/thank-you.component';\nimport { TermsAndConditionsComponent } from './page/customer/terms-and-conditions/terms-and-conditions.component';\n\nimport { APP_INITIALIZER } from '@angular/core';\nimport { ConfigService } from './services/config.service';\nimport { StorageService } from './services/storage.service';\n\nimport { MyDatePickerModule } from 'mydatepicker';\nimport { ToastrModule } from 'ngx-toastr';\nimport { HttpClientModule } from '@angular/common/http';\nimport { SelectDateAndTimeComponent } from './page/booking/select-date-and-time/select-date-and-time.component';\nimport { WebBookingService } from './api/services/web-booking.service';\n\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { defineLocale } from 'ngx-bootstrap/chronos';\n\nimport { DateInputsModule } from '@progress/kendo-angular-dateinputs';\nimport { InputsModule } from '@progress/kendo-angular-inputs';\n\nimport {\n arLocale, bgLocale, caLocale, csLocale, daLocale, deLocale, enGbLocale, esDoLocale,\n esLocale, esUsLocale, etLocale, fiLocale, frLocale, glLocale, heLocale, hiLocale, huLocale,\n idLocale, itLocale, jaLocale, koLocale, ltLocale, mnLocale, nbLocale, nlBeLocale, nlLocale,\n plLocale, ptBrLocale, roLocale, ruLocale, skLocale, slLocale, svLocale, thLocale, trLocale,\n viLocale, zhCnLocale\n} from 'ngx-bootstrap/locale';\n\nimport { NgxSpinnerModule } from 'ngx-spinner';\nimport { ResetPasswordComponent } from './page/customer/reset-password/reset-password.component';\nimport { VerifyEmailAddressComponent } from './page/customer/verify-email-address/verify-email-address.component';\nimport { MigrateCustomerComponent } from './page/customer/migrate-customer/migrate-customer.component';\nimport { InvalidComponent } from './page/invalid/invalid.component';\nimport { ChangePasswordComponent } from './page/customer/change-password/change-password.component';\nimport { ProfileComponent } from './page/customer/profile/profile.component';\nimport { LogoutComponent } from './page/customer/logout/logout.component';\n\ndefineLocale('ar', arLocale);\ndefineLocale('bg', bgLocale);\ndefineLocale('ca', caLocale);\ndefineLocale('cs', csLocale);\ndefineLocale('da', daLocale);\ndefineLocale('de', deLocale);\ndefineLocale('en-gb', enGbLocale);\ndefineLocale('es', esDoLocale);\ndefineLocale('es', esLocale);\ndefineLocale('es-us', esUsLocale);\ndefineLocale('et', etLocale);\ndefineLocale('fi', fiLocale);\ndefineLocale('fr', frLocale);\ndefineLocale('gl', glLocale);\ndefineLocale('he', heLocale);\ndefineLocale('hi', hiLocale);\ndefineLocale('hu', huLocale);\ndefineLocale('id', idLocale);\ndefineLocale('it', itLocale);\ndefineLocale('ja', jaLocale);\ndefineLocale('ko', koLocale);\ndefineLocale('lt', ltLocale);\ndefineLocale('mn', mnLocale);\ndefineLocale('nb', nbLocale);\ndefineLocale('nl-be', nlBeLocale);\ndefineLocale('nl', nlLocale);\ndefineLocale('pl', plLocale);\ndefineLocale('pt', ptBrLocale);\ndefineLocale('ro', roLocale);\ndefineLocale('ru', ruLocale);\ndefineLocale('sk', skLocale);\ndefineLocale('sl', slLocale);\ndefineLocale('sv', svLocale);\ndefineLocale('th', thLocale);\ndefineLocale('tr', trLocale);\ndefineLocale('vi', viLocale);\ndefineLocale('zh-cn', zhCnLocale);\n\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatTableModule } from '@angular/material/table';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { CovidComponent } from './page/covid/covid.component';\nimport { StepsComponent } from './layout/steps/steps.component';\nimport { DatePipe } from '@angular/common';\nimport { VisitorGuard } from './guards/visitor.guard';\nimport { CustomerGuard } from './guards/customer.guard';\nimport { GiftVoucherRedemptionComponent } from './page/booking/gift-voucher-redemption/gift-voucher-redemption.component';\nimport { StringService } from './services/string.service';\nimport { GiftVoucherCartComponent } from './page/gift-voucher/gift-voucher-cart/gift-voucher-cart.component';\nimport { GiftVoucherCheckoutComponent } from './page/gift-voucher/gift-voucher-checkout/gift-voucher-checkout.component';\nimport { GiftVoucherDetailsComponent } from './page/gift-voucher/gift-voucher-details/gift-voucher-details.component';\nimport { GiftVoucherHomeComponent } from './page/gift-voucher/gift-voucher-home/gift-voucher-home.component';\nimport { GiftVoucherThankYouComponent } from './page/gift-voucher/gift-voucher-thank-you/gift-voucher-thank-you.component';\nimport { WebGiftVoucherService } from './api/services/web-gift-voucher.service';\nimport { NavigatorService } from './services/navigator.service';\nimport { SafeurlPipe } from './services/safeurl.pipe';\nimport { IncomingBookingComponent } from './page/customer/incoming-booking/incoming-booking.component';\nimport { TransactionHistoryComponent } from './page/customer/transaction-history/transaction-history.component';\nimport { DateService } from './services/date.service';\nimport { RescheduleComponent } from './page/customer/reschedule/reschedule.component';\nimport { CancelAppointmentComponent } from './page/customer/cancel-appointment/cancel-appointment.component';\nimport { ConfirmationDialogComponent } from './controls/confirmation-dialog/confirmation-dialog.component';\nimport { CancelDialogComponent } from './controls/cancel-dialog/cancel-dialog.component';\nimport { UpdateEmailAddressComponent } from './page/customer/update-email-address/update-email-address.component';\nimport { PasswordDialogComponent } from './controls/password-dialog/password-dialog.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n FooterComponent,\n MainComponent,\n BaseComponent,\n\n SelectConsultationComponent,\n SelectPractitionerComponent,\n ServiceConfirmationComponent,\n ThankYouComponent,\n\n LoginComponent,\n RegisterComponent,\n ForgotPasswordComponent,\n TermsAndConditionsComponent,\n SelectDateAndTimeComponent,\n ResetPasswordComponent,\n VerifyEmailAddressComponent,\n MigrateCustomerComponent,\n InvalidComponent,\n ChangePasswordComponent,\n ProfileComponent,\n LogoutComponent,\n CovidComponent,\n StepsComponent,\n GiftVoucherRedemptionComponent,\n GiftVoucherHomeComponent,\n GiftVoucherCartComponent,\n GiftVoucherCheckoutComponent,\n GiftVoucherThankYouComponent,\n GiftVoucherDetailsComponent,\n SafeurlPipe,\n IncomingBookingComponent,\n TransactionHistoryComponent,\n RescheduleComponent,\n CancelAppointmentComponent,\n ConfirmationDialogComponent,\n CancelDialogComponent,\n UpdateEmailAddressComponent,\n PasswordDialogComponent\n ],\n entryComponents: [\n ThankYouComponent,\n ConfirmationDialogComponent,\n CancelDialogComponent,\n PasswordDialogComponent\n ],\n // entryComponents: [ConfirmationDialogComponent, ConfirmationDialogCommentComponent],\n imports: [\n BrowserModule,\n HttpClientModule,\n AppRoutingModule,\n BrowserModule,\n BrowserAnimationsModule,\n FormsModule,\n BrowserModule,\n AppRoutingModule,\n ReactiveFormsModule,\n \n InputsModule,\n DateInputsModule,\n\n NgxSpinnerModule,\n MyDatePickerModule,\n\n MatFormFieldModule,\n MatSelectModule,\n MatInputModule,\n MatToolbarModule,\n MatCardModule,\n MatDatepickerModule,\n MatNativeDateModule,\n MatMomentDateModule,\n MatCheckboxModule,\n MatRadioModule,\n MatSnackBarModule,\n MatButtonModule,\n MatDividerModule,\n MatListModule,\n MatIconModule,\n MatSlideToggleModule,\n ScrollingModule,\n MatSortModule,\n MatTableModule,\n MatPaginatorModule,\n MatAutocompleteModule,\n MatMenuModule,\n\n ToastrModule.forRoot(),\n ModalModule.forRoot(),\n BsDatepickerModule.forRoot()\n ],\n providers: [\n FormBuilder,\n StorageService,\n WebBookingService,\n WebGiftVoucherService,\n NavigatorService,\n DatePipe,\n VisitorGuard,\n StringService,\n CustomerGuard,\n DateService,\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [ConfigService],\n useFactory: (appConfigService: ConfigService) => {\n return () => {\n return appConfigService.load();\n };\n }\n },\n {\n provide: LOCALE_ID,\n deps: [ConfigService],\n useFactory: (appConfigService: ConfigService) => appConfigService.config.locale\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","
\n

Sorry

\n

\n We can't accommodate you right now. Please contact the clinic on\n +612 9302 2888 before making an\n appointment or attending the clinic\n

\n
","import { Component, OnInit } from '@angular/core';\nimport { SendEmailVerificationBindingModel, IsValidEmailVerificationKeyBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-update-email-address',\n templateUrl: './update-email-address.component.html',\n styleUrls: ['./update-email-address.component.scss']\n})\nexport class UpdateEmailAddressComponent extends BaseComponent implements OnInit {\n\n currentEmailVerificationCode: string;\n\n ngOnInit() {\n this.app.pageTitle = 'Update your email address';\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n this.scrollTo();\n });\n\n this.start();\n }\n\n resend() {\n this.app.spinner.show();\n const m = new SendEmailVerificationBindingModel();\n m.email = this.app.customer.email;\n this.app.webBookingService.SendUpdateEmailVerification(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.showInfoMessage('Please check your email to get your email verification code');\n },\n error => {\n this.showErrorMessage(error);\n });\n }\n\n backToProfile() {\n this.app.router.navigate([AppConstants.RouteProfile]);\n }\n\n submit() {\n this.app.spinner.show();\n const m = new IsValidEmailVerificationKeyBindingModel();\n m.emailVerificationKey = this.currentEmailVerificationCode;\n m.customerId = this.app.customer.customerId;\n this.app.webBookingService.VerifyCustomerEmail(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.getProfile();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n this.app.router.navigate([AppConstants.RouteLogin]);\n });\n }\n\n \n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.app.router.navigate([AppConstants.RouteProfile]);\n this.showSuccessMessage('Email successfully verify.');\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n}\n","\n
\n
\n\n

Future Bookings

\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 10)}\">\n \n\n
Date \n {{element.startTime | date: 'MMM d, y'}}\n Status \n {{element.status}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{element.startTime}}\n {{element.endTime}}\n {{element.branch.name}}\n \n {{element.treatments}}\n \n {{element.branch.address}}\n {{element.branch.name}}\n {{element.branch.email}}\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
Treatments \n \n \n \n \n
\n \n {{detail.description}}\n \n
\n Staff: {{detail.staffName}}\n
\n Time: {{detail.startTime | date:'h:mm a'}}\n \n - {{detail.endTime\n | date:'h:mm a'}}\n \n \n
\n Additional Info: {{detail.notes}}\n
\n
\n Instructions: {{detail.treatment.description}}\n
\n
\n\n\n
Time \n {{detail.startTime | date: 'hh:mm:a'}}\n \n \n
\n\n
\n
\n  Loading data...\n \n No future bookings.\n \n \n
\n\n\n
\n
\n
","export class AppConstants {\r\n\r\n public static Token = 'token'; // *summary: type: GetTokenViewModel\r\n\r\n public static RedirectState = 'redirectState'; // *summary: type\r\n\r\n public static DefaultBranch = 'defaultBranch'; // *summary: type: BranchModel\r\n public static BookingSelectedTreatment = 'selectedConsultation'; // *summary: type: RetrieveServicesAndPackagesByBranchViewModel\r\n public static SelectedPractitioner = 'selectedPractitioner'; // *summary: type: StaffDto\r\n public static BookingSelectedSlot = 'BookingSelectedSlot';\r\n public static BookingSelectedDate = 'BookingSelectedDate';\r\n public static BookingSelectedTime = 'BookingSelectedTime';\r\n public static BookingGiftVoucherNumber = 'BookingSelectedTime';\r\n public static BookingResultFailedToHoldGv = 'BookingResultFailedToHoldGv';\r\n public static BookingProcessStatus = 'BookingProcessStatus';\r\n public static BookingSelectedAppointmentForReschedule = 'BookingSelectedAppointmentForReschedule'; \r\n\r\n public static Appointment = 'appointment'; // *summary: type Appointment\r\n public static PendingTransaction = 'pendingTransaction'; // *summary: type Appointment\r\n\r\n public static Customer = 'customer'; // *summary: type: Customer\r\n public static Email = 'email'; // *summary: type\r\n\r\n public static AppointmentResult = 'appointmentResult'; // summary: Type AppointmentResult\r\n public static BookingTreatmentResult = 'BookingTreatmentResult';\r\n public static BookingPractionerResult = 'BookingPractionerResult';\r\n public static BookingSlotResult = 'BookingSlotResult';\r\n\r\n public static CustomerId = 'CustomerId';\r\n public static CustomerEmail = 'CustomerEmail';\r\n\r\n // Routes\r\n public static RouteSelectConsultation = 'select-consultation';\r\n public static RouteSelectPractitioner = 'select-practitioner';\r\n public static RouteSelectDate = 'select-date';\r\n public static RouteServiceConfirmation = 'service-confirmation';\r\n public static RouteGiftVoucherRedemption = 'gift-voucher-redemption'; \r\n public static RouteThankYou = 'thank-you';\r\n\r\n public static RouteInvalid = 'invalid';\r\n public static RouteCovid = 'covid';\r\n public static RouteTermsAndConditions = 'terms-and-conditions';\r\n\r\n public static RouteLogin = 'customer/login';\r\n public static RouteRegister = 'customer/register';\r\n public static RouteForgotPassword = 'customer/forgot-password';\r\n public static RouteResetPassword = 'customer/reset-password';\r\n public static RouteVerifyEmailAddress = 'customer/verify-email-address';\r\n public static RouteUpdateEmailAddress = 'customer/update-email-address';\r\n public static RouteMigrateCustomer = 'customer/activate-account';\r\n public static RouteChangePassword = 'customer/change-password';\r\n public static RouteProfile = 'customer/profile';\r\n public static RouteLogout = 'customer/logout';\r\n public static RouteTransactionHistory = 'customer/transaction-history';\r\n public static RouteIncomingAppointment = 'customer/future-bookings';\r\n public static RouteReSchedule = 'customer/reschedule';\r\n\r\n public static RouteGiftVouchers = 'gift-vouchers'; \r\n public static RouteGiftVoucher = 'add-to-basket'; \r\n public static RouteCart = 'cart'; \r\n public static RouteCheckout = 'checkout';\r\n public static RouteGvThankYou = 'confirmation';\r\n\r\n public static GiftVoucherProcessStatus = 'GiftVoucherProcessStatus';\r\n public static GiftVoucherPendingTransactionHeader = 'GiftVoucherPendingTransactionHeader';\r\n public static GiftVoucherSelectedVoucher = 'GiftVoucherSelectedVoucher';\r\n public static GiftVoucherSelectedVouchers = 'GiftVoucherSelectedVouchers';\r\n public static GiftVoucherDownloadUrl = 'GiftVoucherDownloadUrl';\r\n public static GiftVoucherResultPendingTransactionHeader = 'GiftVoucherResultPendingTransactionHeader';\r\n public static GiftVoucherUrls = 'GiftVoucherUrls';\r\n\r\n}\r\n","
\n
\n
\n
\n
\n

\n Profile
\n \n All fields marked with an asterisk (*) are required.\n \n

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

Personal Information

\n
\n
\n
\n
\n \n First Name\n \n \n \n {{formControlErrorMessage('firstName')}}\n \n
\n
\n \n Last Name\n \n \n \n {{formControlErrorMessage('lastName')}}\n \n
\n
\n
\n
\n \n Date of Birth\n \n \n \n \n \n
\n
\n \n Gender at Birth\n \n \n {{gender.viewValue}}\n \n \n \n \n \n Gender at Birth\n \n \n \n \n \n \n
\n
\n\n\n
\n
\n \n Email\n \n \n {{formControlErrorMessage('email')}}\n \n Verify your email address \n \n

\n
\n
\n\n
\n
\n \n Do you have an Australian No.?\n \n \n {{gender.viewValue}}\n \n \n \n
\n
\n \n Mobile Phone\n \n \n {{formControlErrorMessage('mobilePhoneNumber')}}\n \n
\n
\n\n
\n
\n \n Health Fund\n \n \n {{item.name}}\n \n \n \n
\n
\n\n
\n
\n

\n Address
\n Please ensure your residential address is current and corresponding to your\n Medicare and/or Private Health Insurance records. No Po Box acceptable.\n

\n
\n
\n
\n
\n \n Address 1*\n \n \n {{formControlErrorMessage('firstName')}}\n \n
\n
\n \n State*\n \n \n {{item.name}}\n \n \n \n
\n
\n
\n
\n \n Suburb*\n \n \n {{item.name}}\n \n \n \n
\n
\n \n Suburb\n \n \n \n \n {{suburb.name}}\n \n \n \n {{formControlErrorMessage('address4')}}\n \n
\n
\n \n Postcode*\n \n \n {{formControlErrorMessage('postCode')}}\n \n
\n
\n
\n
\n \n Country*\n \n \n {{item.name}}\n \n \n \n
\n
\n\n \n
\n
\n
\n
\n\n\n\n
\n

Message

\n
\n
\n

PLEASE ENSURE YOUR RESIDENTIAL ADDRESS IS CURRENT AND CORRESPONDING TO YOUR MEDICARE AND /OR PRIVATE HEALTH\n INSURANCE RECORDS. NO PO BOX ACCEPTABLE.

\n
\n
\n Okay\n
\n
","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigatorService {\n\n constructor() { }\n\n os = [\n { name: 'Windows Phone', value: 'Windows Phone', version: 'OS' },\n { name: 'Windows', value: 'Win', version: 'NT' },\n { name: 'iPhone', value: 'iPhone', version: 'OS' },\n { name: 'iPad', value: 'iPad', version: 'OS' },\n { name: 'Kindle', value: 'Silk', version: 'Silk' },\n { name: 'Android', value: 'Android', version: 'Android' },\n { name: 'PlayBook', value: 'PlayBook', version: 'OS' },\n { name: 'BlackBerry', value: 'BlackBerry', version: '/' },\n { name: 'Macintosh', value: 'Mac', version: 'OS X' },\n { name: 'Linux', value: 'Linux', version: 'rv' },\n { name: 'Palm', value: 'Palm', version: 'PalmOS' }\n ];\n\n dataBrowser = [\n { name: 'Chrome', value: 'Chrome', version: 'Chrome' },\n { name: 'Firefox', value: 'Firefox', version: 'Firefox' },\n { name: 'Safari', value: 'Safari', version: 'Version' },\n { name: 'Internet Explorer', value: 'MSIE', version: 'MSIE' },\n { name: 'Opera', value: 'Opera', version: 'Opera' },\n { name: 'BlackBerry', value: 'CLDC', version: 'CLDC' },\n { name: 'Mozilla', value: 'Mozilla', version: 'Mozilla' }\n ];\n\n header = [\n navigator.platform,\n navigator.userAgent,\n navigator.appVersion,\n navigator.vendor\n ];\n\n public getBrowserDetails(): BrowserAgent {\n var language;\tif (window.navigator.languages) {\t language = window.navigator.languages[0];\t} else {\t language = window.navigator.language;\t}\n return { \n branchId: '', \n appCodeName: navigator.appCodeName, \n appVersion: navigator.appVersion, \n userAgent: navigator.userAgent, \n platform: navigator.platform, \n language: language \n };\n }\n\n}\n\nexport class BrowserAgent {\n public branchId = '';\n public appCodeName = '';\n public appVersion = '';\n public userAgent = '';\n public platform = '';\n public language = '';\n}\n","import { FormBuilder } from '@angular/forms';\nimport { Component, OnInit, NgZone, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NgxSpinnerService } from 'ngx-spinner';\nimport { ToastrService } from 'ngx-toastr';\nimport { StorageService } from 'src/app/services/storage.service';\nimport { ConfigService } from 'src/app/services/config.service';\nimport { WebBookingService } from 'src/app/api/services/web-booking.service';\nimport { Branch, Customer, GiftVoucher, InvoiceDetailType, Item, ProcessStatus } from 'src/app/api/models/web-booking.models';\nimport { AppConfigModel } from 'src/app/api/models/base.model';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { AppConstants } from 'src/app/app.constants';\nimport { StringService } from 'src/app/services/string.service';\nimport { WebGiftVoucherService } from 'src/app/api/services/web-gift-voucher.service';\nimport { Subject } from 'rxjs';\nimport { NavigatorService } from 'src/app/services/navigator.service';\nimport { DateService } from 'src/app/services/date.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ConfirmationDialogComponent } from 'src/app/controls/confirmation-dialog/confirmation-dialog.component';\n// import { BsLocaleService } from 'ngx-bootstrap';\n\n@Component({\n selector: 'app-main',\n templateUrl: './main.component.html',\n styleUrls: ['./main.component.css']\n})\nexport class MainComponent implements OnInit, AfterViewInit {\n\n public token: any;\n public customer: Customer;\n public config: AppConfigModel;\n\n public pageBanner = '';\n public pageSubTitle = '';\n public pageTitle = 'Book an Appointment';\n public hideFooterAndBanner = false;\n\n public loadingDescription = 'Loading';\n public showLoadingSvg = true;\n\n public branch: Branch;\n \n public basketItems: Item[];\n public totalAmount = 0;\n public cartUpdateTrigger: Subject = new Subject();\n public hasGiftVoucherItem: boolean;\n public hasBookingItem: boolean;\n public isPassSeven: boolean;\n\n public alreadyAnswer: boolean;\n\n constructor(\n public router: Router,\n public activatedRoute: ActivatedRoute,\n public formBuilder: FormBuilder,\n public toastr: ToastrService,\n public ngZone: NgZone,\n public configService: ConfigService,\n public storageService: StorageService,\n public webBookingService: WebBookingService,\n public webGiftVoucherService: WebGiftVoucherService, \n public modalService: BsModalService,\n public modalService1: BsModalService,\n public spinner: NgxSpinnerService,\n public stringService: StringService,\n public navigatorService: NavigatorService,\n public dateService: DateService,\n public dialog: MatDialog,\n // public localeService: BsLocaleService\n ) {\n this.config = this.configService.config;\n // this.localeService.use(this.configService.config.locale.toLowerCase());\n }\n\n ngAfterViewInit(): void {\n // setTimeout(() => { this.openModal(this.covidUpdate); }, 100);\n }\n\n ngOnInit(): void {\n }\n\n\n gotoProfile(): void {\n\n }\n\n gotoChangePassword(): void {\n\n }\n\n gotoLogout(): void {\n\n }\n\n\n delete(index) {\n const deletedItem = this.basketItems.splice(index, 1);\n if (deletedItem[0].invoiceDetailType == InvoiceDetailType.Service) {\n this.cancelAppointment(deletedItem[0].appointmentId);\n }\n this.reCompute();\n }\n\n reCompute()\n {\n this.storageService.setItem(AppConstants.GiftVoucherSelectedVouchers, JSON.stringify(this.basketItems));\n this.totalAmount = 0;\n this.hasGiftVoucherItem = false;\n this.hasBookingItem = false;\n if(this.basketItems!=null)\n {\n this.basketItems.forEach((e) => {\n this.totalAmount += e.fee;\n if(e.invoiceDetailType == InvoiceDetailType.GiftVoucher)\n {\n this.hasGiftVoucherItem = true;\n }\n if(e.invoiceDetailType == InvoiceDetailType.Service)\n {\n this.hasBookingItem = true;\n if(this.stringService.isNotEmpty(e.startTime))\n {\n const selectedDate = this.dateService.getNewDate(e.startTime);\n this.isPassSeven = selectedDate.getHours() >= 19;\n }\n }\n });\n }\n \n if (this.basketItems == null || this.basketItems.length === 0) {\n this.storageService.setItem(AppConstants.GiftVoucherProcessStatus, ProcessStatus.SelectGiftVoucher.toString());\n this.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader);\n this.router.navigate(['']);\n } else if (this.router.url === '/checkout') {\n this.cartUpdateTrigger.next('go');\n }\n }\n\n cancelAppointment(appointmentId): void {\n const m = { appointmentId: appointmentId };\n this.webBookingService.CancelAppointment(m)\n .subscribe(data => { }, error => { });\n }\n\n compute() {\n this.totalAmount = 0;\n this.basketItems.forEach((e) => {\n this.totalAmount += e.fee;\n if(e.invoiceDetailType == InvoiceDetailType.GiftVoucher)\n {\n this.hasGiftVoucherItem = true;\n }\n if(e.invoiceDetailType == InvoiceDetailType.Service)\n {\n this.hasBookingItem = true;\n }\n });\n }\n\n addLogs(command, message): void {\n if (this.branch != null && this.customer != null) {\n setTimeout(() => {\n const model = {\n branchId: this.branch.branchId,\n customerId: this.customer.customerId,\n command,\n message,\n };\n this.webGiftVoucherService.AddLogs(model).subscribe((data) => { }, (error) => { });\n }, 1000);\n }\n }\n\n showErrorMessage(data: any): void {\n const message = this.getBadRequest(data);\n this.toastr.error(message, 'Error', { timeOut: 3000 });\n }\n\n showInfoMessage(message: string): void {\n this.toastr.info(message, 'Info', { timeOut: 3000 });\n }\n\n showSuccessMessage(message: string): void {\n this.toastr.success(message, 'Success', { timeOut: 3000 });\n }\n\n getBadRequest(data: any): string {\n let message = '';\n if (data != null && data._body != null) {\n const body = JSON.parse(data._body);\n if (body.message != null) { message = body.message; }\n if (body.error_description != null) { message = body.error_description; }\n }\n else if (data.error != null && data.error !== undefined) {\n if (data.error.message != null) { message = data.error.message; }\n if (data.error.error_description != null) { message = data.error.error_description; }\n }\n else {\n message = data;\n }\n return message;\n }\n\n getParameterByName(name: string, url: string): string {\n if (!url) url = window.location.href;\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\n const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');\n const results = regex.exec(url);\n if (!results) return '';\n if (!results[2]) return '';\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n }\n\n \n showMessageBox(message: string): void {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n maxWidth: '400px',\n data: { \n action: '0',\n description: message,\n showConfirm: false\n },\n });\n dialogRef.afterClosed().subscribe((result: { action: string; } | null) => {\n console.log(result);\n if (result != null) {\n if (result.action == '1') {\n }\n }\n });\n }\n\n showConfirmDialog(message: string, confirmText: string, titleText: string): void {\n const dialogRef = this.dialog.open(ConfirmationDialogComponent, {\n maxWidth: '400px',\n closeOnNavigation: false,\n disableClose: true,\n data: { \n action: '0',\n description: message,\n showConfirm: true,\n confirmText: confirmText,\n hideClose: true,\n showTickAgree: true,\n title: titleText\n },\n });\n dialogRef.afterClosed().subscribe((result: { action: string; } | null) => {\n console.log(result);\n if (result != null) {\n if (result.action == '1') {\n }\n }\n });\n }\n}\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Booking Summary\r\n
\r\n
\r\n

\r\n  Loading Appointment Details....\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n Treatment\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Practitioner\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Appointment Date\r\n \r\n \r\n
\r\n
\r\n \r\n Time\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Price\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Price\r\n \r\n \r\n
\r\n
\r\n \r\n Required Deposit\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Contact Details\r\n
\r\n
\r\n

\r\n  Loading your information...\r\n

\r\n
\r\n
\r\n \r\n Name\r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n Phone\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Confirm Appointment

\r\n
\r\n
\r\n
\r\n
\r\n Terms of use\r\n
\r\n
\r\n

\r\n We understand that unexpected issues may arise and you may need to reschedule or cancel an\r\n appointment. If that happens we respectfully ask for 24 hours notice. Our Practitioners want to\r\n be available\r\n for all patient’s needs. When a patient does not show up for a scheduled appointment another\r\n patient\r\n loses an opportunity to be seen.\r\n

\r\n

\r\n All required deposits and payments are refundable with a minimum of 24 hours notice.\r\n

\r\n

\r\n Failure to provide 24 hours notice for rescheduling or cancellation of an appointment and/or\r\n failure to attend an appointment will incur a $50 charge. We thank you for understanding.\r\n

\r\n
\r\n
\r\n
\r\n \r\n I accept the Terms of use.\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n If you will be using a Gift Voucher please click below\r\n
\r\n \r\n Gift Voucher No.\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n or click the Book Button to pay at time of your Appointment\r\n
\r\n Book\r\n
\r\n
\r\n
\r\n
\r\n or click the PayPal Button to pay for your appointment now, using Paypal or a Credit Card\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n or click the PayPal Button to pay for your appointment now, using Paypal or a Credit Card\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n Redeem Gift Voucher\r\n \r\n
\r\n
\r\n
\r\n
\r\n Enter Gift Voucher Number\r\n
\r\n
\r\n
\r\n
\r\n {{app.config.digitalGlueVoucherPrefix}}\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Cancel\r\n Confirm\r\n
\r\n
\r\n\r\n\r\n
\r\n

Message

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

\r\n
\r\n \r\n
","\n","\n\n
\n
\n

Select Consultation

\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
{{consultation.name}}
\n
\n
\n
\n\n
\n
\n\n
\n
\n\n
\n
\n {{service.name}}\n
\n
\n \n \n
\n
\n\n
\n
\n {{service.description}}\n
\n
\n\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n\n
\n

Message

\n
\n
\n

It has been over 24 months since your last consultation at Universal Health. \n Your file has been archived. \n You can proceed to book an Initial Consultation or please call us on \n +612 9302 2888 to reactivate your file and schedule an appointment.

\n
\n
\n Okay\n
\n
\n\n\n
\n

Message

\n
\n
\n

\n Welcome to Universal Health Online Booking. You will now need to book an initial consultation. Please proceed to\n book online or feel free to call us on +612 9302 2888 to discuss further.\n

\n
\n
\n Okay\n
\n
\n\n\n
\n

Coronavirus (COVID-19) Patient Alert

\n
\n
\n
\n \n \n Yes \n No\n \n
\n
\n \n \n Yes \n No\n \n
\n
\n \n \n Yes \n No\n \n
\n
\n
\n Submit\n
\n
\n\n\n\n
\n

Message

\n
\n
\n

Please contact the clinic on +612 9302 2888 before making an appointment or attending the clinic.

\n
\n
\n Okay\n
\n
\n\n\n\n
\n

TELEHEALTH CONSULTATIONS

\n
\n
\n

As part of our work to support our patients and communities, you can book a non-rebatable Telehealth consultation\n with any of our Practitioners.\n

\n

\n Telehealth offers peace of mind for patients who are concerned about attending our clinic in person.\n

\n

\n Book Telehealth by calling our clinic on +612 9302 2888\n

\n
\n
\n Okay\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-terms-and-conditions',\n templateUrl: './terms-and-conditions.component.html',\n styleUrls: ['./terms-and-conditions.component.css']\n})\nexport class TermsAndConditionsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ConfigService } from './config.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StringService {\n\n constructor(private configService: ConfigService) { }\n\n public isEmpty(str: any): boolean {\n if (str == null ||\n str === undefined ||\n str === '') {\n return true;\n }\n return false;\n }\n\n public isNotEmpty(str: any): boolean {\n if (str !== null &&\n str !== undefined &&\n str !== '') {\n return true;\n }\n return false;\n }\n\n public isInvalidEmail1(email: string): boolean {\n if (email === '' ||\n email === undefined ||\n email == null) {\n return true;\n }\n\n if (email.search(/^[a-zA-Z0-9]+[a-zA-Z0-9._]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9.]{2,5}$/) === -1) {\n return true;\n }\n\n return false;\n }\n\n public isInvalidPassword(password: string): boolean {\n if (password === undefined ||\n password == null ||\n password === '') {\n return true;\n }\n\n if (password.length < 6) {\n return true;\n } else if (password.search(/\\d/) === -1) {\n return true;\n }\n\n // else if (password.search(/[A-Z]/) == -1) {\n // return true;\n // }\n\n return false;\n }\n\n public isNotNumberic(inputtedTxt): boolean {\n if (isNaN(inputtedTxt)) {\n return true;\n }\n return false;\n } \n\n public isNotValidAddress1(address: string): boolean {\n const filterStrings = this.configService.config.address1NotAllowStringFilter;\n if(filterStrings == null || filterStrings.length == 0 || this.isEmpty(address))\n {\n return false;\n }\n\n for (let a = 0; a < filterStrings.length; a++) {\n if (this.isNotEmpty(address.toUpperCase().match(filterStrings[a].toUpperCase()))) { \n return true;\n }\n }\n\n return false;\n }\n\n}\n","

{{title}}

\n
\n {{description}}\n
\n
\n
\n
\n \n \n \n
","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableDataSource } from '@angular/material/table';\n\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'app-transaction-history',\n templateUrl: './transaction-history.component.html',\n styleUrls: ['./transaction-history.component.scss'],\n animations: [\n trigger('detailExpand', [\n state('collapsed', style({height: '0px', minHeight: '0'})),\n state('expanded', style({height: '*'})),\n transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\n ]),\n ],\n})\nexport class TransactionHistoryComponent extends BaseComponent implements OnInit {\n\n transactions: any[] = [];\n transactionsColumns: string[] = ['date', 'receiptNo', 'action'];\n\n dsTransactions!: MatTableDataSource;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n @ViewChild(MatSort) sort!: MatSort; \n \n isExpansionDetailRow = (i: number, row: Object) => row.hasOwnProperty('detailRow');\n expandedElement: any;\n\n ngOnInit() {\n this.app.pageTitle = 'Transaction History';\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n this.scrollTo();\n this.getTransactionHistory();\n });\n this.start();\n }\n\n backToLogin() {\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n\n getTransactionHistory() {\n this.app.spinner.show();\n this.app.webBookingService.GetTransactionHistory()\n .subscribe(\n data => {\n this.transactions = data == null ? [] : data;\n this.dsTransactions = new MatTableDataSource(this.transactions);\n setTimeout(() => {\n this.dsTransactions.paginator = this.paginator;\n this.dsTransactions.sort = this.sort;\n this.app.spinner.hide();\n }, 500);\n \n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport {\r\n CheckEmailStatusBindingModel, CheckEmailStatusViewModel, LogoutViewModel, UpdateDetailsBindingModel,\r\n UpdateDetailsViewModel, ChangePasswordBindingModel, SetPasswordViewModel, CustomerTransactionBindingModel,\r\n CustomerTransaction, UpdateCustomerBindingModel, UpdateCustomerViewModel, State, Country, Branch, ItemCode,\r\n BookTreatmentBindingModel, CancelAppointmentBindingModel, CancelAppointmentViewModel, ComputeOrderBindingModel,\r\n ComputeOrderViewModel, PlaceOrderBindingModel, PlaceOrderViewModel, ValidateGiftVoucherByNumberBindingModel,\r\n VerifyPendingTransactionBindingModel, Appointment, CancelPendingTransactionBindingModel, CommitPaymentBindingModel, CommitPaymentViewModel, Customer, IsValidEmailVerificationKeyBindingModel, IsValidEmailVerificationkeyViewModel, IsValidMigrationKeyBindingModel, IsValidMigrationKeyViewModel, IsValidPasswordResetKeyBindingModel, IsValidPasswordResetKeyViewModel, MigrateCustomerBindingModel, MigrateCustomerViewModel, RegisterCustomerBindingModel, ResetPasswordBindingModel, ResetPasswordViewModel, SendEmailVerificationBindingModel, SendEmailVerificationViewModel, SendMigrationLinkBindingModel, SendMigrationLinkViewModel, SendPasswordResetKeyLinkToEmailBindingModel, SendPasswordResetKeyLinkToEmailViewModel, SendTransactionToEmailBindingModel, SetTransactionAsPaidOnlineBindingModel, VerifyCustomerEmailBindingModel, VerifyCustomerEmailViewModel, AppointmentDate\r\n} from '../models/web-booking.models';\r\n\r\nimport { BaseService, RequestType } from './base.service';\r\n\r\n@Injectable()\r\nexport class WebBookingService extends BaseService {\r\n\r\n ValidateUserToken(): Observable {\r\n return this.sendRequest('api/WebBooking/validate-user-token', null);\r\n }\r\n\r\n CheckEmailStatus(model: CheckEmailStatusBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/check-email', model);\r\n }\r\n\r\n GetProfile(): Observable {\r\n return this.sendRequest('api/WebBooking/get-profile', null, RequestType.Get);\r\n }\r\n\r\n Logout(): Observable {\r\n return this.sendRequest('api/WebBooking/logout', null);\r\n }\r\n\r\n SendMigrationLink(model: SendMigrationLinkBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/send-migration-link', model);\r\n }\r\n\r\n SendEmailVerification(model: SendEmailVerificationBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/send-email-verification', model);\r\n }\r\n\r\n SendPasswordResetKeyLinkToEmail(model: SendPasswordResetKeyLinkToEmailBindingModel):\r\n Observable {\r\n return this.sendRequest('api/WebBooking/send-password-reset-link-to-email', model);\r\n }\r\n\r\n GetHealthFunds(model: any): Observable {\r\n return this.sendRequest('api/WebBooking/get-health-funds', model);\r\n }\r\n\r\n IsValidPasswordResetKey(model: IsValidPasswordResetKeyBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/is-valid-password-reset-key', model);\r\n }\r\n\r\n ResetPassword(model: ResetPasswordBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/reset-password', model);\r\n }\r\n\r\n RegisterCustomer(model: RegisterCustomerBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/create-account', model);\r\n }\r\n\r\n UpdateDetails(model: UpdateDetailsBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/update-details', model);\r\n }\r\n\r\n SetPassword(model: ChangePasswordBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/set-password', model);\r\n }\r\n\r\n CustomerTransaction(model: CustomerTransactionBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/data', model);\r\n }\r\n\r\n IsValidMigrationKey(model: IsValidMigrationKeyBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/is-valid-migrate-key', model);\r\n }\r\n\r\n MigrateCustomer(model: MigrateCustomerBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/migrate-customer', model);\r\n }\r\n\r\n UpdateCustomer(model: UpdateCustomerBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/update-customer', model);\r\n }\r\n\r\n ChangePassword(model: ChangePasswordBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/change-password', model);\r\n }\r\n\r\n IsValidEmailVerificationkey(model: IsValidEmailVerificationKeyBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/is-valid-email-verification-key', model);\r\n }\r\n\r\n VerifyCustomerEmail(model: VerifyCustomerEmailBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/verify-customer-email', model);\r\n }\r\n\r\n GetIncomingAppointments(): Observable {\r\n return this.sendRequest('api/WebBooking/get-incoming-appointments', null);\r\n }\r\n\r\n GetTransactionHistory(): Observable {\r\n return this.sendRequest('api/WebBooking/get-transaction-history', null);\r\n }\r\n\r\n GetStates(): Observable {\r\n return this.sendRequest('api/webbooking/get-states', null, RequestType.Get);\r\n }\r\n\r\n GetCountries(): Observable {\r\n return this.sendRequest('api/webbooking/get-countries', null, RequestType.Get);\r\n }\r\n\r\n GetLocations(): Observable {\r\n return this.sendRequest('api/webbooking/get-locations', null);\r\n }\r\n\r\n GetLocationById(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-location-by-id', model);\r\n }\r\n\r\n GetTreatments(mode: any): Observable {\r\n return this.sendRequest('api/webbooking/get-treatments', mode);\r\n }\r\n\r\n GetTreatmentByGroup(mode: any): Observable {\r\n return this.sendRequest('api/webbooking/get-treatments-by-group', mode);\r\n }\r\n\r\n GetTherapists(mode: any): Observable {\r\n return this.sendRequest('api/webbooking/get-therapists', mode);\r\n }\r\n\r\n GetAvailableSlots(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-available-slots', model);\r\n }\r\n\r\n GetAvailableFromSpecificStaffTimes(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-available-slots-from-specific-staff-time', model);\r\n }\r\n\r\n GetAvailableSlotPerDay(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-available-slot-per-day', model);\r\n }\r\n\r\n GetTreatment(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-treatment', model);\r\n }\r\n\r\n BookTreatments(model: any): Observable {\r\n return this.sendRequest('api/webbooking/book-treatment', model);\r\n }\r\n\r\n BookCouple(model: any[]): Observable {\r\n return this.sendRequest('api/webbooking/book', model);\r\n }\r\n\r\n ConfirmAppointment(model: any): Observable {\r\n return this.sendRequest('api/webbooking/confirm-appointment', model);\r\n }\r\n\r\n Inquire(model: any): Observable {\r\n return this.sendRequest('api/webbooking/inquire', model);\r\n }\r\n\r\n CancelAppointment(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/webbooking/cancel-appointment', model, requestType);\r\n }\r\n\r\n IsAppointmentExpired(model: any): Observable {\r\n return this.sendRequest('api/WebBooking/is-appointment-expired', model);\r\n }\r\n\r\n GetGiftVoucherRemaingBalance(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-gift-voucher-remaing-balance', model);\r\n }\r\n\r\n Book(model: BookTreatmentBindingModel): Observable {\r\n return this.sendRequest('api/webbooking/check-availability', model);\r\n }\r\n\r\n HoleGiftVoucher(model: any): Observable {\r\n return this.sendRequest('api/webbooking/hold-digital-glue-gift-voucher', model);\r\n }\r\n\r\n SendPreArrivalCard(model: any): Observable {\r\n return this.sendRequest('api/webbooking/send-pre-arrival-card', model);\r\n }\r\n\r\n Cancel(model: CancelAppointmentBindingModel): Observable {\r\n return this.sendRequest('api/webbooking/cancel', model);\r\n }\r\n\r\n\r\n CancelPendingTransaction(model: CancelPendingTransactionBindingModel, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/webbooking/cancel-order', model, requestType);\r\n }\r\n\r\n ComputeOrder(model: ComputeOrderBindingModel): Observable {\r\n return this.sendRequest('api/webbooking/compute-order', model);\r\n }\r\n\r\n PlaceOrder(model: PlaceOrderBindingModel): Observable {\r\n return this.sendRequest('api/webbooking/place-order', model);\r\n }\r\n\r\n ValidateGiftVoucherByNumber(model: ValidateGiftVoucherByNumberBindingModel[]): Observable {\r\n return this.sendRequest('api/webbooking/validate-gift-voucher-number', model);\r\n }\r\n\r\n VerifyPendingTransaction(model: VerifyPendingTransactionBindingModel): Observable {\r\n return this.sendRequest('api/webbooking/verify-pending-transaction', model);\r\n }\r\n\r\n CommitPayment(model: any): Observable {\r\n return this.sendRequest('api/webbooking/commit-payment', model);\r\n }\r\n\r\n SetTransactionAsPaidOnline(model: SetTransactionAsPaidOnlineBindingModel): Observable {\r\n return this.sendRequest('api/webbooking/set-transaction-as-paid-online', model);\r\n }\r\n\r\n SetTransactionAsPaidOnlineByGv(model: any): Observable {\r\n return this.sendRequest('api/webbooking/set-transaction-as-paid-by-gift-voucher', model);\r\n }\r\n\r\n SendTransactionToEmail(model: any): Observable {\r\n return this.sendRequest('api/webbooking/email-transaction-details', model);\r\n }\r\n\r\n GetAppointmentWebBookingProcessStatus(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/webbooking/get-appointmet-booking-process-status', model, requestType);\r\n }\r\n\r\n GetTransactionProcessStatus(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/webbooking/get-transaction-process-status', model, requestType);\r\n }\r\n\r\n RetrieveAppointmentByAppointmentId(model: any): Observable {\r\n return this.sendRequest('api/webbooking/RetrieveAppointmentByAppointmentId', model);\r\n }\r\n\r\n Reschedule(model: any): Observable {\r\n return this.sendRequest('api/webbooking/reschedule', model);\r\n } \r\n\r\n GetAvailableSlotsByAppointmentId(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-available-slots-by-appointment-id', model);\r\n }\r\n\r\n GetAvailableSlotPerDayByAppointmentId(model: any): Observable {\r\n return this.sendRequest('api/webbooking/get-available-slot-per-day-by-appointment-id', model);\r\n }\r\n\r\n CancelAppointmentByAppoitnmentId(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/webbooking/cancel-appointment-by-appointment-id', model, requestType);\r\n }\r\n\r\n ConfirmAppointmentByAppoitnmentId(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/webbooking/confirm-appointment-by-appointment-id', model, requestType);\r\n }\r\n\r\n GetTreatmentsByAppointmentId(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/WebBooking/get-treatments-by-appointment-id', model, requestType);\r\n }\r\n\r\n SendUpdateEmailVerificationCodeToCurrentEmail(): Observable {\r\n return this.sendRequest('api/WebBooking/send-update-email-verification-code-to-current-email', null);\r\n }\r\n\r\n SendUpdateEmailVerificationCodeToNewEmail(): Observable {\r\n return this.sendRequest('api/WebBooking/send-update-email-verification-code-to-new-email', null);\r\n }\r\n\r\n SendUpdateEmailVerificationCodeToEmail(): Observable {\r\n return this.sendRequest('api/WebBooking/send-update-email-verification-code-to-email', null);\r\n }\r\n\r\n UpdateCustomerEmailAddress(model: any): Observable {\r\n return this.sendRequest('api/WebBooking/update-email-address', model);\r\n }\r\n\r\n CancelUpdateCustomerEmailAddress(): Observable {\r\n return this.sendRequest('api/WebBooking/cancel-update-email-address', null);\r\n }\r\n\r\n SendUpdateEmailVerification(model: SendEmailVerificationBindingModel): Observable {\r\n return this.sendRequest('api/WebBooking/send-update-email-verification', model);\r\n }\r\n}\r\n","import { AppConstants } from './../../../app.constants';\nimport { Component, OnInit } from '@angular/core';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\nimport { Appointment, ItemCode } from 'src/app/api/models/web-booking.models';\n\n@Component({\n selector: 'app-thank-you',\n templateUrl: './thank-you.component.html',\n styleUrls: ['./thank-you.component.css']\n})\nexport class ThankYouComponent extends BaseComponent implements OnInit {\n\n appointmentResult: Appointment = new Appointment();\n treatment: ItemCode;\n therapist: any;\n slot: any;\n showAddtoCalendarButton = false;\n\n ngOnInit() {\n this.initializeLocalStorageItems();\n this.loadExternalScript('https://addevent.com/libs/atc/1.6.1/atc.min.js');\n this.baseTriggerChild.subscribe(event => {\n this.createAddToCalendarLink();\n this.app.spinner.hide();\n });\n this.start();\n }\n\n initializeLocalStorageItems() {\n this.appointmentResult = JSON.parse(this.app.storageService.getItem(AppConstants.AppointmentResult)) as Appointment;\n if (this.app.stringService.isEmpty(this.appointmentResult)) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.treatment = JSON.parse(this.app.storageService.getItem(AppConstants.BookingTreatmentResult)) as ItemCode;\n if (this.app.stringService.isEmpty(this.treatment)) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.therapist = JSON.parse(this.app.storageService.getItem(AppConstants.BookingPractionerResult));\n if (this.app.stringService.isEmpty(this.therapist)) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.slot = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSlotResult));\n if (this.app.stringService.isEmpty(this.slot)) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n }\n\n anotherBooking(): void { \n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n\n //#region add to calendar\n public iCalUrl = '';\n public googleUrl = '';\n public outlookUrl = '';\n public outlookOnlineUrl = '';\n public yahooUrl = '';\n\n createAddToCalendarLink(): void {\n const addToCalendarUrl = 'https://addtocalendar.com/atc/';\n let parameters = '?utz=480' + '&uln=en-US' + '&vjs=1.5';\n\n parameters = parameters +\n '&e[a][date_start]=' + this.appointmentResult.startTime +\n '&e[a][date_end]=' + this.appointmentResult.endTime +\n '&e[a][timezone]=Australia%2FSydney' +\n '&e[a][title]=Universal Health - ' + this.app.branch.branchName +\n '&e[a][description]=' + '' +\n '&e[a][location]=' + this.app.branch.address +\n '&e[a][organizer]=' + this.app.branch.branchName +\n '&e[a][organizer_email]=' + this.app.branch.email;\n\n this.iCalUrl = addToCalendarUrl + 'ical' + parameters;\n this.googleUrl = addToCalendarUrl + 'google' + parameters;\n this.outlookUrl = addToCalendarUrl + 'outlook' + parameters;\n this.outlookOnlineUrl = addToCalendarUrl + 'outlookonline' + parameters;\n this.yahooUrl = addToCalendarUrl + 'yahoo' + parameters; \n this.showAddtoCalendarButton = true;\n }\n\n loadExternalScript(scriptUrl: string): any {\n return new Promise((resolve, reject) => {\n const scriptElement = document.createElement('script')\n scriptElement.src = scriptUrl\n scriptElement.onload = resolve\n document.body.appendChild(scriptElement);\n });\n }\n // #endregion\n\n //#region Date Manipulation\n getNewDate(inputDate: string): Date {\n const dateTime = inputDate.split('T');\n const dates = dateTime[0].split('-');\n const times = dateTime[1].split(':');\n\n const year: number = +dates[0];\n const month: number = (+dates[1]);\n const day: number = +dates[2];\n\n const hour: number = +times[0];\n const minute: number = +times[1];\n const second: number = +times[2];\n\n return new Date(year, month - 1, day, hour, minute, second);\n }\n\n formatDateTime(date: Date): string {\n const year = date.getFullYear();\n const month = (date.getMonth()) + 1;\n const day = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n\n const strMinutes = minutes >= 10 ? minutes : '0' + minutes;\n const strHours = hours >= 10 ? hours : '0' + hours;\n const strMonths = month >= 10 ? month : '0' + month;\n const strDays = day >= 10 ? day : '0' + day;\n\n const strTime = year + '-' + strMonths + '-' + strDays + 'T' + strHours + ':' + strMinutes + ':00';\n return strTime;\n }\n //#endregion\n\n}\n\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { ConfigService } from \"./config.service\";\r\n\r\n@Injectable()\r\nexport class StorageService{\r\n \r\n constructor(public configService: ConfigService) {\r\n\r\n }\r\n\r\n setItem(key: string, value: string) {\r\n localStorage.setItem(this.configService.config.sessionGroupCode + key, value);\r\n }\r\n\r\n getItem(key: string): string {\r\n return localStorage.getItem(ConfigService.SessionGroupCode + key) ?? '';\r\n }\r\n\r\n removeItem(key: string) {\r\n localStorage.removeItem(this.configService.config.sessionGroupCode + key);\r\n }\r\n\r\n clearAll() {\r\n localStorage.clear();\r\n }\r\n}","import { FormGroup, FormControl, Validators } from '@angular/forms';\nimport { BaseComponent } from './../../../layout/main/base.component';\nimport { Component, LOCALE_ID, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { Gender } from 'src/app/misc/enums';\nimport { AppConstants } from 'src/app/app.constants';\nimport { GetTokenBindingModel } from 'src/app/api/models/base.model';\n\nimport {\n MAT_MOMENT_DATE_FORMATS,\n MomentDateAdapter,\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\n} from '@angular/material-moment-adapter';\nimport { MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { RegisterCustomerBindingModel } from 'src/app/api/models/web-booking.models';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.css'],\n providers: [\n { provide: LOCALE_ID, useValue: 'en-AU' },\n { provide: MAT_DATE_LOCALE, useValue: 'en-AU' },\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n },\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\n ],\n})\nexport class RegisterComponent extends BaseComponent implements OnInit {\n\n registerFormGroup: FormGroup;\n registerFormModel: RegisterFormModel;\n\n male = Gender.Male;\n female = Gender.Female;\n\n healthFunds = [];\n states: any[];\n selectedState: any = { suburbs: [] };\n filteredSuburbs: any[] = [];\n countries: any[];\n yesNo = [];\n genders: any[];\n\n isAustralianPhoneNumber: boolean;\n\n public modalRef: BsModalRef;\n @ViewChild('addressNotesDialog') addressNotesDialog: TemplateRef;\n\n isAddressHasBeenClicked = false;\n\n ngOnInit(): void {\n this.initializeFormGroup();\n this.baseTriggerChild.subscribe(event => {\n if(this.app.config.enablePopUpDialogOnRegistrationFirstLoad)\n {\n this.app.showMessageBox(this.app.config.popUpDialogOnRegistrationMessage);\n }\n this.getHealthFunds();\n });\n this.start();\n }\n\n initializeFormGroup(): void {\n\n this.genders = [\n { value: 1, viewValue: 'Male' },\n { value: 2, viewValue: 'Female' }\n ];\n\n this.yesNo = [\n { value: true, viewValue: 'Yes' },\n { value: false, viewValue: 'No' }\n ];\n\n this.registerFormGroup = this.app.formBuilder\n .group(\n {\n firstName: new FormControl('', [Validators.required]),\n lastName: new FormControl('', [Validators.required]),\n gender: new FormControl(null, [Validators.required]),\n email: new FormControl('', [Validators.required, Validators.email]),\n confirmEmail: new FormControl('', [Validators.required, Validators.email]),\n password: new FormControl('', [Validators.required, Validators.minLength(6)]),\n confirmPassword: new FormControl('', [Validators.required, Validators.minLength(6)]),\n mobilePhoneNumber: new FormControl('', [Validators.required]),\n acceptTerms: new FormControl(false, [Validators.requiredTrue]),\n healthFundId: new FormControl(''),\n dateOfBirth: new FormControl(null),\n isAustralianPhoneNumber: new FormControl(''),\n address1: new FormControl(''),\n address4: new FormControl(''),\n postCode: new FormControl(''),\n stateId: new FormControl(''),\n countryId: new FormControl('')\n },\n {\n validator: [MustMatch('email', 'confirmEmail'), MustMatch('password', 'confirmPassword')]\n },\n );\n }\n\n getHealthFunds(): void {\n this.app.spinner.show();\n const model = { branchId: this.app.branch.branchId };\n this.app.webBookingService.GetHealthFunds(model).subscribe(\n data => {\n this.healthFunds = data;\n this.getStates();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n getStates(): void {\n this.app.webBookingService.GetStates().subscribe(\n data => {\n this.states = data;\n this.getCountries();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n getCountries(): void {\n this.app.webBookingService.GetCountries().subscribe(\n data => {\n this.countries = data;\n this.app.spinner.hide();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n showAddressNotification() {\n if (this.isAddressHasBeenClicked) return;\n this.isAddressHasBeenClicked = true;\n this.app.showMessageBox(this.app.config.popUpDialogOnAddressClickMessage);\n }\n\n onAddress1Change(e: any) {\n setTimeout(() => {\n const model = this.registerFormGroup.getRawValue();\n if (this.app.stringService.isNotValidAddress1(model.address1)) {\n model.address1 = '';\n this.registerFormGroup.patchValue(model);\n this.showErrorMessage('PO Box is not allowed.');\n this.app.spinner.hide();\n return false;\n }\n }, 100);\n }\n\n closeDialog(): void {\n this.modalRef.hide();\n }\n\n register(): void {\n this.markFormGroupTouched(this.registerFormGroup);\n if (this.registerFormGroup.invalid) {\n this.showErrorMessage('Please fill-up required fields.');\n return;\n }\n\n this.app.spinner.show();\n const model = this.registerFormGroup.getRawValue();\n model.branchId = this.app.branch.branchId;\n if (this.app.stringService.isNotEmpty(model.dateOfBirth)) {\n const date = new Date(model.dateOfBirth);\n model.dateOfBirth = this.app.dateService.formatDateTime(date);\n }\n if (this.app.stringService.isEmpty(model.firstName)) {\n this.showErrorMessage('First Name is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.lastName)) {\n this.showErrorMessage('Last Name is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.mobilePhoneNumber)) {\n this.showErrorMessage('Mobile No. is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.address1)) {\n this.showErrorMessage('Address 1 is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isNotValidAddress1(model.address1)) {\n this.showErrorMessage('PO Box is not allowed.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.stateId)) {\n this.showErrorMessage('State is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.address4)) {\n this.showErrorMessage('Suburb is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.postCode)) {\n this.showErrorMessage('Postcode is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.countryId)) {\n this.showErrorMessage('Country is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.email)) {\n this.showErrorMessage('Email is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.confirmEmail)) {\n this.showErrorMessage('Confirm email is required.');\n this.app.spinner.hide();\n return;\n }\n if (model.email != model.confirmEmail) {\n this.showErrorMessage('Email and confirm email does not match.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.password)) {\n this.showErrorMessage('Password is required.');\n this.app.spinner.hide();\n return;\n }\n if (this.app.stringService.isEmpty(model.confirmPassword)) {\n this.showErrorMessage('Confirm password is required.');\n this.app.spinner.hide();\n return;\n }\n if (model.password != model.confirmPassword) {\n this.showErrorMessage('Password and confirm password does not match.');\n this.app.spinner.hide();\n return;\n }\n this.app.webBookingService.RegisterCustomer(model).subscribe(\n data => {\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(data));\n this.getToken(model);\n },\n error => {\n var message = this.getBadRequest(error);\n if (message == \"Customer basic information is already in the record.\") {\n this.app.showMessageBox(this.app.config.basicInformationDuplicateMessage);\n }\n else {\n this.showErrorMessage(message);\n }\n this.app.spinner.hide();\n }\n );\n }\n\n getToken(customer: RegisterCustomerBindingModel): void {\n const model = new GetTokenBindingModel();\n model.email = customer.email;\n model.username = customer.email;\n model.password = customer.password;\n this.app.webBookingService.GetToken(model).subscribe(\n data => {\n this.app.storageService.setItem(AppConstants.Token, JSON.stringify(data));\n this.getCustomerProfiles();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n getCustomerProfiles(): void {\n this.app.webBookingService.GetProfile().subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.checkCustomerData();\n this.redirectToNextPage();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n }\n\n openTerms(): void {\n window.open(this.app.config.appUrl + '' + AppConstants.RouteTermsAndConditions, '_blank');\n }\n\n\n onStateOptionClicked(item) {\n this.selectedState = item;\n const data = this.registerFormGroup.getRawValue();\n data.postCode = '';\n data.address4 = '';\n this.registerFormGroup.patchValue(data);\n }\n\n onSuburbOptionClicked(item) {\n const data = this.registerFormGroup.getRawValue();\n data.postCode = item.postcode;\n this.registerFormGroup.patchValue(data);\n }\n\n filterSuburb(value: string): void {\n const filterValue = value.toLowerCase();\n\n if (this.selectedState.suburbs.length > 0) {\n this.filteredSuburbs = this.selectedState.suburbs.filter(suburb => {\n return suburb.name.toLowerCase().indexOf(filterValue) === 0;\n });\n } else {\n this.filteredSuburbs = [];\n }\n }\n\n //#region Reactive Form Helper\n get formGroup() { return this.registerFormGroup.controls; }\n\n formControlErrorMessage(formControl: string, maxlength: number = 11, minlength: number = 6): string {\n if (this.registerFormGroup.controls[formControl].touched) {\n return this.registerFormGroup.controls[formControl].hasError('required') ? 'This is field is required.' :\n this.registerFormGroup.controls[formControl].hasError('email') ? 'Must be a valid email.' :\n this.registerFormGroup.controls[formControl].hasError('minlength') ? 'Minimum length is ' + minlength + '.' :\n this.registerFormGroup.controls[formControl].hasError('maxlength') ? 'Maximum length is ' + maxlength + '.' :\n '';\n }\n }\n //#endregion\n\n resetMobileNumber(event: any): void {\n this.registerFormGroup.controls.mobilePhoneNumber.setValue('');\n this.registerFormGroup.patchValue(this.registerFormModel);\n }\n}\n\nexport function MustMatch(controlName: string, matchingControlName: string) {\n\n // registerFormGroup.controls[formControl].hasError('mustMatch')\n return (formGroup: FormGroup) => {\n const control = formGroup.controls[controlName];\n const matchingControl = formGroup.controls[matchingControlName];\n\n if (matchingControl.errors && !matchingControl.errors.mustMatch) {\n // return if another validator has already found an error on the matchingControl\n return;\n }\n\n // set error on matchingControl if validation fails\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ mustMatch: true });\n } else {\n matchingControl.setErrors(null);\n }\n };\n}\n\nexport class RegisterFormModel {\n firstName: string;\n lastName: string;\n gender: Gender;\n email: string;\n confirmEmail: string;\n password: string;\n confirmPassword: string;\n mobilePhoneNumber: string;\n acceptTerms: boolean;\n healthFundId: string;\n dateOfBirth: Date;\n}\n","\n\n
\n
\n

\n

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

{{group.name}}

\n

{{group.description}}

\n
\n
\n
\n \"{{giftVoucher.imageUrl}}\"\n
\n

{{giftVoucher.name}}\n
\n \n {{giftVoucher.fee | number :\n '1.2-2'}}\n \n \n

\n
\n \n
\n
\n
\n
\n
","// import { BranchModel, StaffDto, CustomerViewModel } from '../../../api/models/web-app.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from './../../../layout/main/base.component';\nimport { Component, OnInit } from '@angular/core';\n\nimport { Customer, ItemCode, ProcessStatus } from 'src/app/api/models/web-booking.models';\n\n@Component({\n selector: 'app-select-practitioner',\n templateUrl: './select-practitioner.component.html',\n styleUrls: ['./select-practitioner.component.css']\n})\nexport class SelectPractitionerComponent extends BaseComponent implements OnInit {\n\n public therapists = [];\n public selectedTherapist: any;\n public selectedService: ItemCode[];\n\n customer: Customer;\n hastNewClientTreatment = false;\n\n ngOnInit(): void {\n if (this.app.branch === null) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n if (this.app.stringService.isEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTreatment))) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n if (localStorage.getItem(AppConstants.BookingProcessStatus) === ProcessStatus.ConfirmAppointment.toString()) {\n this.app.router.navigate([AppConstants.RouteServiceConfirmation]);\n return;\n }\n this.selectedService = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTreatment));\n this.baseTriggerChild.subscribe(event => {\n this.getTherapis();\n });\n this.start();\n }\n\n getTherapis(): void {\n const model = {\n branchId: this.app.branch.branchId,\n specialityIds: []\n };\n for (let a = 0; a < this.selectedService.length; a++) {\n if (this.selectedService[a].itemCodeType === 9 &&\n this.selectedService[a].packageItems != null &&\n this.selectedService[a].packageItems.length > 0) {\n for (const item of this.selectedService[a].packageItems) {\n model.specialityIds.push(item.specialityId);\n }\n }\n else {\n model.specialityIds.push(this.selectedService[a].specialityId);\n }\n\n if (!this.selectedService[a].newClientTreatment) {\n this.hastNewClientTreatment = true;\n }\n }\n\n this.app.spinner.show();\n this.app.webBookingService.GetTherapists(model)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.therapists = data;\n if (this.therapists != null && this.therapists.length > 0) {\n const idontMind = { firstName: 'First', lastName: 'Available Practitioner', therapistId: '', consultationTimes: null };\n this.therapists.unshift(idontMind);\n this.selectedTherapist = idontMind;\n }\n // if (!this.hastNewClientTreatment) { \n // const idontMind = { firstName: 'First', lastName: 'Available Practitioner', therapistId: '', consultationTimes: null };\n // this.therapists.unshift(idontMind);\n // this.selectedTherapist = idontMind;\n // }\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n setSelectedPractitioner(practitioner: any): void {\n // if (practitioner.firstName == 'First') {\n // practitioner = this.therapists[1];\n // }\n this.app.storageService.setItem(AppConstants.SelectedPractitioner, JSON.stringify(practitioner));\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n }\n\n back(): void {\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n\n //#region User Session Helper\n isLogin(): boolean {\n const token = this.app.storageService.getItem(AppConstants.Token);\n const customer = this.app.storageService.getItem(AppConstants.Customer);\n this.customer = JSON.parse(customer) as Customer;\n if (this.app.stringService.isNotEmpty(customer) && this.app.stringService.isNotEmpty(token)) {\n return true;\n }\n return false;\n }\n\n logout(): void {\n this.app.storageService.removeItem(AppConstants.Customer);\n this.app.storageService.removeItem(AppConstants.Token);\n }\n //#endregion\n}\n","
\n
\n

Transaction History

\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 10)}\">\n \n\n
Process Date \n {{element.processDate | date: 'longDate'}}\n Receipt Number {{element.receiptFullString}} \n \n \n \n \n
\n\n
    \n
  • \n
    \n
    \n Items\n
    \n
    \n Invoice No.\n
    \n
    \n Amount\n
    \n
    \n
  • \n
  • \n
    \n
    \n {{item.itemName}}\n
    \n
    \n {{item.invoiceNo}}\n
    \n
    \n {{item.amount | number: '1.2'}}\n
    \n
    \n
  • \n
  • \n
    \n
    \n Payment Type\n
    \n
    \n Gift Voucher Number\n
    \n
    \n Amount\n
    \n
    \n
  • \n
  • \n
    \n
    \n {{item.paymentTypeName}}\n
    \n
    \n {{item.giftVoucherNumber}}\n
    \n
    \n {{item.amount | number: '1.2'}}\n
    \n
    \n
  • \n
\n\n
\n
\n  Loading data...\n \n No transaction record found.\n \n \n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { SendEmailVerificationBindingModel, IsValidEmailVerificationKeyBindingModel } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-verify-email-address',\n templateUrl: './verify-email-address.component.html',\n styleUrls: ['./verify-email-address.component.scss']\n})\nexport class VerifyEmailAddressComponent extends BaseComponent implements OnInit {\n\n newPassword: string;\n confirmNewPassword: string;\n emailVerificationKey: string;\n email: string;\n\n customerId: string;\n\n ngOnInit() {\n this.app.pageTitle = 'Verify your email address';\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n\n this.customerId = this.app.storageService.getItem(AppConstants.CustomerId);\n if (this.app.stringService.isEmpty(this.customerId)) {\n this.app.router.navigate(['invalid']);\n return;\n }\n\n this.email = this.app.storageService.getItem(AppConstants.CustomerEmail);\n if (this.app.stringService.isEmpty(this.email)) {\n this.app.router.navigate(['invalid']);\n return;\n }\n\n this.scrollTo();\n\n });\n\n this.start();\n }\n\n resend() {\n this.app.spinner.show();\n const m = new SendEmailVerificationBindingModel();\n m.email = this.email;\n this.app.webBookingService.SendEmailVerification(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.CustomerId, data.customerId);\n this.app.storageService.setItem(AppConstants.CustomerEmail, this.email);\n this.showInfoMessage('Please check your email to get your email verification code');\n this.customerId = data.customerId;\n },\n error => {\n this.showErrorMessage(error);\n });\n }\n\n backToLogin() {\n this.app.router.navigate([AppConstants.RouteLogin]);\n }\n\n submit() {\n this.app.spinner.show();\n const m = new IsValidEmailVerificationKeyBindingModel();\n m.emailVerificationKey = this.emailVerificationKey;\n m.customerId = this.customerId;\n this.app.webBookingService.VerifyCustomerEmail(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.removeItem(AppConstants.CustomerEmail);\n this.app.storageService.removeItem(AppConstants.CustomerId);\n this.showSuccessMessage('Account successfully validated. Please login to continue.');\n this.app.router.navigate([AppConstants.RouteLogin]);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n this.app.router.navigate([AppConstants.RouteLogin]);\n });\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConfigService {\r\n\r\n public config: any;\r\n\r\n public static AppName: string;\r\n public static SessionGroupCode: string;\r\n\r\n public static ApiUrl: string;\r\n public static AppUrl: string;\r\n\r\n public static ApiKey: string;\r\n\r\n public static PayPalCurrencyCode: string;\r\n\r\n public static PayPalPaymentMode: string;\r\n public static PayPalSandboxCliendId: string;\r\n public static PayPalProductionCliendId: string;\r\n\r\n //custom configurations\r\n public static StaffConfig: StaffConfig[];\r\n\r\n constructor(private _http: HttpClient) {\r\n }\r\n\r\n load() {\r\n var date = new Date();\r\n\r\n var qDate = date.getFullYear().toString()\r\n + date.getMonth().toString()\r\n + date.getDay().toString()\r\n + date.getHours().toString()\r\n + date.getMinutes().toString()\r\n + date.getSeconds().toString();\r\n\r\n var env = 'development';\r\n\r\n if (environment.production) env = 'production';\r\n\r\n var obj = this._http.get('./assets/config/' + env + '.json' + \"?v=\" + qDate)\r\n .toPromise().then(\r\n (data: any) => {\r\n this.config = data;\r\n\r\n ConfigService.AppName = this.config.appName;\r\n ConfigService.SessionGroupCode = this.config.sessionGroupCode;\r\n ConfigService.ApiUrl = this.config.apiUrl;\r\n ConfigService.AppUrl = this.config.appUrl;\r\n ConfigService.ApiKey = this.config.apiKey;\r\n ConfigService.PayPalPaymentMode = this.config.payPalPaymentMode;\r\n ConfigService.PayPalCurrencyCode = this.config.payPalCurrencyCode;\r\n ConfigService.PayPalSandboxCliendId = this.config.payPalSandboxCliendId;\r\n ConfigService.PayPalProductionCliendId = this.config.payPalProductionCliendId;\r\n\r\n ConfigService.StaffConfig = new Array();\r\n\r\n if (this.config.staffConfig != null) {\r\n this.config.staffConfig.forEach(staffConfig => {\r\n var data = new StaffConfig();\r\n data.StaffName = staffConfig.staffName;\r\n data.LimitPreferredTime = JSON.parse(staffConfig.limitPreferredTime);\r\n ConfigService.StaffConfig.push(data);\r\n });\r\n }\r\n\r\n },\r\n (error: any) => {\r\n console.error(error);\r\n });\r\n return obj;\r\n }\r\n}\r\n\r\n\r\nexport class StaffConfig {\r\n StaffName: string;\r\n LimitPreferredTime: boolean;\r\n}","\n\n
\n
\n
\n
    \n
  • \n
    \n
    \n  Cart\n
    \n
    \n Price\n
    \n
    \n
  • \n
  • \n
    \n
    \n \n {{giftVoucher.description}}\n \n \n \n \n
    \n
    \n {{giftVoucher.fee | number: '1.2'}}\n  \n \n \n
    \n
    \n
    \n
    \n \n \n Gift Voucher Details
    \n Beneficiary: {{giftVoucher.giftVoucherReceiverCollectorName}}
    \n Message: {{giftVoucher.giftVoucherMessage}}\n
    \n \n Appointment Details
    \n Date & Time: {{giftVoucher.startTime | date: 'MMM d, y - h:mm a'}}
    \n Staff: {{giftVoucher.staffName}}
    \n Price: {{giftVoucher.originalFee | number: '1.2'}}\n 0\">\n
    \n Deposit: {{giftVoucher.depositAmount | number: '1.2'}}\n
    \n
    \n
    \n
    \n
    \n
  • \n
  • \n
    \n
    \n Total\n
    \n
    \n \n {{app.totalAmount\n |\n number: '1.2'}}\n \n
    \n
    \n
  • \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n

Checkout

\n
\n
\n
\n
\n Contact Details\n
\n
\n
\n \n Your name\n \n \n
\n
\n \n Email\n \n \n
\n
\n \n Phone\n \n \n
\n
\n
\n \n I accept the Terms of use.\n \n
\n \n Terms of use\n \n \n
\n
\n If you will be using a Gift Voucher please click below\n
\n
\n \n Gift Voucher No.\n \n
\n
\n
\n
\n
\n or click pay at time of your Appointment to Book\n
\n
\n \n
\n
\n
\n
\n
\n
\n Click the PayPal Button to pay for the items in the Cart, using PayPal or a Credit Card.\n
\n
\n \n
\n
\n
\n
\n
\n Click the PayPal Button to pay for the items in the Cart, using PayPal or a Credit Card.\n
\n
\n \n
\n
\n
\n
\n
","\n\n
\n
\n Copyright © Universal Health 2018
\n Privacy Statement |\n Disclaimer\n
\n\n
\n \n \n \n
\n\n
\n Level 4
\n 377 New South Head Road
\n Double Bay NSW 2028
\n Australia
\n Tel: +612 9302 2888\n
\n\n
","\n\n
\n
\n
\n
\n
\n
\n
\n

Login

\n
\n Please use the Login option to utilise our Online Booking System.\n
\n
\n
\n
\n
\n \n E-mail\n \n \n
\n
\n
\n
\n \n Password\n \n \n
\n
\n\n
\n
\n \n Forgot your password?\n \n
\n
\n
\n
\n
\n

 Existing Patient to Universal\n Health

\n

\n If you have not used our online booking system before, please enter your email and click on Login. An email validation link will be sent to your email.\n

\n

If your email is not recognised, then please contact us here to add your current\n email address to\n your details

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

New to Universal Health

\n
\n Please use the Register option to continue with your Initial Consultation Booking.\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 Update your information
\n \n All fields marked with an asterisk (*) are required.\n \n

\n
\n
\n\n
\n
\n \n Account Activation Code*\n \n Resend Account Activation\n Code\n \n
\n
\n\n\n
\n
\n

Personal Information

\n
\n
\n\n
\n
\n \n First Name\n \n \n \n {{formControlErrorMessage('firstName')}}\n \n
\n
\n \n Last Name\n \n \n \n {{formControlErrorMessage('lastName')}}\n \n
\n
\n\n
\n
\n \n Date of Birth\n \n \n \n \n \n
\n
\n \n Gender at Birth\n \n \n {{gender.viewValue}}\n \n \n \n \n \n Gender at Birth\n \n \n \n \n \n \n
\n
\n\n
\n
\n \n Do you have an Australian No.?\n \n \n {{gender.viewValue}}\n \n \n \n
\n
\n \n Mobile Phone*\n \n \n {{formControlErrorMessage('mobilePhoneNumber')}}\n \n
\n
\n\n
\n
\n \n Health Fund\n \n \n {{item.name}}\n \n \n \n
\n
\n\n
\n
\n

\n Address
\n Please ensure your residential address is current and corresponding to your\n Medicare and/or Private Health Insurance records. No Po Box acceptable.\n

\n
\n
\n
\n
\n \n Address 1*\n \n \n {{formControlErrorMessage('firstName')}}\n \n
\n
\n \n State*\n \n \n {{item.name}}\n \n \n \n
\n
\n
\n
\n \n Suburb*\n \n \n {{item.name}}\n \n \n \n
\n
\n \n Suburb\n \n \n \n \n {{suburb.name}}\n \n \n \n {{formControlErrorMessage('address4')}}\n \n
\n
\n \n Postcode*\n \n \n {{formControlErrorMessage('postCode')}}\n \n
\n
\n
\n
\n \n Country*\n \n \n {{item.name}}\n \n \n \n
\n
\n\n\n
\n
\n

Login Information

\n
\n
\n
\n
\n \n E-mail*\n \n \n {{formControlErrorMessage('email')}}\n \n
\n
\n\n
\n
\n \n Password*\n \n \n {{formControlErrorMessage('password')}}\n \n
\n
\n\n
\n
\n \n Confirm Password*\n \n \n {{formControlErrorMessage('confirmPassword', 0, 6)}}\n \n Password and confirm password must match\n \n \n
\n
\n \n\n
\n
\n\n
","

Please enter your password.

\n
\n
\n
\n \n Password\n \n \n
\n
\n
\n
\n
\n
\n  \n \n
","import { Component, LOCALE_ID, OnInit, TemplateRef } from '@angular/core';\nimport { AppointmentDate, AvailableHour, AvailableTime, GiftVoucherOptionType, InvoiceDetailType, Item, ItemCode, ProcessStatus, TimeGrouping } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport '@progress/kendo-angular-intl/locales/en/all';\nimport { ViewChild } from '@angular/core';\n\n@Component({\n selector: 'app-select-date-and-time',\n templateUrl: './select-date-and-time.component.html',\n styleUrls: ['./select-date-and-time.component.scss'],\n providers: [\n { provide: LOCALE_ID, useValue: 'en-AU' }\n ],\n})\nexport class SelectDateAndTimeComponent extends BaseComponent implements OnInit {\n\n public modalRef: BsModalRef;\n public calendarViewCount: number;\n\n public selectedTreatment: ItemCode[];\n public selectedTherapist: any;\n\n public availableSlots: AppointmentDate[] = [];\n public selectedSlot: AppointmentDate;\n public selectedHour: AvailableHour;\n public selectedHourGroup: TimeGrouping;\n public preferredDateAndTime: AvailableTime = null;\n\n public selectedDate: Date = new Date();\n public oldStartDate: Date = null;\n public oldEndDate: Date = null;\n\n public focusedDate: Date = new Date();\n public startDate: Date = new Date();\n public endDate: Date = new Date();\n public minDate: Date = new Date();\n\n public activeRangeEnd: any;\n public tdx: NodeListOf;\n public previousButton: any;\n public nextButton: any;\n\n public maxGuestCount = 1;\n\n public isConfirmButtonIsDisabled = true;\n public isPassSeven = false;\n\n @ViewChild('addConfirmation') addConfirmation: TemplateRef;\n\n public firstAppointmentOnCart: any;\n\n public hasNewClientTreatment: boolean;\n\n ngOnInit(): void {\n this.app.spinner.show();\n\n this.app.activatedRoute.params.subscribe(params => {\n\n });\n\n this.baseTriggerChild.subscribe(event => {\n this.initialize();\n });\n\n this.start();\n }\n\n initialize(): void {\n if (localStorage.getItem(AppConstants.BookingProcessStatus) === ProcessStatus.ConfirmAppointment.toString()) {\n this.app.router.navigate([AppConstants.RouteServiceConfirmation]);\n return;\n }\n this.selectedTreatment = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTreatment)) as ItemCode[];\n if (this.selectedTreatment === null) {\n this.showErrorMessage('Please choose a treatment');\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.selectedTherapist = JSON.parse(this.app.storageService.getItem(AppConstants.SelectedPractitioner)) as any;\n if (this.selectedTherapist === null) {\n this.showErrorMessage('Please choose a practitioner');\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n if (this.app.branch === null) {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n\n if (this.app.basketItems != null && this.app.basketItems.length > 0) {\n for (let a = 0; a < this.app.basketItems.length; a++) {\n if (this.app.basketItems[a].invoiceDetailType == InvoiceDetailType.Service && this.firstAppointmentOnCart == null) {\n this.firstAppointmentOnCart = this.app.basketItems[a];\n break;\n }\n }\n }\n\n // Has New Client Treatment\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n if (!this.selectedTreatment[a].newClientTreatment) {\n this.hasNewClientTreatment = true;\n }\n }\n\n this.checkAvailableSlot();\n }\n\n checkAvailableSlot(): void {\n this.app.spinner.show();\n\n this.minDate = new Date(this.minDate.getFullYear(), this.minDate.getMonth(), this.minDate.getDate(), 0, 0, 0);\n this.calendarViewCount = this.app.config.calendarViewCount;\n this.maxGuestCount = 1;\n\n setTimeout((e) => {\n this.previousButton = document.getElementsByClassName('k-prev-view')[0];\n this.previousButton.addEventListener('click', () => {\n const startDate = new Date(this.startDate.getFullYear(), this.startDate.getMonth(), this.startDate.getDate());\n startDate.setDate(this.startDate.getDate() - (this.app.config.bookingAvailableDaysChecking));\n setTimeout((n) => {\n this.selectedSlot = null;\n this.selectedHour = null;\n this.selectedHourGroup = null;\n this.availableSlots = [];\n this.getStartAndEndDate(false, startDate);\n }, 100);\n });\n\n this.nextButton = document.getElementsByClassName('k-next-view')[0];\n this.nextButton.addEventListener('click', () => {\n const startDate = new Date(this.endDate.getFullYear(), this.endDate.getMonth(), this.endDate.getDate());\n startDate.setDate(startDate.getDate() + 1);\n this.selectedDate = startDate;\n setTimeout((n) => {\n this.selectedSlot = null;\n this.selectedHour = null;\n this.selectedHourGroup = null;\n this.availableSlots = [];\n this.getStartAndEndDate(false, startDate);\n }, 100);\n });\n\n const calHeader = document.getElementsByClassName('k-calendar-header')[0];\n const btnToday = calHeader.querySelectorAll('.k-today');\n btnToday[0].addEventListener('click', () => {\n setTimeout(() => {\n this.selectedSlot = null;\n this.selectedHour = null;\n this.selectedHourGroup = null;\n this.getStartAndEndDate(true);\n }, 100);\n });\n\n }, 100);\n\n let slotDate = null;\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedDate))) {\n slotDate = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedDate));\n }\n if (slotDate != null) {\n const date = this.app.dateService.getNewDate(slotDate.appointmentDate);\n if (date > this.minDate) {\n this.selectedDate = date;\n }\n }\n\n setTimeout((n) => {\n let startDate: Date = null;\n if (slotDate != null) {\n const table = document.getElementsByClassName('k-content')[0];\n this.tdx = table.querySelectorAll('tr > [data-cell-index]');\n const lastTd = this.tdx[this.tdx.length - 1];\n const date = new Date(Date.parse(lastTd.getAttribute('title').toString()));\n let startDay = 1;\n if (this.selectedDate.getMonth() < date.getMonth()) {\n if (this.selectedDate.getDate() > 15) { startDay = 10; }\n }\n startDate = new Date(this.selectedDate.getFullYear(), this.selectedDate.getMonth(), startDay);\n }\n if (startDate < this.minDate) { startDate = this.minDate; }\n this.availableSlots = [];\n this.getStartAndEndDate(false, startDate, true);\n }, 100);\n }\n\n generateNext30Days(autoSelectDate: boolean = false): void {\n this.nextButton.click();\n }\n\n generateNext7Days(): void {\n\n }\n\n getStartAndEndDate(setTodayDate: boolean = false, newStartDate: Date = null, isFromInit: boolean = false): void {\n const table = document.getElementsByClassName('k-content')[0];\n this.tdx = table.querySelectorAll('tr > [data-cell-index]');\n\n Array.prototype.forEach.call(this.tdx, (e: Element) => {\n e.removeEventListener('onclick', () => { }, false);\n e.addEventListener('click', (event: any) => {\n if (this.availableSlots === null || this.availableSlots.length === 0) { return; }\n const nDate = new Date(Date.parse(\n this.app.stringService.isNotEmpty(event.target.title) ? event.target.title : event.target.parentNode.title));\n if (this.isDateBlocked(nDate)) { return; }\n for (const f of this.availableSlots) {\n if ((this.app.dateService.formatDate(nDate) === this.app.dateService.formatDate(this.app.dateService.getNewDate(f.appointmentDate)))) {\n if (f.availableTimes.length > 0) {\n // if (this.app.stringService.isEmpty(this.selectedTherapist.consultationTimes) || !this.hasNewClientTreatment) {\n // this.getAvailableSlotPerDay(f.appointmentDate);\n // }\n // else {\n // this.selectedSlot = f;\n // this.selectedHourGroup = f.timeGroupings != null && f.timeGroupings.length > 0 ? f.timeGroupings[0] : null;\n // } \n this.getAvailableSlotPerDay(f.appointmentDate);\n }\n }\n }\n });\n });\n\n const firstTd = this.tdx[0];\n if (this.app.stringService.isNotEmpty(firstTd.getAttribute('title'))) {\n const date = Date.parse(firstTd.getAttribute('title').toString());\n if (this.app.stringService.isNotEmpty(date)) { this.startDate = new Date(date); }\n }\n if (this.startDate < this.minDate) { this.startDate = this.minDate; }\n if (this.startDate <= this.minDate) { }\n\n // Get last date of the calendar\n const lastTd = this.tdx[this.tdx.length - 1];\n if (this.app.stringService.isNotEmpty(lastTd.getAttribute('title'))) {\n const date = Date.parse(lastTd.getAttribute('title').toString());\n if (this.app.stringService.isNotEmpty(date)) { this.endDate = new Date(date); }\n if (this.endDate < this.minDate) { this.endDate = this.minDate; }\n }\n\n // 30 Days\n if (this.app.config.enable30Days) {\n if (newStartDate != null) { this.startDate = newStartDate; }\n const lastDay = new Date(this.startDate.getFullYear(), this.startDate.getMonth() + 1, 0).getDate();\n const minusCheck = lastDay === 31 ? 0 : 1;\n this.endDate = new Date(this.startDate.getFullYear(), this.startDate.getMonth(), this.startDate.getDate());\n this.endDate.setDate(this.endDate.getDate() + (this.app.config.bookingAvailableDaysChecking - minusCheck));\n }\n\n this.focusedDate = this.startDate;\n\n let retrieveNewAvailability = false;\n if (this.availableSlots != null && this.availableSlots.length > 0) {\n const x = this.app.dateService.getNewDate(this.availableSlots[0].appointmentDate);\n const y = this.app.dateService.getNewDate(this.availableSlots[this.availableSlots.length - 1].appointmentDate);\n if (this.app.dateService.formatDate(this.startDate) === this.app.dateService.formatDate(x) &&\n this.app.dateService.formatDate(this.endDate) === this.app.dateService.formatDate(y)) {\n if (this.availableSlots === null || this.availableSlots.length === 0) { return; }\n for (const f of this.availableSlots) {\n if ((this.app.dateService.formatDate(this.minDate) === this.app.dateService.formatDate(this.app.dateService.getNewDate(f.appointmentDate)))) {\n if (f.availableTimes.length > 0) {\n // if (this.app.stringService.isEmpty(this.selectedTherapist.consultationTimes) || !this.hasNewClientTreatment) {\n // this.getAvailableSlotPerDay(f.appointmentDate);\n // }\n // else {\n // this.selectedHourGroup = null;\n // this.selectedHourGroup = f.timeGroupings != null && f.timeGroupings.length > 0 ? f.timeGroupings[0] : null;\n // }\n this.getAvailableSlotPerDay(f.appointmentDate);\n }\n }\n }\n }\n else {\n retrieveNewAvailability = true;\n }\n }\n else {\n retrieveNewAvailability = true;\n }\n\n if (retrieveNewAvailability) { this.getAvailableSlot(setTodayDate, isFromInit); }\n this.selectedDate = null;\n }\n\n getAvailableSlot(setTodayDate: boolean = false, isFromInit = false): void {\n\n const maxGuestCount = 1;\n\n const treatments = [];\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n const treatment = {\n treatmentId: this.selectedTreatment[a].treatmentId,\n staffId: this.selectedTherapist.therapistId,\n requiredTimes: null\n };\n\n if (this.app.stringService.isNotEmpty(this.selectedTherapist.consultationTimes) &&\n this.hasNewClientTreatment) {\n treatment.requiredTimes = this.selectedTherapist.consultationTimes;\n }\n treatments.push(treatment);\n }\n\n if (this.firstAppointmentOnCart != null) {\n var sevenDaysAfterFirstAppointment = this.app.dateService.addDays(this.firstAppointmentOnCart.endTime, 7);\n if (this.startDate > sevenDaysAfterFirstAppointment) {\n this.startDate = sevenDaysAfterFirstAppointment;\n this.endDate = sevenDaysAfterFirstAppointment;\n }\n else {\n this.endDate = sevenDaysAfterFirstAppointment;\n }\n }\n\n const m = {\n treatments,\n branchId: this.app.branch.branchId,\n startDate: this.app.dateService.formatDateTime(this.startDate),\n endDate: this.app.dateService.formatDateTime(this.endDate),\n guestCount: maxGuestCount\n };\n\n this.app.spinner.show();\n this.app.loadingDescription = 'Checking available dates...';\n this.app.webBookingService.GetAvailableSlots(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.availableSlots = data;\n\n const currentDateTime = new Date();\n const currentDate = new Date(currentDateTime.getFullYear(), currentDateTime.getMonth(), currentDateTime.getDate());\n\n Array.prototype.forEach.call(this.tdx, (e: Element) => {\n // Get Date\n const date = new Date(Date.parse(e.getAttribute('title').toString()));\n let className = 'disabled ';\n\n if (date < currentDate) {\n className = 'past-date ';\n }\n\n if (this.availableSlots === null || this.availableSlots.length === 0) {\n e.className = className + 'no-roster';\n if ((className === 'disabled ' || className === 'past-date ') && e.removeEventListener) {\n e.removeEventListener('click', () => { }, false);\n }\n return;\n }\n\n for (const a of this.availableSlots) {\n // Auto Set Today Date\n let slotDate = null;\n let slotTime = null;\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedDate))) {\n slotDate = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedDate)) as AppointmentDate;\n }\n if (this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTime))) {\n slotTime = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTime)) as AvailableTime;\n }\n\n if (isFromInit &&\n slotDate != null &&\n slotTime != null &&\n this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(date) &&\n !this.isDateBlocked(date)) {\n\n this.focusedDate = this.app.dateService.getNewDate(slotTime.time);\n this.getAvailableSlotPerDay(slotTime.time, slotDate);\n className = 'meeting k-state-selected';\n }\n else if (setTodayDate &&\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.minDate) &&\n !this.isDateBlocked(date)) {\n this.selectedSlot = a;\n className = 'meeting k-state-selected';\n }\n else if (\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n a.availableTimes.length > 0 &&\n !this.isDateBlocked(date)) {\n className = 'meeting';\n }\n else if (\n this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n (a.availableTimes.length === 0 ||\n this.isDateBlocked(date))) {\n className = 'no-schedule';\n }\n }\n e.className = className;\n });\n\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n\n // if (this.app.stringService.isEmpty(this.selectedTherapist.consultationTimes) || !this.hasNewClientTreatment) {\n // this.app.spinner.show();\n // this.app.loadingDescription = 'Checking available dates...';\n // this.app.webBookingService.GetAvailableSlots(m)\n // .subscribe(\n // data => {\n // this.app.spinner.hide();\n // this.availableSlots = data;\n\n // const currentDateTime = new Date();\n // const currentDate = new Date(currentDateTime.getFullYear(), currentDateTime.getMonth(), currentDateTime.getDate());\n\n // Array.prototype.forEach.call(this.tdx, (e: Element) => {\n // // Get Date\n // const date = new Date(Date.parse(e.getAttribute('title').toString()));\n // let className = 'disabled ';\n\n // if (date < currentDate) {\n // className = 'past-date ';\n // }\n\n // if (this.availableSlots === null || this.availableSlots.length === 0) {\n // e.className = className + 'no-roster';\n // if ((className === 'disabled ' || className === 'past-date ') && e.removeEventListener) {\n // e.removeEventListener('click', () => { }, false);\n // }\n // return;\n // }\n\n // for (const a of this.availableSlots) {\n // // Auto Set Today Date\n // let slotDate = null;\n // let slotTime = null;\n // if(this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedDate))){\n // slotDate = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedDate)) as AppointmentDate;\n // }\n // if(this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTime))){\n // slotTime = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTime)) as AvailableTime;\n // }\n\n // if (isFromInit &&\n // slotDate != null &&\n // slotTime != null &&\n // this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(date) &&\n // !this.isDateBlocked(date)) {\n\n // this.focusedDate = this.app.dateService.getNewDate(slotTime.time);\n // this.getAvailableSlotPerDay(slotTime.time, slotDate);\n // className = 'meeting k-state-selected';\n // }\n // else if (setTodayDate &&\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.minDate) &&\n // !this.isDateBlocked(date)) {\n // this.selectedSlot = a;\n // className = 'meeting k-state-selected';\n // }\n // else if (\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // a.availableTimes.length > 0 &&\n // !this.isDateBlocked(date)) {\n // className = 'meeting';\n // }\n // else if (\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // (a.availableTimes.length === 0 ||\n // this.isDateBlocked(date))) {\n // className = 'no-schedule';\n // }\n // }\n // e.className = className;\n // });\n\n // },\n // error => {\n // this.app.spinner.hide();\n // this.showErrorMessage(error);\n // });\n // }\n // else {\n // this.app.spinner.show();\n // this.app.loadingDescription = 'Checking available dates...';\n // this.app.webBookingService.GetAvailableFromSpecificStaffTimes(m)\n // .subscribe(\n // data => {\n // this.app.spinner.hide();\n // this.availableSlots = data;\n\n // const currentDateTime = new Date();\n // const currentDate = new Date(currentDateTime.getFullYear(), currentDateTime.getMonth(), currentDateTime.getDate());\n\n // Array.prototype.forEach.call(this.tdx, (e: Element) => {\n // // Get Date\n // const date = new Date(Date.parse(e.getAttribute('title').toString()));\n // let className = 'disabled ';\n\n // if (date < currentDate) {\n // className = 'past-date ';\n // }\n\n // if (this.availableSlots === null || this.availableSlots.length === 0) {\n // e.className = className + 'no-roster';\n // if ((className === 'disabled ' || className === 'past-date ') && e.removeEventListener) {\n // e.removeEventListener('click', () => { }, false);\n // }\n // return;\n // }\n\n // for (const a of this.availableSlots) {\n // // Auto Set Today Date\n // let slotDate = null;\n // let slotTime = null;\n // if(this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedDate))){\n // slotDate = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedDate)) as AppointmentDate;\n // }\n // if(this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTime))){\n // slotTime = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTime)) as AvailableTime;\n // }\n \n // if (isFromInit &&\n // slotDate != null &&\n // slotTime != null &&\n // this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // this.app.dateService.formatDate(this.app.dateService.getNewDate(slotTime.time)) === this.app.dateService.formatDate(date) &&\n // !this.isDateBlocked(date)) {\n // this.focusedDate = this.app.dateService.getNewDate(slotTime.time);\n // this.selectedSlot = slotDate;\n // this.selectedHourGroup = this.selectedSlot.timeGroupings[0];\n // if (slotDate != null && a.timeGroupings != null) {\n // for (const group of a.timeGroupings) {\n // for (const f of group.availableTimes) {\n // if (f.time === slotTime.time) {\n // this.preferredDateAndTime = f;\n // this.selectedHourGroup = group;\n // }\n // }\n // }\n // }\n // else {\n // this.preferredDateAndTime = null;\n // }\n // className = 'meeting k-state-selected';\n // }\n // else if (setTodayDate &&\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.minDate) &&\n // !this.isDateBlocked(date)) {\n // this.selectedSlot = a;\n // className = 'meeting k-state-selected';\n // }\n // else if (\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // a.availableTimes.length > 0 &&\n // !this.isDateBlocked(date)) {\n // className = 'meeting';\n // }\n // else if (\n // this.app.dateService.formatDate(date) === this.app.dateService.formatDate(this.app.dateService.getNewDate(a.appointmentDate)) &&\n // (a.availableTimes.length === 0 ||\n // this.isDateBlocked(date))) {\n // className = 'no-schedule';\n // }\n // }\n // e.className = className;\n // });\n\n // },\n // error => {\n // this.app.spinner.hide();\n // this.showErrorMessage(error);\n // });\n // }\n }\n\n isDateBlocked(date: Date): boolean {\n let isPromo = false;\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n isPromo = this.selectedTreatment[a].isPromo;\n }\n if (this.app.config.disableWeekDays != null && this.app.config.disableWeekDays.length > 0) {\n for (const weekDay of this.app.config.disableWeekDays) {\n if (weekDay === date.getDay() && isPromo) {\n return true;\n }\n }\n }\n return false;\n }\n\n getAvailableSlotPerDay(selectedDate: string, slotDate: any = null): void {\n this.isConfirmButtonIsDisabled = true;\n\n const treatments = [];\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n const treatment = {\n treatmentId: this.selectedTreatment[a].treatmentId,\n staffId: this.selectedTherapist.therapistId,\n requiredTimes: null\n };\n\n if (this.app.stringService.isNotEmpty(this.selectedTherapist.consultationTimes) &&\n this.hasNewClientTreatment) {\n treatment.requiredTimes = this.selectedTherapist.consultationTimes;\n }\n treatments.push(treatment);\n }\n\n const maxGuestCount = 1;\n\n const m = {\n treatments,\n branchId: this.app.branch.branchId,\n preferredDate: selectedDate,\n guestCount: maxGuestCount\n };\n this.app.spinner.show();\n this.app.loadingDescription = 'Checking available time...';\n this.app.webBookingService.GetAvailableSlotPerDay(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n if (data != null && data.length > 0) {\n this.preferredDateAndTime = null;\n this.selectedSlot = data[0];\n this.selectedHourGroup = this.selectedSlot.timeGroupings[0];\n let slotTime = null;\n if(this.app.stringService.isNotEmpty(this.app.storageService.getItem(AppConstants.BookingSelectedTime))){\n slotTime = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTime)) as AvailableTime;\n }\n if (\n this.selectedSlot != null &&\n slotDate != null &&\n slotTime != null &&\n this.selectedSlot.availableTimes != null) {\n for (const f of this.selectedSlot.availableTimes) {\n if (f.time === slotTime.time) {\n this.preferredDateAndTime = f;\n }\n }\n }\n else {\n this.preferredDateAndTime = null;\n }\n }\n else {\n this.selectedSlot = null;\n }\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n\n\n }\n\n onCellEnter(value: Date): void {\n }\n\n onCellLeave(value: Date): void {\n }\n\n onChange(value: Date): void {\n }\n\n onActiveViewChange(value: string): void {\n if (value.toLowerCase() !== 'month') { return; }\n setTimeout(() => {\n this.selectedSlot = null;\n this.getStartAndEndDate(true);\n }, 30);\n }\n\n onPreferredDateClick(availableDateTimeAndSlot: AvailableTime): void {\n this.preferredDateAndTime = availableDateTimeAndSlot;\n this.isConfirmButtonIsDisabled = false;\n\n // Pass Seven Functionality\n const selectedDate = this.app.dateService.getNewDate(this.preferredDateAndTime.time);\n this.isPassSeven = selectedDate.getHours() >= 19;\n }\n\n onPreferredHourClick(hour): void {\n this.selectedHour = hour;\n }\n\n onPreferredHourGroupClick(hour): void {\n this.selectedHourGroup = hour;\n }\n\n onBlur(): void {\n }\n\n onFocus(): void {\n }\n\n next(): void {\n if (this.preferredDateAndTime === null) {\n this.showErrorMessage('Please select preferred time.');\n return;\n }\n this.app.storageService.setItem(AppConstants.BookingSelectedDate, JSON.stringify(this.selectedSlot));\n this.app.storageService.setItem(AppConstants.BookingSelectedTime, JSON.stringify(this.preferredDateAndTime));\n this.bookAppointment();\n }\n\n bookAppointment(withVoucher: boolean = false): void {\n let customerId = '';\n if (this.app.customer != null) {\n customerId = this.app.customer.customerId;\n }\n const treatments = [];\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n const treatment = {\n treatmentId: this.selectedTreatment[a].treatmentId\n };\n treatments.push(treatment);\n }\n const maxGuestCount = 1;\n\n const m = [];\n for (let a = 0; a < maxGuestCount; a++) {\n m.push({\n treatments,\n staffId: this.preferredDateAndTime.slots[a].staffId,\n roomId: this.preferredDateAndTime.slots[a].roomId,\n equipmentId: this.preferredDateAndTime.slots[a].equipmentId,\n time: this.preferredDateAndTime.slots[a].time,\n branchId: this.app.branch.branchId\n });\n }\n\n this.app.loadingDescription = 'Loading...';\n this.app.spinner.show();\n this.app.webBookingService.BookCouple(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.Appointment, JSON.stringify(data));\n this.app.storageService.setItem(AppConstants.BookingSelectedTreatment, JSON.stringify(this.selectedTreatment));\n\n if (this.app.basketItems == null) {\n this.app.basketItems = [];\n }\n\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n\n const item: Item = new Item();\n item.giftVoucherOptionType = GiftVoucherOptionType.NotGiftVoucher;\n item.description = this.selectedTreatment[a].name;\n item.invoiceDetailType = InvoiceDetailType.Service;\n\n item.staffId = this.preferredDateAndTime.slots[0].staffId;\n item.roomId = this.preferredDateAndTime.slots[0].roomId;\n item.staffName = this.preferredDateAndTime.slots[0].staffName;\n item.bookingDate = this.preferredDateAndTime.slots[0].time;\n item.startTime = this.preferredDateAndTime.slots[0].time;\n item.endTime = this.preferredDateAndTime.slots[0].endTime;\n item.appointmentId = data[0].appointmentId;\n item.bookingReference = data[0].bookingReference;\n item.customerId = this.app.customer.customerId;\n\n item.quantity = 1;\n item.itemId = this.selectedTreatment[a].treatmentId;\n\n item.originalFee = data[0].fee;\n item.fee = data[0].depositFee;\n item.depositAmount = data[0].depositFee;\n item.depositPercentage = this.selectedTreatment[a].depositPercentage;\n\n this.app.basketItems.push(item);\n }\n\n this.app.storageService.setItem(AppConstants.GiftVoucherSelectedVouchers, JSON.stringify(this.app.basketItems));\n\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n\n this.modalRef = this.app.modalService.show(\n this.addConfirmation,\n {\n class: 'modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n goToSelectConsultation() {\n this.modalRef.hide();\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n\n goToCart() {\n this.modalRef.hide();\n this.app.router.navigate([AppConstants.RouteCheckout]);\n }\n\n back(): void {\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.router.navigate([AppConstants.RouteSelectPractitioner]);\n }\n\n payAtTheAppoitment() {\n let customerId = '';\n if (this.app.customer != null) {\n customerId = this.app.customer.customerId;\n }\n\n const treatments = [];\n for (let a = 0; a < this.selectedTreatment.length; a++) {\n const treatment = {\n treatmentId: this.selectedTreatment[a].treatmentId\n };\n treatments.push(treatment);\n }\n\n const maxGuestCount = 1;\n\n const m = [];\n for (let a = 0; a < maxGuestCount; a++) {\n m.push({\n treatments,\n staffId: this.preferredDateAndTime.slots[a].staffId,\n roomId: this.preferredDateAndTime.slots[a].roomId,\n equipmentId: this.preferredDateAndTime.slots[a].equipmentId,\n time: this.preferredDateAndTime.slots[a].time,\n branchId: this.app.branch.branchId\n });\n }\n\n this.app.loadingDescription = 'Loading...';\n this.app.spinner.show();\n this.app.webBookingService.BookCouple(m)\n .subscribe(\n data => {\n this.confirmAppointment(data);\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n confirmAppointment(appointments): void {\n const ids = [];\n for (const appointment of appointments) {\n ids.push(appointment.appointmentId);\n }\n const m = {\n appointmentIds: ids,\n branchId: this.app.branch.branchId,\n customerId: this.app.customer.customerId,\n token: JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token,\n isSecured: false,\n externalGiftVoucherNumber: \"\",\n holdAmount: 0\n };\n this.app.spinner.show();\n this.app.webBookingService.ConfirmAppointment(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.storageService.setItem(AppConstants.AppointmentResult, JSON.stringify(appointments[0]));\n this.app.storageService.setItem(AppConstants.BookingTreatmentResult, JSON.stringify(this.selectedTreatment));\n this.app.storageService.setItem(AppConstants.BookingPractionerResult, JSON.stringify(this.selectedTherapist));\n this.app.storageService.setItem(AppConstants.BookingSlotResult, JSON.stringify(this.preferredDateAndTime));\n\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.Result.toString());\n\n this.app.router.navigate([AppConstants.RouteThankYou]);\n },\n error => {\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n this.showErrorMessage(error);\n this.back();\n });\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CheckEmailStatusBindingModel, CheckEmailStatusViewModel, Customer, LogoutViewModel, SendMigrationLinkBindingModel, SendMigrationLinkViewModel, SendEmailVerificationBindingModel, SendEmailVerificationViewModel, SendPasswordResetKeyLinkToEmailBindingModel, SendPasswordResetKeyLinkToEmailViewModel, IsValidPasswordResetKeyBindingModel, IsValidPasswordResetKeyViewModel, ResetPasswordBindingModel, ResetPasswordViewModel, RegisterCustomerBindingModel, UpdateDetailsBindingModel, UpdateDetailsViewModel, ChangePasswordBindingModel, SetPasswordViewModel, CustomerTransactionBindingModel, CustomerTransaction, IsValidMigrationKeyBindingModel, IsValidMigrationKeyViewModel, MigrateCustomerBindingModel, MigrateCustomerViewModel, UpdateCustomerBindingModel, UpdateCustomerViewModel, IsValidEmailVerificationKeyBindingModel, IsValidEmailVerificationkeyViewModel, VerifyCustomerEmailBindingModel, VerifyCustomerEmailViewModel, State, Country, Branch, CancelPendingTransactionBindingModel, ComputeOrderBindingModel, ComputeOrderViewModel, PlaceOrderBindingModel, PlaceOrderViewModel, ValidateGiftVoucherByNumberBindingModel, VerifyPendingTransactionBindingModel, CommitPaymentBindingModel, CommitPaymentViewModel, SetTransactionAsPaidOnlineBindingModel, SendTransactionToEmailBindingModel, DownloadGiftVoucherBindingModel, DownloadGiftVoucherViewModel } from '../models/web-booking.models';\r\nimport { BaseService, RequestType } from './base.service';\r\n\r\n@Injectable()\r\nexport class WebGiftVoucherService extends BaseService {\r\n\r\n ValidateUserToken(): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/validate-user-token', null);\r\n }\r\n\r\n CheckEmailStatus(model: CheckEmailStatusBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/check-email', model);\r\n }\r\n\r\n GetProfile(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-profile', model, RequestType.Get);\r\n }\r\n\r\n Logout(): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/logout', null);\r\n }\r\n\r\n SendMigrationLink(model: SendMigrationLinkBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/send-migration-link', model);\r\n }\r\n\r\n SendEmailVerification(model: SendEmailVerificationBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/send-email-verification', model);\r\n }\r\n\r\n SendPasswordResetKeyLinkToEmail(model: SendPasswordResetKeyLinkToEmailBindingModel):\r\n Observable {\r\n return this.sendRequest('api/WebGiftVoucher/send-password-reset-link-to-email', model);\r\n }\r\n\r\n GetHealthFunds(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-health-funds', model);\r\n }\r\n\r\n IsValidPasswordResetKey(model: IsValidPasswordResetKeyBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/is-valid-password-reset-key', model);\r\n }\r\n\r\n ResetPassword(model: ResetPasswordBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/reset-password', model);\r\n }\r\n\r\n RegisterCustomer(model: RegisterCustomerBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/create-account', model);\r\n }\r\n\r\n UpdateDetails(model: UpdateDetailsBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/update-details', model);\r\n }\r\n\r\n SetPassword(model: ChangePasswordBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/set-password', model);\r\n }\r\n\r\n CustomerTransaction(model: CustomerTransactionBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/data', model);\r\n }\r\n\r\n IsValidMigrationKey(model: IsValidMigrationKeyBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/is-valid-migrate-key', model);\r\n }\r\n\r\n MigrateCustomer(model: MigrateCustomerBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/migrate-customer', model);\r\n }\r\n\r\n UpdateCustomer(model: UpdateCustomerBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/update-customer', model);\r\n }\r\n\r\n ChangePassword(model: ChangePasswordBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/change-password', model);\r\n }\r\n\r\n IsValidEmailVerificationkey(model: IsValidEmailVerificationKeyBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/is-valid-email-verification-key', model);\r\n }\r\n\r\n VerifyCustomerEmail(model: VerifyCustomerEmailBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/verify-customer-email', model);\r\n }\r\n\r\n GetStates(): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-states', null, RequestType.Get);\r\n }\r\n\r\n GetCountries(): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-countries', null, RequestType.Get);\r\n }\r\n\r\n GetLocations(): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-locations', null);\r\n }\r\n\r\n GetLocationById(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-location-by-id', model);\r\n }\r\n\r\n GetGiftVouchers(mode: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-gift-vouchers', mode);\r\n }\r\n\r\n CancelPendingTransaction(model: CancelPendingTransactionBindingModel, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/cancel-order', model, requestType);\r\n }\r\n\r\n ComputeOrder(model: ComputeOrderBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/compute-order', model);\r\n }\r\n\r\n PlaceOrder(model: PlaceOrderBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/place-order', model);\r\n }\r\n\r\n ValidateGiftVoucherByNumber(model: ValidateGiftVoucherByNumberBindingModel[]): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/validate-gift-voucher-number', model);\r\n }\r\n\r\n VerifyPendingTransaction(model: VerifyPendingTransactionBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/verify-pending-transaction', model);\r\n }\r\n\r\n CommitPayment(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/commit-payment', model);\r\n }\r\n\r\n SetTransactionAsPaidOnline(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/set-transaction-as-paid-online', model);\r\n }\r\n\r\n SendTransactionToEmail(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/email-transaction-details', model);\r\n }\r\n\r\n GetAppointmentWebGiftVoucherProcessStatus(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-appointmet-booking-process-status', model, requestType);\r\n }\r\n\r\n AddLogs(model: any): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/add-logs', model);\r\n }\r\n \r\n DownloadGiftVoucher(model: DownloadGiftVoucherBindingModel): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/download-gift-voucher', model);\r\n }\r\n\r\n GetTransactionProcessStatus(model: any, requestType?: RequestType): Observable {\r\n return this.sendRequest('api/WebGiftVoucher/get-transaction-process-status', model, requestType);\r\n }\r\n}\r\n","
\n
\n
\n \n
\n
\n
\n
\n
\n \n

{{loadingDescription}}...

\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { AppConstants } from '../app.constants';\nimport { StorageService } from '../services/storage.service';\nimport { StringService } from '../services/string.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerGuard implements CanActivate {\n\n constructor(\n public router: Router,\n public storageService: StorageService,\n public stringService: StringService) {\n }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n\n const hasToken = !!this.storageService.getItem(AppConstants.Token);\n const hasCustomer = !!this.storageService.getItem(AppConstants.Customer);\n if (hasToken && hasCustomer) {\n return true;\n }\n else {\n this.storageService.removeItem(AppConstants.Token);\n this.storageService.removeItem(AppConstants.Customer);\n if (route.routeConfig != null) {\n const state = route.routeConfig.path ?? '';\n this.storageService.setItem(AppConstants.RedirectState, state);\n }\n this.router.navigate([AppConstants.RouteLogin]);\n return false;\n }\n }\n}\n\n","\r\nexport class AppConfigModel {\r\n public appName: string;\r\n public locale: string;\r\n public title: string;\r\n public logo: string;\r\n public logoWhite: string;\r\n public logoMain: string;\r\n public googleTagManagerCode: string;\r\n public googleAnalyticsCode: string;\r\n public banner: string;\r\n public logoWithName: string;\r\n public appDefaultRoute: string;\r\n public firstPageHeaderText: string;\r\n public firstPageSubHeaderText: string;\r\n public firstPageHeaderDescription: string;\r\n public firstPageFooterDescription: string;\r\n public payPalPaymentMode: string;\r\n\r\n public theme: string;\r\n public base: string;\r\n public apiUrl: string;\r\n public appUrl: string;\r\n public bookingAvailableDaysChecking: number = 0;\r\n public enable30Days: boolean;\r\n public calendarViewCount: number = 1;\r\n public sessionGroupCode: string;\r\n public apiKey: string;\r\n public controllerRoute: string;\r\n public digitalGlueVoucherPattern: string;\r\n public digitalGlueVoucherPrefix: string;\r\n public appintmentVoucherNotes: string;\r\n public appintmentNotSecuredNotes: string;\r\n public appintmentFailedVoucherNotes: string;\r\n\r\n public docuUrl: string;\r\n\r\n public payPalSandboxCliendId: string;\r\n public payPalProductionCliendId: string;\r\n public payPalCurrencyCode: string;\r\n public currencySymbol: string;\r\n\r\n public thankYouPageHeader: string;\r\n public thankYouPageFirstParagraph: string;\r\n public thankYouPageLastParagraph: string;\r\n public thankYouPageButtonLink: string;\r\n public thankYouPageButtonCaption: string;\r\n\r\n public invalidPageHeader: string;\r\n public invalidPageFirstParagraph: string;\r\n public invalidPageLastParagraph: string;\r\n public invalidPageButtonLink: string;\r\n public invalidPageButtonCaption: string;\r\n\r\n public showStaff: boolean;\r\n public idleTimeOut: number;\r\n public version: string;\r\n\r\n public invalidBarcodeMessage: string;\r\n public enable7Days: boolean;\r\n public disableWeekDays: number[];\r\n public defaultBranchId: string;\r\n public sagePayButtonText: string;\r\n\r\n public mainWebsiteUrl: string;\r\n\r\n public page1Header: string;\r\n public page1SubHeader: string;\r\n\r\n public page3Header: string;\r\n public page3SubHeader: string;\r\n\r\n public page4Header: string;\r\n public page4SubHeader: string;\r\n \r\n public forceUserToVerifyEmailAddress: string;\r\n public enablePayPalButton: string;\r\n\r\n public showGroupHeader: boolean;\r\n public showItemPriceAndName: boolean;\r\n public showAddToButton: boolean;\r\n \r\n public existingAccountNeedMigration: string;\r\n public migrationSubText: string;\r\n public migrationSubTextThankYou: string;\r\n public successfulAccountActivation: string;\r\n public depositNotes: string;\r\n public enableCovid: boolean;\r\n\r\n public showSteps: string;\r\n \r\n public stepAppointment: string;\r\n public stepLogin: string;\r\n public stepConfirm: string;\r\n public stepComplete: string;\r\n\r\n public showIncomingAppointments: boolean;\r\n public showTransactionHistory: boolean;\r\n public showHomeMenu: boolean;\r\n\r\n public address1NotAllowStringFilter: string;\r\n public enablePermanentDataEditing: boolean;\r\n public showProfileLink: boolean;\r\n\r\n public basicInformationDuplicateMessage: string;\r\n public enablePopUpDialogOnRegistrationFirstLoad: boolean;\r\n public popUpDialogOnRegistrationMessage: string;\r\n public popUpDialogOnAddressClickMessage: string;\r\n public disableNewClientFilter: boolean;\r\n\r\n public loginEnableStartUpPopUpMessage: boolean;\r\n public loginStartUpPopUpMessageContent: string;\r\n public loginStartUpPopUpContinueButtonText: string;\r\n public loginStartUpPopUpTitleText: string;\r\n public loginAgreeCheckBoxNotTickMesssage: string;\r\n\r\n}\r\n\r\n \r\nexport class BaseModel {\r\n public initializationVector: string;\r\n public encryptedId: string;\r\n}\r\n\r\n\r\nexport class GetTokenBindingModel\r\n{\r\n public email: string;\r\n public password: string;\r\n public grand_type: string;\r\n public username: string;\r\n constructor() {\r\n this.grand_type = \"password\";\r\n }\r\n}\r\n\r\nexport class GetTokenViewModel\r\n{\r\n public access_token: string;\r\n public expires_in: string;\r\n public token_type: string;\r\n public userName: string;\r\n}\r\n\r\n","","\n\n\n\n
\n
\n
\n
\n

Confirmation

\n

Thank you for booking online with Universal Health. A booking confirmation has been sent to your email address. If you do not receive your confirmation email, please call the clinic on +612 9302 2888

\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
","import { AppConstants } from './../../../app.constants';\nimport { RequestType } from './../../../api/services/base.service';\nimport { BaseComponent } from './../../../layout/main/base.component';\nimport { Component, OnInit, HostListener, ElementRef, TemplateRef, ViewChild, AfterViewInit, OnDestroy, AfterViewChecked } from '@angular/core';\n\nimport {\n Appointment,\n ComputeOrderBindingModel, ComputeOrderViewModel,\n GiftVoucherOptionType, InvoiceDetailType, Item, ItemCode, Payment, PaymentTypeGroup,\n PlaceOrderBindingModel, PlaceOrderViewModel, ProcessStatus, SendTransactionToEmailBindingModel\n} from 'src/app/api/models/web-booking.models';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\n\ndeclare let paypal: any;\n\n@Component({\n selector: 'app-service-confirmation',\n templateUrl: './service-confirmation.component.html',\n styleUrls: ['./service-confirmation.component.css']\n})\n\nexport class ServiceConfirmationComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy, AfterViewChecked {\n\n show = false;\n\n public preferredDateAndTime: any;\n public giftVoucherNumber = '';\n public appointment: any;\n public therapist: any;\n public appointments: any[];\n public selectedService: ItemCode;\n\n public mask = '';\n public showGiftVoucherInput = false;\n public message = '';\n\n public confirmText = 'Yes';\n public showNoButton = false;\n public continueWithNoVoucher = false;\n public voucherOustandingBalance = 0;\n public isFailedToHoldTheGiftVoucher = false;\n public showPayPal = true;\n\n public disableCancellation = false;\n public isPassSeven = false;\n public monitoringCounter = 0;\n\n @ViewChild('gvCode') gvCodeField: ElementRef;\n\n public acceptTerms: boolean;\n\n public modalGvInput: BsModalRef;\n @ViewChild('tplGvInput') tplGvInput: TemplateRef;\n\n public modalGvReenterNumber: BsModalRef;\n @ViewChild('tplReEnterMessage') tplReEnterMessage: TemplateRef;\n\n // Card Details\n public computedOrder: ComputeOrderViewModel;\n // public pendingTransaction: PlaceOrderViewModel = new PlaceOrderViewModel();\n public order: PlaceOrderViewModel;\n\n // Call cancel transaction when user click back button of the browser\n @HostListener('window:popstate') onPopState(): boolean {\n if (this.disableCancellation) {\n alert('We are processing your transaction, please wait.');\n return false;\n } else {\n this.app.router.navigate([AppConstants.BookingSelectedTreatment]);\n this.cancelPendingTransaction();\n return true;\n }\n }\n\n ngOnInit(): void {\n this.app.storageService.removeItem(AppConstants.BookingResultFailedToHoldGv);\n }\n\n ngAfterViewChecked(): void {\n this.cdRef.detectChanges();\n }\n\n ngAfterViewInit(): void {\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.show();\n this.mask = this.app.config.digitalGlueVoucherPattern;\n\n // Check Selected Items\n this.therapist = JSON.parse(this.app.storageService.getItem(AppConstants.SelectedPractitioner));\n if (this.app.stringService.isEmpty(this.therapist)) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectedTreatment.toString());\n this.showErrorMessage('Please select a Practitioner');\n this.app.router.navigate([AppConstants.RouteSelectPractitioner]);\n return;\n }\n\n // Check Selected Items\n this.selectedService = JSON.parse(this.app.storageService.getItem(AppConstants.BookingSelectedTreatment));\n if (this.app.stringService.isEmpty(this.selectedService)) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.showErrorMessage('Please select a treatment');\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n\n // Check Selected Slot\n const tmpPreferredDateAndTime = this.app.storageService.getItem(AppConstants.BookingSelectedTime);\n if (this.app.stringService.isEmpty(tmpPreferredDateAndTime)) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.preferredDateAndTime = JSON.parse(tmpPreferredDateAndTime);\n\n // Pass Seven Functionality\n const selectedDate = this.app.dateService.getNewDate(this.preferredDateAndTime.time);\n this.isPassSeven = selectedDate.getHours() >= 19;\n\n // Appointment\n const tmpAppointment = this.app.storageService.getItem(AppConstants.Appointment);\n if (this.app.stringService.isEmpty(tmpAppointment)) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n return;\n }\n this.appointments = JSON.parse(tmpAppointment);\n this.appointment = this.appointments[0];\n\n // Check Booking Status\n this.getTreatment();\n });\n\n this.start();\n }\n\n ngOnDestroy(): void {\n this.removeRefreshEvent();\n } \n\n addRefreshEvent(): void {\n window.addEventListener('keydown', (event) => {\n if (event.key === 'F5') {\n alert('We are processing your transaction, please wait.');\n event.preventDefault();\n event.stopPropagation();\n }\n });\n }\n\n removeRefreshEvent(): void {\n window.removeEventListener('keydown', (event) => { });\n window.removeEventListener\n }\n\n\n getTreatment(): void {\n const m = {\n treatmentId: this.selectedService.treatmentId,\n staffId: this.preferredDateAndTime.slots[0].staffId,\n customerId: this.app.customer.customerId\n };\n this.app.spinner.show();\n this.app.webBookingService.GetTreatment(m)\n .subscribe(\n data => {\n this.selectedService = data;\n this.getTransactionProcessStatus();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n }\n\n getTransactionProcessStatus(): void {\n const cacheTransaction = this.app.storageService.getItem(AppConstants.PendingTransaction);\n if (this.app.stringService.isEmpty(cacheTransaction)) {\n this.computeOrder();\n return;\n }\n\n this.app.loadingDescription = 'Please wait while checking your booking status...';\n const pendingTransaction = JSON.parse(cacheTransaction) as PlaceOrderViewModel;\n const m = { pendingTransactionId: pendingTransaction.pendingTransactionId };\n this.app.webBookingService.GetTransactionProcessStatus(m)\n .subscribe(data => {\n this.monitoringCounter++;\n if (data === 1) {\n this.disableCancellation = true;\n if (this.monitoringCounter > 5) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n this.disableCancellation = false;\n this.order = pendingTransaction;\n this.createPayPalButton();\n this.app.spinner.hide();\n return;\n }\n setTimeout(() => { this.getTransactionProcessStatus(); }, 1000);\n }\n else if (data === 3) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.showErrorMessage('Your transaction has been cancelled. Please try again.');\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n }\n else if (data === 7 || data === 5 || data === 6) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.showErrorMessage('Your transaction is invalid, please wait while refreshing your transaction...');\n setTimeout(() => { window.location.reload(); }, 1000);\n }\n else if (data === 4) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.Result.toString());\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.setItem(AppConstants.AppointmentResult, JSON.stringify(this.appointment));\n this.app.router.navigate([AppConstants.RouteThankYou]);\n }\n else if (data === 8) {\n this.disableCancellation = true;\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n if (this.monitoringCounter > 10) {\n this.disableCancellation = true;\n const commitPaymentBindingModel = {\n customerId: this.app.customer.customerId,\n onlinePaymentTransactionId: pendingTransaction.onlineOrderId,\n pendingTransactionId: pendingTransaction.pendingTransactionId,\n };\n this.app.webBookingService.CommitPayment(commitPaymentBindingModel).subscribe(\n () => {\n this.saveAppointmentResult();\n // Send Transaction to email.\n const model = new SendTransactionToEmailBindingModel();\n model.customerId = this.app.customer.customerId;\n model.pendingTransactionId = pendingTransaction.pendingTransactionId;\n model.token = JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token,\n this.app.webBookingService.SendTransactionToEmail(model).subscribe(\n () => {\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteThankYou]);\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n return;\n }\n setTimeout(() => { this.getTransactionProcessStatus(); }, 1000);\n }\n else if (data === 2) {\n this.disableCancellation = true;\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n if (this.monitoringCounter > 10) {\n this.disableCancellation = true;\n this.app.spinner.hide();\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n return;\n }\n setTimeout(() => { this.getTransactionProcessStatus(); }, 1000);\n }\n }, error => {\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.SelectTreatment.toString());\n this.app.spinner.hide();\n this.showErrorMessage(error);\n this.back();\n });\n }\n\n openModal(template: TemplateRef): BsModalRef {\n return this.app.modalService.show(\n template,\n {\n class: 'modal-md modal-dialog-centered modal-dialog-scrollable',\n // ignoreBackdropClick: true,\n // keyboard: false\n }\n );\n }\n\n openModal1(template: TemplateRef): BsModalRef {\n return this.app.modalService1.show(\n template,\n {\n class: 'modal-md modal-dialog-centered modal-dialog-scrollable',\n ignoreBackdropClick: true,\n keyboard: false\n }\n );\n }\n\n back(): void {\n this.cancelPendingTransaction();\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n }\n\n redirectToGiftVoucherRedemption(): void {\n if (this.acceptTerms !== true) {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return;\n }\n this.app.router.navigate([AppConstants.RouteGiftVoucherRedemption]);\n }\n\n showGvInputBox(): void {\n if (this.acceptTerms !== true) {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return;\n }\n this.giftVoucherNumber = '';\n this.showGiftVoucherInput = true;\n this.modalGvInput = this.openModal(this.tplGvInput);\n }\n\n checkGiftVoucher(): void {\n if (this.app.stringService.isEmpty(this.giftVoucherNumber)) {\n this.giftVoucherNumber = '';\n this.showErrorMessage('Please enter gift voucher number.');\n return;\n }\n\n const m = { branchId: this.app.branch.branchId, giftVoucherNumber: this.app.config.digitalGlueVoucherPrefix + this.giftVoucherNumber };\n this.app.spinner.show();\n this.app.webBookingService.GetGiftVoucherRemaingBalance(m)\n .subscribe(\n data => {\n this.voucherOustandingBalance = data;\n if (data === 0) {\n this.app.spinner.hide();\n this.modalGvInput.hide();\n this.modalGvReenterNumber = this.openModal1(this.tplReEnterMessage);\n }\n else {\n this.app.storageService.removeItem(AppConstants.BookingResultFailedToHoldGv);\n this.confirmAppointment(true);\n }\n },\n error => {\n this.app.spinner.hide();\n this.modalGvInput.hide();\n this.modalGvReenterNumber = this.openModal1(this.tplReEnterMessage);\n });\n }\n\n hideGiftVoucher(): void {\n this.giftVoucherNumber = '';\n this.showGiftVoucherInput = false;\n }\n\n cancelAppointment(requestType: RequestType = RequestType.Post): void {\n const m = { appointmentId: this.appointment.appointmentId };\n this.app.webBookingService.CancelAppointment(m, requestType)\n .subscribe(data => { }, error => { });\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n }\n\n confirmAppointment(withVoucher = false): void {\n if (this.acceptTerms !== true) {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return;\n }\n const gvNumber = this.app.config.digitalGlueVoucherPrefix + this.giftVoucherNumber;\n let notes = '';\n if (this.isFailedToHoldTheGiftVoucher) {\n notes = this.app.config.appintmentFailedVoucherNotes.replace('[GiftVoucherNo]', gvNumber);\n }\n else {\n const appintmentVoucherNotes = this.app.config.appintmentVoucherNotes\n .replace('[GiftVoucherNo]', gvNumber)\n .replace('[Price]', this.app.config.currencySymbol + this.selectedService.fee.toFixed(2))\n .replace('[VoucherBalance]', this.app.config.currencySymbol + this.voucherOustandingBalance.toFixed(2))\n .replace('[Price]', this.app.config.currencySymbol + this.selectedService.fee.toFixed(2));\n const appintmentNotSecuredNotes = this.app.config.appintmentNotSecuredNotes.replace('[GiftVoucherNo]', gvNumber);\n notes = withVoucher === false ? appintmentNotSecuredNotes : appintmentVoucherNotes;\n }\n const ids = [];\n for (const appointment of this.appointments) {\n ids.push(appointment.appointmentId);\n }\n const m = {\n appointmentIds: ids,\n branchId: this.app.branch.branchId,\n customerId: this.app.customer.customerId,\n notes,\n token: JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token,\n isSecured: withVoucher,\n externalGiftVoucherNumber: gvNumber,\n holdAmount: this.voucherOustandingBalance\n };\n if (this.modalGvInput != null) { this.modalGvInput.hide(); }\n this.disableCancellation = true;\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n this.addRefreshEvent();\n this.app.spinner.show();\n this.app.webBookingService.ConfirmAppointment(m)\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.getProfile();\n this.app.storageService.setItem(AppConstants.AppointmentResult, JSON.stringify(this.appointment));\n this.app.storageService.setItem(AppConstants.BookingTreatmentResult, JSON.stringify(this.selectedService));\n this.app.storageService.setItem(AppConstants.BookingPractionerResult, JSON.stringify(this.therapist));\n this.app.storageService.setItem(AppConstants.BookingSlotResult,\n this.app.storageService.getItem(AppConstants.BookingSelectedTime));\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.Result.toString());\n this.app.router.navigate([AppConstants.RouteThankYou]);\n },\n error => {\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n this.showErrorMessage(error);\n this.back();\n });\n }\n\n hideModal(modal: any): void {\n modal.hide();\n this.giftVoucherNumber = '';\n }\n\n closetplReEnterMessage(): void {\n this.giftVoucherNumber = '';\n this.modalGvReenterNumber.hide();\n this.modalGvInput = this.openModal(this.tplGvInput);\n }\n\n //#endregion Transaction\n computeOrder(): void {\n const model: ComputeOrderBindingModel = new ComputeOrderBindingModel();\n model.branchId = this.app.branch.branchId;\n model.customerId = this.app.customer.customerId;\n\n model.items = new Array();\n const item: Item = new Item();\n item.giftVoucherOptionType = GiftVoucherOptionType.NotGiftVoucher;\n item.description = this.selectedService.name;\n item.invoiceDetailType = InvoiceDetailType.Service;\n\n item.staffId = this.preferredDateAndTime.slots[0].staffId;\n item.roomId = this.preferredDateAndTime.slots[0].roomId;\n item.staffName = this.preferredDateAndTime.slots[0].staffName;\n item.bookingDate = this.preferredDateAndTime.slots[0].time;\n item.startTime = this.preferredDateAndTime.slots[0].time;\n item.endTime = this.preferredDateAndTime.slots[0].endTime;\n item.appointmentId = this.appointment.appointmentId;\n item.bookingReference = this.appointment.bookingReference;\n item.customerId = this.app.customer.customerId;\n\n item.quantity = 1;\n item.itemId = this.selectedService.treatmentId;\n item.fee = this.selectedService.fee;\n model.items.push(item);\n\n const payment: Payment = new Payment();\n payment.paymentTypeGroupId = PaymentTypeGroup.Web;\n model.payments = new Array();\n model.payments.push(payment);\n\n model.enableDepositRequired = this.app.customer.isNewCustomer || this.app.customer.is2YearLastTransaction;\n\n this.app.webBookingService.ComputeOrder(model)\n .subscribe(\n data => {\n this.computedOrder = data;\n this.placeOrder();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n });\n }\n\n placeOrder(): void {\n const model: PlaceOrderBindingModel = new PlaceOrderBindingModel();\n model.branchId = this.app.branch.branchId;\n model.customerId = this.app.customer.customerId;\n\n model.items = new Array();\n const item: Item = new Item();\n item.giftVoucherOptionType = GiftVoucherOptionType.NotGiftVoucher;\n item.description = this.selectedService.name;\n item.invoiceDetailType = InvoiceDetailType.Service;\n\n item.staffId = this.preferredDateAndTime.slots[0].staffId;\n item.roomId = this.preferredDateAndTime.slots[0].roomId;\n item.staffName = this.preferredDateAndTime.slots[0].staffName;\n item.bookingDate = this.preferredDateAndTime.slots[0].time;\n item.startTime = this.preferredDateAndTime.slots[0].time;\n item.endTime = this.preferredDateAndTime.slots[0].endTime;\n item.appointmentId = this.appointment.appointmentId;\n item.bookingReference = this.appointment.bookingReference;\n item.customerId = this.app.customer.customerId;\n\n item.quantity = 1;\n item.itemId = this.selectedService.treatmentId;\n item.fee = this.selectedService.fee;\n model.items.push(item);\n\n const payment: Payment = new Payment();\n payment.paymentTypeGroupId = PaymentTypeGroup.Web;\n model.payments = new Array();\n model.payments.push(payment);\n\n model.enableDepositRequired = this.app.customer.isNewCustomer || this.app.customer.is2YearLastTransaction;\n\n this.app.webBookingService.PlaceOrder(model)\n .subscribe(\n data => {\n this.order = data;\n this.app.storageService.setItem(AppConstants.PendingTransaction, JSON.stringify(data));\n this.createPayPalButton();\n },\n error => {\n this.app.spinner.hide();\n this.showErrorMessage(error);\n this.cancelAppointment();\n });\n }\n //#endregion\n\n //#region Paypal Button\n createPayPalButton(): void {\n let clientId: string;\n if (this.app.config.payPalPaymentMode === 'sandbox') {\n clientId = this.app.config.payPalSandboxCliendId;\n }\n else if (this.app.config.payPalPaymentMode === 'production') {\n clientId = this.app.config.payPalProductionCliendId;\n }\n this.loadExternalScript('https://www.paypal.com/sdk/js?currency=' + this.app.config.payPalCurrencyCode + '&client-id=' + clientId);\n }\n\n loadExternalScript(scriptUrl: string): any {\n const scriptElement = document.createElement('script');\n scriptElement.src = scriptUrl;\n scriptElement.addEventListener('load', () => {\n this.loadPayPalSmartPaymentButton();\n });\n scriptElement.addEventListener('error', (e) => {\n this.showErrorMessage('PayPal online payment loading failed.');\n this.showPayPal = false;\n });\n document.body.appendChild(scriptElement);\n setTimeout(() => {\n this.app.spinner.hide();\n }, 3000);\n }\n\n loadPayPalSmartPaymentButton(): void {\n paypal.Buttons({\n style: {\n layout: 'horizontal',\n },\n onClick: (data, actions) => {\n if (this.acceptTerms) {\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.ConfirmAppointment.toString());\n this.disableCancellation = true;\n this.addRefreshEvent();\n return true;\n }\n else {\n this.showErrorMessage('Please accept the Terms of Use to continue.');\n return false;\n }\n },\n createOrder: (data, actions) => {\n return actions.order.create({\n purchase_units: [{\n amount: {\n value: this.order.onlinePaymentAmountToBePaid\n }\n }]\n });\n },\n\n onApprove: (data, actions) => {\n // cset trabsaction as paid online\n const setTransactionAsPaidOnlineBindingModel = {\n customerId: this.app.customer.customerId,\n pendingTransactionId: this.order.pendingTransactionId,\n onlinePaymentTransactionId: data.orderID\n };\n this.order.onlineOrderId = data.orderID;\n this.app.storageService.setItem(AppConstants.PendingTransaction, JSON.stringify(this.order));\n this.app.webBookingService.SetTransactionAsPaidOnline(setTransactionAsPaidOnlineBindingModel).subscribe(\n () => {\n // check if appointment is expired.\n this.app.spinner.show();\n const isAppointmentExpiredBindingmodel = {\n appointmentId: this.appointment.appointmentId\n };\n this.app.webBookingService.IsAppointmentExpired(isAppointmentExpiredBindingmodel).subscribe(\n result => {\n if (result) {\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n else {\n // proceed paypal payment\n return actions.order.capture().then(\n payment => {\n // Show a success message to your buyer\n const commitPaymentBindingModel = {\n customerId: this.app.customer.customerId,\n onlinePaymentTransactionId: payment.id,\n pendingTransactionId: this.order.pendingTransactionId,\n };\n this.app.webBookingService.CommitPayment(commitPaymentBindingModel).subscribe(\n () => {\n this.saveAppointmentResult();\n // Send Transaction to email.\n const model = new SendTransactionToEmailBindingModel();\n model.customerId = this.app.customer.customerId;\n model.pendingTransactionId = this.order.pendingTransactionId;\n model.token = JSON.parse(this.app.storageService.getItem(AppConstants.Token)).access_token,\n this.app.webBookingService.SendTransactionToEmail(model).subscribe(\n () => {\n this.getProfile();\n // this ngzone will fix the warning issue: core.js:3126\n // Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?\n this.app.ngZone.run(() => {\n this.app.router.navigate([AppConstants.RouteThankYou]);\n });\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.spinner.hide();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n return;\n });\n }\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n\n },\n error => {\n this.cancelPendingTransaction();\n this.showErrorMessage(error);\n this.app.spinner.hide();\n });\n },\n\n onCancel: (data, actions) => {\n this.isAppointmentExpired();\n return;\n },\n\n onError: (data, actions) => {\n this.isAppointmentExpired();\n return;\n }\n }).render('#paypal-button-container');\n }\n\n getProfile(): void {\n this.app.webBookingService.GetProfile()\n .subscribe(\n data => {\n this.app.spinner.hide();\n this.app.customer = data;\n this.app.storageService.setItem(AppConstants.Customer, JSON.stringify(this.app.customer));\n this.checkCustomerData();\n },\n error => {\n this.app.spinner.hide();\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n });\n }\n\n saveAppointmentResult(): void {\n this.app.storageService.setItem(AppConstants.AppointmentResult, JSON.stringify(this.appointment));\n this.app.storageService.setItem(AppConstants.BookingTreatmentResult, JSON.stringify(this.selectedService));\n this.app.storageService.setItem(AppConstants.BookingPractionerResult, JSON.stringify(this.therapist));\n this.app.storageService.setItem(AppConstants.BookingSlotResult,\n this.app.storageService.getItem(AppConstants.BookingSelectedTime));\n this.app.storageService.removeItem(AppConstants.BookingGiftVoucherNumber);\n this.app.storageService.removeItem(AppConstants.RedirectState);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTime);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.setItem(AppConstants.BookingProcessStatus, ProcessStatus.Result.toString());\n this.app.router.navigate([AppConstants.RouteThankYou]);\n }\n //#endregion\n\n //#region BOOKING PROCESS\n isAppointmentExpired(): void {\n this.app.spinner.show();\n const model = {\n appointmentId: this.appointment.appointmentId\n };\n this.app.webBookingService.IsAppointmentExpired(model).subscribe(\n data => {\n if (data) {\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.storageService.removeItem(AppConstants.BookingSelectedTreatment);\n this.app.storageService.removeItem(AppConstants.SelectedPractitioner);\n this.app.storageService.removeItem(AppConstants.BookingSelectedDate);\n this.app.storageService.removeItem(AppConstants.BookingSelectedSlot);\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n this.app.spinner.hide();\n },\n error => {\n this.showErrorMessage(error);\n this.app.spinner.hide();\n }\n );\n }\n\n cancelPendingTransaction(requestType: RequestType = RequestType.Post): void {\n const model = {\n customerId: this.app.customer.customerId,\n pendingTransactionId: this.order.pendingTransactionId,\n };\n this.app.spinner.show();\n this.app.webBookingService.CancelPendingTransaction(model, requestType).subscribe(\n data => {\n if (data) {\n }\n },\n error => {\n }\n );\n this.app.spinner.hide();\n this.app.storageService.removeItem(AppConstants.PendingTransaction);\n this.app.storageService.removeItem(AppConstants.Appointment);\n this.app.router.navigate([AppConstants.RouteSelectDate]);\n }\n //#endregion\n}\n","
\n
\n

Terms and conditions

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

To use our online booking service, first create an account using a valid email address.

\n

You are responsible for maintaining the confidentiality of your account, username and password and for\n restricting access to your computer.

\n

You agree to accept responsibility for all activities that occur under your account, username and/or\n password.\n

\n

You agree to provide only accurate, truthful information.

\n

We reserve the right to refuse service and/or terminate accounts without prior notice if you violate these\n terms and conditions or if we decide, in our sole discretion, that it would be in our clinic’s best\n interests to\n do so.

\n

Use of Online Booking Service

\n

You must be over 18 years of age and legally able to enter into a binding contract to use the Online\n Booking Service.

\n

You will be financially accountable for anyone using your password and login information, and may only use\n the Online Booking Service to make legitimate appointments.

\n

We will use our reasonable commercial efforts to keep the Online Booking Service available 24 hours a day,\n 7 days a week, subject to necessary downtime for maintenance and system outages.

\n

We cannot guarantee uninterrupted access to our Online Booking Service at all times.

\n

We cannot promise that our Online Booking Service will be error-free, that defects or errors will be\n corrected or that our site and servers are free from viruses or other harmful components.

\n

You will not use any device, software or routine that interferes or attempts to interfere with the normal\n operation of this site or take any action that imposes an unreasonable load on our computer equipment.

\n

Refund Policy

\n

Your booking is refundable and transferable when more than 48 hours notice is given, by telephoning\n +61293022888.\n

\n

A 50% cancellation fee is applicable if less than 48 hours notice is given.

\n

Forms of Payment

\n

\n Universal Health accept payment by:
\n Visa Credit
\n Visa Debit
\n MasterCard Credit
\n MasterCard Debit
\n American Express
\n

\n

No-Show Policy

\n

\n If you are unable to attend an appointment, please provide at least 48 hours notice, or a 50% cancellation\n policy will apply.\n

\n

\n If you need to cancel your booking, please contact the clinic directly.\n

\n

Our Company Details

\n

\n Registered Office: Global Integrated Medicine Pty Ltd\n

\n

Level 4 377 New South Head Rd Double Bay NSW 2028 Australia

\n

Customer Service Contact

\n

\n If you have a question or complaint about Universal Health Services please contact\n reception@universalhealth.com.au\n

\n

\n +61293022888\n

\n
\n
","import { Component, OnInit, TemplateRef } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Beneficiary, GiftVoucher, GiftVoucherOptionType, InvoiceDetailType, Item, ProcessStatus } from 'src/app/api/models/web-booking.models';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-gift-voucher-details',\n templateUrl: './gift-voucher-details.component.html',\n styleUrls: ['./gift-voucher-details.component.scss']\n})\nexport class GiftVoucherDetailsComponent extends BaseComponent implements OnInit {\n\n public giftVoucher: Item;\n public showView: boolean;\n\n public isForMyself = false;\n public isForOthers = true;\n public beneficiary: Beneficiary = new Beneficiary();\n public doCheckout = false;\n\n modalRef: BsModalRef;\n\n config = {\n backdrop: true,\n ignoreBackdropClick: true,\n };\n\n ngOnInit() {\n if (this.app.storageService.getItem(AppConstants.GiftVoucherProcessStatus) === ProcessStatus.Checkout.toString()) {\n this.app.router.navigate([AppConstants.RouteCheckout]);\n return;\n }\n\n this.app.storageService.removeItem(AppConstants.GiftVoucherPendingTransactionHeader);\n this.app.pageTitle = 'Gift Voucher Details';\n this.baseTriggerChild.subscribe((event) => {\n this.app.spinner.hide();\n this.giftVoucher = JSON.parse(this.app.storageService.getItem(AppConstants.GiftVoucherSelectedVoucher));\n if (this.app.stringService.isEmpty(this.giftVoucher)) {\n this.showErrorMessage('Please select gift voucher.');\n this.app.router.navigate([AppConstants.RouteGiftVouchers]);\n return;\n }\n this.app.pageTitle = this.giftVoucher.name;\n });\n this.start();\n this.beneficiary.firstName = '';\n this.beneficiary.lastName = '';\n }\n\n updateScreen(isFromForMaySelf: boolean = false) {\n if (isFromForMaySelf) {\n if (this.isForMyself) {\n this.isForOthers = false;\n } else {\n this.isForOthers = true;\n }\n } else {\n if (this.isForOthers) {\n this.isForMyself = false;\n } else {\n this.isForMyself = true;\n }\n }\n }\n\n addToBasket(template: TemplateRef, doCheckout: boolean = false) {\n this.doCheckout = doCheckout;\n\n if (this.isForOthers) {\n this.modalRef = this.app.modalService.show(template, this.config);\n this.giftVoucher.isForMySelf = false;\n } else {\n if (this.app.customer != null) {\n this.beneficiary.firstName = this.app.customer.firstName;\n this.beneficiary.lastName = this.app.customer.lastName;\n } else {\n this.beneficiary = new Beneficiary();\n this.beneficiary.firstName = '';\n this.beneficiary.lastName = '';\n }\n this.giftVoucher.isForMySelf = true;\n this.addToCart();\n }\n }\n\n cancel() {\n this.modalRef.hide();\n }\n\n continue() {\n if (this.app.stringService.isEmpty(this.beneficiary.firstName)) {\n this.showErrorMessage('Please enter beneficiary first name.');\n return;\n }\n if (this.app.stringService.isEmpty(this.beneficiary.lastName)) {\n this.showErrorMessage('Please enter beneficiary last name.');\n return;\n }\n this.modalRef.hide();\n this.addToCart();\n }\n\n addToCart() {\n if (this.app.basketItems == null) {\n this.app.basketItems = [];\n }\n const item: Item = new Item();\n\n item.giftVoucherOptionType = GiftVoucherOptionType.IsElectronic;\n item.description = this.giftVoucher.name;\n item.invoiceDetailType = InvoiceDetailType.GiftVoucher;\n \n item.giftVoucherReceiverCollectorName = this.beneficiary.firstName + ' ' + this.beneficiary.lastName;\n item.giftVoucherMessage = this.beneficiary.message;\n\n if(this.app.customer!=null)\n {\n item.giftVoucherFrom = this.app.customer.firstName + ' ' + this.app.customer.lastName;\n item.customerId = this.app.customer.customerId;\n }\n \n item.quantity = 1;\n item.fee = this.giftVoucher.fee;\n item.itemId = this.giftVoucher.giftVoucherId;\n\n this.app.basketItems.push(item);\n\n this.app.storageService.setItem(AppConstants.GiftVoucherSelectedVouchers, JSON.stringify(this.app.basketItems));\n this.showSuccessMessage('Gift voucher successfully added to basket.');\n this.beneficiary = new Beneficiary();\n\n if (this.doCheckout) {\n this.app.router.navigate([AppConstants.RouteCheckout]);\n }\n }\n\n back() {\n this.app.router.navigate([AppConstants.RouteGiftVouchers]);\n }\n\n checkout() {\n this.app.router.navigate([AppConstants.RouteCheckout]);\n }\n\n}\n\n","\r\n\r\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\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","import { Component, OnInit } from '@angular/core';\nimport { AppConstants } from 'src/app/app.constants';\nimport { BaseComponent } from 'src/app/layout/main/base.component';\n\n@Component({\n selector: 'app-covid',\n templateUrl: './covid.component.html',\n styleUrls: ['./covid.component.scss']\n})\nexport class CovidComponent extends BaseComponent implements OnInit {\n\n ngOnInit() {\n this.baseTriggerChild.subscribe(event => {\n this.app.spinner.hide();\n });\n this.start();\n }\n\n gotoHome() {\n this.app.router.navigate([AppConstants.RouteSelectConsultation]);\n }\n}\n","\n\n
\n
\n

Select a Practitioner

\n
\n
\n\n
\n
\n
\n
\n
\n {{practitioner.title}}.\n {{practitioner.firstName}} {{practitioner.lastName}}\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n \n
\n
","
\n

Sorry

\n

Your page you are looing for is invalid.

\n
\n \n
","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"],"sourceRoot":"webpack:///"}