@qite/tide-components 1.0.13-preview.0 → 1.0.14-preview.1
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 +4450 -4039
- 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 +219 -3
- 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/types.d.ts +7 -1
- package/build/build-cjs/src/search-results/utils/booked-entry-utils.d.ts +5 -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 +15 -1
- package/build/build-esm/index.js +4450 -4039
- 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 +219 -3
- 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/types.d.ts +7 -1
- package/build/build-esm/src/search-results/utils/booked-entry-utils.d.ts +5 -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 +15 -1
- package/package.json +2 -2
- package/styles/components/_flight-option.scss +12 -0
|
@@ -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;
|
|
@@ -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 {};
|
|
@@ -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;
|
|
@@ -62,6 +66,7 @@ export interface Settings {
|
|
|
62
66
|
apiUrl?: string;
|
|
63
67
|
apiKey?: string;
|
|
64
68
|
hideTags?: boolean;
|
|
69
|
+
searchConfigurationId?: number;
|
|
65
70
|
translationFiles?: {
|
|
66
71
|
language: string;
|
|
67
72
|
path: string;
|
|
@@ -240,7 +245,7 @@ export interface BookingAttributes {
|
|
|
240
245
|
includeFlights?: boolean;
|
|
241
246
|
flightRouteId?: string | null;
|
|
242
247
|
vendorConfigurationId?: number | null;
|
|
243
|
-
searchConfigurationId
|
|
248
|
+
searchConfigurationId: number;
|
|
244
249
|
productCode?: string;
|
|
245
250
|
productName?: string;
|
|
246
251
|
}
|
|
@@ -336,6 +341,7 @@ export interface FlightFilterOptions {
|
|
|
336
341
|
airports: FlightFilterOption[];
|
|
337
342
|
airlines: FlightFilterOption[];
|
|
338
343
|
numberOfStops: FlightFilterOption[];
|
|
344
|
+
travelClasses: FlightFilterOption[];
|
|
339
345
|
outward: FlightDirectionFilter;
|
|
340
346
|
return: FlightDirectionFilter;
|
|
341
347
|
}
|
|
@@ -9,6 +9,11 @@ import { PackagingAccommodationResponse, PackagingEntry, PackagingEntryLine, Pac
|
|
|
9
9
|
* rest of the component tells this mode apart from a real traject: see isBookedEntryTraject.
|
|
10
10
|
*/
|
|
11
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;
|
|
12
17
|
export declare const buildBookedTrajectEntry: (entry: PackagingEntry) => PackagingTrajectResponse;
|
|
13
18
|
/**
|
|
14
19
|
* The card for a booked service when no search result carries it any more (sold out, delisted).
|
|
@@ -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,7 +74,21 @@ 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
|
|
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[];
|
|
78
92
|
export declare const buildFlightSelectionLine: (item: TrajectNodeWithLine, flight: PackagingFlightResponse, bookedMode: boolean) => PackagingEntryLine;
|
|
79
93
|
export declare const buildTrajectFlightRequest: ({ node, line }: TrajectNodeWithLine, context: TrajectSearchContext, pax: FlightSearchRequest["pax"]) => FlightSearchRequest;
|
|
80
94
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qite/tide-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14-preview.1",
|
|
4
4
|
"description": "React components for Tide (booking, product availability, form, ...)",
|
|
5
5
|
"main": "build/build-cjs/index.js",
|
|
6
6
|
"types": "build/build-cjs/src/index.d.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@jsonurl/jsonurl": "^1.1.4",
|
|
38
38
|
"@popperjs/core": "^2.10.2",
|
|
39
|
-
"@qite/tide-client": "^2.0.21-preview.
|
|
39
|
+
"@qite/tide-client": "^2.0.21-preview.2",
|
|
40
40
|
"@reduxjs/toolkit": "^2.8.2",
|
|
41
41
|
"@rollup/plugin-commonjs": "^19.0.1",
|
|
42
42
|
"@rollup/plugin-json": "^4.1.0",
|
|
@@ -995,6 +995,18 @@
|
|
|
995
995
|
&--pub {
|
|
996
996
|
background: var(--tide-booking-price-decrease);
|
|
997
997
|
}
|
|
998
|
+
|
|
999
|
+
&__badge {
|
|
1000
|
+
display: inline-flex;
|
|
1001
|
+
align-items: center;
|
|
1002
|
+
color: #fff;
|
|
1003
|
+
background: var(--tide-booking-color-primary);
|
|
1004
|
+
border-radius: 20px;
|
|
1005
|
+
padding: 5px 12px;
|
|
1006
|
+
font-size: 12px;
|
|
1007
|
+
font-weight: 300;
|
|
1008
|
+
white-space: nowrap;
|
|
1009
|
+
}
|
|
998
1010
|
}
|
|
999
1011
|
|
|
1000
1012
|
&__airport {
|