@qite/tide-booking-component 0.0.2-preview.8 → 1.0.0-preview
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/README.md +1 -0
- package/build/build-cjs/booking-wizard/components/icon.d.ts +7 -7
- package/build/build-cjs/booking-wizard/components/labeled-input.d.ts +18 -18
- package/build/build-cjs/booking-wizard/components/labeled-select.d.ts +21 -21
- package/build/build-cjs/booking-wizard/components/message.d.ts +9 -8
- package/build/build-cjs/booking-wizard/components/product-card.d.ts +8 -9
- package/build/build-cjs/booking-wizard/components/rating.d.ts +6 -6
- package/build/build-cjs/booking-wizard/components/step-indicator.d.ts +6 -6
- package/build/build-cjs/booking-wizard/components/step-route.d.ts +9 -9
- package/build/build-cjs/booking-wizard/features/booking/api.d.ts +21 -0
- package/build/build-cjs/booking-wizard/features/booking/booking-slice.d.ts +124 -18
- package/build/build-cjs/booking-wizard/features/booking/booking.d.ts +8 -9
- package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +208 -0
- package/build/build-cjs/booking-wizard/features/confirmation/confirmation.d.ts +4 -5
- package/build/build-cjs/booking-wizard/features/error/error.d.ts +4 -5
- package/build/build-cjs/booking-wizard/features/price-details/price-details-api.d.ts +12 -6
- package/build/build-cjs/booking-wizard/features/price-details/price-details-slice.d.ts +105 -10
- package/build/build-cjs/booking-wizard/features/price-details/util.d.ts +5 -0
- package/build/build-cjs/booking-wizard/features/product-options/no-options.d.ts +2 -0
- package/build/build-cjs/booking-wizard/features/product-options/none-option.d.ts +17 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-booking-group.d.ts +18 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-item.d.ts +11 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-pax-card.d.ts +9 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-pax-group.d.ts +20 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-room.d.ts +16 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-unit-group.d.ts +20 -0
- package/build/build-cjs/booking-wizard/features/product-options/option-units-card.d.ts +9 -0
- package/build/build-cjs/booking-wizard/features/product-options/options-form.d.ts +4 -5
- package/build/build-cjs/booking-wizard/features/product-options/validate-form.d.ts +2 -2
- package/build/build-cjs/booking-wizard/features/sidebar/index.d.ts +7 -3
- package/build/build-cjs/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -0
- package/build/build-cjs/booking-wizard/features/sidebar/sidebar-util.d.ts +28 -4
- package/build/build-cjs/booking-wizard/features/sidebar/sidebar.d.ts +29 -21
- package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -0
- package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -0
- package/build/build-cjs/booking-wizard/features/summary/summary-flight.d.ts +8 -0
- package/build/build-cjs/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +10 -0
- package/build/build-cjs/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +10 -0
- package/build/build-cjs/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +10 -0
- package/build/build-cjs/booking-wizard/features/summary/summary-slice.d.ts +14 -17
- package/build/build-cjs/booking-wizard/features/summary/summary.d.ts +4 -5
- package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +95 -45
- package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form.d.ts +4 -5
- package/build/build-cjs/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -15
- package/build/build-cjs/booking-wizard/features/travelers-form/validate-form.d.ts +7 -4
- package/build/build-cjs/booking-wizard/index.d.ts +12 -11
- package/build/build-cjs/booking-wizard/settings-context.d.ts +5 -6
- package/build/build-cjs/booking-wizard/store.d.ts +41 -25
- package/build/build-cjs/booking-wizard/types.d.ts +111 -59
- package/build/build-cjs/booking-wizard/utils/class-util.d.ts +1 -1
- package/build/build-cjs/booking-wizard/utils/localization-util.d.ts +1 -1
- package/build/build-cjs/booking-wizard/utils/query-string-util.d.ts +21 -2
- package/build/build-cjs/booking-wizard/utils/tide-api-utils.d.ts +2 -2
- package/build/build-cjs/index.d.ts +2 -2
- package/build/build-cjs/index.js +13642 -1886
- package/build/build-esm/booking-wizard/components/icon.d.ts +7 -7
- package/build/build-esm/booking-wizard/components/labeled-input.d.ts +18 -18
- package/build/build-esm/booking-wizard/components/labeled-select.d.ts +21 -21
- package/build/build-esm/booking-wizard/components/message.d.ts +9 -8
- package/build/build-esm/booking-wizard/components/product-card.d.ts +8 -9
- package/build/build-esm/booking-wizard/components/rating.d.ts +6 -6
- package/build/build-esm/booking-wizard/components/step-indicator.d.ts +6 -6
- package/build/build-esm/booking-wizard/components/step-route.d.ts +9 -9
- package/build/build-esm/booking-wizard/features/booking/api.d.ts +21 -0
- package/build/build-esm/booking-wizard/features/booking/booking-slice.d.ts +124 -18
- package/build/build-esm/booking-wizard/features/booking/booking.d.ts +8 -9
- package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +208 -0
- package/build/build-esm/booking-wizard/features/confirmation/confirmation.d.ts +4 -5
- package/build/build-esm/booking-wizard/features/error/error.d.ts +4 -5
- package/build/build-esm/booking-wizard/features/price-details/price-details-api.d.ts +12 -6
- package/build/build-esm/booking-wizard/features/price-details/price-details-slice.d.ts +105 -10
- package/build/build-esm/booking-wizard/features/price-details/util.d.ts +5 -0
- package/build/build-esm/booking-wizard/features/product-options/no-options.d.ts +2 -0
- package/build/build-esm/booking-wizard/features/product-options/none-option.d.ts +17 -0
- package/build/build-esm/booking-wizard/features/product-options/option-booking-group.d.ts +18 -0
- package/build/build-esm/booking-wizard/features/product-options/option-item.d.ts +11 -0
- package/build/build-esm/booking-wizard/features/product-options/option-pax-card.d.ts +9 -0
- package/build/build-esm/booking-wizard/features/product-options/option-pax-group.d.ts +20 -0
- package/build/build-esm/booking-wizard/features/product-options/option-room.d.ts +16 -0
- package/build/build-esm/booking-wizard/features/product-options/option-unit-group.d.ts +20 -0
- package/build/build-esm/booking-wizard/features/product-options/option-units-card.d.ts +9 -0
- package/build/build-esm/booking-wizard/features/product-options/options-form.d.ts +4 -5
- package/build/build-esm/booking-wizard/features/product-options/validate-form.d.ts +2 -2
- package/build/build-esm/booking-wizard/features/sidebar/index.d.ts +7 -3
- package/build/build-esm/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -0
- package/build/build-esm/booking-wizard/features/sidebar/sidebar-util.d.ts +28 -4
- package/build/build-esm/booking-wizard/features/sidebar/sidebar.d.ts +29 -21
- package/build/build-esm/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -0
- package/build/build-esm/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -0
- package/build/build-esm/booking-wizard/features/summary/summary-flight.d.ts +8 -0
- package/build/build-esm/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +10 -0
- package/build/build-esm/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +10 -0
- package/build/build-esm/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +10 -0
- package/build/build-esm/booking-wizard/features/summary/summary-slice.d.ts +14 -17
- package/build/build-esm/booking-wizard/features/summary/summary.d.ts +4 -5
- package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +95 -45
- package/build/build-esm/booking-wizard/features/travelers-form/travelers-form.d.ts +4 -5
- package/build/build-esm/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -15
- package/build/build-esm/booking-wizard/features/travelers-form/validate-form.d.ts +7 -4
- package/build/build-esm/booking-wizard/index.d.ts +12 -11
- package/build/build-esm/booking-wizard/settings-context.d.ts +5 -6
- package/build/build-esm/booking-wizard/store.d.ts +41 -25
- package/build/build-esm/booking-wizard/types.d.ts +111 -59
- package/build/build-esm/booking-wizard/utils/class-util.d.ts +1 -1
- package/build/build-esm/booking-wizard/utils/localization-util.d.ts +1 -1
- package/build/build-esm/booking-wizard/utils/query-string-util.d.ts +21 -2
- package/build/build-esm/booking-wizard/utils/tide-api-utils.d.ts +2 -2
- package/build/build-esm/index.d.ts +2 -2
- package/build/build-esm/index.js +13478 -1875
- package/package.json +8 -4
- package/rollup.config.js +1 -6
- package/src/booking-wizard/components/message.tsx +14 -8
- package/src/booking-wizard/components/product-card.tsx +10 -39
- package/src/booking-wizard/components/step-indicator.tsx +1 -1
- package/src/booking-wizard/components/step-route.tsx +1 -1
- package/src/booking-wizard/features/booking/api.ts +44 -0
- package/src/booking-wizard/features/booking/booking-slice.ts +274 -40
- package/src/booking-wizard/features/booking/booking.tsx +193 -57
- package/src/booking-wizard/features/booking/selectors.ts +328 -0
- package/src/booking-wizard/features/confirmation/confirmation.tsx +22 -11
- package/src/booking-wizard/features/error/error.tsx +15 -2
- package/src/booking-wizard/features/price-details/price-details-api.ts +12 -6
- package/src/booking-wizard/features/price-details/price-details-slice.ts +80 -50
- package/src/booking-wizard/features/price-details/util.ts +135 -0
- package/src/booking-wizard/features/product-options/no-options.tsx +18 -0
- package/src/booking-wizard/features/product-options/none-option.tsx +118 -0
- package/src/booking-wizard/features/product-options/option-booking-group.tsx +210 -0
- package/src/booking-wizard/features/product-options/option-item.tsx +321 -0
- package/src/booking-wizard/features/product-options/option-pax-card.tsx +102 -0
- package/src/booking-wizard/features/product-options/option-pax-group.tsx +169 -0
- package/src/booking-wizard/features/product-options/option-room.tsx +300 -0
- package/src/booking-wizard/features/product-options/option-unit-group.tsx +192 -0
- package/src/booking-wizard/features/product-options/option-units-card.tsx +100 -0
- package/src/booking-wizard/features/product-options/options-form.tsx +226 -48
- package/src/booking-wizard/features/sidebar/index.tsx +43 -20
- package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +66 -0
- package/src/booking-wizard/features/sidebar/sidebar-util.ts +81 -39
- package/src/booking-wizard/features/sidebar/sidebar.tsx +150 -100
- package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -0
- package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +25 -0
- package/src/booking-wizard/features/summary/summary-flight.tsx +35 -0
- package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +57 -0
- package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +51 -0
- package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +54 -0
- package/src/booking-wizard/features/summary/summary-slice.ts +1 -134
- package/src/booking-wizard/features/summary/summary.tsx +521 -134
- package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +55 -56
- package/src/booking-wizard/features/travelers-form/travelers-form.tsx +202 -94
- package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +23 -3
- package/src/booking-wizard/features/travelers-form/validate-form.ts +40 -3
- package/src/booking-wizard/index.tsx +5 -6
- package/src/booking-wizard/settings-context.ts +33 -5
- package/src/booking-wizard/store.ts +5 -4
- package/src/booking-wizard/translations/translations.json +95 -61
- package/src/booking-wizard/types.ts +67 -10
- package/src/booking-wizard/utils/query-string-util.ts +42 -0
- package/build/build-cjs/booking-wizard/features/product-options/checkbox.d.ts +0 -11
- package/build/build-cjs/booking-wizard/features/product-options/option-details.d.ts +0 -11
- package/build/build-cjs/booking-wizard/features/product-options/product-options-api.d.ts +0 -26
- package/build/build-cjs/booking-wizard/features/product-options/product-options-slice.d.ts +0 -37
- package/build/build-cjs/booking-wizard/features/product-options/radio-button.d.ts +0 -10
- package/build/build-cjs/booking-wizard/features/product-options/rooms-slice.d.ts +0 -12
- package/build/build-cjs/booking-wizard/features/product-options/tree-level.d.ts +0 -7
- package/build/build-esm/booking-wizard/features/product-options/checkbox.d.ts +0 -11
- package/build/build-esm/booking-wizard/features/product-options/option-details.d.ts +0 -11
- package/build/build-esm/booking-wizard/features/product-options/product-options-api.d.ts +0 -26
- package/build/build-esm/booking-wizard/features/product-options/product-options-slice.d.ts +0 -37
- package/build/build-esm/booking-wizard/features/product-options/radio-button.d.ts +0 -10
- package/build/build-esm/booking-wizard/features/product-options/rooms-slice.d.ts +0 -12
- package/build/build-esm/booking-wizard/features/product-options/tree-level.d.ts +0 -7
- package/src/booking-wizard/features/product-options/checkbox.tsx +0 -38
- package/src/booking-wizard/features/product-options/option-details.tsx +0 -65
- package/src/booking-wizard/features/product-options/product-options-api.ts +0 -148
- package/src/booking-wizard/features/product-options/product-options-slice.ts +0 -149
- package/src/booking-wizard/features/product-options/radio-button.tsx +0 -35
- package/src/booking-wizard/features/product-options/rooms-slice.ts +0 -28
- package/src/booking-wizard/features/product-options/tree-level.tsx +0 -118
|
@@ -1,12 +1,25 @@
|
|
|
1
1
|
import { FormikErrors } from "formik";
|
|
2
2
|
import { isEmpty, set } from "lodash";
|
|
3
3
|
import { TravelersFormValues } from "../../types";
|
|
4
|
+
import { CHILD_MAX_AGE } from "./travelers-form-slice";
|
|
4
5
|
|
|
5
6
|
function isValidEmail(email: string) {
|
|
6
7
|
return !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email);
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
function getAge(birthDateText: string, startDateText: string) {
|
|
11
|
+
var birthDate = new Date(birthDateText);
|
|
12
|
+
var startDate = new Date(startDateText);
|
|
13
|
+
|
|
14
|
+
var age = startDate.getFullYear() - birthDate.getFullYear();
|
|
15
|
+
var m = startDate.getMonth() - birthDate.getMonth();
|
|
16
|
+
if (m < 0 || (m === 0 && startDate.getDate() < birthDate.getDate())) {
|
|
17
|
+
age--;
|
|
18
|
+
}
|
|
19
|
+
return age;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const validateForm = (values: TravelersFormValues, agentRequired?: boolean) => {
|
|
10
23
|
const errors: FormikErrors<TravelersFormValues> = {};
|
|
11
24
|
|
|
12
25
|
values.adults.forEach((adult, index) => {
|
|
@@ -36,6 +49,16 @@ const validateForm = (values: TravelersFormValues) => {
|
|
|
36
49
|
`adults[${index}].birthDate`,
|
|
37
50
|
`Reiziger ${index + 1}: geboortedatum`
|
|
38
51
|
);
|
|
52
|
+
} else if (values.startDate) {
|
|
53
|
+
const age = getAge(adult.birthDate, values.startDate);
|
|
54
|
+
|
|
55
|
+
if (age <= CHILD_MAX_AGE) {
|
|
56
|
+
set(
|
|
57
|
+
errors,
|
|
58
|
+
`adults[${index}].birthDate`,
|
|
59
|
+
`Reiziger ${index + 1}: is geen volwassene`
|
|
60
|
+
);
|
|
61
|
+
}
|
|
39
62
|
}
|
|
40
63
|
});
|
|
41
64
|
|
|
@@ -70,15 +93,25 @@ const validateForm = (values: TravelersFormValues) => {
|
|
|
70
93
|
`children[${index}].birthDate`,
|
|
71
94
|
`Reiziger ${values.adults.length + index + 1}: geboortedatum`
|
|
72
95
|
);
|
|
96
|
+
} else if (values.startDate) {
|
|
97
|
+
const age = getAge(child.birthDate, values.startDate);
|
|
98
|
+
|
|
99
|
+
if (age > CHILD_MAX_AGE) {
|
|
100
|
+
set(
|
|
101
|
+
errors,
|
|
102
|
+
`children[${index}].birthDate`,
|
|
103
|
+
`Reiziger ${index + 1}: is geen kind`
|
|
104
|
+
);
|
|
105
|
+
}
|
|
73
106
|
}
|
|
74
107
|
});
|
|
75
108
|
|
|
76
|
-
if (
|
|
109
|
+
if (values.mainBookerId < 0) {
|
|
77
110
|
errors.mainBookerId = "Er werd geen hoofdboeker geselecteerd";
|
|
78
111
|
}
|
|
79
112
|
|
|
80
113
|
if (isEmpty(values.street)) {
|
|
81
|
-
errors.street = "Hoofdboeker:
|
|
114
|
+
errors.street = "Hoofdboeker: straat";
|
|
82
115
|
}
|
|
83
116
|
|
|
84
117
|
if (isEmpty(values.houseNumber)) {
|
|
@@ -113,6 +146,10 @@ const validateForm = (values: TravelersFormValues) => {
|
|
|
113
146
|
errors.emailConfirmation = "Hoofdboeker: email komt niet overeen";
|
|
114
147
|
}
|
|
115
148
|
|
|
149
|
+
if (agentRequired && !values.travelAgentId) {
|
|
150
|
+
errors.travelAgentId = "Reisagent is verplicht";
|
|
151
|
+
}
|
|
152
|
+
|
|
116
153
|
return errors;
|
|
117
154
|
};
|
|
118
155
|
|
|
@@ -6,17 +6,17 @@ import { Settings } from "./types";
|
|
|
6
6
|
import Booking from "./features/booking/booking";
|
|
7
7
|
|
|
8
8
|
interface BookingWizardProps {
|
|
9
|
-
|
|
9
|
+
productCode: string;
|
|
10
10
|
productName: string;
|
|
11
|
-
|
|
11
|
+
allotmentName?: string;
|
|
12
|
+
tourCode?: string;
|
|
12
13
|
thumbnailUrl?: string;
|
|
13
14
|
settings: Settings;
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
const BookingWizard: React.FC<BookingWizardProps> = ({
|
|
17
|
-
|
|
18
|
+
productCode,
|
|
18
19
|
productName,
|
|
19
|
-
productDescription,
|
|
20
20
|
thumbnailUrl,
|
|
21
21
|
settings,
|
|
22
22
|
}) => {
|
|
@@ -24,9 +24,8 @@ const BookingWizard: React.FC<BookingWizardProps> = ({
|
|
|
24
24
|
<SettingsContext.Provider value={settings}>
|
|
25
25
|
<Provider store={store}>
|
|
26
26
|
<Booking
|
|
27
|
-
|
|
27
|
+
productCode={productCode}
|
|
28
28
|
productName={productName}
|
|
29
|
-
productDescription={productDescription}
|
|
30
29
|
thumbnailUrl={thumbnailUrl}
|
|
31
30
|
/>
|
|
32
31
|
</Provider>
|
|
@@ -4,20 +4,48 @@ import { Settings } from "./types";
|
|
|
4
4
|
interface SettingsContextProps extends Settings {}
|
|
5
5
|
|
|
6
6
|
const SettingsContext = React.createContext<SettingsContextProps>({
|
|
7
|
+
language: "nl-BE",
|
|
8
|
+
generatePaymentUrl: false,
|
|
9
|
+
currency: "EUR",
|
|
7
10
|
officeId: 1,
|
|
11
|
+
tagIds: [],
|
|
12
|
+
hideAgentSelection: false,
|
|
13
|
+
agentAdressId: undefined,
|
|
14
|
+
affiliateSlug: undefined,
|
|
8
15
|
productPath: "/",
|
|
9
16
|
basePath: "/boeken",
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
options: {
|
|
18
|
+
pathSuffix: "/opties",
|
|
19
|
+
},
|
|
20
|
+
summary: {
|
|
21
|
+
pathSuffix: "/samenvatting",
|
|
22
|
+
checkboxes: null,
|
|
23
|
+
},
|
|
24
|
+
confirmation: {
|
|
25
|
+
pathSuffix: "/bevestiging",
|
|
26
|
+
},
|
|
27
|
+
error: {
|
|
28
|
+
pathSuffix: "/mislukt",
|
|
29
|
+
},
|
|
14
30
|
companyContactEmail: "info@qite.be",
|
|
31
|
+
companyContactPhone: "093362299",
|
|
15
32
|
showProductCardRating: false,
|
|
16
|
-
showSidebarAccommodationInfo: false,
|
|
17
33
|
showSidebarDeposit: false,
|
|
18
34
|
sidebarHeaderComponent: null,
|
|
19
35
|
sidebarFooterComponent: null,
|
|
36
|
+
loaderComponent: null,
|
|
20
37
|
icons: null,
|
|
38
|
+
bookingOptions: {
|
|
39
|
+
b2b: {
|
|
40
|
+
entryStatus: 0,
|
|
41
|
+
},
|
|
42
|
+
b2b2c: {
|
|
43
|
+
entryStatus: 0,
|
|
44
|
+
},
|
|
45
|
+
b2c: {
|
|
46
|
+
entryStatus: 0,
|
|
47
|
+
},
|
|
48
|
+
},
|
|
21
49
|
});
|
|
22
50
|
|
|
23
51
|
export default SettingsContext;
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { Action, ThunkAction, configureStore } from "@reduxjs/toolkit";
|
|
2
2
|
|
|
3
3
|
import bookingReducer from "./features/booking/booking-slice";
|
|
4
|
-
import productOptionsReducer from "./features/product-options/product-options-slice";
|
|
5
|
-
import roomsReducer from "./features/product-options/rooms-slice";
|
|
6
4
|
import priceDetailsReducer from "./features/price-details/price-details-slice";
|
|
7
5
|
import travelersFormReducer from "./features/travelers-form/travelers-form-slice";
|
|
8
6
|
import summaryReducer from "./features/summary/summary-slice";
|
|
7
|
+
import { useDispatch } from "react-redux";
|
|
9
8
|
|
|
10
9
|
export const store = configureStore({
|
|
11
10
|
reducer: {
|
|
12
11
|
booking: bookingReducer,
|
|
13
12
|
travelersForm: travelersFormReducer,
|
|
14
|
-
productOptions: productOptionsReducer,
|
|
15
13
|
priceDetails: priceDetailsReducer,
|
|
16
|
-
rooms: roomsReducer,
|
|
17
14
|
summary: summaryReducer,
|
|
18
15
|
},
|
|
19
16
|
});
|
|
@@ -26,3 +23,7 @@ export type AppThunk<ReturnType = void> = ThunkAction<
|
|
|
26
23
|
unknown,
|
|
27
24
|
Action<string>
|
|
28
25
|
>;
|
|
26
|
+
|
|
27
|
+
export type AppDispatch = typeof store.dispatch;
|
|
28
|
+
|
|
29
|
+
export const useAppDispatch = () => useDispatch<AppDispatch>();
|
|
@@ -1,91 +1,125 @@
|
|
|
1
1
|
{
|
|
2
|
+
"STEPS": {
|
|
3
|
+
"PERSONAL_DETAILS": "Persoonlijke gegevens",
|
|
4
|
+
"TRAVEL_OPTIONS": "Opties",
|
|
5
|
+
"SUMMARY": "Overzicht",
|
|
6
|
+
"CONFIRMATION": "Bevestiging",
|
|
7
|
+
"ERROR": "Boeken mislukt",
|
|
8
|
+
"PREVIOUS": "Vorige stap",
|
|
9
|
+
"NEXT": "Volgende stap",
|
|
10
|
+
"SUBMIT": "Bevestig boeking"
|
|
11
|
+
},
|
|
12
|
+
"MAIN": {
|
|
13
|
+
"PREPARING_BOOKING": "Even geduld, we bereiden uw boeking voor",
|
|
14
|
+
"PRODUCT_UNAVAILABLE": "Product niet beschikbaar"
|
|
15
|
+
},
|
|
16
|
+
"SIDEBAR": {
|
|
17
|
+
"OVERVIEW": "Overzicht",
|
|
18
|
+
"SLIDE_TOTAL_PRICE": "Totaalbedrag: ",
|
|
19
|
+
"SLIDE_DEPOSIT": "Te betalen voorschot: ",
|
|
20
|
+
"TRAVEL_INFO": "Gegevens",
|
|
21
|
+
"TRAVELERS": "Personen",
|
|
22
|
+
"TRAVELERS_ADULTS": "volwassenen",
|
|
23
|
+
"TRAVELERS_ADULT": "volwassene",
|
|
24
|
+
"TRAVELERS_CHILDREN": "kinderen",
|
|
25
|
+
"TRAVELERS_CHILD": "kind",
|
|
26
|
+
"DEPARTURE": "Heenreis",
|
|
27
|
+
"DEPARTURE_SINGLE": "Datum",
|
|
28
|
+
"ARRIVAL": "Terugreis",
|
|
29
|
+
"FLIGHT": "Vlucht",
|
|
30
|
+
"ACCOMMODATION": "Geboekt",
|
|
31
|
+
"BASE_PRICE": "Basisprijs",
|
|
32
|
+
"OPTIONS": "Opties",
|
|
33
|
+
"INCLUDED_COSTS": "Inbegrepen",
|
|
34
|
+
"EXTRA_COSTS": "Bijkomende kosten",
|
|
35
|
+
"TOTAL_PRICE": "Totale prijs",
|
|
36
|
+
"DEPOSIT": "Te betalen voorschot",
|
|
37
|
+
"DEPOSIT_TEXT1": "De te nemen stappen voor het ",
|
|
38
|
+
"DEPOSIT_TEXT2": "restbedrag",
|
|
39
|
+
"DEPOSIT_TEXT3": " van ",
|
|
40
|
+
"DEPOSIT_TEXT4": " wordt op ",
|
|
41
|
+
"DEPOSIT_TEXT5": "stap 3 (\"overzicht\")",
|
|
42
|
+
"DEPOSIT_TEXT6": " in het boekingsproces beschreven.",
|
|
43
|
+
"LUGGAGE_INCLUDED": "Inclusief bagage",
|
|
44
|
+
"DEPARTURE_FLIGHT": "Vlucht heenreis",
|
|
45
|
+
"ARRIVAL_FLIGHT": "Vlucht terugreis",
|
|
46
|
+
"FLIGHT_DEPARTURE": "Vertrek",
|
|
47
|
+
"FLIGHT_ARRIVAL": "Aankomst",
|
|
48
|
+
"ON_REQUEST": "Op aanvraag",
|
|
49
|
+
"CHANGES": "overstappen"
|
|
50
|
+
},
|
|
2
51
|
"TRAVELERS_FORM": {
|
|
3
52
|
"PERSONS": "Personen",
|
|
4
|
-
"TRAVELER_COUNT": "Aantal volwassenen",
|
|
5
53
|
"TRAVELER": "Reiziger",
|
|
6
54
|
"ADULT": "volwassene",
|
|
7
55
|
"ADULTS": "volwassenen",
|
|
8
56
|
"CHILD": "kind",
|
|
9
57
|
"CHILDREN": "kinderen",
|
|
10
58
|
"GENDER": "Aanspreking",
|
|
11
|
-
"MALE": "
|
|
12
|
-
"FEMALE": "
|
|
59
|
+
"MALE": "Meneer",
|
|
60
|
+
"FEMALE": "Mevrouw",
|
|
13
61
|
"OTHER": "Anders",
|
|
14
62
|
"MAIN_BOOKER": "Hoofdboeker",
|
|
15
63
|
"FIRST_NAME": "Voornaam",
|
|
16
64
|
"LAST_NAME": "Naam",
|
|
17
65
|
"BIRTHDATE": "Geboortedatum",
|
|
18
|
-
"STREET": "
|
|
66
|
+
"STREET": "Straat",
|
|
67
|
+
"STREET_PLACEHOLDER": "Jouw straat",
|
|
19
68
|
"HOUSE_NUMBER": "Huisnr",
|
|
20
69
|
"POST_BOX": "Bus",
|
|
21
70
|
"ZIPCODE": "Postcode",
|
|
22
71
|
"CITY": "Plaats",
|
|
72
|
+
"CITY_PLACEHOLDER": "Plaats",
|
|
23
73
|
"COUNTRY": "Land",
|
|
24
74
|
"SELECT_COUNTRY": "Selecteer land",
|
|
25
75
|
"PHONE": "Telefoonnummer",
|
|
26
76
|
"EMAIL": "E-mail",
|
|
27
77
|
"REPEAT_EMAIL": "Herhaal e-mail",
|
|
28
|
-
"VALIDATION_MESSAGE": "Controleer onderstaande velden in het formulier en vul deze correct in"
|
|
78
|
+
"VALIDATION_MESSAGE": "Controleer onderstaande velden in het formulier en vul deze correct in."
|
|
29
79
|
},
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
80
|
+
"OPTIONS_FORM": {
|
|
81
|
+
"NO_OPTIONS_TITLE": "Geen opties",
|
|
82
|
+
"NO_OPTIONS_MESSAGE": "Deze reis heeft geen bijkomende opties.",
|
|
83
|
+
"UNIT_TITLE": "Gezelschap",
|
|
84
|
+
"PACKAGE": "Pakket",
|
|
85
|
+
"DAY": "dag",
|
|
86
|
+
"DAYS": "dagen",
|
|
87
|
+
"NIGHT": "nacht",
|
|
88
|
+
"NIGHTS": "nachten",
|
|
89
|
+
"PER_PAX_TITLE": "Per reiziger samenstellen",
|
|
90
|
+
"PER_BOOKING_TITLE": "Per dossier samenstellen",
|
|
91
|
+
"PER_UNIT_TITLE": "Per gezelschap samenstellen",
|
|
92
|
+
"NONE": "Geen"
|
|
39
93
|
},
|
|
40
94
|
"SUMMARY": {
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"SLIDE_DEPOSIT": "Te betalen voorschot: ",
|
|
60
|
-
"TRAVEL_INFO": "Persoonlijke gegevens",
|
|
61
|
-
"TRAVELERS": "Personen",
|
|
62
|
-
"TRAVELERS_ADULTS": "volw.",
|
|
63
|
-
"TRAVELERS_CHILDREN": "kind.",
|
|
64
|
-
"DEPARTURE": "Vertrek",
|
|
65
|
-
"ARRIVAL": "Retour",
|
|
66
|
-
"FLIGHT": "Vlucht",
|
|
67
|
-
"ACCOMMODATION": "Verblijf",
|
|
68
|
-
"BASE_PRICE": "Basisprijs",
|
|
69
|
-
"OPTIONS": "Reisopties",
|
|
70
|
-
"INCLUDED_COSTS": "Inbegrepen",
|
|
71
|
-
"EXTRA_COSTS": "Bijkomende kosten",
|
|
72
|
-
"TOTAL_PRICE": "Totaalbedrag",
|
|
73
|
-
"DEPOSIT": "Te betalen voorschot",
|
|
74
|
-
"DEPOSIT_TEXT1": "De te nemen stappen voor het ",
|
|
75
|
-
"DEPOSIT_TEXT2": "restbedrag",
|
|
76
|
-
"DEPOSIT_TEXT3": " van ",
|
|
77
|
-
"DEPOSIT_TEXT4": " wordt op ",
|
|
78
|
-
"DEPOSIT_TEXT5": "stap 3 (\"overzicht\")",
|
|
79
|
-
"DEPOSIT_TEXT6": " in het boekingsproces beschreven."
|
|
95
|
+
"PERSONAL_DETAILS": "Persoonlijke gegevens",
|
|
96
|
+
"TRAVELERS": "reizigers",
|
|
97
|
+
"TRAVELER": "reiziger",
|
|
98
|
+
"ADULTS": "volwassenen",
|
|
99
|
+
"ADULT": "volwassene",
|
|
100
|
+
"CHILDREN": "kinderen",
|
|
101
|
+
"CHILD": "kind",
|
|
102
|
+
"MAIN_BOOKER": "Hoofdboeker",
|
|
103
|
+
"NOTIFICATIONS_TITLE": "Aandacht",
|
|
104
|
+
"VALIDATE_TITLE": "Controleer je gegevens",
|
|
105
|
+
"VALIDATE_TEXT": "Je staat op het punt je boeking te bevestigen. Contoleer of alle gegevens correct zijn. Deze zijn definitief en niet meer aanpasbaar.",
|
|
106
|
+
"OPTIONS": "Opties",
|
|
107
|
+
"REMARKS": "Opmerkingen",
|
|
108
|
+
"VOUCHERS": "Vouchers",
|
|
109
|
+
"VOUCHER_VALIDATE": "Valideer voucher",
|
|
110
|
+
"ADD_VOUCHER": "Voucher toevoegen",
|
|
111
|
+
"VOUCHER_VALID": "Voucher is geldig",
|
|
112
|
+
"VOUCHER_INVALID": "Voucher is niet geldig"
|
|
80
113
|
},
|
|
81
114
|
"CONFIRMATION": {
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
115
|
+
"TITLE_TEXT1": "Je boeking met nummer ",
|
|
116
|
+
"TITLE_TEXT2": " is bevestigd",
|
|
117
|
+
"MESSAGE_TEXT1": "Jouw droomreis komt nu heel dichtbij.",
|
|
118
|
+
"MESSAGE_TEXT2": "Onze reisspecialisten verwerken je reservatie en nemen ",
|
|
119
|
+
"MESSAGE_TEXT3": "binnen de 48u",
|
|
120
|
+
"MESSAGE_TEXT4": " contact met je op.",
|
|
121
|
+
"QUESTIONS_TEXT1": "Heb je nog vragen? ",
|
|
122
|
+
"QUESTIONS_TEXT2": "Laat het ons weten",
|
|
89
123
|
"QUESTIONS_TEXT3": ".",
|
|
90
124
|
"QUESTIONS_ALT": "Contacteer ons"
|
|
91
125
|
},
|
|
@@ -93,7 +127,7 @@
|
|
|
93
127
|
"TRY_AGAIN": "Probeer opnieuw te boeken",
|
|
94
128
|
"MESSAGE_TEXT1": "Tijdens het bevestigen van uw reis is er iets misgelopen.",
|
|
95
129
|
"MESSAGE_TEXT2": "Klik hieronder om nog eens te proberen.",
|
|
96
|
-
"ERROR_TEXT1": "Blijft het misgaan?",
|
|
130
|
+
"ERROR_TEXT1": "Blijft het misgaan? ",
|
|
97
131
|
"ERROR_TEXT2": "Laat het ons dan zeker weten",
|
|
98
132
|
"ERROR_TEXT3": ".",
|
|
99
133
|
"ERROR_ALT": "Contacteer ons"
|
|
@@ -1,32 +1,81 @@
|
|
|
1
1
|
export interface Settings {
|
|
2
2
|
officeId: number;
|
|
3
|
+
bookingOptions: BookingOptions;
|
|
3
4
|
productPath: string;
|
|
4
5
|
basePath: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
options: {
|
|
7
|
+
pathSuffix: string;
|
|
8
|
+
};
|
|
9
|
+
summary: {
|
|
10
|
+
pathSuffix: string;
|
|
11
|
+
checkboxes?: SummaryCheckbox[] | null;
|
|
12
|
+
};
|
|
13
|
+
confirmation: {
|
|
14
|
+
pathSuffix: string;
|
|
15
|
+
};
|
|
16
|
+
error: {
|
|
17
|
+
pathSuffix: string;
|
|
18
|
+
};
|
|
19
|
+
language: string;
|
|
20
|
+
currency: string;
|
|
21
|
+
includeFlights?: boolean;
|
|
22
|
+
generatePaymentUrl?: boolean;
|
|
23
|
+
skipPaymentWithAgent?: boolean;
|
|
9
24
|
companyContactEmail: string;
|
|
25
|
+
companyContactPhone: string;
|
|
10
26
|
showProductCardRating: boolean;
|
|
11
|
-
showSidebarAccommodationInfo: boolean;
|
|
12
27
|
showSidebarDeposit: boolean;
|
|
13
28
|
sidebarHeaderComponent?: JSX.Element | null;
|
|
14
29
|
sidebarFooterComponent?: JSX.Element | null;
|
|
30
|
+
loaderComponent?: JSX.Element | null;
|
|
15
31
|
icons?: string | null;
|
|
32
|
+
tagIds?: number[];
|
|
33
|
+
agentRequired?: boolean;
|
|
34
|
+
hideAgentSelection?: boolean;
|
|
35
|
+
agentAdressId?: number;
|
|
36
|
+
affiliateSlug?: string;
|
|
37
|
+
enableVoucher?: boolean;
|
|
16
38
|
}
|
|
17
39
|
|
|
18
|
-
export interface
|
|
40
|
+
export interface BookingOptions {
|
|
41
|
+
b2b: BookingOptionsDetail;
|
|
42
|
+
b2b2c: BookingOptionsDetail;
|
|
43
|
+
b2c: BookingOptionsDetail;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export interface BookingOptionsDetail {
|
|
47
|
+
entryStatus: number;
|
|
48
|
+
customEntryStatusId?: number;
|
|
49
|
+
tagIds?: number[];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface SummaryCheckbox {
|
|
19
53
|
id: string;
|
|
54
|
+
text: string;
|
|
55
|
+
isSelected: boolean;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export interface Traveler {
|
|
59
|
+
id: number;
|
|
20
60
|
gender: string;
|
|
21
61
|
firstName: string;
|
|
22
62
|
lastName: string;
|
|
23
63
|
birthDate: string;
|
|
24
64
|
}
|
|
25
65
|
|
|
66
|
+
export interface Room {
|
|
67
|
+
adults: number;
|
|
68
|
+
children: number;
|
|
69
|
+
childAges: number[];
|
|
70
|
+
accommodationCode?: string;
|
|
71
|
+
regimeCode?: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
26
74
|
export interface TravelersFormValues {
|
|
75
|
+
startDate?: string;
|
|
27
76
|
adults: Traveler[];
|
|
28
77
|
children: Traveler[];
|
|
29
|
-
mainBookerId:
|
|
78
|
+
mainBookerId: number;
|
|
30
79
|
street: string;
|
|
31
80
|
houseNumber: string;
|
|
32
81
|
box: string;
|
|
@@ -36,27 +85,35 @@ export interface TravelersFormValues {
|
|
|
36
85
|
phone: string;
|
|
37
86
|
email: string;
|
|
38
87
|
emailConfirmation: string;
|
|
88
|
+
travelAgentId: number;
|
|
89
|
+
travelAgentName: string;
|
|
39
90
|
}
|
|
40
91
|
|
|
41
92
|
export interface ProductAttributes {
|
|
42
|
-
|
|
93
|
+
productCode: string;
|
|
94
|
+
productName: string;
|
|
43
95
|
}
|
|
44
96
|
|
|
45
97
|
export interface BookingAttributes {
|
|
46
98
|
startDate: string;
|
|
47
99
|
endDate: string;
|
|
48
|
-
accommodation: string;
|
|
49
|
-
regime: string;
|
|
50
100
|
catalog: number;
|
|
101
|
+
rooms: Room[];
|
|
102
|
+
tourCode: string | null;
|
|
103
|
+
allotmentName: string | null;
|
|
104
|
+
allotmentIds: number[];
|
|
105
|
+
includeFlights?: boolean;
|
|
51
106
|
}
|
|
52
107
|
|
|
53
108
|
export interface FlightLine {
|
|
54
109
|
departureAirportIata?: string;
|
|
55
110
|
departureAirportDescription?: string;
|
|
56
111
|
departureDate?: string;
|
|
112
|
+
departureTime?: string;
|
|
57
113
|
arrivalAirportIata?: string;
|
|
58
114
|
arrivalAirportDescription?: string;
|
|
59
115
|
arrivalDate?: string;
|
|
116
|
+
arrivalTime?: string;
|
|
60
117
|
airlineIata?: string;
|
|
61
118
|
airlineDescription?: string;
|
|
62
119
|
airlineNumber?: string;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import JsonURL from "@jsonurl/jsonurl";
|
|
2
|
+
import { isArray, isNil } from "lodash";
|
|
3
|
+
import { Room } from "../types";
|
|
4
|
+
|
|
1
5
|
export const getDateFromParams = (
|
|
2
6
|
params: URLSearchParams,
|
|
3
7
|
name: string
|
|
@@ -27,3 +31,41 @@ export const getNumberFromParams = (
|
|
|
27
31
|
|
|
28
32
|
return parseInt(numberString);
|
|
29
33
|
};
|
|
34
|
+
|
|
35
|
+
export const getRoomsFromParams = (
|
|
36
|
+
params: URLSearchParams,
|
|
37
|
+
name: string
|
|
38
|
+
): Room[] | null => {
|
|
39
|
+
const roomString = params.get(name);
|
|
40
|
+
|
|
41
|
+
if (roomString === null) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const rooms = JsonURL.parse(roomString) as Room[] | undefined;
|
|
46
|
+
|
|
47
|
+
if (isNil(rooms)) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return rooms.map((room) => {
|
|
52
|
+
if (!isArray(room.childAges)) room.childAges = [];
|
|
53
|
+
room.children = room.childAges.length ?? 0;
|
|
54
|
+
return room;
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const getStringFromParams = (
|
|
59
|
+
params: URLSearchParams,
|
|
60
|
+
name: string
|
|
61
|
+
): string | null => {
|
|
62
|
+
return params.get(name);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const getNumbersFromParams = (
|
|
66
|
+
params: URLSearchParams,
|
|
67
|
+
name: string
|
|
68
|
+
): number[] => {
|
|
69
|
+
const numberStrings = params.getAll(name);
|
|
70
|
+
return numberStrings.map((x) => parseInt(x));
|
|
71
|
+
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface CheckboxProps {
|
|
3
|
-
text: string;
|
|
4
|
-
value: string;
|
|
5
|
-
name: string;
|
|
6
|
-
required: boolean;
|
|
7
|
-
defaultChecked: boolean;
|
|
8
|
-
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
9
|
-
}
|
|
10
|
-
declare const Checkbox: React.FC<CheckboxProps>;
|
|
11
|
-
export default Checkbox;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface OptionDetailsProps {
|
|
3
|
-
startDate?: Date;
|
|
4
|
-
endDate?: Date;
|
|
5
|
-
price?: number;
|
|
6
|
-
isCollapsible?: boolean;
|
|
7
|
-
collapsed?: boolean;
|
|
8
|
-
onToggleCollapse?: (collapsed: boolean) => void;
|
|
9
|
-
}
|
|
10
|
-
declare const OptionDetails: React.FC<OptionDetailsProps>;
|
|
11
|
-
export default OptionDetails;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { PackageOption, PackageRoom } from "@qite/tide-client";
|
|
2
|
-
export interface ProductOptionsRequest {
|
|
3
|
-
officeId: number;
|
|
4
|
-
catalogId: number;
|
|
5
|
-
productId: number;
|
|
6
|
-
accommodationCode?: string;
|
|
7
|
-
regimeCode?: string;
|
|
8
|
-
startDate: Date;
|
|
9
|
-
endDate: Date;
|
|
10
|
-
adultCount: number;
|
|
11
|
-
childCount: number;
|
|
12
|
-
}
|
|
13
|
-
export interface ProductOptionsResult {
|
|
14
|
-
productOptions?: ProductOption[];
|
|
15
|
-
rooms?: PackageRoom[];
|
|
16
|
-
cacheKey?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface ProductOption extends Omit<PackageOption, "options" | "fromDate" | "toDate"> {
|
|
19
|
-
parentCode: string;
|
|
20
|
-
fromDate: string;
|
|
21
|
-
toDate: string;
|
|
22
|
-
}
|
|
23
|
-
declare const productOptionsApi: {
|
|
24
|
-
fetchProductOptions: (request: ProductOptionsRequest) => Promise<ProductOptionsResult | undefined>;
|
|
25
|
-
};
|
|
26
|
-
export default productOptionsApi;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ProductOption } from "./product-options-api";
|
|
2
|
-
export declare const fetchProductOptions: import("@reduxjs/toolkit").AsyncThunk<import("./product-options-api").ProductOptionsResult | undefined, void, {}>;
|
|
3
|
-
export declare const selectOptions: (state: {
|
|
4
|
-
booking: import("../booking/booking-slice").BookingState;
|
|
5
|
-
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
6
|
-
productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
|
|
7
|
-
priceDetails: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PriceDetail>;
|
|
8
|
-
rooms: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PackageRoom>;
|
|
9
|
-
summary: import("../summary/summary-slice").SummaryState;
|
|
10
|
-
}) => ProductOption[];
|
|
11
|
-
export declare const selectSelectedOptions: import("reselect").OutputSelector<{
|
|
12
|
-
booking: import("../booking/booking-slice").BookingState;
|
|
13
|
-
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
14
|
-
productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
|
|
15
|
-
priceDetails: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PriceDetail>;
|
|
16
|
-
rooms: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PackageRoom>;
|
|
17
|
-
summary: import("../summary/summary-slice").SummaryState;
|
|
18
|
-
}, ProductOption[], (res: ProductOption[]) => ProductOption[]>;
|
|
19
|
-
export declare const selectDepartureFlight: import("reselect").OutputSelector<{
|
|
20
|
-
booking: import("../booking/booking-slice").BookingState;
|
|
21
|
-
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
22
|
-
productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
|
|
23
|
-
priceDetails: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PriceDetail>;
|
|
24
|
-
rooms: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PackageRoom>;
|
|
25
|
-
summary: import("../summary/summary-slice").SummaryState;
|
|
26
|
-
}, ProductOption | undefined, (res: ProductOption[]) => ProductOption | undefined>;
|
|
27
|
-
export declare const selectReturnFlight: import("reselect").OutputSelector<{
|
|
28
|
-
booking: import("../booking/booking-slice").BookingState;
|
|
29
|
-
travelersForm: import("../travelers-form/travelers-form-slice").TravelersFormState;
|
|
30
|
-
productOptions: import("@reduxjs/toolkit").EntityState<ProductOption>;
|
|
31
|
-
priceDetails: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PriceDetail>;
|
|
32
|
-
rooms: import("@reduxjs/toolkit").EntityState<import("@qite/tide-client").PackageRoom>;
|
|
33
|
-
summary: import("../summary/summary-slice").SummaryState;
|
|
34
|
-
}, ProductOption | undefined, (res: ProductOption[]) => ProductOption | undefined>;
|
|
35
|
-
export declare const updateOption: import("@reduxjs/toolkit").ActionCreatorWithPayload<ProductOption, string>;
|
|
36
|
-
declare const _default: import("redux").Reducer<import("@reduxjs/toolkit").EntityState<ProductOption>, import("redux").AnyAction>;
|
|
37
|
-
export default _default;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
interface RadioButtonProps {
|
|
3
|
-
text: string;
|
|
4
|
-
name: string;
|
|
5
|
-
value: string;
|
|
6
|
-
defaultChecked?: boolean;
|
|
7
|
-
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
8
|
-
}
|
|
9
|
-
declare const RadioButton: React.FC<RadioButtonProps>;
|
|
10
|
-
export default RadioButton;
|