@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.
- package/angular/components/basket-panel.d.ts +1 -1
- package/angular/fetchers.d.ts +0 -2
- package/angular/lib/vendor/classes/helpers.d.ts +2 -2
- package/angular/lib/vendor/fetchers/get-flight-exchange-details.fetcher.d.ts +1 -1
- package/angular/lib/vendor/fetchers/get-flight-search-exchange.fetcher.d.ts +1 -1
- package/angular/lib/vendor/fetchers/get-latest-versions.fetcher.d.ts +1 -1
- package/angular/lib/vendor/fetchers/get-rail-search-exchange.fetcher.d.ts +1 -1
- package/angular/lib/vendor/interceptors/http-cancel-interceptor.d.ts +3 -3
- package/angular/lib/vendor/services/chatbot.service.d.ts +40 -0
- package/angular/lib/vendor/services/enterprise-basket.service.d.ts +12 -15
- package/angular/lib/vendor/services/hotel-avallibility.service.d.ts +2 -2
- package/angular/lib/vendor/services/http-call.service.d.ts +3 -3
- package/angular/lib/vendor/services/http-cancel.service.d.ts +1 -1
- package/angular/lib/vendor/services/logon.service.d.ts +5 -5
- package/angular/lib/vendor/services/messages.service.d.ts +1 -1
- package/angular/lib/vendor/services/my-bookings.service.d.ts +2 -2
- package/angular/lib/vendor/services/prompt-update.service.d.ts +1 -1
- package/angular/lib/vendor/services/result-aware.service.d.ts +39 -0
- package/angular/lib/vendor/services/search-document-validation.service.d.ts +1 -1
- package/angular/lib/vendor/services/search-payment-validation.service.d.ts +1 -1
- package/angular/lib/vendor/services/search.service.d.ts +15 -16
- package/angular/lib/vendor/services/user.service.d.ts +7 -7
- package/angular/lib/vendor/services/webtoken.service.d.ts +1 -1
- package/angular/lib/vendor/testers/postcode-validate.tester.d.ts +1 -1
- package/angular/lib/vendor/types/graphql.angular.types.d.ts +0 -120
- package/angular/lib/vendor/updaters/accept-new-price.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/add-basket-item-markup.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/amend-booking.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/edit-user-address.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/save-user-address.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/set-empty-user-mi-default-value.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/set-mi-values.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/set-user-mi-default-value.updater.d.ts +1 -1
- package/angular/services.d.ts +2 -0
- package/base/interfaces.d.ts +2 -0
- package/base/lib/constants/ticket-codes.d.ts +1 -1
- package/base/lib/vendor/classes/base-enterprise.d.ts +1 -1
- package/base/lib/vendor/classes/base-network-call.d.ts +1 -1
- package/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +1 -1
- package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +3 -3
- package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +3 -3
- package/base/lib/vendor/classes/draft-basket-info-mi-details.impl.d.ts +1 -1
- package/base/lib/vendor/classes/draft-management-info-and-valid.d.ts +2 -2
- package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +5 -5
- package/base/lib/vendor/classes/ferry-enterprise-search.d.ts +4 -2
- package/base/lib/vendor/classes/flight-enterprise-search.d.ts +5 -5
- package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +4 -4
- package/base/lib/vendor/classes/irl-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +4 -4
- package/base/lib/vendor/classes/management-info-and-valid.d.ts +1 -1
- package/base/lib/vendor/classes/modal-types.enum.d.ts +0 -1
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +7 -5
- package/base/lib/vendor/classes/season-ticket-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +1 -1
- package/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +3 -3
- package/base/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +2 -2
- package/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +3 -3
- package/base/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +2 -2
- package/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +1 -1
- package/base/lib/vendor/interceptors/http-cancel-interceptor.d.ts +2 -2
- package/base/lib/vendor/interfaces/Iambulance-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Iapartment-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +5 -6
- package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/interfaces/Ifast-track-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/interfaces/Iferry-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +4 -4
- package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Imeeting-room-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Imybookings.service.d.ts +2 -1
- package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Irail-station-information.interface.d.ts +1 -1
- package/base/lib/vendor/interfaces/Isearch.service.d.ts +5 -4
- package/base/lib/vendor/interfaces/Iseason-tickets-enterprise-search.d.ts +1 -1
- package/base/lib/vendor/interfaces/Iuser.service.d.ts +4 -4
- package/base/lib/vendor/interfaces/booking-baskes-duplicate-check.interface.d.ts +1 -1
- package/base/lib/vendor/interfaces/cab-hire-search-arg.interface.d.ts +2 -2
- package/base/lib/vendor/interfaces/car-hire-classes.interface.d.ts +1 -1
- package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +1 -1
- package/base/lib/vendor/interfaces/chatbot.types.d.ts +116 -0
- package/base/lib/vendor/interfaces/cheapest-price-object.d.ts +1 -1
- package/base/lib/vendor/interfaces/eurostar-search-arg.interface.d.ts +2 -2
- package/base/lib/vendor/interfaces/flight-multi-destination.interface.d.ts +3 -3
- package/base/lib/vendor/interfaces/hotel-recent-search-args.interface.d.ts +2 -2
- package/base/lib/vendor/interfaces/hotel-results-configuration.interface.d.ts +1 -1
- package/base/lib/vendor/interfaces/irl-search-arg.interface.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-list-approval.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-list-basket.d.ts +1 -14
- package/base/lib/vendor/operations/simple-fetchable-list-flight.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-list-location.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-list-misc.d.ts +1 -14
- package/base/lib/vendor/operations/simple-fetchable-list-quotes.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-list-search.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-list-user.d.ts +1 -1
- package/base/lib/vendor/operations/simple-fetchable-object.d.ts +1 -14
- package/base/lib/vendor/operations/simple-fetchers.d.ts +0 -1
- package/base/lib/vendor/operations/simple-updaters-basket-approval.d.ts +1 -1
- package/base/lib/vendor/operations/simple-updaters-basket-item.d.ts +1 -14
- package/base/lib/vendor/operations/simple-updaters-basket.d.ts +1 -1
- package/base/lib/vendor/operations/simple-updaters-booking.d.ts +1 -1
- package/base/lib/vendor/operations/simple-updaters-user-preference.d.ts +1 -1
- package/base/lib/vendor/operations/simple-updaters-user.d.ts +1 -1
- package/base/lib/vendor/services/chatbot.service.d.ts +103 -0
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +18 -17
- package/base/lib/vendor/services/http-cancel.service.d.ts +1 -1
- package/base/lib/vendor/services/logon.service.d.ts +3 -3
- package/base/lib/vendor/services/my-bookings.service.d.ts +6 -3
- package/base/lib/vendor/services/requires-override-reason.service.d.ts +4 -4
- package/base/lib/vendor/services/requires-reason.service.d.ts +2 -2
- package/base/lib/vendor/services/search.service.d.ts +9 -10
- package/base/lib/vendor/services/user.service.d.ts +6 -2
- package/base/lib/vendor/testers/base.tester.d.ts +1 -1
- package/base/lib/vendor/testers/postcode-validate.tester.d.ts +2 -2
- package/base/lib/vendor/types/basket-types.d.ts +2 -2
- package/base/lib/vendor/types/graphql.types.d.ts +0 -92
- package/base/lib/vendor/types/types.d.ts +36 -37
- package/base/services.d.ts +1 -0
- package/fesm2022/sabstravtech-obtservices-angular.mjs +656 -348
- package/fesm2022/sabstravtech-obtservices-angular.mjs.map +1 -1
- package/fesm2022/sabstravtech-obtservices-base.mjs +6284 -6318
- package/fesm2022/sabstravtech-obtservices-base.mjs.map +1 -1
- package/package.json +3 -2
- package/angular/lib/vendor/fetchers/download-eticket.fetcher.d.ts +0 -10
- package/angular/lib/vendor/fetchers/get-jyrney-url.fetcher.d.ts +0 -10
- package/angular/lib/vendor/fetchers/get-process-terms-price.fetcher.d.ts +0 -10
- 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,
|
|
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(
|
|
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
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
|
|
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
|
-
|
|
12730
|
-
|
|
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
|
|
12733
|
-
|
|
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
|
-
|
|
12737
|
-
|
|
12738
|
-
|
|
12739
|
-
|
|
12740
|
-
|
|
12741
|
-
|
|
12742
|
-
|
|
12743
|
-
|
|
12744
|
-
|
|
12745
|
-
|
|
12746
|
-
|
|
12747
|
-
|
|
12748
|
-
|
|
12749
|
-
|
|
12750
|
-
|
|
12751
|
-
|
|
12752
|
-
|
|
12753
|
-
|
|
12754
|
-
|
|
12755
|
-
|
|
12756
|
-
|
|
12757
|
-
|
|
12758
|
-
|
|
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 ===
|
|
12714
|
+
else if ((data?.required?.includes(key) || key === "ticketDeliveryOption") &&
|
|
12841
12715
|
value.type !== SchemaFormat.boolean &&
|
|
12842
12716
|
key !== SchemaFormat.passport) {
|
|
12843
|
-
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
12959
|
-
const officePrimary = addresses.find(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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 (
|
|
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
|
-
|
|
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(
|
|
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(
|
|
13269
|
-
guestInfo: (item.guests || []).map(
|
|
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(
|
|
13181
|
+
return !basket.basketItems.find(item => !item.service);
|
|
13312
13182
|
}
|
|
13313
13183
|
getNamedPropertyFromObject(obj, lookupKey) {
|
|
13314
13184
|
const keys = Object.keys(obj);
|
|
13315
|
-
for (
|
|
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
|
-
|
|
13202
|
+
let keys = Object.keys(obj);
|
|
13334
13203
|
let returnKeys = [];
|
|
13335
|
-
for (
|
|
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 (
|
|
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' ||
|
|
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,
|
|
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,
|
|
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:
|
|
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:
|
|
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,
|
|
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,
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
16746
|
+
return fareTypes.some(fareType => {
|
|
16944
16747
|
if (!fareType)
|
|
16945
16748
|
return false;
|
|
16946
|
-
return Object.values(fareType).some((fareArray) => fareArray?.some(
|
|
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(
|
|
16764
|
+
fareTypes.forEach(fareType => {
|
|
16962
16765
|
if (fareType) {
|
|
16963
16766
|
Object.values(fareType).forEach((fareArray) => {
|
|
16964
|
-
fareArray?.forEach(
|
|
16965
|
-
if (fare?.class === ticketClass &&
|
|
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(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
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(
|
|
16876
|
+
fareTypes.forEach(fares => {
|
|
17077
16877
|
if (fares) {
|
|
17078
|
-
Object.keys(fares).forEach(
|
|
16878
|
+
Object.keys(fares).forEach(className => {
|
|
17079
16879
|
const tickets = fares[className];
|
|
17080
16880
|
if (Array.isArray(tickets)) {
|
|
17081
|
-
tickets.forEach(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|