@sabstravtech/obtservices 0.2.2605201100 → 0.2.2605260950

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/angular/components/basket-panel.d.ts +1 -1
  2. package/angular/fetchers.d.ts +0 -2
  3. package/angular/lib/vendor/classes/helpers.d.ts +2 -2
  4. package/angular/lib/vendor/fetchers/get-flight-exchange-details.fetcher.d.ts +1 -1
  5. package/angular/lib/vendor/fetchers/get-flight-search-exchange.fetcher.d.ts +1 -1
  6. package/angular/lib/vendor/fetchers/get-latest-versions.fetcher.d.ts +1 -1
  7. package/angular/lib/vendor/fetchers/get-rail-search-exchange.fetcher.d.ts +1 -1
  8. package/angular/lib/vendor/interceptors/http-cancel-interceptor.d.ts +3 -3
  9. package/angular/lib/vendor/services/chatbot.service.d.ts +40 -0
  10. package/angular/lib/vendor/services/enterprise-basket.service.d.ts +12 -15
  11. package/angular/lib/vendor/services/hotel-avallibility.service.d.ts +2 -2
  12. package/angular/lib/vendor/services/http-call.service.d.ts +3 -3
  13. package/angular/lib/vendor/services/http-cancel.service.d.ts +1 -1
  14. package/angular/lib/vendor/services/logon.service.d.ts +5 -5
  15. package/angular/lib/vendor/services/messages.service.d.ts +1 -1
  16. package/angular/lib/vendor/services/my-bookings.service.d.ts +2 -2
  17. package/angular/lib/vendor/services/prompt-update.service.d.ts +1 -1
  18. package/angular/lib/vendor/services/result-aware.service.d.ts +39 -0
  19. package/angular/lib/vendor/services/search-document-validation.service.d.ts +1 -1
  20. package/angular/lib/vendor/services/search-payment-validation.service.d.ts +1 -1
  21. package/angular/lib/vendor/services/search.service.d.ts +15 -16
  22. package/angular/lib/vendor/services/user.service.d.ts +7 -7
  23. package/angular/lib/vendor/services/webtoken.service.d.ts +1 -1
  24. package/angular/lib/vendor/testers/postcode-validate.tester.d.ts +1 -1
  25. package/angular/lib/vendor/types/graphql.angular.types.d.ts +0 -120
  26. package/angular/lib/vendor/updaters/accept-new-price.updater.d.ts +1 -1
  27. package/angular/lib/vendor/updaters/add-basket-item-markup.updater.d.ts +1 -1
  28. package/angular/lib/vendor/updaters/amend-booking.updater.d.ts +1 -1
  29. package/angular/lib/vendor/updaters/edit-user-address.updater.d.ts +1 -1
  30. package/angular/lib/vendor/updaters/save-user-address.updater.d.ts +1 -1
  31. package/angular/lib/vendor/updaters/set-empty-user-mi-default-value.updater.d.ts +1 -1
  32. package/angular/lib/vendor/updaters/set-mi-values.updater.d.ts +1 -1
  33. package/angular/lib/vendor/updaters/set-user-mi-default-value.updater.d.ts +1 -1
  34. package/angular/services.d.ts +2 -0
  35. package/base/interfaces.d.ts +2 -0
  36. package/base/lib/constants/ticket-codes.d.ts +1 -1
  37. package/base/lib/vendor/classes/base-enterprise.d.ts +1 -1
  38. package/base/lib/vendor/classes/base-network-call.d.ts +1 -1
  39. package/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +1 -1
  40. package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +3 -3
  41. package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +3 -3
  42. package/base/lib/vendor/classes/draft-basket-info-mi-details.impl.d.ts +1 -1
  43. package/base/lib/vendor/classes/draft-management-info-and-valid.d.ts +2 -2
  44. package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +5 -5
  45. package/base/lib/vendor/classes/ferry-enterprise-search.d.ts +4 -2
  46. package/base/lib/vendor/classes/flight-enterprise-search.d.ts +5 -5
  47. package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +4 -4
  48. package/base/lib/vendor/classes/irl-enterprise-search.d.ts +2 -2
  49. package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +4 -4
  50. package/base/lib/vendor/classes/management-info-and-valid.d.ts +1 -1
  51. package/base/lib/vendor/classes/modal-types.enum.d.ts +0 -1
  52. package/base/lib/vendor/classes/parking-enterprise-search.d.ts +2 -2
  53. package/base/lib/vendor/classes/rail-enterprise-search.d.ts +7 -5
  54. package/base/lib/vendor/classes/season-ticket-enterprise-search.d.ts +2 -2
  55. package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +1 -1
  56. package/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +3 -3
  57. package/base/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +2 -2
  58. package/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +3 -3
  59. package/base/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +2 -2
  60. package/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +1 -1
  61. package/base/lib/vendor/interceptors/http-cancel-interceptor.d.ts +2 -2
  62. package/base/lib/vendor/interfaces/Iambulance-enterprise-search.d.ts +1 -1
  63. package/base/lib/vendor/interfaces/Iapartment-enterprise-search.d.ts +1 -1
  64. package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +2 -2
  65. package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +5 -6
  66. package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +2 -2
  67. package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +2 -2
  68. package/base/lib/vendor/interfaces/Iferry-enterprise-search.d.ts +1 -1
  69. package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +4 -4
  70. package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +1 -1
  71. package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +2 -2
  72. package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +1 -1
  73. package/base/lib/vendor/interfaces/Imeeting-room-enterprise-search.d.ts +1 -1
  74. package/base/lib/vendor/interfaces/Imybookings.service.d.ts +2 -1
  75. package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +1 -1
  76. package/base/lib/vendor/interfaces/Irail-station-information.interface.d.ts +1 -1
  77. package/base/lib/vendor/interfaces/Isearch.service.d.ts +5 -4
  78. package/base/lib/vendor/interfaces/Iseason-tickets-enterprise-search.d.ts +1 -1
  79. package/base/lib/vendor/interfaces/Iuser.service.d.ts +4 -4
  80. package/base/lib/vendor/interfaces/booking-baskes-duplicate-check.interface.d.ts +1 -1
  81. package/base/lib/vendor/interfaces/cab-hire-search-arg.interface.d.ts +2 -2
  82. package/base/lib/vendor/interfaces/car-hire-classes.interface.d.ts +1 -1
  83. package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +1 -1
  84. package/base/lib/vendor/interfaces/chatbot.types.d.ts +116 -0
  85. package/base/lib/vendor/interfaces/cheapest-price-object.d.ts +1 -1
  86. package/base/lib/vendor/interfaces/eurostar-search-arg.interface.d.ts +2 -2
  87. package/base/lib/vendor/interfaces/flight-multi-destination.interface.d.ts +3 -3
  88. package/base/lib/vendor/interfaces/hotel-recent-search-args.interface.d.ts +2 -2
  89. package/base/lib/vendor/interfaces/hotel-results-configuration.interface.d.ts +1 -1
  90. package/base/lib/vendor/interfaces/irl-search-arg.interface.d.ts +1 -1
  91. package/base/lib/vendor/operations/simple-fetchable-list-approval.d.ts +1 -1
  92. package/base/lib/vendor/operations/simple-fetchable-list-basket.d.ts +1 -14
  93. package/base/lib/vendor/operations/simple-fetchable-list-flight.d.ts +1 -1
  94. package/base/lib/vendor/operations/simple-fetchable-list-location.d.ts +1 -1
  95. package/base/lib/vendor/operations/simple-fetchable-list-misc.d.ts +1 -14
  96. package/base/lib/vendor/operations/simple-fetchable-list-quotes.d.ts +1 -1
  97. package/base/lib/vendor/operations/simple-fetchable-list-search.d.ts +1 -1
  98. package/base/lib/vendor/operations/simple-fetchable-list-user.d.ts +1 -1
  99. package/base/lib/vendor/operations/simple-fetchable-object.d.ts +1 -14
  100. package/base/lib/vendor/operations/simple-fetchers.d.ts +0 -1
  101. package/base/lib/vendor/operations/simple-updaters-basket-approval.d.ts +1 -1
  102. package/base/lib/vendor/operations/simple-updaters-basket-item.d.ts +1 -14
  103. package/base/lib/vendor/operations/simple-updaters-basket.d.ts +1 -1
  104. package/base/lib/vendor/operations/simple-updaters-booking.d.ts +1 -1
  105. package/base/lib/vendor/operations/simple-updaters-user-preference.d.ts +1 -1
  106. package/base/lib/vendor/operations/simple-updaters-user.d.ts +1 -1
  107. package/base/lib/vendor/services/chatbot.service.d.ts +103 -0
  108. package/base/lib/vendor/services/enterprise-basket.service.d.ts +18 -17
  109. package/base/lib/vendor/services/http-cancel.service.d.ts +1 -1
  110. package/base/lib/vendor/services/logon.service.d.ts +3 -3
  111. package/base/lib/vendor/services/my-bookings.service.d.ts +6 -3
  112. package/base/lib/vendor/services/requires-override-reason.service.d.ts +4 -4
  113. package/base/lib/vendor/services/requires-reason.service.d.ts +2 -2
  114. package/base/lib/vendor/services/search.service.d.ts +9 -10
  115. package/base/lib/vendor/services/user.service.d.ts +6 -2
  116. package/base/lib/vendor/testers/base.tester.d.ts +1 -1
  117. package/base/lib/vendor/testers/postcode-validate.tester.d.ts +2 -2
  118. package/base/lib/vendor/types/basket-types.d.ts +2 -2
  119. package/base/lib/vendor/types/graphql.types.d.ts +0 -92
  120. package/base/lib/vendor/types/types.d.ts +36 -37
  121. package/base/services.d.ts +1 -0
  122. package/fesm2022/sabstravtech-obtservices-angular.mjs +656 -348
  123. package/fesm2022/sabstravtech-obtservices-angular.mjs.map +1 -1
  124. package/fesm2022/sabstravtech-obtservices-base.mjs +6284 -6318
  125. package/fesm2022/sabstravtech-obtservices-base.mjs.map +1 -1
  126. package/package.json +3 -2
  127. package/angular/lib/vendor/fetchers/download-eticket.fetcher.d.ts +0 -10
  128. package/angular/lib/vendor/fetchers/get-jyrney-url.fetcher.d.ts +0 -10
  129. package/angular/lib/vendor/fetchers/get-process-terms-price.fetcher.d.ts +0 -10
  130. package/angular/lib/vendor/updaters/accept-process-terms.updater.d.ts +0 -9
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, Inject, NgModule, Pipe } from '@angular/core';
3
- import { BaseEnvironment, BaseEventMessenager, BaseHelperRoutines, PaymentMethodType, SchemaFormat, ServiceProvider, BaseModalOpenerService, BaseAcceptNewPriceUpdater, BaseAddItemToBasketUpdater, BaseAddUserToBasketItemUpdater, BaseCreateBasketUpdater, BaseGetBasketFetcher, BaseBookBasketUpdater, BaseDeleteBasketUpdater, BaseRemoveItemFromBasketUpdater, BaseRevalidateBasketUpdater, BaseGetUserFetcher, BaseGetUserBasketsFetcher, BaseSetBasketItemLeadPassengerUpdater, BaseMoveBasketItemToBasket, BaseUpdateBasketNoteUpdater, BaseUpdateBasketTitleUpdater, BaseUserUiConfigsFetcher, BaseUserProductsFetcher, BaseUserMessagesFetcher, BaseGetCompaniesFetcher, BaseGetCompanyFetcher, BaseConfirmMessagesUpdater, BaseSetUserLanguageUpdater, BaseEditUserUpdater, BaseCreateGuestUpdater, BaseGetUserGuestsFetcher, BaseGetOfficeFetcher, BaseRedirectApproverFetcher, BaseAddRedirectApproverUpdater, BaseRemoveRedirectApproverUpdater, BaseStorageService, BaseWebTokenService, BaseSearchCompanyApproversFetcher, BaseAddFavouriteUserUpdater, BaseGetUserFavouriteUsersFetcher, BaseRemoveFavouriteUserUpdater, BaseApexxCreateCardUpdater, BaseApexxDeleteCardUpdater, BaseApexxUpdateCardUpdater, BaseGetApexxListCardsFetcher, BaseSetBasketItemApexxTokenUpdater, BaseGetUserMiFetcher, BaseGetUserDocumentLoyaltyFetcher, BaseGetUserEmergencyContactFetcher, BaseDeleteGuestUpdater, BaseSearchUserWithEmailFetcher, BaseGetOfficeUsersFetcher, BaseRemovePreferredTransportHubUpdater, BaseSetPreferredTransportHubUpdater, BaseGetUserPreferredTransportHubsFetcher, BaseGetUserMiDefaultValuesFetcher, BaseGetUserMiStackFetcher, BaseSetUserMIDefaultValueUpdater, BaseGetEmptyUserMiDefaultValuesFetcher, BaseSetEmptyUserMIDefaultValueUpdater, BaseSearchCompanyUsersFetcher, BaseTrainlineTenantIsFrenchFetcher, BaseUserService, BaseSetPaymentOptionUpdater, BaseGetCancellationInfoFetcher, BaseAddGuestToBasketItemUpdater, BaseAddUpdatedItemToBasketUpdater, BaseCreateBasketNoteUpdater, BaseGetBasketNotesFetcher, BaseGetBasketApprovalTimestampsFetcher, BaseAddBasketItemMarkupUpdater, BaseAddBasketItemCustomRemarkUpdater, BaseGetBasketItemCustomRemarksFetcher, BaseChangeBasketOwnershipUpdater, BaseGetBasketQuoteFetcher, BaseGetProcessTermsPriceFetcher, BaseAcceptProcessTermsUpdater, BaseResendApproverEmailFetcher, BaseCheckIfBasketRequiresApprovalFetcher, BaseGetOfficeApproversFetcher, BaseSelectBasketApproverUpdater, BaseGetDraftBasketsFetcher, BaseCreateBasketFromDraftUpdater, BaseSelectBasketNotifyApproverUpdater, BaseCanAmendBookingFetcher, BaseGetUserApproversFetcher, BaseGetMIApproversFetcher, BaseGetBasketApprovalInfoFetcher, BaseShareBasketUpdater, BaseGetUserSharedBasketsFetcher, BaseGetTrainSeatMapFetcher, BaseBeforeAmendCabSearchFetcher, BaseBeforeAmendCarHireSearchFetcher, BaseSendBackToQueueUpdater, BaseGetBasketCo2InfoFetcher, BaseSelectBasketMultiLevelApproversUpdater, BaseValidateBasketMiFetcher, BaseValidateBasketItemMiFetcher, BaseSetMIValuesUpdater, BaseSearchMIAutoSuggestValuesFetcher, BaseGetTrainSeatmapEvolviFetcher, BaseReserveRailSeatsUpdater, BaseGetEvolviSeatmapsAreEnabledFetcher, BasegetRequestedBookingUpdateFetcher, BaseUpdateExchangeBasketUpdater, BaseDownloadETicketFetcher, BaseEnterpriseBasketService, BaseHotelAvalibilityQuoteFetcher, BaseHotelAvalibilityService, AbstractHttpCallService, BaseSearchAirportsFetcher, BaseSearchAirlinesFetcher, BaseSearchCityFetcher, BaseSearchPostcodeFetcher, BaseSearchRailStationsFetcher, BaseSaveUserAddressUpdater, BaseEditUserAddressUpdater, BaseUserAddressesFetcher, BaseGetUserCompanyOfficesFetcher, BaseSearchHotelChainsFetcher, BaseGetConfermaRoomImagesFetcher, BaseValidateIsPostcodeValidTester, BaseDeleteUserAddressUpdater, BaseDeleteRecentSearchUpdater, BaseSaveRecentSearchUpdater, BaseGetUserCarbonAllowanceFetcher, BaseSaveFavouriteSearchUpdater, BaseGetHotelChainsFetcher, BaseGetRailProvidersFetcher, BaseGetAllAirlinesFetcher, BaseGetCarHireProvidersFetcher, BaseLoungeQuoteFetcher, BaseParkingQuoteFetcher, BaseFlightQuoteFetcher, BaseHotelQuoteFetcher, BaseCarhireQuoteFetcher, BaseCarHireAvailabilityDetailFetcher, BaseCabhireQuoteFetcher, BaseRailQuoteFetcher, BaseIrlQuoteFetcher, BaseSearchDepotFetcher, BaseGetRailStationInfoFetcher, BaseGetRailStationFetcher, BaseGetIrlSupplierStationFetcher, BaseGetRiskAlertsFetcher, BaseSearchConfermaQuicklistFetcher, BaseGetUserRecentSearchesFetcher, BaseGetRailcardsFetcher, BaseGetCovidMicrositeTokenFetcher, BaseEurostarQuoteFetcher, BaseSearchUsersCanBookForFetcher, BaseSearchIrlStationsFetcher, BaseIrlDiscountCardFetcher, BaseGetFlightFareRulesFetcher, BaseGetFlightSeatMapFetcher, BaseGetRailLiveDeparturesFetcher, BaseHotelRulesFetcher, BaseApplyJitFlightRulesFetcher, BaseGetUserFavouriteSearchesFetcher, BaseDeleteFavouriteSearchUpdater, BaseEmailBasketFetcher, BaseFastTrackQuoteFetcher, BaseSendOfflineNotificationFetcher, BaseGenerateBasketPdfFetcher, BaseEmailFerryBookingFetcher, BaseGetFlightExtrasOptionsFetcher, BaseConvertCurrencyFetcher, BaseGetCurrencyConversionRatesFetcher, BaseGetHotelDetailsFetcher, BaseGetServiceFetcher, BaseGetFlightBrandedFaresFetcher, BaseGetTrainlineSearchConfigFetcher, BaseSearchRailInwardFetcher, BaseRailSearchExchangeFetcher, BaseCreateItineraryExchangeUpdater, BaseGetAirAvailabilityFetcher, BaseGetFlightAtNewClassFetcher, BaseGetFlightUpsellOffersFetcher, BaseGetOfficesFetcher, BaseFlightSearchExchangeFetcher, BaseFlightExchangeDetailsFetcher, BaseEmailApartmentBookingFetcher, BaseEmailSeasonTicketBookingFetcher, BaseSuggestPlacesFetcher, BaseGetLatLonFromHereIdFetcher, BaseGetGmtItineraryOptionsFetcher, BaseGetGutCitySuggestionsFetcher, BaseGetGutLocationSuggestionsFetcher, BaseGetRouteHappyFetcher, BaseGetMultipleHotelRatingFetcher, BaseEmailMeetingRoomBookingFetcher, BaseEmailAmbulanceBookingFetcher, BaseGetEntLocationByPostcode, BaseGetEntLocationByCity, BaseGetUserRecentBoltSearchesFetcher, BaseSaveRecentBoltSearchUpdater, BaseGetFerryPortsFetcher, BaseGetBannerFetcher, BaseUpdateDOBUpdater, BaseUpdateFlightSeatMapUpdater, BaseDeleteAllRecentSearchesUpdater, BaseGetOfficeDivisionsFetcher, BaseSearchGeoLocationFetcher, BaseSearchDiscoverLocationFetcher, BaseGetJyrneyUrlFetcher, BaseGetPriceHiddenSabreExchangeFetcher, BaseEnterpriseSearchService, BaseGetLatestVersionsFetcher, BaseLogonService, BaseCancelBookingUpdater, BaseAmendBookingUpdater, BaseCheckForDuplicateBookingsFetcher, BaseEnterpriseMyBookingsService, BaseRouteHappyService, BaseHttpCancelService, BaseMessagesService, RailFareNameKeywords, RailSplitType, isGroupTicket, RailFareTypes, SingleOrReturn, ModalTypes, BaseGetMiRequiringMandatoryDefaultValueFetcher, BaseHttpCancelInterceptor } from '@sabstravtech/obtservices/base';
3
+ import { BaseEnvironment, BaseEventMessenager, BaseHelperRoutines, PaymentMethodType, SchemaFormat, ServiceProvider, BaseModalOpenerService, BaseAcceptNewPriceUpdater, BaseAddItemToBasketUpdater, BaseAddUserToBasketItemUpdater, BaseCreateBasketUpdater, BaseGetBasketFetcher, BaseBookBasketUpdater, BaseDeleteBasketUpdater, BaseRemoveItemFromBasketUpdater, BaseRevalidateBasketUpdater, BaseGetUserFetcher, BaseGetUserBasketsFetcher, BaseSetBasketItemLeadPassengerUpdater, BaseMoveBasketItemToBasket, BaseUpdateBasketNoteUpdater, BaseUpdateBasketTitleUpdater, BaseUserUiConfigsFetcher, BaseUserProductsFetcher, BaseUserMessagesFetcher, BaseGetCompaniesFetcher, BaseGetCompanyFetcher, BaseConfirmMessagesUpdater, BaseSetUserLanguageUpdater, BaseEditUserUpdater, BaseCreateGuestUpdater, BaseGetUserGuestsFetcher, BaseGetOfficeFetcher, BaseRedirectApproverFetcher, BaseAddRedirectApproverUpdater, BaseRemoveRedirectApproverUpdater, BaseStorageService, BaseWebTokenService, BaseSearchCompanyApproversFetcher, BaseAddFavouriteUserUpdater, BaseGetUserFavouriteUsersFetcher, BaseRemoveFavouriteUserUpdater, BaseApexxCreateCardUpdater, BaseApexxDeleteCardUpdater, BaseApexxUpdateCardUpdater, BaseGetApexxListCardsFetcher, BaseSetBasketItemApexxTokenUpdater, BaseGetUserMiFetcher, BaseGetUserDocumentLoyaltyFetcher, BaseGetUserEmergencyContactFetcher, BaseDeleteGuestUpdater, BaseSearchUserWithEmailFetcher, BaseGetOfficeUsersFetcher, BaseRemovePreferredTransportHubUpdater, BaseSetPreferredTransportHubUpdater, BaseGetUserPreferredTransportHubsFetcher, BaseGetUserMiDefaultValuesFetcher, BaseGetUserMiStackFetcher, BaseSetUserMIDefaultValueUpdater, BaseGetEmptyUserMiDefaultValuesFetcher, BaseSetEmptyUserMIDefaultValueUpdater, BaseSearchCompanyUsersFetcher, BaseTrainlineTenantIsFrenchFetcher, BaseUserService, BaseSetPaymentOptionUpdater, BaseGetCancellationInfoFetcher, BaseAddGuestToBasketItemUpdater, BaseAddUpdatedItemToBasketUpdater, BaseCreateBasketNoteUpdater, BaseGetBasketNotesFetcher, BaseGetBasketApprovalTimestampsFetcher, BaseAddBasketItemMarkupUpdater, BaseAddBasketItemCustomRemarkUpdater, BaseGetBasketItemCustomRemarksFetcher, BaseChangeBasketOwnershipUpdater, BaseGetBasketQuoteFetcher, BaseResendApproverEmailFetcher, BaseCheckIfBasketRequiresApprovalFetcher, BaseGetOfficeApproversFetcher, BaseSelectBasketApproverUpdater, BaseGetDraftBasketsFetcher, BaseCreateBasketFromDraftUpdater, BaseSelectBasketNotifyApproverUpdater, BaseCanAmendBookingFetcher, BaseGetUserApproversFetcher, BaseGetMIApproversFetcher, BaseGetBasketApprovalInfoFetcher, BaseShareBasketUpdater, BaseGetUserSharedBasketsFetcher, BaseGetTrainSeatMapFetcher, BaseBeforeAmendCabSearchFetcher, BaseBeforeAmendCarHireSearchFetcher, BaseSendBackToQueueUpdater, BaseGetBasketCo2InfoFetcher, BaseSelectBasketMultiLevelApproversUpdater, BaseValidateBasketMiFetcher, BaseValidateBasketItemMiFetcher, BaseSetMIValuesUpdater, BaseSearchMIAutoSuggestValuesFetcher, BaseGetTrainSeatmapEvolviFetcher, BaseReserveRailSeatsUpdater, BaseGetEvolviSeatmapsAreEnabledFetcher, BasegetRequestedBookingUpdateFetcher, BaseUpdateExchangeBasketUpdater, BaseEnterpriseBasketService, BaseHotelAvalibilityQuoteFetcher, BaseHotelAvalibilityService, AbstractHttpCallService, BaseSearchAirportsFetcher, BaseSearchAirlinesFetcher, BaseSearchCityFetcher, BaseSearchPostcodeFetcher, BaseSearchRailStationsFetcher, BaseSaveUserAddressUpdater, BaseEditUserAddressUpdater, BaseUserAddressesFetcher, BaseGetUserCompanyOfficesFetcher, BaseSearchHotelChainsFetcher, BaseGetConfermaRoomImagesFetcher, BaseValidateIsPostcodeValidTester, BaseDeleteUserAddressUpdater, BaseDeleteRecentSearchUpdater, BaseSaveRecentSearchUpdater, BaseGetUserCarbonAllowanceFetcher, BaseSaveFavouriteSearchUpdater, BaseGetHotelChainsFetcher, BaseGetRailProvidersFetcher, BaseGetAllAirlinesFetcher, BaseGetCarHireProvidersFetcher, BaseLoungeQuoteFetcher, BaseParkingQuoteFetcher, BaseFlightQuoteFetcher, BaseHotelQuoteFetcher, BaseCarhireQuoteFetcher, BaseCarHireAvailabilityDetailFetcher, BaseCabhireQuoteFetcher, BaseRailQuoteFetcher, BaseIrlQuoteFetcher, BaseSearchDepotFetcher, BaseGetRailStationInfoFetcher, BaseGetRailStationFetcher, BaseGetIrlSupplierStationFetcher, BaseGetRiskAlertsFetcher, BaseSearchConfermaQuicklistFetcher, BaseGetUserRecentSearchesFetcher, BaseGetRailcardsFetcher, BaseGetCovidMicrositeTokenFetcher, BaseEurostarQuoteFetcher, BaseSearchUsersCanBookForFetcher, BaseSearchIrlStationsFetcher, BaseIrlDiscountCardFetcher, BaseGetFlightFareRulesFetcher, BaseGetFlightSeatMapFetcher, BaseGetRailLiveDeparturesFetcher, BaseHotelRulesFetcher, BaseApplyJitFlightRulesFetcher, BaseGetUserFavouriteSearchesFetcher, BaseDeleteFavouriteSearchUpdater, BaseEmailBasketFetcher, BaseFastTrackQuoteFetcher, BaseSendOfflineNotificationFetcher, BaseGenerateBasketPdfFetcher, BaseEmailFerryBookingFetcher, BaseGetFlightExtrasOptionsFetcher, BaseConvertCurrencyFetcher, BaseGetCurrencyConversionRatesFetcher, BaseGetHotelDetailsFetcher, BaseGetServiceFetcher, BaseGetFlightBrandedFaresFetcher, BaseGetTrainlineSearchConfigFetcher, BaseSearchRailInwardFetcher, BaseRailSearchExchangeFetcher, BaseCreateItineraryExchangeUpdater, BaseGetAirAvailabilityFetcher, BaseGetFlightAtNewClassFetcher, BaseGetFlightUpsellOffersFetcher, BaseGetOfficesFetcher, BaseFlightSearchExchangeFetcher, BaseFlightExchangeDetailsFetcher, BaseEmailApartmentBookingFetcher, BaseEmailSeasonTicketBookingFetcher, BaseSuggestPlacesFetcher, BaseGetLatLonFromHereIdFetcher, BaseGetGmtItineraryOptionsFetcher, BaseGetGutCitySuggestionsFetcher, BaseGetGutLocationSuggestionsFetcher, BaseGetRouteHappyFetcher, BaseGetMultipleHotelRatingFetcher, BaseEmailMeetingRoomBookingFetcher, BaseEmailAmbulanceBookingFetcher, BaseGetEntLocationByPostcode, BaseGetEntLocationByCity, BaseGetUserRecentBoltSearchesFetcher, BaseSaveRecentBoltSearchUpdater, BaseGetFerryPortsFetcher, BaseGetBannerFetcher, BaseUpdateDOBUpdater, BaseUpdateFlightSeatMapUpdater, BaseDeleteAllRecentSearchesUpdater, BaseGetOfficeDivisionsFetcher, BaseSearchGeoLocationFetcher, BaseSearchDiscoverLocationFetcher, BaseGetPriceHiddenSabreExchangeFetcher, BaseEnterpriseSearchService, BaseGetLatestVersionsFetcher, BaseLogonService, BaseCancelBookingUpdater, BaseAmendBookingUpdater, BaseCheckForDuplicateBookingsFetcher, BaseEnterpriseMyBookingsService, BaseRouteHappyService, BaseHttpCancelService, BaseMessagesService, RailFareNameKeywords, RailSplitType, isGroupTicket, RailFareTypes, SingleOrReturn, FlightSearchType, FlightDirectionEnum, BaseChatbotService, UserFavorurite, ModalTypes, BaseGetMiRequiringMandatoryDefaultValueFetcher, BaseHttpCancelInterceptor } from '@sabstravtech/obtservices/base';
4
4
  import { FormGroup, FormControl, Validators } from '@angular/forms';
