{"version":3,"sources":["./node_modules/moment/locale ^\\.\\/.*$","./src/$_lazy_route_resource lazy","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/auth.service.ts","./src/app/initial-data.service.ts","./src/app/my-greyhound/my-greyhound.service.ts","./src/app/shared/animations/hidden-collapse-animation.ts","./src/app/shared/components/busymessage/busymessage.directive.ts","./src/app/shared/components/collapsing-header/collapsing-header.component.html","./src/app/shared/components/collapsing-header/collapsing-header.component.ts","./src/app/shared/components/confirmation-booking-detail/confirmation-booking-detail.component.html","./src/app/shared/components/confirmation-booking-detail/confirmation-booking-detail.component.ts","./src/app/shared/components/counter/counter.component.html","./src/app/shared/components/counter/counter.component.ts","./src/app/shared/components/datetime/datetime.component.html","./src/app/shared/components/datetime/datetime.component.ts","./src/app/shared/components/error-summary/error-handler.function.ts","./src/app/shared/components/error-summary/error-summary.component.ts","./src/app/shared/components/google-map/google-map.component.ts","./src/app/shared/components/home-passenger-options/home-passenger-options.component.html","./src/app/shared/components/home-passenger-options/home-passenger-options.component.ts","./src/app/shared/components/info/info.component.html","./src/app/shared/components/info/info.component.ts","./src/app/shared/components/is-arriving/is-arriving.component.ts","./src/app/shared/components/is-return/is-return.component.ts","./src/app/shared/components/itinerary/inclusions/inclusions.component.html","./src/app/shared/components/itinerary/inclusions/inclusions.component.ts","./src/app/shared/components/itinerary/itinerary.component.html","./src/app/shared/components/itinerary/itinerary.component.ts","./src/app/shared/components/itinerary/travel-dates/availability-table/availability-table.component.html","./src/app/shared/components/itinerary/travel-dates/availability-table/availability-table.component.ts","./src/app/shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component.html","./src/app/shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component.ts","./src/app/shared/components/itinerary/travel-dates/change-sector-date/change-sector-date.component.html","./src/app/shared/components/itinerary/travel-dates/change-sector-date/change-sector-date.component.ts","./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons-wrapper.component.html","./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons-wrapper.component.ts","./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons/open-addons.component.html","./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons/open-addons.component.ts","./src/app/shared/components/itinerary/travel-dates/return-date.validator.ts","./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons-wrapper.component.html","./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons-wrapper.component.ts","./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons/sector-addons.component.html","./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons/sector-addons.component.ts","./src/app/shared/components/itinerary/travel-dates/sector/sector.component.html","./src/app/shared/components/itinerary/travel-dates/sector/sector.component.ts","./src/app/shared/components/itinerary/travel-dates/travel-alternatives-panel/travel-alternatives-panel.component.html","./src/app/shared/components/itinerary/travel-dates/travel-alternatives-panel/travel-alternatives-panel.component.ts","./src/app/shared/components/itinerary/travel-dates/travel-dates.component.html","./src/app/shared/components/itinerary/travel-dates/travel-dates.component.ts","./src/app/shared/components/page-transition/page-transition.component.ts","./src/app/shared/components/pick-a-date/pick-a-date.component.html","./src/app/shared/components/pick-a-date/pick-a-date.component.ts","./src/app/shared/components/pick-a-date/pickadate.directive.ts","./src/app/shared/components/pick-stop/pick-stop.component.html","./src/app/shared/components/pick-stop/pick-stop.component.less","./src/app/shared/components/pick-stop/pick-stop.component.ts","./src/app/shared/components/pick-time/pick-a-time.component.ts","./src/app/shared/components/pick-time/pickatime.directive.ts","./src/app/shared/components/purchase-total-wrapper/purchase-total-wrapper.component.html","./src/app/shared/components/purchase-total-wrapper/purchase-total-wrapper.component.ts","./src/app/shared/components/running-dog-modal/running-dog-modal.component.ts","./src/app/shared/components/scroll-to-on/scroll-to-on.directive.ts","./src/app/shared/components/seat-allocations/seat-allocations.component.html","./src/app/shared/components/seat-allocations/seat-allocations.component.ts","./src/app/shared/components/select-list/select-list.component.html","./src/app/shared/components/select-list/select-list.component.ts","./src/app/shared/components/slick-slider/slick-slider.component.ts","./src/app/shared/components/special-assistance/special-assistance.component.html","./src/app/shared/components/special-assistance/special-assistance.component.ts","./src/app/shared/components/steps-indicator/steps-indicator.component.ts","./src/app/shared/components/toast/toast.component.ts","./src/app/shared/components/trip-details/trip-details.component.html","./src/app/shared/components/trip-details/trip-details.component.ts","./src/app/shared/components/update-subcriptions/update-subscriptions.component.html","./src/app/shared/components/update-subcriptions/update-subscriptions.component.ts","./src/app/shared/constants/gx.constants.ts","./src/app/shared/dialogs/alert-dialog/alert-dialog.component.html","./src/app/shared/dialogs/alert-dialog/alert-dialog.component.ts","./src/app/shared/dialogs/confirm-dialog/confirm-dialog.component.html","./src/app/shared/dialogs/confirm-dialog/confirm-dialog.component.ts","./src/app/shared/dialogs/select-option-set-dialog/select-option-set-dialog.component.html","./src/app/shared/dialogs/select-option-set-dialog/select-option-set-dialog.component.ts","./src/app/shared/errors/ApplicationError.ts","./src/app/shared/models/app-events-types.model.ts","./src/app/shared/models/app-events.model.ts","./src/app/shared/models/availability.model.ts","./src/app/shared/models/booking-total.model.ts","./src/app/shared/models/booking.model.ts","./src/app/shared/models/dictonary.model.ts","./src/app/shared/models/enums/ProductTypeUrl.enum.ts","./src/app/shared/models/enums/context.enum.ts","./src/app/shared/models/events.model.ts","./src/app/shared/models/passenger.model.ts","./src/app/shared/models/timetables.model.ts","./src/app/shared/pipes/filter.pipe.ts","./src/app/shared/pipes/gx-date.pipe.ts","./src/app/shared/pipes/pretty-passenger.pipe.ts","./src/app/shared/pipes/safe-html.pipe.ts","./src/app/shared/pipes/translate.pipe.ts","./src/app/shared/resolver/generic.resolve.ts","./src/app/shared/services/action-updater.service.ts","./src/app/shared/services/addons.service.ts","./src/app/shared/services/autocomplete-off.service.ts","./src/app/shared/services/booking.service.ts","./src/app/shared/services/cart-total.service.ts","./src/app/shared/services/credit-card.service.ts","./src/app/shared/services/device.service.ts","./src/app/shared/services/error.service.ts","./src/app/shared/services/event-bus.service.ts","./src/app/shared/services/express-booking-widget.ts","./src/app/shared/services/fares.service.ts","./src/app/shared/services/feature.service.ts","./src/app/shared/services/gx-utils.service.ts","./src/app/shared/services/headless-cms.service.ts","./src/app/shared/services/km-pass.service.ts","./src/app/shared/services/local-storage.service.ts","./src/app/shared/services/passenger-options-state.service.ts","./src/app/shared/services/passenger.service.ts","./src/app/shared/services/payment.service.ts","./src/app/shared/services/reference-data.service.ts","./src/app/shared/services/sector-addons.service.ts","./src/app/shared/services/timetable-service.ts","./src/app/shared/services/travel-product.service.ts","./src/app/shared/services/travel.service.ts","./src/app/shared/services/umbraco.service.ts","./src/app/shared/services/window.service.ts","./src/app/shared/shared.module.ts","./src/app/third-party/UniDays/unidays.component.html","./src/app/third-party/UniDays/unidays.component.ts","./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.html","./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.less","./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.ts","./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.html","./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.less","./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.ts","./src/app/travel-products/product-passenger-details/summary/summary.component.html","./src/app/travel-products/product-passenger-details/summary/summary.component.ts","./src/app/travel-products/product-payment/payment-form/payment-form.component.html","./src/app/travel-products/product-payment/payment-form/payment-form.component.ts","./src/app/travel-products/product-payment/product-payment.component.html","./src/app/travel-products/product-payment/product-payment.component.ts","./src/app/travel-products/seat-confirmation/seat-confirmation.component.html","./src/app/travel-products/seat-confirmation/seat-confirmation.component.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main.bundle.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale recursive ^\\\\.\\\\/.*$\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = ./node_modules/moment/locale recursive ^\\.\\/.*$\n// module chunks = main","var map = {\n\t\"app/contact-us/contact-us.module\": [\n\t\t\"./src/app/contact-us/contact-us.module.ts\",\n\t\t\"contact-us.module\"\n\t],\n\t\"app/home/home.module\": [\n\t\t\"./src/app/home/home.module.ts\",\n\t\t\"home.module\"\n\t],\n\t\"app/information/information.module\": [\n\t\t\"./src/app/information/information.module.ts\",\n\t\t\"information.module\"\n\t],\n\t\"app/my-experience/my-experience.module\": [\n\t\t\"./src/app/my-experience/my-experience.module.ts\",\n\t\t\"my-experience.module\"\n\t],\n\t\"app/my-greyhound/my-greyhound.module\": [\n\t\t\"./src/app/my-greyhound/my-greyhound.module.ts\",\n\t\t\"common\"\n\t],\n\t\"app/my-greyhound/newsletter.module\": [\n\t\t\"./src/app/my-greyhound/newsletter.module.ts\",\n\t\t\"common\",\n\t\t\"newsletter.module\"\n\t],\n\t\"app/printable-timetables/printable-timetables.module\": [\n\t\t\"./src/app/printable-timetables/printable-timetables.module.ts\",\n\t\t\"printable-timetables.module\"\n\t],\n\t\"app/service-updates/service-updates.module\": [\n\t\t\"./src/app/service-updates/service-updates.module.ts\",\n\t\t\"service-updates.module\"\n\t],\n\t\"app/timetables/timetables.module\": [\n\t\t\"./src/app/timetables/timetables.module.ts\",\n\t\t\"timetables.module\"\n\t],\n\t\"app/travel-products/travel-products.module\": [\n\t\t\"./src/app/travel-products/travel-products.module.ts\",\n\t\t\"common\",\n\t\t\"travel-products.module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/$$_lazy_route_resource lazy\n// module id = ./src/$$_lazy_route_resource lazy recursive\n// module chunks = main","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { UniDaysComponent } from './third-party/UniDays/unidays.component';\r\nimport { SubscribeToNewsletterComponent } from './my-greyhound/subscribe-to-newsletter/subscribe-to-newsletter.component';\r\n\r\nconst routes: Routes = [\r\n // { path: '', redirectTo: '/', pathMatch: 'full' },\r\n {\r\n path: '',\r\n loadChildren: 'app/home/home.module#HomeModule',\r\n },\r\n // These two routes are created by the umbraco urlrewriting.config system\r\n { path: 'coach-travel/make-a-booking', redirectTo: 'book-a-trip', pathMatch: 'full' },\r\n { path: 'coach-travel/make-a-booking/:context', redirectTo: 'book-a-trip', pathMatch: 'full' },\r\n { path: 'book-a-ticket', redirectTo: 'book-a-trip', pathMatch: 'full' },\r\n { path: 'manage-booking', redirectTo: 'manage-booking', pathMatch: 'full' },\r\n { path: 'my-greyhound/manage-booking', redirectTo: 'manage-booking', pathMatch: 'full' },\r\n { path: 'my-greyhound/manage-booking/:context', redirectTo: 'manage-booking', pathMatch: 'full' },\r\n {\r\n path: 'my-greyhound',\r\n loadChildren: 'app/my-greyhound/my-greyhound.module#MyGreyhoundModule',\r\n },\r\n {\r\n path: 'my-experience',\r\n loadChildren: 'app/my-experience/my-experience.module#MyExperienceModule',\r\n },\r\n {\r\n path: 'packages',\r\n loadChildren: 'app/travel-products/travel-products.module#TravelProductsModule',\r\n },\r\n {\r\n path: 'experiences',\r\n loadChildren: 'app/travel-products/travel-products.module#TravelProductsModule',\r\n },\r\n {\r\n path: 'accommodation',\r\n loadChildren: 'app/travel-products/travel-products.module#TravelProductsModule',\r\n },\r\n {\r\n path: 'coach-travel',\r\n loadChildren: 'app/travel-products/travel-products.module#TravelProductsModule',\r\n },\r\n {\r\n path: 'book-a-ticket',\r\n loadChildren: 'app/travel-products/travel-products.module#TravelProductsModule',\r\n },\r\n {\r\n path: 'information',\r\n loadChildren: 'app/information/information.module#InformationModule'\r\n },\r\n {\r\n path: 'newsletter',\r\n loadChildren: 'app/my-greyhound/newsletter.module#NewsletterModule'\r\n },\r\n {\r\n path: 'newsletter-b',\r\n loadChildren: 'app/my-greyhound/newsletter.module#NewsletterModule'\r\n },\r\n {\r\n path: 'travel-information',\r\n loadChildren: 'app/information/information.module#InformationModule'\r\n },\r\n {\r\n path: 'contact-us',\r\n loadChildren: 'app/contact-us/contact-us.module#ContactUsModule'\r\n },\r\n {\r\n path: 'unidays',\r\n component: UniDaysComponent,\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n declarations: [\r\n UniDaysComponent\r\n ]\r\n})\r\nexport class AppRoutingModule { }\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app-routing.module.ts","import { Component, ElementRef, AfterViewChecked } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport * as _ from 'lodash';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { AuthService } from './auth.service';\r\nimport { InitialDataService } from './initial-data.service';\r\n\r\n@Component({\r\n selector: 'gaweb-root',\r\n template: ``,\r\n styles: []\r\n})\r\nexport class AppComponent implements AfterViewChecked {\r\n\r\n private scrollExecuted: boolean = false;\r\n\r\n constructor(elm: ElementRef,\r\n private initialDataService: InitialDataService,\r\n private activatedRoute: ActivatedRoute) {\r\n initialDataService.initialData = JSON.parse(elm.nativeElement.getAttribute('initial-data'));\r\n }\r\n\r\n ngAfterViewChecked() {\r\n // Automatic scroll to error summary in angular 2\r\n if (!this.scrollExecuted) {\r\n let routeFragmentSubscription: Subscription;\r\n routeFragmentSubscription =\r\n this.activatedRoute.fragment\r\n .subscribe(fragment => {\r\n if (fragment) {\r\n let element = document.getElementById(fragment);\r\n if (element) {\r\n element.scrollIntoView(true);\r\n this.scrollExecuted = true;\r\n setTimeout(\r\n () => {\r\n routeFragmentSubscription.unsubscribe();\r\n }, 500);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.component.ts","import { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, ErrorHandler } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { Ng2PageScrollModule } from 'ng2-page-scroll';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { InitialDataService } from './initial-data.service';\r\nimport { AuthService, AuthServiceConfig } from './auth.service';\r\nimport { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n HttpModule,\r\n AppRoutingModule,\r\n SharedModule.forRoot(),\r\n Ng2PageScrollModule.forRoot()\r\n ],\r\n providers: [\r\n AuthService,\r\n Title,\r\n InitialDataService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/app.module.ts","import { Injectable, Optional } from '@angular/core';\r\n\r\nexport class AuthServiceConfig {\r\n isAuthenticated = false;\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n\r\n public isAuthenticated;\r\n public salutation;\r\n public email;\r\n public name: string;\r\n\r\n constructor( @Optional() config: AuthServiceConfig) {\r\n if (config) { this.isAuthenticated = config.isAuthenticated; }\r\n }\r\n\r\n\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/auth.service.ts","import { Injectable } from '@angular/core';\r\n\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport { UrlSegment } from '@angular/router'\r\n\r\nexport class SiteMapItems {\r\n ItemLevel: number;\r\n ItemURL: string;\r\n ItemName: string;\r\n ItemParentName: string;\r\n showDetails: boolean;\r\n lvl3Items: any;\r\n}\r\n\r\nexport interface GaWebMenuItem {\r\n ItemLabel: string;\r\n ItemURL: string;\r\n ItemName: string;\r\n}\r\n\r\n\r\nexport class BannerCrop {\r\n alias: string;\r\n height: number;\r\n width: number;\r\n}\r\n\r\nexport class Banner {\r\n src: string;\r\n focalPoint: string;\r\n crops: Array;\r\n}\r\n\r\nexport class UserData {\r\n Email: string;\r\n FirstName: string;\r\n Surname: string;\r\n Salutation: string;\r\n PhoneNumber: string;\r\n CustomerGuid: string;\r\n Country: string;\r\n Gender: string;\r\n TCAcceptDate: Date;\r\n}\r\n\r\nexport class Country {\r\n Code: string;\r\n CountryName: string;\r\n}\r\n\r\nexport class State {\r\n Code: string;\r\n Name: string;\r\n}\r\n\r\nexport class Title {\r\n Text: string;\r\n Value: string;\r\n}\r\n\r\nexport class ExpressInitialData {\r\n AvailabilityUrl: string;\r\n PassengersUrl: string;\r\n PaymentUrl: string;\r\n ParentFolderUrl: string;\r\n SeatConfirmationUrl: string;\r\n ConfirmationUrl: string;\r\n}\r\nexport class TravelPassesInitialData extends ExpressInitialData {\r\n CategoriesUrl: string;\r\n ProductsUrl: string;\r\n DetailsUrl: string;\r\n}\r\nexport class ManageBookingInitialData {\r\n DetailsUrl: string;\r\n ManageAvailabilityUrl: string;\r\n PaymentUrl: string;\r\n}\r\n\r\nexport class PassengerFareType {\r\n Code: string;\r\n Display: string;\r\n Description: string;\r\n ConcessionCardRequired: boolean;\r\n IsChild: boolean;\r\n IsInfant: boolean;\r\n NonChildRequired: boolean;\r\n ReturnCode: string;\r\n}\r\n\r\nexport class MyGreyhoundInitialData {\r\n ProfileUrl: string;\r\n DashboardUrl: string;\r\n}\r\n\r\nexport class SpecialAssistanceType {\r\n Description: string;\r\n Index: string;\r\n MaxPax: string;\r\n MinPax: string;\r\n}\r\nclass Product {\r\n PassengersUrl: string;\r\n CategoriesUrl: string;\r\n ProductsUrl: string;\r\n DetailsUrl: string;\r\n ParentFolderUrl: string;\r\n NAME: string;\r\n}\r\nexport class Packages extends Product {\r\n NAME = 'package';\r\n}\r\nexport class Experiences extends Product {\r\n NAME = 'experience';\r\n}\r\nexport class Accommodation extends Product {\r\n NAME = 'accommodation';\r\n}\r\nexport class InitialDataModel {\r\n AppVersion: string;\r\n RegistrationNewsletterConfirmation: string;\r\n Version: string;\r\n WebSiteUrl: string;\r\n Express: ExpressInitialData;\r\n ConfirmationUrl: string;\r\n ManageBooking: ManageBookingInitialData;\r\n TimetablesUrl: string;\r\n HomeUrl: string;\r\n HomeUrlExpress: string;\r\n HomeUrlManage: string;\r\n Countries: Array;\r\n FareTypes: Array;\r\n SpecialAssistanceTypes: Array;\r\n SiteMap: Array;\r\n UserData: UserData;\r\n LoginUrl: string;\r\n LogoutUrl: string;\r\n RegisterUrl: string;\r\n MyGreyhound: MyGreyhoundInitialData;\r\n States: Array;\r\n Titles: Array;\r\n Packages: Packages;\r\n Experiences: Experiences;\r\n Accommodation: Accommodation;\r\n TravelPassesInitialData: TravelPassesInitialData;\r\n RecaptchaV3SiteKey: string;\r\n RecaptchaV3SecretKey: string;\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class InitialDataService {\r\n\r\n private getSitemapUrl = '/umbraco/api/InitialData/GetSitemap';\r\n\r\n public initialData: InitialDataModel;\r\n\r\n public categoryReference = '';\r\n public showAsDropdown = false;\r\n\r\n get passengersUrl(): string {\r\n return this.initialData.Express.PassengersUrl;\r\n }\r\n get webSiteUrl(): string {\r\n return this.initialData.WebSiteUrl;\r\n }\r\n get version(): string {\r\n return this.initialData.Version;\r\n }\r\n get userData(): UserData {\r\n return this.initialData.UserData;\r\n }\r\n get countries(): Array<Country> {\r\n return this.initialData.Countries;\r\n }\r\n get states(): Array<State> {\r\n return this.initialData.States;\r\n }\r\n get titles(): Array<Title> {\r\n return this.initialData.Titles;\r\n }\r\n get fareTypes(): Array<PassengerFareType> {\r\n return this.initialData.FareTypes;\r\n }\r\n get loginUrl(): string {\r\n return this.initialData.LoginUrl;\r\n }\r\n get express(): ExpressInitialData {\r\n return this.initialData.Express;\r\n }\r\n get expressPayment(): string {\r\n return this.initialData.Express.PaymentUrl;\r\n }\r\n get expressSeatConfirmation(): string {\r\n return this.initialData.Express.SeatConfirmationUrl;\r\n }\r\n get expressConfirmation(): string {\r\n return this.initialData.Express.ConfirmationUrl;\r\n }\r\n get expressPassengers(): string {\r\n return this.initialData.Express.PassengersUrl;\r\n }\r\n get expressAvailability(): string {\r\n return this.initialData.Express.AvailabilityUrl;\r\n }\r\n get expressParentFolderUrl(): string {\r\n return this.initialData.Express.ParentFolderUrl;\r\n }\r\n get manageBooking(): ManageBookingInitialData {\r\n return this.initialData.ManageBooking;\r\n }\r\n get confirmationUrl(): string {\r\n return this.initialData.ConfirmationUrl;\r\n }\r\n get isLoggedIn(): boolean {\r\n return !!this.userData;\r\n }\r\n get packagePassengers(): string {\r\n return this.initialData.Packages.PassengersUrl;\r\n }\r\n get packageCategories(): string {\r\n return this.initialData.Packages.CategoriesUrl;\r\n }\r\n get packageProducts(): string {\r\n return this.initialData.Packages.ProductsUrl;\r\n }\r\n get packageDetails(): string {\r\n return this.initialData.Packages.DetailsUrl;\r\n }\r\n get packageParentFolderUrl(): string {\r\n return this.initialData.Packages.ParentFolderUrl;\r\n }\r\n get experiencePassengers(): string {\r\n return this.initialData.Experiences.PassengersUrl;\r\n }\r\n get experienceCategories(): string {\r\n return this.initialData.Experiences.CategoriesUrl;\r\n }\r\n get experienceProducts(): string {\r\n return this.initialData.Experiences.ProductsUrl;\r\n }\r\n get experienceDetails(): string {\r\n return this.initialData.Experiences.DetailsUrl;\r\n }\r\n get experienceParentFolderUrl(): string {\r\n return this.initialData.Experiences.ParentFolderUrl;\r\n }\r\n get accommodationPassengers(): string {\r\n return this.initialData.Accommodation.PassengersUrl;\r\n }\r\n get accommodationCategories(): string {\r\n return this.initialData.Accommodation.CategoriesUrl;\r\n }\r\n get accommodationProducts(): string {\r\n return this.initialData.Accommodation.ProductsUrl;\r\n }\r\n get accommodationDetails(): string {\r\n return this.initialData.Accommodation.DetailsUrl;\r\n }\r\n get accommodationParentFolderUrl(): string {\r\n return this.initialData.Accommodation.ParentFolderUrl;\r\n }\r\n get travelPassesPassengers(): string {\r\n return this.initialData.TravelPassesInitialData.PassengersUrl;\r\n }\r\n get travelPassesCategories(): string {\r\n return this.initialData.TravelPassesInitialData.CategoriesUrl;\r\n }\r\n get travelPassesProducts(): string {\r\n return this.initialData.TravelPassesInitialData.ProductsUrl;\r\n }\r\n get travelPassesDetails(): string {\r\n return this.initialData.TravelPassesInitialData.DetailsUrl;\r\n }\r\n get travelPassesPayment(): string {\r\n return this.initialData.TravelPassesInitialData.PaymentUrl;\r\n }\r\n get travelPassesParentFolderUrl(): string {\r\n return this.initialData.TravelPassesInitialData.ParentFolderUrl;\r\n }\r\n get makeABookingUrl(): string {\r\n return '/book-a-ticket';\r\n }\r\n get registrationNewsletterConfirmation(): string {\r\n return this.initialData.RegistrationNewsletterConfirmation;\r\n }\r\n get recaptchV3SiteKey(): string {\r\n return this.initialData.RecaptchaV3SiteKey;\r\n }\r\n get recaptchaV3SecretKey(): string {\r\n return this.initialData.RecaptchaV3SecretKey;\r\n }\r\n constructor(private http: Http) { }\r\n\r\n getSitemap(): Observable<SiteMapItems[]> {\r\n return this.http.get(this.getSitemapUrl)\r\n .map(this.extractCategories)\r\n .catch(this.handleError);\r\n }\r\n\r\n private extractCategories(res: Response) {\r\n return res.json();\r\n }\r\n\r\n private handleError(error: Response | any) {\r\n // In a real world app, you might use a remote logging infrastructure\r\n let errMsg: string;\r\n if (error instanceof Response) {\r\n const body = error.json() || '';\r\n const err = body.error || JSON.stringify(body);\r\n errMsg = `${error.status} - ${error.statusText || ''} ${err}`;\r\n } else {\r\n errMsg = error.message ? error.message : error.toString();\r\n }\r\n console.error(errMsg);\r\n return Observable.throw(errMsg);\r\n }\r\n\r\n public getCategoryRef(snapshotUrl: UrlSegment[]) {\r\n const isMvcLoad = !!this.categoryReference;\r\n const lastSegment = snapshotUrl[snapshotUrl.length - 1];\r\n let categoryRef;\r\n if (isMvcLoad) {\r\n categoryRef = this.categoryReference;\r\n } else {\r\n categoryRef = !!lastSegment ? lastSegment.path : '';\r\n }\r\n return categoryRef;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/initial-data.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\n\r\nimport { PassengerResponse } from './profile/passenger.model';\r\nimport { ActionUpdaterService } from './../shared/services/action-updater.service';\r\n\r\nimport * as error from '../shared/components/error-summary/error-handler.function';\r\n\r\ndeclare function require(name: string): any;\r\n\r\n@Injectable()\r\nexport class MyGreyhoundService {\r\n private DASHBOARD_STATE = 'dashboard_state';\r\n\r\n private getPassengerDetailsUrlFragment = '/umbraco/api/Passenger/GetPassengerDetails/';\r\n private getProgramsUrlFragment = '/umbraco/api/MyGreyhound/getPrograms/';\r\n private updateProgramUrl = '/umbraco/api/MyGreyhound/UpdateProgram';\r\n private updateCustomerDetailsUrl = '/umbraco/api/MyGreyhound/UpdateCustomerDetails';\r\n private deleteAccountUrl = '/umbraco/api/MyGreyhound/DeleteAccount';\r\n private getSubscriptionsUrl = '/umbraco/api/MyGreyhound/getSubscriptions';\r\n private updateSubscriptionUrl = '/umbraco/api/MyGreyhound/updateSubscriptions';\r\n private registrationNewsletterUrl = '/umbraco/api/AccountBaseUmbraco/HandleRegistrationNewsletter';\r\n private activateCustomerUsingResetKeyUrl = '/umbraco/api/AccountBaseUmbraco/ActivateCustomerUsingResetKey';\r\n private updateCustomerPasswordUrl = '/umbraco/api/AccountBaseUmbraco/UpdateCustomerPassword';\r\n private getLoyaltyBalanceUrl = '/umbraco/api/MyGreyhound/GetLoyaltyBalance';\r\n private getCustomerTransactionsUrl = '/umbraco/api/MyGreyhound/GetCustomerTransactions';\r\n private updateCustomerTCUrl = '/umbraco/api/MyGreyhound/UpdateCustomerTC';\r\n\r\n private repository: any;\r\n private dashboardState: DashboardState;\r\n\r\n // TODO This should be a store call using say ngStore can do this as I know the page will be reloaded on each navigation\r\n public currentPassenger = null;\r\n\r\n constructor(private http: Http, private actionUpdaterService: ActionUpdaterService) {\r\n const storageAvailable = require('storage-available');\r\n const isStorageAvailable = storageAvailable('localStorage');\r\n\r\n if (isStorageAvailable) {\r\n this.repository = window.localStorage;\r\n }\r\n\r\n this.dashboardState = this.getDashboardState();\r\n }\r\n\r\n getPassengerDetails(customerGuid: string): Observable<PassengerResponse> {\r\n const url = this.getPassengerDetailsUrlFragment + customerGuid;\r\n if (this.currentPassenger == null) {\r\n return this.http.get(url)\r\n .map(this.extractPassengerJson)\r\n .catch(error.handleError);\r\n } else {\r\n return this.currentPassenger;\r\n }\r\n }\r\n\r\n getPrograms(customerGuid: string): Observable<Array<LoyaltyProgram>> {\r\n return this.http.get(this.getProgramsUrlFragment + customerGuid)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getLoyaltyBalance(customerGuid: string): Observable<any> {\r\n return this.http.get(this.getLoyaltyBalanceUrl + '?CustomerGUID=' + customerGuid)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getCustomerTransactions(customerGuid: string): Observable<any> {\r\n return this.http.get(this.getCustomerTransactionsUrl + '?CustomerGUID=' + customerGuid)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n registrationNewsletter(model: RegistrationNewsletter): Observable<any> {\r\n return this.http.post(this.registrationNewsletterUrl, model)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n activateCustomerUsingResetKey(model: ActivateCustomerUsingResetKey): Observable<any> {\r\n return this.http.post(this.activateCustomerUsingResetKeyUrl, model)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n updateCustomerPassword(model: UpdateCustomerPassword): Observable<any> {\r\n return this.http.post(this.updateCustomerPasswordUrl, model)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n updateProgram(customerGuid: string, programId: string): Observable<Response> {\r\n const body = {\r\n CustomerGuid: customerGuid,\r\n ProgramId: programId\r\n };\r\n return this.http.post(this.updateProgramUrl, body)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n updateCustomerDetails(options: UpdateCustomerDetailsOptions): Observable<Response> {\r\n return this.http.put(this.updateCustomerDetailsUrl, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n deleteAccount(customerGuid: string): Observable<Response> {\r\n const url = this.deleteAccountUrl + '?CustomerGUID=' + customerGuid;\r\n return this.http.delete(url, customerGuid)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getSubscriptions(customerGuid: string) {\r\n const getSubscriptionsUrl = this.getSubscriptionsUrl + '?CustomerGUID=' + customerGuid;\r\n return this.http.get(getSubscriptionsUrl)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n updateSubscriptions(options: SubscriptionOption, customerGuid: string): Observable<Response> {\r\n return this.http.put(this.updateSubscriptionUrl + '?CustomerGUID=' + customerGuid, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n addBooking(options: AddBookingOptions) {\r\n const url = `/umbraco/api/MyGreyhound/AddBookingToCustomerV3/${options.customerGuid}`;\r\n return this.http.post(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n addBookingV3(options: AddBookingOptionsV3) {\r\n const url = `/umbraco/api/MyGreyhound/AddBookingToCustomerV3/${options.customerGuid}`;\r\n return this.http.post(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n updateCustomerTC(customerGuid: string) {\r\n return this.http.post(this.updateCustomerTCUrl + '?CustomerGUID=' + customerGuid, null)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getLoyaltyTrips(customerGuid: string) {\r\n const url = `/umbraco/api/MyGreyhound/GetLoyaltyTrips/${customerGuid}`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getTripHistory(customerGuid: string) {\r\n const url = `/umbraco/api/MyGreyhound/GetTripHistory/${customerGuid}`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getBookingSummary3(customerGuid: string) {\r\n const url = `/umbraco/api/MyGreyhound/GetBookingSummary/${customerGuid}?type=3`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getBookingSummary5(customerGuid: string) {\r\n const url = `/umbraco/api/MyGreyhound/GetBookingSummary/${customerGuid}?type=5`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n forgotPassword(forgotPasswordEmail: ForgotPassword) {\r\n const url = `/umbraco/api/AccountBaseUmbraco/HandleForgotPassword`;\r\n return this.http.post(url, forgotPasswordEmail)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n logoutUser = (returnUrl: string) => {\r\n const url = `/my-greyhound/login?logout=true`;\r\n return this.http.get(url)\r\n .catch(error.handleError);\r\n }\r\n\r\n private getDashboardState = (): DashboardState => {\r\n const dashboardState = this.repository.getItem(this.DASHBOARD_STATE);\r\n\r\n return dashboardState ? Object.assign(new DashboardState(), JSON.parse(dashboardState)) : new DashboardState();\r\n }\r\n\r\n public isDashboardItemSelected(key: string, defaultValue?: boolean) {\r\n const val = this.dashboardState.isSelected(key);\r\n if (val === undefined || val === null) {\r\n return defaultValue;\r\n } else {\r\n return val;\r\n }\r\n }\r\n\r\n public setDashboardItem(key: string, value: boolean) {\r\n this.dashboardState.setItem(key, value);\r\n this.repository.setItem(this.DASHBOARD_STATE, JSON.stringify(this.dashboardState));\r\n }\r\n\r\n private extractPassengerJson(res: Response) {\r\n const passenger = res.json();\r\n this.currentPassenger = passenger;\r\n return passenger;\r\n }\r\n\r\n private extractJson(res: Response) {\r\n const body = res.json();\r\n return body;\r\n }\r\n}\r\n\r\nexport class AddBookingOptions {\r\n constructor(public customerGuid: string, private bookingNumber: string, private bookingPin: string, private companyId: string) { }\r\n}\r\n\r\nexport class AddBookingOptionsV3 {\r\n constructor(public customerGuid: string, private bookingNumber: string, private companyId: string) { }\r\n}\r\n\r\nexport class LoyaltyTripsResponse {\r\n LoyaltyTrips: Array<LoyaltyTrip>;\r\n ProgramDescription: string;\r\n TripsRemaining: number;\r\n TripCredits: number;\r\n TripsPending: number;\r\n LoyaltyCode: number;\r\n}\r\n\r\nexport class LoyaltyTrip {\r\n IsCredit: boolean;\r\n IsPending: boolean;\r\n Description: string;\r\n}\r\n\r\nexport class SubscriptionOption {\r\n constructor(private Subscriptions: Array<SubscriptionOptionItem>) { }\r\n}\r\n\r\nexport class SubscriptionOptionItem {\r\n SourceId: string;\r\n Reason: string;\r\n constructor(private NewsletterID: string, private IsSubscribed: boolean, private Page: string, private IsMyGreyhound:boolean) {\r\n switch(Page) {\r\n case \"activation\":\r\n this.SourceId = '4';\r\n break;\r\n case \"manage\":\r\n if(IsMyGreyhound) {\r\n this.SourceId = '8';\r\n }\r\n else {\r\n this.SourceId = '14';\r\n }\r\n break;\r\n case \"profile\":\r\n this.SourceId = '7';\r\n break;\r\n default:\r\n this.SourceId = '9';\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport class LoyaltyProgram {\r\n Description: string;\r\n ID: number;\r\n StartDate: Date;\r\n EndDate: Date;\r\n SelectedProgram: boolean;\r\n}\r\n\r\nexport class UpdateCustomerDetailsOptions {\r\n CustomerGUID: string;\r\n Title: string;\r\n FirstName: string;\r\n Surname: string;\r\n Email: string;\r\n Phone: string;\r\n CountryCode: string;\r\n Country: string;\r\n Address: string;\r\n City: string;\r\n State: string;\r\n Postcode: string;\r\n Dob: Date;\r\n Source: string;\r\n}\r\n\r\nexport class TripHistoryResponse {\r\n Description: string;\r\n Bookings: Array<CustomerTrip>;\r\n}\r\n\r\nexport class CustomerTrip {\r\n Description: string;\r\n BookingNumber: string;\r\n BookingGuid: string;\r\n Loyalty: CustomerTripLoyalty;\r\n ProductType: string;\r\n PassExpiry: string;\r\n}\r\n\r\nexport class CustomerTripLoyalty {\r\n LoyaltyStatus: string;\r\n TravelDate: string;\r\n}\r\n\r\nclass DashboardState {\r\n items: { [key: string]: boolean };\r\n\r\n constructor() {\r\n this.items = {};\r\n }\r\n\r\n isSelected(key: string) {\r\n return this.items[key];\r\n }\r\n\r\n setItem(key: string, value: boolean) {\r\n this.items[key] = value;\r\n }\r\n}\r\n\r\nexport class RegistrationNewsletter {\r\n constructor(public FirstName: string, public Surname: string, public Email: string) {\r\n\r\n }\r\n}\r\nexport class ForgotPassword {\r\n constructor(public ForgotPasswordEmail: string, public Token: string, public SendEmail: boolean = true) {\r\n\r\n }\r\n}\r\n\r\nexport class ActivateCustomerUsingResetKey {\r\n constructor(public ActivationKey: string, public RequireConfirmationEmail: boolean, public CustomerGuid: string, public ActivationStatus: boolean) {\r\n\r\n }\r\n}\r\n\r\nexport class UpdateCustomerPassword {\r\n constructor(public customerReference?: string, public newPassword?: boolean, public currentPassword?: string, public UpdateType?: string) {\r\n\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/my-greyhound/my-greyhound.service.ts","import { trigger, state, transition, style, animate, query } from '@angular/animations';\r\n\r\nexport const hiddenCollapseAnimation =\r\n trigger(\r\n 'isHidden',\r\n [\r\n state('true', style({ height: 0, opacity: 0, display: 'none' })), // hidden\r\n state('false', style({ height: '*', opacity: 1, display: 'inherit' })),\r\n transition('1 => 0',\r\n\r\n query('*',\r\n animate(500,\r\n style({\r\n height: '*', opacity: 1, display: 'inherit'\r\n })\r\n )\r\n )\r\n ), // visible\r\n transition('0 => 1',\r\n query('*',\r\n animate(500, style({ height: 0, opacity: 0, display: 'none' }))\r\n )\r\n ) // hidden\r\n ]\r\n\r\n );\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/animations/hidden-collapse-animation.ts","import { ElementRef, Directive, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\r\n\r\ndeclare function require(name: string): any;\r\ndeclare var $: any;\r\n\r\n@Directive({\r\n selector: '[gawebBusyMessage]'\r\n})\r\nexport class BusyMessageDirective implements OnInit {\r\n @Input() busyMsg: string;\r\n\r\n constructor(private _element: ElementRef) {\r\n this.busyMsg = '<i class=\\'fa fa-refresh fa-spin\\'></i> Processing...';\r\n }\r\n\r\n ngOnInit() {\r\n const msg = this.busyMsg;\r\n\r\n $(this._element.nativeElement).on('click', function () {\r\n $(this).html(msg);\r\n });\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/busymessage/busymessage.directive.ts","module.exports = \"<div class=\\\"c-header\\\" (click)=\\\"headerClicked()\\\" [ngClass]=\\\"{'c-header--expanded': expanded}\\\">\\r\\n <h2 class=\\\"c-header__title\\\">\\r\\n <i *ngIf=\\\"icon\\\" class=\\\"fa {{icon}} c-header__title-icon\\\"></i>\\r\\n <span class=\\\"{{headerClass}}\\\">{{title}}</span>\\r\\n <i *ngIf=\\\"rightIcon\\\" class=\\\"fa {{rightIcon}} c-header__title-icon\\\"></i>\\r\\n <i class=\\\"fa c-header__chevron pull-right \\\" [ngClass]=\\\"{ 'fa-chevron-down': expanded, 'fa-chevron-right': !expanded }\\\"></i>\\r\\n </h2>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/collapsing-header/collapsing-header.component.html\n// module id = ./src/app/shared/components/collapsing-header/collapsing-header.component.html\n// module chunks = main","import { OnInit, EventEmitter, Input, Output, Component, AfterViewInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gaweb-collapsing-header',\r\n templateUrl: './collapsing-header.component.html'\r\n})\r\nexport class CollapsingHeaderComponent implements OnInit, AfterViewInit {\r\n @Input() title: string;\r\n @Input() icon: string;\r\n @Input() rightIcon: string;\r\n @Output() onHeaderClicked: EventEmitter<any> = new EventEmitter();\r\n @Input() loadsExpanded: boolean;\r\n @Input() headerClass: string;\r\n\r\n @Input() expanded: boolean;\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n /* if (!this.loadsExpanded) { this.loadsExpanded = false; }*/\r\n this.expanded = this.loadsExpanded;\r\n this.onHeaderClicked.emit(this.expanded);\r\n }, 0);\r\n\r\n \r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n /* if (!this.loadsExpanded) { this.loadsExpanded = false; }*/\r\n this.expanded = this.loadsExpanded;\r\n this.onHeaderClicked.emit(this.expanded);\r\n }, 0);\r\n\r\n }\r\n\r\n headerClicked() {\r\n this.expanded = !this.expanded;\r\n this.onHeaderClicked.emit(this.expanded);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/collapsing-header/collapsing-header.component.ts","module.exports = \"<div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-6 text-left\\\">\\r\\n Passenger\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-right\\\">\\r\\n Booking Number\\r\\n </div>\\r\\n</div>\\r\\n<div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-6 text-left passenger-name\\\">\\r\\n {{getName()}}\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-right booking-number\\\">\\r\\n {{booking.BookingNumber}}\\r\\n </div>\\r\\n</div>\\r\\n<div class=\\\"row button-row\\\">\\r\\n <div class=\\\"col-xs-6 text-left\\\">\\r\\n <a class=\\\"btn btn-default\\\" href=\\\"{{booking.TicketUrl}}\\\" target=\\\"_blank\\\">VIEW TICKET NOW\\r\\n </a>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-right\\\">\\r\\n <button class=\\\"btn btn-default btn-block\\\" (click)=\\\"manageBooking()\\\">\\r\\n <i *ngIf=\\\"navigating\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"!navigating\\\">MANAGE BOOKING</span>\\r\\n </button>\\r\\n </div>\\r\\n</div>\\r\\n<hr/>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/confirmation-booking-detail/confirmation-booking-detail.component.html\n// module id = ./src/app/shared/components/confirmation-booking-detail/confirmation-booking-detail.component.html\n// module chunks = main","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Booking } from '../../models/booking.model';\r\nimport { LocalStorageService } from '../../services/local-storage.service';\r\n\r\n@Component({\r\n selector: 'gaweb-confirmation-booking-detail',\r\n templateUrl: './confirmation-booking-detail.component.html'\r\n})\r\nexport class ConfirmationBookingDetailComponent implements OnInit {\r\n @Input() booking: Booking;\r\n\r\n navigating = false;\r\n\r\n constructor(private localStorageService: LocalStorageService) { }\r\n\r\n ngOnInit() {\r\n this.localStorageService.resetOfflineBooking();\r\n this.localStorageService.resetManagedBooking();\r\n }\r\n\r\n getName() {\r\n return `${this.booking.Passengers[0].FirstName} ${this.booking.Passengers[0].Surname}`;\r\n }\r\n\r\n manageBooking = () => {\r\n this.navigating = true;\r\n window.location.href = `my-greyhound/booking-management/details?bookingGuid=${this.booking.BookingGuid}`;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/confirmation-booking-detail/confirmation-booking-detail.component.ts","module.exports = \"<div class=\\\"input-container\\\">\\r\\n <div class=\\\"input-group number-spinner\\\">\\r\\n <span class=\\\"input-group-btn\\\">\\r\\n <button type=\\\"button\\\" name=\\\"decrement\\\" class=\\\"btn btn-default\\\" (click)=\\\"decrement()\\\" [disabled]=\\\"min === value\\\">\\r\\n <span class=\\\"glyphicon glyphicon-minus\\\"></span>\\r\\n </button>\\r\\n </span>\\r\\n <input type=\\\"text\\\" class=\\\"form-control text-center bold\\\" readonly=\\\"\\\" [value]=\\\"value\\\">\\r\\n <input name=\\\"currentValue\\\" type=\\\"hidden\\\" value=\\\"{{value}}\\\"/>\\r\\n <span class=\\\"input-group-btn\\\">\\r\\n <button type=\\\"button\\\" name=\\\"increment\\\" class=\\\"btn btn-default\\\" (click)=\\\"increment()\\\" [disabled]=\\\"max === value\\\">\\r\\n <span class=\\\"glyphicon glyphicon-plus\\\"></span>\\r\\n </button>\\r\\n </span>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/counter/counter.component.html\n// module id = ./src/app/shared/components/counter/counter.component.html\n// module chunks = main","import { Component, OnInit, Output, EventEmitter, Input, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'gaweb-counter',\r\n templateUrl: './counter.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CounterComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class CounterComponent implements OnInit, ControlValueAccessor {\r\n @Output() onCounterUpdated: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n private _initialValue: number;\r\n\r\n @Input('initialValue')\r\n get initialValue() {\r\n return this._initialValue;\r\n }\r\n set initialValue(val: number) {\r\n this._initialValue = val;\r\n this.value = !!val ? val : 0;\r\n }\r\n @Input() min: number;\r\n @Input() max: number;\r\n private _value: number;\r\n get value() {\r\n return this._value;\r\n }\r\n @Input('value')\r\n set value(val: number) {\r\n this._value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n minReached = false;\r\n maxReached = false;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n increment() {\r\n if (this.value < this.max) {\r\n this.value += 1;\r\n this.maxReached = false;\r\n }\r\n this.onCounterUpdated.emit(this.value);\r\n }\r\n\r\n decrement() {\r\n if (this.value > this.min) {\r\n this.value -= 1;\r\n this.minReached = false;\r\n }\r\n this.onCounterUpdated.emit(this.value);\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value) {\r\n if (value !== undefined && value !== null) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/counter/counter.component.ts","module.exports = \"<div [ngSwitch]=\\\"datestyle\\\">\\r\\n <div *ngSwitchCase=\\\"'old'\\\">\\r\\n <div [ngClass]=\\\"{ 'text-left' : !deviceService.IsMobile() , 'text-center' : deviceService.IsMobile() }\\\">\\r\\n <ng-content></ng-content>\\r\\n <div class=\\\"col-xs-12\\\" style=\\\" font-size: 1.5em; padding: 0px; font-weight: 600; white-space: nowrap;\\\"\\r\\n >{{datetime | gxDate: 'time'}}</div>\\r\\n <div class=\\\"col-xs-12\\\" style=\\\"padding: 0px;\\\"\\r\\n >\\r\\n <div class=\\\"\\\">\\r\\n {{datetime | gxDate: 'ddd'}}, {{datetime | gxDate: 'DD'}} {{datetime | gxDate: 'MMM'}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngSwitchDefault class=\\\"trip-timestamp-container text-center\\\">\\r\\n <div class=\\\"trip-time-small text-center\\\">{{datetime}}</div>\\r\\n <div class=\\\"trip-time departing-time text-center\\\">\\r\\n <div class=\\\"col-xs-12 trip-timestamp\\\">{{datetime | gxDate: 'time'}}</div>\\r\\n <div class=\\\"col-xs-12 trip-datebox\\\">\\r\\n <div class=\\\"col-xs-6 primary text-right\\\">\\r\\n {{datetime | gxDate: 'DD'}}\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 secondary text-left\\\">\\r\\n <div class=\\\"month\\\">{{datetime | gxDate: 'MMM'}}</div>\\r\\n <div class=\\\"weekday\\\">{{datetime | gxDate: 'ddd'}}</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/shared/components/datetime/datetime.component.html\n// module id = ./src/app/shared/components/datetime/datetime.component.html\n// module chunks = main","import { OnInit } from '@angular/core/src/metadata/lifecycle_hooks';\r\nimport { Component, Input } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { DeviceService } from '../../services/device.service';\r\n\r\n@Component({\r\n selector: 'gaweb-datetime',\r\n templateUrl: `./datetime.component.html`\r\n})\r\nexport class DatetimeComponent implements OnInit {\r\n @Input() datetime: Date;\r\n @Input() datestyle: string;\r\n constructor(private deviceService: DeviceService) {}\r\n ngOnInit(): void {\r\n this.datetime = moment(this.datetime, \"DD/MM/YYYY hh:mm:ss A\").toDate();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/datetime/datetime.component.ts","import { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\n\r\nimport { ApiError } from '../../services/action-updater.service';\r\nimport { ErrorObservable } from 'rxjs/observable/ErrorObservable';\r\n\r\nexport function handleError(error: Response | any): Array<string> | ErrorObservable {\r\n // In a real world app, you might use a remote logging infrastructure\r\n let consoleErrorMsg: string;\r\n let errSummary: string;\r\n let errMessage: string;\r\n let errDetails: Array<string> = null;\r\n let rawJsonErr: string;\r\n\r\n const getErrorDetails = (body: ApiErrorResponse): Array<string> => {\r\n if (body.Errors && body.Errors.length > 0) {\r\n return body.Errors.map(i => i.Value);\r\n } else {\r\n return body.MessageDetail ? [body.MessageDetail] : [];\r\n }\r\n };\r\n\r\n if (error instanceof Response) {\r\n try {\r\n const body: ApiErrorResponse = error.json() || '';\r\n errSummary = body.ErrorSummary || body.Message;\r\n errMessage = body.Message;\r\n errDetails = getErrorDetails(body);\r\n rawJsonErr = JSON.stringify(body);\r\n } catch (jsonSerialisationError) {\r\n errSummary = 'Error serialising response to json may be html';\r\n }\r\n consoleErrorMsg = `${error.status} - ${error.statusText || ''} ${rawJsonErr}`;\r\n } else {\r\n consoleErrorMsg = error.message ? error.message : error.toString();\r\n }\r\n console.error(consoleErrorMsg);\r\n\r\n const processedApiError = new ApiError(errSummary, errDetails, errMessage);\r\n return Observable.throw(processedApiError);\r\n}\r\n\r\nexport class ApiErrorResponse {\r\n ErrorSummary: string;\r\n Message: string;\r\n MessageDetail: string;\r\n Errors: Array<ApiErrorDetails>;\r\n}\r\n\r\nexport class ApiErrorDetails {\r\n Key: string;\r\n Value: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/error-summary/error-handler.function.ts","import { Component, OnInit, Inject, Input, OnChanges } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/platform-browser';\r\n\r\nimport { PageScrollConfig, PageScrollService, PageScrollInstance } from 'ng2-page-scroll';\r\n\r\nimport { ActionUpdaterService, ApiError } from '../../services/action-updater.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'gaweb-error-summary',\r\n template: `\r\n <div *ngFor=\"let alert of alerts\"\r\n class=\"col-xs-12 col-md-12 success-alert\">\r\n <div role=\"alert\" class=\"alert alert-danger alert--wrap\">\r\n <i class=\"fa fa-exclamation-circle\"></i> <strong>{{ alert.summary }}</strong>\r\n <ul>\r\n <li *ngFor=\"let detail of alert.details\">\r\n <span *ngIf=\"!!detail.Value\">{{detail.Value}}</span>\r\n <span *ngIf=\"!!!detail.Value\">{{detail}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n `,\r\n styles: [`\r\n .alert--wrap {\r\n word-wrap: break-word;\r\n }\r\n `]\r\n})\r\nexport class ErrorSummaryComponent implements OnInit, OnChanges {\r\n @Input()\r\n alerts: Array<ApiError>;\r\n @Input()\r\n worksWithEvents = true;\r\n @Input()\r\n scrollToHead = false;\r\n pageScrollInstance: PageScrollInstance;\r\n\r\n constructor(private actionUpdaterService: ActionUpdaterService,\r\n private pageScrollService: PageScrollService,\r\n @Inject(DOCUMENT) private document: any) {\r\n this.pageScrollInstance = PageScrollInstance.simpleInstance(this.document, '#head');\r\n }\r\n\r\n ngOnInit() {\r\n if (this.worksWithEvents) {\r\n this.actionUpdaterService.errors.subscribe(\r\n (apiError: ApiError[]) => {\r\n apiError = apiError || [];\r\n const errors = apiError.filter(el => !!el);\r\n if (!!errors.length) {\r\n this.alerts = errors;\r\n this.goToErrorSection();\r\n }\r\n });\r\n\r\n this.actionUpdaterService.clear$.subscribe(\r\n clear => {\r\n this.alerts = [];\r\n });\r\n }\r\n }\r\n\r\n\r\n ngOnChanges(changes: any) {\r\n if (!this.worksWithEvents && !!this.alerts && this.alerts.length > 0 && this.scrollToHead) {\r\n this.goToErrorSection();\r\n }\r\n }\r\n\r\n public goToErrorSection = (): void => {\r\n this.pageScrollService.start(this.pageScrollInstance);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/error-summary/error-summary.component.ts","import { Component, Input, ViewChild, SimpleChanges } from \"@angular/core\";\r\nimport { LatLngBoundsLiteral, AgmMap } from \"@agm/core\";\r\nimport * as moment from \"moment\";\r\n\r\n@Component({\r\n selector: \"gmap\",\r\n template: `\r\n <agm-map\r\n (mapReady)=\"mapReadyEvent($event)\"\r\n [latitude]=\"lat\"\r\n [longitude]=\"lng\"\r\n [zoom]=\"zoom\"\r\n [styles]=\"styles\">\r\n <agm-direction *ngFor=\"let d of dir; let i = index\"\r\n [origin]=\"d.origin\"\r\n [destination]=\"d.destination\"\r\n [waypoints]=\"d.waypoints\"\r\n [renderOptions]=\"renderOptions\">\r\n </agm-direction>\r\n <agm-marker *ngFor=\"let m of markers; let i = index\"\r\n (markerClick)=\"clickedMarker(m.label, infoWindow, i)\"\r\n [latitude]=\"m.lat\"\r\n [longitude]=\"m.lng\"\r\n [iconUrl]=\"m.iconUrl\">\r\n <agm-info-window #infoWindow>\r\n <h4 [innerHTML]=\"m.label\"></h4>\r\n <p [innerHTML]=\"m.content\"></p>\r\n </agm-info-window>\r\n </agm-marker>\r\n </agm-map>\r\n <div class=\"map-warning\">\r\n {{('MapNotice' | translate) | async }}\r\n </div>`,\r\n styles: [\r\n `\r\n .alert--wrap {\r\n word-wrap: break-word;\r\n }\r\n .agm-info-window-content {\r\n max-width: 300px;\r\n }\r\n agm-map {\r\n height: 300px;\r\n width: 100%;\r\n }\r\n `\r\n ]\r\n})\r\nexport class GoogleMapComponent {\r\n @Input(\"index\") index: string;\r\n @Input(\"route\") route: string;\r\n styles = [\r\n {\r\n featureType: \"landscape\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n saturation: 43.400000000000006\r\n },\r\n {\r\n lightness: 37.599999999999994\r\n },\r\n {\r\n gamma: 1\r\n },\r\n {\r\n color: \"#fef2e2\"\r\n }\r\n ]\r\n },\r\n {\r\n featureType: \"landscape.man_made\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n color: \"#fccb8b\"\r\n }\r\n ]\r\n },\r\n {\r\n featureType: \"poi\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n saturation: -1.0989010989011234\r\n },\r\n {\r\n lightness: 11.200000000000017\r\n },\r\n {\r\n gamma: 1\r\n },\r\n {\r\n color: \"#fee5c5\"\r\n }\r\n ]\r\n },\r\n {\r\n featureType: \"road.highway\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n hue: \"#FFC200\"\r\n },\r\n {\r\n saturation: -61.8\r\n },\r\n {\r\n lightness: 45.599999999999994\r\n },\r\n {\r\n gamma: 1\r\n }\r\n ]\r\n },\r\n {\r\n featureType: \"road.arterial\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n hue: \"#ff0300\"\r\n },\r\n {\r\n saturation: -100\r\n },\r\n {\r\n lightness: 51.19999999999999\r\n },\r\n {\r\n gamma: 1\r\n }\r\n ]\r\n },\r\n {\r\n featureType: \"road.local\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n hue: \"#FF0300\"\r\n },\r\n {\r\n saturation: -100\r\n },\r\n {\r\n lightness: 52\r\n },\r\n {\r\n gamma: 1\r\n }\r\n ]\r\n },\r\n {\r\n featureType: \"water\",\r\n elementType: \"all\",\r\n stylers: [\r\n {\r\n saturation: \"0\"\r\n },\r\n {\r\n lightness: \"0\"\r\n },\r\n {\r\n gamma: \"0.80\"\r\n },\r\n {\r\n color: \"#30c0cb\"\r\n }\r\n ]\r\n }\r\n ];\r\n\r\n @ViewChild(AgmMap) agmMap: AgmMap;\r\n\r\n infoWindowOpened = null;\r\n\r\n lat = 0;\r\n lng: number = 0;\r\n dir = [];\r\n zoom = 5;\r\n markers: marker[];\r\n bounds: point;\r\n positioned = false;\r\n mapReady = false;\r\n markersToAdd: marker[] = [];\r\n initialised = false;\r\n\r\n renderOptions = {\r\n suppressMarkers: true\r\n };\r\n\r\n public focusPin(pin: marker, zoom: number) {\r\n this.lat = pin.lat;\r\n this.lng = pin.lng;\r\n this.zoom = zoom;\r\n }\r\n\r\n public addPin(pin: marker) {\r\n if (!this.mapReady) {\r\n this.markersToAdd.push(pin);\r\n } else {\r\n if (pin.lat != null && pin.lat !== 0) {\r\n this.markers.push(pin);\r\n this.refreshMap();\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.dir = [];\r\n this.markers = [];\r\n this.ngOnInit();\r\n this.refreshMap();\r\n }\r\n\r\n mapReadyEvent(event: any) {\r\n this.mapReady = true;\r\n this.markersToAdd.forEach(marker => {\r\n this.addPin(marker);\r\n });\r\n }\r\n\r\n clickedMarker(label: string, infoWindow, index: number) {\r\n if (this.infoWindowOpened === infoWindow) {\r\n return;\r\n }\r\n\r\n if (this.infoWindowOpened !== null) {\r\n this.infoWindowOpened.close();\r\n }\r\n\r\n this.infoWindowOpened = infoWindow;\r\n }\r\n\r\n refreshMap() {\r\n this.agmMap.fullscreenControl = true;\r\n this.agmMap.triggerResize();\r\n this.agmMap.fitBounds = this.bounds;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.initialised) {\r\n return;\r\n }\r\n this.bounds = new point();\r\n const waypointList = [];\r\n function addToWaypoints(stop, index) {\r\n const lat = stop.StopDetails[0].Latitude;\r\n const long = stop.StopDetails[0].Longitude;\r\n if (index <= 20 && lat !== 0 && long !== 0) {\r\n waypointList.push({\r\n location: lat + \",\" + long,\r\n stopover: true\r\n });\r\n }\r\n }\r\n\r\n function chunkArray(myArray, chunk_size) {\r\n const arrayLength = myArray.length;\r\n const tempArray = [];\r\n\r\n for (let index = 0; index < arrayLength; index += chunk_size) {\r\n const myChunk = myArray.slice(index, index + chunk_size + 1);\r\n tempArray.push(myChunk);\r\n }\r\n\r\n return tempArray;\r\n }\r\n\r\n const pins: marker[] = [];\r\n this.bounds.north = -90;\r\n this.bounds.south = 90;\r\n this.bounds.east = -180;\r\n this.bounds.west = 180;\r\n\r\n const _bounds = this.bounds;\r\n\r\n function addToMap(stop, index, stopList) {\r\n const addressNumber = stop.StopDetails[0].AddressNumber;\r\n const lat =\r\n stop.StopDetails[0].Addresses[addressNumber - 1].Latitude;\r\n const long =\r\n stop.StopDetails[0].Addresses[addressNumber - 1].Longitude;\r\n const pin = new marker();\r\n pin.lat = lat;\r\n pin.lng = long;\r\n pin.iconUrl = \"/assets/icons/map/stop.png\";\r\n\r\n if (lat > _bounds.north) {\r\n _bounds.north = lat;\r\n }\r\n if (lat < _bounds.south) {\r\n _bounds.south = lat;\r\n }\r\n\r\n if (long > _bounds.east) {\r\n _bounds.east = long;\r\n }\r\n\r\n if (long < _bounds.west) {\r\n _bounds.west = long;\r\n }\r\n\r\n const restStopText = \"\";\r\n let restStopIcon = \"\";\r\n if (stop.IsRestStop === true) {\r\n pin.iconUrl = \"/assets/icons/map/rest-stop.png\";\r\n restStopIcon = '<i class=\"fa fa-cutlery\"></i>';\r\n // restStopText = \"\\<br\\/\\> This is a rest stop. Grab a bite!\";\r\n pin.label =\r\n \" Arrives \" +\r\n moment(stop.ArrivalDate).format(\"HH:mm\") +\r\n \" - Departs \" +\r\n moment(stop.DepartureDate).format(\"HH:mm\") +\r\n \"<br/>\";\r\n pin.label +=\r\n \"<h2>\" +\r\n stop.StopDetails[0].Description +\r\n \" \" +\r\n restStopIcon +\r\n \"</h2>\";\r\n pin.content =\r\n stop.StopDetails[0].Addresses[addressNumber - 1].Address +\r\n \"\\n \" +\r\n restStopText;\r\n } else {\r\n if (index === stopList.length - 1) {\r\n pin.label =\r\n \"Arrives \" +\r\n moment(stop.ArrivalDate).format(\"HH:mm\") +\r\n \"<br/>\";\r\n } else {\r\n pin.label =\r\n \"Departs \" +\r\n moment(stop.DepartureDate).format(\"HH:mm\") +\r\n \"<br/>\";\r\n }\r\n pin.label += \"<h2>\" + stop.StopDetails[0].Description + \"</h2>\";\r\n pin.content =\r\n stop.StopDetails[0].Addresses[addressNumber - 1].Address;\r\n }\r\n\r\n pins.push(pin);\r\n }\r\n\r\n const service = JSON.parse(this.route);\r\n service.forEach(addToWaypoints);\r\n service.forEach(addToMap);\r\n\r\n pins[0].iconUrl = \"/assets/icons/map/pin.png\";\r\n pins[pins.length - 1].iconUrl = \"/assets/icons/map/pin.png\";\r\n\r\n this.markers = pins;\r\n this.lat = service[0].StopDetails[0].Latitude;\r\n this.lng = service[0].StopDetails[0].Longitude;\r\n const routes = chunkArray(service, 20);\r\n\r\n this.dir = [];\r\n for (let i = 0; i < routes.length; i++) {\r\n const route = routes[i];\r\n\r\n const waypoints = [];\r\n for (let x = 0; x < routes[i].length; x++) {\r\n const stop = routes[i][x];\r\n const addressNumber = stop.StopDetails[0].AddressNumber;\r\n const lat =\r\n stop.StopDetails[0].Addresses[addressNumber - 1].Latitude;\r\n const long =\r\n stop.StopDetails[0].Addresses[addressNumber - 1].Longitude;\r\n if (lat !== 0 && long !== 0) {\r\n waypoints.push({\r\n location: lat + \",\" + long,\r\n stopover: true\r\n });\r\n }\r\n }\r\n const originAddressNumber = route[0].StopDetails[0].AddressNumber;\r\n const destinationAddressNumber =\r\n route[route.length - 1].StopDetails[0].AddressNumber;\r\n this.dir.push({\r\n origin: {\r\n lat:\r\n route[0].StopDetails[0].Addresses[\r\n originAddressNumber - 1\r\n ].Latitude,\r\n lng:\r\n route[0].StopDetails[0].Addresses[\r\n originAddressNumber - 1\r\n ].Longitude\r\n },\r\n destination: {\r\n lat:\r\n route[route.length - 1].StopDetails[0].Addresses[\r\n destinationAddressNumber - 1\r\n ].Latitude,\r\n lng:\r\n route[route.length - 1].StopDetails[0].Addresses[\r\n destinationAddressNumber - 1\r\n ].Longitude\r\n },\r\n waypoints: waypoints\r\n });\r\n\r\n }\r\n\r\n this.initialised = true;\r\n }\r\n}\r\nclass point implements LatLngBoundsLiteral {\r\n east: number;\r\n north: number;\r\n south: number;\r\n west: number;\r\n}\r\nexport class marker {\r\n lat: number;\r\n lng: number;\r\n label?: string;\r\n content?: string;\r\n draggable: boolean;\r\n iconUrl: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/google-map/google-map.component.ts","module.exports = \"<form id=\\\"passengerOptionsForm\\\" name=\\\"passengerOptionsForm\\\" novalidate autocomplete=\\\"off\\\" [formGroup]=\\\"passengerOptionsForm\\\">\\r\\n <div class=\\\"passengers__fieldwrap\\\">\\r\\n <div class=\\\"form-group\\\">\\r\\n <div class=\\\"passenger__fake-input text-left\\\" (click)=\\\"openPassengersSelectionPicker()\\\">\\r\\n <span>{{passengerSummary}}</span>\\r\\n <div class=\\\"extra__icon-container\\\">\\r\\n <i class=\\\"fa fa-chevron-right\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div bsModal #childModal=\\\"bs-modal\\\" id=\\\"passengerOptionsModal\\\" [config]=\\\"config\\\" class=\\\"modal fade\\\" role=\\\"dialog\\\" tabindex=\\\"-1\\\">\\r\\n <div class=\\\"modal-backdrop\\\" (click)=\\\"hideModal()\\\"></div>\\r\\n <div class=\\\"modal-dialog modal-sm\\\">\\r\\n <div class=\\\"modal-content\\\" style=\\\"padding: 0px 10px 0px 0px;\\\">\\r\\n <div class=\\\"modal-header\\\">\\r\\n <h4 class=\\\"modal-title pull-left\\\">PASSENGER OPTIONS</h4>\\r\\n <button type=\\\"button\\\" class=\\\"close pull-right\\\" aria-label=\\\"Close\\\" (click)=\\\"hideModal()\\\">\\r\\n <span aria-hidden=\\\"true\\\">×</span>\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"modal-body padding-left-clear padding-right-clear\\\">\\r\\n <gaweb-error-summary></gaweb-error-summary>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div class=\\\"passenger-options__desc\\\">\\r\\n ADULTS\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row passenger-options flex\\\">\\r\\n <div class=\\\"col-xs-7 wrapper\\\">\\r\\n <span class=\\\"passenger-options__subtext\\\">{{display.adult}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 counter-countainer\\\">\\r\\n <gaweb-counter formControlName=\\\"adults\\\" [max]=\\\"max\\\" [min]=\\\"min\\\" [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\"></gaweb-counter>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div class=\\\"passenger-options__desc\\\">\\r\\n CONCESSIONS\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row flex margin-bottom-10\\\">\\r\\n <div class=\\\"col-xs-7 wrapper\\\">\\r\\n <span class=\\\"passenger-options__subtext\\\">{{display.concession}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 counter-countainer\\\">\\r\\n <gaweb-counter formControlName=\\\"concessions\\\" [max]=\\\"maxConcessions\\\" [min]=\\\"min\\\" [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\"></gaweb-counter>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"width-100\\\" [ngClass]=\\\"{ 'hidden': !showConcessionCard }\\\" [@expandOutWithInputFields]>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <label class=\\\"consession-text row\\\">Enter your card details below. When boarding, you will need to show your card to the\\r\\n driver.\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{ 'has-error': passengerOptionsForm.controls.concessionCard1.invalid, 'col-xs-6': passengerOptionsForm.controls['concessions'].value > 1, 'col-xs-12': passengerOptionsForm.controls['concessions'].value == 1 }\\\">\\r\\n <input type=\\\"text\\\" id=\\\"concessioncard1\\\" name=\\\"concessioncard1\\\" placeholder=\\\"Enter card no.\\\" class=\\\"form-control\\\" maxlength=\\\"15\\\"\\r\\n (input)=\\\"onAdultChange()\\\" formControlName=\\\"concessionCard1\\\">\\r\\n <span class=\\\"fa fa-exclamation fa-2x form-control-feedback align-error-icon\\\" aria-hidden=\\\"true\\\" *ngIf=\\\"passengerOptionsForm.controls.concessionCard1.invalid && !passengerOptionsForm.controls.concessionLater.value\\\"></span>\\r\\n </div>\\r\\n <div class=\\\"form-group col-xs-6\\\" [ngClass]=\\\"{ 'has-error':passengerOptionsForm.controls.concessionCard2.invalid, 'hidden': passengerOptionsForm.controls['concessions'].value < 2 }\\\">\\r\\n <input type=\\\"text\\\" id=\\\"concessioncard2\\\" name=\\\"concessioncard2\\\" placeholder=\\\"Enter card no.\\\" class=\\\"form-control\\\" maxlength=\\\"15\\\"\\r\\n (input)=\\\"onAdultChange()\\\" formControlName=\\\"concessionCard2\\\">\\r\\n <span class=\\\"fa fa-exclamation fa-2x form-control-feedback align-error-icon\\\" aria-hidden=\\\"true\\\" *ngIf=\\\"passengerOptionsForm.controls.concessionCard2.invalid && !passengerOptionsForm.controls.concessionLater.value\\\"></span>\\r\\n </div>\\r\\n <div class=\\\"checkbox col-xs-12 margin-clear\\\">\\r\\n <label>\\r\\n <input class=\\\"checkbox-input\\\" formControlName=\\\"concessionLater\\\" type=\\\"checkbox\\\" (change)=\\\"onConcessionLaterClicked($event)\\\">\\r\\n <span class=\\\"checkbox-span\\\"></span>\\r\\n <div class=\\\"checkbox-div\\\"> I'll add this information later</div>\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row flex\\\">\\r\\n <div class=\\\"col-xs-7 wrapper\\\">\\r\\n <span class=\\\"passenger-options__subtext\\\">{{display.student}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 counter-countainer\\\">\\r\\n <gaweb-counter formControlName=\\\"students\\\" [max]=\\\"maxConcessions\\\" [min]=\\\"min\\\" [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\"></gaweb-counter>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row passenger-options flex\\\">\\r\\n <div class=\\\"width-100\\\" [ngClass]=\\\"{ 'hidden': !showStudentCard }\\\" [@expandOutWithInputFields]>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <label class=\\\"consession-text row\\\">Enter your card details below. When boarding, you will need to show your card to the\\r\\n driver.\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{ 'has-error': passengerOptionsForm.controls.studentCard1.invalid, 'col-xs-6': passengerOptionsForm.controls['students'].value > 1, 'col-xs-12': passengerOptionsForm.controls['students'].value == 1 }\\\">\\r\\n <input type=\\\"text\\\" placeholder=\\\"Enter card no.\\\" class=\\\"form-control\\\" maxlength=\\\"15\\\" (input)=\\\"onAdultChange()\\\" formControlName=\\\"studentCard1\\\">\\r\\n <span class=\\\"fa fa-exclamation fa-2x form-control-feedback align-error-icon\\\" aria-hidden=\\\"true\\\" *ngIf=\\\"passengerOptionsForm.controls.studentCard1.invalid && !passengerOptionsForm.controls.studentLater.value\\\"></span>\\r\\n </div>\\r\\n <div class=\\\"form-group col-xs-6\\\" [ngClass]=\\\"{ 'has-error':passengerOptionsForm.controls.studentCard2.invalid, 'hidden': passengerOptionsForm.controls['students'].value < 2 }\\\">\\r\\n <input type=\\\"text\\\" placeholder=\\\"Enter card no.\\\" class=\\\"form-control\\\" maxlength=\\\"15\\\" (input)=\\\"onAdultChange()\\\" formControlName=\\\"studentCard2\\\">\\r\\n <span class=\\\"fa fa-exclamation fa-2x form-control-feedback align-error-icon\\\" aria-hidden=\\\"true\\\" *ngIf=\\\"passengerOptionsForm.controls.studentCard2.invalid && !passengerOptionsForm.controls.studentLater.value\\\"></span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"checkbox col-xs-12 margin-clear\\\">\\r\\n <label>\\r\\n <input class=\\\"checkbox-input\\\" formControlName=\\\"studentLater\\\" type=\\\"checkbox\\\" (change)=\\\"onStudentLaterClicked($event)\\\">\\r\\n <span class=\\\"checkbox-span\\\"></span>\\r\\n <div class=\\\"checkbox-div\\\"> I'll add this information later</div>\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 margin-bottom-10\\\">\\r\\n <div class=\\\"passenger-options__desc\\\">\\r\\n CHILDREN\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row margin-bottom-10\\\">\\r\\n <div class=\\\"col-xs-7 wrapper\\\">\\r\\n <span class=\\\"passenger-options__subtext\\\">{{display.accompaniedChild}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 counter-countainer\\\">\\r\\n <gaweb-counter formControlName=\\\"accompaniedChildren\\\" [max]=\\\"max\\\" [min]=\\\"min\\\" [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\"></gaweb-counter>\\r\\n </div>\\r\\n <!--<div class=\\\"col-xs-12 unaccompanied-child\\\" *ngIf=\\\"passengerOptionsForm.controls['accompaniedChildren'].value > 0\\\">\\r\\n <div class=\\\"passenger-options__desc\\\">\\r\\n {{display.unaccompaniedChild}}\\r\\n </div>\\r\\n Please contact us for info on how to book unaccompanied children.\\r\\n </div> -->\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row flex\\\">\\r\\n <div class=\\\"col-xs-7 wrapper\\\">\\r\\n <span class=\\\"passenger-options__subtext\\\">{{display.infant}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 counter-countainer\\\" *ngIf=\\\"!showInfantBreakdown()\\\" [@expandOutInfant]>\\r\\n <!-- <gaweb-counter formControlName=\\\"infants\\\" [max]=\\\"max\\\" [min]=\\\"min\\\"\\r\\n [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\">\\r\\n </gaweb-counter> -->\\r\\n <gaweb-counter formControlName=\\\"infants\\\" [value]=\\\"passengerOptionsForm.controls['infants'].value\\\" [max]=\\\"max\\\" [min]=\\\"min\\\"\\r\\n [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\">\\r\\n </gaweb-counter>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row passenger-options\\\">\\r\\n <div class=\\\"col-xs-7 infant-text\\\" *ngIf=\\\"getTotalAdults() < 2 && passengerOptionsForm.controls['infants'].value > 0 && passengerOptionsForm.controls['infants'].value < 3\\\">\\r\\n <span class=\\\"\\\">\\r\\n Booking includes 1\\r\\n <b>seated</b> infant\\r\\n <span *ngIf=\\\"passengerOptionsForm.controls['infants'].value == 2\\\"> and 1\\r\\n <b>nursed</b> infant</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 counter-countainer\\\" *ngIf=\\\"showInfantBreakdown()\\\" [@expandOutSeatedInfant]>\\r\\n <label>Seated</label>\\r\\n <gaweb-counter formControlName=\\\"seatedInfant\\\" [max]=\\\"maxInfants\\\" [min]=\\\"min\\\" [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\"></gaweb-counter>\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 col-xs-offset-7 counter-countainer\\\" *ngIf=\\\"showInfantBreakdown()\\\" [@expandOutNursedInfant]>\\r\\n <label>Nursed</label>\\r\\n <gaweb-counter formControlName=\\\"nursedInfant\\\" [max]=\\\"maxInfants\\\" [min]=\\\"min\\\" [initialValue]=\\\"0\\\" (onCounterUpdated)=\\\"onAdultChange()\\\"></gaweb-counter>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <p class=\\\"col-xs-12\\\">Booking for a large group of passengers? Use our\\r\\n <a href=\\\"/contact-us\\\">enquiry form</a> or call us on\\r\\n <a href=\\\"tel:1300473946\\\">1300 473 946</a>\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-cta btn-block top-buffer\\\" (click)=\\\"finishEnteringPassengerOptions()\\\" [disabled]=\\\"!passengersValid\\\">\\r\\n <div *ngIf=\\\"processing\\\">\\r\\n <i class=\\\"fa fa-refresh fa-spin\\\"></i> Processing...</div>\\r\\n <div *ngIf=\\\"!processing\\\">Update</div>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</form>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/home-passenger-options/home-passenger-options.component.html\n// module id = ./src/app/shared/components/home-passenger-options/home-passenger-options.component.html\n// module chunks = main","import { Component, OnInit, Input, forwardRef, ViewChild, ChangeDetectorRef, AfterViewChecked, Output } from '@angular/core';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, ValidatorFn } from '@angular/forms';\r\nimport { ExpressBookingService } from '../../services/express-booking-widget';\r\nimport { ActionUpdaterService, ApiError } from '../../services/action-updater.service';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { Passengers } from 'app/shared/models/passenger.model';\r\nimport { BsModalRef, BsModalService, ModalDirective } from 'ngx-bootstrap';\r\nimport { modalClass } from 'app/home/booking-widget-container/booking-widget-container.component';\r\nimport { InitialDataService, PassengerFareType } from '../../../initial-data.service';\r\nimport { ModalPopupMainPageEvent } from '../../models/app-events-types.model';\r\nimport { ModalPopupMainPageEventWrapper } from '../../models/app-events.model';\r\nimport { EventBusService } from '../../services/event-bus.service';\r\n\r\n@Component({\r\n selector: 'gaweb-home-passenger-options',\r\n templateUrl: './home-passenger-options.component.html',\r\n animations: [\r\n trigger(\r\n 'expandOutWithInputFields', [\r\n transition(':enter', [\r\n style({ height: 0, opacity: 0 }),\r\n animate('200ms ease-out', style({ height: '!', opacity: 1 })) // No constiable height until Angular 4.2 :(\r\n ]),\r\n transition(':leave', [\r\n style({ height: '!', opacity: 1 }),\r\n animate('200ms ease-out', style({ height: 0, opacity: 0 }))\r\n ])\r\n ]\r\n ),\r\n trigger(\r\n 'expandOutSeatedInfant', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate('200ms 201ms ease-out', style({ opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 0 }),\r\n animate('200ms ease-out', style({ opacity: 0 }))\r\n ])\r\n ]\r\n ),\r\n trigger(\r\n 'expandOutNursedInfant', [\r\n transition(':enter', [\r\n style({ height: '0px', opacity: 0 }),\r\n animate('200ms 201ms ease-out', style({ height: '!', opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({ height: '!', opacity: 0 }),\r\n animate('200ms ease-out', style({ height: '0px', opacity: 0 }))\r\n ])\r\n ]\r\n ),\r\n trigger(\r\n 'expandOutInfant', [\r\n transition(':enter', [\r\n style({ opacity: 0 }),\r\n animate('200ms 201ms ease-out', style({ opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({ opacity: 1 }),\r\n animate('200ms ease-out', style({ opacity: 0 }))\r\n ])\r\n ]\r\n )\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => HomePassengerOptionsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class HomePassengerOptionsComponent implements OnInit, ControlValueAccessor, AfterViewChecked {\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n private _value: Passengers;\r\n get value() {\r\n return this._value;\r\n }\r\n @Input()\r\n set value(val: Passengers) {\r\n if (val) {\r\n this._value = val;\r\n this.buildForm(val);\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n }\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 passengersPretty: string;\r\n\r\n max = 7;\r\n maxConcessions = 2;\r\n maxInfants = 4;\r\n min = 0;\r\n passengerOptionsForm: FormGroup;\r\n showConcessionCard = false;\r\n concessionLater = false;\r\n showStudentCard = false;\r\n studentLater = false;\r\n passengerSummary: string;\r\n passengersValid = false;\r\n processing: boolean;\r\n infantOptionsDisplaying = false;\r\n display = {\r\n adult: '',\r\n concession: '',\r\n student: '',\r\n accompaniedChild: '',\r\n unaccompaniedChild: '',\r\n infant: ''\r\n };\r\n set concessionCard1(v: string) {\r\n this.passengerOptionsForm.controls['concessionCard1'].patchValue(v);\r\n }\r\n set concessionCard2(v: string) {\r\n this.passengerOptionsForm.controls['concessionCard2'].patchValue(v);\r\n }\r\n set studentCard1(v: string) {\r\n this.passengerOptionsForm.controls['studentCard1'].patchValue(v);\r\n }\r\n set studentCard2(v: string) {\r\n this.passengerOptionsForm.controls['studentCard2'].patchValue(v);\r\n }\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n constructor(\r\n private fb: FormBuilder,\r\n private expressBookingService: ExpressBookingService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private localStorageService: LocalStorageService,\r\n private initialDataService: InitialDataService,\r\n private eventBusService: EventBusService,\r\n private cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n const passengerFareTypes: PassengerFareType[] = this.initialDataService.fareTypes;\r\n passengerFareTypes.forEach((v: PassengerFareType) => {\r\n const text = v.Display;\r\n switch (v.Code) {\r\n case '000':\r\n this.display.adult = text;\r\n break;\r\n case '041':\r\n this.display.concession = text;\r\n break;\r\n case '220':\r\n this.display.student = text;\r\n break;\r\n case '418':\r\n this.display.accompaniedChild = text;\r\n break;\r\n case '420':\r\n this.display.unaccompaniedChild = text;\r\n break;\r\n case '451':\r\n this.display.infant = text;\r\n break;\r\n }\r\n });\r\n this.resetForm();\r\n }\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n private buildForm(travelPassengers: Passengers) {\r\n if (!!this.passengerOptionsForm) {\r\n if (!!travelPassengers) {\r\n this.passengerOptionsForm.patchValue(this.getObjectToFillForm(travelPassengers));\r\n } else {\r\n this.passengerOptionsForm.patchValue(this.getObjectToClearForm());\r\n }\r\n } else {\r\n if (!!travelPassengers) {\r\n this.passengerOptionsForm = this.fb.group(this.getObjectToFillForm(travelPassengers));\r\n } else {\r\n this.passengerOptionsForm = this.fb.group(this.getObjectToClearForm());\r\n }\r\n }\r\n\r\n }\r\n private getObjectToClearForm() {\r\n return {\r\n adults: 0,\r\n concessions: 0,\r\n children: 0,\r\n seatedInfant: 0,\r\n nursedInfant: 0,\r\n accompaniedChildren: 0,\r\n infants: 0,\r\n concessionCard1: null,\r\n concessionCard2: null,\r\n concessionLater: false,\r\n studentCard1: null,\r\n studentCard2: null,\r\n studentLater: false,\r\n students: 0\r\n };\r\n }\r\n private getObjectToFillForm(travelPassengers: Passengers) {\r\n return {\r\n adults: travelPassengers.adults || 0,\r\n concessions: travelPassengers.concessions || 0,\r\n seatedInfant: travelPassengers.seatedInfant,\r\n nursedInfant: travelPassengers.nursedInfant,\r\n accompaniedChildren: travelPassengers.accompaniedChildren,\r\n infants: travelPassengers.infants || 0,\r\n concessionCard1: travelPassengers.concessionCard1,\r\n concessionCard2: travelPassengers.concessionCard2,\r\n concessionLater: travelPassengers.concessionLater,\r\n studentCard1: travelPassengers.studentCard1,\r\n studentCard2: travelPassengers.studentCard2,\r\n studentLater: travelPassengers.studentLater,\r\n students: travelPassengers.students || 0\r\n };\r\n }\r\n private resetForm() {\r\n this.buildForm(this.value);\r\n this.value = this.expressBookingService.getPassengerObject(this.passengerOptionsForm);\r\n if (this.localStorageService.getTravelPassengers() != null) {\r\n this.value = this.localStorageService.getTravelPassengers();\r\n this.buildForm(this.value);\r\n }\r\n this.passengerSummary = this.expressBookingService.getPassengerSummary(this.passengerOptionsForm);\r\n this.passengerOptionsForm.controls['concessions'].valueChanges.subscribe(val => {\r\n this.onConcessionUpdated(val);\r\n });\r\n this.passengerOptionsForm.controls['students'].valueChanges.subscribe(val => {\r\n this.onStudentUpdated(val);\r\n });\r\n this.onConcessionLaterClicked(null);\r\n this.onStudentLaterClicked(null);\r\n }\r\n\r\n onConcessionUpdated(count: number) {\r\n if (count > 0) {\r\n this.showConcessionCard = true;\r\n if (count === 1) {\r\n this.concessionCard2 = '';\r\n }\r\n } else {\r\n this.showConcessionCard = false;\r\n this.concessionCard1 = '';\r\n this.concessionCard2 = '';\r\n }\r\n }\r\n onStudentUpdated(count: number) {\r\n if (count > 0) {\r\n this.showStudentCard = true;\r\n if (count === 1) {\r\n this.studentCard2 = '';\r\n }\r\n } else {\r\n this.showStudentCard = false;\r\n this.studentCard1 = '';\r\n this.studentCard2 = '';\r\n }\r\n }\r\n\r\n openPassengersSelectionPicker() {\r\n this.showModal();\r\n this.isPassengersCombinationValid();\r\n }\r\n finishEnteringPassengerOptions() {\r\n this.processing = true;\r\n this.actionUpdaterService.announceClear(true);\r\n this.passengerSummary = this.expressBookingService.getPassengerSummary(this.passengerOptionsForm);\r\n this.value = this.expressBookingService.getPassengerObject(this.passengerOptionsForm);\r\n this.hideModal();\r\n this.processing = false;\r\n }\r\n\r\n passengerOptionsFormInvalid() {\r\n return false;\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n onConcessionLaterClicked($event) {\r\n if (this.passengerOptionsForm.get('concessionLater').value) {\r\n this.passengerOptionsForm.get('concessionCard1').disable();\r\n this.passengerOptionsForm.get('concessionCard2').disable();\r\n this.concessionCard1 = '';\r\n this.concessionCard2 = '';\r\n } else {\r\n this.passengerOptionsForm.get('concessionCard1').enable();\r\n this.passengerOptionsForm.get('concessionCard2').enable();\r\n }\r\n this.isPassengersCombinationValid();\r\n }\r\n onStudentLaterClicked($event) {\r\n if (this.passengerOptionsForm.get('studentLater').value) {\r\n this.passengerOptionsForm.get('studentCard1').disable();\r\n this.passengerOptionsForm.get('studentCard2').disable();\r\n this.studentCard1 = '';\r\n this.studentCard2 = '';\r\n } else {\r\n this.passengerOptionsForm.get('studentCard1').enable();\r\n this.passengerOptionsForm.get('studentCard2').enable();\r\n }\r\n this.isPassengersCombinationValid();\r\n }\r\n\r\n showInfantBreakdown() {\r\n const totalAdults = this.getTotalAdults();\r\n const totalSeats = this.getTotalSeats();\r\n const infants = this.passengerOptionsForm.controls['infants'].value;\r\n const seatedInfant = this.passengerOptionsForm.get('seatedInfant').value;\r\n const nursedInfant = this.passengerOptionsForm.get('nursedInfant').value; \r\n\r\n const result = (totalSeats >= 2 && infants > 0) || (totalSeats >= 2 && (seatedInfant + nursedInfant) > 0 ) || this.infantOptionsDisplaying === true;\r\n\r\n if(result === true) {\r\n this.infantOptionsDisplaying = true;\r\n }\r\n return result\r\n }\r\n\r\n onAdultChange() {\r\n const numAdults = this.getTotalAdults();\r\n const totalSeats = this.getTotalSeats();\r\n const infants = this.passengerOptionsForm.get('infants').value;\r\n const seatedInfants = this.passengerOptionsForm.get('seatedInfant').value;\r\n const nursedInfants = this.passengerOptionsForm.get('nursedInfant').value;\r\n\r\n if (totalSeats < 2) {\r\n if (seatedInfants + nursedInfants > 0) {\r\n this.passengerOptionsForm.controls['infants'].setValue(seatedInfants + nursedInfants);\r\n }\r\n\r\n this.passengerOptionsForm.controls['seatedInfant'].setValue(0);\r\n this.passengerOptionsForm.controls['nursedInfant'].setValue(0);\r\n }\r\n\r\n if (this.showInfantBreakdown() && seatedInfants === 0) {\r\n if (infants !== 0) {\r\n this.passengerOptionsForm.controls['seatedInfant'].setValue(infants);\r\n this.passengerOptionsForm.controls['infants'].setValue(0);\r\n }\r\n }\r\n\r\n this.isPassengersCombinationValid();\r\n }\r\n\r\n isPassengersCombinationValid() {\r\n const passengers = this.getPassengers();\r\n this.passengersValid = this.expressBookingService.isPassengersCombinationValid(passengers, this.passengerOptionsForm);\r\n return this.passengersValid;\r\n }\r\n\r\n getTotalAdults() {\r\n const adults = this.passengerOptionsForm.controls['adults'].value,\r\n concessions = this.passengerOptionsForm.controls['concessions'].value,\r\n students = this.passengerOptionsForm.controls['students'].value;\r\n return adults + concessions + students;\r\n }\r\n\r\n \r\n getTotalSeats() {\r\n const adults = this.passengerOptionsForm.controls['adults'].value,\r\n concessions = this.passengerOptionsForm.controls['concessions'].value,\r\n students = this.passengerOptionsForm.controls['students'].value,\r\n children = this.passengerOptionsForm.controls['accompaniedChildren'].value;\r\n return adults + concessions + students + children;\r\n }\r\n\r\n getTotalInfants() {\r\n return this.passengerOptionsForm.get('infants').value;\r\n }\r\n showModal() {\r\n this.childModal.show();\r\n $('#passengerOptionsModal').appendTo('gaweb-booking-widget-container');\r\n const ev = new ModalPopupMainPageEvent(true);\r\n this.eventBusService.emit(new ModalPopupMainPageEventWrapper(ev));\r\n }\r\n hideModal() {\r\n $('#passengerOptionsModal').appendTo('#passengerOptionsForm');\r\n this.childModal.hide();\r\n if (!this.processing) {\r\n this.resetForm();\r\n }\r\n const ev = new ModalPopupMainPageEvent(false);\r\n this.eventBusService.emit(new ModalPopupMainPageEventWrapper(ev));\r\n }\r\n public getPassengers(): Passengers {\r\n const numAdults = this.getTotalAdults();\r\n if (numAdults < 2) {\r\n const passengers: Passengers = this.passengerOptionsForm.getRawValue();\r\n if (passengers.infants === 1) {\r\n passengers.seatedInfant = 1;\r\n passengers.infants = 0;\r\n } else if (passengers.infants === 2) {\r\n passengers.seatedInfant = 1;\r\n passengers.nursedInfant = 1;\r\n passengers.infants = 0;\r\n }\r\n return passengers;\r\n } else {\r\n return this.passengerOptionsForm.getRawValue() as Passengers;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/home-passenger-options/home-passenger-options.component.ts","module.exports = \"<div><collapsible-list [type]=\\\"'expandable'\\\">\\r\\n <collapsible-list-item>\\r\\n <collapsible-header class=\\\"waves-effect\\\" (click)=\\\"collapsed = !collapsed\\\">\\r\\n <i class=\\\"fa fa-info-circle\\\" style=\\\"margin-left:10px\\\"></i>\\r\\n <b>{{title}}</b>\\r\\n <i class=\\\"fa\\\" [ngClass]=\\\"{ 'fa-chevron-down' : !collapsed, 'fa-chevron-right' : collapsed }\\\"\\r\\n style=\\\"margin-left: 5px;\\\"></i>\\r\\n </collapsible-header>\\r\\n <collapsible-body [expanded]=\\\"collapsed\\\" [style.marginTop.px]=\\\"-15\\\">\\r\\n <ng-content></ng-content>\\r\\n </collapsible-body>\\r\\n </collapsible-list-item>\\r\\n</collapsible-list>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/info/info.component.html\n// module id = ./src/app/shared/components/info/info.component.html\n// module chunks = main","import { OnInit, OnChanges } from \"@angular/core/src/metadata/lifecycle_hooks\";\r\nimport { Component, Input, ElementRef } from \"@angular/core\";\r\nimport {\r\n TravelService,\r\n SeatAllocation,\r\n SeatStatus\r\n} from \"../../services/travel.service\";\r\nimport {\r\n StopItem,\r\n ReferenceDataService\r\n} from \"../../services/reference-data.service\";\r\nimport * as moment from \"moment\";\r\n\r\n@Component({\r\n selector: \"gaweb-info\",\r\n templateUrl: `./info.component.html`\r\n})\r\nexport class InfoComponent implements OnInit {\r\n @Input()\r\n title: string;\r\n @Input()\r\n collapsed = true;\r\n\r\n constructor(\r\n private travelService: TravelService,\r\n private referenceDataService: ReferenceDataService,\r\n private componentElement: ElementRef\r\n ) {}\r\n ngOnInit(): void {\r\n this.collapsed = !this.collapsed;\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n private updateCss() {\r\n $(this.componentElement.nativeElement).removeClass(\"collapsed\");\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/info/info.component.ts","import { Component, OnInit, Input, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'gaweb-is-arriving',\r\n template: `\r\n <div class=\"btn-group btn-group-justified\" >\r\n <label class=\"btn btn-toggle\" (click)=\"value = false\" [ngClass]=\"departingClasses\">Departing</label>\r\n <label class=\"btn btn-toggle\" (click)=\"value = true\" [ngClass]=\"arrivingClasses\">Arriving</label>\r\n </div>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => IsArrivingComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class IsArrivingComponent implements OnInit, ControlValueAccessor {\r\n private _value = false; // departing = false, arriving = true\r\n departingClasses: string[];\r\n arrivingClasses: string[];\r\n get value() {\r\n return this._value;\r\n }\r\n @Input()\r\n set value(val: boolean) {\r\n this._value = val;\r\n if (val) { // arriving\r\n this.departingClasses = null;\r\n this.arrivingClasses = ['active'];\r\n } else { // departing\r\n this.departingClasses = ['active'];\r\n this.arrivingClasses = null;\r\n }\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value) {\r\n if (value !== null && value !== undefined) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/is-arriving/is-arriving.component.ts","import { Component, OnInit, Input, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'gaweb-is-return',\r\n template: `\r\n <div class=\"btn-group btn-group-justified\" >\r\n <label class=\"btn btn-toggle\" (click)=\"value = false\" [ngClass]=\"getStyles(false)\">ONE WAY</label>\r\n <label class=\"btn btn-toggle\" (click)=\"value = true\" [ngClass]=\"getStyles(true)\">RETURN</label>\r\n </div>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => IsReturnComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class IsReturnComponent implements OnInit, ControlValueAccessor {\r\n @Input('value') _value: boolean = false;\r\n get value() {\r\n return this._value;\r\n }\r\n set value(val: boolean) {\r\n this._value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getStyles(isReturn){\r\n if(this.value && isReturn){\r\n return ['active']\r\n } else if( !this.value && !isReturn){\r\n return ['active']\r\n }\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/is-return/is-return.component.ts","module.exports = \"<div class='row inclusion' *ngIf=\\\"!isMyGreyhound\\\">\\r\\n <div class='col-sm-4 inclusion-title'>\\r\\n <h4>{{name}}</h4>\\r\\n </div>\\r\\n\\r\\n <div class='col-sm-8 inclusion-date'>\\r\\n <gaweb-pick-a-date [minDate]='minimumDate' [value]='selectedDate' [placeholder]='getPlaceholder()' [operatingDays]='getOperatingDaysAsArray()'\\r\\n (onValueChange)='valueChange($event, false)' [isDisabled]='isDisabled'></gaweb-pick-a-date>\\r\\n <div class=\\\"input-group check-div inclusions-later-date-checkbox\\\" *ngIf='!requiresUsageDate && showUsageDate'>\\r\\n <label for=\\\"check{{idx}}\\\">\\r\\n <input id=\\\"check{{idx}}\\\" type=\\\"checkbox\\\" class=\\\"choose-later\\\" [(ngModel)]=\\\"chooseLaterCheck\\\" (change)=\\\"onChooseLaterDateCheckedFunction(chooseLaterCheck)\\\"\\r\\n /> I'll choose my date later\\r\\n </label>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<div *ngIf=\\\"isMyGreyhound\\\">\\r\\n <div class=\\\"row inclusion\\\">\\r\\n <div class=\\\"col-xs-6 col-lg-3 inclusion-title\\\">\\r\\n <div>\\r\\n <span class=\\\"inclusion-name\\\">{{name}}</span>\\r\\n </div>\\r\\n <span>{{passengersText}}</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 col-lg-9 inclusion-date\\\" *ngIf=\\\"inclusionDate\\\">\\r\\n <span>{{inclusionDate | gxDate: 'date'}}</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-xs-6 col-lg-4 inclusion-date\\\" *ngIf=\\\"!inclusionDate\\\">\\r\\n <gaweb-pick-a-date [minDate]='minimumDate' [value]='selectedDate' [placeholder]='getPlaceholder()' [operatingDays]='getOperatingDaysAsArray()'\\r\\n (onValueChange)='valueChange($event, false)' [isDisabled]='isDisabled'></gaweb-pick-a-date>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-lg-5 inclusion-save-date-wrapper\\\" *ngIf=\\\"!inclusionDate\\\">\\r\\n <button type=\\\"button\\\" (click)=\\\"saveExperienceDate()\\\" [disabled]=\\\"selectedDate === null\\\" class=\\\"btn btn-cta-secondary button-width center-block inclusion-save-date-btn\\\">\\r\\n <span>SAVE DATE</span>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <p class=\\\"col-xs-12\\\">\\r\\n <em *ngIf=\\\"inclusionDate\\\">\\r\\n If you need to change your experience date, please contact {{supplierName}} on\\r\\n <a href=\\\"tel:{{supplierPhone}}\\\">{{supplierPhone}}</a>\\r\\n </em>\\r\\n <em *ngIf=\\\"!inclusionDate\\\">\\r\\n If you need to change your experience date, please contact {{supplierName}} on\\r\\n <a href=\\\"tel:{{supplierPhone}}\\\">{{supplierPhone}}</a>\\r\\n </em>\\r\\n </p>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/inclusions/inclusions.component.html\n// module id = ./src/app/shared/components/itinerary/inclusions/inclusions.component.html\n// module chunks = main","import { Component, OnInit, Input, ViewChild, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport {\r\n TravelProductService,\r\n TravelPackage,\r\n UpdateInclusionsOptions,\r\n AddTourToBookingOption,\r\n UpdateTourOnBookingOption,\r\n FareTypeChangedEvent,\r\n ProductType,\r\n AddProductAndPassengerToBookingOptions\r\n} from '../../../services/travel-product.service';\r\nimport * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { ActionUpdaterService, ApiError } from '../../../services/action-updater.service';\r\nimport { PickadateDirective } from '../../pick-a-date/pickadate.directive';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/observable/forkJoin';\r\nimport { Booking } from 'app/shared/models/booking.model';\r\nimport { Dictionary } from 'app/shared/models/dictonary.model';\r\nimport { PassengerOptionsStateService } from 'app/shared/services/passenger-options-state.service';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { ITINERARY_CONTEXT } from '../../../models/enums/context.enum';\r\nimport { Passenger } from '../../../models/passenger.model';\r\n\r\n@Component({\r\n selector: 'gaweb-inclusions',\r\n templateUrl: './inclusions.component.html'\r\n})\r\nexport class InclusionsComponent implements OnInit, OnChanges {\r\n @ViewChild(PickadateDirective) pickadateDirective: PickadateDirective; // First\r\n\r\n @Output() onParentBookingChanged: EventEmitter<any> = new EventEmitter();\r\n @Output() onChooseLaterDateChecked: EventEmitter<any> = new EventEmitter();\r\n\r\n private _passengers: Passenger[];\r\n @Input()\r\n set passengers(p: Passenger[]) {\r\n this._passengers = p;\r\n this.passengersText = this.getPassengersText(this.passengers);\r\n }\r\n get passengers(): Passenger[] {\r\n return this._passengers;\r\n }\r\n @Input() name: string;\r\n @Input() tourGuid: string;\r\n @Input() requiresUsageDate: boolean;\r\n @Input() bookingGuid: string;\r\n @Input() selectedDate: string;\r\n inclusionDate: string;\r\n @Input() bookDaysPriorTo: number;\r\n @Input() operatingDays: string;\r\n @Input() showUsageDate: boolean;\r\n @Input() tourGuids: string[];\r\n @Input() bookingGuids: string[];\r\n @Input() idx: number;\r\n private _productType: ProductTypeUrl;\r\n @Input()\r\n set productType(value: number) {\r\n this._productType = value;\r\n this.productTypeName = ProductTypeUrl[this._productType];\r\n }\r\n get productType(): number {\r\n return this._productType;\r\n }\r\n @Input() fareTypeCode: string;\r\n @Input() fareTypeCurrency: string;\r\n @Input() fareTypeCurrencyAmount: number;\r\n @Input() sendConfirmation: boolean;\r\n @Input() loadedBooking: Booking;\r\n @Input() passengerCounts: Dictionary<FareTypeChangedEvent>;\r\n\r\n @Input() supplierName: string;\r\n @Input() supplierPhone: string;\r\n @Input() purchaseNum: string;\r\n isMyGreyhound: boolean;\r\n passengersText: string;\r\n @Input()\r\n set context(c: ITINERARY_CONTEXT) {\r\n this.isMyGreyhound = c === ITINERARY_CONTEXT.MY_GREYHOUND;\r\n }\r\n\r\n productTypeName: string;\r\n minimumDate: Date = new Date();\r\n\r\n public value: Date = new Date();\r\n isDisabled: boolean;\r\n constructor(private travelPackageService: TravelProductService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private passengerOptionsStateService: PassengerOptionsStateService) {\r\n this.isDisabled = false;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.selectedDate === GxConstants.MIN_DATE) {\r\n this.selectedDate = null;\r\n }\r\n if (this.bookDaysPriorTo === -1) {\r\n this.minimumDate = new Date();\r\n } else {\r\n this.minimumDate = moment().add(this.bookDaysPriorTo + 1, 'days').toDate();\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!!changes['selectedDate'] && changes['selectedDate'].isFirstChange()) {\r\n const sd = changes['selectedDate'].currentValue;\r\n if (!!sd && sd !== GxConstants.MIN_DATE) {\r\n this.inclusionDate = sd;\r\n }\r\n this.valueChange(sd, changes['selectedDate'].isFirstChange());\r\n }\r\n if (!!changes.tourGuid && !changes.tourGuids) {\r\n if (!this.tourGuids) {// if my-greyhound\r\n this.tourGuids = [this.tourGuid];\r\n }\r\n }\r\n }\r\n private getPassengersText(passengers: Passenger[]): string {\r\n let text = '';\r\n passengers.forEach(p => {\r\n text += p.FirstName + ' ' + p.Surname + ', ';\r\n });\r\n return text.substring(0, text.length - 2);\r\n }\r\n saveExperienceDate() {\r\n this.manageValueChanged();\r\n }\r\n valueChange(date, isFirstChange: boolean) {\r\n if (!date) {\r\n date = GxConstants.MIN_DATE;\r\n }\r\n const inclusionDateChanged = date !== this.selectedDate;\r\n this.selectedDate = date;\r\n if (!this.isMyGreyhound) {\r\n if (!isFirstChange && inclusionDateChanged) {\r\n this.passengerOptionsStateService.broadcastShouldDisplayDialog();\r\n this.manageValueChanged();\r\n } else if (!isFirstChange) {\r\n this.onParentBookingChanged.emit({\r\n 'bookings': null,\r\n 'inclusionDateChanged': false\r\n });\r\n }\r\n }\r\n\r\n }\r\n onChooseLaterDateCheckedFunction(value: boolean) {\r\n this.isDisabled = value;\r\n if (this.selectedDate === GxConstants.MIN_DATE) {\r\n this.emitOnChooseLaterDateCheckedProcessing(null, value);\r\n } else {\r\n this.selectedDate = GxConstants.MIN_DATE;\r\n this.manageValueChanged();\r\n }\r\n\r\n }\r\n /**\r\n * Function used either when the user selects a date or he checks the checkbox to disable the datepicker\r\n */\r\n private manageValueChanged() {\r\n const _updateSequentially = async (callsToMake: Observable<any>[]) => {\r\n const idLastCall = callsToMake.length - 1;\r\n let i = 0;\r\n let bookings = [];\r\n for (const call of callsToMake) {\r\n try {\r\n let bookingsResponse = await call.toPromise();\r\n if (!Array.isArray(bookingsResponse)) {\r\n bookingsResponse = [bookingsResponse];\r\n }\r\n bookings = [...bookings, ...bookingsResponse];\r\n if (i === idLastCall) {\r\n this.setInclusionDate(this.selectedDate);\r\n if (this.selectedDate === GxConstants.MIN_DATE) {\r\n this.onChooseLaterDateCheckedProcessing(bookings, this.isDisabled);\r\n } else {\r\n this.valueChangeProcessing(bookings);\r\n }\r\n }\r\n } catch (err) {\r\n this.actionUpdaterService.onError(err);\r\n }\r\n i++;\r\n }\r\n };\r\n let updateInclusionFunc, options;\r\n const calls = [];\r\n let bookingGuid = this.bookingGuid;\r\n const selectedDateToBook = this.selectedDate === GxConstants.MIN_DATE ? '' : this.selectedDate;\r\n switch (this.productType) {\r\n case ProductTypeUrl.accommodation:\r\n case ProductTypeUrl.experience:\r\n if (!!this.loadedBooking) { // pay using kms\r\n const products: ProductType[] = this.getProductTypesFromFareTypeCounts();\r\n const addProductAndPassengerToBookingOptions =\r\n new AddProductAndPassengerToBookingOptions(this.loadedBooking.BookingGuid);\r\n addProductAndPassengerToBookingOptions.Products = products;\r\n options = addProductAndPassengerToBookingOptions;\r\n updateInclusionFunc = this.travelPackageService.addProductAndPassengerToBooking;\r\n updateInclusionFunc.call(this.travelPackageService, options)\r\n .subscribe((bookings) => {\r\n this.setInclusionDate(this.selectedDate);\r\n if (this.selectedDate === GxConstants.MIN_DATE) {\r\n this.onChooseLaterDateCheckedProcessing(bookings, this.isDisabled);\r\n } else {\r\n this.valueChangeProcessing(bookings);\r\n }\r\n },\r\n this.actionUpdaterService.onError);\r\n } else {\r\n updateInclusionFunc = this.travelPackageService.updateTourOnBooking;\r\n // there is just one tour visible but we have to update all of them\r\n this.tourGuids.forEach((tourGuid) => {\r\n options = new UpdateTourOnBookingOption(bookingGuid, tourGuid, selectedDateToBook,\r\n this.fareTypeCode, this.fareTypeCurrency, this.fareTypeCurrencyAmount, this.sendConfirmation);\r\n calls.push(updateInclusionFunc.call(this.travelPackageService, options));\r\n });\r\n _updateSequentially(calls);\r\n }\r\n break;\r\n case ProductTypeUrl.package:\r\n default:\r\n // cases:\r\n // (1) 1 Booking with Package with 1 Inclusion)\r\n // (2) 1 Booking with Package with more than 1 Inclusion)\r\n // 3) Bookings with one Package with 1 Inclusion or more each\r\n updateInclusionFunc = this.travelPackageService.updateSingleInclusions;\r\n\r\n this.tourGuids.forEach((tourGuid: string, index: number) => {\r\n bookingGuid = !!this.bookingGuids ?\r\n this.bookingGuids[index]\r\n : this.bookingGuid; // multiple bookings or one booking with multiple inclusions\r\n options = new UpdateInclusionsOptions(selectedDateToBook, bookingGuid, tourGuid);\r\n calls.push(updateInclusionFunc.call(this.travelPackageService, options));\r\n });\r\n _updateSequentially(calls);\r\n }\r\n }\r\n private setInclusionDate(date: string): void {\r\n this.inclusionDate = date;\r\n }\r\n private valueChangeProcessing(bookings: Booking[]) {\r\n this.actionUpdaterService.announceSuccess('Experience date updated successfully');\r\n this.onParentBookingChanged.emit({\r\n 'bookings': bookings,\r\n 'inclusionDateChanged': true\r\n });\r\n }\r\n getOperatingDaysAsArray() {\r\n const array = this.operatingDays.split(/\\W/).filter(a => a)\r\n return array.map(a => Number.parseInt(a) + 1);\r\n }\r\n\r\n showCalendar($event) {\r\n $event.stopPropagation();\r\n this.pickadateDirective.openPickaDate();\r\n }\r\n\r\n getPlaceholder() {\r\n let placeholder;\r\n if (this.isDisabled) {\r\n placeholder = 'Open-dated';\r\n } else {\r\n placeholder = 'Choose date';\r\n if (this.requiresUsageDate) {\r\n placeholder += '*';\r\n }\r\n }\r\n\r\n return placeholder;\r\n }\r\n\r\n private getProductTypesFromFareTypeCounts() {\r\n const products: ProductType[] = <ProductType[]>_(this.passengerCounts).map((f) => {\r\n if (f.count > 0) {\r\n /* const p = new ProductType(this.travelPackageService.currentProduct.tourReference,\r\n f.fareType.fareTypeCode, f.count, 'Experience'); */\r\n const p = new ProductType(this.travelPackageService.currentProduct.tourReference,\r\n f.fareType.fareTypeCode, 1, 'Experience');\r\n p.DateToBook = this.selectedDate;\r\n const list = _.fill(Array(f.count), p);\r\n\r\n return list;\r\n }\r\n }).flatten().compact().value();\r\n return products;\r\n }\r\n private onChooseLaterDateCheckedProcessing(bookings: Booking[], value: boolean) {\r\n this.emitOnChooseLaterDateCheckedProcessing(bookings, value);\r\n }\r\n private emitOnChooseLaterDateCheckedProcessing(bookings: Booking[], value: boolean) {\r\n let tourGuidArr = [this.tourGuid];\r\n if (!!this.tourGuids && !!this.tourGuids[0]) {\r\n tourGuidArr = this.tourGuids;\r\n }\r\n this.onParentBookingChanged.emit(\r\n {\r\n 'bookings': bookings,\r\n 'inclusionsTourGuidDisabledOrEnabled': tourGuidArr,\r\n 'isDisabled': value\r\n }\r\n );\r\n }\r\n reset() {\r\n if (this.selectedDate !== GxConstants.MIN_DATE) {\r\n this.selectedDate = GxConstants.MIN_DATE;\r\n this.travelPackageService.updateInclusions(new UpdateInclusionsOptions(GxConstants.MIN_DATE, this.bookingGuid, this.tourGuid))\r\n .subscribe((bookings) => {\r\n this.onParentBookingChanged.emit(\r\n {\r\n 'bookings': bookings\r\n }\r\n );\r\n },\r\n this.actionUpdaterService.onError);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/inclusions/inclusions.component.ts","module.exports = \"<div class=\\\"itinerary\\\">\\r\\n <section class=\\\"box-section box-section--parent\\\" id=\\\"head\\\" *ngIf=\\\"showItinerary && (someInclusionShowUsageDate || showTravelDates)\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'ITINERARY'\\\" (onHeaderClicked)=\\\"onHeaderClicked()\\\" [rightIcon]=\\\"rightIcon\\\" [loadsExpanded]=\\\"!right\\\"\\r\\n [expanded]=\\\"!right\\\"></gaweb-collapsing-header>\\r\\n <div [@isHidden]=\\\"right\\\">\\r\\n <div class=\\\"section-body\\\" style=\\\"padding-bottom:0\\\" [@isHidden]=\\\"!(someInclusionShowUsageDate && !right)\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-9\\\">\\r\\n <h5 class=\\\"text-uppercase\\\">{{('ExperienceDateLabel' | translate) | async }}</h5>\\r\\n </div>\\r\\n <div class=\\\"col-xs-3\\\" *ngIf=\\\"anythingRequired\\\">\\r\\n <span class=\\\"is-required is-required--red\\\">* Required</span>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-inclusions *ngFor=\\\"let inclusion of inclusions; let i = index\\\" [name]=\\\"inclusion.Name\\\" [idx]=\\\"i\\\" [selectedDate]=\\\"inclusion.SelectedDate\\\"\\r\\n [bookingGuid]=\\\"parentBooking.BookingGuid\\\" [requiresUsageDate]=\\\"inclusion.FareTypes[0].RequiresUsageDate\\\"\\r\\n [tourGuid]=\\\"inclusion.TourGuid\\\" [bookDaysPriorTo]=\\\"inclusion.FareTypes[0].BookDaysPriorTo\\\" [operatingDays]=\\\"inclusion.FareTypes[0].OperatingDays\\\"\\r\\n [showUsageDate]=\\\"inclusion.FareTypes[0].ShowUsageDate\\\" (onParentBookingChanged)=\\\"onParentBookingChanged($event)\\\"\\r\\n [productType]=\\\"productType\\\" [fareTypeCode]=\\\"inclusion.SelectedFareType\\\" [fareTypeCurrency]=\\\"inclusion.SelectedCurrency\\\"\\r\\n [fareTypeCurrencyAmount]=\\\"inclusion.SelectedCurrencyAmount\\\" [sendConfirmation]=\\\"parentBooking.SendConfirmation\\\"\\r\\n [hidden]=\\\"inclusion.invisible\\\" [tourGuids]=\\\"inclusion.tourGuids\\\" [bookingGuids]=\\\"bookingGuids\\\" [loadedBooking]=\\\"loadedBooking\\\"\\r\\n [passengerCounts]=\\\"passengerCounts\\\" [context]=\\\"context\\\"></gaweb-inclusions>\\r\\n </div>\\r\\n <div class=\\\"section-body\\\">\\r\\n <gaweb-travel-dates (SectorsChanged)=\\\"doBookingUpdate($event)\\\" [hidden]=\\\"!showTravelDates\\\" [bookings]=\\\"bookings\\\" (onParentBookingChanged)=\\\"onParentBookingChanged($event)\\\"\\r\\n (showBookTravelSectionChange)=\\\"onshowBookTravelSectionChanged($event)\\\" [showBookTravelSection]=\\\"showBookTravelSection\\\"\\r\\n (onDoLaterDateChanged)=\\\"onDoLaterDateChanged($event)\\\" [showShortTravelDatesDescription]=\\\"showShortTravelDatesDescription\\\"\\r\\n [showTypeAhead]=\\\"showTypeAhead\\\" [productUrl]=\\\"productUrl\\\" [passengerCounts]=\\\"passengerCounts\\\"\\r\\n [showTripDetails]=\\\"false\\\">\\r\\n </gaweb-travel-dates>\\r\\n </div>\\r\\n </div>\\r\\n </section>\\r\\n\\r\\n <div class=\\\"container\\\"></div>\\r\\n\\r\\n\\r\\n <div bsModal #childModal=\\\"bs-modal\\\" class=\\\"modal fade modal-experiences\\\" tabindex=\\\"-1\\\" role=\\\"dialog\\\" aria-labelledby=\\\"mySmallModalLabel\\\"\\r\\n aria-hidden=\\\"true\\\">\\r\\n <div class=\\\"modal-dialog modal-sm\\\">\\r\\n <div class=\\\"\\\">\\r\\n <div class=\\\"modal-body custom-colors\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <p class=\\\"center-text\\\">You have changed your experience date.\\r\\n <br> Please make sure you check your travel dates before continuing.</p>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-offset-3 col-xs-6\\\">\\r\\n <button class=\\\"btn btn-cta btn-block \\\" (click)=\\\"closeModal()\\\">OK</button>\\r\\n </div>\\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/shared/components/itinerary/itinerary.component.html\n// module id = ./src/app/shared/components/itinerary/itinerary.component.html\n// module chunks = main","import { Package } from 'app/shared/models/booking.model';\r\nimport { DeviceService } from './../../services/device.service';\r\nimport {\r\n Component, OnInit, Input, ViewChild, Output, EventEmitter, OnChanges, SimpleChanges, QueryList, ViewChildren\r\n} from '@angular/core';\r\nimport { TravelProductService, TravelPackage, FareTypeChangedEvent } from '../../services/travel-product.service';\r\nimport { Booking, Inclusion } from '../../models/booking.model';\r\nimport * as _ from 'lodash';\r\nimport { TravelDatesComponent } from './travel-dates/travel-dates.component';\r\nimport { InclusionsComponent } from './inclusions/inclusions.component';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { collapseAnimation } from 'app/shared/animations/collapse-animation';\r\nimport { hiddenCollapseAnimation } from 'app/shared/animations/hidden-collapse-animation';\r\nimport { Dictionary } from 'app/shared/models/dictonary.model';\r\nimport { UpdatePassengerGuidsOptions } from 'app/shared/models/events.model';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { ITINERARY_CONTEXT } from 'app/shared/models/enums/context.enum';\r\nimport { ProductUrl } from '../../models/availability.model';\r\n\r\n@Component({\r\n selector: 'gaweb-itinerary',\r\n animations: [hiddenCollapseAnimation],\r\n templateUrl: './itinerary.component.html'\r\n})\r\nexport class ItineraryComponent implements OnInit, OnChanges {\r\n @ViewChild(TravelDatesComponent) travelDatesComponent: TravelDatesComponent;\r\n @ViewChildren(InclusionsComponent) inclusionsComponents: QueryList<InclusionsComponent>;\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n private _bookings: Array<Booking>;\r\n @Input() set bookings(value: Array<Booking>) {\r\n this._bookings = value;\r\n if (value && value.length > 0) {\r\n this.bootstrapComponentFromNewBookings(value);\r\n }\r\n }\r\n get bookings(): Array<Booking> {\r\n return this._bookings;\r\n }\r\n @Input() loadingBookings: boolean;\r\n\r\n private _showBookTravelSection: boolean;\r\n @Input()\r\n set showBookTravelSection(value: boolean) {\r\n this._showBookTravelSection = value;\r\n this.showBookTravelSectionChange.emit(value);\r\n }\r\n get showBookTravelSection(): boolean {\r\n return this._showBookTravelSection;\r\n }\r\n @Input() passengerCounts: Dictionary<FareTypeChangedEvent>;\r\n @Input()\r\n productUrl: ProductUrl;\r\n productType: ProductTypeUrl;\r\n @Output() showBookTravelSectionChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() onInclusionDateSaved: EventEmitter<UpdatePassengerGuidsOptions> = new EventEmitter();\r\n @Output() onParentBookingUpdated: EventEmitter<any> = new EventEmitter();\r\n \r\n parentBooking: Booking;\r\n inclusions: Array<Inclusion>;\r\n anythingRequired: boolean;\r\n someInclusionShowUsageDate: boolean;\r\n showTickComplete: boolean;\r\n inclusionsDisabled: Set<string>;\r\n showTravelDates: boolean;\r\n travelDatesCorrect: boolean;\r\n experienceDatesCorrectly: boolean;\r\n showShortTravelDatesDescription: boolean;\r\n isTravelOnly: boolean;\r\n isExperienceOnly: boolean;\r\n onDoLaterChecked: boolean;\r\n showItinerary: boolean;\r\n bookingGuids: string[];\r\n right: boolean;\r\n rightIcon: string;\r\n context: ITINERARY_CONTEXT.BOOK_NOW;\r\n showTypeAhead: boolean;\r\n @Input() loadedBooking: Booking;\r\n constructor(private travelPackageService: TravelProductService,\r\n private deviceService: DeviceService) {\r\n this.setShowTickComplete(false);\r\n this.inclusionsDisabled = new Set();\r\n this.showTravelDates = false;\r\n this.isTravelOnly = false;\r\n this.onDoLaterChecked = false;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges){\r\n console.log(changes);\r\n }\r\n public isCorrectlyFilledOut() {\r\n return (this.showItinerary && this.showTickComplete) || !this.showItinerary;\r\n }\r\n bootstrapComponentFromNewBookings(bookings: Array<Booking>) {\r\n this.parentBooking = bookings[0];\r\n\r\n this.showTravelDates = !(!this.parentBooking || !this.parentBooking.Package ? true : !this.parentBooking.Package.ShowTravel);\r\n this.productType = this.productUrl.ProductTypeUrl;\r\n if (this.productUrl.ProductTypeUrl === ProductTypeUrl.package) {\r\n this.inclusions = _.sortBy(this.parentBooking.Package.Inclusions, ['SortOrder']);\r\n\r\n this.someInclusionShowUsageDate = false;\r\n let experienceDatesRequired = false;\r\n this.bookingGuids = [];\r\n const inclusionNameToTourGuids: Dictionary<string[]> = {};\r\n this.bookings.forEach((b: Booking) => {\r\n this.bookingGuids.push(b.BookingGuid);\r\n\r\n b.Package.Inclusions.forEach((i: Inclusion) => {\r\n i.invisible = !i.FareTypes[0].ShowUsageDate;\r\n const key = i.Name; // the key should identify an inclusion regardless of the faretype\r\n if (!inclusionNameToTourGuids[key]) {\r\n inclusionNameToTourGuids[key] = [];\r\n }\r\n inclusionNameToTourGuids[key].push(i.TourGuid);\r\n i.tourGuids = inclusionNameToTourGuids[key];\r\n this.someInclusionShowUsageDate = this.someInclusionShowUsageDate || i.FareTypes[0].ShowUsageDate;\r\n experienceDatesRequired = experienceDatesRequired || i.FareTypes[0].RequiresUsageDate;\r\n });\r\n });\r\n\r\n this.showTypeAhead = !this.parentBooking.Package.LimitedStops;\r\n this.isTravelOnly = !this.someInclusionShowUsageDate && this.parentBooking.Package.ShowTravel; // showTypeAhead\r\n this.isExperienceOnly = this.someInclusionShowUsageDate && !this.parentBooking.Package.ShowTravel;\r\n\r\n const travelDatesRequired = this.parentBooking.Package.RequiresTravel;\r\n\r\n\r\n // this.experienceDatesCorrectly = this.someInclusionShowUsageDate ? !experienceDatesRequired : true;\r\n this.updateExperienceDatesCorrectly();\r\n this.travelDatesCorrect = this.parentBooking.Package.ShowTravel ?\r\n this.parentBooking.Sectors.length > 0 || this.onDoLaterChecked : true;\r\n\r\n this.anythingRequired = experienceDatesRequired || travelDatesRequired;\r\n this.showItinerary = true;\r\n } else { // experience\r\n this.inclusions = this.parentBooking.Tours;\r\n\r\n this.someInclusionShowUsageDate = false;\r\n let experienceDatesRequired = false;\r\n this.bookingGuids = [];\r\n const tourGuids = [];\r\n this.inclusions.forEach((i: Inclusion, idx: number) => {\r\n tourGuids.push(i.TourGuid);\r\n });\r\n this.inclusions.forEach((i: Inclusion, idx: number) => {\r\n i.tourGuids = tourGuids;\r\n i.invisible = idx > 0;\r\n this.someInclusionShowUsageDate = this.someInclusionShowUsageDate || i.FareTypes[0].ShowUsageDate;\r\n experienceDatesRequired = experienceDatesRequired || i.FareTypes[0].RequiresUsageDate;\r\n });\r\n this.showTypeAhead = false;\r\n this.isTravelOnly = false;\r\n this.isExperienceOnly = true;\r\n\r\n this.experienceDatesCorrectly = false;\r\n this.travelDatesCorrect = true;\r\n\r\n this.anythingRequired = experienceDatesRequired;\r\n this.showItinerary = experienceDatesRequired || this.someInclusionShowUsageDate || this.parentBooking.ShowAddTravelBtn;\r\n }\r\n\r\n\r\n this.updateTick();\r\n\r\n this.updateShowTravelDates();\r\n setTimeout(() => {\r\n this.showBookTravelSection = !this.isTravelOnly;\r\n }, 0);\r\n this.showShortTravelDatesDescription = this.someInclusionShowUsageDate;\r\n }\r\n onParentBookingChanged(customObj: any) {\r\n if (!!customObj.bookings) {\r\n this._bookings = customObj.bookings;\r\n this.parentBooking = this._bookings[0];\r\n }\r\n const inclusionsTourGuidDisabledOrEnabled: string[] = customObj.inclusionsTourGuidDisabledOrEnabled;\r\n const isDisabled: boolean = customObj.isDisabled;\r\n const inclusionDateChanged: boolean = customObj.inclusionDateChanged;\r\n const sectorsDeleted: boolean = customObj.sectorsDeleted;\r\n const removeTravelAndStartOver: boolean = customObj.removeTravelAndStartOver;\r\n\r\n if (isDisabled && !this.isTravelOnly && !this.isExperienceOnly) {\r\n // if we disable an experience (no date then), after having chosen the travel dates we have to delete them (the sectors)\r\n this.travelDatesComponent.deleteAllSectors(false, this._bookings, false);\r\n }\r\n\r\n if (sectorsDeleted && removeTravelAndStartOver) {\r\n this.clearExperiences();\r\n }\r\n if (!this.isExperienceOnly && !this.isTravelOnly && inclusionDateChanged && (this._bookings[0].Sectors != null && this._bookings[0].Sectors.length > 0)) {\r\n this.showModal();\r\n }\r\n this.updateInclusionsDisabled(inclusionsTourGuidDisabledOrEnabled, isDisabled);\r\n\r\n this.updateExperienceDatesCorrectly();\r\n this.updateShowTravelDates();\r\n\r\n this.travelDatesCorrect = this.isExperienceOnly ||\r\n (!this.isExperienceOnly && !this.isTravelOnly && !this.showTravelDates)\r\n ? true\r\n : (!!this.travelDatesComponent\r\n ? this.travelDatesComponent.isCorrect()\r\n : false);\r\n this.updateTick();\r\n if (!!customObj.bookings) {\r\n const passengers = [];\r\n\r\n for (const b of customObj.bookings) {\r\n passengers.push(b.Passengers);\r\n }\r\n\r\n const updatePassengerOptions = new UpdatePassengerGuidsOptions(_.flattenDeep(passengers));\r\n this.onInclusionDateSaved.emit(updatePassengerOptions);\r\n }\r\n }\r\n onDoLaterDateChanged({ checkValue, sectorsAdded }) {\r\n this.onDoLaterChecked = checkValue;\r\n this.updateExperienceDatesCorrectly();\r\n this.travelDatesCorrect = checkValue || sectorsAdded;\r\n this.updateTick();\r\n }\r\n onshowBookTravelSectionChanged(value: boolean) {\r\n this.showBookTravelSectionChange.emit(value);\r\n }\r\n private showModal() {\r\n this.childModal.show();\r\n }\r\n private updateInclusionsInvisibility(inclusions: Inclusion[]) {\r\n if (!!inclusions && !!inclusions.length && inclusions[0].invisible === undefined) {\r\n if (this.productUrl.ProductTypeUrl === ProductTypeUrl.package) {\r\n inclusions.forEach((i: Inclusion) => {\r\n i.invisible = !i.FareTypes[0].ShowUsageDate;\r\n });\r\n } else {\r\n inclusions.forEach((i: Inclusion, idx: number) => {\r\n i.invisible = idx > 0;\r\n });\r\n }\r\n }\r\n }\r\n closeModal() {\r\n this.childModal.hide();\r\n }\r\n private updateShowTravelDates() {\r\n const experiencesFilled = !!this._bookings[0] && !!this._bookings[0].Package ?\r\n this._bookings[0].Package.Inclusions.every((inclusion: Inclusion) => inclusion.SelectedDate !== GxConstants.MIN_DATE) : false;\r\n this.showTravelDates = this.productUrl.ProductTypeUrl === ProductTypeUrl.package &&\r\n ((!this.isExperienceOnly && !this.isTravelOnly && experiencesFilled) // experience and travel\r\n || (this.isTravelOnly)); // or only travel\r\n }\r\n private updateExperienceDatesCorrectly() {\r\n if ((this.parentBooking as any).length) {\r\n this.parentBooking = this.parentBooking[0];\r\n if ((this.parentBooking as any).length) {\r\n this.parentBooking = this.parentBooking[0];\r\n }\r\n }\r\n // search for the first invalid inclusion if it is not just TravelOnly\r\n // tslint:disable-next-line:max-line-length\r\n const incl = this.productUrl.ProductTypeUrl === ProductTypeUrl.package ? this.parentBooking.Package.Inclusions : this.parentBooking.Tours;\r\n this.updateInclusionsInvisibility(incl);\r\n if (this.productUrl.ProductTypeUrl === ProductTypeUrl.package) {\r\n this.experienceDatesCorrectly = this.isTravelOnly ? true : !incl.find((inclusion: Inclusion) =>\r\n inclusion.SelectedDate === GxConstants.MIN_DATE &&\r\n !this.inclusionsDisabled.has(inclusion.TourGuid) &&\r\n !inclusion.invisible);\r\n } else {\r\n // incl is a Tours array as it doesn't really contain inclusions\r\n this.experienceDatesCorrectly = this.isTravelOnly ? true : !incl.find((inclusion: Inclusion) =>\r\n inclusion.SelectedDate === GxConstants.MIN_DATE &&\r\n !this.inclusionsDisabled.has(inclusion.TourGuid) &&\r\n inclusion.ProductStatus === 1 &&\r\n !inclusion.invisible);\r\n }\r\n\r\n }\r\n private clearExperiences() {\r\n this.inclusionsDisabled.clear();\r\n this.inclusionsComponents.forEach((inclusionComponent: InclusionsComponent) => {\r\n inclusionComponent.reset();\r\n });\r\n }\r\n private updateInclusionsDisabled(inclusionTourGuidDisabledOrEnabled: string[], isDisabled: boolean): void {\r\n if (!!inclusionTourGuidDisabledOrEnabled && !!inclusionTourGuidDisabledOrEnabled.length) {\r\n inclusionTourGuidDisabledOrEnabled.forEach(guid => {\r\n if (isDisabled) {\r\n this.inclusionsDisabled.add(guid);\r\n } else {\r\n this.inclusionsDisabled.delete(guid);\r\n }\r\n });\r\n }\r\n }\r\n private updateTick() {\r\n this.setShowTickComplete(this.experienceDatesCorrectly && this.travelDatesCorrect);\r\n if (!this.deviceService.IsDesktop()) {\r\n this.right = this.showTickComplete;\r\n }\r\n }\r\n onHeaderClicked() {\r\n this.right = !this.right;\r\n }\r\n private setShowTickComplete(v: boolean): void {\r\n this.showTickComplete = v;\r\n this.rightIcon = v ? 'fa-inverse fa-check-circle' : 'fa-exclamation-circle fa-inverse';\r\n }\r\n\r\n doBookingUpdate(event: any){\r\n console.log('Do Booking Update:');\r\n console.log(event);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/itinerary.component.ts","module.exports = \"<div class=\\\"trip-table\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-3 col-sm-offset-0 col-sm-1 trip-date navigator\\\" (click)=\\\"handlePreviousDay()\\\" [ngClass]=\\\"{ 'disabled': !showPreviousDay }\\\">\\r\\n <a href=\\\"javascript://\\\" class=\\\"trip-date__previous\\\">\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\"></i>\\r\\n </a>\\r\\n </div>\\r\\n <div class=\\\"col-sm-3 trip-date hidden-xs\\\" (click)=\\\"handlePreviousDay()\\\" [ngClass]=\\\"{ 'disabled': !showPreviousDay }\\\">\\r\\n <h4 *ngIf=\\\"showPreviousDay\\\">{{dayBefore | gxDate: 'date'}}</h4>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 col-sm-4 trip-date active\\\">\\r\\n <h4>{{dayCurrent | gxDate: 'date'}}</h4>\\r\\n </div>\\r\\n <div class=\\\"col-sm-3 trip-date hidden-xs\\\" (click)=\\\"handleNextDay()\\\">\\r\\n <h4>{{dayAfter | gxDate: 'date'}}</h4>\\r\\n </div>\\r\\n <div class=\\\"col-xs-3 col-sm-1 trip-date navigator\\\" (click)=\\\"handleNextDay()\\\" [ngClass]=\\\"{ 'disabled': !showNextDay }\\\">\\r\\n <a href=\\\"javascript://\\\" class=\\\"trip-date__next\\\">\\r\\n <i class=\\\"fa fa-play\\\"></i>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n <!-- Message -->\\r\\n <!-- <div class=\\\"trip-note\\\" *ngIf=\\\"!availabilityDataExists\\\">\\r\\n <ul class=\\\"list-group\\\" *ngFor=\\\"let msg of messages\\\">\\r\\n <li>{{msg}}</li>\\r\\n </ul>\\r\\n </div> -->\\r\\n\\r\\n <div *ngIf=\\\"showAltTravelPanel\\\">\\r\\n <gaweb-travel-alternatives-panel \\r\\n [availabilityDataExists]=\\\"availabilityDataExists\\\" \\r\\n [alternateTravelExists]=\\\"travelAlternatesExist\\\" \\r\\n [betterAlternateTravelExists]=\\\"betterTravelAlternativesExist\\\"\\r\\n [dayBefore]=\\\"dayBefore\\\" \\r\\n [dayAfter]=\\\"dayAfter\\\"\\r\\n [betterDayBefore]=\\\"betterDayBefore\\\" \\r\\n [betterDayAfter]=\\\"betterDayAfter\\\"\\r\\n [showPreviousDay]=\\\"showPreviousDay\\\"\\r\\n (doPrevDay)=\\\"handlePreviousDay()\\\"\\r\\n (doNextDay)=\\\"handleNextDay()\\\"\\r\\n (doBetPrevDay)=\\\"handleBetPreviousDay()\\\"\\r\\n (doBetNextDay)=\\\"handleBetNextDay()\\\"\\r\\n > </gaweb-travel-alternatives-panel>\\r\\n </div>\\r\\n\\r\\n <h2 class=\\\"trip-note\\\" *ngIf=\\\"availabilityDataExists\\\">{{ (description | translate) | async }}</h2>\\r\\n <gaweb-error-summary></gaweb-error-summary>\\r\\n <div *ngIf=\\\"availabilityDataExists\\\">\\r\\n <div class=\\\"trip-set\\\">\\r\\n <h1 *ngIf=\\\"(availability.RouteOptions|filterResults: 'ConnectedService' : 'false' ).length > 0\\\">\\r\\n {{('DirectTripsLabel' | translate) | async }}\\r\\n </h1>\\r\\n <div class=\\\"trip-item\\\" *ngFor=\\\"let ro of (availability.RouteOptions|filterResults: 'ConnectedService' : 'false' ); let first = first; let i = index;\\\"\\r\\n [ngClass]=\\\"{ 'no-fares': !displayFares }\\\">\\r\\n <!--SUMMARY-->\\r\\n <div class=\\\"trip-summary\\\" [ngClass]=\\\"{ 'collapsed': !ro.collapsed }\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-4 col-md-4 center-block text-center\\\">\\r\\n <div class=\\\"col-lg-4 col-lg-offset-1 col-xs-5 col-xs-offset-0 text-center\\\">\\r\\n <gaweb-datetime class=\\\"\\\" [datetime]=\\\"localStorageService.getJsDate(ro.DepartureDate)\\\"\\r\\n [datestyle]=\\\"'old'\\\">\\r\\n <h4 style=\\\"font-weight: 400;\\\">Departs</h4>\\r\\n </gaweb-datetime>\\r\\n </div>\\r\\n <div class=\\\"col-xs-2 trip-duration-container center-block text-center\\\">\\r\\n <div class=\\\"trip-duration center-block text-center\\\">\\r\\n <div class=\\\"trip-duration center-block text-center\\\">\\r\\n <!-- <div>Trip Duration</div>\\r\\n <span>{{ro.RouteTotalDurationText}}</span>\\r\\n <br /> -->\\r\\n <i class=\\\"fa fa-long-arrow-right fa-3x\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-lg-4 col-md-5 col-xs-5 center-block text-center\\\">\\r\\n\\r\\n <gaweb-datetime class=\\\"\\\" [datetime]=\\\"localStorageService.getJsDate(ro.ArrivalDate)\\\"\\r\\n [datestyle]=\\\"'old'\\\">\\r\\n <h4 style=\\\"font-weight: 400;\\\">Arrives</h4>\\r\\n </gaweb-datetime>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 visible-xs\\\">\\r\\n <ul class=\\\"service\\\">\\r\\n <li *ngFor=\\\"let sector of ro.Sectors\\\"> {{sector.BusNumber}}</li>\\r\\n </ul>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 visible-xs\\\">\\r\\n <span>Total time: {{ro.RouteTotalDurationText}}</span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12\\\" [ngClass]=\\\"{ 'col-sm-8 col-md-8': displayFares,\\r\\n 'col-sm-5 col-sm-offset-3 col-md-3 col-md-offset-3 no-fares-container': !displayFares }\\\">\\r\\n <div *ngIf=\\\"!!buttonLabel && !displayFares\\\">\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-cta-secondary btn-block\\\" [ngClass]=\\\"{ 'disabled' : addingSector == ro, '' : addingSector === null }\\\"\\r\\n (click)=\\\"handleGenericButtonClick(availability, ro)\\\" [disabled]=\\\"addingSector == ro\\\">\\r\\n <i *ngIf=\\\"addingSector == ro\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"addingSector != ro\\\">{{buttonLabel}}</span>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"displayFares\\\">\\r\\n <div *ngFor=\\\"let fa of ro.Fares\\\" class=\\\"trip-fare__btn fare-total-{{ro.Fares.length}} desktop \\\"\\r\\n style=\\\"height: 25px;\\\">\\r\\n <span class=\\\"fare-description {{fa.FareType}}\\\" style=\\\"width: 100%;\\\">\\r\\n {{fa.FareType}}\\r\\n <i *ngIf=\\\"fa.FareType == 'Early Bird'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('EarlyBirdDescription' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"fa.FareType == 'Advantage'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('AdvantageDescription' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"fa.FareType == 'Premium'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('PremiumDescription' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"fa.FareType == 'Business'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('BusinessDescription' | translate) | async }}\\\"></i>\\r\\n </span>\\r\\n </div>\\r\\n <div *ngFor=\\\"let fa of ro.Fares; let i = index;\\\" [ngClass]=\\\"{ 'has-special': fa.SpecialDescription }\\\">\\r\\n <button type=\\\"button\\\" [disabled]=\\\"fa.IsSoldOut == true\\\" [style.background-color]=\\\"fareColoursB[i]\\\"\\r\\n [style.opacity]=\\\"fa.IsSoldOut ? 0.5 : 1\\\" class=\\\"btn btn-cta-secondary btn-block trip-fare__btn fare-total-{{ro.Fares.length}}\\\"\\r\\n (click)=\\\"handleChooseFare(availability, ro, fa)\\\">\\r\\n\\r\\n <span class=\\\"fare-description mobile\\\" style=\\\"color: #FFF;\\\">{{fa.FareType}}</span>\\r\\n <span [hidden]=\\\"fa.IsSoldOut == true\\\" class=\\\"fare-special\\\">{{fa.SpecialDescription}}</span>\\r\\n <span *ngIf=\\\"fa.IsSoldOut == true\\\" class=\\\"fare-soldout\\\">Not available</span>\\r\\n <!-- <span ng-if=\\\"fa.SpecialDescription\\\" class=\\\"fare-special\\\" style=\\\"text-align: left;\\\">{{fa.SpecialDescription}}</span> -->\\r\\n\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.WasPrice != fa.Price ? 0.8 : 0\\\"\\r\\n class=\\\"fare-old visible-xs\\\">\\r\\n <span class=\\\"fare-oldprice\\\">${{fa.WasPrice}}</span>\\r\\n </div>\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.Price == '0' ? 0 : 1\\\"\\r\\n class=\\\"fare-price visible-xs\\\">\\r\\n <span class=\\\"fare-currentprice\\\">{{fa.Price | number : '1.0-0'}}</span>\\r\\n <span class=\\\"fare-currency\\\">$</span>\\r\\n </div>\\r\\n\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.Price == '0' ? 0 : 1\\\"\\r\\n class=\\\"fare-price hidden-xs\\\" style=\\\"width:auto;\\\">\\r\\n <span class=\\\"fare-currentprice\\\">{{fa.Price | number : '1.0-0'}}</span>\\r\\n <span class=\\\"fare-currency\\\">$</span>\\r\\n </div>\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.WasPrice != fa.Price ? 0.8 : 0\\\"\\r\\n style=\\\"margin-top: 40px;margin-right: 5px;\\\" class=\\\"fare-old hidden-xs\\\">\\r\\n <span class=\\\"fare-oldprice\\\">${{fa.WasPrice}}</span>\\r\\n </div>\\r\\n </button>\\r\\n <div class=\\\"trip-fare__btn fare-total-{{ro.Fares.length}} mobile\\\" style=\\\"height: 25px; margin-top: -3px;\\\">\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable <= 5 && fa.RouteSeatsAvailable > 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seats available</span>\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable == 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seat available</span>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngFor=\\\"let fa of ro.Fares; let i = index;\\\">\\r\\n <div class=\\\"trip-fare__btn fare-total-{{ro.Fares.length}} desktop\\\" style=\\\"height: 25px; margin-top: -3px;\\\">\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable <= 5 && fa.RouteSeatsAvailable > 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seats available</span>\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable == 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seat available</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"hidden-xs col-xs-6 col-sm-3\\\" [ngStyle]=\\\"{\\r\\n 'margin-bottom.px': displayFares ? -30 : -20 ,\\r\\n 'margin-top.px' : displayFares ? -15 : 3 ,\\r\\n 'white-space' : displayFares ? 'nowrap' : 'inherit',\\r\\n 'text-align' : displayFares ? 'inherit' : 'center' }\\\">\\r\\n <ul class=\\\"service\\\" [ngStyle]=\\\"{ 'width' : displayFares ? 'auto' : '100%' }\\\">\\r\\n <li *ngFor=\\\"let sector of ro.Sectors\\\"> {{sector.BusNumber}}</li>\\r\\n </ul>\\r\\n <span>Total time: {{ro.RouteTotalDurationText}}</span>\\r\\n </div>\\r\\n <div *ngIf=\\\"displayFares\\\" class=\\\"test col-sm-6 container-bleed visible-xs\\\" style=\\\"margin-bottom: -34px;\\\"\\r\\n [ngClass]=\\\"{'mobile-fare-info' : !displayFares } \\\">\\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 </gaweb-info>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6 trip-expand container-bleed\\\" (click)=\\\"getTimetable(ro); ro.collapsed = !ro.collapsed\\\">\\r\\n <div [ngClass]=\\\"{ 'no-fare': !displayFares }\\\">\\r\\n <span>{{('TripDetails' | translate) | async }}</span>\\r\\n <i [ngClass]=\\\"{ 'fa-chevron-right': ro.collapsed, 'fa-chevron-down': !ro.collapsed }\\\"\\r\\n class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-trip-details style=\\\" border: #777 solid 1px;\\r\\n width: 100%;\\r\\n border-top: none;\\r\\n display: inline-block;\\\"\\r\\n *ngIf=\\\"!ro.collapsed\\\" [ngClass]=\\\"{ 'collapsed': ro.collapsed }\\\" readonly=\\\"true\\\" [sector]=\\\"ro\\\" [travelGuid]=\\\"availability.TravelGUID\\\"></gaweb-trip-details>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"trip-set\\\">\\r\\n <h1 *ngIf=\\\"(availability.RouteOptions|filterResults: 'ConnectedService' : 'true' ).length > 0\\\">\\r\\n {{('ConnectedTripsLabel' | translate) | async }}\\r\\n </h1>\\r\\n <div class=\\\"trip-item\\\" *ngFor=\\\"let ro of (availability.RouteOptions|filterResults: 'ConnectedService' : 'true' ); let first = first; let i = index;\\\"\\r\\n [ngClass]=\\\"{ 'no-fares': !displayFares }\\\">\\r\\n <!--SUMMARY-->\\r\\n <div class=\\\"trip-summary\\\" [ngClass]=\\\"{ 'collapsed': !ro.collapsed }\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-4 col-md-4 center-block text-center\\\">\\r\\n <div class=\\\"col-lg-4 col-lg-offset-1 col-xs-5 col-xs-offset-0 text-center\\\">\\r\\n <gaweb-datetime class=\\\"\\\" [datetime]=\\\"localStorageService.getJsDate(ro.DepartureDate)\\\"\\r\\n [datestyle]=\\\"'old'\\\">\\r\\n <h4 style=\\\"font-weight: 400;\\\">Departs</h4>\\r\\n </gaweb-datetime>\\r\\n </div>\\r\\n <div class=\\\"col-xs-2 trip-duration-container center-block text-center\\\">\\r\\n <div class=\\\"trip-duration center-block text-center\\\">\\r\\n <div class=\\\"trip-duration center-block text-center\\\">\\r\\n <!-- <div>Trip Duration</div>\\r\\n <span>{{ro.RouteTotalDurationText}}</span>\\r\\n <br /> -->\\r\\n <i class=\\\"fa fa-long-arrow-right fa-3x\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-lg-4 col-md-5 col-xs-5 center-block text-center\\\">\\r\\n\\r\\n <gaweb-datetime class=\\\"\\\" [datetime]=\\\"localStorageService.getJsDate(ro.ArrivalDate)\\\"\\r\\n [datestyle]=\\\"'old'\\\">\\r\\n <h4 style=\\\"font-weight: 400;\\\">Arrives</h4>\\r\\n </gaweb-datetime>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 visible-xs\\\">\\r\\n <ul class=\\\"service\\\">\\r\\n <li *ngFor=\\\"let sector of ro.Sectors\\\"> {{sector.BusNumber}}</li>\\r\\n </ul>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 visible-xs\\\">\\r\\n <span>Total time: {{ro.RouteTotalDurationText}}</span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12\\\" [ngClass]=\\\"{ 'col-sm-8 col-md-8': displayFares,\\r\\n 'col-sm-5 col-sm-offset-3 col-md-3 col-md-offset-3 no-fares-container': !displayFares }\\\">\\r\\n <div *ngIf=\\\"!!buttonLabel && !displayFares\\\">\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-cta-secondary btn-block\\\" [ngClass]=\\\"{ 'disabled' : addingSector == ro, '' : addingSector === null }\\\"\\r\\n (click)=\\\"handleGenericButtonClick(availability, ro)\\\" [disabled]=\\\"addingSector == ro\\\">\\r\\n <i *ngIf=\\\"addingSector == ro\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"addingSector != ro\\\">{{buttonLabel}}</span>\\r\\n </button>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"displayFares\\\">\\r\\n <div *ngFor=\\\"let fa of ro.Fares\\\" class=\\\"trip-fare__btn fare-total-{{ro.Fares.length}} desktop \\\"\\r\\n style=\\\"height: 25px;\\\">\\r\\n <span class=\\\"fare-description {{fa.FareType}}\\\" style=\\\"width: 100%;\\\">\\r\\n {{fa.FareType}}\\r\\n <i *ngIf=\\\"fa.FareType == 'Early Bird'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('EarlyBirdDescription' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"fa.FareType == 'Advantage'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('AdvantageDescription' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"fa.FareType == 'Premium'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('PremiumDescription' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"fa.FareType == 'Business'\\\" class=\\\"fa fa-info-circle pull-right\\\"\\r\\n data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\" title=\\\"{{('BusinessDescription' | translate) | async }}\\\"></i>\\r\\n </span>\\r\\n </div>\\r\\n <div *ngFor=\\\"let fa of ro.Fares; let i = index;\\\" [ngClass]=\\\"{ 'has-special': fa.SpecialDescription }\\\">\\r\\n <button type=\\\"button\\\" [disabled]=\\\"fa.IsSoldOut == true\\\" [style.background-color]=\\\"fareColoursB[i]\\\"\\r\\n [style.opacity]=\\\"fa.IsSoldOut ? 0.5 : 1\\\" class=\\\"btn btn-cta-secondary btn-block trip-fare__btn fare-total-{{ro.Fares.length}}\\\"\\r\\n (click)=\\\"handleChooseFare(availability, ro, fa)\\\">\\r\\n\\r\\n <span class=\\\"fare-description mobile\\\" style=\\\"color: #FFF;\\\">{{fa.FareType}}</span>\\r\\n <span [hidden]=\\\"fa.IsSoldOut == true\\\" class=\\\"fare-special\\\">{{fa.SpecialDescription}}</span>\\r\\n <span *ngIf=\\\"fa.IsSoldOut == true\\\" class=\\\"fare-soldout\\\">Not available</span>\\r\\n <!-- <span ng-if=\\\"fa.SpecialDescription\\\" class=\\\"fare-special\\\" style=\\\"text-align: left;\\\">{{fa.SpecialDescription}}</span> -->\\r\\n\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.WasPrice != fa.Price ? 0.8 : 0\\\"\\r\\n class=\\\"fare-old visible-xs\\\">\\r\\n <span class=\\\"fare-oldprice\\\">${{fa.WasPrice}}</span>\\r\\n </div>\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.Price == '0' ? 0 : 1\\\"\\r\\n class=\\\"fare-price visible-xs\\\">\\r\\n <span class=\\\"fare-currentprice\\\">{{fa.Price | number : '1.0-0'}}</span>\\r\\n <span class=\\\"fare-currency\\\">$</span>\\r\\n </div>\\r\\n\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.Price == '0' ? 0 : 1\\\"\\r\\n class=\\\"fare-price hidden-xs\\\" style=\\\"width:auto;\\\">\\r\\n <span class=\\\"fare-currentprice\\\">{{fa.Price | number : '1.0-0'}}</span>\\r\\n <span class=\\\"fare-currency\\\">$</span>\\r\\n </div>\\r\\n <div [hidden]=\\\"fa.IsSoldOut == true\\\" [style.opacity]=\\\"fa.WasPrice != fa.Price ? 0.8 : 0\\\"\\r\\n style=\\\"margin-top: 40px;margin-right: 5px;\\\" class=\\\"fare-old hidden-xs\\\">\\r\\n <span class=\\\"fare-oldprice\\\">${{fa.WasPrice}}</span>\\r\\n </div>\\r\\n </button>\\r\\n <div class=\\\"trip-fare__btn fare-total-{{ro.Fares.length}} mobile\\\" style=\\\"height: 25px; margin-top: -3px;\\\">\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable <= 5 && fa.RouteSeatsAvailable > 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seats available</span>\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable == 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seat available</span>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngFor=\\\"let fa of ro.Fares; let i = index;\\\">\\r\\n <div class=\\\"trip-fare__btn fare-total-{{ro.Fares.length}} desktop\\\" style=\\\"height: 25px; margin-top: -3px;\\\">\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable <= 5 && fa.RouteSeatsAvailable > 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seats available</span>\\r\\n <span *ngIf=\\\"fa.RouteSeatsAvailable == 1\\\" class=\\\"fare-seats\\\">{{fa.RouteSeatsAvailable}}\\r\\n Seat available</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"hidden-xs col-xs-6 col-sm-3\\\" [ngStyle]=\\\"{\\r\\n 'margin-bottom.px': displayFares ? -30 : -20 ,\\r\\n 'margin-top.px' : displayFares ? -15 : 3 ,\\r\\n 'white-space' : displayFares ? 'nowrap' : 'inherit',\\r\\n 'text-align' : displayFares ? 'inherit' : 'center' }\\\">\\r\\n <ul class=\\\"service\\\" [ngStyle]=\\\"{ 'width' : displayFares ? 'auto' : '100%' }\\\">\\r\\n <li *ngFor=\\\"let sector of ro.Sectors\\\"> {{sector.BusNumber}}</li>\\r\\n </ul>\\r\\n <span>Total time: {{ro.RouteTotalDurationText}}</span>\\r\\n </div>\\r\\n <div *ngIf=\\\"displayFares\\\" class=\\\"test col-sm-6 container-bleed visible-xs\\\" style=\\\"margin-bottom: -34px;\\\"\\r\\n [ngClass]=\\\"{'mobile-fare-info' : !displayFares } \\\">\\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 </gaweb-info>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6 trip-expand container-bleed\\\" (click)=\\\"getTimetable(ro); ro.collapsed = !ro.collapsed\\\">\\r\\n <div [ngClass]=\\\"{ 'no-fare': !displayFares }\\\">\\r\\n <span>{{('TripDetails' | translate) | async }}</span>\\r\\n <i [ngClass]=\\\"{ 'fa-chevron-right': ro.collapsed, 'fa-chevron-down': !ro.collapsed }\\\"\\r\\n class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-trip-details style=\\\" border: #777 solid 1px;\\r\\n width: 100%;\\r\\n border-top: none;\\r\\n display: inline-block;\\\"\\r\\n *ngIf=\\\"!ro.collapsed\\\" [ngClass]=\\\"{ 'collapsed': ro.collapsed }\\\" readonly=\\\"true\\\" [sector]=\\\"ro\\\" [travelGuid]=\\\"availability.TravelGUID\\\"></gaweb-trip-details>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<gaweb-running-dog-modal></gaweb-running-dog-modal>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/availability-table/availability-table.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/availability-table/availability-table.component.html\n// module chunks = main","import { Component, OnInit, Output, EventEmitter, Input, ViewChildren, QueryList } from '@angular/core';\r\nimport { trigger, style, animate, transition, state } from '@angular/animations';\r\nimport { Availability, RouteOption, ProductUrl, TravelAlternative } from '../../../../models/availability.model';\r\nimport { BookingService, SectorOptions } from '../../../../services/booking.service';\r\nimport { TravelProductService } from '../../../../services/travel-product.service';\r\nimport { ActionUpdaterService, ApiError } from '../../../../services/action-updater.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { RefreshAvailabilityByDateOption } from '../availability-wrapper/availability-wrapper.component';\r\nimport { GoogleMapComponent } from '../../../google-map/google-map.component';\r\nimport { SeatAllocationsComponent } from '../../../seat-allocations/seat-allocations.component';\r\nimport { Booking, Sector } from '../../../../models/booking.model';\r\nimport { ITINERARY_CONTEXT } from '../../../..//models/enums/context.enum';\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { Location } from '@angular/common';\r\nimport { LocalStorageService } from '../../../../services/local-storage.service';\r\nimport { DeviceService } from 'app/shared/services/device.service';\r\nimport { FeatureService, Feature } from 'app/shared/services/feature.service';\r\nimport { PostTimetableOption } from 'app/shared/models/timetables.model';\r\nimport { TimetableService } from 'app/shared/services/timetable-service';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { TranslatePipe } from 'app/shared/pipes/translate.pipe';\r\nimport { DomSanitizer, SafeResourceUrl, SafeStyle, SafeUrl } from '@angular/platform-browser';\r\nimport { Observable } from '../../../../../../../node_modules/rxjs';\r\n@Component({\r\n selector: 'gaweb-availability-table',\r\n templateUrl: './availability-table.component.html',\r\n animations: [\r\n trigger(\r\n 'slideTransition',\r\n [\r\n state('in', style({})),\r\n transition('* => void', [\r\n style({ height: '!', opacity: 1, overflow: 'hidden' }),\r\n animate('200ms ease-out', style({ height: '0px', opacity: 0, overflow: 'hidden' }))\r\n ]),\r\n transition('void => *', [\r\n style({ height: '0px', opacity: 0, overflow: 'hidden' }),\r\n animate('200ms ease-out', style({ height: '!', opacity: 1, overflow: 'hidden' }))\r\n ])\r\n ]\r\n )]\r\n})\r\nexport class AvailabilityTableComponent implements OnInit {\r\n static readonly fareDescriptions = {\r\n 'Saver': 'Saver fare is non-changeable and non-refundable.',\r\n 'Flexi': 'Flexi fare is non-refundable but can be changed.'\r\n };\r\n @Output() onRefreshAvailabilityByDate: EventEmitter<RefreshAvailabilityByDateOption> = new EventEmitter();\r\n @Output() onMoveToReturnSlide: EventEmitter<any> = new EventEmitter();\r\n @Output() onHandleChooseFare: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input() availability: Availability;\r\n @Input() displayFares: boolean;\r\n @Input() buttonLabel: string;\r\n @Input() currentSlide: number;\r\n @Input() description: string;\r\n @Input() productUrl: ProductUrl;\r\n @Input() hasReturnTrip: boolean;\r\n @Input() bookingGuid: string;\r\n @Input() productReference: string;\r\n @Input() isAvailabilityPartOfReturnBooking: boolean;\r\n @Input() context: ITINERARY_CONTEXT;\r\n @Input() targetSector: number;\r\n @ViewChildren(GoogleMapComponent) googleMap: QueryList<GoogleMapComponent>;\r\n @ViewChildren(SeatAllocationsComponent) seatAllocations: QueryList<SeatAllocationsComponent>;\r\n\r\n fareColours: SafeStyle[] = [];\r\n fareColoursB: string[] = [];\r\n showPreviousDay: boolean;\r\n showNextDay: boolean;\r\n dayCurrent: Date;\r\n dayBefore: Date;\r\n dayAfter: Date;\r\n betterDayBefore: Date | null;\r\n betterDayAfter: Date | null;\r\n availabilityDataExists: boolean;\r\n nextAvailabilityDateExists: boolean;\r\n previousAvailabilityDateExists: boolean;\r\n gettingTimetable = false;\r\n addingSector = null;\r\n messages: string[] = [];\r\n travelAlternates: Array<TravelAlternative> = [];\r\n travelAlternatesExist = false;\r\n betterTravelAlternatives: Array<TravelAlternative> = [];\r\n betterTravelAlternativesExist = false;\r\n showAltTravelPanel = false;\r\n\r\n currentFares: { [key: string]: number; } = {};\r\n selectedSectors: Array<SectorOptions> = [];\r\n mapEnabled = false;\r\n\r\n get fareDescriptions() {\r\n return AvailabilityTableComponent.fareDescriptions;\r\n }\r\n\r\n constructor(private actionUpdaterService: ActionUpdaterService,\r\n private bookingService: BookingService,\r\n private travelPackageService: TravelProductService,\r\n private activatedRoute: ActivatedRoute,\r\n private pipe: TranslatePipe,\r\n private location: Location,\r\n private router: Router,\r\n private localStorageService: LocalStorageService,\r\n private deviceService: DeviceService,\r\n private featureService: FeatureService,\r\n public initialDataService: InitialDataService,\r\n private timetableService: TimetableService,\r\n private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit() {\r\n this.buildViewModel(this.availability);\r\n this.mapEnabled = this.featureService.GetFeatureStatus(Feature.UseGoogleMaps);\r\n\r\n this.fareColours = [ '', '' , '' , '' ];\r\n this.fareColoursB = [ '', '' , '' , '' ];\r\n\r\n (this.pipe.transform('FareColour1') as Observable<string>).subscribe((value) => {\r\n this.fareColours[0] = this.sanitizer.bypassSecurityTrustStyle(value);\r\n this.fareColoursB[0] = value;\r\n });\r\n (this.pipe.transform('FareColour2') as Observable<string>).subscribe((value) => {\r\n this.fareColours[1] = this.sanitizer.bypassSecurityTrustStyle(value);\r\n this.fareColoursB[1] = value;\r\n });\r\n (this.pipe.transform('FareColour3') as Observable<string>).subscribe((value) => {\r\n this.fareColours[2] = this.sanitizer.bypassSecurityTrustStyle(value);\r\n this.fareColoursB[2] = value;\r\n });\r\n (this.pipe.transform('FareColour4') as Observable<string>).subscribe((value) => {\r\n this.fareColours[3] = this.sanitizer.bypassSecurityTrustStyle(value);\r\n this.fareColoursB[3] = value;\r\n });\r\n }\r\n\r\n getFareColour(index: number) {\r\n const result = this.fareColours[index];\r\n return result;\r\n }\r\n\r\n checkMaps(ro: RouteOption) {\r\n // Wait until map is ready.\r\n if (this.googleMap) {\r\n this.googleMap.forEach((gmap) => {\r\n if (Number.parseInt(gmap.index) === ro.index) {\r\n ro.mapReady = gmap.mapReady;\r\n gmap.refreshMap();\r\n }\r\n });\r\n } else {\r\n setTimeout(() => {\r\n this.checkMaps(ro);\r\n }, 250);\r\n }\r\n }\r\n\r\n\r\n buildViewModel(travelAvailability: Availability) {\r\n // ROUTE OPTIONS\r\n if (travelAvailability.RouteOptions && travelAvailability.RouteOptions.length > 0) {\r\n travelAvailability.RouteOptions = travelAvailability.RouteOptions.filter( routeOption => moment(routeOption.DepartureDate).isAfter());\r\n travelAvailability.RouteOptions = travelAvailability.RouteOptions.filter( routeOption => routeOption.Fares.length >= 1);\r\n }\r\n\r\n let routeOptionIndex = 0;\r\n _.each(travelAvailability.RouteOptions,\r\n (ro: any) => {\r\n ro.collapsed = true;\r\n ro.mapReady = false;\r\n // ro.mapView = !this.deviceService.IsMobile() && this.mapEnabled;\r\n ro.mapView = false;\r\n ro.fullRoute = null;\r\n ro.index = routeOptionIndex;\r\n ro.Fares.forEach(fare => {\r\n if (fare.Price == 0 || fare.RouteSeatsAvailable < 1) {\r\n fare.IsSoldOut = true;\r\n } else {\r\n fare.IsSoldOut = false;\r\n }\r\n });\r\n \r\n // ROUTE SECTORS\r\n _.each(ro.Sectors,\r\n (se: any) => {\r\n se.BusNumber = se.ServiceCompany + se.ServiceNumber;\r\n });\r\n\r\n if (ro.Sectors.length > 1) {\r\n ro.ConnectedService = true;\r\n } else {\r\n ro.ConnectedService = false;\r\n }\r\n\r\n // ROUTE SECTORS SUMMARY\r\n ro.BusesNumber = _.map(ro.Sectors, 'BusNumber').join(',');\r\n ro.IsWifiEnabledService = _.some(ro.Sectors,\r\n (se: any) => se.IsWifiEnabled);\r\n ro.WifiSectors = [];\r\n _.each(ro.Sectors, function (sector) {\r\n if (sector['HasWifi']) {\r\n ro.WifiSectors.push(sector['ServiceCompany'] + sector['ServiceNumber']);\r\n }\r\n });\r\n ro.showMap = (inputRo) => {\r\n ro.mapView = true;\r\n this.checkMaps(inputRo);\r\n };\r\n ro.ServiceHasWifi = function (service) {\r\n if (ro.WifiSectors.indexOf(service) > -1) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n routeOptionIndex++;\r\n });\r\n\r\n if (travelAvailability.RouteOptions && travelAvailability.RouteOptions.length > 0 && (this.displayFares)) {\r\n travelAvailability.RouteOptions = travelAvailability.RouteOptions.filter( routeOption => routeOption.Fares.filter(fare => fare.IsSoldOut == false).length > 0);\r\n }\r\n\r\n this.dayCurrent = moment(this.availability.TravelDate).toDate();\r\n\r\n this.showPreviousDay = true;\r\n this.showNextDay = true;\r\n this.availabilityDataExists = !_.isEmpty(travelAvailability.RouteOptions);\r\n this.nextAvailabilityDateExists = !!travelAvailability.NextAvailabilityDate;\r\n this.previousAvailabilityDateExists = !!travelAvailability.PreviousAvailabilityDate;\r\n this.travelAlternates = !!travelAvailability.TravelAlternatives ? travelAvailability.TravelAlternatives : [];\r\n this.travelAlternatesExist = !!this.travelAlternates && this.travelAlternates.length > 0;\r\n this.betterTravelAlternatives = !!this.travelAlternates && this.travelAlternates.filter(x => x.BetterAlternative);\r\n this.betterTravelAlternativesExist = !!this.betterTravelAlternatives && this.betterTravelAlternatives.length > 0;\r\n\r\n if(!travelAvailability.RouteOptions && !!this.travelAlternates) this.showAltTravelPanel = true;\r\n if(!!travelAvailability.RouteOptions && !!this.betterTravelAlternatives) this.showAltTravelPanel = true;\r\n\r\n if(!!travelAvailability.Messages){\r\n this.messages = travelAvailability.Messages.filter(x => !x.includes(\"NOAVL\"));\r\n }\r\n \r\n this.getNextPrevDays();\r\n \r\n return travelAvailability;\r\n }\r\n\r\n getNextPrevDays() {\r\n this.betterDayBefore = null;\r\n this.betterDayAfter = null;\r\n this.dayBefore = this.getPreviousTravelDate();\r\n this.dayAfter = this.getNextTravelDate();\r\n if(this.betterTravelAlternativesExist){\r\n this.betterDayBefore = this.getPreviousBetterTravelDate();\r\n this.betterDayAfter = this.getNextBetterTravelDate();\r\n }\r\n }\r\n\r\n getPreviousTravelDate(){\r\n let retDate: Date | null = null;\r\n retDate = this.getPreviousAltTravelDate();\r\n if(!retDate) retDate = !!this.availability.PreviousAvailabilityDate ? moment(this.availability.PreviousAvailabilityDate).toDate() : null;\r\n if(!retDate) retDate = !!this.availability.PreviousTravelDate ? moment(this.availability.PreviousTravelDate).toDate() : null;\r\n if(!retDate) retDate = moment(this.dayCurrent).subtract(1, 'days').toDate();\r\n if(retDate < moment().toDate()) this.showPreviousDay = false;\r\n return retDate;\r\n }\r\n\r\n getNextTravelDate(){\r\n let retDate: Date | null = null;\r\n retDate = this.getNextAltTravelDate();\r\n if(!retDate) retDate = !!this.availability.NextAvailabilityDate ? moment(this.availability.NextAvailabilityDate).toDate() : null;\r\n if(!retDate) retDate = !!this.availability.NextTravelDate ? moment(this.availability.NextTravelDate).toDate() : null;\r\n if(!retDate) retDate = moment(this.dayCurrent).add(1, 'days').toDate();\r\n return retDate;\r\n }\r\n\r\n getPreviousAltTravelDate(){\r\n if(!this.travelAlternatesExist) return null;\r\n const alts = this.travelAlternates.filter(x => moment(x.S1DepartTime).toDate() < this.dayCurrent);\r\n if(!alts || alts.length < 1) return null;\r\n return moment(alts[alts.length-1].S1DepartTime).toDate();\r\n }\r\n\r\n getNextAltTravelDate(){\r\n if(!this.travelAlternatesExist) return null;\r\n const compareDate = moment(this.dayCurrent).add(1, 'days').toDate();\r\n const alts = this.travelAlternates.filter(x => moment(x.S1DepartTime).toDate() >= compareDate);\r\n if(!alts || alts.length < 1) return null;\r\n return moment(alts[0].S1DepartTime).toDate();\r\n }\r\n\r\n getPreviousBetterTravelDate(){\r\n if(!this.betterTravelAlternativesExist) return null;\r\n const alts = this.betterTravelAlternatives.filter(x => moment(x.S1DepartTime).toDate() < this.dayCurrent);\r\n if(!alts || alts.length < 1) return null;\r\n return moment(alts[alts.length-1].S1DepartTime).toDate();\r\n }\r\n\r\n getNextBetterTravelDate(){\r\n if(!this.betterTravelAlternativesExist) return null;\r\n const compareDate = moment(this.dayCurrent).add(1, 'days').toDate();\r\n const alts = this.betterTravelAlternatives.filter(x => moment(x.S1DepartTime).toDate() >= compareDate);\r\n if(!alts || alts.length < 1) return null;\r\n return moment(alts[0].S1DepartTime).toDate();\r\n }\r\n\r\n getBetterTravelAlternatives(travelAvailability: Availability): Array<TravelAlternative> {\r\n let betterTravel: Array<TravelAlternative> = [];\r\n if(!travelAvailability) return betterTravel;\r\n if(!travelAvailability.RouteOptions) return betterTravel;\r\n if(!travelAvailability.TravelAlternatives) return betterTravel;\r\n const routeDistances: number[] = travelAvailability.RouteOptions.map(x => x.RouteDistance); //push all distances into array\r\n const routeDurations: number[] = travelAvailability.RouteOptions.map(x => x.RouteTotalDuration); //push all durations into array\r\n const shortestRoute = Math.min.apply(null, routeDistances); //get shortest route\r\n const quickestRoute = Math.min.apply(null, routeDurations); //get quickest route\r\n betterTravel = travelAvailability.TravelAlternatives.filter(x => x.TotalDistance + 50 < shortestRoute || x.TripDuration + 30 < quickestRoute);\r\n return betterTravel;\r\n }\r\n\r\n dateIsNotToday(selectedDate) {\r\n return !moment(selectedDate).startOf('day').isSame(moment().startOf('day'));\r\n }\r\n\r\n handlePreviousDay() {\r\n const isDisabled = !this.showPreviousDay;\r\n if (!isDisabled) {\r\n const previousDay = moment(this.dayBefore).format('YYYY-MM-DD');\r\n this.refreshAvailability(previousDay);\r\n }\r\n }\r\n\r\n handleNextDay = () => {\r\n const isDisabled = !this.showNextDay;\r\n if (!isDisabled) {\r\n const nextDay = moment(this.dayAfter).format('YYYY-MM-DD');\r\n this.refreshAvailability(nextDay);\r\n }\r\n }\r\n\r\n handleBetPreviousDay() {\r\n if(!!this.betterDayBefore){\r\n const previousDay = moment(this.betterDayBefore).format('YYYY-MM-DD');\r\n this.refreshAvailability(previousDay); \r\n }\r\n }\r\n\r\n handleBetNextDay = () => {\r\n if (!!this.betterDayAfter) {\r\n const nextDay = moment(this.betterDayAfter).format('YYYY-MM-DD');\r\n this.refreshAvailability(nextDay);\r\n }\r\n }\r\n\r\n calculateFullRoute(data) {\r\n const fullRoute = [];\r\n data.forEach(service => {\r\n\r\n service.forEach(stop => {\r\n fullRoute.push(stop);\r\n });\r\n\r\n if (fullRoute.length > 1) {\r\n fullRoute[fullRoute.length - service.length].departing = true;\r\n fullRoute[fullRoute.length - 1].terminating = true;\r\n }\r\n });\r\n return fullRoute;\r\n }\r\n\r\n\r\n calculateServiceList(data) {\r\n const serviceList = []\r\n {\r\n data.forEach(service => {\r\n serviceList.push(service[0].CompanyCode.toUpperCase() + service[0].ServiceNumber);\r\n });\r\n }\r\n return serviceList;\r\n }\r\n\r\n refreshAvailability(newDate: string) {\r\n newDate = moment(newDate).format('YYYY-MM-DD');\r\n this.onRefreshAvailabilityByDate.emit(new RefreshAvailabilityByDateOption(newDate, this.currentSlide));\r\n }\r\n\r\n handleChooseFare = (travelAvailability, routeOption, fare) => {\r\n if (this.productUrl.ProductTypeUrl === ProductTypeUrl.expressBooking && !!this.productUrl.isManageBooking) {\r\n this.handleGenericButtonClick(travelAvailability, routeOption);\r\n return;\r\n }\r\n const isFirstLegV = this.currentSlide === 0,\r\n legName = isFirstLegV ? 'INBOUND' : 'OUTBOUND';\r\n\r\n // Store choosen fare\r\n this.localStorageService.addTravelToBooking({\r\n legName: legName,\r\n travelGuid: travelAvailability.TravelGUID,\r\n routeNumber: routeOption.RouteNumber,\r\n fareGuid: fare.FareGUID\r\n });\r\n\r\n //let hasPromoCode = fare.PromotionCode? \"&promoCode=\"+ fare.PromotionCode : \"\";\r\n\r\n const currentUrl = document.location.href;\r\n const currentLocation = document.location.search;\r\n //const currentReturnDate = currentLocation.split('&');\r\n const url = currentUrl.replace(currentLocation, '');\r\n \r\n travelAvailability.TravelDate = moment(travelAvailability.TravelDate).format('YYYY-MM-DD');\r\n\r\n // SHOULD ANIMATE OR NAVIGATE AWAY?\r\n if (isFirstLegV && this.hasReturnTrip) {\r\n this.onMoveToReturnSlide.emit();\r\n if (history.pushState) {\r\n // tslint:disable-next-line: max-line-length\r\n //const newUrl = url + '?origin=' + travelAvailability.DestinationStopCode + '&destination=' + travelAvailability.OriginStopCode + '&travelDate=' + travelAvailability.TravelDate + '&' + currentReturnDate[3] + '&isReturn=true' + hasPromoCode;\r\n const newUrl = url + '?origin=' + travelAvailability.DestinationStopCode + '&destination=' + travelAvailability.OriginStopCode;\r\n window.history.pushState({path : newUrl}, '', newUrl);\r\n }\r\n } else {\r\n\r\n this.onHandleChooseFare.emit();\r\n // this.router.navigate(['coach-travel/express-booking/book-now'],\r\n this.router.navigate([this.initialDataService.expressPassengers],\r\n {\r\n queryParams: {\r\n fareGuid: fare.FareGUID,\r\n travelGuid: travelAvailability.TravelGUID\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n isMobile() {\r\n return window.innerWidth < 376;\r\n }\r\n\r\n // This is called when show fares are false and there are no other buttons but he 'Choose Fare' one at the bottom\r\n async handleGenericButtonClick(travelAvailability: Availability, routeOption: RouteOption) {\r\n if (this.addingSector != null) {\r\n return;\r\n }\r\n\r\n if (this.productUrl.ProductTypeUrl === ProductTypeUrl.expressBooking && !this.productUrl.isManageBooking) {\r\n this.handleChooseFare(travelAvailability, routeOption, routeOption.Fares[0]);\r\n return;\r\n }\r\n\r\n const isFirstLegV = this.currentSlide === 0;\r\n // it will be a package\r\n this.addingSector = routeOption;\r\n const options = new SectorOptions(this.bookingGuid, travelAvailability.TravelGUID, routeOption.Fares[0].FareGUID);\r\n\r\n\r\n\r\n if (this.productUrl.ProductTypeUrl === ProductTypeUrl.expressBooking && !!this.productUrl.isManageBooking) {\r\n const sectorOptions = new SectorOptions(this.bookingGuid,\r\n travelAvailability.TravelGUID,\r\n routeOption.Fares[0].FareGUID,\r\n this.targetSector);\r\n // replaces an existing sector (Express booking -->Flexi fare<-- basically)\r\n this.bookingService.updateSector(sectorOptions).subscribe(() => {\r\n // TODO replace from initial data service\r\n this.addingSector = null;\r\n this.router.navigate([`/my-greyhound/booking-management/details`], {\r\n queryParams: {\r\n bookingGuid: this.bookingGuid,\r\n successMessage: 'Trip added successfully.'\r\n }\r\n });\r\n }, this.onError);\r\n return;\r\n }\r\n // Check if we have already started selecting travel\r\n this.selectedSectors = this.localStorageService.getSelectedTravelFromBooking(this.bookingGuid);\r\n\r\n\r\n this.selectedSectors[this.currentSlide] = options;\r\n this.localStorageService.setSelectedTravelFromBooking(this.bookingGuid, this.selectedSectors);\r\n if (this.isAvailabilityPartOfReturnBooking && this.currentSlide === 0) { // We haven't finished selecting all travel yet\r\n this.onMoveToReturnSlide.emit();\r\n } else { // We have finished selecting all travel\r\n // adds a new sector (Passes or Packages)\r\n const addSectorFunc = this.productUrl.isManageBooking ?\r\n this.bookingService.addSectorAndCommit : this.bookingService.addSector;\r\n let sectorIndex = 0;\r\n for (const newSector of this.selectedSectors) {\r\n try {\r\n const booking: Booking = await addSectorFunc.call(this.bookingService, newSector).toPromise();\r\n\r\n if (!!this.travelPackageService.bookings) {\r\n this.travelPackageService.bookings[0] = booking;\r\n }\r\n if (isFirstLegV && this.hasReturnTrip) { // has finished\r\n this.onMoveToReturnSlide.emit();\r\n } else if (sectorIndex === this.selectedSectors.length - 1) {\r\n this.localStorageService.removeSelectedTravelFromBooking(this.bookingGuid);\r\n if (this.productUrl.isManageBooking) {\r\n this.goBackToBookingManagement();\r\n } else {\r\n // tslint:disable-next-line:max-line-length\r\n var productRef = window.location.pathname.split('/')[1];\r\n var productDetailsUrl = this.productUrl.ProductDetailsUrl;\r\n if(!!productDetailsUrl){\r\n var pdProd = productDetailsUrl.split('/')[1];\r\n if(!!pdProd) productRef = pdProd;\r\n }\r\n const categoryReference = this.activatedRoute.snapshot.params['category-reference'];\r\n const productReference = this.activatedRoute.snapshot.params['product-reference'];\r\n\r\n this.router.navigate([`/${productRef}/${categoryReference}/${productReference}/book-now/${this.bookingGuid}`]);\r\n }\r\n }\r\n } catch (err) {\r\n this.onError(err);\r\n if (this.context === ITINERARY_CONTEXT.MY_GREYHOUND) {\r\n this.goBackToBookingManagement();\r\n }\r\n }\r\n sectorIndex++;\r\n }\r\n }\r\n this.addingSector = null;\r\n };\r\n /**\r\n * This error should be already parsed to an object\r\n */\r\n onError = (error: ApiError) => {\r\n this.localStorageService.saveError(error);\r\n this.gettingTimetable = false;\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n private goBackToBookingManagement() {\r\n this.localStorageService.removeSelectedTravelFromBooking(this.bookingGuid);\r\n // TODO replace from initial data service\r\n this.router.navigate([`my-greyhound/booking-management/details`],\r\n {\r\n queryParams: {\r\n 'bookingGuid': this.bookingGuid\r\n }\r\n }\r\n );\r\n }\r\n getTimetable(routeOption: RouteOption) {\r\n this.gettingTimetable = true;\r\n const serviceDetails = _.map(routeOption.Sectors, (sector: Sector) =>\r\n new PostTimetableOption(sector.ServiceNumber, sector.OriginStopCode, sector.DestinationStopCode));\r\n if (!!routeOption.timetable) {\r\n routeOption.timetableDisplayed = !routeOption.timetableDisplayed;\r\n routeOption.fullRoute = this.calculateFullRoute(routeOption.timetable);\r\n routeOption.serviceList = this.calculateServiceList(routeOption.timetable);\r\n this.gettingTimetable = false;\r\n } else {\r\n this.timetableService.postTimetable(serviceDetails, routeOption.DepartureDate).subscribe(\r\n (timetable) => {\r\n this.gettingTimetable = false;\r\n this.actionUpdaterService.announceClear(null);\r\n routeOption.timetable = timetable;\r\n routeOption.timetableDisplayed = true;\r\n routeOption.fullRoute = this.calculateFullRoute(timetable);\r\n routeOption.serviceList = this.calculateServiceList(timetable);\r\n }, this.onError\r\n );\r\n }\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/availability-table/availability-table.component.ts","module.exports = \"<gaweb-steps-indicator size=\\\"5\\\" active=\\\"2\\\"></gaweb-steps-indicator>\\r\\n<section class=\\\"row\\\">\\r\\n <div class=\\\"row back-link\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <span (click)=\\\"goToPreviousSlide()\\\">\\r\\n <i class=\\\"fa fa-fw fa-arrow-left\\\"></i>{{this.currentSlide == 0 ? \\\"Cancel\\\" : \\\"Back\\\" }}</span>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-slick-slider *ngIf=\\\"currentAvailability.length\\\" class=\\\"trip-availability\\\" [options]='{ \\\"arrows\\\": false, \\\"draggable\\\": false, \\\"swipe\\\": false }'\\r\\n [slickIndex]=\\\"currentSlide\\\">\\r\\n <div class=\\\"trip-leg \\\" *ngFor=\\\"let availability of currentAvailability; let first = first; let last = last;\\\">\\r\\n\\r\\n <div class=\\\"trip-summary\\\">\\r\\n <div class=\\\"trip-summary__title\\\">\\r\\n <h2 class=\\\"text-center\\\">\\r\\n {{availability.OriginName || 'N/A'}}\\r\\n <i class=\\\"fa fa-long-arrow-right text-danger\\\"></i>\\r\\n {{availability.DestinationName || 'N/A'}}\\r\\n </h2>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-availability-table [availability]=\\\"availability\\\" (onRefreshAvailabilityByDate)=\\\"onRefreshAvailabilityByDate($event)\\\"\\r\\n [displayFares]=\\\"productTypeUrl === ProductTypeUrl.expressBooking && !productUrl.isManageBooking\\\" [productUrl]=\\\"productUrl\\\"\\r\\n [hasReturnTrip]=\\\"currentAvailability.length > 1\\\" [productReference]=\\\"productReference\\\" [isAvailabilityPartOfReturnBooking]=\\\"isAvailabilityPartOfReturnBooking\\\"\\r\\n [context]=\\\"context\\\" [bookingGuid]=\\\"bookingGuid\\\" [targetSector]=\\\"targetSector\\\" buttonLabel=\\\"Choose This Trip\\\"\\r\\n description=\\\"{{last && !first ? 'ReturnTripLabel' : 'OnewayTripLabel'}}\\\" (onMoveToReturnSlide)=\\\"onMoveToReturnSlide($event)\\\"\\r\\n [currentSlide]=\\\"currentSlide\\\"> </gaweb-availability-table>\\r\\n </div>\\r\\n </gaweb-slick-slider>\\r\\n</section>\\r\\n\\r\\n<gaweb-running-dog-modal></gaweb-running-dog-modal>\\r\\n\\r\\n\\r\\n<div bsModal #NextAvailableTripModal=\\\"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=\\\"max-width: 400px!important; \\r\\n position: -webkit-sticky;\\r\\n position: -moz-sticky;\\r\\n position: -o-sticky;\\r\\n position: -ms-sticky;\\r\\n position: sticky;\\r\\n margin-top: calc(0px + 20%); margin-left: calc(0px + 50%);\\\">\\r\\n <div class=\\\"modal-content\\\">\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div style=\\\"margin: 10px;\\\">\\r\\n <p>\\r\\n No availability for the selected date.\\r\\n </p>\\r\\n <p>Showing next available trips.</p>\\r\\n <div class=\\\"container-bleed\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <div class=\\\"btn btn-cta btn-block\\\" style=\\\"margin-top: 10px;\\\" (click)=\\\"hideModal()\\\">\\r\\n <span>OK</span>\\r\\n </div>\\r\\n </div>\\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/shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component.html\n// module chunks = main","import { AvailabilityExtras } from './../../../../services/local-storage.service';\r\nimport { GetSectorAvailabilityOptions } from './../../../../services/travel.service';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router';\r\nimport { Availability, ProductUrl } from '../../../../models/availability.model';\r\nimport { LocalStorageService } from '../../../../services/local-storage.service';\r\nimport { ActionUpdaterService, ApiError } from '../../../../services/action-updater.service';\r\nimport { SlickSliderComponent } from '../../../slick-slider/slick-slider.component';\r\nimport { RunningDogModalComponent } from '../../../running-dog-modal/running-dog-modal.component';\r\nimport * as moment from 'moment';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { ITINERARY_CONTEXT } from '../../../../models/enums/context.enum';\r\nimport { TravelOptions } from 'app/shared/models/timetables.model';\r\nimport { TravelService } from 'app/shared/services/travel.service';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { EventBusService } from 'app/shared/services/event-bus.service';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { ModalPopupMainPageEvent } from 'app/shared/models/app-events-types.model';\r\nimport { ModalPopupMainPageEventWrapper } from 'app/shared/models/app-events.model';\r\n@Component({\r\n selector: 'gaweb-availability-wrapper',\r\n templateUrl: './availability-wrapper.component.html'\r\n})\r\nexport class AvailabilityWrapperComponent implements OnInit {\r\n @ViewChild(SlickSliderComponent) slickSliderComponent; // First\r\n @ViewChild(RunningDogModalComponent) runningDogModalComponent; // First\r\n @ViewChild('NextAvailableTripModal') public childModal: ModalDirective;\r\n\r\n isAvailabilityPartOfReturnBooking: boolean;\r\n bookingGuid: string;\r\n currentAvailability: Array<Availability>;\r\n availabilityGuid: string;\r\n productReference: string;\r\n currentSlide = 0;\r\n ProductTypeUrl = ProductTypeUrl;\r\n context: ITINERARY_CONTEXT;\r\n targetSector: number; // When we're changing a specific sector on a booking. (Eg. Flexi fare on express)\r\n isTimeTables: boolean;\r\n productUrl: ProductUrl;\r\n productTypeUrl: ProductTypeUrl;\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 constructor(private router: Router,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private activatedRoute: ActivatedRoute,\r\n private localStorageService: LocalStorageService,\r\n private initialDataService: InitialDataService,\r\n private travelService: TravelService,\r\n private eventBusService: EventBusService\r\n ) {\r\n\r\n this.router.events.subscribe((evt) => {\r\n if (!(evt instanceof NavigationEnd)) {\r\n return;\r\n }\r\n if (evt.urlAfterRedirects.indexOf('add=true') === -1) {\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.activatedRoute.params.subscribe(\r\n (params: any) => {\r\n this.isTimeTables = params['context'] === 'timetables';\r\n this.productReference = params['product-reference'];\r\n });\r\n this.activatedRoute.queryParams.subscribe(\r\n (params: any) => {\r\n const comesFromMyGreyhound = Number.parseInt(params['context']) === ITINERARY_CONTEXT.MY_GREYHOUND;\r\n this.context = Number.parseInt(params['context']);\r\n this.isTimeTables = params['context'] === 'timetables';\r\n this.productUrl = new ProductUrl(this.router.url, this.initialDataService);\r\n this.productTypeUrl = this.productUrl.ProductTypeUrl;\r\n this.productUrl.isManageBooking = comesFromMyGreyhound;\r\n });\r\n this.currentAvailability = this.localStorageService.currentAvailability;\r\n if (!this.currentAvailability) {\r\n this.currentAvailability = this.localStorageService.getTravelAvailability();\r\n }\r\n if (!this.localStorageService.currentAvailabilityOptions) {\r\n const travelOptions: TravelOptions = this.localStorageService.getTravelOptions();\r\n if (!!travelOptions) {\r\n this.localStorageService.currentAvailabilityOptions = travelOptions.options;\r\n }\r\n }\r\n if (!!this.localStorageService.currentAvailabilityOptions) {\r\n this.currentSlide = this.localStorageService.currentAvailabilityOptions.currentSlide;\r\n this.isAvailabilityPartOfReturnBooking = !!this.localStorageService.currentAvailabilityOptions.isReturn;\r\n }\r\n const availabilityExtras = this.localStorageService.getAvailabilityExtras();\r\n if (!!availabilityExtras) {\r\n this.bookingGuid = availabilityExtras.bookingGuid;\r\n this.productReference = availabilityExtras.productReference;\r\n this.isAvailabilityPartOfReturnBooking = availabilityExtras.isReturn;\r\n this.context = !!availabilityExtras.context ? availabilityExtras.context : this.context;\r\n this.targetSector = availabilityExtras.sector;\r\n }\r\n\r\n if (!!this.currentAvailability && !!this.currentAvailability.length) {\r\n this.availabilityGuid = this.currentAvailability[0].TravelGUID;\r\n } else {\r\n this.handleMissingAvailability();\r\n }\r\n this.populateUrl();\r\n }\r\n\r\n private populateUrl() {\r\n window.history.pushState(null, null, \"book-a-ticket/availability?origin=\" + this.currentAvailability[0].OriginStopCode + \"&destination=\" + this.currentAvailability[0].DestinationStopCode);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.currentAvailability[0].SelectedDate !== this.currentAvailability[0].TravelDate) {\r\n this.showModal();\r\n }\r\n\r\n }\r\n\r\n\r\n // Will not support refresh if there is no availability guid ( api is suggesting new date via NextAvailabilityDate)\r\n // or we refresh in the outbound leg of a return trip\r\n // *** This is because ****\r\n // In the event where there is no availability returned for the outgoing trip but suggestions are made (NextAvailabilityDate etc)\r\n // there will only be one item in the availability array even with an return=true availability call hence no ReturnGuid and need\r\n // for extra check\r\n private handleMissingAvailability() {\r\n this.currentAvailability = [] as Array<Availability>;\r\n\r\n if (!this.availabilityGuid || (this.currentSlide === 0 && this.isAvailabilityPartOfReturnBooking)) {\r\n const back = this.getBackUrl();\r\n this.router.navigate([back.urlWithoutQueryString], {\r\n queryParams: back.queryParams\r\n });\r\n return;\r\n }\r\n this.travelService.getAvailabilityViaTravelGuid(this.availabilityGuid).subscribe(\r\n (a1: Availability) => {\r\n const tempAvailability = [a1];\r\n this.updateAvailability(tempAvailability, null);\r\n }, this.actionUpdaterService.onError)\r\n }\r\n\r\n private updateAvailability(availability: Array<Availability>, applyAfterRefresh?: () => void) {\r\n this.currentAvailability = availability;\r\n this.localStorageService.currentAvailability = availability;\r\n this.localStorageService.saveTravelAvailability(availability);\r\n if (!!this.slickSliderComponent) {\r\n const that = this;\r\n setTimeout(function () {\r\n that.slickSliderComponent.hide();\r\n that.slickSliderComponent.refresh();\r\n if (!!applyAfterRefresh) {\r\n applyAfterRefresh();\r\n }\r\n\r\n setTimeout(function () {\r\n that.slickSliderComponent.show();\r\n that.runningDogModalComponent.hideModal();\r\n }, 500);\r\n }, 0);\r\n }\r\n\r\n if (this.currentAvailability[0].SelectedDate !== this.currentAvailability[0].TravelDate) {\r\n this.showModal();\r\n }\r\n }\r\n\r\n private getBackUrl(): BackUrlPage {\r\n let back = null;\r\n if (this.productUrl.isManageBooking) {\r\n // TODO change to use from initial data service\r\n back = new BackUrlPage('/my-greyhound/booking-management/details');\r\n back.queryParams = { bookingGuid: this.bookingGuid, addTravel: true };\r\n } else if (this.productUrl.ProductTypeUrl === ProductTypeUrl.package) {\r\n // tslint:disable-next-line:max-line-length\r\n var productRef = window.location.pathname.split('/')[1];\r\n const categoryReference = this.activatedRoute.snapshot.params['category-reference'];\r\n const productReference = this.activatedRoute.snapshot.params['product-reference'];\r\n\r\n back = new BackUrlPage(`/${productRef}/${categoryReference}/${productReference}/book-now/${this.bookingGuid}?removeTravel=true`);\r\n } else if (this.productUrl.ProductTypeUrl === ProductTypeUrl.expressBooking) {\r\n if (this.isTimeTables) {\r\n back = new BackUrlPage('/information/timetables');\r\n } else {\r\n back = new BackUrlPage('/book-a-trip');\r\n }\r\n }\r\n return back;\r\n }\r\n\r\n onRefreshAvailabilityByDate($event: RefreshAvailabilityByDateOption) {\r\n const options = this.localStorageService.currentAvailabilityOptions,\r\n isRefreshingReturnAvailability = () => $event.availabilityIndex === 1;\r\n const applyAfterRefresh = () => {\r\n if (isRefreshingReturnAvailability()) {\r\n this.slickSliderComponent.slickNext();\r\n }\r\n };\r\n\r\n if (this.productUrl.isManageBooking && this.productTypeUrl !== ProductTypeUrl.travelPasses) {\r\n const availabilityExtras: AvailabilityExtras = this.localStorageService.getAvailabilityExtras();\r\n const getSectorAvailabilityOptions = new GetSectorAvailabilityOptions(this.bookingGuid, availabilityExtras.sector, $event.date);\r\n this.runningDogModalComponent.showModal();\r\n this.travelService.getSectorAvailability(getSectorAvailabilityOptions).subscribe((availability: Availability[]) => {\r\n this.updateAvailability(availability, applyAfterRefresh);\r\n }, this.onError);\r\n return;\r\n }\r\n // TODO bootstrap this options object from the availability but for now going back to main page\r\n if (!this.localStorageService.currentAvailabilityOptions) {\r\n const back = this.getBackUrl();\r\n this.router.navigate([back.urlWithoutQueryString], {\r\n queryParams: back.queryParams\r\n });\r\n return;\r\n }\r\n\r\n options.TravelLegs[$event.availabilityIndex].travelDate = $event.date;\r\n if ($event.availabilityIndex === 0 && options.TravelLegs.length === 2) {\r\n const departureDate = moment(options.TravelLegs[0].travelDate);\r\n const returnDate = moment(options.TravelLegs[1].travelDate);\r\n if (departureDate.isAfter(returnDate)) {\r\n // return date will be the same as the departure\r\n options.TravelLegs[1].travelDate = departureDate.format('YYYY-MM-DD');\r\n }\r\n }\r\n this.runningDogModalComponent.showModal();\r\n // new express booking availability - not for existing booking (my greyhound)\r\n this.travelService.getAvailability(options).subscribe(\r\n (availability: Array<Availability>) => {\r\n this.updateAvailability(availability, applyAfterRefresh);\r\n }, this.onError\r\n );\r\n }\r\n onHandleChooseFare() {\r\n this.runningDogModalComponent.showModal();\r\n }\r\n onError = (error) => {\r\n this.runningDogModalComponent.hideModal();\r\n this.actionUpdaterService.onError(error);\r\n }\r\n\r\n goToPreviousSlide() {\r\n if (this.currentSlide > 0) {\r\n this.slickSliderComponent.slickPrev();\r\n this.currentSlide -= 1;\r\n return;\r\n }\r\n\r\n this.currentSlide = 0;\r\n const back = this.getBackUrl();\r\n window.location.href = back.url;\r\n\r\n }\r\n\r\n onMoveToReturnSlide() {\r\n this.slickSliderComponent.slickNext();\r\n this.currentSlide = 1;\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 }\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\nexport class RefreshAvailabilityByDateOption {\r\n constructor(public date: string, public availabilityIndex: number) { }\r\n}\r\nclass BackUrlPage {\r\n public get url(): string {\r\n if (!this.queryParams) {\r\n return this.urlWithoutQueryString;\r\n }\r\n const fullUrl = [];\r\n for (const p in this.queryParams) {\r\n if (this.queryParams.hasOwnProperty(p)) {\r\n fullUrl.push(encodeURIComponent(p) + '=' + encodeURIComponent(this.queryParams[p]));\r\n }\r\n\r\n }\r\n return this.urlWithoutQueryString + '?' + fullUrl.join('&');\r\n }\r\n public queryParams: object;\r\n constructor(public urlWithoutQueryString: string) {\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component.ts","module.exports = \"<!-- <toaster></toaster> -->\\r\\n<!-- TODO check -->\\r\\n\\r\\n<div class=\\\"check-availability\\\" *ngIf=\\\"!!sector && sector.ShowChangeSectorBtn && sector.displayChangeDate\\\">\\r\\n <div>\\r\\n <div class=\\\"form-group\\\">\\r\\n <gaweb-running-dog-modal></gaweb-running-dog-modal>\\r\\n <gaweb-error-summary></gaweb-error-summary>\\r\\n <gaweb-pick-a-date [minDate]='minimumDate' [value]='departureDate' placeholder='Departure Date' [operatingDays]='operatingDays'\\r\\n (onValueChange)='valueChange($event, false)' *ngIf=\\\"sector.displayChangeDate\\\"></gaweb-pick-a-date>\\r\\n </div>\\r\\n <div class=\\\"form-group\\\">\\r\\n <button type=\\\"submit\\\" class=\\\"btn btn-cta btn-block\\\" (click)=\\\"getChangeDateAvailability()\\\" [disabled]=\\\"!departureDate\\\">\\r\\n <div *ngIf=\\\"processing\\\">Checking availability...</div>\\r\\n <div *ngIf=\\\"!processing\\\">CHECK AVAILABILITY</div>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/change-sector-date/change-sector-date.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/change-sector-date/change-sector-date.component.html\n// module chunks = main","import { PickADateComponent } from './../../../pick-a-date/pick-a-date.component';\r\nimport { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { Sector } from '../../../../models/booking.model';\r\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { TravelService, GetSectorAvailabilityOptions } from '../../../../services/travel.service';\r\nimport { BookingService, SectorOptions } from '../../../../services/booking.service';\r\nimport { GxUtilsService } from '../../../../services/gx-utils.service';\r\nimport { LocalStorageService, AvailabilityExtras } from '../../../../services/local-storage.service';\r\nimport { Availability } from '../../../../models/availability.model';\r\nimport { ITINERARY_CONTEXT } from '../../../../models/enums/context.enum';\r\nimport { ProductTypeUrl } from '../../../../models/enums/ProductTypeUrl.enum';\r\nimport { Router } from '@angular/router';\r\nimport { RunningDogModalComponent } from '../../../running-dog-modal/running-dog-modal.component';\r\nimport { ActionUpdaterService, ApiError } from '../../../../services/action-updater.service';\r\n\r\n@Component({\r\n selector: 'gaweb-change-sector-date',\r\n templateUrl: './change-sector-date.component.html'\r\n})\r\nexport class ChangeSectorDateComponent implements OnInit {\r\n @ViewChild(PickADateComponent) pickADateComponent: PickADateComponent;\r\n @ViewChild(RunningDogModalComponent) runningDogModalComponent;\r\n processing: boolean;\r\n departureDate: string;\r\n private _sector: Sector;\r\n @Input() set sector(s: Sector) {\r\n this._sector = s;\r\n }\r\n get sector() {\r\n return this._sector;\r\n }\r\n minimumDate: Date = new Date();\r\n @Input() bookingGuid: string;\r\n changeDateFormSubmitted: boolean;\r\n operatingDays: Array<number>;\r\n minDate = new Date();\r\n ProductTypeUrl = ProductTypeUrl;\r\n showJustSectors: boolean;\r\n productTypeName: string;\r\n isMyGreyhound: boolean;\r\n private _context: ITINERARY_CONTEXT;\r\n @Input()\r\n set context(c: ITINERARY_CONTEXT) {\r\n this._context = c;\r\n this.isMyGreyhound = c === ITINERARY_CONTEXT.MY_GREYHOUND;\r\n }\r\n get context(): ITINERARY_CONTEXT {\r\n return this._context;\r\n }\r\n private _productType: ProductTypeUrl;\r\n @Input()\r\n set productType(value: number) {\r\n this._productType = value;\r\n this.showJustSectors = this._productType === ProductTypeUrl.expressBooking;\r\n this.productTypeName = ProductTypeUrl[this._productType];\r\n }\r\n get productType(): number {\r\n return this._productType;\r\n }\r\n constructor(private fb: FormBuilder,\r\n private errorService: ErrorService,\r\n private travelService: TravelService,\r\n private bookingsService: BookingService,\r\n private gxUtils: GxUtilsService,\r\n private router: Router,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private localStorageService: LocalStorageService) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n getChangeDateAvailability = () => {\r\n this.getAvailability(null, null, this.departureDate);\r\n };\r\n\r\n\r\n private getAvailability = (isDateForward, currentAvailabilityData, newAvailabilityDate) => {\r\n this.runningDogModalComponent.showModal();\r\n this.changeDateFormSubmitted = true;\r\n this.processing = true;\r\n const getSectorAvailabilityOptions =\r\n new GetSectorAvailabilityOptions(this.bookingGuid, this.sector.SectorNumber);\r\n\r\n const newDateProperty = isDateForward ? 'NextTravelDate' : 'PreviousTravelDate',\r\n isNavigationOneDayForwardOrBack = !!isDateForward && !!currentAvailabilityData && !newAvailabilityDate,\r\n isNavigationForwardOrBack = !isDateForward && !!newAvailabilityDate;\r\n\r\n if (isNavigationOneDayForwardOrBack) {\r\n getSectorAvailabilityOptions.travelDate = this.gxUtils\r\n .fromServerDate(currentAvailabilityData[newDateProperty]);\r\n } else if (isNavigationForwardOrBack) {\r\n getSectorAvailabilityOptions.travelDate = this.gxUtils.fromServerDate(newAvailabilityDate);\r\n } else {\r\n getSectorAvailabilityOptions.travelDate = this.sector.departureDate;\r\n }\r\n\r\n this.travelService.getSectorAvailability(getSectorAvailabilityOptions).subscribe((availability: Availability[]) => {\r\n this.processing = false;\r\n this.localStorageService.saveTravelAvailability(availability);\r\n this.localStorageService.currentAvailability = availability;\r\n const availabilityExtras = new AvailabilityExtras();\r\n availabilityExtras.bookingGuid = this.bookingGuid;\r\n availabilityExtras.context = this.context;\r\n availabilityExtras.sector = this.sector.SectorNumber;\r\n this.localStorageService.saveAvailabilityExtras(availabilityExtras);\r\n this.runningDogModalComponent.hideModal();\r\n this.router.navigate(\r\n [`/book-a-ticket/express-booking/availability`],\r\n {\r\n queryParams: {\r\n context: ITINERARY_CONTEXT.MY_GREYHOUND\r\n }\r\n }\r\n );\r\n }, this.onError);\r\n };\r\n\r\n onError = (error: ApiError) => {\r\n this.runningDogModalComponent.hideModal();\r\n this.localStorageService.saveError(error);\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n private availabilitySelected = (travelAvailability, routeOption) => {\r\n const sectorOptions = new SectorOptions(this.bookingGuid,\r\n travelAvailability.TravelGUID,\r\n routeOption.Fares[0].FareGUID,\r\n this.sector.SectorNumber);\r\n return this.bookingsService.updateSector(sectorOptions);\r\n }\r\n\r\n valueChange(date) {\r\n this.departureDate = date;\r\n }\r\n\r\n showCalendar($event) {\r\n this.pickADateComponent.showCalendar($event);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/change-sector-date/change-sector-date.component.ts","module.exports = \"<div class=\\\"row c-header\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'UNASSIGNED FACE MASKS'\\\" (onHeaderClicked)=\\\"onShowOpenAddons($event)\\\" [loadsExpanded]=\\\"showOpenAddons\\\"></gaweb-collapsing-header>\\r\\n</div>\\r\\n<div class=\\\"c-header__body\\\" *ngIf=\\\"showOpenAddons\\\">\\r\\n <gaweb-open-addons [openAddons]=\\\"openAddons\\\" [booking]=\\\"booking\\\"></gaweb-open-addons>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons-wrapper.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons-wrapper.component.html\n// module chunks = main","import * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\n\r\nimport { Component, SimpleChanges, OnInit, OnChanges, Input } from '@angular/core';\r\nimport { Sector, Booking, Addon, Totals } from '../../../../models/booking.model';\r\n\r\n@Component({\r\n selector: 'gaweb-open-addons-wrapper',\r\n templateUrl: './open-addons-wrapper.component.html'\r\n})\r\n\r\nexport class OpenAddonsWrapperComponent implements OnInit, OnChanges {\r\n @Input() booking: Booking;\r\n @Input() openAddons: Array<Addon>;\r\n\r\n processing: boolean;\r\n firstRequest: boolean;\r\n showOpenAddons: boolean;\r\n summarisedAddons: Array<any> = [];\r\n\r\n constructor(\r\n ) {\r\n this.processing = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.booking) {\r\n this.onBookingBeingSet();\r\n }\r\n this.showOpenAddons = false;\r\n if(this.openAddons.length > 0){\r\n this.summariseAddons();\r\n this.showOpenAddons = true;\r\n }\r\n }\r\n\r\n summariseAddons() {\r\n this.openAddons.forEach(a => {\r\n a.AddonOptions.forEach(o => {\r\n const summed = this.summarisedAddons.filter(x => x.Title == a.Title);\r\n if(!!summed){\r\n } else {\r\n this.summarisedAddons.push(_.cloneDeep(a));\r\n }\r\n })\r\n })\r\n }\r\n\r\n onShowOpenAddons = (expanded: boolean) => {\r\n if (this.firstRequest) {\r\n this.firstRequest = false;\r\n return;\r\n }\r\n this.showOpenAddons = expanded;\r\n }\r\n\r\n onBookingBeingSet = () => {\r\n\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons-wrapper.component.ts","module.exports = \"<div *ngIf=\\\"!!openAddons && openAddons.length > 0\\\">\\r\\n <div *ngFor=\\\"let addon of openAddons\\\">\\r\\n <div *ngFor=\\\"let q of addon.AddonOptions\\\">\\r\\n <div *ngIf=\\\"q.Quantity > 0\\\">\\r\\n <div *ngFor=\\\"let v of q.OptionValueEntity\\\">\\r\\n <div class=\\\"row addon-item-open\\\">\\r\\n <div class=\\\"col-xs-2 addon-item-label pull-left\\\">\\r\\n <span class=\\\"label label-ao\\\">\\r\\n <img *ngIf=\\\"getAddonIcon(addon)\\\" [src]=\\\"getAddonIcon(addon)\\\" height=\\\"20\\\" /><span class=\\\"hidden-xs\\\"> {{ addon.Title }}</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-10 addon-item-description-purchased pull-left\\\">\\r\\n <b>{{ q.Quantity }} × {{ v.SoldDescription }} available for use</b><br />\\r\\n <div>{{ addon.Notes }}</div><br />\\r\\n </div>\\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\\\">\\r\\n <hr />\\r\\n <div class=\\\"info\\\">Unassigned face mask(s) will automatically be assigned with the next travel you add.</div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons/open-addons.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons/open-addons.component.html\n// module chunks = main","import * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { Component, SimpleChanges, OnInit, AfterViewInit, AfterViewChecked, Input, Output, EventEmitter, ViewChildren, QueryList, ChangeDetectionStrategy, SimpleChange, OnChanges } from '@angular/core';\r\nimport { Sector, Booking, Addon, AddonOption, TpProduct, OptionValueEntityInstance, Totals } from '../../../../../models/booking.model';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { ErrorService } from 'app/shared/services/error.service';\r\nimport { BookingService } from 'app/shared/services/booking.service';\r\nimport { SectorAddonsService } from 'app/shared/services/sector-addons.service';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { TravelProductService, UpdateTourOnBookingOption } from '../../../../../services/travel-product.service';\r\nimport { CartTotalService } from '../../../../../services/cart-total.service';\r\n\r\n@Component({\r\n selector: 'gaweb-open-addons',\r\n templateUrl: './open-addons.component.html'\r\n})\r\n\r\nexport class OpenAddonsComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() openAddons: Array<Addon>;\r\n @Input() booking: any;\r\n\r\n constructor(\r\n private travelPackageService: TravelProductService,\r\n private bookingsService: BookingService,\r\n private initialDataService: InitialDataService,\r\n private localStorageService: LocalStorageService,\r\n private errorService: ErrorService,\r\n private sectorAddonsService: SectorAddonsService,\r\n private cartTotalService: CartTotalService\r\n ) { }\r\n\r\n ngOnInit(){\r\n console.log(this.openAddons.length);\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n hasAvailableSectors(option){\r\n this.booking.Sectors.forEach(s => {\r\n s.Addons.forEach(a => {\r\n if(a.AddonOptions[0].ProductCode == option.ProductCode){\r\n return false;\r\n }\r\n })\r\n })\r\n return true;\r\n }\r\n\r\n selectAssignSector(a: Addon, sector: Sector) {\r\n let tour = this.getTourForAddonOption(a.AddonOptions[0]);\r\n const options = new UpdateTourOnBookingOption(this.booking.BookingGuid, tour.TourGuid, sector.PassengerBoardingDate,\r\n tour.SelectedFareType, tour.SelectedFareTypeCurrency, tour.SelectedCurrencyAmount, false)\r\n }\r\n\r\n getTourForAddonOption(option: AddonOption): any {\r\n let tourGuid = \"\";\r\n this.booking.Tours.forEach(tour => {\r\n if(tour.SelectedFareType == option.ProductCode && tour.SelectedDate){\r\n tourGuid = tour.TourGuid;\r\n }\r\n });\r\n return tourGuid;\r\n }\r\n\r\n isValidSectorForAddon(option: AddonOption, sector: Sector){\r\n let isValid = true;\r\n console.log(sector.OriginName + ' -> ' + sector.DestinationName);\r\n console.log(option.ProductCode);\r\n sector.Addons.forEach(addon => {\r\n let o = addon.AddonOptions[0];\r\n if(o.ProductCode == option.ProductCode){\r\n if(o.CanPurchase === undefined || !o.CanPurchase){\r\n isValid = false;\r\n }\r\n }\r\n });\r\n return isValid;\r\n }\r\n\r\n availableSectorAddon(option: AddonOption,s: Sector) {\r\n if(!!s.Addons || s.Addons.length > 0){\r\n s.Addons.forEach(a => {\r\n if(a.AddonOptions[0].ProductCode === option.ProductCode){\r\n if(!!a.AddonOptions[0].CanPurchase && a.AddonOptions[0].CanPurchase){\r\n console.log('availabelSectorAddon : true');\r\n console.log(option);\r\n console.log(s);\r\n return true;\r\n } \r\n console.log('availabelSectorAddon : false');\r\n console.log(option);\r\n console.log(s);\r\n return false;\r\n }\r\n });\r\n }\r\n console.log('availabelSectorAddon : true');\r\n console.log(option);\r\n console.log(s);\r\nreturn true;\r\n }\r\n\r\n getAddonIcon(addon) {\r\n const name = (addon.Title || addon.Name || '');\r\n\r\n if (addon.AddonType === 'MG') {\r\n return '/Assets/images/my-greyhound.png';\r\n }\r\n if (addon.AddonType === 'IN') {\r\n return '/Assets/images/premium.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('baggage') > -1) {\r\n return '/Assets/images/baggage.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('bicycle') > -1) {\r\n return '/Assets/images/surfboards.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('carbon') > -1) {\r\n return '/Assets/images/tree.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('upgrade') > -1) {\r\n return '/Assets/images/upgrade.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('mask') > -1) {\r\n return '/Assets/images/facemask.png';\r\n }\r\n if (addon.AddonType === 'TB') {\r\n return '/Assets/images/taxback.png';\r\n }\r\n return '';\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/open-addons-wrapper/open-addons/open-addons.component.ts","import { AbstractControl } from '@angular/forms';\r\nimport * as moment from 'moment';\r\n\r\nexport function returnDateValidator(c: AbstractControl): { [key: string]: boolean } | null {\r\n let isReturn = c.get('isReturn').value;\r\n let departureDate = c.get('departureDate').value;\r\n let returnDate = c.get('returnDate').value;\r\n\r\n if(isReturn && !returnDate){\r\n return { 'isReturnAndNoReturnDate': true };\r\n }\r\n\r\n if(isReturn){\r\n var isAfter = moment(returnDate).add(1,'second').isAfter(departureDate);\r\n if(!isAfter){\r\n return { 'isReturnAndReturnDateBeforeDeparture': true };\r\n }\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 // } 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/shared/components/itinerary/travel-dates/return-date.validator.ts","module.exports = \"<div *ngIf=\\\"hasShowAddons()\\\">\\r\\n <div class=\\\"row sector-addons-header\\\">\\r\\n <gaweb-collapsing-header [title]=\\\"'ADD-ONS'\\\" (onHeaderClicked)=\\\"onShowSectorAddons($event)\\\" [loadsExpanded]=\\\"showSectorAddons\\\"></gaweb-collapsing-header>\\r\\n </div>\\r\\n <div class=\\\"c-header__body sector-addons\\\" *ngIf=\\\"showSectorAddons\\\">\\r\\n <gaweb-sector-addons [sector]=\\\"sector\\\" [productType]=\\\"productType\\\" [booking]=\\\"booking\\\" [bookingGuid]=\\\"bookingGuid\\\"></gaweb-sector-addons>\\r\\n </div>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons-wrapper.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons-wrapper.component.html\n// module chunks = main","import * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\n\r\nimport { Component, SimpleChanges, OnInit, OnChanges, Input } from '@angular/core';\r\nimport { Sector, Booking, Addon, Totals } from '../../../../../models/booking.model';\r\n\r\n@Component({\r\n selector: 'gaweb-sector-addons-wrapper',\r\n templateUrl: './sector-addons-wrapper.component.html'\r\n})\r\n\r\nexport class SectorAddonsWrapperComponent implements OnInit, OnChanges {\r\n @Input() booking: Booking;\r\n @Input() productType: string;\r\n @Input() bookingGuid: string;\r\n @Input() tours: Array<any>;\r\n @Input() sector: Sector;\r\n\r\n processing: boolean;\r\n selectedAddonProductCode: string;\r\n firstRequest = true;\r\n showSectorAddons: boolean;\r\n\r\n constructor(\r\n ) {\r\n this.processing = false;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.booking) {\r\n this.onBookingBeingSet();\r\n }\r\n this.showSectorAddons = false;\r\n if(!!this.sector.Addons && this.sector.Addons.length > 0){\r\n this.showSectorAddons = true;\r\n }\r\n }\r\n\r\n hasShowAddons(): boolean {\r\n var hasShow = false;\r\n if(this.sector.Addons.length > 0){\r\n this.sector.Addons.forEach(a => {\r\n a.AddonOptions.forEach(o => {\r\n if(o.Show){\r\n hasShow = true;\r\n }\r\n })\r\n })\r\n }\r\n return hasShow;\r\n }\r\n\r\n onShowSectorAddons = (expanded: boolean) => {\r\n if (this.firstRequest) {\r\n this.firstRequest = false;\r\n return;\r\n }\r\n this.showSectorAddons = expanded;\r\n }\r\n\r\n onBookingBeingSet = () => {\r\n\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons-wrapper.component.ts","module.exports = \"<div *ngIf=\\\"sector.Addons.length > 0\\\">\\r\\n <div *ngFor=\\\"let addon of sector.Addons\\\">\\r\\n <div *ngFor=\\\"let q of addon.AddonOptions\\\">\\r\\n <div *ngFor=\\\"let v of q.OptionValueEntity\\\">\\r\\n <div class=\\\"row addon-item\\\">\\r\\n <div *ngIf=\\\"!!q.CanPurchase && !!q.Show; else ShowPurchases\\\">\\r\\n <div *ngIf=\\\"ProductCode == 'EX'\\\">\\r\\n <div *ngIf=\\\"sector.IsFirstReturnSector && q.OptionValueEntity[0].IsReturn || sector.IsFirstOriginatingSector && !q.OptionValueEntity[0].IsReturn\\\">\\r\\n <div class=\\\"col-xs-2 addon-item-label-purchase pull-left\\\">\\r\\n <span class=\\\"label label-ao\\\">\\r\\n <img *ngIf=\\\"getAddonIcon(addon)\\\" [src]=\\\"getAddonIcon(addon)\\\" height=\\\"20\\\" /><span class=\\\"hidden-xs\\\"> {{ addon.Name }}</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-10 addon-item-description pull-left\\\">\\r\\n <div class=\\\"checkbox\\\" style=\\\"margin-top: 0; margin-left: -24px;\\\">\\r\\n <span [ngClass]=\\\"{ 'checked': v.Selected }\\\" (click)=\\\"v.Selected = !v.Selected; optionSelected(addon)\\\"></span>\\r\\n <label [ngClass]=\\\"{'disabled': loadingCartTotal}\\\">\\r\\n <input type=\\\"checkbox\\\" name=\\\"{{addon.ProductCode + q.QuestionID + '_value'}}\\\" [(ngModel)]=\\\"v.Selected\\\" (change)=\\\"optionSelected(addon)\\\"\\r\\n (checked)=\\\"v.Selected\\\" [ngClass]=\\\"{'disabled': loadingCartTotal}\\\" [disabled]=\\\"loadingCartTotal\\\"\\r\\n /> \\r\\n {{ v.OnlineDescription || v.Description }}\\r\\n </label>\\r\\n </div>\\r\\n <div style=\\\"margin-top: -10px;\\\">{{ addon.Notes }}</div>\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"ProductCode != 'EX'\\\">\\r\\n <div class=\\\"col-xs-2 addon-item-label-purchase pull-left\\\">\\r\\n <span class=\\\"label label-ao\\\">\\r\\n <img *ngIf=\\\"getAddonIcon(addon)\\\" [src]=\\\"getAddonIcon(addon)\\\" height=\\\"20\\\" /><span class=\\\"hidden-xs\\\"> {{ addon.Name }}</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-10 addon-item-description pull-left\\\">\\r\\n <div class=\\\"checkbox\\\" style=\\\"margin-top: 0; margin-left: -24px;\\\">\\r\\n <span [ngClass]=\\\"{ 'checked': v.Selected }\\\" (click)=\\\"v.Selected = !v.Selected; optionSelected(addon)\\\"></span>\\r\\n <label [ngClass]=\\\"{'disabled': loadingCartTotal}\\\">\\r\\n <input type=\\\"checkbox\\\" name=\\\"{{addon.ProductCode + q.QuestionID + '_value'}}\\\" [(ngModel)]=\\\"v.Selected\\\" (change)=\\\"optionSelected(addon)\\\"\\r\\n (checked)=\\\"v.Selected\\\" [ngClass]=\\\"{'disabled': loadingCartTotal}\\\" [disabled]=\\\"loadingCartTotal\\\"\\r\\n /> \\r\\n {{ v.OnlineDescription || v.Description }}\\r\\n </label>\\r\\n </div>\\r\\n <div style=\\\"margin-top: -10px;\\\">{{ addon.Notes }}</div>\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n <ng-template #ShowPurchases>\\r\\n <div class=\\\"col-xs-2 addon-item-label pull-left\\\">\\r\\n <span class=\\\"label label-ao\\\">\\r\\n <img *ngIf=\\\"getAddonIcon(addon)\\\" [src]=\\\"getAddonIcon(addon)\\\" height=\\\"20\\\" /><span class=\\\"hidden-xs\\\"> {{ addon.Name }}</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-10 addon-item-description-purchased pull-left\\\">\\r\\n <b>{{ q.Quantity }} × {{ v.SoldDescription || v.Description }}</b><br/>\\r\\n {{ addon.Notes }}\\r\\n </div>\\r\\n </ng-template>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons/sector-addons.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons/sector-addons.component.html\n// module chunks = main","import * as moment from 'moment';\r\nimport * as _ from 'lodash';\r\nimport { Component, SimpleChanges, OnInit, AfterViewInit, AfterViewChecked, Input, Output, EventEmitter, ViewChildren, QueryList, ChangeDetectionStrategy, SimpleChange, OnChanges } from '@angular/core';\r\nimport { Sector, Booking, Addon, AddonOption, TpProduct, OptionValueEntityInstance, Totals } from '../../../../../../models/booking.model';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { ErrorService } from 'app/shared/services/error.service';\r\nimport { BookingService } from 'app/shared/services/booking.service';\r\nimport { SectorAddonsService } from 'app/shared/services/sector-addons.service';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { TravelProductService } from '../../../../../../services/travel-product.service';\r\nimport { CartTotalService } from '../../../../../../services/cart-total.service';\r\n\r\n@Component({\r\n selector: 'gaweb-sector-addons',\r\n templateUrl: './sector-addons.component.html'\r\n})\r\n\r\nexport class SectorAddonsComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() booking: Booking;\r\n @Input() productType: string;\r\n @Input() bookingGuid: string;\r\n @Input() processing: boolean;\r\n @Input() sector: Sector;\r\n \r\n selectedAddonProductCode: string;\r\n addon: Addon;\r\n firstRequest = true;\r\n showSectorAddons: boolean;\r\n form: any;\r\n addonsToPurchase: Array<Addon>;\r\n loadingCartTotal: boolean;\r\n \r\n constructor(\r\n private travelPackageService: TravelProductService,\r\n private bookingsService: BookingService,\r\n private initialDataService: InitialDataService,\r\n private localStorageService: LocalStorageService,\r\n private errorService: ErrorService,\r\n private sectorAddonsService: SectorAddonsService,\r\n private cartTotalService: CartTotalService\r\n ) {\r\n this.processing = true;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.booking) {\r\n this.onBookingBeingSet();\r\n }\r\n this.setupInitialAddons();\r\n this.sectorAddonsService.addonCart.subscribe(addons => this.addonsToPurchase = addons)\r\n this.sectorAddonsService.loadingCartTotal.subscribe(lct => this.loadingCartTotal = lct)\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n }\r\n\r\n optionSelected(a: Addon) {\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 o.Selected = false;\r\n o.OptionValueEntity.forEach(e => {\r\n if(e.Selected){\r\n o.Selected = true;\r\n hasSelected = true;\r\n //o.UsageDate = moment(this.sector.PassengerBoardingDate).format(\"DD/MM/YYYY hh:mm:SS A\").toString();\r\n //e.UsageDate = moment(this.sector.PassengerBoardingDate).format(\"DD/MM/YYYY hh:mm:SS A\").toString();\r\n\r\n }\r\n })\r\n });\r\n if(hasSelected){\r\n this.addonsToPurchase.push(a);\r\n this.sectorAddonsService.updateAddonsCart(this.booking, this.addonsToPurchase);\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 }\r\n }\r\n }\r\n\r\n setupInitialAddons = () => {\r\n this.sector.Addons = this.decorateAddons(this.sector.Addons);\r\n }\r\n\r\n isAllowedSectorAddon(ProductCode: string) {\r\n return GxConstants.ALLOWED_SECTOR_ADDONS.indexOf(ProductCode) !== -1;\r\n }\r\n\r\n onBookingBeingSet = () => {\r\n }\r\n\r\n decorateAddons(addons) {\r\n const forEachAddon = (addon: Addon) => {\r\n\r\n addon.IconUrl = this.getAddonIcon(addon); // <- to run before we transform Title/Name into safe html\r\n //this.setUsageDate(addon);\r\n }\r\n\r\n addons.forEach(forEachAddon);\r\n return addons;\r\n }\r\n\r\n setUsageDate(addon){\r\n addon.AddonOptions.forEach((ao: AddonOption) => {\r\n ao.UsageDate = this.sector.PassengerBoardingDate;\r\n ao.OptionValueEntity.forEach((ov: OptionValueEntityInstance) => {\r\n ov.UsageDate = this.sector.PassengerBoardingDate;\r\n })\r\n })\r\n }\r\n\r\n getAddonIcon(addon) {\r\n const name = (addon.Title || addon.Name || '');\r\n\r\n if (addon.AddonType === 'MG') {\r\n return '/Assets/images/my-greyhound.png';\r\n }\r\n if (addon.AddonType === 'IN') {\r\n return '/Assets/images/premium.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('baggage') > -1) {\r\n return '/Assets/images/baggage.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('bicycle') > -1) {\r\n return '/Assets/images/surfboards.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('carbon') > -1) {\r\n return '/Assets/images/tree.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('upgrade') > -1) {\r\n return '/Assets/images/upgrade.png';\r\n }\r\n if (addon.AddonType === 'TP' && name.toLowerCase().indexOf('mask') > -1) {\r\n return '/Assets/images/facemask.png';\r\n }\r\n if (addon.AddonType === 'TB') {\r\n return '/Assets/images/taxback.png';\r\n }\r\n return '';\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons/sector-addons.component.ts","module.exports = \"<div class=\\\"itinerary__sectors\\\" [id]=\\\"getSectorDivId(bookingGuid)\\\">\\r\\n <div class='coach-travel-container' [ngClass]=\\\"{'wrapper': !showJustSectors && !isMyGreyhound}\\\">\\r\\n\\r\\n <div class=\\\"coach-travel-header\\\">Coach Travel\\r\\n\\r\\n <span *ngIf=\\\"productType ==='EX'\\\" class=\\\"fare-label pull-right\\\">{{getFareTypeDescription(sector)}}</span>\\r\\n\\r\\n <!-- @* ******** DELETE SECTOR BUTTON ******** *@-->\\r\\n <!-- Show for a pass booking that is in the future and not within 24 hours-->\\r\\n <div class=\\\"row pull-right\\\" *ngIf=\\\"sector.ShowDeleteSectorBtn && isMyGreyhound\\\">\\r\\n <div class=\\\"col-sm-12 form-group text-right\\\">\\r\\n <div *ngIf=\\\"!deletingSector; then delete else deleting \\\"></div>\\r\\n <ng-template #delete>\\r\\n <span class=\\\"hidden-xxs\\\">DELETE TRIP</span>\\r\\n <button type=\\\"button\\\" (click)=\\\"deleteSector(sector)\\\" class=\\\"btn btn-grayred button-width\\\" style=\\\"\\r\\n margin-top: -7px;\\r\\n height: 33px;\\r\\n padding-left: 12px;\\r\\n padding-top: 7px;\\r\\n width: 33px;\\r\\n margin-left: 5px;\\r\\n display: inline-block;\\\" [disabled]=\\\"deletingSector\\\">\\r\\n X\\r\\n </button>\\r\\n </ng-template>\\r\\n <ng-template #deleting>\\r\\n <span class=\\\"hidden-xxs\\\">DELETING TRIP...</span>\\r\\n <button type=\\\"button\\\" (click)=\\\"deleteSector(sector)\\\" class=\\\"btn btn-cta-secondary button-width\\\"\\r\\n style=\\\" margin-top: -7px;\\r\\n height: 33px;\\r\\n padding-left: 12px;\\r\\n padding-top: 7px;\\r\\n width: 33px;\\r\\n margin-left: 5px;\\r\\n display: inline-block;\\\" [disabled]=\\\"deletingSector\\\">\\r\\n <i class=\\\"fa fa-refresh fa-spin\\\"></i>\\r\\n </button>\\r\\n </ng-template>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"itinerary-sector row\\\" style=\\\"background-color: #EAEAEA\\\">\\r\\n <div class=\\\"col-xs-6 col-sm-2\\\" *ngIf=\\\"!sector.OpenDatedUntil\\\" style=\\\"min-width: 120px; padding: 0px;\\\">\\r\\n\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!!sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <div class=\\\"sector__date\\\">\\r\\n Open-dated until\\r\\n <br />\\r\\n {{localStorageService.getJsDate(sector.OpenDatedUntil) | date: 'EEE, dd MMM y h:mm a'}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-xs-12 no-padding\\\">\\r\\n <div class=\\\"col-xs-12 text-center no-padding\\\">\\r\\n <gaweb-datetime [datetime]=\\\"sector.PassengerBoardingDate\\\"></gaweb-datetime>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 text-center no-padding\\\">\\r\\n <span class=\\\"arrow-start\\\">\\r\\n <i class=\\\"fa fa-long-arrow-down\\\"></i>\\r\\n </span>\\r\\n <span class=\\\"duration\\\">{{sector.TotalDurationText}}</span>\\r\\n <span class=\\\"arrow-end\\\">\\r\\n <i class=\\\"fa fa-long-arrow-down\\\"></i>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 text-center no-padding\\\">\\r\\n <gaweb-datetime [datetime]=\\\"sector.PassengerArrivalDate\\\"></gaweb-datetime>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 col-sm-3 container-bleed\\\" *ngIf=\\\"!!sector.OpenDatedUntil\\\">\\r\\n\\r\\n <div class=\\\"row\\\" *ngIf=\\\"sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <div style=\\\"font-size: 1.1em;\\\">\\r\\n <b>Open-dated until</b>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 text-center no-padding\\\">\\r\\n <gaweb-datetime [datetime]=\\\"localStorageService.getJsDate(sector.OpenDatedUntil)\\\">\\r\\n </gaweb-datetime>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6 container-bleed hidden-xs\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\" *ngIf=\\\"sector.ShowChangeSectorBtn && !sector.displayChangeDate\\\" [ngClass]=\\\"{ 'change-date' : !sector.OpenDatedUntil }\\\"\\r\\n style=\\\"margin-top: 10px;\\\" (click)=\\\"updateSector(sector)\\\">\\r\\n <button class=\\\"btn btn-cta btn-change-date-alt\\\" style=\\\"display: block;\\\"\\r\\n *ngIf=\\\"productType !=='BP'\\\" [disabled]=\\\"!sector.ShowChangeSectorBtn\\\">Change Date</button>\\r\\n <button class=\\\"btn btn-cta btn-change-date-alt\\\" style=\\\"display: block;\\\"\\r\\n *ngIf=\\\"productType ==='BP' &§or.ShowChangeSectorBtn\\\">Change Date</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-sm-9 no-padding\\\"\\r\\n [ngClass]=\\\"{ 'col-xs-12' : !!sector.OpenDatedUntil, 'col-xs-6' : !sector.OpenDatedUntil }\\\">\\r\\n <div class=\\\"col-sm-8 div-dep-arr\\\">\\r\\n <div class=\\\"no-padding\\\"\\r\\n [ngClass]=\\\"{ 'col-xs-6' : !!sector.OpenDatedUntil, 'col-xs-12' : !sector.OpenDatedUntil }\\\">\\r\\n <small>Dep.\\r\\n <br />\\r\\n </small>\\r\\n <b>\\r\\n {{sector.OriginName}} \\r\\n <a class=\\\"has-google-marker\\\"\\r\\n href=\\\"http://maps.google.com.au/?q={{sector.OriginLatitude}},{{sector.OriginLongitude}}\\\"\\r\\n target=\\\"_blank\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </a>\\r\\n </b>\\r\\n <div class=\\\"hidden-xxs hidden-xs\\\" *ngIf=\\\"!sector.OpenDatedUntil\\\" style=\\\"margin-bottom: -200px;\\\">\\r\\n {{sector.OriginAddress}}\\r\\n </div>\\r\\n <div class=\\\"hidden-xxs hidden-xs\\\" *ngIf=\\\"!!sector.OpenDatedUntil\\\">\\r\\n {{sector.OriginAddress}}\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"sector.Seats != null\\\" class=\\\"col-xs-12 seat-lbl\\\">\\r\\n <span *ngIf=\\\"sector.Seats.length > 1\\\">\\r\\n <b>Seats: </b>\\r\\n </span>\\r\\n <span *ngIf=\\\"sector.Seats.length == 1\\\">\\r\\n <b>Seat: </b>\\r\\n </span>\\r\\n <span *ngFor=\\\"let seat of sector.Seats\\\">\\r\\n {{seat.Row}}{{seat.SeatLetter}}\\r\\n </span>\\r\\n </div>\\r\\n <div *ngIf=\\\"sector.Seats == null || sector.Seats.length == 0\\\" class=\\\"col-xs-12 seat-lbl\\\" style=\\\"min-width: 100px;\\\">\\r\\n <span>\\r\\n <b>Seat: </b><b>Allocated by driver</b>\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"no-padding \\\"\\r\\n [ngClass]=\\\"{ 'col-xs-6' : !!sector.OpenDatedUntil, 'col-xs-12 location' : !sector.OpenDatedUntil }\\\">\\r\\n <small>Arr.\\r\\n <br />\\r\\n </small>\\r\\n <b>\\r\\n {{sector.DestinationName}} \\r\\n <a class=\\\"has-google-marker\\\"\\r\\n href=\\\"http://maps.google.com.au/?q={{sector.DestinationLatitude}},{{sector.DestinationLongitude}}\\\"\\r\\n target=\\\"_blank\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </a>\\r\\n </b>\\r\\n <div class=\\\"hidden-xxs hidden-xs\\\">\\r\\n {{sector.DestinationAddress}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"!sector.OpenDatedUntil\\\" class=\\\"col-sm-3 container-bleed hidden-xs\\\" style=\\\"margin-top: 40px;\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <i class=\\\"fa fa-bus fa-2x\\\"></i>\\r\\n <ul class=\\\"service\\\" style=\\\"width:100%\\\">\\r\\n <li> {{sector.ServiceCompany}}{{sector.ServiceNumber}}</li>\\r\\n </ul>\\r\\n <div *ngIf=\\\"productType == 'EX' && sector.Id !== 0\\\" class=\\\"fare-description\\\"\\r\\n style=\\\"width: 100%; margin: -30px 0 0 45px;\\\">\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Early Bird' && sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('EarlyBirdAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Early Bird' && !sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('EarlyBirdUnavailable' | translate) | async }}\\\"></i>\\r\\n\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Advantage' && sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('AdvantageAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Advantage' && !sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('AdvantageUnavailable' | translate) | async }}\\\"></i>\\r\\n\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Flexible' && sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('PremiumAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Flexible' && !sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('PremiumUnavailable' | translate) | async }}\\\"></i>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"productType =='BP' && sector.Id !== 0\\\" class=\\\"fare-description\\\"\\r\\n style=\\\"width: 100%; margin: -30px 0 0 45px;\\\">\\r\\n <i *ngIf=\\\"sector.ShowChangeSectorBtn\\\" class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('PackagePassAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"!sector.ShowChangeSectorBtn\\\" class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" style=\\\"color:#878787; margin-top: -5px; font-size: 23px;\\\"\\r\\n title=\\\"{{('PackagePassUnavailable' | translate) | async }}\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 text-center\\\" *ngIf=\\\"sector.ShowChangeSectorBtn && !sector.displayChangeDate\\\">\\r\\n <button class=\\\"btn btn-cta btn-change-date\\\" style=\\\"width: 113px; display: block;\\\"\\r\\n *ngIf=\\\"productType !=='BP'\\\" [disabled]=\\\"!sector.ShowChangeSectorBtn\\\" (click)=\\\"updateSector(sector)\\\">Change</button>\\r\\n <button class=\\\"btn btn-cta btn-change-date\\\" style=\\\"width: 113px; display: block;\\\"\\r\\n *ngIf=\\\"productType ==='BP' &§or.ShowChangeSectorBtn\\\" (click)=\\\"updateSector(sector)\\\">Change</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 visible-xs\\\" style=\\\"height: 75px;\\\" *ngIf=\\\"!sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <i class=\\\"fa fa-bus fa-2x\\\" style=\\\"margin: 10px 0px 0px 26px;\\\"></i>\\r\\n <ul class=\\\"service\\\">\\r\\n <li> {{sector.ServiceCompany}}{{sector.ServiceNumber}}</li>\\r\\n\\r\\n </ul>\\r\\n <span *ngIf=\\\"productType == 'EX' && sector.Id !== 0\\\" class=\\\"fare-description\\\"\\r\\n style=\\\"width: 100%; margin: -30px 0 0 72px; display: block;\\\">\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Early Bird' && sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('EarlyBirdAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Early Bird' && !sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('EarlyBirdUnavailable' | translate) | async }}\\\"></i>\\r\\n\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Advantage' && sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('AdvantageAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Advantage' && !sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('AdvantageUnavailable' | translate) | async }}\\\"></i>\\r\\n\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Flexible' && sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('PremiumAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"sector.Fares[0].FareDescription == 'Flexible' && !sector.ShowChangeSectorBtn\\\"\\r\\n class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\" data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('PremiumUnavailable' | translate) | async }}\\\"></i>\\r\\n </span>\\r\\n\\r\\n <div *ngIf=\\\"productType =='BP' && sector.Id !== 0\\\" class=\\\"fare-description\\\"\\r\\n style=\\\"width: 100%; margin: -30px 0 0 72px; display: block;\\\">\\r\\n <i *ngIf=\\\"sector.ShowChangeSectorBtn\\\" class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('PackagePassAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"!sector.ShowChangeSectorBtn\\\" class=\\\"fa fa-info-circle fare-description-icon\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\"\\r\\n title=\\\"{{('PackagePassUnavailable' | translate) | async }}\\\"></i>\\r\\n </div>\\r\\n <!-- <div class=\\\"service-label\\\" style=\\\"max-width: 88px; margin-left: auto;margin-right: auto;\\\">\\r\\n\\r\\n </div> -->\\r\\n <div *ngIf=\\\"productType =='BP'\\\" class=\\\"fare-description\\\"\\r\\n style=\\\"width: 100%; margin: -27px 0 0px 78px;\\\">\\r\\n <i *ngIf=\\\"sector.ShowChangeSectorBtn\\\" class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" title=\\\"{{('PackagePassAvailable' | translate) | async }}\\\"></i>\\r\\n <i *ngIf=\\\"!sector.ShowChangeSectorBtn\\\" class=\\\"fa fa-info-circle\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" style=\\\"color:#878787;\\\"\\r\\n title=\\\"{{('PackagePassUnavailable' | translate) | async }}\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"sector.Seats != null\\\" style=\\\"margin-top: 4px; margin-bottom: -100px;\\\"\\r\\n class=\\\"col-xs-12 text-center hidden-xs\\\">\\r\\n <span *ngIf=\\\"sector.Seats.length > 1\\\">\\r\\n <b>Seats: </b>\\r\\n </span>\\r\\n <span *ngIf=\\\"sector.Seats.length == 1\\\">\\r\\n <b>Seat: </b>\\r\\n </span>\\r\\n <span *ngFor=\\\"let seat of sector.Seats\\\">\\r\\n {{seat.Row}}{{seat.SeatLetter}}\\r\\n </span>\\r\\n </div>\\r\\n <div *ngIf=\\\"sector.Seats == null || sector.Seats.length == 0\\\" style=\\\"margin-top: 4px; margin-bottom: -100px;\\\"\\r\\n class=\\\"col-xs-12 text-center hidden-xs\\\">\\r\\n <span>\\r\\n <b>Seat: </b><b>Allocated by driver</b>\\r\\n </span>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"change-sector col-sm-12 form-group text-center\\\"\\r\\n *ngIf=\\\"sector.ShowChangeSectorBtn && sector.displayChangeDate\\\">\\r\\n <h4>Choose a new departure date:</h4>\\r\\n </div>\\r\\n <!-- {{sector | json}} -->\\r\\n <!-- @* ******** CHANGE DATE CHECK AVAILABILITY ******** *@-->\\r\\n <!-- Shown for express flexi fares that can be changed and is in the future and not within 24 hours-->\\r\\n <gaweb-change-sector-date *ngIf=\\\"sector.ShowChangeSectorBtn && sector.displayChangeDate\\\" class=\\\"col-xs-12\\\"\\r\\n [sector]=\\\"sector\\\" [bookingGuid]=\\\"bookingGuid\\\">\\r\\n </gaweb-change-sector-date>\\r\\n <div class=\\\"text-center check-availability\\\" *ngIf=\\\"sector.ShowChangeSectorBtn && sector.displayChangeDate\\\"\\r\\n (click)=\\\"updateSector(sector)\\\">\\r\\n <button class=\\\"btn btn-primary btn-block\\\" style=\\\"width: calc(100% - 20px); margin-left: 10px;\\\" >Cancel</button>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 container-bleed visible-xs\\\">\\r\\n <div class=\\\"container-bleed\\\" style=\\\"height: 35px; float: right;\\\">\\r\\n <span style=\\\"float:left;\\\" *ngIf=\\\"sector.ShowChangeSectorBtn && !sector.displayChangeDate\\\" (click)=\\\"updateSector(sector)\\\">\\r\\n <button class=\\\"btn btn-cta btn-change-date\\\" style=\\\"width: 113px; display: block;\\\"\\r\\n *ngIf=\\\"productType !=='BP'\\\" [disabled]=\\\"!sector.ShowChangeSectorBtn\\\">Change</button>\\r\\n <button class=\\\"btn btn-cta btn-change-date\\\" style=\\\"width: 113px; display: block;\\\"\\r\\n *ngIf=\\\"productType ==='BP' &§or.ShowChangeSectorBtn\\\">Change</button>\\r\\n </span>\\r\\n <!-- [style.right.px]=\\\"sector.displayChangeDate ? -40 : ( (!sector.ShowChangeSectorBtn) || (sector.ShowChangeSectorBtn && sector.displayChangeDate) ? -40 : -20) \\\" -->\\r\\n <span class=\\\"btn btn-cta trip-expand\\\" *ngIf=\\\"showTripDetails\\\"\\r\\n style=\\\"right: -20px;\\\"\\r\\n [ngClass]=\\\"{ '' : sector.ShowChangeSectorBtn && !sector.displayChangeDate }\\\"\\r\\n (click)=\\\"showDetailedTrip()\\\">\\r\\n <div>\\r\\n <span>{{('TripDetails' | translate) | async }}</span>\\r\\n <span *ngIf=\\\"gettingTimetable\\\">\\r\\n <i class=\\\"fa fa-spinner fa-pulse\\\"></i>\\r\\n </span>\\r\\n <i [ngClass]=\\\"{ 'fa-chevron-right': showDetailed, 'fa-chevron-down': !showDetailed }\\\"\\r\\n class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"showTripDetails\\\" class=\\\"btn btn-cta trip-expand hidden-xs\\\" (click)=\\\"showDetailedTrip()\\\">\\r\\n <div>\\r\\n <span>{{('TripDetails' | translate) | async }}</span>\\r\\n <span *ngIf=\\\"gettingTimetable\\\">\\r\\n <i class=\\\"fa fa-spinner fa-pulse\\\"></i>\\r\\n </span>\\r\\n <i [ngClass]=\\\"{ 'fa-chevron-right': showDetailed, 'fa-chevron-down': !showDetailed }\\\" class=\\\"fa\\\"\\r\\n aria-hidden=\\\"true\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"trip-details-loader\\\" *ngIf=\\\"!showDetailed && sector.timetable == null\\\">\\r\\n <div style=\\\"text-align: center; padding: 10px;\\\">\\r\\n <span style=\\\"font-size: 22px; font-weight: bold;\\\">Retrieving trip details..</span>\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-2x\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!showDetailed && sector.timetable != null\\\">\\r\\n <gaweb-trip-details [ngClass]=\\\"{ 'collapsed' : !showDetailed }\\\" readonly=\\\"false\\\" [sector]=\\\"sector\\\"\\r\\n [booking]=\\\"booking\\\" (onSeatsUpdated)=\\\"seatsUpdate($event)\\\"></gaweb-trip-details>\\r\\n </div>\\r\\n <!-- addons -->\\r\\n</div>\\r\\n<div *ngIf=\\\"!!sector.Addons && sector.Addons.length > 0 && !sector.OpenDatedUntil\\\">\\r\\n <gaweb-sector-addons-wrapper [sector]=\\\"sector\\\" [productType]=\\\"productType\\\" [bookingGuid]=\\\"bookingGuid\\\" [booking]=\\\"booking\\\"></gaweb-sector-addons-wrapper>\\r\\n</div>\\r\\n<br/>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/sector/sector.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/sector/sector.component.html\n// module chunks = main","import * as _ from 'lodash';\r\n\r\nimport { Component, OnInit, AfterViewInit, AfterViewChecked, Input, Output, EventEmitter, ViewChildren, QueryList, OnChanges, SimpleChange, SimpleChanges } from '@angular/core';\r\nimport { Sector, Booking, Addon, AddonOption, Totals } from '../../../../models/booking.model';\r\nimport * as moment from 'moment';\r\nimport { LocalStorageService } from '../../../../services/local-storage.service';\r\nimport { DeleteSectorByGuidOptions, BookingService, DeleteSectorOptions } from '../../../../services/booking.service';\r\nimport { ActionUpdaterService, ApiError } from '../../../../services/action-updater.service';\r\nimport { ITINERARY_CONTEXT } from 'app/shared/models/enums/context.enum';\r\nimport { TimetableService } from 'app/shared/services/timetable-service';\r\nimport { PostTimetableOption, RouteOption } from 'app/shared/models/timetables.model';\r\nimport { FeatureService, Feature } from 'app/shared/services/feature.service';\r\nimport { GoogleMapComponent } from 'app/shared/components/google-map/google-map.component';\r\nimport { DeviceService } from '../../../../services/device.service';\r\nimport { SeatAllocation } from '../../../../services/travel.service';\r\nimport { SelectListDataItem } from '../../../select-list/select-list.component';\r\n\r\ndeclare var jQuery: any;\r\n\r\n@Component({\r\n selector: 'gaweb-sector',\r\n templateUrl: './sector.component.html',\r\n styles: [`\r\n .itinerary__sectors {\r\n margin-top: 5px;\r\n }\r\n .sector__date {\r\n padding: 5px;\r\n background-color: lightgray;\r\n margin-top: 5px;\r\n }\r\n .trip-details-button{\r\n min-width: 70px;\r\n }\r\n .delete-button{\r\n min-width: 100px;\r\n }\r\n `]\r\n})\r\nexport class SectorComponent implements AfterViewInit, OnChanges {\r\n @Output() onSectorDeleted: EventEmitter<Booking> = new EventEmitter();\r\n @Output() onSeatsUpdated: EventEmitter<Array<SeatAllocation>> = new EventEmitter();\r\n @Input() sector: any;\r\n @Input() booking: Booking;\r\n @Input() isPass: boolean;\r\n @Input() allSectors: Sector[];\r\n @Input() productType: string;\r\n @Input() bookingGuid: string;\r\n @Input() scrollId: string;\r\n @Input() showTripDetails = false;\r\n @Input() showJustSectors: boolean;\r\n @Input() addons: Array<Addon>;\r\n @Input() addonsToPurchase: Array<AddonOption>;\r\n @Input() totals: Totals;\r\n @ViewChildren(GoogleMapComponent) googleMap: QueryList<GoogleMapComponent>;\r\n\r\n\r\n showDetailed = true;\r\n isMyGreyhound: boolean;\r\n mapEnabled = false;\r\n @Input()\r\n set context(c: ITINERARY_CONTEXT) {\r\n this.isMyGreyhound = c === ITINERARY_CONTEXT.MY_GREYHOUND;\r\n }\r\n gettingTimetable = false;\r\n deletingSector = false;\r\n ro: any;\r\n addonsAvailable: boolean;\r\n addonsFound: Addon[] = [];\r\n addonsFoundProductCodes: String[] = [];\r\n showExtendPass: boolean;\r\n\r\n constructor(public localStorageService: LocalStorageService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private bookingService: BookingService,\r\n private timetableService: TimetableService,\r\n private featureService: FeatureService,\r\n private deviceService: DeviceService) { }\r\n\r\n ngOnInit() {\r\n this.mapEnabled = this.featureService.GetFeatureStatus(Feature.UseGoogleMaps);\r\n\r\n if (this.sector.OpenDatedUntil !== false && this.sector.OpenDatedUntil != null) {\r\n this.showTripDetails = false;\r\n }\r\n\r\n if (this.sector.OpenDatedUntil == null) {\r\n //this.getTimetable(this.sector);\r\n }\r\n }\r\n \r\n ngAfterViewInit() {\r\n // console.log(this.booking);\r\n // console.log(this.addons);\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n }\r\n\r\n seatsUpdate(seats){\r\n const selectedSeats = new Array<any>();\r\n seats.forEach((seat) => {\r\n if(seat.Status === 3) {\r\n seat.SeatLetter = seat.Seat;\r\n selectedSeats.push(seat);\r\n }\r\n });\r\n this.sector.Seats = selectedSeats;\r\n }\r\n checkMaps(sector) {\r\n // Wait until map is ready.\r\n if (this.googleMap) {\r\n this.googleMap.forEach((gmap) => {\r\n gmap.refreshMap();\r\n });\r\n } else {\r\n setTimeout(() => {\r\n this.checkMaps(sector);\r\n }, 250);\r\n }\r\n }\r\n\r\n purchaseMask(sector: any) {\r\n console.log('Purchase ' + sector.Seats.length + ' Masks for ' + sector.ServiceCompany + sector.ServiceNumber);\r\n }\r\n \r\n getFareTypeDescription(sector: Sector) {\r\n return (sector.FareType == null || sector.FareType == '') ? sector.SpecialType : sector.FareType;\r\n }\r\n\r\n updateSector(sector: Sector) {\r\n sector.displayChangeDate = !sector.displayChangeDate;\r\n }\r\n\r\n getTimetable(sector: Sector) {\r\n\r\n this.gettingTimetable = true;\r\n const getTimetableOption = new PostTimetableOption(sector.ServiceNumber, sector.OriginStopCode, sector.DestinationStopCode),\r\n timetableDate = moment(sector.PassengerBoardingDate, 'DD/MM/YYYY h:mm:ss A').format('DD-MMM-YYYY');\r\n\r\n if (!!sector.timetable) {\r\n sector.timetable[0].mapView = false;\r\n sector.timetableDisplayed = !sector.timetableDisplayed;\r\n this.gettingTimetable = false;\r\n } else {\r\n this.timetableService.postTimetable([getTimetableOption], timetableDate).subscribe(\r\n (timetable) => {\r\n timetable[0].mapView = false;\r\n this.gettingTimetable = false;\r\n sector.timetable = timetable;\r\n sector.timetableDisplayed = true;\r\n sector.timetable[0].mapView = false;\r\n sector.timetable[0].showMap = (inputRo) => {\r\n sector.timetable[0].mapView = true;\r\n this.checkMaps(inputRo);\r\n };\r\n }, this.onError\r\n )\r\n }\r\n }\r\n\r\n onError = (error) => {\r\n console.error(error);\r\n this.gettingTimetable = false;\r\n this.actionUpdaterService.onError(error);\r\n }\r\n deleteSector(sector: Sector) {\r\n this.deletingSector = true;\r\n const deleteSectorOptions = new DeleteSectorOptions(\r\n this.bookingGuid,\r\n sector.SectorNumber);\r\n this.bookingService.deleteSector(deleteSectorOptions).subscribe(\r\n (booking: Booking) => {\r\n this.deletingSector = false;\r\n if (this.deviceService.IsMobile()) {\r\n jQuery('html, body').animate({\r\n scrollTop: jQuery('.itinerary').position().top + 20 + parseInt(jQuery('.navbar').css('height').replace(/\\D/g, ''), 10)\r\n }, 500);\r\n }\r\n this.booking.Sectors = this.booking.Sectors.filter(x => x != sector);\r\n this.onSectorDeleted.emit(booking);\r\n },\r\n (error) => {\r\n this.deletingSector = false;\r\n this.actionUpdaterService.onError(error);\r\n }\r\n );\r\n }\r\n getSectorDivId(guid: string): string {\r\n return guid.replace(/-/g, '');\r\n }\r\n\r\n showDetailedTrip() {\r\n if(this.sector.timetable == null && this.showDetailed){\r\n this.getTimetable(this.sector);\r\n this.showDetailed = !this.showDetailed;\r\n } else {\r\n this.showDetailed = !this.showDetailed;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/sector/sector.component.ts","module.exports = \"<!-- DESKTOP LAYOUT -->\\r\\n<div class=\\\"hidden-xs hidden-sm\\\">\\r\\n <div *ngIf=\\\"!availabilityDataExists && alternateTravelExists\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding: 0;\\\">\\r\\n <div style=\\\"background-color: #FF9A0238; height: 90px;\\\">\\r\\n <div style=\\\"width: 303px; height: 100%; float: left; padding-right: 33px; padding-top: 25px;\\\">\\r\\n <div *ngIf=\\\"showPreviousDay\\\">\\r\\n <div class=\\\"pull-right\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer;\\\" (click)=\\\"prevDay()\\\" >\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\" style=\\\"margin-right: 15px;\\\"></i>\\r\\n {{dayBefore | gxDate: 'date'}}\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n <div style=\\\"width: 392px; height: 30px; float: left; text-align: center; font-family: Roboto; font-size: 14px; font-weight: 500; color: #223250; padding: 30px 0;\\\">\\r\\n <p>There is no availability for your selected date. However, more trips are available on these pre or post dates.</p>\\r\\n </div>\\r\\n <div style=\\\"width: 303px; float: left; padding-left: 33px; padding-top: 25px;\\\">\\r\\n <div class=\\\"pull-left\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer;\\\" (click)=\\\"nextDay()\\\" >\\r\\n {{dayAfter | gxDate: 'date'}}\\r\\n <i class=\\\"fa fa-play\\\" style=\\\"margin-left: 15px\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"availabilityDataExists\\\">\\r\\n <div *ngIf=\\\"betterAlternateTravelExists\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding: 0;\\\">\\r\\n <div style=\\\"background-color: #FF9A0238; height: 90px;\\\">\\r\\n <div style=\\\"width: 303px; height: 100%; float: left; padding-right: 33px; padding-top: 25px;\\\">\\r\\n <div *ngIf=\\\"!!betterDayBefore\\\">\\r\\n <div class=\\\"pull-right\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer;\\\" (click)=\\\"betPrevDay()\\\" >\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\" style=\\\"margin-right: 15px;\\\"></i>\\r\\n {{betterDayBefore | gxDate: 'date'}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div style=\\\"width: 392px; height: 30px; float: left; text-align: center; font-family: Roboto; font-size: 14px; font-weight: 500; color: #223250; padding: 30px 0;\\\">\\r\\n <p>There are trips available for your selected date. However, more direct trips are available on these pre or post dates.</p>\\r\\n </div>\\r\\n <div style=\\\"width: 303px; float: left; padding-left: 33px; padding-top: 25px;\\\">\\r\\n <div *ngIf=\\\"!!betterDayAfter\\\">\\r\\n <div class=\\\"pull-left\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer;\\\" (click)=\\\"betNextDay()\\\" >\\r\\n {{betterDayAfter | gxDate: 'date'}}\\r\\n <i class=\\\"fa fa-play\\\" style=\\\"margin-left: 15px\\\"></i>\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n <!-- MOBILE LAYOUT -->\\r\\n<div class=\\\"visible-xs visible-sm\\\">\\r\\n <div *ngIf=\\\"!availabilityDataExists && alternateTravelExists\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div style=\\\"background-color: #FF9A0238; padding: 10px 0;\\\">\\r\\n <div class=\\\"col-md-4\\\" style=\\\"font-family: Roboto; font-size: 16px; font-weight: 500; text-align: center; color: #223250;\\\">\\r\\n <p style=\\\"margin: 0;\\\">There is no availability for your selected date. However, more trips are available on these pre or post dates.</p>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"visible-xs\\\">\\r\\n\\r\\n <div *ngIf=\\\"showPreviousDay\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding-top: 20px;\\\">\\r\\n <div style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"prevDay()\\\">\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\" style=\\\"margin-right: 15px;\\\"></i>\\r\\n {{dayBefore | gxDate: 'date'}}\\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n <div class=\\\"row\\\" style=\\\"padding-top: 20px;\\\">\\r\\n <div style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"nextDay()\\\">\\r\\n {{dayAfter | gxDate: 'date'}}\\r\\n <i class=\\\"fa fa-play\\\" style=\\\"margin-left: 15px\\\"></i>\\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n <div class=\\\"visible-sm\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding-top: 20px;\\\">\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <div *ngIf=\\\"showPreviousDay\\\">\\r\\n <div class=\\\"pull-right\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"prevDay()\\\">\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\" style=\\\"margin-right: 15px;\\\"></i>\\r\\n {{dayBefore | gxDate: 'date'}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <div class=\\\"pull-left\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"nextDay()\\\">\\r\\n {{dayAfter | gxDate: 'date'}}\\r\\n <i class=\\\"fa fa-play\\\" style=\\\"margin-left: 15px\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"availabilityDataExists && betterAlternateTravelExists\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div style=\\\"background-color: #FF9A0238; padding: 10px 0;\\\">\\r\\n <div class=\\\"col-md-4\\\" style=\\\"font-family: Roboto; font-size: 16px; font-weight: 500; text-align: center; color: #223250;\\\">\\r\\n <p style=\\\"margin: 0;\\\">There are trips available for your selected date. However, more direct trips are available on these pre or post dates.</p>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"visible-xs\\\">\\r\\n <div *ngIf=\\\"!!betterDayBefore\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding-top: 20px;\\\">\\r\\n <div style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"betPrevDay()\\\">\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\" style=\\\"margin-right: 15px;\\\"></i>\\r\\n {{betterDayBefore | gxDate: 'date'}}\\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n <div *ngIf=\\\"!!betterDayAfter\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding-top: 20px;\\\">\\r\\n <div style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"betNextDay()\\\">\\r\\n {{betterDayAfter | gxDate: 'date'}}\\r\\n <i class=\\\"fa fa-play\\\" style=\\\"margin-left: 15px\\\"></i>\\r\\n </div>\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"visible-sm\\\">\\r\\n <div class=\\\"row\\\" style=\\\"padding-top: 20px;\\\">\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <div *ngIf=\\\"!!betterDayBefore\\\">\\r\\n <div class=\\\"pull-right\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"betPrevDay()\\\">\\r\\n <i class=\\\"fa fa-play fa-flip-horizontal\\\" style=\\\"margin-right: 15px;\\\"></i>\\r\\n {{betterDayBefore | gxDate: 'date'}}\\r\\n </div> \\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-sm-6\\\">\\r\\n <div *ngIf=\\\"!!betterDayAfter\\\">\\r\\n <div class=\\\"pull-left\\\" style=\\\"width: 250px; height: 40px; background-color: #223250; color: #EEEEEE; font-family: Roboto; text-align: center; font-size: 16px; border-radius: 5px; padding-top: 12px; cursor: pointer; margin: auto;\\\" (click)=\\\"betNextDay()\\\">\\r\\n {{betterDayAfter | gxDate: 'date'}}\\r\\n <i class=\\\"fa fa-play\\\" style=\\\"margin-left: 15px\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/travel-alternatives-panel/travel-alternatives-panel.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/travel-alternatives-panel/travel-alternatives-panel.component.html\n// module chunks = main","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gaweb-travel-alternatives-panel',\r\n templateUrl: 'travel-alternatives-panel.component.html'\r\n})\r\nexport class TravelAlternativesPanelComponent {\r\n @Input() availabilityDataExists: boolean;\r\n @Input() alternateTravelExists: boolean;\r\n @Input() betterAlternateTravelExists: boolean;\r\n @Input() dayBefore: string;\r\n @Input() dayAfter: string;\r\n @Input() betterDayBefore: string;\r\n @Input() betterDayAfter: string;\r\n @Input() showPreviousDay: boolean;\r\n @Output() doPrevDay: EventEmitter<any> = new EventEmitter();\r\n @Output() doNextDay: EventEmitter<any> = new EventEmitter();\r\n @Output() doBetPrevDay: EventEmitter<any> = new EventEmitter();\r\n @Output() doBetNextDay: EventEmitter<any> = new EventEmitter();\r\n\r\n nextDay() {\r\n this.doNextDay.emit();\r\n }\r\n\r\n prevDay() {\r\n this.doPrevDay.emit();\r\n }\r\n\r\n betNextDay() {\r\n this.doBetNextDay.emit();\r\n }\r\n\r\n betPrevDay() {\r\n this.doBetPrevDay.emit();\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/travel-alternatives-panel/travel-alternatives-panel.component.ts","module.exports = \"<div [hidden]=\\\"(!isMyGreyhound && (showJustSectors || parentBooking?.Sectors.length > 0))\\\">\\r\\n <div class=\\\"col-xs-12\\\" id=\\\"root-picker-outlet\\\">\\r\\n <div *ngIf=\\\"!showShortTravelDatesDescription && !isMyGreyhound\\\">\\r\\n <p>You can book your first trip now to ensure you have a seat, or you can do it later when you manage your booking.</p>\\r\\n <strong *ngIf=\\\"showBookTravelSection\\\">\\r\\n <p>Where do you want to travel from?</p>\\r\\n </strong>\\r\\n </div>\\r\\n <div class=\\\"row margin-bottom--10\\\" *ngIf=\\\"isMyGreyhound && parentBooking?.Sectors.length === 0\\\">\\r\\n <div class=\\\"text-center col-xs-10 col-xs-offset-1\\\">{{('EmptyTravelLabel' | translate) | async }}</div>\\r\\n </div>\\r\\n <h5 class=\\\"travel-date__close\\\" *ngIf=\\\"showShortTravelDatesDescription && (parentBooking?.Sectors == null || parentBooking?.Sectors.length === 0) && showBookTravelSection\\\">\\r\\n <span class=\\\"text-uppercase\\\">{{('TravelDateLabel' | translate) | async }}\\r\\n </span>\\r\\n </h5>\\r\\n </div>\\r\\n <div class=\\\"row\\\" [hidden]=\\\"(showBookTravelSection && !parentBooking?.ShowAddTravelBtn) || (isMyGreyhound && productUrl?.ProductTypeUrl === ProductTypeUrl.expressBooking)\\\">\\r\\n <div class=\\\"margin-bottom--10\\\" [ngClass]=\\\"{'col-xs-12 col-sm-6 col-sm-offset-3': showTypeAhead, 'col-xs-12': !showTypeAhead}\\\">\\r\\n <button class=\\\"btn btn-cta-secondary button-width\\\" (click)=\\\"setBookTravelSection(true)\\\" [disabled]=\\\"addTravelDisabled\\\">\\r\\n <span>Add Travel Now</span>\\r\\n <span *ngIf=\\\"parentBooking.Package.RequiresTravel\\\">*</span>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\" [hidden]=\\\"!(parentBooking?.Package.RequiresTravel && !showBookTravelSection && parentBooking?.Sectors.length === 0)\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <span class=\\\"is-required--red\\\">\\r\\n {{('RequiredTravelMessage' | translate) | async }}\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div [hidden]=\\\"!showBookTravelSection\\\" class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <form id=\\\"travelForm\\\" name=\\\"travelForm\\\" novalidate autocomplete=\\\"off\\\" (ngSubmit)=\\\"getAvailability()\\\" [formGroup]=\\\"travelForm\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-12 form-group\\\">\\r\\n <select class=\\\"form-control\\\" formControlName=\\\"fromStop\\\" *ngIf=\\\"!showTypeAhead\\\">\\r\\n <option [ngValue]=\\\"null\\\" disabled selected [hidden]=\\\"true\\\">From</option>\\r\\n <option *ngFor=\\\"let location of origins\\\"\\r\\n [value]=\\\"location.Code\\\" [selected]=\\\"location.IsPrimaryDeparture\\\" \\r\\n >{{location.Description}}</option>\\r\\n </select>\\r\\n <gaweb-pick-stop placeholder=\\\"From\\\" [stops]=\\\"stops\\\" name=\\\"From\\\" [value]=\\\"null\\\" formControlName=\\\"fromStop\\\" [ngClass]=\\\"displayFieldCss('fromStop')\\\"\\r\\n *ngIf=\\\"showTypeAhead\\\">\\r\\n </gaweb-pick-stop>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"col-sm-12 form-group\\\">\\r\\n <select class=\\\"form-control\\\" formControlName=\\\"toStop\\\" *ngIf=\\\"!showTypeAhead\\\">\\r\\n <option [ngValue]=\\\"null\\\" disabled selected [hidden]=\\\"true\\\">To</option>\\r\\n <option *ngFor=\\\"let location of destinations\\\" [value]=\\\"location.Code\\\" [selected]=\\\"location.IsPrimaryDestination\\\">{{location.Description}}</option>\\r\\n <!-- <option [value]=\\\"parentBooking?.Package.DestinationLocationCode\\\">{{parentBooking?.Package.DestinationLocationName}}</option> -->\\r\\n </select>\\r\\n <gaweb-pick-stop placeholder=\\\"To\\\" [stops]=\\\"stops\\\" name=\\\"To\\\" [value]=\\\"travelForm.get('isReturn').value\\\" formControlName=\\\"toStop\\\"\\r\\n [ngClass]=\\\"displayFieldCss('toStop')\\\" *ngIf=\\\"showTypeAhead\\\">\\r\\n </gaweb-pick-stop>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-sm-6 col-xs-12 form-group\\\" [ngClass]=\\\"{'has-error has-feedback':travelForm.controls['departureDate'].touched && !travelForm.controls['departureDate'].valid}\\\">\\r\\n <label class=\\\"control-label\\\" for=\\\"departureDate\\\">\\r\\n Departing\\r\\n </label>\\r\\n <gaweb-pick-a-date placeholder=\\\"Choose date\\\" formControlName=\\\"departureDate\\\" [value]=\\\"travelForm.get('departureDate').value\\\"\\r\\n [minDate]=\\\"minDate\\\" [container]=\\\"'#root-picker-outlet'\\\"></gaweb-pick-a-date>\\r\\n\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(travelForm.get('departureDate').touched ||\\r\\n travelForm.get('departureDate').dirty) &&\\r\\n travelForm.get('departureDate').errors\\\">\\r\\n <span *ngIf=\\\"travelForm.get('departureDate').errors.required\\\">\\r\\n Please enter a departing date.\\r\\n </span>\\r\\n </span>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"col-sm-6 col-xs-12 form-group\\\" *ngIf=\\\"travelForm.get('isReturn').value\\\" [ngClass]=\\\"{'has-error has-feedback':travelForm.controls['returnDate'].touched && travelForm.errors}\\\">\\r\\n <label class=\\\"control-label\\\" for=\\\"returnDate\\\">\\r\\n Returning\\r\\n </label>\\r\\n\\r\\n <gaweb-pick-a-date formControlName=\\\"returnDate\\\" [minDate]=\\\"minDate\\\" [value]=\\\"travelForm.get('returnDate').value\\\" placeholder=\\\"Choose date\\\"\\r\\n [container]=\\\"'#root-picker-outlet'\\\"></gaweb-pick-a-date>\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(travelForm.get('returnDate').touched ||\\r\\n travelForm.get('returnDate').dirty) &&\\r\\n travelForm.errors\\\">\\r\\n <span *ngIf=\\\"travelForm.errors.isReturnAndNoReturnDate\\\">\\r\\n Please enter a return date.\\r\\n </span>\\r\\n <span *ngIf=\\\"travelForm.errors.isReturnAndReturnDateBeforeDeparture\\\">\\r\\n Return date must be after departure date.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" [ngClass]=\\\"{'travel-date__button-row':parentBooking?.Sectors.length > 0}\\\">\\r\\n <div class=\\\"col-xs-12 col-sm-6 form-group\\\">\\r\\n <button (click)=\\\"showBookTravelSection = false\\\" class=\\\"btn btn-default btn-block btn-left\\\">\\r\\n Cancel\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 col-sm-6 form-group\\\">\\r\\n <button type=\\\"submit\\\" [disabled]=\\\"!travelForm.valid\\\" class=\\\"btn btn-cta btn-block btn-right\\\">\\r\\n Check Availability\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <gaweb-error-summary [alerts]=\\\"alertsAvailability\\\" [worksWithEvents]=\\\"false\\\"></gaweb-error-summary>\\r\\n </div>\\r\\n <hr>\\r\\n </form>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"input-group check-div\\\" *ngIf=\\\"!parentBooking?.Package.RequiresTravel && parentBooking?.Sectors.length === 0 && !isMyGreyhound\\\">\\r\\n <label for=\\\"checklater\\\">\\r\\n <input id=\\\"checklater\\\" type=\\\"checkbox\\\" class=\\\"check-later\\\" [(ngModel)]=\\\"doThisLaterCheck\\\" (change)=\\\"onDoLaterDateChecked(doThisLaterCheck)\\\"\\r\\n />\\r\\n <span class=\\\"travel-later\\\">I'll add my travel later</span>\\r\\n </label>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<gaweb-running-dog-modal></gaweb-running-dog-modal>\\r\\n<div class=\\\"itinerary\\\" id=\\\"itinerary\\\" *ngIf=\\\"parentBooking?.Sectors.length > 0\\\">\\r\\n <strong [hidden]=\\\"showJustSectors || isMyGreyhound\\\">Your coach travel details are as follows:</strong>\\r\\n <gaweb-sector [booking]=\\\"parentBooking\\\" *ngFor=\\\"let sector of parentBooking?.Sectors\\\" [sector]=\\\"sector\\\" [id]=\\\"guidToId(sector.SectorGuid)\\\"\\r\\n [bookingGuid]=\\\"parentBooking.BookingGuid\\\" [productType]=\\\"parentBooking.ProductType\\\" (onSectorDeleted)=\\\"onSectorDeleted($event)\\\"\\r\\n [allSectors]=\\\"parentBooking.Sectors\\\" [showJustSectors]=\\\"showJustSectors\\\" [context]=\\\"context\\\" [showTripDetails]=\\\"showTripDetails\\\" \\r\\n [addons]=\\\"addons\\\"></gaweb-sector>\\r\\n\\r\\n <div class=\\\"row\\\" [hidden]=\\\"showJustSectors || isMyGreyhound\\\">\\r\\n <div class=\\\"col-sm-offset-2 col-sm-8 text-center\\\" style=\\\"margin-top: 10px;\\\">\\r\\n <a href=\\\"javascript://\\\" class=\\\"btn btn-default delete-button\\\" (click)=\\\"deleteAllSectors(true, null, true)\\\">\\r\\n <i *ngIf=\\\"deletingSector\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"!deletingSector\\\">Remove Travel and Start Again</span>\\r\\n </a>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<div *ngIf=\\\"!!openAddons && openAddons.length > 0\\\">\\r\\n <gaweb-open-addons-wrapper [openAddons]=\\\"openAddons\\\" [booking]=\\\"parentBooking\\\"></gaweb-open-addons-wrapper>\\r\\n</div> \\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/itinerary/travel-dates/travel-dates.component.html\n// module id = ./src/app/shared/components/itinerary/travel-dates/travel-dates.component.html\n// module chunks = main","import {\r\n Component,\r\n OnInit,\r\n Inject,\r\n Input,\r\n ViewChild,\r\n Output,\r\n EventEmitter,\r\n SimpleChanges,\r\n OnChanges,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport {\r\n FormGroup,\r\n FormBuilder,\r\n Validators,\r\n AbstractControl,\r\n ValidatorFn\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport {\r\n TravelProductService,\r\n TravelPackage,\r\n FareTypeChangedEvent\r\n} from '../../../services/travel-product.service';\r\nimport {\r\n Booking,\r\n Inclusion,\r\n Package,\r\n Location,\r\n Addon,\r\n AddonOption,\r\n Sector,\r\n Totals,\r\n OptionValueEntityInstance\r\n} from '../../../models/booking.model';\r\nimport {\r\n ActionUpdaterService,\r\n ApiError\r\n} from '../../../services/action-updater.service';\r\nimport {\r\n LocalStorageService,\r\n AvailabilityExtras\r\n} from '../../../services/local-storage.service';\r\nimport { Availability, ProductUrl, Stop } from '../../../models/availability.model';\r\nimport { RunningDogModalComponent } from '../../running-dog-modal/running-dog-modal.component';\r\nimport {\r\n ReferenceDataService,\r\n StopItem\r\n} from '../../../services/reference-data.service';\r\nimport { returnDateValidator } from './return-date.validator';\r\n\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport {\r\n BookingService,\r\n DeleteSectorByGuidOptions\r\n} from 'app/shared/services/booking.service';\r\nimport { Observable } from 'rxjs/Rx';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { ITINERARY_CONTEXT } from '../../../models/enums/context.enum';\r\nimport {\r\n AvailabilityOption,\r\n TravelLeg\r\n} from 'app/shared/models/timetables.model';\r\nimport { TravelService } from 'app/shared/services/travel.service';\r\nimport { DeviceService } from '../../../services/device.service';\r\nimport { Dictionary } from 'app/shared/models/dictonary.model';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { encodeUriFragment } from '@angular/router/src/url_tree';\r\nimport { SectorAddonsService } from '../../../../shared/services/sector-addons.service';\r\n\r\n@Component({\r\n selector: 'gaweb-travel-dates',\r\n templateUrl: './travel-dates.component.html'\r\n})\r\n\r\nexport class TravelDatesComponent implements OnInit {\r\n @ViewChild(RunningDogModalComponent) runningDogModalComponent;\r\n @Output() onParentBookingChanged: EventEmitter<any> = new EventEmitter();\r\n @Output() onDoLaterDateChanged: EventEmitter<any> = new EventEmitter();\r\n @Input() addons: Array<Addon>;\r\n @Output() onTravelDatesAddonsChanged: EventEmitter<Array<AddonOption>> = new EventEmitter();\r\n private _bookings: Array<Booking>;\r\n\r\n @Input()\r\n set bookings(value: Array<Booking>) {\r\n this._bookings = value;\r\n if (value && value.length > 0) {\r\n this.parentBooking = value[0];\r\n if (this.parentBooking.Sectors == null) {\r\n this.parentBooking.Sectors = [];\r\n }\r\n this.travelService.getStops().then(data => {\r\n this.stops = data;\r\n this.buildForm(false);\r\n });\r\n }\r\n }\r\n\r\n get bookings(): Array<Booking> {\r\n return this._bookings;\r\n }\r\n parentBooking: any;\r\n deletingSectors = false;\r\n @Input() showBookTravelSection: boolean;\r\n @Input() showTripDetails = true;\r\n @Input() showShortTravelDatesDescription: boolean;\r\n @Input() showTypeAhead: boolean;\r\n showJustSectors: boolean;\r\n ProductTypeUrl = ProductTypeUrl;\r\n isMyGreyhound: boolean;\r\n private _context: ITINERARY_CONTEXT;\r\n @Input()\r\n set context(c: ITINERARY_CONTEXT) {\r\n this._context = c;\r\n this.isMyGreyhound = c === ITINERARY_CONTEXT.MY_GREYHOUND;\r\n }\r\n get context(): ITINERARY_CONTEXT {\r\n return this._context;\r\n }\r\n private _productUrl: ProductUrl;\r\n @Input()\r\n set productUrl(value: ProductUrl) {\r\n this._productUrl = value;\r\n this.showJustSectors =\r\n this._productUrl.ProductTypeUrl === ProductTypeUrl.expressBooking;\r\n }\r\n get productUrl(): ProductUrl {\r\n return this._productUrl;\r\n }\r\n @Input() passengerCounts: Dictionary<FareTypeChangedEvent>;\r\n @Output()\r\n showBookTravelSectionChange: EventEmitter<boolean> = new EventEmitter<\r\n boolean\r\n >();\r\n travelForm: FormGroup;\r\n minDate: Date;\r\n productTypeName: string;\r\n public config = {\r\n animated: true,\r\n keyboard: true,\r\n backdrop: false,\r\n ignoreBackdropClick: true\r\n };\r\n addTravelDisabled: boolean;\r\n doThisLaterCheck: boolean;\r\n removeTravel: boolean;\r\n\r\n destinations: Array<any>;\r\n origins: Array<any>;\r\n\r\n stops: Array<StopItem>;\r\n alertsAvailability: Array<ApiError>;\r\n refreshSectorAddons: boolean;\r\n\r\n @Input() openAddons: Array<Addon>;\r\n\r\n addonsToPurchase: Array<Addon> = [];\r\n loadingCartTotal: boolean;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private localStorageService: LocalStorageService,\r\n private travelService: TravelService,\r\n private router: Router,\r\n public travelPackageService: TravelProductService,\r\n private referenceDataService: ReferenceDataService,\r\n private activatedRoute: ActivatedRoute,\r\n private bookingService: BookingService,\r\n private sectorAddonsService: SectorAddonsService,\r\n private deviceService: DeviceService\r\n ) {\r\n this.addTravelDisabled = false;\r\n }\r\n\r\n ngOnInit() {\r\n const that = this;\r\n this.travelForm = this.fb.group(\r\n {\r\n fromStop: [null, Validators.required],\r\n toStop: [null, Validators.required],\r\n isReturn: [false, Validators.required],\r\n departureDate: [this.minDate, Validators.required],\r\n returnDate: this.minDate\r\n },\r\n { validator: returnDateValidator }\r\n );\r\n this.activatedRoute.queryParams.subscribe((params: any) => {\r\n this.removeTravel = params.removeTravel;\r\n if (params.addTravel === 'true' && this.parentBooking.ShowAddTravelBtn === true) {\r\n this.setBookTravelSection(true);\r\n }\r\n // Clear out used params\r\n const cleanUrl = this.router.url.replace(\r\n new RegExp('.removeTravel=' + params.removeTravel),\r\n ''\r\n );\r\n that.router.navigateByUrl(cleanUrl);\r\n that.router.navigate([], {queryParams: {addTravel: null}, queryParamsHandling: 'merge'});\r\n });\r\n this.minDate = moment()\r\n .startOf('day')\r\n .toDate();\r\n\r\n this.buildForm(true);\r\n this.localStorageService.removePackageTravelOptions();\r\n this.parentBooking.Sectors.forEach(sector => {\r\n sector.WifiSectors = [];\r\n if (sector.HasWifi === true) {\r\n sector.WifiSectors.push(\r\n sector['ServiceCompany'] + sector['ServiceNumber']\r\n );\r\n }\r\n });\r\n this.sectorAddonsService.refreshSectorAddons.subscribe(refresh => this.refreshSectorAddons = refresh);\r\n this.sectorAddonsService.addonCart.subscribe(addons => this.addonsToPurchase = addons);\r\n this.sectorAddonsService.loadingCartTotal.subscribe(lct => this.loadingCartTotal = lct);\r\n this.bookingService.bookings.subscribe(bookings => this.bookings = bookings);\r\n }\r\n\r\n guidToId(guid: string): string {\r\n return guid.replace(/-/g, '');\r\n }\r\n\r\n setBookTravelSection(bool: boolean) {\r\n // bool is always true\r\n this.showBookTravelSection = bool;\r\n this.showBookTravelSectionChange.emit(this.showBookTravelSection);\r\n }\r\n\r\n buildForm(buildEmptyForm: boolean) {\r\n this.travelService.getStops().then(data => {\r\n this.stops = data;\r\n if (buildEmptyForm && !this.travelForm) {\r\n this.travelForm = this.fb.group(\r\n {\r\n fromStop: [null, Validators.required],\r\n toStop: [null, Validators.required],\r\n isReturn: [false, Validators.required],\r\n departureDate: [this.minDate, Validators.required],\r\n returnDate: this.minDate\r\n },\r\n { validator: returnDateValidator }\r\n );\r\n return;\r\n }\r\n const packageTravelOptions = this.localStorageService.getPackageTravelOptions();\r\n let fromStopCode: string = null,\r\n toStopCode: string = null;\r\n if (!!packageTravelOptions && !!this.parentBooking) {\r\n fromStopCode = packageTravelOptions.from;\r\n toStopCode = this.parentBooking.Package.DestinationLocationCode;\r\n if (toStopCode == null) {\r\n toStopCode = packageTravelOptions.to;\r\n }\r\n }\r\n if (\r\n this.parentBooking.Package != null &&\r\n this.parentBooking.Package.Locations != null &&\r\n this.parentBooking.Package.Locations.length > 0\r\n ) {\r\n this.destinations = this.parentBooking.Package.Locations.filter(\r\n x => x.IsDestination\r\n );\r\n this.origins = this.parentBooking.Package.Locations.filter(\r\n x => x.IsDeparture\r\n );\r\n }\r\n if (\r\n !!packageTravelOptions &&\r\n !!this.travelForm &&\r\n !!fromStopCode &&\r\n !!toStopCode\r\n ) {\r\n this.travelForm.setValue({\r\n fromStop: this.stops.find(x => x.Code === fromStopCode),\r\n toStop: this.stops.find(x => x.Code === toStopCode),\r\n isReturn: packageTravelOptions.isReturn,\r\n departureDate: packageTravelOptions.departureDate,\r\n returnDate: packageTravelOptions.returnDate\r\n });\r\n } else if (\r\n !!packageTravelOptions &&\r\n !this.travelForm &&\r\n !!fromStopCode &&\r\n !!toStopCode\r\n ) {\r\n this.travelForm = this.fb.group(\r\n {\r\n fromStop: [\r\n this.stops.find(x => x.Code === fromStopCode),\r\n Validators.required\r\n ],\r\n toStop: [\r\n this.stops.find(x => x.Code === toStopCode),\r\n Validators.required\r\n ],\r\n isReturn: [\r\n packageTravelOptions.isReturn,\r\n Validators.required\r\n ],\r\n departureDate: [\r\n packageTravelOptions.departureDate,\r\n Validators.required\r\n ],\r\n returnDate: packageTravelOptions.returnDate\r\n },\r\n { validator: returnDateValidator }\r\n );\r\n } else if (\r\n !!this.parentBooking &&\r\n !!this.travelForm &&\r\n !!this.productUrl.ProductTypeUrl &&\r\n this.productUrl.ProductTypeUrl !==\r\n ProductTypeUrl.expressBooking &&\r\n !this.showTypeAhead\r\n ) {\r\n if (this.parentBooking.length) {\r\n this.parentBooking = this.parentBooking[0];\r\n }\r\n const mainObj = Booking.getMainObject(\r\n this.parentBooking,\r\n this.productUrl.ProductTypeUrl,\r\n true\r\n );\r\n\r\n fromStopCode = mainObj.PrimaryLocationCode;\r\n toStopCode = mainObj.DestinationLocationCode;\r\n const isReturn = !mainObj.OneWayTravel;\r\n const departureDate = mainObj.SuggestedDepDate;\r\n const returnDate = mainObj.SuggestedRetDate;\r\n\r\n this.travelForm.patchValue({\r\n fromStop: this.stops.find(x => x.Code === fromStopCode),\r\n toStop: this.stops.find(x => x.Code === toStopCode),\r\n isReturn: isReturn,\r\n departureDate: departureDate,\r\n returnDate: returnDate\r\n });\r\n } else if (!this.travelForm) {\r\n this.travelForm = this.fb.group(\r\n {\r\n fromStop: [null, Validators.required],\r\n toStop: [null, Validators.required],\r\n isReturn: [false, Validators.required],\r\n departureDate: [this.minDate, Validators.required],\r\n returnDate: this.minDate\r\n },\r\n { validator: returnDateValidator }\r\n );\r\n }\r\n\r\n if (this.removeTravel) {\r\n this.deleteAllSectors(true, null, false);\r\n this.removeTravel = false;\r\n }\r\n\r\n if (\r\n this.bookings.length > 0 &&\r\n this.parentBooking.Sectors.length > 0\r\n ) {\r\n this.scrollToSection('gaweb-travel-dates');\r\n }\r\n });\r\n }\r\n\r\n private scrollToSection(selector: string) {\r\n if (!this.deviceService.IsMobile()) {\r\n return;\r\n }\r\n\r\n if (jQuery(selector).length > 0) {\r\n jQuery('html, body').animate(\r\n {\r\n scrollTop:\r\n jQuery(selector).position().top +\r\n 0 +\r\n parseInt(\r\n jQuery('.navbar')\r\n .css('height')\r\n .replace(/\\D/g, ''),\r\n 10\r\n )\r\n },\r\n 500,\r\n 'linear'\r\n );\r\n } else {\r\n console.log(\r\n `Couldn't find any element matching selector ` +\r\n `selector` +\r\n ` to scroll to.`\r\n );\r\n }\r\n }\r\n\r\n private getMatchingStopItem(codeOrLocation: string | Location | StopItem): StopItem {\r\n if (typeof codeOrLocation !== 'object') {\r\n const code = codeOrLocation;\r\n codeOrLocation = new Location();\r\n codeOrLocation.Code = code;\r\n }\r\n\r\n if (codeOrLocation instanceof StopItem) {\r\n return codeOrLocation;\r\n }\r\n\r\n if (this.parentBooking.Pass != null) {\r\n if (this.parentBooking.Pass.LimitedStops === true) {\r\n let location = null;\r\n if (codeOrLocation instanceof Location) {\r\n location = this.parentBooking.Pass.Locations.find(\r\n (l: Location) =>\r\n l.Code === (codeOrLocation as Location).Code\r\n );\r\n } else {\r\n location = this.parentBooking.Pass.Locations.find(\r\n (l: Location) =>\r\n l.Code === codeOrLocation\r\n );\r\n }\r\n\r\n const stopItem = new StopItem();\r\n stopItem.Code = location.Code;\r\n stopItem.Description = location.Description;\r\n return stopItem;\r\n } else {\r\n let result = null;\r\n if (codeOrLocation instanceof Location) {\r\n result = this.stops.find(x => x.Code === (codeOrLocation as Location).Code);\r\n } else {\r\n result = this.stops.find(x => x.Code === codeOrLocation);\r\n }\r\n\r\n if (result == null) {\r\n result = new StopItem();\r\n result.Code = codeOrLocation.Code;\r\n result.Description = codeOrLocation.Description;\r\n }\r\n\r\n return result;\r\n }\r\n } else {\r\n let result = null;\r\n if (codeOrLocation instanceof Location) {\r\n result = this.stops.find(x => x.Code === (codeOrLocation as Location).Code);\r\n } else {\r\n result = this.stops.find(x => x.Code === codeOrLocation);\r\n }\r\n\r\n if (result == null) {\r\n result = new StopItem();\r\n result.Code = codeOrLocation.Code;\r\n result.Description = codeOrLocation.Description;\r\n }\r\n\r\n return result;\r\n }\r\n }\r\n\r\n private getDestinationStopItem() {\r\n const stopItem = new StopItem();\r\n stopItem.Code = this.parentBooking.Package.DestinationLocationCode;\r\n stopItem.Description = this.parentBooking.Package.DestinationLocationName;\r\n\r\n return stopItem;\r\n }\r\n\r\n private clearCartItems(booking: Booking){\r\n if(booking.ProductType != \"BP\"){\r\n this.sectorAddonsService.updateAddonsCart(booking, []);\r\n this.sectorAddonsService.setLoadingCartTotal(false); \r\n }\r\n }\r\n\r\n getAvailability() {\r\n this.clearCartItems(this.parentBooking);\r\n const options = this.getAvailabilityOptions();\r\n const fromCode = this.travelForm.get('fromStop').value;\r\n const toCode = this.travelForm.get('toStop').value;\r\n const from = this.getMatchingStopItem(fromCode);\r\n const to = this.getMatchingStopItem(toCode);\r\n\r\n options.TravelLegs[0].origin = from.Code;\r\n options.TravelLegs[0].destination = to.Code;\r\n\r\n if (options.TravelLegs.length > 1) {\r\n options.TravelLegs[1].origin = to.Code;\r\n options.TravelLegs[1].destination = from.Code;\r\n }\r\n\r\n this.localStorageService.currentAvailabilityOptions = options;\r\n this.localStorageService.savePackageTravelOptions(options, to, from);\r\n\r\n this.runningDogModalComponent.showModal();\r\n\r\n this.travelService\r\n .getAvailability(options)\r\n .subscribe((availability: Array<Availability>) => {\r\n this.localStorageService.currentAvailability = availability;\r\n this.localStorageService.saveTravelAvailability(availability);\r\n this.runningDogModalComponent.hideModal();\r\n\r\n const packageRef = !!this.travelPackageService.currentProduct\r\n ? this.travelPackageService.currentProduct.packageReference\r\n : this.parentBooking.Package.PackageReference;\r\n const availabilityExtras = new AvailabilityExtras();\r\n availabilityExtras.bookingGuid = this.parentBooking.BookingGuid;\r\n availabilityExtras.productReference = packageRef;\r\n availabilityExtras.isReturn = !!this.travelForm.get('isReturn')\r\n .value;\r\n availabilityExtras.context = this.context;\r\n this.localStorageService.saveAvailabilityExtras(\r\n availabilityExtras\r\n );\r\n\r\n var productRef = window.location.pathname.split('/')[1];\r\n const categoryReference = this.activatedRoute.snapshot.params['category-reference'];\r\n const productReference = this.activatedRoute.snapshot.params['product-reference'];\r\n const bookingGuid = availabilityExtras.bookingGuid;\r\n console.log('productRef b', window.location.pathname);\r\n console.log('this.productUrl', this.productUrl);\r\n if (!!this.productUrl.isManageBooking) {\r\n if (\r\n this.productUrl.ProductTypeUrl ===\r\n ProductTypeUrl.package\r\n ) {\r\n console.log('mb flag b');\r\n this.router.navigate(\r\n [\r\n // `${this.productUrl.ProductAvailability}/${packageRef}/availability`\r\n // `${productRef}/${categoryReference}/${productReference}/book-now/${bookingGuid}/availability`\r\n \r\n 'book-a-ticket/travel-passes/availability'\r\n ],\r\n {\r\n queryParams: {\r\n context: ITINERARY_CONTEXT.MY_GREYHOUND\r\n }\r\n }\r\n );\r\n } else {\r\n console.log('mb flag c');\r\n // travel pass\r\n this.router.navigate(\r\n [\r\n // `${this.productUrl.ProductAvailability}/availability`\r\n //`/booking-management/details/${bookingGuid}/availability`\r\n 'book-a-ticket/travel-passes/availability'\r\n // `/${productRef}/${categoryReference}/${productReference}/book-now/${bookingGuid}/availability`\r\n ],\r\n {\r\n queryParams: {\r\n context: ITINERARY_CONTEXT.MY_GREYHOUND\r\n }\r\n }\r\n );\r\n }\r\n } else {\r\n console.log('mb flag a');\r\n this.router.navigate([\r\n //`${this.productUrl.ProductAvailability}/${packageRef}/availability`\r\n `/${productRef}/${categoryReference}/${productReference}/book-now/${bookingGuid}/availability`\r\n ]);\r\n }\r\n }, this.onErrorAvailability);\r\n }\r\n\r\n private getAvailabilityOptions(): AvailabilityOption {\r\n const _setFareBasis = (_options: AvailabilityOption): void => {\r\n const passengerCountsKeys = this.passengerCounts\r\n ? Object.keys(this.passengerCounts)\r\n : [];\r\n if (passengerCountsKeys.length) {\r\n let i = 0;\r\n for (const fareType of passengerCountsKeys) {\r\n i++;\r\n const fareTypeChangedEvent: FareTypeChangedEvent = this\r\n .passengerCounts[fareType];\r\n const { count } = fareTypeChangedEvent;\r\n const farebasisCode =\r\n fareTypeChangedEvent.fareType.farebasis.FarebasisCode;\r\n if (i === 1) {\r\n options.fareBasis1Code = farebasisCode;\r\n options.fareBasis1Count = count;\r\n } else if (i === 2) {\r\n options.fareBasis2Code = farebasisCode;\r\n options.fareBasis2Count = count;\r\n } else if (i === 3) {\r\n options.fareBasis3Code = farebasisCode;\r\n options.fareBasis3Count = count;\r\n }\r\n }\r\n } else {\r\n // fallback\r\n options.fareBasis1Code = !!this.parentBooking.FareBasis.length\r\n ? this.parentBooking.FareBasis[0].FarebasisCode\r\n : this.parentBooking.Package.FareTypes[0].Farebasis\r\n .FarebasisCode;\r\n options.fareBasis1Count = this.bookings.length;\r\n }\r\n };\r\n const fares = [],\r\n options = new AvailabilityOption();\r\n\r\n const fromCode = this.travelForm.get('fromStop').value,\r\n toCode = this.travelForm.get('toStop').value,\r\n isReturn = this.travelForm.get('isReturn').value,\r\n departureDate = moment(\r\n this.travelForm.get('departureDate').value\r\n ).format('YYYY-MM-DD'),\r\n returnDate = moment(this.travelForm.get('returnDate').value).format(\r\n 'YYYY-MM-DD'\r\n );\r\n _setFareBasis(options);\r\n\r\n options.isReturn = isReturn;\r\n options.TravelLegs.push(\r\n new TravelLeg(fromCode, toCode, departureDate, null)\r\n );\r\n\r\n // RETURN TRIP\r\n if (isReturn) {\r\n options.TravelLegs.push(\r\n new TravelLeg(toCode, fromCode, returnDate, null)\r\n );\r\n }\r\n\r\n return options;\r\n }\r\n\r\n onError = error => {\r\n this.runningDogModalComponent.hideModal();\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n \r\n onErrorAvailability = (error: ApiError) => {\r\n this.runningDogModalComponent.hideModal();\r\n this.alertsAvailability = [error];\r\n };\r\n\r\n isFieldValid(field: string): boolean {\r\n return (\r\n !this.travelForm.get(field).valid &&\r\n this.travelForm.get(field).touched\r\n );\r\n }\r\n\r\n displayFieldCss(field: string) {\r\n return this.isFieldValid(field) ? '' : 'has-error';\r\n }\r\n\r\n onSectorsDeleted(booking: Booking, removeTravelAndStartOver: boolean) {\r\n if (this.parentBooking.Sectors.length > 0) {\r\n this.actionUpdaterService.announceSuccess(\r\n 'Trips have been successfully removed.'\r\n );\r\n }\r\n if (this.deviceService.IsMobile()) {\r\n jQuery('html, body').animate(\r\n {\r\n scrollTop:\r\n jQuery('.itinerary').position().top +\r\n 20 +\r\n parseInt(\r\n jQuery('.navbar')\r\n .css('height')\r\n .replace(/\\D/g, ''),\r\n 10\r\n )\r\n },\r\n 500\r\n );\r\n }\r\n\r\n this.bookings = [booking];\r\n const sectorsDeleted = true;\r\n this.onParentBookingChanged.emit({\r\n bookings: this.bookings,\r\n sectorsDeleted,\r\n removeTravelAndStartOver\r\n });\r\n }\r\n onSectorDeleted(booking: Booking) {\r\n this.actionUpdaterService.announceSuccess(\r\n 'Trip has been successfully removed.'\r\n );\r\n this.bookings = [booking];\r\n const sectorsDeleted = true;\r\n this.bookingService.setBooking(booking, true);\r\n }\r\n testDeleteSector() {\r\n console.log('Test Delete Sector');\r\n }\r\n onDoLaterDateChecked(checkValue: boolean) {\r\n if (checkValue) {\r\n this.showBookTravelSection = false;\r\n this.addTravelDisabled = true;\r\n } else {\r\n this.addTravelDisabled = false;\r\n }\r\n this.onDoLaterDateChanged.emit({\r\n checkValue,\r\n sectorsAdded: this.parentBooking.Sectors.length > 0\r\n });\r\n }\r\n\r\n isCorrect(): boolean {\r\n return this.doThisLaterCheck || this.parentBooking.Sectors.length > 0;\r\n }\r\n\r\n async deleteAllSectors(\r\n showBookTravelSectionV: boolean,\r\n bookings: Array<Booking> | null,\r\n removeTravelAndStartOver: boolean\r\n ) {\r\n if (!this.parentBooking || !this.parentBooking.Sectors.length) {\r\n return;\r\n }\r\n this.deletingSectors = true;\r\n const observables: Observable<any>[] = [];\r\n if (!!bookings) {\r\n this.bookings = bookings;\r\n }\r\n let lastBooking: Booking = this.parentBooking;\r\n for (const sector of this.parentBooking.Sectors) {\r\n const opt = new DeleteSectorByGuidOptions(\r\n this.parentBooking.BookingGuid,\r\n sector.SectorGuid\r\n );\r\n const b = await this.bookingService\r\n .deleteSectorByGuid(opt)\r\n .toPromise();\r\n lastBooking = b;\r\n }\r\n this.deletingSectors = false;\r\n this.onSectorsDeleted(lastBooking, removeTravelAndStartOver);\r\n if (showBookTravelSectionV && this.showTypeAhead) {\r\n this.setBookTravelSection(true);\r\n }\r\n }\r\n\r\n onDeleteAllSectorsError = error => {\r\n this.deletingSectors = false;\r\n };\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/itinerary/travel-dates/travel-dates.component.ts","import { Input, Component } from '@angular/core';\r\nimport { EventBusService } from 'app/shared/services/event-bus.service';\r\nimport { AppEventType } from 'app/shared/models/app-events.model';\r\n\r\n@Component({\r\n selector: 'gaweb-page-transition',\r\n template: `\r\n <div class=\"container\" *ngIf=\"!loaded\">\r\n <div class=\"loader\" [ngClass]=\"{'loader--top':position === 'top'}\">\r\n <i class=\"fa fa-spinner fa-pulse fa-5x \"></i>\r\n </div>\r\n </div>\r\n `\r\n})\r\nexport class PageTransitionComponent {\r\n @Input() position: string;\r\n loaded: boolean;\r\n closeEventListener: any;\r\n\r\n constructor(private eventBusService: EventBusService) {\r\n this.loaded = false;\r\n const onLoaded = (event) => {\r\n this.loaded = true;\r\n };\r\n this.closeEventListener = this.eventBusService.on$(AppEventType.PageLoadedEvent)\r\n .subscribe(onLoaded);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/page-transition/page-transition.component.ts","module.exports = \"<div style=\\\"display: table\\\" [ngClass]=\\\"{'android-phone': isAndroid}\\\">\\r\\n <input pickadate2 class=\\\"form-control\\\" [placeholder]=\\\"placeholder\\\" [minDate]=\\\"minDate\\\" [value]=\\\"value\\\" [operatingDays]=\\\"operatingDays\\\"\\r\\n (valueChange)=\\\"valueChange($event)\\\" [disabled]=\\\"isDisabled\\\" [container]=\\\"container\\\" />\\r\\n <span class=\\\"input-group-btn\\\">\\r\\n <button aria-label=\\\"Calendar date pick\\\" class=\\\"btn btn-default calendar-button\\\" type=\\\"button\\\" [disabled]=\\\"isDisabled\\\" (click)=\\\"showCalendar($event)\\\">\\r\\n <i class=\\\"fa fa-calendar\\\"></i>\\r\\n </button>\\r\\n </span>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/pick-a-date/pick-a-date.component.html\n// module id = ./src/app/shared/components/pick-a-date/pick-a-date.component.html\n// module chunks = main","import { DeviceService } from './../../services/device.service';\r\nimport { Component, OnInit, Input, forwardRef, ViewChild, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { PickadateDirective } from './pickadate.directive';\r\n\r\n@Component({\r\n selector: 'gaweb-pick-a-date',\r\n templateUrl: './pick-a-date.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PickADateComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class PickADateComponent implements OnInit, ControlValueAccessor, OnChanges {\r\n @ViewChild(PickadateDirective) pickadateDirective; // First\r\n\r\n @Output() onValueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n private _value: string;\r\n get value() {\r\n return this._value;\r\n }\r\n @Input()\r\n set value(val: string) {\r\n this._value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n\r\n @Input() placeholder: string;\r\n @Input() minDate: Date;\r\n @Input() isDisabled: boolean;\r\n @Input() container: string;\r\n\r\n @Input() operatingDays: Array<number>;\r\n isAndroid: boolean;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n constructor(private deviceService: DeviceService) { }\r\n\r\n ngOnInit() {\r\n this.isAndroid = this.deviceService.isAndroidPhone();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!!changes['isDisabled'] && !!changes['isDisabled'].currentValue) {\r\n if (!!changes['isDisabled'].isFirstChange()) {\r\n return;\r\n }\r\n this.isDisabled = changes['isDisabled'].currentValue;\r\n if (this.isDisabled) {\r\n this._value = null;\r\n }\r\n\r\n }\r\n }\r\n valueChange(date) {\r\n this.value = date;\r\n this.onValueChange.emit(date);\r\n }\r\n\r\n showCalendar($event) {\r\n $event.stopPropagation();\r\n this.pickadateDirective.openPickaDate();\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value) {\r\n if (value !== null && value !== undefined) {\r\n this.value = value;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/pick-a-date/pick-a-date.component.ts","import { ElementRef, Directive, Input, Output, EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { DeviceService } from 'app/shared/services/device.service';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\ndeclare const $: any;\r\n@Directive({\r\n selector: '[pickadate2]'\r\n})\r\nexport class PickadateDirective implements OnInit, OnDestroy, OnChanges {\r\n @Output() valueChange = new EventEmitter();\r\n\r\n @Input() minDate: Date;\r\n @Input() operatingDays: Array<number | boolean>;\r\n @Input() value: Date;\r\n @Input() format = 'ddd, d mmm yyyy';\r\n @Input() isDisabled: boolean;\r\n @Input() container: string;\r\n\r\n private $input: any;\r\n private _picker: Pickadate;\r\n private element: ElementRef;\r\n\r\n constructor(private _element: ElementRef,\r\n private deviceService: DeviceService) {\r\n this.element = _element;\r\n }\r\n\r\n ngOnInit() {\r\n const daysToEnable = _.clone(this.operatingDays);\r\n if (!!daysToEnable) {\r\n daysToEnable.unshift(true);\r\n }\r\n const opts = {\r\n format: this.format,\r\n min: this.minDate,\r\n selectYears: true,\r\n selectMonths: true,\r\n disable: daysToEnable,\r\n container: this.container\r\n };\r\n this.$input = $(this._element.nativeElement).pickadate(opts);\r\n this._picker = this.$input.pickadate('picker')\r\n .on('open', this.onPickerOpen);\r\n this._picker = this.$input.pickadate('picker')\r\n .on('close', this.onPickerClose);\r\n\r\n this.setValue();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._picker.off('close').stop();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!!changes['isDisabled'] && !changes['isDisabled'].isFirstChange()) {\r\n if (changes['isDisabled'].currentValue) {\r\n this.value = null;\r\n this._picker.set('clear');\r\n this.setValue();\r\n this.$input.attr('disabled', true);\r\n } else {\r\n this.$input.attr('disabled', false);\r\n }\r\n\r\n }\r\n if (!!changes['value'] && !this.isDisabled) {\r\n if (!!changes['value'].isFirstChange()) {\r\n return;\r\n }\r\n this.value = changes['value'].currentValue;\r\n this.setValue();\r\n }\r\n }\r\n\r\n private setValue() {\r\n let d = typeof this.value === 'string' && this.value === GxConstants.MIN_DATE ? null : this.value;\r\n d = !!d ? moment(this.value).toDate() : null;\r\n this._picker.set({ 'select': d });\r\n\r\n }\r\n\r\n private onPickerOpen = () => {\r\n if (!this.deviceService.IsMobile()) {\r\n $('.picker__holder').on('click', (event) => {\r\n if ($(event.target).hasClass('picker__holder')) {\r\n this.onPickerClose();\r\n }\r\n });\r\n const inputGroup = $(this.element.nativeElement).parent().parent().parent();\r\n inputGroup.addClass('input--active');\r\n $('header').addClass('modal-active');\r\n inputGroup.append('<div class=\\'express-overlay\\'></div>');\r\n /*\r\n $(this.element.nativeElement).parent().find('.picker__frame').css(\r\n {\r\n top: inputGroup.find('.picker').offset().top - $(window).scrollTop(),\r\n left: inputGroup.find('.picker').offset().left,\r\n bottom: 'auto',\r\n right: 'auto'\r\n });\r\n\r\n this.moveIntoViewport(inputGroup.find('.picker').offset().left, $(this.element.nativeElement).parent().find('.picker__frame'));\r\n */\r\n }\r\n }\r\n\r\n private onPickerClose = () => {\r\n if (!this.deviceService.IsMobile()) {\r\n $('.express-overlay').remove();\r\n $('header').removeClass('modal-active');\r\n $(this.element.nativeElement).parent().parent().parent().removeClass('input--active');\r\n }\r\n const str = this._picker.get('select', 'yyyy-mm-dd');\r\n this.valueChange.emit(str);\r\n this._picker.close();\r\n }\r\n\r\n private moveIntoViewport(leftOffset: number, element: any) {\r\n const elementLeft = leftOffset;\r\n const elementRight = elementLeft + $(element).outerWidth();\r\n const viewportLeft = 0;\r\n const viewportRight = viewportLeft + $(window).width();\r\n\r\n if (elementRight > viewportRight) {\r\n element.css({\r\n left: leftOffset - (elementRight - viewportRight)\r\n });\r\n }\r\n }\r\n\r\n openPickaDate() {\r\n this._picker.open();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/pick-a-date/pickadate.directive.ts","module.exports = \"<ng-template #customItemTemplate let-model=\\\"result\\\" let-t=\\\"term\\\">\\r\\n <span class=\\\"title\\\" [innerHTML]=\\\"boldTerm(model.Description, t)\\\"></span>\\r\\n <small>\\r\\n <span [innerHTML]=\\\"boldTerm(model.Address, t)\\\" style=\\\"white-space: initial;\\\"></span>\\r\\n </small>\\r\\n</ng-template>\\r\\n\\r\\n<div class=\\\"row\\\">\\r\\n <div>\\r\\n <div class=\\\"input-group\\\">\\r\\n <div style=\\\"position: relative;\\\">\\r\\n <input #myInput type=\\\"search\\\" [(ngModel)]=\\\"asyncSelected\\\" [ngbTypeahead]=\\\"getStopsAsObservable\\\" (selectItem)=\\\"onTypeaheadSelected($event)\\\"\\r\\n [resultTemplate]=\\\"customItemTemplate\\\" [inputFormatter]=\\\"typeaheadFormatter\\\" [placeholder]=\\\"placeholder\\\" (focus)=\\\"onFocus()\\\"\\r\\n class=\\\"form-control\\\" (keyup)=\\\"onValueChange()\\\">\\r\\n <div class=\\\"clear-search\\\" (click)=\\\"clearSearch()\\\" *ngIf=\\\"!!asyncSelected\\\">\\r\\n <i class=\\\"fa fa-times\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n <span class=\\\"input-group-btn\\\">\\r\\n <button aria-label=\\\"Find nearest stop\\\" class=\\\"btn btn-default pick-a-stop__button\\\" type=\\\"button\\\" tabindex=\\\"-1\\\" (click)=\\\"onNearStopButtonClick()\\\" [disabled]=\\\"!locationEnabled\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\"></i>\\r\\n </button>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n\\r\\n<div bsModal #childModal=\\\"bs-modal\\\" [config]=\\\"config\\\" class=\\\"modal fade\\\" role=\\\"dialog\\\" tabindex=\\\"-1\\\">\\r\\n <div class=\\\"modal-backdrop\\\" (click)=\\\"hideModal()\\\"></div>\\r\\n <div class=\\\"modal-dialog\\\">\\r\\n <div class=\\\"modal-content\\\">\\r\\n <div class=\\\"modal-header\\\">\\r\\n <h4 class=\\\"modal-title pull-left\\\">nearest stops</h4>\\r\\n <button aria-label=\\\"Close 'nearest stop' window\\\" type=\\\"button\\\" class=\\\"close pull-right\\\" aria-label=\\\"Close\\\" (click)=\\\"hideModal()\\\">\\r\\n <span aria-hidden=\\\"true\\\">×</span>\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <table class=\\\"table\\\">\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let s of nearestStops\\\" (click)=\\\"onNearStopSelected(s)\\\" class=\\\"modal-clickable-row\\\">\\r\\n <td>\\r\\n <b>{{s.Description}}</b>\\r\\n <br />\\r\\n <small>{{s.Address}}</small>\\r\\n <small class=\\\"xs-distance\\\">{{s.distance | number:'1.0-2'}}km away</small>\\r\\n </td>\\r\\n <td class=\\\"sm-distance\\\">\\r\\n {{s.distance | number:'1.0-2'}}km away\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n <div class=\\\"text-right\\\">\\r\\n <button class=\\\"btn btn-default\\\" type=\\\"button\\\" (click)=\\\"hideModal()\\\">Close</button>\\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/shared/components/pick-stop/pick-stop.component.html\n// module id = ./src/app/shared/components/pick-stop/pick-stop.component.html\n// module chunks = main","module.exports = \"gaweb-pick-stop .title,\\ngaweb-pick-stop small {\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n overflow: hidden;\\n display: block;\\n}\\ngaweb-pick-stop .modal-clickable-row td > small {\\n max-width: 250px;\\n}\\ngaweb-pick-stop .modal-clickable-row .xs-distance {\\n float: right;\\n}\\n@media (min-width: 386px) {\\n gaweb-pick-stop .modal-clickable-row .xs-distance {\\n display: none;\\n }\\n}\\n@media (max-width: 385px) {\\n gaweb-pick-stop .modal-clickable-row .sm-distance {\\n display: none;\\n }\\n}\\ngaweb-pick-stop small {\\n font-size: 75%;\\n}\\ngaweb-pick-stop .pick-a-stop__button {\\n height: 37px;\\n}\\ngaweb-pick-stop .clear-search {\\n position: absolute;\\n width: 37px;\\n height: 37px;\\n right: 1px;\\n top: 1px;\\n z-index: 3;\\n color: #223250;\\n text-align: center;\\n}\\ngaweb-pick-stop .clear-search i {\\n margin: 12px;\\n}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/pick-stop/pick-stop.component.less\n// module id = ./src/app/shared/components/pick-stop/pick-stop.component.less\n// module chunks = main","import {\r\n Component,\r\n OnInit,\r\n Injector,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n forwardRef,\r\n ViewChild,\r\n OnDestroy,\r\n ElementRef\r\n} from \"@angular/core\";\r\nimport {\r\n ReferenceDataService,\r\n StopItem\r\n} from \"../../services/reference-data.service\";\r\nimport { Subscription } from \"rxjs/Subscription\";\r\nimport {\r\n FormGroup,\r\n FormBuilder,\r\n Validators,\r\n AbstractControl,\r\n ValidatorFn,\r\n FormControl,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR\r\n} from \"@angular/forms\";\r\nimport * as _ from \"lodash\";\r\nimport {\r\n ActionUpdaterService,\r\n ApiError\r\n} from \"../../services/action-updater.service\";\r\nimport { Observable } from \"rxjs/Observable\";\r\nimport \"rxjs/add/observable/of\";\r\nimport { ModalDirective } from \"ngx-bootstrap/modal\";\r\nimport { modalClass } from \"app/home/booking-widget-container/booking-widget-container.component\";\r\nimport { letProto } from \"rxjs/operator/let\";\r\nimport { EventBusService } from \"../../services/event-bus.service\";\r\nimport { ModalPopupMainPageEventWrapper } from \"../../models/app-events.model\";\r\nimport { ModalPopupMainPageEvent } from \"../../models/app-events-types.model\";\r\nimport { TravelService } from \"../../services/travel.service\";\r\n\r\n@Component({\r\n selector: 'gaweb-pick-stop',\r\n templateUrl: `./pick-stop.component.html`,\r\n styleUrls: ['./pick-stop.component.less'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PickStopComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class PickStopComponent\r\n implements OnInit, ControlValueAccessor, OnDestroy {\r\n @ViewChild('myInput') inputEl: ElementRef;\r\n @Input()\r\n set stops(ss: Array<StopItem>) {\r\n this.referenceDataService.stops = ss;\r\n }\r\n\r\n get stops() {\r\n return this.referenceDataService.stops;\r\n }\r\n @Input() placeholder: string;\r\n\r\n @Output() onStopSelected: EventEmitter<any> = new EventEmitter();\r\n @Output()\r\n onValueChanged: EventEmitter<PickStopChangeEvent> = new EventEmitter();\r\n @Output() onFocused: EventEmitter<void> = new EventEmitter();\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n locationEnabled: boolean;\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 nearestStops: Array<StopItem>;\r\n public stopCtrl: FormControl = new FormControl();\r\n public dataSource: Observable<any>;\r\n public asyncSelected: string | StopItem;\r\n public myForm: FormGroup = new FormGroup({\r\n stop: this.stopCtrl\r\n });\r\n private lastResults: StopItem[];\r\n get value() {\r\n return this._value;\r\n }\r\n private _value: StopItem = null;\r\n @Input('value')\r\n set value(val: StopItem) {\r\n this._value = val;\r\n this.asyncSelected = !!val ? val.Description : '';\r\n this.onChange(val);\r\n this.onTouched();\r\n this.onValueChange();\r\n }\r\n onChange: any = () => {};\r\n onTouched: any = () => {};\r\n onFocus: any = () => {\r\n // DO NOT CALL onChange\r\n this.onFocused.emit();\r\n };\r\n constructor(\r\n private actionUpdaterService: ActionUpdaterService,\r\n private eventBusService: EventBusService,\r\n private referenceDataService: ReferenceDataService,\r\n private travelService: TravelService\r\n ) {\r\n this.loadStops();\r\n }\r\n\r\n public boldTerm(text: string, term: string) {\r\n term = term.replace('(', '\\\\(');\r\n term = term.replace(')', '\\\\)');\r\n return text.replace(\r\n new RegExp('(^|)(' + term + ')(|$)', 'ig'),\r\n '$1<b>$2</b>$3'\r\n );\r\n }\r\n\r\n public getStopsAsObservable = (text$: Observable<string>) => {\r\n return text$.map(token => {\r\n const StartsWithMatches: Array<StopItem> = [];\r\n const DescriptionMatches: Array<StopItem> = [];\r\n const CodeMatches: Array<StopItem> = [];\r\n const AddressMatches: Array<StopItem> = [];\r\n this.stops\r\n .filter((stop: StopItem) => {\r\n if (!token) {\r\n return false;\r\n }\r\n\r\n if (\r\n stop.Description.toLowerCase().indexOf(\r\n token.toLowerCase()\r\n ) === 0\r\n ) {\r\n StartsWithMatches.push(stop);\r\n } else if (\r\n stop.Description.toLowerCase().indexOf(\r\n token.toLowerCase()\r\n ) !== -1\r\n ) {\r\n DescriptionMatches.push(stop);\r\n } else if (\r\n stop.Code.toLowerCase().indexOf(token.toLowerCase()) !==\r\n -1\r\n ) {\r\n CodeMatches.push(stop);\r\n } else if (\r\n stop.Address.toLowerCase().indexOf(\r\n token.toLowerCase()\r\n ) !== -1\r\n ) {\r\n AddressMatches.push(stop);\r\n }\r\n\r\n return (\r\n stop.Description.toLowerCase().indexOf(\r\n token.toLowerCase()\r\n ) !== -1 ||\r\n stop.Code.toLowerCase().indexOf(token.toLowerCase()) !==\r\n -1 ||\r\n stop.Address.toLowerCase().indexOf(\r\n token.toLowerCase()\r\n ) !== -1\r\n );\r\n })\r\n .splice(0, 10);\r\n this.lastResults = StartsWithMatches.concat(DescriptionMatches)\r\n .concat(CodeMatches)\r\n .concat(AddressMatches)\r\n .splice(0, 10);\r\n return this.lastResults;\r\n });\r\n };\r\n\r\n public typeaheadFormatter = (result: StopItem | string) => {\r\n if (typeof result === 'object') {\r\n return result.Description;\r\n }\r\n\r\n return result;\r\n };\r\n\r\n ngOnInit() {\r\n this.locationEnabled = true;\r\n this.loadStops();\r\n }\r\n private checkIfLocationEnabled() {\r\n if (!this.stops || this.stops.length === 0) {\r\n this.loadStops();\r\n } else {\r\n if (!!this.stops[0].distance) {\r\n this.locationEnabled = true;\r\n this.showNearestModalStops();\r\n } else {\r\n this.testLocationEnabled();\r\n // this.locationEnabled = false;\r\n }\r\n }\r\n }\r\n private async loadStops() {\r\n await this.travelService.getStops().then((data) => {\r\n try {\r\n data.subscribe((results) => {\r\n this.stops = results;\r\n });\r\n } catch {\r\n this.stops = data;\r\n }\r\n });\r\n }\r\n private testLocationEnabled() {\r\n const onSuccessfulLocationRequest = ({ coords }) => {\r\n if (!!this.stops) {\r\n this.referenceDataService.addDistanceToStops(\r\n this.stops,\r\n coords\r\n );\r\n this.locationEnabled = true;\r\n this.showNearestModalStops();\r\n }\r\n },\r\n onFailedLocationRequest = () => {\r\n this.locationEnabled = false;\r\n };\r\n this.referenceDataService.testLocationEnabled(\r\n onSuccessfulLocationRequest,\r\n onFailedLocationRequest\r\n );\r\n }\r\n onTypeaheadSelected = ($event: any) => {\r\n this.onStopSelected.emit($event.item);\r\n this.value = $event.item;\r\n };\r\n\r\n onNearStopSelected = ($event: StopItem) => {\r\n this.onStopSelected.emit($event);\r\n this.value = $event;\r\n this.hideModal();\r\n };\r\n onValueChange(): void {\r\n let isCorrect = false;\r\n let val: PickStopChangeEvent;\r\n if (this.asyncSelected == null) {\r\n val = {\r\n isCorrect,\r\n value: null\r\n };\r\n this.onValueChanged.emit(val);\r\n return;\r\n }\r\n let asyncSelectedStr: string;\r\n if (!!(<StopItem>this.asyncSelected).Description) {\r\n asyncSelectedStr = (<StopItem>this.asyncSelected).Description;\r\n } else {\r\n asyncSelectedStr = <string>this.asyncSelected;\r\n }\r\n if (!!this.value && asyncSelectedStr === this.value.Description) {\r\n isCorrect = true;\r\n } else {\r\n const v = !!this.lastResults\r\n ? this.lastResults.find(\r\n s => s.Description.toLowerCase() === asyncSelectedStr\r\n )\r\n : null;\r\n if (!!v) {\r\n this.value = v;\r\n isCorrect = true;\r\n }\r\n }\r\n val = {\r\n isCorrect,\r\n value: asyncSelectedStr\r\n };\r\n this.onValueChanged.emit(val);\r\n }\r\n private showNearestModalStops() {\r\n this.nearestStops = _(this.stops)\r\n .sortBy((s: StopItem) => s.distance)\r\n .take(8)\r\n .value();\r\n this.showModal();\r\n }\r\n onNearStopButtonClick() {\r\n this.onFocused.emit();\r\n this.locationEnabled = true;\r\n this.checkIfLocationEnabled();\r\n }\r\n\r\n clearSearch() {\r\n this.value = null;\r\n this.inputEl.nativeElement.focus();\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value) {\r\n if (value) {\r\n this.value = value;\r\n }\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 // $(`.${modalClass}`).css('position', 'inherit'); // enables the modal to overlap\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 // $(`.${modalClass}`).css('position', '');\r\n }\r\n ngOnDestroy(): void {\r\n this.hideModal();\r\n }\r\n}\r\n\r\nexport interface PickStopChangeEvent {\r\n isCorrect: boolean;\r\n value: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/pick-stop/pick-stop.component.ts","import { Component, OnInit, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormGroup, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { PickadateContext } from 'app/shared/models/timetables.model';\r\nimport * as moment from 'moment';\r\n@Component({\r\n selector: 'gaweb-pick-a-time',\r\n template: `\r\n <input type=\"text\"\r\n class=\"form-control\"\r\n [id]=\"name\"\r\n [name]=\"name\"\r\n [placeholder]=\"placeholder\"\r\n (valueChange)=\"valueChange($event)\"\r\n [value]=\"value || ''\"\r\n pickatime/>\r\n `,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PickATimeComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class PickATimeComponent implements OnInit, ControlValueAccessor {\r\n @Input() form: FormGroup;\r\n @Input() placeholder: string;\r\n @Input() name: string;\r\n @Output() onValueChange: EventEmitter<any> = new EventEmitter();\r\n @Input() format = 'h:mm A';\r\n private _value: string;\r\n @Input() set value(v: string) {\r\n this._value = v;\r\n }\r\n get value() {\r\n return this._value;\r\n }\r\n\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n valueChange(date: PickadateContext) {\r\n this.value = moment().set({\r\n 'hour': Math.floor(date.select / 60),\r\n 'minute': date.select % 60\r\n }).format(this.format);\r\n this.onValueChange.emit(date);\r\n }\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.value = value;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/pick-time/pick-a-time.component.ts","import { Directive, OnInit, EventEmitter, Output, ElementRef, Input } from '@angular/core';\r\nimport { PickadateContext } from 'app/shared/models/timetables.model';\r\nimport * as moment from 'moment';\r\ndeclare var $: any;\r\n@Directive({\r\n selector: '[pickatime]'\r\n})\r\nexport class PickatimeDirective implements OnInit {\r\n @Output() valueChange: EventEmitter<PickadateContext> = new EventEmitter();\r\n\r\n\r\n\r\n private $input: any;\r\n private _picker: PickatimeDirective;\r\n private element: ElementRef;\r\n\r\n constructor(private _element: ElementRef) {\r\n this.element = _element;\r\n }\r\n\r\n ngOnInit() {\r\n const opts = {\r\n onSet: this.onSetValue\r\n };\r\n const $input = $(this._element.nativeElement);\r\n $input.pickatime(opts);\r\n }\r\n private onSetValue = (v: PickadateContext) => {\r\n this.valueChange.emit(v);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/pick-time/pickatime.directive.ts","module.exports = \"<div *ngIf=\\\"addonsToPurchase.length > 0\\\" class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <gaweb-booking-total class=\\\"checkout\\\" [totals]=\\\"totals\\\" [loadingCartTotal]=\\\"loadingCartTotal\\\">\\r\\n </gaweb-booking-total>\\r\\n <div class=\\\"row payment-summary\\\">\\r\\n <div class=\\\"col-sm-12\\\">\\r\\n <div class=\\\"form-group col-xs-12 text-center\\\">\\r\\n <div class=\\\"checkbox\\\">\\r\\n <span [ngClass]=\\\"{ 'checked': acceptedTC }\\\"\\r\\n (click)=\\\"acceptedTC = !acceptedTC; doTermsAndConditions()\\\"></span>\\r\\n <label [ngClass]=\\\"{'disabled': loadingCartTotal}\\\">\\r\\n <input type=\\\"checkbox\\\" name=\\\"chk-terms-and-conditions\\\" (change)=\\\"doTermsAndConditions()\\\"\\r\\n (checked)=\\\"acceptedTC\\\" [ngClass]=\\\"{'disabled': loadingCartTotal}\\\" [disabled]=\\\"loadingCartTotal\\\" /> \\r\\n {{('AcceptTCandPrivacyPolicy' | translate) | async }}\\r\\n <a data-id=\\\"1241\\\" href=\\\"/terms-and-conditions/\\\" target=\\\"_blank\\\" title=\\\"Terms and Conditions\\\">Terms & Conditions</a> \\r\\n and <a data-id=\\\"1234\\\" href=\\\"/privacy-policy/\\\" target=\\\"_blank\\\" title=\\\"Privacy Policy\\\">Privacy Policy</a>.\\r\\n </label>\\r\\n </div>\\r\\n <gaweb-error-summary [worksWithEvents]=\\\"false\\\" [alerts]=\\\"alerts\\\"></gaweb-error-summary>\\r\\n <button id=\\\"proceedPaymentButton\\\" type=\\\"submit\\\" (click)=\\\"onProceedToPaymentClicked()\\\"\\r\\n class=\\\"btn btn-cta-purchase btn-block btn-content-centered\\\"\\r\\n [disabled]=\\\"loadingCartTotal || !acceptedTC\\\">\\r\\n <div class='btn-content-centered' *ngIf=\\\"confirming\\\">\\r\\n <i class='fa fa-refresh fa-spin'></i>\\r\\n <span class='span-margin'>Redirecting to payment...</span>\\r\\n </div>\\r\\n <div *ngIf=\\\"!confirming\\\">\\r\\n {{proceedButtonText}}\\r\\n </div>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/purchase-total-wrapper/purchase-total-wrapper.component.html\n// module id = ./src/app/shared/components/purchase-total-wrapper/purchase-total-wrapper.component.html\n// module chunks = main","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 { 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\nimport { ApplicationError } from 'app/shared/errors/ApplicationError';\r\nimport { CartTotalService } from 'app/shared/services/cart-total.service';\r\nimport { SectorAddonsService } from '../../services/sector-addons.service';\r\nimport { AddonOption, Addon, Booking, Totals } from '../../models/booking.model';\r\nimport { TravelProductService, GetCartTotalOptions, CartItemOptions } from 'app/shared/services/travel-product.service';\r\n\r\n@Component({\r\n selector: 'gaweb-purchase-total-wrapper',\r\n templateUrl: `./purchase-total-wrapper.component.html`\r\n})\r\nexport class PurchaseTotalWrapperComponent implements OnInit, OnChanges {\r\n\r\n @Input() isPassBooking: boolean;\r\n @Input() booking: Booking;\r\n @Input() bookingGuid: string;\r\n\r\n processing: boolean;\r\n hasPurchases: boolean;\r\n proceedButtonText: string;\r\n\r\n private _addonsToPurchase: Array<Addon>;\r\n set addonsToPurchase(a: Array<Addon>) {\r\n this._addonsToPurchase = a;\r\n this.initialized = true;\r\n this.onAddonChange();\r\n }\r\n get addonsToPurchase(): Array<Addon> {\r\n return this._addonsToPurchase;\r\n }\r\n\r\n // @Input() totals: Totals;\r\n // @Input() isPassBooking: boolean;\r\n\r\n initialized: boolean;\r\n promoCode: string;\r\n customerWishesToUseFreeTrip: boolean;\r\n totals: Totals;\r\n loadingCartTotal: boolean;\r\n tcs: boolean;\r\n acceptedTC: boolean;\r\n lastClick: Date;\r\n\r\n readonly defaultButtonText = 'PROCEED TO PAYMENT';\r\n\r\n constructor(\r\n public initialDataService: InitialDataService,\r\n private localStorageService: LocalStorageService,\r\n private cartTotalService: CartTotalService,\r\n private sectorAddonsService: SectorAddonsService\r\n ) {\r\n this.totals = new Totals();\r\n this.loadingCartTotal = true;\r\n this.tcs = false;\r\n this.initialized = false;\r\n this.proceedButtonText = this.defaultButtonText;\r\n this.acceptedTC = false;\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 // const that = this;\r\n // $('#dataCheckbox').on('click', function () {\r\n // if (that.lastClick != null && new Date().getTime() - that.lastClick.getTime() < 100) {\r\n // return;\r\n // }\r\n // that.lastClick = new Date();\r\n\r\n // if ($('#dataCheckbox').hasClass('checked')) {\r\n // $('#dataCheckbox').removeClass('checked');\r\n // $('#dataCheckboxInput').val('false');\r\n // that.acceptedTC = false;\r\n // } else {\r\n // $('#dataCheckbox').addClass('checked');\r\n // $('#dataCheckboxInput').val('true');\r\n // that.acceptedTC = true;\r\n // }\r\n // });\r\n }\r\n\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n }\r\n\r\n doTermsAndConditions(){\r\n this.acceptedTC = !this.acceptedTC;\r\n if(this.acceptedTC){\r\n if (this.lastClick != null && new Date().getTime() - this.lastClick.getTime() < 100) {\r\n return;\r\n }\r\n this.lastClick = new Date();\r\n }\r\n }\r\n\r\n getCartTotalOptions() {\r\n if (this.isPassBooking) {\r\n return this.cartTotalService.getPassCartTotalOptions(this.booking.Package, this.addonsToPurchase, this.promoCode);\r\n } else {\r\n const userData = this.initialDataService.userData,\r\n customerGuid = !!userData ? userData.CustomerGuid : null;\r\n\r\n if (this.booking.travels == null) {\r\n this.booking.travels = this.localStorageService.getOfflineBooking().travels;\r\n }\r\n\r\n return this.cartTotalService.getExpressCartTotalOptions(this.booking.travels,\r\n Booking.getPassengerCountWithExclusions(this.booking),\r\n this.addonsToPurchase,\r\n null,\r\n customerGuid);\r\n }\r\n };\r\n\r\n onAddonChange() {\r\n const ifPassIsInitialised = this.isPassBooking ? this.booking.Package : true;\r\n if(!!this.addonsToPurchase){\r\n var newAddons = this.addonsToPurchase.length > 0;\r\n if(newAddons){\r\n const ifPassIsInitialised = this.isPassBooking ? this.booking.Package : true;\r\n if (newAddons && this.initialized && ifPassIsInitialised) { // express or pass\r\n this.cartTotal();\r\n }\r\n }\r\n }\r\n };\r\n\r\n private cartTotal() {\r\n const success = (data) => {\r\n this.totals = data;\r\n\r\n // TODO why is this put on the booking object?\r\n // this.store.addCartTotalToBooking(this.totals);\r\n this.localStorageService.saveCart(this.totals);\r\n this.initialized = true;\r\n }, error = function () {\r\n throw new ApplicationError('Unable to retrieve cart total.');\r\n }, loading = () => {\r\n this.sectorAddonsService.setLoadingCartTotal(true);\r\n }, finished = () => {\r\n this.sectorAddonsService.setLoadingCartTotal(false);\r\n this.bookingGuid = _.cloneDeep(this.booking.BookingGuid);\r\n };\r\n if (this.isPassBooking) {\r\n this.cartTotalService.getCartTotal(this.booking.BookingGuid, success, error, loading, finished);\r\n } else {\r\n const options = this.getCartTotalOptions();\r\n this.cartTotalService.postCartTotal(options, success, error, loading, finished);\r\n }\r\n }\r\n\r\n onProceedToPaymentClicked() {\r\n window.location.href = this.initialDataService.initialData.ManageBooking.PaymentUrl + '?bookingGuid=' + this.booking.BookingGuid;\r\n }\r\n\r\n pageValid() {\r\n return true;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/purchase-total-wrapper/purchase-total-wrapper.component.ts","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ModalDirective } from 'ngx-bootstrap/modal';\r\n\r\n@Component({\r\n selector: 'gaweb-running-dog-modal',\r\n template: `\r\n <div bsModal #childModal=\"bs-modal\" [config]=\"config\" class=\"modal fade\" role=\"dialog\">\r\n <div class=\"modal-backdrop\"></div>\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\">{{('RunningDogMessage' | translate) | async }}</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"trip-fetching ng-scope\">\r\n <p> </p>\r\n <div class=\"loading-animation\">\r\n <div class=\"loading-animation__wrapper\">\r\n <img src=\"/Assets/images/layer1.png\" alt=\"\" class=\"loading-animation__layer loading-animation__bg1\">\r\n <img src=\"/Assets/images/layer2.png\" alt=\"\" class=\"loading-animation__layer loading-animation__bg2\">\r\n <img src=\"/Assets/images/layer3.png\" alt=\"\" class=\"loading-animation__layer loading-animation__bg3\">\r\n <img src=\"/Assets/images/layer4.png\" alt=\"\" class=\"loading-animation__layer loading-animation__bg4\">\r\n <img src=\"/Assets/images/layer5.png\" alt=\"\" class=\"loading-animation__layer loading-animation__bg5\">\r\n <div class=\"loading-animation__dog\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `\r\n})\r\nexport class RunningDogModalComponent implements OnInit {\r\n\r\n public config = {\r\n animated: true,\r\n keyboard: true,\r\n backdrop: false,\r\n ignoreBackdropClick: true\r\n };\r\n\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public showModal() {\r\n this.childModal.show();\r\n }\r\n\r\n public hideModal() {\r\n this.childModal.hide();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/running-dog-modal/running-dog-modal.component.ts","import { Directive, OnInit, EventEmitter, Output, ElementRef, Input } from '@angular/core';\r\nimport { DeviceService } from '../../services/device.service';\r\n\r\ndeclare const Modernizr: any;\r\n\r\ndeclare const $: any;\r\n@Directive({\r\n selector: '[gawebScrollToOn]'\r\n})\r\nexport class ScrollToOnDirective implements OnInit {\r\n @Input() scrollToOn: string;\r\n @Input() scrollToEvent: string;\r\n @Input() scrollToCss: string;\r\n\r\n private $input: any;\r\n private element: ElementRef;\r\n\r\n constructor(private _element: ElementRef,\r\n private deviceService: DeviceService) {\r\n this.element = _element;\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.deviceService.IsMobile()) {\r\n return;\r\n }\r\n\r\n const $input = $(this._element.nativeElement);\r\n\r\n if (this.scrollToOn === 'init') {\r\n // are we inside a modal?\r\n if ($('.modal-body').is(':visible')) {\r\n $('.modal-body')\r\n .animate({\r\n scrollTop: $input.offset().top - 90\r\n },\r\n 500);\r\n } else {\r\n $('html, body')\r\n .animate({\r\n scrollTop: $input.offset().top - 90\r\n },\r\n 500);\r\n }\r\n }\r\n\r\n if (this.scrollToOn === 'focus') {\r\n // handle Focus event\r\n $input.on('focus',\r\n () => {\r\n\r\n const isDesktop = Modernizr\r\n .mq('(min-width: 768px)'); //should match: .less @screen-sm-min\r\n\r\n if (!isDesktop) {\r\n $('.booking-wgt')\r\n .animate({\r\n scrollTop: $input.offset().top - 60\r\n },\r\n 500);\r\n }\r\n });\r\n }\r\n\r\n if (this.scrollToOn === 'event') {\r\n const cssName = this.scrollToCss;\r\n const eventName = this.scrollToEvent,\r\n action = () => {\r\n $('html, body')\r\n .animate({\r\n scrollTop: $(`.${cssName}`).offset().top\r\n },\r\n 500);\r\n };\r\n\r\n /* const closeEventListener = $rootScope.$on(eventName, action);\r\n scope.$on('$destroy',\r\n () => {\r\n closeEventListener();\r\n }); */\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/scroll-to-on/scroll-to-on.directive.ts","module.exports = \"<div *ngIf=\\\"results == null || startStopDetails == null\\\" style=\\\"text-align: center;\\\">\\r\\n <h1>Retrieving seating details..</h1>\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-5x\\\"></i>\\r\\n <span class=\\\"sr-only\\\">Loading...</span>\\r\\n</div>\\r\\n<div *ngIf=\\\"results != null && startStopDetails != null\\\" class=\\\"seat-selection-header\\\" style=\\\"\\\" [ngClass]=\\\"{ 'collapsable' : collapsable == 'true'}\\\"\\r\\n (click)=\\\"collapse()\\\">\\r\\n <span class=\\\"service col-xs-2\\\">{{service}}</span>\\r\\n <span class=\\\"route col-xs-9 col-sm-6\\\">{{startStopDetails.Description}} ⟶ {{endStopDetails.Description}}</span>\\r\\n <span class=\\\"departure col-sm-4\\\">Departs: {{passengerDepartureDate | gxDate: 'default'}}\\r\\n <i *ngIf=\\\"collapsable == 'true'\\\" class=\\\"fa pull-right hidden-xs\\\" [ngClass]=\\\"{ 'fa-chevron-down' : !collapsed, 'fa-chevron-right' : collapsed }\\\"></i>\\r\\n </span>\\r\\n <i *ngIf=\\\"collapsable == 'true'\\\" class=\\\"fa pull-right visible-xs\\\" style=\\\"margin-top: -16px;\\\" [ngClass]=\\\"{ 'fa-chevron-down' : !collapsed, 'fa-chevron-right' : collapsed }\\\"></i>\\r\\n</div>\\r\\n\\r\\n<div *ngIf=\\\"driverAllocatesSeats\\\">\\r\\n <div class=\\\"seat-summary\\\" style=\\\"text-align: center;\\\" [hidden]=\\\"collapsed\\\" >\\r\\n <span *ngIf=\\\"collapsed == false\\\">\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal == 1\\\">Your seat:</span>\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal > 1\\\">Your seats:</span>\\r\\n <b class=\\\"red\\\">Allocated by driver</b>\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"text-align: center; padding-bottom: 20px;\\\" [hidden]=\\\"collapsed\\\">\\r\\n <span *ngIf=\\\"collapsed == false\\\">\\r\\n <span class=\\\"fa fa-info-circle\\\"></span>\\r\\n <span>You have agreed to multiple seating allocations, as directed by the driver.</span> \\r\\n </span>\\r\\n </div>\\r\\n</div>\\r\\n<div *ngIf=\\\"!driverAllocatesSeats\\\">\\r\\n <div class=\\\"seat-summary\\\" style=\\\"text-align: center;\\\" *ngIf=\\\"results != null && startStopDetails != null\\\" [hidden]=\\\"collapsed\\\"\\r\\n [ngClass]=\\\"{ 'read-only': readOnly == 'true' }\\\">\\r\\n <span *ngIf=\\\"seatChanges.length < 1 && readOnly != 'true' && collapsed == false\\\">\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal == 1\\\">Your seat:</span>\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal > 1\\\">Your seats:</span>\\r\\n <span *ngFor=\\\"let seat of currentSeats\\\">\\r\\n <b class=\\\"red\\\">{{seat.Row}}{{seat.Seat}}</b>\\r\\n </span>\\r\\n </span>\\r\\n <span *ngIf=\\\"seatChanges.length > 0 && readOnly != 'true' && collapsed == false\\\">\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal == 1\\\">Your seat:</span>\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal > 1\\\">Your seats:</span>\\r\\n <span *ngFor=\\\"let seat of seatChanges\\\">\\r\\n <b class=\\\"red\\\">{{seat.Row}}{{seat.Seat}}</b>\\r\\n </span>\\r\\n </span>\\r\\n\\r\\n <span *ngIf=\\\"serviceDeparted == 'true' && currentSeats.length > 0\\\" class=\\\"text-center\\\">\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal == 1\\\">Your seat:</span>\\r\\n <span class=\\\"lbl-seat\\\" *ngIf=\\\"passengerTotal > 1\\\">Your seats:</span>\\r\\n <span *ngFor=\\\"let seat of currentSeats\\\">\\r\\n <b class=\\\"red\\\">{{seat.Row}}{{seat.Seat}}</b>\\r\\n </span>\\r\\n </span>\\r\\n <!--<span class=\\\"btn btn-cta btn-small\\\" style=\\\"padding: 5px;\\r\\n margin-left: 10px;\\\" *ngIf=\\\"readOnly != 'true' && !editMode\\\" (click)=\\\"setEditMode(true)\\\">\\r\\n Change\\r\\n </span>-->\\r\\n\\r\\n <i *ngIf=\\\"serviceDeparted == 'true' && currentSeats.length > 0\\\" class=\\\"fa fa-info-circle\\\" style=\\\"padding: 5px;\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" title=\\\"Seat selections can no longer be changed for this service; either because the coach has already departed, or the deadline for any seat changes has passed.\\\">\\r\\n\\r\\n </i>\\r\\n <p class=\\\"txt-seat\\\" *ngIf=\\\"readOnly == 'false' && editMode\\\">{{('SeatAllocationChangeText' | translate) | async }}\\r\\n </p>\\r\\n </div>\\r\\n <div *ngIf=\\\"results != null && startStopDetails != null && !collapsed\\\" class=\\\"seat-selection\\\" [hidden]=\\\"collapsed\\\" [ngClass]=\\\"{ 'read-only': readOnly == 'true' }\\\">\\r\\n <div class=\\\"container hidden-xs\\\" *ngIf=\\\"!deviceService.IsMobile()\\\" [ngStyle]=\\\"{'transform' : 'translateY(-' + (totalRows.length + 18) + '%) rotate(-90deg)'}\\\">\\r\\n <div *ngIf=\\\"results != null && startStopDetails != null && !collapsed\\\" class=\\\"seat-selection legend\\\" [ngClass]=\\\"{ 'read-only': readOnly == 'true' }\\\"\\r\\n [hidden]=\\\"collapsed\\\">\\r\\n <div class=\\\"legend-examples\\\" *ngIf=\\\"readOnly == 'true'\\\" style=\\\"\\r\\n transform: translate(-112px, -134px) rotate(90deg) translateZ(0) scale(1, 1);\\r\\n -webkit-transform: translate(-112px, -134px) rotate(90deg) translateZ(0) scale(1, 1);\\r\\n width: 0px;\\r\\n font-weight: 400;\\r\\n white-space: nowrap;\\r\\n overflow: visible;\\\">\\r\\n <div class=\\\"seat example\\\" *ngIf=\\\"readOnly != 'true' || serviceDeparted == 'true'\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [checked]=\\\"true\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Selected</span>\\r\\n </div>\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': false }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Available</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"closedExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"closedExample\\\"></label>\\r\\n <span>Unavailable</span>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"legend-examples\\\" *ngIf=\\\"readOnly != 'true'\\\" style=\\\"\\r\\n transform: translate(-27px, -134px) rotate(90deg) translateZ(0) scale(1, 1);\\r\\n -webkit-transform: translate(-27px, -134px) rotate(90deg) translateZ(0) scale(1, 1);\\r\\n width: 0px;\\r\\n font-weight: 400;\\r\\n white-space: nowrap;\\r\\n margin-left: 212px;\\r\\n overflow: visible;\\\">\\r\\n <div class=\\\"seat example\\\" *ngIf=\\\"readOnly != 'true' || serviceDeparted == 'true'\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [checked]=\\\"true\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Selected</span>\\r\\n </div>\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': false }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Available</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"closedExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"closedExample\\\"></label>\\r\\n <span>Unavailable</span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"door\\\">Door</div>\\r\\n <div class=\\\"driver\\\">Driver</div>\\r\\n <div class=\\\"column-container\\\">\\r\\n <div class=\\\"column-label\\\"> </div>\\r\\n <div *ngFor=\\\"let row of totalSeatLetters\\\" class=\\\"column-label seat-label\\\">{{indexToSeatLetter(row)}}</div>\\r\\n </div>\\r\\n <div *ngFor=\\\"let row of results; let rIndex = index\\\">\\r\\n <div class=\\\"row-label\\\">{{row[0].Row}}</div>\\r\\n <div class=\\\"seat-container\\\" *ngFor=\\\"let seat of row; let sIndex = index\\\">\\r\\n <div class=\\\"seat-gap\\\" *ngIf=\\\" sIndex == 2\\\"></div>\\r\\n <div class=\\\"seat seat-input\\\" [ngClass]=\\\"{ 'read-only': seat.Status == 2 }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"{{bookingNumber}}-{{service}}-{{sIndex}}-{{rIndex}}-{{index}}\\\" name=\\\"check\\\" [disabled]=\\\"readOnly == true || !editMode\\\"\\r\\n (click)=\\\"updateSeats($event, rIndex, sIndex, ((rIndex + 1) + '-' + indexToSeatLetter(sIndex + 1)))\\\" [checked]=\\\"seat.Status == 3\\\"\\r\\n />\\r\\n <label for=\\\"{{bookingNumber}}-{{service}}-{{sIndex}}-{{rIndex}}-{{index}}\\\" [ngClass]=\\\"{ 'currently-selected' : seat.Status == 3 }\\\"></label>\\r\\n </div>\\r\\n <p style=\\\"display: none;\\\">{{seat | json}}</p>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"container visible-xs\\\" *ngIf=\\\"deviceService.IsMobile()\\\" style=\\\"margin-top: 35px;\\\">\\r\\n <div class=\\\"legend-examples\\\" style=\\\"\\r\\n font-weight: 400;\\r\\n white-space: nowrap;\\r\\n overflow: visible;\\r\\n margin-top: -53px;\\\">\\r\\n <div class=\\\"seat example\\\" *ngIf=\\\"readOnly != 'true' || serviceDeparted == 'true'\\\" [ngClass]=\\\"{ 'read-only': true }\\\" style=\\\"margin-left: -20px;\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [checked]=\\\"true\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\" style=\\\"margin-left: 13px;\\\"></label>\\r\\n <span>Selected</span>\\r\\n </div>\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': false }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\" style=\\\"margin-left: 10px;\\\"></label>\\r\\n <span>Available</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"closedExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"closedExample\\\" style=\\\"margin-left: 13px;\\\"></label>\\r\\n <span>Unavailable</span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"door\\\">Door</div>\\r\\n <div class=\\\"driver\\\">Driver</div>\\r\\n <div class=\\\"column-container\\\">\\r\\n <div class=\\\"column-label\\\"> </div>\\r\\n <div *ngFor=\\\"let row of totalSeatLetters\\\" class=\\\"column-label seat-label\\\">{{indexToSeatLetter(row)}}</div>\\r\\n </div>\\r\\n <div *ngFor=\\\"let row of results; let rIndex = index\\\">\\r\\n <div class=\\\"row-label\\\">{{row[0].Row}}</div>\\r\\n <div class=\\\"seat-container\\\" *ngFor=\\\"let seat of row; let sIndex = index\\\">\\r\\n <div class=\\\"seat-gap\\\" *ngIf=\\\" sIndex == 2\\\"></div>\\r\\n <div class=\\\"seat seat-input\\\" [ngClass]=\\\"{ 'read-only': seat.Status == 2 }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"{{bookingNumber}}-{{service}}-{{sIndex}}-{{rIndex}}-{{index}}\\\" name=\\\"check\\\" [disabled]=\\\"readOnly == true || !editMode\\\"\\r\\n (click)=\\\"updateSeats($event, rIndex, sIndex, ((rIndex + 1) + '-' + indexToSeatLetter(sIndex + 1)))\\\" [checked]=\\\"seat.Status == 3\\\"\\r\\n />\\r\\n <label for=\\\"{{bookingNumber}}-{{service}}-{{sIndex}}-{{rIndex}}-{{index}}\\\" [ngClass]=\\\"{ 'currently-selected' : seat.Status == 3 }\\\"></label>\\r\\n </div>\\r\\n <p style=\\\"display: none;\\\">{{seat | json}}</p>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<!-- <div *ngIf=\\\"results != null && startStopDetails != null && !collapsed\\\" class=\\\"seat-selection legend hidden-xs\\\" [ngClass]=\\\"{ 'read-only': readOnly == 'true' }\\\"\\r\\n [style.margin-left.px]=\\\"readOnly == 'true' ? (((18 * 42) - (totalRows.length * 42) ) / 2 ) - (42 + (17 - totalRows.length)) : \\r\\n (((19 * 42) - (totalRows.length * 42) ) / 2 ) - (42 + (15 - totalRows.length)) \\\"\\r\\n [hidden]=\\\"collapsed\\\">\\r\\n <div class=\\\"legend-examples\\\">\\r\\n <div class=\\\"seat example\\\" *ngIf=\\\"readOnly != 'true' || serviceDeparted == 'true'\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [checked]=\\\"true\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Selected</span>\\r\\n </div>\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': false }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Available</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"closedExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"closedExample\\\"></label>\\r\\n <span>Unavailable</span>\\r\\n </div>\\r\\n </div>\\r\\n</div> -->\\r\\n<!--<div *ngIf=\\\"results != null && startStopDetails != null && !collapsed\\\" class=\\\"seat-selection legend visible-xs\\\" [ngClass]=\\\"{ 'read-only': readOnly == 'true' }\\\"\\r\\n [hidden]=\\\"collapsed\\\">\\r\\n <div class=\\\"legend-examples\\\">\\r\\n <div class=\\\"seat example\\\" *ngIf=\\\"readOnly != 'true' || serviceDeparted == 'true'\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [checked]=\\\"true\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Selected</span>\\r\\n </div>\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': false }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"openExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"openExample\\\"></label>\\r\\n <span>Available</span>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"seat example\\\" [ngClass]=\\\"{ 'read-only': true }\\\">\\r\\n <input type=\\\"checkbox\\\" value=\\\"None\\\" id=\\\"closedExample\\\" name=\\\"check\\\" [disabled]=\\\"true\\\" />\\r\\n <label for=\\\"closedExample\\\"></label>\\r\\n <span>Unavailable</span>\\r\\n </div>\\r\\n </div>\\r\\n</div>-->\\r\\n\\r\\n<div class=\\\"controls\\\" *ngIf=\\\"results != null && startStopDetails != null && !collapsed\\\" [hidden]=\\\"collapsed\\\">\\r\\n <!--<button class=\\\"btn btn-default\\\" *ngIf=\\\"editMode\\\" (click)=\\\"resetChanges()\\\">\\r\\n <span>Cancel</span>\\r\\n </button>\\r\\n <button class=\\\"btn btn-cta\\\" *ngIf=\\\"editMode\\\" (click)=\\\"applyChanges()\\\" [disabled]=\\\"seatChanges.length < 1 || seatChanges.length != passengerTotal\\\">\\r\\n <span>Confirm changes</span>\\r\\n </button>-->\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/seat-allocations/seat-allocations.component.html\n// module id = ./src/app/shared/components/seat-allocations/seat-allocations.component.html\n// module chunks = main","import { OnInit, OnChanges } from '@angular/core/src/metadata/lifecycle_hooks';\r\nimport { Component, Input, ElementRef, Output, EventEmitter } from '@angular/core';\r\nimport { TravelService, SeatAllocation, SeatStatus } from '../../services/travel.service';\r\nimport { StopItem, ReferenceDataService } from '../../services/reference-data.service';\r\nimport * as moment from 'moment';\r\nimport { ActionUpdaterService } from '../../services/action-updater.service';\r\nimport { DeviceService } from '../../services/device.service';\r\n\r\n@Component({\r\n selector: 'gaweb-seat-allocations',\r\n templateUrl: `./seat-allocations.component.html`\r\n})\r\nexport class SeatAllocationsComponent implements OnInit {\r\n @Input() index: number;\r\n @Input() readOnly: any;\r\n @Input() service: string;\r\n @Input() serviceDate: Date;\r\n @Input() passengerDepartureDate: any;\r\n @Input() bookingNumber: string;\r\n @Input() startStop: string;\r\n @Input() endStop: string;\r\n @Input() collapsable: any;\r\n @Input() passengerTotal: number;\r\n @Input() bookingGuid: string;\r\n @Input() travelGuid: string;\r\n @Input() sectorGuid: string;\r\n @Output() editModeActive = new EventEmitter<boolean>();\r\n @Output() newSeats = new EventEmitter<Array<SeatAllocation>>();\r\n\r\n results: Array<Array<SeatAllocation>> = null;\r\n totalRows = [0];\r\n totalSeatLetters = [0];\r\n serviceDeparted = 'false';\r\n noSeatsAvailable = false;\r\n driverAllocatesSeats = false;\r\n\r\n public allSeatsSelected = true;\r\n\r\n public seatChanges: Array<SeatAllocation> = new Array<SeatAllocation>();\r\n public currentSeats: Array<SeatAllocation> = new Array<SeatAllocation>();\r\n public startStopDetails: StopItem;\r\n public endStopDetails: StopItem;\r\n public collapsed = false;\r\n\r\n public editMode = false; \r\n private updatingCount = 0;\r\n\r\n constructor(private travelService: TravelService,\r\n private referenceDataService: ReferenceDataService,\r\n private componentElement: ElementRef,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private deviceService: DeviceService) {}\r\n async ngOnInit(): Promise<void> {\r\n if (this.readOnly == null) {\r\n this.readOnly = true;\r\n }\r\n\r\n this.passengerDepartureDate = moment(this.passengerDepartureDate, 'DD/MM/YYYY hh:mm:ss A');\r\n if (this.passengerDepartureDate.isBefore()) {\r\n this.readOnly = 'true';\r\n this.serviceDeparted = 'true';\r\n }\r\n else {\r\n if(this.readOnly == 'false') {\r\n this.setEditMode(true);\r\n }\r\n }\r\n\r\n this.travelService\r\n .getSeating(this.service, this.serviceDate, this.startStop, this.endStop, this.bookingGuid, this.travelGuid)\r\n .subscribe(data => {\r\n this.results = data;\r\n this.getSeats(this.results);\r\n }, err => this.actionUpdaterService.announceError(err));\r\n await this.travelService.getStops().then((stops) => {\r\n stops.forEach(stop => {\r\n if (stop.Code === this.startStop) {\r\n this.startStopDetails = stop;\r\n }\r\n\r\n if (stop.Code === this.endStop) {\r\n this.endStopDetails = stop;\r\n }\r\n });\r\n });\r\n }\r\n\r\n collapse() {\r\n if (this.collapsable !== 'true') {\r\n return false;\r\n }\r\n this.collapsed = !this.collapsed;\r\n this.updateCss();\r\n }\r\n\r\n getSeats(data) {\r\n let hasAvailableSeat = false;\r\n data.forEach((seat: SeatAllocation) => {\r\n if (seat.Row > this.totalRows.length) {\r\n this.totalRows = Array(seat.Row)\r\n .fill(1, 0, seat.Row)\r\n .map((x, i) => i + 1);\r\n }\r\n\r\n if (\r\n this.seatLetterToIndex(seat.Seat) > this.totalSeatLetters.length\r\n ) {\r\n const count = this.seatLetterToIndex(seat.Seat);\r\n this.totalSeatLetters = Array(count)\r\n .fill(1, 0, count)\r\n .map((x, i) => i + 1);\r\n }\r\n\r\n if (seat.Status === SeatStatus.Selected) {\r\n this.currentSeats.push(seat);\r\n }\r\n if (seat.Status == SeatStatus.Available) {\r\n hasAvailableSeat = true;\r\n }\r\n });\r\n this.results = this.chunkArray(\r\n data as Array<any>,\r\n this.totalSeatLetters.length - 1\r\n );\r\n if (this.currentSeats.length > this.passengerTotal) {\r\n this.passengerTotal = this.currentSeats.length;\r\n }\r\n this.noSeatsAvailable = !hasAvailableSeat;\r\n this.driverAllocatesSeats = this.noSeatsAvailable && (this.currentSeats == null || this.currentSeats.length == 0);\r\n this.newSeats.emit(data);\r\n }\r\n\r\n applyChanges() {\r\n this.updatingCount = this.updatingCount + 1;\r\n this.travelService.updateSeating(this.bookingGuid, this.sectorGuid, this.seatChanges).subscribe(data => { \r\n this.currentSeats = new Array<SeatAllocation>();\r\n this.seatChanges = new Array<SeatAllocation>();\r\n this.getSeats(data);\r\n this.actionUpdaterService.announceSuccess('Seats have been successfully changed.');\r\n this.updatingCount = this.updatingCount - 1; \r\n }, err => \r\n {\r\n this.updatingCount = this.updatingCount - 1;\r\n this.actionUpdaterService.announceError(err)\r\n });\r\n //this.setEditMode(false);\r\n }\r\n\r\n resetChanges() {\r\n this.travelService\r\n .getSeating(this.service, this.serviceDate, this.startStop, this.endStop, this.bookingGuid, this.travelGuid)\r\n .subscribe(data => {\r\n this.results = data;\r\n this.currentSeats = new Array<SeatAllocation>();\r\n this.seatChanges = new Array<SeatAllocation>();\r\n this.getSeats(this.results);\r\n });\r\n //this.setEditMode(false);\r\n }\r\n\r\n updateSeats(event: Event, rIndex, sIndex, seatClicked) {\r\n\r\n let counterB = 0;\r\n $('.seat-input input[type=\"checkbox\"]:checked').each((index, element) => {\r\n if ($(element).attr('id').split('-')[0] === this.bookingNumber.toString()\r\n && $(element).attr('id').split('-')[1] === this.service.toString()\r\n && $(element).attr('id').split('-')[4] === this.index.toString()) {\r\n if (counterB > total) {\r\n total = counterB;\r\n }\r\n counterB++;\r\n }\r\n });\r\n if(this.passengerTotal == counterB) {\r\n this.allSeatsSelected = true;\r\n } else {\r\n this.allSeatsSelected = false\r\n }\r\n\r\n let total = 0;\r\n const seat = this.results[rIndex][sIndex];\r\n let counter = 0;\r\n $('.seat-input input[type=\"checkbox\"]:checked').each((index, element) => {\r\n if ($(element).attr('id').split('-')[0] === this.bookingNumber.toString()\r\n && $(element).attr('id').split('-')[1] === this.service.toString()\r\n && $(element).attr('id').split('-')[4] === this.index.toString()) {\r\n if (counter > total) {\r\n total = counter;\r\n }\r\n counter++;\r\n if ($(element).attr('checked') === 'true') {\r\n // alert('checked: ' + $(element).attr('id'));\r\n }\r\n }\r\n });\r\n if (total >= this.passengerTotal || seat.Status === 2) {\r\n event.preventDefault();\r\n } else {\r\n this.seatChanges = new Array<SeatAllocation>();\r\n let counterB = 0;\r\n $('.seat-input input[type=\"checkbox\"]:checked').each((index, element) => {\r\n if ($(element).attr('id').split('-')[0] === this.bookingNumber.toString()\r\n && $(element).attr('id').split('-')[1] === this.service.toString()\r\n && $(element).attr('id').split('-')[4] === this.index.toString()) {\r\n if (counterB > total) {\r\n total = counterB;\r\n }\r\n counterB++;\r\n\r\n const seatIndex = parseInt($(element).attr('id').split('-')[2], 10);\r\n const rowIndex = parseInt($(element).attr('id').split('-')[3], 10);\r\n this.seatChanges.push( new SeatAllocation(this.indexToSeatLetter(seatIndex + 1).toString(), rowIndex + 1, SeatStatus.Selected));\r\n }\r\n });\r\n if(this.passengerTotal == counterB) {\r\n this.applyChanges();\r\n }\r\n }\r\n }\r\n\r\n chunkArray(myArray, chunk_size) {\r\n myArray = myArray as Array<any>;\r\n const arrayLength = myArray.length;\r\n const tempArray = [];\r\n for (let index = 0; index < arrayLength; index += chunk_size + 1) {\r\n const myChunk = myArray.slice(index, index + chunk_size + 1);\r\n tempArray.push(myChunk);\r\n }\r\n\r\n return tempArray;\r\n }\r\n\r\n isUpdating()\r\n {\r\n return this.updatingCount > 0;\r\n }\r\n\r\n setEditMode(val: boolean) {\r\n this.editMode = val;\r\n this.editModeActive.emit(val);\r\n this.updateCss();\r\n }\r\n\r\n private seatLetterToIndex(seatLetter) {\r\n switch (seatLetter) {\r\n case 'A':\r\n return 1;\r\n case 'B':\r\n return 2;\r\n case 'C':\r\n return 3;\r\n case 'D':\r\n return 4;\r\n case 'E':\r\n return 5;\r\n case 'F':\r\n return 6;\r\n case 'G':\r\n return 7;\r\n case 'H':\r\n return 8;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n private indexToSeatLetter(index) {\r\n switch (index) {\r\n case 1:\r\n return 'A';\r\n case 2:\r\n return 'B';\r\n case 3:\r\n return 'C';\r\n case 4:\r\n return 'D';\r\n case 5:\r\n return 'E';\r\n case 6:\r\n return 'F';\r\n case 7:\r\n return 'G';\r\n case 8:\r\n return 'H';\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n private updateCss() {\r\n if (this.collapsed) {\r\n if (!$(this.componentElement.nativeElement).hasClass('collapsed')) {\r\n $(this.componentElement.nativeElement).addClass('collapsed');\r\n }\r\n } else {\r\n if ($(this.componentElement.nativeElement).hasClass('collapsed')) {\r\n $(this.componentElement.nativeElement).removeClass('collapsed');\r\n }\r\n }\r\n\r\n /*if (this.editMode) {\r\n if (!$(this.componentElement.nativeElement).hasClass('edit-mode')) {\r\n $(this.componentElement.nativeElement).addClass('edit-mode');\r\n }\r\n } else {\r\n if ($(this.componentElement.nativeElement).hasClass('edit-mode')) {\r\n $(this.componentElement.nativeElement).removeClass('edit-mode');\r\n }\r\n }*/\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/seat-allocations/seat-allocations.component.ts","module.exports = \"<div class=\\\"select-list\\\" *ngIf=\\\"selectListIsShown\\\" [formGroup]=\\\"form\\\">\\r\\n <div class=\\\"form-group\\\">\\r\\n <div class=\\\"select-list__fake-input text-left\\\" (click)=\\\"openSelectList()\\\">\\r\\n <span>{{listText}}</span>\\r\\n <div class=\\\"select-list__icon-container\\\">\\r\\n <i class=\\\"fa fa-exclamation fa-2x error\\\" *ngIf=\\\"formIsSubmitted\\\"></i>\\r\\n <i class=\\\"fa fa-chevron-right\\\"></i>\\r\\n </div>\\r\\n <input type=\\\"hidden\\\" formControlName=\\\"state\\\" name=\\\"formFieldName\\\" />\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<gaweb-select-option-set-dialog #selectOption [data]=\\\"listData\\\" (onClose)=\\\"onSelectedItem($event)\\\"></gaweb-select-option-set-dialog>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/select-list/select-list.component.html\n// module id = ./src/app/shared/components/select-list/select-list.component.html\n// module chunks = main","import { OnInit, OnChanges } from '@angular/core/src/metadata/lifecycle_hooks';\r\nimport { Component, Input, Output, EventEmitter, SimpleChanges, ViewChild } from '@angular/core';\r\nimport * as _ from 'lodash';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { SelectOptionSetComponent } from 'app/shared/dialogs/select-option-set-dialog/select-option-set-dialog.component';\r\n\r\n\r\n/*\r\n unselectedListText: '@',\r\n listData: '<',\r\n onSelectionChanging: '&',\r\n form: '<',\r\n formFieldName: '@',\r\n selectionInvalidFunction: '&',\r\n isRequired: '<',\r\n selectListIsShown: '<',\r\n defaultIdSelected: '@'\r\n*/\r\n@Component({\r\n selector: 'gaweb-select-list',\r\n templateUrl: `./select-list.component.html`\r\n})\r\nexport class SelectListComponent implements OnInit, OnChanges {\r\n @ViewChild('selectOption') public selectOptionSetComponent: SelectOptionSetComponent;\r\n private _form: FormGroup\r\n @Input() set form(f: FormGroup) {\r\n this._form = f;\r\n this.formChange.emit(f);\r\n }\r\n get form(): FormGroup {\r\n return this._form;\r\n }\r\n @Output() formChange = new EventEmitter();\r\n @Input() unselectedListText: string;\r\n @Input() listData: Array<SelectListDataItem>;\r\n //@Output() onSelectionChanging: ({ id }: { id: string }) => void;\r\n\r\n @Output() onSelectionInvalidFunction: EventEmitter<SelectListDataItem> = new EventEmitter();\r\n @Input() isRequired: boolean;\r\n @Input() selectListIsShown: boolean;\r\n @Input() defaultIdSelected: string;\r\n @Input() formIsSubmitted: boolean;\r\n selection: SelectListDataItem;\r\n listText: string;\r\n\r\n constructor() { }\r\n ngOnInit(): void {\r\n\r\n if (!this.selectListIsShown) {\r\n this.selectListIsShown = true;\r\n }\r\n\r\n this.selection = new SelectListDataItem('0', this.unselectedListText);\r\n this.listData.unshift(this.selection);\r\n\r\n if (!!this.defaultIdSelected) {\r\n this.selection = this.listData\r\n .filter((data) => { return data.id === this.defaultIdSelected })\r\n .shift();\r\n }\r\n\r\n this.listText = this.selection.description;\r\n\r\n if (!this.selectionInvalidFunction(this.selection)) {\r\n this.selectionInvalidFunction = () => {\r\n if (this.isRequired && this.selection.description === this.unselectedListText) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n }\r\n };\r\n selectionInvalidFunction(selection: SelectListDataItem) {\r\n if(this.onSelectionInvalidFunction != null) {\r\n this.onSelectionInvalidFunction.emit(selection);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n ngOnChanges(changesObj: SimpleChanges): void {\r\n if (changesObj.selectListIsShown) {\r\n if (changesObj.selectListIsShown.isFirstChange()) return;\r\n const { currentValue } = changesObj.selectListIsShown;\r\n this.selectListIsShown = _.cloneDeep(currentValue);\r\n this.listText = this.unselectedListText;\r\n }\r\n }\r\n onSelectedItem({ id: id, desc: desc }) {\r\n this.selection = new SelectListDataItem(id, desc);\r\n this.listText = desc;\r\n this.form.patchValue({ 'country': id });\r\n }\r\n openSelectList = () => {\r\n this.selectOptionSetComponent.showModal();\r\n }\r\n}\r\nexport class SelectListDataItem {\r\n constructor(public id: string, public description: string) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/select-list/select-list.component.ts","import { Component, Input, ElementRef, AfterViewInit, AfterContentInit, OnChanges, SimpleChanges } from '@angular/core';\r\ndeclare var jQuery: any;\r\n\r\n\r\n@Component({\r\n selector: 'gaweb-slick-slider',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n styles: [`\r\n /deep/ .trip-leg:focus{\r\n outline: none;\r\n }\r\n `]\r\n})\r\nexport class SlickSliderComponent implements AfterContentInit {\r\n @Input() options: any;\r\n @Input() slickIndex: number;\r\n $element: any;\r\n\r\n defaultOptions: any = {};\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.setUp();\r\n }\r\n private setUp() {\r\n for (var key in this.options) {\r\n this.defaultOptions[key] = this.options[key];\r\n }\r\n this.defaultOptions['initialSlide'] = !isNaN(this.slickIndex) ? this.slickIndex : 0;\r\n // this.$element = jQuery(this.el.nativeElement).slick(this.defaultOptions);\r\n this.$element = jQuery(this.el.nativeElement).slick({\r\n useTransform: true,\r\n arrows: false,\r\n draggable: false,\r\n accessibility: false,\r\n adaptiveHeight: false,\r\n centerMode: false,\r\n dots: false,\r\n cssEase: 'cubic-bezier(1, 0, 0, 1)'\r\n });\r\n this.animate();\r\n }\r\n // DO NOT PUT ANY TIMEOUT HERE IN ANY METHOD! If you need a timeout, put it outside the call.\r\n public refresh() {\r\n this.$element.slick('unslick');\r\n this.setUp();\r\n this.animate();\r\n\r\n }\r\n public slickNext() {\r\n this.$element.slick('slickNext');\r\n this.animate();\r\n }\r\n\r\n public slickPrev() {\r\n this.$element.slick('slickPrev');\r\n this.animate();\r\n }\r\n\r\n public close() {\r\n this.$element.slick('unslick');\r\n }\r\n private animate() {\r\n $('html, body').animate({ scrollTop: 0 }, 200);\r\n }\r\n\r\n public hide() {\r\n $('gaweb-slick-slider').css('display', 'none');\r\n }\r\n public show() {\r\n $('gaweb-slick-slider').css('display', 'block');\r\n this.$element.slick('setPosition');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/slick-slider/slick-slider.component.ts","module.exports = \"<form id=\\\"specialAssistanceForm\\\" name=\\\"specialAssistanceForm\\\" novalidate autocomplete=\\\"off\\\" [formGroup]=\\\"specialAssistanceForm\\\">\\r\\n <div class=\\\"passengers__fieldwrap\\\">\\r\\n\\r\\n <div class=\\\"checkbox\\\">\\r\\n <span [ngClass]=\\\"{ 'checked': specialAssistanceForm.controls['requiresSpecialAssistance'].value }\\\" (click)=\\\"toggleSpecialAssitance()\\\"></span>\\r\\n <label>\\r\\n <input type=\\\"checkbox\\\" formControlName=\\\"requiresSpecialAssistance\\\" value=\\\"true\\\" />\\r\\n {{('SpecialAssistanceLabel' | translate) | async }}\\r\\n <input type=\\\"hidden\\\" formControlName=\\\"specialAssistance\\\" value=\\\"true\\\" />\\r\\n </label>\\r\\n </div>\\r\\n <div class=\\\"passengers__extra\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{ 'disabled': !specialAssistanceForm.controls['requiresSpecialAssistance'].value }\\\">\\r\\n <div class=\\\"passenger__fake-input text-left\\\" [ngClass]=\\\"{ 'has-error': !!value && !!value.description, 'disabled': !specialAssistanceForm.controls['requiresSpecialAssistance'].value }\\\"\\r\\n (click)=\\\"specialAssistanceForm.controls['requiresSpecialAssistance'].value && openSpecialAssistancePicker()\\\">\\r\\n <span *ngIf=\\\"!!value && !!value.description && specialAssistanceForm.controls['requiresSpecialAssistance'].value\\\">{{value.description}}</span>\\r\\n <span *ngIf=\\\"!(!!value && !!value.description && specialAssistanceForm.controls['requiresSpecialAssistance'].value)\\\">{{('SpecialAssistancePlaceholder' | translate) | async }}</span>\\r\\n <div class=\\\"fix-error-icon align-error-icon\\\">\\r\\n <div *ngIf=\\\"!!value && !value.description && specialAssistanceForm.controls['requiresSpecialAssistance'].value\\\">\\r\\n <i class=\\\"fa fa-2x text-danger\\\">!</i>\\r\\n </div>\\r\\n <i class=\\\"fa fa-chevron-right\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div bsModal #childModal=\\\"bs-modal\\\" [config]=\\\"config\\\" class=\\\"modal 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 <h4 class=\\\"modal-title pull-left\\\">{{('SpecialAssistanceModalTitle' | translate) | async }}</h4>\\r\\n <button type=\\\"button\\\" class=\\\"close pull-right\\\" aria-label=\\\"Close\\\" (click)=\\\"hideModal()\\\">\\r\\n <span aria-hidden=\\\"true\\\">×</span>\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div *ngIf=\\\"loadingSpecialAssistanceTypes\\\">\\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>Loading special assistance types...</h4>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!loadingSpecialAssistanceTypes\\\">\\r\\n <p>{{('SpecialAssistanceModalText' | translate) | async }}</p>\\r\\n <div class=\\\"list-modal__list-item\\\" *ngFor=\\\"let type of specialAssistanceTypes\\\" (click)=\\\"onSpecialAssistanceTypeSelected(type.Index)\\\">\\r\\n <div class=\\\"\\\">\\r\\n <h4>{{type.Description}}</h4>\\r\\n <div class=\\\"sexy_line\\\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</form>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/special-assistance/special-assistance.component.html\n// module id = ./src/app/shared/components/special-assistance/special-assistance.component.html\n// module chunks = main","import { Component, OnInit, Input, forwardRef, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NG_VALIDATORS, } from '@angular/forms';\r\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { FormGroup, FormBuilder, Validators, AbstractControl, ValidatorFn, NgControl, FormControl } from '@angular/forms';\r\nimport { ExpressBookingService } from '../../services/express-booking-widget';\r\nimport { ActionUpdaterService, ApiError } from '../../services/action-updater.service';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\nimport { modalClass } from 'app/home/booking-widget-container/booking-widget-container.component';\r\nimport { EventBusService } from '../../services/event-bus.service';\r\nimport { ModalPopupMainPageEvent } from '../../models/app-events-types.model';\r\nimport { ModalPopupMainPageEventWrapper } from '../../models/app-events.model';\r\n\r\nexport function validateTypeSelected(c: FormControl) {\r\n const err = {\r\n requiresSpecialAssistanceType: {\r\n given: c.value,\r\n max: 10,\r\n min: 0\r\n }\r\n };\r\n const sa = <SpecialAssistance>c.value;\r\n if (!sa) {return null; }\r\n return sa.checked && sa.index === 0 ? err : null;\r\n}\r\n\r\n@Component({\r\n selector: 'gaweb-special-assistance',\r\n templateUrl: './special-assistance.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SpecialAssistanceComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useValue: validateTypeSelected,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class SpecialAssistanceComponent implements OnInit, ControlValueAccessor {\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n\r\n get value() {\r\n return this._value;\r\n }\r\n @Input() _value: any;\r\n set value(val: any) {\r\n this._value = val;\r\n this.onChange(val);\r\n this.onTouched();\r\n }\r\n specialAssistanceForm: FormGroup;\r\n public config = {\r\n animated: true,\r\n keyboard: true,\r\n backdrop: false,\r\n ignoreBackdropClick: false\r\n };\r\n specialAssistanceTypes: Array<any>;\r\n loadingSpecialAssistanceTypes: boolean;\r\n isFirstTime: boolean;\r\n onChange: any = () => { };\r\n onTouched: any = () => { };\r\n constructor(\r\n private fb: FormBuilder,\r\n private expressBookingService: ExpressBookingService,\r\n private eventBusService: EventBusService,\r\n private actionUpdaterService: ActionUpdaterService) { }\r\n\r\n ngOnInit() {\r\n this.isFirstTime = true;\r\n this.specialAssistanceForm = this.fb.group({\r\n requiresSpecialAssistance: false,\r\n specialAssistance: null\r\n });\r\n\r\n this.specialAssistanceForm.valueChanges\r\n .subscribe((val) => {\r\n if (!!val.requiresSpecialAssistance && !!val.specialAssistance) {\r\n const specialAssistance = val.specialAssistance;\r\n this.value = new SpecialAssistance(\r\n specialAssistance.checked,\r\n specialAssistance.index,\r\n specialAssistance.description);\r\n\r\n this.actionUpdaterService.announceClear(true);\r\n } else if (!val.requiresSpecialAssistance && !!val.specialAssistance) {\r\n this.value = new SpecialAssistance(\r\n val.requiresSpecialAssistance,\r\n 0,\r\n null);\r\n\r\n this.actionUpdaterService.announceClear(true);\r\n\r\n } else if (!!val.requiresSpecialAssistance && !val.specialAssistance) {\r\n this.value = new SpecialAssistance(\r\n val.requiresSpecialAssistance,\r\n 0,\r\n null);\r\n // this.actionUpdaterService.announceError(new ApiError(\"Please complete required fields!\", [\"Assistance Type is required\"]));\r\n\r\n } else if (!val.requiresSpecialAssistance && !val.specialAssistance) {\r\n this.value = new SpecialAssistance(\r\n val.requiresSpecialAssistance,\r\n 0,\r\n null);\r\n this.actionUpdaterService.announceClear(true);\r\n }\r\n });\r\n\r\n }\r\n toggleSpecialAssitance() {\r\n this.specialAssistanceForm.patchValue({\r\n 'requiresSpecialAssistance': !this.specialAssistanceForm.get('requiresSpecialAssistance').value\r\n });\r\n }\r\n openSpecialAssistancePicker() {\r\n this.loadingSpecialAssistanceTypes = true;\r\n this.expressBookingService.getSpecialAssistanceTypes()\r\n .subscribe(\r\n (types) => {\r\n this.specialAssistanceTypes = types;\r\n this.loadingSpecialAssistanceTypes = false;\r\n },\r\n this.actionUpdaterService.onError);\r\n\r\n this.showModal();\r\n }\r\n\r\n onSpecialAssistanceTypeSelected(index: number) {\r\n const desc = this.specialAssistanceTypes[index - 1].Description;\r\n this.hideModal();\r\n this.value = new SpecialAssistance(true, index, desc);\r\n this.actionUpdaterService.announceClear(true);\r\n }\r\n\r\n registerOnChange(fn) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn) {\r\n this.onTouched = fn;\r\n }\r\n\r\n writeValue(value: SpecialAssistance) {\r\n if (value) {\r\n if (value.constructor === Array) {\r\n value = value[0];\r\n }\r\n this.specialAssistanceForm.setValue({ specialAssistance: value, requiresSpecialAssistance: value.checked });\r\n this.value = value;\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 }\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\nexport class SpecialAssistance {\r\n constructor(public checked: boolean, public index: number, public description: string) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/special-assistance/special-assistance.component.ts","import { Component, OnInit, Input } from '@angular/core';\r\nimport * as _ from \"lodash\";\r\n\r\n@Component({\r\n selector: 'gaweb-steps-indicator',\r\n template: `\r\n <section>\r\n <div class=\"row steps-indicator\" >\r\n <div class=\"steps\" [ngClass]=\"'size-'+size\">\r\n <div *ngFor=\"let s of steps\" class=\"step\" [ngClass]=\"{ 'complete': s.isCompleted, 'active': s.isActive }\">\r\n <i *ngIf=\"s.isCompleted\" class=\"fa fa-check\"></i>\r\n <span *ngIf=\"!s.isCompleted\">{{s.index}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n `,\r\n styles: [`\r\n .steps-indicator{\r\n\r\n }\r\n `]\r\n})\r\nexport class StepsIndicatorComponent implements OnInit {\r\n @Input() size: number;\r\n @Input() active: number;\r\n steps: Array<Step>;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.steps = _.map(_.range(0, this.size), idx => new Step(idx + 1, (idx + 1) == this.active, (idx + 1) < this.active));\r\n }\r\n\r\n}\r\n\r\nexport class Step {\r\n constructor(private index: number, private isActive: boolean, private isCompleted: boolean) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/steps-indicator/steps-indicator.component.ts","import { Component, OnInit } from '@angular/core';\r\nimport { ActionUpdaterService } from '../../services/action-updater.service';\r\n\r\n@Component({\r\n selector: 'gaweb-toast',\r\n template: `\r\n <div *ngFor=\"let alert of alerts\" class=\"col-xs-12 col-md-4 col-xs-offset-9 col-md-offset-4 success-alert container-bleed\">\r\n\r\n <alert [type]=\"alert.type\" [dismissOnTimeout]=\"alert.timeout\">\r\n\r\n <span *ngIf=\"alert.type ==='success'\" class=\"glyphicon glyphicon-ok\" aria-hidden=\"true\"></span>\r\n\r\n {{ alert.msg }}\r\n\r\n <a href=\"#\" class=\"close\" data-dismiss=\"alert\" aria-label=\"close\">×</a>\r\n\r\n </alert>\r\n </div>\r\n `\r\n })\r\nexport class ToastComponent implements OnInit {\r\n alerts: Array<any> = [];\r\n\r\n constructor( private actionUpdaterService: ActionUpdaterService) { }\r\n\r\n ngOnInit() {\r\n this.actionUpdaterService.success$.subscribe(\r\n 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}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/toast/toast.component.ts","module.exports = \"<div class=\\\"trip-details\\\">\\r\\n <div class=\\\"\\\">\\r\\n <div class=\\\"trip-details-loader\\\" *ngIf=\\\"!sector.timetableDisplayed || sector.timetable == null\\\">\\r\\n <h1>Retrieving trip details..</h1>\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-5x\\\"></i>\\r\\n <span class=\\\"sr-only\\\">Loading...</span>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"sector.timetable != null\\\">\\r\\n <div class=\\\"row timetable\\\" [ngClass]=\\\"{ 'collapsed': !sector.timetableDisplayed }\\\">\\r\\n <div class=\\\"container timetable__wrapper\\\">\\r\\n <div class=\\\"tab-content\\\">\\r\\n <div id=\\\"full-trip\\\" class=\\\"tab-pane fade in active\\\">\\r\\n <div class=\\\"trip-details-container\\\" *ngIf=\\\"sector.timetable != null\\\">\\r\\n <div [ngClass]=\\\"sector.mapView == null ? 'trip-details-tab active' : 'trip-details-tab inactive'\\\" (click)=\\\"sector.mapView = null;\\\">\\r\\n <div style=\\\"text-align: center;\\\">\\r\\n <img class=\\\"hidden-xs\\\" \\r\\n style=\\\"margin-left: -18px; \\r\\n height: 16px; display: inline-block;\\\" \\r\\n src=\\\"\\\\Assets\\\\images\\\\car-seat.png\\\" /> {{('SeatingLabel' | translate) | async }}\\r\\n </div>\\r\\n </div>\\r\\n <div [ngClass]=\\\"sector.mapView === false && sector.mapView != null ? 'trip-details-tab active' : 'trip-details-tab inactive'\\\"\\r\\n (click)=\\\"sector.mapView = false\\\">\\r\\n\\r\\n <div style=\\\"text-align: center;\\\">\\r\\n <i style=\\\"height: 10px; \\r\\n margin-left: -18px; \\\" class=\\\"fa fa-list hidden-xs\\\"></i>{{('TimetableLabel' | translate) | async }}</div>\\r\\n </div>\\r\\n <div *ngIf=\\\"mapEnabled\\\" [ngClass]=\\\"sector.mapView === true && sector.mapView != null ? 'trip-details-tab active' : 'trip-details-tab inactive'\\\"\\r\\n (click)=\\\"sector.showMap(sector);\\\">\\r\\n\\r\\n <div style=\\\"text-align: center;\\\">\\r\\n <i style=\\\"height: 10px; margin-left: -18px;\\\" class=\\\"fa fa-map-marker hidden-xs\\\"></i>{{('MapLabel' | translate) | async }}</div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-- Map -->\\r\\n <gmap *ngIf=\\\"sector.fullRoute != null && sector.timetable != null\\\" index=\\\"1\\\" route=\\\"{{sector.fullRoute | json}}\\\" [hidden]=\\\"sector.mapView === false || sector.mapView == null\\\"></gmap>\\r\\n\\r\\n <!-- Timetable -->\\r\\n <div class=\\\"row\\\" [ngClass]=\\\"{ 'trip-details-options' : true }\\\" [hidden]=\\\"sector.mapView === true || sector.mapView == null\\\"> \\r\\n <div class=\\\"col-xs-3 text-center coach-details\\\">\\r\\n <div class=\\\"bus-container\\\" *ngFor=\\\"let coach of sector.serviceList; let i = index\\\" [style.margin-top.px]=\\\"i == 0 ? 0 : (((sector.timetable[( i - 1)].length) * 35))\\\"\\r\\n [style.margin-bottom.px]=\\\"25\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <i class=\\\"fa fa-bus fa-2x\\\"></i>\\r\\n <br/>\\r\\n <b class=\\\"ng-binding\\\">{{coach}}</b>\\r\\n </div>\\r\\n <div class=\\\"coach-icon-container\\\">\\r\\n <div class=\\\"coach-icon\\\" title=\\\"{{('AirconTooltip1' | translate) | async }}\\\">\\r\\n <!-- <i class=\\\"fa fa-fw fa {{('AirconIcon' | translate) | async }}\\\"></i> -->\\r\\n </div>\\r\\n <!-- <div class=\\\"coach-icon\\\" title=\\\"{{('WaterTooltip' | translate) | async }}\\\">\\r\\n <i class=\\\"fa fa-fw {{('WaterIcon' | translate) | async }}\\\"></i>\\r\\n </div> -->\\r\\n <!-- <div class=\\\"coach-icon\\\" style=\\\"margin-top: -5px;\\\">\\r\\n <span class=\\\"fa-stack\\\" style=\\\"margin: -8px; margin-top: 0px;\\\">\\r\\n <i class=\\\"fa fa-fw fa-user fa-stack-1x\\\" title=\\\"This service has seatbelts available.\\\"></i>\\r\\n <i style=\\\"margin-left: -2px;\\r\\n margin-top: 5px;\\r\\n font-weight: 900;\\r\\n transform: scale(3,2) rotateX(60deg);\\\" class=\\\"fa fa-fw fa-inverse fa-stack-1x\\\">/</i>\\r\\n </span>\\r\\n </div> -->\\r\\n <div class=\\\"coach-icon\\\" title=\\\"{{('USBTooltip' | translate) | async }}\\\">\\r\\n <!-- <i class=\\\"fa fa-fw {{('USBIcon' | translate) | async }}\\\"></i> -->\\r\\n </div>\\r\\n <div class=\\\"coach-icon\\\" *ngIf=\\\"sector.HasWifi\\\" title=\\\"{{('WifiTooltip' | translate) | async }}\\\">\\r\\n <!-- <i class=\\\"fa fa-fw {{('WifiIcon' | translate) | async }}\\\"></i> -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"timetable__container col-xs-8 col-xs-offset-0 col-sm-8 col-sm-offset-0\\\">\\r\\n <div class=\\\"timetable__stops\\\">\\r\\n <div class=\\\"timeline-line\\\"></div>\\r\\n <ul>\\r\\n <li *ngFor=\\\"let stop of sector.fullRoute; let i = index\\\" class=\\\"c-services-summary__list-item\\\" [ngClass]=\\\"{ 'terminating' : (sector.fullRoute[i + 1] != null) && ((stop.CompanyCode + stop.ServiceNumber) != (sector.fullRoute[i+ 1].CompanyCode + sector.fullRoute[i + 1].ServiceNumber)) && sector.fullRoute[i + 1] != null }\\\">\\r\\n <div class=\\\"stop__content\\\">\\r\\n <span class=\\\"bullet\\\"></span>\\r\\n <div *ngIf=\\\"stop.IsRestStop; then restStop else normalStop\\\"></div>\\r\\n <ng-template #restStop>\\r\\n <b *ngIf=\\\"stop.departing !== true\\\">\\r\\n a. {{stop.ArrivalDate | gxDate: 'time'}}\\r\\n </b>\\r\\n <br *ngIf=\\\"stop.departing !== true\\\">\\r\\n <b *ngIf=\\\"stop.departing === true || (stop.departing !== true && stop.terminating !== true)\\\">\\r\\n d. {{stop.DepartureDate | gxDate: 'time'}}\\r\\n </b>\\r\\n </ng-template>\\r\\n <ng-template #normalStop>\\r\\n <b *ngIf=\\\"stop.terminating == true\\\">\\r\\n a. {{stop.ArrivalDate | gxDate: 'time'}}\\r\\n </b>\\r\\n <b *ngIf=\\\"stop.departing === true || (stop.departing !== true && stop.terminating !== true) \\\">\\r\\n d. {{stop.DepartureDate | gxDate: 'time'}}\\r\\n </b>\\r\\n </ng-template>\\r\\n </div>\\r\\n <div class=\\\"stop__content c-services-summary__stop-desc\\\">\\r\\n <div>{{stop.StopDetails[0].Description}}</div>\\r\\n <i *ngIf=\\\"stop.IsRestStop\\\" class=\\\"fa fa-cutlery\\\"></i>\\r\\n </div>\\r\\n <div *ngIf=\\\"(sector.fullRoute[i + 1] != null) && ((stop.CompanyCode + stop.ServiceNumber) != (sector.fullRoute[i+ 1].CompanyCode + sector.fullRoute[i + 1].ServiceNumber)) && sector.fullRoute[i + 1] != null\\\"\\r\\n class=\\\"c-services-summary__list-item connection\\\">\\r\\n <strong>Change service</strong>\\r\\n </div>\\r\\n </li>\\r\\n </ul>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"coach-icon-legend col-xs-12 visible-xs\\\" style=\\\"background: #EEE; padding: 10px;\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12 col-md-1 text-center\\\" style=\\\"white-space: nowrap;\\\">\\r\\n <!-- <b>{{('CoachFeaturesLabel' | translate) | async }}</b> -->\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 col-sm-1 text-right\\\">\\r\\n <p>\\r\\n <!-- <i class=\\\"fa fa-fw {{('AirconIcon' | translate) | async }}\\\"></i> -->\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-7 col-sm-2\\\">\\r\\n <!-- <p>{{('AirconLabel' | translate) | async }}</p> -->\\r\\n </div>\\r\\n <!-- <div class=\\\"col-xs-5 col-sm-1 text-right\\\">\\r\\n <p>\\r\\n <i class=\\\"fa fa-fw {{('WaterIcon' | translate) | async }}\\\"></i>\\r\\n </p>\\r\\n </div> -->\\r\\n <!-- <div class=\\\"col-xs-7 col-sm-2\\\">\\r\\n <p>{{('WaterLabel' | translate) | async }}</p>\\r\\n </div> -->\\r\\n <div class=\\\"col-xs-5 col-sm-1 text-right\\\">\\r\\n <p>\\r\\n <!-- <i class=\\\"fa fa-fw {{('USBIcon' | translate) | async }}\\\"></i> -->\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-7 col-sm-2\\\">\\r\\n <!-- <p>{{('USBLabel' | translate) | async }}</p> -->\\r\\n </div>\\r\\n <div class=\\\"col-xs-5 col-sm-1 text-right\\\">\\r\\n <p>\\r\\n <!-- <i class=\\\"fa fa-fw {{('WifiIcon' | translate) | async }}\\\"></i> -->\\r\\n </p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-7 col-sm-1\\\">\\r\\n <!-- <p>{{('WifiLabel' | translate) | async }}</p> -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"coach-icon-legend col-xs-12 hidden-xs\\\" style=\\\"background: #EEE; padding: 10px;\\\">\\r\\n <div class=\\\"row\\\" style=\\\"white-space: nowrap;\\\">\\r\\n <!-- <div class=\\\"col-xs-12 col-md-3 text-center\\\">\\r\\n <b>{{('CoachFeaturesLabel' | translate) | async }}</b>\\r\\n </div> -->\\r\\n <!-- <div class=\\\"col-xs-7 col-sm-3 col-md-2\\\">\\r\\n <p>\\r\\n <i class=\\\"fa fa-fw {{('AirconIcon' | translate) | async }}\\\" style=\\\"margin-right: 10px;\\\"></i>{{('AirconLabel' | translate) | async }}</p>\\r\\n </div> -->\\r\\n <!-- <div class=\\\"col-xs-7 col-sm-3 col-md-2\\\">\\r\\n <p>\\r\\n <i class=\\\"fa fa-fw {{('WaterIcon' | translate) | async }}\\\" style=\\\"margin-right: 10px;\\\"></i>{{('WaterLabel' | translate) | async }}</p>\\r\\n </div> -->\\r\\n <!-- <div class=\\\"col-xs-7 col-sm-3 col-md-2\\\">\\r\\n <p>\\r\\n <i class=\\\"fa fa-fw {{('USBIcon' | translate) | async }}\\\" style=\\\"margin-right: 10px;\\\"></i>{{('USBLabel' | translate) | async }}</p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-7 col-sm-3 col-md-2\\\">\\r\\n <p>\\r\\n <i class=\\\"fa fa-fw {{('WifiIcon' | translate) | async }}\\\" style=\\\"margin-right: 10px;\\\"></i>{{('WifiLabel' | translate) | async }}</p>\\r\\n </div> -->\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-- Seating -->\\r\\n <div [hidden]=\\\"sector.mapView != null\\\" *ngIf=\\\"sector.timetable != null\\\" style=\\\"padding: 10px 10px 0px 10px;\\\">\\r\\n <gaweb-seat-allocations *ngIf=\\\"readonly != 'true'\\\" [ngClass]=\\\"{ 'read-only' : readonly == 'true' }\\\" style=\\\"border: solid 1px #223250; margin-bottom: 10px;\\\"\\r\\n index=\\\"{{sector.SectorNumber}}\\\"\\r\\n travelGuid=\\\"{{travelGuid}}\\\"\\r\\n bookingNumber=\\\"{{booking.BookingNumber}}\\\" service=\\\"{{sector.ServiceCompany + sector.ServiceNumber}}\\\"\\r\\n serviceDate=\\\"{{sector.ServiceDepartureDate.split(' ')[0].split('/')[2]}}-{{sector.ServiceDepartureDate.split(' ')[0].split('/')[1]}}-{{sector.ServiceDepartureDate.split(' ')[0].split('/')[0]}}\\\"\\r\\n passengerDepartureDate=\\\"{{sector.PassengerBoardingDate}}\\\" startStop=\\\"{{sector.OriginStopCode}}\\\"\\r\\n passengerTotal=\\\"{{(booking.Passengers[0].MaleCount + booking.Passengers[0].FemaleCount) | number}}\\\"\\r\\n endStop=\\\"{{sector.DestinationStopCode}}\\\" bookingGuid=\\\"{{booking.BookingGuid}}\\\" sectorGuid=\\\"{{sector.SectorGuid}}\\\"\\r\\n readOnly=\\\"{{readonly}}\\\" collapsable=\\\"false\\\" (newSeats)=\\\"onNewSeats($event)\\\"></gaweb-seat-allocations>\\r\\n\\r\\n\\r\\n </div>\\r\\n <div [hidden]=\\\"sector.mapView != null\\\" *ngIf=\\\"readonly == 'true'\\\" style=\\\"padding: 10px 10px 0px 10px;\\\">\\r\\n <gaweb-seat-allocations *ngFor=\\\"let tsec of sector.Sectors\\\"\\r\\n index=\\\"{{sector.SectorNumber}}\\\"\\r\\n travelGuid=\\\"{{travelGuid}}\\\"\\r\\n style=\\\"border: solid 1px #223250; margin-bottom: 10px;\\\" [ngClass]=\\\"{ 'read-only' : readonly == 'true' }\\\"\\r\\n service=\\\"{{tsec.ServiceCompany + tsec.ServiceNumber}}\\\" serviceDate=\\\"{{tsec.ServiceDepartureDate.split(' ')[0].split('/')[2]}}-{{tsec.ServiceDepartureDate.split(' ')[0].split('/')[1]}}-{{tsec.ServiceDepartureDate.split(' ')[0].split('/')[0]}}\\\"\\r\\n passengerDepartureDate=\\\"{{tsec.PassengerBoardingDate}}\\\" startStop=\\\"{{tsec.OriginStopCode}}\\\" passengerTotal=\\\"{{(tsec.PassengerGroup1Count + tsec.PassengerGroup2Count + tsec.PassengerGroup3Count)}}\\\"\\r\\n endStop=\\\"{{tsec.DestinationStopCode}}\\\" sectorGuid=\\\"{{tsec.SectorGuid}}\\\" readOnly=\\\"true\\\" collapsable=\\\"{{sector.Sectors.length > 1}}\\\"\\r\\n (newSeats)=\\\"onNewSeats($event)\\\"></gaweb-seat-allocations>\\r\\n </div>\\r\\n <div [hidden]=\\\"sector.mapView != null\\\" *ngIf=\\\"readonly == 'true'\\\" class=\\\"col-xs-12 seat-allocation-p\\\">\\r\\n <p>{{('HowSeatAllocationWorksDesc2' | translate) | async }}</p>\\r\\n <p>{{('HowSeatAllocationWorksDesc3' | translate) | async }}</p>\\r\\n </div>\\r\\n <gaweb-info [hidden]=\\\"sector.mapView != null\\\" *ngIf=\\\"readonly == 'true'\\\" title=\\\"{{('HowSeatAllocationWorks' | translate) | async }}\\\">\\r\\n <div>\\r\\n <p>\\r\\n {{('HowSeatAllocationWorksDesc' | translate) | async }}\\r\\n </p>\\r\\n <p>\\r\\n {{('HowSeatAllocationWorksDesc4' | translate) | async }}\\r\\n </p>\\r\\n </div>\\r\\n </gaweb-info>\\r\\n </div>\\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/shared/components/trip-details/trip-details.component.html\n// module id = ./src/app/shared/components/trip-details/trip-details.component.html\n// module chunks = main","import { OnInit, OnChanges, AfterViewInit } from '@angular/core/src/metadata/lifecycle_hooks';\r\nimport { Component, Input, ElementRef, QueryList, ViewChildren, Output, EventEmitter } from '@angular/core';\r\nimport { TravelService, SeatAllocation, SeatStatus } from '../../services/travel.service';\r\nimport { StopItem, ReferenceDataService } from '../../services/reference-data.service';\r\nimport { Sector, Booking } from '../../models/booking.model';\r\nimport { GoogleMapComponent } from 'app/shared/components/google-map/google-map.component';\r\nimport { SeatAllocationsComponent } from 'app/shared/components/seat-allocations/seat-allocations.component';\r\nimport { FeatureService, Feature } from 'app/shared/services/feature.service';\r\n\r\ndeclare var $:any;\r\n\r\n@Component({\r\n selector: 'gaweb-trip-details',\r\n templateUrl: `./trip-details.component.html`\r\n})\r\nexport class TripDetailsComponent implements OnInit, AfterViewInit {\r\n @Input() sector: any;\r\n @Input() readonly: any;\r\n @Input() booking: Booking;\r\n @Input() travelGuid: string;\r\n @Output() onSeatsUpdated: EventEmitter<Array<SeatAllocation>> = new EventEmitter();\r\n\r\n @ViewChildren(GoogleMapComponent) googleMap: QueryList<GoogleMapComponent>;\r\n @ViewChildren(SeatAllocationsComponent) seatAllocations: QueryList<SeatAllocationsComponent>;\r\n\r\n \r\n public mapEnabled = true;\r\n\r\n constructor(private travelService: TravelService,\r\n private referenceDataService: ReferenceDataService,\r\n private componentElement: ElementRef,\r\n private featureService: FeatureService) {}\r\n ngOnInit(): void {\r\n this.mapEnabled = !this.featureService.GetFeatureStatus(Feature.HideGoogleMaps);\r\n \r\n this.sector.mapView = null;\r\n if (this.sector.timetable != null) {\r\n this.sector.fullRoute = this.calculateFullRoute(this.sector.timetable);\r\n this.sector.serviceList = this.calculateServiceList(this.sector.timetable);\r\n }\r\n this.sector.showMap = (inputRo) => {\r\n this.sector.mapView = true;\r\n this.checkMaps(inputRo);\r\n };\r\n this.sector.ServiceHasWifi = (service) => {\r\n if (this.sector.WifiSectors.indexOf(service) > -1){\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n $('.coach-icon').tooltip();\r\n }\r\n\r\n onNewSeats(seats){\r\n this.onSeatsUpdated.emit(seats);\r\n }\r\n\r\n calculateServiceList(data) {\r\n const serviceList = []\r\n {\r\n data.forEach(service => {\r\n serviceList.push(service[0].CompanyCode.toUpperCase() + service[0].ServiceNumber);\r\n });\r\n }\r\n return serviceList;\r\n }\r\n\r\n checkMaps(ro: any) {\r\n // Wait until map is ready.\r\n if (this.googleMap) {\r\n this.googleMap.forEach((gmap) => {\r\n ro.mapReady = gmap.mapReady;\r\n gmap.refreshMap();\r\n });\r\n } else {\r\n setTimeout(() => {\r\n this.checkMaps(ro);\r\n }, 250);\r\n }\r\n }\r\n\r\n\r\n calculateFullRoute(data) {\r\n const fullRoute = [];\r\n data.forEach(service => {\r\n\r\n service.forEach(stop => {\r\n fullRoute.push(stop);\r\n });\r\n\r\n if (fullRoute.length > 1) {\r\n fullRoute[fullRoute.length - service.length].departing = true;\r\n fullRoute[fullRoute.length - 1].terminating = true;\r\n }\r\n });\r\n return fullRoute;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/components/trip-details/trip-details.component.ts","module.exports = \"<style *ngIf=\\\"!isMyGreyhound\\\">\\r\\n \\r\\n</style>\\r\\n<div class=\\\"update-subscriptions-container\\\" [ngClass]=\\\"{ 'my-experience' : !isMyGreyhound }\\\">\\r\\n <div class=\\\"title\\\" [ngClass]=\\\"{'myGreyhoundBackground':isMyGreyhound , 'myExperiencesBackground':!isMyGreyhound }\\\" style=\\\" max-width: 600px; margin-left:auto; margin-right: auto;\\\">\\r\\n <a *ngIf=\\\"isMyGreyhound\\\" [href]=\\\"siteLink\\\"><img src=\\\"/Assets/images/logo-white.png\\\" /></a>\\r\\n <a *ngIf=\\\"!isMyGreyhound\\\" [href]=\\\"siteLink\\\"><img src=\\\"https://www.ozexperience.com/Content/images/logo.png\\\" /></a>\\r\\n </div>\\r\\n \\r\\n <div *ngIf=\\\"!loading\\\" class=\\\"container\\\" style=\\\"background: #F6F6F6; padding: 20px; max-width: 600px;\\\">\\r\\n <div *ngIf=\\\"invalidGuid\\\">\\r\\n <h3>We're sorry but we cannot find any subscriptions for that address.</h3>\\r\\n <p>If you believe this is not right, or you are still receiving emails when you're expecting not to, please contact\\r\\n Greyhound Australia on <a href=\\\"phone:1300473946\\\">1300 473 946</a> (in Australia) or email us at <a href=\\\"mailto:help@greyhound.com.au\\\">help@greyhound.com.au</a> and we'll do our\\r\\n best to help you.</p>\\r\\n </div>\\r\\n <div *ngIf=\\\"!invalidGuid\\\">\\r\\n <h1>Manage Subscriptions</h1>\\r\\n <div *ngIf=\\\"!unsubscribed\\\">\\r\\n <div *ngIf=\\\"!!subscriptions && !!subscriptions.length; then subscriptionList else noSubscriptions\\\"></div>\\r\\n <div>\\r\\n <ng-template #subscriptionList>\\r\\n <p>Update your subscriptions below:</p>\\r\\n <br>\\r\\n <form novalidate [formGroup]=\\\"subscriptionForm\\\" (ngSubmit)=\\\"onUpdatingSubscriptions()\\\">\\r\\n <div formArrayName=\\\"items\\\">\\r\\n <div class=\\\"row\\\" *ngFor=\\\"let control of subscriptionForm.get('items').controls; let i = index;\\\">\\r\\n <div class=\\\"col-xs-4 col-sm-2\\\">\\r\\n <label class=\\\"switch\\\">\\r\\n <input type=\\\"checkbox\\\" class=\\\"switch-input\\\" [formControl]=\\\"control\\\" >\\r\\n <span class=\\\"switch-label\\\" data-on=\\\"On\\\" data-off=\\\"Off\\\"></span>\\r\\n <span class=\\\"switch-handle\\\"></span>\\r\\n </label>\\r\\n <!-- <div class=\\\"btn-group\\\">\\r\\n <label class=\\\"btn btn-toggle\\\" style=\\\"min-width: 48px;\\\" [ngClass]=\\\"{ 'active' : control.value === true }\\\" (click)=\\\"control.value = true\\\">\\r\\n <span style=\\\"opacity: 0;\\\">X</span>\\r\\n </label>\\r\\n <label class=\\\"btn btn-toggle\\\" style=\\\"min-width: 48px;\\\" [ngClass]=\\\"{ 'active' : control.value === false }\\\" (click)=\\\"control.value = false\\\">\\r\\n <span style=\\\"opacity: 0;\\\">X</span>\\r\\n </label>\\r\\n </div> -->\\r\\n </div>\\r\\n <div class=\\\"col-xs-8 col-sm-10\\\">\\r\\n <label>\\r\\n <!-- <input type=\\\"checkbox\\\" [formControl]=\\\"control\\\" hidden> -->\\r\\n <span></span>\\r\\n {{subscriptions[i].Name}}\\r\\n <div class=\\\"subscription__body\\\" style=\\\"opacity: 0.6; font-weight: 400;\\\">{{subscriptions[i].Description}}</div>\\r\\n </label>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div>\\r\\n <br>\\r\\n <button class=\\\"btn btn-cta-secondary center\\\" type=\\\"submit\\\" [disabled]=\\\"updating\\\">\\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 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 <div *ngIf=\\\"unsubscribed\\\">\\r\\n <i class=\\\"fa fa-check-circle success text-success center\\\"></i>\\r\\n <h3>Your subscription preferences have been updated.</h3>\\r\\n <!-- <a [href]=\\\"siteLink\\\" class=\\\"center return-to-site\\\">Return to My Greyhound</a> -->\\r\\n </div>\\r\\n </div>\\r\\n \\r\\n <div style=\\\"opacity: 0.9;\\\">\\r\\n <br>\\r\\n <a *ngIf=\\\"isMyGreyhound\\\" [href]=\\\"siteLink\\\" class=\\\"center return-to-site\\\">← Return to My Greyhound</a>\\r\\n <a *ngIf=\\\"!isMyGreyhound\\\" [href]=\\\"siteLink\\\" class=\\\"center return-to-site\\\">← Return to My Experience</a>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n<!-- <div class=\\\"title footer\\\" [ngClass]=\\\"{'myGreyhoundBackground':isMyGreyhound , 'myExperiencesBackground':!isMyGreyhound }\\\"></div> -->\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/components/update-subcriptions/update-subscriptions.component.html\n// module id = ./src/app/shared/components/update-subcriptions/update-subscriptions.component.html\n// module chunks = main","import { Component } from '@angular/core';\r\nimport { Subscription } from '../../../my-greyhound/profile/subscriptions/subscriptions.component';\r\nimport { FormGroup, FormArray, FormBuilder } from '@angular/forms';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { MyGreyhoundService, SubscriptionOption, SubscriptionOptionItem } from 'app/my-greyhound/my-greyhound.service';\r\nimport { ActionUpdaterService, ApiError } from '../../services/action-updater.service';\r\nimport * as _ from 'lodash';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'gaweb-update-subscriptions',\r\n templateUrl: './update-subscriptions.component.html'\r\n})\r\nexport class UpdateSubscriptionsComponent {\r\n unsubscribed: boolean;\r\n private subscriptions: Subscription[];\r\n subscriptionForm: FormGroup;\r\n items: FormArray;\r\n userId: string;\r\n userGuid: string;\r\n isMyGreyhound: boolean;\r\n loading = true;\r\n updating: boolean;\r\n anySubscribed: boolean;\r\n invalidGuid: boolean;\r\n siteLink: string;\r\n constructor(private initialData: InitialDataService,\r\n private fb: FormBuilder,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private titleService: Title) {\r\n\r\n this.titleService.setTitle('Manage Subscriptions');\r\n this.subscriptionForm = this.fb.group({\r\n items: this.fb.array([])\r\n });\r\n this.activatedRoute.params.subscribe(params => {\r\n this.invalidGuid = false;\r\n this.isMyGreyhound = this.router.url.includes('/my-greyhound/');\r\n const idAndGuid: string = params['idAndGuid'];\r\n if (!!idAndGuid) {\r\n const firstDashIdx = idAndGuid.indexOf('-');\r\n this.userId = idAndGuid.substring(0, firstDashIdx);\r\n this.userGuid = idAndGuid.substring(firstDashIdx + 1);\r\n if (this.userGuid.length !== 36) {\r\n this.invalidGuid = true;\r\n this.loading = false;\r\n this.userId = null\r\n this.userGuid = null;\r\n this.actionUpdaterService.announceError(new ApiError('Invalid Customer.'));\r\n return;\r\n }\r\n } else {\r\n this.invalidGuid = true;\r\n window.location.href = this.isMyGreyhound ? '/my-greyhound' : 'https://www.ozexperience.com/my-experience';\r\n }\r\n if (this.isMyGreyhound) {\r\n this.siteLink = '/my-greyhound';\r\n } else {\r\n this.siteLink = 'https://www.ozexperience.com/my-experience';\r\n }\r\n });\r\n this.getSubscriptions();\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.userGuid) {\r\n this.myGreyhoundService\r\n .getSubscriptions(this.userGuid)\r\n .subscribe((subs: Subscription[]) => {\r\n this.invalidGuid = false;\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 this.anySubscribed = this.anySubscribed || sub.IsSubscribed;\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 = \"manage\";\r\n const isGreyhound = this.isMyGreyhound;\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.userGuid)\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/shared/components/update-subcriptions/update-subscriptions.component.ts","\r\n\r\nexport class GxConstants {\r\n\r\n static readonly PRODUCTS_REF = {\r\n EXPRESS: 'EXPRESS',\r\n PASS: 'Pass'\r\n }\r\n\r\n static readonly FARETYPE_CODES = {\r\n FARE_PRICE: 'FP',\r\n INSURANCE: 'IN', // AKA PREMIUM UPGRADE\r\n PROCESSING_FEE: 'FE',\r\n FULL_SURCHARGE: 'FS',\r\n THIRD_PARTY: 'TP',\r\n TAX_BACK: 'TB'\r\n }\r\n\r\n static readonly FIELD_TYPE = {\r\n CHECKBOX: 'checkbox',\r\n RADIO: 'radio'\r\n }\r\n\r\n static readonly PAYMENT_METHOD = {\r\n PAYPAL: 'PayPal',\r\n TNS: 'TNS',\r\n LOYALTY: 'Loyalty'\r\n }\r\n\r\n static readonly TNS_RESPONSE_STATUSES = {\r\n OK: 'ok',\r\n TIMEOUT: 'request_timeout',\r\n VALIDATION_ERROR: 'fields_in_error',\r\n INVALID_SESSION: 'invalid_session'\r\n }\r\n\r\n static readonly EVENTS = {\r\n APPLICATION_ERROR: 'application_error',\r\n RELOAD_AVAILABILITY: 'reload_availability'\r\n }\r\n\r\n static readonly EXPRESS_FB_CODES = {\r\n ZZZ: 'ZZZ',\r\n OZX: 'OZX'\r\n }\r\n\r\n static readonly PRODUCT_TYPE = {\r\n BUSPASS: 'BP',\r\n EXPRESS: 'EX'\r\n }\r\n\r\n static readonly REPORTING_GROUP = {\r\n HOP_ON: 'HOHO',\r\n SHORT_HOP: 'SHORTHOP',\r\n KPASS: 'KPASS',\r\n COMMUTER: 'COMM',\r\n BUS_PASS: 'BPASS',\r\n PACKAGE: 'PKGP',\r\n WHIMIT: 'WHIMIT',\r\n MICRO: 'MICRO',\r\n SPECIAL: 'SPECIAL'\r\n }\r\n\r\n\r\n static readonly PASS_CATEGORY_REFERENCES = {\r\n HOP_ON: 'minitravellerpass',\r\n SHORT_HOP: 'micropasss',\r\n KPASS: 'kilometrepass',\r\n COMMUTER: 'CommuterPass'\r\n }\r\n\r\n static readonly PAYMENT_CONTEXT = {\r\n MANAGE: 'manage',\r\n CONFIRMATION: 'confirmation'\r\n }\r\n\r\n static readonly ALLOWED_SECTOR_ADDONS = [\r\n \"FACEMASK\", \"FACEMASKR\"\r\n ]\r\n\r\n static readonly EXPRESS_ADDONS = [\r\n \"FACEMASK\", \"FACEMASKR\"\r\n ]\r\n\r\n static readonly EXPRESS_ADDONS_FAREBASIS_EXCLUSIONS = [\r\n \"GDP\"\r\n ]\r\n\r\n static readonly COMPANY = 'GA';\r\n static readonly CURRENCY = 'AUD';\r\n static readonly MIN_DATE = '1900-01-01T00:00:00';\r\n static readonly PASS_UPGRADE_PRODUCT_CODE = 'GAUPGRADE';\r\n\r\n static readonly DateFormatDefault = 'YYYY-MM-DD';\r\n static readonly DateFormatToSendToApi = 'YYYY-MM-DD h:mm:ss A';\r\n static readonly DateFormatRecievedFromApi = 'D/MM/YYYY h: mm:ss A';\r\n // see https://regex101.com/r/jW5aRd/1\r\n // tslint:disable-next-line:max-line-length\r\n static readonly PHONE_PATTERN = /^(?:\\+?(\\d*))? ?(?:\\((?=.*\\)))?(0?[0-9])\\)? ?(\\d\\d(?:[- ](?=\\d{3})|(?!\\d\\d[- ]?\\d[- ]))\\d\\d[- ]?\\d[- ]?\\d{3})$/;\r\n static readonly FIRST_LAST_NAME_PATTERN = '^.{2,}$';\r\n static readonly PASSWORD_PATTERN = '(?=.*[A-Za-z])(?=.*\\d).{8,}';\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/constants/gx.constants.ts","module.exports = \"<!-- <mat-dialog-content> -->\\r\\n <div class=\\\"modal-header\\\">\\r\\n <h3 class=\\\"modal-title\\\">{{ title }}</h3>\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div [innerHTML]=\\\"message\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"modal-footer\\\">\\r\\n <button class=\\\"btn btn-primary\\\">{{ okButton }}</button>\\r\\n </div>\\r\\n<!-- </mat-dialog-content> -->\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/dialogs/alert-dialog/alert-dialog.component.html\n// module id = ./src/app/shared/dialogs/alert-dialog/alert-dialog.component.html\n// module chunks = main","\r\nimport { Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-alert-dialog',\r\n templateUrl: './alert-dialog.component.html'\r\n})\r\nexport class AlertDialogComponent {\r\n\r\n public title: string;\r\n public message: string;\r\n public okButton = 'OK';\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/dialogs/alert-dialog/alert-dialog.component.ts","module.exports = \"<div style=\\\"max-width: 600px;\\\">\\r\\n <div class=\\\"modal-header\\\">\\r\\n <h3 class=\\\"modal-title\\\">\\r\\n <!-- <mat-icon *ngIf=\\\"isWarning\\\">warning</mat-icon> -->\\r\\n {{ title }}\\r\\n </h3>\\r\\n </div>\\r\\n <div class=\\\"modal-body\\\">\\r\\n <div [innerHTML]=\\\"message\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"modal-footer\\\">\\r\\n <button class=\\\"btn btn-outline\\\">{{ cancelButton }}</button>\\r\\n <button class=\\\"btn btn-primary\\\">{{ okButton }}</button>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/dialogs/confirm-dialog/confirm-dialog.component.html\n// module id = ./src/app/shared/dialogs/confirm-dialog/confirm-dialog.component.html\n// module chunks = main","\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirm-dialog',\r\n templateUrl: './confirm-dialog.component.html'\r\n})\r\nexport class ConfirmDialogComponent {\r\n\r\n public title: string;\r\n public message: string;\r\n public okButton = 'Yes';\r\n public cancelButton = 'No';\r\n public isWarning = false;\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/dialogs/confirm-dialog/confirm-dialog.component.ts","module.exports = \"<div bsModal #childModal=\\\"bs-modal\\\" [config]=\\\"config\\\" class=\\\"modal fade\\\" role=\\\"dialog\\\" tabindex=\\\"-1\\\">\\r\\n <div class=\\\"modal-backdrop\\\" (click)=\\\"hideModal()\\\"></div>\\r\\n <div class=\\\"modal-dialog modal-sm\\\">\\r\\n <div class=\\\"modal-content fix-modal\\\">\\r\\n <div class=\\\"modal-body\\\">\\r\\n <section class=\\\"list-modal\\\">\\r\\n <div class=\\\"list-modal__close-button text-right\\\">\\r\\n <a (click)=\\\"hideModal()\\\" aria-label=\\\"Close\\\">\\r\\n <i class=\\\"fa fa-2x fa-close\\\"></i>\\r\\n </a>\\r\\n </div>\\r\\n <div class=\\\"list-modal__list-item\\\" *ngFor=\\\"let d of data;\\\" (click)=\\\"onSelection(d.id, d.description)\\\">\\r\\n <div class=\\\"\\\">\\r\\n <h4>{{d.description}}</h4>\\r\\n <div class=\\\"sexy_line\\\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </section>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/shared/dialogs/select-option-set-dialog/select-option-set-dialog.component.html\n// module id = ./src/app/shared/dialogs/select-option-set-dialog/select-option-set-dialog.component.html\n// module chunks = main","import { Component, OnInit, Input, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport * as _ from 'lodash';\r\nimport { ModalDirective } from 'ngx-bootstrap';\r\n\r\n@Component({\r\n selector: 'gaweb-select-option-set-dialog',\r\n templateUrl: './select-option-set-dialog.component.html'\r\n})\r\nexport class SelectOptionSetComponent implements OnInit {\r\n @ViewChild('childModal') public childModal: ModalDirective;\r\n @Output() onClose: EventEmitter<any> = new EventEmitter();\r\n @Input() data: Array<any>;\r\n selectedOptionType: any;\r\n injectedData: any;\r\n public config = {\r\n animated: true,\r\n keyboard: true,\r\n backdrop: false,\r\n ignoreBackdropClick: false\r\n };\r\n constructor() {\r\n }\r\n\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onSelection(id: string, desc: string) {\r\n this.selectedOptionType = desc;\r\n this.onClose.emit({ id: id, desc: desc });\r\n this.hideModal();\r\n }\r\n\r\n showModal() {\r\n this.childModal.show();\r\n }\r\n hideModal() {\r\n this.childModal.hide();\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/dialogs/select-option-set-dialog/select-option-set-dialog.component.ts","export class ApplicationError {\r\n\r\n private readonly name: string;\r\n private readonly data: any;\r\n\r\n constructor(private message: string, private errorData?: any) {\r\n this.name = 'ApplicationError';\r\n this.message = message;\r\n this.data = errorData; //(gxApi ErrorModel) OR (Angular form.$error) objects\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/errors/ApplicationError.ts","export class SavedFormEvent {\r\n constructor(public isFormValid: boolean, public males?: number, public females?: number) {\r\n\r\n }\r\n}\r\nexport class PageLoadedEvent {\r\n}\r\nexport class ModalPopupMainPageEvent {\r\n constructor(public isOpen: boolean) {\r\n\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/app-events-types.model.ts","import { SavedFormEvent, PageLoadedEvent, ModalPopupMainPageEvent } from 'app/shared/models/app-events-types.model';\r\n\r\n// ALL EVENTS MUST SPECIFY A TYPE FOR THE PAYLOAD object\r\nabstract class AppEvent<T> {\r\n type: AppEventType;\r\n payload: T;\r\n}\r\n// LIST OF AVAILABLE APP EVENTS\r\nexport enum AppEventType {\r\n SavedFormEvent,\r\n PageLoadedEvent,\r\n ModalPopupMainPageEvent\r\n}\r\n// =============\r\n// TO SUPPORT TYPE CHECKS, EACH EVENT SHOULD SPECIFY ITS PAYLOAD TYPE\r\n// =============\r\nexport class SavedFormEventWrapper implements AppEvent<SavedFormEvent> {\r\n type = AppEventType.SavedFormEvent;\r\n constructor(public payload: SavedFormEvent) { }\r\n}\r\nexport class PageLoadedEventWrapper implements AppEvent<PageLoadedEvent> {\r\n type = AppEventType.PageLoadedEvent;\r\n constructor(public payload: PageLoadedEvent) { }\r\n}\r\nexport class ModalPopupMainPageEventWrapper implements AppEvent<ModalPopupMainPageEvent> {\r\n type = AppEventType.ModalPopupMainPageEvent;\r\n constructor(public payload: ModalPopupMainPageEvent) { }\r\n}\r\n\r\n// `CATCH ALL` TYPE FOR ALL APP EVENT TYPES\r\nexport type AppEvents =\r\n SavedFormEventWrapper |\r\n PageLoadedEventWrapper |\r\n ModalPopupMainPageEventWrapper\r\n // | more...\r\n ;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/app-events.model.ts","import { Sector } from './booking.model';\r\nimport { ProductTypeUrl } from './enums/ProductTypeUrl.enum';\r\nimport {\r\n Experiences, Packages, TravelPassesInitialData, ExpressInitialData, Accommodation, InitialDataService } from 'app/initial-data.service';\r\n\r\nexport class Availability {\r\n TravelGUID: string;\r\n RouteOptions: Array<RouteOption>;\r\n TravelAlternatives: Array<TravelAlternative>;\r\n FareGUID: string;\r\n NextTravelDate: string;\r\n SelectedDate: string;\r\n TravelDate: string;\r\n PreviousTravelDate: string;\r\n NextAvailabilityDate: string;\r\n PreviousAvailabilityDate: string;\r\n OriginStopCode: string;\r\n DestinationStopCode: string;\r\n Messages?: Array<string>;\r\n}\r\n\r\nexport class TravelAlternative {\r\n ServiceDepartureDate: string;\r\n S1DepartTime: string;\r\n TotalDistance: number;\r\n TripDuration: number;\r\n BetterAlternative: boolean;\r\n}\r\n\r\nexport class RouteOption {\r\n DepartureDate: string;\r\n ArrivalDate: string;\r\n RouteDistance: number;\r\n RouteTotalDuration: number;\r\n Connections: number;\r\n RouteHeader: string;\r\n RouteServices: Array<RouteService>;\r\n Fares: Array<any>;\r\n Sectors: Array<Sector>;\r\n timetableDisplayed: boolean;\r\n timetable: any;\r\n fullRoute: any;\r\n serviceList: any;\r\n RouteTravelDurationText: any;\r\n index: number;\r\n mapReady: boolean;\r\n}\r\n\r\nexport class RouteService {\r\n Stops: Array<Stop>;\r\n}\r\n\r\nexport class Stop {\r\n StopDetails: Array<StopDetails>;\r\n date: string;\r\n ArrivalDate: string;\r\n DepartureDate: string;\r\n}\r\n\r\nexport class StopDetails {\r\n Code: string;\r\n StopDetails: StopDetails;\r\n}\r\nexport class ProductUrl {\r\n public ProductTypeUrl: ProductTypeUrl;\r\n public get ProductName(): string {\r\n return ProductTypeUrl[this.ProductTypeUrl];\r\n }\r\n private Packages: Packages;\r\n private Experiences: Experiences;\r\n private Accommodation: Accommodation;\r\n private ExpressInitialData: ExpressInitialData;\r\n private TravelPassesInitialData: TravelPassesInitialData;\r\n public isManageBooking: boolean;\r\n constructor(url: string, private initialDataService: InitialDataService, productType?: ProductTypeUrl) {\r\n var urlSplit = url.split('/');\r\n var prodType = urlSplit[1];\r\n var categoryRef = urlSplit[2];\r\n var productRef = urlSplit[3];\r\n console.log('urlSplit', urlSplit);\r\n if (!!productType) {\r\n url = ''; // so we only check against the productType\r\n }\r\n\r\n if (url.indexOf('booking-management') > -1) {\r\n this.isManageBooking = true;\r\n } else {\r\n this.isManageBooking = false;\r\n }\r\n\r\n if (productType === ProductTypeUrl.package || prodType === 'packages' || url.includes(this.initialDataService.packageParentFolderUrl)) {\r\n this.Packages = new Packages();\r\n this.Packages.DetailsUrl = `/${prodType}/${categoryRef}/${productRef}`; // this.initialDataService.packageDetails;\r\n this.Packages.PassengersUrl = this.initialDataService.packagePassengers;\r\n this.Packages.CategoriesUrl = `/${prodType}/${categoryRef}/`; //this.initialDataService.packageCategories;\r\n this.Packages.ProductsUrl = `/${prodType}/`; // this.initialDataService.packageProducts;\r\n this.Packages.ParentFolderUrl = this.initialDataService.packageParentFolderUrl;\r\n } else if (productType === ProductTypeUrl.experience || prodType === 'experiences' || url.includes(this.initialDataService.experienceParentFolderUrl)) {\r\n this.Experiences = new Experiences();\r\n this.Experiences.DetailsUrl = this.initialDataService.experienceDetails;\r\n this.Experiences.PassengersUrl = this.initialDataService.experiencePassengers;\r\n this.Experiences.CategoriesUrl = this.initialDataService.experienceCategories;\r\n this.Experiences.ProductsUrl = this.initialDataService.experienceProducts;\r\n this.Experiences.ParentFolderUrl = this.initialDataService.experienceParentFolderUrl;\r\n } else if (productType === ProductTypeUrl.accommodation || prodType === 'accommodation' || url.includes(this.initialDataService.accommodationParentFolderUrl)) {\r\n this.Accommodation = new Accommodation();\r\n this.Accommodation.DetailsUrl = this.initialDataService.accommodationDetails;\r\n this.Accommodation.PassengersUrl = this.initialDataService.accommodationPassengers;\r\n this.Accommodation.CategoriesUrl = this.initialDataService.accommodationCategories;\r\n this.Accommodation.ProductsUrl = this.initialDataService.accommodationProducts;\r\n this.Accommodation.ParentFolderUrl = this.initialDataService.accommodationParentFolderUrl;\r\n } else if (productType === ProductTypeUrl.travelPasses || prodType === 'travel-passes' || url.includes(this.initialDataService.travelPassesParentFolderUrl)) {\r\n this.TravelPassesInitialData = new TravelPassesInitialData();\r\n this.TravelPassesInitialData.DetailsUrl = this.initialDataService.travelPassesDetails;\r\n this.TravelPassesInitialData.PassengersUrl = this.initialDataService.travelPassesPassengers;\r\n this.TravelPassesInitialData.PaymentUrl = this.initialDataService.travelPassesPayment;\r\n this.TravelPassesInitialData.CategoriesUrl = this.initialDataService.travelPassesCategories;\r\n this.TravelPassesInitialData.ProductsUrl = this.initialDataService.travelPassesProducts;\r\n this.TravelPassesInitialData.ParentFolderUrl = this.initialDataService.travelPassesParentFolderUrl;\r\n } else if (productType === ProductTypeUrl.expressBooking || url.includes(this.initialDataService.expressParentFolderUrl)) {\r\n this.ExpressInitialData = new ExpressInitialData();\r\n // there is no DetailsUrl\r\n this.ExpressInitialData.PassengersUrl = this.initialDataService.expressPassengers;\r\n this.ExpressInitialData.PaymentUrl = this.initialDataService.expressPayment;\r\n this.ExpressInitialData.AvailabilityUrl = this.initialDataService.expressAvailability;\r\n this.ExpressInitialData.ParentFolderUrl = this.initialDataService.expressParentFolderUrl;\r\n }\r\n if (!!this.Packages) {\r\n this.ProductTypeUrl = ProductTypeUrl.package;\r\n } else if (!!this.Experiences) {\r\n this.ProductTypeUrl = ProductTypeUrl.experience;\r\n } else if (!!this.Accommodation) {\r\n this.ProductTypeUrl = ProductTypeUrl.accommodation;\r\n } else if (!!this.ExpressInitialData) {\r\n this.ProductTypeUrl = ProductTypeUrl.expressBooking;\r\n } else if (!!this.TravelPassesInitialData) {\r\n this.ProductTypeUrl = ProductTypeUrl.travelPasses;\r\n } else {\r\n this.ProductTypeUrl = ProductTypeUrl.manageBooking;\r\n }\r\n }\r\n private getProductInfo(): Packages | Experiences | Accommodation | ExpressInitialData | TravelPassesInitialData {\r\n return this.Packages || this.Experiences || this.Accommodation || this.ExpressInitialData || this.TravelPassesInitialData;\r\n }\r\n public get ProductDetailsUrl(): string {\r\n const p = this.getProductInfo();\r\n if (p instanceof ExpressInitialData) {\r\n throw new Error('Express booking does not have a details page');\r\n }\r\n return p.DetailsUrl;\r\n }\r\n public get ProductPassengersUrl(): string {\r\n const p = this.getProductInfo();\r\n if (p instanceof ExpressInitialData) {\r\n return p.PassengersUrl;\r\n }\r\n return p.PassengersUrl;\r\n }\r\n public get ProductPaymentUrl(): string {\r\n const p = this.getProductInfo();\r\n if (p instanceof ExpressInitialData) {\r\n return p.PaymentUrl;\r\n }\r\n return p.ParentFolderUrl;\r\n }\r\n public get ProductAvailability(): string {\r\n const p = this.getProductInfo();\r\n if (p instanceof ExpressInitialData && !(p instanceof TravelPassesInitialData)) {\r\n return p.AvailabilityUrl;\r\n }\r\n return p.ParentFolderUrl;\r\n }\r\n public get ProductParentFolderUrl(): string {\r\n const p = this.getProductInfo();\r\n return p.ParentFolderUrl;\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/availability.model.ts","export class BookingTotalKms {\r\n constructor(public isBookingVerified: boolean, public farePriceKMS: number,\r\n public balanceBeforePayment: number, public balanceAfterPayment: number, public isLogout: boolean) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/booking-total.model.ts","import { Passenger, PassengerFormModel } from \"./passenger.model\";\r\nimport { ProductTypeUrl } from \"app/shared/models/enums/ProductTypeUrl.enum\";\r\nimport { Availability } from \"app/shared/models/availability.model\";\r\nimport {\r\n PassengerRequest,\r\n GetTravelOptions,\r\n PassOptions\r\n} from \"app/shared/services/booking.service\";\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\n\r\nexport class Booking {\r\n BookingGuid: string;\r\n BookingNumber: string;\r\n ProductType: string;\r\n FareBasis: Array<Farebasis>;\r\n FareTypes: Array<FareType>;\r\n PassDaysRemaining: number;\r\n Pin: number;\r\n BookingDate: Date;\r\n Tours: Array<any>;\r\n PassKms: string;\r\n PassKmsUsed: string;\r\n Pass: Pass;\r\n Package: Package;\r\n PassExpiry: Date;\r\n TicketUrl: string;\r\n Sectors: Array<Sector>;\r\n HasReturnTravel: boolean;\r\n CustomerGuid: string;\r\n SendConfirmation: boolean;\r\n // Added to booking\r\n IS_TICKETED: boolean;\r\n ShowAddTravelBtn: boolean;\r\n TransactionNumber: string;\r\n TpProducts: Array<TpProduct>;\r\n NursingInfants: number;\r\n\r\n Passengers: Array<Passenger>;\r\n // Added to booking to pay using kms\r\n balanceBeforePayment: number;\r\n balanceAfterPayment: number;\r\n kmsPassName: string;\r\n visible: boolean;\r\n // addTravelToBooking\r\n travels: Availability[];\r\n addons: Array<Addon>;\r\n cartTotal: Totals;\r\n pass: Pass;\r\n passengerDetails: PassengerFormModel; // TODO check Passenger;\r\n promocode: string;\r\n promocodeDescription: string;\r\n requiresVisa: boolean;\r\n visaNumber: string;\r\n visaPromoCode: string;\r\n ShowExtendPassBtn: boolean;\r\n FullPackageCartTotal: number;\r\n PromotionDescription: string;\r\n\r\n public static getMainObject(\r\n parentBooking: Booking,\r\n productType: ProductTypeUrl,\r\n firstElementIfArray: boolean\r\n ): any | any[] | Pass | Package | null | TourOrExperience {\r\n let obj = null;\r\n if (!!parentBooking && !!parentBooking.Tours) {\r\n switch (productType) {\r\n case ProductTypeUrl.accommodation:\r\n case ProductTypeUrl.experience:\r\n if (firstElementIfArray) {\r\n obj = parentBooking.Tours[0];\r\n } else {\r\n obj = parentBooking.Tours;\r\n }\r\n break;\r\n case ProductTypeUrl.travelPasses:\r\n obj = parentBooking.Pass;\r\n break;\r\n case ProductTypeUrl.package:\r\n obj = parentBooking.Package;\r\n break;\r\n case ProductTypeUrl.manageBooking:\r\n obj = parentBooking.Pass;\r\n break;\r\n default:\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n public static getPassengerCountWithExclusions(b: Booking): number {\r\n let totalPax = this.getPassengerCount(b);\r\n GxConstants.EXPRESS_ADDONS_FAREBASIS_EXCLUSIONS.forEach(ex => {\r\n b.FareBasis.forEach(fb => {\r\n if(fb.FarebasisCode.toUpperCase().trim() == ex.toUpperCase().trim()){\r\n totalPax --;\r\n }\r\n })\r\n })\r\n return totalPax;\r\n }\r\n\r\n public static getPassengerCount(b: Booking): number {\r\n let totalPax = 0;\r\n b.Passengers.forEach(p => {\r\n totalPax += p.MaleCount;\r\n totalPax += p.FemaleCount;\r\n });\r\n return totalPax;\r\n }\r\n}\r\nexport class OptionValueEntityInstance {\r\n Selected: boolean;\r\n SalePriceUnit: number;\r\n ProductCode: string;\r\n IsReturn: boolean;\r\n UsageDate: string;\r\n OnlineDescription: string;\r\n OnlineDescriptionAlternate: string;\r\n SoldDescription: string;\r\n MatchingProductCodes: string;\r\n}\r\nexport class AddonOption {\r\n Selected: boolean;\r\n OptionValueEntity: Array<OptionValueEntityInstance>;\r\n FieldType: string;\r\n UserSelection;\r\n ProductCode: string;\r\n SalePriceUnit: string;\r\n UsageDate: string;\r\n Quantity: number;\r\n CanPurchase: boolean;\r\n Show: boolean;\r\n}\r\nexport class GetAddonsOptions {\r\n FuelSurcharge: number;\r\n IsReturn: boolean;\r\n\r\n constructor(\r\n private ProductRef: string,\r\n private FarePrice: number,\r\n private PassengerQty: number\r\n ) {}\r\n}\r\nexport class FlattenedAddon {\r\n productCode: string;\r\n salePriceUnit: number;\r\n Type: string;\r\n quantity: number;\r\n usageDate: string;\r\n\r\n public constructor(productCode, salePriceUnit) {\r\n this.productCode = productCode;\r\n this.salePriceUnit = salePriceUnit;\r\n }\r\n}\r\nexport class FareTypeOption {\r\n constructor(\r\n public Amount: number,\r\n public AddonType: string,\r\n public FareTypeCode: string,\r\n public UsageDate: string\r\n ) {}\r\n}\r\nexport class CreateBookingOptions {\r\n Passenger: PassengerRequest;\r\n Travels: Array<GetTravelOptions>;\r\n InsuranceAmount: number;\r\n ProcessingFeeAmount: number;\r\n ThirdPartyAddons: Array<FareTypeOption>;\r\n Addons: Array<FareTypeOption>;\r\n SelectedLoyaltyProgram: number;\r\n CustomerWishsToUseFreeTrip: boolean;\r\n CustomerGuid: string;\r\n Pass: PassOptions;\r\n BookingGuid: string;\r\n}\r\nexport class Addon {\r\n IconUrl: string;\r\n Title: string;\r\n Description: string;\r\n Notes: string;\r\n Collapsed: boolean;\r\n // TODO Which on is right?\r\n Type: string;\r\n AddonType: string;\r\n\r\n productCode: string;\r\n\r\n salePriceUnit: number;\r\n\r\n AddonOptions: Array<AddonOption>;\r\n AddonEntityGuid: string;\r\n SectorAddon: boolean;\r\n // constructor(private max: number, private males = 0, private females = 0) {\r\n //\r\n // }\r\n}\r\nexport class Item {\r\n Amount: number;\r\n Quantity: number;\r\n Name: string;\r\n ProductCode: string;\r\n PromoCode: string;\r\n PromoDescription: string;\r\n}\r\nexport class PaymentItem {\r\n Sku: string;\r\n Items: Array<Item>;\r\n Message: string;\r\n Total: number;\r\n Description: string;\r\n}\r\nexport class Totals {\r\n TotalCost: number;\r\n CreditsEarned: number;\r\n RedemptionPortion: number;\r\n PaymentItems: Array<PaymentItem>;\r\n}\r\n\r\nexport class Location {\r\n Code: string;\r\n Coordinates: string;\r\n Description: string;\r\n Image1: string;\r\n Image1AltText: string;\r\n Image2: string;\r\n Image2AltText: string;\r\n Index: number;\r\n LocationText: string;\r\n Priority: number;\r\n RegionDescription: string;\r\n Status: boolean;\r\n UrlReference: string;\r\n\r\n public toString() {\r\n return this.Code;\r\n }\r\n}\r\n\r\nexport class Sector {\r\n SectorNumber: number;\r\n ServiceNumber: number;\r\n OriginStopCode: string;\r\n DestinationStopCode: string;\r\n PassengerBoardingDate: string;\r\n // mutable\r\n timetable: any;\r\n timetableDisplayed: boolean;\r\n displayChangeDate: boolean;\r\n departureDate: string;\r\n SpecialType: string;\r\n SectorGuid: string;\r\n OpenDatedUntil: string;\r\n IsWifiEnabledService: boolean;\r\n ShowChangeSectorBtn: boolean;\r\n ShowDeleteSectorBtn: boolean;\r\n OriginName: string;\r\n OriginLatitude: string;\r\n OriginLongitude: string;\r\n DestinationName: string;\r\n DestinationLatitude: string;\r\n DestinationLongitude: string;\r\n PassengerArrivalDate: string;\r\n TotalDurationText: string;\r\n ServiceCompany: string;\r\n FareType: string;\r\n IsFirstOriginatingSector: boolean;\r\n IsFirstReturnSector: boolean;\r\n Addons: Array<Addon>;\r\n\r\n hasAddon(ovei: OptionValueEntityInstance): boolean {\r\n let addonExists = false;\r\n this.Addons.forEach(a => {\r\n a.AddonOptions.forEach(o => {\r\n o.OptionValueEntity.forEach(ov => {\r\n if(ovei.ProductCode === ov.ProductCode){\r\n addonExists = true;\r\n }\r\n })\r\n })\r\n })\r\n return addonExists;\r\n }\r\n}\r\n\r\nexport class TpProduct {\r\n Name: string;\r\n SalePrice: number;\r\n ProductCode: string;\r\n TourGuid: string;\r\n QuantityToBook: number;\r\n UsageDate: string;\r\n TicketNumber: string;\r\n}\r\n\r\nabstract class Product {\r\n FareTypes: Array<FareType>;\r\n SelectedFareType: string;\r\n PromotionCode: string;\r\n PromotionDescription: string;\r\n LinkedToSector: boolean;\r\n}\r\n\r\nexport class TourOrExperience extends Product {\r\n Name: string;\r\n DisplayDescription: string;\r\n TourGuid: string;\r\n TourReference: string;\r\n SelectedDate: string;\r\n SelectedCurrency: string;\r\n SelectedCurrencyAmount: number;\r\n PurchaseNumber: string;\r\n ProductStatus: number;\r\n Image2: string;\r\n Description: string;\r\n Quantity: number;\r\n}\r\n\r\nexport class Package extends Product {\r\n Locations: Array<Location>;\r\n Inclusions: Array<Inclusion>;\r\n PackageGuid: string;\r\n RequiresTravel: boolean;\r\n OneWayTravel: boolean;\r\n PrimaryLocationCode: string;\r\n SuggestedDepDate: string;\r\n SuggestedRetDate: string;\r\n DestinationLocationCode: string;\r\n DestinationLocationName: string;\r\n ShowTravel: boolean;\r\n UniqueId: string;\r\n PackageReference: string;\r\n LimitedStops: boolean;\r\n Name: string;\r\n Image2: string;\r\n Description: string;\r\n}\r\nexport class Pass extends Product {\r\n PassReference: string;\r\n PassGuid: string;\r\n Name: string;\r\n CategoryReference: string;\r\n}\r\nexport class Inclusion {\r\n Name: string;\r\n SelectedDate: string;\r\n SortOrder: number;\r\n TourGuid: string;\r\n ShowUsageDate: boolean;\r\n FareTypes: Array<FareType>;\r\n ProductStatus: number;\r\n PurchaseNumber: string;\r\n ProductCode: string;\r\n // added\r\n invisible: boolean;\r\n tourGuids: string[];\r\n}\r\n\r\nexport class FareType {\r\n Farebasis: Farebasis;\r\n FareTypeCode: string;\r\n Description: string;\r\n BookDaysPriorTo: number;\r\n OperatingDays: Array<string>;\r\n RequiresUsageDate: boolean;\r\n ShowUsageDate: boolean;\r\n SalePrice: number;\r\n SalePriceKM: number;\r\n TotalPrice: number;\r\n OnlineName: string;\r\n InternetDescription: string;\r\n DisplayDescription: string;\r\n\r\n get descriptionToDisplay(): string {\r\n return this.OnlineName;\r\n }\r\n}\r\n\r\nexport class Farebasis {\r\n FarebasisCode: string;\r\n DisplayDescription: string;\r\n SalePrice: number;\r\n TotalPrice: number;\r\n ReportingGroup: string;\r\n NumberToBook: number;\r\n InternetDescription: string;\r\n RequiresVisa: boolean;\r\n PromotionDescription: string;\r\n}\r\n\r\nexport class BookingManagementHeaders {\r\n BookingDetailsExpanded: boolean;\r\n PassengerDetailsExpanded: boolean;\r\n ItineraryExpanded: boolean;\r\n\r\n constructor() {\r\n this.BookingDetailsExpanded = false;\r\n this.PassengerDetailsExpanded = false;\r\n this.ItineraryExpanded = false;\r\n }\r\n}\r\nexport class AddonEntity {\r\n Description: string;\r\n OnlineDescription: string;\r\n ProductCode: string;\r\n PromoCode: string;\r\n SalePriceUnit: number;\r\n Selected: boolean;\r\n UsageDate: string;\r\n Used: boolean;\r\n}\r\nexport class AddonResponse {\r\n type: string;\r\n entities: Array<AddonEntity>;\r\n description: string;\r\n}\r\n\r\nexport class ServiceUpdate {\r\n constructor(\r\n public ReasonDescription?: string,\r\n public PublishDate?: string,\r\n public Update?: string\r\n ) {}\r\n}\r\n\r\nexport class TravelCentre {\r\n ID: string;\r\n TerminalName: string;\r\n Address1: string;\r\n Address2: string;\r\n Latitude: string;\r\n Longitude: string;\r\n Phone1: string;\r\n OpenMon: string;\r\n OpenTue: string;\r\n OpenWed: string;\r\n OpenThu: string;\r\n OpenFri: string;\r\n OpenSat: string;\r\n OpenSun: string;\r\n}\r\n\r\nexport class ContextDataResolve {\r\n contextData: any;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/booking.model.ts","export class Dictionary<T> {\r\n [K: string]: T;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/dictonary.model.ts","export enum ProductTypeUrl {\r\n package = 1,\r\n experience = 2,\r\n accommodation = 3,\r\n travelPasses = 4,\r\n expressBooking = 5,\r\n manageBooking = 6\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/enums/ProductTypeUrl.enum.ts","export enum ITINERARY_CONTEXT {\r\n BOOK_NOW,\r\n MY_GREYHOUND\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/enums/context.enum.ts","import { Passenger } from 'app/shared/models/passenger.model';\r\nimport { Booking } from '../../shared/models/booking.model';\r\nexport class UpdateBookingOptions {\r\n public emitPassengers = true;\r\n constructor(public index: number, public booking: Booking, public savedPassengerGuid: string, emitPassengers?: boolean) { \r\n if(emitPassengers !== undefined){\r\n this.emitPassengers = emitPassengers;\r\n }\r\n }\r\n}\r\nexport class UpdatePassengerGuidsOptions {\r\n constructor(public passengers: Passenger[]) { }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/events.model.ts","export class PassengerFormModel {\r\n firstName: string;\r\n surname: string;\r\n gender: string;\r\n country: string;\r\n email: string;\r\n phone: string;\r\n concessionCard1: string;\r\n concessionCard2: string;\r\n concessionLater: boolean;\r\n concessionCount: number;\r\n state: string;\r\n postcode: string;\r\n males: number;\r\n females: number;\r\n studentCard1: string;\r\n studentCard2: string;\r\n studentLater: boolean;\r\n studentCount: number;\r\n requiresVisa: boolean;\r\n visaNumber: string;\r\n visaPromoCode: string;\r\n constructor() {\r\n this.gender = '';\r\n this.country = '';\r\n }\r\n}\r\nexport class Passengers {\r\n adults: number;\r\n infants: number;\r\n nursedInfant: number;\r\n seatedInfant: number;\r\n requiresSpecialAssistance: boolean;\r\n specialAssistanceType: number;\r\n accompaniedChildren: number;\r\n concessionCard1: string;\r\n concessionCard2: string;\r\n concessionLater: boolean;\r\n studentCard1: string;\r\n studentCard2: string;\r\n studentLater: boolean;\r\n concessions: number;\r\n students: number;\r\n gender: string;\r\n constructor(adults?: number,\r\n concessions?: number,\r\n accompaniedChildren?: number,\r\n infants?: number,\r\n nursedInfant?: number,\r\n seatedInfant?: number,\r\n concessionCard1?: string,\r\n concessionCard2?: string,\r\n requiresSpecialAssistance?: boolean,\r\n specialAssistanceType?: number,\r\n concessionLater?: boolean,\r\n studentCard1?: string,\r\n studentCard2?: string,\r\n studentLater?: boolean,\r\n students?: number\r\n ) {\r\n this.adults = adults;\r\n this.concessions = concessions;\r\n this.accompaniedChildren = accompaniedChildren;\r\n this.infants = infants;\r\n this.nursedInfant = nursedInfant;\r\n this.seatedInfant = seatedInfant;\r\n this.concessionCard1 = concessionCard1;\r\n this.concessionCard2 = concessionCard2;\r\n this.concessionLater = concessionLater;\r\n this.studentCard1 = studentCard1;\r\n this.studentCard2 = studentCard2;\r\n this.studentLater = studentLater;\r\n this.students = students;\r\n }\r\n}\r\nexport class UpdatePassengerOption {\r\n constructor(private passenger: Passenger, private bookingGuid: string) { }\r\n}\r\n\r\nexport class Passenger {\r\n Address: string;\r\n City: string;\r\n Concession: string;\r\n Concession2: string;\r\n Country: string;\r\n DOB: Date;\r\n Email: string;\r\n FemaleCount: number;\r\n FirstName: string;\r\n MaleCount: number;\r\n Phone: string;\r\n PassengerGuid: string;\r\n PostCode: string;\r\n SATypeDescription: string;\r\n State: string;\r\n Surname: string;\r\n Title: string;\r\n Gender: string;\r\n PurchaseNumber: number;\r\n Index: number;\r\n // added\r\n fareTypeDescription: string;\r\n visible: boolean;\r\n header: string;\r\n RequiresVisa: boolean;\r\n VisaNumber: string;\r\n VisaPromoCode: string;\r\n constructor() {\r\n this.Gender = '';\r\n this.Country = '';\r\n }\r\n\r\n public isANewPassenger(): boolean {\r\n return this.Index === 0;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/passenger.model.ts","import { Passengers } from './passenger.model';\r\nimport { AddonEntity } from './booking.model';\r\nimport { StopItem } from '../services/reference-data.service';\r\n\r\nexport class Message {\r\n constructor(public level: string, public detail: string) { }\r\n\r\n public isError() {\r\n return this.detail === 'Error';\r\n }\r\n}\r\nexport enum TimeRadioButton {\r\n ANY_TIME = 'Any time',\r\n AM = 'AM',\r\n PM = 'PM'\r\n}\r\nexport class TimeTableTravelOptions {\r\n fromStop: any;\r\n from: string; // Code\r\n toStop: any;\r\n to: string; // Code\r\n isArriving?: boolean;\r\n departAfter?: string;\r\n arriveBy?: string;\r\n time?: TimeRadioButton;\r\n\r\n passengers: Passengers;\r\n promoCode: string;\r\n}\r\nexport class TravelOptions {\r\n options: AvailabilityOption;\r\n to: StopItem;\r\n from: StopItem;\r\n passengers: Passengers;\r\n get returnDate() {\r\n return this.options.isReturn ? this.options.TravelLegs[1].travelDate : null;\r\n }\r\n get departureDate() {\r\n return this.options.TravelLegs[0].travelDate;\r\n }\r\n get isReturn() {\r\n return this.options.isReturn;\r\n }\r\n get promoCode() {\r\n return this.options.TravelLegs[0].promotionCode;\r\n }\r\n}\r\nexport class TravelLeg {\r\n constructor(\r\n public origin?: any,\r\n public destination?: any,\r\n public travelDate?: string,\r\n public promotionCode?: string,\r\n ) { }\r\n}\r\nexport class AvailabilityOption {\r\n // there is no seatedInfants\r\n constructor(public agentCode?: string,\r\n public fareBasis1Code?: string,\r\n public fareBasis1Count?: number,\r\n public fareBasis2Code?: string,\r\n public fareBasis2Count?: number,\r\n public fareBasis3Code?: string,\r\n public fareBasis3Count?: number,\r\n public isReturn?: boolean,\r\n public nursedInfants?: number,\r\n public specialAssistance?: boolean,\r\n public sATypeId?: number,\r\n public TravelLegs?: Array<TravelLeg>,\r\n public currentSlide?: number,\r\n public getAlternates?: boolean,\r\n public getNextAvailable?: boolean) {\r\n this.sATypeId = !!sATypeId ? sATypeId : 0;\r\n this.TravelLegs = !!TravelLegs ? TravelLegs : [];\r\n this.currentSlide = !!currentSlide ? currentSlide : 0;\r\n this.getAlternates = !!getAlternates ? getAlternates : true;\r\n this.getNextAvailable = !!getNextAvailable ? getNextAvailable : false;\r\n }\r\n}\r\n\r\nexport class GetTimetableOption {\r\n constructor(public origin: string,\r\n public destination: string,\r\n public departAfter: string,\r\n public arriveBy: string) {\r\n }\r\n}\r\nexport class PostTimetableOption {\r\n constructor(private serviceNumber: number, private originStopCode: string, private destinationStopCode: string) { }\r\n}\r\nexport class TimetableResponse {\r\n type: string;\r\n entities: Array<AddonEntity>;\r\n}\r\n\r\nexport class PickadateContext {\r\n select: number;\r\n clear: any;\r\n}\r\n\r\nexport class RouteOption {\r\n DepartureDate: string;\r\n ArrivalDate: string;\r\n Connections: number;\r\n RouteHeader: string;\r\n RouteServices: Array<RouteService>;\r\n Fares: Array<any>;\r\n}\r\nexport class RouteService {\r\n Stops: Array<Stop>;\r\n}\r\nexport class Stop {\r\n StopDetails: Array<StopDetailsContainer>;\r\n date: string;\r\n ArrivalDate: string;\r\n DepartureDate: string;\r\n}\r\nexport class StopDetailsContainer {\r\n Address: string;\r\n Addresses: StopAddress[];\r\n AddressNumber: number;\r\n AvailableOnline: boolean;\r\n Code: string;\r\n ContractStop: boolean;\r\n Description: string;\r\n DestinationCode: string;\r\n DestinationName: string;\r\n ID: number;\r\n IsPopular: boolean;\r\n IsTerminal: boolean;\r\n Latitude: number;\r\n Longitude: number;\r\n Offset: number;\r\n OriginDisplayName: string;\r\n Radius: number;\r\n SortOrder: number;\r\n State: string;\r\n StateCode: string;\r\n StateId: number;\r\n StateName: string;\r\n StopOver: boolean;\r\n StreetAddress: string;\r\n TerminalDetails: string;\r\n TownName: string;\r\n TownUFI: string;\r\n Type: string;\r\n StopDetails: string;\r\n}\r\n\r\nexport class StopAddress {\r\n Address: string;\r\n AddressNumber: number;\r\n Latitude: number;\r\n Longitude: number;\r\n Memo: string;\r\n Radius: number;\r\n}\r\nexport class Link {\r\n public Url: string;\r\n public Name: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/models/timetables.model.ts","import { Pipe, PipeTransform, Injectable } from '@angular/core';\r\n@Pipe({\r\n name: 'filterResults'\r\n})\r\n@Injectable()\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any[], field : string, value : string): any[] { \r\n if (!items) return [];\r\n\r\n if (!value || value.length == 0) return items;\r\n\r\n var results = items.filter(it => \r\n it[field].toString().toLowerCase().indexOf(value.toLowerCase()) !=-1);\r\n return results;\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/filter.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\n@Pipe({\r\n name: 'gxDate'\r\n})\r\nexport class GxDatePipe implements PipeTransform {\r\n\r\n constructor() { }\r\n\r\n transform(value: string, shortHandFormat: string): string {\r\n value = value || '';\r\n const formats = {\r\n 'time': 'h:mm A', //(e.g. 9:05 PM)\r\n 'date': 'ddd, D MMM YYYY', //(e.g. Fri, 3 Sep 2010) ...old 'long'\r\n 'default': 'ddd, D MMM YYYY h:mm A', //e.g. Thu, 20 Oct 2016 09:00 AM\r\n 'shortdate': 'YYYY-MM-DD' };\r\n let chosenFormat = formats[shortHandFormat];\r\n if (!chosenFormat) {\r\n chosenFormat = shortHandFormat;\r\n }\r\n\r\n const output = moment(value).format(chosenFormat);\r\n return output;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/gx-date.pipe.ts","import { Pipe, PipeTransform, Injectable } from '@angular/core';\r\nimport { Passengers } from 'app/shared/models/passenger.model';\r\n@Pipe({\r\n name: 'prettyPassenger'\r\n})\r\n@Injectable()\r\nexport class PrettyPassengerPipe implements PipeTransform {\r\n transform(input: Passengers): any {\r\n const adults = input.adults,\r\n concessions = input.concessions,\r\n students = input.students,\r\n children = input.accompaniedChildren,\r\n seatedInfant = input.seatedInfant,\r\n nursedInfant = input.nursedInfant,\r\n passengersPretty = [];\r\n\r\n if (!!adults) {\r\n if (adults > 1) {\r\n passengersPretty.push(adults + 'x Adults');\r\n } else {\r\n passengersPretty.push(adults + 'x Adult');\r\n }\r\n }\r\n if (!!concessions) {\r\n if (concessions > 1) {\r\n passengersPretty.push(concessions + 'x Concessions');\r\n } else {\r\n passengersPretty.push(concessions + 'x Concession');\r\n }\r\n }\r\n if (!!students) {\r\n if (students > 1) {\r\n passengersPretty.push(students + 'x Students');\r\n } else {\r\n passengersPretty.push(students + 'x Student');\r\n }\r\n }\r\n if (!!children) {\r\n if (children > 1) {\r\n passengersPretty.push(children + 'x Children');\r\n } else {\r\n passengersPretty.push(children + 'x Child');\r\n }\r\n }\r\n if (!!seatedInfant) {\r\n if (seatedInfant > 1) {\r\n passengersPretty.push(seatedInfant + 'x Seated Infants');\r\n } else {\r\n passengersPretty.push(seatedInfant + 'x Seated Infant');\r\n }\r\n }\r\n if (!!nursedInfant) {\r\n if (nursedInfant > 1) {\r\n passengersPretty.push(nursedInfant + 'x Nursed Infants');\r\n } else {\r\n passengersPretty.push(nursedInfant + 'x Nursed Infant');\r\n }\r\n }\r\n return passengersPretty.join(', ');\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/pretty-passenger.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { DomSanitizer } from '@angular/platform-browser'\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n\r\n constructor(private sanitized: DomSanitizer) { }\r\n\r\n transform(value: any, args?: any): any {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/safe-html.pipe.ts","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport { Dictionary } from '../models/dictonary.model';\r\nimport { LocalStorageService } from '../services/local-storage.service';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\n@Pipe({\r\n name: 'translate'\r\n})\r\nexport class TranslatePipe implements PipeTransform {\r\n\r\n translationCache = new Dictionary<string>();\r\n\r\n constructor(private http: Http,\r\n private localStorageService: LocalStorageService) {\r\n this.translationCache = this.localStorageService.getTranslationCache();\r\n }\r\n\r\n transform(value: string) {\r\n const cachedValue = this.translationCache[value];\r\n // cachedValue = null;\r\n if (cachedValue == null) {\r\n const prom = this.http.get('/umbraco/api/Dictionary/Translate?key=' + value, null).map(r => r.json());\r\n prom.subscribe((data) => {\r\n this.localStorageService.saveTranslation(value, data);\r\n });\r\n return prom;\r\n } else {\r\n const dictionaryVal = new ReplaySubject<String>();\r\n dictionaryVal.next(cachedValue);\r\n return dictionaryVal;\r\n }\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/pipes/translate.pipe.ts","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\n\r\nimport { GenericContentPage } from './generic-content-page.model';\r\nimport { HeadlessCmsService } from '../services/headless-cms.service';\r\n\r\n@Injectable()\r\nexport class GenericContentPageResolve implements Resolve<GenericContentPage> {\r\n\r\n constructor(private headlessCmsService: HeadlessCmsService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot) {\r\n const path = route.pathFromRoot\r\n .map(function (route) {\r\n if (route.url[0]) {\r\n if (route.url.length > 1) {\r\n return route.url[0].path + '/' + route.url[1].path;\r\n }\r\n else {\r\n return route.url[0].path;\r\n }\r\n } else {\r\n return ''\r\n }\r\n })\r\n .reduce((fullPath, urlSegment) => {\r\n return fullPath + urlSegment + '/';\r\n }, '')\r\n .replace('//', '/');\r\n return this.headlessCmsService.getGenericContentByPath(path);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/resolver/generic.resolve.ts","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs/Subject\";\r\nimport * as _ from \"lodash\";\r\nimport { Observable } from \"rxjs/Observable\";\r\n@Injectable()\r\nexport class ActionUpdaterService {\r\n // Observable string sources\r\n public successSource = new Subject<string>();\r\n public clearSource = new Subject<boolean>();\r\n public errorSource = new Subject<ApiError[]>();\r\n\r\n // Observable string streams\r\n success$ = this.successSource.asObservable();\r\n clear$ = this.clearSource.asObservable();\r\n\r\n // Asynchronous container\r\n public errors = new Subject<Array<ApiError>>();\r\n\r\n constructor() {}\r\n\r\n // DO NOT ADD ANY TIMEOUT\r\n announceSuccess(msg: string) {\r\n this.clearSource.next(true);\r\n this.successSource.next(msg);\r\n }\r\n // DO NOT ADD ANY TIMEOUT\r\n announceError(msg: ApiError) {\r\n this.errors.next([msg]);\r\n }\r\n // DO NOT ADD ANY TIMEOUT\r\n announceErrors(msg: ApiError[]) {\r\n this.errors.next(msg);\r\n }\r\n // DO NOT ADD ANY TIMEOUT\r\n announceClear(msg: boolean) {\r\n this.errors.next([]);\r\n this.clearSource.next(msg);\r\n }\r\n\r\n // Should transition everything to ApiServerError\r\n onError = (error: ApiServerError | ApiError) => {\r\n let errorToAnnounce = new ApiError();\r\n if (_.has(error, \"ErrorSummary\")) {\r\n const apiServerError = error as ApiServerError;\r\n errorToAnnounce.summary = apiServerError.ErrorSummary;\r\n errorToAnnounce.details = !!apiServerError.Message\r\n ? [apiServerError.Message]\r\n : apiServerError.Errors.map(v => v.Value);\r\n } else {\r\n errorToAnnounce = error as ApiError;\r\n }\r\n this.announceError(errorToAnnounce);\r\n };\r\n}\r\n\r\nexport class ApiError {\r\n constructor(\r\n public summary?: string,\r\n public details?: Array<string>,\r\n public message?: string\r\n ) {\r\n if (!!message && message.length > 0) {\r\n this.details = [message];\r\n }\r\n }\r\n}\r\n\r\nexport class ApiServerError {\r\n constructor(\r\n public ErrorSummary: string,\r\n public Message: string,\r\n public Errors?: Array<ErrorKeyValue>\r\n ) {}\r\n}\r\n\r\nexport class ErrorKeyValue {\r\n public Key: string;\r\n public Value: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/action-updater.service.ts","\r\nimport * as _ from 'lodash';\r\nimport { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { Addon, FlattenedAddon, AddonOption, GetAddonsOptions, OptionValueEntityInstance } from 'app/shared/models/booking.model';\r\n\r\n@Injectable()\r\nexport class AddonsService {\r\n\r\n constructor(private readonly http: Http) {}\r\n\r\n getAddons = (options: GetAddonsOptions) => {\r\n return this.http.post('/umbraco/api/booking/addons', options, null);\r\n }\r\n\r\n getPassGetAddonsOptions = (total, productRef) => {\r\n return new GetAddonsOptions( productRef, total, 1);\r\n }\r\n\r\n getExpressGetAddonsOptions = (total, fuelSurcharge, passengersQty, isReturn) => {\r\n const options = new GetAddonsOptions(GxConstants.PRODUCTS_REF.EXPRESS, total, passengersQty);\r\n options.FuelSurcharge = fuelSurcharge;\r\n options.IsReturn = isReturn;\r\n return options;\r\n }\r\n\r\n getAddonsAnswers = (addons: Array<Addon>) => {\r\n var answers = [];\r\n _.each(addons,\r\n addon => {\r\n\r\n //and for each question...\r\n _.each(addon.AddonOptions,\r\n option => {\r\n const answer = this.getAnswer(option);\r\n if (answer) {\r\n const productCode = addon.AddonType === GxConstants.FARETYPE_CODES.THIRD_PARTY\r\n ? answer.productCode\r\n : null,\r\n type = addon.AddonType,\r\n quantity = 1,\r\n salePriceUnit = answer.salePriceUnit,\r\n usageDate = option.UsageDate;\r\n let result = new FlattenedAddon(productCode, salePriceUnit);\r\n result.Type = type;\r\n result.quantity = quantity;\r\n result.usageDate = usageDate;\r\n answers.push(result);\r\n }\r\n\r\n });\r\n });\r\n\r\n return answers;\r\n }\r\n\r\n private getAnswer = (option: AddonOption) => {\r\n if (option.FieldType === GxConstants.FIELD_TYPE.CHECKBOX) {\r\n if (option.Selected) {\r\n return new FlattenedAddon(option.ProductCode, option.OptionValueEntity[0].SalePriceUnit);\r\n };\r\n }\r\n if (option.FieldType === GxConstants.FIELD_TYPE.RADIO) {\r\n if (!!option.UserSelection) {\r\n return new FlattenedAddon(option.UserSelection.ProductCode, option.UserSelection.SalePriceUnit);\r\n }\r\n }\r\n// throw new Error(`answer handler for fieldType '${option.FieldType}' has not being implemented.`);\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/addons.service.ts","import { Injectable, ElementRef } from '@angular/core';\r\n@Injectable()\r\nexport class AutocompleteOffService {\r\n /**\r\n * https://stackoverflow.com/questions/12374442/chrome-browser-ignoring-autocomplete-off?page=1&tab=votes#tab-top\r\n * @param elementRef\r\n */\r\n turnAutocompleteOff(elementRef: ElementRef) {\r\n const element = elementRef.nativeElement;\r\n if (element.hasAttribute('readonly')) {\r\n element.removeAttribute('readonly');\r\n // fix for mobile safari to show virtual keyboard\r\n element.blur();\r\n // fix firefox\r\n setTimeout(() => { element.focus(); }, 1);\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/autocomplete-off.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { BehaviorSubject } from 'rxjs/BehaviorSubject';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\nimport * as error from '../../shared/components/error-summary/error-handler.function';\r\nimport { Booking, Pass, Addon, FlattenedAddon, CreateBookingOptions, FareTypeOption, Package, AddonOption, OptionValueEntityInstance } from '../models/booking.model';\r\nimport { PassengerFormModel } from '../models/passenger.model';\r\nimport { PaymentItem } from '../models/booking.model';\r\nimport { Availability } from 'app/shared/models/availability.model';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\nimport { AddonsService } from 'app/shared/services/addons.service';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport * as _ from 'lodash';\r\nimport { CreateBookingsOption } from './travel-product.service';\r\n\r\n@Injectable()\r\nexport class BookingService {\r\n\r\n public bookingsSource = new BehaviorSubject(Array<Booking>());\r\n bookings = this.bookingsSource.asObservable();\r\n\r\n constructor(private http: Http,\r\n public initialDataService: InitialDataService,\r\n private addonsService: AddonsService) { }\r\n\r\n setBookings(b: Array<Booking>, clear: boolean = true){\r\n this.clearBookings(clear);\r\n let bookings: Array<Booking> = [];\r\n this.bookingsSource.value.forEach(booking => {\r\n bookings.push(booking);\r\n })\r\n b.forEach(booking => {\r\n bookings.push(booking);\r\n })\r\n this.bookingsSource.next(bookings);\r\n }\r\n\r\n setBooking(b: Booking, clear: boolean = true){\r\n this.clearBookings(clear);\r\n let bookings: Array<Booking> = [];\r\n this.bookingsSource.value.forEach(booking => {\r\n bookings.push(booking);\r\n })\r\n bookings.push(b);\r\n this.bookingsSource.next(bookings);\r\n }\r\n\r\n private clearBookings(clear: boolean = false) {\r\n if(clear){\r\n this.bookingsSource.next(new Array<Booking>());\r\n }\r\n }\r\n\r\n getBookingViaLogin = (options: GetBookingViaLoginOption) => {\r\n const url = `/umbraco/api/booking/GetBookingViaLogin`;\r\n return this.http.post(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n getBookingV2 = (bookingGuid) => {\r\n const url = `/umbraco/api/booking/getBookingV2?bookingGuid=${bookingGuid}`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n getBookingViaLoginWithPassMargin = (options: GetBookingViaLoginOption) => {\r\n const url = `/umbraco/api/booking/GetBookingViaLoginWithPassMargin`;\r\n return this.http.post(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n addSectorAndCommit = (options: SectorOptions) => {\r\n return this.http.put('/umbraco/api/booking/AddSectorAndCommit', options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n addSector = (options: SectorOptions) => {\r\n const url = '/umbraco/api/booking/addSector';\r\n return this.http.put(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n deleteSector = (options: DeleteSectorOptions) => {\r\n const url = `/umbraco/api/booking/DeleteSector?bookingGuid=${options.bookingGuid}§orNumber=${options.sectorNumber}`;\r\n return this.http.delete(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n\r\n }\r\n updateSector = (options: SectorOptions) => {\r\n return this.http.put('/umbraco/api/booking/updateSector', options, null)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n \r\n deleteSectorByGuid = (options: DeleteSectorByGuidOptions) => {\r\n const url = `/umbraco/api/booking/DeleteSectorByGuid?bookingGuid=${options.bookingGuid}§orGuid=${options.sectorGuid}`;\r\n return this.http.delete(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n deleteTourByGuid = (options: DeleteTourByGuidOptions) => {\r\n const url = `/umbraco/api/booking/DeleteTourByGuid?bookingGuid=${options.bookingGuid}&tourGuid=${options.tourGuid}`;\r\n return this.http.delete(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getGoogleTagsTransactionDetails = (bookingGuid: string) => {\r\n const url = `/umbraco/api/booking/getECommerceForBooking?bookingGuid=${bookingGuid}`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n getBookings(bookingGuid: string): Observable<Array<Booking>> {\r\n const getBookingsUrl = '/umbraco/api/booking/GetBooking';\r\n return this.http.get(`${getBookingsUrl}?bookingGuid=${bookingGuid}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n getPassCreateBookingOptions = (passAsAPackage: Package,\r\n cartTotalPaymentItems: Array<PaymentItem>,\r\n passengerOption: PassengerRequest,\r\n addons: Array<Addon>,\r\n promoCode: string,\r\n bookingGuid: string) => {\r\n\r\n const farebasis = passAsAPackage.FareTypes[0].Farebasis,\r\n option: CreateBookingOptions =\r\n this.hydrateExpressCreateBookingOptions(passengerOption, addons, cartTotalPaymentItems, bookingGuid);\r\n const ref = passAsAPackage.PackageReference;\r\n option.Pass = new PassOptions(ref, farebasis.FarebasisCode, promoCode);\r\n return option;\r\n }\r\n create = (options) => {\r\n console.log(options);\r\n return this.http.post('/umbraco/api/booking/create', options, null)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n getExpressCreateBookingOptions = (cartTotalPaymentItems: Array<PaymentItem>,\r\n addons: Array<Addon>,\r\n travels: Array<Availability>,\r\n passengerOption: PassengerRequest,\r\n selectedLoyaltyProgram: number,\r\n customerWishsToUseFreeTrip: boolean) => {\r\n\r\n const option: CreateBookingOptions = this.hydrateExpressCreateBookingOptions(passengerOption, addons, cartTotalPaymentItems, null);\r\n option.Travels = _.map(travels,\r\n (travel) => {\r\n return new GetTravelOptions(travel.TravelGUID, travel.RouteOptions[0].Fares[0].FareGUID);\r\n });\r\n option.SelectedLoyaltyProgram = selectedLoyaltyProgram;\r\n option.CustomerWishsToUseFreeTrip = customerWishsToUseFreeTrip;\r\n return option;\r\n }\r\n\r\n getAddons = (options) => {\r\n return this.http.post('/umbraco/api/booking/addons', options, null)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n addAddonsToBooking = (options) => {\r\n return this.http.put('/umbraco/api/booking/AddAddonsToBooking', options, null)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n addAddonsToBookingV1 = (options) => {\r\n return this.http.put('/umbraco/api/booking/AddAddonsToBookingV1', options, null)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n private extractJson(res: Response) {\r\n return res.json();\r\n }\r\n private hydrateExpressCreateBookingOptions = (passengerOption: PassengerRequest,\r\n addons: Array<Addon>,\r\n cartTotalPaymentItems: Array<PaymentItem>,\r\n bookingGuid: string): CreateBookingOptions => {\r\n\r\n console.log('addons');\r\n console.log(addons);\r\n const flattenedAddonAnswers = this.addonsService.getAddonsAnswers(addons),\r\n addonBreakdown = this.getAddonBreakdown(flattenedAddonAnswers || [], cartTotalPaymentItems);\r\n\r\n console.log('flattenedAddonAnswers');\r\n console.log(flattenedAddonAnswers);\r\n const insurance = addonBreakdown.insurance,\r\n thirdPartyAddons = addonBreakdown.thirdPartyAddons,\r\n otherAddons = addonBreakdown.addons,\r\n processingFee = addonBreakdown.processingFee,\r\n customerGuid = !!this.initialDataService.userData ? this.initialDataService.userData.CustomerGuid : null,\r\n option = new CreateBookingOptions();\r\n\r\n option.Passenger = passengerOption;\r\n\r\n option.InsuranceAmount = !!insurance ? insurance.salePriceUnit : 0;\r\n option.ProcessingFeeAmount = !!processingFee ? processingFee.Total : 0;\r\n option.ThirdPartyAddons = _.map(thirdPartyAddons, this.toFareTypeOption);\r\n option.Addons = _.map(otherAddons, this.toFareTypeOption);\r\n option.CustomerGuid = customerGuid;\r\n option.BookingGuid = bookingGuid;\r\n return option;\r\n }\r\n\r\n private getAddonBreakdown = (rawAddons: Array<FlattenedAddon>,\r\n cartTotalPaymentItems: Array<PaymentItem>) => {\r\n\r\n const insuranceCode = GxConstants.FARETYPE_CODES.INSURANCE,\r\n taxCode = GxConstants.FARETYPE_CODES.TAX_BACK,\r\n tpCode = GxConstants.FARETYPE_CODES.THIRD_PARTY,\r\n feeCode = GxConstants.FARETYPE_CODES.PROCESSING_FEE;\r\n const insurance = _.find(rawAddons,\r\n (addon) => {\r\n return addon.Type === insuranceCode;\r\n }),\r\n addons = _.filter(rawAddons,\r\n (addon) => {\r\n return addon.Type === taxCode;\r\n }),\r\n thirdPartyAddons = _.filter(rawAddons,\r\n (addon) => {\r\n return addon.Type === tpCode && !!addon.productCode;\r\n }),\r\n processingFee = _.find(cartTotalPaymentItems,\r\n (paymentItem) => {\r\n return paymentItem.Sku === feeCode;\r\n });\r\n return new AddonBreakdown(insurance, addons, thirdPartyAddons, processingFee);\r\n }\r\n private toFareTypeOption = (addon) => {\r\n return new FareTypeOption(addon.salePriceUnit, addon.Type, addon.productCode, addon.usageDate);\r\n }\r\n}\r\n\r\nexport class GetBookingViaLoginOption {\r\n constructor(private bookingNumber: string, private bookingPin: string) { }\r\n}\r\n\r\nexport class GetTravelOptions {\r\n constructor(public travelGUID: string, public fareGUID: number) { }\r\n}\r\n\r\nexport class SectorOptions extends GetTravelOptions {\r\n constructor(public bookingGuid: string, travelGUID: string, fareGUID: number, public sectorNumber?: number) {\r\n super(travelGUID, fareGUID);\r\n }\r\n}\r\n\r\nexport class DeleteSectorOptions {\r\n constructor(public bookingGuid: string, public sectorNumber: number) { }\r\n}\r\n\r\nexport class DeleteSectorByGuidOptions {\r\n constructor(public bookingGuid: string, public sectorGuid: string) { }\r\n}\r\nexport class DeleteTourByGuidOptions {\r\n constructor(public bookingGuid: string, public tourGuid: string) { }\r\n}\r\nexport class PassengerRequest {\r\n Address: string;\r\n CustomerID: number;\r\n City: string;\r\n Concession: string;\r\n Concession2: string;\r\n Country: string;\r\n DOB: Date;\r\n Email: string;\r\n FemaleCount: number;\r\n FirstName: string;\r\n Gender: string;\r\n MaleCount: number;\r\n Phone: string;\r\n PassengerGuid: string;\r\n PostCode: string;\r\n SATypeDescription: string;\r\n SpecialAssistanceId: number;\r\n State: string;\r\n Surname: string;\r\n Title: string;\r\n NursedInfantCount: number;\r\n\r\n constructor(passenger: PassengerFormModel,\r\n specialAssistanceType: number,\r\n nursedInfant: number,\r\n malesCount: number,\r\n femalesCount: number,\r\n passengerGuid: string) {\r\n if (passenger.studentCount === 1 && passenger.concessionCount === 1) {\r\n this.Concession = passenger.concessionCard1;\r\n this.Concession2 = passenger.studentCard1;\r\n } else if (passenger.studentCount === 1 && passenger.concessionCount === 0) {\r\n this.Concession = passenger.studentCard1;\r\n this.Concession2 = passenger.studentCard2;\r\n } else if (passenger.studentCount === 2 && passenger.concessionCount === 0) {\r\n this.Concession = passenger.studentCard1;\r\n this.Concession2 = passenger.studentCard2;\r\n } else {\r\n this.Concession = passenger.concessionCard1;\r\n this.Concession2 = passenger.concessionCard2;\r\n }\r\n\r\n this.SpecialAssistanceId = specialAssistanceType;\r\n this.MaleCount = malesCount;\r\n this.FemaleCount = femalesCount;\r\n this.Gender = passenger.gender;\r\n this.Country = passenger.country;\r\n this.Email = passenger.email;\r\n this.FirstName = passenger.firstName;\r\n this.Surname = passenger.surname;\r\n this.Phone = passenger.phone;\r\n this.PassengerGuid = passengerGuid;\r\n }\r\n}\r\n\r\nexport class PassOptions {\r\n constructor(public PassReference: string, public FareTypeCode: string, public PromoCode: string) { }\r\n}\r\nexport class AddonBreakdown {\r\n constructor(public insurance: FlattenedAddon,\r\n public addons: Array<FlattenedAddon>,\r\n public thirdPartyAddons: Array<FlattenedAddon>,\r\n public processingFee: PaymentItem) {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/booking.service.ts","\r\nimport * as _ from 'lodash';\r\nimport { Injectable } from '@angular/core';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { AddonsService } from 'app/shared/services/addons.service';\r\nimport { TravelProductService, GetCartTotalOptions, CartItemOptions } from 'app/shared/services/travel-product.service';\r\nimport { Pass, Addon, Package } from 'app/shared/models/booking.model';\r\n\r\n\r\n@Injectable()\r\nexport class CartTotalService {\r\n\r\n\r\n constructor(private travelProductService: TravelProductService,\r\n private addonsService: AddonsService) {\r\n }\r\n\r\n postCartTotal = (options: GetCartTotalOptions, success, error, loading, finished) => {\r\n if (!!loading) {\r\n loading();\r\n }\r\n this.travelProductService.postCartTotal(options)\r\n .subscribe(success, error, finished);\r\n }\r\n getCartTotal = (bookingGUID: string, success, error, loading, finished) => {\r\n if (!!loading) {\r\n loading();\r\n }\r\n this.travelProductService.getCartTotal(bookingGUID)\r\n .subscribe(success, error, finished);\r\n }\r\n\r\n getPassCartTotalOptions(passAsAPackage: Package, addons: Addon[], promo: string): GetCartTotalOptions {\r\n\r\n let cartItems: CartItemOptions[] = [], farePrice, fareBasisCode;\r\n\r\n if (passAsAPackage) {\r\n farePrice = passAsAPackage.FareTypes[0].Farebasis.TotalPrice,\r\n fareBasisCode = passAsAPackage.FareTypes[0].Farebasis.FarebasisCode;\r\n }\r\n const item = new CartItemOptions();\r\n item.productCode = null;\r\n item.Type = GxConstants.FARETYPE_CODES.FARE_PRICE;\r\n item.SalePriceUnit = farePrice;\r\n item.Quantity = 1;\r\n item.PromoCode = promo;\r\n // FARE PRICE\r\n cartItems.push(item);\r\n\r\n // ADD THIRD PARTY PRODUCTS (AND INSURANCE)\r\n cartItems = _.union(cartItems, this.addonsService.getAddonsAnswers(addons));\r\n\r\n const options = new GetCartTotalOptions();\r\n options.Passengers = 1;\r\n options.Farebasis = fareBasisCode;\r\n options.CartItems = cartItems;\r\n return options;\r\n\r\n }\r\n\r\n getExpressCartTotalOptions(travels, passengersQty, addons, freeTrip, customerGuid): GetCartTotalOptions {\r\n\r\n let cartItems: CartItemOptions[] = [],\r\n farePrice = 0,\r\n fuelSurcharge = 0,\r\n insuredFarePrice = 0;\r\n\r\n // Add up totals from each trip\r\n _.each(travels,\r\n (travel: any) => {\r\n const fare = travel.RouteOptions[0].Fares[0];\r\n farePrice += fare.Price;\r\n fuelSurcharge += fare.TotalFuelSurcharge;\r\n if (fare.Insurance === true) {\r\n insuredFarePrice += fare.Price;\r\n }\r\n\r\n const farePriceItem = new CartItemOptions();\r\n farePriceItem.productCode = null;\r\n farePriceItem.Type = GxConstants.FARETYPE_CODES.FARE_PRICE;\r\n farePriceItem.SalePriceUnit = fare.Price;\r\n farePriceItem.Quantity = passengersQty;\r\n farePriceItem.ProductReference = travel.TravelGUID;\r\n farePriceItem.FareReference = fare.FareGUID;\r\n farePriceItem.ProductType = '5'; // Express ProductTypeId\r\n // FARE PRICE\r\n cartItems.push(farePriceItem);\r\n });\r\n\r\n // const farePriceItem = new CartItemOptions();\r\n // farePriceItem.productCode = null;\r\n // farePriceItem.Type = GxConstants.FARETYPE_CODES.FARE_PRICE;\r\n // farePriceItem.SalePriceUnit = farePrice;\r\n // farePriceItem.Quantity = passengersQty;\r\n // // FARE PRICE\r\n // cartItems.push(farePriceItem);\r\n\r\n const fuelSurchargeItem = new CartItemOptions();\r\n fuelSurchargeItem.productCode = null;\r\n fuelSurchargeItem.Type = GxConstants.FARETYPE_CODES.FULL_SURCHARGE;\r\n fuelSurchargeItem.SalePriceUnit = fuelSurcharge;\r\n fuelSurchargeItem.Quantity = passengersQty;\r\n // FUEL SURCHARGE\r\n cartItems.push(fuelSurchargeItem);\r\n // ADD THIRD PARTY PRODUCTS (AND INSURANCE)\r\n cartItems = _.union(cartItems, this.addonsService.getAddonsAnswers(addons));\r\n console.log('cartItems', cartItems);\r\n cartItems.forEach((cartItem, index) => {\r\n if (cartItem.Type === GxConstants.FARETYPE_CODES.INSURANCE) {\r\n cartItem.SalePriceUnit = insuredFarePrice;\r\n }\r\n\r\n if (cartItem.Type === GxConstants.FARETYPE_CODES.THIRD_PARTY) {\r\n if (cartItem.productCode === null) {\r\n cartItem = null;\r\n cartItems.splice(index, 1);\r\n } else {\r\n }\r\n }\r\n });\r\n \r\n const options = new GetCartTotalOptions();\r\n options.Passengers = passengersQty;\r\n options.FreeTrip = freeTrip;\r\n options.CustomerGUID = customerGuid;\r\n options.CartItems = cartItems;\r\n return options;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/cart-total.service.ts","import { Injectable } from '@angular/core';\r\n\r\nexport const VALID_CARD_TYPES = ['visa', 'mastercard'];\r\n\r\n@Injectable()\r\nexport class CreditCardService {\r\n private credit;\r\n private doc: any = document;\r\n constructor() {\r\n this.credit = (function () {\r\n\r\n const indexOf = [].indexOf || function (item) {\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n if (i in this && this[i] === item) return i;\r\n }\r\n return -1;\r\n };\r\n\r\n return (function (name, definition) {\r\n return definition();\r\n })('cc', function () {\r\n let _eventNormalize, _getCaretPos, _on, cardFromType, defaultFormat,\r\n formatBackCardNumber, formatBackExpiry, formatCardExpiry, formatCardNumber,\r\n formatForwardExpiry, formatForwardSlashAndSpace, hasTextSelected, luhnCheck,\r\n payform, reFormatCVC, reFormatCardNumber, reFormatExpiry, replaceFullWidthChars,\r\n restrictCVC, restrictCardNumber, restrictExpiry, restrictNumeric;\r\n _getCaretPos = function (ele) {\r\n let r, rc, re;\r\n if (ele.selectionStart != null) {\r\n return ele.selectionStart;\r\n } else if (this.doc.selection != null) {\r\n ele.focus();\r\n r = this.doc.selection.createRange();\r\n re = ele.createTextRange();\r\n rc = re.duplicate();\r\n re.moveToBookmark(r.getBookmark());\r\n rc.setEndPoint('EndToStart', re);\r\n return rc.text.length;\r\n }\r\n };\r\n _eventNormalize = function (listener) {\r\n return function (e) {\r\n if (e == null) {\r\n e = window.event;\r\n }\r\n e.target = e.target || e.srcElement;\r\n e.which = e.which || e.keyCode;\r\n if (e.preventDefault == null) {\r\n e.preventDefault = function () {\r\n return this.returnValue = false;\r\n };\r\n }\r\n return listener(e);\r\n };\r\n };\r\n _on = function (ele, event, listener) {\r\n listener = _eventNormalize(listener);\r\n if (ele.addEventListener != null) {\r\n return ele.addEventListener(event, listener, false);\r\n } else {\r\n return ele.attachEvent('on' + event, listener);\r\n }\r\n };\r\n payform = {};\r\n defaultFormat = /(\\d{1,4})/g;\r\n payform.cards = [\r\n {\r\n type: 'visaelectron',\r\n pattern: /^4(026|17500|405|508|844|91[37])/,\r\n format: defaultFormat,\r\n length: [16],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'maestro',\r\n pattern: /^(5(018|0[23]|[68])|6(39|7))/,\r\n format: defaultFormat,\r\n length: [12, 13, 14, 15, 16, 17, 18, 19],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'forbrugsforeningen',\r\n pattern: /^600/,\r\n format: defaultFormat,\r\n length: [16],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'dankort',\r\n pattern: /^5019/,\r\n format: defaultFormat,\r\n length: [16],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'visa',\r\n pattern: /^4/,\r\n format: defaultFormat,\r\n length: [13, 16],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'mastercard',\r\n pattern: /^(5[1-5]|2[2-7])/,\r\n format: defaultFormat,\r\n length: [16],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'amex',\r\n pattern: /^3[47]/,\r\n format: /(\\d{1,4})(\\d{1,6})?(\\d{1,5})?/,\r\n length: [15],\r\n cvcLength: [3, 4],\r\n luhn: true\r\n }, {\r\n type: 'dinersclub',\r\n pattern: /^3[0689]/,\r\n format: /(\\d{1,4})(\\d{1,6})?(\\d{1,4})?/,\r\n length: [14],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'discover',\r\n pattern: /^6([045]|22)/,\r\n format: defaultFormat,\r\n length: [16],\r\n cvcLength: [3],\r\n luhn: true\r\n }, {\r\n type: 'unionpay',\r\n pattern: /^(62|88)/,\r\n format: defaultFormat,\r\n length: [16, 17, 18, 19],\r\n cvcLength: [3],\r\n luhn: false\r\n }, {\r\n type: 'jcb',\r\n pattern: /^35/,\r\n format: defaultFormat,\r\n length: [16],\r\n cvcLength: [3],\r\n luhn: true\r\n }\r\n ];\r\n cardFromType = function (type) {\r\n let card, i, len, ref;\r\n ref = payform.cards;\r\n for (i = 0, len = ref.length; i < len; i++) {\r\n card = ref[i];\r\n if (card.type === type) {\r\n return card;\r\n }\r\n }\r\n };\r\n luhnCheck = function (num) {\r\n let digit, digits, i, len, odd, sum;\r\n odd = true;\r\n sum = 0;\r\n digits = (num + '').split('').reverse();\r\n for (i = 0, len = digits.length; i < len; i++) {\r\n digit = digits[i];\r\n digit = parseInt(digit, 10);\r\n if ((odd = !odd)) {\r\n digit *= 2;\r\n }\r\n if (digit > 9) {\r\n digit -= 9;\r\n }\r\n sum += digit;\r\n }\r\n return sum % 10 === 0;\r\n };\r\n hasTextSelected = function (target) {\r\n let ref;\r\n if ((typeof document !== 'undefined' && document !== null ? (ref = this.doc.selection) != null ? ref.createRange : void 0 : void 0) != null) {\r\n if (this.doc.selection.createRange().text) {\r\n return true;\r\n }\r\n }\r\n return (target.selectionStart != null) && target.selectionStart !== target.selectionEnd;\r\n };\r\n replaceFullWidthChars = function (str) {\r\n let char, chars, fullWidth, halfWidth, i, idx, len, value;\r\n if (str == null) {\r\n str = '';\r\n }\r\n fullWidth = '\\uff10\\uff11\\uff12\\uff13\\uff14\\uff15\\uff16\\uff17\\uff18\\uff19';\r\n halfWidth = '0123456789';\r\n value = '';\r\n chars = str.split('');\r\n for (i = 0, len = chars.length; i < len; i++) {\r\n char = chars[i];\r\n idx = fullWidth.indexOf(char);\r\n if (idx > -1) {\r\n char = halfWidth[idx];\r\n }\r\n value += char;\r\n }\r\n return value;\r\n };\r\n reFormatCardNumber = function (e) {\r\n let cursor;\r\n cursor = _getCaretPos(e.target);\r\n e.target.value = payform.formatCardNumber(e.target.value);\r\n if ((cursor != null) && e.type !== 'change') {\r\n return e.target.setSelectionRange(cursor, cursor);\r\n }\r\n };\r\n\r\n formatBackCardNumber = function (e) {\r\n let cursor, value;\r\n value = e.target.value;\r\n if (e.which !== 8) {\r\n return;\r\n }\r\n cursor = _getCaretPos(e.target);\r\n if (cursor && cursor !== value.length) {\r\n return;\r\n }\r\n if (/\\d\\s$/.test(value)) {\r\n e.preventDefault();\r\n return setTimeout(function () {\r\n return e.target.value = value.replace(/\\d\\s$/, '');\r\n });\r\n } else if (/\\s\\d?$/.test(value)) {\r\n e.preventDefault();\r\n return setTimeout(function () {\r\n return e.target.value = value.replace(/\\d$/, '');\r\n });\r\n }\r\n };\r\n reFormatExpiry = function (e) {\r\n let cursor;\r\n cursor = _getCaretPos(e.target);\r\n e.target.value = payform.formatCardExpiry(e.target.value);\r\n if ((cursor != null) && e.type !== 'change') {\r\n return e.target.setSelectionRange(cursor, cursor);\r\n }\r\n };\r\n formatCardExpiry = function (e) {\r\n let digit, val;\r\n digit = String.fromCharCode(e.which);\r\n if (!/^\\d+$/.test(digit)) {\r\n return;\r\n }\r\n val = e.target.value + digit;\r\n if (/^\\d$/.test(val) && (val !== '0' && val !== '1')) {\r\n e.preventDefault();\r\n return setTimeout(function () {\r\n return e.target.value = '0' + val + ' / ';\r\n });\r\n } else if (/^\\d\\d$/.test(val)) {\r\n e.preventDefault();\r\n return setTimeout(function () {\r\n return e.target.value = val + ' / ';\r\n });\r\n }\r\n };\r\n formatForwardExpiry = function (e) {\r\n let digit, val;\r\n digit = String.fromCharCode(e.which);\r\n if (!/^\\d+$/.test(digit)) {\r\n return;\r\n }\r\n val = e.target.value;\r\n if (/^\\d\\d$/.test(val)) {\r\n return e.target.value = val + ' / ';\r\n }\r\n };\r\n formatForwardSlashAndSpace = function (e) {\r\n let val, which;\r\n which = String.fromCharCode(e.which);\r\n if (!(which === '/' || which === ' ')) {\r\n return;\r\n }\r\n val = e.target.value;\r\n if (/^\\d$/.test(val) && val !== '0') {\r\n return e.target.value = '0' + val + ' / ';\r\n }\r\n };\r\n formatBackExpiry = function (e) {\r\n let cursor, value;\r\n value = e.target.value;\r\n if (e.which !== 8) {\r\n return;\r\n }\r\n cursor = _getCaretPos(e.target);\r\n if (cursor && cursor !== value.length) {\r\n return;\r\n }\r\n if (/\\d\\s\\/\\s$/.test(value)) {\r\n e.preventDefault();\r\n return setTimeout(function () {\r\n return e.target.value = value.replace(/\\d\\s\\/\\s$/, '');\r\n });\r\n }\r\n };\r\n reFormatCVC = function (e) {\r\n let cursor;\r\n cursor = _getCaretPos(e.target);\r\n e.target.value = replaceFullWidthChars(e.target.value).replace(/\\D/g, '').slice(0, 4);\r\n if ((cursor != null) && e.type !== 'change') {\r\n return e.target.setSelectionRange(cursor, cursor);\r\n }\r\n };\r\n restrictNumeric = function (e) {\r\n let input;\r\n if (e.metaKey || e.ctrlKey) {\r\n return;\r\n }\r\n if (e.which === 0) {\r\n return;\r\n }\r\n if (e.which < 33) {\r\n return;\r\n }\r\n input = String.fromCharCode(e.which);\r\n if (!/^\\d+$/.test(input)) {\r\n return e.preventDefault();\r\n }\r\n };\r\n restrictCardNumber = function (e) {\r\n let card, digit, value;\r\n digit = String.fromCharCode(e.which);\r\n if (!/^\\d+$/.test(digit)) {\r\n return;\r\n }\r\n if (hasTextSelected(e.target)) {\r\n return;\r\n }\r\n value = (e.target.value + digit).replace(/\\D/g, '');\r\n card = payform.cardFromNumber(value);\r\n if (card && value.length > card.length[card.length.length - 1]) {\r\n return e.preventDefault();\r\n } else if (value.length > 16) {\r\n return e.preventDefault();\r\n }\r\n };\r\n restrictExpiry = function (e) {\r\n let digit, value;\r\n digit = String.fromCharCode(e.which);\r\n if (!/^\\d+$/.test(digit)) {\r\n return;\r\n }\r\n if (hasTextSelected(e.target)) {\r\n return;\r\n }\r\n value = e.target.value + digit;\r\n value = value.replace(/\\D/g, '');\r\n if (value.length > 6) {\r\n return e.preventDefault();\r\n }\r\n };\r\n restrictCVC = function (e) {\r\n let digit, val;\r\n digit = String.fromCharCode(e.which);\r\n if (!/^\\d+$/.test(digit)) {\r\n return;\r\n }\r\n if (hasTextSelected(e.target)) {\r\n return;\r\n }\r\n val = e.target.value + digit;\r\n if (val.length > 4) {\r\n return e.preventDefault();\r\n }\r\n };\r\n payform.cvcInput = function (input) {\r\n _on(input, 'keypress', restrictNumeric);\r\n _on(input, 'keypress', restrictCVC);\r\n _on(input, 'paste', reFormatCVC);\r\n _on(input, 'change', reFormatCVC);\r\n return _on(input, 'input', reFormatCVC);\r\n };\r\n payform.expiryInput = function (input) {\r\n _on(input, 'keypress', restrictNumeric);\r\n _on(input, 'keypress', restrictExpiry);\r\n _on(input, 'keypress', formatCardExpiry);\r\n _on(input, 'keypress', formatForwardSlashAndSpace);\r\n _on(input, 'keypress', formatForwardExpiry);\r\n _on(input, 'keydown', formatBackExpiry);\r\n _on(input, 'change', reFormatExpiry);\r\n return _on(input, 'input', reFormatExpiry);\r\n };\r\n payform.cardNumberInput = function (input) {\r\n _on(input, 'keypress', restrictNumeric);\r\n _on(input, 'keypress', restrictCardNumber);\r\n _on(input, 'keypress', formatCardNumber);\r\n _on(input, 'keydown', formatBackCardNumber);\r\n _on(input, 'paste', reFormatCardNumber);\r\n _on(input, 'change', reFormatCardNumber);\r\n return _on(input, 'input', reFormatCardNumber);\r\n };\r\n payform.numericInput = function (input) {\r\n _on(input, 'keypress', restrictNumeric);\r\n _on(input, 'paste', restrictNumeric);\r\n _on(input, 'change', restrictNumeric);\r\n return _on(input, 'input', restrictNumeric);\r\n };\r\n payform.parseCardExpiry = function (value) {\r\n let month, prefix, ref, year;\r\n value = value.replace(/\\s/g, '');\r\n ref = value.split('/', 2), month = ref[0], year = ref[1];\r\n if ((year != null ? year.length : void 0) === 2 && /^\\d+$/.test(year)) {\r\n prefix = (new Date).getFullYear();\r\n prefix = prefix.toString().slice(0, 2);\r\n year = prefix + year;\r\n }\r\n month = parseInt(month, 10);\r\n year = parseInt(year, 10);\r\n return {\r\n month: month,\r\n year: year\r\n };\r\n };\r\n payform.validateCardNumber = function (num) {\r\n let card, ref;\r\n num = (num + '').replace(/\\s+|-/g, '');\r\n if (!/^\\d+$/.test(num)) {\r\n return false;\r\n }\r\n card = payform.cardFromNumber(num);\r\n if (!card) {\r\n return false;\r\n }\r\n return (ref = num.length, indexOf.call(card.length, ref) >= 0) && (card.luhn === false || luhnCheck(num));\r\n };\r\n payform.validateCardExpiry = function (month, year) {\r\n let currentTime, expiry, ref;\r\n if (typeof month === 'object' && 'month' in month) {\r\n ref = month, month = ref.month, year = ref.year;\r\n }\r\n if (!(month && year)) {\r\n return false;\r\n }\r\n month = String(month).trim();\r\n year = String(year).trim();\r\n if (!/^\\d+$/.test(month)) {\r\n return false;\r\n }\r\n if (!/^\\d+$/.test(year)) {\r\n return false;\r\n }\r\n if (!((1 <= month && month <= 12))) {\r\n return false;\r\n }\r\n if (year.length === 2) {\r\n if (year < 70) {\r\n year = '20' + year;\r\n } else {\r\n year = '19' + year;\r\n }\r\n }\r\n if (year.length !== 4) {\r\n return false;\r\n }\r\n expiry = new Date(year, month);\r\n currentTime = new Date;\r\n expiry.setMonth(expiry.getMonth() - 1);\r\n expiry.setMonth(expiry.getMonth() + 1, 1);\r\n return expiry > currentTime;\r\n };\r\n payform.validateCardCVC = function (cvc, type) {\r\n let card, ref;\r\n cvc = String(cvc).trim();\r\n if (!/^\\d+$/.test(cvc)) {\r\n return false;\r\n }\r\n card = cardFromType(type);\r\n if (card != null) {\r\n return ref = cvc.length, indexOf.call(card.cvcLength, ref) >= 0;\r\n } else {\r\n return cvc.length >= 3 && cvc.length <= 4;\r\n }\r\n };\r\n payform.parseCardType = function (num) {\r\n let ref;\r\n if (!num) {\r\n return null;\r\n }\r\n return ((ref = payform.cardFromNumber(num)) != null ? ref.type : void 0) || null;\r\n };\r\n payform.formatCardNumber = function (num) {\r\n\r\n let card, groups, ref, upperLength;\r\n num = replaceFullWidthChars(num);\r\n num = num.replace(/\\D/g, '');\r\n card = payform.cardFromNumber(num);\r\n if (!card) {\r\n return num;\r\n }\r\n upperLength = card.length[card.length.length - 1];\r\n num = num.slice(0, upperLength);\r\n if (card.format.global) {\r\n return (ref = num.match(card.format)) != null ? ref.join(' ') : void 0;\r\n } else {\r\n groups = card.format.exec(num);\r\n if (groups == null) {\r\n return;\r\n }\r\n groups.shift();\r\n groups = groups.filter(Boolean);\r\n return groups.join(' ');\r\n }\r\n };\r\n payform.formatCardExpiry = function (expiry) {\r\n let mon, parts, sep, year;\r\n expiry = replaceFullWidthChars(expiry);\r\n parts = expiry.match(/^\\D*(\\d{1,2})(\\D+)?(\\d{1,4})?/);\r\n if (!parts) {\r\n return '';\r\n }\r\n mon = parts[1] || '';\r\n sep = parts[2] || '';\r\n year = parts[3] || '';\r\n if (year.length > 0) {\r\n sep = ' / ';\r\n } else if (sep === ' /') {\r\n mon = mon.substring(0, 1);\r\n sep = '';\r\n } else if (mon.length === 2 || sep.length > 0) {\r\n sep = ' / ';\r\n } else if (mon.length === 1 && (mon !== '0' && mon !== '1')) {\r\n mon = '0' + mon;\r\n sep = ' / ';\r\n }\r\n return mon + sep + year;\r\n };\r\n payform.cardFromNumber = function (num) {\r\n let card, i, len, ref;\r\n num = (num + '').replace(/\\D/g, '');\r\n ref = payform.cards;\r\n for (i = 0, len = ref.length; i < len; i++) {\r\n card = ref[i];\r\n if (card.pattern.test(num)) {\r\n return card;\r\n }\r\n }\r\n };\r\n return payform;\r\n });\r\n\r\n }).call(this);\r\n }\r\n\r\n public validateCardNumber(cardNumber): boolean {\r\n return this.credit.validateCardNumber(cardNumber);\r\n }\r\n\r\n public validateCardExpiry(month, year): boolean {\r\n return this.credit.validateCardExpiry(month, year);\r\n }\r\n\r\n public validateCardCVC(cvc, type): boolean {\r\n return this.credit.validateCardCVC(cvc, type);\r\n }\r\n\r\n public parseCardType(cardNumber): string {\r\n return this.credit.parseCardType(cardNumber);\r\n }\r\n\r\n public parseCardExpiry(value): boolean {\r\n return this.credit.parseCardExpiry(value);\r\n }\r\n\r\n public formatCardNumber(value): string {\r\n return this.credit.formatCardNumber(value);\r\n }\r\n\r\n public formatCardExpiry(expiry): boolean {\r\n const result = this.credit.formatCardExpiry(expiry);\r\n return result;\r\n }\r\n\r\n public cardTypeFromNumber(cardNumber): string {\r\n const result = this.credit.cardFromNumber(cardNumber);\r\n return !!result ? result.type : null;\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/credit-card.service.ts","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DeviceService {\r\n\r\n constructor() { }\r\n\r\n public IsMobile(): boolean {\r\n return !(window.innerWidth >= 768);\r\n }\r\n\r\n public IsTablet(): boolean {\r\n return (window.innerWidth >= 768 && window.innerWidth <= 1200);\r\n }\r\n\r\n public IsDesktop(): boolean {\r\n return (window.innerWidth > 1200);\r\n }\r\n\r\n public isAndroidPhone(): boolean {\r\n const ua = navigator.userAgent.toLowerCase();\r\n return ua.indexOf('android') > -1 && ua.indexOf('mobile') > -1;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/device.service.ts","\r\nimport * as _ from 'lodash';\r\nimport { Injectable } from '@angular/core';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { GxUtilsService } from 'app/shared/services/gx-utils.service';\r\nimport { Subject } from 'rxjs';\r\nimport { ActionUpdaterService, ApiError } from 'app/shared/services/action-updater.service';\r\nimport { FormGroup, ValidationErrors } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport class ErrorService {\r\n constructor(private gxUtilsService: GxUtilsService,\r\n private actionUpdaterService: ActionUpdaterService) {\r\n\r\n }\r\n private broadcastError(error: ApiError) {\r\n this.actionUpdaterService.announceError(error);\r\n }\r\n private broadcastErrors(errors: ApiError[]) {\r\n this.actionUpdaterService.announceErrors(errors);\r\n }\r\n dispatchError = (error, scopedFormName) => {\r\n if (!!scopedFormName) {\r\n this.dispatchFormErrorEvent(error.message, []);\r\n } else {\r\n this.dispatchErrorEvent(error);\r\n }\r\n }\r\n reset = () => {\r\n this.actionUpdaterService.announceClear(null);\r\n }\r\n dispatchAjaxError = (statusCode, errorData) => {\r\n let ajaxErrors = !!errorData.Message ? [errorData.Message] : [];\r\n if (!!errorData.Errors && !!errorData.Errors.length) {\r\n const errors = new Set();\r\n errorData.Errors.forEach(element => {\r\n errors.add(element.Value);\r\n });\r\n ajaxErrors = Array.from(errors);\r\n }\r\n const error = new ApiError();\r\n error.summary = errorData.ErrorSummary || errorData.Title || errorData.ExceptionMessage;\r\n error.details = ajaxErrors;\r\n this.broadcastError(error);\r\n }\r\n\r\n dispatchFormError = (formController: FormGroup) => {\r\n this.dispatchFormErrorWithMessage(formController, 'Please complete required fields!');\r\n }\r\n\r\n dispatchFormErrorWithMessage = (formController: FormGroup, error) => { // TODO check all method\r\n const formErrors = [];\r\n let invalidCard = false;\r\n // Check for invalid credit card to ensure duplicate card validation messages do not appear.\r\n for (const key of Object.keys(formController.controls)) {\r\n const controlErrors: ValidationErrors = formController.get(key).errors;\r\n if (controlErrors != null) {\r\n for (const keyError of Object.keys(controlErrors)) {\r\n if (keyError === 'ccNumber') {\r\n invalidCard = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (invalidCard) {\r\n break;\r\n }\r\n }\r\n for (const key of Object.keys(formController.controls)) {\r\n const controlErrors: ValidationErrors = formController.get(key).errors;\r\n if (controlErrors != null) {\r\n for (const err of Object.keys(controlErrors)) {\r\n // NOTE: If using NESTED FORMS, one of the $error[i] items is actually your nested form.\r\n // You will need to figure out if the item is a 'FormController' instead of 'NgModelController'\r\n // then loop through all it's own $errors as well.\r\n let propertyName = this.gxUtilsService.camelCaseToHuman(key);\r\n // Customising messages for certain error types and situations. Gotta be a better way than this but running out of time.\r\n if (propertyName === 'Passenger Picker Form') {\r\n formErrors.push('Please select the type of special assistance required');\r\n } else if (propertyName === 'Terms And Conditions') {\r\n formErrors.push('You must accept the Terms and Conditions before proceeding');\r\n } else if (key === 'ccNumber') {\r\n formErrors.push('\\'Card Number\\' is invalid');\r\n } else if (key === 'ccNumberType') {\r\n if (!invalidCard) {\r\n formErrors.push('\\'Card Number\\' type is not accepted (We only accept Visa and Mastercard)');\r\n }\r\n } else {\r\n if (propertyName === 'Booking Pin') { propertyName = 'PIN'; }\r\n if (propertyName === 'Cvv') { propertyName = 'CVV'; }\r\n // cater for a number of cases where instead of specific error type that is not friendly to users,\r\n // we want to just display invalid.\r\n const myArray = ['parse', 'ccExpMonth', 'ccExpYear'];\r\n if (myArray.indexOf(key) !== -1) {\r\n formErrors.push(`'${propertyName}' is invalid`);\r\n } else if (key === 'minlength') {\r\n formErrors.push(`'${propertyName}' is too short`);\r\n } else {\r\n formErrors.push(`'${propertyName}' is ${err}`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.dispatchFormErrorEvent(error, formErrors);\r\n }\r\n\r\n dispatchFormErrorMessage = (error) => {\r\n this.dispatchFormErrorEvent(error, []);\r\n }\r\n private dispatchFormErrorEvent = (message: string, formErrors: string[]) => {\r\n const error = new ApiError();\r\n error.summary = message;\r\n if (!!formErrors && !!formErrors.length) {\r\n error.details = formErrors;\r\n }\r\n this.broadcastError(error);\r\n }\r\n private dispatchErrorEvent = (error) => {\r\n this.broadcastError(error);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/error.service.ts","import { Injectable, EventEmitter } from '@angular/core';\r\nimport { AppEvents, AppEventType } from 'app/shared/models/app-events.model';\r\n\r\n/*\r\n Example of usage:\r\n\r\n this.eventBusService.emit(new MapWidgetToggleEvent(MapWidgetType.LayerList));\r\n this.eventBusService.on$(AppEventType.LineItemGridShouldPopulateChainage).subscribe(() => this.onPopulateChainageSelected());\r\n*/\r\n@Injectable()\r\nexport class EventBusService {\r\n private events: { [key: string]: EventEmitter<AppEvents> };\r\n\r\n constructor() {\r\n this.events = {};\r\n }\r\n\r\n // SUBSCRIBE TO A APP WIDE EVENT\r\n // List of available events are listed under the enum `AppEventType`\r\n on$(eventType: AppEventType): EventEmitter<AppEvents> {\r\n if (!this.events[eventType]) {\r\n this.events[eventType] = new EventEmitter<AppEvents>();\r\n }\r\n\r\n return this.events[eventType];\r\n }\r\n\r\n // BROADCAST APP WIDE EVENT\r\n emit(event: AppEvents) {\r\n if (!this.events[event.type]) {\r\n this.events[event.type] = new EventEmitter();\r\n }\r\n\r\n this.events[event.type].emit(event);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/event-bus.service.ts","import { Injectable } from '@angular/core';\r\nimport { ActionUpdaterService, ApiError } from './action-updater.service';\r\nimport { Http, Response } from '@angular/http';\r\nimport { FormGroup, FormControl, ValidationErrors } from '@angular/forms';\r\nimport { Passengers } from '../models/passenger.model';\r\n\r\n@Injectable()\r\nexport class ExpressBookingService {\r\n\r\n constructor(private actionUpdaterService: ActionUpdaterService, private http: Http) { }\r\n\r\n getSpecialAssistanceTypes() {\r\n const url = `/umbraco/api/travel/GetSpecialAssistanceTypes`;\r\n return this.http.get(url)\r\n .map(res => res.json());\r\n }\r\n\r\n getFareTypes() {\r\n const url = `/umbraco/api/travel/GetFareTypes`;\r\n return this.http.get(url)\r\n .map(res => res.json());\r\n }\r\n\r\n getDefaultPassengerObject() {\r\n return new Passengers(0, 0, 0, 0, 0, 0, null, null, null, null, null, null, null, null, 0);\r\n }\r\n\r\n getPassengerObject(passengerOptionsForm: FormGroup) {\r\n return new Passengers(passengerOptionsForm.controls['adults'].value,\r\n passengerOptionsForm.controls['concessions'].value,\r\n passengerOptionsForm.controls['accompaniedChildren'].value,\r\n passengerOptionsForm.controls['infants'].value,\r\n passengerOptionsForm.controls['nursedInfant'].value,\r\n passengerOptionsForm.controls['seatedInfant'].value,\r\n passengerOptionsForm.controls['concessionCard1'].value,\r\n passengerOptionsForm.controls['concessionCard2'].value,\r\n null,\r\n null,\r\n passengerOptionsForm.controls['concessionLater'].value,\r\n passengerOptionsForm.controls['studentCard1'].value,\r\n passengerOptionsForm.controls['studentCard2'].value,\r\n passengerOptionsForm.controls['studentLater'].value,\r\n passengerOptionsForm.controls['students'].value\r\n );\r\n }\r\n getPassengerObjectFromStorage(travelPassengers: any) {\r\n return new Passengers(travelPassengers['adults'],\r\n travelPassengers['concessions'],\r\n travelPassengers['accompaniedChildren'],\r\n travelPassengers['infants'],\r\n travelPassengers['nursedInfant'],\r\n travelPassengers['seatedInfant'],\r\n travelPassengers['concessionCard1'],\r\n travelPassengers['concessionCard2'],\r\n null,\r\n null,\r\n travelPassengers['concessionLater'],\r\n travelPassengers['studentCard1'],\r\n travelPassengers['studentCard2'],\r\n travelPassengers['studentLater'],\r\n travelPassengers['students']\r\n );\r\n }\r\n areConcessionsValid(passengers: Passengers, passengerOptionsForm: FormGroup): boolean {\r\n\r\n const concessions = passengers.concessions,\r\n concessionCard1 = passengers.concessionCard1,\r\n concessionCard2 = passengers.concessionCard2,\r\n concessionLater = passengers.concessionLater\r\n\r\n let isValid = true;\r\n if (concessions > 0 && !concessionLater) {\r\n let concessionCard1Valid = true;\r\n let concessionCard2Valid = true;\r\n if (concessions === 1 && !concessionCard1) {\r\n concessionCard1Valid = false;\r\n } else if (concessions === 2 && (!concessionCard1 || !concessionCard2)) {\r\n if (!concessionCard1) {\r\n concessionCard1Valid = false;\r\n }\r\n if (!concessionCard2) {\r\n concessionCard2Valid = false;\r\n\r\n }\r\n }\r\n if (concessionCard1Valid) {\r\n passengerOptionsForm.controls['concessionCard1'].setErrors(null);\r\n } else {\r\n passengerOptionsForm.controls['concessionCard1'].setErrors({ 'has-error': true });\r\n }\r\n if (concessionCard2Valid) {\r\n passengerOptionsForm.controls['concessionCard2'].setErrors(null);\r\n } else {\r\n passengerOptionsForm.controls['concessionCard2'].setErrors({ 'has-error': true });\r\n }\r\n\r\n isValid = concessionCard1Valid && concessionCard2Valid;\r\n }\r\n return isValid;\r\n }\r\n areStudentsValid(passengers: Passengers, passengerOptionsForm: FormGroup): boolean {\r\n\r\n const students = passengers.students,\r\n studentCard1 = passengers.studentCard1,\r\n studentCard2 = passengers.studentCard2,\r\n studentLater = passengers.studentLater\r\n\r\n let isValid = true;\r\n if (students > 0 && !studentLater) {\r\n let studentCard1Valid = true;\r\n let studentCard2Valid = true;\r\n if (students === 1 && !studentCard1) {\r\n studentCard1Valid = false;\r\n } else if (students === 2 && (!studentCard1 || !studentCard2)) {\r\n if (!studentCard1) {\r\n studentCard1Valid = false;\r\n }\r\n if (!studentCard2) {\r\n studentCard2Valid = false;\r\n\r\n }\r\n }\r\n if (studentCard1Valid) {\r\n passengerOptionsForm.controls['studentCard1'].setErrors(null);\r\n } else {\r\n passengerOptionsForm.controls['studentCard1'].setErrors({ 'has-error': true });\r\n }\r\n if (studentCard2Valid) {\r\n passengerOptionsForm.controls['studentCard2'].setErrors(null);\r\n } else {\r\n passengerOptionsForm.controls['studentCard2'].setErrors({ 'has-error': true });\r\n }\r\n\r\n isValid = studentCard1Valid && studentCard2Valid;\r\n }\r\n return isValid;\r\n }\r\n\r\n isPassengersCombinationValid = (passengers: Passengers, passengerOptionsForm: FormGroup) => {\r\n this.actionUpdaterService.announceClear(true);\r\n let isValid = true;\r\n\r\n const adults = passengers.adults,\r\n concessions = passengers.concessions,\r\n seatedInfant = passengers.seatedInfant,\r\n nursedInfant = passengers.nursedInfant,\r\n students = passengers.students,\r\n accompaniedChildren = passengers.accompaniedChildren,\r\n totalChildren = accompaniedChildren,\r\n totalAdults = adults + concessions + students + totalChildren,\r\n infants = passengers.infants,\r\n totalInfants = nursedInfant + seatedInfant;\r\n\r\n if (accompaniedChildren > 0 && totalAdults === 0) {\r\n this.actionUpdaterService.announceError(new ApiError(`Children under the age of 15 must travel with an Adult or Concession`));\r\n isValid = false;\r\n }\r\n if (totalInfants > 0 && totalAdults === 0) {\r\n this.actionUpdaterService.announceError(new ApiError(`Infants (seated and/or nursed) must travel with an Adult or Concession`));\r\n isValid = false;\r\n }\r\n if (totalAdults === 1) {\r\n if (totalInfants === 2 && (nursedInfant !== 1 || seatedInfant !== 1)) {\r\n // tslint:disable-next-line:max-line-length\r\n this.actionUpdaterService.announceError(new ApiError('1 Adult and 2 Infants: 1 infant must be seated and 1 infant must be nursed'));\r\n isValid = false;\r\n }\r\n if (totalInfants > 2 || infants > 2) {\r\n // tslint:disable-next-line:max-line-length\r\n this.actionUpdaterService.announceError(new ApiError('A maximum of 2 Infants (seated and/or nursed) can be booked per Adult, Concession or Accompanied Child'));\r\n isValid = false;\r\n }\r\n }\r\n if (totalInfants > 4) {\r\n this.actionUpdaterService.announceError(new ApiError(`A maximum of 4 Infants (seated and/or nursed) can be booked`));\r\n isValid = false;\r\n }\r\n if (nursedInfant > totalAdults) {\r\n // tslint:disable-next-line:max-line-length\r\n this.actionUpdaterService.announceError(new ApiError('The number of nursed Infants may not exceed the total number of Adults, Concessions and Accompanied Children'));\r\n isValid = false;\r\n }\r\n\r\n if ((totalInfants > 0 || infants > 0) && totalAdults === 0) {\r\n // tslint:disable-next-line:max-line-length\r\n this.actionUpdaterService.announceError(new ApiError('The number of nursed Infants may not exceed the total number of Adults, Concessions and Accompanied Children'));\r\n isValid = false;\r\n }\r\n\r\n if (concessions > 2) {\r\n this.actionUpdaterService.announceError(new ApiError(`Maximum of 2 'Concessions' allowed`));\r\n isValid = false;\r\n }\r\n if ((concessions + students) > 2) {\r\n this.actionUpdaterService.announceError(new ApiError(`You cannot have more than two concession fares on a single booking`));\r\n isValid = false;\r\n }\r\n \r\n if (accompaniedChildren > 0 && adults + concessions + students < 1 ) {\r\n this.actionUpdaterService.announceError(new ApiError(`'Accompanied Child' must travel with an adult.`));\r\n isValid = false;\r\n }\r\n\r\n if (totalAdults === 0) {\r\n isValid = false;\r\n }\r\n if (adults > 0 && concessions > 0 && totalChildren > 0 && seatedInfant > 0) {\r\n this.actionUpdaterService.announceError(new ApiError('Too many fare types. Maximum allowed is 3.'));\r\n isValid = false;\r\n }\r\n isValid = this.areConcessionsValid(passengers, passengerOptionsForm) && isValid;\r\n isValid = this.areStudentsValid(passengers, passengerOptionsForm) && isValid;\r\n\r\n return isValid;\r\n };\r\n\r\n getPassengerSummary(passengerOptionsForm) {\r\n const adults = passengerOptionsForm.controls['adults'].value,\r\n concessions = passengerOptionsForm.controls['concessions'].value,\r\n students = passengerOptionsForm.controls['students'].value,\r\n children = passengerOptionsForm.controls['accompaniedChildren'].value,\r\n infants = passengerOptionsForm.controls['infants'].value,\r\n passengersPretty = [];\r\n\r\n let seatedInfant = passengerOptionsForm.controls['seatedInfant'].value,\r\n nursedInfant = passengerOptionsForm.controls['nursedInfant'].value;\r\n\r\n if (seatedInfant === 0 && nursedInfant === 0 && infants > 0) {\r\n if (infants === 1) {\r\n seatedInfant = 1;\r\n } else if (infants === 2) {\r\n seatedInfant = 1;\r\n nursedInfant = 1;\r\n }\r\n }\r\n\r\n if (!!adults) {\r\n if (adults > 1) {\r\n passengersPretty.push(adults + 'x Adults');\r\n } else {\r\n passengersPretty.push(adults + 'x Adult');\r\n }\r\n }\r\n if (!!concessions) {\r\n if (concessions > 1) {\r\n passengersPretty.push(concessions + 'x Concessions');\r\n } else {\r\n passengersPretty.push(concessions + 'x Concession');\r\n }\r\n }\r\n if (!!students) {\r\n if (students > 1) {\r\n passengersPretty.push(students + 'x Students');\r\n } else {\r\n passengersPretty.push(students + 'x Student');\r\n }\r\n }\r\n if (!!children) {\r\n if (children > 1) {\r\n passengersPretty.push(children + 'x Children');\r\n } else {\r\n passengersPretty.push(children + 'x Child');\r\n }\r\n }\r\n if (!!seatedInfant) {\r\n if (seatedInfant > 1) {\r\n passengersPretty.push(seatedInfant + 'x Seated Infants');\r\n } else {\r\n passengersPretty.push(seatedInfant + 'x Seated Infant');\r\n }\r\n }\r\n if (!!nursedInfant) {\r\n if (nursedInfant > 1) {\r\n passengersPretty.push(nursedInfant + 'x Nursed Infants');\r\n } else {\r\n passengersPretty.push(nursedInfant + 'x Nursed Infant');\r\n }\r\n }\r\n if (passengersPretty.length < 1) {\r\n return 'Choose passenger options';\r\n }\r\n return passengersPretty.join(', ');\r\n }\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/express-booking-widget.ts","import * as _ from \"lodash\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { InitialDataService } from \"app/initial-data.service\";\r\n\r\n\r\n@Injectable()\r\nexport class FaresService {\r\n constructor(private initialDataService: InitialDataService) {\r\n\r\n }\r\n\r\n getFareBasisFor = (passengerType: string, options) => {\r\n const fareTypes = this.initialDataService.fareTypes,\r\n //functions to be used to narrow down the list of fare types based on passenger type\r\n filters = {\r\n 'adult'(fareType) {\r\n return fareType.IsChild === false &&\r\n fareType.IsInfant === false &&\r\n fareType.ConcessionCardRequired === false;\r\n },\r\n 'concession'(fareType) {\r\n return fareType.IsChild === false &&\r\n fareType.IsInfant === false &&\r\n fareType.ConcessionCardRequired === true;\r\n },\r\n 'accompaniedChild'(fareType) {\r\n return fareType.IsChild === true &&\r\n fareType.IsInfant === false &&\r\n fareType.ConcessionCardRequired === false &&\r\n fareType.NonChildRequired === true;\r\n },\r\n 'infant'(fareType) {\r\n return fareType.IsChild === true &&\r\n fareType.IsInfant === true &&\r\n fareType.ConcessionCardRequired === false &&\r\n fareType.NonChildRequired === true;\r\n }\r\n };\r\n if (!_.isFunction(filters[passengerType])) {\r\n throw new Error(`\"${passengerType}\" is not a valid passenger type`);\r\n }\r\n\r\n\r\n this.validateOptions(options);\r\n var list: any = _.filter(fareTypes, filters[passengerType]);\r\n this.validateLength(passengerType, list);\r\n\r\n return options.isReturn ? list[0].ReturnCode : list[0].Code;\r\n };\r\n private validateOptions = (options) => {\r\n if (!options && _.isUndefined(options.isReturn)) {\r\n throw new Error('option \"isReturn\" is required');\r\n }\r\n };\r\n private validateLength = (passengerType, filteredFareTypes) => {\r\n if (!filteredFareTypes.length) {\r\n throw new Error(`No fare types were found for \"${passengerType}\"`);\r\n }\r\n// if (!(filteredFareTypes.length > 1)) {\r\n// throw new Error(`Multiple fare types were found for \"${passengerType}\"`);\r\n// }\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/fares.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\nimport * as error from '../../shared/components/error-summary/error-handler.function';\r\nimport { WindowRefManager } from 'app/shared/services/window.service';\r\n\r\n@Injectable()\r\nexport class FeatureService {\r\n\r\n constructor(private windowManager: WindowRefManager) { }\r\n\r\n public GetFeatureStatus(feature: string): boolean {\r\n return this.windowManager.nativeWindow.featureToggles[feature] === 'true';\r\n }\r\n\r\n public GetFeatureValue(feature: string): string {\r\n return this.windowManager.nativeWindow.featureToggles[feature];\r\n }\r\n}\r\n\r\n\r\nexport class Feature {\r\n public static UseGoogleMaps = 'UseGoogleMaps';\r\n public static UsePayWithKMs = 'UsePayWithKMs';\r\n public static TranslationCacheTime = 'TranslationCacheTime';\r\n public static LastTCUpdate = 'LastTCUpdate';\r\n public static ShowTransactionHistory = 'ShowTransactionHistory';\r\n public static ShowSeatPreferenceSelection = 'ShowSeatPreferenceSelection';\r\n public static HideGoogleMaps = 'HideGoogleMaps';\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/feature.service.ts","import * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { Injectable } from '@angular/core';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\n\r\n\r\n@Injectable()\r\nexport class GxUtilsService {\r\n\r\n constructor(private initialDataService: InitialDataService) { }\r\n removeDashesAndCapitalizeAfter(str: string) {\r\n return str.replace(/(-.)/g, function (x) { return x[1].toUpperCase() });\r\n }\r\n camelCaseToHuman = (input) => {\r\n return (input || '')\r\n // insert a space before all caps\r\n .replace(/([A-Z])/g, ' $1')\r\n // uppercase the first character\r\n .replace(/^./, str => str.toUpperCase());\r\n };\r\n calculateDistance = (lat1, lon1, lat2, lon2) => {\r\n var rlat1 = Math.PI * lat1 / 180,\r\n rlat2 = Math.PI * lat2 / 180,\r\n theta = lon1 - lon2,\r\n rtheta = Math.PI * theta / 180,\r\n dist = Math.sin(rlat1) * Math.sin(rlat2) + Math.cos(rlat1) * Math.cos(rlat2) * Math.cos(rtheta);\r\n\r\n dist = Math.acos(dist);\r\n dist = dist * 180 / Math.PI;\r\n dist = dist * 60 * 1.1515;\r\n // I quickly converted miles to km. Still not correct, maybe need to use google api to calculate actual walking/road distance?\r\n dist = dist * 1.6;\r\n return dist;\r\n };\r\n getXPath = (element) => {\r\n var xpath = '';\r\n for (; element && element.nodeType === 1; element = element.parentNode) {\r\n const id = $(element.parentNode).children(element.tagName).index(element) + 1;\r\n let idString = '';;\r\n if (id > 1) {\r\n idString = `[${id}]`;\r\n }\r\n xpath = '/' + element.tagName.toLowerCase() + idString + xpath;\r\n }\r\n return xpath;\r\n };\r\n\r\n //server date comes like this: '2016-11-04T00:00:00'.\r\n //Result is converted to '04-Nov-2016'.\r\n fromServerDate = (serverDate: string, format?: string) => {\r\n if (!!format) {\r\n return moment(serverDate, format).format('DD-MMM-YYYY');\r\n } else {\r\n return moment(serverDate).format('DD-MMM-YYYY');\r\n }\r\n };\r\n\r\n //drop $scope functions/angular-specific vars\r\n cleanObject = (obj) => {\r\n return _.cloneDeep(obj);\r\n };\r\n\r\n //Coverts string date to jscript date'.\r\n //Result is converted to '04-Nov-2016'.\r\n fromServerTextDate = (serverDate) => {\r\n const strSplitDate = serverDate.split('/', 3),\r\n [day, month] = strSplitDate,\r\n year = strSplitDate[2].substring(0, 4),\r\n [time] = serverDate.split(' ', 3),\r\n [hh, mm, ss] = time.split(':', 3),\r\n\r\n dateOut = new Date(year, month - 1, day, hh, mm, ss);\r\n return dateOut;\r\n };\r\n\r\n\r\n //Coverts string date to jscript date'.\r\n //Result is converted to '04-Nov-2016'.\r\n fromServerTextDateMonth = (serverDate) => {\r\n\r\n var monthNames = [\r\n 'Jan', 'Feb', 'Mar',\r\n 'Apr', 'May', 'Jun', 'Jul',\r\n 'Aug', 'Sep', 'Oct',\r\n 'Nov', 'Dec'\r\n ];\r\n\r\n\r\n var strSplitDate = serverDate.split('/', 3),\r\n day = strSplitDate[0],\r\n month = strSplitDate[1],\r\n year = strSplitDate[2].substring(0, 4);\r\n return day + '-' + monthNames[month - 1] + '-' + year;\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/gx-utils.service.ts","import { Injectable } from '@angular/core';\r\nimport * as error from '../components/error-summary/error-handler.function';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Http, Response } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\n\r\n@Injectable()\r\nexport class HeadlessCmsService {\r\n\r\n constructor(private http: Http) { }\r\n\r\n getGenericContentByPath(path: string) {\r\n const url = `/umbraco/api/HeadlessCms/GetGenericContentByPath?path=${path}`;\r\n return this.http.get(url)\r\n .map((response: Response) => response.json())\r\n .catch(error.handleError);;\r\n }\r\n\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/headless-cms.service.ts","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Booking } from 'app/shared/models/booking.model';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class KmPassService {\r\n public onSavePassengerOptions: Subject<void>;\r\n public onChangeFarePriceKMS: Subject<number>;\r\n constructor() {\r\n this.onSavePassengerOptions = new Subject<void>();\r\n this.onChangeFarePriceKMS = new Subject<number>();\r\n }\r\n broadcastSavePassengerOptions(): any {\r\n this.onSavePassengerOptions.next();\r\n }\r\n broadcastFarePriceKMS(farePriceKMS: number): any {\r\n this.onChangeFarePriceKMS.next(farePriceKMS);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/km-pass.service.ts","\r\nimport { Injectable } from '@angular/core';\r\nimport { ActionUpdaterService, ApiError } from './action-updater.service';\r\nimport { Http, Response, Jsonp } from '@angular/http';\r\nimport * as _ from 'lodash';\r\nimport { SectorOptions } from '../services/booking.service';\r\nimport { Booking, Totals, BookingManagementHeaders } from 'app/shared/models/booking.model';\r\nimport { StopItem } from '../services/reference-data.service';\r\nimport { Availability } from 'app/shared/models/availability.model';\r\nimport * as moment from 'moment';\r\nimport { InitialDataService, PassengerFareType } from 'app/initial-data.service';\r\nimport { Passengers, PassengerFormModel } from 'app/shared/models/passenger.model';\r\nimport { TimeTableTravelOptions, TravelOptions, AvailabilityOption } from 'app/shared/models/timetables.model';\r\nimport { ITINERARY_CONTEXT } from 'app/shared/models/enums/context.enum';\r\nimport { Dictionary } from '../models/dictonary.model';\r\nimport { FeatureService, Feature } from './feature.service';\r\ndeclare function require(name: string): any;\r\n\r\n\r\nexport const LOCAL_STORAGE_KEYS = {\r\n OFFLINE_BOOKING: 'offline_booking',\r\n ONLINE_BOOKING: 'online_booking',\r\n CART: 'cart',\r\n TRAVEL_STOPS: 'travel_stops',\r\n TRANSLATION_CACHE: 'translation_cache',\r\n TIMETABLE_TRAVEL_OPTIONS: 'timetable_travel_options',\r\n TRAVEL_OPTIONS: 'travel_options',\r\n TRAVEL_AVAILABILITY: 'travel_availability',\r\n AVAILABILITY_EXTRAS: 'availability_extras',\r\n TRAVEL_PASSENGERS: 'travel_passengers',\r\n PACKAGE_TRAVEL_OPTIONS: 'package_travel_options',\r\n MUST_REDIRECT_NEW_BUS_TRAVEL: 'redirect',\r\n ADDED_TRIP_TO_BOOKING: 'added_trip_to_booking',\r\n BOOKING_MANAGEMENT_HEADERS: 'booking_management_headers',\r\n ERROR: 'error',\r\n SELECTED_TRAVEL: 'selectedTravel',\r\n TC_UPDATED: 'tc_updated',\r\n PROMO_CODE: 'promoCode'\r\n};\r\n@Injectable()\r\nexport class LocalStorageService {\r\n public currentAvailability: Array<Availability>;\r\n public currentAvailabilityOptions: AvailabilityOption;\r\n private appVersion = this.initialDataService.version;\r\n private repository: any;\r\n constructor(\r\n private actionUpdaterService: ActionUpdaterService,\r\n private initialDataService: InitialDataService,\r\n private featureService: FeatureService,\r\n private http: Http) {\r\n const storageAvailable = require('storage-available');\r\n const isStorageAvailable = storageAvailable('localStorage');\r\n if (isStorageAvailable) {\r\n this.repository = window.localStorage;\r\n }\r\n }\r\n\r\n applyPromoCode = (promoCode: string) => {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.PROMO_CODE, promoCode);\r\n }\r\n\r\n removePromoCode = () => {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.PROMO_CODE);\r\n }\r\n\r\n hasPromoApplied = () => {\r\n try {\r\n let promoCode = this.repository.getItem(LOCAL_STORAGE_KEYS.PROMO_CODE);\r\n\r\n\r\n promoCode = !!promoCode ? promoCode : \"\";\r\n\r\n return promoCode;\r\n } catch (e) {\r\n return \"\";\r\n }\r\n }\r\n\r\n removeRedirect = () => {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.MUST_REDIRECT_NEW_BUS_TRAVEL);\r\n }\r\n getRedirect = () => {\r\n try {\r\n let redirect = this.repository.getItem(LOCAL_STORAGE_KEYS.MUST_REDIRECT_NEW_BUS_TRAVEL);\r\n\r\n\r\n redirect = !!redirect ? redirect === 'true' : false;\r\n\r\n return redirect;\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n saveRedirect = () => {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.MUST_REDIRECT_NEW_BUS_TRAVEL, true);\r\n }\r\n getPackageTravelOptions() {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.PACKAGE_TRAVEL_OPTIONS));\r\n }\r\n removePackageTravelOptions() {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.PACKAGE_TRAVEL_OPTIONS);\r\n }\r\n removeTravelOptions(): void {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.TIMETABLE_TRAVEL_OPTIONS);\r\n }\r\n saveTravelStops(stops) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TRAVEL_STOPS, JSON.stringify(stops));\r\n }\r\n getTravelStops() {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TRAVEL_STOPS));\r\n }\r\n saveTranslation(key, value) {\r\n const translationCache = this.getTranslationCache();\r\n translationCache[key] = value;\r\n this.saveTranslationCache(translationCache);\r\n }\r\n getTranslationCache(): Dictionary<string> {\r\n let translationCache = JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TRANSLATION_CACHE));\r\n // console.log('cache age:', moment(new Date()).diff(moment(translationCache['dictionaryCreationDate']), 'hours'));\r\n // console.log('maxCacheTime:', Number(this.featureService.GetFeatureValue(Feature.TranslationCacheTime)));\r\n // console.log('has cache expired?: ', moment(new Date()).diff(moment(translationCache['dictionaryCreationDate']), 'hours') > Number(this.featureService.GetFeatureValue(Feature.TranslationCacheTime)));\r\n if (translationCache == null ||\r\n translationCache['dictionaryCreationDate'] == null ||\r\n moment(new Date()).diff(moment(translationCache['dictionaryCreationDate']), 'hours') >= Number(this.featureService.GetFeatureValue(Feature.TranslationCacheTime))) {\r\n\r\n translationCache = new Dictionary<string>();\r\n translationCache['dictionaryCreationDate'] = new Date().toISOString();\r\n }\r\n\r\n return translationCache;\r\n }\r\n saveTranslationCache(translationDictionary: Dictionary<string>) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TRANSLATION_CACHE, JSON.stringify(translationDictionary));\r\n }\r\n removeTravelStops() {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.TRAVEL_STOPS);\r\n }\r\n saveTravelPassengers(passengers: Passengers) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TRAVEL_PASSENGERS, JSON.stringify(passengers));\r\n }\r\n getTravelPassengers(): Passengers {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TRAVEL_PASSENGERS)) as Passengers;\r\n }\r\n removeTravelPassengers() {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.TRAVEL_PASSENGERS);\r\n }\r\n saveTimeTableTravelOptions(travelOptions: TimeTableTravelOptions) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TIMETABLE_TRAVEL_OPTIONS, JSON.stringify(travelOptions));\r\n }\r\n getTimeTableTravelOptions(): TimeTableTravelOptions {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TIMETABLE_TRAVEL_OPTIONS));\r\n }\r\n saveTravelOptions(travelOptions: TravelOptions) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TRAVEL_OPTIONS, JSON.stringify(travelOptions));\r\n }\r\n getTravelOptions(): TravelOptions {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TRAVEL_OPTIONS));\r\n }\r\n savePackageTravelOptions(options: AvailabilityOption, to: StopItem, from: StopItem) {\r\n const oldFormatForLegacyPurposes = {\r\n departureDate: options.TravelLegs[0].travelDate,\r\n from: from.Code,\r\n fromStop: from.Description,\r\n isReturn: options.isReturn,\r\n promoCode: options.TravelLegs[0].promotionCode,\r\n returnDate: options.isReturn ? options.TravelLegs[1].travelDate : null,\r\n to: to.Code,\r\n toStop: to.Description\r\n };\r\n\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.PACKAGE_TRAVEL_OPTIONS, JSON.stringify(oldFormatForLegacyPurposes));\r\n }\r\n getOnlineBooking = () => {\r\n try {\r\n const booking = JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.ONLINE_BOOKING)) as Booking;\r\n\r\n if (!booking || this.isOutdatedVersion(booking)) {\r\n return null;\r\n }\r\n return booking;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n saveOnlineBooking = (booking: Booking) => {\r\n if (!!booking) {\r\n this.stampVersionNumber(booking);\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.ONLINE_BOOKING, JSON.stringify(booking));\r\n }\r\n }\r\n saveOfflineBooking(booking: Booking) {\r\n /* this.stampVersionNumber(booking); */ // TODO check\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.OFFLINE_BOOKING, JSON.stringify(booking));\r\n }\r\n resetOfflineBooking = () => {\r\n this.saveOfflineBooking(new Booking());\r\n }\r\n getOfflineBooking(): Booking {\r\n try {\r\n const booking: Booking = JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.OFFLINE_BOOKING));\r\n\r\n if (!booking/* || this.isOutdatedVersion(booking) */) { // TODO check\r\n return new Booking();\r\n }\r\n return booking;\r\n } catch (e) {\r\n return new Booking();\r\n }\r\n }\r\n saveTravelAvailability(availabilities: Array<Availability>) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TRAVEL_AVAILABILITY, JSON.stringify(availabilities));\r\n }\r\n getTravelAvailability(): Availability[] {\r\n const availability = JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TRAVEL_AVAILABILITY));\r\n try {\r\n // if (!!availability && this.isOutdatedVersion(availability)) {\r\n // return new Core.TravelAvailability();\r\n // }\r\n return availability;\r\n\r\n } catch (e) {\r\n return [];\r\n }\r\n }\r\n saveAvailabilityExtras(extras: AvailabilityExtras): void {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.AVAILABILITY_EXTRAS, JSON.stringify(extras));\r\n }\r\n getAvailabilityExtras(): AvailabilityExtras {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.AVAILABILITY_EXTRAS));\r\n }\r\n removeAvailabilityExtras(): void {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.AVAILABILITY_EXTRAS);\r\n }\r\n addTravelToBooking(options): void {\r\n if (!options.legName ||\r\n !options.travelGuid ||\r\n !options.routeNumber ||\r\n !options.fareGuid) {\r\n throw new Error('could not add travel to booking. Some options are missing.');\r\n }\r\n\r\n const booking: Booking = this.getOfflineBooking()\r\n if (!booking.travels) {\r\n booking.travels = [];\r\n }\r\n const availability = this.getTravelAvailability(),\r\n travelAvailability: any = availability.find(a => a.TravelGUID === options.travelGuid),\r\n routeOption: any = travelAvailability.RouteOptions.find(ro => ro.RouteNumber === options.routeNumber),\r\n fare = routeOption.Fares.find(ro => ro.FareGUID === options.fareGuid),\r\n existingTravelLegIdx = booking.travels.findIndex((tr: any) => tr.TravelLegName === options.legName);\r\n\r\n\r\n\r\n // Create new object relationship for:\r\n // TravelAvailability > RouteOptions > Fares\r\n // this contains only the chosen RouteOptions and Fare. (eliminates other routes/fares)\r\n routeOption.Fares = [fare];\r\n travelAvailability.RouteOptions = [routeOption];\r\n travelAvailability.TravelLegName = options.legName;\r\n\r\n // ADD TRAVEL LEG TO BOOKING\r\n // is there any existing travel with the same legName?\r\n // if so, replace it with the new one\r\n if (existingTravelLegIdx > -1) {\r\n booking.travels.splice(existingTravelLegIdx, 1, travelAvailability);\r\n } else {\r\n booking.travels.push(travelAvailability);\r\n }\r\n\r\n // save booking\r\n this.saveOfflineBooking(booking);\r\n }\r\n getCart = () => {\r\n try {\r\n const cart = JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.CART)) as Totals;\r\n return !!cart ? cart : null;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n saveCart = (cart: Totals) => {\r\n if (!!cart) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.CART, JSON.stringify(cart));\r\n }\r\n }\r\n\r\n addPassengerToOfflineBooking = (passengerDetails: PassengerFormModel) => {\r\n const booking = this.getOfflineBooking();\r\n booking.passengerDetails = passengerDetails;\r\n this.saveOfflineBooking(booking);\r\n }\r\n resetManagedBooking = () => {\r\n this.saveCart(new Totals());\r\n this.saveOnlineBooking(new Booking());\r\n }\r\n setAddedTripToBooking = (isAdded: boolean) => {\r\n if (isAdded) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.ADDED_TRIP_TO_BOOKING, isAdded);\r\n } else {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.ADDED_TRIP_TO_BOOKING);\r\n }\r\n }\r\n hasTripBeenAdded = () => {\r\n return !!this.repository.getItem(LOCAL_STORAGE_KEYS.ADDED_TRIP_TO_BOOKING);\r\n }\r\n saveError = (jsonError: ApiError) => {\r\n if (jsonError === null) {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.ERROR);\r\n } else {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.ERROR, JSON.stringify(jsonError));\r\n }\r\n\r\n }\r\n hasBeenAnError = (): boolean => {\r\n return !!this.repository.getItem(LOCAL_STORAGE_KEYS.ERROR);\r\n }\r\n getError = (): ApiError => {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.ERROR));\r\n }\r\n getBookingManagementHeadersState = () => {\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.BOOKING_MANAGEMENT_HEADERS)) as BookingManagementHeaders;\r\n }\r\n saveBookingManagementHeadersState = (headers: BookingManagementHeaders) => {\r\n if (!!headers) {\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.BOOKING_MANAGEMENT_HEADERS, JSON.stringify(headers));\r\n }\r\n }\r\n addPromocodeToOfflineBooking = (promocode: string, promocodeDescription: string) => {\r\n const booking = this.getOfflineBooking();\r\n booking.promocode = promocode;\r\n booking.promocodeDescription = promocodeDescription;\r\n this.saveOfflineBooking(booking);\r\n }\r\n removePromocodeFromOfflineBooking = () => {\r\n const booking = this.getOfflineBooking();\r\n booking.promocode = null;\r\n booking.promocodeDescription = null;\r\n this.saveOfflineBooking(booking);\r\n }\r\n setSelectedTravelFromBooking(bookingGuid: string, selectedSectors: Array<SectorOptions>) {\r\n const json = this.repository.getItem(LOCAL_STORAGE_KEYS.SELECTED_TRAVEL);\r\n let selecteSectorsWrapperArr: SelecteSectorsWrapper[];\r\n let selecteSectorsWrapper: SelecteSectorsWrapper;\r\n if (!!json) {\r\n selecteSectorsWrapperArr = JSON.parse(json);\r\n selecteSectorsWrapper = selecteSectorsWrapperArr.find(arr => arr.bookingGuid === bookingGuid);\r\n if (!!selecteSectorsWrapper) {\r\n selecteSectorsWrapper.selectedSectors = selectedSectors;\r\n } else {\r\n selecteSectorsWrapper = new SelecteSectorsWrapper();\r\n selecteSectorsWrapper.bookingGuid = bookingGuid;\r\n selecteSectorsWrapper.selectedSectors = selectedSectors;\r\n selecteSectorsWrapperArr.push(selecteSectorsWrapper);\r\n }\r\n } else {\r\n selecteSectorsWrapper = new SelecteSectorsWrapper();\r\n selecteSectorsWrapper.bookingGuid = bookingGuid;\r\n selecteSectorsWrapper.selectedSectors = selectedSectors;\r\n selecteSectorsWrapperArr = [selecteSectorsWrapper];\r\n }\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.SELECTED_TRAVEL, JSON.stringify(selecteSectorsWrapperArr));\r\n }\r\n getSelectedTravelFromBooking(bookingGuid: string): Array<SectorOptions> | null {\r\n let sectors: Array<SectorOptions> = [];\r\n const json = this.repository.getItem(LOCAL_STORAGE_KEYS.SELECTED_TRAVEL);\r\n let selecteSectorsWrapperArr: SelecteSectorsWrapper[];\r\n let selecteSectorsWrapper: SelecteSectorsWrapper;\r\n if (!!json) {\r\n selecteSectorsWrapperArr = JSON.parse(json);\r\n selecteSectorsWrapper = selecteSectorsWrapperArr.find(arr => arr.bookingGuid === bookingGuid);\r\n if (!!selecteSectorsWrapper) {\r\n sectors = selecteSectorsWrapper.selectedSectors;\r\n }\r\n }\r\n return sectors;\r\n }\r\n removeSelectedTravelFromBooking(bookingGuid: string): void {\r\n const json = this.repository.getItem(LOCAL_STORAGE_KEYS.SELECTED_TRAVEL);\r\n let selecteSectorsWrapperArr: SelecteSectorsWrapper[];\r\n if (!!json) {\r\n selecteSectorsWrapperArr = JSON.parse(json);\r\n selecteSectorsWrapperArr = selecteSectorsWrapperArr.filter(arr => arr.bookingGuid !== bookingGuid);\r\n }\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.SELECTED_TRAVEL, JSON.stringify(selecteSectorsWrapperArr));\r\n }\r\n\r\n getIfTCUpdated(customerGuid: string) {\r\n const tcUpdatedDictionary = this.repository.getItem(LOCAL_STORAGE_KEYS.TC_UPDATED);\r\n if (tcUpdatedDictionary == null) {\r\n return 'false';\r\n }\r\n return JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TC_UPDATED))[customerGuid];\r\n }\r\n\r\n setIfTCUpdated(customerGuid: string, value: boolean) {\r\n let tcUpdatedDictionary = new Dictionary<string>();\r\n if (this.repository.getItem(LOCAL_STORAGE_KEYS.TC_UPDATED) != null) {\r\n tcUpdatedDictionary = JSON.parse(this.repository.getItem(LOCAL_STORAGE_KEYS.TC_UPDATED));\r\n }\r\n\r\n tcUpdatedDictionary[customerGuid] = value.toString();\r\n this.repository.setItem(LOCAL_STORAGE_KEYS.TC_UPDATED, JSON.stringify(tcUpdatedDictionary));\r\n }\r\n\r\n removeIfTCUpdated() {\r\n this.repository.removeItem(LOCAL_STORAGE_KEYS.TC_UPDATED);\r\n }\r\n\r\n // Input format from API is '21/09/2017 7:30:00 AM'\r\n public getJsDate(stringDate: string, format: string) {\r\n const jsDate = moment(stringDate, format).toDate();\r\n return jsDate;\r\n }\r\n\r\n private isOutdatedVersion = (obj) => {\r\n return !obj || obj._version !== this.appVersion;\r\n }\r\n\r\n private stampVersionNumber = (obj) => {\r\n obj._version = this.appVersion;\r\n }\r\n}\r\nexport class SelecteSectorsWrapper {\r\n public bookingGuid: string;\r\n public selectedSectors: Array<SectorOptions>;\r\n}\r\nexport class AvailabilityExtras {\r\n public bookingGuid: string;\r\n public productReference: string;\r\n public isReturn: boolean;\r\n public sector: number;\r\n public context: ITINERARY_CONTEXT;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/local-storage.service.ts","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Booking } from 'app/shared/models/booking.model';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class PassengerOptionsStateService {\r\n public onShouldDisplayDialog: Subject<void>;\r\n constructor() {\r\n this.onShouldDisplayDialog = new Subject<void>();\r\n }\r\n broadcastShouldDisplayDialog(): any {\r\n this.onShouldDisplayDialog.next();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/passenger-options-state.service.ts","import * as _ from 'lodash';\r\nimport { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { FaresService } from 'app/shared/services/fares.service';\r\nimport { Passengers } from 'app/shared/models/passenger.model';\r\nimport { LoyaltyProgram } from 'app/my-greyhound/my-greyhound.service';\r\n\r\n@Injectable()\r\nexport class PassengersService {\r\n\r\n constructor(private http: Http,\r\n private faresService: FaresService) {\r\n }\r\n\r\n getDefaultPassengersSelection(): Passengers {\r\n return <Passengers>{\r\n adults: 1,\r\n concessions: 0,\r\n accompaniedChildren: 0,\r\n infants: 0,\r\n nursedInfant: 0,\r\n seatedInfant: 0,\r\n concessionCard1: null,\r\n concessionCard2: null,\r\n requiresSpecialAssistance: false,\r\n specialAssistanceType: null\r\n };\r\n }\r\n isPassengersCombinationValid = (passengers) => {\r\n\r\n this.validatePassengersObject(passengers);\r\n\r\n const adults = passengers.adults,\r\n concessions = passengers.concessions,\r\n totalAdults = adults + concessions,\r\n accompaniedChildren = passengers.accompaniedChildren,\r\n totalChildren = accompaniedChildren,\r\n nursedInfant = passengers.nursedInfant,\r\n seatedInfant = passengers.seatedInfant,\r\n totalInfants = nursedInfant + seatedInfant;\r\n\r\n if (accompaniedChildren > 0 && totalAdults === 0) {\r\n throw new Error(`Accompanied Child' must travel with an 'Adult'`);\r\n }\r\n if (totalInfants > 0 && totalAdults === 0) {\r\n throw new Error(`Infant' must travel with an 'Adult'`);\r\n }\r\n if (totalAdults === 1) {\r\n \r\n if (totalInfants === 2 && (nursedInfant !== 1 || seatedInfant !== 1)) {\r\n throw new\r\n Error('1 Adult and 2 Infants: 1 infant must be seated and 1 infant must be nursed');\r\n }\r\n if (totalInfants > 2 || passengers.infant > 2) {\r\n throw new Error(`No more than 2 'Infants' with a single 'Adult'`);\r\n }\r\n }\r\n if (totalInfants > 4) {\r\n throw new Error(`No more than 4 'Infants' total`);\r\n }\r\n if (nursedInfant > totalAdults) {\r\n throw new Error('Total of nursed infants cannot be higher than number of adults');\r\n }\r\n if (concessions > 2) {\r\n throw new Error(`Maximum of 2 'Concessions' allowed`);\r\n }\r\n if (totalAdults === 0) {\r\n throw new Error('At least one Adult or Concession must be booked');\r\n }\r\n if (adults > 0 && concessions > 0 && totalChildren > 0 && seatedInfant > 0) {\r\n throw new Error('Too many fare types. Maximum allowed is 3.');\r\n }\r\n return true;\r\n };\r\n getTotalSeatedPassengers(passengers): number | null {\r\n return !passengers\r\n ? null\r\n : (!!passengers.adults ? passengers.adults : 0) +\r\n (!!passengers.concessions ? passengers.concessions : 0) +\r\n (!!passengers.students ? passengers.students : 0) +\r\n (!!passengers.accompaniedChildren ? passengers.accompaniedChildren : 0) +\r\n (!!passengers.seatedInfant ? passengers.seatedInfant : 0);\r\n };\r\n\r\n getPassengerDetails(customerGuid: string): Observable<any> { // TODO change to corresponding class\r\n const url = `/umbraco/api/Passenger/GetPassengerDetails/${customerGuid}`;\r\n return this.http.get(url);\r\n }\r\n\r\n getLoyaltyTripStatus(customerGuid, fareGuid, travelGuid): Observable<LoyaltyTripStatusResponse> {\r\n const url = `/umbraco/api/Passenger/GetLoyaltyTripStatus`,\r\n options = {\r\n CustomerGuid: customerGuid,\r\n FareGuid: fareGuid,\r\n TravelGuid: travelGuid\r\n };\r\n return this.http.post(url, options)\r\n .map(r =>\r\n Object.assign(new LoyaltyTripStatusResponse, r.json()));\r\n }\r\n\r\n\r\n private validatePassengersObject = (passengers) => {\r\n const requiredProperties = [\r\n 'adults',\r\n 'concessions',\r\n 'accompaniedChildren',\r\n 'nursedInfant',\r\n 'seatedInfant'\r\n ];\r\n\r\n if (!passengers || !_.isObject(passengers)) {\r\n throw new Error('Passengers object is required');\r\n }\r\n\r\n for (let i = 0; i < requiredProperties.length; i++) {\r\n const prop = requiredProperties[i];\r\n if (!_.isNumber(passengers[prop])) {\r\n throw new Error(`'${prop}' is required`);\r\n }\r\n }\r\n return true;\r\n };\r\n}\r\n\r\nexport class LoyaltyTripStatusResponse {\r\n CustomerLinkedToProgram: boolean;\r\n FreeTripAvailable: boolean;\r\n TripStatusDescription: string;\r\n LoyaltyProgramDescription: string;\r\n LoyaltyPrograms: Array<LoyaltyProgram>;\r\n CustomerEligibleTrip: boolean;\r\n ProgramEligibleTrip: boolean;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/passenger.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\nimport * as error from '../../shared/components/error-summary/error-handler.function';\r\n\r\n@Injectable()\r\nexport class PaymentService {\r\n\r\n constructor(private http: Http) { }\r\n\r\n createPayment = (options: CreatePaymentOptions) => {\r\n const url = `/umbraco/api/payment/createpayment`;\r\n return this.http.post(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n confirmAndTicket = (options: ConfirmAndTicketOptions) => {\r\n const url = `/umbraco/api/payment/confirmpayment`;\r\n return this.http.post(url, options)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n private extractJson(res: Response) {\r\n let body = res.json();\r\n return body;\r\n }\r\n}\r\n\r\n\r\nexport class CreatePaymentOptions {\r\n constructor(\r\n private PaymentMethod: string,\r\n private PaymentContext: string,\r\n private BookingGuid: string) {\r\n }\r\n\r\n Amount: number;\r\n TransactionReference: string;\r\n PaymentDescription: string;\r\n ItemList: Array<any>;\r\n CancelUrl: string;\r\n\r\n}\r\n\r\nexport class CreatePaymentResult{\r\n public merchant: string;\r\n public result: string;\r\n public session: string;\r\n public Message: string;\r\n}\r\n\r\nexport class TnsCreditCardOptions {\r\n constructor(\r\n private cardNumber: string,\r\n private cardSecurityCode: string,\r\n private cardExpiryMonth: string,\r\n private cardExpiryYear: string\r\n ) {}\r\n}\r\n\r\nexport class TnsResponse {\r\n status: string;\r\n cardFundingMethod: string;\r\n cardScheme: string;\r\n cardBrand: string;\r\n session: string;\r\n cardData: Array<CardData>;\r\n fieldsInError: any;\r\n}\r\n\r\nexport class CardData{\r\n cardExpiryMonth: number;\r\n cardExpiryYear: number;\r\n cardNumber: string;\r\n}\r\n\r\nexport class ConfirmAndTicketOptions {\r\n constructor(private bookingGuid: string, private Tns: TnsOptions, private Loyalty: LoyaltyOptions) {}\r\n}\r\n\r\nexport class TnsOptions {\r\n constructor(private TransactionNumber: string, private FormSession: string, private TransactionAmount: number){}\r\n}\r\n\r\nexport class LoyaltyOptions {\r\n constructor(private customerId: string){}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/payment.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\nimport * as error from '../../shared/components/error-summary/error-handler.function';\r\nimport * as _ from 'lodash';\r\nimport { StopAddress } from 'app/shared/models/timetables.model';\r\n\r\ndeclare const Modernizr: any;\r\n\r\n@Injectable()\r\nexport class ReferenceDataService {\r\n stops: StopItem[];\r\n constructor(private http: Http) { }\r\n\r\n getStops = () => {\r\n const url = `/umbraco/api/travel/GetStops`;\r\n return this.http.get(url)\r\n .map(this.extractJson)\r\n .catch(error.handleError);\r\n }\r\n\r\n private extractJson(res: Response) {\r\n return res.json();\r\n }\r\n\r\n public testLocationEnabled(onSuccessfulLocationRequest, onFailedLocationRequest) {\r\n const locationRequestOptions = { // options\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 0\r\n };\r\n navigator.geolocation.getCurrentPosition(onSuccessfulLocationRequest, onFailedLocationRequest, locationRequestOptions);\r\n }\r\n\r\n public addDistanceToStops = (stops: Array<StopItem>, userCoords: Coords) => {\r\n const setDistanceOnStop = (stop: StopItem) => {\r\n const lat = stop.Addresses[stop.AddressNumber - 1].Latitude;\r\n const long = stop.Addresses[stop.AddressNumber - 1].Longitude;\r\n if (lat !== 0 && stop.Longitude !== 0) {\r\n stop.distance = this.calculateDistance(userCoords.latitude,\r\n userCoords.longitude,\r\n lat,\r\n long);\r\n } else {\r\n stop.distance = 99999999999; // determine it as far away...\r\n }\r\n };\r\n\r\n if (!Modernizr.geolocation) {\r\n return stops;\r\n }\r\n\r\n const options = {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 0\r\n }, onLocationBeingFound = (pos) => {\r\n try {\r\n userCoords = pos.coords;\r\n _.each(stops, setDistanceOnStop);\r\n this.stops = stops;\r\n } catch (err) {\r\n console.error(`ERROR(${err.code}): ${err.message}`);\r\n }\r\n return stops;\r\n }, onError = err => {\r\n console.error(`ERROR(${err.code}): ${err.message}`);\r\n };\r\n\r\n if (!userCoords) {\r\n navigator.geolocation.getCurrentPosition(onLocationBeingFound, onError, options);\r\n } else {\r\n _.each(stops, setDistanceOnStop);\r\n return stops;\r\n }\r\n return stops;\r\n }\r\n\r\n private calculateDistance = (lat1, lon1, lat2, lon2) => {\r\n const rlat1 = Math.PI * lat1 / 180,\r\n rlat2 = Math.PI * lat2 / 180,\r\n theta = lon1 - lon2,\r\n rtheta = Math.PI * theta / 180;\r\n let dist = Math.sin(rlat1) * Math.sin(rlat2) + Math.cos(rlat1) * Math.cos(rlat2) * Math.cos(rtheta);\r\n\r\n dist = Math.acos(dist);\r\n dist = dist * 180 / Math.PI;\r\n dist = dist * 60 * 1.1515;\r\n // I quickly converted miles to km. Still not correct, maybe need to use google api to calculate actual walking/road distance?\r\n dist = dist * 1.6;\r\n return dist;\r\n }\r\n}\r\n\r\nexport class StopItem {\r\n Address: string;\r\n Addresses: StopAddress[];\r\n AddressNumber: number;\r\n Code: string;\r\n Description: string;\r\n Latitude: number;\r\n Longitude: number;\r\n State: string;\r\n // added by function\r\n distance: number;\r\n\r\n public toString() {\r\n return this.Code;\r\n }\r\n}\r\n\r\nexport class Coords {\r\n latitude: number;\r\n longitude: number;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/reference-data.service.ts","import * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Booking, Addon, AddonOption, OptionValueEntityInstance, Sector } from '../models/booking.model';\r\nimport { AddonsService } from 'app/shared/services/addons.service';\r\nimport { LocalStorageService } from './local-storage.service';\r\nimport { TravelProductService, GetCartTotalOptions, CartItemOptions, UpdateTourOnBookingOption } from './travel-product.service';\r\nimport { BookingService } from './booking.service';\r\nimport { InitialDataService } from '../../initial-data.service';\r\nimport { ErrorService } from './error.service';\r\nimport { GxConstants } from '../../shared/constants/gx.constants';\r\nimport { CartTotalService } from 'app/shared/services/cart-total.service';\r\nimport { ApplicationError } from 'app/shared/errors/ApplicationError';\r\n\r\n@Injectable()\r\nexport class SectorAddonsService {\r\n\r\n private _booking: Booking;\r\n public addonCartSource = new BehaviorSubject(Array<Addon>());\r\n addonCart = this.addonCartSource.asObservable();\r\n public loadingCartTotalSource = new BehaviorSubject<boolean>(false);\r\n loadingCartTotal = this.loadingCartTotalSource.asObservable();\r\n public refreshSectorAddonsSource = new BehaviorSubject<boolean>(false);\r\n refreshSectorAddons = this.refreshSectorAddonsSource.asObservable();\r\n\r\n constructor(\r\n private addonsService: AddonsService,\r\n private localStorageService: LocalStorageService,\r\n private travelPackageService: TravelProductService,\r\n private bookingsService: BookingService,\r\n private initialDataService: InitialDataService,\r\n private errorService: ErrorService,\r\n private cartTotalService: CartTotalService\r\n ) {\r\n }\r\n\r\n setLoadingCartTotal(lct: boolean) {\r\n this.loadingCartTotalSource.next(lct);\r\n }\r\n\r\n assignOpenDatedAddonToSector(options: UpdateTourOnBookingOption){\r\n this.travelPackageService.updateTourOnBooking(options);\r\n }\r\n\r\n updateAddonsCart(booking: Booking, addons: Array<Addon>) {\r\n this._booking = booking;\r\n this.updateCartData(booking, addons);\r\n }\r\n\r\n setAddonsRefresh(refresh: boolean){\r\n console.log('sector.addons.service.ts: ' + refresh);\r\n this.refreshSectorAddonsSource.next(refresh);\r\n }\r\n\r\n updateCartData = (booking: Booking, addons: Array<Addon>) => {\r\n const selectedAddons = addons.filter(x => x.AddonOptions.findIndex(y => y.Selected) > -1),\r\n storeCartTotalInManagedBooking = () => {\r\n const success = ( data ) => {\r\n this.localStorageService.saveCart(data);\r\n const options = this.constructAddAddonOptions(selectedAddons);\r\n this.bookingsService.addAddonsToBooking(options).toPromise().then((result) => {\r\n const updatedBooking = result;\r\n\r\n this.localStorageService.saveOnlineBooking(updatedBooking);\r\n this.addonCartSource.next(addons);\r\n });\r\n }, error = function () {\r\n throw new ApplicationError('Addons not added to booking.');\r\n }, loading = () => {\r\n this.setLoadingCartTotal(true);\r\n }, finished = () => {\r\n this.setLoadingCartTotal(false);\r\n }\r\n const cartTotalOptions = this.constructCartTotalOptions(selectedAddons);\r\n console.log(cartTotalOptions);\r\n return this.cartTotalService.postCartTotal(cartTotalOptions, success, error, loading, finished);\r\n };\r\n\r\n this.errorService.reset();\r\n storeCartTotalInManagedBooking();\r\n }\r\n\r\n private constructAddAddonOptions = selectedAddons => {\r\n const fareTypeOptions = [];\r\n selectedAddons.forEach(addon => {\r\n addon.AddonOptions.forEach(o => {\r\n o.OptionValueEntity.forEach(v => {\r\n if(v.Selected && v.ProductCode != null){\r\n fareTypeOptions.push(\r\n {\r\n AddonType: addon.AddonType,\r\n FareTypeCode: v.ProductCode,\r\n Amount: v.SalePriceUnit,\r\n Quantity: o.Quantity,\r\n Name: o.Quantity + \" x \" + v.SoldDescription,\r\n UsageDate: moment(o.UsageDate,\"DD/MM/YYYY hh:mm:SS A\").format(\"YYYY-MM-DD hh:mm:SS A\").toString()\r\n }\r\n );\r\n }\r\n })\r\n })\r\n });\r\n return {\r\n BookingGUID: this._booking.BookingGuid,\r\n FareTypeOptions: fareTypeOptions\r\n }\r\n };\r\n\r\n private constructCartTotalOptions = selectedAddons => {\r\n\r\n const cartItems = [];\r\n selectedAddons.forEach(addon => {\r\n addon.AddonOptions.forEach(o => {\r\n o.OptionValueEntity.forEach(v => {\r\n if(v.Selected && v.ProductCode != null && o.CanPurchase){\r\n const cartItem = new CartItemOptions();\r\n cartItem.productCode = v.ProductCode;\r\n cartItem.Type = addon.AddonType;\r\n cartItem.SalePriceUnit = v.SalePriceUnit;\r\n cartItem.Quantity = o.Quantity;\r\n cartItem.PromoCode = null;\r\n cartItems.push(cartItem);\r\n }\r\n })\r\n });\r\n });\r\n\r\n const options = new GetCartTotalOptions();\r\n options.BookingGUID = this._booking.BookingGuid;\r\n options.Passengers = Booking.getPassengerCountWithExclusions(this._booking);\r\n options.CartItems = cartItems;\r\n return options;\r\n };\r\n\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/sector-addons.service.ts","import { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { TimetableResponse, PostTimetableOption, GetTimetableOption, Link } from '../models/timetables.model';\r\nimport * as error from '../../shared/components/error-summary/error-handler.function';\r\n@Injectable()\r\nexport class TimetableService {\r\n constructor(private http: Http) { }\r\n\r\n getTimetable(origin: string, destination: string, departAfter: string, arriveBy: string): Observable<TimetableResponse> {\r\n return this.http.post('/umbraco/api/travel/GetTimetable',\r\n new GetTimetableOption(origin, destination, departAfter, arriveBy))\r\n .map(res => res.json())\r\n .map(r => Object.assign(new TimetableResponse(), r))\r\n .catch(error.handleError);\r\n }\r\n\r\n postTimetable(postTimetableOption: Array<PostTimetableOption>, timetableDate: string) {\r\n const url = `/umbraco/api/travel/PostTimetable`,\r\n options = {\r\n serviceDetails: postTimetableOption,\r\n serviceDate: timetableDate\r\n };\r\n return this.http.post(url, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n getDocumentsTimetables(): Observable<Link[]> {\r\n return this.http.get('/umbraco/api/travel/GetDocumentsTimetables')\r\n .map(res => res.json())\r\n .map(list => list.map(i => Object.assign(new Link(), i)))\r\n .catch(error.handleError);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/timetable-service.ts","import { TourOrExperience } from './../models/booking.model';\r\nimport { Package } from 'app/shared/models/booking.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { Http, Response } from '@angular/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\n\r\nimport * as error from '../../shared/components/error-summary/error-handler.function';\r\nimport { UpdatePassengerOption } from '../../shared/models/passenger.model';\r\nimport { Booking, Totals, Farebasis } from '../../shared/models/booking.model';\r\nimport { GxConstants } from '../constants/gx.constants';\r\nimport internal from 'assert';\r\n\r\n@Injectable()\r\nexport class TravelProductService {\r\n\r\n private verifySinglePassBookingUrl = '/umbraco/api/booking/VerifySinglePassBooking';\r\n private getPackagesUrl = '/umbraco/api/travel/GetPackages';\r\n private getPackageUrl = '/umbraco/api/travel/GetPackage';\r\n private getTourExperienceUrl = '/umbraco/api/travel/GetTourExperience';\r\n private getCountryUrl = '/umbraco/api/travel/GetCountries';\r\n private createBookingsUrl = '/umbraco/api/booking/CreateBookings';\r\n private addProductAndPassengerToBookingUrl = '/umbraco/api/booking/AddProductAndPassengerToBooking';\r\n private updatePassengerUrl = '/umbraco/api/passenger/UpdatePassenger';\r\n private updateInclusionsUrl = '/umbraco/api/travel/UpdateInclusion';\r\n private updateSingleInclusionsUrl = '/umbraco/api/travel/UpdateSingleInclusion';\r\n private addTourToBookingUrl = '/umbraco/api/travel/AddTourToBooking';\r\n private updateTourOnBookingUrl = '/umbraco/api/travel/UpdateTourOnBooking';\r\n private applyPromoToPackageUrl = '/umbraco/api/travel/ApplyPromoToPackage';\r\n private applyPromoToPassUrl = '/umbraco/api/travel/ApplyPromoToPass';\r\n private removePromoFromPackageUrl = '/umbraco/api/travel/RemovePromoFromPackage';\r\n private removePromoFromPassUrl = '/umbraco/api/travel/RemovePromoFromPass';\r\n private applyPromoToTourUrl = '/umbraco/api/travel/ApplyPromoToTour';\r\n private removePromoFromTourUrl = '/umbraco/api/travel/RemovePromoFromTour';\r\n private getCartTotalUrl = '/umbraco/api/booking/GetCartTotal';\r\n private getCartTotalForManagementUrl = '/umbraco/api/booking/GetCartTotalForManagement';\r\n private postCartTotalUrl = '/umbraco/api/booking/carttotal';\r\n private addCustomerToBookingUrl = '/umbraco/api/booking/AddCustomerToBooking';\r\n private confirmBookingUrl = '/umbraco/api/booking/ConfirmBooking';\r\n private confirmBookingKMPaymentUrl = '/umbraco/api/booking/ConfirmBookingKMPayment';\r\n private ticketBookingUrl = '/umbraco/api/booking/TicketBooking';\r\n private isProductInRegionUrl = '/umbraco/api/booking/IsProductInRegion';\r\n private allocateVisaNumberUrl = '/umbraco/api/booking/AllocateVisaNumber';\r\n\r\n private _currentPackage: TravelPackage | TravelTour;\r\n get currentProduct(): TravelPackage | TravelTour {\r\n return this._currentPackage;\r\n }\r\n set currentProduct(currentPackage: TravelPackage | TravelTour) {\r\n this._currentPackage = currentPackage;\r\n }\r\n\r\n public bookings: Array<Booking>;\r\n\r\n constructor(private http: Http) { }\r\n\r\n verifySinglePassBooking(verifySinglePassBookingOptions: VerifySinglePassBookingOptions): Observable<any> {\r\n return this.http.post(this.verifySinglePassBookingUrl, verifySinglePassBookingOptions)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n getPackages(): Observable<TravelPackage[]> {\r\n return this.http.get(this.getPackagesUrl)\r\n .map(this.extractPackages)\r\n .catch(error.handleError);\r\n }\r\n\r\n getPackage(packageReference: string): Observable<TravelPackage> {\r\n return this.http.get(`${this.getPackageUrl}?packageReference=${packageReference}`)\r\n .map(this.extractPackage)\r\n .catch(error.handleError);\r\n }\r\n getTourExperience(tourReference: string): Observable<TravelPackage> {\r\n return this.http.get(`${this.getTourExperienceUrl}?tourReference=${tourReference}`)\r\n .map(this.extractPackageForExperiences)\r\n .catch(error.handleError);\r\n }\r\n\r\n getCountries(): Observable<any> {\r\n return this.http.get(`${this.getCountryUrl}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n createBookings(createBookingsOption: CreateBookingsOption): Observable<Booking[]> {\r\n return this.http.put(`${this.createBookingsUrl}`, createBookingsOption)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n addProductAndPassengerToBooking(addProductAndPassengerToBookingOptions: AddProductAndPassengerToBookingOptions): Observable<any> {\r\n return this.http.put(`${this.addProductAndPassengerToBookingUrl}`, addProductAndPassengerToBookingOptions)\r\n .map(res => [res.json()])\r\n .catch(error.handleError);\r\n }\r\n\r\n updatePassenger(options: UpdatePassengerOption): Observable<any> {\r\n return this.http.post(`${this.updatePassengerUrl}`, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n updateInclusions(options: UpdateInclusionsOptions): Observable<any> {\r\n return this.http.post(`${this.updateInclusionsUrl}`, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n updateSingleInclusions(options: UpdateInclusionsOptions): Observable<any> {\r\n return this.http.post(`${this.updateSingleInclusionsUrl}`, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n addTourToBooking(options: AddTourToBookingOption): Observable<any> {\r\n return this.http.put(`${this.addTourToBookingUrl}`, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n updateTourOnBooking(options: UpdateTourOnBookingOption): Observable<any> {\r\n return this.http.post(`${this.updateTourOnBookingUrl}`, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n applyPromoToPackage(options: ApplyPromoToPackageOptions): Observable<Booking> {\r\n return this.http.put(`${this.applyPromoToPackageUrl}`, options)\r\n .map(res => Object.assign(new Booking(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n applyPromoToPass(options: ApplyPromoToPackageOptions): Observable<Booking> {\r\n return this.http.put(`${this.applyPromoToPassUrl}`, options)\r\n .map(res => Object.assign(new Booking(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n\r\n removePromoFromPackage(options: RemovePromoFromPackage): Observable<Booking> {\r\n return this.http.post(`${this.removePromoFromPackageUrl}`, options)\r\n .map(res => Object.assign(new Booking(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n removePromoFromPass(options: RemovePromoFromPass): Observable<Booking> {\r\n return this.http.post(`${this.removePromoFromPassUrl}`, options)\r\n .map(res => Object.assign(new Booking(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n\r\n applyPromoToTour(options: ApplyPromoToTourOptions): Observable<Booking> {\r\n return this.http.put(`${this.applyPromoToTourUrl}`, options)\r\n .map(res => Object.assign(new Booking(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n\r\n removePromoFromTour(options: RemovePromoFromTour): Observable<Booking> {\r\n return this.http.post(`${this.removePromoFromTourUrl}`, options)\r\n .map(res => Object.assign(new Booking(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n\r\n getCartTotal(bookingGuid: string): Observable<any> {\r\n return this.http.get(`${this.getCartTotalUrl}?bookingGuid=${bookingGuid}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n getCartTotalForManagement(bookingGuid: string): Observable<any> {\r\n return this.http.get(`${this.getCartTotalForManagementUrl}?bookingGuid=${bookingGuid}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n postCartTotal(options: GetCartTotalOptions): Observable<Totals> {\r\n return this.http.post(this.postCartTotalUrl, options)\r\n .map(res => Object.assign(new Totals(), res.json()))\r\n .catch(error.handleError);\r\n }\r\n\r\n addCustomerToBooking(bookingGuid: string, customerGuid: string): Observable<any> {\r\n return this.http.post(`${this.addCustomerToBookingUrl}`, new AddCustomerToBookingOption(bookingGuid, customerGuid))\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n confirmBooking(bookingGuid: string): Observable<any> {\r\n return this.http.get(`${this.confirmBookingUrl}?bookingGuid=${bookingGuid}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n\r\n confirmBookingKMPayment(bookingGuid: string): Observable<any> {\r\n return this.http.get(`${this.confirmBookingKMPaymentUrl}?bookingGuid=${bookingGuid}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n ticketBooking(options: TicketBookingOptions): Observable<any> {\r\n return this.http.put(`${this.ticketBookingUrl}`, options)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n isProductInRegion(fareCode: string): Observable<any> {\r\n return this.http.get(`${this.isProductInRegionUrl}?fareCode=${fareCode}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n allocateVisaNumber(bookingNumber: string, visaNumber : string): Observable<any> {\r\n return this.http.get(`${this.allocateVisaNumberUrl}?bookingNumber=${bookingNumber}&visaNumber=${visaNumber}`)\r\n .map(res => res.json())\r\n .catch(error.handleError);\r\n }\r\n private extractPackage = (res: Response) => {\r\n const body = res.json();\r\n return this.constructPackage(body);\r\n }\r\n\r\n private extractPackageForExperiences = (res: Response) => {\r\n const body = res.json();\r\n return this.constructPackageForExperiences(body);\r\n }\r\n\r\n private constructPackage(body: Package) {\r\n const fareTypes = body.FareTypes\r\n // tslint:disable-next-line:max-line-length\r\n .map(f => new FareType(f.FareTypeCode, f.OnlineName, f.Farebasis.InternetDescription, f.Farebasis.TotalPrice, (<any>f.Farebasis).SalePriceKM, f.Farebasis));\r\n\r\n return new TravelPackage(body.Image2,\r\n body.Name,\r\n body.Description,\r\n body.PackageReference,\r\n null,\r\n fareTypes);\r\n }\r\n private constructPackageForExperiences(body: TourOrExperience) {\r\n const fareTypes = body.FareTypes.\r\n map(f => new FareType(f.FareTypeCode, f.OnlineName, f.Description, f.SalePrice, f.SalePriceKM, f.Farebasis));\r\n\r\n return new TravelPackage(body.Image2,\r\n body.Name,\r\n body.Description,\r\n null,\r\n body.TourReference,\r\n fareTypes);\r\n }\r\n\r\n private extractPackages = (res: Response) => {\r\n const body = res.json();\r\n return body.map(c => this.constructPackage(c));\r\n }\r\n}\r\n\r\nexport class AllocateVisaNumberOptions {\r\n constructor(private bookingNumber: string, private visaNumber: string, private visaPromoCode: string = null) {}\r\n}\r\n\r\nexport class VerifySinglePassBookingOptions {\r\n constructor(private bookingNumber: string, private bookingPin: string) { }\r\n}\r\n\r\n\r\nexport class ApplyPromoToPackageOptions {\r\n constructor(private promotionCode: string, private bookingGuid: string) { }\r\n}\r\n\r\nexport class RemovePromoFromPackage {\r\n constructor(private bookingGuid: string, private packageGuid: string) { }\r\n}\r\n\r\nexport class RemovePromoFromPass {\r\n constructor(private bookingGuid: string, private passGuid: string) { }\r\n}\r\n\r\nexport class ApplyPromoToTourOptions {\r\n constructor(private promotionCode: string, private bookingGuid: string, private tourGuid: string) { }\r\n}\r\n\r\nexport class RemovePromoFromTour {\r\n constructor(private bookingGuid: string, private tourGuid: string) { }\r\n}\r\n\r\nexport class UpdateInclusionsOptions {\r\n constructor(private dateToBook: string, private bookingGuid: string, private tourGuid: string) { }\r\n}\r\n\r\nexport class AddTourToBookingOption {\r\n constructor(\r\n private bookingGuid: string,\r\n private tourGuid: string,\r\n private dateToBook: string,\r\n private fareTypeCode: string,\r\n private fareTypeCurrency: string,\r\n private fareTypeCurrencyAmount: number,\r\n private sendConfirmation: boolean\r\n ) { }\r\n}\r\nexport class UpdateTourOnBookingOption {\r\n constructor(\r\n private bookingGuid: string,\r\n private tourGuid: string,\r\n private dateToBook: string,\r\n private fareTypeCode: string,\r\n private fareTypeCurrency: string,\r\n private fareTypeCurrencyAmount: number,\r\n private sendConfirmation: boolean\r\n ) { }\r\n}\r\n\r\nexport class AddCustomerToBookingOption {\r\n constructor(private bookingGuid: string, private customerGuid: string) { }\r\n}\r\n\r\nexport class TravelPackage {\r\n fareTypes: Array<FareType>;\r\n constructor(\r\n public icon,\r\n public title,\r\n public description,\r\n public packageReference,\r\n public tourReference: string,\r\n fareTypes?: Array<FareType>) {\r\n this.fareTypes = fareTypes;\r\n }\r\n}\r\nexport class TravelTour extends TravelPackage {\r\n}\r\n\r\nexport class FareType {\r\n public salePrice: number;\r\n // tslint:disable-next-line:max-line-length\r\n constructor(public fareTypeCode: string, public displayDescription: string, public internetDescription: string, public totalPrice: number, public salePriceKM: number, public farebasis: Farebasis) { }\r\n\r\n get descriptionToDisplay(): string {\r\n return this.displayDescription ? this.displayDescription : this.internetDescription;\r\n }\r\n}\r\n\r\nexport class FareTypeChangedEvent {\r\n constructor(public fareType: FareType, public count: number) { }\r\n}\r\n\r\nexport class CreateBookingsOption {\r\n public Company: string;\r\n public Currency: string;\r\n public ProductType: string;\r\n public CustomerGUID: string;\r\n public Products: ProductType[];\r\n\r\n constructor() {\r\n this.Company = GxConstants.COMPANY;\r\n this.Currency = GxConstants.CURRENCY;\r\n this.ProductType = GxConstants.PRODUCT_TYPE.BUSPASS;\r\n }\r\n}\r\n\r\nexport class ProductType {\r\n public Product: string;\r\n public Reference: string;\r\n public FareType: string;\r\n public Quantity: number;\r\n public PromotionCode: string;\r\n public DateToBook: string;\r\n\r\n constructor(ref: string, fareTypeCode: string, count: number, product: string) {\r\n this.Reference = ref;\r\n this.FareType = fareTypeCode;\r\n this.Quantity = count;\r\n this.Product = product;\r\n }\r\n}\r\n\r\nexport class TicketBookingOptions {\r\n constructor(public bookingGuid: string, public receiptNumber: string, public paymentGateway: string, public paymentType: string) { }\r\n}\r\n\r\nexport class AddProductAndPassengerToBookingOptions {\r\n public Products: ProductType[];\r\n constructor(public bookingGuid: string) { }\r\n}\r\nexport class CartItemOptions {\r\n public Name: string;\r\n public productCode: string;\r\n public PromoCode: string;\r\n public Quantity: number;\r\n public SalePriceUnit: number;\r\n public Type: string;\r\n public ProductReference: string;\r\n public FareReference: string;\r\n public ProductType: string;\r\n}\r\nexport class GetCartTotalOptions {\r\n public BookingGUID: string;\r\n public CustomerGUID: string;\r\n public Farebasis: string\r\n public FreeTrip: boolean;\r\n public Passengers: number;\r\n public CartItems: CartItemOptions[];\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/travel-product.service.ts","import { Availability } from './../models/availability.model';\r\nimport { handleError } from '../components/error-summary/error-handler.function';\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { Injectable } from '@angular/core';\r\nimport { Http } from '@angular/http';\r\nimport { LocalStorageService } from 'app/shared/services/local-storage.service';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { GxUtilsService } from 'app/shared/services/gx-utils.service';\r\nimport { PassengersService } from 'app/shared/services/passenger.service';\r\nimport { TravelCentre } from 'app/shared/models/booking.model';\r\nimport { Passengers } from 'app/shared/models/passenger.model';\r\nimport { StopItem } from 'app/shared/services/reference-data.service';\r\nimport { SpecialAssistance } from 'app/shared/components/special-assistance/special-assistance.component';\r\nimport { AvailabilityOption, TravelLeg } from 'app/shared/models/timetables.model';\r\nimport { ApiError } from 'app/shared/services/action-updater.service';\r\nimport { PassengerFareType } from 'app/initial-data.service';\r\ndeclare const Modernizr: any;\r\n\r\n@Injectable()\r\nexport class TravelService {\r\n\r\n retrievingStops = false;\r\n\r\n constructor(private http: Http,\r\n private localStorageService: LocalStorageService,\r\n private gxUtilsService: GxUtilsService,\r\n private passengersService: PassengersService) {\r\n }\r\n\r\n getTravelCentres = () => {\r\n return this.http.get(`/umbraco/api/travel/GetTravelCentres`, null).map(r => r.json());\r\n }\r\n\r\n getTravelCentreDetails = (id: string) => {\r\n return this.http.get(`/umbraco/api/travel/GetTravelCentreDetails/${id}`, null).map(r => r.json());\r\n }\r\n\r\n updateInclusions = (options: UpdateInclusionsOptions) => {\r\n return this.http.post(`/umbraco/api/travel/UpdateInclusion`, options, null);\r\n }\r\n addTourToBooking = (options: AddTourToBookingOption) => {\r\n return this.http.put(`/umbraco/api/travel/AddTourToBooking`, options, null);\r\n }\r\n updateTourOnBooking = (options: UpdateTourOnBookingOption) => {\r\n return this.http.post('/umbraco/api/travel/UpdateTourOnBooking', options, null);\r\n }\r\n\r\n sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n\r\n getTimeStampedStorageObject(data) {\r\n return new TimeStampedStorageObject(new Date(), data);\r\n }\r\n \r\n storageItemHasExpired(data) {\r\n if (!data.timestamp) {\r\n return true;\r\n } else {\r\n var dataTimestamp = moment(data.timestamp);\r\n var timeStampExpiration = dataTimestamp.add(1,'d');\r\n var currentTimeStamp = moment();\r\n if (timeStampExpiration < currentTimeStamp) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n getStops = async () => {\r\n if (this.retrievingStops) {\r\n await this.sleep(1000);\r\n }\r\n const cachedStops = this.localStorageService.getTravelStops();\r\n\r\n if (cachedStops) {\r\n if(!cachedStops.timestamp){\r\n return cachedStops;\r\n }\r\n if(!this.storageItemHasExpired(cachedStops)){\r\n return cachedStops.data;\r\n }\r\n }\r\n\r\n this.retrievingStops = true;\r\n\r\n return this.http.get('/umbraco/api/travel/getstops', null).map((r) => {\r\n const stops: TimeStampedStorageObject = this.getTimeStampedStorageObject(r.json());\r\n this.storeStops(stops);\r\n this.retrievingStops = false;\r\n return stops.data;\r\n }\r\n );\r\n }\r\n\r\n loadStopsIntoStorage = () => {\r\n\r\n const cachedStops = this.localStorageService.getTravelStops();\r\n\r\n if (!cachedStops) {\r\n this.http.get('/umbraco/api/travel/getstops', null).map((r) => {\r\n const stops: TimeStampedStorageObject = this.getTimeStampedStorageObject(r.json());\r\n this.storeStops(stops);\r\n }).subscribe();\r\n }\r\n }\r\n\r\n getServiceLocations = (options: GetServiceLocationOption) => {\r\n return this.http.post('/umbraco/api/travel/GetServiceLocation', options, null);\r\n }\r\n\r\n getService = (options: GetServiceOption) => {\r\n return this.http.post('/umbraco/api/travel/GetService', options, null);\r\n }\r\n\r\n getSeating = (service, date: Date, origin, destination, bookingGuid, travelGuid) => {\r\n // tslint:disable-next-line:max-line-length\r\n return this.extractJson(this.http.get(`/umbraco/api/travel/GetServiceSeating?serviceReference=${service}&travelDate=${date}&origin=${origin}&destination=${destination}&bookingGuid=${bookingGuid}&travelGuid=${travelGuid}`));\r\n }\r\n\r\n updateSeating = (bookingGuid, sectorGuid, seating: Array<SeatAllocation>) => {\r\n const options: any = {};\r\n options.BookingGuid = bookingGuid;\r\n options.SectorGuid = sectorGuid;\r\n options.Seats = seating;\r\n return this.extractJson(this.http.post(`/umbraco/api/travel/UpdateServiceSeating`, options, null));\r\n }\r\n\r\n recalculateLocalStorageStopDistance = (stops, position) => {\r\n return this.addDistanceToStops(stops, position);\r\n }\r\n\r\n private addDistanceToStops = (stops, position) => {\r\n let userCoords = position;\r\n const defer = Observable.create();\r\n const setDistanceOnStop = (stop: any) => {\r\n if (stop.Longitude !== 0 && stop.Latitude !== 0) {\r\n stop.distance = this.gxUtilsService\r\n .calculateDistance(userCoords.latitude,\r\n userCoords.longitude,\r\n stop.Latitude,\r\n stop.Longitude);\r\n } else {\r\n stop.distance = 99999999999; // determine it as far away...\r\n }\r\n };\r\n\r\n if (!Modernizr.geolocation) {\r\n defer.resolve(stops);\r\n }\r\n\r\n const options = {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 0\r\n },\r\n onLocationBeingFound = (pos) => {\r\n try {\r\n userCoords = pos.coords;\r\n _.each(stops, setDistanceOnStop);\r\n defer.resolve(stops);\r\n } catch (err) {\r\n defer.reject(`ERROR(${err.code}): ${err.message}`);\r\n }\r\n },\r\n onError = err => {\r\n defer.reject(`ERROR(${err.code}): ${err.message}`);\r\n };\r\n if (!userCoords) {\r\n navigator.geolocation.getCurrentPosition(onLocationBeingFound, onError, options);\r\n } else {\r\n _.each(stops, setDistanceOnStop);\r\n defer.resolve(stops);\r\n }\r\n return defer.promise;\r\n }\r\n\r\n private storeStops = (stops) => {\r\n const stopsObj = { data: stops };\r\n this.localStorageService.saveTravelStops(stops);\r\n }\r\n\r\n getAvailability = (availabilityOptions: AvailabilityOption) => {\r\n availabilityOptions.TravelLegs.forEach((travelLeg) => {\r\n travelLeg.destination = travelLeg.destination.toString();\r\n travelLeg.origin = travelLeg.origin.toString();\r\n });\r\n availabilityOptions.getAlternates = true;\r\n return this.extractJson(this.http.post('/umbraco/api/travel/postavailability', availabilityOptions, null));\r\n }\r\n getAvailabilityWithoutHandleErrors = (availabilityOptions: AvailabilityOption) => {\r\n return this.http.post('/umbraco/api/travel/postavailability', availabilityOptions, null);\r\n }\r\n\r\n getTimetable = (serviceDetails, serviceDate) => {\r\n return this.http.post('/umbraco/api/travel/posttimetable',\r\n {\r\n serviceDetails: serviceDetails,\r\n serviceDate: serviceDate\r\n },\r\n null);\r\n }\r\n\r\n getRouteTimetable = (travelGuid, routeNumber) => {\r\n return this.http.post('/umbraco/api/travel/postroutetimetable',\r\n {\r\n TravelGuid: travelGuid,\r\n RouteNumber: routeNumber\r\n },\r\n null);\r\n }\r\n\r\n getSectorAvailability = (options: GetSectorAvailabilityOptions): Observable<Availability[]> => {\r\n return this.extractJson(this.http.post('/umbraco/api/travel/GetSectorAvailabilityV2', options, null));\r\n }\r\n\r\n\r\n getAvailabilityViaTravelGuid = (travelGuid: string) => {\r\n const url = `/umbraco/api/travel/GetAvailabilityViaTravelGuid?travelGuid=${travelGuid}`;\r\n return this.http.get(url)\r\n .map(res => res.json());\r\n }\r\n getAvailabilityOptions(passengers: Passengers, from: StopItem, to: StopItem, isReturn: boolean,\r\n specialAssistance: SpecialAssistance, departureDate: string, returnDate: string, promoCode: string,\r\n fareTypes: PassengerFareType[]) {\r\n const fares = [],\r\n options = new AvailabilityOption();\r\n\r\n const passengerTypes = {\r\n 'adult': { qty: passengers.adults },\r\n 'concession': { qty: passengers.concessions },\r\n 'accompaniedChild': { qty: passengers.accompaniedChildren },\r\n 'infant': { qty: passengers.seatedInfant + passengers.nursedInfant + passengers.infants },\r\n // either 'seatedInfant' and 'nursedInfant' are 0 or 'infant' is 0\r\n 'student': { qty: passengers.students }\r\n };\r\n // loop through each passenger type, if any passenger, retrieve its fare code.\r\n for (const key in passengerTypes) {\r\n if (passengerTypes.hasOwnProperty(key)) {\r\n const passengerType = key,\r\n qty = passengerTypes[passengerType].qty;\r\n\r\n if (qty > 0) {\r\n fares.push({\r\n code: this.getFareBasisFor(passengerType, isReturn, fareTypes),\r\n qty: qty\r\n });\r\n }\r\n }\r\n }\r\n\r\n // INTEBUS ONLY ALLOWS A MAX OF 3 fare basis code so explode it if more\r\n if (fares.length > 3) {\r\n throw new ApiError('Too many fare types. Maximum allowed is 3.');\r\n }\r\n\r\n for (let i = 0; i < fares.length; i++) {\r\n options['fareBasis' + (i + 1) + 'Count'] = fares[i].qty;\r\n options['fareBasis' + (i + 1) + 'Code'] = fares[i].code;\r\n }\r\n // fareBasisCode 451 is for infants in general. The nursedInfant parameter indicates how many are NOT seated\r\n options.nursedInfants = passengers.nursedInfant;\r\n\r\n // deal with special assistance\r\n if (!!specialAssistance && specialAssistance.checked) {\r\n options.specialAssistance = true;\r\n options.sATypeId = specialAssistance.index;\r\n }\r\n\r\n options.isReturn = isReturn;\r\n options.TravelLegs.push(new TravelLeg(from.Code,\r\n to.Code,\r\n departureDate,\r\n promoCode));\r\n\r\n // RETURN TRIP\r\n if (isReturn) {\r\n options.TravelLegs.push(new TravelLeg(to.Code,\r\n from.Code,\r\n returnDate,\r\n promoCode));\r\n }\r\n return options;\r\n }\r\n getFareBasisFor(passengerType: string, isReturn: boolean, fareTypes: PassengerFareType[]) {\r\n // functions to be used to narrow down the list of fare types based on passenger type\r\n const filters = {\r\n 'adult'(fareType: PassengerFareType) {\r\n return !fareType.IsChild &&\r\n !fareType.IsInfant &&\r\n !fareType.ConcessionCardRequired;\r\n },\r\n 'student'(fareType: PassengerFareType) {\r\n return !fareType.IsChild &&\r\n !fareType.IsInfant &&\r\n fareType.ConcessionCardRequired &&\r\n fareType.Description.toLowerCase().indexOf('student') > -1;\r\n },\r\n 'concession'(fareType: PassengerFareType) {\r\n return !fareType.IsChild &&\r\n !fareType.IsInfant &&\r\n fareType.ConcessionCardRequired;\r\n },\r\n 'accompaniedChild'(fareType: PassengerFareType) {\r\n return fareType.IsChild &&\r\n !fareType.IsInfant &&\r\n !fareType.ConcessionCardRequired &&\r\n fareType.NonChildRequired;\r\n },\r\n 'infant'(fareType: PassengerFareType) {\r\n return fareType.IsChild &&\r\n fareType.IsInfant &&\r\n !fareType.ConcessionCardRequired &&\r\n fareType.NonChildRequired;\r\n },\r\n };\r\n if (!_.isFunction(filters[passengerType])) {\r\n throw new Error(`'${passengerType}' is not a valid passenger type`);\r\n }\r\n const list: any = _.filter(fareTypes, filters[passengerType]);\r\n return isReturn ? list[0].ReturnCode : list[0].Code;\r\n }\r\n\r\n getCategories = () => {\r\n return this.http.get('/umbraco/api/travel/GetCategories', null);\r\n }\r\n\r\n getPassTypesForCategory = (category) => {\r\n return this.http.get(`/umbraco/api/travel/GetPassTypesForCategory?category=${category}`, null);\r\n }\r\n\r\n getPass = (category, pass) => {\r\n return this.extractJson(this.http.get(`/umbraco/api/travel/GetPass2?category=${category}&pass=${pass}`));\r\n }\r\n\r\n private extractJson(o: Observable<any>) {\r\n return o.map(r => r.json()).catch(r => handleError(r));\r\n }\r\n}\r\n\r\nexport class UpdateInclusionsOptions {\r\n constructor(private dateToBook: string, private bookingGuid: string, private tourGuid: string) { }\r\n}\r\n\r\nexport class AddTourToBookingOption {\r\n constructor(\r\n private bookingGuid: string,\r\n private tourGuid: string,\r\n private dateToBook: string,\r\n private fareTypeCode: string,\r\n private fareTypeCurrency: string,\r\n private fareTypeCurrencyAmount: number,\r\n private sendConfirmation: boolean\r\n ) { }\r\n}\r\nexport class UpdateTourOnBookingOption {\r\n constructor(\r\n private bookingGuid: string,\r\n private tourGuid: string,\r\n private dateToBook: string,\r\n private fareTypeCode: string,\r\n private fareTypeCurrency: string,\r\n private fareTypeCurrencyAmount: number,\r\n private sendConfirmation: boolean\r\n ) { }\r\n}\r\n\r\nexport class GetServiceLocationOption {\r\n constructor(\r\n private ServiceCompany: string,\r\n private ServiceNumber: string,\r\n private DepDate: Date\r\n ) { }\r\n}\r\nexport class GetServiceOption {\r\n constructor(\r\n private DestinationCode: string,\r\n private OriginCode: string,\r\n private RunningOnly: boolean,\r\n private Company: string,\r\n private Service: string,\r\n private TravelDate: Date\r\n ) { }\r\n}\r\n\r\nexport class ServiceLocationDetails {\r\n constructor(\r\n public ActivityDateTime: Date,\r\n public Created: string,\r\n public Company: string,\r\n public DestinationName: string,\r\n public DestinationCode: string,\r\n public ScheduledArrivalDate: Date,\r\n public ScheduledDepartureDate: Date,\r\n public IgnitionStartOdometer: number,\r\n public IgnitionStartTime: Date,\r\n public Latitude: number,\r\n public Longitude: number,\r\n public Location: string,\r\n public NextStop: string,\r\n public Odometer: number,\r\n public OriginName: string,\r\n public OriginCode: string,\r\n public PreviousStopDepartureTime: Date,\r\n public PreviousStop: string,\r\n public Service: number,\r\n public VehicleID: string,\r\n public GPSUnitID: string,\r\n public IsRunning: boolean,\r\n public ScheduledStatus: string\r\n ) { }\r\n}\r\nclass GetSectorAvailability {\r\n constructor(public sectorNumber: number, public travelDate?: string) { }\r\n}\r\nexport class GetSectorAvailabilityOptions extends GetSectorAvailability {\r\n constructor(public bookingGuid: string, sectorNumber: number, public travelDate?: string) {\r\n super(sectorNumber, travelDate);\r\n }\r\n}\r\n\r\nexport class TimeStampedStorageObject {\r\n constructor(public timestamp: Date, public data: any) { }\r\n}\r\nexport enum SeatStatus{\r\n Available = 1,\r\n Unavailable = 2,\r\n Selected = 3\r\n}\r\nexport class SeatAllocation {\r\n constructor(\r\n public Seat: string,\r\n public Row: number,\r\n public Status: SeatStatus\r\n ) {}\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/travel.service.ts","import { Injectable } from '@angular/core';\r\nimport 'rxjs/add/operator/catch';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/observable/throw';\r\nimport { Http } from '@angular/http';\r\nimport { WindowRefManager } from 'app/shared/services/window.service';\r\n\r\n@Injectable()\r\nexport class UmbracoService {\r\n\r\n constructor(private http: Http,\r\n private windowManager: WindowRefManager) { }\r\n\r\n public GetPropertyName(property: string): string {\r\n return this.windowManager.nativeWindow.umbraco[property];\r\n }\r\n\r\n public GetPropertyValue(property: string) {\r\n const pageNodeId = this.GetPropertyName(Property.PageNodeId);\r\n return this.http.get(`umbraco/Surface/Umbraco/GetContent?nodeId=` + pageNodeId + `&propertyName=` + property, null);\r\n }\r\n}\r\n\r\n\r\nexport class Property {\r\n public static PageNodeId = 'pageNodeId';\r\n public static PageTitle = 'pageTitle';\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/umbraco.service.ts","import { Injectable } from '@angular/core';\r\n\r\nfunction getWindow(): any {\r\n return window;\r\n}\r\n\r\n@Injectable()\r\nexport class WindowRefManager {\r\n get nativeWindow(): any {\r\n return getWindow();\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/services/window.service.ts","import { IsArrivingComponent } from './components/is-arriving/is-arriving.component';\r\nimport { AgmDirectionModule } from 'agm-direction';\r\nimport { NgModule, Optional, SkipSelf, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport * as _ from 'lodash';\r\n\r\nimport { AgmCoreModule } from '@agm/core';\r\n\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\r\nimport { ModalModule } from 'ngx-bootstrap/modal';\r\n\r\nimport '../../../node_modules/slick-carousel/slick/slick.less';\r\nimport '../../../node_modules/ng-toast/dist/ngToast.css';\r\nimport '../../../node_modules/slick-carousel/slick/slick.js';\r\n\r\nimport { AlertModule } from 'ngx-bootstrap/alert';\r\nimport { TimetableService } from '../shared/services/timetable-service';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { GxDatePipe } from './pipes/gx-date.pipe';\r\nimport { TranslatePipe } from './pipes/translate.pipe';\r\nimport { FilterPipe } from './pipes/filter.pipe';\r\nimport { ErrorSummaryComponent } from './components/error-summary/error-summary.component';\r\nimport { HeadlessCmsService } from './services/headless-cms.service';\r\nimport { GenericContentPageResolve } from './resolver/generic.resolve';\r\nimport { BookingService } from './services/booking.service';\r\nimport { ActionUpdaterService } from './services/action-updater.service';\r\nimport { StepsIndicatorComponent } from './components/steps-indicator/steps-indicator.component';\r\nimport { PickStopComponent } from './components/pick-stop/pick-stop.component';\r\nimport { IsReturnComponent } from './components/is-return/is-return.component';\r\nimport { PickadateDirective } from './components/pick-a-date/pickadate.directive';\r\nimport { PickADateComponent } from './components/pick-a-date/pick-a-date.component';\r\nimport { CounterComponent } from './components/counter/counter.component';\r\nimport { LocalStorageService } from './services/local-storage.service';\r\nimport { SlickSliderComponent } from './components/slick-slider/slick-slider.component';\r\nimport { RunningDogModalComponent } from './components/running-dog-modal/running-dog-modal.component';\r\nimport { PaymentService } from './services/payment.service';\r\nimport { ConfirmationBookingDetailComponent } from './components/confirmation-booking-detail/confirmation-booking-detail.component';\r\nimport { ReferenceDataService } from './services/reference-data.service';\r\nimport { ToastComponent } from './components/toast/toast.component';\r\nimport { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BusyMessageDirective } from './components/busymessage/busymessage.directive';\r\nimport { DeviceService } from './services/device.service';\r\nimport { FeatureService } from './services/feature.service';\r\nimport { UmbracoService } from './services/umbraco.service';\r\nimport { GoogleMapComponent } from './components/google-map/google-map.component';\r\nimport { CreditCardService } from './services/credit-card.service';\r\nimport { AutocompleteOffService } from 'app/shared/services/autocomplete-off.service';\r\nimport { WindowRefManager } from 'app/shared/services/window.service';\r\nimport { KmPassService } from 'app/shared/services/km-pass.service';\r\nimport { PassengerOptionsStateService } from 'app/shared/services/passenger-options-state.service';\r\nimport { PassengersService } from 'app/shared/services/passenger.service';\r\nimport { FaresService } from 'app/shared/services/fares.service';\r\nimport { GxUtilsService } from 'app/shared/services/gx-utils.service';\r\nimport { TravelService } from 'app/shared/services/travel.service';\r\nimport { SelectListComponent } from 'app/shared/components/select-list/select-list.component';\r\nimport { SeatAllocationsComponent } from 'app/shared/components/seat-allocations/seat-allocations.component';\r\nimport { InfoComponent } from 'app/shared/components/info/info.component';\r\nimport { TripDetailsComponent } from 'app/shared/components/trip-details/trip-details.component';\r\nimport { DatetimeComponent } from 'app/shared/components/datetime/datetime.component';\r\nimport { AlertDialogComponent } from './dialogs/alert-dialog/alert-dialog.component'\r\nimport { ConfirmDialogComponent } from './dialogs/confirm-dialog/confirm-dialog.component'\r\nimport { SelectOptionSetComponent } from './dialogs/select-option-set-dialog/select-option-set-dialog.component'\r\nimport { PrettyPassengerPipe } from 'app/shared/pipes/pretty-passenger.pipe';\r\nimport { CartTotalService } from 'app/shared/services/cart-total.service';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { AddonsService } from 'app/shared/services/addons.service';\r\nimport { SectorAddonsService } from 'app/shared/services/sector-addons.service';\r\nimport { ErrorService } from 'app/shared/services/error.service';\r\nimport { EventBusService } from 'app/shared/services/event-bus.service';\r\nimport { CollapsingHeaderComponent } from 'app/shared/components/collapsing-header/collapsing-header.component';\r\nimport { TravelProductService } from 'app/shared/services/travel-product.service';\r\nimport { ItineraryComponent } from '../shared/components/itinerary/itinerary.component';\r\nimport { TravelDatesComponent } from '../shared/components/itinerary/travel-dates/travel-dates.component';\r\nimport { InclusionsComponent } from '../shared/components/itinerary/inclusions/inclusions.component';\r\nimport {\r\n AvailabilityWrapperComponent\r\n} from '../shared/components/itinerary/travel-dates/availability-wrapper/availability-wrapper.component';\r\nimport {\r\n AvailabilityTableComponent\r\n} from '../shared/components/itinerary/travel-dates/availability-table/availability-table.component';\r\nimport { SectorComponent } from '../shared/components/itinerary/travel-dates/sector/sector.component';\r\nimport { SectorAddonsComponent } from './components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons/sector-addons.component';\r\nimport { SectorAddonsWrapperComponent } from './components/itinerary/travel-dates/sector/sector-addons-wrapper/sector-addons-wrapper.component';\r\nimport { PurchaseTotalWrapperComponent } from './components/purchase-total-wrapper/purchase-total-wrapper.component';\r\nimport { OpenAddonsComponent } from './components/itinerary/travel-dates/open-addons-wrapper/open-addons/open-addons.component';\r\nimport { OpenAddonsWrapperComponent } from './components/itinerary/travel-dates/open-addons-wrapper/open-addons-wrapper.component';\r\nimport {\r\n ChangeSectorDateComponent\r\n} from '../shared/components/itinerary/travel-dates/change-sector-date/change-sector-date.component';\r\nimport { PickATimeComponent } from './components/pick-time/pick-a-time.component';\r\nimport { PickatimeDirective } from './components/pick-time/pickatime.directive';\r\nimport { HomePassengerOptionsComponent } from '../shared/components/home-passenger-options/home-passenger-options.component';\r\nimport { ScrollToOnDirective } from 'app/shared/components/scroll-to-on/scroll-to-on.directive';\r\nimport { ExpressBookingService } from './services/express-booking-widget';\r\nimport { SpecialAssistanceComponent } from './components/special-assistance/special-assistance.component';\r\nimport { PageTransitionComponent } from './components/page-transition/page-transition.component';\r\nimport { ProductSummaryComponent } from 'app/travel-products/product-passenger-details/product-summary/product-summary.component';\r\nimport { SummaryComponent } from 'app/travel-products/product-passenger-details/summary/summary.component';\r\nimport { BookingTotalComponent } from 'app/travel-products/product-passenger-details/booking-total/booking-total.component';\r\nimport { ProductPaymentComponent } from 'app/travel-products/product-payment/product-payment.component';\r\nimport { SeatConfirmationComponent } from 'app/travel-products/seat-confirmation/seat-confirmation.component';\r\nimport { PaymentFormComponent } from 'app/travel-products/product-payment/payment-form/payment-form.component';\r\nimport { UpdateSubscriptionsComponent } from './components/update-subcriptions/update-subscriptions.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // <-- import required BrowserAnimationsModule\r\nimport { CollapsibleModule } from 'angular2-collapsible';\r\nimport { TravelAlternativesPanelComponent } from 'app/shared/components/itinerary/travel-dates/travel-alternatives-panel/travel-alternatives-panel.component'\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyBy8D7LH9NyWyHLB9m4V79TobM7DV6W8Yc'\r\n }),\r\n AgmDirectionModule,\r\n BsDropdownModule.forRoot(),\r\n AlertModule.forRoot(),\r\n ModalModule.forRoot(),\r\n TypeaheadModule.forRoot(),\r\n NgbTypeaheadModule.forRoot(),\r\n ReactiveFormsModule,\r\n FormsModule,\r\n CollapsibleModule\r\n ],\r\n declarations: [\r\n SafeHtmlPipe,\r\n GxDatePipe,\r\n TranslatePipe,\r\n PrettyPassengerPipe,\r\n FilterPipe,\r\n ErrorSummaryComponent,\r\n StepsIndicatorComponent,\r\n PickStopComponent,\r\n IsReturnComponent,\r\n PickadateDirective,\r\n PickADateComponent,\r\n CounterComponent,\r\n SlickSliderComponent,\r\n ProductSummaryComponent,\r\n PaymentFormComponent,\r\n BookingTotalComponent,\r\n RunningDogModalComponent,\r\n ConfirmationBookingDetailComponent,\r\n ToastComponent,\r\n BusyMessageDirective,\r\n GoogleMapComponent,\r\n CollapsingHeaderComponent,\r\n ItineraryComponent,\r\n TravelDatesComponent,\r\n InclusionsComponent,\r\n SectorComponent,\r\n SectorAddonsComponent,\r\n SectorAddonsWrapperComponent,\r\n PurchaseTotalWrapperComponent,\r\n OpenAddonsComponent,\r\n OpenAddonsWrapperComponent,\r\n AvailabilityTableComponent,\r\n ChangeSectorDateComponent,\r\n AvailabilityWrapperComponent,\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n SelectOptionSetComponent,\r\n SelectListComponent,\r\n SeatAllocationsComponent,\r\n InfoComponent,\r\n TripDetailsComponent,\r\n DatetimeComponent,\r\n PickATimeComponent,\r\n PickatimeDirective,\r\n HomePassengerOptionsComponent,\r\n ScrollToOnDirective,\r\n SpecialAssistanceComponent,\r\n PageTransitionComponent,\r\n ProductPaymentComponent,\r\n SeatConfirmationComponent,\r\n SummaryComponent,\r\n UpdateSubscriptionsComponent,\r\n IsArrivingComponent,\r\n TravelAlternativesPanelComponent\r\n ],\r\n exports: [\r\n SafeHtmlPipe,\r\n GxDatePipe,\r\n TranslatePipe,\r\n PrettyPassengerPipe,\r\n FilterPipe,\r\n CommonModule,\r\n ErrorSummaryComponent,\r\n StepsIndicatorComponent,\r\n PickStopComponent,\r\n PickATimeComponent,\r\n PickatimeDirective,\r\n IsReturnComponent,\r\n PickADateComponent,\r\n CounterComponent,\r\n SlickSliderComponent,\r\n RunningDogModalComponent,\r\n ConfirmationBookingDetailComponent,\r\n ToastComponent,\r\n BusyMessageDirective,\r\n GoogleMapComponent,\r\n CollapsingHeaderComponent,\r\n ItineraryComponent,\r\n TravelDatesComponent,\r\n InclusionsComponent,\r\n SectorComponent,\r\n SectorAddonsComponent,\r\n SectorAddonsWrapperComponent,\r\n PurchaseTotalWrapperComponent,\r\n OpenAddonsComponent,\r\n OpenAddonsWrapperComponent,\r\n AvailabilityTableComponent,\r\n ChangeSectorDateComponent,\r\n AvailabilityWrapperComponent,\r\n AlertDialogComponent,\r\n ConfirmDialogComponent,\r\n SelectOptionSetComponent,\r\n SelectListComponent,\r\n SeatAllocationsComponent,\r\n InfoComponent,\r\n TripDetailsComponent,\r\n DatetimeComponent,\r\n HomePassengerOptionsComponent,\r\n ScrollToOnDirective,\r\n SpecialAssistanceComponent,\r\n PageTransitionComponent,\r\n PaymentFormComponent,\r\n ProductPaymentComponent,\r\n SeatConfirmationComponent,\r\n ProductSummaryComponent,\r\n BookingTotalComponent,\r\n SummaryComponent,\r\n UpdateSubscriptionsComponent,\r\n IsArrivingComponent,\r\n TravelAlternativesPanelComponent\r\n ],\r\n entryComponents: [SelectOptionSetComponent]\r\n\r\n})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [\r\n HeadlessCmsService,\r\n GenericContentPageResolve,\r\n ActionUpdaterService,\r\n ProductPaymentComponent,\r\n SeatConfirmationComponent,\r\n BookingService,\r\n DeviceService,\r\n FeatureService,\r\n UmbracoService,\r\n WindowRefManager,\r\n ActionUpdaterService,\r\n AutocompleteOffService,\r\n LocalStorageService,\r\n PaymentService,\r\n CreditCardService,\r\n ReferenceDataService,\r\n KmPassService,\r\n PassengerOptionsStateService,\r\n PassengersService,\r\n FaresService,\r\n TravelService,\r\n GxUtilsService,\r\n CartTotalService,\r\n AddonsService,\r\n SectorAddonsService,\r\n ErrorService,\r\n EventBusService,\r\n TravelProductService,\r\n ExpressBookingService,\r\n BookingTotalComponent,\r\n PaymentFormComponent,\r\n TimetableService,\r\n ProductSummaryComponent,\r\n SummaryComponent\r\n ]\r\n };\r\n }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/shared/shared.module.ts","module.exports = \"\\r\\n<div class=\\\"container\\\">\\r\\n <div class=\\\"row\\\"> \\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <script type=\\\"text/javascript\\\">\\r\\n try {\\r\\n var a = addEventListener;\\r\\n b = function(e) {\\r\\n console.log(e);\\r\\n };\\r\\n a && a(\\\"touchstart\\\", b), a && a(\\\"touchmove\\\", b), a && a(\\\"touchend\\\", b)\\r\\n } \\r\\n catch (e) {}\\r\\n </script>\\r\\n <iframe src=\\\"https://greyhound-embedded.myunidays.com\\\" scrolling=\\\"no\\\" style=\\\"width: 100%; overflow: hidden; min-height: 700px; border: none;\\\"></iframe>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/third-party/UniDays/unidays.component.html\n// module id = ./src/app/third-party/UniDays/unidays.component.html\n// module chunks = main","\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gaweb-unidays',\r\n templateUrl: './unidays.component.html'\r\n})\r\nexport class UniDaysComponent implements OnInit {\r\n constructor(\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/third-party/UniDays/unidays.component.ts","module.exports = \"<div class=\\\"box-section\\\">\\r\\n <div class=\\\"section-header\\\">\\r\\n <span>Booking Total</span>\\r\\n </div>\\r\\n <div class=\\\"totals\\\" [ngClass]=\\\"{ 'loading': loadingCartTotal }\\\">\\r\\n <div class=\\\"booking-totals-container\\\">\\r\\n <div *ngIf=\\\"loadingBookings || loadingCartTotal || totals == null\\\" 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>Loading totals...</h4>\\r\\n </div>\\r\\n <div class=\\\"line-item-wrapper\\\" *ngFor=\\\"let item of totals?.PaymentItems\\\">\\r\\n <div class=\\\"line-item\\\" *ngIf=\\\"item != null && (item.Total != 0 || freeTripClaimed)\\\">\\r\\n <span class=\\\"description\\\">{{!!packageName ? packageName : item.Description}}</span>\\r\\n <div>\\r\\n <span class=\\\"amount\\\" *ngIf=\\\"!isBookingVerified\\\">\\r\\n <span *ngIf=\\\"hasPromo\\\">\\r\\n {{ '$' + (originalAmount | number:'1.2-2')}}\\r\\n </span>\\r\\n <span *ngIf=\\\"!hasPromo\\\">\\r\\n {{ '$' + (item.Total | number:'1.2-2')}}\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n <div>\\r\\n <span class=\\\"amount\\\" *ngIf=\\\"isBookingVerified\\\">\\r\\n {{item.Total}} KM\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"hasPromo\\\" class=\\\"line-item-wrapper\\\">\\r\\n <div class=\\\"line-item\\\">\\r\\n <span class=\\\"description text-success\\\">\\r\\n <span id=\\\"cw-discount-row-label-icon\\\" class=\\\"cw-discount-row-label-icon glyphicon glyphicon-tag\\\" style=\\\"font-size: 14px;\\\"></span>\\r\\n <span class=\\\"cw-discount-row-label-description\\\" style=\\\"font-size: 14px;\\\">{{promoDescription}}</span>\\r\\n <span *ngIf=\\\"canCancelPromo\\\" class=\\\"cw-discount-row-label-remove ga ga-profilemenu-close\\\" style=\\\"cursor: pointer;\\\" (click)=\\\"removePromoCode()\\\"></span>\\r\\n </span>\\r\\n <span class=\\\"amount text-success\\\">\\r\\n (-${{promoAmount.toFixed(2)}})\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!(loadingBookings || loadingCartTotal) && !!totals && !isBookingVerified\\\">\\r\\n <div class=\\\"line-item\\\">\\r\\n <span class=\\\"description total-title\\\">\\r\\n Total to pay:\\r\\n </span>\\r\\n <span class=\\\"amount total-amount\\\">\\r\\n {{'$' + ( totals?.TotalCost | number:'1.2-2')}}\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"line-item\\\">\\r\\n <span class=\\\"description gst\\\">\\r\\n includes 10% GST\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!(loadingBookings || loadingCartTotal) && !!totals && isBookingVerified\\\">\\r\\n <div class=\\\"line-item\\\">\\r\\n <span class=\\\"description total-title\\\">\\r\\n Balance After Payment:\\r\\n </span>\\r\\n <span class=\\\"amount total-amount\\\">\\r\\n {{totals?.TotalCost}} KM\\r\\n </span>\\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/travel-products/product-passenger-details/booking-total/booking-total.component.html\n// module id = ./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.html\n// module chunks = main","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.less\n// module id = ./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.less\n// module chunks = main","import { Component, OnInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\r\nimport { DecimalPipe } from '@angular/common';\r\nimport { ActionUpdaterService, ApiError } from './../../../shared/services/action-updater.service';\r\nimport { Booking, PaymentItem, Totals, Package, Pass } from '../../../shared/models/booking.model';\r\nimport { OnChanges } from '@angular/core/src/metadata/lifecycle_hooks';\r\nimport { debounce } from 'rxjs/operator/debounce';\r\nimport { BookingTotalKms } from 'app/shared/models/booking-total.model';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { TravelProductService } from 'app/shared/services/travel-product.service';\r\n\r\n@Component({\r\n selector: 'gaweb-booking-total',\r\n templateUrl: './booking-total.component.html',\r\n styleUrls: ['./booking-total.component.less']\r\n})\r\nexport class BookingTotalComponent implements OnInit, OnChanges {\r\n @Input() bookingGuid: string;\r\n @Input() loadingBookings: boolean;\r\n\r\n @Input() bookingTotal: BookingTotalKms;\r\n @Input() freeTripClaimed: boolean;\r\n\r\n @Output() onTotalsUpdating: EventEmitter<Totals> = new EventEmitter();\r\n @Output() onRemovePromo: EventEmitter<any> = new EventEmitter();\r\n @Input()\r\n productType: ProductTypeUrl;\r\n private _totals: Totals;\r\n @Input()\r\n set totals(t: Totals) {\r\n this._totals = t;\r\n }\r\n get totals(): Totals {\r\n return this._totals;\r\n }\r\n @Input() loadingCartTotal: boolean;\r\n @Input() addonMode: boolean;\r\n isBookingVerified: boolean;\r\n @Input() packageName: string;\r\n hasPromo: boolean;\r\n promoDescription: string | null;\r\n promoAmount: number | null;\r\n originalAmount: number | null;\r\n canCancelPromo: boolean = true;\r\n\r\n constructor(private travelPackageService: TravelProductService,\r\n private actionUpdaterService: ActionUpdaterService) { }\r\n\r\n ngOnInit() {\r\n //this.canCancelPromo = true;\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!!changes['bookingGuid'] &&\r\n this.productType !== ProductTypeUrl.travelPasses && this.productType !== ProductTypeUrl.expressBooking) {\r\n this.updateCartTotal();\r\n }\r\n if (!changes['bookingTotal'] || changes['bookingTotal'].isFirstChange()) {\r\n return;\r\n }\r\n const bookingtotal: BookingTotalKms = changes['bookingTotal'].currentValue;\r\n this.isBookingVerified = bookingtotal.isBookingVerified;\r\n if (this.isBookingVerified) {\r\n this.totals = new Totals();\r\n this.totals.TotalCost = bookingtotal.balanceAfterPayment;\r\n\r\n const balanceBeforePaymentItem = new PaymentItem();\r\n balanceBeforePaymentItem.Description = 'Balance Before Payment';\r\n balanceBeforePaymentItem.Total = bookingtotal.balanceBeforePayment;\r\n\r\n const farePriceKMSItem = new PaymentItem();\r\n farePriceKMSItem.Description = 'Fare Price';\r\n farePriceKMSItem.Total = bookingtotal.farePriceKMS;\r\n\r\n this.totals.PaymentItems = [\r\n balanceBeforePaymentItem,\r\n farePriceKMSItem\r\n ];\r\n } else if (!changes['bookingGuid'] && bookingtotal.isLogout) {\r\n this.updateCartTotal();\r\n }\r\n }\r\n\r\n removePromoCode = () => {\r\n this.onRemovePromo.emit();\r\n }\r\n\r\n public updateCartTotal = () => {\r\n if (!this.isBookingVerified && !!this.bookingGuid) {\r\n this.loadingCartTotal = true;\r\n this.travelPackageService.getCartTotal(this.bookingGuid)\r\n .subscribe((totals: Totals) => {\r\n this.totals = totals;\r\n this.onTotalsUpdating.emit(totals)\r\n if(this.hasPromo){\r\n this.promoAmount = 0;\r\n if(!!this.totals && !!this.originalAmount && this.totals.PaymentItems){\r\n if(this.totals.PaymentItems[0].Total > 0){\r\n this.promoAmount = this.originalAmount - this.totals.PaymentItems[0].Total;\r\n } else {\r\n this.promoAmount = this.originalAmount - this.totals.PaymentItems[1].Total;\r\n }\r\n }\r\n }\r\n this.loadingCartTotal = false;\r\n }, this.actionUpdaterService.onError);\r\n }\r\n }\r\n\r\n public setPromo = (hasPromo: boolean, desc: string, origAmount: number, hideRemove: boolean = false) => {\r\n this.hasPromo = hasPromo;\r\n this.promoDescription = desc;\r\n this.originalAmount = origAmount;\r\n this.canCancelPromo = !hideRemove;\r\n this.promoAmount = 0;\r\n if(!!this.totals && !!this.totals.PaymentItems)\r\n {\r\n if(this.totals.PaymentItems[0].Total > 0){\r\n this.promoAmount = this.originalAmount - this.totals.PaymentItems[0].Total;\r\n } else {\r\n this.promoAmount = this.originalAmount - this.totals.PaymentItems[1].Total;\r\n }\r\n }\r\n }\r\n\r\n public updatePromoStatus = (originalAmount: number, $event: string) => {\r\n if(!!$event){\r\n this.hasPromo = true;\r\n this.promoDescription = $event;\r\n this.originalAmount = originalAmount;\r\n } else {\r\n this.hasPromo = false;\r\n this.promoDescription = null;\r\n this.promoAmount = null;\r\n this.originalAmount = null;\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/travel-products/product-passenger-details/booking-total/booking-total.component.ts","module.exports = \"<div class=\\\" box-section\\\">\\r\\n <div class=\\\"section-header\\\">\\r\\n <span>Booking Summary</span>\\r\\n </div>\\r\\n<div class=\\\"upgrade-summary trip-summary\\\">\\r\\n <div class=\\\"upgrade-summary__title col-xs-12\\\">\\r\\n <h3 class=\\\"text-center\\\">\\r\\n <div *ngIf=\\\"productType != ProductTypeUrl.travelPasses && productType != ProductTypeUrl.expressBooking\\\">{{productName}}</div>\\r\\n <div *ngIf=\\\"(productType == ProductTypeUrl.travelPasses || productType == ProductTypeUrl.expressBooking) && !!data.travels\\\">\\r\\n {{data.travels[0].OriginName}}\\r\\n <span *ngIf=\\\"data.travels.length == 1\\\">\\r\\n <i class=\\\"fa fa-long-arrow-right text-danger\\\"></i>\\r\\n </span>\\r\\n <span *ngIf=\\\"data.travels.length > 1\\\">\\r\\n <i class=\\\"fa fa-exchange text-danger\\\"></i>\\r\\n </span>\\r\\n {{data.travels[0].DestinationName}}\\r\\n </div>\\r\\n </h3>\\r\\n <h4 *ngIf=\\\"(productType == ProductTypeUrl.travelPasses || productType == ProductTypeUrl.expressBooking) && !!data.travels\\\"\\r\\n class=\\\"text-center\\\">\\r\\n <span *ngIf=\\\"data.travels.length == 1\\\">One way</span>\\r\\n <span *ngIf=\\\"data.travels.length > 1\\\">Return</span>\\r\\n </h4>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<div class=\\\"trip-details-loader text-center\\\" style=\\\"margin-top: 50px;\\\" *ngIf=\\\"(bookings == null) && (productType != ProductTypeUrl.travelPasses && productType != ProductTypeUrl.expressBooking)\\\">\\r\\n <h3>Retrieving booking summary..</h3>\\r\\n <i class=\\\"fa fa-spinner fa-pulse fa-5x\\\"></i>\\r\\n <span class=\\\"sr-only\\\">Loading...</span>\\r\\n</div>\\r\\n<div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-offset-1 col-xs-10 text-center\\\" style=\\\"margin-bottom: 10px; margin-top: 10px;\\\">\\r\\n {{passengerSummary}}\\r\\n </div>\\r\\n</div>\\r\\n<div *ngIf=\\\"productType != ProductTypeUrl.travelPasses && productType != ProductTypeUrl.expressBooking\\\">\\r\\n <ng-container *ngIf=\\\"!!bookings\\\">\\r\\n <div class=\\\"divider\\\"></div>\\r\\n <div class=\\\"text-center\\\" *ngFor=\\\"let inclusion of bookings[0].Package.Inclusions\\\">\\r\\n <div *ngIf=\\\"inclusion.TicketNumber == null || inclusion.TicketNumber == ''\\\">\\r\\n <h5>{{inclusion.Name}}</h5>\\r\\n <p *ngIf=\\\"isMinDate(inclusion.SelectedDate) && inclusion.FareTypes[0].ShowUsageDate\\\">Open-dated</p>\\r\\n <p *ngIf=\\\"!isMinDate(inclusion.SelectedDate)\\\">\\r\\n {{localStorageService.getJsDate(inclusion.SelectedDate, 'YYYY-MM-D Th:m:s') | date: 'EEE, dd MMM y'}}\\r\\n </p>\\r\\n </div>\\r\\n </div>\\r\\n <!-- Tours -->\\r\\n <div *ngIf=\\\"productType != ProductTypeUrl.experience\\\">\\r\\n <div class=\\\"text-center\\\" *ngFor=\\\"let tour of bookings[0].Tours\\\">\\r\\n <div *ngIf=\\\"tour.TicketNumber == null\\\">\\r\\n <h5>{{tour.Name}}</h5>\\r\\n <p *ngIf=\\\"isMinDate(tour.SelectedDate) && tour.FareTypes[0].ShowUsageDate\\\">Open-dated</p>\\r\\n <p *ngIf=\\\"!isMinDate(tour.SelectedDate)\\\">{{localStorageService.getJsDate(tour.SelectedDate, 'YYYY-MM-D Th:m:s') | date: 'EEE, dd MMM y'}}</p>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"text-center form-control-static\\\" *ngIf=\\\"productType == ProductTypeUrl.experience\\\">\\r\\n <p *ngIf=\\\"isMinDate(bookings[0].Tours[0].SelectedDate) && bookings[0].Tours[0].FareTypes[0].ShowUsageDate\\\">Open-dated</p>\\r\\n <p *ngIf=\\\"!isMinDate(bookings[0].Tours[0].SelectedDate)\\\">{{localStorageService.getJsDate(bookings[0].Tours[0].SelectedDate, 'YYYY-MM-D Th:m:s') | date: 'EEE, dd MMM y'}}\\r\\n </p>\\r\\n </div>\\r\\n <!-- Bookings -->\\r\\n <div class=\\\"text-center\\\" *ngFor=\\\"let tpProduct of summarisedProducts\\\">\\r\\n <h5>{{tpProduct}}</h5>\\r\\n </div>\\r\\n <div class=\\\"divider\\\" *ngIf=\\\"productType != ProductTypeUrl.experience\\\"></div>\\r\\n <div class=\\\"text-center\\\" style=\\\"padding: 10px;\\\" *ngIf=\\\"bookings[0].Sectors.length === 0 && bookings[0].ShowAddTravelBtn && bookings[0].TicketNumber === null\\\">\\r\\n <p>Travel not yet booked</p>\\r\\n </div>\\r\\n <div *ngIf=\\\"bookings[0].TicketNumber === null || bookings[0].TicketNumber === ''\\\">\\r\\n <div *ngFor=\\\"let sector of bookings[0].Sectors\\\">\\r\\n\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-6 text-center\\\">\\r\\n <small>Dep.\\r\\n <br/>\\r\\n </small>\\r\\n <b>\\r\\n {{sector.OriginName}} \\r\\n <a class=\\\"has-google-marker\\\" href=\\\"http://maps.google.com.au/?q={{sector.OriginLatitude}},{{sector.OriginLongitude}}\\\" target=\\\"_blank\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\" aria-hidden=\\\"true\\\"> </i>\\r\\n </a>\\r\\n </b>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-center\\\">\\r\\n <small>Arr.\\r\\n <br/>\\r\\n </small>\\r\\n <b>\\r\\n {{sector.DestinationName}} \\r\\n <a class=\\\"has-google-marker\\\" href=\\\"http://maps.google.com.au/?q={{sector.DestinationLatitude}},{{sector.DestinationLongitude}}\\\"\\r\\n target=\\\"_blank\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </a>\\r\\n </b>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-- @* ************ OPEN DATED SECTOR ************ *@-->\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-6 text-center\\\">\\r\\n {{localStorageService.getJsDate(sector.PassengerBoardingDate, 'D/MM/YYYY h:m:s A') | date: 'EEE, dd MMM y'}}\\r\\n <br/> {{localStorageService.getJsDate(sector.PassengerBoardingDate, 'D/MM/YYYY h:m:s A') | date: 'h:mm\\r\\n a'}}\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-center\\\">\\r\\n {{localStorageService.getJsDate(sector.PassengerArrivalDate, 'D/MM/YYYY h:m:s A') | date: 'EEE, dd MMM y'}}\\r\\n <br/> {{localStorageService.getJsDate(sector.PassengerArrivalDate, 'D/MM/YYYY h:m:s A') | date: 'h:mm\\r\\n a'}}\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!!sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <div class=\\\"sector__date\\\">\\r\\n Open-dated until\\r\\n <br/> {{localStorageService.getJsDate(sector.OpenDatedUntil, 'D/MM/YYYY h:m:s A') | date: 'EEE, dd\\r\\n MMM y h:mm a'}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" [ngClass]=\\\"{hidden: !!sector.OpenDatedUntil}\\\">\\r\\n <div class=\\\"col-xs-6 text-right\\\">\\r\\n <i class=\\\"fa fa-fw fa-bus\\\"></i>{{sector.ServiceCompany}}{{sector.ServiceNumber}}\\r\\n <span *ngIf=\\\"sector.IsWifiEnabledService\\\">\\r\\n <i class=\\\"fa fa-fw fa-wifi\\\"></i>WiFi</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-left\\\" *ngIf=\\\"!!bookings\\\">\\r\\n <span *ngIf=\\\"sector.Seats.length > 1 || bookings.length > 1\\\">\\r\\n <b>Seats:</b>\\r\\n </span>\\r\\n <span *ngIf=\\\"sector.Seats.length == 1 && bookings.length == 1\\\">\\r\\n <b>Seat:</b>\\r\\n </span>\\r\\n <span>\\r\\n <span *ngFor=\\\"let subBooking of bookings\\\">\\r\\n <span *ngFor=\\\"let bSector of subBooking.Sectors\\\">\\r\\n <span *ngIf=\\\"(bSector.ServiceCompany + bSector.ServiceNumber) == (sector.ServiceCompany + sector.ServiceNumber)\\\">\\r\\n <span *ngFor=\\\"let seat of bSector.Seats\\\">\\r\\n {{seat.Row}}{{seat.SeatLetter}}\\r\\n </span>\\r\\n </span>\\r\\n </span>\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"divider\\\" style=\\\"margin-top: 5px; margin-bottom: 5px;\\\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </ng-container>\\r\\n</div>\\r\\n<div *ngIf=\\\"productType == ProductTypeUrl.travelPasses || productType == ProductTypeUrl.expressBooking\\\">\\r\\n <div *ngFor=\\\"let booking of bookings\\\">\\r\\n <div *ngFor=\\\"let sector of booking.Sectors\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-6 text-center\\\" style=\\\"margin-top: 10px;\\\">\\r\\n <small>Dep.\\r\\n <br/>\\r\\n </small>\\r\\n <b>\\r\\n {{sector.OriginName}} \\r\\n <a class=\\\"has-google-marker\\\" href=\\\"http://maps.google.com.au/?q={{sector.OriginLatitude}},{{sector.OriginLongitude}}\\\" target=\\\"_blank\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\" aria-hidden=\\\"true\\\"> </i>\\r\\n </a>\\r\\n </b>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-center\\\" style=\\\"margin-top: 10px;\\\">\\r\\n <small>Arr.\\r\\n <br/>\\r\\n </small>\\r\\n <b>\\r\\n {{sector.DestinationName}} \\r\\n <a class=\\\"has-google-marker\\\" href=\\\"http://maps.google.com.au/?q={{sector.DestinationLatitude}},{{sector.DestinationLongitude}}\\\"\\r\\n target=\\\"_blank\\\">\\r\\n <i class=\\\"fa fa-map-marker\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </a>\\r\\n </b>\\r\\n </div>\\r\\n <div class=\\\"divider\\\">\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <!-- @* ************ OPEN DATED SECTOR ************ *@-->\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-6 text-center\\\">\\r\\n {{localStorageService.getJsDate(sector.PassengerBoardingDate, 'D/MM/YYYY h:m:s A') | date: 'EEE, dd MMM y'}}\\r\\n <br/> {{localStorageService.getJsDate(sector.PassengerBoardingDate, 'D/MM/YYYY h:m:s A') | date: 'h:mm a'}}\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-center\\\">\\r\\n {{localStorageService.getJsDate(sector.PassengerArrivalDate, 'D/MM/YYYY h:m:s A') | date: 'EEE, dd MMM y'}}\\r\\n <br/> {{localStorageService.getJsDate(sector.PassengerArrivalDate, 'D/MM/YYYY h:m:s A') | date: 'h:mm a'}}\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!!sector.OpenDatedUntil\\\">\\r\\n <div class=\\\"col-xs-12 text-center\\\">\\r\\n <div class=\\\"sector__date\\\">\\r\\n Open-dated until\\r\\n <br/> {{localStorageService.getJsDate(sector.OpenDatedUntil, 'D/MM/YYYY h:m:s A') | date: 'EEE, dd MMM\\r\\n y h:mm a'}}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n <div class=\\\"row\\\" [ngClass]=\\\"{hidden: !!sector.OpenDatedUntil}\\\">\\r\\n\\r\\n <div class=\\\"col-xs-6 text-right\\\">\\r\\n <i class=\\\"fa fa-fw fa-bus\\\"></i>{{sector.ServiceCompany}}{{sector.ServiceNumber}}\\r\\n <span *ngIf=\\\"sector.IsWifiEnabledService\\\">\\r\\n <i class=\\\"fa fa-fw fa-wifi\\\"></i>WiFi</span>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6 text-left\\\">\\r\\n <span class=\\\"col-xs-12 col-sm-2\\\" *ngIf=\\\"sector.Seats.length > 1\\\">\\r\\n <b>Seats:</b>\\r\\n </span>\\r\\n <span class=\\\"col-xs-12 col-sm-2\\\" *ngIf=\\\"sector.Seats.length == 1\\\">\\r\\n <b>Seat:</b>\\r\\n </span>\\r\\n <span class=\\\"col-xs-12 col-sm-10\\\">\\r\\n <span *ngFor=\\\"let seat of sector.Seats\\\">\\r\\n {{seat.Row}}{{seat.SeatLetter}}\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n <div style=\\\"display: inline-block;\\\"></div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n</div>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.html\n// module id = ./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.html\n// module chunks = main","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 */\\ngaweb-product-summary .upgrade-summary {\\n margin: 0px auto;\\n}\\ngaweb-product-summary .upgrade-summary .upgrade-summary__title h3 {\\n padding: 0;\\n margin: 10px 0 0;\\n color: #223250;\\n font-size: 20px;\\n text-transform: uppercase;\\n text-align: center;\\n}\\n@media (min-width: 1200px) {\\n gaweb-product-summary .upgrade-summary {\\n max-width: 933.33333333px;\\n }\\n}\\ngaweb-product-summary .trip-summary {\\n padding-left: 0px;\\n padding-right: 0px;\\n padding-bottom: 10px;\\n}\\ngaweb-product-summary .trip-summary .btn-cta-secondary {\\n background-color: #223250;\\n}\\ngaweb-product-summary .trip-summary .trip-summary__title {\\n margin-bottom: 10px;\\n}\\ngaweb-product-summary .trip-summary .trip-summary__title h3 {\\n margin: 10px 0 0;\\n color: #223250;\\n font-size: 18px;\\n text-align: center;\\n}\\ngaweb-product-summary .trip-summary .trip-summary__title h4 {\\n margin: 4px 0 10px;\\n color: #223250;\\n font-size: 16px;\\n text-align: center;\\n}\\n@media (max-width: 767px) {\\n gaweb-product-summary .trip-summary .trip-time-container {\\n width: 320px;\\n margin-left: auto;\\n margin-right: auto;\\n float: none;\\n }\\n}\\ngaweb-product-summary .trip-summary .trip-timestamp {\\n background-color: #555555;\\n color: white;\\n}\\n@media (max-width: 343px) {\\n gaweb-product-summary .trip-summary .trip-timestamp {\\n font-size: 0.98em;\\n }\\n}\\ngaweb-product-summary .trip-summary .trip-time {\\n margin-bottom: -35px;\\n display: inline-block;\\n text-align: center;\\n padding-top: 0px;\\n font-size: 18px;\\n min-width: 108px;\\n max-width: 108px;\\n}\\ngaweb-product-summary .trip-summary .trip-time h2 {\\n margin-top: -30px;\\n margin-left: 23px;\\n position: absolute;\\n text-transform: uppercase;\\n font-size: 15px;\\n opacity: 0.6;\\n}\\n@media (max-width: 342px) {\\n gaweb-product-summary .trip-summary .trip-time {\\n min-width: 97px;\\n max-width: 97px;\\n }\\n}\\ngaweb-product-summary .trip-summary .trip-time .trip-datebox {\\n -webkit-text-size-adjust: 100%;\\n background-color: white;\\n border: #555555 1px solid;\\n color: #555555;\\n}\\ngaweb-product-summary .trip-summary .trip-time .trip-datebox .primary {\\n font-size: 2.5em;\\n padding: 0px;\\n font-weight: 600;\\n height: 50px;\\n margin-top: -8px;\\n}\\n@media (max-width: 342px) {\\n gaweb-product-summary .trip-summary .trip-time .trip-datebox .primary {\\n font-size: 2.1em;\\n padding-top: 4px;\\n }\\n}\\ngaweb-product-summary .trip-summary .trip-time .trip-datebox .secondary {\\n text-transform: uppercase;\\n padding: 0px;\\n}\\ngaweb-product-summary .trip-summary .trip-time .trip-datebox .secondary .month {\\n font-weight: 600;\\n}\\ngaweb-product-summary .trip-summary .trip-time .trip-datebox .secondary .weekday {\\n font-size: 0.8em;\\n}\\ngaweb-product-summary .trip-summary .trip-fare-container {\\n margin-bottom: 5px;\\n float: right;\\n}\\n@media (max-width: 767px) {\\n gaweb-product-summary .trip-summary .trip-fare-container {\\n margin-top: 35px;\\n }\\n}\\ngaweb-product-summary .trip-summary .trip-duration {\\n padding-top: 10px;\\n font-size: 10px;\\n min-width: 58px;\\n color: #223250;\\n text-align: center;\\n display: inline-block;\\n}\\ngaweb-product-summary .trip-summary .trip-duration span {\\n font-weight: 700;\\n}\\ngaweb-product-summary .trip-summary .trip-expand div {\\n text-align: center;\\n position: relative;\\n color: #5c5c5c;\\n cursor: pointer;\\n background: #dedede;\\n max-width: 200%;\\n display: block;\\n width: 102px;\\n height: 30px;\\n padding: 5px;\\n margin-left: calc(76% - 3px);\\n margin-bottom: -8px;\\n border-radius: 0px 0px 4px 4px;\\n}\\n@media (max-width: 991px) {\\n gaweb-product-summary .trip-summary .trip-expand div.no-fare {\\n margin-left: calc(76% - 13px);\\n }\\n}\\n@media (max-width: 767px) {\\n gaweb-product-summary .trip-summary .trip-expand div {\\n margin-left: auto;\\n margin-top: 122px;\\n margin-right: -10px;\\n }\\n}\\ngaweb-product-summary .trip-summary .trip-summary__service-details {\\n margin-top: 6px;\\n}\\ngaweb-product-summary .trip-summary .location {\\n display: block;\\n font-weight: bold;\\n}\\ngaweb-product-summary .trip-leg:not(.last-trip-leg) {\\n margin-bottom: 10px;\\n}\\ngaweb-product-summary .coach-icon-legend {\\n padding-bottom: 15px;\\n}\\ngaweb-product-summary .coach-details {\\n margin-top: 50px;\\n}\\ngaweb-product-summary .coach-details.full-route {\\n position: absolute;\\n left: -90px;\\n font-size: 14px;\\n}\\n@media (max-width: 767px) {\\n gaweb-product-summary .coach-details.full-route {\\n left: -38px;\\n }\\n}\\ngaweb-product-summary .coach-details .coach-icon-bus {\\n padding: 5px;\\n}\\ngaweb-product-summary .coach-details .coach-icon-container {\\n display: inline-block;\\n}\\ngaweb-product-summary .coach-details .coach-icon {\\n float: left;\\n}\\ngaweb-product-summary .map-warning {\\n position: relative;\\n text-align: center;\\n margin-left: auto;\\n margin-right: auto;\\n font-size: 0.7em;\\n background: #dedede;\\n}\\ngaweb-product-summary .trip-details-container {\\n float: left;\\n z-index: 322;\\n margin-bottom: -100%;\\n position: relative;\\n}\\ngaweb-product-summary .trip-details-container div {\\n float: left;\\n padding: 5px;\\n}\\ngaweb-product-summary .trip-details-container div.trip-details-tab {\\n background-color: #d9d9d9;\\n color: #5c5c5c;\\n cursor: pointer;\\n}\\ngaweb-product-summary .trip-details-container div.trip-details-tab.active {\\n background-color: #c0c0c0;\\n}\\ngaweb-product-summary .trip-details-container div.trip-details-tab:hover {\\n background-color: #777777;\\n color: #000;\\n}\\ngaweb-product-summary .trip-details-container div.trip-details-tab i {\\n margin: 3px;\\n}\\ngaweb-product-summary .trip-details-container * {\\n float: left;\\n}\\ngaweb-product-summary .trip-details-container .bus-label {\\n padding-top: 10px;\\n padding-bottom: 10px;\\n}\\ngaweb-product-summary .service-tab {\\n width: 200px;\\n background-color: #d9d9d9;\\n color: #777777;\\n margin-left: auto;\\n margin-right: auto;\\n z-index: 30;\\n position: fixed;\\n}\\ngaweb-product-summary .service-tab div {\\n float: left;\\n padding: 10px;\\n}\\ngaweb-product-summary .service-tab div.service-tab-option {\\n cursor: pointer;\\n}\\ngaweb-product-summary .service-tab div.service-tab-option:hover {\\n background-color: #777777;\\n color: #000;\\n}\\ngaweb-product-summary .trip-time-small {\\n display: none;\\n}\\ngaweb-product-summary .modal-dialog .trip-time-container {\\n width: 287px;\\n margin-left: auto;\\n margin-right: auto;\\n position: relative;\\n float: none;\\n display: block;\\n}\\ngaweb-product-summary .modal-dialog .trip-time {\\n display: none;\\n}\\ngaweb-product-summary .modal-dialog .trip-time-small {\\n display: inline-block;\\n text-align: center;\\n width: 90px;\\n font-size: 1.1em;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n margin-left: auto;\\n margin-right: auto;\\n}\\ngaweb-product-summary .modal-dialog .choose-fare {\\n width: 100%;\\n}\\n@media (max-width: 767px) {\\n gaweb-product-summary .modal-dialog .choose-fare {\\n margin-top: 31px;\\n }\\n}\\ngaweb-product-summary .modal-dialog .trip-date.hidden-xs {\\n display: none;\\n}\\ngaweb-product-summary .modal-dialog .trip-date.active {\\n display: none;\\n}\\ngaweb-product-summary .modal-dialog .trip-date.active.trip-time-small {\\n display: block;\\n width: 33.333%;\\n}\\ngaweb-product-summary .modal-dialog .navigator {\\n width: 33%;\\n}\\ngaweb-product-summary .modal-dialog .coach-details {\\n width: 100%;\\n}\\ngaweb-product-summary .modal-dialog .timetable__stops {\\n margin-top: 0px;\\n}\\ngaweb-product-summary .modal-dialog .trip-expand {\\n margin-left: 108px;\\n}\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.less\n// module id = ./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.less\n// module chunks = main","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Booking, FareType, TourOrExperience, Package, Sector } from '../../../shared/models/booking.model';\r\nimport * as _ from 'lodash';\r\nimport * as lodash from 'lodash';\r\nimport { LocalStorageService } from './../../../shared/services/local-storage.service';\r\nimport { ProductTypeUrl } from 'app/shared/models/enums/ProductTypeUrl.enum';\r\nimport { PrettyPassengerPipe } from 'app/shared/pipes/pretty-passenger.pipe';\r\nimport { Passengers } from 'app/shared/models/passenger.model';\r\nimport { Availability, RouteOption } from 'app/shared/models/availability.model';\r\nimport { GxConstants } from 'app/shared/constants/gx.constants';\r\nimport { InitialDataService } from 'app/initial-data.service';\r\n@Component({\r\n selector: 'gaweb-product-summary',\r\n templateUrl: 'product-summary.component.html',\r\n styleUrls: ['./product-summary.component.less']\r\n})\r\nexport class ProductSummaryComponent implements OnInit {\r\n\r\n @Input() productName: string;\r\n @Input() loadingBookings: boolean;\r\n @Input() allowExpansion: boolean = true;\r\n showJustPassengerSummary: boolean = false;\r\n @Input()\r\n productType: ProductTypeUrl;\r\n private _bookings: Array<Booking>;\r\n @Input() set bookings(value: Array<Booking>) {\r\n this._bookings = value;\r\n if (value && value.length > 0 && this.productType !== ProductTypeUrl.expressBooking && this.productType !== ProductTypeUrl.manageBooking) {\r\n this.bootstrapFromBookings();\r\n }\r\n }\r\n get bookings(): Array<Booking> {\r\n return this._bookings;\r\n }\r\n data: Booking;\r\n passengerSummary: string;\r\n summarisedProducts: string[] = [];\r\n ProductTypeUrl = ProductTypeUrl;\r\n constructor(private localStorageService: LocalStorageService,\r\n private initialDataService: InitialDataService) { }\r\n\r\n ngOnInit() {\r\n let booking;\r\n switch (this.productType) {\r\n case ProductTypeUrl.accommodation:\r\n break;\r\n case ProductTypeUrl.experience:\r\n this.allowExpansion = false;\r\n //this.showJustPassengerSummary = true;\r\n break;\r\n case ProductTypeUrl.package:\r\n break;\r\n case ProductTypeUrl.travelPasses:\r\n break;\r\n case ProductTypeUrl.expressBooking:\r\n const passengers: Passengers = this.localStorageService.getTravelPassengers();\r\n if (!passengers) {\r\n window.location.href = this.initialDataService.makeABookingUrl;\r\n }\r\n const prettyPassengerPipe = new PrettyPassengerPipe();\r\n this.passengerSummary = prettyPassengerPipe.transform(passengers);\r\n booking = this.localStorageService.getOfflineBooking();\r\n booking.travels = this.toViewModel(booking.travels);\r\n this.data = booking;\r\n break;\r\n default:\r\n\r\n }\r\n this.SummariseProducts();\r\n }\r\n\r\n SummariseProducts() {\r\n let curname, name : string[] = [], qty: number[] = [];\r\n this._bookings[0].TpProducts.forEach(product => {\r\n if(product.TicketNumber == null){\r\n curname = product.Name.split(' x ')[1];\r\n if(!!name.find(n => n === curname)) {\r\n qty[name.indexOf(curname)] += product.QuantityToBook;\r\n } else {\r\n name.push(curname);\r\n qty.push(product.QuantityToBook);\r\n }\r\n }\r\n });\r\n name.forEach(n => {\r\n this.summarisedProducts.push(qty[name.indexOf(n)] + ' x ' + n);\r\n });\r\n }\r\n\r\n bootstrapFromBookings() {\r\n this.passengerSummary = this.getPassengersSummaryFromBookings();\r\n }\r\n\r\n isMinDate(dateToTest: string) {\r\n return dateToTest === GxConstants.MIN_DATE;\r\n }\r\n\r\n private getPassengersSummaryFromBookings = () => {\r\n let mainObj = Booking.getMainObject(this.bookings[0], this.productType, false); // TODO check\r\n const fareTypesMap = {};\r\n this.bookings.forEach((booking: Booking) => {\r\n mainObj = Booking.getMainObject(booking, this.productType, false); \r\n let mainObjArr: TourOrExperience[] | Package[] = mainObj;\r\n if (!(mainObj instanceof Array)) {\r\n mainObjArr = [mainObj];\r\n }\r\n _(mainObjArr)\r\n .forEach((tourOrPackage: any) => {\r\n let selectedFareTypeCode = tourOrPackage.SelectedFareType;\r\n if (booking.Package.SelectedFareType != null) {\r\n selectedFareTypeCode = booking.Package.SelectedFareType;\r\n } \r\n let selectedFareType: FareType = tourOrPackage.FareTypes.find(f => f.FareTypeCode === selectedFareTypeCode);\r\n \r\n if (booking.Package.SelectedFareType != null) {\r\n selectedFareType = booking.Package.FareTypes.find(f => f.FareTypeCode === selectedFareTypeCode);\r\n } \r\n\r\n\r\n if (!!selectedFareType) {\r\n const key: string = selectedFareType.Farebasis.DisplayDescription || (selectedFareType.OnlineName || selectedFareType.Description);\r\n if (!!fareTypesMap[key]) {\r\n fareTypesMap[key]++;\r\n } else {\r\n fareTypesMap[key] = 1;\r\n }\r\n }\r\n });\r\n });\r\n \r\n let summary = '';\r\n for (const fareType of Object.keys(fareTypesMap)) { // IE11 Requires that we use Object.keys instead of Object.entries\r\n const quantity = fareTypesMap[fareType];\r\n summary += `${quantity} x ${fareType}`;\r\n if (fareType !== Object.keys(fareTypesMap)[Object.keys(fareTypesMap).length - 1]) {\r\n summary += ', ';\r\n }\r\n }\r\n return summary;\r\n }\r\n // ADD FRONT-END SPECIFIC PROPERTIES ON 'TRAVEL_AVAILABILITY' OBJECT FROM SERVER\r\n private toViewModel(travels: Availability[]) {\r\n\r\n _.each(travels,\r\n function (ta) {\r\n // ROUTE OPTIONS\r\n lodash.each(ta.RouteOptions,\r\n function (ro: RouteOption & { collapsed: boolean, BusesNumber: string, IsWifiEnabledService: boolean }) {\r\n ro.collapsed = true;\r\n\r\n // ROUTE SECTORS\r\n lodash.each(ro.Sectors,\r\n function (se: Sector & { BusNumber: string }) {\r\n se.BusNumber = se.ServiceCompany + se.ServiceNumber;\r\n });\r\n\r\n // ROUTE SECTORS SUMMARY\r\n ro.BusesNumber = lodash.map(ro.Sectors, 'BusNumber').join(',');\r\n ro.IsWifiEnabledService = !!ro.Sectors.find(\r\n function (se) {\r\n return se.IsWifiEnabledService;\r\n });\r\n });\r\n });\r\n\r\n return travels;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/travel-products/product-passenger-details/product-summary/product-summary.component.ts","module.exports = \"<div class=\\\"upgrade-summary\\\">\\r\\n <div class=\\\"row\\\" *ngIf=\\\"!!displayDescription\\\">\\r\\n <div class=\\\"upgrade-summary__title col-xs-12\\\">\\r\\n <h3 class=\\\"text-center\\\" style=\\\"margin: 10px 0 10px 0;\\\" *ngFor=\\\"let desc of displayDescription\\\">\\r\\n {{desc}}\\r\\n </h3>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"row text-center\\\" *ngIf=\\\"!!subDescriptions\\\" style=\\\"margin-bottom: 10px; margin-top: 10px;\\\">\\r\\n <span *ngFor=\\\"let subdesc of subDescriptions; let last = last\\\" class=\\\"text-center\\\">\\r\\n {{subdesc}}<span *ngIf=\\\"!last\\\">, </span>\\r\\n </span>\\r\\n </div>\\r\\n</div>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/product-passenger-details/summary/summary.component.html\n// module id = ./src/app/travel-products/product-passenger-details/summary/summary.component.html\n// module chunks = main","\r\nimport { Input, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'gaweb-summary',\r\n templateUrl: 'summary.component.html'\r\n})\r\nexport class SummaryComponent {\r\n private _subDescriptions: string[];\r\n @Input()\r\n set subDescriptions(str: string[]) {\r\n this._subDescriptions = str;\r\n }\r\n get subDescriptions(): string[] {\r\n return this._subDescriptions;\r\n }\r\n private _displayDescription: string[];\r\n @Input()\r\n set displayDescription(str: string[]) {\r\n this._displayDescription = str;\r\n }\r\n get displayDescription(): string[] {\r\n return this._displayDescription;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/travel-products/product-passenger-details/summary/summary.component.ts","module.exports = \"<section class=\\\"payment styleguide\\\">\\r\\n <div class=\\\"payment-options box-section\\\">\\r\\n <div class=\\\"section-header\\\"><span>Payment Options</span></div>\\r\\n <div class=\\\"gha-tab payment-body\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div>\\r\\n <gaweb-error-summary></gaweb-error-summary>\\r\\n <!-- ******************************* Credit Card ******************************* -->\\r\\n <ul class=\\\"payment-nav\\\">\\r\\n <li [ngStyle]=\\\"{ 'width' : loyaltyEnabled ? 'inherit' : '50%' }\\\">\\r\\n <a [ngClass]=\\\"{'active': ccActive}\\\" style=\\\"cursor: pointer;\\\" (click)=\\\"toggleCcActive()\\\">\\r\\n <div>\\r\\n <div>Credit/Debit Card</div>\\r\\n <div class=\\\"hidden-xs text-right\\\">\\r\\n <i class=\\\"fa fa-2x fa-fw fa-cc-visa\\\"></i>\\r\\n <i class=\\\"fa fa-2x fa-fw fa-cc-mastercard\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </a>\\r\\n </li>\\r\\n <li [ngStyle]=\\\"{ 'width' : loyaltyEnabled ? 'inherit' : '50%' }\\\">\\r\\n <a [ngClass]=\\\"{'active': paypalActive }\\\" style=\\\"cursor: pointer;\\\" (click)=\\\"togglePaypalActive()\\\">\\r\\n <div>\\r\\n <div>PayPal</div>\\r\\n <div class=\\\"hidden-xs text-right\\\">\\r\\n <i class=\\\"fa fa-2x fa-cc-paypal\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </a>\\r\\n </li>\\r\\n <li *ngIf=\\\"loyaltyEnabled\\\">\\r\\n <a [ngClass]=\\\"{'active': loyaltyDollarsActive }\\\" style=\\\"cursor: pointer;\\\" (click)=\\\"toggleLoyaltyDollarsActive()\\\">\\r\\n <div>\\r\\n <div><span class=\\\"gdollar-symbol\\\">G-WALLET</span></div>\\r\\n <div class=\\\"hidden-xs text-right\\\" style=\\\"color: transparent\\\">\\r\\n <i class=\\\"fa fa-2x fa-dollar\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n </a>\\r\\n </li>\\r\\n </ul>\\r\\n <div class=\\\"payment-panel\\\" [ngClass]=\\\"{'active': ccActive}\\\">\\r\\n <gaweb-error-summary [alerts]=\\\"alertsTNS\\\" [worksWithEvents]=\\\"false\\\"></gaweb-error-summary>\\r\\n <form [formGroup]=\\\"ccForm\\\" novalidate>\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (ccForm.controls.number.touched || ccForm.controls.number.dirty) && !ccForm.controls.number.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"numberId\\\" type=\\\"tel\\\" maxlength=\\\"19\\\" formControlName=\\\"number\\\"\\r\\n placeholder=\\\"Card Number*\\\">\\r\\n <i class=\\\"fa fa-2x fa-fw fa-cc-visa card-icon\\\" *ngIf=\\\"cardType === 'visa'\\\" aria-hidden=\\\"true\\\"></i>\\r\\n <i class=\\\"fa fa-2x fa-fw fa-cc-mastercard card-icon\\\" *ngIf=\\\"cardType === 'mastercard'\\\"\\r\\n aria-hidden=\\\"true\\\"></i>\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(ccForm.controls.number.touched || ccForm.controls.number.dirty) && ccForm.controls.number.errors\\\">\\r\\n <span *ngIf=\\\"ccForm.controls.number.errors.required\\\">Please enter a card number</span>\\r\\n <span *ngIf=\\\"ccForm.controls.number.errors.cardtype\\\">Only MasterCard and Visa cards\\r\\n are accepted.</span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-3 card-field\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (ccForm.controls.month.touched || ccForm.controls.month.dirty) && !ccForm.controls.month.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"monthId\\\" type=\\\"tel\\\" maxlength=\\\"2\\\"\\r\\n formControlName=\\\"month\\\" placeholder=\\\"MM*\\\">\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(ccForm.controls.month.touched || ccForm.controls.month.dirty) && ccForm.controls.month.errors\\\">\\r\\n <span *ngIf=\\\"ccForm.controls.month.errors.required\\\">Please enter a month</span>\\r\\n <span *ngIf=\\\"ccForm.controls.month.errors.expirymonth\\\">Your expiry month is\\r\\n invalid.</span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-3 card-field\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (ccForm.controls.year.touched || ccForm.controls.year.dirty) && !ccForm.controls.year.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"yearId\\\" type=\\\"tel\\\" maxlength=\\\"2\\\"\\r\\n formControlName=\\\"year\\\" placeholder=\\\"YY*\\\">\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(ccForm.controls.year.touched || ccForm.controls.year.dirty) && ccForm.controls.year.errors\\\">\\r\\n <span *ngIf=\\\"ccForm.controls.year.errors.required\\\">Please enter a year</span>\\r\\n <span *ngIf=\\\"ccForm.controls.year.errors.expiryyear\\\">Your expiry year is\\r\\n invalid.</span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-3 card-field\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (ccForm.controls.cvv.touched || ccForm.controls.cvv.dirty) && !ccForm.controls.cvv.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"cvvId\\\" type=\\\"tel\\\" maxlength=\\\"3\\\" formControlName=\\\"cvv\\\"\\r\\n placeholder=\\\"CVV*\\\">\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(ccForm.controls.cvv.touched || ccForm.controls.cvv.dirty) && ccForm.controls.cvv.errors\\\">\\r\\n <span *ngIf=\\\"ccForm.controls.cvv.errors.required\\\">Please enter a cvv</span>\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"col-xs-3\\\" style=\\\"padding-left: 0;\\\">\\r\\n <i class=\\\"fa fa-2x fa-info-circle\\\" style=\\\"cursor: pointer; font-size: 20px;line-height: 40px;\\\"\\r\\n title=\\\"{{('CCVText' | translate) | async }}\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" container=\\\"body\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <button class=\\\"btn btn-cta-purchase btn-content-centered\\\" (click)=\\\"payWithCreditCard()\\\"\\r\\n [disabled]=\\\"!ccForm.valid || paying\\\">\\r\\n <i *ngIf=\\\"paying || loadingData\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"paying || loadingData\\\" class=\\\"span-margin\\\">Processing payment...</span>\\r\\n <span *ngIf=\\\"!paying && !loadingData\\\">\\r\\n <i class=\\\"fa fa-lock payment__lock-icon\\\"></i>{{getPaymentAmountString('Now')}}</span>\\r\\n </button>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <!-- ******************************* PAYPAL ******************************* -->\\r\\n <div class=\\\"payment-panel\\\" [ngClass]=\\\"{'active': paypalActive}\\\">\\r\\n <gaweb-error-summary [alerts]=\\\"alertsPayPal\\\" [worksWithEvents]=\\\"false\\\"></gaweb-error-summary>\\r\\n <div class=\\\"now-accepting\\\">\\r\\n <!-- PayPal Logo -->\\r\\n <img src=\\\"https://www.paypalobjects.com/webstatic/mktg/logo/bdg_now_accepting_pp_2line_w.png\\\"\\r\\n alt=\\\"How PayPal Works\\\" />\\r\\n <!-- PayPal Logo -->\\r\\n </div>\\r\\n\\r\\n <button class=\\\"btn btn-cta-purchase btn-content-centered\\\" (click)=\\\"payWithPayPal()\\\" [disabled]=\\\"paying\\\">\\r\\n <i *ngIf=\\\"paying || loadingData\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"paying || loadingData\\\" class=\\\"span-margin\\\">Redirecting to PayPal...</span>\\r\\n <span *ngIf=\\\"!paying && !loadingData\\\">\\r\\n <i class=\\\"fa fa-lock payment__lock-icon\\\"></i>{{getPaymentAmountString('using PayPal')}}</span>\\r\\n </button>\\r\\n\\r\\n </div>\\r\\n\\r\\n <div class=\\\"payment-panel\\\" *ngIf=\\\"loyaltyEnabled\\\" [ngClass]=\\\"{'active': loyaltyDollarsActive}\\\">\\r\\n <gaweb-error-summary [alerts]=\\\"alertsLoyalty\\\" [worksWithEvents]=\\\"false\\\"></gaweb-error-summary>\\r\\n <div class=\\\"row\\\" style=\\\"text-align: center; padding: 10px;\\\">\\r\\n <div class=\\\"row\\\" *ngIf=\\\"loadingBalance || this.totals == null\\\">\\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=\\\"!loadingBalance && this.totals != null\\\">\\r\\n <div class=\\\"text-center\\\" style=\\\"margin-bottom: 15px;\\\">\\r\\n <small><span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnit' | translate) | async }}</span> Balance:</small>\\r\\n <span class=\\\"col-xs-12 loyalty-available\\\" style=\\\"font-size: 1.5em; margin-bottom: 15px; \\\">${{loyaltyAvailable | number:'1.2-2'}}*</span>\\r\\n </div>\\r\\n <div *ngIf=\\\"loyaltyAvailable > 0\\\">\\r\\n <div class=\\\"loyalty-payment container-bleed\\\" *ngIf=\\\"loyaltyAvailable > 0\\\">\\r\\n <div class=\\\"loyalty-row col-xs-12\\\">\\r\\n <span class=\\\"loyalty-row-label pull-left\\\">Booking Total (Excluding fees)</span>\\r\\n <span class=\\\"value pull-right\\\">${{orderSummary | number:'1.2-2'}}</span>\\r\\n </div>\\r\\n <div class=\\\"loyalty-row col-xs-12\\\">\\r\\n <span class=\\\"loyalty-row-label pull-left\\\">Select a <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnit' | translate) | async }}</span> Amount</span>\\r\\n <span class=\\\"value pull-right\\\">\\r\\n -$<input \\r\\n type=\\\"number\\\" \\r\\n step=\\\".01\\\" \\r\\n max=\\\"{{maxLoyaltyPayable | number:'1.2-2'}}\\\" \\r\\n style=\\\"text-align: right; max-width: 64px; margin-top: -5px;\\\"\\r\\n [(ngModel)]=\\\"loyaltyAmount\\\" \\r\\n (change)=\\\"onKeyUp(loyaltyAmount, $event)\\\"\\r\\n placeholder=\\\"0.00\\\" />\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"loyalty-row col-xs-12\\\" style=\\\"margin-bottom: 15px;\\\">\\r\\n <span class=\\\"col-xs-1\\\" style=\\\"margin-top: 2px;\\\">$0</span>\\r\\n <input #loyaltySlider \\r\\n (change)=\\\"onKeyUp(loyaltySlider.value, $event)\\\" \\r\\n [(ngModel)]=\\\"loyaltyAmount\\\" \\r\\n type=\\\"range\\\" \\r\\n step=\\\"1\\\"\\r\\n (ngModelChange)=\\\"value\\\"\\r\\n value=\\\"0\\\" \\r\\n style=\\\"display: inline-block; width: 82%; margin-top: 5px; padding-top: 0px;\\\" \\r\\n class=\\\"col-xs-10 range-input\\\"\\r\\n max=\\\"{{maxLoyaltyPayable}}\\\" \\r\\n min=\\\"0\\\" />\\r\\n <span class=\\\"col-xs-1\\\" style=\\\"margin-right: -8px; margin-left: -12px;\\\">${{maxLoyaltyPayable | number:'1.2-2'}}</span> <!-- max=\\\"{{maxLoyaltyPayable}}\\\" -->\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"greenDollarTotal > 0\\\" class=\\\"loyalty-row\\\" style=\\\"text-align: left; padding-left: 10px;\\\">\\r\\n <i>\\r\\n As your booking includes an Offset Carbon Emission Donation Donation, you will not be able to pay for\\r\\n the\\r\\n entire booking using your <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate) | async }}</span>.\\r\\n <br>\\r\\n <a *ngIf=\\\"!removingGreenDollar\\\" (click)=\\\"removeGreenDollar()\\\" style=\\\"cursor: pointer;\\\">Remove\\r\\n Offset Carbon Emission Donation</a>\\r\\n <i *ngIf=\\\"removingGreenDollar\\\" class=\\\"fa fa-refresh fa-spin\\\"></i>\\r\\n </i>\\r\\n </div>\\r\\n <!-- <div class=\\\"loyalty-row col-xs-12\\\" *ngIf=\\\"loyaltyAmount.value > 0\\\">\\r\\n <span class=\\\"loyalty-row-label pull-left\\\">Loyalty Credit Payment:</span>\\r\\n <span *ngIf=\\\"!processingCart\\\" class=\\\"value pull-right\\\">-${{loyaltyAmount.value |\\r\\n number:'1.2-2'}}</span>\\r\\n <span *ngIf=\\\"processingCart\\\" class=\\\"value pull-right\\\"><i class=\\\"fa fa-refresh fa-spin\\\"></i></span>\\r\\n </div> -->\\r\\n <div *ngIf=\\\"processingFee > 0\\\" class=\\\"loyalty-row col-xs-12\\\">\\r\\n <span class=\\\"loyalty-row-label pull-left\\\">Processing Fees</span>\\r\\n <span *ngIf=\\\"!processingCart\\\" class=\\\"value pull-right\\\">${{processingFee |\\r\\n number:'1.2-2'}}</span>\\r\\n <span *ngIf=\\\"processingCart\\\" class=\\\"value pull-right\\\"><i class=\\\"fa fa-refresh fa-spin\\\"></i></span>\\r\\n </div>\\r\\n <div class=\\\"loyalty-row col-xs-12\\\">\\r\\n <span class=\\\"loyalty-row-label pull-left\\\">Balance to Pay</span>\\r\\n <span *ngIf=\\\"!processingCart\\\" class=\\\"value pull-right\\\">${{balanceToPay |\\r\\n number:'1.2-2'}}</span>\\r\\n <span *ngIf=\\\"processingCart\\\" class=\\\"value pull-right\\\"><i class=\\\"fa fa-refresh fa-spin\\\"></i></span>\\r\\n </div>\\r\\n </div>\\r\\n <!-- <div style=\\\"display: block;\\\" *ngIf=\\\"totals.TotalCost <= loyaltyAvailable\\\">You can\\r\\n choose to pay for this booking using your balance, or\\r\\n save your {{('LoyaltyUnitPlural' | translate) | async }} for future purchases.</div> -->\\r\\n <hr style=\\\"width: 100%;\\r\\n margin-bottom: 0px;\\r\\n display: inline-block;\\r\\n margin-top: 10px;\\\" />\\r\\n\\r\\n <div class=\\\"container-bleed\\\" *ngIf=\\\"partialLoyaltyPayment\\\">\\r\\n <div style=\\\"padding: 10px; font-weight: 600px;\\\">Choose how you wish to pay for\\r\\n the\\r\\n remaining balance:</div>\\r\\n <div class=\\\"btn-group btn-group-justified\\\" style=\\\"margin-bottom: 10px; padding: 0px 10px;\\\">\\r\\n <label class=\\\"btn btn-toggle\\\" [ngClass]=\\\"{ 'active' : partialLoyaltyPaymentMode == 'cc' }\\\"\\r\\n (click)=\\\"partialLoyaltyPaymentMode = 'cc'\\\">\\r\\n CREDIT CARD\\r\\n </label>\\r\\n <label class=\\\"btn btn-toggle\\\" [ngClass]=\\\"{ 'active' : partialLoyaltyPaymentMode == 'paypal' }\\\"\\r\\n (click)=\\\"partialLoyaltyPaymentMode = 'paypal'\\\">\\r\\n PAYPAL\\r\\n </label>\\r\\n </div>\\r\\n <div *ngIf=\\\"partialLoyaltyPaymentMode == 'cc'\\\">\\r\\n <form [formGroup]=\\\"loyaltyCcForm\\\" style=\\\"padding: 10px;\\\" novalidate>\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (loyaltyCcForm.controls.number.touched || loyaltyCcForm.controls.number.dirty) && !loyaltyCcForm.controls.number.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"numberId\\\" type=\\\"tel\\\" maxlength=\\\"19\\\"\\r\\n formControlName=\\\"number\\\" placeholder=\\\"Card Number*\\\">\\r\\n <i class=\\\"fa fa-2x fa-fw fa-cc-visa card-icon\\\" *ngIf=\\\"cardType === 'visa'\\\"\\r\\n aria-hidden=\\\"true\\\"></i>\\r\\n <i class=\\\"fa fa-2x fa-fw fa-cc-mastercard card-icon\\\" *ngIf=\\\"cardType === 'mastercard'\\\"\\r\\n aria-hidden=\\\"true\\\"></i>\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(loyaltyCcForm.controls.number.touched || loyaltyCcForm.controls.number.dirty) && loyaltyCcForm.controls.number.errors\\\">\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.number.errors.required\\\">\\r\\n Please enter a card number\\r\\n </span>\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.number.errors.cardtype\\\">\\r\\n Only MasterCard and Visa cards are accepted.\\r\\n </span>\\r\\n </span>\\r\\n </div>\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-3 card-field\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (loyaltyCcForm.controls.month.touched || loyaltyCcForm.controls.month.dirty) && !loyaltyCcForm.controls.month.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"monthId\\\" type=\\\"tel\\\"\\r\\n maxlength=\\\"2\\\" formControlName=\\\"month\\\" placeholder=\\\"MM*\\\">\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(loyaltyCcForm.controls.month.touched || loyaltyCcForm.controls.month.dirty) && loyaltyCcForm.controls.month.errors\\\">\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.month.errors.required\\\">\\r\\n Please enter a month</span>\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.month.errors.expirymonth\\\">\\r\\n Your expiry month is invalid.</span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-3 card-field\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (loyaltyCcForm.controls.year.touched || loyaltyCcForm.controls.year.dirty) && !loyaltyCcForm.controls.year.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"yearId\\\" type=\\\"tel\\\"\\r\\n maxlength=\\\"2\\\" formControlName=\\\"year\\\" placeholder=\\\"YY*\\\">\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(loyaltyCcForm.controls.year.touched || loyaltyCcForm.controls.year.dirty) && loyaltyCcForm.controls.year.errors\\\">\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.year.errors.required\\\">\\r\\n Please enter a year</span>\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.year.errors.expiryyear\\\">\\r\\n Your expiry year is invalid.</span>\\r\\n </span>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-3 card-field\\\">\\r\\n <div class=\\\"form-group\\\" [ngClass]=\\\"{'has-error': (loyaltyCcForm.controls.cvv.touched || loyaltyCcForm.controls.cvv.dirty) && !loyaltyCcForm.controls.cvv.valid }\\\">\\r\\n <input class=\\\"form-control\\\" id=\\\"cvvId\\\" type=\\\"tel\\\" maxlength=\\\"3\\\"\\r\\n formControlName=\\\"cvv\\\" placeholder=\\\"CVV*\\\">\\r\\n <span class=\\\"help-block\\\" *ngIf=\\\"(loyaltyCcForm.controls.cvv.touched || loyaltyCcForm.controls.cvv.dirty) && loyaltyCcForm.controls.cvv.errors\\\">\\r\\n <span *ngIf=\\\"loyaltyCcForm.controls.cvv.errors.required\\\">\\r\\n Please enter a cvv</span>\\r\\n </span>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n <div class=\\\"col-xs-3\\\" style=\\\"padding-left: 0;\\\">\\r\\n <i class=\\\"fa fa-2x fa-info-circle\\\" style=\\\"cursor: pointer; font-size: 20px;line-height: 40px;\\\"\\r\\n title=\\\"{{('CCVText' | translate) | async }}\\\" data-toggle=\\\"tooltip\\\"\\r\\n data-placement=\\\"auto\\\" container=\\\"body\\\"></i>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <gaweb-error-summary [alerts]=\\\"alertsTNS\\\" [worksWithEvents]=\\\"false\\\"></gaweb-error-summary>\\r\\n <button class=\\\"btn btn-cta-purchase btn-content-centered\\\" (click)=\\\"loyaltyPayWithCreditCard()\\\"\\r\\n [disabled]=\\\"!loyaltyCcForm.valid || paying\\\">\\r\\n <i *ngIf=\\\"paying || loadingData\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"paying || loadingData\\\" class=\\\"span-margin\\\">\\r\\n Processing payment...</span>\\r\\n <span *ngIf=\\\"!paying && !loadingData\\\">\\r\\n <i class=\\\"fa fa-lock payment__lock-icon\\\"></i>{{getPartialLoyaltyAmountString('Now')}}</span>\\r\\n </button>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <div *ngIf=\\\"partialLoyaltyPaymentMode == 'paypal'\\\">\\r\\n <div class=\\\"now-accepting\\\">\\r\\n <!-- PayPal Logo -->\\r\\n <img src=\\\"https://www.paypalobjects.com/webstatic/mktg/logo/bdg_now_accepting_pp_2line_w.png\\\"\\r\\n alt=\\\"How PayPal Works\\\" />\\r\\n <!-- PayPal Logo -->\\r\\n </div>\\r\\n\\r\\n <gaweb-error-summary [alerts]=\\\"alertsPayPal\\\" [worksWithEvents]=\\\"false\\\"></gaweb-error-summary>\\r\\n <button class=\\\"btn btn-cta-purchase btn-content-centered\\\" (click)=\\\"loyaltyPayWithPayPal()\\\"\\r\\n [disabled]=\\\"paying\\\">\\r\\n <i *ngIf=\\\"paying || loadingData\\\" class='fa fa-refresh fa-spin'></i>\\r\\n <span *ngIf=\\\"paying || loadingData\\\" class=\\\"span-margin\\\">Redirecting to\\r\\n PayPal...</span>\\r\\n <span *ngIf=\\\"!paying && !loadingData\\\">\\r\\n <i class=\\\"fa fa-lock payment__lock-icon\\\"></i>{{getPartialLoyaltyAmountString('using\\r\\n PayPal')}}</span>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"!partialLoyaltyPayment\\\">\\r\\n <button class=\\\"btn btn-cta-purchase btn-content-centered\\\" *ngIf=\\\"loyaltyAvailable > 0\\\"\\r\\n style=\\\"margin-top: 15px; margin-bottom: 15px;\\\" (click)=\\\"payWithLoyaltyDollars()\\\"\\r\\n [disabled]=\\\"paying || processingCart\\\">\\r\\n <span *ngIf=\\\"!paying\\\">\\r\\n {{getLoyaltyAmountString('')}} using <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate) | async }}</span>\\r\\n </span>\\r\\n <span *ngIf=\\\"paying\\\" class=\\\"value pull-right\\\">\\r\\n <i class=\\\"fa fa-refresh fa-spin\\\"></i>\\r\\n </span>\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div *ngIf=\\\"loyaltyAvailable <= 0\\\" style=\\\"color: darkred\\\">\\r\\n <div>Sorry but you do not have enough <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate) | async }}</span> to pay for this booking.</div>\\r\\n <div>Please choose a different payment method.</div>\\r\\n </div>\\r\\n <div style=\\\"display: block; margin-top: 10px;\\\" *ngIf=\\\"loyaltyAvailable <= 0\\\">But\\r\\n dont worry, you will still earn <span class=\\\"gdollar-symbol\\\">{{('LoyaltyUnitPlural' | translate) | async }}</span> when\\r\\n paying using one of the other\\r\\n payment options.</div>\\r\\n <small *ngIf=\\\"totals != null && totals.TotalCost <= loyaltyAvailable\\\" style=\\\"display: block; margin-top: 10px;\\\">*\\r\\n Your available balance does not include pending purchases. Go to your \\r\\n <a href=\\\"/my-greyhound/dashboard\\\">My Greyhound account</a>\\r\\n to view full details of your balance.</small>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</section>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/product-payment/payment-form/payment-form.component.html\n// module id = ./src/app/travel-products/product-payment/payment-form/payment-form.component.html\n// module chunks = main","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n trigger,\r\n transition,\r\n style,\r\n animate,\r\n state,\r\n Output,\r\n EventEmitter,\r\n NgZone,\r\n SimpleChanges\r\n} from \"@angular/core\";\r\nimport {\r\n Booking,\r\n Totals,\r\n Addon,\r\n TpProduct\r\n} from \"../../../shared/models/booking.model\";\r\nimport {\r\n Validators,\r\n FormGroup,\r\n FormArray,\r\n FormBuilder,\r\n AbstractControl\r\n} from \"@angular/forms\";\r\nimport {\r\n Passenger,\r\n PassengerFormModel,\r\n UpdatePassengerOption\r\n} from \"../../../shared/models/passenger.model\";\r\nimport { Country } from \"../../../shared/models/country.model\";\r\nimport {\r\n TravelProductService,\r\n TravelPackage,\r\n FareTypeChangedEvent,\r\n TicketBookingOptions,\r\n CartItemOptions\r\n} from \"../../../shared/services/travel-product.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport {\r\n ActionUpdaterService,\r\n ApiError\r\n} from \"../../../shared/services/action-updater.service\";\r\nimport { DecimalPipe } from \"@angular/common\";\r\n\r\nimport {\r\n PaymentService,\r\n CreatePaymentOptions,\r\n CreatePaymentResult,\r\n TnsCreditCardOptions,\r\n TnsResponse,\r\n TnsOptions,\r\n LoyaltyOptions,\r\n ConfirmAndTicketOptions\r\n} from \"../../../shared/services/payment.service\";\r\n\r\nimport * as _ from \"lodash\";\r\nimport * as moment from \"moment\";\r\nimport {\r\n CreditCardService,\r\n VALID_CARD_TYPES\r\n} from \"app/shared/services/credit-card.service\";\r\nimport { GxConstants } from \"app/shared/constants/gx.constants\";\r\nimport { InitialDataService } from \"../../../initial-data.service\";\r\nimport { ProductTypeUrl } from \"app/shared/models/enums/ProductTypeUrl.enum\";\r\nimport { LocalStorageService } from \"../../../shared/services/local-storage.service\";\r\nimport { MyGreyhoundService } from \"app/my-greyhound/my-greyhound.service\";\r\nimport { CartTotalService } from \"../../../shared/services/cart-total.service\";\r\nimport { AddonsService } from \"../../../shared/services/addons.service\";\r\nimport {\r\n BookingService,\r\n DeleteTourByGuidOptions\r\n} from \"app/shared/services/booking.service\";\r\nimport { FeatureService, Feature } from \"app/shared/services/feature.service\";\r\n\r\n@Component({\r\n selector: \"gaweb-payment-form\",\r\n templateUrl: \"./payment-form.component.html\"\r\n})\r\nexport class PaymentFormComponent implements OnInit {\r\n @Output() totalsUpdate: EventEmitter<Totals> = new EventEmitter();\r\n\r\n @Input() totals: Totals;\r\n @Input() loadingData: boolean;\r\n @Input() bookingGuid: string;\r\n @Input() transactionNumber: string;\r\n @Input() paymentContext: string;\r\n @Input() productReference: string;\r\n @Input() productType: ProductTypeUrl;\r\n\r\n public ccForm: FormGroup;\r\n paying = false;\r\n ccActive = true;\r\n paypalActive = false;\r\n loyaltyDollarsActive = false;\r\n loyaltyEnabled = false;\r\n alertsTNS: Array<ApiError>;\r\n cardType: string;\r\n alertsPayPal: Array<ApiError>;\r\n alertsLoyalty: Array<ApiError>;\r\n\r\n // Loyalty\r\n public loyaltyCcForm: FormGroup;\r\n public loyaltyAmount = 0.0;\r\n public loyaltyAvailable = 0.0;\r\n public loyaltyPending = 0.0;\r\n public totalLoyalty = 0.0;\r\n public maxLoyaltyPayable = 0.0;\r\n public partialLoyaltyPayment = true;\r\n public partialLoyaltyPaymentMode = \"cc\";\r\n\r\n public balanceTime: Date;\r\n public usingCredit = 0.0;\r\n public processingFee = 0.0;\r\n public balanceToPay = 0.0;\r\n public orderSummary = 0.0;\r\n\r\n public processingCart = false;\r\n public loadingBalance = true;\r\n\r\n public addons = new Array<CartItemOptions>();\r\n public loyaltyTotals: Totals;\r\n\r\n public booking: any;\r\n\r\n public greenDollarTotal = 0;\r\n public removingGreenDollar = false;\r\n\r\n customerGuid = null;\r\n\r\n constructor(\r\n private _fb: FormBuilder,\r\n private pipe: DecimalPipe,\r\n private paymentService: PaymentService,\r\n private bookingService: BookingService,\r\n private myGreyhoundService: MyGreyhoundService,\r\n private creditCardService: CreditCardService,\r\n private initialDataService: InitialDataService,\r\n private localStorageService: LocalStorageService,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private cartTotalService: CartTotalService,\r\n private featureService: FeatureService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.customerGuid = !!this.initialDataService.initialData.UserData\r\n ? this.initialDataService.initialData.UserData.CustomerGuid\r\n : null;\r\n this.booking = this.localStorageService.getOfflineBooking();\r\n\r\n if (this.customerGuid != null) {\r\n this.updateLoyaltyBalance();\r\n }\r\n const booking = this.localStorageService.getOnlineBooking();\r\n if (booking.ProductType === \"EX\" && this.customerGuid != null) {\r\n const customerGuid = !!this.initialDataService.userData\r\n ? this.initialDataService.userData.CustomerGuid\r\n : null;\r\n\r\n if (\r\n moment(\r\n this.featureService.GetFeatureValue(Feature.LastTCUpdate)\r\n ).isAfter(\r\n moment(this.initialDataService.userData.TCAcceptDate)\r\n ) &&\r\n this.localStorageService.getIfTCUpdated(customerGuid) ===\r\n \"false\"\r\n ) {\r\n this.loyaltyEnabled = false;\r\n } else {\r\n this.loyaltyEnabled = true;\r\n }\r\n }\r\n\r\n booking.TpProducts.forEach(tpProduct => {\r\n if (tpProduct.ProductCode === \"GRNDOLLAR\") {\r\n console.log(\"tpProducts\", tpProduct);\r\n this.greenDollarTotal +=\r\n tpProduct.SalePrice * tpProduct.QuantityToBook;\r\n }\r\n });\r\n\r\n booking.Tours.forEach(tour => {\r\n if (tour.SelectedFareType === \"GRNDOLLAR\" && tour.TicketNumber === null) {\r\n console.log(\"tour\", tour);\r\n this.greenDollarTotal +=\r\n tour.SelectedCurrencyAmount * tour.Quantity;\r\n }\r\n });\r\n\r\n\r\n console.log(\"flag b, this.greenDollarTotal\", this.greenDollarTotal);\r\n\r\n this.ccForm = this._fb.group({\r\n number: [\"\", Validators.required],\r\n month: [\"\", Validators.required],\r\n year: [\"\", Validators.required],\r\n cvv: [\"\", Validators.required]\r\n });\r\n\r\n this.loyaltyCcForm = this._fb.group({\r\n number: [\"\", Validators.required],\r\n month: [\"\", Validators.required],\r\n year: [\"\", Validators.required],\r\n cvv: [\"\", Validators.required]\r\n });\r\n\r\n this.ccForm.valueChanges\r\n .debounceTime(500)\r\n .subscribe(({ number, month, year, cvv }) => {\r\n number = this.creditCardService.formatCardNumber(number);\r\n month = month.replace(/\\D/g, \"\");\r\n const intMonth = parseInt(month);\r\n if (intMonth < 1 || intMonth > 12) {\r\n this.ccForm.controls[\"month\"].setErrors(\r\n { expirymonth: true },\r\n { emitEvent: false }\r\n );\r\n return;\r\n }\r\n year = year.replace(/\\D/g, \"\");\r\n const intYear = parseInt(year);\r\n if (intYear < parseInt(moment().format(\"YY\"))) {\r\n this.ccForm.controls[\"year\"].setErrors(\r\n { expiryyear: true },\r\n { emitEvent: false }\r\n );\r\n return;\r\n }\r\n cvv = cvv.replace(/\\D/g, \"\");\r\n this.ccForm.setValue(\r\n { number, month, year, cvv },\r\n { emitEvent: false }\r\n );\r\n this.cardType = this.creditCardService.cardTypeFromNumber(\r\n number\r\n );\r\n if (\r\n number.length > 3 &&\r\n VALID_CARD_TYPES.indexOf(this.cardType) < 0\r\n ) {\r\n this.ccForm.controls[\"number\"].setErrors(\r\n { cardtype: true },\r\n { emitEvent: false }\r\n );\r\n }\r\n });\r\n\r\n this.loyaltyCcForm.valueChanges\r\n .debounceTime(500)\r\n .subscribe(({ number, month, year, cvv }) => {\r\n number = this.creditCardService.formatCardNumber(number);\r\n month = month.replace(/\\D/g, \"\");\r\n const intMonth = parseInt(month);\r\n if (intMonth < 1 || intMonth > 12) {\r\n this.loyaltyCcForm.controls[\"month\"].setErrors(\r\n { expirymonth: true },\r\n { emitEvent: false }\r\n );\r\n return;\r\n }\r\n year = year.replace(/\\D/g, \"\");\r\n const intYear = parseInt(year);\r\n if (intYear < parseInt(moment().format(\"YY\"))) {\r\n this.loyaltyCcForm.controls[\"year\"].setErrors(\r\n { expiryyear: true },\r\n { emitEvent: false }\r\n );\r\n return;\r\n }\r\n cvv = cvv.replace(/\\D/g, \"\");\r\n this.loyaltyCcForm.setValue(\r\n { number, month, year, cvv },\r\n { emitEvent: false }\r\n );\r\n this.cardType = this.creditCardService.cardTypeFromNumber(\r\n number\r\n );\r\n if (\r\n number.length > 3 &&\r\n VALID_CARD_TYPES.indexOf(this.cardType) < 0\r\n ) {\r\n this.loyaltyCcForm.controls[\"number\"].setErrors(\r\n { cardtype: true },\r\n { emitEvent: false }\r\n );\r\n }\r\n });\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.updateLoyaltyBalance();\r\n }\r\n\r\n updateFromInput() {\r\n this.orderSummary = 0.0;\r\n this.addons = new Array<CartItemOptions>();\r\n let farePrice = 0;\r\n\r\n if (this.totals == null) {\r\n return;\r\n }\r\n\r\n if (this.removingGreenDollar) {\r\n this.addons = this.addons.filter(\r\n addon => addon.productCode !== \"GRNDOLLAR\"\r\n );\r\n const oldTravelProducts = this.totals.PaymentItems.filter(\r\n paymentItems =>\r\n paymentItems != null &&\r\n paymentItems.Description === \"Travel Products\"\r\n )[0];\r\n if (oldTravelProducts != null) {\r\n oldTravelProducts.Items = oldTravelProducts.Items.filter(\r\n item => item.ProductCode !== \"GRNDOLLAR\"\r\n );\r\n }\r\n this.totals.PaymentItems = this.totals.PaymentItems.filter(\r\n paymentItems =>\r\n paymentItems != null &&\r\n paymentItems.Description !== \"Travel Products\"\r\n );\r\n this.totals.PaymentItems.push(oldTravelProducts);\r\n }\r\n\r\n this.totals.PaymentItems.forEach(paymentItem => {\r\n if (paymentItem != null) {\r\n if (paymentItem.Sku === \"FE\") {\r\n this.processingFee = paymentItem.Total;\r\n } else if (paymentItem.Sku === \"IN\") {\r\n } else if (paymentItem.Sku === \"TP\") {\r\n paymentItem.Items.forEach(item => {\r\n const newCartItem = new CartItemOptions();\r\n newCartItem.Type = paymentItem.Sku;\r\n newCartItem.productCode = item.ProductCode;\r\n newCartItem.SalePriceUnit = item.Amount;\r\n newCartItem.Quantity = item.Quantity;\r\n this.addons.push(newCartItem);\r\n\r\n this.orderSummary += item.Amount * item.Quantity;\r\n });\r\n } else {\r\n this.orderSummary += paymentItem.Total;\r\n if (paymentItem.Sku !== \"FP\") {\r\n paymentItem.Items.forEach(item => {\r\n const newCartItem = new CartItemOptions();\r\n newCartItem.Type = paymentItem.Sku;\r\n newCartItem.productCode = item.ProductCode;\r\n newCartItem.SalePriceUnit = item.Amount;\r\n newCartItem.Quantity = item.Quantity;\r\n this.addons.push(newCartItem);\r\n });\r\n } else {\r\n farePrice = paymentItem.Total;\r\n this.totals.PaymentItems.forEach(paymentItem => {\r\n if (paymentItem != null) {\r\n if (paymentItem.Sku === \"IN\") {\r\n this.orderSummary += paymentItem.Total;\r\n const newCartItem = new CartItemOptions();\r\n newCartItem.Type = paymentItem.Sku;\r\n newCartItem.productCode =\r\n paymentItem.Items[0].ProductCode;\r\n newCartItem.SalePriceUnit = farePrice;\r\n newCartItem.Quantity = 1;\r\n this.addons.push(newCartItem);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.balanceToPay = this.totals.TotalCost;\r\n\r\n if (this.orderSummary < this.loyaltyAvailable) {\r\n this.maxLoyaltyPayable = this.orderSummary;\r\n } else {\r\n this.maxLoyaltyPayable = this.loyaltyAvailable;\r\n }\r\n\r\n if (\r\n this.greenDollarTotal > 0 &&\r\n this.loyaltyAvailable > this.orderSummary\r\n ) {\r\n this.maxLoyaltyPayable -= this.greenDollarTotal;\r\n }\r\n }\r\n\r\n removeGreenDollar() {\r\n this.removingGreenDollar = true;\r\n const onlineBooking = this.localStorageService.getOnlineBooking();\r\n let greenDollarGuid = \"\";\r\n\r\n onlineBooking.TpProducts.forEach(tpProduct => {\r\n if (tpProduct.ProductCode === \"GRNDOLLAR\") {\r\n greenDollarGuid = tpProduct.TourGuid;\r\n }\r\n });\r\n\r\n onlineBooking.Tours.forEach(tour => {\r\n if (tour.SelectedFareType === \"GRNDOLLAR\") {\r\n greenDollarGuid = tour.TourGuid;\r\n }\r\n });\r\n\r\n this.addons = this.addons.filter(\r\n addon => addon.productCode !== \"GRNDOLLAR\"\r\n );\r\n const oldTravelProducts = this.totals.PaymentItems.filter(\r\n paymentItems =>\r\n paymentItems != null &&\r\n paymentItems.Description === \"Travel Products\"\r\n )[0];\r\n\r\n if (oldTravelProducts != null) {\r\n oldTravelProducts.Items = oldTravelProducts.Items.filter(\r\n item => item.ProductCode !== \"GRNDOLLAR\"\r\n );\r\n }\r\n this.totals.PaymentItems = this.totals.PaymentItems.filter(\r\n paymentItems =>\r\n paymentItems != null &&\r\n paymentItems.Description !== \"Travel Products\"\r\n );\r\n this.totals.PaymentItems.push(oldTravelProducts);\r\n\r\n console.log(\"greenDollarGuid\", greenDollarGuid);\r\n\r\n if (greenDollarGuid === \"\") {\r\n this.greenDollarTotal = 0;\r\n const options = this.cartTotalService.getExpressCartTotalOptions(\r\n this.booking.travels,\r\n 1,\r\n null,\r\n false,\r\n this.customerGuid\r\n );\r\n this.addons.forEach(addon => {\r\n if (addon.productCode !== \"GRNDOLLAR\") {\r\n options.CartItems.push(addon);\r\n }\r\n });\r\n\r\n this.cartTotalService.postCartTotal(\r\n options,\r\n response => {\r\n this.totals = response;\r\n this.totalsUpdate.emit(response);\r\n this.onKeyUp(this.loyaltyAmount, null);\r\n this.updateFromInput();\r\n this.removingGreenDollar = false;\r\n },\r\n null,\r\n null,\r\n null\r\n );\r\n return;\r\n }\r\n\r\n this.bookingService\r\n .deleteTourByGuid(\r\n new DeleteTourByGuidOptions(\r\n onlineBooking.BookingGuid,\r\n greenDollarGuid\r\n )\r\n )\r\n .subscribe(result => {\r\n this.greenDollarTotal = 0;\r\n const options = this.cartTotalService.getExpressCartTotalOptions(\r\n this.booking.travels,\r\n 1,\r\n null,\r\n false,\r\n this.customerGuid\r\n );\r\n this.addons.forEach(addon => {\r\n if (addon.productCode !== \"GRNDOLLAR\") {\r\n options.CartItems.push(addon);\r\n }\r\n });\r\n\r\n this.cartTotalService.postCartTotal(\r\n options,\r\n response => {\r\n this.totals = response;\r\n this.totalsUpdate.emit(response);\r\n this.onKeyUp(this.loyaltyAmount, null);\r\n this.updateFromInput();\r\n this.removingGreenDollar = false;\r\n },\r\n null,\r\n null,\r\n null\r\n );\r\n });\r\n }\r\n\r\n onKeyUp(value: number, event: any) {\r\n if (event != null && event.key === \"Backspace\") {\r\n return 0;\r\n }\r\n if (value < 0 || value === null) {\r\n value = 0;\r\n }\r\n\r\n if (value >= this.maxLoyaltyPayable) {\r\n value = this.maxLoyaltyPayable;\r\n }\r\n\r\n if (this.totals.TotalCost < value) {\r\n value = this.totals.TotalCost;\r\n }\r\n if (\r\n value !== this.maxLoyaltyPayable &&\r\n this.maxLoyaltyPayable - value < 1\r\n ) {\r\n value = this.maxLoyaltyPayable;\r\n }\r\n\r\n this.processingCart = true;\r\n this.loyaltyAmount = value;\r\n\r\n if (this.removingGreenDollar) {\r\n const oldTravelProducts = this.totals.PaymentItems.filter(\r\n paymentItems =>\r\n paymentItems != null &&\r\n paymentItems.Description === \"Travel Products\"\r\n )[0];\r\n if (oldTravelProducts != null) {\r\n oldTravelProducts.Items = oldTravelProducts.Items.filter(\r\n item => item.ProductCode !== \"GRNDOLLAR\"\r\n );\r\n }\r\n this.totals.PaymentItems = this.totals.PaymentItems.filter(\r\n paymentItems => paymentItems != null && paymentItems.Description !== \"Travel Products\"\r\n );\r\n this.totals.PaymentItems.push(oldTravelProducts);\r\n }\r\n\r\n const options = this.cartTotalService.getExpressCartTotalOptions(\r\n this.booking.travels,\r\n 1,\r\n null,\r\n false,\r\n this.customerGuid\r\n );\r\n console.log(\"flag E this.addons\", JSON.stringify(this.addons));\r\n this.addons.forEach(addon => {\r\n if (\r\n addon.productCode === \"GRNDOLLAR\" &&\r\n this.removingGreenDollar === true\r\n ) {\r\n console.log(\"ignoring green dollar on purpose!\");\r\n } else {\r\n options.CartItems.push(addon);\r\n }\r\n });\r\n const loyaltyItem = new CartItemOptions();\r\n loyaltyItem.SalePriceUnit = value;\r\n loyaltyItem.Type = \"LOY\";\r\n loyaltyItem.Quantity = 1;\r\n options.CartItems.push(loyaltyItem);\r\n options.BookingGUID = this.bookingGuid;\r\n this.cartTotalService.postCartTotal(\r\n options,\r\n response => {\r\n let correctResponse = false;\r\n response.PaymentItems.forEach(paymentItem => {\r\n if (paymentItem.Sku === \"FE\") {\r\n this.processingFee = paymentItem.Total;\r\n }\r\n if (paymentItem.Sku === \"LOY\") {\r\n if (paymentItem.Total === this.loyaltyAmount * -1) {\r\n correctResponse = true;\r\n }\r\n }\r\n });\r\n\r\n if (correctResponse === false) {\r\n return;\r\n }\r\n\r\n this.balanceToPay = response.TotalCost;\r\n\r\n if (this.balanceToPay < 0) {\r\n this.balanceToPay = 0;\r\n }\r\n\r\n if (this.balanceToPay > 0) {\r\n this.partialLoyaltyPayment = true;\r\n this.loyaltyTotals = response;\r\n } else {\r\n this.partialLoyaltyPayment = false;\r\n this.loyaltyTotals = response;\r\n }\r\n this.processingCart = false;\r\n response.PaymentItems.forEach(paymentItem => {\r\n if (paymentItem.Sku === \"FE\") {\r\n this.processingFee = paymentItem.Total;\r\n }\r\n });\r\n // this.loyaltyAccrued = response.CreditsEarned;\r\n // this.loyaltyRedemption = response.RedemptionPortion;\r\n },\r\n null,\r\n null,\r\n null\r\n );\r\n const decimalValue = this.pipe.transform(value, \"1.2-2\");\r\n\r\n this.loyaltyAmount = value;\r\n }\r\n\r\n toggleCcActive() {\r\n this.alertsTNS = null;\r\n this.alertsLoyalty = null;\r\n this.alertsPayPal = null;\r\n this.onKeyUp(0, null);\r\n if (!this.ccActive) {\r\n this.ccActive = true;\r\n this.paypalActive = false;\r\n this.loyaltyDollarsActive = false;\r\n }\r\n }\r\n\r\n togglePaypalActive() {\r\n this.alertsTNS = null;\r\n this.alertsLoyalty = null;\r\n this.alertsPayPal = null;\r\n this.onKeyUp(0, null);\r\n if (!this.paypalActive) {\r\n this.ccActive = false;\r\n this.paypalActive = true;\r\n this.loyaltyDollarsActive = false;\r\n }\r\n }\r\n\r\n toggleLoyaltyDollarsActive() {\r\n this.alertsTNS = null;\r\n this.alertsLoyalty = null;\r\n this.alertsPayPal = null;\r\n if (!this.loyaltyDollarsActive) {\r\n this.ccActive = false;\r\n this.paypalActive = false;\r\n this.loyaltyDollarsActive = true;\r\n }\r\n\r\n this.updateFromInput();\r\n }\r\n\r\n getPaymentAmountString = (suffex: string) => {\r\n if (!this.totals) {\r\n return \"\";\r\n }\r\n const decimalTotalToPay = this.pipe.transform(\r\n this.totals.TotalCost,\r\n \"1.2-2\"\r\n );\r\n return `Pay $${decimalTotalToPay} ${suffex}`;\r\n };\r\n\r\n getPartialLoyaltyAmountString = (suffex: string) => {\r\n const decimalTotalToPay = this.pipe.transform(\r\n this.balanceToPay,\r\n \"1.2-2\"\r\n );\r\n return `Pay $${decimalTotalToPay} ${suffex}`;\r\n };\r\n\r\n getLoyaltyAmountString = (suffex: string) => {\r\n const decimalTotalToPay = this.pipe.transform(\r\n this.orderSummary,\r\n \"1.2-2\"\r\n );\r\n return `Pay $${decimalTotalToPay} ${suffex}`;\r\n };\r\n\r\n payWithLoyaltyDollars() {\r\n this.paying = true;\r\n this.alertsLoyalty = [];\r\n const options = new CreatePaymentOptions(\r\n GxConstants.PAYMENT_METHOD.LOYALTY,\r\n this.paymentContext,\r\n this.bookingGuid\r\n );\r\n options.Amount = this.orderSummary;\r\n options.CancelUrl = window.location.href;\r\n options.ItemList = _.map(\r\n this.loyaltyTotals.PaymentItems,\r\n (item: any) => ({\r\n name: item.Description,\r\n quantity: 1,\r\n sku: item.Sku,\r\n price: item.Total\r\n })\r\n );\r\n\r\n const tnsOptions = new TnsOptions(\r\n this.transactionNumber,\r\n \"LOYALTY\",\r\n this.orderSummary\r\n );\r\n\r\n const customerGuid = !!this.initialDataService.initialData.UserData\r\n ? this.initialDataService.initialData.UserData.CustomerGuid\r\n : null;\r\n\r\n const loyaltyOptions = new LoyaltyOptions(customerGuid);\r\n\r\n const confirmAndTicketOptions = new ConfirmAndTicketOptions(\r\n this.bookingGuid,\r\n null,\r\n loyaltyOptions\r\n );\r\n\r\n this.paymentService\r\n .createPayment(options)\r\n .subscribe((createPaymentResult: CreatePaymentResult) => {\r\n this.paymentService\r\n .confirmAndTicket(confirmAndTicketOptions)\r\n .subscribe(this.paymentSucceded, this.onErrorLoyalty);\r\n }, this.onErrorLoyalty);\r\n }\r\n\r\n payWithCreditCard() {\r\n this.paying = true;\r\n this.alertsTNS = [];\r\n const options = new CreatePaymentOptions(\r\n GxConstants.PAYMENT_METHOD.TNS,\r\n this.paymentContext,\r\n this.bookingGuid\r\n );\r\n this.paymentService\r\n .createPayment(options)\r\n .subscribe((createPaymentResult: CreatePaymentResult) => {\r\n this.getTransactionDetailsFromTns(createPaymentResult);\r\n }, this.onErrorTNS);\r\n }\r\n\r\n loyaltyPayWithCreditCard() {\r\n this.paying = true;\r\n\r\n if (this.loyaltyTotals == null) {\r\n this.updateCartTotal();\r\n setTimeout(() => {\r\n this.loyaltyPayWithCreditCard();\r\n }, 500);\r\n return;\r\n }\r\n\r\n this.alertsTNS = [];\r\n const options = new CreatePaymentOptions(\r\n GxConstants.PAYMENT_METHOD.TNS,\r\n this.paymentContext,\r\n this.bookingGuid\r\n );\r\n options.Amount = this.loyaltyTotals.TotalCost;\r\n options.TransactionReference = this.transactionNumber;\r\n options.PaymentDescription = \"Greyhound Australia Booking\";\r\n options.CancelUrl = window.location.href;\r\n options.ItemList = _.map(\r\n this.loyaltyTotals.PaymentItems,\r\n (item: any) => ({\r\n name: item.Description,\r\n quantity: 1,\r\n sku: item.Sku,\r\n price: item.Total\r\n })\r\n );\r\n this.paymentService\r\n .createPayment(options)\r\n .subscribe((createPaymentResult: CreatePaymentResult) => {\r\n this.getLoyaltyTransactionDetailsFromTns(createPaymentResult);\r\n }, this.onErrorTNS);\r\n }\r\n\r\n getLoyaltyTransactionDetailsFromTns = (\r\n createPaymentResult: CreatePaymentResult\r\n ) => {\r\n const tnsOptions = new TnsCreditCardOptions(\r\n this.loyaltyCcForm.get(\"number\").value,\r\n this.loyaltyCcForm.get(\"cvv\").value,\r\n this.loyaltyCcForm.get(\"month\").value,\r\n this.loyaltyCcForm.get(\"year\").value\r\n );\r\n\r\n // HostedForm object is provided by tnspayments.com JS library\r\n if (window[\"HostedForm\"]) {\r\n window[\"HostedForm\"].setMerchant(createPaymentResult.merchant);\r\n window[\"HostedForm\"].updateSession(\r\n createPaymentResult.session,\r\n tnsOptions,\r\n this.loyaltyOnTnsReturningTransactionDetails\r\n );\r\n } else {\r\n this.onErrorLoyalty(new ApiError(`'HostedForm' did not load.`));\r\n }\r\n };\r\n\r\n getTransactionDetailsFromTns = (\r\n createPaymentResult: CreatePaymentResult\r\n ) => {\r\n const tnsOptions = new TnsCreditCardOptions(\r\n this.ccForm.get(\"number\").value,\r\n this.ccForm.get(\"cvv\").value,\r\n this.ccForm.get(\"month\").value,\r\n this.ccForm.get(\"year\").value\r\n );\r\n // HostedForm object is provided by tnspayments.com JS library\r\n if (window[\"HostedForm\"]) {\r\n window[\"HostedForm\"].setMerchant(createPaymentResult.merchant);\r\n window[\"HostedForm\"].updateSession(\r\n createPaymentResult.session,\r\n tnsOptions,\r\n this.onTnsReturningTransactionDetails\r\n );\r\n } else {\r\n this.onErrorTNS(new ApiError(`'HostedForm' did not load.`));\r\n }\r\n };\r\n\r\n clearLocalStorage() {\r\n this.localStorageService.saveTravelPassengers(null);\r\n this.localStorageService.saveTravelAvailability(null);\r\n this.localStorageService.saveTimeTableTravelOptions(null);\r\n this.localStorageService.saveTimeTableTravelOptions(null);\r\n }\r\n\r\n loyaltyOnTnsReturningTransactionDetails = (tnsResponse: TnsResponse) => {\r\n switch (tnsResponse.status) {\r\n case GxConstants.TNS_RESPONSE_STATUSES.OK:\r\n const tnsOptions = new TnsOptions(\r\n this.transactionNumber,\r\n tnsResponse.session,\r\n this.loyaltyTotals.TotalCost\r\n ),\r\n confirmAndTicketOptions = new ConfirmAndTicketOptions(\r\n this.bookingGuid,\r\n tnsOptions,\r\n null\r\n );\r\n if (this.productType !== ProductTypeUrl.manageBooking) {\r\n this.paymentService\r\n .confirmAndTicket(confirmAndTicketOptions)\r\n .subscribe(this.paymentSucceded, this.onErrorTNS);\r\n } else {\r\n this.paymentService\r\n .confirmAndTicket(confirmAndTicketOptions)\r\n .subscribe(this.paymentSucceded, this.onErrorTNS);\r\n }\r\n this.clearLocalStorage();\r\n break;\r\n\r\n case GxConstants.TNS_RESPONSE_STATUSES.TIMEOUT:\r\n this.onErrorTNS(\r\n new ApiError(\r\n \"Request has timed out. Your credit card has not been charged. Please try again.\"\r\n )\r\n );\r\n break;\r\n case GxConstants.TNS_RESPONSE_STATUSES.INVALID_SESSION:\r\n this.onErrorTNS(\r\n new ApiError(\r\n \"Invalid session with payment provider please try again later or contact Greyhound for clarification.\"\r\n )\r\n );\r\n break;\r\n case GxConstants.TNS_RESPONSE_STATUSES.VALIDATION_ERROR:\r\n let err;\r\n if (tnsResponse.fieldsInError.cardNumber === \"invalid\") {\r\n err = \"Your credit card number is invalid.\";\r\n } else if (\r\n tnsResponse.fieldsInError.cardExpiryMonth === \"invalid\"\r\n ) {\r\n err = \"Your expiry month is invalid.\";\r\n } else if (\r\n tnsResponse.fieldsInError.cardExpiryYear === \"invalid\"\r\n ) {\r\n err = \"Your expiry year is invalid.\";\r\n } else if (\r\n tnsResponse.fieldsInError.cardSecurityCode === \"invalid\"\r\n ) {\r\n err = \"Your security code is invalid.\";\r\n } else {\r\n err = \"Invalid credit card details.\";\r\n }\r\n this.onErrorTNS(new ApiError(err));\r\n break;\r\n\r\n default:\r\n this.onErrorTNS(\r\n new ApiError(\r\n `TNS error status '${tnsResponse.status}' is unknown.`\r\n )\r\n );\r\n break;\r\n }\r\n };\r\n\r\n onTnsReturningTransactionDetails = (tnsResponse: TnsResponse) => {\r\n switch (tnsResponse.status) {\r\n case GxConstants.TNS_RESPONSE_STATUSES.OK:\r\n const tnsOptions = new TnsOptions(\r\n this.transactionNumber,\r\n tnsResponse.session,\r\n this.totals.TotalCost\r\n ),\r\n confirmAndTicketOptions = new ConfirmAndTicketOptions(\r\n this.bookingGuid,\r\n tnsOptions,\r\n null\r\n );\r\n if (this.productType !== ProductTypeUrl.manageBooking) {\r\n this.paymentService\r\n .confirmAndTicket(confirmAndTicketOptions)\r\n .subscribe(this.paymentSucceded, this.onErrorTNS);\r\n } else {\r\n this.paymentService\r\n .confirmAndTicket(confirmAndTicketOptions)\r\n .subscribe(this.paymentSucceded, this.onErrorTNS);\r\n }\r\n this.clearLocalStorage();\r\n break;\r\n\r\n case GxConstants.TNS_RESPONSE_STATUSES.TIMEOUT:\r\n this.onErrorTNS(\r\n new ApiError(\r\n \"Request has timed out. Your credit card has not been charged. Please try again.\"\r\n )\r\n );\r\n break;\r\n case GxConstants.TNS_RESPONSE_STATUSES.INVALID_SESSION:\r\n this.onErrorTNS(\r\n new ApiError(\r\n \"Invalid session with payment provider please try again later or contact Greyhound for clarification.\"\r\n )\r\n );\r\n break;\r\n case GxConstants.TNS_RESPONSE_STATUSES.VALIDATION_ERROR:\r\n let err;\r\n if (tnsResponse.fieldsInError.cardNumber === \"invalid\") {\r\n err = \"Your credit card number is invalid.\";\r\n } else if (\r\n tnsResponse.fieldsInError.cardExpiryMonth === \"invalid\"\r\n ) {\r\n err = \"Your expiry month is invalid.\";\r\n } else if (\r\n tnsResponse.fieldsInError.cardExpiryYear === \"invalid\"\r\n ) {\r\n err = \"Your expiry year is invalid.\";\r\n } else if (\r\n tnsResponse.fieldsInError.cardSecurityCode === \"invalid\"\r\n ) {\r\n err = \"Your security code is invalid.\";\r\n } else {\r\n err = \"Invalid credit card details.\";\r\n }\r\n this.onErrorTNS(new ApiError(err));\r\n break;\r\n\r\n default:\r\n this.onErrorTNS(\r\n new ApiError(\r\n `TNS error status '${tnsResponse.status}' is unknown.`\r\n )\r\n );\r\n break;\r\n }\r\n };\r\n\r\n paymentSucceded = () => {\r\n if (\r\n this.paymentContext === GxConstants.PAYMENT_CONTEXT.MANAGE ||\r\n this.productType === ProductTypeUrl.manageBooking\r\n ) {\r\n this.localStorageService.removePromoCode();\r\n window.location.href = `/my-greyhound/booking-management/details?booking=${\r\n this.bookingGuid\r\n }&successMessage=${\"Add-on purchase successful!\"}`;\r\n } else {\r\n this.localStorageService.removePromoCode();\r\n // needs to be a full reload otherwise the booking.com won't be rendered\r\n // tslint:disable-next-line:max-line-length\r\n if (this.productType === ProductTypeUrl.expressBooking) {\r\n window.location.href = `${\r\n this.initialDataService.express.ConfirmationUrl\r\n }?booking=${this.bookingGuid}&type=${\r\n GxConstants.PAYMENT_CONTEXT.CONFIRMATION\r\n }`;\r\n } else {\r\n window.location.href = `${\r\n this.initialDataService.express.ConfirmationUrl\r\n }?booking=${this.bookingGuid}&type=${\r\n GxConstants.PAYMENT_CONTEXT.CONFIRMATION\r\n }`;\r\n }\r\n }\r\n };\r\n\r\n payWithPayPal() {\r\n this.paying = true;\r\n const options = new CreatePaymentOptions(\r\n GxConstants.PAYMENT_METHOD.PAYPAL,\r\n this.paymentContext,\r\n this.bookingGuid\r\n );\r\n this.alertsPayPal = [];\r\n options.Amount = this.totals.TotalCost;\r\n options.TransactionReference = this.transactionNumber;\r\n options.PaymentDescription = \"Greyhound Australia Booking\";\r\n options.CancelUrl = window.location.href;\r\n options.ItemList = _.map(this.totals.PaymentItems, (item: any) => ({\r\n name: item.Description,\r\n quantity: 1,\r\n sku: item.Sku,\r\n price: item.Total\r\n }));\r\n\r\n this.paymentService\r\n .createPayment(options)\r\n .subscribe((createPaymentResult: CreatePaymentResult) => {\r\n const redirectUrl = createPaymentResult.Message;\r\n // redirect to PayPal\r\n window.location.href = redirectUrl;\r\n }, this.onErrorPaypal);\r\n }\r\n\r\n loyaltyPayWithPayPal() {\r\n this.paying = true;\r\n\r\n if (this.loyaltyTotals == null) {\r\n this.updateCartTotal();\r\n setTimeout(() => {\r\n this.loyaltyPayWithPayPal();\r\n }, 500);\r\n return;\r\n }\r\n\r\n const options = new CreatePaymentOptions(\r\n GxConstants.PAYMENT_METHOD.PAYPAL,\r\n this.paymentContext,\r\n this.bookingGuid\r\n );\r\n this.alertsPayPal = [];\r\n options.Amount = this.loyaltyTotals.TotalCost;\r\n options.TransactionReference = this.transactionNumber;\r\n options.PaymentDescription = \"Greyhound Australia Booking\";\r\n options.CancelUrl = window.location.href;\r\n options.ItemList = _.map(\r\n this.loyaltyTotals.PaymentItems,\r\n (item: any) => ({\r\n name: item.Description,\r\n quantity: 1,\r\n sku: item.Sku,\r\n price: item.Total\r\n })\r\n );\r\n\r\n this.paymentService\r\n .createPayment(options)\r\n .subscribe((createPaymentResult: CreatePaymentResult) => {\r\n const redirectUrl = createPaymentResult.Message;\r\n // redirect to PayPal\r\n window.location.href = redirectUrl;\r\n }, this.onErrorPaypal);\r\n }\r\n\r\n onError = (error: ApiError) => {\r\n this.actionUpdaterService.announceError(error);\r\n };\r\n\r\n private updateLoyaltyBalance() {\r\n if(!!this.customerGuid){\r\n this.myGreyhoundService\r\n .getLoyaltyBalance(this.customerGuid)\r\n .subscribe(response => {\r\n this.loyaltyAvailable = response.LoyaltyAvailable;\r\n this.loyaltyPending = response.LoyaltyPending;\r\n this.balanceTime = response.BalanceDate;\r\n this.totalLoyalty = this.loyaltyAvailable + this.loyaltyPending;\r\n this.loadingBalance = false;\r\n\r\n if (this.orderSummary < this.loyaltyAvailable) {\r\n this.maxLoyaltyPayable = this.orderSummary;\r\n } else {\r\n this.maxLoyaltyPayable = this.loyaltyAvailable;\r\n }\r\n\r\n if (\r\n this.greenDollarTotal > 0 &&\r\n this.loyaltyAvailable > this.orderSummary\r\n ) {\r\n console.log(\r\n \"flag a, greenDollarTotal\",\r\n this.greenDollarTotal\r\n );\r\n this.maxLoyaltyPayable -= this.greenDollarTotal;\r\n }\r\n this.updateFromInput();\r\n }, this.onError);\r\n }\r\n }\r\n\r\n private updateCartTotal() {\r\n const options = this.cartTotalService.getExpressCartTotalOptions(\r\n this.booking.travels,\r\n 1,\r\n null,\r\n false,\r\n this.customerGuid\r\n );\r\n this.addons.forEach(addon => {\r\n if (\r\n addon.productCode === \"GRNDOLLAR\" &&\r\n this.removingGreenDollar === true\r\n ) {\r\n } else {\r\n options.CartItems.push(addon);\r\n }\r\n });\r\n\r\n const loyaltyItem = new CartItemOptions();\r\n loyaltyItem.SalePriceUnit = this.loyaltyAmount;\r\n loyaltyItem.Type = \"LOY\";\r\n loyaltyItem.Quantity = 1;\r\n options.CartItems.push(loyaltyItem);\r\n options.BookingGUID = this.bookingGuid;\r\n this.cartTotalService.postCartTotal(\r\n options,\r\n response => {\r\n this.loyaltyTotals = response;\r\n },\r\n this.onError,\r\n null,\r\n null\r\n );\r\n }\r\n private onGenericError() {\r\n this.paying = false;\r\n this.loadingData = false;\r\n }\r\n onErrorTNS = (error: ApiError) => {\r\n this.paying = false;\r\n this.onGenericError();\r\n this.alertsTNS = [error];\r\n };\r\n onErrorPaypal = (error: ApiError) => {\r\n this.paying = false;\r\n this.onGenericError();\r\n this.alertsPayPal = [error];\r\n };\r\n onErrorLoyalty = (error: ApiError) => {\r\n this.paying = false;\r\n this.onGenericError();\r\n this.alertsLoyalty = [error];\r\n };\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/travel-products/product-payment/payment-form/payment-form.component.ts","module.exports = \"<gaweb-steps-indicator id=\\\"head\\\" size=\\\"5\\\" active=\\\"4\\\"></gaweb-steps-indicator>\\r\\n<div class=\\\"row back-link\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <a (click)=\\\"goBack()\\\" class=\\\"back-link\\\">\\r\\n <i class=\\\"fa fa-fw fa-arrow-left\\\"></i> Back\\r\\n </a>\\r\\n </div>\\r\\n</div>\\r\\n<section class=\\\"container\\\">\\r\\n <div class=\\\"row\\\" *ngIf=\\\"loadingData\\\">\\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>Loading travel {{productTypeName}} information...</h4>\\r\\n </div>\\r\\n </div>\\r\\n <gaweb-product-summary *ngIf=\\\"productType !== ProductTypeUrl.travelPasses\\\" [productName]=\\\"productName\\\" [bookings]=\\\"bookings\\\"\\r\\n [loadingBookings]=\\\"loadingData\\\" [productType]=\\\"productType\\\"></gaweb-product-summary>\\r\\n <gaweb-summary *ngIf=\\\"productType === ProductTypeUrl.travelPasses\\\" [displayDescription]=\\\"passDisplayDescription\\\" [subDescriptions]=\\\"subDescriptions\\\"></gaweb-summary>\\r\\n <gaweb-booking-total class=\\\"checkout\\\" (onTotalsUpdating)=\\\"onTotalsUpdating($event)\\\" [loadingBookings]=\\\"loadingData\\\" [bookingGuid]=\\\"parentBookingGuid\\\"\\r\\n [totals]=\\\"totals\\\" [productType]=\\\"productType\\\" [addonMode]=\\\"addonMode\\\" [packageName]=\\\"packageName\\\"></gaweb-booking-total>\\r\\n\\r\\n <gaweb-payment-form (totalsUpdate)=\\\"onTotalsUpdating($event)\\\"\\r\\n [loadingData]=\\\"loadingData\\\"\\r\\n [bookingGuid]=\\\"parentBookingGuid\\\"\\r\\n [productReference]=\\\"productReference\\\"\\r\\n [productType]=\\\"productType\\\"\\r\\n [paymentContext]=\\\"paymentContext\\\"\\r\\n [transactionNumber]=\\\"transactionNumber\\\"\\r\\n [totals]=\\\"totals\\\"></gaweb-payment-form>\\r\\n</section>\\r\\n\\r\\n<!-- @* PAYMENT LIBRARY *@ -->\\r\\n<!-- @* TODO check if it can be async *@ -->\\r\\n<script id=\\\"hpfScript\\\" async src=\\\"https://secure.ap.tnspayments.com/form/v3/hpf.js\\\" type=\\\"text/javascript\\\"></script>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/product-payment/product-payment.component.html\n// module id = ./src/app/travel-products/product-payment/product-payment.component.html\n// module chunks = main","import { Component, OnInit, ViewChild, ChangeDetectorRef } from \"@angular/core\";\r\nimport {\r\n ActivatedRoute,\r\n Router,\r\n Event,\r\n NavigationStart,\r\n Params,\r\n NavigationEnd\r\n} from \"@angular/router\";\r\nimport {\r\n TravelProductService,\r\n TravelPackage,\r\n CreateBookingsOption,\r\n FareTypeChangedEvent,\r\n ProductType\r\n} from \"../../shared/services/travel-product.service\";\r\nimport {\r\n ActionUpdaterService,\r\n ApiError\r\n} from \"../../shared/services/action-updater.service\";\r\nimport { Booking, Totals } from \"../../shared/models/booking.model\";\r\nimport { BookingService } from \"../../shared/services/booking.service\";\r\nimport { ProductTypeUrl } from \"app/shared/models/enums/ProductTypeUrl.enum\";\r\nimport { LocalStorageService } from \"app/shared/services/local-storage.service\";\r\nimport { GxConstants } from \"app/shared/constants/gx.constants\";\r\nimport { GxUtilsService } from \"../../shared/services/gx-utils.service\";\r\nimport { InitialDataService } from \"../../initial-data.service\";\r\nimport { ProductUrl } from '../../shared/models/availability.model';\r\nimport { v } from \"@angular/core/src/render3\";\r\nimport { BookingTotalComponent } from \"../product-passenger-details/booking-total/booking-total.component\";\r\n\r\n@Component({\r\n selector: 'gaweb-product-payment',\r\n templateUrl: './product-payment.component.html',\r\n styles: []\r\n})\r\nexport class ProductPaymentComponent implements OnInit {\r\n @ViewChild(BookingTotalComponent) bookingTotalComponent: BookingTotalComponent;\r\n ProductTypeUrl = ProductTypeUrl;\r\n parentBookingGuid: string;\r\n bookings: Array<Booking>;\r\n productReference: string;\r\n productType: ProductTypeUrl;\r\n productUrl: ProductUrl;\r\n productTypeName: string;\r\n productName: string;\r\n loadingData: boolean;\r\n transactionNumber: string;\r\n paymentContext = GxConstants.PAYMENT_CONTEXT.CONFIRMATION;\r\n totals: Totals;\r\n passDisplayDescription: string[];\r\n subDescriptions: string[];\r\n addonMode: boolean = false;\r\n packageName: string;\r\n constructor(\r\n public travelPackageService: TravelProductService,\r\n private router: Router,\r\n private bookingService: BookingService,\r\n private activatedRoute: ActivatedRoute,\r\n private actionUpdaterService: ActionUpdaterService,\r\n private localStorageService: LocalStorageService,\r\n private initialDataService: InitialDataService,\r\n private gxUtils: GxUtilsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.activatedRoute.params.subscribe((params: Params) => {\r\n this.parentBookingGuid = params['bookingGuid'];\r\n this.productReference = params['product-reference'];\r\n\r\n this.productUrl = new ProductUrl(\r\n this.router.url,\r\n this.initialDataService\r\n );\r\n const productTypeStr = params['product-type'];\r\n this.productType = this.productUrl.ProductTypeUrl;\r\n this.productTypeName = this.productUrl.ProductName;\r\n if (\r\n this.productType === ProductTypeUrl.travelPasses ||\r\n this.productType === ProductTypeUrl.expressBooking\r\n ) {\r\n this.bookings = this.travelPackageService.bookings = [\r\n this.localStorageService.getOnlineBooking()\r\n ];\r\n this.parentBookingGuid = this.bookings[0].BookingGuid;\r\n this.bookingService\r\n .getBookings(this.parentBookingGuid)\r\n .subscribe(bookings => {\r\n this.bookings = bookings;\r\n this.localStorageService.saveOnlineBooking(this.bookings[0]);\r\n if (\r\n !this.bookings[0] &&\r\n this.productType === ProductTypeUrl.travelPasses\r\n ) {\r\n window.location.href = this.initialDataService.travelPassesParentFolderUrl;\r\n return;\r\n } else if (\r\n !this.bookings[0] &&\r\n this.productType === ProductTypeUrl.expressBooking\r\n ) {\r\n window.location.href = this.initialDataService.makeABookingUrl;\r\n return;\r\n }\r\n\r\n this.totals = this.localStorageService.getCart();\r\n this.parentBookingGuid = this.bookings[0].BookingGuid;\r\n if (this.productType === ProductTypeUrl.travelPasses) {\r\n if (this.bookings[0].Pass == null) {\r\n // tslint:disable-next-line:max-line-length\r\n this.passDisplayDescription = [\r\n this.bookings[0].Package.Name\r\n ];\r\n this.productName = this.passDisplayDescription[0];\r\n this.packageName = this.productName;\r\n this.subDescriptions = [\r\n this.bookings[0].Package.FareTypes[0].Farebasis\r\n .DisplayDescription\r\n ];\r\n } else {\r\n this.passDisplayDescription = [\r\n this.bookings[0].Pass.Name\r\n ];\r\n this.productName = this.passDisplayDescription[0];\r\n this.packageName = this.productName;\r\n this.subDescriptions = [\r\n this.bookings[0].Pass.FareTypes.find(f => f.Farebasis.FarebasisCode === this.bookings[0].FareBasis[0].FarebasisCode).Farebasis.DisplayDescription\r\n ];\r\n }\r\n }\r\n this.onPromoCodeChange2();\r\n });\r\n } else if (this.productType === ProductTypeUrl.manageBooking) {\r\n this.bookings = this.travelPackageService.bookings = [\r\n this.localStorageService.getOnlineBooking()\r\n ];\r\n this.totals = this.localStorageService.getCart();\r\n\r\n this.parentBookingGuid = this.bookings[0].BookingGuid;\r\n if (this.bookings[0].Pass) {\r\n // tslint:disable-next-line:max-line-length\r\n this.passDisplayDescription = [this.bookings[0].Pass.Name];\r\n this.productName = this.passDisplayDescription[0];\r\n this.packageName = this.totals.PaymentItems[0].Items[0].Name;\r\n if(this.bookings[0].Pass.FareTypes.length > 0){\r\n this.subDescriptions = [\r\n this.bookings[0].Pass.FareTypes[0].Farebasis\r\n .DisplayDescription\r\n ];\r\n }\r\n }\r\n } else {\r\n if (!this.travelPackageService.currentProduct) {\r\n this.loadingData = true;\r\n this.productReference = this.activatedRoute.snapshot.params[\r\n 'product-reference'\r\n ];\r\n let getProductfunc;\r\n switch (this.productType) {\r\n case ProductTypeUrl.accommodation:\r\n case ProductTypeUrl.experience:\r\n getProductfunc = this.travelPackageService\r\n .getTourExperience;\r\n break;\r\n case ProductTypeUrl.package:\r\n getProductfunc = this.travelPackageService\r\n .getPackage;\r\n break;\r\n default:\r\n }\r\n getProductfunc\r\n .call(this.travelPackageService, this.productReference)\r\n .subscribe(travelProduct => {\r\n this.loadingData = false;\r\n this.productName = travelProduct.title;\r\n this.packageName = this.productName;\r\n this.travelPackageService.currentProduct = travelProduct;\r\n this.onPromoCodeChange2();\r\n }, this.actionUpdaterService.onError);\r\n } else {\r\n this.productName = this.travelPackageService.currentProduct.title;\r\n this.packageName = this.productName;\r\n }\r\n }\r\n\r\n if (!this.travelPackageService.bookings) {\r\n this.loadingData = true;\r\n this.bookingService\r\n .getBookings(this.parentBookingGuid)\r\n .subscribe((bookings: Array<Booking>) => {\r\n this.checkIfBookingsTicketed(bookings);\r\n this.allocateVisaPromos(bookings);\r\n this.loadingData = false;\r\n this.updateBookings(bookings);\r\n this.setLocalFieldsOffBooking();\r\n this.onPromoCodeChange2();\r\n }, this.actionUpdaterService.onError);\r\n } else {\r\n this.bookings = this.travelPackageService.bookings;\r\n this.checkIfBookingsTicketed(\r\n this.travelPackageService.bookings\r\n );\r\n this.allocateVisaPromos(this.bookings);\r\n this.setLocalFieldsOffBooking();\r\n this.onPromoCodeChange2();\r\n }\r\n });\r\n }\r\n\r\n private getOriginalAmount() {\r\n let originalAmount = 0;\r\n switch (this.productType) {\r\n case ProductTypeUrl.accommodation:\r\n case ProductTypeUrl.experience:\r\n this.bookings[0].Tours.forEach((t) => {\r\n originalAmount = originalAmount + t.SelectedCurrencyAmount;\r\n });\r\n break;\r\n case ProductTypeUrl.package:\r\n default:\r\n this.bookings.forEach((b) => {\r\n originalAmount = originalAmount + b.Package.FareTypes[0].SalePrice;\r\n });\r\n break;\r\n }\r\n\r\n return (Math.round(originalAmount * 100) / 100);\r\n }\r\n\r\n onPromoCodeChange2() {\r\n var promo = this.localStorageService.hasPromoApplied();\r\n if(!!promo && promo.length > 0){\r\n let originalAmount = this.getOriginalAmount();\r\n this.bookingTotalComponent.setPromo(!!promo, promo, originalAmount, true);\r\n }\r\n }\r\n\r\n allocateVisaPromos(bookings: Array<Booking>) {\r\n if(bookings){\r\n bookings.forEach((b) => {\r\n if(b.Passengers){\r\n if(!b.Passengers[0].VisaPromoCode || b.Passengers[0].VisaPromoCode.length == 0){\r\n this.travelPackageService.allocateVisaNumber(b.BookingNumber, b.Passengers[0].VisaNumber).subscribe((res) => b.Passengers[0].VisaPromoCode = res);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n checkIfBookingsTicketed(bookings: Array<Booking>) {\r\n if (\r\n bookings[0] &&\r\n bookings[0].TicketUrl &&\r\n this.productType !== ProductTypeUrl.manageBooking\r\n ) {\r\n window.location.href = '/';\r\n throw new Error('Booking Already Ticketed');\r\n }\r\n }\r\n\r\n setLocalFieldsOffBooking() {\r\n this.transactionNumber = this.bookings[0].TransactionNumber;\r\n }\r\n\r\n onTotalsUpdating(totals: Totals) {\r\n this.totals = totals;\r\n }\r\n\r\n updateBookings(bookings: Array<Booking>) {\r\n this.bookings = bookings;\r\n this.travelPackageService.bookings = bookings;\r\n }\r\n\r\n goBack() {\r\n // window.history.back();\r\n if (\r\n this.productType === ProductTypeUrl.travelPasses ||\r\n this.productType === ProductTypeUrl.expressBooking ||\r\n this.productType === ProductTypeUrl.manageBooking\r\n ) {\r\n window.history.back();\r\n } else {\r\n let foundTravel = false;\r\n this.bookings.forEach((booking: Booking) => {\r\n if (booking.Sectors.length > 0) {\r\n foundTravel = true;\r\n }\r\n });\r\n\r\n const productRef = window.location.pathname.split(\"/\")[1];\r\n const categoryReference = this.activatedRoute.snapshot.params[\r\n 'category-reference'\r\n ];\r\n const productReference = this.activatedRoute.snapshot.params[\r\n 'product-reference'\r\n ];\r\n\r\n this.router.navigate([`/${productRef}/${categoryReference}/${productReference}/book-now/${this.parentBookingGuid}`]);\r\n\r\n\r\n // if (foundTravel) {\r\n // history.go(-2);// this.router.navigate([`${this.productUrl.ProductPaymentUrl}/${this.productReference}/seat-confirmation/${this.parentBookingGuid}`]);\r\n // } else {\r\n // history.go(-2);\r\n // //this.router.navigate([`${this.productUrl.ProductPaymentUrl}/${this.productReference}/book-now/${this.parentBookingGuid}`]);\r\n // }\r\n }\r\n}\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/travel-products/product-payment/product-payment.component.ts","module.exports = \"<gaweb-steps-indicator id=\\\"head\\\" size=\\\"5\\\" active=\\\"3\\\"></gaweb-steps-indicator>\\r\\n<div class=\\\"row back-link container\\\">\\r\\n <div class=\\\"col-xs-12 back-link\\\" (click)=\\\"back()\\\">\\r\\n <i class=\\\"fa fa-fw fa-arrow-left\\\"></i> Back\\r\\n </div>\\r\\n</div>\\r\\n<h3 *ngIf=\\\"(bookings[0].Passengers[0].MaleCount + bookings[0].Passengers[0].FemaleCount) == 1 && (bookings.length) == 1 && bookings[0].Sectors.length == 1\\\"\\r\\n style=\\\"text-align: center;\\\" id=\\\"title\\\">\\r\\n {{('SeatAllocationTitle' | translate) | async }}\\r\\n</h3>\\r\\n<h3 *ngIf=\\\"(bookings[0].Passengers[0].MaleCount + bookings[0].Passengers[0].FemaleCount) > 1 || (bookings.length) > 1 || bookings[0].Sectors.length > 1\\\"\\r\\n style=\\\"text-align: center;\\\" id=\\\"title\\\">\\r\\n {{('SeatAllocationTitlePlural' | translate) | async }}\\r\\n</h3>\\r\\n<gaweb-error-summary class=\\\"container\\\" style=\\\"margin-left: auto;margin-right: auto;max-width: 842px;display: block;\\\"></gaweb-error-summary>\\r\\n<div class=\\\" container \\\">\\r\\n <div class=\\\"row \\\">\\r\\n <div style=\\\"max-width:800px; margin-left: auto; margin-right: auto; border: #223250 solid 1px; \\\">\\r\\n <div *ngFor=\\\"let booking of bookings; let bookingIndex=index \\\">\\r\\n <div *ngIf=\\\"!(bookingIndex> 0 && productType == 1)\\\">\\r\\n <div *ngFor=\\\"let sector of booking.Sectors; let sectorIndex = index\\\">\\r\\n <div *ngIf=\\\"bookingIndex == 0 && productType == 1; else regSeatAllocation\\\">\\r\\n <gaweb-seat-allocations readOnly=\\\"false\\\" index=\\\"{{sector.SectorNumber}}\\\" [bookingNumber]=\\\"booking.BookingNumber\\\" service=\\\"{{sector.ServiceCompany + sector.ServiceNumber}}\\\"\\r\\n serviceDate=\\\"{{sector.ServiceDepartureDate.split(' ')[0].split('/')[2]}}-{{sector.ServiceDepartureDate.split(' ')[0].split('/')[1]}}-{{sector.ServiceDepartureDate.split(' ')[0].split('/')[0]}}\\\"\\r\\n passengerDepartureDate=\\\"{{sector.PassengerBoardingDate}}\\\" startStop=\\\"{{sector.OriginStopCode}}\\\"\\r\\n [travelGuid]=\\\"travelGuid\\\"\\r\\n [passengerTotal]=\\\"(bookings.length)\\\" endStop=\\\"{{sector.DestinationStopCode}}\\\" [bookingGuid]=\\\"booking.BookingGuid\\\"\\r\\n [sectorGuid]=\\\"sector.SectorGuid\\\" collapsable=\\\"{{ booking.Sectors.length > 1}}\\\"></gaweb-seat-allocations>\\r\\n </div>\\r\\n <ng-template #regSeatAllocation>\\r\\n <gaweb-seat-allocations readOnly=\\\"false\\\" index=\\\"{{sector.SectorNumber}}\\\" [bookingNumber]=\\\"booking.BookingNumber\\\" service=\\\"{{sector.ServiceCompany + sector.ServiceNumber}}\\\"\\r\\n serviceDate=\\\"{{sector.ServiceDepartureDate.split(' ')[0].split('/')[2]}}-{{sector.ServiceDepartureDate.split(' ')[0].split('/')[1]}}-{{sector.ServiceDepartureDate.split(' ')[0].split('/')[0]}}\\\"\\r\\n passengerDepartureDate=\\\"{{sector.PassengerBoardingDate}}\\\" startStop=\\\"{{sector.OriginStopCode}}\\\" \\r\\n [travelGuid]=\\\"travelGuid\\\"\\r\\n [passengerTotal]=\\\"(booking.Passengers[0].MaleCount + booking.Passengers[0].FemaleCount)\\\" endStop=\\\"{{sector.DestinationStopCode}}\\\"\\r\\n [bookingGuid]=\\\"booking.BookingGuid\\\" [sectorGuid]=\\\"sector.SectorGuid\\\" collapsable=\\\"{{ booking.Sectors.length > 1}}\\\"></gaweb-seat-allocations>\\r\\n </ng-template>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 seat-allocation-continue\\\">\\r\\n\\r\\n <div *ngIf=\\\"(bookings[0].Passengers[0].MaleCount + bookings[0].Passengers[0].FemaleCount) == 1 && (bookings.length) == 1 && bookings[0].Sectors.length == 1\\\">\\r\\n {{('SeatConfirmationMessage' | translate) | async }}</div>\\r\\n <div *ngIf=\\\"(bookings[0].Passengers[0].MaleCount + bookings[0].Passengers[0].FemaleCount) > 1 || (bookings.length) > 1 || bookings[0].Sectors.length > 1\\\">\\r\\n {{('SeatConfirmationMessagePlural' | translate) | async }}</div>\\r\\n <button (click)=\\\"continueToPayment()\\\" class=\\\"btn btn-cta\\\">\\r\\n <span>{{('SeatAllocationButtonText' | translate) | async }}</span>\\r\\n </button>\\r\\n </div>\\r\\n <div class=\\\"col-lg-8 col-lg-offset-2 col-xs-offset-0 col-xs-12 seat-allocation-p\\\" style=\\\" display: block;\\\">\\r\\n <p>{{('HowSeatAllocationWorksDesc2' | translate) | async }}</p>\\r\\n <p>{{('HowSeatAllocationWorksDesc3' | translate) | async }}</p>\\r\\n </div>\\r\\n <div class=\\\"col-xs-12 seat-allocation-info\\\" style=\\\" display: block; \\\">\\r\\n <gaweb-info title=\\\"{{('HowSeatAllocationWorks' | translate) | async }}\\\">\\r\\n <div>\\r\\n <p>\\r\\n {{('HowSeatAllocationWorksDesc' | translate) | async }}\\r\\n </p>\\r\\n <p>\\r\\n {{('HowSeatAllocationWorksDesc4' | translate) | async }}\\r\\n </p>\\r\\n </div>\\r\\n </gaweb-info>\\r\\n </div>\\r\\n <div bsModal #seatWarning=\\\"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-body modal-white modal-centered\\\" style=\\\"background: #ffffff;\\\">\\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"col-xs-12\\\">\\r\\n <p class=\\\"center-text\\\">{{('SeatAllocationPopupText' | translate) | async }}</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-cta-default btn-block \\\" (click)=\\\"cancelModal()\\\">Cancel</button>\\r\\n </div>\\r\\n <div class=\\\"col-xs-6\\\">\\r\\n <button class=\\\"btn btn-cta btn-block \\\" (click)=\\\"okModal()\\\">OK</button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<gaweb-toast style=\\\"width: 100vw; position: absolute; left: 0;\\\"></gaweb-toast>\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/app/travel-products/seat-confirmation/seat-confirmation.component.html\n// module id = ./src/app/travel-products/seat-confirmation/seat-confirmation.component.html\n// module chunks = main","import { Component, OnInit, ViewChildren, QueryList, ViewChild } from \"@angular/core\";\r\nimport { Booking } from \"../../shared/models/booking.model\";\r\nimport {\r\n ActionUpdaterService,\r\n ApiError\r\n} from \"../../shared/services/action-updater.service\";\r\nimport { BookingService } from \"../../shared/services/booking.service\";\r\nimport { ActivatedRoute, Params, Router } from \"@angular/router\";\r\nimport * as $ from \"jquery\";\r\nimport { GxConstants } from \"app/shared/constants/gx.constants\";\r\nimport { ModalDirective, BsModalRef } from 'ngx-bootstrap/modal';\r\nimport { InitialDataService } from \"../../initial-data.service\";\r\nimport { LocalStorageService } from \"app/shared/services/local-storage.service\";\r\nimport { ProductUrl } from \"app/shared/models/availability.model\";\r\nimport { ProductTypeUrl } from \"app/shared/models/enums/ProductTypeUrl.enum\";\r\nimport { TravelProductService } from \"app/shared/services/travel-product.service\";\r\nimport { MyGreyhoundService } from \"../../my-greyhound/my-greyhound.service\";\r\nimport { SeatAllocationsComponent } from \"../../shared/components/seat-allocations/seat-allocations.component\";\r\nimport { ConfirmDialogComponent } from \"app/shared/dialogs/confirm-dialog/confirm-dialog.component\";\r\n\r\n@Component({\r\n selector: \"gaweb-seat-confirmation\",\r\n templateUrl: \"seat-confirmation.component.html\"\r\n})\r\nexport class SeatConfirmationComponent implements OnInit {\r\n @ViewChildren(SeatAllocationsComponent) seatAllocationComponents: QueryList<\r\n SeatAllocationsComponent\r\n >; \r\n @ViewChild('seatWarning') public seatWarning: ModalDirective;\r\n\r\n loading: boolean;\r\n booking: Booking;\r\n bookings: Array<Booking>;\r\n travelGuid: string;\r\n bookingConfirmed: boolean;\r\n errored: boolean;\r\n errorMessage: boolean;\r\n navigatingToBooking: boolean[];\r\n navigatingToAccount: boolean;\r\n loadingData: boolean;\r\n bookingGuid: string;\r\n isLoggedIn: boolean;\r\n parentBookingGuid: any;\r\n productReference: any;\r\n productUrl: any;\r\n productType: any;\r\n productTypeName: any;\r\n nextUrl: string;\r\n productName: any;\r\n totalFreeLoyaltyTrips = 0;\r\n editModeActive = false;\r\n\r\n constructor(\r\n public travelPackageService: TravelProductService,\r\n private readonly initialDataService: InitialDataService,\r\n private router: Router,\r\n private readonly bookingsService: BookingService,\r\n private readonly localStorageService: LocalStorageService,\r\n private readonly activatedRoute: ActivatedRoute,\r\n private readonly actionUpdaterService: ActionUpdaterService,\r\n private readonly myGreyhoundService: MyGreyhoundService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.params.subscribe((params: Params) => {\r\n this.parentBookingGuid = params[\"bookingGuid\"];\r\n this.productReference = params[\"product-reference\"];\r\n this.productUrl = new ProductUrl(\r\n this.router.url,\r\n this.initialDataService\r\n );\r\n const productTypeStr = params[\"product-type\"];\r\n this.productType = this.productUrl.ProductTypeUrl;\r\n this.productTypeName = this.productUrl.ProductName;\r\n });\r\n\r\n try {\r\n this.travelGuid = this.localStorageService.getOfflineBooking().travels[0].TravelGUID;\r\n } catch (ex) {\r\n this.travelGuid = null;\r\n }\r\n this.nextUrl = this.initialDataService.expressPayment;\r\n if (\r\n this.productType === ProductTypeUrl.travelPasses ||\r\n this.productType === ProductTypeUrl.expressBooking\r\n ) {\r\n this.bookings = this.travelPackageService.bookings = [\r\n this.localStorageService.getOnlineBooking()\r\n ];\r\n if (\r\n !this.bookings[0] &&\r\n this.productType === ProductTypeUrl.travelPasses\r\n ) {\r\n window.location.href = this.initialDataService.travelPassesParentFolderUrl;\r\n return;\r\n } else if (\r\n !this.bookings[0] &&\r\n this.productType === ProductTypeUrl.expressBooking\r\n ) {\r\n window.location.href = this.initialDataService.makeABookingUrl;\r\n return;\r\n }\r\n this.nextUrl = this.initialDataService.expressPayment;\r\n } else if (this.productType === ProductTypeUrl.manageBooking) {\r\n this.bookings = this.travelPackageService.bookings = [\r\n this.localStorageService.getOnlineBooking()\r\n ];\r\n this.parentBookingGuid = this.bookings[0].BookingGuid;\r\n this.nextUrl = this.initialDataService.expressPayment;\r\n } else {\r\n if (!this.travelPackageService.currentProduct) {\r\n this.loadingData = true;\r\n this.productReference = this.activatedRoute.snapshot.params[\r\n \"product-reference\"\r\n ];\r\n let getProductfunc;\r\n switch (this.productType) {\r\n case ProductTypeUrl.accommodation:\r\n break;\r\n case ProductTypeUrl.experience:\r\n getProductfunc = this.travelPackageService\r\n .getTourExperience;\r\n break;\r\n case ProductTypeUrl.package:\r\n getProductfunc = this.travelPackageService.getPackage;\r\n break;\r\n default:\r\n }\r\n getProductfunc\r\n .call(this.travelPackageService, this.productReference)\r\n .subscribe(travelProduct => {\r\n this.loadingData = false;\r\n this.productName = travelProduct.title;\r\n this.travelPackageService.currentProduct = travelProduct;\r\n });\r\n } else {\r\n this.productName = this.travelPackageService.currentProduct.title;\r\n }\r\n\r\n var productRef = window.location.pathname.split(\"/\")[1];\r\n const categoryReference = this.activatedRoute.snapshot.params[\r\n \"category-reference\"\r\n ];\r\n const productReference = this.activatedRoute.snapshot.params[\r\n \"product-reference\"\r\n ];\r\n\r\n this.nextUrl = `/${productRef}/${categoryReference}/${productReference}/book-now/${this.parentBookingGuid}/pay-now`;\r\n }\r\n\r\n if (!this.travelPackageService.bookings) {\r\n this.loadingData = true;\r\n this.bookingsService\r\n .getBookings(this.parentBookingGuid)\r\n .subscribe((bookings: Array<Booking>) => {\r\n this.loadingData = false;\r\n }, this.actionUpdaterService.onError);\r\n } else {\r\n this.bookings = this.travelPackageService.bookings;\r\n }\r\n\r\n // Checking for free loyalty trips\r\n this.bookings.forEach(booking => {\r\n if (booking.CustomerGuid != null) {\r\n this.myGreyhoundService\r\n .getTripHistory(booking.CustomerGuid)\r\n .subscribe(data => {\r\n data.forEach(tripCollection => {\r\n if (\r\n tripCollection.Description === \"Active Bookings\"\r\n ) {\r\n tripCollection.CustomerTrips.forEach(trip => {\r\n if (\r\n trip.BookingNumber ===\r\n booking.BookingNumber\r\n ) {\r\n this.totalFreeLoyaltyTrips++;\r\n if (\r\n this.totalFreeLoyaltyTrips ===\r\n this.bookings.length\r\n ) {\r\n this.nextUrl = `${this.initialDataService.confirmationUrl}?booking=${this.bookings[0].BookingGuid}`;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n setTimeout(() => {\r\n this.seatAllocationComponents.forEach(seatAllocationComponent => {\r\n seatAllocationComponent.editModeActive.subscribe(val => {\r\n this.editModeActive = val;\r\n }); \r\n });\r\n }, 500);\r\n }\r\n\r\n back() {\r\n if (\r\n this.productType === ProductTypeUrl.travelPasses ||\r\n this.productType === ProductTypeUrl.expressBooking\r\n ) {\r\n window.history.back();\r\n } else {\r\n const productRef = window.location.pathname.split(\"/\")[1];\r\n const categoryReference = this.activatedRoute.snapshot.params[\r\n 'category-reference'\r\n ];\r\n const productReference = this.activatedRoute.snapshot.params[\r\n 'product-reference'\r\n ];\r\n\r\n this.router.navigate([`/${productRef}/${categoryReference}/${productReference}/book-now/`]);\r\n }\r\n }\r\n public continueToPayment() {\r\n\r\n let completedSeatAllocations = 0;\r\n this.seatAllocationComponents.forEach(seatAllocationComponent => {\r\n if(seatAllocationComponent.allSeatsSelected === true) {\r\n completedSeatAllocations++;\r\n }\r\n });\r\n let total = this.seatAllocationComponents.first.passengerTotal;\r\n let current = this.seatAllocationComponents.first.currentSeats.length;\r\n let seatChanges = this.seatAllocationComponents.first.seatChanges.length;\r\n\r\n if (total === current && seatChanges === 0 && completedSeatAllocations >= this.seatAllocationComponents.length && this.seatAllocationComponents.some(seatAllocationComponent => seatAllocationComponent.isUpdating()) == false) {\r\n window.location.href = this.nextUrl;\r\n } else {\r\n this.seatWarning.show();\r\n }\r\n }\r\n\r\n cancelModal() {\r\n this.seatWarning.hide();\r\n }\r\n\r\n okModal() {\r\n window.location.href = this.nextUrl;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/travel-products/seat-confirmation/seat-confirmation.component.ts","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/environments/environment.ts","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule).catch(error => {\r\n console.error('Error while loading AppModule in main.ts:', error);\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.ts"],"sourceRoot":"webpack:///"}