{"version":3,"sources":["./src/app/my-greyhound/account-activation/account-activation.component.html","./src/app/my-greyhound/account-activation/account-activation.component.ts","./src/app/my-greyhound/booking-management/booking-details/booking-details-wrapper.component.html","./src/app/my-greyhound/booking-management/booking-details/booking-details-wrapper.component.ts","./src/app/my-greyhound/booking-management/booking-details/booking-details.component.html","./src/app/my-greyhound/booking-management/booking-details/booking-details.component.ts","./src/app/my-greyhound/booking-management/booking-details/extend-pass.component.html","./src/app/my-greyhound/booking-management/booking-details/extend-pass.component.ts","./src/app/my-greyhound/booking-management/booking-management.component.html","./src/app/my-greyhound/booking-management/booking-management.component.ts","./src/app/my-greyhound/booking-management/itinerary/itinerary-wrapper.component.html","./src/app/my-greyhound/booking-management/itinerary/itinerary-wrapper.component.ts","./src/app/my-greyhound/booking-management/passenger-summary/passenger-summary.component.html","./src/app/my-greyhound/booking-management/passenger-summary/passenger-summary.component.ts","./src/app/my-greyhound/dashboard/add-a-booking/add-a-booking.component.html","./src/app/my-greyhound/dashboard/add-a-booking/add-a-booking.component.ts","./src/app/my-greyhound/dashboard/dashboard.component.html","./src/app/my-greyhound/dashboard/dashboard.component.ts","./src/app/my-greyhound/dashboard/loyalty-balance/loyalty-balance.component.html","./src/app/my-greyhound/dashboard/loyalty-balance/loyalty-balance.component.ts","./src/app/my-greyhound/dashboard/my-bookings/my-booking-detail/my-booking-detail.component.ts","./src/app/my-greyhound/dashboard/my-bookings/my-bookings.component.html","./src/app/my-greyhound/dashboard/my-bookings/my-bookings.component.ts","./src/app/my-greyhound/dashboard/travel-tracker/travel-tracker.component.html","./src/app/my-greyhound/dashboard/travel-tracker/travel-tracker.component.ts","./src/app/my-greyhound/dashboard/travel-tracker/trip/trip.component.ts","./src/app/my-greyhound/forgot-password/forgot-password.component.html","./src/app/my-greyhound/forgot-password/forgot-password.component.ts","./src/app/my-greyhound/login/login.component.html","./src/app/my-greyhound/login/login.component.ts","./src/app/my-greyhound/my-greyhound.module.ts","./src/app/my-greyhound/profile/delete-account/delete-account.component.ts","./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.html","./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.less","./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.ts","./src/app/my-greyhound/profile/passenger.model.ts","./src/app/my-greyhound/profile/passenger.resolve.ts","./src/app/my-greyhound/profile/personal-details/personal-details.component.html","./src/app/my-greyhound/profile/personal-details/personal-details.component.ts","./src/app/my-greyhound/profile/profile.component.html","./src/app/my-greyhound/profile/profile.component.ts","./src/app/my-greyhound/profile/subscriptions/subscriptions.component.html","./src/app/my-greyhound/profile/subscriptions/subscriptions.component.ts","./src/app/my-greyhound/profile/update-details/address.validator.ts","./src/app/my-greyhound/profile/update-details/dob.validator.ts","./src/app/my-greyhound/profile/update-details/email-matcher.validator.ts","./src/app/my-greyhound/profile/update-details/update-details.component.html","./src/app/my-greyhound/profile/update-details/update-details.component.ts","./src/app/my-greyhound/subscription-confirmation/subscription-confirmation.component.html","./src/app/my-greyhound/subscription-confirmation/subscription-confirmation.component.ts"],"names":[],"mappings":"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","file":"common.chunk.js","sourcesContent":["module.exports = \"<div class=\\\"col-xs-12 col-sm-4 col-xs-offset-0 col-sm-offset-4\\\">\\r\\n <gaweb-toast></gaweb-toast>\\r\\n</div>\\r\\n<div class=\\\"container\\\">\\r\\n <div class=\\\"subscription-confirmation-form\\\">\\r\\n <div *ngIf=\\\"successfulActivation || alreadyActivated\\\" class=\\\"col-xs-12 text-center\\\" style=\\\"margin-bottom: 60px;\\\">\\r\\n <i class=\\\"fa fa-check-circle fa-5x success text-success\\\" style=\\\"font-size: 60px;\\\"></i>\\r\\n </div>\\r\\n <div *ngIf=\\\"successfulActivation\\\">\\r\\n <div class=\\\"row text-center\\\" style=\\\"margin-top: 30px;\\\">\\r\\n <h3>Your account has been successfully activated</h3>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"alreadyActivated\\\">\\r\\n <div class=\\\"row text-center\\\" style=\\\"margin-top: 30px;\\\">\\r\\n <h3>Your account has already been activated</h3>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div *ngIf=\\\"loading\\\" class=\\\"col-xs-12 text-center\\\">\\r\\n <i class=\\\"fa fa-spinner fa-spin fa-3x success text-error\\\" style=\\\"font-size: 50px; margin: 25px;\\\"></i>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"(!successfulActivation && !alreadyActivated) && !loading\\\" class=\\\"col-xs-12 text-center\\\">\\r\\n <i class=\\\"fa fa-exclamation-circle fa-5x success text-error\\\" style=\\\"font-size: 60px;\\\"></i>\\r\\n </div>\\r\\n <div *ngIf=\\\"(!successfulActivation && !alreadyActivated) && !loading\\\" class=\\\"col-xs-12 text-center\\\">\\r\\n <div class=\\\"row text-center\\\">\\r\\n <h3>Something went wrong, could not find matching account.</h3>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-8 col-xs-offset-0 col-sm-offset-2 text-center\\\" style=\\\"margin-top: 30px;\\\">\\r\\n <button class=\\\"btn btn-cta btn-block\\\" (click)=\\\"login()\\\">\\r\\n LOGIN\\r\\n </button>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/account-activation/account-activation.component.html\n// module id = ./src/app/my-greyhound/account-activation/account-activation.component.html\n// module chunks = common","import { GxConstants } from \"app/shared/constants/gx.constants\";\r\nimport {\r\n ApiError,\r\n ActionUpdaterService\r\n} from \"app/shared/services/action-updater.service\";\r\nimport { InitialDataService } from \"app/initial-data.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Component, OnInit, Output, EventEmitter, Input } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from \"@angular/forms\";\r\nimport {\r\n MyGreyhoundService,\r\n ActivateCustomerUsingResetKey,\r\n UpdateCustomerPassword,\r\n ForgotPassword,\r\n SubscriptionOptionItem,\r\n SubscriptionOption\r\n} from \"../my-greyhound.service\";\r\nimport { Subscription } from \"../profile/subscriptions/subscriptions.component\";\r\nimport * as _ from 'lodash';\r\n@Component({\r\n selector: 'gaweb-account-activation',\r\n templateUrl: './account-activation.component.html'\r\n})\r\nexport class AccountActivationComponent implements OnInit {\r\n setting: boolean;\r\n form: FormGroup;\r\n\r\n subscriptionForm: FormGroup;\r\n subscriptions: Subscription[];\r\n items: FormArray;\r\n tcAccepted = false;\r\n\r\n successfulActivation: boolean;\r\n alreadyActivated: boolean;\r\n notRecognisedOrNotProvided: boolean;\r\n customerGuid: string;\r\n activationKey: string;\r\n invalidGuid: boolean;\r\n loading: boolean;\r\n anySubscribed: boolean;\r\n unsubscribed: boolean;\r\n updating: boolean;\r\n constructor(\r\n private fb: FormBuilder,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private activatedRoute: ActivatedRoute,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private initialDataService: InitialDataService\r\n ) {\r\n this.subscriptionForm = this.fb.group({\r\n items: this.fb.array([])\r\n });\r\n }\r\n\r\n matchValidator(group: FormGroup) {\r\n let valid;\r\n\r\n const password = group.get('password');\r\n const confirmPassword = group.get('confirmPassword');\r\n\r\n valid = password.value === confirmPassword.value;\r\n\r\n if (valid) {\r\n return null;\r\n }\r\n\r\n return {\r\n mismatch: true\r\n };\r\n }\r\n\r\n login = () => {\r\n window.location.href = `/my-greyhound/login`;\r\n };\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.activatedRoute.params.subscribe(params => {\r\n const reference = params['reference'];\r\n if (!!reference) {\r\n const idxFirstDash = reference.indexOf('-');\r\n const activationKeyLength = 36;\r\n this.customerGuid = reference.substring(0, activationKeyLength);\r\n this.activationKey = reference.substring(activationKeyLength);\r\n\r\n const activateCustomerUsingResetKey = new ActivateCustomerUsingResetKey(\r\n this.activationKey,\r\n true,\r\n this.customerGuid,\r\n true\r\n );\r\n this.myGreyhoundService\r\n .activateCustomerUsingResetKey(\r\n activateCustomerUsingResetKey\r\n )\r\n .subscribe(\r\n response => {\r\n this.successfulActivation = true;\r\n this.alreadyActivated = false;\r\n this.notRecognisedOrNotProvided = false;\r\n this.loading = false;\r\n },\r\n (error: ApiError) => {\r\n this.successfulActivation = false;\r\n this.loading = false;\r\n if (\r\n error.summary === 'Customer already activated'\r\n ) {\r\n this.alreadyActivated = true;\r\n this.notRecognisedOrNotProvided = false;\r\n } else {\r\n this.alreadyActivated = false;\r\n this.notRecognisedOrNotProvided = true;\r\n }\r\n }\r\n );\r\n } else {\r\n this.notRecognisedOrNotProvided = true;\r\n }\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/account-activation/account-activation.component.ts","module.exports = \"<section>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 booking\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'BOOKING DETAILS'\\\" (onHeaderClicked)=\\\"onShowBookingDetails($event)\\\" [loadsExpanded]=\\\"showBookingDetails\\\"\\r\\n [icon]=\\\"'fa-ticket'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n <div class=\\\"c-header__body\\\" *ngIf=\\\"showBookingDetails && !!booking\\\">\\r\\n <gaweb-booking-details [bookingNumber]=\\\"booking.BookingNumber\\\" [pin]=\\\"booking.Pin\\\" [bookingDate]=\\\"booking.BookingDate\\\" [fairBasisList]=\\\"booking.FareBasis\\\"\\r\\n [tours]=\\\"!!booking.Tours.length? booking.Tours : booking.Package.Inclusions\\\" [isTravelPass]=\\\"isPass\\\" [passKms]=\\\"booking.PassKms\\\"\\r\\n [passKmsUsed]=\\\"booking.PassKmsUsed\\\" [isPackage]=\\\"isPackage\\\" [passExpiry]=\\\"booking.PassExpiry\\\" [passDaysRemaining]=\\\"passDaysRemaining\\\"\\r\\n [ticketUrl]=\\\"booking.TicketUrl\\\" [topUpAvailable]=\\\"booking.ShowTopUpPassBtn\\\" [passExtensionAvailable]=\\\"booking.ShowExtendPassBtn\\\"\\r\\n [addons]=\\\"addons\\\" [bookingGuid]=\\\"booking.BookingGuid\\\" [productType]=\\\"booking.ProductType\\\" [hasInsurance]=\\\"booking.HasInsurance\\\"\\r\\n [isKmPass]=\\\"isKmPass\\\" [booking]=\\\"booking\\\" [nursedInfants]=\\\"booking.NursingInfants\\\">\\r\\n </gaweb-booking-details>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/booking-management/booking-details/booking-details-wrapper.component.html\n// module id = ./src/app/my-greyhound/booking-management/booking-details/booking-details-wrapper.component.html\n// module chunks = common","import * as _ from 'lodash';\r\nimport { OnInit, Input, Output, EventEmitter, Component, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { Booking, BookingManagementHeaders, Addon } from 'app/shared/models/booking.model';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { DeviceService } from 'app/shared/services/device.service';\r\n\r\n\r\n@Component({\r\n selector: 'gaweb-booking-details-wrapper',\r\n templateUrl: `./booking-details-wrapper.component.html`\r\n})\r\nexport class BookingDetailsWrapperComponent implements OnInit, OnChanges {\r\n @Input() isPass: boolean;\r\n @Input() addons: Array<Addon> = [];\r\n @Input() booking: Booking;\r\n\r\n showBookingDetails: boolean;\r\n passDaysRemaining: number;\r\n reportingGroup: string;\r\n isPackage: boolean;\r\n isKmPass: boolean;\r\n bookingManagementHeaders: BookingManagementHeaders;\r\n firstRequest = true;\r\n constructor(\r\n private localStorageService: LocalStorageService,\r\n private deviceService: DeviceService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.booking) {\r\n this.onBookingBeingSet();\r\n }\r\n this.bookingManagementHeaders = this.localStorageService.getBookingManagementHeadersState();\r\n if (!!this.bookingManagementHeaders) {\r\n this.showBookingDetails = this.bookingManagementHeaders.BookingDetailsExpanded;\r\n } else {\r\n this.showBookingDetails = !this.deviceService.IsMobile();\r\n this.bookingManagementHeaders = new BookingManagementHeaders();\r\n }\r\n }\r\n onShowBookingDetails = (expanded: boolean) => {\r\n if (this.firstRequest) {\r\n this.firstRequest = false;\r\n return;\r\n }\r\n this.showBookingDetails = expanded;\r\n this.saveBookingManagementHeaders();\r\n }\r\n private saveBookingManagementHeaders() {\r\n this.bookingManagementHeaders.BookingDetailsExpanded = this.showBookingDetails;\r\n this.localStorageService.saveBookingManagementHeadersState(this.bookingManagementHeaders);\r\n }\r\n onBookingBeingSet = () => {\r\n this.reportingGroup = this.booking.FareBasis[0].ReportingGroup;\r\n const productType = this.booking.ProductType;\r\n this.passDaysRemaining = this.booking.PassDaysRemaining < 0\r\n ? 0\r\n : this.booking.PassDaysRemaining;\r\n this.isPackage = productType === GxConstants.PRODUCT_TYPE.BUSPASS &&\r\n this.reportingGroup === GxConstants.REPORTING_GROUP.PACKAGE;\r\n this.isKmPass = this.reportingGroup === GxConstants.REPORTING_GROUP.KPASS;\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n if (changesObj.booking) {\r\n if (changesObj.booking.isFirstChange()) { return; }\r\n const { currentValue } = changesObj.booking;\r\n this.booking = _.cloneDeep(currentValue);\r\n this.calculatePassDaysRemaining();\r\n this.onBookingBeingSet();\r\n }\r\n }\r\n\r\n private calculatePassDaysRemaining = () => {\r\n this.passDaysRemaining = this.booking.PassDaysRemaining < 0\r\n ? 0\r\n : this.booking.PassDaysRemaining;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/booking-management/booking-details/booking-details-wrapper.component.ts","module.exports = \"<div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>Booking No.</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-8\\\">\\r\\n <div class=\\\"info-label\\\">{{bookingNumber}}</div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>PIN</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-2 col-xs-2\\\">\\r\\n <span class=\\\"info-label\\\">{{displayPin}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-6\\\">\\r\\n <button class=\\\"btn btn-sm show-pin\\\" (click)=\\\"showPin()\\\">{{showPinText}}</button>\\r\\n </div>\\r\\n </div> -->\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>Booking Date</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-8\\\">\\r\\n <div class=\\\"info-label\\\">{{bookingDate | gxDate: 'default'}} (AEST)</div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-- @*Products Purchased*@-->\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>Products</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-8\\\">\\r\\n <div *ngFor=\\\"let summary of products\\\" class=\\\"info-label compact product\\\">{{summary}}</div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"isKmPass\\\">\\r\\n <div class=\\\"row hidden\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>Total KMs</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-8\\\">\\r\\n <div class=\\\"info-label km\\\">{{passKms}}</div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>KMs Remaining</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-8\\\">\\r\\n <div class=\\\"info-label km\\\">{{passKms - passKmsUsed}}</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"isTravelPass || isPackage\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-4\\\">\\r\\n <label>Valid Until</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-8\\\">\\r\\n <span class=\\\"info-label\\\">{{passExpiry | gxDate: 'date'}}</span>\\r\\n <br/>\\r\\n <span class=\\\"info-label\\\">({{passDaysRemaining || \\\"0\\\"}} Days Remaining)</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <br/>\\r\\n <div class=\\\"row\\\">\\r\\n <!-- @*VIEW TICKET BUTTON*@-->\\r\\n <div class=\\\"col-sm-offset-2 col-sm-8 form-group text-center\\\">\\r\\n <a class=\\\"btn btn-cta-secondary button-width\\\" [href]=\\\"ticketUrl\\\" target=\\\"_blank\\\">\\r\\n <span>VIEW TICKET</span>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <!-- @*TOP UP PASS BUTTON*@-->\\r\\n <div class=\\\"col-sm-offset-2 col-sm-8 form-group text-center\\\" *ngIf=\\\"topUpAvailable\\\">\\r\\n <button type=\\\"button\\\" (click)=\\\"showExtendPass = !showExtendPass\\\" class=\\\"btn btn-cta-secondary button-width\\\" busy-message=\\\"Adding Top Up...\\\"><span>TOP UP PASS</span></button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <!-- @*EXTEND PASS BUTTON*@-->\\r\\n <div class=\\\"col-sm-offset-2 col-sm-8 text-center\\\" [hidden]=\\\"!passExtensionAvailable || showExtendPass\\\">\\r\\n <button type=\\\"button\\\" (click)=\\\"showExtendPass = !showExtendPass\\\" class=\\\"btn btn-cta-secondary button-width\\\" busy-message=\\\"Adding Top Up...\\\"><span>EXTEND PASS</span></button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<gaweb-extend-pass [display]=\\\"showExtendPass\\\" [booking]=\\\"booking\\\" (displayChange)=\\\"passExtensionChange($event)\\\" [addons]=\\\"addons\\\" [bookingGuid]=\\\"bookingGuid\\\" [productType]=\\\"productType\\\"></gaweb-extend-pass>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/booking-management/booking-details/booking-details.component.html\n// module id = ./src/app/my-greyhound/booking-management/booking-details/booking-details.component.html\n// module chunks = common","import * as _ from \"lodash\";\r\nimport {\r\n AddonResponse,\r\n TourOrExperience,\r\n Addon\r\n} from \"app/shared/models/booking.model\";\r\nimport {\r\n OnInit,\r\n OnChanges,\r\n SimpleChanges,\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter\r\n} from \"@angular/core\";\r\nimport { GxConstants } from \"app/shared/constants/gx.constants\";\r\nimport { Booking } from \"../../../shared/models/booking.model\";\r\n\r\n@Component({\r\n selector: \"gaweb-booking-details\",\r\n templateUrl: `./booking-details.component.html`\r\n})\r\nexport class BookingDetailsComponent implements OnInit, OnChanges {\r\n bookingCollapsed: boolean;\r\n @Input() bookingNumber: number;\r\n @Input() pin: string;\r\n @Input() bookingDate: string;\r\n products: Array<any>;\r\n @Input() fairBasisList: Array<any>;\r\n @Input() tours: Array<any>;\r\n @Input() isTravelPass: boolean;\r\n @Input() passKms: number;\r\n @Input() passKmsUsed: number;\r\n @Input() isPackage: boolean;\r\n @Input() passExpiry: string;\r\n @Input() passDaysRemaining: number;\r\n @Input() ticketUrl: string;\r\n @Input() topUpAvailable: boolean;\r\n @Input() passExtensionAvailable: boolean;\r\n showExtendPass: boolean;\r\n @Input() addons: Array<Addon> = [];\r\n selectedAddonProductCode: any;\r\n @Input() bookingGuid: string;\r\n @Input() productType: string;\r\n @Input() hasInsurance: boolean;\r\n @Input() isKmPass: boolean;\r\n @Input() booking: Booking;\r\n @Input() nursedInfants: number;\r\n\r\n //displayPin: string;\r\n //pinShown: boolean;\r\n //showPinText: string;\r\n //readonly showPinDefaultText = \"Show Pin\";\r\n //readonly pinMask = \"****\";\r\n\r\n ngOnInit(): void {\r\n this.bookingCollapsed = false;\r\n if (!!this.fairBasisList && this.fairBasisList) {\r\n this.products = this.getProducts();\r\n }\r\n //this.displayPin = this.pinMask;\r\n //this.pinShown = false;\r\n //this.showPinText = this.showPinDefaultText;\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n if (changesObj.tours) {\r\n if (changesObj.tours.isFirstChange()) {\r\n return;\r\n }\r\n const { currentValue } = changesObj.tours;\r\n this.tours = _.cloneDeep(currentValue);\r\n this.products = this.getProducts();\r\n }\r\n if (changesObj.passDaysRemaining) {\r\n if (changesObj.passDaysRemaining.isFirstChange()) {\r\n return;\r\n }\r\n const { currentValue } = changesObj.passDaysRemaining;\r\n this.passDaysRemaining = _.cloneDeep(currentValue);\r\n }\r\n if (changesObj.fairBasisList) {\r\n if (changesObj.fairBasisList.isFirstChange()) {\r\n return;\r\n }\r\n const { currentValue } = changesObj.fairBasisList;\r\n this.fairBasisList = _.cloneDeep(currentValue);\r\n this.products = this.getProducts();\r\n }\r\n console.log('showExtendPass: ' + this.showExtendPass);\r\n }\r\n\r\n // showPin = () => {\r\n // if (this.displayPin === this.pinMask) {\r\n // this.displayPin = this.pin;\r\n // this.showPinText = \"Hide Pin\";\r\n // } else {\r\n // this.displayPin = this.pinMask;\r\n // this.showPinText = this.showPinDefaultText;\r\n // }\r\n // };\r\n\r\n passExtensionChange(change: any) {\r\n if (this.showExtendPass === true) {\r\n this.showExtendPass = change;\r\n }\r\n }\r\n\r\n private getProducts() {\r\n function addPremiumUpgrade(hasInsurance: boolean): string[] {\r\n return hasInsurance ? [\"Travel Sure\"] : [];\r\n }\r\n\r\n function getPassengerDetailsSummary(fareBasisList: Array<any>, nursedInfants: number = 0) {\r\n /* const filterByFarebasisCode = (farebasis) => {\r\n return farebasis.FarebasisCode !== GxConstants.EXPRESS_FB_CODES.ZZZ &&\r\n farebasis.FarebasisCode !== GxConstants.EXPRESS_FB_CODES.OZX;\r\n }; */\r\n const transformIntoSummaryObjects = farebasis => {\r\n return (\r\n farebasis.NumberToBook +\r\n \" x \" +\r\n (!!farebasis.DisplayDescription\r\n ? farebasis.DisplayDescription\r\n : farebasis.SystemDescription)\r\n );\r\n };\r\n let newFBList = fareBasisList /* .filter(filterByFarebasisCode) */\r\n .map(transformIntoSummaryObjects);\r\n\r\n if(!!nursedInfants && nursedInfants > 0){\r\n if(nursedInfants > 1){\r\n newFBList.push(nursedInfants.toString() + \" x Nursed Infants (0-2 Years)\");\r\n } else {\r\n newFBList.push(\"1 x Nursed Infant (0-2 Years)\");\r\n }\r\n }\r\n return newFBList;\r\n }\r\n\r\n function getToursTexts(tours: Array<TourOrExperience>) {\r\n const summary = [];\r\n const existingTours = [];\r\n tours.forEach(tour => {\r\n const name = !!tour.DisplayDescription\r\n ? tour.DisplayDescription\r\n : tour.Name;\r\n\r\n if (existingTours.indexOf(name) < 0) {\r\n existingTours.push(name);\r\n let total = 0;\r\n tours.forEach(tourB => {\r\n const nameB = !!tourB.DisplayDescription\r\n ? tourB.DisplayDescription\r\n : tourB.Name;\r\n if (name === nameB) {\r\n const quantity = !!tourB.Quantity\r\n ? tourB.Quantity\r\n : 1;\r\n total += quantity;\r\n }\r\n });\r\n summary.push(`${total} x ${name}`);\r\n }\r\n });\r\n return summary;\r\n }\r\n const response = getPassengerDetailsSummary(this.fairBasisList, this.nursedInfants)\r\n .concat(getToursTexts(this.tours))\r\n .concat(addPremiumUpgrade(this.hasInsurance));\r\n\r\n return response;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/booking-management/booking-details/booking-details.component.ts","module.exports = \"\\r\\n<div class=\\\"text-left booking__addon styleguide\\\" *ngIf=\\\"display\\\">\\r\\n <form [formGroup]=\\\"extendPassForm\\\" (submit)=\\\"payForAddon()\\\" *ngIf=\\\"addons\\\">\\r\\n <div *ngFor=\\\"let addon of addons\\\">\\r\\n <div class=\\\"text-left \\\" *ngIf=\\\"!addon.SectorAddon\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div style=\\\"margin-bottom: 15px;\\\">\\r\\n <span class=\\\"pull-right hidden\\\">\\r\\n <i class=\\\"fa fa-close\\\" (click)=\\\"showExtendPass = !showExtendPass\\\"></i>\\r\\n </span>\\r\\n <span>{{addon.Description}}</span>\\r\\n </div>\\r\\n \\r\\n <gaweb-error-summary></gaweb-error-summary>\\r\\n \\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{ 'has-error has-feedback': extendPassFormSubmitted\\r\\n && extendPassForm.get('addons').invalid }\\\">\\r\\n <div *ngFor=\\\"let o of addon.AddonOptions\\\">\\r\\n <!-- {{o.OnlineDescription || o.Description}} -->\\r\\n <div *ngFor=\\\"let v of o.OptionValueEntity\\\">\\r\\n <div *ngIf=\\\"v.ProductCode != null\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding-bottom: 5px;\\\">\\r\\n <div class=\\\"col-xs-1 text-right\\\">\\r\\n <div *ngIf=\\\"!processing\\\" class=\\\"radio\\\">\\r\\n <input type=\\\"radio\\\" value=\\\"{{v.ProductCode}}\\\" [checked]=\\\"v.Selected\\\" (change)=\\\"optionSelected(addon, v)\\\" \\r\\n formControlName=\\\"selectedAddonProductCode\\\" style=\\\"opacity: 100!important;\\\">\\r\\n </div> \\r\\n </div>\\r\\n <div class=\\\"visible-xs col-xs-11\\\" style=\\\"padding-top: 3px;\\\">\\r\\n <label class=\\\"text-left addon-label\\\" style=\\\"font-weight: 500;\\\" (click)=\\\"optionSelected(addon, v)\\\">\\r\\n {{v.OnlineDescription || v.Description}}\\r\\n </label> \\r\\n </div>\\r\\n <div class=\\\"hidden-xs col-xs-11\\\" style=\\\"padding-top: 3px; margin-left: -13px;\\\">\\r\\n <label class=\\\"text-left addon-label\\\" style=\\\"font-weight: 500;\\\" (click)=\\\"optionSelected(addon, v)\\\">\\r\\n {{v.OnlineDescription || v.Description}}\\r\\n </label> \\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <span class=\\\"fa fa-exclamation fa-2x form-control-feedback\\\"\\r\\n aria-hidden=\\\"true\\\" *ngIf=\\\"extendPassFormSubmitted && extendPassForm.get('addon').invalid\\\"></span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-6 pull-left\\\">\\r\\n <button *ngIf=\\\"!processing\\\" class=\\\"btn btn-cta-secondary-purchase btn-block\\\" style=\\\"margin-bottom: 10px; /*background-color: #64B92D; border-color: #64B92D; */\\\" [disabled]=\\\"!hasSelected\\\" (click)=\\\"scrolltoCheckout()\\\">\\r\\n <div *ngIf=\\\"!processing\\\">Proceed</div>\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-6 pull-right\\\">\\r\\n <button *ngIf=\\\"!processing\\\" class=\\\"btn btn-block btn-cta-secondary\\\" style=\\\"margin-bottom: 10px;\\\" [disabled]=\\\"processing\\\" (click)=\\\"updateDisplay(false)\\\">\\r\\n <div *ngIf=\\\"!processing\\\">Cancel</div>\\r\\n </button>\\r\\n </div>\\r\\n <!--PURCHASE NOW BUTTON-->\\r\\n <!-- <div class=\\\"col-xs-12 col-sm-6 pull-right\\\">\\r\\n <button type=\\\"submit\\\" class=\\\"btn btn-block btn-cta pull-right\\\" [disabled]=\\\"processing || extendPassForm.controls['selectedAddonProductCode'].value == null\\\">\\r\\n <div *ngIf=\\\"processing\\\">\\r\\n <div class='btn-content-centered'>\\r\\n <i class='fa fa-refresh fa-spin'></i>\\r\\n <span class='span-margin'>Processing...</span>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!processing\\\">PURCHASE NOW</div>\\r\\n </button>\\r\\n </div> -->\\r\\n </div>\\r\\n </form>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/booking-management/booking-details/extend-pass.component.html\n// module id = ./src/app/my-greyhound/booking-management/booking-details/extend-pass.component.html\n// module chunks = common","\r\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { BookingService } from 'app/shared/services/booking.service';\r\nimport { ErrorService } from 'app/shared/services/error.service';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { SectorAddonsService } from 'app/shared/services/sector-addons.service';\r\nimport { TravelProductService, GetCartTotalOptions, CartItemOptions, AddProductAndPassengerToBookingOptions } from '../../../shared/services/travel-product.service';\r\nimport { Booking, Addon } from 'app/shared/models/booking.model';\r\nimport { AddonOption, OptionValueEntityInstance } from '../../../shared/models/booking.model';\r\nimport * as moment from 'moment';\r\nimport { V } from '@angular/core/src/render3';\r\nimport { emit } from 'process';\r\nimport * as _ from 'lodash';\r\n\r\n @Component({\r\n selector: 'gaweb-extend-pass',\r\n templateUrl: `./extend-pass.component.html`\r\n})\r\nexport class ExtendPassComponent implements OnInit {\r\n\r\n @Output() displayChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Input() set display(display: boolean) {\r\n if (this.addons == null || this.addons.length < 1) {\r\n display = false;\r\n }\r\n\r\n this.displayForm = display;\r\n this.displayChange.emit(display);\r\n }\r\n\r\n get display(): boolean {\r\n return this.displayForm;\r\n }\r\n\r\n private displayForm = true;\r\n @Input() addons: Array<Addon> = [];\r\n @Input() bookingGuid: string;\r\n @Input() productType: string;\r\n @Input() booking: Booking;\r\n\r\n selectedAddonProductCode = null;\r\n showExtendPass: boolean;\r\n extendPassForm: FormGroup;\r\n extendPassFormSubmitted: boolean;\r\n processing: boolean;\r\n\r\n addonsToPurchase: Array<Addon> = [];\r\n loadingCartTotal: boolean;\r\n\r\n private selectedAddons = false;\r\n get hasSelected(): boolean {\r\n this.selectedAddons = false;\r\n this.addons.filter((addon: Addon) => addon.SectorAddon == false || addon.SectorAddon == null).forEach((addon: Addon) => {\r\n addon.AddonOptions.forEach((option: AddonOption) => {\r\n option.OptionValueEntity.forEach((entity: OptionValueEntityInstance) => {\r\n if(entity.Selected && entity.ProductCode != null) this.selectedAddons = true;\r\n })\r\n })\r\n })\r\n return this.selectedAddons;\r\n }\r\n\r\n constructor(\r\n private localStorageService: LocalStorageService,\r\n private bookingsService: BookingService,\r\n private errorService: ErrorService,\r\n private initialDataService: InitialDataService,\r\n private travelPackageService: TravelProductService,\r\n private sectorAddonsService: SectorAddonsService,\r\n private fb: FormBuilder\r\n ) {\r\n this.showExtendPass = false;\r\n this.processing = false;\r\n this.buildForm();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sectorAddonsService.addonCart.subscribe(addons => this.addonsToPurchase = addons)\r\n this.sectorAddonsService.loadingCartTotal.subscribe(lct => this.loadingCartTotal = lct)\r\n //this.showExtendPass = this.hasSelected();\r\n this.clearAllAddons();\r\n }\r\n\r\n private buildForm() {\r\n this.extendPassForm = this.fb.group({\r\n addons: [null, []], // TODO check\r\n addon: [null, []], // TODO check\r\n selectedAddonProductCode: [null, [Validators.required]] // TODO check\r\n });\r\n this.extendPassFormSubmitted = false;\r\n }\r\n\r\n private clearAllAddons(){\r\n let addons = this.addons;\r\n addons.forEach((addon: Addon) => {\r\n addon.AddonOptions.forEach((option: AddonOption) => {\r\n option.Selected = false;\r\n option.OptionValueEntity.forEach((entity: OptionValueEntityInstance) => {\r\n if(entity.ProductCode == null){\r\n this.optionSelected(addon, entity);\r\n } else {\r\n if(entity.Selected == true){\r\n this.optionSelected(addon, entity);\r\n }\r\n }\r\n });\r\n })\r\n });\r\n }\r\n\r\n private clearSelectedAddons(){\r\n let addons = this.addons.filter((addon: Addon) => addon.SectorAddon == false);\r\n addons.forEach((addon: Addon) => {\r\n addon.AddonOptions.forEach((option: AddonOption) => {\r\n option.Selected = false;\r\n option.OptionValueEntity.forEach((entity: OptionValueEntityInstance) => {\r\n if(entity.ProductCode == null){\r\n this.optionSelected(addon, entity);\r\n } else {\r\n if(entity.Selected == true){\r\n this.optionSelected(addon, entity);\r\n }\r\n }\r\n });\r\n })\r\n });\r\n }\r\n\r\n scrolltoCheckout() {\r\n let elm = document.getElementById(\"proceedPaymentButton\");\r\n if(elm != null){\r\n elm.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'start' });\r\n }\r\n return false;\r\n }\r\n\r\n updateDisplay(display: boolean) {\r\n if(display == false){\r\n this.clearSelectedAddons();\r\n }\r\n this.display = display; \r\n this.displayChange.emit(display);\r\n }\r\n\r\n optionSelected(a: Addon, v: OptionValueEntityInstance) {\r\n if (!this.loadingCartTotal) {\r\n this.processing = true;\r\n this.sectorAddonsService.setLoadingCartTotal(true);\r\n let hasSelected = false;\r\n a.AddonOptions.forEach(o => {\r\n if(o.OptionValueEntity.indexOf(v) > -1){\r\n if(o.FieldType == GxConstants.FIELD_TYPE.RADIO){\r\n o.OptionValueEntity.forEach((ov: OptionValueEntityInstance) => {\r\n if(ov.ProductCode != v.ProductCode) {\r\n ov.Selected = false;\r\n } else {\r\n if(ov.ProductCode == null){\r\n ov.Selected = true;\r\n o.UsageDate = moment(new Date()).format(\"DD/MM/YYYY hh:mm:ss A\").toString();\r\n ov.UsageDate = moment(new Date()).format(\"DD/MM/YYYY hh:mm:ss A\").toString();\r\n o.Selected = false;\r\n hasSelected = false; \r\n } else {\r\n ov.Selected = true;\r\n o.UsageDate = moment(new Date()).format(\"DD/MM/YYYY hh:mm:ss A\").toString();\r\n ov.UsageDate = moment(new Date()).format(\"DD/MM/YYYY hh:mm:ss A\").toString();\r\n o.Selected = true;\r\n hasSelected = true; \r\n }\r\n }\r\n });\r\n } else {\r\n o.OptionValueEntity.forEach((ov: OptionValueEntityInstance) => {\r\n if(ov.ProductCode == v.ProductCode) {\r\n ov.Selected = !ov.Selected;\r\n o.UsageDate = moment(new Date()).format(\"DD/MM/YYYY hh:mm:ss A\").toString();\r\n ov.UsageDate = moment(new Date()).format(\"DD/MM/YYYY hh:mm:ss A\").toString();\r\n o.Selected = o.OptionValueEntity.filter(x => x.Selected).length > 0;\r\n if(o.Selected) hasSelected = true;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n if(hasSelected){\r\n const indexOfAddon = this.addonsToPurchase.indexOf(a);\r\n if(indexOfAddon > -1){\r\n this.addonsToPurchase[indexOfAddon] = a;\r\n } else {\r\n this.addonsToPurchase.push(a);\r\n }\r\n this.sectorAddonsService.updateAddonsCart(this.booking, this.addonsToPurchase);\r\n this.sectorAddonsService.setLoadingCartTotal(false);\r\n this.processing = false;\r\n } else {\r\n this.addonsToPurchase.splice(this.addonsToPurchase.indexOf(a), 1);\r\n this.sectorAddonsService.updateAddonsCart(this.booking, this.addonsToPurchase);\r\n this.sectorAddonsService.setLoadingCartTotal(false);\r\n this.processing = false;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/booking-management/booking-details/extend-pass.component.ts","module.exports = \"<gaweb-page-transition [position]=\\\"'top'\\\"></gaweb-page-transition>\\r\\n<gaweb-toast></gaweb-toast>\\r\\n<section class=\\\"manage-booking\\\" [hidden]=\\\"loading\\\" style=\\\"margin-bottom: 30px;\\\">\\r\\n <div class=\\\"container\\\">\\r\\n <div class=\\\"row \\\">\\r\\n <div class=\\\"col-xs-12 manage-booking__header\\\">\\r\\n <div *ngIf=\\\"referredFromMyGreyhound || isLoggedIn\\\">\\r\\n <a href=\\\"/my-greyhound/dashboard\\\">\\r\\n <i class=\\\"fa fa-fw fa-arrow-left\\\"></i> Back\\r\\n </a>\\r\\n </div>\\r\\n <h1>\\r\\n MANAGE BOOKING\\r\\n <div *ngIf=\\\"showLogoutButton && !referredFromMyGreyhound\\\">\\r\\n <button class=\\\"btn btn-xs pull-right\\\" (click)=\\\"logout()\\\">LOGOUT</button>\\r\\n </div>\\r\\n </h1>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <form [formGroup]=\\\"manageBookingDetailsForm\\\" class=\\\"container\\\">\\r\\n <!-- <toast></toast> -->\\r\\n <div class=\\\"row \\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <gaweb-error-summary [worksWithEvents]=\\\"false\\\" [alerts]=\\\"errors\\\"></gaweb-error-summary>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n\\r\\n\\r\\n <div class=\\\"manage-booking__body\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-6\\\">\\r\\n <gaweb-booking-details-wrapper [isPass]=\\\"isPass\\\" [addons]=\\\"addons\\\" [booking]=\\\"booking\\\"></gaweb-booking-details-wrapper>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-6\\\">\\r\\n <gaweb-passenger-summary [booking]=\\\"booking\\\"></gaweb-passenger-summary>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <gaweb-itinerary-wrapper (onBookingUpdated)=\\\"onBookingUpdated($event)\\\" [booking]=\\\"booking\\\" [errors]=\\\"errors\\\" \\r\\n [errorMessage]=\\\"errorMessage\\\" [addons]=\\\"addons\\\" [openAddons]=\\\"openAddons\\\"></gaweb-itinerary-wrapper>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"addonsToPurchase.length > 0\\\" class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <gaweb-purchase-total-wrapper [isPassBooking]=\\\"isPass\\\" [booking]=\\\"booking\\\"></gaweb-purchase-total-wrapper>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</section>\\r\\n<!-- TODO check -->\\r\\n<!-- <script type=\\\"text/ng-template\\\" id=\\\"customTemplate.html\\\">\\r\\n <a class=\\\"stop-typeahead\\\">\\r\\n <span class=\\\"title\\\" ng-bind-html=\\\"match.label | uibTypeaheadHighlight:query\\\"></span>\\r\\n <small><span ng-bind-html=\\\"match.model.Address | uibTypeaheadHighlight:query\\\"></span></small>\\r\\n </a>\\r\\n</script>\\r\\n -->\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/booking-management/booking-management.component.html\n// module id = ./src/app/my-greyhound/booking-management/booking-management.component.html\n// module chunks = common","import * as _ from 'lodash';\r\nimport { OnInit, OnChanges, SimpleChanges, Component } from '@angular/core';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { BookingService } from 'app/shared/services/booking.service';\r\nimport { ActionUpdaterService, ApiError } from 'app/shared/services/action-updater.service';\r\nimport { EventBusService } from 'app/shared/services/event-bus.service';\r\nimport { TravelService } from 'app/shared/services/travel.service';\r\nimport { PageLoadedEventWrapper } from '../../shared/models/app-events.model';\r\nimport { PageLoadedEvent } from '../../shared/models/app-events-types.model';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { DeviceService } from '../../shared/services/device.service';\r\nimport { Booking, Addon, AddonOption, OptionValueEntityInstance, Totals, Sector } from '../../shared/models/booking.model';\r\nimport { SectorAddonsService } from '../../shared/services/sector-addons.service';\r\nimport * as moment from 'moment';\r\nimport { V } from '@angular/core/src/render3';\r\n\r\n@Component({\r\n selector: 'gaweb-booking-management',\r\n templateUrl: `./booking-management.component.html`\r\n})\r\nexport class BookingManagementComponent implements OnInit, OnChanges {\r\n showLogoutButton: boolean;\r\n referredFromMyGreyhound: boolean;\r\n\r\n showItineraryDetails: boolean;\r\n onShowItineraryDetails: (expanded: boolean) => void;\r\n type: string;\r\n private _bookings: Array<Booking>;\r\n set Bookings(b: Array<Booking>){\r\n if(b.length > 0){\r\n this._bookings = b;\r\n this.booking = b[0];\r\n this.checkBookingExistsOrRedirect();\r\n this.continueInitialSetup(); \r\n }\r\n}\r\n get Bookings(): Array<Booking>{\r\n return this._bookings;\r\n }\r\n booking: Booking;\r\n isPass: boolean;\r\n reportingGroup: string;\r\n addon: any; //used for pass upgrade addon\r\n addons: Array<Addon> = [];\r\n openAddons: Array<Addon> = [];\r\n\r\n manageBookingDetailsForm: FormGroup;\r\n\r\n errorMessage: string;\r\n errors: Array<ApiError>;\r\n loading: boolean;\r\n successMessage: string;\r\n isLoggedIn: boolean;\r\n hasPurchases: boolean;\r\n loadingCartTotal: boolean;\r\n totals: Totals;\r\n addonsToPurchase: Array<Addon>;\r\n _refreshSectorAddons: boolean = false;\r\n set RefreshSectorAddons(b: boolean) {\r\n this._refreshSectorAddons = b;\r\n if(b){\r\n this.getAddons();\r\n }\r\n }\r\n get RefreshSectorAddons(): boolean {\r\n return this._refreshSectorAddons;\r\n } \r\n bookingGuid: string;\r\n constructor(private initialDataService: InitialDataService,\r\n private activatedRoute: ActivatedRoute,\r\n private localStorageService: LocalStorageService,\r\n private bookingsService: BookingService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private eventBusService: EventBusService,\r\n private deviceService: DeviceService,\r\n private sectorAddonsService: SectorAddonsService,\r\n private travelService: TravelService,\r\n private _fb: FormBuilder\r\n ) {\r\n this.referredFromMyGreyhound = true;\r\n this.loading = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.bookingsService.bookings.subscribe(bookings => this.Bookings = bookings);\r\n let context, bookingGuid;\r\n this.isLoggedIn = !!this.initialDataService.isLoggedIn;\r\n this.hasPurchases = false;\r\n this.manageBookingDetailsForm = this._fb.group({\r\n });\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n context = params.context;\r\n bookingGuid = params.bookingGuid;\r\n if (bookingGuid == null) {\r\n bookingGuid = params.booking;\r\n }\r\n this.bookingGuid = bookingGuid;\r\n this.successMessage = params.successMessage;\r\n });\r\n this.referredFromMyGreyhound = (context === 'myGreyhound');\r\n\r\n this.travelService.loadStopsIntoStorage();\r\n\r\n if (this.referredFromMyGreyhound) {\r\n this.showLogoutButton = false;\r\n const success = ( data ) => {\r\n this.loading = false;\r\n this.localStorageService.saveOnlineBooking(data);\r\n this.booking = data;\r\n this.bookingsService.setBooking(this.booking, true);\r\n };\r\n\r\n const customerGuid = !!this.initialDataService.userData ? this.initialDataService.userData.CustomerGuid : null;\r\n if (customerGuid == null) {\r\n window.location.href = '/my-greyhound/login';\r\n } else {\r\n this.bookingsService.getBookingV2(bookingGuid).toPromise()\r\n .then((data) => {\r\n this.loading = false;\r\n this.localStorageService.saveOnlineBooking(data);\r\n this.booking = data as Booking;\r\n this.bookingsService.setBooking(this.booking, true);\r\n });\r\n }\r\n } else {\r\n if (bookingGuid) {\r\n this.bookingsService.getBookingV2(bookingGuid).toPromise().then(\r\n ( data ) => {\r\n this.loading = false;\r\n this.localStorageService.saveOnlineBooking(data[0]);\r\n this.booking = data as Booking;\r\n this.bookingsService.setBooking(this.booking, true);\r\n }\r\n );\r\n } else {\r\n this.loading = false;\r\n this.booking = this.localStorageService.getOnlineBooking();\r\n this.bookingsService.setBooking(this.booking, true);\r\n }\r\n }\r\n this.sectorAddonsService.addonCart.subscribe(addons => this.addonsToPurchase = addons);\r\n this.sectorAddonsService.refreshSectorAddons.subscribe(refresh => this.RefreshSectorAddons = refresh);\r\n //console.log(this.booking);\r\n }\r\n\r\n reloadBooking(){\r\n this.bookingsService.getBookingV2(this.bookingGuid).toPromise().then(\r\n ( data ) => {\r\n this.loading = false;\r\n this.localStorageService.saveOnlineBooking(data[0]);\r\n this.booking = data as Booking;\r\n this.checkBookingExistsOrRedirect();\r\n this.continueInitialSetup();\r\n }\r\n );\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges){\r\n console.log(changes);\r\n }\r\n\r\n continueInitialSetup = () => {\r\n this.showLogoutButton = true;\r\n this.reportingGroup = this.booking.FareBasis[0].ReportingGroup;\r\n const productType = this.booking.ProductType;\r\n this.type = productType === GxConstants.PRODUCT_TYPE.EXPRESS\r\n ? ' EXPRESS BOOKING'\r\n : this.booking.Package.UniqueId ? ' PACKAGE' : ' TRAVEL PASS';\r\n\r\n const passReportingValues = [\r\n GxConstants.REPORTING_GROUP.HOP_ON, GxConstants.REPORTING_GROUP.SHORT_HOP,\r\n GxConstants.REPORTING_GROUP.KPASS, GxConstants.REPORTING_GROUP.COMMUTER\r\n ];\r\n\r\n this.isPass = productType === GxConstants.PRODUCT_TYPE.BUSPASS &&\r\n _.includes(GxConstants.REPORTING_GROUP, this.reportingGroup);\r\n\r\n this.getAddons();\r\n\r\n this.eventBusService.emit(new PageLoadedEventWrapper(new PageLoadedEvent()));\r\n }\r\n\r\n logout = () => {\r\n this.localStorageService.resetManagedBooking();\r\n window.location.href = '/';\r\n }\r\n\r\n private showToastAndScroll() {\r\n\r\n if (this.localStorageService.hasTripBeenAdded()) {\r\n this.actionUpdaterService.announceSuccess('Trip successfully added to your itinerary.');\r\n const $itinerary_sectors = $('.itinerary__sectors');\r\n if ($itinerary_sectors.is(':visible')) {\r\n if (this.deviceService.IsMobile()) {\r\n $('html')\r\n .animate({\r\n scrollTop: $itinerary_sectors.offset().top - 67\r\n },\r\n 500);\r\n }\r\n }\r\n this.localStorageService.setAddedTripToBooking(false);\r\n\r\n }\r\n if (this.localStorageService.hasBeenAnError()) {\r\n const error: ApiError = this.localStorageService.getError();\r\n this.errors = [error];\r\n this.localStorageService.saveError(null);\r\n }\r\n \r\n if (!!this.successMessage) {\r\n this.actionUpdaterService.announceSuccess(this.successMessage);\r\n }\r\n }\r\n\r\n toggleAddonSelection = (productCode: string) => {\r\n if(this.addons != null && this.addons.length > 0){\r\n const loopAddons = (addon: Addon) => {\r\n const loopOptions = (option: AddonOption) => {\r\n const loopEntities = (entity: OptionValueEntityInstance) => {\r\n if(entity.ProductCode == productCode){\r\n if(option.FieldType == GxConstants.FIELD_TYPE.RADIO){\r\n if(!entity.Selected){\r\n const unSelectAllValues = (ent: OptionValueEntityInstance) => {\r\n ent.Selected = false;\r\n }\r\n _.each(option.OptionValueEntity, unSelectAllValues);\r\n entity.Selected = true;\r\n }\r\n } else {\r\n entity.Selected = !entity.Selected;\r\n }\r\n }\r\n }\r\n _.each(option.OptionValueEntity, loopEntities);\r\n }\r\n _.each(addon.AddonOptions, loopOptions);\r\n }\r\n _.each(this.addons, loopAddons);\r\n }\r\n }\r\n\r\n getAddons = () => {\r\n //this.addons = [];\r\n this.sectorAddonsService.setAddonsRefresh(false);\r\n const options = {\r\n ProductRef: this.booking.ProductType,\r\n FarePrice: '',\r\n PassengerQty: Booking.getPassengerCountWithExclusions(this.booking),\r\n BookingGUID: this.booking.BookingGuid,\r\n IsReturn: this.booking.HasReturnTravel,\r\n RelatedProductCode: this.booking.FareBasis[0].FarebasisCode\r\n },\r\n onSuccess = (data) => {\r\n if(data.length > 0){\r\n this.addons = data;\r\n const loopAddons = (addon: Addon) => {\r\n let isSectorAddon = null;\r\n const loopOptions = (option: AddonOption) => {\r\n const loopEntities = (entity: OptionValueEntityInstance) => {\r\n const loopAllowedAddons = (allowedAddon: string) => {\r\n if(entity.ProductCode != null && entity.ProductCode.toLowerCase() === allowedAddon.toLowerCase()){\r\n isSectorAddon = true;\r\n } else {\r\n option.CanPurchase = true;\r\n option.UsageDate = moment(new Date()).format('YYYY-MM-DD');\r\n entity.UsageDate = moment(new Date()).format('YYYY-MM-DD');\r\n }\r\n }\r\n _.each(GxConstants.EXPRESS_ADDONS, loopAllowedAddons);\r\n }\r\n _.each(option.OptionValueEntity, loopEntities);\r\n }\r\n _.each(addon.AddonOptions, loopOptions);\r\n addon.SectorAddon = isSectorAddon == null ? false : true;\r\n }\r\n _.each(this.addons, loopAddons);\r\n }\r\n this.showToastAndScroll();\r\n },\r\n getOpenSectorAddons = () => {\r\n this.booking.ShowExtendPassBtn = !!this.addons && this.addons.filter(x => !x.SectorAddon).length > 0 && this.booking.ProductType == \"BP\";\r\n this.openAddons = [];\r\n GxConstants.ALLOWED_SECTOR_ADDONS.forEach(allowedAddon => {\r\n const tours = this.booking.Tours.filter(x => x.SelectedFareType == allowedAddon);\r\n if(!!tours){\r\n tours.forEach(tour => {\r\n if(!tour.LinkedToSector){\r\n // find and retrieve addon from list of addons if it exists\r\n let addon: Addon = new Addon();\r\n let foundAddon = false;\r\n this.addons.forEach(a => {\r\n a.AddonOptions.forEach(o => {\r\n if(o.ProductCode == tour.SelectedFareType && !foundAddon){\r\n addon = _.cloneDeep(a);\r\n addon.AddonOptions = addon.AddonOptions.filter(x => x.ProductCode == o.ProductCode);\r\n foundAddon = true;\r\n }\r\n })\r\n });\r\n //const a = _.cloneDeep(this.addons.filter(x => x.AddonOptions[0].ProductCode == tour.SelectedFareType)[0]);\r\n if(!!addon){\r\n addon.AddonOptions[0].UsageDate = tour.SelectedDate;\r\n addon.AddonOptions[0].Quantity = tour.Quantity;\r\n addon.AddonOptions[0].SalePriceUnit = tour.SelectedCurrencyAmount;\r\n this.addToOpenAddons(addon);\r\n //this.openAddons.push(addon);\r\n } else {\r\n const entity = new OptionValueEntityInstance();\r\n entity.UsageDate = tour.SelectedDate;\r\n entity.ProductCode = tour.SelectedFareType;\r\n entity.SalePriceUnit = tour.SelectedCurrencyAmount;\r\n entity.SoldDescription = tour.DisplayDescription;\r\n \r\n const option = new AddonOption();\r\n option.SalePriceUnit = tour.SelectedCurrencyAmount;\r\n option.Quantity = tour.Quantity;\r\n option.UsageDate = tour.SelectedDate;\r\n option.ProductCode = tour.SelectedFareType;\r\n option.OptionValueEntity = [entity];\r\n \r\n const addon = new Addon();\r\n addon.AddonOptions = [option];\r\n addon.AddonType = \"TP\";\r\n addon.Description = tour.Description;\r\n addon.productCode = tour.SelectedFareType;\r\n addon.salePriceUnit = tour.SelectedCurrencyAmount;\r\n addon.Title = tour.SelectedFareType;\r\n this.addToOpenAddons(addon);\r\n //this.openAddons.push(addon); \r\n }\r\n } \r\n })\r\n }\r\n }); \r\n },\r\n addAvailableAddonsToSectors = () => {\r\n this.booking.Sectors.forEach(s => {\r\n s.Addons.forEach(a => {\r\n a.AddonOptions.forEach(o => {\r\n o.Show = true;\r\n //o.CanPurchase = false;\r\n })\r\n })\r\n })\r\n let addonsForSector: Array<Addon> = [];\r\n this.booking.Sectors.forEach(s => {\r\n if(s.IsFirstReturnSector){\r\n addonsForSector = this.filterAddons();\r\n this.initializeAddonsForSector(s, addonsForSector);\r\n } else {\r\n addonsForSector = this.filterAddons(true);\r\n this.initializeAddonsForSector(s, addonsForSector);\r\n }\r\n });\r\n this.booking = _.cloneDeep(this.booking);\r\n },\r\n error = (ex) => {\r\n throw ex;\r\n };\r\n\r\n if(this.addons == null || this.addons.length == 0){\r\n this.bookingsService.getAddons(options).toPromise()\r\n .then(onSuccess)\r\n .then(getOpenSectorAddons)\r\n .then(addAvailableAddonsToSectors)\r\n .catch(error); \r\n } else {\r\n getOpenSectorAddons();\r\n addAvailableAddonsToSectors();\r\n }\r\n }\r\n\r\n addToOpenAddons(a: Addon){\r\n let summedToExisting = false;\r\n this.openAddons.forEach(addon => {\r\n addon.AddonOptions.forEach(o => {\r\n a.AddonOptions.forEach(ao => {\r\n if(ao.ProductCode == o.ProductCode){\r\n summedToExisting = true;\r\n o.Quantity += ao.Quantity;\r\n }\r\n })\r\n })\r\n })\r\n if(!summedToExisting){\r\n this.openAddons.push(_.cloneDeep(a));\r\n }\r\n }\r\n\r\n filterAddons(removeReturnAddons: boolean = false): Array<Addon>{\r\n let addons = _.cloneDeep(this.addons);\r\n addons = addons.filter(x => x.SectorAddon == true);\r\n if(!removeReturnAddons){\r\n return addons;\r\n }\r\n let addonsToReturn: Array<Addon> = [];\r\n addons.forEach(a => {\r\n a.AddonOptions.forEach(o => {\r\n if(!o.OptionValueEntity[0].IsReturn && removeReturnAddons){\r\n a = a.AddonOptions.filter(x => x != o);\r\n }\r\n })\r\n })\r\n return addons;\r\n }\r\n\r\n initializeAddonsForSector(s: Sector, addons: Array<Addon>){\r\n console.log(addons);\r\n if(addons != null && addons.length > 0){\r\n addons.filter((x: Addon) => x.SectorAddon == true).forEach((a: Addon) => {\r\n a.AddonOptions.forEach((o: AddonOption) => {\r\n o.OptionValueEntity.forEach((v: OptionValueEntityInstance) => {\r\n if(!this.sectorAddonExists(s, v.ProductCode)){\r\n if(this.booking.ProductType == \"EX\"){\r\n if(s.IsFirstReturnSector){\r\n if(v.IsReturn){\r\n o.CanPurchase = true;\r\n o.UsageDate = s.PassengerBoardingDate;\r\n v.UsageDate = s.PassengerBoardingDate;\r\n o.Quantity = Booking.getPassengerCountWithExclusions(this.booking);\r\n o.Show = true;\r\n }\r\n }\r\n else if(s.IsFirstOriginatingSector){\r\n if(!v.IsReturn){\r\n o.CanPurchase = true;\r\n o.UsageDate = s.PassengerBoardingDate;\r\n v.UsageDate = s.PassengerBoardingDate;\r\n o.Quantity = Booking.getPassengerCountWithExclusions(this.booking);\r\n o.Show = true;\r\n }\r\n } else {\r\n o.Show = false;\r\n }\r\n }\r\n if(this.booking.ProductType == \"BP\"){\r\n o.CanPurchase = true;\r\n o.UsageDate = s.PassengerBoardingDate;\r\n v.UsageDate = s.PassengerBoardingDate;\r\n o.Quantity = Booking.getPassengerCountWithExclusions(this.booking);\r\n o.Show = true;\r\n }\r\n } else {\r\n o.Show = false;\r\n } \r\n })\r\n })\r\n a.AddonOptions = a.AddonOptions.filter(x => x.Show == true);\r\n s.Addons.push(_.cloneDeep(a));\r\n })\r\n }\r\n console.log(s);\r\n }\r\n\r\n sectorAddonExists(sector: Sector, productCode: string): boolean{\r\n let addonExists = false;\r\n sector.Addons.forEach(sa => {\r\n sa.AddonOptions.forEach(sao => {\r\n sao.Show = true;\r\n if(sao.ProductCode === productCode){\r\n addonExists = true;\r\n }\r\n })\r\n })\r\n return addonExists;\r\n }\r\n\r\n onBookingUpdated = (booking) => {\r\n this.booking = _.cloneDeep(booking);\r\n this.getAddons()\r\n }\r\n\r\n checkBookingExistsOrRedirect = () => {\r\n if (!this.booking || !this.booking.BookingNumber) {\r\n window.location.href = '/';\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/booking-management/booking-management.component.ts","module.exports = \"<section class=\\\"itinerary\\\" *ngIf=\\\"showTravelDates || showExperienceDates\\\">\\r\\n <!-- show itinerary container if experience dates or travel dates are being shown -->\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div>\\r\\n <gaweb-collapsing-header [title]=\\\"'ITINERARY'\\\" (onHeaderClicked)=\\\"onShowItineraryDetails($event)\\\" (loadsExpanded)=\\\"showItineraryDetails\\\"\\r\\n [icon]=\\\"'fa-bus'\\\" [loadsExpanded]=\\\"showItineraryDetails\\\">\\r\\n </gaweb-collapsing-header>\\r\\n </div>\\r\\n <div *ngIf=\\\"showItineraryDetails\\\">\\r\\n <div class=\\\"c-header__body\\\" *ngIf=\\\"showExperienceDates\\\">\\r\\n <div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-6\\\">\\r\\n <h4>Experience Dates</h4>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <p>{{('ExperienceDatesDescription' | translate) | async }}</p>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <gaweb-inclusions *ngFor=\\\"let inclusion of inclusions\\\" [name]=\\\"inclusion.DisplayDescription\\\" [selectedDate]=\\\"getSelectedDate(inclusion)\\\"\\r\\n [bookingGuid]=\\\"booking?.BookingGuid\\\" [requiresUsageDate]=\\\"inclusion.RequiresUsageDate\\\" [operatingDays]=\\\"inclusion.FareTypes[0].OperatingDays\\\"\\r\\n [bookDaysPriorTo]=\\\"inclusion.FareTypes[0].BookDaysPriorTo\\\" [tourGuid]=\\\"inclusion.TourGuid\\\" [supplierName]=\\\"inclusion.SupplierName\\\"\\r\\n [supplierPhone]=\\\"inclusion.SupplierPhone\\\" (onParentBookingChanged)=\\\"onParentBookingChanged($event)\\\"\\r\\n [passengers]=\\\"inclusion.passengers\\\" [purchaseNum]=\\\"inclusion.PurchaseNumber\\\" [productType]=\\\"inclusion.productType\\\"\\r\\n [fareTypeCode]=\\\"inclusion.SelectedFareType\\\" [fareTypeCurrency]=\\\"inclusion.SelectedCurrency\\\" [fareTypeCurrencyAmount]=\\\"inclusion.SelectedCurrencyAmount\\\"\\r\\n [sendConfirmation]=\\\"booking?.SendConfirmation\\\" [showUsageDate]=\\\"inclusion.FareTypes[0].ShowUsageDate\\\"\\r\\n [context]=\\\"context\\\" [hidden]=\\\"!inclusion.visible\\\">\\r\\n </gaweb-inclusions>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"itinerary__sectors\\\" *ngIf=\\\"showTravelDates\\\">\\r\\n <div class=\\\"container-fluid wrapper\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-10\\\" [hidden]=\\\"!isPackage && !isPass\\\">\\r\\n <h4>Travel Dates</h4>\\r\\n </div>\\r\\n <div class=\\\"col-xs-2 travel-date__close\\\">\\r\\n <span class=\\\"pull-right\\\" (click)=\\\"addTravelCollapsed = true\\\" *ngIf=\\\"!addTravelCollapsed\\\">\\r\\n <i class=\\\"fa fa-fw fa-close\\\"></i>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\" *ngIf=\\\"isPackage\\\">\\r\\n <p>{{('PackageSectorText' | translate) | async }}</p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12\\\" *ngIf=\\\"isPass\\\">\\r\\n <p>{{('PassSectorText' | translate) | async }}</p>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-travel-dates [bookings]=\\\"bookings\\\" (onParentBookingChanged)=\\\"onParentBookingChanged($event)\\\" (showBookTravelSectionChange)=\\\"onshowBookTravelSectionChanged($event)\\\"\\r\\n [showBookTravelSection]=\\\"false\\\" (onDoLaterDateChanged)=\\\"onDoLaterDateChanged($event)\\\" [showShortTravelDatesDescription]=\\\"false\\\"\\r\\n [showTypeAhead]=\\\"showTypeAhead\\\" [productUrl]=\\\"productUrl\\\" [context]=\\\"context\\\" [addons]=\\\"addons\\\" [openAddons]=\\\"openAddons\\\">\\r\\n </gaweb-travel-dates>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <!-- <div class=\\\"row\\\" *ngIf=\\\"productType === ProductTypeUrl.expressBooking\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <gaweb-info title=\\\"Fare Type Information\\\" class=\\\"visible-xs\\\" style=\\\"display: inline-block!important;\\\">\\r\\n <p>\\r\\n <b>Early Bird</b> - {{('EarlyBirdDescription' | translate) | async }}\\r\\n </p>\\r\\n <p>\\r\\n <b>Advantage</b> - {{('AdvantageDescription' | translate) | async }}\\r\\n </p>\\r\\n <p>\\r\\n <b>Premium</b> - {{('PremiumDescription' | translate) | async }}\\r\\n </p>\\r\\n <p>\\r\\n <i>For bookings made prior to 17 September 2018 please refer to the <a target=\\\"_blank\\\" href=\\\"https://www.greyhound.com.au/terms-and-conditions/\\\">Terms and Conditions</a> for fare type information.</i>\\r\\n </p>\\r\\n </gaweb-info>\\r\\n </div>\\r\\n </div> -->\\r\\n </div>\\r\\n </div>\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/booking-management/itinerary/itinerary-wrapper.component.html\n// module id = ./src/app/my-greyhound/booking-management/itinerary/itinerary-wrapper.component.html\n// module chunks = common","import * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\n\r\n\r\nimport { DeviceService } from 'app/shared/services/device.service';\r\nimport { OnInit, OnChanges, SimpleChanges, EventEmitter, Output, Input, Component } from '@angular/core';\r\nimport { Booking, BookingManagementHeaders, Inclusion, Addon, AddonOption, Totals } from 'app/shared/models/booking.model';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { BookingService } from 'app/shared/services/booking.service';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { ITINERARY_CONTEXT } from 'app/shared/models/enums/context.enum';\r\nimport { Passenger } from 'app/shared/models/passenger.model';\r\nimport { ProductUrl } from 'app/shared/models/availability.model';\r\nimport { Router } from '@angular/router';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\n\r\n@Component({\r\n selector: 'gaweb-itinerary-wrapper',\r\n templateUrl: `./itinerary-wrapper.component.html`\r\n})\r\nexport class ItineraryWrapperComponent implements OnInit, OnChanges {\r\n @Output() onBookingUpdated: EventEmitter<any> = new EventEmitter();\r\n\r\n private _booking: Booking;\r\n @Input()\r\n set booking(b: Booking) {\r\n this._booking = b;\r\n this.bookings = [b];\r\n }\r\n get booking(): Booking {\r\n return this._booking;\r\n }\r\n bookings: Booking[];\r\n showItineraryDetails: boolean;\r\n bookingManagementHeaders: BookingManagementHeaders;\r\n onShowItineraryDetails: (expanded: boolean) => void;\r\n showExpiredPassWithNoTravelWarning: boolean;\r\n allInclusionsDatesSet: boolean;\r\n\r\n inclusions: Array<Inclusion>;\r\n isPackage = false;\r\n isPass = false;\r\n context = ITINERARY_CONTEXT.MY_GREYHOUND;\r\n showItinerarySection = false;\r\n showExperienceDates: boolean;\r\n showTravelDates: boolean;\r\n addTravelCollapsed: boolean;\r\n showTypeAhead: boolean;\r\n @Input() errorMessage: string;\r\n @Input() errors: any[];\r\n @Input() addons: Array<Addon>;\r\n @Input() openAddons: Array<Addon>;\r\n productUrl: ProductUrl;\r\n productType: ProductTypeUrl;\r\n ProductTypeUrl = ProductTypeUrl;\r\n passengers: Passenger[];\r\n @Output() showBookTravelSectionChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n constructor(private readonly bookingsService: BookingService,\r\n private readonly localStorageService: LocalStorageService,\r\n private deviceService: DeviceService,\r\n private router: Router,\r\n private initialDataService: InitialDataService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addTravelCollapsed = true;\r\n this.bookingManagementHeaders = this.localStorageService.getBookingManagementHeadersState();\r\n if (!!this.bookingManagementHeaders) {\r\n this.showItineraryDetails = this.bookingManagementHeaders.ItineraryExpanded;\r\n } else {\r\n this.showItineraryDetails = !this.deviceService.IsMobile();\r\n this.bookingManagementHeaders = new BookingManagementHeaders();\r\n }\r\n let firstRequest = true;\r\n this.onShowItineraryDetails = (expanded) => {\r\n if (firstRequest) {\r\n firstRequest = false;\r\n return;\r\n }\r\n this.showItineraryDetails = expanded;\r\n this.saveBookingManagementHeaders();\r\n };\r\n if (this.booking) {\r\n this.initialProcessing();\r\n }\r\n \r\n }\r\n\r\n private saveBookingManagementHeaders() {\r\n this.bookingManagementHeaders.ItineraryExpanded = this.showItineraryDetails;\r\n this.localStorageService.saveBookingManagementHeadersState(this.bookingManagementHeaders);\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n if (changesObj.booking) {\r\n if (changesObj.booking.isFirstChange()) { return; }\r\n const { currentValue } = changesObj.booking;\r\n this.booking = _.cloneDeep(currentValue);\r\n this.initialProcessing();\r\n }\r\n }\r\n\r\n private getPassengersByPurchaseNum(tourPurchaseNumber: string) {\r\n let passengers = [];\r\n this.booking.Passengers.forEach(p => {\r\n const purchaseNum = p['PurchaseNumber'];\r\n if (!!purchaseNum && Number(purchaseNum) === Number(tourPurchaseNumber)) {\r\n passengers = passengers.concat(p);\r\n }\r\n });\r\n\r\n if (passengers.length > 0) {\r\n return passengers;\r\n } else if (this.booking.Passengers.length > 0) {\r\n return [this.booking.Passengers[0]];\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n initialProcessing = () => {\r\n this.showExpiredPassWithNoTravelWarning = this.booking.Sectors.length === 0 &&\r\n moment(this.booking.PassExpiry, 'YYYY-MM-DDTh:mm:ss').isBefore(moment.utc());\r\n\r\n const useToursAsInclusions = this.booking.Tours.length > 0 && this.booking.Package.Inclusions.length === 0;\r\n const packageInclusions = _.sortBy(this.booking.Package.Inclusions, ['SortOrder']);\r\n packageInclusions.forEach((i: Inclusion & { productType: ProductTypeUrl } & { visible: boolean } & { passengers: Passenger[] }) => {\r\n i.productType = ProductTypeUrl.package;\r\n i.visible = !!i.FareTypes && !!i.FareTypes[0] && !!i.FareTypes[0].ShowUsageDate;\r\n i.passengers = this.getPassengersByPurchaseNum(i.PurchaseNumber);\r\n });\r\n const experienceTours = this.booking.Tours;\r\n experienceTours.forEach((i: Inclusion & { productType: ProductTypeUrl } & { visible: boolean } & { passengers: Passenger[] }) => {\r\n i.productType = ProductTypeUrl.experience;\r\n i.visible = !!i.FareTypes && !!i.FareTypes[0] && !!i.FareTypes[0].ShowUsageDate;\r\n i.passengers = this.getPassengersByPurchaseNum(i.PurchaseNumber);\r\n });\r\n this.inclusions = packageInclusions.concat(experienceTours);\r\n\r\n const someInclusionShowUsageDate = _.some(this.inclusions, i => !!i.FareTypes && !!i.FareTypes[0] && i.FareTypes[0].ShowUsageDate);\r\n this.showExperienceDates = someInclusionShowUsageDate;\r\n this.allInclusionsDatesSet = _.some(this.inclusions, i => this.getSelectedDate(i) == null);\r\n\r\n // get booking type\r\n this.isPackage = this.booking.Package && !!this.booking.Package.UniqueId;\r\n this.isPass = !this.isPackage && this.booking.ProductType === GxConstants.PRODUCT_TYPE.BUSPASS;\r\n const isExpressBooking = this.booking.ProductType === GxConstants.PRODUCT_TYPE.EXPRESS;\r\n const isTravelOnly = !someInclusionShowUsageDate && this.booking.Package.ShowTravel;\r\n\r\n\r\n if (this.isPackage) {\r\n this.productType = ProductTypeUrl.package;\r\n } else if (this.isPass) {\r\n this.productType = ProductTypeUrl.travelPasses;\r\n } else if (isExpressBooking) {\r\n this.productType = ProductTypeUrl.expressBooking;\r\n } else if (!!this.booking.Tours.length) {\r\n this.productType = ProductTypeUrl.experience;\r\n }\r\n this.productUrl = new ProductUrl(this.router.url, this.initialDataService, this.productType);\r\n this.productUrl.isManageBooking = true;\r\n /*\r\n product types:\r\n packages: showTypeAhead = this.booking.Package.LimitedStops\r\n experience: showTypeAhead = false? it's not displayed actually?\r\n accommodation: showTypeAhead = false? it's not displayed actually?\r\n travel-pass: showTypeAhead = true\r\n express-booking: showTypeAhead = false -> it's not displayed actually\r\n */\r\n this.showTypeAhead = (this.isPackage && !this.booking.Package.LimitedStops) || this.isPass;\r\n\r\n this.showTravelDates = this.booking.Sectors.length > 0 || this.booking.ShowAddTravelBtn;\r\n\r\n }\r\n\r\n onTravelUpdated = (booking) => {\r\n this.onBookingUpdated.emit({ booking: booking });\r\n }\r\n\r\n onSectorDeleted = (booking) => {\r\n this.onBookingUpdated.emit({ booking: booking });\r\n }\r\n\r\n onParentBookingChanged(booking: Array<any>) {\r\n }\r\n onshowBookTravelSectionChanged(value: boolean) {\r\n this.showBookTravelSectionChange.emit(value);\r\n }\r\n onDoLaterDateChanged(data) {\r\n\r\n }\r\n getSelectedDate(inclusion) {\r\n if (inclusion.SelectedDate === GxConstants.MIN_DATE) {\r\n return null;\r\n } else {\r\n return inclusion.SelectedDate;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/booking-management/itinerary/itinerary-wrapper.component.ts","module.exports = \"<section>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div class=\\\"passenger\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <gaweb-collapsing-header [title]=\\\"'PASSENGER DETAILS'\\\"\\r\\n (onHeaderClicked)=\\\"onShowPassengerDetails($event)\\\"\\r\\n [loadsExpanded]=\\\"showPassengerDetails\\\"\\r\\n [icon]=\\\"'fa-user'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div [hidden]=\\\"!showPassengerDetails\\\">\\r\\n <div class=\\\"c-header__body\\\" *ngIf=\\\"!!booking\\\">\\r\\n <div *ngFor=\\\"let pax of booking.Passengers; let i = index\\\">\\r\\n <div class=\\\"text-left\\\" *ngIf=\\\"i === 0\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-3\\\">\\r\\n <label>Name</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-9\\\">\\r\\n <label class=\\\"info-label\\\">{{pax.FirstName}} {{pax.Surname}}</label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-3\\\">\\r\\n <label>Phone</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-9\\\">\\r\\n <label class=\\\"info-label\\\">{{pax.Phone}}</label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-md-5 col-xs-3\\\">\\r\\n <label>Email</label>\\r\\n </div>\\r\\n <div class=\\\"col-md-7 col-xs-9\\\">\\r\\n <label class=\\\"passenger__email--ellipsis info-label email\\\">{{pax.Email}}</label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/booking-management/passenger-summary/passenger-summary.component.html\n// module id = ./src/app/my-greyhound/booking-management/passenger-summary/passenger-summary.component.html\n// module chunks = common","import { DeviceService } from 'app/shared/services/device.service';\r\nimport { BookingManagementHeaders, Booking } from 'app/shared/models/booking.model';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { Component, Input, OnInit, OnChanges, SimpleChanges } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'gaweb-passenger-summary',\r\n templateUrl: `./passenger-summary.component.html`\r\n})\r\nexport class PassengerSummaryComponent implements OnInit, OnChanges {\r\n @Input() booking: Booking;\r\n showPassengerDetails: boolean;\r\n bookingManagementHeaders: BookingManagementHeaders;\r\n firstRequest = true;\r\n constructor(\r\n private localStorageService: LocalStorageService,\r\n private deviceService: DeviceService) { }\r\n\r\n ngOnInit(): void {\r\n this.bookingManagementHeaders = this.localStorageService.getBookingManagementHeadersState();\r\n if (!!this.bookingManagementHeaders) {\r\n this.showPassengerDetails = this.bookingManagementHeaders.PassengerDetailsExpanded;\r\n } else {\r\n this.showPassengerDetails = !this.deviceService.IsMobile();\r\n this.bookingManagementHeaders = new BookingManagementHeaders();\r\n }\r\n }\r\n onShowPassengerDetails = (expanded: boolean) => {\r\n if (this.firstRequest) {\r\n this.firstRequest = false;\r\n return;\r\n }\r\n this.showPassengerDetails = expanded;\r\n this.saveBookingManagementHeaders();\r\n }\r\n private saveBookingManagementHeaders() {\r\n this.bookingManagementHeaders.PassengerDetailsExpanded = this.showPassengerDetails;\r\n this.localStorageService.saveBookingManagementHeadersState(this.bookingManagementHeaders);\r\n }\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n if (changesObj.booking) {\r\n if (changesObj.booking.isFirstChange()) { return; }\r\n const { currentValue } = changesObj.booking;\r\n this.booking = _.cloneDeep(currentValue);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/booking-management/passenger-summary/passenger-summary.component.ts","module.exports = \"<section class=\\\"add-a-booking\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12 \\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'Add a Booking'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\"\\r\\n [loadsExpanded]=\\\"!!showDetails\\\" [icon]=\\\"'fa-plus'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <div class=\\\"c-header__body col-xs-12\\\" *ngIf=\\\"showDetails\\\">\\r\\n <div>\\r\\n <form novalidate autocomplete=\\\"off\\\" (ngSubmit)=\\\"save()\\\" [formGroup]=\\\"bookingForm\\\">\\r\\n <div style=\\\"padding-bottom: 10px;\\\">Enter your booking number to link the booking to\\r\\n your My Greyhound account.</div>\\r\\n <div class=\\\"container-bleed\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding: 10px;\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-9 form-group\\\">\\r\\n <input class=\\\"form-control\\\" formControlName=\\\"bookingNumber\\\" id=\\\"bookingNumber\\\"\\r\\n name=\\\"bookingNumber\\\" placeholder=\\\"Booking Number\\\" autocomplete=\\\"bookingNumber\\\"\\r\\n type=\\\"number\\\"\\r\\n oninput=\\\"this.value=this.value.slice(0,this.maxLength)\\\"\\r\\n maxlength=\\\"8\\\" required />\\r\\n </div>\\r\\n <!-- <div class=\\\"col-xs-4 col-sm-3 form-group\\\">\\r\\n <input class=\\\"form-control\\\" formControlName=\\\"bookingPin\\\" id=\\\"pin\\\" name=\\\"pin\\\"\\r\\n placeholder=\\\"PIN\\\" autocomplete=\\\"bookingPin\\\" type=\\\"password\\\" required />\\r\\n </div> -->\\r\\n <div class=\\\"col-xs-12 col-sm-3 form-group\\\">\\r\\n <button class=\\\"btn btn-block btn-cta\\\" type=\\\"submit\\\"\\r\\n [disabled]=\\\"!bookingForm.valid || addingBooking\\\">\\r\\n <span *ngIf=\\\"!addingBooking\\\">SUBMIT</span><i *ngIf=\\\"addingBooking\\\"\\r\\n class=\\\"fa fa-refresh fa-spin\\\"></i>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n <div class=\\\"container-bleed\\\">\\r\\n <div class=\\\"col-xs-12\\\" *ngIf=\\\"addError\\\" style=\\\"color: darkred; padding-bottom: 10px; margin-left: 10px;\\\">\\r\\n {{errorMessage}}\\r\\n </div>\\r\\n </div>\\r\\n <div style=\\\"display: inline-block; margin-top: 10px;\\\">\\r\\n <gaweb-info title=\\\"Having trouble?\\\" collapsed=\\\"false\\\">\\r\\n <p>\\r\\n You can locate your booking number through your booking confirmation email.\\r\\n If you are having trouble locating this please call our friendly customer service team on\\r\\n <a href=\\\"tel:1300473946\\\" target=\\\"_parent\\\">1300 473 946</a>.\\r\\n </p>\\r\\n </gaweb-info>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/dashboard/add-a-booking/add-a-booking.component.html\n// module id = ./src/app/my-greyhound/dashboard/add-a-booking/add-a-booking.component.html\n// module chunks = common","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, ValidationErrors, Validators } from '@angular/forms';\r\nimport { ActionUpdaterService, ApiError } from '../../../shared/services/action-updater.service';\r\nimport { MyGreyhoundService, AddBookingOptionsV3 } from '../../my-greyhound.service';\r\nimport { InitialDataService, Title, Country } from '../../../initial-data.service';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\n\r\nexport function validateBookingNumber(c: FormControl): ValidationErrors {\r\n const bookingNumber = c.value;\r\n\r\n if (bookingNumber === null || bookingNumber === '') {\r\n return {\r\n 'Booking Number' : 'Booking number is required.'\r\n }\r\n } else {\r\n if (isNaN(bookingNumber) || bookingNumber.toString().length < 8){\r\n return {\r\n 'Booking Number' : 'The booking number you have provided is invalid, please try again'\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'gaweb-add-a-booking',\r\n templateUrl: './add-a-booking.component.html',\r\n styles: [`\r\n .add-a-booking {\r\n\r\n margin-bottom: 25px;\r\n\r\n &__intro-text {\r\n margin-bottom: 15px;\r\n }\r\n\r\n &__footer-text {\r\n font-size: 12px;\r\n margin-bottom: 15px;\r\n }\r\n }\r\n ` ]\r\n})\r\nexport class AddABookingComponent implements OnInit {\r\n\r\n @Output() onAddingBooking: EventEmitter<any> = new EventEmitter();\r\n\r\n showDetails: boolean;\r\n bookingForm: FormGroup;\r\n bookingNumber: string;\r\n // bookingPin: string;\r\n addingBooking = false;\r\n addError = false;\r\n errorMessage = '';\r\n\r\n constructor(private initialData: InitialDataService,\r\n private fb: FormBuilder,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private deviceService: DeviceService) { }\r\n\r\n ngOnInit() {\r\n this.bookingForm = this.fb.group({\r\n bookingNumber: ['', [Validators.required, Validators.minLength(8), validateBookingNumber]]\r\n });\r\n\r\n const isAddBookingSelected = this.myGreyhoundService.isDashboardItemSelected('addBooking', !this.deviceService.IsMobile());\r\n this.showDetails = (!this.deviceService.IsMobile() && isAddBookingSelected) || isAddBookingSelected;\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n this.myGreyhoundService.setDashboardItem('addBooking', this.showDetails);\r\n }\r\n\r\n save() {\r\n this.addError = false;\r\n this.addingBooking = true;\r\n const bookingNumber: string = this.bookingForm.get('bookingNumber').value;\r\n\r\n const onError = (error: ApiError) => {\r\n this.addingBooking = false;\r\n this.addError = true;\r\n console.log(error);\r\n this.errorMessage = error.details[0];\r\n }\r\n\r\n let options = new AddBookingOptionsV3(this.initialData.userData.CustomerGuid, bookingNumber, '1');\r\n\r\n this.myGreyhoundService\r\n .addBookingV3(options)\r\n .subscribe((response) => {\r\n this.actionUpdaterService.announceSuccess('Booking successfully added to your account.');\r\n this.showDetails = false;\r\n this.bookingForm.reset();\r\n this.addingBooking = false;\r\n this.onAddingBooking.emit();\r\n }, onError);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/add-a-booking/add-a-booking.component.ts","module.exports = \"<div class=\\\"container-bleed\\\" id=\\\"head\\\">\\r\\n\\r\\n <div class=\\\"row dashboard__header\\\">\\r\\n <div class=\\\"col-xs-6 col-sm-7\\\" style=\\\"min-width: 215px;\\\">\\r\\n <h1>{{title}}</h1>\\r\\n <p *ngIf=\\\"isAuthenticated\\\">\\r\\n <strong>Welcome back, {{salutation}}</strong>\\r\\n </p>\\r\\n <small>Not {{salutation}}? <a href=\\\"/umbraco/Surface/Account/Logout\\\" target=\\\"_self\\\">Log out</a></small>\\r\\n </div>\\r\\n <!-- <div class=\\\"dashboard__my-account-button pull-right\\\" style=\\\"margin-right: 10px; margin-left: 10px; margin-top: 20px;\\\">\\r\\n\\r\\n <a target=\\\"_parent\\\" href=\\\"/my-greyhound/profile\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"Manage your Account Profile\\\">\\r\\n <i class=\\\"fa fa-cog fa-2x\\\"></i>\\r\\n </a>\\r\\n </div>\\r\\n <div class=\\\"dashboard__my-account-button pull-right\\\">\\r\\n <div class=\\\"btn btn-cta-secondary btn-block hidden-xxs\\\" (click)=\\\"showLinkModal()\\\">\\r\\n <span>LINK BOOKING</span>\\r\\n </div>\\r\\n <a class=\\\"visible-xxs\\\" style=\\\"cursor: pointer; margin-top: 5px;\\\" (click)=\\\"showLinkModal()\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" title=\\\"Link a booking\\\">\\r\\n <i class=\\\"fa fa-link fa-2x\\\"></i>\\r\\n </a>\\r\\n </div> -->\\r\\n\\r\\n </div>\\r\\n <div class=\\\"container\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-8 col-md-offset-2\\\" [innerHtml]=\\\"content\\\"></div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"container\\\">\\r\\n <div *ngFor=\\\"let alert of alerts\\\" class=\\\"col-xs-12 col-md-8 col-md-offset-2 success-alert\\\">\\r\\n <alert [type]=\\\"alert.type\\\" [dismissOnTimeout]=\\\"alert.timeout\\\">\\r\\n {{ alert.msg }}\\r\\n </alert>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-- Main Body of Component -->\\r\\n\\r\\n <section class=\\\"dashboard\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <gaweb-error-summary class=\\\"col-xs-12\\\"></gaweb-error-summary>\\r\\n </div>\\r\\n\\r\\n <!-- TODO WORK OUT HOW TO REFRESH TRIP HISTORY -->\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-6 col-md-5\\\" *ngIf=\\\"isMobile()\\\">\\r\\n <gaweb-loyalty-balance></gaweb-loyalty-balance>\\r\\n\\r\\n <!-- <gaweb-travel-tracker></gaweb-travel-tracker> -->\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-6 col-md-7\\\">\\r\\n <gaweb-my-bookings></gaweb-my-bookings>\\r\\n <gaweb-add-a-booking (onAddingBooking)=\\\"onAddingBooking()\\\"></gaweb-add-a-booking><div *ngIf=\\\"isMobile()\\\" class=\\\"col-xs-12\\\" style=\\\"margin-bottom: 10px;\\\">\\r\\n <div class=\\\"btn btn-cta-secondary btn-block\\\" (click)=\\\"viewAccountProfile()\\\">\\r\\n <span>VIEW MY ACCOUNT PROFILE</span>\\r\\n </div>\\r\\n <!-- <div class=\\\"btn btn-cta-secondary btn-block\\\" (click)=\\\"showLinkModal()\\\">\\r\\n <span>LINK A BOOKING</span>\\r\\n </div> -->\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-6 col-md-5\\\" *ngIf=\\\"!isMobile()\\\">\\r\\n <gaweb-loyalty-balance></gaweb-loyalty-balance>\\r\\n <div class=\\\"col-xs-12\\\" style=\\\"margin-bottom: 10px;\\\">\\r\\n <div class=\\\"btn btn-cta-secondary btn-block\\\" (click)=\\\"viewAccountProfile()\\\">\\r\\n <span>VIEW MY ACCOUNT PROFILE</span>\\r\\n </div>\\r\\n <!-- <div class=\\\"btn btn-cta-secondary btn-block\\\" (click)=\\\"showLinkModal()\\\">\\r\\n <span>LINK A BOOKING</span>\\r\\n </div> -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </section>\\r\\n\\r\\n <div class=\\\"container\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-8 col-md-offset-2\\\" [innerHtml]=\\\"contentFooter\\\">\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n<div bsModal #TCModal=\\\"bs-modal\\\" [config]=\\\"config\\\" class=\\\"modal light fade\\\" role=\\\"dialog\\\" tabindex=\\\"-1\\\">\\r\\n <div class=\\\"modal-backdrop\\\" (click)=\\\"hideModal()\\\"></div>\\r\\n <div class=\\\"modal-dialog\\\" style=\\\"position: inherit\\\">\\r\\n <div class=\\\"modal-content\\\">\\r\\n <div class=\\\"modal-header\\\">\\r\\n Link a Booking\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div>\\r\\n <form novalidate autocomplete=\\\"off\\\" (ngSubmit)=\\\"save()\\\" [formGroup]=\\\"bookingForm\\\">\\r\\n <div style=\\\"padding-bottom: 10px;\\\">Enter your booking number to link the booking to\\r\\n your My Greyhound account.</div>\\r\\n <div class=\\\"container-bleed\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-9 form-group\\\">\\r\\n <input class=\\\"form-control\\\" formControlName=\\\"bookingNumber\\\" id=\\\"bookingNumber\\\" name=\\\"bookingNumber\\\"\\r\\n placeholder=\\\"Booking Number\\\" autocomplete=\\\"bookingNumber\\\" type=\\\"number\\\"\\r\\n oninput=\\\"this.value=this.value.slice(0,this.maxLength)\\\"\\r\\n maxlength=\\\"8\\\" required />\\r\\n </div>\\r\\n <!-- <div class=\\\"col-xs-4 col-sm-3 form-group\\\">\\r\\n <input class=\\\"form-control\\\" formControlName=\\\"bookingPin\\\" id=\\\"pin\\\" name=\\\"pin\\\"\\r\\n placeholder=\\\"PIN\\\" autocomplete=\\\"bookingPin\\\" type=\\\"password\\\" required />\\r\\n </div> -->\\r\\n <div class=\\\"col-xs-12 col-sm-3 form-group\\\">\\r\\n <button class=\\\"btn btn-block btn-cta\\\" type=\\\"submit\\\" [disabled]=\\\"!bookingForm.valid || addingBooking\\\">\\r\\n <span *ngIf=\\\"!addingBooking\\\">SUBMIT</span><i *ngIf=\\\"addingBooking\\\" class=\\\"fa fa-refresh fa-spin\\\"></i>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n <div class=\\\"container-bleed\\\">\\r\\n <div class=\\\"col-xs-12\\\" *ngIf=\\\"modalError\\\" style=\\\"color: darkred; padding-bottom: 10px; margin-left: 10px;\\\">\\r\\n {{errorMessage}}\\r\\n </div>\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div class=\\\"btn btn-cta-secondary btn-block\\\" (click)=\\\"hideModal()\\\">\\r\\n <span>Cancel</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div style=\\\"display: inline-block; margin-top: 10px;\\\">\\r\\n <gaweb-info title=\\\"Having trouble?\\\" collapsed=\\\"false\\\">\\r\\n <p>\\r\\n You can locate your booking number through your booking confirmation email.\\r\\n If you are having trouble locating this please call our friendly customer service team on\\r\\n <a href=\\\"phone:1300473946\\\">1300 473 946</a>.\\r\\n </p>\\r\\n </gaweb-info>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/dashboard/dashboard.component.html\n// module id = ./src/app/my-greyhound/dashboard/dashboard.component.html\n// module chunks = common","import { Component, OnInit, ViewChild, Output, EventEmitter } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\n\r\nimport { ActionUpdaterService, ApiError } from \"../../shared/services/action-updater.service\";\r\nimport { InitialDataService } from \"../../initial-data.service\";\r\nimport { GenericContentPage } from \"../../shared/resolver/generic-content-page.model\";\r\n\r\nimport { MyBookingsComponent } from './my-bookings/my-bookings.component';\r\n\r\nimport { DeviceService } from '../../shared/services/device.service';\r\nimport { MyGreyhoundService, AddBookingOptionsV3 } from \"../my-greyhound.service\";\r\nimport { FeatureService, Feature } from \"../../shared/services/feature.service\";\r\nimport * as moment from 'moment';\r\nimport { EventBusService } from \"../../shared/services/event-bus.service\";\r\n\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ModalPopupMainPageEvent } from 'app/shared/models/app-events-types.model';\r\nimport { ModalPopupMainPageEventWrapper } from 'app/shared/models/app-events.model';\r\nimport { LocalStorageService } from \"../../shared/services/local-storage.service\";\r\nimport { FormGroup, FormBuilder, FormControl, ValidationErrors, Validators } from \"@angular/forms\";\r\nimport { LoyaltyBalanceComponent } from \"./loyalty-balance/loyalty-balance.component\";\r\n\r\nexport function validateBookingNumber(c: FormControl): ValidationErrors {\r\n const bookingNumber = c.value;\r\n\r\n if (bookingNumber === null || bookingNumber === '') {\r\n return {\r\n 'Booking Number' : 'Booking number is required.'\r\n }\r\n } else {\r\n if (isNaN(bookingNumber) || bookingNumber.toString().length < 8){\r\n return {\r\n 'Booking Number' : 'The booking number you have provided is invalid, please try again'\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'gaweb-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n @ViewChild(MyBookingsComponent) myBookingsComponent: MyBookingsComponent;\r\n @ViewChild(LoyaltyBalanceComponent) loyaltyBalanceComponent: LoyaltyBalanceComponent;\r\n @ViewChild('TCModal') public TCModal: ModalDirective;\r\n\r\n title: string;\r\n content: string;\r\n contentFooter: string;\r\n alerts: Array<any> = [];\r\n\r\n isAuthenticated: boolean;\r\n salutation: string;\r\n\r\n bookingForm: FormGroup;\r\n bookingNumber: string;\r\n // bookingPin: string;\r\n addingBooking = false;\r\n modalError = false;\r\n errorMessage = '';\r\n\r\n public config = {\r\n animated: true,\r\n keyboard: true,\r\n backdrop: false,\r\n ignoreBackdropClick: false\r\n };\r\n\r\n constructor(\r\n private initialDataService: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private activatedRoute: ActivatedRoute,\r\n private deviceService: DeviceService,\r\n private featureService: FeatureService,\r\n private fb: FormBuilder,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private eventBusService: EventBusService,\r\n private localStorageService: LocalStorageService\r\n ) {\r\n this.actionUpdaterService.success$.subscribe(message => {\r\n this.alerts.push({\r\n type: 'success',\r\n timeout: '5000',\r\n msg: message\r\n });\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n const genericData: GenericContentPage = this.activatedRoute.snapshot\r\n .data['content'];\r\n this.title = genericData.title;\r\n this.content = genericData.content;\r\n this.contentFooter = genericData.contentFooter;\r\n this.isAuthenticated = !!this.initialDataService.userData;\r\n if (this.isAuthenticated) {\r\n this.salutation = this.initialDataService.userData.Salutation;\r\n }\r\n\r\n // if (!this.isAuthenticated) {\r\n // $('#head').html('<div class=\"row\" style=\"text-align: center;\"><h1>Redirecting to Login...</h1><i class=\"fa fa-spinner fa-pulse fa-5x\"></i><span class=\"sr-only\">Loading...</span></div>')\r\n // window.location.href = '/my-greyhound/login';\r\n // }\r\n\r\n this.bookingForm = this.fb.group({\r\n bookingNumber: ['', [Validators.required, Validators.minLength(8), validateBookingNumber]]\r\n });\r\n\r\n\r\n }\r\n\r\n onAddingBooking() {\r\n this.myBookingsComponent.initialProcessing();\r\n this.loyaltyBalanceComponent.getLoyaltyBalance();\r\n }\r\n\r\n isMobile() {\r\n return this.deviceService.IsMobile();\r\n }\r\n\r\n isTablet() {\r\n return this.deviceService.IsTablet();\r\n }\r\n\r\n viewAccountProfile() {\r\n window.location.href = '/my-greyhound/profile';\r\n }\r\n\r\n showLinkModal() {\r\n this.clearLinkModal();\r\n this.TCModal.show();\r\n const ev = new ModalPopupMainPageEvent(true);\r\n this.eventBusService.emit(new ModalPopupMainPageEventWrapper(ev));\r\n }\r\n\r\n hideModal() {\r\n this.TCModal.hide();\r\n const ev = new ModalPopupMainPageEvent(false);\r\n this.eventBusService.emit(new ModalPopupMainPageEventWrapper(ev));\r\n }\r\n\r\n clearLinkModal() {\r\n this.bookingForm.reset();\r\n this.modalError = false;\r\n this.errorMessage = '';\r\n }\r\n\r\n save() {\r\n this.addingBooking = true;\r\n this.modalError = false;\r\n const bookingNumber: string = this.bookingForm.get('bookingNumber').value;\r\n\r\n const onError = (error: ApiError) => {\r\n this.modalError = true;\r\n this.addingBooking = false;\r\n this.errorMessage = error.details[0];\r\n }\r\n\r\n const options = new AddBookingOptionsV3(this.initialDataService.userData.CustomerGuid, bookingNumber, '1');\r\n\r\n this.myGreyhoundService\r\n .addBookingV3(options)\r\n .subscribe((response) => {\r\n this.actionUpdaterService.announceSuccess('Booking successfully added to your account.');\r\n this.bookingForm.reset();\r\n this.onAddingBooking();\r\n this.addingBooking = false;\r\n this.hideModal();\r\n }, onError);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/dashboard.component.ts","module.exports = \"<section class=\\\"loyalty-balance\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"updatedTC ? 'G-WALLET' : 'GREYHOUND REWARDS'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\"\\r\\n [loadsExpanded]=\\\"!!showDetails\\\" [icon]=\\\"updatedTC ? 'fa-folder-open' : 'fa-bus'\\\" [headerClass]=\\\"'gdollar-symbol'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <div class=\\\"c-header__body col-xs-12\\\" *ngIf=\\\"showDetails\\\">\\r\\n <div *ngIf=\\\"updatedTC\\\">\\r\\n <div class=\\\"row\\\" *ngIf=\\\"loadingData && showDetails\\\">\\r\\n <div class=\\\"col-xs-12 text-center loyalty-detail__spinner\\\">\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-3x fa-fw\\\"></i>\\r\\n <h4>Retrieving rewards balance...</h4>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!loadingData && showDetails\\\">\\r\\n <p>Your current <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnit' | translate) | async }}</span>\\r\\n Balance </p>\\r\\n <div>\\r\\n <table class=\\\"table table-striped\\\">\\r\\n <tbody>\\r\\n <tr>\\r\\n <td>\\r\\n <span class=\\\"gdollar-symbol\\\">G</span> Available Now\\r\\n </td>\\r\\n <td class=\\\"text-right\\\">\\r\\n ${{loyaltyAvailable | number:'1.2-2'}}\\r\\n </td>\\r\\n </tr>\\r\\n <tr>\\r\\n <td>\\r\\n <span class=\\\"gdollar-symbol\\\">G</span> Pending*\\r\\n </td>\\r\\n <td class=\\\"text-right\\\">\\r\\n ${{loyaltyPending | number:'1.2-2'}}\\r\\n </td>\\r\\n </tr>\\r\\n <tr>\\r\\n <td style=\\\"font-weight: 700\\\">\\r\\n Total\\r\\n </td>\\r\\n <td style=\\\"font-weight: 700\\\" class=\\\"text-right\\\">\\r\\n ${{totalLoyalty | number:'1.2-2'}}\\r\\n </td>\\r\\n </tr>\\r\\n <tr *ngIf=\\\"loyaltyExpiring > 0\\\" style=\\\"color: darkred;\\\">\\r\\n <td>\\r\\n <span class=\\\"gdollar-symbol\\\">G</span> Expiring on {{loyaltyExpiringDate |\\r\\n gxDate: 'date'}}\\r\\n </td>\\r\\n <td class=\\\"text-right\\\">\\r\\n ${{loyaltyExpiring | number:'1.2-2'}}\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n </table>\\r\\n <a *ngIf=\\\"transactionHistoryEnabled\\\" (click)=\\\"showModal()\\\" class=\\\"text-right col-xs-12\\\"\\r\\n style=\\\"cursor: pointer; padding-bottom: 10px;\\\">View\\r\\n your\\r\\n transaction history</a>\\r\\n <small>\\r\\n '<span class=\\\"gdollar-symbol\\\">G</span> Pending' is travel purchased that has not yet\\r\\n been completed.\\r\\n Once you have completed this travel the '<span class=\\\"gdollar-symbol\\\">G</span> Pending'\\r\\n will become '<span class=\\\"gdollar-symbol\\\">G</span> Available' within 24 hours.\\r\\n For further details about our Rewards program see our <a href=\\\"/terms-and-conditions\\\"\\r\\n target=\\\"_blank\\\">Terms &\\r\\n Conditions</a>.\\r\\n <!-- {{('PendingBalanceFootnote' | translate) | async }} -->\\r\\n </small>\\r\\n <hr *ngIf=\\\"seatingPreferenceEnabled\\\">\\r\\n <div *ngIf=\\\"seatingPreferenceEnabled\\\">\\r\\n <collapsible-list [type]=\\\"'expandable'\\\">\\r\\n <collapsible-list-item>\\r\\n <collapsible-header class=\\\"waves-effect\\\" (click)=\\\"collapsed = !collapsed\\\">\\r\\n Seat Preference: <b>Aisle</b>\\r\\n <i class=\\\"fa\\\" [ngClass]=\\\"{ 'fa-chevron-down' : !collapsed, 'fa-chevron-right' : collapsed }\\\"\\r\\n style=\\\"float: right; margin-left: 5px; margin-top: 7px;\\\"></i>\\r\\n </collapsible-header>\\r\\n <collapsible-body [expanded]=\\\"false\\\" [style.marginTop.px]=\\\"collapsed ? 0 : -15\\\">\\r\\n <div>You can set your seat preference so that whenever you make a travel\\r\\n booking, we'll try and seat you in your preferred seat type.*</div>\\r\\n <div class=\\\"col-sm-12 form-group\\\">\\r\\n <select class=\\\"form-control col-sm-8 col-xs-6\\\" style=\\\"max-width: 196px; margin: 10px 10px 10px -10px;\\\">\\r\\n <option>No preference</option>\\r\\n <option>Aisle seat</option>\\r\\n <option>Window seat</option>\\r\\n </select>\\r\\n <button class=\\\"btn btn-cta col-sm-4 col-xs-6\\\" style=\\\"margin: 10px 0px 0px 0px;\\\"><span>Update</span></button>\\r\\n </div>\\r\\n <small>*Availability for your preferred seat is dependent on availability.</small>\\r\\n </collapsible-body>\\r\\n </collapsible-list-item>\\r\\n </collapsible-list>\\r\\n </div>\\r\\n <!-- <div style=\\\"cursor: pointer;\\\">\\r\\n Seat Preference: <b>Aisle</b>\\r\\n <i style=\\\"margin-top: -6px; margin-right: 10px;\\\" class=\\\"pull-right fa fa-2x fa-caret-right\\\"></i>\\r\\n </div> -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!updatedTC\\\">\\r\\n <div class=\\\"text-center\\\">\\r\\n <p>At Greyhound Australia we value loyalty. As such we have just made our Rewards program even\\r\\n better.\\r\\n </p>\\r\\n <p>\\r\\n As part of the Greyhound Rewards program you can take advantage of:\\r\\n </p>\\r\\n <ul class=\\\"text-left\\\">\\r\\n <li>Earning <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate) | async }}</span>\\r\\n on every Express ticket purchase.</li>\\r\\n <li>Travelling anywhere on Australia's largest coach network.</li>\\r\\n <li>Save your earned <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate) |\\r\\n async }}</span> to spend on that special trip, or just save money on your next\\r\\n one!</li>\\r\\n <li>Keep track of your <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate)\\r\\n | async }}</span> in your <span class=\\\"gdollar-symbol\\\">G-WALLET</span>.</li>\\r\\n </ul>\\r\\n <p>\\r\\n To start accessing your Greyhound Rewards account you must first accept our updated\\r\\n <a href=\\\"/terms-and-conditions\\\" target=\\\"_blank\\\">Terms &\\r\\n Conditions</a>.\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <button class=\\\"btn\\\" style=\\\"min-width: 100px;\\\" (click)=\\\"AcceptNewTC()\\\" [ngClass]=\\\"{ 'disabled' : updatingTC , 'btn-cta' : !updatingTC }\\\">\\r\\n <span [hidden]=\\\"updatingTC\\\">Accept</span>\\r\\n <i class=\\\"fa fa-refresh fa-spin\\\" *ngIf=\\\"updatingTC\\\"></i>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\\r\\n<div bsModal #childModal=\\\"bs-modal\\\" [config]=\\\"config\\\" class=\\\"modal light fade\\\" role=\\\"dialog\\\" tabindex=\\\"-1\\\">\\r\\n <div class=\\\"modal-backdrop\\\" (click)=\\\"hideModal()\\\"></div>\\r\\n <div class=\\\"modal-dialog\\\" style=\\\"position: inherit\\\">\\r\\n <div class=\\\"modal-content\\\">\\r\\n <div class=\\\"modal-header\\\">\\r\\n Transaction History\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div class=\\\"row\\\" *ngIf=\\\"loadingTransactions\\\">\\r\\n <div class=\\\"col-xs-12 text-center loyalty-detail__spinner\\\">\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-3x fa-fw\\\"></i>\\r\\n <h4>Retrieving transactions...</h4>\\r\\n </div>\\r\\n </div>\\r\\n <table *ngIf=\\\"!loadingTransactions\\\" class=\\\"table table-striped\\\">\\r\\n <thead style=\\\"font-weight: 700\\\">\\r\\n <td>Booking Number</td>\\r\\n <td>Transaction Date</td>\\r\\n <td>Usage Date</td>\\r\\n <td>Product ID</td>\\r\\n <td>Original Cost</td>\\r\\n <td>Rewards Earned</td>\\r\\n <td>Running Balance</td>\\r\\n <td>Credit Used </td>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let transaction of customerTransactions\\\">\\r\\n <td>{{transaction.BookingNumber}}</td>\\r\\n <td>{{transaction.TransactionDate}}</td>\\r\\n <td>{{transaction.UsageDate}}</td>\\r\\n <td>{{transaction.ProductId}}</td>\\r\\n <td>{{transaction.OriginalCost}}</td>\\r\\n <td>{{transaction.Amount}}</td>\\r\\n <td>{{transaction.RunningBalance}}</td>\\r\\n <td>{{transaction.CreditsUsed}}</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/dashboard/loyalty-balance/loyalty-balance.component.html\n// module id = ./src/app/my-greyhound/dashboard/loyalty-balance/loyalty-balance.component.html\n// module chunks = common","import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { ActionUpdaterService, ApiError } from '../../../shared/services/action-updater.service';\r\nimport { MyGreyhoundService, LoyaltyTrip, LoyaltyTripsResponse } from '../../my-greyhound.service';\r\nimport { InitialDataService, Title, Country } from '../../../initial-data.service';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\nimport * as moment from 'moment';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ModalPopupMainPageEvent } from 'app/shared/models/app-events-types.model';\r\nimport { ModalPopupMainPageEventWrapper } from 'app/shared/models/app-events.model';\r\nimport { EventBusService } from '../../../shared/services/event-bus.service';\r\nimport { LocalStorageService } from '../../../shared/services/local-storage.service';\r\nimport { FeatureService, Feature } from '../../../shared/services/feature.service';\r\n\r\n@Component({\r\n selector: 'gaweb-loyalty-balance',\r\n templateUrl: 'loyalty-balance.component.html'\r\n})\r\nexport class LoyaltyBalanceComponent implements OnInit {\r\n\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n \r\n showDetails;\r\n public loyaltyAvailable = 0;\r\n public loyaltyPending = 0;\r\n public loyaltyExpiring = 0;\r\n public loyaltyExpiringDate: Date;\r\n public totalLoyalty = 0;\r\n public balanceTime: Date;\r\n public loadingData = true;\r\n public loadingTransactions = true;\r\n public updatedTC = false;\r\n public transactionHistoryEnabled = false;\r\n public seatingPreferenceEnabled = false;\r\n\r\n customerTransactions = new Array<any>();\r\n\r\n public config = {\r\n animated: true,\r\n keyboard: true,\r\n backdrop: false,\r\n ignoreBackdropClick: false\r\n };\r\n public updatingTC = false;\r\n\r\n constructor(private initialData: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private deviceService: DeviceService,\r\n private eventBusService: EventBusService,\r\n private localStorageService: LocalStorageService,\r\n private initialDataService: InitialDataService,\r\n private featureService: FeatureService) { }\r\n\r\n ngOnInit() {\r\n const customerGuid = !!this.initialData.userData ? this.initialData.userData.CustomerGuid : null;\r\n\r\n if (customerGuid == null) {\r\n window.location.href = '/my-greyhound/login';\r\n } else {\r\n this.getLoyaltyBalance();\r\n }\r\n\r\n const isLoyaltyBalanceSelected = this.myGreyhoundService.isDashboardItemSelected('loyaltyBalance', !this.deviceService.IsMobile());\r\n this.showDetails = (!this.deviceService.IsMobile()); // && isLoyaltyBalanceSelected) || isLoyaltyBalanceSelected;\r\n\r\n\r\n this.transactionHistoryEnabled = this.featureService.GetFeatureStatus(Feature.ShowTransactionHistory);\r\n this.seatingPreferenceEnabled = this.featureService.GetFeatureStatus(Feature.ShowSeatPreferenceSelection);\r\n\r\n console.log('LastTCUpdate', moment(this.featureService.GetFeatureValue(Feature.LastTCUpdate)));\r\n console.log('TCAcceptDate', moment(this.initialDataService.userData.TCAcceptDate));\r\n console.log('userData', this.initialDataService.userData);\r\n if (this.initialDataService.userData.TCAcceptDate == null || moment(this.featureService.GetFeatureValue(Feature.LastTCUpdate)).isAfter(moment(this.initialDataService.userData.TCAcceptDate)) && this.localStorageService.getIfTCUpdated(customerGuid) === 'false') {\r\n this.updatedTC = false;\r\n } else {\r\n this.updatedTC = true;\r\n }\r\n }\r\n\r\n getLoyaltyBalance() {\r\n const customerGuid = !!this.initialData.userData ? this.initialData.userData.CustomerGuid : null;\r\n this.myGreyhoundService.getLoyaltyBalance(customerGuid).subscribe((response) => {\r\n this.loyaltyAvailable = response.LoyaltyAvailable;\r\n this.loyaltyPending = response.LoyaltyPending;\r\n this.loyaltyExpiring = response.ExpiringAmount;\r\n this.loyaltyExpiringDate = response.ExpiringDate;\r\n this.balanceTime = response.BalanceDate;\r\n this.totalLoyalty = this.loyaltyAvailable + this.loyaltyPending;\r\n this.loadingData = false;\r\n }, this.onError);\r\n }\r\n\r\n onError = (error: ApiError) => {\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n\r\n showModal() {\r\n this.childModal.show();\r\n const ev = new ModalPopupMainPageEvent(true);\r\n this.eventBusService.emit(new ModalPopupMainPageEventWrapper(ev));\r\n this.loadingTransactions = true;\r\n const customerGuid = !!this.initialData.userData ? this.initialData.userData.CustomerGuid : null;\r\n this.myGreyhoundService.getCustomerTransactions(customerGuid).subscribe((response) => {\r\n console.log('customerTransactions: ', response);\r\n this.customerTransactions = response.reverse();\r\n this.loadingTransactions = false;\r\n }, this.onError);\r\n }\r\n hideModal() {\r\n this.childModal.hide();\r\n const ev = new ModalPopupMainPageEvent(false);\r\n this.eventBusService.emit(new ModalPopupMainPageEventWrapper(ev));\r\n }\r\n\r\n \r\n AcceptNewTC() {\r\n this.updatingTC = true;\r\n const customerGuid = !!this.initialDataService.userData ? this.initialDataService.userData.CustomerGuid : null;\r\n this.myGreyhoundService.updateCustomerTC(customerGuid).subscribe((result) => {\r\n this.localStorageService.setIfTCUpdated(customerGuid, true);\r\n this.updatingTC = false;\r\n this.updatedTC = true;\r\n });\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n this.myGreyhoundService.setDashboardItem('loyaltyBalance', this.showDetails);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/loyalty-balance/loyalty-balance.component.ts","import { Component, OnInit, Input } from '@angular/core';\r\nimport { MyGreyhoundService, CustomerTrip } from '../../../my-greyhound.service';\r\nimport { ActionUpdaterService, ApiError } from '../../../../shared/services/action-updater.service';\r\nimport { InitialDataService, Title, Country } from '../../../../initial-data.service';\r\nimport { isRegExp } from 'util';\r\nimport { constructDependencies } from '@angular/core/src/di/reflective_provider';\r\nimport * as moment from 'moment';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'gaweb-my-booking-detail',\r\n template: `\r\n <div class=\"my-bookings__wrapper\">\r\n <div class=\"flex-center-row-vertically\">\r\n <div class=\"col-xs-8 my-bookings__service-desc\">\r\n {{booking.Description}}\r\n </div>\r\n <div class=\"col-xs-4 my-bookings__booking-number text-right\">\r\n {{booking.BookingNumber}}\r\n </div>\r\n </div>\r\n <div class=\"flex-center-row-vertically\">\r\n <div class=\"col-xs-8 my-bookings__service-date text-left\">\r\n <small *ngIf=\"isExpress && !isOpenDated\">Travel Date: {{booking.TravelDate | date: 'EEE, dd MMM y h:mm a'}}</small>\r\n <small *ngIf=\"isExpress && isOpenDated\">Open Dated</small>\r\n <small *ngIf=\"isExperienceWDate || (isExperienceNoDate && !!showDate)\">{{experienceText}}</small>\r\n <small *ngIf=\"isPassOrPackage\">Valid until: {{booking.PassExpiry | date: 'EEE, dd MMM y'}}</small>\r\n </div>\r\n </div>\r\n\r\n <div class=\"my-bookings__loyalty-status\" >\r\n <div class=\"col-xs-8\">\r\n <small *ngIf=\"showLoyaltyStatusText\">Rewards Trip ({{booking.Loyalty.LoyaltyStatus}})</small>\r\n </div>\r\n <div class=\"col-xs-4 my-bookings__button text-right\">\r\n <button class=\"btn btn-cta-secondary btn-sm\"\r\n (click)=\"goToManageBooking()\">\r\n <span>{{buttonText}}</span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!isLast\" class=\"divider\"></div>\r\n\r\n </div>\r\n `,\r\n styles: [`\r\n .my-bookings__service-desc{\r\n font-weight: 500;\r\n padding-top: 5px;\r\n }\r\n\r\n .my-bookings__service-date, .my-bookings__booking-number {\r\n font-size: 16px;\r\n margin-top: 6px;\r\n }\r\n\r\n .my-bookings__loyalty-status {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n margin-top: 10px;\r\n }\r\n\r\n .my-bookings__button{\r\n margin-bottom: 10px;\r\n }\r\n `]\r\n})\r\nexport class MyBookingDetailComponent implements OnInit {\r\n @Input() booking: CustomerTrip;\r\n @Input() activeBookingSet: boolean;\r\n @Input() isLast: boolean;\r\n\r\n buttonText: string;\r\n showLoyaltyStatusText: boolean;\r\n experienceText: string;\r\n\r\n isExpress: boolean;\r\n isPassOrPackage: boolean;\r\n isExperienceWDate: boolean;\r\n isExperienceNoDate: boolean;\r\n\r\n isOpenDated = false;\r\n\r\n showDate: boolean;\r\n\r\n constructor(private initialDataService: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.buttonText = this.activeBookingSet ? 'MANAGE' : 'VIEW';\r\n this.showLoyaltyStatusText = !!this.booking.Loyalty && !!this.booking.Loyalty.LoyaltyStatus;\r\n\r\n const prodType = this.booking.ProductType;\r\n this.showDate = this.booking['ShowUsageDate'];\r\n\r\n this.isExpress = prodType === 'EX';\r\n this.isPassOrPackage = prodType === 'BP' && this.showDate == null;\r\n this.isExperienceWDate = prodType === 'BP' && this.showDate === true;\r\n this.isExperienceNoDate = prodType === 'BP' && this.showDate === false;\r\n\r\n this.isOpenDated = moment(this.booking['TravelDate']).year() === 1900;\r\n\r\n if (this.isExperienceWDate || this.isExperienceNoDate) {\r\n const useDate = this.booking['UsageDate'];\r\n if (!!useDate && moment(useDate).year() === 1900) {\r\n this.experienceText = 'Open-dated';\r\n } else if (!!useDate && moment(useDate).isValid()) {\r\n this.experienceText = 'Date: ' + moment(useDate).format('ddd, DD MMM YYYY');\r\n } else {\r\n this.experienceText = '-';\r\n }\r\n }\r\n }\r\n\r\n goToManageBooking = () => {\r\n this.router.navigate(['/my-greyhound/booking-management/details'], {\r\n queryParams: {\r\n context: 'myGreyhound',\r\n bookingGuid: this.booking.BookingGuid\r\n }\r\n });\r\n /* window.location.href =\r\n `/my-greyhound/booking-management/details?context=myGreyhound&bookingGuid=${this.booking.BookingGuid}`; */\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/my-bookings/my-booking-detail/my-booking-detail.component.ts","module.exports = \"<section class=\\\"my-bookings\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'My Bookings'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\" [loadsExpanded]=\\\"!!showDetails\\\"\\r\\n [icon]=\\\"'fa-ticket'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <div class=\\\"c-header__body my-booking-wgt-header\\\" *ngIf=\\\"showDetails\\\">\\r\\n <div *ngIf=\\\"loadingBookings\\\">\\r\\n <div class=\\\"col-xs-12 text-center loyalty-detail__spinner\\\">\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-3x fa-fw\\\"></i>\\r\\n <h4>Retrieving bookings...</h4>\\r\\n </div>\\r\\n </div>\\r\\n <tabset *ngIf=\\\"!loadingBookings\\\">\\r\\n <tab class=\\\"my-booking__tab\\\" heading='Active Bookings' (select)=\\\"isPastBookingSelected = false\\\" [active]='!isPastBookingSelected'>\\r\\n\\r\\n <div class=\\\"my-bookings__empty-trips text-center\\\" *ngIf=\\\"activeBookingsEmpty\\\">\\r\\n <h5>No Active Bookings or Trips to display</h5>\\r\\n </div>\\r\\n <gaweb-my-booking-detail *ngFor=\\\"let booking of activeBookings let last=last;\\\" [booking]=\\\"booking\\\" [activeBookingSet]=\\\"true\\\"\\r\\n [isLast]=\\\"last\\\">\\r\\n </gaweb-my-booking-detail>\\r\\n\\r\\n </tab>\\r\\n <tab class=\\\"my-booking__tab\\\" heading='Past Bookings' (select)=\\\"isPastBookingSelected = true\\\" [active]='isPastBookingSelected'>\\r\\n <div class=\\\"my-bookings__empty-trips text-center\\\" *ngIf=\\\"pastBookingsEmpty\\\">\\r\\n <h6>Displays up to 10 of your most recently completed bookings</h6>\\r\\n <h5>No Past Bookings to display</h5>\\r\\n </div>\\r\\n <gaweb-my-booking-detail *ngFor=\\\"let booking of pastBookings; let last=last;\\\" [booking]=\\\"booking\\\" [activeBookingSet]=\\\"false\\\"\\r\\n [isLast]=\\\"last\\\">\\r\\n </gaweb-my-booking-detail> \\r\\n </tab>\\r\\n </tabset>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/dashboard/my-bookings/my-bookings.component.html\n// module id = ./src/app/my-greyhound/dashboard/my-bookings/my-bookings.component.html\n// module chunks = common","import { Component, OnInit } from '@angular/core';\r\nimport { ActionUpdaterService, ApiError } from '../../../shared/services/action-updater.service';\r\nimport { MyGreyhoundService, CustomerTrip } from '../../my-greyhound.service';\r\nimport { InitialDataService, Title, Country } from '../../../initial-data.service';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\n\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'gaweb-my-bookings',\r\n templateUrl: './my-bookings.component.html'\r\n})\r\nexport class MyBookingsComponent implements OnInit {\r\n\r\n showDetails: boolean;\r\n activeBookingsEmpty: boolean;\r\n pastBookingsEmpty: boolean;\r\n activeBookings: Array<CustomerTrip>;\r\n pastBookings: Array<CustomerTrip>;\r\n loadingBookings = true;\r\n\r\n _isPastBookingSelected: boolean;\r\n\r\n get isPastBookingSelected(): boolean {\r\n return this._isPastBookingSelected;\r\n }\r\n\r\n set isPastBookingSelected(value: boolean) {\r\n this._isPastBookingSelected = value;\r\n\r\n this.myGreyhoundService.setDashboardItem('activeBookings', !value);\r\n this.myGreyhoundService.setDashboardItem('pastBookings', value);\r\n };\r\n\r\n constructor(private initialDataService: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private deviceService: DeviceService) { }\r\n\r\n ngOnInit() {\r\n this.initialProcessing();\r\n }\r\n\r\n public initialProcessing() {\r\n const onError = (error) => {\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n if (!!this.initialDataService.userData) {\r\n this.showDetails = (!this.deviceService.IsMobile()); // && isMyBookingsSelected) || isMyBookingsSelected;\r\n this.loadingBookings = true;\r\n this.myGreyhoundService.getBookingSummary3(this.initialDataService.userData.CustomerGuid)\r\n .subscribe(([activeBookings, pastBookings]) => {\r\n this.activeBookings = activeBookings.Bookings;\r\n\r\n const pastBookingsTrimmed = _.cloneDeep(pastBookings.Bookings) as Array<CustomerTrip>;\r\n\r\n this.pastBookings = _.slice(pastBookingsTrimmed, 0, 10);\r\n this.activeBookingsEmpty = !this.activeBookings || _.isEmpty(this.activeBookings);\r\n this.pastBookingsEmpty = !this.pastBookings || _.isEmpty(this.pastBookings);\r\n\r\n this.loadingBookings = false;\r\n\r\n const isMyBookingsSelected = this.myGreyhoundService.isDashboardItemSelected('myBookings', !this.deviceService.IsMobile());\r\n this.isPastBookingSelected = this.myGreyhoundService.isDashboardItemSelected('pastBookings');\r\n }, onError);\r\n }\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n this.myGreyhoundService.setDashboardItem('myBookings', this.showDetails);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/my-bookings/my-bookings.component.ts","module.exports = \"<section class=\\\"travel-tracker\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'Travel Tracker'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\" [loadsExpanded]=\\\"!!showDetails\\\"\\r\\n [icon]=\\\"'fa-bus'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-12\\\">\\r\\n <div class=\\\"c-header__body col-xs-12\\\" *ngIf=\\\"showDetails\\\">\\r\\n\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!!programDescription\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <h5>{{programDescription}} Rewards program</h5>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 travel-tracker__trips\\\">\\r\\n <gaweb-trip class=\\\"travel-tracker-trip\\\"\\r\\n *ngFor=\\\"let trip of loyaltyTrips\\\"\\r\\n [trip]=\\\"trip\\\"></gaweb-trip>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 travel-tracker__trip-text\\\">\\r\\n <span ng-class=\\\"{'travel-tracker__trip-text--free-trip': isFreeTripAvailable}\\\">{{tripText}}</span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-8 col-xs-offset-2 travel-tracker__book-now text-center\\\">\\r\\n <button class=\\\"btn btn-cta btn-block\\\"\\r\\n *ngIf=\\\"!isMemberOfAProgram && !showLoyaltyPrograms\\\"\\r\\n (click)=\\\"onShowLoyaltyPrograms()\\\">\\r\\n JOIN NOW\\r\\n </button>\\r\\n <button class=\\\"btn btn-cta btn-block\\\"\\r\\n *ngIf=\\\"isMemberOfAProgram\\\"\\r\\n (click)=\\\"bookTrip()\\\">\\r\\n BOOK NOW\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row profile\\\" [hidden]=\\\"!showLoyaltyPrograms\\\">\\r\\n <div>\\r\\n <gaweb-loyalty-program (onLoyaltyProgramSelected)=\\\"onLoyaltyProgramSelected($event)\\\"></gaweb-loyalty-program>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <small>\\r\\n You can update your Rewards program details on your\\r\\n <a routerLink=\\\"/my-greyhound/profile\\\">Account Profile</a> page.\\r\\n </small>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/dashboard/travel-tracker/travel-tracker.component.html\n// module id = ./src/app/my-greyhound/dashboard/travel-tracker/travel-tracker.component.html\n// module chunks = common","import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { ActionUpdaterService, ApiError } from '../../../shared/services/action-updater.service';\r\nimport { MyGreyhoundService, LoyaltyTrip, LoyaltyTripsResponse } from '../../my-greyhound.service';\r\nimport { InitialDataService, Title, Country } from '../../../initial-data.service';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\n\r\nimport { LoyaltyProgramComponent } from '../../profile/loyalty-program/loyalty-program.component';\r\n\r\n@Component({\r\n selector: 'gaweb-travel-tracker',\r\n templateUrl: 'travel-tracker.component.html'\r\n})\r\nexport class TravelTrackerComponent implements OnInit {\r\n\r\n private loyaltyProgramComponent: LoyaltyProgramComponent;\r\n @ViewChild(LoyaltyProgramComponent) set content(content: LoyaltyProgramComponent) {\r\n this.loyaltyProgramComponent = content;\r\n }\r\n\r\n showDetails;\r\n loyaltyTrips: Array<LoyaltyTrip>;\r\n programDescription: string;\r\n tripsRemaining: number;\r\n tripsPending: number;\r\n tripCredits: number;\r\n loyaltyCode: number;\r\n freeTripAvailable: boolean;\r\n isMemberOfAProgram: boolean;\r\n tripText: string;\r\n showLoyaltyPrograms = false;\r\n\r\n constructor(private initialData: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private deviceService: DeviceService) { }\r\n\r\n ngOnInit() {\r\n const onError = (error: ApiError) => {\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n\r\n const customerGuid = !!this.initialData.userData ? this.initialData.userData.CustomerGuid : null;\r\n if (customerGuid == null) {\r\n window.location.href = '/my-greyhound/login';\r\n } else {\r\n this.myGreyhoundService.getLoyaltyTrips(customerGuid)\r\n .subscribe((response) => {\r\n this.handleLoyaltyTrips(response);\r\n this.freeTripAvailable = this.tripCredits === 5;\r\n this.isMemberOfAProgram = this.loyaltyCode !== 0;\r\n this.tripText = this.getTripText();\r\n }, onError);\r\n\r\n const isTravelTrackerSelected = this.myGreyhoundService.isDashboardItemSelected('travelTracker', !this.deviceService.IsMobile());\r\n this.showDetails = (!this.deviceService.IsMobile() && isTravelTrackerSelected) || isTravelTrackerSelected;\r\n }\r\n }\r\n\r\n onShowLoyaltyPrograms() {\r\n this.showLoyaltyPrograms = true;\r\n this.loyaltyProgramComponent.toggleShowDetails();\r\n }\r\n\r\n onLoyaltyProgramSelected($event) {\r\n this.programDescription = $event;\r\n if ($event !== '') {\r\n this.isMemberOfAProgram = true;\r\n this.showLoyaltyPrograms = false;\r\n }\r\n\r\n }\r\n\r\n bookTrip = () => {\r\n window.location.href = '/book-a-trip';\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n this.myGreyhoundService.setDashboardItem('travelTracker', this.showDetails);\r\n }\r\n\r\n private handleLoyaltyTrips = (data: LoyaltyTripsResponse) => {\r\n this.loyaltyTrips = data.LoyaltyTrips;\r\n this.programDescription = data.ProgramDescription;\r\n this.tripsRemaining = data.TripsRemaining;\r\n this.tripsPending = data.TripsPending;\r\n this.tripCredits = data.TripCredits;\r\n this.loyaltyCode = data.LoyaltyCode;\r\n }\r\n\r\n private getTripText() {\r\n if (this.freeTripAvailable) {\r\n return 'Congratulations! \\n You are eligible to redeem your FREE TRIP.';\r\n } else if (!this.isMemberOfAProgram) {\r\n return 'When you complete 5 trips in your preferred Greyhound express travel corridor, you will receive your 6th trip absolutely FREE!';\r\n } else if (!!this.tripsRemaining) {\r\n return `${this.tripsRemaining} more trips to complete and you can claim a FREE TRIP!`;\r\n }\r\n return null;\r\n }\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/travel-tracker/travel-tracker.component.ts","import { Component, OnInit, Input } from '@angular/core';\r\nimport { LoyaltyTrip } from '../../../my-greyhound.service';\r\n\r\n@Component({\r\n selector: 'gaweb-trip',\r\n template: `\r\n <div class=\"travel-tracker-trip\">\r\n <i class=\"fa fa-3x fa-bus fa-fw travel-tracker-trip__bus\"\r\n [ngClass]=\"{'travel-tracker-trip__bus--credit-applied': isCredit,\r\n 'travel-tracker-trip__bus--credit-pending': isPending,\r\n 'travel-tracker-trip__bus--book-now': isBookNow}\"></i>\r\n <div class=\"travel-tracker-trip__bus-text text-center\">{{description}}</div>\r\n </div>\r\n `\r\n})\r\nexport class TripComponent implements OnInit {\r\n\r\n @Input() trip: LoyaltyTrip;\r\n\r\n isCredit: boolean;\r\n isPending: boolean;\r\n isBookNow: boolean;\r\n description: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.isCredit = this.trip.IsCredit;\r\n this.isPending = this.trip.IsPending;\r\n this.isBookNow = !this.trip.IsCredit && !this.trip.IsPending; this.trip.IsCredit;\r\n this.description = this.trip.Description === \"Book Now\" ? \"\" : this.trip.Description;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/dashboard/travel-tracker/trip/trip.component.ts","module.exports = \"<script src=\\\"https://www.google.com/recaptcha/api.js?render={{recaptchaSiteKey}}\\\"></script>\\r\\n\\r\\n<div class=\\\"alert alert-success\\\" [hidden]=\\\"!successMessage\\\">\\r\\n <i class=\\\"fa fa-check-circle success text-success\\\"></i>\\r\\n <strong>Password reset request received, Please check your inbox.</strong>\\r\\n</div>\\r\\n\\r\\n<form [formGroup]=\\\"forgotPasswordForm\\\" (ngSubmit)=\\\"handleForgotPassword()\\\">\\r\\n <div class=\\\" col-xs-12\\\" style=\\\"margin-bottom: -17px;\\\">\\r\\n <div class=\\\"input-group\\\">\\r\\n <input type=\\\"text\\\" required class=\\\"form-control\\\" placeholder=\\\"Email\\\" formControlName=\\\"email\\\">\\r\\n <span class=\\\"input-group-btn\\\">\\r\\n <button type=\\\"submit\\\" class=\\\"btn btn-cta\\\" [disabled]=\\\"!forgotPasswordForm.valid\\\">\\r\\n <i class=\\\"fa fa-paper-plane \\\"></i> SEND\\r\\n </button>\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"padding-top: 5px;\\\">\\r\\n <div class=\\\"grecaptcha-text\\\">\\r\\n This site is protected by reCAPTCHA and the Google\\r\\n <a href=\\\"https://policies.google.com/privacy\\\" target=\\\"_blank\\\">Privacy Policy</a> and\\r\\n <a href=\\\"https://policies.google.com/terms\\\" target=\\\"_blank\\\">Terms of Service</a> apply.\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</form>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/forgot-password/forgot-password.component.html\n// module id = ./src/app/my-greyhound/forgot-password/forgot-password.component.html\n// module chunks = common","import { Component } from '@angular/core';\r\nimport { FormGroup, FormArray, FormBuilder, Validators } from '@angular/forms';\r\nimport { ActionUpdaterService, ApiError } from '../../shared/services/action-updater.service';\r\nimport { MyGreyhoundService, ForgotPassword } from '../my-greyhound.service';\r\nimport { InitialDataService } from '../../initial-data.service';\r\n\r\ndeclare var grecaptcha: any;\r\n\r\n@Component({\r\n selector: 'gaweb-forgot-password',\r\n templateUrl: './forgot-password.component.html'\r\n})\r\nexport class ForgotPasswordComponent {\r\n forgotPasswordForm: FormGroup;\r\n successMessage = false;\r\n recaptchaSiteKey = this.initialDataService.recaptchV3SiteKey;\r\n\r\n constructor(private fb: FormBuilder,\r\n private initialDataService: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private myGreyhoundService: MyGreyhoundService) {\r\n\r\n this.forgotPasswordForm = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]]\r\n });\r\n }\r\n\r\n handleForgotPassword() {\r\n grecaptcha.ready(() => {\r\n grecaptcha.execute(this.recaptchaSiteKey, {action: 'forgotPassword'}).then((token) => {\r\n const email = this.forgotPasswordForm.get('email').value;\r\n this.successMessage = false;\r\n const forgotPassword = new ForgotPassword(email, token);\r\n this.myGreyhoundService\r\n .forgotPassword(forgotPassword)\r\n .subscribe((response) => {\r\n this.successMessage = true;\r\n }, (error: ApiError) => {\r\n this.successMessage = true;\r\n });\r\n });\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/forgot-password/forgot-password.component.ts","module.exports = \"<div class=\\\"container\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <gaweb-toast></gaweb-toast>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/login/login.component.html\n// module id = ./src/app/my-greyhound/login/login.component.html\n// module chunks = common","import { ActivatedRoute, Router } from '@angular/router';\r\nimport { ActionUpdaterService } from '../../shared/services/action-updater.service';\r\nimport { Component, AfterViewInit } from '@angular/core';\r\n@Component({\r\n selector: 'gaweb-login',\r\n templateUrl: './login.component.html'\r\n})\r\nexport class LoginComponent implements AfterViewInit {\r\n constructor(\r\n private actionUpdaterService: ActionUpdaterService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router\r\n ) {\r\n this.checkQueue();\r\n }\r\n ngAfterViewInit() {\r\n const resetPass: boolean =\r\n this.activatedRoute.snapshot.queryParams['resetPass'] === 'true';\r\n const forgotPass: boolean =\r\n this.activatedRoute.snapshot.queryParams['forgotPass'] === 'true';\r\n const deletePass: boolean =\r\n this.activatedRoute.snapshot.queryParams['delete'] === 'true';\r\n if (resetPass) {\r\n this.actionUpdaterService.announceSuccess(\r\n 'Password changed successfully'\r\n );\r\n } else if (forgotPass) {\r\n this.actionUpdaterService.announceSuccess(\r\n 'Reset instructions emailed!'\r\n );\r\n } else if (deletePass) {\r\n this.actionUpdaterService.announceSuccess(\r\n 'Account Deleted Successfully'\r\n );\r\n }\r\n const urlWithoutParams = window.location.href.split('?')[0];\r\n const domain = window.location.origin;\r\n const currentRelativePath = urlWithoutParams.split(domain)[1];\r\n this.router.navigate([currentRelativePath]);\r\n }\r\n\r\n checkQueue() {\r\n const that = this;\r\n setTimeout(function() {\r\n const alertQueue = localStorage.getItem('alert_queue');\r\n if (alertQueue != null) {\r\n const alerts = alertQueue.split('\\n');\r\n alerts.forEach(alert => {\r\n that.actionUpdaterService.announceSuccess(alert);\r\n });\r\n localStorage.removeItem('alert_queue');\r\n }\r\n that.checkQueue();\r\n }, 1000);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/login/login.component.ts","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { SharedModule } from '../shared/shared.module';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { AlertModule } from 'ngx-bootstrap/alert';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\nimport { TabsModule } from 'ngx-bootstrap/tabs';\r\n\r\nimport { ProfileComponent } from './profile/profile.component';\r\nimport { PersonalDetailsComponent } from './profile/personal-details/personal-details.component';\r\nimport { UpdateDetailsComponent } from './profile/update-details/update-details.component';\r\nimport { DeleteAccountComponent } from './profile/delete-account/delete-account.component';\r\nimport { LoyaltyProgramComponent } from './profile/loyalty-program/loyalty-program.component';\r\nimport { SubscriptionsComponent } from './profile/subscriptions/subscriptions.component';\r\nimport { MyGreyhoundService } from './my-greyhound.service';\r\nimport { PassengerResolve } from './profile/passenger.resolve';\r\nimport { DashboardComponent } from './dashboard/dashboard.component';\r\nimport { AddABookingComponent } from './dashboard/add-a-booking/add-a-booking.component';\r\nimport { MyBookingsComponent } from './dashboard/my-bookings/my-bookings.component';\r\nimport { TravelTrackerComponent } from './dashboard/travel-tracker/travel-tracker.component';\r\nimport { LoyaltyBalanceComponent } from './dashboard/loyalty-balance/loyalty-balance.component';\r\nimport { TripComponent } from './dashboard/travel-tracker/trip/trip.component';\r\nimport { MyBookingDetailComponent } from './dashboard/my-bookings/my-booking-detail/my-booking-detail.component';\r\nimport { GenericContentPageResolve } from '../shared/resolver/generic.resolve';\r\nimport { BookingManagementComponent } from 'app/my-greyhound/booking-management/booking-management.component';\r\nimport { BookingDetailsWrapperComponent } from 'app/my-greyhound/booking-management/booking-details/booking-details-wrapper.component';\r\nimport { BookingDetailsComponent } from 'app/my-greyhound/booking-management/booking-details/booking-details.component';\r\nimport { PassengerSummaryComponent } from 'app/my-greyhound/booking-management/passenger-summary/passenger-summary.component';\r\nimport { ExtendPassComponent } from './booking-management/booking-details/extend-pass.component';\r\nimport { ItineraryWrapperComponent } from 'app/my-greyhound/booking-management/itinerary/itinerary-wrapper.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { ProductPaymentComponent } from 'app/travel-products/product-payment/product-payment.component';\r\n\r\nimport { ForgotPasswordComponent } from 'app/my-greyhound/forgot-password/forgot-password.component';\r\n\r\n\r\nimport { DecimalPipe } from '@angular/common';\r\nimport { UpdateSubscriptionsComponent } from '../shared/components/update-subcriptions/update-subscriptions.component';\r\nimport { SubscriptionConfirmationComponent } from './subscription-confirmation/subscription-confirmation.component';\r\nimport { AccountActivationComponent } from './account-activation/account-activation.component';\r\nimport { AvailabilityWrapperComponent } from 'app/shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component';\r\nimport { TranslatePipe } from '../shared/pipes/translate.pipe';\r\nimport { CollapsibleModule } from 'angular2-collapsible';\r\n\r\n\r\n// gaweb-profile\r\nconst routes: Routes = [\r\n {\r\n path: 'login',\r\n component: LoginComponent\r\n },\r\n {\r\n path: 'profile',\r\n component: ProfileComponent,\r\n resolve: {\r\n content: GenericContentPageResolve\r\n },\r\n children: [\r\n {\r\n path: '',\r\n component: PersonalDetailsComponent,\r\n resolve: {\r\n passenger: PassengerResolve,\r\n }\r\n },\r\n {\r\n path: 'edit',\r\n component: UpdateDetailsComponent,\r\n resolve: {\r\n passenger: PassengerResolve,\r\n }\r\n },\r\n ],\r\n\r\n },\r\n {\r\n path: 'booking-management/details',\r\n component: BookingManagementComponent\r\n },\r\n {\r\n path: 'booking-management/details/:bookingGuid',\r\n component: BookingManagementComponent,\r\n },\r\n {\r\n path: 'booking-management/payment',\r\n component: ProductPaymentComponent,\r\n },\r\n {\r\n path: 'dashboard',\r\n component: DashboardComponent,\r\n resolve: {\r\n content: GenericContentPageResolve\r\n }\r\n },\r\n {\r\n path: 'forgot-password',\r\n component: ForgotPasswordComponent\r\n },\r\n {\r\n path: 'update-subscriptions',\r\n component: UpdateSubscriptionsComponent\r\n },\r\n {\r\n path: 'update-subscriptions/:idAndGuid',\r\n component: UpdateSubscriptionsComponent\r\n },\r\n {\r\n path: 'booking-management/details/:bookingGuid/availability',\r\n component: AvailabilityWrapperComponent,\r\n },\r\n {\r\n path: 'booking-management/availability',\r\n component: AvailabilityWrapperComponent,\r\n },\r\n {\r\n path: 'subscription-confirmation',\r\n component: SubscriptionConfirmationComponent\r\n },\r\n {\r\n path: 'subscription-confirmation/:reference',\r\n component: SubscriptionConfirmationComponent\r\n },\r\n {\r\n path: 'activation',\r\n component: AccountActivationComponent\r\n },\r\n {\r\n path: 'activation/:reference',\r\n component: AccountActivationComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n SharedModule,\r\n RouterModule.forChild(routes),\r\n ReactiveFormsModule,\r\n TypeaheadModule.forRoot(),\r\n AlertModule.forRoot(),\r\n ModalModule.forRoot(),\r\n TabsModule.forRoot(),\r\n FormsModule,\r\n CollapsibleModule\r\n ],\r\n declarations: [ProfileComponent,\r\n PersonalDetailsComponent,\r\n UpdateDetailsComponent,\r\n DeleteAccountComponent,\r\n LoyaltyProgramComponent,\r\n SubscriptionsComponent,\r\n DashboardComponent,\r\n AddABookingComponent,\r\n MyBookingsComponent,\r\n TravelTrackerComponent,\r\n LoyaltyBalanceComponent,\r\n TripComponent,\r\n MyBookingDetailComponent,\r\n BookingManagementComponent,\r\n BookingDetailsWrapperComponent,\r\n BookingDetailsComponent,\r\n PassengerSummaryComponent,\r\n ExtendPassComponent,\r\n ItineraryWrapperComponent,\r\n LoginComponent,\r\n ForgotPasswordComponent,\r\n SubscriptionConfirmationComponent,\r\n AccountActivationComponent\r\n ],\r\n providers: [MyGreyhoundService,\r\n PassengerResolve,\r\n DecimalPipe,\r\n TranslatePipe\r\n ]\r\n})\r\nexport class MyGreyhoundModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/my-greyhound.module.ts","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { MyGreyhoundService } from '../../my-greyhound.service';\r\nimport { InitialDataService } from '../../../initial-data.service';\r\nimport { ActionUpdaterService } from '../../../shared/services/action-updater.service';\r\n\r\n@Component({\r\n selector: 'gaweb-delete-account',\r\n template: `\r\n <div class=\"delete__container\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <div class=\"delete__title\">Want to delete your My Greyhound account?</div>\r\n <p *ngIf=\"confirmationStage1\"> Your bookings will not be deleted or cancelled but any personal information not directly associated with your bookings will be removed. \r\n Note you will not be able to recover your account once removed. </p>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <button class=\"btn btn-xs btn-default btn-block\" \r\n *ngIf=\"confirmationStage1 && !confirmationStage2\"\r\n (click)=\"confirmationStage1 = false\">\r\n Cancel\r\n </button>\r\n </div>\r\n <div\r\n [ngClass]=\"{'col-xs-12': !confirmationStage1 && !confirmationStage2, 'col-xs-6' : confirmationStage1 || confirmationStage2}\" >\r\n <button class=\"btn btn-xs btn-block\" \r\n *ngIf=\" !confirmationStage2\"\r\n [ngClass]=\"{'btn-cta': confirmationStage1 && !confirmationStage2, 'btn-default': !confirmationStage1 && !confirmationStage2}\"\r\n (click)=\"confirmDeletion()\">\r\n Delete Account\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div bsModal #childModal=\"bs-modal\" class=\"modal fade\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"mySmallModalLabel\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog modal-sm\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title pull-left\">Delete Account</h4>\r\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"closeModal()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <p>Are you sure you want to completely remove your My Greyhound account? Any bookings linked to your account will NOT be deleted.</p>\r\n <p>This action cannot be undone.</p>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <button class=\"btn btn-default btn-block\" (click)=\"closeModal()\">Cancel</button>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <button class=\"btn btn-primary btn-block \" (click)=\"deleteAccount()\">OK</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .modal-body{\r\n background-color: white; \r\n color: black;\r\n }\r\n\r\n .delete__container {\r\n margin-top: 20px;\r\n }\r\n\r\n .delete__title{\r\n font-weight: bold;\r\n margin-bottom: 10px;\r\n }\r\n\r\n `\r\n ]\r\n})\r\nexport class DeleteAccountComponent implements OnInit {\r\n\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n confirmationStage1: boolean = false;\r\n confirmationStage2: boolean = false;\r\n\r\n constructor(private initialData: InitialDataService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private actionUpdaterService: ActionUpdaterService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n deleteAccount() {\r\n const onError = (response) => {\r\n this.closeModal();\r\n this.actionUpdaterService.announceError(response);\r\n }\r\n\r\n this.myGreyhoundService\r\n .deleteAccount(this.initialData.userData.CustomerGuid)\r\n .subscribe((response) => {\r\n this.closeModal();\r\n this.actionUpdaterService.announceSuccess('Account Deleted');\r\n window.location.href = \"/umbraco/Surface/Account/Logout?delete=true\";\r\n }, onError);\r\n }\r\n\r\n confirmDeletion() {\r\n if(!this.confirmationStage1) {\r\n this.confirmationStage1 = true;\r\n } else {\r\n this.confirmationStage2 = true;\r\n this.showModal();\r\n }\r\n\r\n }\r\n\r\n public showModal(): void {\r\n this.childModal.show();\r\n }\r\n\r\n public closeModal(): void {\r\n this.confirmationStage1 = false;\r\n this.confirmationStage2 = false;\r\n this.childModal.hide();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/delete-account/delete-account.component.ts","module.exports = \"<section class=\\\"loyalty-program\\\" id=\\\"LoyaltyProgram\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <gaweb-collapsing-header [title]=\\\"'GREYHOUND REWARDS'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\" [loadsExpanded]=\\\"showDetails\\\"\\r\\n [icon]=\\\"'fa-map-marker'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <form novalidate [formGroup]=\\\"programForm\\\" (ngSubmit)=\\\"onFormSubmit()\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <div class=\\\"c-header__body col-xs-12\\\" *ngIf=\\\"showDetails\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <p>Opt in to our Greyhound Rewards program by selecting your preferred Greyhound Express travel corridor.</p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 loyalty-options\\\">\\r\\n <div class=\\\"radio\\\">\\r\\n <label style=\\\"display: block;\\\">\\r\\n <input type=\\\"radio\\\" formControlName=\\\"program\\\" value=\\\"0\\\" />\\r\\n <span></span>\\r\\n Not now, thanks\\r\\n </label>\\r\\n </div>\\r\\n <div class=\\\"radio\\\" *ngFor=\\\"let program of loyaltyPrograms\\\">\\r\\n <label style=\\\"display: block;\\\">\\r\\n <input type=\\\"radio\\\" formControlName=\\\"program\\\" value=\\\"{{program.ID}}\\\" [checked]=\\\"programForm.controls.program.value === program.ID\\\">\\r\\n <span></span>\\r\\n {{program.Description}}\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 text-center loyalty-program__button\\\">\\r\\n <button class=\\\"btn btn-default\\\" type=\\\"submit\\\">UPDATE</button>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <p>\\r\\n <small>\\r\\n Please Note: Changing the travel corridor for your Greyhound Rewards program will remove all previous trip credits and\\r\\n redeemed trips. By opting in to one of the Greyhound Rewards programs, you agree to receive related information\\r\\n from Greyhound Australia. For full details of the rewards program please see the\\r\\n <a href=\\\"/my-greyhound/about-my-greyhound/\\\">About My Greyhound</a> page.\\r\\n </small>\\r\\n </p>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n</section>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.html\n// module id = ./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.html\n// module chunks = common","module.exports = \"/*\\n -apple-system, // Safari for OS X and iOS (San Francisco)\\n BlinkMacSystemFont,// Chrome for OS X (San Francisco)\\n \\\"Segoe UI\\\",// Windows\\n \\\"Roboto\\\",// Android\\n \\\"Oxygen\\\", // Linux\\n \\\"Ubuntu\\\",// KDE\\n \\\"Cantarell\\\", // GNOME\\n \\\"Droid Sans\\\",// Older Android\\n \\\"Helvetica Neue\\\", Arial, sans-serif !default; // Basic web fallback */\\n.loyalty-program__button,\\n.subscriptions__button {\\n margin-top: 15px;\\n margin-bottom: 15px;\\n}\\n@media (min-width: 992px) {\\n .loyalty-program .radio,\\n .subscriptions .radio {\\n margin-left: 40px;\\n }\\n}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.less\n// module id = ./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.less\n// module chunks = common","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport * as _ from 'lodash';\r\n\r\nimport { MyGreyhoundService, LoyaltyProgram } from '../../my-greyhound.service';\r\nimport { InitialDataService } from '../../../initial-data.service';\r\nimport { ActionUpdaterService } from '../../../shared/services/action-updater.service';\r\nimport { PassengerResponse } from '../passenger.model';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\n\r\n@Component({\r\n selector: 'gaweb-loyalty-program',\r\n templateUrl: 'loyalty-program.component.html',\r\n styleUrls: ['loyalty-program.component.less']\r\n})\r\nexport class LoyaltyProgramComponent implements OnInit {\r\n\r\n @Output() onLoyaltyProgramSelected: EventEmitter<any> = new EventEmitter();\r\n\r\n showDetails: boolean = false;\r\n loyaltyPrograms: Array<LoyaltyProgram>;\r\n\r\n selectedProgram: string;\r\n programForm: FormGroup;\r\n\r\n constructor(private initialData: InitialDataService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private fb: FormBuilder,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private deviceService: DeviceService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.programForm = new FormGroup({\r\n program: new FormControl('0', [Validators.required]),\r\n });\r\n\r\n if (!!this.initialData.userData) {\r\n this.myGreyhoundService\r\n .getPrograms(this.initialData.userData.CustomerGuid)\r\n .subscribe((programs: Array<LoyaltyProgram>) => {\r\n const selectedProgram = _.find(programs, i => i.SelectedProgram === true),\r\n initialSelectedProgram = selectedProgram == undefined ? '0' : selectedProgram.ID\r\n\r\n this.loyaltyPrograms = programs\r\n this.programForm.patchValue({ program: initialSelectedProgram });\r\n });\r\n }\r\n\r\n this.showDetails = !this.deviceService.IsMobile();\r\n }\r\n\r\n\r\n public toggleShowDetails() {\r\n this.showDetails = !this.showDetails;\r\n }\r\n\r\n onFormSubmit() {\r\n const selectedProgram = this.programForm.get('program').value,\r\n onError = (error) => {\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n this.myGreyhoundService\r\n .updateProgram(this.initialData.userData.CustomerGuid, selectedProgram)\r\n .subscribe((response: any) => {\r\n var passenger = response as PassengerResponse;\r\n this.actionUpdaterService.announceSuccess('Rewards program updated');\r\n if (passenger.LoyaltyCode !== 0) {\r\n\r\n const selectedProgram = _(this.loyaltyPrograms)\r\n .filter(program => program.ID === passenger.LoyaltyCode)\r\n .first();\r\n\r\n if (!!selectedProgram) {\r\n this.onLoyaltyProgramSelected.emit(selectedProgram.Description);\r\n }\r\n }\r\n else {\r\n this.onLoyaltyProgramSelected.emit('');\r\n }\r\n }, onError);\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/loyalty-program/loyalty-program.component.ts","export class Passenger {\r\n country: string;\r\n firstName: string;\r\n surname: string;\r\n phone: string;\r\n address: string;\r\n city: string;\r\n postcode: string;\r\n state: string;\r\n email: string;\r\n gender: string;\r\n title: string;\r\n dob: string;\r\n dobDay: number | string;\r\n dobMonth: number | string;\r\n dobYear: number | string;\r\n source: string;\r\n}\r\n\r\n\r\nexport class PassengerResponse {\r\n Country: string;\r\n FirstName: string;\r\n Surname: string;\r\n Phone: string;\r\n Address1: string;\r\n City: string;\r\n PostCode: string;\r\n State: string;\r\n Email: string;\r\n Gender: string;\r\n Title: string;\r\n DOB: string;\r\n Source: string;\r\n LoyaltyCode: number;\r\n ResetKey: string;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/passenger.model.ts","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { PassengerResponse } from './passenger.model';\r\nimport { MyGreyhoundService } from '../my-greyhound.service';\r\nimport { InitialDataService } from '../../initial-data.service';\r\n\r\n@Injectable()\r\nexport class PassengerResolve implements Resolve<PassengerResponse> {\r\n\r\n constructor(private initialData: InitialDataService,\r\n private myGreyhoundService: MyGreyhoundService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n return this.myGreyhoundService.getPassengerDetails(this.initialData.userData.CustomerGuid);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/passenger.resolve.ts","module.exports = \"<section class=\\\"profile-details\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <gaweb-collapsing-header [title]=\\\"'PERSONAL DETAILS'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\" [loadsExpanded]=\\\"!!showDetails\\\"\\r\\n [icon]=\\\"'fa-id-card'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <div class=\\\"c-header__body col-xs-12\\\" *ngIf=\\\"showDetails\\\">\\r\\n <table>\\r\\n <tbody>\\r\\n <tr>\\r\\n <th>Title</th>\\r\\n <td>{{title}}</td>\\r\\n </tr>\\r\\n <tr>\\r\\n <th>First name</th>\\r\\n <td>{{firstName}}</td>\\r\\n </tr>\\r\\n <tr>\\r\\n <th>Surname</th>\\r\\n <td>{{surname}}</td>\\r\\n </tr>\\r\\n <tr>\\r\\n <th>Email</th>\\r\\n <td>{{email}}</td>\\r\\n </tr>\\r\\n <tr>\\r\\n <th>Phone</th>\\r\\n <td>{{phone}}</td>\\r\\n </tr>\\r\\n <tr *ngIf=\\\"countryName == 'Australia'\\\">\\r\\n <th>State</th>\\r\\n <td>{{stateName}}</td>\\r\\n </tr>\\r\\n <tr *ngIf=\\\"countryName == 'Australia'\\\">\\r\\n <th>Postcode</th>\\r\\n <td>{{postcode}}</td>\\r\\n </tr>\\r\\n <tr>\\r\\n <th>Country</th>\\r\\n <td>{{countryName}}</td>\\r\\n </tr>\\r\\n <tr>\\r\\n <th>Date of birth</th>\\r\\n <td>{{dob | date: \\\"d MMMM y\\\"}}</td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n\\r\\n <div class=\\\"profile-details__button\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-6 form-group\\\">\\r\\n <a class=\\\"btn btn-default btn-block btn-left\\\" href=\\\"/my-greyhound/change-password\\\">Change Password</a>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-6 form-group\\\">\\r\\n <a class=\\\"btn btn-default btn-block btn-right\\\" routerLink=\\\"edit\\\">Update Details</a>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"divider\\\"></div>\\r\\n\\r\\n <gaweb-delete-account></gaweb-delete-account>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</section>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/profile/personal-details/personal-details.component.html\n// module id = ./src/app/my-greyhound/profile/personal-details/personal-details.component.html\n// module chunks = common","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { MyGreyhoundService } from '../../my-greyhound.service';\r\nimport { PassengerResponse } from '../passenger.model';\r\nimport { InitialDataService } from '../../../initial-data.service';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\n\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'gaweb-personal-details',\r\n templateUrl: './personal-details.component.html'\r\n})\r\nexport class PersonalDetailsComponent implements OnInit {\r\n title: string;\r\n firstName: string;\r\n surname: string;\r\n email: string;\r\n phone: string;\r\n address: string;\r\n city: string;\r\n state: string;\r\n postcode: string;\r\n country: string;\r\n countryName: string;\r\n stateName: string;\r\n dob: string;\r\n\r\n showDetails: boolean = false;\r\n\r\n constructor(private initialData: InitialDataService,\r\n private activatedRoute: ActivatedRoute,\r\n private deviceService: DeviceService) { }\r\n\r\n ngOnInit() {\r\n this.onPassengerDetailsReturned(this.activatedRoute.snapshot.data['passenger']);\r\n this.countryName = _.find(this.initialData.countries, i => i.Code === this.country).CountryName;\r\n const state = _.find(this.initialData.states, i => i.Code === this.state);\r\n this.stateName = !!state ? state.Name : null;\r\n\r\n this.showDetails = !this.deviceService.IsMobile();\r\n }\r\n\r\n private onPassengerDetailsReturned = (passenger: PassengerResponse) => {\r\n this.title = passenger.Title;\r\n this.firstName = passenger.FirstName;\r\n this.surname = passenger.Surname;\r\n this.email = passenger.Email;\r\n this.phone = passenger.Phone;\r\n this.address = passenger.Address1;\r\n this.city = passenger.City;\r\n this.state = passenger.State;\r\n this.postcode = passenger.PostCode;\r\n this.country = passenger.Country;\r\n this.dob = passenger.DOB;\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/personal-details/personal-details.component.ts","module.exports = \"<div class=\\\"container\\\" id=\\\"head\\\">\\r\\n\\r\\n <div class=\\\"row back-link clearfix\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <a routerLink=\\\"/my-greyhound/dashboard\\\">\\r\\n <small>\\r\\n <i class=\\\"fa fa-fw fa-arrow-left\\\"></i> My Greyhound</small>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <h1>\\r\\n {{title}}\\r\\n </h1>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-toast></gaweb-toast>\\r\\n\\r\\n <gaweb-error-summary></gaweb-error-summary>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-7\\\">\\r\\n <router-outlet></router-outlet>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-5\\\">\\r\\n <gaweb-subscriptions></gaweb-subscriptions>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"container\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-8 col-md-offset-2\\\" [innerHtml]=\\\"contentFooter\\\">\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/profile/profile.component.html\n// module id = ./src/app/my-greyhound/profile/profile.component.html\n// module chunks = common","import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { ActionUpdaterService } from '../../shared/services/action-updater.service';\r\nimport { InitialDataService } from '../../initial-data.service';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\n\r\nimport { SubscriptionsComponent } from './subscriptions/subscriptions.component';\r\nimport { GenericContentPage } from '../../shared/resolver/generic-content-page.model';\r\n\r\n@Component({\r\n selector: 'gaweb-profile',\r\n templateUrl: 'profile.component.html',\r\n providers: []\r\n})\r\nexport class ProfileComponent implements OnInit, AfterViewInit {\r\n @ViewChild(SubscriptionsComponent) subscriptionsComponent: SubscriptionsComponent;\r\n\r\n title: string;\r\n content: string;\r\n contentFooter: string;\r\n alerts: Array<any> = [];\r\n\r\n constructor(private initialDataService: InitialDataService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router) {\r\n }\r\n\r\n ngOnInit() {\r\n const genericData: GenericContentPage = this.activatedRoute.snapshot.data['content'];\r\n this.title = genericData.title;\r\n this.content = genericData.content;\r\n this.contentFooter = genericData.contentFooter;\r\n this.router.events.subscribe((evt) => {\r\n if (!(evt instanceof NavigationEnd)) {\r\n return;\r\n }\r\n window.scrollTo(0, 0)\r\n });\r\n }\r\n ngAfterViewInit() {\r\n const resetPass: boolean = this.activatedRoute.snapshot.queryParams['resetPass'] === 'true';\r\n if (resetPass) {\r\n this.actionUpdaterService.announceSuccess('Password changed successfully');\r\n const urlWithoutParams = window.location.href.split('?')[0];\r\n const domain = window.location.origin;\r\n const currentRelativePath = urlWithoutParams.split(domain)[1];\r\n this.router.navigate([currentRelativePath]);\r\n }\r\n }\r\n onLoyaltyProgramSelected($event) {\r\n this.subscriptionsComponent.refreshList();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/profile.component.ts","module.exports = \"<section class=\\\"loyalty-program\\\" id=\\\"LoyaltyProgram\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <gaweb-collapsing-header [title]=\\\"'SUBSCRIPTIONS'\\\" (onHeaderClicked)=\\\"toggleDetails()\\\" [loadsExpanded]=\\\"showDetails\\\"\\r\\n [icon]=\\\"'fa-envelope'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <form novalidate [formGroup]=\\\"subscriptionForm\\\" (ngSubmit)=\\\"onUpdatingSubscriptions()\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <div class=\\\"c-header__body col-xs-12\\\" *ngIf=\\\"showDetails\\\">\\r\\n <div formArrayName=\\\"items\\\">\\r\\n <div class=\\\"col-xs-12\\\" *ngFor=\\\"let control of subscriptionForm.get('items').controls; let i = index;\\\">\\r\\n <div class=\\\"checkbox\\\">\\r\\n <span style=\\\"cursor: pointer;\\\" [ngClass]=\\\"{ 'checked': control.value }\\\" (click)=\\\"control.setValue(toggleSubscription(i))\\\"></span>\\r\\n <label>\\r\\n <input type=\\\"checkbox\\\" [formControl]=\\\"control\\\" (click)=\\\"control.setValue(toggleSubscription(i))\\\"> {{subscriptions[i].Name}}\\r\\n <div class=\\\"subscription__body\\\">{{subscriptions[i].Description}}</div>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n </div> \\r\\n\\r\\n <div class=\\\"col-xs-12 text-center subscriptions__button\\\">\\r\\n <button class=\\\"btn btn-default\\\" style=\\\"min-width: 200px;\\\" [ngClass]=\\\"{ 'disabled' : updatingSubs }\\\" type=\\\"submit\\\">\\r\\n <span *ngIf=\\\"!updatingSubs\\\">UPDATE</span>\\r\\n <i class=\\\"fa fa-refresh fa-spin\\\" *ngIf=\\\"updatingSubs\\\"></i>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/profile/subscriptions/subscriptions.component.html\n// module id = ./src/app/my-greyhound/profile/subscriptions/subscriptions.component.html\n// module chunks = common","import { Component, OnInit } from '@angular/core';\r\nimport { MyGreyhoundService, SubscriptionOption, SubscriptionOptionItem } from '../../my-greyhound.service';\r\nimport { InitialDataService } from '../../../initial-data.service';\r\nimport { ActionUpdaterService, ApiError } from '../../../shared/services/action-updater.service';\r\nimport { DeviceService } from '../../../shared/services/device.service';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, ValidatorFn, FormArray } from '@angular/forms';\r\nimport * as _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'gaweb-subscriptions',\r\n templateUrl: 'subscriptions.component.html',\r\n styles: [`\r\n .subscription__body{\r\n font-weight: 400;\r\n padding-top: 5px;\r\n }\r\n\r\n button {\r\n margin-top: 15px;\r\n margin-bottom: 15px;\r\n }\r\n `]\r\n})\r\nexport class SubscriptionsComponent implements OnInit {\r\n\r\n showDetails = false;\r\n updatingSubs = false;\r\n subscriptions: Array<Subscription>;\r\n subscriptionForm: FormGroup;\r\n // formControlArray: Array<any> = [];\r\n items: FormArray;\r\n\r\n constructor(private initialData: InitialDataService,\r\n private fb: FormBuilder,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private deviceService: DeviceService) {\r\n\r\n // this.checkboxGroup = new FormGroup();\r\n this.subscriptionForm = this.fb.group({\r\n items: this.fb.array([])\r\n // items: this.fb.array([this.fb.group({ subscription: true, name : '' })])\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getSubscriptions();\r\n\r\n this.showDetails = !this.deviceService.IsMobile();\r\n }\r\n\r\n getSubscriptions() {\r\n const onError = (error) => {\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n this.myGreyhoundService\r\n .getSubscriptions(this.initialData.userData.CustomerGuid)\r\n .subscribe((subs) => {\r\n this.subscriptions = subs;\r\n this.items = this.subscriptionForm.get('items') as FormArray;\r\n // this.items.reset();\r\n // this.items = this.fb.array([]);\r\n\r\n _.forEach(this.items.controls, (item, index) => {\r\n this.items.removeAt(index);\r\n });\r\n _.forEach(this.subscriptions, (sub: Subscription, index) => {\r\n this.items.controls[index] = this.fb.control(sub.IsSubscribed);\r\n });\r\n }\r\n , onError);\r\n\r\n }\r\n\r\n refreshList() {\r\n this.getSubscriptions();\r\n }\r\n toggleSubscription(idx: number) {\r\n this.subscriptions[idx].IsSubscribed = !this.subscriptions[idx].IsSubscribed;\r\n return this.subscriptions[idx].IsSubscribed;\r\n }\r\n onUpdatingSubscriptions() {\r\n this.updatingSubs = true;\r\n const subscriptionOptionItems: Array<SubscriptionOptionItem> = [];\r\n _.forEach(this.subscriptions, (sub, index) => {\r\n const selected = this.items.get('' + index).value;\r\n const page = \"profile\";\r\n const isGreyhound = true;\r\n subscriptionOptionItems.push(new SubscriptionOptionItem(sub.NewsLetterID, selected, page, isGreyhound));\r\n });\r\n const options = new SubscriptionOption(subscriptionOptionItems);\r\n\r\n const onError = (error: ApiError) => {\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n\r\n this.myGreyhoundService\r\n .updateSubscriptions(options, this.initialData.userData.CustomerGuid)\r\n .subscribe((subs) => {\r\n this.actionUpdaterService.announceSuccess('Subscriptions updated');\r\n this.updatingSubs = false;\r\n }, onError);\r\n }\r\n\r\n toggleDetails = () => {\r\n this.showDetails = !this.showDetails;\r\n }\r\n\r\n}\r\n\r\nexport class Subscription {\r\n Name: string;\r\n Description: string;\r\n NewsLetterID: string;\r\n IsSubscribed: boolean;\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/subscriptions/subscriptions.component.ts","import { AbstractControl } from '@angular/forms';\r\n\r\nexport function addressValidator(c: AbstractControl): { [key: string]: boolean } | null {\r\n let countryControl = c.get('country');\r\n let stateControl = c.get('state');\r\n let postcodeControl = c.get('postcode');\r\n\r\n //if (stateControl.pristine || postcodeControl.pristine) {\r\n // return null;\r\n //}\r\n\r\n if (countryControl.value != 'Australia') {\r\n return null;\r\n } \r\n /*else if (stateControl.value == '' || postcodeControl.value == '') {\r\n return { 'address': true };\r\n }*/\r\n return null;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/update-details/address.validator.ts","import { AbstractControl } from '@angular/forms';\r\nimport * as moment from 'moment';\r\n\r\nexport function dateCombiner(c: AbstractControl): { [key: string]: boolean } | null {\r\n const day: number = c.get('dobDay').value;\r\n let month = c.get('dobMonth').value;\r\n let year = c.get('dobYear').value;\r\n\r\n const momentDob = moment().year(year).month(month);\r\n if (day > momentDob.daysInMonth()) {\r\n return { 'date': true };\r\n }\r\n \r\n momentDob.date(day);\r\n if (!momentDob.isValid()) {\r\n return { 'date': true };\r\n }\r\n\r\n return null;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/update-details/dob.validator.ts","import { AbstractControl } from '@angular/forms';\r\n\r\nexport function emailMatcher(c: AbstractControl): { [key: string]: boolean } | null {\r\n let emailControl = c.get('email');\r\n let confirmControl = c.get('confirmEmail');\r\n let changeEmailControl = c.get('changeEmail');\r\n let submittedControl = c.get('submitted');\r\n\r\n if (changeEmailControl.value === true) {\r\n if (emailControl.touched && emailControl.value == '') {\r\n return { 'emailRequired': true };\r\n }\r\n if (confirmControl.touched && confirmControl.value == '') {\r\n return { 'confirmRequired': true };\r\n }\r\n\r\n if ((emailControl.pristine || confirmControl.pristine) && submittedControl.value === true) {\r\n return { 'confirmRequired': true, 'emailRequired': true };\r\n }\r\n\r\n if (emailControl.value != confirmControl.value) {\r\n return { 'match': true };\r\n }\r\n }\r\n return null;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/update-details/email-matcher.validator.ts","module.exports = \"<section class=\\\"profile-details\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <gaweb-collapsing-header [title]=\\\"'EDIT PERSONAL DETAILS'\\\" (onHeaderClicked)=\\\"showDetails = !showDetails\\\" [loadsExpanded]=\\\"showDetails\\\"\\r\\n [icon]=\\\"'fa-id-card'\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <div class=\\\"c-header__body col-xs-12 \\\" *ngIf=\\\"showDetails\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <span class=\\\"required-index\\\">* Required information</span>\\r\\n </div>\\r\\n <form class=\\\"form-horizontal\\\" novalidate autocomplete=\\\"off\\\" (ngSubmit)=\\\"save()\\\" [formGroup]=\\\"customerForm\\\">\\r\\n\\r\\n\\r\\n <!--*********************\\r\\n Title\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('title').touched\\r\\n || customerForm.get('title').dirty)\\r\\n && !customerForm.get('title').valid }\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label\\\" for=\\\"titleId\\\">Title</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <select class=\\\"form-control\\\" formControlName=\\\"title\\\">\\r\\n <option *ngFor=\\\"let title of titles\\\" [value]=\\\"title.Value\\\">{{title.Text}}</option>\\r\\n </select>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('firstName').touched || customerForm.get('firstName').dirty) && !customerForm.get('firstName').valid }\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"firstNameId\\\">First Name</label>\\r\\n\\r\\n <!--*********************\\r\\n First Name\\r\\n *********************-->\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"firstNameId\\\" type=\\\"text\\\" formControlName=\\\"firstName\\\" />\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(customerForm.get('firstName').touched ||\\r\\n customerForm.get('firstName').dirty) &&\\r\\n customerForm.get('firstName').errors\\\">\\r\\n <span *ngIf=\\\"customerForm.get('firstName').errors.required\\\">\\r\\n Please enter your first name.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n Last Name\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('lastName').touched || customerForm.get('lastName').dirty) && !customerForm.get('lastName').valid }\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"lastNameId\\\">Last Name</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"lastNameId\\\" type=\\\"text\\\" formControlName=\\\"lastName\\\" />\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(customerForm.get('lastName').touched || customerForm.get('lastName').dirty) && customerForm.get('lastName').errors\\\">\\r\\n <span *ngIf=\\\"customerForm.get('lastName').errors.required\\\">\\r\\n Please enter your last name.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <!--*********************\\r\\n Email Controls\\r\\n *********************-->\\r\\n <div formGroupName=\\\"emailGroup\\\" [ngClass]=\\\"{'has-error': customerForm.get('emailGroup').errors }\\\">\\r\\n\\r\\n <div class=\\\"form-group\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"emailId\\\">Email</label>\\r\\n <div class=\\\"col-xs-12 col-sm-9 email-display\\\">\\r\\n <span class=\\\"change-email__text\\\">\\r\\n {{passenger?.email}}\\r\\n </span>\\r\\n\\r\\n <input type=\\\"hidden\\\" formControlName=\\\"submitted\\\" />\\r\\n <input type=\\\"hidden\\\" formControlName=\\\"changeEmail\\\" />\\r\\n <a class=\\\"btn btn-default btn-xs change-email__link\\\" *ngIf=\\\"!showEmail\\\" (click)=\\\"onChangeEmail()\\\">\\r\\n Change\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n Email Well\\r\\n *********************-->\\r\\n <div class=\\\"well email-well\\\" *ngIf=\\\"showEmail\\\">\\r\\n\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.controls.emailGroup.controls.email.touched ||\\r\\n customerForm.get('emailGroup.email').dirty) &&\\r\\n !customerForm.get('emailGroup.email').valid }\\\">\\r\\n\\r\\n <div class=\\\"col-xs-12 control-label\\\" (click)=\\\"onChangeEmail()\\\">\\r\\n <i class=\\\"fa fa-times email-well__cross\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n\\r\\n <label class=\\\"col-xs-10 col-sm-3 control-label required-label\\\" for=\\\"confirmEmailId\\\">New Email</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9 email-well__input\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"emailId\\\" type=\\\"email\\\" formControlName=\\\"email\\\" />\\r\\n <span class=\\\"help-block\\\">\\r\\n <span *ngIf=\\\"customerForm.get('emailGroup').errors?.emailRequired\\\">\\r\\n Please enter your email address.\\r\\n </span>\\r\\n <span *ngIf=\\\"customerForm.get('emailGroup.email').errors?.pattern\\\">\\r\\n Please enter a valid email address.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('emailGroup.confirmEmail').touched ||\\r\\n customerForm. get('emailGroup.confirmEmail').dirty) &&\\r\\n !customerForm.get('emailGroup.confirmEmail').valid }\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"confirmEmailId\\\">Confirm Email</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9 email-well__input\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"confirmEmailId\\\" type=\\\"email\\\" formControlName=\\\"confirmEmail\\\" />\\r\\n <span class=\\\"help-block\\\">\\r\\n <span *ngIf=\\\"customerForm.get('emailGroup').errors?.confirmRequired\\\">\\r\\n Please confirm your email address.\\r\\n </span>\\r\\n <span *ngIf=\\\"customerForm.get('emailGroup').errors?.match\\\">\\r\\n The confirmation does not match the email address.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n Phone\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': !customerForm.get('phone').valid }\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"phoneId\\\">Phone</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"phoneId\\\" type=\\\"tel\\\" formControlName=\\\"phone\\\" (keyup)=\\\"onKeyUpPhone()\\\"/>\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"customerForm.get('phone').errors\\\">\\r\\n <span *ngIf=\\\"customerForm.get('phone').errors.required\\\">\\r\\n Please enter your phone number.\\r\\n </span>\\r\\n <span *ngIf=\\\"customerForm.get('phone').errors.pattern\\\">\\r\\n Please enter a valid phone number.\\r\\n </span>\\r\\n <span *ngIf=\\\"customerForm.get('phone').errors.maxlength\\\">\\r\\n Phone number must be no longer than 15 characters.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <!--*********************\\r\\n Address Group\\r\\n *********************-->\\r\\n\\r\\n <div formGroupName=\\\"addressGroup\\\" [ngClass]=\\\"{'has-error': customerForm.get('addressGroup').errors }\\\">\\r\\n\\r\\n\\r\\n <!--*********************\\r\\n Country\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('addressGroup.country').touched || customerForm.get('addressGroup.country').dirty)\\r\\n && !customerForm.get('addressGroup.country').valid }\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"countryId\\\">Country</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <select class=\\\"form-control\\\" formControlName=\\\"country\\\" (change)=\\\"onChangeCountry($event)\\\">\\r\\n <option *ngFor=\\\"let country of countries\\\" [value]=\\\"country.Code\\\">{{country.CountryName}}</option>\\r\\n </select>\\r\\n <!--<input formControlName=\\\"country\\\" [typeahead]=\\\"countries\\\" typeaheadOptionField=\\\"CountryName\\\" typeaheadOptionsLimit=\\\"7\\\" typeahespanadMinLength=\\\"0\\\"\\r\\n (typeaheadOnSelect)=\\\"onTypeaheadSelected($event)\\\" class=\\\"form-control\\\">-->\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n State\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('addressGroup.state').touched ||\\r\\n customerForm. get('addressGroup.state').dirty) &&\\r\\n !customerForm.get('addressGroup').valid }\\\" *ngIf=\\\"showPostcodeAndState\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label\\\" for=\\\"stateId\\\">State</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <select class=\\\"form-control\\\" formControlName=\\\"state\\\">\\r\\n <option value=\\\"\\\">Choose</option>\\r\\n <option value=\\\"ACT\\\">Australian Capital Territory</option>\\r\\n <option value=\\\"NSW\\\">New South Wales</option>\\r\\n <option value=\\\"NT\\\">Northern Territory</option>\\r\\n <option value=\\\"QLD\\\">Queensland</option>\\r\\n <option value=\\\"SA\\\">South Australia</option>\\r\\n <option value=\\\"TAS\\\">Tasmania</option>\\r\\n <option value=\\\"VIC\\\">Victoria</option>\\r\\n <option value=\\\"WA\\\">Western Australia</option>\\r\\n </select>\\r\\n </div>\\r\\n <div class=\\\"help-block col-xs-10 col-xs-offset-2\\\" *ngIf=\\\"customerForm.get('addressGroup').errors?.address\\\">\\r\\n Both state and postcode are required for Australia\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n Postcode\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (customerForm.get('addressGroup.postcode').touched || customerForm. get('addressGroup.postcode').dirty)\\r\\n && !customerForm.get('addressGroup').valid }\\\" *ngIf=\\\"showPostcodeAndState\\\">\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label\\\" for=\\\"postcodeId\\\">Postcode</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"postcodeId\\\" type=\\\"tel\\\" formControlName=\\\"postcode\\\" />\\r\\n </div>\\r\\n <div class=\\\"help-block col-xs-10 col-xs-offset-2\\\" *ngIf=\\\"customerForm.get('addressGroup').errors?.address\\\">\\r\\n Both state and postcode are required for Australia\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n DOB\\r\\n *********************-->\\r\\n <div formGroupName=\\\"dobGroup\\\" [ngClass]=\\\"{'has-error': customerForm.get('dobGroup').errors }\\\">\\r\\n\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': dobGroupHasError() }\\\">\\r\\n\\r\\n <label class=\\\"col-xs-12 col-sm-3 control-label required-label\\\" for=\\\"postcodeId\\\">Date of Birth</label>\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-9 dob-group\\\">\\r\\n <!--Day-->\\r\\n <div class=\\\"col-xs-3 col-sm-3\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"dobDayId\\\" type=\\\"tel\\\" formControlName=\\\"dobDay\\\" />\\r\\n </div>\\r\\n\\r\\n <!--Month-->\\r\\n <div class=\\\"col-xs-6 col-sm-6\\\">\\r\\n <select class=\\\"form-control\\\" formControlName=\\\"dobMonth\\\">\\r\\n <option value=\\\"\\\">Choose</option>\\r\\n <option selected value='0'>January</option>\\r\\n <option value='1'>February</option>\\r\\n <option value='2'>March</option>\\r\\n <option value='3'>April</option>\\r\\n <option value='4'>May</option>\\r\\n <option value='5'>June</option>\\r\\n <option value='6'>July</option>\\r\\n <option value='7'>August</option>\\r\\n <option value='8'>September</option>\\r\\n <option value='9'>October</option>\\r\\n <option value='10'>November</option>\\r\\n <option value='11'>December</option>\\r\\n </select>\\r\\n </div>\\r\\n\\r\\n <!--Year-->\\r\\n <div class=\\\"col-xs-3 col-sm-3\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"dobYearId\\\" type=\\\"tel\\\" formControlName=\\\"dobYear\\\" />\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-xs-12 form-group\\\">\\r\\n <div class=\\\"help-block\\\">\\r\\n <div *ngIf=\\\"customerForm.get('dobGroup.dobDay').errors?.required\\\">\\r\\n Please enter your day of birth\\r\\n </div>\\r\\n <div *ngIf=\\\"customerForm.get('dobGroup.dobMonth').errors?.required\\\">\\r\\n Please enter your month of birth\\r\\n </div>\\r\\n <div *ngIf=\\\"customerForm.get('dobGroup.dobYear').errors?.required\\\">\\r\\n Please enter your year of birth\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"customerForm.get('dobGroup.dobDay').errors?.maxlength\\\">\\r\\n Please enter the numeric day birth using no more than two digits\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"customerForm.get('dobGroup.dobYear').errors?.minlength\\\">\\r\\n Please enter the numeric year of your birth using four digits\\r\\n </div>\\r\\n <div *ngIf=\\\"customerForm.get('dobGroup.dobYear').errors?.maxlength\\\">\\r\\n Please enter the numeric year of your birth using four digits\\r\\n </div>\\r\\n\\r\\n <span *ngIf=\\\"customerForm.get('dobGroup').errors?.date\\\">\\r\\n Please enter a valid date of birth\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!--*********************\\r\\n Buttons\\r\\n *********************-->\\r\\n <div class=\\\"form-group\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-8 col-sm-offset-2 update-buttons\\\">\\r\\n <span>\\r\\n <button class=\\\"btn btn-cta btn-block ng-binding update-buttons__update\\\" type=\\\"submit\\\" [disabled]=\\\"!customerForm.valid\\\">\\r\\n Update\\r\\n </button>\\r\\n </span>\\r\\n <span>\\r\\n <button class=\\\"btn btn-default btn-block \\\" type=\\\"button\\\" routerLink=\\\"/my-greyhound/profile\\\">\\r\\n Cancel\\r\\n </button>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </form>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/profile/update-details/update-details.component.html\n// module id = ./src/app/my-greyhound/profile/update-details/update-details.component.html\n// module chunks = common","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { ActivatedRoute, Router, Event, NavigationStart} from '@angular/router';\r\n\r\nimport { Passenger, PassengerResponse } from '../passenger.model';\r\nimport { InitialDataService, Title, Country } from '../../../initial-data.service';\r\nimport { MyGreyhoundService, UpdateCustomerDetailsOptions } from '../../my-greyhound.service';\r\nimport { ActionUpdaterService, ApiError } from '../../../shared/services/action-updater.service';\r\n\r\nimport * as EmailMatcher from './email-matcher.validator';\r\nimport * as AddressValidator from './address.validator';\r\nimport * as DobValidator from './dob.validator';\r\n\r\nimport * as moment from 'moment';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\n\r\n@Component({\r\n selector: 'gaweb-update-details',\r\n templateUrl: './update-details.component.html'\r\n})\r\nexport class UpdateDetailsComponent implements OnInit {\r\n\r\n showDetails: boolean = true;\r\n customerForm: FormGroup;\r\n passenger: Passenger = new Passenger();\r\n showEmail: boolean = false;\r\n titles: Array<Title>;\r\n countries: Array<Country>;\r\n showPostcodeAndState: boolean;\r\n\r\n private AU_NAME = 'Australia';\r\n\r\n public maxDate: Date = void 0;\r\n public initDate: Date = void 0;\r\n\r\n @Output() checkIfFormIsValid = new EventEmitter();\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private initialData: InitialDataService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private actionUpdaterService: ActionUpdaterService) { }\r\n\r\n ngOnInit(): void {\r\n this.populatePassengerDetails(this.route.snapshot.data['passenger']);\r\n this.titles = this.initialData.titles;\r\n this.countries = this.initialData.countries;\r\n this.setupForm();\r\n\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationStart) {\r\n this.actionUpdaterService.announceClear(true);\r\n }\r\n // NavigationEnd\r\n // NavigationCancel\r\n // NavigationError\r\n // RoutesRecognized\r\n });\r\n\r\n }\r\n\r\n setupForm() {\r\n this.customerForm = this.fb.group({\r\n title: [this.passenger.title || 'Choose'],\r\n firstName: [this.passenger.firstName, [Validators.required, Validators.pattern('^.{2,}$')]],\r\n lastName: [this.passenger.surname, [Validators.required, Validators.maxLength(50), Validators.pattern('^.{2,}$')]],\r\n emailGroup: this.fb.group({\r\n changeEmail: false,\r\n email: ['', [Validators.pattern('[a-z0-9._%+-]+@[a-z0-9.-]+')]],\r\n confirmEmail: '',\r\n submitted: false\r\n }, { validator: EmailMatcher.emailMatcher }),\r\n phone: [this.passenger.phone, [Validators.pattern(GxConstants.PHONE_PATTERN), Validators.required, Validators.maxLength(15)]],\r\n addressGroup: this.fb.group({\r\n //country: [this.setInitialCountry(), Validators.required],\r\n country: [this.passenger.country, Validators.required],\r\n address: this.passenger.address,\r\n city: this.passenger.city,\r\n state: this.passenger.state,\r\n postcode: [this.passenger.postcode, [Validators.minLength(4), Validators.maxLength(4)]]\r\n }, { validator: AddressValidator.addressValidator }),\r\n dobGroup: this.fb.group({\r\n dobDay: [this.passenger.dobDay, [Validators.required, Validators.maxLength(2)]],\r\n dobMonth: [this.passenger.dobMonth, Validators.required],\r\n dobYear: [this.passenger.dobYear, [Validators.required, Validators.minLength(4), Validators.maxLength(4)]]\r\n }, { validator: DobValidator.dateCombiner }),\r\n });\r\n\r\n if(this.passenger.country == \"AU\") {\r\n this.showPostcodeAndState = true;\r\n }\r\n else {\r\n this.showPostcodeAndState = false;\r\n }\r\n }\r\n\r\n save() {\r\n const emailControl = this.customerForm.get('emailGroup.email'),\r\n changeEmailControl = this.customerForm.get('emailGroup.changeEmail'),\r\n confirmControl = this.customerForm.get('emailGroup.confirmEmail');\r\n\r\n const day: number = this.customerForm.get('dobGroup.dobDay').value,\r\n month = this.customerForm.get('dobGroup.dobMonth').value,\r\n year = this.customerForm.get('dobGroup.dobYear').value;\r\n const dob = moment().year(year).month(month).date(day).toDate();\r\n\r\n const onError = (error: ApiError) => {\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n\r\n this.setFormToSubmittedAndRunValidation(changeEmailControl, emailControl, confirmControl);\r\n\r\n let options = this.constructUpdateCustomerDetailsOptions(changeEmailControl, emailControl, dob);\r\n this.myGreyhoundService\r\n .updateCustomerDetails(options)\r\n .subscribe((response) => {\r\n this.actionUpdaterService.announceSuccess('Personal Details updated');\r\n this.router.navigate(['my-greyhound/profile'])\r\n }, onError);\r\n }\r\n\r\n private dobGroupHasError() {\r\n const dayHasError = (this.customerForm.get('dobGroup.dobDay').touched || this.customerForm.get('dobGroup.dobDay').dirty)\r\n && !this.customerForm.get('dobGroup.dobDay').valid;\r\n const monthHasError = (this.customerForm.get('dobGroup.dobMonth').touched || this.customerForm.get('dobGroup.dobMonth').dirty)\r\n && !this.customerForm.get('dobGroup.dobMonth').valid;\r\n const yearHasError = (this.customerForm.get('dobGroup.dobYear').touched || this.customerForm.get('dobGroup.dobYear').dirty)\r\n && !this.customerForm.get('dobGroup.dobYear').valid;\r\n return dayHasError || monthHasError || yearHasError;\r\n }\r\n\r\n private constructUpdateCustomerDetailsOptions(changeEmailControl, emailControl, dob: Date) {\r\n let options = new UpdateCustomerDetailsOptions();\r\n options.CustomerGUID = this.initialData.userData.CustomerGuid;\r\n options.Title = this.customerForm.get('title').value;\r\n if(options.Title == \"Choose\") {\r\n options.Title = \"\";\r\n }\r\n options.FirstName = this.customerForm.get('firstName').value;\r\n options.Surname = this.customerForm.get('lastName').value;\r\n options.Phone = this.customerForm.get('phone').value;\r\n //options.CountryCode = this.getCountryCode(this.customerForm.get('addressGroup.country').value);\r\n options.CountryCode = this.customerForm.get('addressGroup.country').value;\r\n options.Country = this.customerForm.get('addressGroup.country').value;\r\n if(options.Country == \"AU\") {\r\n options.State = this.customerForm.get('addressGroup.state').value;\r\n options.Postcode = this.customerForm.get('addressGroup.postcode').value;\r\n }\r\n options.Address = this.customerForm.get('addressGroup.address').value;\r\n options.City = this.customerForm.get('addressGroup.city').value;\r\n options.Dob = dob;\r\n options.Source = this.passenger.source;\r\n\r\n if (changeEmailControl.value === true) {\r\n options.Email = emailControl.value;\r\n } else {\r\n options.Email = this.passenger.email;\r\n }\r\n return options;\r\n }\r\n\r\n private setFormToSubmittedAndRunValidation(changeEmailControl, emailControl, confirmControl) {\r\n if ((emailControl.pristine || confirmControl.pristine) && changeEmailControl.value === true) {\r\n this.customerForm.patchValue({ emailGroup: { submitted: true } });\r\n this.customerForm.updateValueAndValidity();\r\n return false;\r\n }\r\n }\r\n\r\n setInitialCountry = () => {\r\n const currentCountry: Array<Country> = this.countries.filter(i => i.Code === this.passenger.country);\r\n if (currentCountry && currentCountry.length > 0) {\r\n const countryName = currentCountry[0].CountryName;\r\n this.showPostcodeAndState = countryName === this.AU_NAME;\r\n return countryName;\r\n }\r\n return '';\r\n }\r\n\r\n private getCountryCode = (countryName: string) => {\r\n const currentCountry: Array<Country> = this.countries.filter(i => i.CountryName === countryName);\r\n return currentCountry && currentCountry.length > 0 ? currentCountry[0].Code : '';\r\n }\r\n\r\n onChangeEmail() {\r\n this.showEmail = !this.showEmail;\r\n this.customerForm.patchValue({ emailGroup: { changeEmail: this.showEmail } });\r\n if (!this.showEmail) {\r\n this.customerForm.patchValue({ emailGroup: { email: '' } });\r\n this.customerForm.patchValue({ emailGroup: { confirmEmail: '' } });\r\n }\r\n\r\n }\r\n\r\n populatePassengerDetails(passenger: PassengerResponse) {\r\n this.passenger.title = passenger.Title;\r\n this.passenger.firstName = passenger.FirstName;\r\n this.passenger.surname = passenger.Surname;\r\n this.passenger.email = passenger.Email;\r\n this.passenger.phone = passenger.Phone;\r\n this.passenger.address = passenger.Address1;\r\n this.passenger.city = passenger.City;\r\n this.passenger.state = passenger.State;\r\n this.passenger.postcode = passenger.PostCode;\r\n this.passenger.country = passenger.Country;\r\n this.passenger.source = passenger.Source;\r\n this.passenger.dob = passenger.DOB;\r\n const momentDob = moment(passenger.DOB);\r\n this.passenger.dobDay = momentDob.isValid() ? momentDob.date() : '';\r\n this.passenger.dobMonth = momentDob.isValid() ? momentDob.month() : '';\r\n this.passenger.dobYear = momentDob.isValid() ? momentDob.year() : '';\r\n }\r\n\r\n onChangeCountry(event){\r\n this.showPostcodeAndState = event.target.value == \"AU\";\r\n this.customerForm.patchValue({ addressGroup: { state: '' } });\r\n this.customerForm.patchValue({ addressGroup: { postcode: '' } });\r\n }\r\n\r\n onKeyUpPhone() {\r\n this.checkIfFormIsValid.emit(false);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/profile/update-details/update-details.component.ts","module.exports = \"<script src=\\\"https://www.google.com/recaptcha/api.js?render=6LcjMU0pAAAAAGeRD1ZVqOtfWeY7wnMaGdorydNl\\\"></script>\\r\\n\\r\\n<div class=\\\"col-xs-12 col-sm-4 col-xs-offset-0 col-sm-offset-4\\\">\\r\\n <gaweb-toast></gaweb-toast>\\r\\n</div>\\r\\n<div class=\\\"container\\\">\\r\\n <div class=\\\"subscription-confirmation-form\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <i class=\\\"fa fa-check-circle fa-5x success text-success\\\" style=\\\"font-size: 60px;\\\"></i>\\r\\n </div>\\r\\n <div *ngIf=\\\"successfulActivation\\\">\\r\\n <div class=\\\"row text-center\\\">\\r\\n\\r\\n <h3>Your subscription has been successfully confirmed</h3>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"alreadyActivated\\\">\\r\\n <div class=\\\"row text-center\\\">\\r\\n <h3>Your subscription has already been confirmed</h3>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div tyle=\\\"padding: 15px;\\r\\n margin-bottom: 10px;\\\">\\r\\n <p>\\r\\n You are now subscribed to the following newsletters. You can update your preferences to subscribe or\\r\\n unsubscribe to our other newsletters.\\r\\n </p>\\r\\n <div *ngIf=\\\"!invalidGuid\\\">\\r\\n <div>\\r\\n <div *ngIf=\\\"!!subscriptions && !!subscriptions.length; then subscriptionList else noSubscriptions\\\">\\r\\n </div>\\r\\n <div>\\r\\n <ng-template #subscriptionList>\\r\\n <form novalidate [formGroup]=\\\"subscriptionForm\\\" (ngSubmit)=\\\"onUpdatingSubscriptions()\\\">\\r\\n <div formArrayName=\\\"items\\\">\\r\\n <div class=\\\"row\\\"\\r\\n *ngFor=\\\"let control of subscriptionForm.get('items').controls; let i = index;\\\">\\r\\n\\r\\n <div class=\\\"col-xs-12 col-sm-8 col-xs-offset-0 col-sm-offset-2\\\">\\r\\n <div class=\\\"checkbox\\\">\\r\\n <span class=\\\"{{ control.value == true ? 'checked' : 'unchecked'}}\\\"></span>\\r\\n <label>\\r\\n <input type=\\\"checkbox\\\" [formControl]=\\\"control\\\" />\\r\\n {{subscriptions[i].Name}}\\r\\n <div class=\\\"subscription__body\\\" style=\\\"opacity: 0.6; font-weight: 400;\\\">\\r\\n {{subscriptions[i].Description}}</div>\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <br>\\r\\n <button class=\\\"btn btn-block\\\"\\r\\n [ngClass]=\\\"{ 'btn-cta-secondary' : (updating || !subscriptionForm.dirty), 'btn-cta' : (!updating && subscriptionForm.dirty) }\\\"\\r\\n type=\\\"submit\\\" [disabled]=\\\"updating || !subscriptionForm.dirty\\\">\\r\\n <span>\\r\\n <div *ngIf=\\\"updating\\\">\\r\\n <i class=\\\"fa fa-refresh fa-spin\\\"></i> Updating...\\r\\n </div>\\r\\n <div *ngIf=\\\"!updating\\\">Update Subscriptions</div>\\r\\n </span>\\r\\n </button>\\r\\n </div>\\r\\n </form>\\r\\n </ng-template>\\r\\n <ng-template #noSubscriptions>\\r\\n <h3>Sorry, but you do not have any subscriptions with Greyhound Australia</h3>\\r\\n <p>If you believe this is incorrect, or you are still receiving emails when you're not expecting\\r\\n to,\\r\\n please send us an email via the Contact Form and we'll do our best to help you.</p>\\r\\n </ng-template>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <!-- <div class=\\\"col-xs-12 col-sm-8 col-xs-offset-0 col-sm-offset-2\\\">\\r\\n <small>If you are having difficulties accessing your account, please contact us on\\r\\n <a href=\\\"tel:1300473946\\\">1300 473 946</a>Â or use our\\r\\n <a href=\\\"/information/contact-us\\\" title=\\\"Contact Us\\\">enquiry form</a>.</small>\\r\\n </div> -->\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/my-greyhound/subscription-confirmation/subscription-confirmation.component.html\n// module id = ./src/app/my-greyhound/subscription-confirmation/subscription-confirmation.component.html\n// module chunks = common","import { GxConstants } from \"app/shared/constants/gx.constants\";\r\nimport {\r\n ApiError,\r\n ActionUpdaterService\r\n} from \"app/shared/services/action-updater.service\";\r\nimport { InitialDataService } from \"app/initial-data.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Component, OnInit, Output, EventEmitter, Input } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, Validators, FormArray } from \"@angular/forms\";\r\nimport {\r\n MyGreyhoundService,\r\n ActivateCustomerUsingResetKey,\r\n UpdateCustomerPassword,\r\n ForgotPassword,\r\n SubscriptionOptionItem,\r\n SubscriptionOption\r\n} from \"../my-greyhound.service\";\r\nimport { Subscription } from '../profile/subscriptions/subscriptions.component';\r\nimport * as _ from 'lodash';\r\n\r\ndeclare var grecaptcha: any;\r\nconst siteKey = '6LcjMU0pAAAAAGeRD1ZVqOtfWeY7wnMaGdorydNl';\r\n\r\n@Component({\r\n selector: 'gaweb-subscription-confirmation',\r\n templateUrl: './subscription-confirmation.component.html'\r\n})\r\nexport class SubscriptionConfirmationComponent implements OnInit {\r\n setting: boolean;\r\n form: FormGroup;\r\n\r\n subscriptionForm: FormGroup;\r\n subscriptions: Subscription[];\r\n items: FormArray;\r\n tcAccepted = false;\r\n\r\n successfulActivation: boolean;\r\n alreadyActivated: boolean;\r\n notRecognisedOrNotProvided: boolean;\r\n customerGuid: string;\r\n activationKey: string;\r\n invalidGuid: boolean;\r\n loading: boolean;\r\n anySubscribed: boolean;\r\n unsubscribed: boolean;\r\n updating: boolean;\r\n constructor(\r\n private fb: FormBuilder,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private activatedRoute: ActivatedRoute,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private initialDataService: InitialDataService\r\n ) {\r\n this.buildForm();\r\n this.subscriptionForm = this.fb.group({\r\n items: this.fb.array([])\r\n });\r\n }\r\n private buildForm() {\r\n this.form = this.fb.group(\r\n {\r\n password: [\r\n null,\r\n [\r\n Validators.required,\r\n Validators.maxLength(50),\r\n Validators.pattern(GxConstants.PASSWORD_PATTERN)\r\n ]\r\n ],\r\n confirmPassword: [\r\n null,\r\n [\r\n Validators.required,\r\n Validators.maxLength(50),\r\n Validators.pattern(GxConstants.PASSWORD_PATTERN)\r\n ]\r\n ]\r\n },\r\n { validator: this.matchValidator }\r\n );\r\n }\r\n matchValidator(group: FormGroup) {\r\n let valid;\r\n\r\n const password = group.get('password');\r\n const confirmPassword = group.get('confirmPassword');\r\n\r\n valid = password.value === confirmPassword.value;\r\n\r\n if (valid) {\r\n return null;\r\n }\r\n\r\n return {\r\n mismatch: true\r\n };\r\n }\r\n ngOnInit() {\r\n const that = this;\r\n $('#checkboxContainer').on('mouseup', function() {\r\n if ($('#dataCheckbox').hasClass('checked')) {\r\n $('#dataCheckbox').removeClass('checked');\r\n that.tcAccepted = false;\r\n } else {\r\n $('#dataCheckbox').addClass('checked');\r\n that.tcAccepted = true;\r\n }\r\n });\r\n\r\n this.loading = true;\r\n this.activatedRoute.params.subscribe(params => {\r\n const reference = params['reference'];\r\n if (!!reference) {\r\n const idxFirstDash = reference.indexOf('-');\r\n const activationKeyLength = 36;\r\n this.customerGuid = reference.substring(0, activationKeyLength);\r\n this.activationKey = reference.substring(activationKeyLength);\r\n\r\n this.getSubscriptions();\r\n\r\n const activateCustomerUsingResetKey = new ActivateCustomerUsingResetKey(\r\n this.activationKey,\r\n false,\r\n this.customerGuid,\r\n true\r\n );\r\n this.myGreyhoundService\r\n .activateCustomerUsingResetKey(\r\n activateCustomerUsingResetKey\r\n )\r\n .subscribe(\r\n response => {\r\n this.successfulActivation = true;\r\n this.alreadyActivated = false;\r\n this.notRecognisedOrNotProvided = false;\r\n },\r\n (error: ApiError) => {\r\n this.successfulActivation = false;\r\n if (\r\n error.summary === 'Customer already activated'\r\n ) {\r\n this.alreadyActivated = true;\r\n this.notRecognisedOrNotProvided = false;\r\n } else {\r\n this.alreadyActivated = false;\r\n this.notRecognisedOrNotProvided = true;\r\n }\r\n }\r\n );\r\n } else {\r\n this.notRecognisedOrNotProvided = true;\r\n }\r\n });\r\n }\r\n save() {\r\n grecaptcha.ready(() => {\r\n grecaptcha.execute(siteKey, {action: 'forgotPassword'}).then((token) => {\r\n const { password } = this.form.getRawValue();\r\n this.myGreyhoundService\r\n .getPassengerDetails(this.customerGuid)\r\n .subscribe(customerDetails => {\r\n const forgotPassword = new ForgotPassword(\r\n customerDetails.Email,\r\n token,\r\n false\r\n );\r\n this.myGreyhoundService\r\n .forgotPassword(forgotPassword)\r\n .subscribe(response => {\r\n this.myGreyhoundService\r\n .getPassengerDetails(this.customerGuid)\r\n .subscribe(customer => {\r\n this.activationKey = customer.ResetKey;\r\n const updateCustomerPassword = new UpdateCustomerPassword(\r\n this.activationKey,\r\n password,\r\n null,\r\n 'reset'\r\n );\r\n this.setting = true;\r\n this.myGreyhoundService\r\n .updateCustomerPassword(\r\n updateCustomerPassword\r\n )\r\n .subscribe(\r\n response => {\r\n window.location.href = this.initialDataService.initialData.LoginUrl;\r\n this.setting = false;\r\n },\r\n error => {\r\n this.setting = false;\r\n }\r\n );\r\n });\r\n });\r\n });\r\n });\r\n });\r\n }\r\n\r\n getSubscriptions() {\r\n const onError = error => {\r\n this.invalidGuid = true;\r\n this.loading = false;\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n this.anySubscribed = false;\r\n if (!!this.customerGuid) {\r\n this.myGreyhoundService\r\n .getSubscriptions(this.customerGuid)\r\n .subscribe((subs: Subscription[]) => {\r\n this.invalidGuid = false;\r\n this.subscriptions = subs;\r\n this.items = this.subscriptionForm.get(\r\n 'items'\r\n ) as FormArray;\r\n // this.items.reset();\r\n // this.items = this.fb.array([]);\r\n\r\n _.forEach(this.items.controls, (item, index) => {\r\n this.items.removeAt(index);\r\n });\r\n _.forEach(\r\n this.subscriptions,\r\n (sub: Subscription, index) => {\r\n this.items.controls[index] = this.fb.control(\r\n sub.IsSubscribed\r\n );\r\n this.items.controls[index].valueChanges.subscribe(value => {\r\n this.subscriptionForm.markAsDirty();\r\n });\r\n this.anySubscribed =\r\n this.anySubscribed || sub.IsSubscribed;\r\n }\r\n );\r\n this.loading = false;\r\n }, onError);\r\n } else {\r\n this.loading = false;\r\n }\r\n }\r\n\r\n onUpdatingSubscriptions() {\r\n const subscriptionOptionItems: Array<SubscriptionOptionItem> = [];\r\n _.forEach(this.subscriptions, (sub, index) => {\r\n const selected = this.items.get('' + index).value;\r\n const page = \"activation\";\r\n const isGreyhound = true;\r\n subscriptionOptionItems.push(new SubscriptionOptionItem(sub.NewsLetterID, selected, page, isGreyhound));\r\n });\r\n const options = new SubscriptionOption(subscriptionOptionItems);\r\n\r\n const onError = (error: ApiError) => {\r\n this.unsubscribed = false;\r\n this.updating = false;\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n this.updating = true;\r\n this.myGreyhoundService\r\n .updateSubscriptions(options, this.customerGuid)\r\n .subscribe((subs) => {\r\n this.updating = false;\r\n this.unsubscribed = true;\r\n this.actionUpdaterService.announceSuccess('Subscriptions updated');\r\n }, onError);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/subscription-confirmation/subscription-confirmation.component.ts"],"sourceRoot":"webpack:///"}