5
5
  import * as i1 from 'apollo-angular';
6
6
  import { gql } from 'apollo-angular';
@@ -12,6 +12,7 @@ import * as i2 from '@angular/router';
12
12
  import { timeout, map, catchError, takeUntil } from 'rxjs/operators';
13
13
  import jwt_decode from 'jwt-decode';
14
14
  import * as i1$2 from '@angular/service-worker';
15
+ import * as _ from 'lodash';
15
16
 
16
17
  class Environment extends BaseEnvironment {
17
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: Environment, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
@@ -2914,25 +2915,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2914
2915
  providedIn: 'root'
2915
2916
  }]
2916
2917
  }], ctorParameters: () => [{ type: i1.Apollo }] });
2917
- const AcceptProcessTermsDocument = gql `
2918
- mutation acceptProcessTerms($basketItemId: ID!, $newPrice: Float!) {
2919
- acceptProcessTerms(basketItemId: $basketItemId, newPrice: $newPrice)
2920
- }
2921
- `;
2922
- class AcceptProcessTermsGQL extends i1.Mutation {
2923
- document = AcceptProcessTermsDocument;
2924
- constructor(apollo) {
2925
- super(apollo);
2926
- }
2927
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AcceptProcessTermsGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
2928
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AcceptProcessTermsGQL, providedIn: 'root' });
2929
- }
2930
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AcceptProcessTermsGQL, decorators: [{
2931
- type: Injectable,
2932
- args: [{
2933
- providedIn: 'root'
2934
- }]
2935
- }], ctorParameters: () => [{ type: i1.Apollo }] });
2936
2918
  const AddBasketItemCustomRemarkDocument = gql `
2937
2919
  mutation addBasketItemCustomRemark($basketItem: ID!, $remark_type: String!, $text: String!) {
2938
2920
  addBasketItemCustomRemark(
@@ -4657,28 +4639,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
4657
4639
  providedIn: 'root'
4658
4640
  }]
4659
4641
  }], ctorParameters: () => [{ type: i1.Apollo }] });
4660
- const DownloadETicketDocument = gql `
4661
- query downloadETicket($url: String!) {
4662
- downloadETicket(url: $url) {
4663
- content
4664
- contentType
4665
- }
4666
- }
4667
- `;
4668
- class DownloadETicketGQL extends i1.Query {
4669
- document = DownloadETicketDocument;
4670
- constructor(apollo) {
4671
- super(apollo);
4672
- }
4673
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DownloadETicketGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
4674
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DownloadETicketGQL, providedIn: 'root' });
4675
- }
4676
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DownloadETicketGQL, decorators: [{
4677
- type: Injectable,
4678
- args: [{
4679
- providedIn: 'root'
4680
- }]
4681
- }], ctorParameters: () => [{ type: i1.Apollo }] });
4682
4642
  const EditUserDocument = gql `
4683
4643
  mutation editUser($title: String, $forename: String, $surname: String, $email: String, $additionalEmail: [String], $dob: Date, $selectedLanguage: ID, $emergencyContactName: String, $emergencyContactPhone: String, $emergencyContactEmail: String, $phoneNumbers: [PhoneNumberInput!], $addresses: [AddressInput!], $documents: [DocumentInput!], $loyaltyCodes: [UserLoyaltyCodeInput!], $preferences: [UserPreferenceInput!], $userApprovers: [UserApproverInput!], $eticketEmail: String) {
4684
4644
  editUser(
@@ -8032,25 +7992,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
8032
7992
  providedIn: 'root'
8033
7993
  }]
8034
7994
  }], ctorParameters: () => [{ type: i1.Apollo }] });
8035
- const GetJyrneyUrlDocument = gql `
8036
- query getJyrneyUrl {
8037
- getJyrneyUrl
8038
- }
8039
- `;
8040
- class GetJyrneyUrlGQL extends i1.Query {
8041
- document = GetJyrneyUrlDocument;
8042
- constructor(apollo) {
8043
- super(apollo);
8044
- }
8045
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetJyrneyUrlGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
8046
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetJyrneyUrlGQL, providedIn: 'root' });
8047
- }
8048
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetJyrneyUrlGQL, decorators: [{
8049
- type: Injectable,
8050
- args: [{
8051
- providedIn: 'root'
8052
- }]
8053
- }], ctorParameters: () => [{ type: i1.Apollo }] });
8054
7995
  const GetLatLonFromHereIdDocument = gql `
8055
7996
  query getLatLonFromHereID($id: String!) {
8056
7997
  getLatLonFromHereID(id: $id) {
@@ -8330,31 +8271,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
8330
8271
  providedIn: 'root'
8331
8272
  }]
8332
8273
  }], ctorParameters: () => [{ type: i1.Apollo }] });
8333
- const GetProcessTermsPriceDocument = gql `
8334
- query getProcessTermsPrice($basketItemId: ID!, $supplementaryInfo: [SupplementaryBookingInfo!]) {
8335
- getProcessTermsPrice(
8336
- basketItemId: $basketItemId
8337
- supplementaryInfo: $supplementaryInfo
8338
- ) {
8339
- amount
8340
- currency
8341
- }
8342
- }
8343
- `;
8344
- class GetProcessTermsPriceGQL extends i1.Query {
8345
- document = GetProcessTermsPriceDocument;
8346
- constructor(apollo) {
8347
- super(apollo);
8348
- }
8349
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetProcessTermsPriceGQL, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
8350
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetProcessTermsPriceGQL, providedIn: 'root' });
8351
- }
8352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetProcessTermsPriceGQL, decorators: [{
8353
- type: Injectable,
8354
- args: [{
8355
- providedIn: 'root'
8356
- }]
8357
- }], ctorParameters: () => [{ type: i1.Apollo }] });
8358
8274
  const GetRailLiveDeparturesDocument = gql `
8359
8275
  query getRailLiveDepartures($stationCode: String!, $departDateTime: String, $destinationCode: String) {
8360
8276
  getRailLiveDepartures(
@@ -12710,7 +12626,7 @@ class HelperRoutines extends BaseHelperRoutines {
12710
12626
  multiPaymentGroup.push(next);
12711
12627
  }
12712
12628
  else {
12713
- const defaultPayment = next.availablePaymentMethods.find((payment) => payment.name === PaymentMethodType.OnAccount);
12629
+ const defaultPayment = next.availablePaymentMethods.find(payment => payment.name === PaymentMethodType.OnAccount);
12714
12630
  if (defaultPayment) {
12715
12631
  current[index].setValue(defaultPayment);
12716
12632
  }
@@ -12720,96 +12636,54 @@ class HelperRoutines extends BaseHelperRoutines {
12720
12636
  return current;
12721
12637
  }, {}))
12722
12638
  };
