{"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}}&nbsp;{{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:&nbsp;{{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:&nbsp;{{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\">&times;</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:///"}