@qite/tide-components 1.0.13 → 1.0.14-preview.2
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/build/build-cjs/index.js +9822 -8637
- package/build/build-cjs/src/booking-product/types.d.ts +7 -0
- package/build/build-cjs/src/booking-wizard/components/build-step-labels.d.ts +2 -1
- package/build/build-cjs/src/booking-wizard/features/booking/booking-slice.d.ts +6 -1
- package/build/build-cjs/src/booking-wizard/features/booking/constants.d.ts +5 -4
- package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +220 -4
- package/build/build-cjs/src/booking-wizard/features/subform/index.d.ts +3 -0
- package/build/build-cjs/src/booking-wizard/features/subform/subform-entry.d.ts +9 -0
- package/build/build-cjs/src/booking-wizard/features/subform/subform-utils.d.ts +15 -0
- package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -2
- package/build/build-cjs/src/booking-wizard/types.d.ts +29 -3
- package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +2 -0
- package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +1 -0
- package/build/build-cjs/src/search-results/components/itinerary/itinerary-utils.d.ts +1 -0
- package/build/build-cjs/src/search-results/components/traject/traject-card-row.d.ts +7 -0
- package/build/build-cjs/src/search-results/types.d.ts +8 -0
- package/build/build-cjs/src/search-results/utils/booked-entry-utils.d.ts +25 -0
- package/build/build-cjs/src/search-results/utils/query-utils.d.ts +5 -0
- package/build/build-cjs/src/search-results/utils/traject-utils.d.ts +21 -0
- package/build/build-cjs/src/shared/booking/travelers-form.d.ts +13 -8
- package/build/build-esm/index.js +9824 -8639
- package/build/build-esm/src/booking-product/types.d.ts +7 -0
- package/build/build-esm/src/booking-wizard/components/build-step-labels.d.ts +2 -1
- package/build/build-esm/src/booking-wizard/features/booking/booking-slice.d.ts +6 -1
- package/build/build-esm/src/booking-wizard/features/booking/constants.d.ts +5 -4
- package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +220 -4
- package/build/build-esm/src/booking-wizard/features/subform/index.d.ts +3 -0
- package/build/build-esm/src/booking-wizard/features/subform/subform-entry.d.ts +9 -0
- package/build/build-esm/src/booking-wizard/features/subform/subform-utils.d.ts +15 -0
- package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +2 -2
- package/build/build-esm/src/booking-wizard/types.d.ts +29 -3
- package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +2 -0
- package/build/build-esm/src/search-results/components/itinerary/index.d.ts +1 -0
- package/build/build-esm/src/search-results/components/itinerary/itinerary-utils.d.ts +1 -0
- package/build/build-esm/src/search-results/components/traject/traject-card-row.d.ts +7 -0
- package/build/build-esm/src/search-results/types.d.ts +8 -0
- package/build/build-esm/src/search-results/utils/booked-entry-utils.d.ts +25 -0
- package/build/build-esm/src/search-results/utils/query-utils.d.ts +5 -0
- package/build/build-esm/src/search-results/utils/traject-utils.d.ts +21 -0
- package/build/build-esm/src/shared/booking/travelers-form.d.ts +13 -8
- package/package.json +2 -2
|
@@ -13,6 +13,13 @@ export interface Settings {
|
|
|
13
13
|
isOffer?: boolean;
|
|
14
14
|
displayMode?: 'list' | 'calendar';
|
|
15
15
|
searchType?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Identifies which portal search configuration this product is being booked
|
|
18
|
+
* through. Required by the search/details requests. Forwarded as-is on
|
|
19
|
+
* those requests and, on "Book", appended to the booking-wizard redirect
|
|
20
|
+
* URL so it survives the handoff.
|
|
21
|
+
*/
|
|
22
|
+
searchConfigurationId: number;
|
|
16
23
|
/**
|
|
17
24
|
* When true, hides the "Rooms" heading, the number-of-rooms stepper,
|
|
18
25
|
* the per-room "Room N" sub-heading and the Edit/Apply gate. The
|
|
@@ -2,7 +2,8 @@ interface BuildStepLabelsParams {
|
|
|
2
2
|
travelersFirstStep: boolean;
|
|
3
3
|
flightOptionsHidden?: boolean | null;
|
|
4
4
|
roomOptionsHidden?: boolean | null;
|
|
5
|
+
subFormHidden?: boolean | null;
|
|
5
6
|
translations: Record<string, any>;
|
|
6
7
|
}
|
|
7
|
-
export declare const buildStepLabels: ({ travelersFirstStep, flightOptionsHidden, roomOptionsHidden, translations }: BuildStepLabelsParams) => string[];
|
|
8
|
+
export declare const buildStepLabels: ({ travelersFirstStep, flightOptionsHidden, roomOptionsHidden, subFormHidden, translations }: BuildStepLabelsParams) => string[];
|
|
8
9
|
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BookingAttributes, BookingOptions, GroupedFlights, ProductAttributes } from '../../types';
|
|
2
2
|
import { AirlineBookingPackageOption, AirportBookingPackageOption, BookingAirlineGroup, BookingAirportGroup, BookingOptionGroup, BookingOptionPax, BookingOptionUnit, BookingPackage, BookingPackageRoom, BookingTravelAgent, CountryItem, PerBookingPackageOption } from '@qite/tide-client/build/types';
|
|
3
|
+
import { FormValues } from '../../../form/form-types';
|
|
3
4
|
import { BookingStep } from './constants';
|
|
4
5
|
export interface BookingState {
|
|
5
6
|
officeId: number;
|
|
@@ -35,6 +36,7 @@ export interface BookingState {
|
|
|
35
36
|
travelersFirstStep: boolean;
|
|
36
37
|
hasMounted: boolean;
|
|
37
38
|
countries?: CountryItem[];
|
|
39
|
+
subFormAnswers: Record<string, FormValues>;
|
|
38
40
|
}
|
|
39
41
|
export declare const fetchPackage: import("@reduxjs/toolkit").AsyncThunk<void, void, {
|
|
40
42
|
state?: unknown;
|
|
@@ -56,6 +58,9 @@ export declare const fetchCountries: import("@reduxjs/toolkit").AsyncThunk<impor
|
|
|
56
58
|
fulfilledMeta?: unknown;
|
|
57
59
|
rejectedMeta?: unknown;
|
|
58
60
|
}>;
|
|
59
|
-
export declare const setOfficeId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setOfficeId">, setLanguageCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setLanguageCode">, setTranslations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "booking/setTranslations">, setBookingOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptions, "booking/setBookingOptions">, setBookingType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingType">, setProductAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ProductAttributes | undefined, "booking/setProductAttributes">, setBookingAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingAttributes | undefined, "booking/setBookingAttributes">, setCalculateDeposit: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setCalculateDeposit">, setShowCommission: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean | undefined, "booking/setShowCommission">, setBookingNumber: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingNumber">, setIsRetry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsRetry">, setFetchingPackage: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setFetchingPackage">, setHasMounted: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setHasMounted">, setPackage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingPackage | undefined, "booking/setPackage">, setPackageRooms: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingPackageRoom[], "booking/setPackageRooms">, setPackageOptionPax: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionPax[], "booking/setPackageOptionPax">, setPackageOptionUnits: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionUnit[], "booking/setPackageOptionUnits">, setPackageGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionGroup<PerBookingPackageOption>[], "booking/setPackageGroups">, setSkipPayment: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setSkipPayment">, setGeneratePaymentUrl: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setGeneratePaymentUrl">, setTagIds: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number[] | undefined, "booking/setTagIds">, setAgentAdressId: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number | undefined, "booking/setAgentAdressId">, setBookingRemarks: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingRemarks">, setVoucherCodes: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "booking/setVoucherCodes">, setCurrentStep: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingStep, "booking/setCurrentStep">, setPackageAirlineGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirlineGroup<AirlineBookingPackageOption>[], "booking/setPackageAirlineGroups">, setPackageAirportGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirportGroup<AirportBookingPackageOption>[], "booking/setPackageAirportGroups">, setFlights: import("@reduxjs/toolkit").ActionCreatorWithPayload<GroupedFlights, "booking/setFlights">, setAccommodationViewId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setAccommodationViewId">, setIsOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsOption">, setTravelersFirstStep: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setTravelersFirstStep">, setIsUnavailable: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsUnavailable"
|
|
61
|
+
export declare const setOfficeId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setOfficeId">, setLanguageCode: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setLanguageCode">, setTranslations: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "booking/setTranslations">, setBookingOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptions, "booking/setBookingOptions">, setBookingType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingType">, setProductAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ProductAttributes | undefined, "booking/setProductAttributes">, setBookingAttributes: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingAttributes | undefined, "booking/setBookingAttributes">, setCalculateDeposit: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setCalculateDeposit">, setShowCommission: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean | undefined, "booking/setShowCommission">, setBookingNumber: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingNumber">, setIsRetry: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsRetry">, setFetchingPackage: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setFetchingPackage">, setHasMounted: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setHasMounted">, setPackage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<BookingPackage | undefined, "booking/setPackage">, setPackageRooms: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingPackageRoom[], "booking/setPackageRooms">, setPackageOptionPax: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionPax[], "booking/setPackageOptionPax">, setPackageOptionUnits: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionUnit[], "booking/setPackageOptionUnits">, setPackageGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingOptionGroup<PerBookingPackageOption>[], "booking/setPackageGroups">, setSkipPayment: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setSkipPayment">, setGeneratePaymentUrl: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setGeneratePaymentUrl">, setTagIds: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number[] | undefined, "booking/setTagIds">, setAgentAdressId: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number | undefined, "booking/setAgentAdressId">, setBookingRemarks: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "booking/setBookingRemarks">, setVoucherCodes: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "booking/setVoucherCodes">, setCurrentStep: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingStep, "booking/setCurrentStep">, setPackageAirlineGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirlineGroup<AirlineBookingPackageOption>[], "booking/setPackageAirlineGroups">, setPackageAirportGroups: import("@reduxjs/toolkit").ActionCreatorWithPayload<BookingAirportGroup<AirportBookingPackageOption>[], "booking/setPackageAirportGroups">, setFlights: import("@reduxjs/toolkit").ActionCreatorWithPayload<GroupedFlights, "booking/setFlights">, setAccommodationViewId: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "booking/setAccommodationViewId">, setIsOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsOption">, setTravelersFirstStep: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setTravelersFirstStep">, setIsUnavailable: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "booking/setIsUnavailable">, setSubFormAnswer: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
62
|
+
entryLineGuid: string;
|
|
63
|
+
values: FormValues;
|
|
64
|
+
}, "booking/setSubFormAnswer">;
|
|
60
65
|
declare const _default: import("@reduxjs/toolkit").Reducer<BookingState>;
|
|
61
66
|
export default _default;
|
|
@@ -2,7 +2,8 @@ export declare const ROOM_OPTIONS_FORM_STEP = 1;
|
|
|
2
2
|
export declare const FLIGHT_OPTIONS_FORM_STEP = 2;
|
|
3
3
|
export declare const OPTIONS_FORM_STEP = 3;
|
|
4
4
|
export declare const TRAVELERS_FORM_STEP = 4;
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export
|
|
5
|
+
export declare const SUBFORM_STEP = 5;
|
|
6
|
+
export declare const SUMMARY_STEP = 6;
|
|
7
|
+
export declare const CONFIRMATION_STEP = 7;
|
|
8
|
+
export declare const ERROR_STEP = 8;
|
|
9
|
+
export type BookingStep = typeof ROOM_OPTIONS_FORM_STEP | typeof FLIGHT_OPTIONS_FORM_STEP | typeof OPTIONS_FORM_STEP | typeof TRAVELERS_FORM_STEP | typeof SUBFORM_STEP | typeof SUMMARY_STEP | typeof CONFIRMATION_STEP | typeof ERROR_STEP;
|
|
@@ -17,7 +17,7 @@ export declare const selectPackageOptionUnits: (state: RootState) => import("@qi
|
|
|
17
17
|
export declare const selectPackageOptionPax: (state: RootState) => import("@qite/tide-client").BookingOptionPax[] | undefined;
|
|
18
18
|
export declare const selectPackageGroups: (state: RootState) => import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined;
|
|
19
19
|
export declare const selectPackageDetails: (state: RootState) => import("@qite/tide-client").BookingPackage | undefined;
|
|
20
|
-
export declare const
|
|
20
|
+
export declare const selectPaxFields: (state: RootState) => import("@qite/tide-client").BookingPackagePaxFieldConfig[];
|
|
21
21
|
export declare const selectPackageFlights: (state: RootState) => {
|
|
22
22
|
outward: import("@qite/tide-client").BookingPackageFlight[] | undefined;
|
|
23
23
|
return: import("@qite/tide-client").BookingPackageFlight[] | undefined;
|
|
@@ -401,6 +401,152 @@ export declare const selectBookingAddress: ((state: {
|
|
|
401
401
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
402
402
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
403
403
|
};
|
|
404
|
+
export declare const selectSubFormAnswers: (state: RootState) => Record<string, import("../../../form/form-types").FormValues>;
|
|
405
|
+
export declare const selectInEffectSubFormLines: ((state: {
|
|
406
|
+
booking: import("./booking-slice").BookingState;
|
|
407
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
408
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
409
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
410
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
411
|
+
}) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
412
|
+
clearCache: () => void;
|
|
413
|
+
resultsCount: () => number;
|
|
414
|
+
resetResultsCount: () => void;
|
|
415
|
+
} & {
|
|
416
|
+
resultFunc: (resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[];
|
|
417
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
418
|
+
clearCache: () => void;
|
|
419
|
+
resultsCount: () => number;
|
|
420
|
+
resetResultsCount: () => void;
|
|
421
|
+
};
|
|
422
|
+
lastResult: () => import("../subform/subform-utils").SubFormLine[];
|
|
423
|
+
dependencies: [(state: RootState) => import("@qite/tide-client").BookingPackageRoom[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionUnit[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionPax[] | undefined];
|
|
424
|
+
recomputations: () => number;
|
|
425
|
+
resetRecomputations: () => void;
|
|
426
|
+
dependencyRecomputations: () => number;
|
|
427
|
+
resetDependencyRecomputations: () => void;
|
|
428
|
+
} & {
|
|
429
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
430
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
431
|
+
};
|
|
432
|
+
export declare const selectHasInEffectSubForms: ((state: {
|
|
433
|
+
booking: import("./booking-slice").BookingState;
|
|
434
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
435
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
436
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
437
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
438
|
+
}) => boolean) & {
|
|
439
|
+
clearCache: () => void;
|
|
440
|
+
resultsCount: () => number;
|
|
441
|
+
resetResultsCount: () => void;
|
|
442
|
+
} & {
|
|
443
|
+
resultFunc: (resultFuncArgs_0: import("../subform/subform-utils").SubFormLine[]) => boolean;
|
|
444
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("../subform/subform-utils").SubFormLine[]) => boolean) & {
|
|
445
|
+
clearCache: () => void;
|
|
446
|
+
resultsCount: () => number;
|
|
447
|
+
resetResultsCount: () => void;
|
|
448
|
+
};
|
|
449
|
+
lastResult: () => boolean;
|
|
450
|
+
dependencies: [((state: {
|
|
451
|
+
booking: import("./booking-slice").BookingState;
|
|
452
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
453
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
454
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
455
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
456
|
+
}) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
457
|
+
clearCache: () => void;
|
|
458
|
+
resultsCount: () => number;
|
|
459
|
+
resetResultsCount: () => void;
|
|
460
|
+
} & {
|
|
461
|
+
resultFunc: (resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[];
|
|
462
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
463
|
+
clearCache: () => void;
|
|
464
|
+
resultsCount: () => number;
|
|
465
|
+
resetResultsCount: () => void;
|
|
466
|
+
};
|
|
467
|
+
lastResult: () => import("../subform/subform-utils").SubFormLine[];
|
|
468
|
+
dependencies: [(state: RootState) => import("@qite/tide-client").BookingPackageRoom[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionUnit[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionPax[] | undefined];
|
|
469
|
+
recomputations: () => number;
|
|
470
|
+
resetRecomputations: () => void;
|
|
471
|
+
dependencyRecomputations: () => number;
|
|
472
|
+
resetDependencyRecomputations: () => void;
|
|
473
|
+
} & {
|
|
474
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
475
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
476
|
+
}];
|
|
477
|
+
recomputations: () => number;
|
|
478
|
+
resetRecomputations: () => void;
|
|
479
|
+
dependencyRecomputations: () => number;
|
|
480
|
+
resetDependencyRecomputations: () => void;
|
|
481
|
+
} & {
|
|
482
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
483
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
484
|
+
};
|
|
485
|
+
export declare const selectSubFormSubmissions: ((state: {
|
|
486
|
+
booking: import("./booking-slice").BookingState;
|
|
487
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
488
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
489
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
490
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
491
|
+
}) => {
|
|
492
|
+
entryLineGuid: string;
|
|
493
|
+
data: Record<string, unknown>;
|
|
494
|
+
}[]) & {
|
|
495
|
+
clearCache: () => void;
|
|
496
|
+
resultsCount: () => number;
|
|
497
|
+
resetResultsCount: () => void;
|
|
498
|
+
} & {
|
|
499
|
+
resultFunc: (resultFuncArgs_0: import("../subform/subform-utils").SubFormLine[], resultFuncArgs_1: Record<string, import("../../../form/form-types").FormValues>) => {
|
|
500
|
+
entryLineGuid: string;
|
|
501
|
+
data: Record<string, unknown>;
|
|
502
|
+
}[];
|
|
503
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("../subform/subform-utils").SubFormLine[], resultFuncArgs_1: Record<string, import("../../../form/form-types").FormValues>) => {
|
|
504
|
+
entryLineGuid: string;
|
|
505
|
+
data: Record<string, unknown>;
|
|
506
|
+
}[]) & {
|
|
507
|
+
clearCache: () => void;
|
|
508
|
+
resultsCount: () => number;
|
|
509
|
+
resetResultsCount: () => void;
|
|
510
|
+
};
|
|
511
|
+
lastResult: () => {
|
|
512
|
+
entryLineGuid: string;
|
|
513
|
+
data: Record<string, unknown>;
|
|
514
|
+
}[];
|
|
515
|
+
dependencies: [((state: {
|
|
516
|
+
booking: import("./booking-slice").BookingState;
|
|
517
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
518
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
519
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
520
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
521
|
+
}) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
522
|
+
clearCache: () => void;
|
|
523
|
+
resultsCount: () => number;
|
|
524
|
+
resetResultsCount: () => void;
|
|
525
|
+
} & {
|
|
526
|
+
resultFunc: (resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[];
|
|
527
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
528
|
+
clearCache: () => void;
|
|
529
|
+
resultsCount: () => number;
|
|
530
|
+
resetResultsCount: () => void;
|
|
531
|
+
};
|
|
532
|
+
lastResult: () => import("../subform/subform-utils").SubFormLine[];
|
|
533
|
+
dependencies: [(state: RootState) => import("@qite/tide-client").BookingPackageRoom[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionUnit[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionPax[] | undefined];
|
|
534
|
+
recomputations: () => number;
|
|
535
|
+
resetRecomputations: () => void;
|
|
536
|
+
dependencyRecomputations: () => number;
|
|
537
|
+
resetDependencyRecomputations: () => void;
|
|
538
|
+
} & {
|
|
539
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
540
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
541
|
+
}, (state: RootState) => Record<string, import("../../../form/form-types").FormValues>];
|
|
542
|
+
recomputations: () => number;
|
|
543
|
+
resetRecomputations: () => void;
|
|
544
|
+
dependencyRecomputations: () => number;
|
|
545
|
+
resetDependencyRecomputations: () => void;
|
|
546
|
+
} & {
|
|
547
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
548
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
549
|
+
};
|
|
404
550
|
export declare const selectBookingPackageRequest: ((state: {
|
|
405
551
|
booking: import("./booking-slice").BookingState;
|
|
406
552
|
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
@@ -465,8 +611,14 @@ export declare const selectBookingPackageBookRequest: ((state: {
|
|
|
465
611
|
resultsCount: () => number;
|
|
466
612
|
resetResultsCount: () => void;
|
|
467
613
|
} & {
|
|
468
|
-
resultFunc: (resultFuncArgs_0: BookingPackageRequest<any>, resultFuncArgs_1: import("../../types").BookingOptions, resultFuncArgs_2: string, resultFuncArgs_3: BookingPackagePax[], resultFuncArgs_4: BookingPackageAddress | undefined, resultFuncArgs_5: import("@qite/tide-client").BookingPackage | undefined, resultFuncArgs_6: boolean, resultFuncArgs_7: boolean | undefined, resultFuncArgs_8: number | undefined, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean, resultFuncArgs_11: import("@qite/tide-client").BookingProductNotification[], resultFuncArgs_12: number[] | undefined, resultFuncArgs_13: string | undefined, resultFuncArgs_14: string[] | undefined
|
|
469
|
-
|
|
614
|
+
resultFunc: (resultFuncArgs_0: BookingPackageRequest<any>, resultFuncArgs_1: import("../../types").BookingOptions, resultFuncArgs_2: string, resultFuncArgs_3: BookingPackagePax[], resultFuncArgs_4: BookingPackageAddress | undefined, resultFuncArgs_5: import("@qite/tide-client").BookingPackage | undefined, resultFuncArgs_6: boolean, resultFuncArgs_7: boolean | undefined, resultFuncArgs_8: number | undefined, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean, resultFuncArgs_11: import("@qite/tide-client").BookingProductNotification[], resultFuncArgs_12: number[] | undefined, resultFuncArgs_13: string | undefined, resultFuncArgs_14: string[] | undefined, resultFuncArgs_15: {
|
|
615
|
+
entryLineGuid: string;
|
|
616
|
+
data: Record<string, unknown>;
|
|
617
|
+
}[]) => BookingPackageRequest<BookingPackageBookRequest> | null;
|
|
618
|
+
memoizedResultFunc: ((resultFuncArgs_0: BookingPackageRequest<any>, resultFuncArgs_1: import("../../types").BookingOptions, resultFuncArgs_2: string, resultFuncArgs_3: BookingPackagePax[], resultFuncArgs_4: BookingPackageAddress | undefined, resultFuncArgs_5: import("@qite/tide-client").BookingPackage | undefined, resultFuncArgs_6: boolean, resultFuncArgs_7: boolean | undefined, resultFuncArgs_8: number | undefined, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean, resultFuncArgs_11: import("@qite/tide-client").BookingProductNotification[], resultFuncArgs_12: number[] | undefined, resultFuncArgs_13: string | undefined, resultFuncArgs_14: string[] | undefined, resultFuncArgs_15: {
|
|
619
|
+
entryLineGuid: string;
|
|
620
|
+
data: Record<string, unknown>;
|
|
621
|
+
}[]) => BookingPackageRequest<BookingPackageBookRequest> | null) & {
|
|
470
622
|
clearCache: () => void;
|
|
471
623
|
resultsCount: () => number;
|
|
472
624
|
resetResultsCount: () => void;
|
|
@@ -628,7 +780,71 @@ export declare const selectBookingPackageBookRequest: ((state: {
|
|
|
628
780
|
} & {
|
|
629
781
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
630
782
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
631
|
-
}, (state: RootState) => boolean, (state: RootState) => boolean, (state: RootState) => import("@qite/tide-client").BookingProductNotification[], (state: RootState) => number[] | undefined, (state: RootState) => string | undefined, (state: RootState) => string[] | undefined
|
|
783
|
+
}, (state: RootState) => boolean, (state: RootState) => boolean, (state: RootState) => import("@qite/tide-client").BookingProductNotification[], (state: RootState) => number[] | undefined, (state: RootState) => string | undefined, (state: RootState) => string[] | undefined, ((state: {
|
|
784
|
+
booking: import("./booking-slice").BookingState;
|
|
785
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
786
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
787
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
788
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
789
|
+
}) => {
|
|
790
|
+
entryLineGuid: string;
|
|
791
|
+
data: Record<string, unknown>;
|
|
792
|
+
}[]) & {
|
|
793
|
+
clearCache: () => void;
|
|
794
|
+
resultsCount: () => number;
|
|
795
|
+
resetResultsCount: () => void;
|
|
796
|
+
} & {
|
|
797
|
+
resultFunc: (resultFuncArgs_0: import("../subform/subform-utils").SubFormLine[], resultFuncArgs_1: Record<string, import("../../../form/form-types").FormValues>) => {
|
|
798
|
+
entryLineGuid: string;
|
|
799
|
+
data: Record<string, unknown>;
|
|
800
|
+
}[];
|
|
801
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("../subform/subform-utils").SubFormLine[], resultFuncArgs_1: Record<string, import("../../../form/form-types").FormValues>) => {
|
|
802
|
+
entryLineGuid: string;
|
|
803
|
+
data: Record<string, unknown>;
|
|
804
|
+
}[]) & {
|
|
805
|
+
clearCache: () => void;
|
|
806
|
+
resultsCount: () => number;
|
|
807
|
+
resetResultsCount: () => void;
|
|
808
|
+
};
|
|
809
|
+
lastResult: () => {
|
|
810
|
+
entryLineGuid: string;
|
|
811
|
+
data: Record<string, unknown>;
|
|
812
|
+
}[];
|
|
813
|
+
dependencies: [((state: {
|
|
814
|
+
booking: import("./booking-slice").BookingState;
|
|
815
|
+
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
816
|
+
priceDetails: import("../price-details/price-details-slice").PriceDetailsState;
|
|
817
|
+
summary: import("../summary/summary-slice").SummaryState;
|
|
818
|
+
apiSettings: import("../../..").ApiSettingsState;
|
|
819
|
+
}) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
820
|
+
clearCache: () => void;
|
|
821
|
+
resultsCount: () => number;
|
|
822
|
+
resetResultsCount: () => void;
|
|
823
|
+
} & {
|
|
824
|
+
resultFunc: (resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[];
|
|
825
|
+
memoizedResultFunc: ((resultFuncArgs_0: import("@qite/tide-client").BookingPackageRoom[] | undefined, resultFuncArgs_1: import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, resultFuncArgs_2: import("@qite/tide-client").BookingOptionUnit[] | undefined, resultFuncArgs_3: import("@qite/tide-client").BookingOptionPax[] | undefined) => import("../subform/subform-utils").SubFormLine[]) & {
|
|
826
|
+
clearCache: () => void;
|
|
827
|
+
resultsCount: () => number;
|
|
828
|
+
resetResultsCount: () => void;
|
|
829
|
+
};
|
|
830
|
+
lastResult: () => import("../subform/subform-utils").SubFormLine[];
|
|
831
|
+
dependencies: [(state: RootState) => import("@qite/tide-client").BookingPackageRoom[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionGroup<import("@qite/tide-client").PerBookingPackageOption>[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionUnit[] | undefined, (state: RootState) => import("@qite/tide-client").BookingOptionPax[] | undefined];
|
|
832
|
+
recomputations: () => number;
|
|
833
|
+
resetRecomputations: () => void;
|
|
834
|
+
dependencyRecomputations: () => number;
|
|
835
|
+
resetDependencyRecomputations: () => void;
|
|
836
|
+
} & {
|
|
837
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
838
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
839
|
+
}, (state: RootState) => Record<string, import("../../../form/form-types").FormValues>];
|
|
840
|
+
recomputations: () => number;
|
|
841
|
+
resetRecomputations: () => void;
|
|
842
|
+
dependencyRecomputations: () => number;
|
|
843
|
+
resetDependencyRecomputations: () => void;
|
|
844
|
+
} & {
|
|
845
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
846
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
847
|
+
}];
|
|
632
848
|
recomputations: () => number;
|
|
633
849
|
resetRecomputations: () => void;
|
|
634
850
|
dependencyRecomputations: () => number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormState } from '../../../form/hooks/use-form-state';
|
|
3
|
+
import { SubFormLine } from './subform-utils';
|
|
4
|
+
interface SubFormEntryProps {
|
|
5
|
+
line: SubFormLine;
|
|
6
|
+
formState: FormState;
|
|
7
|
+
}
|
|
8
|
+
declare const SubFormEntry: React.FC<SubFormEntryProps>;
|
|
9
|
+
export default SubFormEntry;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BookingOptionGroup, BookingOptionPax, BookingOptionUnit, BookingPackageRoom, PerBookingPackageOption, TideWebForm } from '@qite/tide-client/build/types';
|
|
2
|
+
export interface SubFormLine {
|
|
3
|
+
entryLineGuid: string;
|
|
4
|
+
subForm: TideWebForm;
|
|
5
|
+
productName: string;
|
|
6
|
+
startDate: string;
|
|
7
|
+
endDate: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function collectInEffectSubFormLines(rooms: BookingPackageRoom[] | undefined, groups: BookingOptionGroup<PerBookingPackageOption>[] | undefined, optionUnits: BookingOptionUnit[] | undefined, optionPax: BookingOptionPax[] | undefined): SubFormLine[];
|
|
10
|
+
interface SubFormVisibilitySettings {
|
|
11
|
+
isHidden?: boolean | null;
|
|
12
|
+
pathSuffix?: string | null;
|
|
13
|
+
}
|
|
14
|
+
export declare function isSubFormStepVisible(settings: SubFormVisibilitySettings, hasInEffectSubForms: boolean, requirePathSuffix?: boolean): boolean;
|
|
15
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FormikErrors } from 'formik';
|
|
2
|
-
import {
|
|
2
|
+
import { BookingPackagePaxFieldConfig } from '@qite/tide-client/build/types';
|
|
3
3
|
import { FormField, TravelersFormValues } from '../../types';
|
|
4
|
-
declare const validateForm: (values: TravelersFormValues, agentRequired?: boolean, bookingType?: string, translations?: any, formFields?: FormField[], mainBookerFormFields?: FormField[], maxChildAge?: number, maxBabyAge?: number,
|
|
4
|
+
declare const validateForm: (values: TravelersFormValues, agentRequired?: boolean, bookingType?: string, translations?: any, formFields?: FormField[], mainBookerFormFields?: FormField[], maxChildAge?: number, maxBabyAge?: number, paxFields?: BookingPackagePaxFieldConfig[]) => FormikErrors<TravelersFormValues>;
|
|
5
5
|
export default validateForm;
|
|
@@ -14,6 +14,10 @@ export interface Settings {
|
|
|
14
14
|
isHidden?: boolean | null;
|
|
15
15
|
pathSuffix?: string | null;
|
|
16
16
|
};
|
|
17
|
+
subForm: {
|
|
18
|
+
isHidden?: boolean | null;
|
|
19
|
+
pathSuffix?: string | null;
|
|
20
|
+
};
|
|
17
21
|
options: {
|
|
18
22
|
pathSuffix: string;
|
|
19
23
|
showRoomOptions?: boolean | null;
|
|
@@ -27,8 +31,6 @@ export interface Settings {
|
|
|
27
31
|
countries?: Country[];
|
|
28
32
|
travelersFirstStep?: boolean;
|
|
29
33
|
showAllCountries?: boolean;
|
|
30
|
-
showWeightField?: boolean;
|
|
31
|
-
showHeightField?: boolean;
|
|
32
34
|
};
|
|
33
35
|
summary: {
|
|
34
36
|
pathSuffix: string;
|
|
@@ -64,6 +66,7 @@ export interface Settings {
|
|
|
64
66
|
apiUrl?: string;
|
|
65
67
|
apiKey?: string;
|
|
66
68
|
hideTags?: boolean;
|
|
69
|
+
searchConfigurationId?: number;
|
|
67
70
|
translationFiles?: {
|
|
68
71
|
language: string;
|
|
69
72
|
path: string;
|
|
@@ -138,6 +141,13 @@ export interface SummaryCheckbox {
|
|
|
138
141
|
text: string;
|
|
139
142
|
isSelected: boolean;
|
|
140
143
|
}
|
|
144
|
+
export interface TravelerAddress {
|
|
145
|
+
street?: string;
|
|
146
|
+
number?: string;
|
|
147
|
+
postalCode?: string;
|
|
148
|
+
location?: string;
|
|
149
|
+
country?: string;
|
|
150
|
+
}
|
|
141
151
|
export interface Traveler {
|
|
142
152
|
id: number;
|
|
143
153
|
gender: string;
|
|
@@ -154,6 +164,22 @@ export interface Traveler {
|
|
|
154
164
|
weightType?: number;
|
|
155
165
|
height?: number | null;
|
|
156
166
|
heightType?: number;
|
|
167
|
+
nickname?: string;
|
|
168
|
+
birthplace?: string;
|
|
169
|
+
nationality?: string;
|
|
170
|
+
preferredLanguageId?: number;
|
|
171
|
+
email?: string;
|
|
172
|
+
phone?: string;
|
|
173
|
+
mobile?: string;
|
|
174
|
+
passportNumber?: string;
|
|
175
|
+
passportIssueDate?: string;
|
|
176
|
+
passportIssuedLocation?: string;
|
|
177
|
+
passportExpiryDate?: string;
|
|
178
|
+
emergencyNumber?: string;
|
|
179
|
+
hasInsurance?: boolean;
|
|
180
|
+
insuranceName?: string;
|
|
181
|
+
info?: string;
|
|
182
|
+
address?: TravelerAddress;
|
|
157
183
|
customFields?: BookingPackageCustomField[];
|
|
158
184
|
}
|
|
159
185
|
export interface Room {
|
|
@@ -219,7 +245,7 @@ export interface BookingAttributes {
|
|
|
219
245
|
includeFlights?: boolean;
|
|
220
246
|
flightRouteId?: string | null;
|
|
221
247
|
vendorConfigurationId?: number | null;
|
|
222
|
-
searchConfigurationId
|
|
248
|
+
searchConfigurationId: number;
|
|
223
249
|
productCode?: string;
|
|
224
250
|
productName?: string;
|
|
225
251
|
}
|
|
@@ -9,6 +9,8 @@ interface IndependentFlightOptionProps {
|
|
|
9
9
|
showSelectedState?: boolean;
|
|
10
10
|
currentSelectedPrice?: number;
|
|
11
11
|
price?: number;
|
|
12
|
+
selectLabel?: string;
|
|
13
|
+
selectedLabel?: string;
|
|
12
14
|
}
|
|
13
15
|
declare const IndependentFlightOption: React.FC<IndependentFlightOptionProps>;
|
|
14
16
|
export default IndependentFlightOption;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PackagingEntryLine, PackagingEntryLineFlightLine, PackagingTrajectNode } from '@qite/tide-client';
|
|
2
|
+
export declare const isMeaningfulItineraryLine: (line: PackagingEntryLine) => boolean;
|
|
2
3
|
export declare const getFlightLines: (flight?: PackagingEntryLine) => PackagingEntryLineFlightLine[];
|
|
3
4
|
export declare const getDepartureTime: (flight?: PackagingEntryLine) => string;
|
|
4
5
|
export declare const getArrivalTime: (flight?: PackagingEntryLine) => string;
|
|
@@ -39,6 +39,14 @@ export interface SearchResultsConfiguration {
|
|
|
39
39
|
onFlightBook?: (result: ExtendedFlightSearchResponseItem) => void;
|
|
40
40
|
packagingEntry?: PackagingEntry | null;
|
|
41
41
|
trajectEntry?: PackagingTrajectResponse | null;
|
|
42
|
+
/**
|
|
43
|
+
* From the website portal configuration. Lets the traveller change an already booked entry
|
|
44
|
+
* opened through its magic link: the entry lands on the day-by-day service cards (the traject
|
|
45
|
+
* results screen) where booked services can be swapped for alternatives and extras added. The
|
|
46
|
+
* booked entry needs `magicLink` set — booking merges changes into the dossier on it. Off by
|
|
47
|
+
* default: without it a booked entry only shows its full itinerary, as before.
|
|
48
|
+
*/
|
|
49
|
+
allowBookedEntryChanges?: boolean;
|
|
42
50
|
/**
|
|
43
51
|
* From the website portal configuration. When true a traject node may also offer externally
|
|
44
52
|
* sourced (API/vendor) hotels and excursions; when false only products held internally in Tide
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PackagingAccommodationResponse, PackagingEntry, PackagingEntryLine, PackagingFlightResponse, PackagingTrajectNode, PackagingTrajectResponse } from '@qite/tide-client';
|
|
2
|
+
/**
|
|
3
|
+
* A booked entry opened through its magic link knows nothing about the traject it may once have
|
|
4
|
+
* been composed from — the dossier only keeps the lines. To give it the same day-by-day services
|
|
5
|
+
* screen a traject gets, the traject structure is rebuilt from those lines: every booked service
|
|
6
|
+
* becomes a node whose one "alternative" is the booked product itself, and the days span the trip.
|
|
7
|
+
*
|
|
8
|
+
* The synthesized response keeps the entry untouched (magic link included), which is also how the
|
|
9
|
+
* rest of the component tells this mode apart from a real traject: see isBookedEntryTraject.
|
|
10
|
+
*/
|
|
11
|
+
export declare const isBookedEntryTraject: (trajectEntry?: PackagingTrajectResponse | null) => boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether saving the entry would change the dossier: a line was swapped for a search result, or
|
|
14
|
+
* the active member of a line group moved (which swaps no line and so stamps no isChanged).
|
|
15
|
+
*/
|
|
16
|
+
export declare const hasBookedEntryChanges: (original: PackagingEntry | null | undefined, editable: PackagingEntry | null | undefined) => boolean;
|
|
17
|
+
export declare const buildBookedTrajectEntry: (entry: PackagingEntry) => PackagingTrajectResponse;
|
|
18
|
+
/**
|
|
19
|
+
* The card for a booked service when no search result carries it any more (sold out, delisted).
|
|
20
|
+
* Rendered from the line, so the traveller still sees what they booked; price 0 makes the card
|
|
21
|
+
* leave its price out — the paid price lives in the price details, not on the line.
|
|
22
|
+
*/
|
|
23
|
+
export declare const buildBookedNodeResult: (node: PackagingTrajectNode, lines: PackagingEntryLine[]) => PackagingAccommodationResponse;
|
|
24
|
+
/** The booked flight as a flight result, so the card that shows it is the card the search results use. */
|
|
25
|
+
export declare const buildBookedFlightResult: (line: PackagingEntryLine) => PackagingFlightResponse;
|
|
@@ -3,6 +3,11 @@ export declare const GROUP_TOUR_SERVICE_TYPE = 1;
|
|
|
3
3
|
export declare const ACCOMMODATION_SERVICE_TYPE = 3;
|
|
4
4
|
export declare const EXCURSION_SERVICE_TYPE = 4;
|
|
5
5
|
export declare const FLIGHT_SERVICE_TYPE = 7;
|
|
6
|
+
/**
|
|
7
|
+
* Tide can group entry lines (a couple of hotels under one group key) of which one is active and
|
|
8
|
+
* the others are kept on the dossier as alternatives. A line without the flag counts as active.
|
|
9
|
+
*/
|
|
10
|
+
export declare const isActiveEntryLine: (line: PackagingEntryLine) => boolean;
|
|
6
11
|
export declare const toDateOnlyString: (value: string | Date) => string;
|
|
7
12
|
export declare const getPrimaryAccommodationLine: (lines: PackagingEntryLine[]) => PackagingEntryLine | undefined;
|
|
8
13
|
export declare const getDepartureAirportFromEntry: (lines: PackagingEntryLine[]) => string | null;
|
|
@@ -74,6 +74,22 @@ export declare const getPackagingRoomsFromEntry: (entry: PackagingEntry) => Pack
|
|
|
74
74
|
export declare const pickCheapest: (results: PackagingAccommodationResponse[]) => PackagingAccommodationResponse | null;
|
|
75
75
|
export declare const applyResultToLines: (lines: PackagingEntryLine[], result: PackagingAccommodationResponse) => PackagingEntryLine[];
|
|
76
76
|
export declare const applyResultToLine: (line: PackagingEntryLine, result: PackagingAccommodationResponse, roomIndex?: number) => PackagingEntryLine;
|
|
77
|
+
export declare const getLineGroupKey: (line: PackagingEntryLine) => string;
|
|
78
|
+
/**
|
|
79
|
+
* The extra room lines of a service: the same product hanging off it. A transfer or flight that
|
|
80
|
+
* points at the hotel as its parent is not a room of it.
|
|
81
|
+
*/
|
|
82
|
+
export declare const isRoomLineOf: (line: PackagingEntryLine, root: PackagingEntryLine) => boolean;
|
|
83
|
+
/** Every member of a line group with its room lines — the active member first, then dossier order. */
|
|
84
|
+
export declare const getGroupLines: (lines: PackagingEntryLine[], groupKey: string) => PackagingEntryLine[][];
|
|
85
|
+
/**
|
|
86
|
+
* Picking a result that is another member of the line's group moves the active flag to that
|
|
87
|
+
* member instead of rewriting the line: every member stays on the dossier as it is. Null when the
|
|
88
|
+
* result is not a member of the group.
|
|
89
|
+
*/
|
|
90
|
+
export declare const buildGroupSelectionLines: (entryLines: PackagingEntryLine[], item: TrajectNodeWithLine, result: PackagingAccommodationResponse) => PackagingEntryLine[] | null;
|
|
91
|
+
export declare const buildNodeSelectionLines: (item: TrajectNodeWithLine, result: PackagingAccommodationResponse, bookedMode: boolean, entryLines?: PackagingEntryLine[]) => PackagingEntryLine[];
|
|
92
|
+
export declare const buildFlightSelectionLine: (item: TrajectNodeWithLine, flight: PackagingFlightResponse, bookedMode: boolean) => PackagingEntryLine;
|
|
77
93
|
export declare const buildTrajectFlightRequest: ({ node, line }: TrajectNodeWithLine, context: TrajectSearchContext, pax: FlightSearchRequest["pax"]) => FlightSearchRequest;
|
|
78
94
|
/**
|
|
79
95
|
* The entry as the backend can price it.
|
|
@@ -87,6 +103,11 @@ export declare const buildTrajectFlightRequest: ({ node, line }: TrajectNodeWith
|
|
|
87
103
|
* mapper gave them. This swaps in the guid of whatever each line resolved onto, leaving the
|
|
88
104
|
* lines the traveller added themselves alone — those were built from a search result and already
|
|
89
105
|
* carry the right one.
|
|
106
|
+
*
|
|
107
|
+
* A booked entry (the traject was rebuilt from a magic-link entry) is the other way around: its
|
|
108
|
+
* lines live in the dossier under their own guids, and only a line the traveller actually swapped
|
|
109
|
+
* (isChanged) exists in the search cache. Swapping an untouched line's guid would orphan it —
|
|
110
|
+
* the backend drops the dossier line and finds nothing to add — so those keep theirs.
|
|
90
111
|
*/
|
|
91
112
|
export declare const withCachedEntryLineGuids: (entry: PackagingEntry, trajectEntry: PackagingTrajectResponse, nodeAvailability: Record<string, {
|
|
92
113
|
results: PackagingAccommodationResponse[];
|