12723
- return suppInfoArray
12724
- ? suppInfoArray.reduce((current, next, index) => {
12725
- const newItems = {};
12726
- if (next.perItemAddress) {
12727
- newItems.perItemAddress = this.addAddressGroup();
12639
+ return suppInfoArray ? suppInfoArray.reduce((current, next, index) => {
12640
+ const newItems = {};
12641
+ if (next.perItemAddress) {
12642
+ newItems.perItemAddress = this.addAddressGroup();
12643
+ }
12644
+ if (next.perItemPhoneNumber) {
12645
+ newItems.perItemPhoneNumber = this.addPhoneNumberGroup(checkPhoneNumberValidator);
12646
+ }
12647
+ if (next?.perItemSupplementarySchema && Object.keys(next.perItemSupplementarySchema).length) {
12648
+ newItems.perItemSupplementarySchema = this.makeSchema(next.perItemSupplementarySchema);
12649
+ }
12650
+ next.userInfo.reduce((currentUsers, user, userIndex) => {
12651
+ const userControls = {};
12652
+ if (next.perPassengerAddress) {
12653
+ userControls.perPassengerAddress = this.addAddressGroup();
12728
12654
  }
12729
- if (next.perItemPhoneNumber) {
12730
- newItems.perItemPhoneNumber = this.addPhoneNumberGroup(checkPhoneNumberValidator);
12655
+ // ENT-15831: always create the phone group for flights so the field can render
12656
+ // even when the basket response omits perPassengerPhoneNumber (e.g. setBasketItemPaymentMethod)
12657
+ if (next.perPassengerPhoneNumber || basketItems[index]?.service?.type === ServiceType.Flight) {
12658
+ userControls.perPassengerPhoneNumber =
12659
+ this.addPhoneNumberGroup(checkPhoneNumberValidator);
12731
12660
  }
12732
- if (next?.perItemSupplementarySchema &&
12733
- Object.keys(next.perItemSupplementarySchema).length) {
12734
- newItems.perItemSupplementarySchema = this.makeSchema(next.perItemSupplementarySchema);
12661
+ if (next.perPassengerSupplementaryBookingInfoSchema && Object.keys(next.perPassengerSupplementaryBookingInfoSchema).length) {
12662
+ userControls.perPassengerSupplementaryBookingInfoSchema = this.makeSchema(next.perPassengerSupplementaryBookingInfoSchema);
12735
12663
  }
12736
- next.userInfo.reduce((currentUsers, user, userIndex) => {
12737
- const userControls = {};
12738
- if (next.perPassengerAddress) {
12739
- userControls.perPassengerAddress = this.addAddressGroup();
12740
- }
12741
- // ENT-15831: always create the phone group for flights so the field can render
12742
- // even when the basket response omits perPassengerPhoneNumber (e.g. setBasketItemPaymentMethod)
12743
- if (next.perPassengerPhoneNumber ||
12744
- basketItems[index]?.service?.type === ServiceType.Flight) {
12745
- userControls.perPassengerPhoneNumber =
12746
- this.addPhoneNumberGroup(checkPhoneNumberValidator);
12747
- }
12748
- if (next.perItemPhoneNumber) {
12749
- newItems.perItemPhoneNumber = this.addPhoneNumberGroup(checkPhoneNumberValidator);
12750
- }
12751
- if (next?.perItemSupplementarySchema &&
12752
- Object.keys(next.perItemSupplementarySchema).length) {
12753
- newItems.perItemSupplementarySchema = this.makeSchema(next.perItemSupplementarySchema);
12754
- }
12755
- next.userInfo.reduce((currentUsers, user, userIndex) => {
12756
- const userControls = {};
12757
- if (next.perPassengerAddress) {
12758
- userControls.perPassengerAddress = this.addAddressGroup();
12759
- }
12760
- if (next.perPassengerPhoneNumber) {
12761
- userControls.perPassengerPhoneNumber =
12762
- this.addPhoneNumberGroup(checkPhoneNumberValidator);
12763
- }
12764
- if (next.perPassengerSupplementaryBookingInfoSchema &&
12765
- Object.keys(next.perPassengerSupplementaryBookingInfoSchema).length) {
12766
- userControls.perPassengerSupplementaryBookingInfoSchema = this.makeSchema(next.perPassengerSupplementaryBookingInfoSchema);
12767
- }
12768
- currentUsers['user_' + userIndex] = new FormGroup(userControls);
12769
- return currentUsers;
12770
- }, newItems);
12771
- next.guestInfo.reduce((currentUsers, user, userIndex) => {
12772
- const userControls = {};
12773
- if (next.perPassengerAddress) {
12774
- userControls.perPassengerAddress = this.addAddressGroup();
12775
- }
12776
- if (next.perPassengerPhoneNumber) {
12777
- userControls.perPassengerPhoneNumber =
12778
- this.addPhoneNumberGroup(checkPhoneNumberValidator);
12779
- }
12780
- if (next.perPassengerSupplementaryBookingInfoSchema &&
12781
- Object.keys(next.perPassengerSupplementaryBookingInfoSchema).length) {
12782
- userControls.perPassengerSupplementaryBookingInfoSchema = this.makeSchema(next.perPassengerSupplementaryBookingInfoSchema);
12783
- }
12784
- currentUsers['guest_' + userIndex] = new FormGroup(userControls);
12785
- return currentUsers;
12786
- }, newItems);
12787
- current['basketItem_' + index] = new FormGroup(newItems);
12788
- return current;
12789
- }, newItems);
12790
- next.guestInfo.reduce((currentUsers, user, userIndex) => {
12791
- const userControls = {};
12792
- if (next.perPassengerAddress) {
12793
- userControls.perPassengerAddress = this.addAddressGroup();
12794
- }
12795
- // ENT-15831: always create the phone group for flights so the field can render
12796
- // even when the basket response omits perPassengerPhoneNumber (e.g. setBasketItemPaymentMethod)
12797
- if (next.perPassengerPhoneNumber ||
12798
- basketItems[index]?.service?.type === ServiceType.Flight) {
12799
- userControls.perPassengerPhoneNumber =
12800
- this.addPhoneNumberGroup(checkPhoneNumberValidator);
12801
- }
12802
- if (next.perPassengerSupplementaryBookingInfoSchema &&
12803
- Object.keys(next.perPassengerSupplementaryBookingInfoSchema).length) {
12804
- userControls.perPassengerSupplementaryBookingInfoSchema = this.makeSchema(next.perPassengerSupplementaryBookingInfoSchema);
12805
- }
12806
- currentUsers['guest_' + userIndex] = new FormGroup(userControls);
12807
- return currentUsers;
12808
- }, newItems);
12809
- current['basketItem_' + index] = new FormGroup(newItems);
12810
- return current;
12811
- }, paymentMethods)
12812
- : {};
12664
+ currentUsers['user_' + userIndex] = new FormGroup(userControls);
12665
+ return currentUsers;
12666
+ }, newItems);
12667
+ next.guestInfo.reduce((currentUsers, user, userIndex) => {
12668
+ const userControls = {};
12669
+ if (next.perPassengerAddress) {
12670
+ userControls.perPassengerAddress = this.addAddressGroup();
12671
+ }
12672
+ // ENT-15831: always create the phone group for flights so the field can render
12673
+ // even when the basket response omits perPassengerPhoneNumber (e.g. setBasketItemPaymentMethod)
12674
+ if (next.perPassengerPhoneNumber || basketItems[index]?.service?.type === ServiceType.Flight) {
12675
+ userControls.perPassengerPhoneNumber =
12676
+ this.addPhoneNumberGroup(checkPhoneNumberValidator);
12677
+ }
12678
+ if (next.perPassengerSupplementaryBookingInfoSchema && Object.keys(next.perPassengerSupplementaryBookingInfoSchema).length) {
12679
+ userControls.perPassengerSupplementaryBookingInfoSchema = this.makeSchema(next.perPassengerSupplementaryBookingInfoSchema);
12680
+ }
12681
+ currentUsers['guest_' + userIndex] = new FormGroup(userControls);
12682
+ return currentUsers;
12683
+ }, newItems);
12684
+ current['basketItem_' + index] = new FormGroup(newItems);
12685
+ return current;
12686
+ }, paymentMethods) : {};
12813
12687
  }
12814
12688
  addAddressGroup() {
12815
12689
  return new FormGroup({
@@ -12837,10 +12711,10 @@ class HelperRoutines extends BaseHelperRoutines {
12837
12711
  if (value.type === SchemaFormat.object) {
12838
12712
  current[key] = this.makeSchema(value);
12839
12713
  }
12840
- else if ((data?.required?.includes(key) || key === 'ticketDeliveryOption') &&
12714
+ else if ((data?.required?.includes(key) || key === "ticketDeliveryOption") &&
12841
12715
  value.type !== SchemaFormat.boolean &&
12842
12716
  key !== SchemaFormat.passport) {
12843
- const validators = [Validators.required];
12717
+ let validators = [Validators.required];
12844
12718
  if (value.pattern) {
12845
12719
  validators.push(Validators.pattern(value.pattern));
12846
12720
  }
@@ -12850,7 +12724,7 @@ class HelperRoutines extends BaseHelperRoutines {
12850
12724
  value.oneOf.forEach((oneOf) => {
12851
12725
  const newFormControl = this.makeSchema(oneOf);
12852
12726
  const controlKeys = Object.keys(newFormControl.controls);
12853
- controlKeys.forEach((key) => {
12727
+ controlKeys.forEach(key => {
12854
12728
  if (key === 'dateOfIssue' || key === 'dateOfExpiry') {
12855
12729
  // ! Do this otherwise ngbdate registers as invalid by default, even when no required
12856
12730
  newFormControl.controls[key].setValue(null);
@@ -12914,7 +12788,7 @@ class HelperRoutines extends BaseHelperRoutines {
12914
12788
  }
12915
12789
  isOnStaging() {
12916
12790
  return !!['test'].find((url) => {
12917
- return (window.location.hostname.includes(url) && !window.location.hostname.includes('mistest'));
12791
+ return window.location.hostname.includes(url) && !window.location.hostname.includes('mistest');
12918
12792
  });
12919
12793
  }
12920
12794
  isOnDev() {
@@ -12925,7 +12799,7 @@ class HelperRoutines extends BaseHelperRoutines {
12925
12799
  createPaymentGroup(multiPaymentGroup) {
12926
12800
  return multiPaymentGroup.reduce((acc, basketItem) => {
12927
12801
  if (acc.length) {
12928
- const dupe = acc.find((item) => item.paymentMethod === basketItem.availablePaymentMethods[0].name);
12802
+ const dupe = acc.find(item => item.paymentMethod === basketItem.availablePaymentMethods[0].name);
12929
12803
  if (dupe) {
12930
12804
  dupe.types.push(basketItem.service.type);
12931
12805
  }
@@ -12955,8 +12829,8 @@ class HelperRoutines extends BaseHelperRoutines {
12955
12829
  attemptToFillInAddress(userAddresses = [], addresses = [], form) {
12956
12830
  try {
12957
12831
  // first of all, try to find the User primary address
12958
- const userPrimary = userAddresses.find((addr) => addr.userPrimary);
12959
- const officePrimary = addresses.find((addr) => addr.officePrimary);
12832
+ const userPrimary = userAddresses.find(addr => addr.userPrimary);
12833
+ const officePrimary = addresses.find(addr => addr.officePrimary);
12960
12834
  // if found - fill in the address form with that
12961
12835
  // if not - use the first user addresses
12962
12836
  // if not - use Office Primary
@@ -12986,7 +12860,7 @@ class HelperRoutines extends BaseHelperRoutines {
12986
12860
  return form;
12987
12861
  }
12988
12862
  const keys = Object.keys(form.controls);
12989
- keys.forEach((key) => {
12863
+ keys.forEach(key => {
12990
12864
  const control = form.controls[key];
12991
12865
  // console.log(control);
12992
12866
  if (control['controls']?.perItemSupplementarySchema) {
@@ -13028,13 +12902,13 @@ class HelperRoutines extends BaseHelperRoutines {
13028
12902
  attemptToFillInParkingMobileNumber(data, form) {
13029
12903
  try {
13030
12904
  const outerKeys = Object.keys(form.controls);
13031
- outerKeys.forEach((outerKey) => {
12905
+ outerKeys.forEach(outerKey => {
13032
12906
  const formOuterKey = form.controls[outerKey];
13033
12907
  const formPerItemSupplementarySchema = formOuterKey.controls
13034
12908
  .perItemSupplementarySchema;
13035
12909
  if (formOuterKey.controls.perItemSupplementarySchema) {
13036
12910
  const keys = Object.keys(formPerItemSupplementarySchema.controls);
13037
- keys.forEach((key) => {
12911
+ keys.forEach(key => {
13038
12912
  if (key === 'mobileNum') {
13039
12913
  // now grab the mobile number from the data
13040
12914
  for (let i = 0; i < data.length; i++) {
@@ -13053,8 +12927,7 @@ class HelperRoutines extends BaseHelperRoutines {
13053
12927
  break;
13054
12928
  }
13055
12929
  const phone = userPrimaryPhone || data[0].phoneNumbers[0];
13056
- const telephone = formPerItemSupplementarySchema.controls
13057
- ?.car3_telephone;
12930
+ const telephone = formPerItemSupplementarySchema.controls?.car3_telephone;
13058
12931
  if (phone) {
13059
12932
  telephone.controls?.TelCountryCode.setValue(`${phone.countryCode}`);
13060
12933
  telephone.controls?.TelNumber.setValue(`${phone.number}`);
@@ -13075,7 +12948,7 @@ class HelperRoutines extends BaseHelperRoutines {
13075
12948
  attemptToFillInDOB(data, index, form, isGuestUser = false) {
13076
12949
  const outerKeys = Object.keys(form.controls);
13077
12950
  const userIndex = isGuestUser ? `guest_${index}` : `user_${index}`;
13078
- outerKeys.forEach((outerKey) => {
12951
+ outerKeys.forEach(outerKey => {
13079
12952
  const formOuterKey = form.controls[outerKey];
13080
12953
  const formUserIndex = formOuterKey.controls[userIndex];
13081
12954
  const formPerPassengerSupplementaryBookingInfoSchema = formUserIndex?.controls
@@ -13096,15 +12969,14 @@ class HelperRoutines extends BaseHelperRoutines {
13096
12969
  attemptToFillInMeal(data, index, form, isGuestUser = false) {
13097
12970
  const outerKeys = Object.keys(form.controls);
13098
12971
  const userIndex = isGuestUser ? `guest_${index}` : `user_${index}`;
13099
- outerKeys.forEach((outerKey) => {
12972
+ outerKeys.forEach(outerKey => {
13100
12973
  const formOuterKey = form.controls[outerKey];
13101
12974
  const formUserIndex = formOuterKey.controls[userIndex];
13102
12975
  const formPerPassengerSupplementaryBookingInfoSchema = formUserIndex?.controls
13103
12976
  ?.perPassengerSupplementaryBookingInfoSchema;
13104
- if (formPerPassengerSupplementaryBookingInfoSchema?.controls?.meal &&
13105
- data?.preferences?.length) {
12977
+ if (formPerPassengerSupplementaryBookingInfoSchema?.controls?.meal && data?.preferences?.length) {
13106
12978
  const meal = formPerPassengerSupplementaryBookingInfoSchema.controls.meal;
13107
- const mealPref = data.preferences.find((pref) => pref.preferenceKey === 'MEAL_REQUEST');
12979
+ const mealPref = data.preferences.find(pref => pref.preferenceKey === 'MEAL_REQUEST');
13108
12980
  if (mealPref) {
13109
12981
  const mealPrefVal = mealPref.preferenceValue?.match(/(?<=\()(.*?)(?=\))/g);
13110
12982
  meal.setValue(mealPrefVal ? mealPrefVal[0] : '');
@@ -13147,8 +13019,7 @@ class HelperRoutines extends BaseHelperRoutines {
13147
13019
  const keys = Object.keys(form.controls);
13148
13020
  for (const key of keys) {
13149
13021
  const controls = form.controls[key];
13150
- if (key.includes(substring)) {
13151
- // could possibly change this to a regex
13022
+ if (key.includes(substring)) { // could possibly change this to a regex
13152
13023
  found.push({ controls, key }); // needs the key so we can identify the appropriate mi for pnr
13153
13024
  }
13154
13025
  if (controls.controls) {
@@ -13179,8 +13050,7 @@ class HelperRoutines extends BaseHelperRoutines {
13179
13050
  found.push({ controls, key }); // needs the key so we can identify the appropriate mi for pnr
13180
13051
  }
13181
13052
  }
13182
- else if (key === string) {
13183
- // could possibly change this to a regex
13053
+ else if (key === string) { // could possibly change this to a regex
13184
13054
  found.push({ controls, key }); // needs the key so we can identify the appropriate mi for pnr
13185
13055
  }
13186
13056
  if (controls.controls) {
@@ -13200,7 +13070,7 @@ class HelperRoutines extends BaseHelperRoutines {
13200
13070
  */
13201
13071
  updateFormValueWithCloneValue(clonedControl, matchKey, form) {
13202
13072
  const keys = Object.keys(form.controls);
13203
- for (const key of keys) {
13073
+ for (let key of keys) {
13204
13074
  let controls = form.controls[key];
13205
13075
  const splitString = matchKey.split('-');
13206
13076
  const splitkey = key.split('-');
@@ -13238,7 +13108,7 @@ class HelperRoutines extends BaseHelperRoutines {
13238
13108
  return basketItems.reduce((bookingInfo, item) => {
13239
13109
  const userArray = this.createBlankUserSupp(item.users);
13240
13110
  const guestArray = this.createBlankUserSupp(item.guests);
13241
- const info = {
13111
+ let info = {
13242
13112
  basketItem: item.id,
13243
13113
  guestInfo: guestArray,
13244
13114
  paymentMethodDetails: {},
@@ -13250,7 +13120,7 @@ class HelperRoutines extends BaseHelperRoutines {
13250
13120
  }, []);
13251
13121
  }
13252
13122
  createBlankUserSupp(users) {
13253
- return users.map((user) => {
13123
+ return users.map(user => {
13254
13124
  return {
13255
13125
  id: user.id,
13256
13126
  supplementaryInfo: {}
@@ -13265,8 +13135,8 @@ class HelperRoutines extends BaseHelperRoutines {
13265
13135
  return basketItems.map((item) => {
13266
13136
  const info = {
13267
13137
  basketItem: item.id,
13268
- userInfo: (item.users || []).map((user) => this.buildUserInfoFromSaved(user)),
13269
- guestInfo: (item.guests || []).map((guest) => this.buildUserInfoFromSaved(guest)),
13138
+ userInfo: (item.users || []).map(user => this.buildUserInfoFromSaved(user)),
13139
+ guestInfo: (item.guests || []).map(guest => this.buildUserInfoFromSaved(guest)),
13270
13140
  supplementaryInfo: item.savedSupplementaryInfo || {},
13271
13141
  paymentMethodDetails: {}
13272
13142
  };
@@ -13308,11 +13178,11 @@ class HelperRoutines extends BaseHelperRoutines {
13308
13178
  };
13309
13179
  }
13310
13180
  checkBasketItemHasService(basket) {
13311
- return !basket.basketItems.find((item) => !item.service);
13181
+ return !basket.basketItems.find(item => !item.service);
13312
13182
  }
13313
13183
  getNamedPropertyFromObject(obj, lookupKey) {
13314
13184
  const keys = Object.keys(obj);
13315
- for (const key of keys) {
13185
+ for (let key of keys) {
13316
13186
  if (key === lookupKey) {
13317
13187
  //@ts-ignore
13318
13188
  return obj[key];
@@ -13321,8 +13191,7 @@ class HelperRoutines extends BaseHelperRoutines {
13321
13191
  else if (typeof obj[key] === 'object') {
13322
13192
  //@ts-ignore
13323
13193
  const found = this.getNamedPropertyFromObject(obj[key], lookupKey);
13324
- if (found) {
13325
- // else continue
13194
+ if (found) { // else continue
13326
13195
  return found;
13327
13196
  }
13328
13197
  }
@@ -13330,9 +13199,9 @@ class HelperRoutines extends BaseHelperRoutines {
13330
13199
  return null;
13331
13200
  }
13332
13201
  getAllKeysFromObject(obj, includeParentObjectKeys = false) {
13333
- const keys = Object.keys(obj);
13202
+ let keys = Object.keys(obj);
13334
13203
  let returnKeys = [];
13335
- for (const key of keys) {
13204
+ for (let key of keys) {
13336
13205
  //@ts-ignore
13337
13206
  if (typeof obj[key] === 'object') {
13338
13207
  if (includeParentObjectKeys) {
@@ -13349,7 +13218,7 @@ class HelperRoutines extends BaseHelperRoutines {
13349
13218
  }
13350
13219
  getAllControlKeysFromForm(form) {
13351
13220
  let keys = Object.keys(form.controls);
13352
- for (const key of keys) {
13221
+ for (let key of keys) {
13353
13222
  const control = form.controls[key];
13354
13223
  if (control.controls) {
13355
13224
  keys = keys.concat(this.getAllControlKeysFromForm(control));
@@ -13942,7 +13811,8 @@ class WebTokenService extends BaseWebTokenService {
13942
13811
  }
13943
13812
  };
13944
13813
  // Warn if the browser doesn't support addEventListener or the Page Visibility API
13945
- if (typeof document.addEventListener === 'undefined' || hidden === undefined) {
13814
+ if (typeof document.addEventListener === 'undefined' ||
13815
+ hidden === undefined) {
13946
13816
  console.log('This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.');
13947
13817
  }
13948
13818
  else {
@@ -14492,36 +14362,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14492
14362
  args: [HelperRoutines]
14493
14363
  }] }, { type: ModalOpenerService }] });
14494
14364
 
14495
- class GetProcessTermsPriceFetcher extends BaseGetProcessTermsPriceFetcher {
14496
- constructor(queryGQL, helpers, modalService) {
14497
- super(queryGQL, helpers, modalService);
14498
- }
14499
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetProcessTermsPriceFetcher, deps: [{ token: GetProcessTermsPriceGQL }, { token: HelperRoutines }, { token: ModalOpenerService }], target: i0.ɵɵFactoryTarget.Injectable });
14500
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetProcessTermsPriceFetcher, providedIn: 'root' });
14501
- }
14502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetProcessTermsPriceFetcher, decorators: [{
14503
- type: Injectable,
14504
- args: [{ providedIn: 'root' }]
14505
- }], ctorParameters: () => [{ type: GetProcessTermsPriceGQL, decorators: [{
14506
- type: Inject,
14507
- args: [GetProcessTermsPriceGQL]
14508
- }] }, { type: HelperRoutines, decorators: [{
14509
- type: Inject,
14510
- args: [HelperRoutines]
14511
- }] }, { type: ModalOpenerService }] });
14512
-
14513
- class AcceptProcessTermsUpdater extends BaseAcceptProcessTermsUpdater {
14514
- constructor(updater, modalService) {
14515
- super(updater, modalService);
14516
- }
14517
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AcceptProcessTermsUpdater, deps: [{ token: AcceptProcessTermsGQL }, { token: ModalOpenerService }], target: i0.ɵɵFactoryTarget.Injectable });
14518
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AcceptProcessTermsUpdater, providedIn: 'root' });
14519
- }
14520
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AcceptProcessTermsUpdater, decorators: [{
14521
- type: Injectable,
14522
- args: [{ providedIn: 'root' }]
14523
- }], ctorParameters: () => [{ type: AcceptProcessTermsGQL }, { type: ModalOpenerService }] });
14524
-
14525
14365
  class ResendApproverEmailFetcher extends BaseResendApproverEmailFetcher {
14526
14366
  constructor(queryGQL, helpers, modalService) {
14527
14367
  super(queryGQL, helpers, modalService);
@@ -14876,37 +14716,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14876
14716
  args: [UpdateExchangeBasketGQL]
14877
14717
  }] }, { type: ModalOpenerService }] });
14878
14718
 
14879
- class DownloadETicketFetcher extends BaseDownloadETicketFetcher {
14880
- constructor(queryGQL, helpers, modalService) {
14881
- super(queryGQL, helpers, modalService);
14882
- }
14883
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DownloadETicketFetcher, deps: [{ token: DownloadETicketGQL }, { token: HelperRoutines }, { token: ModalOpenerService }], target: i0.ɵɵFactoryTarget.Injectable });
14884
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DownloadETicketFetcher, providedIn: 'root' });
14885
- }
14886
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DownloadETicketFetcher, decorators: [{
14887
- type: Injectable,
14888
- args: [{ providedIn: 'root' }]
14889
- }], ctorParameters: () => [{ type: DownloadETicketGQL, decorators: [{
14890
- type: Inject,
14891
- args: [DownloadETicketGQL]
14892
- }] }, { type: HelperRoutines, decorators: [{
14893
- type: Inject,
14894
- args: [HelperRoutines]
14895
- }] }, { type: ModalOpenerService }] });
14896
-
14897
14719
  const moment = moment$1;
14898
14720
  const TEMPID = 'TEMPID_';
14899
14721
  class EnterpriseBasketService extends BaseEnterpriseBasketService {
14900
- constructor(acceptNewPriceUpdater, addItemToBasketUpdater, addUserToBasketItem, basketCreator, basketFetcher, bookBasketUpdater, deleteBasketUpdater, helpers, removeItemFromBasketUpdater, revalidateBasketUpdater, getUserFetcher, getUserBasketsFetcher, setBasketItemLeadPassengerUpdater, moveItemToADifferentBasket, updateBasketNotes, updateBasketTitle, userService, modalService, setBasketItemPaymentOption, getCancellationFetcher, addGuestToBasketItem, addUpdatedItemToBasketUpdater, createBasketNote, getBasketNotes, getBasketApprovalTimestampsGQL, addBasketItemMarkupUpdater, addBasketItemCustomRemark, getBasketItemCustomRemarks, changeBasketOwnership, getBasketQuote, getProcessTermsPrice, acceptProcessTermsUpdater, resendApproverEmail, basketRequiresApproval, getOfficeApproversFetcher, selectBasketApproverUpdater, getDraftBasketsFetcher, createBasketFromDraftUpdater, selectBasketNotifyApproverUpdater, canAmendBookingFetcher, getUserApproversFetcher, getMIApproversFetcher, getBasketApprovalInfoFetcher, shareBasketUpdater, getUserSharedBasketsFetcher, getTrainSeatMapFetcher, beforeAmendCabSearchQuoteFetcher, beforeAmendCarHireSearchfetcher, storageService, sendBackToQueueUpdater, basketCo2Fetcher, selectBasketMultiLevelApproversUpdater, validateBasketMiFetcher, validateBasketItemMiFetcher, setMIValuesUpdater, searchMIAutoSuggestValuesFetcher, getTrainSeatmapEvolviFetcher, reserveRailSeatsUpdater, evolviSeatmapsAreEnabledFetcher, getRequestedBookingUpdateFetcher, updateExchangeBasketUpdater, downloadETicketFetcher) {
14901
- super(acceptNewPriceUpdater, addItemToBasketUpdater, addUserToBasketItem, basketCreator, basketFetcher, bookBasketUpdater, deleteBasketUpdater, helpers, removeItemFromBasketUpdater, revalidateBasketUpdater, getUserFetcher, getUserBasketsFetcher, setBasketItemLeadPassengerUpdater, moveItemToADifferentBasket, updateBasketNotes, updateBasketTitle, setBasketItemPaymentOption, getCancellationFetcher, userService, modalService, addGuestToBasketItem, addUpdatedItemToBasketUpdater, createBasketNote, getBasketNotes, getBasketApprovalTimestampsGQL, addBasketItemMarkupUpdater, addBasketItemCustomRemark, getBasketItemCustomRemarks, changeBasketOwnership, getBasketQuote, getProcessTermsPrice, acceptProcessTermsUpdater, resendApproverEmail, basketRequiresApproval, getOfficeApproversFetcher, selectBasketApproverUpdater, getDraftBasketsFetcher, createBasketFromDraftUpdater, selectBasketNotifyApproverUpdater, canAmendBookingFetcher, getUserApproversFetcher, getMIApproversFetcher, getBasketApprovalInfoFetcher, shareBasketUpdater, getUserSharedBasketsFetcher, getTrainSeatMapFetcher, beforeAmendCabSearchQuoteFetcher, beforeAmendCarHireSearchfetcher, storageService, sendBackToQueueUpdater, basketCo2Fetcher, selectBasketMultiLevelApproversUpdater, validateBasketMiFetcher, validateBasketItemMiFetcher, setMIValuesUpdater, searchMIAutoSuggestValuesFetcher, getTrainSeatmapEvolviFetcher, reserveRailSeatsUpdater, evolviSeatmapsAreEnabledFetcher, getRequestedBookingUpdateFetcher, updateExchangeBasketUpdater, downloadETicketFetcher);
14722
+ constructor(acceptNewPriceUpdater, addItemToBasketUpdater, addUserToBasketItem, basketCreator, basketFetcher, bookBasketUpdater, deleteBasketUpdater, helpers, removeItemFromBasketUpdater, revalidateBasketUpdater, getUserFetcher, getUserBasketsFetcher, setBasketItemLeadPassengerUpdater, moveItemToADifferentBasket, updateBasketNotes, updateBasketTitle, userService, modalService, setBasketItemPaymentOption, getCancellationFetcher, addGuestToBasketItem, addUpdatedItemToBasketUpdater, createBasketNote, getBasketNotes, getBasketApprovalTimestampsGQL, addBasketItemMarkupUpdater, addBasketItemCustomRemark, getBasketItemCustomRemarks, changeBasketOwnership, getBasketQuote, resendApproverEmail, basketRequiresApproval, getOfficeApproversFetcher, selectBasketApproverUpdater, getDraftBasketsFetcher, createBasketFromDraftUpdater, selectBasketNotifyApproverUpdater, canAmendBookingFetcher, getUserApproversFetcher, getMIApproversFetcher, getBasketApprovalInfoFetcher, shareBasketUpdater, getUserSharedBasketsFetcher, getTrainSeatMapFetcher, beforeAmendCabSearchQuoteFetcher, beforeAmendCarHireSearchfetcher, storageService, sendBackToQueueUpdater, basketCo2Fetcher, selectBasketMultiLevelApproversUpdater, validateBasketMiFetcher, validateBasketItemMiFetcher, setMIValuesUpdater, searchMIAutoSuggestValuesFetcher, getTrainSeatmapEvolviFetcher, reserveRailSeatsUpdater, evolviSeatmapsAreEnabledFetcher, getRequestedBookingUpdateFetcher, updateExchangeBasketUpdater) {
14723
+ super(acceptNewPriceUpdater, addItemToBasketUpdater, addUserToBasketItem, basketCreator, basketFetcher, bookBasketUpdater, deleteBasketUpdater, helpers, removeItemFromBasketUpdater, revalidateBasketUpdater, getUserFetcher, getUserBasketsFetcher, setBasketItemLeadPassengerUpdater, moveItemToADifferentBasket, updateBasketNotes, updateBasketTitle, setBasketItemPaymentOption, getCancellationFetcher, userService, modalService, addGuestToBasketItem, addUpdatedItemToBasketUpdater, createBasketNote, getBasketNotes, getBasketApprovalTimestampsGQL, addBasketItemMarkupUpdater, addBasketItemCustomRemark, getBasketItemCustomRemarks, changeBasketOwnership, getBasketQuote, resendApproverEmail, basketRequiresApproval, getOfficeApproversFetcher, selectBasketApproverUpdater, getDraftBasketsFetcher, createBasketFromDraftUpdater, selectBasketNotifyApproverUpdater, canAmendBookingFetcher, getUserApproversFetcher, getMIApproversFetcher, getBasketApprovalInfoFetcher, shareBasketUpdater, getUserSharedBasketsFetcher, getTrainSeatMapFetcher, beforeAmendCabSearchQuoteFetcher, beforeAmendCarHireSearchfetcher, storageService, sendBackToQueueUpdater, basketCo2Fetcher, selectBasketMultiLevelApproversUpdater, validateBasketMiFetcher, validateBasketItemMiFetcher, setMIValuesUpdater, searchMIAutoSuggestValuesFetcher, getTrainSeatmapEvolviFetcher, reserveRailSeatsUpdater, evolviSeatmapsAreEnabledFetcher, getRequestedBookingUpdateFetcher, updateExchangeBasketUpdater);
14902
14724
  }
14903
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseBasketService, deps: [{ token: AcceptNewPriceUpdater }, { token: AddItemToBasketUpdater }, { token: AddUserToBasketItemUpdater }, { token: CreateBasketUpdater }, { token: GetBasketFetcher }, { token: BookBasketUpdater }, { token: DeleteBasketUpdater }, { token: HelperRoutines }, { token: RemoveItemFromBasketUpdater }, { token: RevalidateBasketUpdater }, { token: GetUserFetcher }, { token: GetUserBasketsFetcher }, { token: SetBasketItemLeadPassengerUpdater }, { token: MoveBasketItemToBasketUpdater }, { token: UpdateBasketNotesUpdater }, { token: UpdateBasketTitleUpdater }, { token: UserService }, { token: ModalOpenerService }, { token: SetPaymentOptionUpdater }, { token: GetCancellationInfoFetcher }, { token: AddGuestToBasketItemUpdater }, { token: AddUpdatedItemToBasketUpdater }, { token: CreateBasketNoteUpdater }, { token: GetBasketNotesFetcher }, { token: GetBasketApprovalTimestampsFetcher }, { token: AddBasketItemMarkupUpdater }, { token: AddBasketItemCustomRemarkUpdater }, { token: GetBasketItemCustomRemarksFetcher }, { token: ChangeBasketOwnershipUpdater }, { token: GetBasketQuoteFetcher }, { token: GetProcessTermsPriceFetcher }, { token: AcceptProcessTermsUpdater }, { token: ResendApproverEmailFetcher }, { token: CheckIfBasketRequiresApprovalFetcher }, { token: GetOfficeApproversFetcher }, { token: SelectBasketApproverUpdater }, { token: GetDraftBasketsFetcher }, { token: CreateBasketFromDraftUpdater }, { token: SelectBasketNotifyApproverUpdater }, { token: CanAmendBookingFetcher }, { token: GetUserApproversFetcher }, { token: GetMIApproversFetcher }, { token: GetBasketApprovalInfoFetcher }, { token: ShareBasketUpdater }, { token: GetUserSharedBasketsFetcher }, { token: GetTrainSeatmapFetcher }, { token: BeforeAmendCabSearchFetcher }, { token: BeforeAmendCarHireSearchFetcher }, { token: StorageService }, { token: SendBackToQueueUpdater }, { token: GetBasketCo2InfoFetcher }, { token: SelectBasketMultiLevelApproversUpdater }, { token: ValidateBasketMiFetcher }, { token: ValidateBasketItemMiFetcher }, { token: SetMIValuesUpdater }, { token: SearchMIAutoSuggestValuesFetcher }, { token: GetTrainSeatmapEvolviFetcher }, { token: ReserveRailSeatsUpdater }, { token: GetEvolviSeatmapsAreEnabledFetcher }, { token: GetRequestedBookingUpdateFetcher }, { token: UpdateExchangeBasketUpdater }, { token: DownloadETicketFetcher }], target: i0.ɵɵFactoryTarget.Injectable });
14725
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseBasketService, deps: [{ token: AcceptNewPriceUpdater }, { token: AddItemToBasketUpdater }, { token: AddUserToBasketItemUpdater }, { token: CreateBasketUpdater }, { token: GetBasketFetcher }, { token: BookBasketUpdater }, { token: DeleteBasketUpdater }, { token: HelperRoutines }, { token: RemoveItemFromBasketUpdater }, { token: RevalidateBasketUpdater }, { token: GetUserFetcher }, { token: GetUserBasketsFetcher }, { token: SetBasketItemLeadPassengerUpdater }, { token: MoveBasketItemToBasketUpdater }, { token: UpdateBasketNotesUpdater }, { token: UpdateBasketTitleUpdater }, { token: UserService }, { token: ModalOpenerService }, { token: SetPaymentOptionUpdater }, { token: GetCancellationInfoFetcher }, { token: AddGuestToBasketItemUpdater }, { token: AddUpdatedItemToBasketUpdater }, { token: CreateBasketNoteUpdater }, { token: GetBasketNotesFetcher }, { token: GetBasketApprovalTimestampsFetcher }, { token: AddBasketItemMarkupUpdater }, { token: AddBasketItemCustomRemarkUpdater }, { token: GetBasketItemCustomRemarksFetcher }, { token: ChangeBasketOwnershipUpdater }, { token: GetBasketQuoteFetcher }, { token: ResendApproverEmailFetcher }, { token: CheckIfBasketRequiresApprovalFetcher }, { token: GetOfficeApproversFetcher }, { token: SelectBasketApproverUpdater }, { token: GetDraftBasketsFetcher }, { token: CreateBasketFromDraftUpdater }, { token: SelectBasketNotifyApproverUpdater }, { token: CanAmendBookingFetcher }, { token: GetUserApproversFetcher }, { token: GetMIApproversFetcher }, { token: GetBasketApprovalInfoFetcher }, { token: ShareBasketUpdater }, { token: GetUserSharedBasketsFetcher }, { token: GetTrainSeatmapFetcher }, { token: BeforeAmendCabSearchFetcher }, { token: BeforeAmendCarHireSearchFetcher }, { token: StorageService }, { token: SendBackToQueueUpdater }, { token: GetBasketCo2InfoFetcher }, { token: SelectBasketMultiLevelApproversUpdater }, { token: ValidateBasketMiFetcher }, { token: ValidateBasketItemMiFetcher }, { token: SetMIValuesUpdater }, { token: SearchMIAutoSuggestValuesFetcher }, { token: GetTrainSeatmapEvolviFetcher }, { token: ReserveRailSeatsUpdater }, { token: GetEvolviSeatmapsAreEnabledFetcher }, { token: GetRequestedBookingUpdateFetcher }, { token: UpdateExchangeBasketUpdater }], target: i0.ɵɵFactoryTarget.Injectable });
14904
14726
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseBasketService, providedIn: 'root' });
14905
14727
  }
14906
14728
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseBasketService, decorators: [{
14907
14729
  type: Injectable,
14908
14730
  args: [{ providedIn: 'root' }]
14909
- }], ctorParameters: () => [{ type: AcceptNewPriceUpdater }, { type: AddItemToBasketUpdater }, { type: AddUserToBasketItemUpdater }, { type: CreateBasketUpdater }, { type: GetBasketFetcher }, { type: BookBasketUpdater }, { type: DeleteBasketUpdater }, { type: HelperRoutines }, { type: RemoveItemFromBasketUpdater }, { type: RevalidateBasketUpdater }, { type: GetUserFetcher }, { type: GetUserBasketsFetcher }, { type: SetBasketItemLeadPassengerUpdater }, { type: MoveBasketItemToBasketUpdater }, { type: UpdateBasketNotesUpdater }, { type: UpdateBasketTitleUpdater }, { type: UserService }, { type: ModalOpenerService }, { type: SetPaymentOptionUpdater }, { type: GetCancellationInfoFetcher }, { type: AddGuestToBasketItemUpdater }, { type: AddUpdatedItemToBasketUpdater }, { type: CreateBasketNoteUpdater }, { type: GetBasketNotesFetcher }, { type: GetBasketApprovalTimestampsFetcher }, { type: AddBasketItemMarkupUpdater }, { type: AddBasketItemCustomRemarkUpdater }, { type: GetBasketItemCustomRemarksFetcher }, { type: ChangeBasketOwnershipUpdater }, { type: GetBasketQuoteFetcher }, { type: GetProcessTermsPriceFetcher }, { type: AcceptProcessTermsUpdater }, { type: ResendApproverEmailFetcher }, { type: CheckIfBasketRequiresApprovalFetcher }, { type: GetOfficeApproversFetcher }, { type: SelectBasketApproverUpdater }, { type: GetDraftBasketsFetcher }, { type: CreateBasketFromDraftUpdater }, { type: SelectBasketNotifyApproverUpdater }, { type: CanAmendBookingFetcher }, { type: GetUserApproversFetcher }, { type: GetMIApproversFetcher }, { type: GetBasketApprovalInfoFetcher }, { type: ShareBasketUpdater }, { type: GetUserSharedBasketsFetcher }, { type: GetTrainSeatmapFetcher }, { type: BeforeAmendCabSearchFetcher }, { type: BeforeAmendCarHireSearchFetcher }, { type: StorageService }, { type: SendBackToQueueUpdater }, { type: GetBasketCo2InfoFetcher }, { type: SelectBasketMultiLevelApproversUpdater }, { type: ValidateBasketMiFetcher }, { type: ValidateBasketItemMiFetcher }, { type: SetMIValuesUpdater }, { type: SearchMIAutoSuggestValuesFetcher }, { type: GetTrainSeatmapEvolviFetcher }, { type: ReserveRailSeatsUpdater }, { type: GetEvolviSeatmapsAreEnabledFetcher }, { type: GetRequestedBookingUpdateFetcher }, { type: UpdateExchangeBasketUpdater }, { type: DownloadETicketFetcher }] });
14731
+ }], ctorParameters: () => [{ type: AcceptNewPriceUpdater }, { type: AddItemToBasketUpdater }, { type: AddUserToBasketItemUpdater }, { type: CreateBasketUpdater }, { type: GetBasketFetcher }, { type: BookBasketUpdater }, { type: DeleteBasketUpdater }, { type: HelperRoutines }, { type: RemoveItemFromBasketUpdater }, { type: RevalidateBasketUpdater }, { type: GetUserFetcher }, { type: GetUserBasketsFetcher }, { type: SetBasketItemLeadPassengerUpdater }, { type: MoveBasketItemToBasketUpdater }, { type: UpdateBasketNotesUpdater }, { type: UpdateBasketTitleUpdater }, { type: UserService }, { type: ModalOpenerService }, { type: SetPaymentOptionUpdater }, { type: GetCancellationInfoFetcher }, { type: AddGuestToBasketItemUpdater }, { type: AddUpdatedItemToBasketUpdater }, { type: CreateBasketNoteUpdater }, { type: GetBasketNotesFetcher }, { type: GetBasketApprovalTimestampsFetcher }, { type: AddBasketItemMarkupUpdater }, { type: AddBasketItemCustomRemarkUpdater }, { type: GetBasketItemCustomRemarksFetcher }, { type: ChangeBasketOwnershipUpdater }, { type: GetBasketQuoteFetcher }, { type: ResendApproverEmailFetcher }, { type: CheckIfBasketRequiresApprovalFetcher }, { type: GetOfficeApproversFetcher }, { type: SelectBasketApproverUpdater }, { type: GetDraftBasketsFetcher }, { type: CreateBasketFromDraftUpdater }, { type: SelectBasketNotifyApproverUpdater }, { type: CanAmendBookingFetcher }, { type: GetUserApproversFetcher }, { type: GetMIApproversFetcher }, { type: GetBasketApprovalInfoFetcher }, { type: ShareBasketUpdater }, { type: GetUserSharedBasketsFetcher }, { type: GetTrainSeatmapFetcher }, { type: BeforeAmendCabSearchFetcher }, { type: BeforeAmendCarHireSearchFetcher }, { type: StorageService }, { type: SendBackToQueueUpdater }, { type: GetBasketCo2InfoFetcher }, { type: SelectBasketMultiLevelApproversUpdater }, { type: ValidateBasketMiFetcher }, { type: ValidateBasketItemMiFetcher }, { type: SetMIValuesUpdater }, { type: SearchMIAutoSuggestValuesFetcher }, { type: GetTrainSeatmapEvolviFetcher }, { type: ReserveRailSeatsUpdater }, { type: GetEvolviSeatmapsAreEnabledFetcher }, { type: GetRequestedBookingUpdateFetcher }, { type: UpdateExchangeBasketUpdater }] });
14910
14732
 
14911
14733
  class HotelAvalibilityQuoteFetcher extends BaseHotelAvalibilityQuoteFetcher {
14912
14734
  constructor(gql, helpers, modalService) {
@@ -16473,24 +16295,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
16473
16295
  args: [{ providedIn: 'root' }]
16474
16296
  }], ctorParameters: () => [{ type: SearchDiscoverLocationGQL }, { type: HelperRoutines }, { type: ModalOpenerService }] });
16475
16297
 
16476
- class GetJyrneyUrlFetcher extends BaseGetJyrneyUrlFetcher {
16477
- constructor(queryGQL, helpers, modalService) {
16478
- super(queryGQL, helpers, modalService);
16479
- }
16480
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetJyrneyUrlFetcher, deps: [{ token: GetJyrneyUrlGQL }, { token: HelperRoutines }, { token: ModalOpenerService }], target: i0.ɵɵFactoryTarget.Injectable });
16481
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetJyrneyUrlFetcher, providedIn: 'root' });
16482
- }
16483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: GetJyrneyUrlFetcher, decorators: [{
16484
- type: Injectable,
16485
- args: [{ providedIn: 'root' }]
16486
- }], ctorParameters: () => [{ type: GetJyrneyUrlGQL, decorators: [{
16487
- type: Inject,
16488
- args: [GetJyrneyUrlGQL]
16489
- }] }, { type: HelperRoutines, decorators: [{
16490
- type: Inject,
16491
- args: [HelperRoutines]
16492
- }] }, { type: ModalOpenerService }] });
16493
-
16494
16298
  class GetPriceHiddenSabreExchangeFetcher extends BaseGetPriceHiddenSabreExchangeFetcher {
16495
16299
  constructor(gql, modalService, helpers) {
16496
16300
  super(gql, modalService, helpers);
@@ -16504,16 +16308,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
16504
16308
  }], ctorParameters: () => [{ type: GetPriceHiddenSabreExchangeGQL }, { type: ModalOpenerService }, { type: HelperRoutines }] });
16505
16309
 
16506
16310
  class EnterpriseSearchService extends BaseEnterpriseSearchService {
16507
- constructor(searchAirportsFetcher, searchAirlinesFetcher, storageService, userService, router, helpers, hotelAvalibilityService, citiesFetcher, postcodeFetcher, railStationFetcher, saveUserAddressUpdater, editUserAddressUpdater, userAddressesFetcher, basketService, getUserCompanyOfficesFetcher, searchHotelChainsFetcher, getConfermaRoomImagesFetcher, isPostcodeValidValueTester, deleteUserAddressUpdater, deleteRecentSearchUpdater, saveRecentSearchUpdater, getUserCarbonAllowanceFetcher, saveFavouriteSearchUpdater, getHotelChainsFetcher, getRailProvidersFetcher, getAllAirlinesFetcher, getCarHireProvidersFetcher, environment, loungeFetcher, parkingFetcher, httpCallService, flightFetcher, hotelFetcher, carhireFetcher, carHireAvailabilityDetailFetcher, cabhireFetcher, railFetcher, irlFetcher, depotFetcher, getRailStationInfoFetcher, getRailStationFetcher, getIrlSupplierStationFetcher, webTokenService, riskAlertsFetcher, quicklistFetcher, getUserRecentSearchesFetcher, getRailCardsFetcher, getCovidMicrositeTokenFetcher, eurostarFetcher, searchUsersCanBookForFetcher, searchIrlStationsFetcher, irlDiscountCardFetcher, flightFareRulesFetcher, getFlightSeatMapFetcher, getRailLiveDeparturesFetcher, hotelRulesFetcher, flightRulesFetcher, getUserFavouriteSearchesFetcher, deleteFavouriteSearchUpdater, modalService, emailBasketFetcher, fasttrackFetcher, sendOfflineNotificationFetcher, generateBasketPdfFetcher, emailFerryFetcher, getFlightExtrasOptions, convertCurrencyFetcher, getCurrencyConversionRatesFetcher, getHotelDetailsFetcher, getServiceFetcher, getFlightBrandedFaresFetcher, getTrainlineSearchConfigFetcher, searchRailInwardFetcher, getRailSearchExchangeFetcher, createRailItineraryExchangeUpdater, getAirAvailbilityFetcher, getFlightAtNewClassFetcher, getFlightUpsellOffersFetcher, getOfficesFetcher, getFlightSearchExchangeFetcher, getFlightExchangeDetailsFetcher, emailApartmentBookingFetcher, emailSeasonTicketBookingFetcher, suggestPlacesFetcher, getLatLonFromHereIdFetcher, getGMTItineraryOptions, getGutCitySuggestionsFetcher, getGutLocationSuggestionsFetcher, GetRouteHappyFetcher, getMultipleHotelRatingFetcher, emailMeetingRoomBookingFetcher, emailAmbulanceBookingFetcher, getEntLocationByPostcode, getEntLocationByCity, getUserRecentBoltSearchesFetcher, saveRecentBoltSearchUpdater, getFerryPortsFetcher, getBannerFetcher, updateDOBUpdater, updateFlightSeatMapUpdater, deleteAllRecentSearchesUpdater, getOfficeDivisionsFetcher, searchGeoLocationFetcher, searchDiscoverLocationFetcher, getJyrneyUrlFetcher, getPriceHiddenSabreExchangeFetcher) {
16508
- super(searchAirportsFetcher, searchAirlinesFetcher, storageService, userService, modalService, router, helpers, hotelAvalibilityService, citiesFetcher, postcodeFetcher, railStationFetcher, saveUserAddressUpdater, editUserAddressUpdater, userAddressesFetcher, basketService, getUserCompanyOfficesFetcher, searchHotelChainsFetcher, getConfermaRoomImagesFetcher, isPostcodeValidValueTester, depotFetcher, deleteUserAddressUpdater, deleteRecentSearchUpdater, saveRecentSearchUpdater, getUserCarbonAllowanceFetcher, saveFavouriteSearchUpdater, environment, loungeFetcher, parkingFetcher, httpCallService, flightFetcher, hotelFetcher, carhireFetcher, carHireAvailabilityDetailFetcher, cabhireFetcher, railFetcher, irlFetcher, getRailStationInfoFetcher, getRailStationFetcher, getIrlSupplierStationFetcher, webTokenService, riskAlertsFetcher, quicklistFetcher, getUserRecentSearchesFetcher, getRailCardsFetcher, getCovidMicrositeTokenFetcher, eurostarFetcher, searchUsersCanBookForFetcher, searchIrlStationsFetcher, irlDiscountCardFetcher, flightFareRulesFetcher, getFlightSeatMapFetcher, getRailLiveDeparturesFetcher, hotelRulesFetcher, flightRulesFetcher, getUserFavouriteSearchesFetcher, deleteFavouriteSearchUpdater, emailBasketFetcher, fasttrackFetcher, sendOfflineNotificationFetcher, getHotelChainsFetcher, getRailProvidersFetcher, getAllAirlinesFetcher, getCarHireProvidersFetcher, generateBasketPdfFetcher, emailFerryFetcher, getFlightExtrasOptions, convertCurrencyFetcher, getCurrencyConversionRatesFetcher, getHotelDetailsFetcher, getServiceFetcher, getFlightBrandedFaresFetcher, getTrainlineSearchConfigFetcher, searchRailInwardFetcher, getRailSearchExchangeFetcher, createRailItineraryExchangeUpdater, getAirAvailbilityFetcher, getFlightAtNewClassFetcher, getFlightUpsellOffersFetcher, getOfficesFetcher, emailApartmentBookingFetcher, emailSeasonTicketBookingFetcher, suggestPlacesFetcher, getLatLonFromHereIdFetcher, getGMTItineraryOptions, getGutCitySuggestionsFetcher, getGutLocationSuggestionsFetcher, GetRouteHappyFetcher, getMultipleHotelRatingFetcher, emailMeetingRoomBookingFetcher, getFlightSearchExchangeFetcher, getFlightExchangeDetailsFetcher, getEntLocationByPostcode, getEntLocationByCity, getUserRecentBoltSearchesFetcher, saveRecentBoltSearchUpdater, getFerryPortsFetcher, getBannerFetcher, updateDOBUpdater, updateFlightSeatMapUpdater, deleteAllRecentSearchesUpdater, getOfficeDivisionsFetcher, searchGeoLocationFetcher, searchDiscoverLocationFetcher, getJyrneyUrlFetcher, getPriceHiddenSabreExchangeFetcher, emailAmbulanceBookingFetcher);
16311
+ constructor(searchAirportsFetcher, searchAirlinesFetcher, storageService, userService, router, helpers, hotelAvalibilityService, citiesFetcher, postcodeFetcher, railStationFetcher, saveUserAddressUpdater, editUserAddressUpdater, userAddressesFetcher, basketService, getUserCompanyOfficesFetcher, searchHotelChainsFetcher, getConfermaRoomImagesFetcher, isPostcodeValidValueTester, deleteUserAddressUpdater, deleteRecentSearchUpdater, saveRecentSearchUpdater, getUserCarbonAllowanceFetcher, saveFavouriteSearchUpdater, getHotelChainsFetcher, getRailProvidersFetcher, getAllAirlinesFetcher, getCarHireProvidersFetcher, environment, loungeFetcher, parkingFetcher, httpCallService, flightFetcher, hotelFetcher, carhireFetcher, carHireAvailabilityDetailFetcher, cabhireFetcher, railFetcher, irlFetcher, depotFetcher, getRailStationInfoFetcher, getRailStationFetcher, getIrlSupplierStationFetcher, webTokenService, riskAlertsFetcher, quicklistFetcher, getUserRecentSearchesFetcher, getRailCardsFetcher, getCovidMicrositeTokenFetcher, eurostarFetcher, searchUsersCanBookForFetcher, searchIrlStationsFetcher, irlDiscountCardFetcher, flightFareRulesFetcher, getFlightSeatMapFetcher, getRailLiveDeparturesFetcher, hotelRulesFetcher, flightRulesFetcher, getUserFavouriteSearchesFetcher, deleteFavouriteSearchUpdater, modalService, emailBasketFetcher, fasttrackFetcher, sendOfflineNotificationFetcher, generateBasketPdfFetcher, emailFerryFetcher, getFlightExtrasOptions, convertCurrencyFetcher, getCurrencyConversionRatesFetcher, getHotelDetailsFetcher, getServiceFetcher, getFlightBrandedFaresFetcher, getTrainlineSearchConfigFetcher, searchRailInwardFetcher, getRailSearchExchangeFetcher, createRailItineraryExchangeUpdater, getAirAvailbilityFetcher, getFlightAtNewClassFetcher, getFlightUpsellOffersFetcher, getOfficesFetcher, getFlightSearchExchangeFetcher, getFlightExchangeDetailsFetcher, emailApartmentBookingFetcher, emailSeasonTicketBookingFetcher, suggestPlacesFetcher, getLatLonFromHereIdFetcher, getGMTItineraryOptions, getGutCitySuggestionsFetcher, getGutLocationSuggestionsFetcher, GetRouteHappyFetcher, getMultipleHotelRatingFetcher, emailMeetingRoomBookingFetcher, emailAmbulanceBookingFetcher, getEntLocationByPostcode, getEntLocationByCity, getUserRecentBoltSearchesFetcher, saveRecentBoltSearchUpdater, getFerryPortsFetcher, getBannerFetcher, updateDOBUpdater, updateFlightSeatMapUpdater, deleteAllRecentSearchesUpdater, getOfficeDivisionsFetcher, searchGeoLocationFetcher, searchDiscoverLocationFetcher, getPriceHiddenSabreExchangeFetcher) {
16312
+ super(searchAirportsFetcher, searchAirlinesFetcher, storageService, userService, modalService, router, helpers, hotelAvalibilityService, citiesFetcher, postcodeFetcher, railStationFetcher, saveUserAddressUpdater, editUserAddressUpdater, userAddressesFetcher, basketService, getUserCompanyOfficesFetcher, searchHotelChainsFetcher, getConfermaRoomImagesFetcher, isPostcodeValidValueTester, depotFetcher, deleteUserAddressUpdater, deleteRecentSearchUpdater, saveRecentSearchUpdater, getUserCarbonAllowanceFetcher, saveFavouriteSearchUpdater, environment, loungeFetcher, parkingFetcher, httpCallService, flightFetcher, hotelFetcher, carhireFetcher, carHireAvailabilityDetailFetcher, cabhireFetcher, railFetcher, irlFetcher, getRailStationInfoFetcher, getRailStationFetcher, getIrlSupplierStationFetcher, webTokenService, riskAlertsFetcher, quicklistFetcher, getUserRecentSearchesFetcher, getRailCardsFetcher, getCovidMicrositeTokenFetcher, eurostarFetcher, searchUsersCanBookForFetcher, searchIrlStationsFetcher, irlDiscountCardFetcher, flightFareRulesFetcher, getFlightSeatMapFetcher, getRailLiveDeparturesFetcher, hotelRulesFetcher, flightRulesFetcher, getUserFavouriteSearchesFetcher, deleteFavouriteSearchUpdater, emailBasketFetcher, fasttrackFetcher, sendOfflineNotificationFetcher, getHotelChainsFetcher, getRailProvidersFetcher, getAllAirlinesFetcher, getCarHireProvidersFetcher, generateBasketPdfFetcher, emailFerryFetcher, getFlightExtrasOptions, convertCurrencyFetcher, getCurrencyConversionRatesFetcher, getHotelDetailsFetcher, getServiceFetcher, getFlightBrandedFaresFetcher, getTrainlineSearchConfigFetcher, searchRailInwardFetcher, getRailSearchExchangeFetcher, createRailItineraryExchangeUpdater, getAirAvailbilityFetcher, getFlightAtNewClassFetcher, getFlightUpsellOffersFetcher, getOfficesFetcher, emailApartmentBookingFetcher, emailSeasonTicketBookingFetcher, suggestPlacesFetcher, getLatLonFromHereIdFetcher, getGMTItineraryOptions, getGutCitySuggestionsFetcher, getGutLocationSuggestionsFetcher, GetRouteHappyFetcher, getMultipleHotelRatingFetcher, emailMeetingRoomBookingFetcher, getFlightSearchExchangeFetcher, getFlightExchangeDetailsFetcher, getEntLocationByPostcode, getEntLocationByCity, getUserRecentBoltSearchesFetcher, saveRecentBoltSearchUpdater, getFerryPortsFetcher, getBannerFetcher, updateDOBUpdater, updateFlightSeatMapUpdater, deleteAllRecentSearchesUpdater, getOfficeDivisionsFetcher, searchGeoLocationFetcher, searchDiscoverLocationFetcher, getPriceHiddenSabreExchangeFetcher, emailAmbulanceBookingFetcher);
16509
16313
  }
16510
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseSearchService, deps: [{ token: SearchAirportsFetcher }, { token: SearchAirlinesFetcher }, { token: StorageService }, { token: UserService }, { token: i2.Router }, { token: HelperRoutines }, { token: HotelAvalibilityService }, { token: SearchCityFetcher }, { token: SearchPostcodeFetcher }, { token: SearchRailStationsFetcher }, { token: SaveUserAddressUpdater }, { token: EditUserAddressUpdater }, { token: UserAddressesFetcher }, { token: EnterpriseBasketService }, { token: GetUserCompanyOfficesFetcher }, { token: SearchHotelChainsFetcher }, { token: GetConfermaRoomImagesFetcher }, { token: IsPostcodeValidValueTester }, { token: DeleteUserAddressUpdater }, { token: DeleteRecentSearchUpdater }, { token: SaveRecentSearchUpdater }, { token: GetUserCarbonAllowanceFetcher }, { token: SaveFavouriteSearchUpdater }, { token: GetHotelChainsFetcher }, { token: GetRailProvidersFetcher }, { token: GetAllAirlinesFetcher }, { token: GetCarHireProvidersFetcher }, { token: Environment }, { token: LoungeQuoteFetcher }, { token: ParkingQuoteFetcher }, { token: HttpCallService }, { token: FlightQuoteFetcher }, { token: HotelQuoteFetcher }, { token: CarhireQuoteFetcher }, { token: CarHireAvailabilityDetailFetcher }, { token: CabhireQuoteFetcher }, { token: RailQuoteFetcher }, { token: IrlQuoteFetcher }, { token: SearchDepotFetcher }, { token: GetRailStationInfoFetcher }, { token: GetRailStationFetcher }, { token: GetIrlSupplierStationFetcher }, { token: WebTokenService }, { token: GetRiskAlertsFetcher }, { token: SearchConfermaQuicklistFetcher }, { token: GetUserRecentSearchesFetcher }, { token: GetRailcardsFetcher }, { token: GetCovidMicrositeTokenFetcher }, { token: EurostarQuoteFetcher }, { token: SearchUsersCanBookForFetcher }, { token: SearchIrlStationsFetcher }, { token: IrlDiscountCardFetcher }, { token: GetFlightFareRulesFetcher }, { token: GetFlightSeatMapFetcher }, { token: GetRailLiveDeparturesFetcher }, { token: ApplyHotelRulesFetcher }, { token: ApplyJitFlightRulesFetcher }, { token: GetUserFavouriteSearchesFetcher }, { token: DeleteFavouriteSearchUpdater }, { token: ModalOpenerService }, { token: EmailBasketFetcher }, { token: FastTrackQuoteFetcher }, { token: SendOfflineNotificationFetcher }, { token: GenerateBasketPdfFetcher }, { token: EmailFerryBookingFetcher }, { token: GetFlightExtrasOptionsFetcher }, { token: ConvertCurrencyFetcher }, { token: GetCurrencyConversionRatesFetcher }, { token: GetHotelDetailsFetcher }, { token: GetServiceFetcher }, { token: GetFlightBrandedFaresFetcher }, { token: GetTrainlineSearchConfigFetcher }, { token: SearchRailInwardFetcher }, { token: GetRailSearchExchangeFetcher }, { token: CreateItineraryExchangeUpdater }, { token: GetAirAvailabilityFetcher }, { token: GetFlightAtNewClassFetcher }, { token: GetFlightUpsellOffersFetcher }, { token: GetOfficesFetcher }, { token: GetFlightSearchExchangeFetcher }, { token: GetFlightExchangeDetailsFetcher }, { token: EmailApartmentBookingFetcher }, { token: EmailSeasonTicketBookingFetcher }, { token: SuggestPlacesFetcher }, { token: GetLatLonFromHereIdFetcher }, { token: GetGmtItineraryOptionsFetcher }, { token: GetGutCitySuggestionsFetcher }, { token: GetGutLocationSuggestionsFetcher }, { token: GetRouteHappyFetcher }, { token: GetMultipleHotelRatingFetcher }, { token: EmailMeetingRoomBookingFetcher }, { token: EmailAmbulanceBookingFetcher }, { token: GetEntLocationByPostcode }, { token: GetEntLocationByCity }, { token: GetUserRecentBoltSearchesFetcher }, { token: SaveRecentBoltSearchUpdater }, { token: GetFerryPortsFetcher }, { token: GetBannerFetcher }, { token: UpdateDOBUpdater }, { token: UpdateFlightSeatMapUpdater }, { token: DeleteAllRecentSearchesUpdater }, { token: GetOfficeDivisionsFetcher }, { token: SearchGeoLocationFetcher }, { token: SearchDiscoverLocationFetcher }, { token: GetJyrneyUrlFetcher }, { token: GetPriceHiddenSabreExchangeFetcher }], target: i0.ɵɵFactoryTarget.Injectable });
16314
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseSearchService, deps: [{ token: SearchAirportsFetcher }, { token: SearchAirlinesFetcher }, { token: StorageService }, { token: UserService }, { token: i2.Router }, { token: HelperRoutines }, { token: HotelAvalibilityService }, { token: SearchCityFetcher }, { token: SearchPostcodeFetcher }, { token: SearchRailStationsFetcher }, { token: SaveUserAddressUpdater }, { token: EditUserAddressUpdater }, { token: UserAddressesFetcher }, { token: EnterpriseBasketService }, { token: GetUserCompanyOfficesFetcher }, { token: SearchHotelChainsFetcher }, { token: GetConfermaRoomImagesFetcher }, { token: IsPostcodeValidValueTester }, { token: DeleteUserAddressUpdater }, { token: DeleteRecentSearchUpdater }, { token: SaveRecentSearchUpdater }, { token: GetUserCarbonAllowanceFetcher }, { token: SaveFavouriteSearchUpdater }, { token: GetHotelChainsFetcher }, { token: GetRailProvidersFetcher }, { token: GetAllAirlinesFetcher }, { token: GetCarHireProvidersFetcher }, { token: Environment }, { token: LoungeQuoteFetcher }, { token: ParkingQuoteFetcher }, { token: HttpCallService }, { token: FlightQuoteFetcher }, { token: HotelQuoteFetcher }, { token: CarhireQuoteFetcher }, { token: CarHireAvailabilityDetailFetcher }, { token: CabhireQuoteFetcher }, { token: RailQuoteFetcher }, { token: IrlQuoteFetcher }, { token: SearchDepotFetcher }, { token: GetRailStationInfoFetcher }, { token: GetRailStationFetcher }, { token: GetIrlSupplierStationFetcher }, { token: WebTokenService }, { token: GetRiskAlertsFetcher }, { token: SearchConfermaQuicklistFetcher }, { token: GetUserRecentSearchesFetcher }, { token: GetRailcardsFetcher }, { token: GetCovidMicrositeTokenFetcher }, { token: EurostarQuoteFetcher }, { token: SearchUsersCanBookForFetcher }, { token: SearchIrlStationsFetcher }, { token: IrlDiscountCardFetcher }, { token: GetFlightFareRulesFetcher }, { token: GetFlightSeatMapFetcher }, { token: GetRailLiveDeparturesFetcher }, { token: ApplyHotelRulesFetcher }, { token: ApplyJitFlightRulesFetcher }, { token: GetUserFavouriteSearchesFetcher }, { token: DeleteFavouriteSearchUpdater }, { token: ModalOpenerService }, { token: EmailBasketFetcher }, { token: FastTrackQuoteFetcher }, { token: SendOfflineNotificationFetcher }, { token: GenerateBasketPdfFetcher }, { token: EmailFerryBookingFetcher }, { token: GetFlightExtrasOptionsFetcher }, { token: ConvertCurrencyFetcher }, { token: GetCurrencyConversionRatesFetcher }, { token: GetHotelDetailsFetcher }, { token: GetServiceFetcher }, { token: GetFlightBrandedFaresFetcher }, { token: GetTrainlineSearchConfigFetcher }, { token: SearchRailInwardFetcher }, { token: GetRailSearchExchangeFetcher }, { token: CreateItineraryExchangeUpdater }, { token: GetAirAvailabilityFetcher }, { token: GetFlightAtNewClassFetcher }, { token: GetFlightUpsellOffersFetcher }, { token: GetOfficesFetcher }, { token: GetFlightSearchExchangeFetcher }, { token: GetFlightExchangeDetailsFetcher }, { token: EmailApartmentBookingFetcher }, { token: EmailSeasonTicketBookingFetcher }, { token: SuggestPlacesFetcher }, { token: GetLatLonFromHereIdFetcher }, { token: GetGmtItineraryOptionsFetcher }, { token: GetGutCitySuggestionsFetcher }, { token: GetGutLocationSuggestionsFetcher }, { token: GetRouteHappyFetcher }, { token: GetMultipleHotelRatingFetcher }, { token: EmailMeetingRoomBookingFetcher }, { token: EmailAmbulanceBookingFetcher }, { token: GetEntLocationByPostcode }, { token: GetEntLocationByCity }, { token: GetUserRecentBoltSearchesFetcher }, { token: SaveRecentBoltSearchUpdater }, { token: GetFerryPortsFetcher }, { token: GetBannerFetcher }, { token: UpdateDOBUpdater }, { token: UpdateFlightSeatMapUpdater }, { token: DeleteAllRecentSearchesUpdater }, { token: GetOfficeDivisionsFetcher }, { token: SearchGeoLocationFetcher }, { token: SearchDiscoverLocationFetcher }, { token: GetPriceHiddenSabreExchangeFetcher }], target: i0.ɵɵFactoryTarget.Injectable });
16511
16315
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseSearchService, providedIn: 'root' });
16512
16316
  }
16513
16317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EnterpriseSearchService, decorators: [{
16514
16318
  type: Injectable,
16515
16319
  args: [{ providedIn: 'root' }]
16516
- }], ctorParameters: () => [{ type: SearchAirportsFetcher }, { type: SearchAirlinesFetcher }, { type: StorageService }, { type: UserService }, { type: i2.Router }, { type: HelperRoutines }, { type: HotelAvalibilityService }, { type: SearchCityFetcher }, { type: SearchPostcodeFetcher }, { type: SearchRailStationsFetcher }, { type: SaveUserAddressUpdater }, { type: EditUserAddressUpdater }, { type: UserAddressesFetcher }, { type: EnterpriseBasketService }, { type: GetUserCompanyOfficesFetcher }, { type: SearchHotelChainsFetcher }, { type: GetConfermaRoomImagesFetcher }, { type: IsPostcodeValidValueTester }, { type: DeleteUserAddressUpdater }, { type: DeleteRecentSearchUpdater }, { type: SaveRecentSearchUpdater }, { type: GetUserCarbonAllowanceFetcher }, { type: SaveFavouriteSearchUpdater }, { type: GetHotelChainsFetcher }, { type: GetRailProvidersFetcher }, { type: GetAllAirlinesFetcher }, { type: GetCarHireProvidersFetcher }, { type: Environment }, { type: LoungeQuoteFetcher }, { type: ParkingQuoteFetcher }, { type: HttpCallService }, { type: FlightQuoteFetcher }, { type: HotelQuoteFetcher }, { type: CarhireQuoteFetcher }, { type: CarHireAvailabilityDetailFetcher }, { type: CabhireQuoteFetcher }, { type: RailQuoteFetcher }, { type: IrlQuoteFetcher }, { type: SearchDepotFetcher }, { type: GetRailStationInfoFetcher }, { type: GetRailStationFetcher }, { type: GetIrlSupplierStationFetcher }, { type: WebTokenService }, { type: GetRiskAlertsFetcher }, { type: SearchConfermaQuicklistFetcher }, { type: GetUserRecentSearchesFetcher }, { type: GetRailcardsFetcher }, { type: GetCovidMicrositeTokenFetcher }, { type: EurostarQuoteFetcher }, { type: SearchUsersCanBookForFetcher }, { type: SearchIrlStationsFetcher }, { type: IrlDiscountCardFetcher }, { type: GetFlightFareRulesFetcher }, { type: GetFlightSeatMapFetcher }, { type: GetRailLiveDeparturesFetcher }, { type: ApplyHotelRulesFetcher }, { type: ApplyJitFlightRulesFetcher }, { type: GetUserFavouriteSearchesFetcher }, { type: DeleteFavouriteSearchUpdater }, { type: ModalOpenerService }, { type: EmailBasketFetcher }, { type: FastTrackQuoteFetcher }, { type: SendOfflineNotificationFetcher }, { type: GenerateBasketPdfFetcher }, { type: EmailFerryBookingFetcher }, { type: GetFlightExtrasOptionsFetcher }, { type: ConvertCurrencyFetcher }, { type: GetCurrencyConversionRatesFetcher }, { type: GetHotelDetailsFetcher }, { type: GetServiceFetcher }, { type: GetFlightBrandedFaresFetcher }, { type: GetTrainlineSearchConfigFetcher }, { type: SearchRailInwardFetcher }, { type: GetRailSearchExchangeFetcher }, { type: CreateItineraryExchangeUpdater }, { type: GetAirAvailabilityFetcher }, { type: GetFlightAtNewClassFetcher }, { type: GetFlightUpsellOffersFetcher }, { type: GetOfficesFetcher }, { type: GetFlightSearchExchangeFetcher }, { type: GetFlightExchangeDetailsFetcher }, { type: EmailApartmentBookingFetcher }, { type: EmailSeasonTicketBookingFetcher }, { type: SuggestPlacesFetcher }, { type: GetLatLonFromHereIdFetcher }, { type: GetGmtItineraryOptionsFetcher }, { type: GetGutCitySuggestionsFetcher }, { type: GetGutLocationSuggestionsFetcher }, { type: GetRouteHappyFetcher }, { type: GetMultipleHotelRatingFetcher }, { type: EmailMeetingRoomBookingFetcher }, { type: EmailAmbulanceBookingFetcher }, { type: GetEntLocationByPostcode }, { type: GetEntLocationByCity }, { type: GetUserRecentBoltSearchesFetcher }, { type: SaveRecentBoltSearchUpdater }, { type: GetFerryPortsFetcher }, { type: GetBannerFetcher }, { type: UpdateDOBUpdater }, { type: UpdateFlightSeatMapUpdater }, { type: DeleteAllRecentSearchesUpdater }, { type: GetOfficeDivisionsFetcher }, { type: SearchGeoLocationFetcher }, { type: SearchDiscoverLocationFetcher }, { type: GetJyrneyUrlFetcher }, { type: GetPriceHiddenSabreExchangeFetcher }] });
16320
+ }], ctorParameters: () => [{ type: SearchAirportsFetcher }, { type: SearchAirlinesFetcher }, { type: StorageService }, { type: UserService }, { type: i2.Router }, { type: HelperRoutines }, { type: HotelAvalibilityService }, { type: SearchCityFetcher }, { type: SearchPostcodeFetcher }, { type: SearchRailStationsFetcher }, { type: SaveUserAddressUpdater }, { type: EditUserAddressUpdater }, { type: UserAddressesFetcher }, { type: EnterpriseBasketService }, { type: GetUserCompanyOfficesFetcher }, { type: SearchHotelChainsFetcher }, { type: GetConfermaRoomImagesFetcher }, { type: IsPostcodeValidValueTester }, { type: DeleteUserAddressUpdater }, { type: DeleteRecentSearchUpdater }, { type: SaveRecentSearchUpdater }, { type: GetUserCarbonAllowanceFetcher }, { type: SaveFavouriteSearchUpdater }, { type: GetHotelChainsFetcher }, { type: GetRailProvidersFetcher }, { type: GetAllAirlinesFetcher }, { type: GetCarHireProvidersFetcher }, { type: Environment }, { type: LoungeQuoteFetcher }, { type: ParkingQuoteFetcher }, { type: HttpCallService }, { type: FlightQuoteFetcher }, { type: HotelQuoteFetcher }, { type: CarhireQuoteFetcher }, { type: CarHireAvailabilityDetailFetcher }, { type: CabhireQuoteFetcher }, { type: RailQuoteFetcher }, { type: IrlQuoteFetcher }, { type: SearchDepotFetcher }, { type: GetRailStationInfoFetcher }, { type: GetRailStationFetcher }, { type: GetIrlSupplierStationFetcher }, { type: WebTokenService }, { type: GetRiskAlertsFetcher }, { type: SearchConfermaQuicklistFetcher }, { type: GetUserRecentSearchesFetcher }, { type: GetRailcardsFetcher }, { type: GetCovidMicrositeTokenFetcher }, { type: EurostarQuoteFetcher }, { type: SearchUsersCanBookForFetcher }, { type: SearchIrlStationsFetcher }, { type: IrlDiscountCardFetcher }, { type: GetFlightFareRulesFetcher }, { type: GetFlightSeatMapFetcher }, { type: GetRailLiveDeparturesFetcher }, { type: ApplyHotelRulesFetcher }, { type: ApplyJitFlightRulesFetcher }, { type: GetUserFavouriteSearchesFetcher }, { type: DeleteFavouriteSearchUpdater }, { type: ModalOpenerService }, { type: EmailBasketFetcher }, { type: FastTrackQuoteFetcher }, { type: SendOfflineNotificationFetcher }, { type: GenerateBasketPdfFetcher }, { type: EmailFerryBookingFetcher }, { type: GetFlightExtrasOptionsFetcher }, { type: ConvertCurrencyFetcher }, { type: GetCurrencyConversionRatesFetcher }, { type: GetHotelDetailsFetcher }, { type: GetServiceFetcher }, { type: GetFlightBrandedFaresFetcher }, { type: GetTrainlineSearchConfigFetcher }, { type: SearchRailInwardFetcher }, { type: GetRailSearchExchangeFetcher }, { type: CreateItineraryExchangeUpdater }, { type: GetAirAvailabilityFetcher }, { type: GetFlightAtNewClassFetcher }, { type: GetFlightUpsellOffersFetcher }, { type: GetOfficesFetcher }, { type: GetFlightSearchExchangeFetcher }, { type: GetFlightExchangeDetailsFetcher }, { type: EmailApartmentBookingFetcher }, { type: EmailSeasonTicketBookingFetcher }, { type: SuggestPlacesFetcher }, { type: GetLatLonFromHereIdFetcher }, { type: GetGmtItineraryOptionsFetcher }, { type: GetGutCitySuggestionsFetcher }, { type: GetGutLocationSuggestionsFetcher }, { type: GetRouteHappyFetcher }, { type: GetMultipleHotelRatingFetcher }, { type: EmailMeetingRoomBookingFetcher }, { type: EmailAmbulanceBookingFetcher }, { type: GetEntLocationByPostcode }, { type: GetEntLocationByCity }, { type: GetUserRecentBoltSearchesFetcher }, { type: SaveRecentBoltSearchUpdater }, { type: GetFerryPortsFetcher }, { type: GetBannerFetcher }, { type: UpdateDOBUpdater }, { type: UpdateFlightSeatMapUpdater }, { type: DeleteAllRecentSearchesUpdater }, { type: GetOfficeDivisionsFetcher }, { type: SearchGeoLocationFetcher }, { type: SearchDiscoverLocationFetcher }, { type: GetPriceHiddenSabreExchangeFetcher }] });
16517
16321
 
16518
16322
  class GetLatestVersionsFetcher extends BaseGetLatestVersionsFetcher {
16519
16323
  constructor(queryGQL, helpers, modalService) {
@@ -16794,9 +16598,9 @@ class RailFareProcessingService {
16794
16598
  const hasAdvance = fares.some((fare) => fare?.name?.toLowerCase().includes(RailFareNameKeywords.ADVANCE));
16795
16599
  const hasFlexible = fares.some((fare) => {
16796
16600
  const nameLower = fare?.name?.toLowerCase() || '';
16797
- return (nameLower.includes(RailFareNameKeywords.OFF_PEAK) ||
16601
+ return nameLower.includes(RailFareNameKeywords.OFF_PEAK) ||
16798
16602
  nameLower.includes(RailFareNameKeywords.ANYTIME) ||
16799
- nameLower.includes(RailFareNameKeywords.SUPER_OFF_PEAK));
16603
+ nameLower.includes(RailFareNameKeywords.SUPER_OFF_PEAK);
16800
16604
  });
16801
16605
  const hasPremiumOrStandard = fares.some((fare) => {
16802
16606
  const nameLower = fare?.name?.toLowerCase() || '';
@@ -16829,8 +16633,7 @@ class RailFareProcessingService {
16829
16633
  let cheapestTicket = null;
16830
16634
  let cheapestPrice = Number.MAX_SAFE_INTEGER;
16831
16635
  for (const candidateTicket of allFares) {
16832
- if (!candidateTicket ||
16833
- candidateTicket.identifiers?.isSplit ||
16636
+ if (!candidateTicket || candidateTicket.identifiers?.isSplit ||
16834
16637
  candidateTicket.class !== splitTicket.class ||
16835
16638
  candidateTicket.singleOrReturn !== splitTicket.singleOrReturn) {
16836
16639
  continue;
@@ -16854,15 +16657,15 @@ class RailFareProcessingService {
16854
16657
  return candidateTypeLower.includes('advance');
16855
16658
  }
16856
16659
  else if (splitType === RailSplitType.FLEXIBLE) {
16857
- return (candidateTypeLower.includes('off-peak') ||
16660
+ return candidateTypeLower.includes('off-peak') ||
16858
16661
  candidateTypeLower.includes('anytime') ||
16859
- candidateTypeLower.includes('super off-peak'));
16662
+ candidateTypeLower.includes('super off-peak');
16860
16663
  }
16861
16664
  else if (splitType === RailSplitType.COMBINED) {
16862
- return (candidateTypeLower.includes('advance') ||
16665
+ return candidateTypeLower.includes('advance') ||
16863
16666
  candidateTypeLower.includes('off-peak') ||
16864
16667
  candidateTypeLower.includes('anytime') ||
16865
- candidateTypeLower.includes('super off-peak'));
16668
+ candidateTypeLower.includes('super off-peak');
16866
16669
  }
16867
16670
  return true;
16868
16671
  }
@@ -16898,7 +16701,7 @@ class RailFareProcessingService {
16898
16701
  * Find the journey that contains a specific ticket
16899
16702
  */
16900
16703
  findJourneyContainingTicket(targetTicket, journeys) {
16901
- return (journeys.find((journey) => {
16704
+ return journeys.find(journey => {
16902
16705
  const allFares = [
16903
16706
  ...Object.values(journey.singleJourneyFares || {}).flat(),
16904
16707
  ...Object.values(journey.returnJourneyFares || {}).flat(),
@@ -16906,8 +16709,8 @@ class RailFareProcessingService {
16906
16709
  ...Object.values(journey.openReturnJourneyFares || {}).flat(),
16907
16710
  ...Object.values(journey.splitFares || {}).flat()
16908
16711
  ];
16909
- return allFares.some((ticket) => ticket?.fareHash === targetTicket.fareHash);
16910
- }) || null);
16712
+ return allFares.some(ticket => ticket?.fareHash === targetTicket.fareHash);
16713
+ }) || null;
16911
16714
  }
16912
16715
  /**
16913
16716
  * Find the cheapest non-split ticket in a journey
@@ -16918,7 +16721,7 @@ class RailFareProcessingService {
16918
16721
  ...Object.values(journey.returnJourneyFares || {}).flat(),
16919
16722
  ...Object.values(journey.dualSingleJourneyFares || {}).flat(),
16920
16723
  ...Object.values(journey.openReturnJourneyFares || {}).flat()
16921
- ].filter((ticket) => ticket && !ticket.identifiers?.isSplit && ticket.selectable && !ticket.unavailable);
16724
+ ].filter(ticket => ticket && !ticket.identifiers?.isSplit && ticket.selectable && !ticket.unavailable);
16922
16725
  if (!nonSplitFares.length) {
16923
16726
  return null;
16924
16727
  }
@@ -16940,10 +16743,10 @@ class RailFareProcessingService {
16940
16743
  journey.openReturnJourneyFares,
16941
16744
  journey.splitFares
16942
16745
  ];
16943
- return fareTypes.some((fareType) => {
16746
+ return fareTypes.some(fareType => {
16944
16747
  if (!fareType)
16945
16748
  return false;
16946
- return Object.values(fareType).some((fareArray) => fareArray?.some((fare) => fare?.fareHash === ticket.fareHash));
16749
+ return Object.values(fareType).some((fareArray) => fareArray?.some(fare => fare?.fareHash === ticket.fareHash));
16947
16750
  });
16948
16751
  }
16949
16752
  /**
@@ -16958,11 +16761,12 @@ class RailFareProcessingService {
16958
16761
  journey.openReturnJourneyFares,
16959
16762
  journey.splitFares
16960
16763
  ];
16961
- fareTypes.forEach((fareType) => {
16764
+ fareTypes.forEach(fareType => {
16962
16765
  if (fareType) {
16963
16766
  Object.values(fareType).forEach((fareArray) => {
16964
- fareArray?.forEach((fare) => {
16965
- if (fare?.class === ticketClass && fare?.singleOrReturn === singleOrReturn) {
16767
+ fareArray?.forEach(fare => {
16768
+ if (fare?.class === ticketClass &&
16769
+ (fare?.singleOrReturn === singleOrReturn)) {
16966
16770
  allTickets.push(fare);
16967
16771
  }
16968
16772
  });
@@ -16970,7 +16774,7 @@ class RailFareProcessingService {
16970
16774
  }
16971
16775
  });
16972
16776
  // Remove duplicates based on fareHash
16973
- const uniqueTickets = allTickets.filter((ticket, index, self) => index === self.findIndex((t) => t.fareHash === ticket.fareHash));
16777
+ const uniqueTickets = allTickets.filter((ticket, index, self) => index === self.findIndex(t => t.fareHash === ticket.fareHash));
16974
16778
  // Sort by price ascending
16975
16779
  return uniqueTickets.sort((a, b) => Number(a.price) - Number(b.price));
16976
16780
  }
@@ -16992,11 +16796,7 @@ class RailFareProcessingService {
16992
16796
  else if (splitType === RailSplitType.COMBINED) {
16993
16797
  comparisonType = 'cheapest single fare';
16994
16798
  }
16995
- return (baseTooltip +
16996
- ', saving ' +
16997
- this.formatCurrency(+savings, ticket.currency) +
16998
- ' compared to booking the ' +
16999
- comparisonType);
16799
+ return baseTooltip + ', saving ' + this.formatCurrency(+savings, ticket.currency) + ' compared to booking the ' + comparisonType;
17000
16800
  }
17001
16801
  return baseTooltip;
17002
16802
  }
@@ -17020,7 +16820,7 @@ class RailFareProcessingService {
17020
16820
  return true;
17021
16821
  }
17022
16822
  }
17023
- else if (ticket?.discountInfo?.some((x) => x.type === DiscountType.Groupsave)) {
16823
+ else if (ticket?.discountInfo?.some(x => x.type === DiscountType.Groupsave)) {
17024
16824
  return true;
17025
16825
  }
17026
16826
  return false;
@@ -17035,8 +16835,8 @@ class RailFareProcessingService {
17035
16835
  * Check if split tooltip should be shown
17036
16836
  */
17037
16837
  shouldShowSplitTooltip(ticket) {
17038
- return (ticket?.identifiers?.isSplit &&
17039
- ticket?.identifiers?.composition?.includes(RailSearchComposition.InterchangeSplit));
16838
+ return ticket?.identifiers?.isSplit &&
16839
+ ticket?.identifiers?.composition?.includes(RailSearchComposition.InterchangeSplit);
17040
16840
  }
17041
16841
  /**
17042
16842
  * Get the fare type for a ticket within a journey
@@ -17066,19 +16866,19 @@ class RailFareProcessingService {
17066
16866
  */
17067
16867
  calculateTicketSavings(journeys) {
17068
16868
  const ticketSavings = {};
17069
- journeys.forEach((journey) => {
16869
+ journeys.forEach(journey => {
17070
16870
  const fareTypes = [
17071
16871
  journey.dualSingleJourneyFares,
17072
16872
  journey.returnJourneyFares,
17073
16873
  journey.splitFares,
17074
16874
  journey.singleJourneyFares
17075
16875
  ];
17076
- fareTypes.forEach((fares) => {
16876
+ fareTypes.forEach(fares => {
17077
16877
  if (fares) {
17078
- Object.keys(fares).forEach((className) => {
16878
+ Object.keys(fares).forEach(className => {
17079
16879
  const tickets = fares[className];
17080
16880
  if (Array.isArray(tickets)) {
17081
- tickets.forEach((ticket) => {
16881
+ tickets.forEach(ticket => {
17082
16882
  if (ticket?.fareHash) {
17083
16883
  ticketSavings[ticket.fareHash] = this.splitSavings(ticket, journeys);
17084
16884
  }
@@ -17145,23 +16945,16 @@ class RailResultsStateService {
17145
16945
  resultsObject.standardReturns[journey.journeyHash] = standardReturns[0];
17146
16946
  resultsObject.firstClassReturns[journey.journeyHash] = firstClassReturns[0];
17147
16947
  // Calculate date difference from first journey
17148
- const diff = moment$1(journey.departDateTime)
17149
- .startOf('day')
17150
- .diff(moment$1(journeys[0].departDateTime).startOf('day'), 'day');
16948
+ const diff = moment$1(journey.departDateTime).startOf('day').diff(moment$1(journeys[0].departDateTime).startOf('day'), 'day');
17151
16949
  datesAfterInitial.push(!!diff);
17152
16950
  // Check for busy times
17153
16951
  const departDateTime = moment$1(journey.departDateTime);
17154
- const departTimeToday = moment$1()
17155
- .clone()
17156
- .hour(departDateTime.hour())
17157
- .minute(departDateTime.minute())
17158
- .second(departDateTime.second());
16952
+ const departTimeToday = moment$1().clone().hour(departDateTime.hour()).minute(departDateTime.minute()).second(departDateTime.second());
17159
16953
  const sixThirty = moment$1('06:30', 'HH:mm');
17160
16954
  const eightThirty = moment$1('08:30', 'HH:mm');
17161
16955
  const sixteenThirty = moment$1('16:30', 'HH:mm');
17162
16956
  const eighteen = moment$1('18:00', 'HH:mm');
17163
- if (departTimeToday.isBetween(sixThirty, eightThirty) ||
17164
- departTimeToday.isBetween(sixteenThirty, eighteen)) {
16957
+ if (departTimeToday.isBetween(sixThirty, eightThirty) || departTimeToday.isBetween(sixteenThirty, eighteen)) {
17165
16958
  busyTimes[journey.journeyHash] = true;
17166
16959
  }
17167
16960
  });
@@ -17180,7 +16973,7 @@ class RailResultsStateService {
17180
16973
  journey.singleJourneyFares,
17181
16974
  journey.splitFares
17182
16975
  ];
17183
- fareTypes.forEach((fareType) => {
16976
+ fareTypes.forEach(fareType => {
17184
16977
  if (fareType) {
17185
16978
  Object.keys(fareType).forEach((key) => {
17186
16979
  const arrayOfTickets = fareType[key];
@@ -17219,19 +17012,15 @@ class RailResultsStateService {
17219
17012
  journey.singleJourneyFares,
17220
17013
  journey.splitFares
17221
17014
  ];
17222
- fareTypes.forEach((fareType) => {
17015
+ fareTypes.forEach(fareType => {
17223
17016
  if (fareType) {
17224
17017
  Object.keys(fareType).forEach((key) => {
17225
17018
  const arrayOfTickets = fareType[key];
17226
17019
  arrayOfTickets?.forEach((ticket) => {
17227
- if (ticket?.class === RailClass.Standard &&
17228
- ticket?.singleOrReturn === SingleOrReturn.Return &&
17229
- ticket?.selectable) {
17020
+ if (ticket?.class === RailClass.Standard && ticket?.singleOrReturn === SingleOrReturn.Return && ticket?.selectable) {
17230
17021
  standardReturns.push(ticket);
17231
17022
  }
17232
- else if (ticket?.class === RailClass.First &&
17233
- ticket?.singleOrReturn === SingleOrReturn.Return &&
17234
- ticket?.selectable) {
17023
+ else if (ticket?.class === RailClass.First && ticket?.singleOrReturn === SingleOrReturn.Return && ticket?.selectable) {
17235
17024
  firstClassReturns.push(ticket);
17236
17025
  }
17237
17026
  });
@@ -17310,7 +17099,7 @@ class RailResultsStateService {
17310
17099
  * Sort fares by price ascending
17311
17100
  */
17312
17101
  sortByPrice(fares) {
17313
- return fares.sort((a, b) => (a.price > b.price ? 1 : b.price > a.price ? -1 : 0));
17102
+ return fares.sort((a, b) => (a.price > b.price) ? 1 : ((b.price > a.price) ? -1 : 0));
17314
17103
  }
17315
17104
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: RailResultsStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17316
17105
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: RailResultsStateService, providedIn: 'root' });
@@ -17449,10 +17238,8 @@ class SearchPaymentValidationService {
17449
17238
  */
17450
17239
  validatePaymentMethods(services) {
17451
17240
  return this.userService.getApexxListCards().pipe(map((cards) => {
17452
- const hasNoStoredCard = !cards?.some((card) => card.status === 'ENABLED');
17453
- const serviceList = Object.values(services)
17454
- .flat()
17455
- .filter((service) => service.type !== ServiceType.Ferry);
17241
+ const hasNoStoredCard = !cards?.some(card => card.status === 'ENABLED');
17242
+ const serviceList = Object.values(services).flat().filter((service) => service.type !== ServiceType.Ferry);
17456
17243
  const hasOtherPaymentMethods = this.hasOtherPaymentMethods(serviceList);
17457
17244
  const hasApexxCardInServices = this.hasApexxPaymentMethod(serviceList);
17458
17245
  const allServicesAreApexxOnly = this.isOnlyApexxPaymentMethod(serviceList);
@@ -17470,19 +17257,19 @@ class SearchPaymentValidationService {
17470
17257
  * Check if any service has non-Apexx payment methods
17471
17258
  */
17472
17259
  hasOtherPaymentMethods(serviceList) {
17473
- return serviceList.some((service) => (service.availablePaymentMethods || []).some((method) => method.name !== PaymentMethodType.Apexx));
17260
+ return serviceList.some(service => (service.availablePaymentMethods || []).some((method) => method.name !== PaymentMethodType.Apexx));
17474
17261
  }
17475
17262
  /**
17476
17263
  * Check if any service has Apexx payment method
17477
17264
  */
17478
17265
  hasApexxPaymentMethod(serviceList) {
17479
- return serviceList.some((service) => (service.availablePaymentMethods || []).some((method) => method.name === PaymentMethodType.Apexx));
17266
+ return serviceList.some(service => (service.availablePaymentMethods || []).some((method) => method.name === PaymentMethodType.Apexx));
17480
17267
  }
17481
17268
  /**
17482
17269
  * Check if all services only have Apexx as payment method
17483
17270
  */
17484
17271
  isOnlyApexxPaymentMethod(serviceList) {
17485
- return serviceList.every((service) => {
17272
+ return serviceList.every(service => {
17486
17273
  const methods = service.availablePaymentMethods || [];
17487
17274
  if (methods.length === 0)
17488
17275
  return false;
@@ -17498,8 +17285,7 @@ class SearchPaymentValidationService {
17498
17285
  const isValidList = Array.isArray(serviceList);
17499
17286
  const hasOtherPaymentMethods = this.hasOtherPaymentMethods(serviceList);
17500
17287
  const hasApexxCardInServices = this.hasApexxPaymentMethod(serviceList);
17501
- restrictions[key] =
17502
- isValidList && !hasOtherPaymentMethods && hasApexxCardInServices && hasNoStoredCard;
17288
+ restrictions[key] = isValidList && !hasOtherPaymentMethods && hasApexxCardInServices && hasNoStoredCard;
17503
17289
  });
17504
17290
  return restrictions;
17505
17291
  }
@@ -17513,6 +17299,532 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17513
17299
  }]
17514
17300
  }], ctorParameters: () => [{ type: UserService }] });
17515
17301
 
17302
+ class ResultAwareService {
17303
+ searchService;
17304
+ basketService;
17305
+ router;
17306
+ condensedResults = [];
17307
+ rawResults = [];
17308
+ currentServiceType = null;
17309
+ railSourceId = null;
17310
+ railReturnJourneys = [];
17311
+ resultsAvailableSubject = new BehaviorSubject(false);
17312
+ resultsAvailable$ = this.resultsAvailableSubject.asObservable();
17313
+ constructor(searchService, basketService, router) {
17314
+ this.searchService = searchService;
17315
+ this.basketService = basketService;
17316
+ this.router = router;
17317
+ }
17318
+ captureFlightResults(results) {
17319
+ this.currentServiceType = ServiceType.Flight;
17320
+ this.rawResults = results;
17321
+ this.condensedResults = this.condenseFlightResults(results);
17322
+ console.log('[ResultAwareService] Captured', results.length, 'flight results');
17323
+ if (results[0]) {
17324
+ console.log('[ResultAwareService] First result keys:', Object.keys(results[0]).join(', '));
17325
+ console.log('[ResultAwareService] classes:', results[0].classes ? Object.keys(results[0].classes) : 'none');
17326
+ // Check first class entry structure
17327
+ if (results[0].classes) {
17328
+ const firstKey = Object.keys(results[0].classes)[0];
17329
+ const firstClass = results[0].classes[firstKey];
17330
+ console.log('[ResultAwareService] First class entry:', firstKey, '- flights:', firstClass?.flights?.length, '- first flight keys:', firstClass?.flights?.[0] ? Object.keys(firstClass.flights[0]).join(', ') : 'none');
17331
+ }
17332
+ }
17333
+ console.log('[ResultAwareService] Condensed sample:', JSON.stringify(this.condensedResults[0]));
17334
+ this.resultsAvailableSubject.next(this.condensedResults.length > 0);
17335
+ }
17336
+ captureRailResults(quoteResult) {
17337
+ this.currentServiceType = ServiceType.Rail;
17338
+ const outbound = quoteResult?.outbound || [];
17339
+ this.rawResults = outbound;
17340
+ this.railReturnJourneys = quoteResult?.return || [];
17341
+ this.railSourceId = String(quoteResult?.sourceId || '');
17342
+ this.condensedResults = this.condenseRailResults(outbound, this.railReturnJourneys);
17343
+ console.log('[ResultAwareService] Captured', outbound.length, 'outbound +', this.railReturnJourneys.length, 'return rail results, sourceId:', this.railSourceId);
17344
+ this.resultsAvailableSubject.next(this.condensedResults.length > 0);
17345
+ }
17346
+ getCondensedResults() {
17347
+ return this.condensedResults;
17348
+ }
17349
+ hasResults() {
17350
+ return this.condensedResults.length > 0;
17351
+ }
17352
+ clearResults() {
17353
+ this.condensedResults = [];
17354
+ this.rawResults = [];
17355
+ this.currentServiceType = null;
17356
+ this.resultsAvailableSubject.next(false);
17357
+ }
17358
+ async executeSelection(selectedIndex, returnIndex) {
17359
+ if (selectedIndex < 0 || selectedIndex >= this.rawResults.length) {
17360
+ throw new Error(`Invalid selection index: ${selectedIndex}`);
17361
+ }
17362
+ const result = this.rawResults[selectedIndex];
17363
+ if (this.currentServiceType === ServiceType.Flight) {
17364
+ await this.executeFlightSelection(result);
17365
+ }
17366
+ else if (this.currentServiceType === ServiceType.Rail) {
17367
+ await this.executeRailSelection(result, returnIndex);
17368
+ }
17369
+ }
17370
+ async executeFlightSelection(result) {
17371
+ const searchParams = this.searchService.searches[ServiceType.Flight];
17372
+ // The result may be a FlightGroupedQuoteResult (has classes with nested itineraries)
17373
+ // or a FlightItineraryWithExtensions (IS the itinerary itself)
17374
+ let itinerary = result;
17375
+ let gid = result.gid;
17376
+ // If result has classes, extract first itinerary from first cabin class
17377
+ if (result.classes) {
17378
+ for (const classKey of Object.keys(result.classes)) {
17379
+ const classData = result.classes[classKey];
17380
+ if (classData?.flights?.length > 0) {
17381
+ itinerary = classData.flights[0];
17382
+ break;
17383
+ }
17384
+ }
17385
+ }
17386
+ // Fallback gid
17387
+ if (gid == null) {
17388
+ gid = result.uid || 0;
17389
+ }
17390
+ const isReturn = searchParams.chosenSearchType === FlightSearchType.return;
17391
+ // For return searches, selectGroupedFlight with Outbound only STORES the selection.
17392
+ // A second call with Inbound is needed to complete the booking.
17393
+ await searchParams.selectGroupedFlight(itinerary, FlightDirectionEnum.Outbound, gid, true);
17394
+ if (isReturn) {
17395
+ await searchParams.selectGroupedFlight(itinerary, FlightDirectionEnum.Inbound, gid, true);
17396
+ }
17397
+ // Navigate to the itinerary/confirmation page
17398
+ const basket = (await this.basketService.getDefaultBasket())?.subject.value;
17399
+ if (basket?.id) {
17400
+ this.router.navigate(['/itinerary', basket.id]);
17401
+ }
17402
+ }
17403
+ condenseFlightResults(results) {
17404
+ return results.slice(0, results.length).map((result, index) => {
17405
+ // Results are FlightItineraryWithExtensions — each IS a single fare
17406
+ const outLegs = result.outboundFlights || result.outlegs || [];
17407
+ const inLegs = result.inboundFlights || result.inlegs || [];
17408
+ const firstLeg = outLegs[0];
17409
+ const lastLeg = outLegs[outLegs.length - 1];
17410
+ const airline = firstLeg?.marketingCarrierName || firstLeg?.marketingCarrier || '';
17411
+ const departTime = firstLeg?.dateTimeDeparting || '';
17412
+ const arriveTime = lastLeg?.dateTimeArriving || '';
17413
+ const stops = Math.max(0, outLegs.length - 1);
17414
+ // Flight numbers from outbound legs
17415
+ const flightNumbers = outLegs
17416
+ .map((leg) => `${leg.marketingCarrier || ''}${leg.marketingFlightNumber || ''}`.trim())
17417
+ .filter(Boolean)
17418
+ .join('/');
17419
+ // Price from total object
17420
+ const price = result.total?.price || 0;
17421
+ // Cabin class from first outbound leg
17422
+ const cabin = firstLeg?.cabinClass || '';
17423
+ // Baggage from baggageAllowance array: [{ type: 'CheckIn'|'HandCarry', qty }]
17424
+ const baggageArr = result.baggageAllowance || [];
17425
+ const bags = baggageArr.find((b) => b?.type === 'CheckIn')?.qty ?? 0;
17426
+ // Build inbound info for return flights
17427
+ let inbound;
17428
+ if (inLegs.length > 0) {
17429
+ const inFirstLeg = inLegs[0];
17430
+ const inLastLeg = inLegs[inLegs.length - 1];
17431
+ inbound = {
17432
+ depart: this.formatTime(inFirstLeg?.dateTimeDeparting || ''),
17433
+ arrive: this.formatTime(inLastLeg?.dateTimeArriving || ''),
17434
+ stops: Math.max(0, inLegs.length - 1),
17435
+ duration: this.formatDuration(result.inboundTotalDuration),
17436
+ flightNumbers: inLegs
17437
+ .map((leg) => `${leg.marketingCarrier || ''}${leg.marketingFlightNumber || ''}`.trim())
17438
+ .filter(Boolean)
17439
+ .join('/'),
17440
+ };
17441
+ }
17442
+ return {
17443
+ index,
17444
+ airline,
17445
+ depart: this.formatTime(departTime),
17446
+ arrive: this.formatTime(arriveTime),
17447
+ stops,
17448
+ duration: this.formatDuration(result.outboundTotalDuration),
17449
+ price,
17450
+ cabin,
17451
+ co2: result.co2PerPassenger || result.co2PerItem || 0,
17452
+ policyStatus: this.derivePolicyStatus(result),
17453
+ policyMessages: this.derivePolicyMessages(result),
17454
+ from: firstLeg?.originAirport || '',
17455
+ to: lastLeg?.destinationAirport || '',
17456
+ flightNumbers,
17457
+ fares: [{ cabin, price, bags }],
17458
+ inbound,
17459
+ };
17460
+ });
17461
+ }
17462
+ formatTime(isoString) {
17463
+ if (!isoString) {
17464
+ return '';
17465
+ }
17466
+ try {
17467
+ const date = new Date(isoString);
17468
+ return date.toLocaleTimeString('en-GB', { hour: '2-digit', minute: '2-digit', hour12: false });
17469
+ }
17470
+ catch {
17471
+ return isoString;
17472
+ }
17473
+ }
17474
+ formatDuration(minutes) {
17475
+ if (!minutes) {
17476
+ return '';
17477
+ }
17478
+ const h = Math.floor(minutes / 60);
17479
+ const m = minutes % 60;
17480
+ return `${h}h${m > 0 ? ` ${m}m` : ''}`;
17481
+ }
17482
+ async executeRailSelection(journey, returnIndex) {
17483
+ const searchParams = this.searchService.searches[ServiceType.Rail];
17484
+ // Find the cheapest available fare from the journey
17485
+ const fare = this.getCheapestRailFare(journey);
17486
+ if (!fare) {
17487
+ throw new Error('No available fare found for this journey');
17488
+ }
17489
+ const sourceId = this.railSourceId || '';
17490
+ // Find return journey — use the LLM-selected index if provided,
17491
+ // otherwise fall back to cheapest
17492
+ let inboundJourney = null;
17493
+ let inboundFare = null;
17494
+ if (this.railReturnJourneys.length > 0) {
17495
+ if (returnIndex !== undefined && returnIndex >= 0 && returnIndex < this.railReturnJourneys.length) {
17496
+ inboundJourney = this.railReturnJourneys[returnIndex];
17497
+ }
17498
+ else {
17499
+ inboundJourney = this.findCheapestRailJourney(this.railReturnJourneys);
17500
+ }
17501
+ if (inboundJourney) {
17502
+ inboundFare = this.getCheapestRailFare(inboundJourney);
17503
+ }
17504
+ }
17505
+ // Use addToBasket with ignoreTicketExtras=true to skip the travelcard add-on dialog
17506
+ // and actually add the item to the basket (selectTicketNoAdd only stores selection without basketing)
17507
+ await searchParams.addToBasket(sourceId, searchParams.originalUserSearch, journey, fare, inboundFare || undefined, inboundJourney || undefined, false, // ingoreInvoked
17508
+ true);
17509
+ // Navigate to confirmation
17510
+ const basket = (await this.basketService.getDefaultBasket())?.subject.value;
17511
+ if (basket?.id) {
17512
+ this.router.navigate(['/itinerary', basket.id]);
17513
+ }
17514
+ }
17515
+ findCheapestRailJourney(journeys) {
17516
+ let cheapest = null;
17517
+ let cheapestPrice = Infinity;
17518
+ for (const journey of journeys) {
17519
+ const fare = this.getCheapestRailFare(journey);
17520
+ if (fare && fare.price > 0 && fare.price < cheapestPrice) {
17521
+ cheapestPrice = fare.price;
17522
+ cheapest = journey;
17523
+ }
17524
+ }
17525
+ return cheapest;
17526
+ }
17527
+ getCheapestRailFare(journey) {
17528
+ const fareSections = [
17529
+ 'returnJourneyFares',
17530
+ 'singleJourneyFares',
17531
+ 'dualSingleJourneyFares',
17532
+ 'openReturnJourneyFares',
17533
+ ];
17534
+ let cheapest = null;
17535
+ let cheapestSection = '';
17536
+ for (const section of fareSections) {
17537
+ const fareGroup = journey[section];
17538
+ if (!fareGroup || typeof fareGroup !== 'object') {
17539
+ continue;
17540
+ }
17541
+ for (const fareCode of Object.keys(fareGroup)) {
17542
+ const fares = fareGroup[fareCode];
17543
+ if (!Array.isArray(fares)) {
17544
+ continue;
17545
+ }
17546
+ for (const fare of fares) {
17547
+ if (!fare || fare.unavailable || !fare.selectable) {
17548
+ continue;
17549
+ }
17550
+ if (!cheapest || (fare.price != null && fare.price < cheapest.price)) {
17551
+ cheapest = fare;
17552
+ cheapestSection = section;
17553
+ }
17554
+ }
17555
+ }
17556
+ }
17557
+ if (cheapest) {
17558
+ cheapest._section = cheapestSection;
17559
+ }
17560
+ return cheapest;
17561
+ }
17562
+ getMostExpensiveRailFare(journey) {
17563
+ const fareSections = [
17564
+ 'returnJourneyFares',
17565
+ 'singleJourneyFares',
17566
+ 'dualSingleJourneyFares',
17567
+ 'openReturnJourneyFares',
17568
+ ];
17569
+ let expensive = null;
17570
+ let expensiveSection = '';
17571
+ for (const section of fareSections) {
17572
+ const fareGroup = journey[section];
17573
+ if (!fareGroup || typeof fareGroup !== 'object') {
17574
+ continue;
17575
+ }
17576
+ for (const fareCode of Object.keys(fareGroup)) {
17577
+ const fares = fareGroup[fareCode];
17578
+ if (!Array.isArray(fares)) {
17579
+ continue;
17580
+ }
17581
+ for (const fare of fares) {
17582
+ if (!fare || fare.unavailable || !fare.selectable) {
17583
+ continue;
17584
+ }
17585
+ if (!expensive || (fare.price != null && fare.price > expensive.price)) {
17586
+ expensive = fare;
17587
+ expensiveSection = section;
17588
+ }
17589
+ }
17590
+ }
17591
+ }
17592
+ if (expensive) {
17593
+ expensive._section = expensiveSection;
17594
+ }
17595
+ return expensive;
17596
+ }
17597
+ condenseRailResults(journeys, returnJourneys = []) {
17598
+ // Condense return journeys so the LLM can pick both outbound and return
17599
+ let condensedReturns = [];
17600
+ for (let i = 0; i < returnJourneys.length; i++) {
17601
+ const rj = returnJourneys[i];
17602
+ const cheapestFare = this.getCheapestRailFare(rj);
17603
+ const expensiveFare = this.getMostExpensiveRailFare(rj);
17604
+ const cheapestValid = cheapestFare && (cheapestFare.price > 0 || cheapestFare.type.toLowerCase().includes('return'));
17605
+ const expensiveValid = expensiveFare && (expensiveFare.price > 0 || expensiveFare.type.toLowerCase().includes('return'));
17606
+ if (cheapestFare) {
17607
+ condensedReturns.push({
17608
+ index: i,
17609
+ depart: this.formatTime(rj.departDateTime),
17610
+ arrive: this.formatTime(rj.arriveDateTime),
17611
+ stops: parseInt(rj.changes || '0', 10),
17612
+ duration: this.formatDuration(rj.journeyDuration),
17613
+ price: cheapestValid ? cheapestFare.price : 0,
17614
+ operator: rj.journeyLegs?.[0]?.operatorName || '',
17615
+ policyStatus: cheapestValid
17616
+ ? this.derivePolicyStatus(cheapestFare)
17617
+ : 'UNAVAILABLE',
17618
+ co2: rj.co2PerPassenger || 0,
17619
+ singleOrReturn: cheapestFare.singleOrReturn
17620
+ });
17621
+ }
17622
+ if (expensiveFare) {
17623
+ condensedReturns.push({
17624
+ index: i,
17625
+ depart: this.formatTime(rj.departDateTime),
17626
+ arrive: this.formatTime(rj.arriveDateTime),
17627
+ stops: parseInt(rj.changes || '0', 10),
17628
+ duration: this.formatDuration(rj.journeyDuration),
17629
+ price: expensiveValid ? expensiveFare.price : 0,
17630
+ operator: rj.journeyLegs?.[0]?.operatorName || '',
17631
+ policyStatus: expensiveValid
17632
+ ? this.derivePolicyStatus(expensiveFare)
17633
+ : 'UNAVAILABLE',
17634
+ co2: rj.co2PerPassenger || 0,
17635
+ singleOrReturn: expensiveFare.singleOrReturn
17636
+ });
17637
+ }
17638
+ }
17639
+ const parsdJourneys = [];
17640
+ for (let i = 0; i < journeys.length; i++) {
17641
+ const journey = journeys[i];
17642
+ const cheapestFare = this.getCheapestRailFare(journey);
17643
+ const hasValidFare = cheapestFare && cheapestFare.price > 0;
17644
+ const result = {
17645
+ index: i,
17646
+ operator: journey.journeyLegs?.[0]?.operatorName || '',
17647
+ depart: this.formatTime(journey.departDateTime),
17648
+ arrive: this.formatTime(journey.arriveDateTime),
17649
+ stops: parseInt(journey.changes || '0', 10),
17650
+ duration: this.formatDuration(journey.journeyDuration),
17651
+ price: hasValidFare ? cheapestFare.price : 0,
17652
+ cabin: cheapestFare?.class || 'Standard',
17653
+ co2: journey.co2PerPassenger || 0,
17654
+ policyStatus: hasValidFare ? this.derivePolicyStatus(cheapestFare) : 'UNAVAILABLE',
17655
+ policyMessages: hasValidFare ? this.derivePolicyMessages(cheapestFare) : [],
17656
+ singleOrReturn: cheapestFare.singleOrReturn
17657
+ };
17658
+ // Attach return options so the LLM can select both legs
17659
+ if (condensedReturns.length > 0) {
17660
+ result.returnOptions = this.filterDownCompressedReturnRailOptions(result, _.cloneDeep(condensedReturns));
17661
+ }
17662
+ parsdJourneys.push(result);
17663
+ const expensiveFare = this.getMostExpensiveRailFare(journey);
17664
+ const expensiveValid = expensiveFare && (expensiveFare.price > 0 || expensiveFare.type.toLowerCase().includes('return'));
17665
+ const exResult = {
17666
+ index: i,
17667
+ operator: journey.journeyLegs?.[0]?.operatorName || '',
17668
+ depart: this.formatTime(journey.departDateTime),
17669
+ arrive: this.formatTime(journey.arriveDateTime),
17670
+ stops: parseInt(journey.changes || '0', 10),
17671
+ duration: this.formatDuration(journey.journeyDuration),
17672
+ price: expensiveValid ? expensiveFare.price : 0,
17673
+ cabin: expensiveFare?.class || 'Standard',
17674
+ co2: journey.co2PerPassenger || 0,
17675
+ policyStatus: expensiveValid ? this.derivePolicyStatus(expensiveFare) : 'UNAVAILABLE',
17676
+ policyMessages: expensiveValid ? this.derivePolicyMessages(expensiveFare) : [],
17677
+ singleOrReturn: expensiveFare.singleOrReturn
17678
+ };
17679
+ // console.log(`[ResultAwareService] - Condensed Returns: ${condensedReturns.length}`);
17680
+ // Attach return options so the LLM can select both legs
17681
+ if (condensedReturns.length > 0) {
17682
+ exResult.returnOptions = this.filterDownCompressedReturnRailOptions(exResult, _.cloneDeep(condensedReturns));
17683
+ }
17684
+ parsdJourneys.push(exResult);
17685
+ }
17686
+ return parsdJourneys;
17687
+ }
17688
+ derivePolicyStatus(result) {
17689
+ if (result.unavailable) {
17690
+ return 'UNAVAILABLE';
17691
+ }
17692
+ if (result.requiresReasonKeys?.length > 0) {
17693
+ return 'ALLOW_WITH_REASON';
17694
+ }
17695
+ return 'IN_POLICY';
17696
+ }
17697
+ derivePolicyMessages(result) {
17698
+ const messages = [];
17699
+ if (result.officePreferredMessage) {
17700
+ messages.push(result.officePreferredMessage);
17701
+ }
17702
+ if (result.requiresReasonMessages?.length > 0) {
17703
+ messages.push(...result.requiresReasonMessages);
17704
+ }
17705
+ return messages;
17706
+ }
17707
+ getFirstCabinClassName(result) {
17708
+ if (result.classes) {
17709
+ const firstKey = Object.keys(result.classes)[0];
17710
+ return firstKey || '';
17711
+ }
17712
+ // FlightItineraryWithExtensions: check baggageAllowance or fareConditions for cabin info
17713
+ if (result.cabinClass) {
17714
+ return result.cabinClass;
17715
+ }
17716
+ return '';
17717
+ }
17718
+ filterDownCompressedReturnRailOptions(result, condensedReturns = []) {
17719
+ condensedReturns = condensedReturns.filter(ret => ret.singleOrReturn === result.singleOrReturn);
17720
+ if (result.singleOrReturn === 'Return') {
17721
+ condensedReturns.forEach(ret => {
17722
+ ret.price = 0;
17723
+ });
17724
+ }
17725
+ // remove any returns which time conflict with this journey
17726
+ const arrivalTimeSplit = result.arrive.split(':');
17727
+ const arrivalDate = moment$1();
17728
+ arrivalDate.hour(arrivalTimeSplit[0]);
17729
+ arrivalDate.minutes(arrivalTimeSplit[1]);
17730
+ condensedReturns = condensedReturns.filter(ret => {
17731
+ try {
17732
+ const departTimeSplit = ret.depart.split(':');
17733
+ const retDepartTime = moment$1();
17734
+ retDepartTime.hour(departTimeSplit[0]);
17735
+ retDepartTime.minute(departTimeSplit[1]);
17736
+ return retDepartTime.isAfter(arrivalDate);
17737
+ }
17738
+ catch (error) {
17739
+ return false;
17740
+ }
17741
+ });
17742
+ return condensedReturns;
17743
+ }
17744
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResultAwareService, deps: [{ token: EnterpriseSearchService }, { token: EnterpriseBasketService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
17745
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResultAwareService, providedIn: 'root' });
17746
+ }
17747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ResultAwareService, decorators: [{
17748
+ type: Injectable,
17749
+ args: [{ providedIn: 'root' }]
17750
+ }], ctorParameters: () => [{ type: EnterpriseSearchService }, { type: EnterpriseBasketService }, { type: i2.Router }] });
17751
+
17752
+ class ChatbotService extends BaseChatbotService {
17753
+ webTokenService;
17754
+ resultAwareService;
17755
+ environment;
17756
+ userService;
17757
+ messagesSubject = new BehaviorSubject([]);
17758
+ messages$ = this.messagesSubject.asObservable();
17759
+ loadingSubject = new BehaviorSubject(false);
17760
+ loading$ = this.loadingSubject.asObservable();
17761
+ fillSearchForm$ = new Subject();
17762
+ riskFlagSubject = new BehaviorSubject(null);
17763
+ riskFlag$ = this.riskFlagSubject.asObservable();
17764
+ constructor(webTokenService, resultAwareService, environment, userService) {
17765
+ super();
17766
+ this.webTokenService = webTokenService;
17767
+ this.resultAwareService = resultAwareService;
17768
+ this.environment = environment;
17769
+ this.userService = userService;
17770
+ }
17771
+ ngOnDestroy() {
17772
+ this.tearDownSocket();
17773
+ this.fillSearchForm$.complete();
17774
+ }
17775
+ // ── Platform hooks ───────────────────────────────────────────────────────
17776
+ getRequestUrl() {
17777
+ return this.environment.requestURL ?? null;
17778
+ }
17779
+ getAuthToken() {
17780
+ return this.webTokenService.jwtToken ?? null;
17781
+ }
17782
+ notifyMessages(messages) {
17783
+ this.messagesSubject.next(messages);
17784
+ }
17785
+ notifyLoading(loading) {
17786
+ this.loadingSubject.next(loading);
17787
+ }
17788
+ notifyFillForm(parameters, autoSearch) {
17789
+ this.fillSearchForm$.next({ parameters, autoSearch });
17790
+ }
17791
+ notifyRiskFlag(flag) {
17792
+ this.riskFlagSubject.next(flag);
17793
+ }
17794
+ hasResults() {
17795
+ return this.resultAwareService.hasResults();
17796
+ }
17797
+ getCondensedResults() {
17798
+ return this.resultAwareService.getCondensedResults();
17799
+ }
17800
+ executeSelection(selectedIndex, returnSelectedIndex) {
17801
+ return this.resultAwareService.executeSelection(selectedIndex, returnSelectedIndex);
17802
+ }
17803
+ getSource() {
17804
+ return 'web';
17805
+ }
17806
+ // ── Public override ──────────────────────────────────────────────────────
17807
+ clearSession() {
17808
+ super.clearSession();
17809
+ this.resultAwareService.clearResults();
17810
+ }
17811
+ getUserCapabilities() {
17812
+ return {
17813
+ isCrown: this.userService.crownIsSet(),
17814
+ isAgent: this.userService.userIsAgent(),
17815
+ uiConfigs: {
17816
+ hideHotelSearchOptions: this.userService.isUserFavoriteSet(new UserFavorurite('hideHotelSearchOptions')),
17817
+ },
17818
+ };
17819
+ }
17820
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ChatbotService, deps: [{ token: WebTokenService }, { token: ResultAwareService }, { token: Environment }, { token: UserService }], target: i0.ɵɵFactoryTarget.Injectable });
17821
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ChatbotService, providedIn: 'root' });
17822
+ }
17823
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ChatbotService, decorators: [{
17824
+ type: Injectable,
17825
+ args: [{ providedIn: 'root' }]
17826
+ }], ctorParameters: () => [{ type: WebTokenService }, { type: ResultAwareService }, { type: Environment }, { type: UserService }] });
17827
+
17516
17828
  class BasketPanelComponent extends WithSubscriptionComponent {
17517
17829
  basketService;
17518
17830
  userService;
@@ -17622,17 +17934,13 @@ class BasketPanelComponent extends WithSubscriptionComponent {
17622
17934
  // /itinerary
17623
17935
  const requiresApproval = this.selectedBasket.subject.value.requiresManualApproval;
17624
17936
  const navigateTo = this.basketService.continueSearchAndBook(basketItems, this.getItineraryUrl(this.selectedBasket.id), this.searchService);
17625
- if (navigateTo &&
17626
- !(navigateTo[0] === '/itinerary' || navigateTo[0] === '/basket/booking-details')) {
17627
- // ! - itinerary - lightning - booking-details -scion
17937
+ if (navigateTo && !(navigateTo[0] === '/itinerary' || navigateTo[0] === '/basket/booking-details')) { // ! - itinerary - lightning - booking-details -scion
17628
17938
  this.router.navigate(navigateTo);
17629
17939
  }
17630
17940
  else if (navigateTo) {
17631
17941
  if (requiresApproval) {
17632
17942
  console.warn(`+++ Basket requires approval - display warning modal +++`);
17633
- this.modalService
17634
- .open(ModalTypes.ApprovalWarningModalComponent, { backdrop: 'static' })
17635
- .then((result) => {
17943
+ this.modalService.open(ModalTypes.ApprovalWarningModalComponent, { backdrop: 'static' }).then(result => {
17636
17944
  if (result) {
17637
17945
  console.log(`+++ User has selected continue +++`);
17638
17946
  this.router.navigate(navigateTo);
@@ -17777,7 +18085,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17777
18085
  type: Pipe,
17778
18086
  args: [{
17779
18087
  name: 'memoize',
17780
- pure: true //can be omitted as default value
18088
+ pure: true, //can be omitted as default value
17781
18089
  }]
17782
18090
  }] });
17783
18091
 
@@ -17801,5 +18109,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17801
18109
  * Generated bundle index. Do not edit.
17802
18110
  */
17803
18111
 
17804
- export { AcceptNewPriceDocument, AcceptNewPriceGQL, AcceptNewPriceUpdater, AcceptProcessTermsDocument, AcceptProcessTermsGQL, AccessibilityInfoFragmentDoc, AddBasketItemCustomRemarkDocument, AddBasketItemCustomRemarkGQL, AddBasketItemCustomRemarkUpdater, AddBasketItemMarkupDocument, AddBasketItemMarkupGQL, AddBasketItemMarkupUpdater, AddFavouriteUserDocument, AddFavouriteUserGQL, AddFavouriteUserUpdater, AddGuestToBasketItemUpdater, AddGuestsToBasketItemDocument, AddGuestsToBasketItemGQL, AddItemToBasketDocument, AddItemToBasketGQL, AddItemToBasketUpdater, AddRedirectApproverDocument, AddRedirectApproverGQL, AddRedirectApproverUpdater, AddToBasketFieldsFragmentDoc, AddUpdatedItemToBasketDocument, AddUpdatedItemToBasketGQL, AddUpdatedItemToBasketUpdater, AddUserToBasketItemUpdater, AddUsersToBasketItemDocument, AddUsersToBasketItemGQL, AddressType, AmendBookingDocument, AmendBookingGQL, AmendBookingUpdater, ApexxCardStatus, ApexxCreateCardDocument, ApexxCreateCardGQL, ApexxDeleteCardDocument, ApexxDeleteCardGQL, ApexxDeleteCardUpdater, ApexxListCardsDocument, ApexxListCardsGQL, ApexxUpdateCardDocument, ApexxUpdateCardGQL, ApexxUpdateCardUpdater, ApplyJitFlightRulesDocument, ApplyJitFlightRulesGQL, ApplyJitHotelRulesDocument, ApplyJitHotelRulesGQL, ApprovalEventType, ApproverUserFieldsFragmentDoc, AuthHttpService, BaggageType, BannerDisplayTarget, BasketFieldsFragmentDoc, BasketItemStatus, BasketMinimalFieldsFragmentDoc, BasketPanelComponent, BasketStatus, BeforeAmendCabSearchDocument, BeforeAmendCabSearchFetcher, BeforeAmendCabSearchGQL, BeforeAmendCarHireSearchDocument, BeforeAmendCarHireSearchFetcher, BeforeAmendCarHireSearchGQL, BookBasketDocument, BookBasketFieldsFragmentDoc, BookBasketGQL, BookBasketUpdater, BookerType, CabHireVehicleType, CabhireQuoteFetcher, CanAmendBookingDocument, CanAmendBookingFetcher, CanAmendBookingGQL, CancelBookingDocument, CancelBookingGQL, CancelBookingUpdater, CarHireAvailabilityDetailFetcher, CarHireAvailabilityDetailRequestDocument, CarHireAvailabilityDetailRequestGQL, CarHireClass, CarHireTransmission, CarHireType, CarbonPolicyDuration, CarbonPolicySource, CarhireQuoteFetcher, ChangeBasketOwnershipDocument, ChangeBasketOwnershipGQL, ChangeBasketOwnershipUpdater, ChangeMode, CheckForDuplicateBookingsDocument, CheckForDuplicateBookingsFetcher, CheckForDuplicateBookingsGQL, CheckIfBasketRequiresApprovalDocument, CheckIfBasketRequiresApprovalFetcher, CheckIfBasketRequiresApprovalGQL, CompanyType, ConfirmMessagesDocument, ConfirmMessagesGQL, ConvertCurrencyDocument, ConvertCurrencyFetcher, ConvertCurrencyGQL, CreateBasketDocument, CreateBasketFieldsFragmentDoc, CreateBasketFromDraftDocument, CreateBasketFromDraftGQL, CreateBasketFromDraftUpdater, CreateBasketGQL, CreateBasketNoteDocument, CreateBasketNoteGQL, CreateBasketNoteUpdater, CreateBasketUpdater, CreateGuestDocument, CreateGuestGQL, CreateGuestUpdater, CreateItineraryExchangeDocument, CreateItineraryExchangeGQL, CurrencyCode, CycleInfoFragmentDoc, DeleteAllRecentSearchesDocument, DeleteAllRecentSearchesGQL, DeleteAllRecentSearchesUpdater, DeleteBasketDocument, DeleteBasketGQL, DeleteBasketUpdater, DeleteFavouriteSearchDocument, DeleteFavouriteSearchGQL, DeleteFavouriteSearchUpdater, DeleteGuestDocument, DeleteGuestGQL, DeleteGuestUpdater, DeleteRecentSearchDocument, DeleteRecentSearchGQL, DeleteUserAddressDocument, DeleteUserAddressGQL, DiscountType, DistanceTypes, DivisionFieldsFragmentDoc, DocGender, DocType, DownloadETicketDocument, DownloadETicketFetcher, DownloadETicketGQL, DraftBasketType, EditUserAddressDocument, EditUserAddressGQL, EditUserAddressUpdater, EditUserDocument, EditUserGQL, EmailAmbulanceBookingFetcher, EmailAmbulanceBookingReqDocument, EmailAmbulanceBookingReqGQL, EmailApartmentBookingFetcher, EmailApartmentBookingReqDocument, EmailApartmentBookingReqGQL, EmailBasketDocument, EmailBasketFetcher, EmailBasketGQL, EmailFerryBookingFetcher, EmailFerryBookingReqDocument, EmailFerryBookingReqGQL, EmailMeetingRoomBookingFetcher, EmailMeetingRoomBookingReqDocument, EmailMeetingRoomBookingReqGQL, EmailSeasonTicketBookingFetcher, EmailSeasonTicketBookingReqDocument, EmailSeasonTicketBookingReqGQL, EntLocationsByCityDocument, EntLocationsByCityGQL, EntLocationsByPostcodeDocument, EntLocationsByPostcodeGQL, EnterpriseBasketService, EnterpriseMyBookingsService, EnterpriseSearchService, Environment, ErrorsFragmentDoc, EurostarQuoteFetcher, EventMessenager, EvolviSeatmapsAreEnabledDocument, EvolviSeatmapsAreEnabledGQL, ExchangeType, ExternalHttpService, FailedEmail, FareRuleType, FareType, FerryOrEurotunnel, FlightCabinClass, FlightItineraryFieldsFragmentDoc, FlightPassengerType, FlightQuoteFetcher, GenerateBasketPdfDocument, GenerateBasketPdfFetcher, GenerateBasketPdfGQL, GetAirAvailabilityDocument, GetAirAvailabilityFetcher, GetAirAvailabilityGQL, GetAllAirlinesDocument, GetAllAirlinesFetcher, GetAllAirlinesGQL, GetApexxListCardsFetcher, GetBannerDocument, GetBannerFetcher, GetBannerGQL, GetBasketApprovalInfoDocument, GetBasketApprovalInfoFetcher, GetBasketApprovalInfoGQL, GetBasketApprovalTimestampsDocument, GetBasketApprovalTimestampsGQL, GetBasketCo2InfoFetcher, GetBasketFetcher, GetBasketItemCustomRemarksDocument, GetBasketItemCustomRemarksFetcher, GetBasketItemCustomRemarksGQL, GetBasketNotesDocument, GetBasketNotesFetcher, GetBasketNotesGQL, GetBasketQuoteDocument, GetBasketQuoteFetcher, GetBasketQuoteGQL, GetBrandedFaresDocument, GetBrandedFaresGQL, GetCancellationInfoDocument, GetCancellationInfoFetcher, GetCancellationInfoGQL, GetCarHireDepotsDocument, GetCarHireDepotsGQL, GetCarHireProvidersDocument, GetCarHireProvidersFetcher, GetCarHireProvidersGQL, GetCompaniesDocument, GetCompaniesFetcher, GetCompaniesGQL, GetCompanyDocument, GetCompanyFetcher, GetCompanyGQL, GetConfermaQuicklistDocument, GetConfermaQuicklistGQL, GetConfermaRoomImagesDocument, GetConfermaRoomImagesGQL, GetCovidMicrositeTokenDocument, GetCovidMicrositeTokenFetcher, GetCovidMicrositeTokenGQL, GetCurrencyConversionRatesDocument, GetCurrencyConversionRatesFetcher, GetCurrencyConversionRatesGQL, GetDivisionDocument, GetDivisionGQL, GetDraftBasketsDocument, GetDraftBasketsFetcher, GetDraftBasketsGQL, GetEmptyUserMiDefaultValuesDocument, GetEmptyUserMiDefaultValuesFetcher, GetEmptyUserMiDefaultValuesGQL, GetEntLocationByPostcode, GetEvolviSeatmapsAreEnabledFetcher, GetFerryPortsDocument, GetFerryPortsFetcher, GetFerryPortsGQL, GetFlightAtNewClassDocument, GetFlightAtNewClassFetcher, GetFlightAtNewClassGQL, GetFlightBrandedFaresFetcher, GetFlightExchangeDetailsDocument, GetFlightExchangeDetailsFetcher, GetFlightExchangeDetailsGQL, GetFlightExtrasOptionsDocument, GetFlightExtrasOptionsFetcher, GetFlightExtrasOptionsGQL, GetFlightFareRulesDocument, GetFlightFareRulesFetcher, GetFlightFareRulesGQL, GetFlightSearchExchangeDocument, GetFlightSearchExchangeFetcher, GetFlightSearchExchangeGQL, GetFlightSeatMapDocument, GetFlightSeatMapFetcher, GetFlightSeatMapGQL, GetFlightUpsellOffersDocument, GetFlightUpsellOffersFetcher, GetFlightUpsellOffersGQL, GetGmtItineraryOptionsDocument, GetGmtItineraryOptionsFetcher, GetGmtItineraryOptionsGQL, GetGutCitySuggestionsDocument, GetGutCitySuggestionsFetcher, GetGutCitySuggestionsGQL, GetGutLocationSuggestionsDocument, GetGutLocationSuggestionsFetcher, GetGutLocationSuggestionsGQL, GetHotelChainsDocument, GetHotelChainsFetcher, GetHotelChainsGQL, GetHotelDetailsDocument, GetHotelDetailsFetcher, GetHotelDetailsGQL, GetIrlDiscountCardsDocument, GetIrlDiscountCardsGQL, GetIrlSupplierStationDocument, GetIrlSupplierStationFetcher, GetIrlSupplierStationGQL, GetJyrneyUrlDocument, GetJyrneyUrlFetcher, GetJyrneyUrlGQL, GetLatLonFromHereIdDocument, GetLatLonFromHereIdFetcher, GetLatLonFromHereIdGQL, GetLatestVersionsDocument, GetLatestVersionsFetcher, GetLatestVersionsGQL, GetMIApproversFetcher, GetMiApproversDocument, GetMiApproversGQL, GetMiRequiringMandatoryDefaultValueDocument, GetMiRequiringMandatoryDefaultValueFetcher, GetMiRequiringMandatoryDefaultValueGQL, GetMultipleHotelRatingDocument, GetMultipleHotelRatingFetcher, GetMultipleHotelRatingGQL, GetMultipleHotelsAvailabilityDocument, GetMultipleHotelsAvailabilityGQL, GetOfficeApproversDocument, GetOfficeApproversFetcher, GetOfficeApproversGQL, GetOfficeDivisionsDocument, GetOfficeDivisionsFetcher, GetOfficeDivisionsGQL, GetOfficeDocument, GetOfficeFetcher, GetOfficeGQL, GetOfficeUsersDocument, GetOfficeUsersFetcher, GetOfficeUsersGQL, GetOfficesDocument, GetOfficesFetcher, GetOfficesGQL, GetPriceHiddenSabreExchangeDocument, GetPriceHiddenSabreExchangeFetcher, GetPriceHiddenSabreExchangeGQL, GetProcessTermsPriceDocument, GetProcessTermsPriceGQL, GetRailcardsFetcher as GetRailCardsFetcher, GetRailLiveDeparturesDocument, GetRailLiveDeparturesFetcher, GetRailLiveDeparturesGQL, GetRailProvidersDocument, GetRailProvidersFetcher, GetRailProvidersGQL, GetRailSearchExchangeDocument, GetRailSearchExchangeGQL, GetRailStationDocument, GetRailStationFetcher, GetRailStationGQL, GetRailStationInfoDocument, GetRailStationInfoFetcher, GetRailStationInfoGQL, GetRailcardsDocument, GetRailcardsFetcher, GetRailcardsGQL, GetRedirectApproverDocument, RedirectApproverFetcher as GetRedirectApproverFetcher, GetRedirectApproverGQL, GetRequestedBookingUpdateDocument, GetRequestedBookingUpdateFetcher, GetRequestedBookingUpdateGQL, GetRiskAlertsDocument, GetRiskAlertsFetcher, GetRiskAlertsGQL, GetRouteHappyDocument, GetRouteHappyFetcher, GetRouteHappyGQL, SearchCompanyApproversFetcher as GetSearchCompanyApproversFetcher, GetServiceDocument, GetServiceFetcher, GetServiceGQL, GetTrainSeatMapDocument, GetTrainSeatMapEvolviDocument, GetTrainSeatMapEvolviGQL, GetTrainSeatMapGQL, GetTrainSeatmapEvolviFetcher, GetTrainSeatmapFetcher, GetTrainlineSearchConfigDocument, GetTrainlineSearchConfigFetcher, GetTrainlineSearchConfigGQL, GetUserAddressesDocument, GetUserAddressesGQL, GetUserApproversDocument, GetUserApproversFetcher, GetUserApproversGQL, GetUserBasketCo2InfoDocument, GetUserBasketCo2InfoGQL, GetUserBasketDocument, GetUserBasketGQL, GetUserBasketsDocument, GetUserBasketsFetcher, GetUserBasketsGQL, GetUserCarbonAllowanceDocument, GetUserCarbonAllowanceFetcher, GetUserCarbonAllowanceGQL, GetUserCompanyOfficesDocument, GetUserCompanyOfficesFetcher, GetUserCompanyOfficesGQL, GetUserCarbonAllowanceFetcher as GetUserCurrentCarbonAllowanceFetcher, GetUserDocument, GetUserDocumentLoyaltyDocument, GetUserDocumentLoyaltyFetcher, GetUserDocumentLoyaltyGQL, GetUserEmergencyContactDocument, GetUserEmergencyContactFetcher, GetUserEmergencyContactGQL, GetUserFavouriteSearchesDocument, GetUserFavouriteSearchesFetcher, GetUserFavouriteSearchesGQL, GetUserFavouriteUsersDocument, GetUserFavouriteUsersFetcher, GetUserFavouriteUsersGQL, GetUserFetcher, GetUserGQL, GetUserGuestsDocument, GetUserGuestsFetcher, GetUserGuestsGQL, GetUserMessagesDocument, GetUserMessagesGQL, GetUserMiDefaultValuesDocument, GetUserMiDefaultValuesFetcher, GetUserMiDefaultValuesGQL, GetUserMiDocument, GetUserMiFetcher, GetUserMiGQL, GetUserMiStackDocument, GetUserMiStackFetcher, GetUserMiStackGQL, GetUserPhoneDocument, GetUserPhoneGQL, GetUserPhoneNumbersDocument, GetUserPhoneNumbersGQL, GetUserPreferredTransportHubsDocument, GetUserPreferredTransportHubsFetcher, GetUserPreferredTransportHubsGQL, GetUserRecentBoltSearchesDocument, GetUserRecentBoltSearchesGQL, GetUserRecentSearchesDocument, GetUserRecentSearchesFetcher, GetUserRecentSearchesGQL, GetUserServicesDocument, GetUserServicesGQL, GetUserSharedBasketsDocument, GetUserSharedBasketsFetcher, GetUserSharedBasketsGQL, GetUserUiConfigsDocument, GetUserUiConfigsGQL, GmtItineraryAirportOptionFragmentFragmentDoc, GmtItineraryEurostarOptionFragmentFragmentDoc, GmtItineraryRailStationOptioFragmentFragmentDoc, GroupedFieldsFragmentDoc, HelpInfoFragmentDoc, HelperRoutines, HotelAvalibilityQuoteFetcher, HotelAvalibilityService, HotelQuoteFetcher, HotelStaticTagDisplay, HttpCallService, HttpCancelInterceptor, HttpCancelService, InvokedUserFieldsFragmentDoc, IrlClass, IrlJourneyType, IrlSupplier, IrlTravellerStatus, IsPostcodeValidDocument, IsPostcodeValidGQL, ItineraryEmailTo, LeadPassengerType, LocationType, Location_DetailFragmentDoc, LogLevelType, LogonService, LoungeQuoteFetcher, LoungesInfoFragmentDoc, ManagementInfoDefaultValuePrepopulation, ManagementInfoFieldFragmentDoc, ManagementInfoScope, ManagementInfoSpecialValueSource, ManagementInfoUiPresentation, ManagementInfoValueFieldFragmentDoc, ManagementInfoValueHandling, MarkupFareType, MarkupFlightCabinClass, MarkupFlightSpecialFares, MeetingRoomCatering, MeetingRoomDuration, MeetingRoomEquipment, MeetingRoomLayout, MemoizePipe, MessageTarget, MessageType, MessagesService, ModalOpenerService, MoveItemToADifferentBasketDocument, MoveItemToADifferentBasketGQL, OBTServicesModule, OBTproviders, OfficeFieldsFragmentDoc, OwnerFieldsFragmentDoc, OysterCardsInfoFragmentDoc, ParkingQuoteFetcher, ParkingStationFragmentDoc, PassengerInputType, PassengerType, PaymentMethodFieldsFragmentDoc, PaymentMethodWithCardFieldsFragmentDoc, PhoneType, PlaceCategory, PreferenceKey, ProfileConfigOption, PromptUpdateService, RailAccountsListFragmentDoc, RailCallingPointsFragmentDoc, RailClass, RailFareProcessingService, RailJourneyFareFragmentDoc, RailJourneyOptionFragmentDoc, RailQuoteFetcher, RailResultsStateService, RailSearchComposition, RailSearchJourneyType, RailSeatInfoFragmentDoc, RailSeatPreferenceTypeFragmentDoc, RailSegmentFieldsFragmentDoc, RailStationClassification, RailStoppingPattern, RailTicketFieldsFragmentDoc, RailTicketOptionFieldsFragmentDoc, RailTicketQueueListFragmentDoc, RedirectApproverFetcher, RemoveFavouriteUserDocument, RemoveFavouriteUserGQL, RemoveFavouriteUserUpdater, RemoveItemFromBasketDocument, RemoveItemFromBasketGQL, RemoveItemFromBasketUpdater, RemovePreferredTransportHubDocument, RemovePreferredTransportHubGQL, RemovePreferredTransportHubUpdater, RemoveRedirectApproverDocument, RemoveRedirectApproverGQL, RemoveRedirectApproverUpdater, ResendApproverEmailDocument, ResendApproverEmailFetcher, ResendApproverEmailGQL, ReserveRailSeatsDocument, ReserveRailSeatsGQL, ReserveRailSeatsUpdater, RevalidateBasketDocument, RevalidateBasketGQL, RevalidateBasketUpdater, RiskLevel, RoomAvaliabilityFragmentDoc, RouteHappyService, SaveFavouriteSearchDocument, SaveFavouriteSearchGQL, SaveFavouriteSearchUpdater, SaveRecentBoltSearchDocument, SaveRecentBoltSearchGQL, SaveRecentBoltSearchUpdater, SaveRecentSearchDocument, SaveRecentSearchGQL, SaveRecentSearchUpdater, SaveUserAddressDocument, SaveUserAddressGQL, SaveUserAddressUpdater, SearchAirlinesDocument, SearchAirlinesFetcher, SearchAirlinesGQL, SearchAirportsDocument, SearchAirportsFetcher, SearchAirportsGQL, SearchCabHireDocument, SearchCabHireGQL, SearchCarHireDocument, SearchCarHireGQL, SearchCitiesDocument, SearchCitiesGQL, SearchCityFetcher, SearchCompanyApproversDocument, SearchCompanyApproversFetcher, SearchCompanyApproversGQL, SearchCompanyUsersDocument, SearchCompanyUsersFetcher, SearchCompanyUsersGQL, SearchDepotFetcher, SearchDiscoverLocationDocument, SearchDiscoverLocationFetcher, SearchDiscoverLocationGQL, SearchDocumentValidationService, SearchEurostarDocument, SearchEurostarGQL, SearchFastTrackDocument, SearchFastTrackGQL, SearchFlightsV2Document, SearchFlightsV2GQL, SearchGeoLocationDocument, SearchGeoLocationFetcher, SearchGeoLocationGQL, SearchHotelChainsDocument, SearchHotelChainsFetcher, SearchHotelChainsGQL, SearchHotelsDocument, SearchHotelsGQL, SearchIrlDocument, SearchIrlGQL, SearchIrlStationsFetcher, SearchIrlSupplierStationsDocument, SearchIrlSupplierStationsGQL, SearchLoungesDocument, SearchLoungesGQL, SearchMIAutoSuggestValuesFetcher, SearchMiAutoSuggestValuesDocument, SearchMiAutoSuggestValuesGQL, SearchParkingDocument, SearchParkingGQL, SearchPaymentValidationService, SearchPostcodeFetcher, SearchPostcodesDocument, SearchPostcodesGQL, SearchRailDocument, SearchRailGQL, SearchRailInwardDocument, SearchRailInwardFetcher, SearchRailInwardGQL, SearchRailStationsDocument, SearchRailStationsFetcher, SearchRailStationsGQL, SearchUserAddressDocument, SearchUserAddressGQL, SearchUserCanBookForDocument, SearchUserCanBookForGQL, SearchUserWithEmailDocument, SearchUserWithEmailFetcher, SearchUserWithEmailGQL, SearchUsersCanBookForFetcher, SeasonTicketCardType, SeasonTicketClassType, SeasonTicketDeliveryType, SeasonTicketLondonUnderground, SeasonTicketType, SelectBasketApproverDocument, SelectBasketApproverGQL, SelectBasketApproverUpdater, SelectBasketMultiLevelApproversDocument, SelectBasketMultiLevelApproversGQL, SelectBasketMultiLevelApproversUpdater, SelectBasketNotifyApproverDocument, SelectBasketNotifyApproverGQL, SelectBasketNotifyApproverUpdater, SendBackToQueueDocument, SendBackToQueueGQL, SendBackToQueueUpdater, SendOfflineNotificationDocument, SendOfflineNotificationFetcher, SendOfflineNotificationGQL, ServiceMinimalFieldsFragmentDoc, ServiceType, SetBasketItemApexxTokenDocument, SetBasketItemApexxTokenGQL, SetBasketItemApexxTokenUpdater, SetBasketItemLeadPassengerDocument, SetBasketItemLeadPassengerGQL, SetBasketItemPaymentMethodDocument, SetBasketItemPaymentMethodGQL, SetEmptyUserMIDefaultValueUpdater, SetEmptyUserMiDefaultValueDocument, SetEmptyUserMiDefaultValueGQL, SetMIValuesUpdater, SetMiValuesDocument, SetMiValuesGQL, SetPaymentOptionUpdater, SetPreferredTransportHubDocument, SetPreferredTransportHubGQL, SetPreferredTransportHubUpdater, SetUserLanguageDocument, SetUserLanguageGQL, SetUserMIDefaultValueUpdater, SetUserMiDefaultValueDocument, SetUserMiDefaultValueGQL, ShareBasketDocument, ShareBasketGQL, ShareBasketUpdater, ShoppingInfoFragmentDoc, SmartCardsInfoFragmentDoc, SplitRailJourneyFareFragmentDoc, StorageService, SuggestPlacesDocument, SuggestPlacesFetcher, SuggestPlacesGQL, TicketOfficeInfoFragmentDoc, TicketQueueService, TicketType, TimeType, ToiletsBabyInfoFragmentDoc, TrainlineTenantIsFrenchDocument, TrainlineTenantIsFrenchFetcher, TrainlineTenantIsFrenchGQL, TransportType, TravellerGuestsFieldsFragmentDoc, TravellerUserFieldsFragmentDoc, UiConfigTarget, UpdateBasketNotesDocument, UpdateBasketNotesGQL, UpdateBasketTitleDocument, UpdateBasketTitleGQL, UpdateDOBUpdater, UpdateDobDocument, UpdateDobGQL, UpdateExchangeBasketDocument, UpdateExchangeBasketGQL, UpdateExchangeBasketUpdater, UpdateFlightSeatMapDocument, UpdateFlightSeatMapGQL, UpdateFlightSeatMapUpdater, UserApproversFieldsFragmentDoc, UserFieldsFragmentDoc, UserMessagesFetcher, UserMiFragmentDoc, UserMinimalFieldsFragmentDoc, UserProductsFetcher, UserService, UserSummaryFieldsFragmentDoc, UserUiConfigsFetcher, UsersFragmentDoc, ValidateBasketItemMiDocument, ValidateBasketItemMiFetcher, ValidateBasketItemMiGQL, ValidateBasketMiDocument, ValidateBasketMiFetcher, ValidateBasketMiGQL, VehicleType, WebTokenService, WifiInfoFragmentDoc, WithSubscriptionComponent };
18112
+ export { AcceptNewPriceDocument, AcceptNewPriceGQL, AcceptNewPriceUpdater, AccessibilityInfoFragmentDoc, AddBasketItemCustomRemarkDocument, AddBasketItemCustomRemarkGQL, AddBasketItemCustomRemarkUpdater, AddBasketItemMarkupDocument, AddBasketItemMarkupGQL, AddBasketItemMarkupUpdater, AddFavouriteUserDocument, AddFavouriteUserGQL, AddFavouriteUserUpdater, AddGuestToBasketItemUpdater, AddGuestsToBasketItemDocument, AddGuestsToBasketItemGQL, AddItemToBasketDocument, AddItemToBasketGQL, AddItemToBasketUpdater, AddRedirectApproverDocument, AddRedirectApproverGQL, AddRedirectApproverUpdater, AddToBasketFieldsFragmentDoc, AddUpdatedItemToBasketDocument, AddUpdatedItemToBasketGQL, AddUpdatedItemToBasketUpdater, AddUserToBasketItemUpdater, AddUsersToBasketItemDocument, AddUsersToBasketItemGQL, AddressType, AmendBookingDocument, AmendBookingGQL, AmendBookingUpdater, ApexxCardStatus, ApexxCreateCardDocument, ApexxCreateCardGQL, ApexxDeleteCardDocument, ApexxDeleteCardGQL, ApexxDeleteCardUpdater, ApexxListCardsDocument, ApexxListCardsGQL, ApexxUpdateCardDocument, ApexxUpdateCardGQL, ApexxUpdateCardUpdater, ApplyJitFlightRulesDocument, ApplyJitFlightRulesGQL, ApplyJitHotelRulesDocument, ApplyJitHotelRulesGQL, ApprovalEventType, ApproverUserFieldsFragmentDoc, AuthHttpService, BaggageType, BannerDisplayTarget, BasketFieldsFragmentDoc, BasketItemStatus, BasketMinimalFieldsFragmentDoc, BasketPanelComponent, BasketStatus, BeforeAmendCabSearchDocument, BeforeAmendCabSearchFetcher, BeforeAmendCabSearchGQL, BeforeAmendCarHireSearchDocument, BeforeAmendCarHireSearchFetcher, BeforeAmendCarHireSearchGQL, BookBasketDocument, BookBasketFieldsFragmentDoc, BookBasketGQL, BookBasketUpdater, BookerType, CabHireVehicleType, CabhireQuoteFetcher, CanAmendBookingDocument, CanAmendBookingFetcher, CanAmendBookingGQL, CancelBookingDocument, CancelBookingGQL, CancelBookingUpdater, CarHireAvailabilityDetailFetcher, CarHireAvailabilityDetailRequestDocument, CarHireAvailabilityDetailRequestGQL, CarHireClass, CarHireTransmission, CarHireType, CarbonPolicyDuration, CarbonPolicySource, CarhireQuoteFetcher, ChangeBasketOwnershipDocument, ChangeBasketOwnershipGQL, ChangeBasketOwnershipUpdater, ChangeMode, ChatbotService, CheckForDuplicateBookingsDocument, CheckForDuplicateBookingsFetcher, CheckForDuplicateBookingsGQL, CheckIfBasketRequiresApprovalDocument, CheckIfBasketRequiresApprovalFetcher, CheckIfBasketRequiresApprovalGQL, CompanyType, ConfirmMessagesDocument, ConfirmMessagesGQL, ConvertCurrencyDocument, ConvertCurrencyFetcher, ConvertCurrencyGQL, CreateBasketDocument, CreateBasketFieldsFragmentDoc, CreateBasketFromDraftDocument, CreateBasketFromDraftGQL, CreateBasketFromDraftUpdater, CreateBasketGQL, CreateBasketNoteDocument, CreateBasketNoteGQL, CreateBasketNoteUpdater, CreateBasketUpdater, CreateGuestDocument, CreateGuestGQL, CreateGuestUpdater, CreateItineraryExchangeDocument, CreateItineraryExchangeGQL, CurrencyCode, CycleInfoFragmentDoc, DeleteAllRecentSearchesDocument, DeleteAllRecentSearchesGQL, DeleteAllRecentSearchesUpdater, DeleteBasketDocument, DeleteBasketGQL, DeleteBasketUpdater, DeleteFavouriteSearchDocument, DeleteFavouriteSearchGQL, DeleteFavouriteSearchUpdater, DeleteGuestDocument, DeleteGuestGQL, DeleteGuestUpdater, DeleteRecentSearchDocument, DeleteRecentSearchGQL, DeleteUserAddressDocument, DeleteUserAddressGQL, DiscountType, DistanceTypes, DivisionFieldsFragmentDoc, DocGender, DocType, DraftBasketType, EditUserAddressDocument, EditUserAddressGQL, EditUserAddressUpdater, EditUserDocument, EditUserGQL, EmailAmbulanceBookingFetcher, EmailAmbulanceBookingReqDocument, EmailAmbulanceBookingReqGQL, EmailApartmentBookingFetcher, EmailApartmentBookingReqDocument, EmailApartmentBookingReqGQL, EmailBasketDocument, EmailBasketFetcher, EmailBasketGQL, EmailFerryBookingFetcher, EmailFerryBookingReqDocument, EmailFerryBookingReqGQL, EmailMeetingRoomBookingFetcher, EmailMeetingRoomBookingReqDocument, EmailMeetingRoomBookingReqGQL, EmailSeasonTicketBookingFetcher, EmailSeasonTicketBookingReqDocument, EmailSeasonTicketBookingReqGQL, EntLocationsByCityDocument, EntLocationsByCityGQL, EntLocationsByPostcodeDocument, EntLocationsByPostcodeGQL, EnterpriseBasketService, EnterpriseMyBookingsService, EnterpriseSearchService, Environment, ErrorsFragmentDoc, EurostarQuoteFetcher, EventMessenager, EvolviSeatmapsAreEnabledDocument, EvolviSeatmapsAreEnabledGQL, ExchangeType, ExternalHttpService, FailedEmail, FareRuleType, FareType, FerryOrEurotunnel, FlightCabinClass, FlightItineraryFieldsFragmentDoc, FlightPassengerType, FlightQuoteFetcher, GenerateBasketPdfDocument, GenerateBasketPdfFetcher, GenerateBasketPdfGQL, GetAirAvailabilityDocument, GetAirAvailabilityFetcher, GetAirAvailabilityGQL, GetAllAirlinesDocument, GetAllAirlinesFetcher, GetAllAirlinesGQL, GetApexxListCardsFetcher, GetBannerDocument, GetBannerFetcher, GetBannerGQL, GetBasketApprovalInfoDocument, GetBasketApprovalInfoFetcher, GetBasketApprovalInfoGQL, GetBasketApprovalTimestampsDocument, GetBasketApprovalTimestampsGQL, GetBasketCo2InfoFetcher, GetBasketFetcher, GetBasketItemCustomRemarksDocument, GetBasketItemCustomRemarksFetcher, GetBasketItemCustomRemarksGQL, GetBasketNotesDocument, GetBasketNotesFetcher, GetBasketNotesGQL, GetBasketQuoteDocument, GetBasketQuoteFetcher, GetBasketQuoteGQL, GetBrandedFaresDocument, GetBrandedFaresGQL, GetCancellationInfoDocument, GetCancellationInfoFetcher, GetCancellationInfoGQL, GetCarHireDepotsDocument, GetCarHireDepotsGQL, GetCarHireProvidersDocument, GetCarHireProvidersFetcher, GetCarHireProvidersGQL, GetCompaniesDocument, GetCompaniesFetcher, GetCompaniesGQL, GetCompanyDocument, GetCompanyFetcher, GetCompanyGQL, GetConfermaQuicklistDocument, GetConfermaQuicklistGQL, GetConfermaRoomImagesDocument, GetConfermaRoomImagesGQL, GetCovidMicrositeTokenDocument, GetCovidMicrositeTokenFetcher, GetCovidMicrositeTokenGQL, GetCurrencyConversionRatesDocument, GetCurrencyConversionRatesFetcher, GetCurrencyConversionRatesGQL, GetDivisionDocument, GetDivisionGQL, GetDraftBasketsDocument, GetDraftBasketsFetcher, GetDraftBasketsGQL, GetEmptyUserMiDefaultValuesDocument, GetEmptyUserMiDefaultValuesFetcher, GetEmptyUserMiDefaultValuesGQL, GetEntLocationByPostcode, GetEvolviSeatmapsAreEnabledFetcher, GetFerryPortsDocument, GetFerryPortsFetcher, GetFerryPortsGQL, GetFlightAtNewClassDocument, GetFlightAtNewClassFetcher, GetFlightAtNewClassGQL, GetFlightBrandedFaresFetcher, GetFlightExchangeDetailsDocument, GetFlightExchangeDetailsFetcher, GetFlightExchangeDetailsGQL, GetFlightExtrasOptionsDocument, GetFlightExtrasOptionsFetcher, GetFlightExtrasOptionsGQL, GetFlightFareRulesDocument, GetFlightFareRulesFetcher, GetFlightFareRulesGQL, GetFlightSearchExchangeDocument, GetFlightSearchExchangeFetcher, GetFlightSearchExchangeGQL, GetFlightSeatMapDocument, GetFlightSeatMapFetcher, GetFlightSeatMapGQL, GetFlightUpsellOffersDocument, GetFlightUpsellOffersFetcher, GetFlightUpsellOffersGQL, GetGmtItineraryOptionsDocument, GetGmtItineraryOptionsFetcher, GetGmtItineraryOptionsGQL, GetGutCitySuggestionsDocument, GetGutCitySuggestionsFetcher, GetGutCitySuggestionsGQL, GetGutLocationSuggestionsDocument, GetGutLocationSuggestionsFetcher, GetGutLocationSuggestionsGQL, GetHotelChainsDocument, GetHotelChainsFetcher, GetHotelChainsGQL, GetHotelDetailsDocument, GetHotelDetailsFetcher, GetHotelDetailsGQL, GetIrlDiscountCardsDocument, GetIrlDiscountCardsGQL, GetIrlSupplierStationDocument, GetIrlSupplierStationFetcher, GetIrlSupplierStationGQL, GetLatLonFromHereIdDocument, GetLatLonFromHereIdFetcher, GetLatLonFromHereIdGQL, GetLatestVersionsDocument, GetLatestVersionsFetcher, GetLatestVersionsGQL, GetMIApproversFetcher, GetMiApproversDocument, GetMiApproversGQL, GetMiRequiringMandatoryDefaultValueDocument, GetMiRequiringMandatoryDefaultValueFetcher, GetMiRequiringMandatoryDefaultValueGQL, GetMultipleHotelRatingDocument, GetMultipleHotelRatingFetcher, GetMultipleHotelRatingGQL, GetMultipleHotelsAvailabilityDocument, GetMultipleHotelsAvailabilityGQL, GetOfficeApproversDocument, GetOfficeApproversFetcher, GetOfficeApproversGQL, GetOfficeDivisionsDocument, GetOfficeDivisionsFetcher, GetOfficeDivisionsGQL, GetOfficeDocument, GetOfficeFetcher, GetOfficeGQL, GetOfficeUsersDocument, GetOfficeUsersFetcher, GetOfficeUsersGQL, GetOfficesDocument, GetOfficesFetcher, GetOfficesGQL, GetPriceHiddenSabreExchangeDocument, GetPriceHiddenSabreExchangeFetcher, GetPriceHiddenSabreExchangeGQL, GetRailcardsFetcher as GetRailCardsFetcher, GetRailLiveDeparturesDocument, GetRailLiveDeparturesFetcher, GetRailLiveDeparturesGQL, GetRailProvidersDocument, GetRailProvidersFetcher, GetRailProvidersGQL, GetRailSearchExchangeDocument, GetRailSearchExchangeGQL, GetRailStationDocument, GetRailStationFetcher, GetRailStationGQL, GetRailStationInfoDocument, GetRailStationInfoFetcher, GetRailStationInfoGQL, GetRailcardsDocument, GetRailcardsFetcher, GetRailcardsGQL, GetRedirectApproverDocument, RedirectApproverFetcher as GetRedirectApproverFetcher, GetRedirectApproverGQL, GetRequestedBookingUpdateDocument, GetRequestedBookingUpdateFetcher, GetRequestedBookingUpdateGQL, GetRiskAlertsDocument, GetRiskAlertsFetcher, GetRiskAlertsGQL, GetRouteHappyDocument, GetRouteHappyFetcher, GetRouteHappyGQL, SearchCompanyApproversFetcher as GetSearchCompanyApproversFetcher, GetServiceDocument, GetServiceFetcher, GetServiceGQL, GetTrainSeatMapDocument, GetTrainSeatMapEvolviDocument, GetTrainSeatMapEvolviGQL, GetTrainSeatMapGQL, GetTrainSeatmapEvolviFetcher, GetTrainSeatmapFetcher, GetTrainlineSearchConfigDocument, GetTrainlineSearchConfigFetcher, GetTrainlineSearchConfigGQL, GetUserAddressesDocument, GetUserAddressesGQL, GetUserApproversDocument, GetUserApproversFetcher, GetUserApproversGQL, GetUserBasketCo2InfoDocument, GetUserBasketCo2InfoGQL, GetUserBasketDocument, GetUserBasketGQL, GetUserBasketsDocument, GetUserBasketsFetcher, GetUserBasketsGQL, GetUserCarbonAllowanceDocument, GetUserCarbonAllowanceFetcher, GetUserCarbonAllowanceGQL, GetUserCompanyOfficesDocument, GetUserCompanyOfficesFetcher, GetUserCompanyOfficesGQL, GetUserCarbonAllowanceFetcher as GetUserCurrentCarbonAllowanceFetcher, GetUserDocument, GetUserDocumentLoyaltyDocument, GetUserDocumentLoyaltyFetcher, GetUserDocumentLoyaltyGQL, GetUserEmergencyContactDocument, GetUserEmergencyContactFetcher, GetUserEmergencyContactGQL, GetUserFavouriteSearchesDocument, GetUserFavouriteSearchesFetcher, GetUserFavouriteSearchesGQL, GetUserFavouriteUsersDocument, GetUserFavouriteUsersFetcher, GetUserFavouriteUsersGQL, GetUserFetcher, GetUserGQL, GetUserGuestsDocument, GetUserGuestsFetcher, GetUserGuestsGQL, GetUserMessagesDocument, GetUserMessagesGQL, GetUserMiDefaultValuesDocument, GetUserMiDefaultValuesFetcher, GetUserMiDefaultValuesGQL, GetUserMiDocument, GetUserMiFetcher, GetUserMiGQL, GetUserMiStackDocument, GetUserMiStackFetcher, GetUserMiStackGQL, GetUserPhoneDocument, GetUserPhoneGQL, GetUserPhoneNumbersDocument, GetUserPhoneNumbersGQL, GetUserPreferredTransportHubsDocument, GetUserPreferredTransportHubsFetcher, GetUserPreferredTransportHubsGQL, GetUserRecentBoltSearchesDocument, GetUserRecentBoltSearchesGQL, GetUserRecentSearchesDocument, GetUserRecentSearchesFetcher, GetUserRecentSearchesGQL, GetUserServicesDocument, GetUserServicesGQL, GetUserSharedBasketsDocument, GetUserSharedBasketsFetcher, GetUserSharedBasketsGQL, GetUserUiConfigsDocument, GetUserUiConfigsGQL, GmtItineraryAirportOptionFragmentFragmentDoc, GmtItineraryEurostarOptionFragmentFragmentDoc, GmtItineraryRailStationOptioFragmentFragmentDoc, GroupedFieldsFragmentDoc, HelpInfoFragmentDoc, HelperRoutines, HotelAvalibilityQuoteFetcher, HotelAvalibilityService, HotelQuoteFetcher, HotelStaticTagDisplay, HttpCallService, HttpCancelInterceptor, HttpCancelService, InvokedUserFieldsFragmentDoc, IrlClass, IrlJourneyType, IrlSupplier, IrlTravellerStatus, IsPostcodeValidDocument, IsPostcodeValidGQL, ItineraryEmailTo, LeadPassengerType, LocationType, Location_DetailFragmentDoc, LogLevelType, LogonService, LoungeQuoteFetcher, LoungesInfoFragmentDoc, ManagementInfoDefaultValuePrepopulation, ManagementInfoFieldFragmentDoc, ManagementInfoScope, ManagementInfoSpecialValueSource, ManagementInfoUiPresentation, ManagementInfoValueFieldFragmentDoc, ManagementInfoValueHandling, MarkupFareType, MarkupFlightCabinClass, MarkupFlightSpecialFares, MeetingRoomCatering, MeetingRoomDuration, MeetingRoomEquipment, MeetingRoomLayout, MemoizePipe, MessageTarget, MessageType, MessagesService, ModalOpenerService, MoveItemToADifferentBasketDocument, MoveItemToADifferentBasketGQL, OBTServicesModule, OBTproviders, OfficeFieldsFragmentDoc, OwnerFieldsFragmentDoc, OysterCardsInfoFragmentDoc, ParkingQuoteFetcher, ParkingStationFragmentDoc, PassengerInputType, PassengerType, PaymentMethodFieldsFragmentDoc, PaymentMethodWithCardFieldsFragmentDoc, PhoneType, PlaceCategory, PreferenceKey, ProfileConfigOption, PromptUpdateService, RailAccountsListFragmentDoc, RailCallingPointsFragmentDoc, RailClass, RailFareProcessingService, RailJourneyFareFragmentDoc, RailJourneyOptionFragmentDoc, RailQuoteFetcher, RailResultsStateService, RailSearchComposition, RailSearchJourneyType, RailSeatInfoFragmentDoc, RailSeatPreferenceTypeFragmentDoc, RailSegmentFieldsFragmentDoc, RailStationClassification, RailStoppingPattern, RailTicketFieldsFragmentDoc, RailTicketOptionFieldsFragmentDoc, RailTicketQueueListFragmentDoc, RedirectApproverFetcher, RemoveFavouriteUserDocument, RemoveFavouriteUserGQL, RemoveFavouriteUserUpdater, RemoveItemFromBasketDocument, RemoveItemFromBasketGQL, RemoveItemFromBasketUpdater, RemovePreferredTransportHubDocument, RemovePreferredTransportHubGQL, RemovePreferredTransportHubUpdater, RemoveRedirectApproverDocument, RemoveRedirectApproverGQL, RemoveRedirectApproverUpdater, ResendApproverEmailDocument, ResendApproverEmailFetcher, ResendApproverEmailGQL, ReserveRailSeatsDocument, ReserveRailSeatsGQL, ReserveRailSeatsUpdater, ResultAwareService, RevalidateBasketDocument, RevalidateBasketGQL, RevalidateBasketUpdater, RiskLevel, RoomAvaliabilityFragmentDoc, RouteHappyService, SaveFavouriteSearchDocument, SaveFavouriteSearchGQL, SaveFavouriteSearchUpdater, SaveRecentBoltSearchDocument, SaveRecentBoltSearchGQL, SaveRecentBoltSearchUpdater, SaveRecentSearchDocument, SaveRecentSearchGQL, SaveRecentSearchUpdater, SaveUserAddressDocument, SaveUserAddressGQL, SaveUserAddressUpdater, SearchAirlinesDocument, SearchAirlinesFetcher, SearchAirlinesGQL, SearchAirportsDocument, SearchAirportsFetcher, SearchAirportsGQL, SearchCabHireDocument, SearchCabHireGQL, SearchCarHireDocument, SearchCarHireGQL, SearchCitiesDocument, SearchCitiesGQL, SearchCityFetcher, SearchCompanyApproversDocument, SearchCompanyApproversFetcher, SearchCompanyApproversGQL, SearchCompanyUsersDocument, SearchCompanyUsersFetcher, SearchCompanyUsersGQL, SearchDepotFetcher, SearchDiscoverLocationDocument, SearchDiscoverLocationFetcher, SearchDiscoverLocationGQL, SearchDocumentValidationService, SearchEurostarDocument, SearchEurostarGQL, SearchFastTrackDocument, SearchFastTrackGQL, SearchFlightsV2Document, SearchFlightsV2GQL, SearchGeoLocationDocument, SearchGeoLocationFetcher, SearchGeoLocationGQL, SearchHotelChainsDocument, SearchHotelChainsFetcher, SearchHotelChainsGQL, SearchHotelsDocument, SearchHotelsGQL, SearchIrlDocument, SearchIrlGQL, SearchIrlStationsFetcher, SearchIrlSupplierStationsDocument, SearchIrlSupplierStationsGQL, SearchLoungesDocument, SearchLoungesGQL, SearchMIAutoSuggestValuesFetcher, SearchMiAutoSuggestValuesDocument, SearchMiAutoSuggestValuesGQL, SearchParkingDocument, SearchParkingGQL, SearchPaymentValidationService, SearchPostcodeFetcher, SearchPostcodesDocument, SearchPostcodesGQL, SearchRailDocument, SearchRailGQL, SearchRailInwardDocument, SearchRailInwardFetcher, SearchRailInwardGQL, SearchRailStationsDocument, SearchRailStationsFetcher, SearchRailStationsGQL, SearchUserAddressDocument, SearchUserAddressGQL, SearchUserCanBookForDocument, SearchUserCanBookForGQL, SearchUserWithEmailDocument, SearchUserWithEmailFetcher, SearchUserWithEmailGQL, SearchUsersCanBookForFetcher, SeasonTicketCardType, SeasonTicketClassType, SeasonTicketDeliveryType, SeasonTicketLondonUnderground, SeasonTicketType, SelectBasketApproverDocument, SelectBasketApproverGQL, SelectBasketApproverUpdater, SelectBasketMultiLevelApproversDocument, SelectBasketMultiLevelApproversGQL, SelectBasketMultiLevelApproversUpdater, SelectBasketNotifyApproverDocument, SelectBasketNotifyApproverGQL, SelectBasketNotifyApproverUpdater, SendBackToQueueDocument, SendBackToQueueGQL, SendBackToQueueUpdater, SendOfflineNotificationDocument, SendOfflineNotificationFetcher, SendOfflineNotificationGQL, ServiceMinimalFieldsFragmentDoc, ServiceType, SetBasketItemApexxTokenDocument, SetBasketItemApexxTokenGQL, SetBasketItemApexxTokenUpdater, SetBasketItemLeadPassengerDocument, SetBasketItemLeadPassengerGQL, SetBasketItemPaymentMethodDocument, SetBasketItemPaymentMethodGQL, SetEmptyUserMIDefaultValueUpdater, SetEmptyUserMiDefaultValueDocument, SetEmptyUserMiDefaultValueGQL, SetMIValuesUpdater, SetMiValuesDocument, SetMiValuesGQL, SetPaymentOptionUpdater, SetPreferredTransportHubDocument, SetPreferredTransportHubGQL, SetPreferredTransportHubUpdater, SetUserLanguageDocument, SetUserLanguageGQL, SetUserMIDefaultValueUpdater, SetUserMiDefaultValueDocument, SetUserMiDefaultValueGQL, ShareBasketDocument, ShareBasketGQL, ShareBasketUpdater, ShoppingInfoFragmentDoc, SmartCardsInfoFragmentDoc, SplitRailJourneyFareFragmentDoc, StorageService, SuggestPlacesDocument, SuggestPlacesFetcher, SuggestPlacesGQL, TicketOfficeInfoFragmentDoc, TicketQueueService, TicketType, TimeType, ToiletsBabyInfoFragmentDoc, TrainlineTenantIsFrenchDocument, TrainlineTenantIsFrenchFetcher, TrainlineTenantIsFrenchGQL, TransportType, TravellerGuestsFieldsFragmentDoc, TravellerUserFieldsFragmentDoc, UiConfigTarget, UpdateBasketNotesDocument, UpdateBasketNotesGQL, UpdateBasketTitleDocument, UpdateBasketTitleGQL, UpdateDOBUpdater, UpdateDobDocument, UpdateDobGQL, UpdateExchangeBasketDocument, UpdateExchangeBasketGQL, UpdateExchangeBasketUpdater, UpdateFlightSeatMapDocument, UpdateFlightSeatMapGQL, UpdateFlightSeatMapUpdater, UserApproversFieldsFragmentDoc, UserFieldsFragmentDoc, UserMessagesFetcher, UserMiFragmentDoc, UserMinimalFieldsFragmentDoc, UserProductsFetcher, UserService, UserSummaryFieldsFragmentDoc, UserUiConfigsFetcher, UsersFragmentDoc, ValidateBasketItemMiDocument, ValidateBasketItemMiFetcher, ValidateBasketItemMiGQL, ValidateBasketMiDocument, ValidateBasketMiFetcher, ValidateBasketMiGQL, VehicleType, WebTokenService, WifiInfoFragmentDoc, WithSubscriptionComponent };
17805
18113
  //# sourceMappingURL=sabstravtech-obtservices-angular.mjs.map