@sabstravtech/obtservices 0.2.2605260950 → 0.2.2606091300
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 +2 -0
- package/angular/lib/vendor/classes/helpers.d.ts +2 -2
- package/angular/lib/vendor/fetchers/download-eticket.fetcher.d.ts +10 -0
- 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-jyrney-url.fetcher.d.ts +10 -0
- package/angular/lib/vendor/fetchers/get-latest-versions.fetcher.d.ts +1 -1
- package/angular/lib/vendor/fetchers/get-process-terms-price.fetcher.d.ts +10 -0
- 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-eurostar-search.service.d.ts +38 -0
- package/angular/lib/vendor/services/chatbot-flight-search.service.d.ts +100 -0
- package/angular/lib/vendor/services/chatbot-hotel-search.service.d.ts +32 -0
- package/angular/lib/vendor/services/chatbot-rail-search.service.d.ts +53 -0
- package/angular/lib/vendor/services/chatbot-search-dispatcher.service.d.ts +36 -0
- package/angular/lib/vendor/services/chatbot.service.d.ts +34 -2
- package/angular/lib/vendor/services/enterprise-basket.service.d.ts +15 -12
- 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 +30 -1
- 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 +16 -15
- 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 +132 -0
- package/angular/lib/vendor/updaters/accept-new-price.updater.d.ts +1 -1
- package/angular/lib/vendor/updaters/accept-process-terms.updater.d.ts +9 -0
- 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 +5 -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 +2 -4
- 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 +1 -0
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +2 -2
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +5 -7
- 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 +6 -5
- 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 +1 -2
- 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 +4 -5
- 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 +325 -3
- 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 +14 -1
- 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 +14 -1
- 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 +14 -1
- package/base/lib/vendor/operations/simple-fetchers.d.ts +1 -0
- package/base/lib/vendor/operations/simple-updaters-basket-approval.d.ts +1 -1
- package/base/lib/vendor/operations/simple-updaters-basket-item.d.ts +14 -1
- 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 +43 -1
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +17 -18
- 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 +3 -6
- 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 +10 -9
- package/base/lib/vendor/services/user.service.d.ts +2 -6
- 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 +104 -0
- package/base/lib/vendor/types/types.d.ts +37 -36
- package/fesm2022/sabstravtech-obtservices-angular.mjs +2746 -155
- package/fesm2022/sabstravtech-obtservices-angular.mjs.map +1 -1
- package/fesm2022/sabstravtech-obtservices-base.mjs +6429 -6046
- package/fesm2022/sabstravtech-obtservices-base.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { InternalBasketInterface } from '@sabstravtech/obtservices/base';
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
|
-
import { WithSubscriptionComponent } from './with-component';
|
|
5
4
|
import { EnterpriseBasketService, EnterpriseSearchService, ModalOpenerService, UserService } from '../services';
|
|
6
5
|
import { BasketItem, ServiceType } from '../lib/vendor/types/graphql.angular.types';
|
|
6
|
+
import { WithSubscriptionComponent } from './with-component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class BasketPanelComponent extends WithSubscriptionComponent implements OnInit {
|
|
9
9
|
basketService: EnterpriseBasketService;
|
package/angular/fetchers.d.ts
CHANGED
|
@@ -124,5 +124,7 @@ export * from './lib/vendor/fetchers/get-basket-approval-info.fetcher';
|
|
|
124
124
|
export * from './lib/vendor/fetchers/trainline-tenant-is-french';
|
|
125
125
|
export * from './lib/vendor/fetchers/search-geo-location.fetcher';
|
|
126
126
|
export * from './lib/vendor/fetchers/search-discover-location.fetcher';
|
|
127
|
+
export * from './lib/vendor/fetchers/get-jyrney-url.fetcher';
|
|
127
128
|
export * from './lib/vendor/fetchers/get-price-hidden-sabre-exchange.fetcher';
|
|
128
129
|
export * from './lib/vendor/fetchers/email-ambulance-booking.fetcher';
|
|
130
|
+
export * from './lib/vendor/fetchers/download-eticket.fetcher';
|
|
@@ -81,8 +81,8 @@ export declare class HelperRoutines extends BaseHelperRoutines {
|
|
|
81
81
|
private toBookingPhoneNumber;
|
|
82
82
|
private toBookingAddress;
|
|
83
83
|
checkBasketItemHasService(basket: Basket): boolean;
|
|
84
|
-
getNamedPropertyFromObject(obj:
|
|
85
|
-
getAllKeysFromObject(obj:
|
|
84
|
+
getNamedPropertyFromObject(obj: any, lookupKey: string): any;
|
|
85
|
+
getAllKeysFromObject(obj: any, includeParentObjectKeys?: boolean): string[];
|
|
86
86
|
getAllControlKeysFromForm(form: FormGroup): string[];
|
|
87
87
|
updateIsoTimeString(isoString: string, newTime: string): string;
|
|
88
88
|
checkFlightProviderType(service: ServiceProvider): {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseDownloadETicketFetcher } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
3
|
+
import { HelperRoutines } from '../classes/helpers';
|
|
4
|
+
import { DownloadETicketGQL } from '../types/graphql.angular.types';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class DownloadETicketFetcher extends BaseDownloadETicketFetcher<DownloadETicketGQL> {
|
|
7
|
+
constructor(queryGQL: DownloadETicketGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DownloadETicketFetcher, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DownloadETicketFetcher>;
|
|
10
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { BaseFlightExchangeDetailsFetcher } from '@sabstravtech/obtservices/base';
|
|
1
2
|
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
2
3
|
import { HelperRoutines } from '../classes/helpers';
|
|
3
4
|
import { GetFlightExchangeDetailsGQL } from '../types/graphql.angular.types';
|
|
4
|
-
import { BaseFlightExchangeDetailsFetcher } from '@sabstravtech/obtservices/base';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class GetFlightExchangeDetailsFetcher extends BaseFlightExchangeDetailsFetcher<GetFlightExchangeDetailsGQL> {
|
|
7
7
|
constructor(queryGQL: GetFlightExchangeDetailsGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { BaseFlightSearchExchangeFetcher } from '@sabstravtech/obtservices/base';
|
|
1
2
|
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
2
3
|
import { HelperRoutines } from '../classes/helpers';
|
|
3
4
|
import { GetFlightSearchExchangeGQL } from '../types/graphql.angular.types';
|
|
4
|
-
import { BaseFlightSearchExchangeFetcher } from '@sabstravtech/obtservices/base';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class GetFlightSearchExchangeFetcher extends BaseFlightSearchExchangeFetcher<GetFlightSearchExchangeGQL> {
|
|
7
7
|
constructor(queryGQL: GetFlightSearchExchangeGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
2
|
+
import { HelperRoutines } from '../classes/helpers';
|
|
3
|
+
import { GetJyrneyUrlGQL } from '../types/graphql.angular.types';
|
|
4
|
+
import { BaseGetJyrneyUrlFetcher } from '@sabstravtech/obtservices/base';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class GetJyrneyUrlFetcher extends BaseGetJyrneyUrlFetcher<GetJyrneyUrlGQL> {
|
|
7
|
+
constructor(queryGQL: GetJyrneyUrlGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GetJyrneyUrlFetcher, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GetJyrneyUrlFetcher>;
|
|
10
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { BaseGetLatestVersionsFetcher } from '@sabstravtech/obtservices/base';
|
|
1
2
|
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
2
3
|
import { HelperRoutines } from '../classes/helpers';
|
|
3
4
|
import { GetLatestVersionsGQL } from '../types/graphql.angular.types';
|
|
4
|
-
import { BaseGetLatestVersionsFetcher } from '@sabstravtech/obtservices/base';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class GetLatestVersionsFetcher extends BaseGetLatestVersionsFetcher<GetLatestVersionsGQL> {
|
|
7
7
|
constructor(queryGQL: GetLatestVersionsGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseGetProcessTermsPriceFetcher } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
3
|
+
import { HelperRoutines } from '../classes/helpers';
|
|
4
|
+
import { GetProcessTermsPriceGQL } from '../types/graphql.angular.types';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class GetProcessTermsPriceFetcher extends BaseGetProcessTermsPriceFetcher<GetProcessTermsPriceGQL> {
|
|
7
|
+
constructor(queryGQL: GetProcessTermsPriceGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GetProcessTermsPriceFetcher, never>;
|
|
9
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GetProcessTermsPriceFetcher>;
|
|
10
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { BaseRailSearchExchangeFetcher } from '@sabstravtech/obtservices/base';
|
|
1
2
|
import { ModalOpenerService } from '../services/modal-opener.service';
|
|
2
3
|
import { HelperRoutines } from '../classes/helpers';
|
|
3
4
|
import { GetRailSearchExchangeGQL } from '../types/graphql.angular.types';
|
|
4
|
-
import { BaseRailSearchExchangeFetcher } from '@sabstravtech/obtservices/base';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class GetRailSearchExchangeFetcher extends BaseRailSearchExchangeFetcher<GetRailSearchExchangeGQL> {
|
|
7
7
|
constructor(queryGQL: GetRailSearchExchangeGQL, helpers: HelperRoutines, modalService: ModalOpenerService);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandler, HttpRequest } from
|
|
2
|
-
import { Observable } from
|
|
3
|
-
import { HttpCancelService } from "../services/http-cancel.service";
|
|
1
|
+
import { HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
4
3
|
import { BaseHttpCancelInterceptor } from '@sabstravtech/obtservices/base';
|
|
4
|
+
import { HttpCancelService } from '../services/http-cancel.service';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class HttpCancelInterceptor extends BaseHttpCancelInterceptor {
|
|
7
7
|
protected httpCancelService: HttpCancelService;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ChatSearchParameters, ChatbotTravelHandler } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ChatbotService } from './chatbot.service';
|
|
3
|
+
import { EnterpriseSearchService } from './search.service';
|
|
4
|
+
import { UserService } from './user.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Handles chatbot-driven Eurostar searches. Registered with
|
|
8
|
+
* `ChatbotSearchDispatcherService`; not used directly.
|
|
9
|
+
*
|
|
10
|
+
* Populates the Eurostar search state from the chatbot's parameters and, when
|
|
11
|
+
* `autoSearch` is true, runs the search headlessly so it works from any page.
|
|
12
|
+
* Once results arrive, builds `ChatEurostarResults` and patches them onto the
|
|
13
|
+
* last assistant message via {@link ChatbotService.patchAssistantMessage}.
|
|
14
|
+
*/
|
|
15
|
+
export declare class ChatbotEurostarSearchService implements ChatbotTravelHandler {
|
|
16
|
+
private chatbotService;
|
|
17
|
+
private searchService;
|
|
18
|
+
private userService;
|
|
19
|
+
readonly travelType: "eurostar";
|
|
20
|
+
private resultsSubscription;
|
|
21
|
+
constructor(chatbotService: ChatbotService, searchService: EnterpriseSearchService, userService: UserService);
|
|
22
|
+
handle(parameters: ChatSearchParameters, autoSearch: boolean): Promise<void>;
|
|
23
|
+
private runSearch;
|
|
24
|
+
/**
|
|
25
|
+
* Render OBT's validationMessages array as a chatbot reply. Single message →
|
|
26
|
+
* inline sentence; multiple → bullet list so each issue reads clearly.
|
|
27
|
+
*/
|
|
28
|
+
private formatValidationMessages;
|
|
29
|
+
private subscribeToResults;
|
|
30
|
+
private extractItems;
|
|
31
|
+
private buildCard;
|
|
32
|
+
private populateEurostarParams;
|
|
33
|
+
private mapCabinClass;
|
|
34
|
+
private resolveStation;
|
|
35
|
+
private normalizeTime;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotEurostarSearchService, never>;
|
|
37
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotEurostarSearchService>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { ChatSearchParameters, ChatbotTravelHandler } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ChatbotService } from './chatbot.service';
|
|
3
|
+
import { EnterpriseSearchService } from './search.service';
|
|
4
|
+
import { ResultAwareService } from './result-aware.service';
|
|
5
|
+
import { UserService } from './user.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Handles chatbot-driven flight searches. Registered with
|
|
9
|
+
* `ChatbotSearchDispatcherService`; not used directly.
|
|
10
|
+
*
|
|
11
|
+
* Populates the flight search state from the chatbot's parameters (same state
|
|
12
|
+
* the search form binds to via ngModel) and runs `startSearch()` headlessly
|
|
13
|
+
* so chatbot flight searches work from any page. Once results arrive, builds
|
|
14
|
+
* `ChatFlightResultCard`s and patches them onto the last assistant message
|
|
15
|
+
* via {@link ChatbotService.patchAssistantMessage}.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ChatbotFlightSearchService implements ChatbotTravelHandler {
|
|
18
|
+
private chatbotService;
|
|
19
|
+
private searchService;
|
|
20
|
+
private resultAwareService;
|
|
21
|
+
private userService;
|
|
22
|
+
readonly travelType: "flight";
|
|
23
|
+
private resultsSubscription;
|
|
24
|
+
constructor(chatbotService: ChatbotService, searchService: EnterpriseSearchService, resultAwareService: ResultAwareService, userService: UserService);
|
|
25
|
+
handle(parameters: ChatSearchParameters, autoSearch: boolean): Promise<void>;
|
|
26
|
+
private subscribeToFlightResults;
|
|
27
|
+
private buildFlightResults;
|
|
28
|
+
/**
|
|
29
|
+
* Builds a map keyed by an itinerary's flight-number signature to all
|
|
30
|
+
* bookable fare variants (cabin/brand/price) for the same physical flights.
|
|
31
|
+
* For combined-return journeys the key includes both outbound + inbound
|
|
32
|
+
* flight numbers; for dual-single legs it's just that leg's numbers.
|
|
33
|
+
*/
|
|
34
|
+
private indexFaresByFlights;
|
|
35
|
+
private flightSignature;
|
|
36
|
+
private toFareTicket;
|
|
37
|
+
/**
|
|
38
|
+
* Builds chat cards for a multi-city itinerary. OBT returns one bundle per
|
|
39
|
+
* search with per-leg result arrays; we surface the top N itineraries by
|
|
40
|
+
* pairing the i-th cheapest option from every leg into a single "stacked"
|
|
41
|
+
* card. This is naive (it doesn't try every combinatorial combination) but
|
|
42
|
+
* gives the user a useful headline view; View Full Results owns the proper
|
|
43
|
+
* fare-combination picker.
|
|
44
|
+
*
|
|
45
|
+
* OBT returns multi-city itineraries as a single `bundle.journeys[]` where
|
|
46
|
+
* each entry has all legs concatenated in `outboundFlights[]`. We split each
|
|
47
|
+
* itinerary by leg-date to produce N `ChatFlightLeg`s per card.
|
|
48
|
+
*/
|
|
49
|
+
private buildMultiCityFlightResults;
|
|
50
|
+
/**
|
|
51
|
+
* Split a concatenated multi-city flight list into per-leg buckets. Primary
|
|
52
|
+
* key is the flight's depart date matching a leg date; falls back to the
|
|
53
|
+
* latest leg whose date is on or before the flight (covers overnight
|
|
54
|
+
* connections that depart the day before the next leg's planned date).
|
|
55
|
+
*/
|
|
56
|
+
private splitFlightsByLeg;
|
|
57
|
+
/** Build a `ChatFlightLeg` from the flights assigned to a single leg. */
|
|
58
|
+
private flightsToChatLeg;
|
|
59
|
+
private formatHHmm;
|
|
60
|
+
private formatDuration;
|
|
61
|
+
private toFlightCard;
|
|
62
|
+
private formatDate;
|
|
63
|
+
private formatCabinLabel;
|
|
64
|
+
/**
|
|
65
|
+
* Render OBT's validationMessages array as a chatbot reply. Single message →
|
|
66
|
+
* inline sentence; multiple → bullet list so each issue reads clearly.
|
|
67
|
+
*/
|
|
68
|
+
private formatValidationMessages;
|
|
69
|
+
/**
|
|
70
|
+
* Tracks the last chatbot flight search's resolved airports so we can decide
|
|
71
|
+
* whether a follow-up turn is a "refinement of the same journey" (e.g. swap
|
|
72
|
+
* MAN → AMS for LPL → AMS — same metro, user is just nudging a parameter)
|
|
73
|
+
* or a "fresh search" (e.g. MAN → AMS to BER → ATH — clearly unrelated, so
|
|
74
|
+
* any sticky options like "direct only" should be cleared).
|
|
75
|
+
*/
|
|
76
|
+
private lastSearch;
|
|
77
|
+
private static readonly NEARBY_AIRPORT_KM;
|
|
78
|
+
private static distanceKm;
|
|
79
|
+
private airportCoords;
|
|
80
|
+
/**
|
|
81
|
+
* Multi-city counterpart to `populateFlightParams`. Resolves each leg's
|
|
82
|
+
* origin/destination airports, builds the `IMultiDestination[]` shape the
|
|
83
|
+
* flight search expects, and switches `chosenSearchType` to multiCity.
|
|
84
|
+
* Same-journey detection is skipped (the user is describing a fundamentally
|
|
85
|
+
* new itinerary), so we always do a full reset.
|
|
86
|
+
*/
|
|
87
|
+
private populateMultiCityFlightParams;
|
|
88
|
+
/**
|
|
89
|
+
* Apply the subset of `populateFlightParams` that is leg-agnostic (cabin
|
|
90
|
+
* class, passenger breakdown, sort, refundable flag). Shared between
|
|
91
|
+
* single/return and multi-city paths.
|
|
92
|
+
*/
|
|
93
|
+
private applySharedFlightParams;
|
|
94
|
+
private populateFlightParams;
|
|
95
|
+
private mapCabinClass;
|
|
96
|
+
private normalizeTime;
|
|
97
|
+
private resolveAirport;
|
|
98
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotFlightSearchService, never>;
|
|
99
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotFlightSearchService>;
|
|
100
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ChatSearchParameters, ChatbotTravelHandler } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ChatbotService } from './chatbot.service';
|
|
3
|
+
import { EnterpriseSearchService } from './search.service';
|
|
4
|
+
import { HotelAvalibilityService } from './hotel-avallibility.service';
|
|
5
|
+
import { ResultAwareService } from './result-aware.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Handles chatbot-driven hotel searches. Registered with
|
|
9
|
+
* `ChatbotSearchDispatcherService`; not used directly.
|
|
10
|
+
*
|
|
11
|
+
* Populates the hotel search state from the chatbot's parameters, runs the
|
|
12
|
+
* search headlessly, polls availability for the top candidates, then injects
|
|
13
|
+
* a `ChatHotelResults` message so the chat widget can render hotel cards.
|
|
14
|
+
* Works from any page — no search form component needs to be mounted.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ChatbotHotelSearchService implements ChatbotTravelHandler {
|
|
17
|
+
private chatbotService;
|
|
18
|
+
private searchService;
|
|
19
|
+
private hotelAvalibilityService;
|
|
20
|
+
private resultAwareService;
|
|
21
|
+
readonly travelType: "hotel";
|
|
22
|
+
private availabilitySubscription;
|
|
23
|
+
constructor(chatbotService: ChatbotService, searchService: EnterpriseSearchService, hotelAvalibilityService: HotelAvalibilityService, resultAwareService: ResultAwareService);
|
|
24
|
+
handle(parameters: ChatSearchParameters, autoSearch: boolean): Promise<void>;
|
|
25
|
+
private runSearch;
|
|
26
|
+
private buildHotelCards;
|
|
27
|
+
private injectNoResultsMessage;
|
|
28
|
+
private sortHotels;
|
|
29
|
+
private populateHotelParams;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotHotelSearchService, never>;
|
|
31
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotHotelSearchService>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ChatSearchParameters, ChatbotTravelHandler } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ChatbotService } from './chatbot.service';
|
|
3
|
+
import { EnterpriseSearchService } from './search.service';
|
|
4
|
+
import { ResultAwareService } from './result-aware.service';
|
|
5
|
+
import { UserService } from './user.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* Handles chatbot-driven rail searches. Registered with
|
|
9
|
+
* `ChatbotSearchDispatcherService`; not used directly.
|
|
10
|
+
*
|
|
11
|
+
* Populates the rail search state from the chatbot's parameters (same state
|
|
12
|
+
* the search form binds to via ngModel) and runs `startSearch()` headlessly
|
|
13
|
+
* so chatbot rail searches work from any page. Once results arrive, builds
|
|
14
|
+
* `ChatRailResultCard`s and patches them onto the last assistant message
|
|
15
|
+
* via {@link ChatbotService.patchAssistantMessage}.
|
|
16
|
+
*/
|
|
17
|
+
export declare class ChatbotRailSearchService implements ChatbotTravelHandler {
|
|
18
|
+
private chatbotService;
|
|
19
|
+
private searchService;
|
|
20
|
+
private resultAwareService;
|
|
21
|
+
private userService;
|
|
22
|
+
readonly travelType: "rail";
|
|
23
|
+
private resultsSubscription;
|
|
24
|
+
constructor(chatbotService: ChatbotService, searchService: EnterpriseSearchService, resultAwareService: ResultAwareService, userService: UserService);
|
|
25
|
+
handle(parameters: ChatSearchParameters, autoSearch: boolean): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Render OBT's validationMessages array as a chatbot reply. Single message →
|
|
28
|
+
* inline sentence; multiple → bullet list so each issue reads clearly.
|
|
29
|
+
*/
|
|
30
|
+
private formatValidationMessages;
|
|
31
|
+
/**
|
|
32
|
+
* Subscribe to ResultAwareService for the next rail result emission, build
|
|
33
|
+
* the top-N cards per leg, then patch the last assistant message so the
|
|
34
|
+
* chat widget can render them.
|
|
35
|
+
*/
|
|
36
|
+
private subscribeToRailResults;
|
|
37
|
+
private buildRailResults;
|
|
38
|
+
private buildInboundCards;
|
|
39
|
+
private toRailCard;
|
|
40
|
+
private formatDate;
|
|
41
|
+
private populateRailParams;
|
|
42
|
+
private normalizeTime;
|
|
43
|
+
private preferRailStation;
|
|
44
|
+
private resolveRailStation;
|
|
45
|
+
private lookupRailStations;
|
|
46
|
+
/**
|
|
47
|
+
* Generate progressively-cleaner name variants for rail station lookup.
|
|
48
|
+
* e.g. "Manchester (all stations)" → ["Manchester (all stations)", "Manchester", "Manchester all stations"]
|
|
49
|
+
*/
|
|
50
|
+
private buildRailStationNameCandidates;
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotRailSearchService, never>;
|
|
52
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotRailSearchService>;
|
|
53
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ChatSearchParameters } from '@sabstravtech/obtservices/base';
|
|
2
|
+
import { ChatbotEurostarSearchService } from './chatbot-eurostar-search.service';
|
|
3
|
+
import { ChatbotFlightSearchService } from './chatbot-flight-search.service';
|
|
4
|
+
import { ChatbotRailSearchService } from './chatbot-rail-search.service';
|
|
5
|
+
import { ChatbotHotelSearchService } from './chatbot-hotel-search.service';
|
|
6
|
+
import { ChatbotService } from './chatbot.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Routes `ChatbotService.fillSearchForm$` events to per-travel-type handlers.
|
|
10
|
+
*
|
|
11
|
+
* **To add a new travel type (hotel / eurostar / taxi / …):**
|
|
12
|
+
* 1. Create a new service implementing `ChatbotTravelHandler` (use
|
|
13
|
+
* `ChatbotRailSearchService` or `ChatbotFlightSearchService` as a
|
|
14
|
+
* reference implementation).
|
|
15
|
+
* 2. Inject it into this dispatcher and add it to {@link handlers}.
|
|
16
|
+
* 3. Nothing else needs to change — the consuming app calls {@link init}
|
|
17
|
+
* once (typically from its root component's `ngOnInit`), and search
|
|
18
|
+
* forms can ask {@link handles} which travel types to skip.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ChatbotSearchDispatcherService {
|
|
21
|
+
private chatbotService;
|
|
22
|
+
private initialised;
|
|
23
|
+
private readonly handlers;
|
|
24
|
+
constructor(chatbotService: ChatbotService, rail: ChatbotRailSearchService, flight: ChatbotFlightSearchService, hotel: ChatbotHotelSearchService, eurostar: ChatbotEurostarSearchService);
|
|
25
|
+
/** Call once at app start. Idempotent. */
|
|
26
|
+
init(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Whether a global handler is registered for the given travel type. Used by
|
|
29
|
+
* search forms to know which travel types they should skip (avoiding
|
|
30
|
+
* double-handling).
|
|
31
|
+
*/
|
|
32
|
+
handles(travelType: ChatSearchParameters['travelType'] | undefined): boolean;
|
|
33
|
+
private findHandler;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotSearchDispatcherService, never>;
|
|
35
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotSearchDispatcherService>;
|
|
36
|
+
}
|
|
@@ -2,7 +2,7 @@ import { OnDestroy } from '@angular/core';
|
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { WebTokenService } from '../services/webtoken.service';
|
|
4
4
|
import { Environment } from '../classes/environment';
|
|
5
|
-
import { BaseChatbotService, ChatMessage, ChatSearchParameters, CondensedResult, UserCapabilities, IRiskFlag } from '@sabstravtech/obtservices/base';
|
|
5
|
+
import { BaseChatbotService, BotFaq, ChatFeedbackAck, ChatMessage, ChatSearchParameters, ChatTokenEvent, ChatToolEvent, ChatWsResponse, CondensedResult, UserCapabilities, IRiskFlag } from '@sabstravtech/obtservices/base';
|
|
6
6
|
import { ResultAwareService } from './result-aware.service';
|
|
7
7
|
import { UserService } from './user.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -15,12 +15,30 @@ export declare class ChatbotService extends BaseChatbotService implements OnDest
|
|
|
15
15
|
messages$: import("rxjs").Observable<ChatMessage[]>;
|
|
16
16
|
private loadingSubject;
|
|
17
17
|
loading$: import("rxjs").Observable<boolean>;
|
|
18
|
+
private searchingSubject;
|
|
19
|
+
searchingState$: import("rxjs").Observable<{
|
|
20
|
+
searching: boolean;
|
|
21
|
+
travelType?: string;
|
|
22
|
+
}>;
|
|
23
|
+
/** Back-compat boolean stream for callers that only care whether a search is in flight. */
|
|
24
|
+
searching$: import("rxjs").Observable<boolean>;
|
|
18
25
|
fillSearchForm$: Subject<{
|
|
19
26
|
parameters: ChatSearchParameters;
|
|
20
27
|
autoSearch: boolean;
|
|
21
28
|
}>;
|
|
22
29
|
private riskFlagSubject;
|
|
23
30
|
riskFlag$: import("rxjs").Observable<IRiskFlag>;
|
|
31
|
+
private faqsSubject;
|
|
32
|
+
faqs$: import("rxjs").Observable<BotFaq[]>;
|
|
33
|
+
private tokenEventsSubject;
|
|
34
|
+
tokenEvents$: import("rxjs").Observable<ChatTokenEvent>;
|
|
35
|
+
private toolEventsSubject;
|
|
36
|
+
toolEvents$: import("rxjs").Observable<ChatToolEvent>;
|
|
37
|
+
private feedbackAckSubject;
|
|
38
|
+
feedbackAck$: import("rxjs").Observable<ChatFeedbackAck>;
|
|
39
|
+
/** Tracks the user ID that owns the current chat session, to detect user switches. */
|
|
40
|
+
private sessionOwnerId;
|
|
41
|
+
private userChangeSubscription;
|
|
24
42
|
constructor(webTokenService: WebTokenService, resultAwareService: ResultAwareService, environment: Environment, userService: UserService);
|
|
25
43
|
ngOnDestroy(): void;
|
|
26
44
|
protected getRequestUrl(): string | null;
|
|
@@ -29,12 +47,26 @@ export declare class ChatbotService extends BaseChatbotService implements OnDest
|
|
|
29
47
|
protected notifyLoading(loading: boolean): void;
|
|
30
48
|
protected notifyFillForm(parameters: ChatSearchParameters, autoSearch: boolean): void;
|
|
31
49
|
protected notifyRiskFlag(flag: IRiskFlag): void;
|
|
50
|
+
protected notifyFaqs(faqs: BotFaq[]): void;
|
|
51
|
+
protected notifyToken(event: ChatTokenEvent): void;
|
|
52
|
+
protected notifyTool(event: ChatToolEvent): void;
|
|
53
|
+
protected notifyFeedbackAck(ack: ChatFeedbackAck): void;
|
|
32
54
|
protected hasResults(): boolean;
|
|
33
55
|
protected getCondensedResults(): CondensedResult[];
|
|
34
56
|
protected executeSelection(selectedIndex: number, returnSelectedIndex?: number): Promise<void>;
|
|
35
57
|
protected getSource(): string;
|
|
36
|
-
clearSession(): void;
|
|
37
58
|
protected getUserCapabilities(): UserCapabilities;
|
|
59
|
+
connect(): void;
|
|
60
|
+
clearSession(): void;
|
|
61
|
+
injectMessage(message: ChatMessage): void;
|
|
62
|
+
protected handleResponse(env: ChatWsResponse): void;
|
|
63
|
+
/**
|
|
64
|
+
* Toggle the chatbot's "searching" indicator from a travel-type handler.
|
|
65
|
+
* @param travelType optional - lets the UI render a travel-aware label
|
|
66
|
+
* (e.g. "Searching for flights…" vs "Searching for trains…").
|
|
67
|
+
*/
|
|
68
|
+
setSearching(searching: boolean, travelType?: string): void;
|
|
69
|
+
patchAssistantMessage(patch: Partial<ChatMessage>): void;
|
|
38
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<ChatbotService, never>;
|
|
39
71
|
static ɵprov: i0.ɵɵInjectableDeclaration<ChatbotService>;
|
|
40
72
|
}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ResendApproverEmailFetcher } from '../fetchers/resend-approval-email.fetcher';
|
|
3
|
-
import { CheckIfBasketRequiresApprovalFetcher } from '../fetchers/check-if-basket-requires-approval';
|
|
4
|
-
import { AddItemToBasketUpdater } from '../updaters/add-item-to-basket.updater';
|
|
5
|
-
import { RemoveItemFromBasketUpdater } from '../updaters/remove-item-from-basket.updater';
|
|
6
|
-
import { UserService } from './user.service';
|
|
1
|
+
import { BaseEnterpriseBasketService } from '@sabstravtech/obtservices/base';
|
|
7
2
|
import { CreateBasketUpdater } from '../updaters/create-basket-updater';
|
|
8
3
|
import { AddUserToBasketItemUpdater } from '../updaters/addUserToBasketItem';
|
|
9
4
|
import { AddGuestToBasketItemUpdater } from '../updaters/addGuestToBasketItem';
|
|
@@ -18,10 +13,13 @@ import { ValidateBasketItemMiFetcher } from '../fetchers/validate-basket-item-mi
|
|
|
18
13
|
import { ValidateBasketMiFetcher } from '../fetchers/validate-basket-mi.fetcher';
|
|
19
14
|
import { SearchMIAutoSuggestValuesFetcher } from '../fetchers/search-mi-auto-suggest-values.fetcher';
|
|
20
15
|
import { SetMIValuesUpdater } from '../updaters/set-mi-values.updater';
|
|
21
|
-
import {
|
|
16
|
+
import { RemoveItemFromBasketUpdater } from '../updaters/remove-item-from-basket.updater';
|
|
17
|
+
import { AddItemToBasketUpdater } from '../updaters/add-item-to-basket.updater';
|
|
18
|
+
import { CheckIfBasketRequiresApprovalFetcher } from '../fetchers/check-if-basket-requires-approval';
|
|
19
|
+
import { ResendApproverEmailFetcher } from '../fetchers/resend-approval-email.fetcher';
|
|
20
|
+
import { GetUserBasketsFetcher } from '../fetchers/get-users-baskets-fetcher';
|
|
22
21
|
import { HelperRoutines } from '../classes/helpers';
|
|
23
|
-
import { AcceptNewPriceGQL, AddItemToBasketGQL, AddUsersToBasketItemGQL, BookBasketGQL, CreateBasketGQL, DeleteBasketGQL, GetCancellationInfoGQL, GetUserBasketGQL, GetUserBasketsGQL, GetUserGQL, SearchMiAutoSuggestValuesGQL, MoveItemToADifferentBasketGQL, RemoveItemFromBasketGQL, RevalidateBasketGQL, SetBasketItemLeadPassengerGQL, SetMiValuesGQL, SetBasketItemPaymentMethodGQL, UpdateBasketNotesGQL, UpdateBasketTitleGQL, ValidateBasketItemMiGQL, ValidateBasketMiGQL, AddGuestsToBasketItemGQL, AddUpdatedItemToBasketGQL, CreateBasketNoteGQL, GetBasketNotesGQL, AddBasketItemMarkupGQL, AddBasketItemCustomRemarkGQL, GetBasketItemCustomRemarksGQL, ChangeBasketOwnershipGQL, GetBasketQuoteGQL, ResendApproverEmailGQL, GetDraftBasketsGQL, CreateBasketFromDraftGQL, CheckIfBasketRequiresApprovalGQL, GetOfficeApproversGQL, SelectBasketApproverGQL, SelectBasketNotifyApproverGQL, CanAmendBookingGQL, GetUserApproversGQL, GetMiApproversGQL, GetBasketApprovalInfoGQL, ShareBasketGQL, GetUserSharedBasketsGQL, GetBasketApprovalTimestampsGQL, GetTrainSeatMapGQL, BeforeAmendCabSearchGQL, SendBackToQueueGQL, GetUserBasketCo2InfoGQL, SelectBasketMultiLevelApproversGQL, BeforeAmendCarHireSearchGQL, GetTrainSeatMapEvolviGQL, ReserveRailSeatsGQL, EvolviSeatmapsAreEnabledGQL, GetRequestedBookingUpdateGQL, UpdateExchangeBasketGQL } from '../types/graphql.angular.types';
|
|
24
|
-
import { ModalOpenerService } from './modal-opener.service';
|
|
22
|
+
import { AcceptNewPriceGQL, AddItemToBasketGQL, AddUsersToBasketItemGQL, BookBasketGQL, CreateBasketGQL, DeleteBasketGQL, GetCancellationInfoGQL, GetUserBasketGQL, GetUserBasketsGQL, GetUserGQL, SearchMiAutoSuggestValuesGQL, MoveItemToADifferentBasketGQL, RemoveItemFromBasketGQL, RevalidateBasketGQL, SetBasketItemLeadPassengerGQL, SetMiValuesGQL, SetBasketItemPaymentMethodGQL, UpdateBasketNotesGQL, UpdateBasketTitleGQL, ValidateBasketItemMiGQL, ValidateBasketMiGQL, AddGuestsToBasketItemGQL, AddUpdatedItemToBasketGQL, CreateBasketNoteGQL, GetBasketNotesGQL, AddBasketItemMarkupGQL, AddBasketItemCustomRemarkGQL, GetBasketItemCustomRemarksGQL, ChangeBasketOwnershipGQL, GetBasketQuoteGQL, GetProcessTermsPriceGQL, AcceptProcessTermsGQL, ResendApproverEmailGQL, GetDraftBasketsGQL, CreateBasketFromDraftGQL, CheckIfBasketRequiresApprovalGQL, GetOfficeApproversGQL, SelectBasketApproverGQL, SelectBasketNotifyApproverGQL, CanAmendBookingGQL, GetUserApproversGQL, GetMiApproversGQL, GetBasketApprovalInfoGQL, ShareBasketGQL, GetUserSharedBasketsGQL, GetBasketApprovalTimestampsGQL, GetTrainSeatMapGQL, BeforeAmendCabSearchGQL, SendBackToQueueGQL, GetUserBasketCo2InfoGQL, SelectBasketMultiLevelApproversGQL, BeforeAmendCarHireSearchGQL, GetTrainSeatMapEvolviGQL, ReserveRailSeatsGQL, EvolviSeatmapsAreEnabledGQL, GetRequestedBookingUpdateGQL, UpdateExchangeBasketGQL, DownloadETicketGQL } from '../types/graphql.angular.types';
|
|
25
23
|
import { MoveBasketItemToBasketUpdater } from '../updaters/move-basket-item-to-basket';
|
|
26
24
|
import { UpdateBasketTitleUpdater } from '../updaters/update-basket-title-updater';
|
|
27
25
|
import { UpdateBasketNotesUpdater } from '../updaters/update-basket-notes-updater';
|
|
@@ -36,6 +34,8 @@ import { GetBasketItemCustomRemarksFetcher } from '../fetchers/get-basket-item-c
|
|
|
36
34
|
import { GetDraftBasketsFetcher } from '../fetchers/get-draft-baskets.fetcher';
|
|
37
35
|
import { ChangeBasketOwnershipUpdater } from '../updaters/change-basket-ownership-updater';
|
|
38
36
|
import { GetBasketQuoteFetcher } from '../fetchers/get-basket-quote.fetcher';
|
|
37
|
+
import { GetProcessTermsPriceFetcher } from '../fetchers/get-process-terms-price.fetcher';
|
|
38
|
+
import { AcceptProcessTermsUpdater } from '../updaters/accept-process-terms.updater';
|
|
39
39
|
import { CreateBasketFromDraftUpdater } from '../updaters/create-basket-from-draft-updater';
|
|
40
40
|
import { GetOfficeApproversFetcher } from '../fetchers/get-office-approvers.fetcher';
|
|
41
41
|
import { SelectBasketApproverUpdater } from '../updaters/select-basket-approver.updater';
|
|
@@ -46,7 +46,6 @@ import { GetMIApproversFetcher } from '../fetchers/get-mi-approvers.fetcher';
|
|
|
46
46
|
import { GetBasketApprovalInfoFetcher } from '../fetchers/get-basket-approval-info.fetcher';
|
|
47
47
|
import { ShareBasketUpdater } from '../updaters/share-basket.updater';
|
|
48
48
|
import { GetUserSharedBasketsFetcher } from '../fetchers/get-user-shared-baskets.fetcher';
|
|
49
|
-
import { StorageService } from './storage.service';
|
|
50
49
|
import { GetBasketApprovalTimestampsFetcher } from '../fetchers/get-basket-approval-timestamps.fetcher';
|
|
51
50
|
import { GetTrainSeatmapFetcher } from '../fetchers/get-train-seatmap.fetcher';
|
|
52
51
|
import { BeforeAmendCabSearchFetcher } from '../fetchers/before-amend-cab-search-quote-fetcher';
|
|
@@ -59,9 +58,13 @@ import { ReserveRailSeatsUpdater } from '../updaters/reserve-rail-seats-updater'
|
|
|
59
58
|
import { GetEvolviSeatmapsAreEnabledFetcher } from '../fetchers/get-evolvi-seatmaps-are-enabled.fetcher';
|
|
60
59
|
import { GetRequestedBookingUpdateFetcher } from '../fetchers/get-requested-hotel-update.fetcher';
|
|
61
60
|
import { UpdateExchangeBasketUpdater } from '../updaters/update-exchange-basket.updater';
|
|
61
|
+
import { DownloadETicketFetcher } from '../fetchers/download-eticket.fetcher';
|
|
62
|
+
import { UserService } from './user.service';
|
|
63
|
+
import { StorageService } from './storage.service';
|
|
64
|
+
import { ModalOpenerService } from './modal-opener.service';
|
|
62
65
|
import * as i0 from "@angular/core";
|
|
63
|
-
export declare class EnterpriseBasketService extends BaseEnterpriseBasketService<AcceptNewPriceGQL, AddItemToBasketGQL, AddUsersToBasketItemGQL, CreateBasketGQL, GetUserBasketGQL, BookBasketGQL, DeleteBasketGQL, RemoveItemFromBasketGQL, RevalidateBasketGQL, GetUserGQL, GetUserBasketsGQL, SetBasketItemLeadPassengerGQL, MoveItemToADifferentBasketGQL, UpdateBasketNotesGQL, UpdateBasketTitleGQL, SetBasketItemPaymentMethodGQL, GetCancellationInfoGQL, AddGuestsToBasketItemGQL, AddUpdatedItemToBasketGQL, CreateBasketNoteGQL, GetBasketNotesGQL, GetBasketApprovalTimestampsGQL, AddBasketItemMarkupGQL, AddBasketItemCustomRemarkGQL, GetBasketItemCustomRemarksGQL, ChangeBasketOwnershipGQL, GetBasketQuoteGQL, ResendApproverEmailGQL, CheckIfBasketRequiresApprovalGQL, GetOfficeApproversGQL, SelectBasketApproverGQL, GetDraftBasketsGQL, CreateBasketFromDraftGQL, SelectBasketNotifyApproverGQL, CanAmendBookingGQL, GetUserApproversGQL, GetMiApproversGQL, GetBasketApprovalInfoGQL, ShareBasketGQL, GetUserSharedBasketsGQL, GetTrainSeatMapGQL, BeforeAmendCabSearchGQL, BeforeAmendCarHireSearchGQL, SendBackToQueueGQL, GetUserBasketCo2InfoGQL, SelectBasketMultiLevelApproversGQL, ValidateBasketMiGQL, ValidateBasketItemMiGQL, SetMiValuesGQL, SearchMiAutoSuggestValuesGQL, GetTrainSeatMapEvolviGQL, ReserveRailSeatsGQL, EvolviSeatmapsAreEnabledGQL, GetRequestedBookingUpdateGQL, UpdateExchangeBasketGQL> {
|
|
64
|
-
constructor(acceptNewPriceUpdater: AcceptNewPriceUpdater, addItemToBasketUpdater: AddItemToBasketUpdater, addUserToBasketItem: AddUserToBasketItemUpdater, basketCreator: CreateBasketUpdater, basketFetcher: GetBasketFetcher, bookBasketUpdater: BookBasketUpdater, deleteBasketUpdater: DeleteBasketUpdater, helpers: HelperRoutines, removeItemFromBasketUpdater: RemoveItemFromBasketUpdater, revalidateBasketUpdater: RevalidateBasketUpdater, getUserFetcher: GetUserFetcher, getUserBasketsFetcher: GetUserBasketsFetcher, setBasketItemLeadPassengerUpdater: SetBasketItemLeadPassengerUpdater, moveItemToADifferentBasket: MoveBasketItemToBasketUpdater, updateBasketNotes: UpdateBasketNotesUpdater, updateBasketTitle: UpdateBasketTitleUpdater, userService: UserService, modalService: ModalOpenerService, setBasketItemPaymentOption: SetPaymentOptionUpdater, getCancellationFetcher: GetCancellationInfoFetcher, addGuestToBasketItem: AddGuestToBasketItemUpdater, addUpdatedItemToBasketUpdater: AddUpdatedItemToBasketUpdater, createBasketNote: CreateBasketNoteUpdater, getBasketNotes: GetBasketNotesFetcher, getBasketApprovalTimestampsGQL: GetBasketApprovalTimestampsFetcher, addBasketItemMarkupUpdater: AddBasketItemMarkupUpdater, addBasketItemCustomRemark: AddBasketItemCustomRemarkUpdater, getBasketItemCustomRemarks: GetBasketItemCustomRemarksFetcher, changeBasketOwnership: ChangeBasketOwnershipUpdater, getBasketQuote: GetBasketQuoteFetcher, resendApproverEmail: ResendApproverEmailFetcher, basketRequiresApproval: CheckIfBasketRequiresApprovalFetcher, getOfficeApproversFetcher: GetOfficeApproversFetcher, selectBasketApproverUpdater: SelectBasketApproverUpdater, getDraftBasketsFetcher: GetDraftBasketsFetcher, createBasketFromDraftUpdater: CreateBasketFromDraftUpdater, selectBasketNotifyApproverUpdater: SelectBasketNotifyApproverUpdater, canAmendBookingFetcher: CanAmendBookingFetcher, getUserApproversFetcher: GetUserApproversFetcher, getMIApproversFetcher: GetMIApproversFetcher, getBasketApprovalInfoFetcher: GetBasketApprovalInfoFetcher, shareBasketUpdater: ShareBasketUpdater, getUserSharedBasketsFetcher: GetUserSharedBasketsFetcher, getTrainSeatMapFetcher: GetTrainSeatmapFetcher, beforeAmendCabSearchQuoteFetcher: BeforeAmendCabSearchFetcher, beforeAmendCarHireSearchfetcher: BeforeAmendCarHireSearchFetcher, storageService: StorageService, sendBackToQueueUpdater: SendBackToQueueUpdater, basketCo2Fetcher: GetBasketCo2InfoFetcher, selectBasketMultiLevelApproversUpdater: SelectBasketMultiLevelApproversUpdater, validateBasketMiFetcher: ValidateBasketMiFetcher, validateBasketItemMiFetcher: ValidateBasketItemMiFetcher, setMIValuesUpdater: SetMIValuesUpdater, searchMIAutoSuggestValuesFetcher: SearchMIAutoSuggestValuesFetcher, getTrainSeatmapEvolviFetcher: GetTrainSeatmapEvolviFetcher, reserveRailSeatsUpdater: ReserveRailSeatsUpdater, evolviSeatmapsAreEnabledFetcher: GetEvolviSeatmapsAreEnabledFetcher, getRequestedBookingUpdateFetcher: GetRequestedBookingUpdateFetcher, updateExchangeBasketUpdater: UpdateExchangeBasketUpdater);
|
|
66
|
+
export declare class EnterpriseBasketService extends BaseEnterpriseBasketService<AcceptNewPriceGQL, AddItemToBasketGQL, AddUsersToBasketItemGQL, CreateBasketGQL, GetUserBasketGQL, BookBasketGQL, DeleteBasketGQL, RemoveItemFromBasketGQL, RevalidateBasketGQL, GetUserGQL, GetUserBasketsGQL, SetBasketItemLeadPassengerGQL, MoveItemToADifferentBasketGQL, UpdateBasketNotesGQL, UpdateBasketTitleGQL, SetBasketItemPaymentMethodGQL, GetCancellationInfoGQL, AddGuestsToBasketItemGQL, AddUpdatedItemToBasketGQL, CreateBasketNoteGQL, GetBasketNotesGQL, GetBasketApprovalTimestampsGQL, AddBasketItemMarkupGQL, AddBasketItemCustomRemarkGQL, GetBasketItemCustomRemarksGQL, ChangeBasketOwnershipGQL, GetBasketQuoteGQL, GetProcessTermsPriceGQL, AcceptProcessTermsGQL, ResendApproverEmailGQL, CheckIfBasketRequiresApprovalGQL, GetOfficeApproversGQL, SelectBasketApproverGQL, GetDraftBasketsGQL, CreateBasketFromDraftGQL, SelectBasketNotifyApproverGQL, CanAmendBookingGQL, GetUserApproversGQL, GetMiApproversGQL, GetBasketApprovalInfoGQL, ShareBasketGQL, GetUserSharedBasketsGQL, GetTrainSeatMapGQL, BeforeAmendCabSearchGQL, BeforeAmendCarHireSearchGQL, SendBackToQueueGQL, GetUserBasketCo2InfoGQL, SelectBasketMultiLevelApproversGQL, ValidateBasketMiGQL, ValidateBasketItemMiGQL, SetMiValuesGQL, SearchMiAutoSuggestValuesGQL, GetTrainSeatMapEvolviGQL, ReserveRailSeatsGQL, EvolviSeatmapsAreEnabledGQL, GetRequestedBookingUpdateGQL, UpdateExchangeBasketGQL, DownloadETicketGQL> {
|
|
67
|
+
constructor(acceptNewPriceUpdater: AcceptNewPriceUpdater, addItemToBasketUpdater: AddItemToBasketUpdater, addUserToBasketItem: AddUserToBasketItemUpdater, basketCreator: CreateBasketUpdater, basketFetcher: GetBasketFetcher, bookBasketUpdater: BookBasketUpdater, deleteBasketUpdater: DeleteBasketUpdater, helpers: HelperRoutines, removeItemFromBasketUpdater: RemoveItemFromBasketUpdater, revalidateBasketUpdater: RevalidateBasketUpdater, getUserFetcher: GetUserFetcher, getUserBasketsFetcher: GetUserBasketsFetcher, setBasketItemLeadPassengerUpdater: SetBasketItemLeadPassengerUpdater, moveItemToADifferentBasket: MoveBasketItemToBasketUpdater, updateBasketNotes: UpdateBasketNotesUpdater, updateBasketTitle: UpdateBasketTitleUpdater, userService: UserService, modalService: ModalOpenerService, setBasketItemPaymentOption: SetPaymentOptionUpdater, getCancellationFetcher: GetCancellationInfoFetcher, addGuestToBasketItem: AddGuestToBasketItemUpdater, addUpdatedItemToBasketUpdater: AddUpdatedItemToBasketUpdater, createBasketNote: CreateBasketNoteUpdater, getBasketNotes: GetBasketNotesFetcher, getBasketApprovalTimestampsGQL: GetBasketApprovalTimestampsFetcher, addBasketItemMarkupUpdater: AddBasketItemMarkupUpdater, addBasketItemCustomRemark: AddBasketItemCustomRemarkUpdater, getBasketItemCustomRemarks: GetBasketItemCustomRemarksFetcher, changeBasketOwnership: ChangeBasketOwnershipUpdater, getBasketQuote: GetBasketQuoteFetcher, getProcessTermsPrice: GetProcessTermsPriceFetcher, acceptProcessTermsUpdater: AcceptProcessTermsUpdater, resendApproverEmail: ResendApproverEmailFetcher, basketRequiresApproval: CheckIfBasketRequiresApprovalFetcher, getOfficeApproversFetcher: GetOfficeApproversFetcher, selectBasketApproverUpdater: SelectBasketApproverUpdater, getDraftBasketsFetcher: GetDraftBasketsFetcher, createBasketFromDraftUpdater: CreateBasketFromDraftUpdater, selectBasketNotifyApproverUpdater: SelectBasketNotifyApproverUpdater, canAmendBookingFetcher: CanAmendBookingFetcher, getUserApproversFetcher: GetUserApproversFetcher, getMIApproversFetcher: GetMIApproversFetcher, getBasketApprovalInfoFetcher: GetBasketApprovalInfoFetcher, shareBasketUpdater: ShareBasketUpdater, getUserSharedBasketsFetcher: GetUserSharedBasketsFetcher, getTrainSeatMapFetcher: GetTrainSeatmapFetcher, beforeAmendCabSearchQuoteFetcher: BeforeAmendCabSearchFetcher, beforeAmendCarHireSearchfetcher: BeforeAmendCarHireSearchFetcher, storageService: StorageService, sendBackToQueueUpdater: SendBackToQueueUpdater, basketCo2Fetcher: GetBasketCo2InfoFetcher, selectBasketMultiLevelApproversUpdater: SelectBasketMultiLevelApproversUpdater, validateBasketMiFetcher: ValidateBasketMiFetcher, validateBasketItemMiFetcher: ValidateBasketItemMiFetcher, setMIValuesUpdater: SetMIValuesUpdater, searchMIAutoSuggestValuesFetcher: SearchMIAutoSuggestValuesFetcher, getTrainSeatmapEvolviFetcher: GetTrainSeatmapEvolviFetcher, reserveRailSeatsUpdater: ReserveRailSeatsUpdater, evolviSeatmapsAreEnabledFetcher: GetEvolviSeatmapsAreEnabledFetcher, getRequestedBookingUpdateFetcher: GetRequestedBookingUpdateFetcher, updateExchangeBasketUpdater: UpdateExchangeBasketUpdater, downloadETicketFetcher: DownloadETicketFetcher);
|
|
65
68
|
static ɵfac: i0.ɵɵFactoryDeclaration<EnterpriseBasketService, never>;
|
|
66
69
|
static ɵprov: i0.ɵɵInjectableDeclaration<EnterpriseBasketService>;
|
|
67
70
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { BaseHotelAvalibilityService } from '@sabstravtech/obtservices/base';
|
|
1
2
|
import { Environment } from '../classes/environment';
|
|
2
3
|
import { HelperRoutines } from '../classes/helpers';
|
|
3
4
|
import { HotelAvalibilityQuoteFetcher } from '../fetchers/hotel-avaliability-fetcher';
|
|
4
|
-
import { StorageService } from './storage.service';
|
|
5
|
-
import { BaseHotelAvalibilityService } from '@sabstravtech/obtservices/base';
|
|
6
5
|
import { GetMultipleHotelsAvailabilityGQL } from '../../../types';
|
|
6
|
+
import { StorageService } from './storage.service';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export declare class HotelAvalibilityService extends BaseHotelAvalibilityService<GetMultipleHotelsAvailabilityGQL> {
|
|
9
9
|
constructor(avalibilityFethcer: HotelAvalibilityQuoteFetcher, sessionStorage: StorageService, helpers: HelperRoutines, environment: Environment);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { WebTokenService } from './webtoken.service';
|
|
2
|
-
import { StorageService } from './storage.service';
|
|
3
1
|
import { AbstractHttpCallService, URLS } from '@sabstravtech/obtservices/base';
|
|
4
2
|
import { Observable } from 'rxjs';
|
|
5
|
-
import { Environment } from '../classes/environment';
|
|
6
3
|
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
7
4
|
import { Router } from '@angular/router';
|
|
5
|
+
import { Environment } from '../classes/environment';
|
|
6
|
+
import { StorageService } from './storage.service';
|
|
7
|
+
import { WebTokenService } from './webtoken.service';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
declare abstract class BaseHttpCallService extends AbstractHttpCallService {
|
|
10
10
|
private http;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Router } from '@angular/router';
|
|
2
|
+
import { AuthInfo, LoginResponse, BaseLogonService } from '@sabstravtech/obtservices/base';
|
|
3
|
+
import { Environment } from '../classes/environment';
|
|
4
|
+
import { EventMessenager } from '../classes/event-messenager';
|
|
5
|
+
import { GetLatestVersionsGQL } from '../types/graphql.angular.types';
|
|
6
|
+
import { GetLatestVersionsFetcher } from '../fetchers/get-latest-versions.fetcher';
|
|
2
7
|
import { AuthHttpService } from './http-call.service';
|
|
3
8
|
import { UserService } from './user.service';
|
|
4
9
|
import { EnterpriseSearchService } from './search.service';
|
|
5
10
|
import { ModalOpenerService } from './modal-opener.service';
|
|
6
11
|
import { StorageService } from './storage.service';
|
|
7
|
-
import { AuthInfo, LoginResponse, BaseLogonService } from '@sabstravtech/obtservices/base';
|
|
8
|
-
import { Environment } from '../classes/environment';
|
|
9
|
-
import { EventMessenager } from '../classes/event-messenager';
|
|
10
12
|
import { EnterpriseBasketService } from './enterprise-basket.service';
|
|
11
|
-
import { GetLatestVersionsGQL } from '../types/graphql.angular.types';
|
|
12
|
-
import { GetLatestVersionsFetcher } from '../fetchers/get-latest-versions.fetcher';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
14
|
export declare class LogonService extends BaseLogonService<GetLatestVersionsGQL> {
|
|
15
15
|
loading: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseMessagesService } from '@sabstravtech/obtservices/base';
|
|
2
|
-
import { EnterpriseSearchService } from './search.service';
|
|
3
2
|
import { HelperRoutines } from '../classes/helpers';
|
|
3
|
+
import { EnterpriseSearchService } from './search.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class MessagesService extends BaseMessagesService {
|
|
6
6
|
constructor(searchService: EnterpriseSearchService, helpers: HelperRoutines);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { BaseEnterpriseMyBookingsService } from '@sabstravtech/obtservices/base';
|
|
1
2
|
import { AmendBookingGQL, CancelBookingGQL, CheckForDuplicateBookingsGQL, GetUserBasketsGQL, SearchUserCanBookForGQL } from '../types/graphql.angular.types';
|
|
2
3
|
import { GetUserBasketsFetcher } from '../fetchers/get-users-baskets-fetcher';
|
|
3
4
|
import { SearchUsersCanBookForFetcher } from '../fetchers/search-users-can-book-for-fetcher';
|
|
4
|
-
import { BaseEnterpriseMyBookingsService } from '@sabstravtech/obtservices/base';
|
|
5
5
|
import { CancelBookingUpdater } from '../updaters/cancel-booking-updater';
|
|
6
|
-
import { EnterpriseBasketService } from './enterprise-basket.service';
|
|
7
6
|
import { AmendBookingUpdater } from '../updaters/amend-booking.updater';
|
|
8
7
|
import { HelperRoutines } from '../classes/helpers';
|
|
9
8
|
import { CheckForDuplicateBookingsFetcher } from '../fetchers/check-for-duplicate-bookings.fetcher';
|
|
9
|
+
import { EnterpriseBasketService } from './enterprise-basket.service';
|
|
10
10
|
import { UserService } from './user.service';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
export declare class EnterpriseMyBookingsService extends BaseEnterpriseMyBookingsService<GetUserBasketsGQL, SearchUserCanBookForGQL, CancelBookingGQL, AmendBookingGQL, CheckForDuplicateBookingsGQL> {
|