@qite/tide-booking-component 1.3.3 → 1.3.5

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.
Files changed (199) hide show
  1. package/build/build-cjs/booking-product/components/age-select.d.ts +8 -8
  2. package/build/build-cjs/booking-product/components/amount-input.d.ts +10 -10
  3. package/build/build-cjs/booking-product/components/date-range-picker/calendar-day.d.ts +12 -12
  4. package/build/build-cjs/booking-product/components/date-range-picker/calendar.d.ts +19 -19
  5. package/build/build-cjs/booking-product/components/date-range-picker/index.d.ts +23 -20
  6. package/build/build-cjs/booking-product/components/dates.d.ts +9 -9
  7. package/build/build-cjs/booking-product/components/footer.d.ts +10 -10
  8. package/build/build-cjs/booking-product/components/header.d.ts +11 -11
  9. package/build/build-cjs/booking-product/components/icon.d.ts +10 -10
  10. package/build/build-cjs/booking-product/components/product.d.ts +9 -9
  11. package/build/build-cjs/booking-product/components/rating.d.ts +6 -6
  12. package/build/build-cjs/booking-product/components/rooms.d.ts +10 -10
  13. package/build/build-cjs/booking-product/index.d.ts +10 -10
  14. package/build/build-cjs/booking-product/settings-context.d.ts +6 -5
  15. package/build/build-cjs/booking-product/types.d.ts +25 -25
  16. package/build/build-cjs/booking-product/utils/api.d.ts +6 -16
  17. package/build/build-cjs/booking-product/utils/price.d.ts +1 -9
  18. package/build/build-cjs/booking-wizard/api-settings-slice.d.ts +4 -14
  19. package/build/build-cjs/booking-wizard/components/icon.d.ts +10 -10
  20. package/build/build-cjs/booking-wizard/components/labeled-input.d.ts +18 -18
  21. package/build/build-cjs/booking-wizard/components/labeled-select.d.ts +21 -21
  22. package/build/build-cjs/booking-wizard/components/message.d.ts +9 -9
  23. package/build/build-cjs/booking-wizard/components/multi-range-filter.d.ts +11 -11
  24. package/build/build-cjs/booking-wizard/components/print-offer-button.d.ts +17 -17
  25. package/build/build-cjs/booking-wizard/components/product-card.d.ts +8 -8
  26. package/build/build-cjs/booking-wizard/components/step-indicator.d.ts +6 -6
  27. package/build/build-cjs/booking-wizard/components/step-route.d.ts +9 -9
  28. package/build/build-cjs/booking-wizard/features/booking/api.d.ts +10 -29
  29. package/build/build-cjs/booking-wizard/features/booking/booking-self-contained.d.ts +8 -8
  30. package/build/build-cjs/booking-wizard/features/booking/booking-slice.d.ts +46 -177
  31. package/build/build-cjs/booking-wizard/features/booking/booking.d.ts +8 -8
  32. package/build/build-cjs/booking-wizard/features/booking/constants.d.ts +8 -15
  33. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +136 -308
  34. package/build/build-cjs/booking-wizard/features/confirmation/confirmation.d.ts +5 -4
  35. package/build/build-cjs/booking-wizard/features/error/error.d.ts +5 -4
  36. package/build/build-cjs/booking-wizard/features/flight-options/flight-filter.d.ts +9 -9
  37. package/build/build-cjs/booking-wizard/features/flight-options/flight-option-flight.d.ts +8 -8
  38. package/build/build-cjs/booking-wizard/features/flight-options/flight-option-modal.d.ts +3 -3
  39. package/build/build-cjs/booking-wizard/features/flight-options/flight-option.d.ts +10 -10
  40. package/build/build-cjs/booking-wizard/features/flight-options/flight-utils.d.ts +6 -16
  41. package/build/build-cjs/booking-wizard/features/flight-options/index.d.ts +5 -4
  42. package/build/build-cjs/booking-wizard/features/price-details/price-details-api.d.ts +6 -15
  43. package/build/build-cjs/booking-wizard/features/price-details/price-details-slice.d.ts +80 -121
  44. package/build/build-cjs/booking-wizard/features/price-details/util.d.ts +2 -5
  45. package/build/build-cjs/booking-wizard/features/product-options/no-options.d.ts +3 -3
  46. package/build/build-cjs/booking-wizard/features/product-options/none-option.d.ts +9 -17
  47. package/build/build-cjs/booking-wizard/features/product-options/option-booking-airline-group.d.ts +8 -17
  48. package/build/build-cjs/booking-wizard/features/product-options/option-booking-group.d.ts +12 -18
  49. package/build/build-cjs/booking-wizard/features/product-options/option-item.d.ts +11 -11
  50. package/build/build-cjs/booking-wizard/features/product-options/option-pax-card.d.ts +10 -13
  51. package/build/build-cjs/booking-wizard/features/product-options/option-pax-group.d.ts +13 -20
  52. package/build/build-cjs/booking-wizard/features/product-options/option-room.d.ts +10 -18
  53. package/build/build-cjs/booking-wizard/features/product-options/option-unit-group.d.ts +13 -20
  54. package/build/build-cjs/booking-wizard/features/product-options/option-units-card.d.ts +9 -9
  55. package/build/build-cjs/booking-wizard/features/product-options/options-form.d.ts +5 -4
  56. package/build/build-cjs/booking-wizard/features/room-options/index.d.ts +5 -4
  57. package/build/build-cjs/booking-wizard/features/room-options/room-utils.d.ts +9 -29
  58. package/build/build-cjs/booking-wizard/features/room-options/room.d.ts +12 -15
  59. package/build/build-cjs/booking-wizard/features/room-options/traveler-rooms.d.ts +9 -13
  60. package/build/build-cjs/booking-wizard/features/sidebar/index.d.ts +7 -7
  61. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -8
  62. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-util.d.ts +12 -31
  63. package/build/build-cjs/booking-wizard/features/sidebar/sidebar.d.ts +25 -29
  64. package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -7
  65. package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -7
  66. package/build/build-cjs/booking-wizard/features/summary/summary-flight.d.ts +8 -8
  67. package/build/build-cjs/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +7 -10
  68. package/build/build-cjs/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +7 -10
  69. package/build/build-cjs/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +7 -10
  70. package/build/build-cjs/booking-wizard/features/summary/summary-slice.d.ts +8 -14
  71. package/build/build-cjs/booking-wizard/features/summary/summary.d.ts +5 -4
  72. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +49 -75
  73. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form.d.ts +5 -4
  74. package/build/build-cjs/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -16
  75. package/build/build-cjs/booking-wizard/features/travelers-form/validate-form.d.ts +4 -9
  76. package/build/build-cjs/booking-wizard/index.d.ts +12 -12
  77. package/build/build-cjs/booking-wizard/settings-context.d.ts +6 -5
  78. package/build/build-cjs/booking-wizard/store.d.ts +24 -44
  79. package/build/build-cjs/booking-wizard/types.d.ts +259 -253
  80. package/build/build-cjs/booking-wizard/use-offer-printer.d.ts +13 -19
  81. package/build/build-cjs/index.d.ts +3 -3
  82. package/build/build-cjs/index.js +7439 -16324
  83. package/build/build-cjs/shared/components/loader.d.ts +6 -6
  84. package/build/build-cjs/shared/types.d.ts +4 -4
  85. package/build/build-cjs/shared/utils/class-util.d.ts +1 -1
  86. package/build/build-cjs/shared/utils/localization-util.d.ts +250 -248
  87. package/build/build-cjs/shared/utils/query-string-util.d.ts +8 -29
  88. package/build/build-cjs/shared/utils/tide-api-utils.d.ts +4 -6
  89. package/build/build-esm/booking-product/components/age-select.d.ts +8 -8
  90. package/build/build-esm/booking-product/components/amount-input.d.ts +10 -10
  91. package/build/build-esm/booking-product/components/date-range-picker/calendar-day.d.ts +12 -12
  92. package/build/build-esm/booking-product/components/date-range-picker/calendar.d.ts +19 -19
  93. package/build/build-esm/booking-product/components/date-range-picker/index.d.ts +23 -20
  94. package/build/build-esm/booking-product/components/dates.d.ts +9 -9
  95. package/build/build-esm/booking-product/components/footer.d.ts +10 -10
  96. package/build/build-esm/booking-product/components/header.d.ts +11 -11
  97. package/build/build-esm/booking-product/components/icon.d.ts +10 -10
  98. package/build/build-esm/booking-product/components/product.d.ts +9 -9
  99. package/build/build-esm/booking-product/components/rating.d.ts +6 -6
  100. package/build/build-esm/booking-product/components/rooms.d.ts +10 -10
  101. package/build/build-esm/booking-product/index.d.ts +10 -10
  102. package/build/build-esm/booking-product/settings-context.d.ts +6 -5
  103. package/build/build-esm/booking-product/types.d.ts +25 -25
  104. package/build/build-esm/booking-product/utils/api.d.ts +6 -16
  105. package/build/build-esm/booking-product/utils/price.d.ts +1 -9
  106. package/build/build-esm/booking-wizard/api-settings-slice.d.ts +4 -14
  107. package/build/build-esm/booking-wizard/components/icon.d.ts +10 -10
  108. package/build/build-esm/booking-wizard/components/labeled-input.d.ts +18 -18
  109. package/build/build-esm/booking-wizard/components/labeled-select.d.ts +21 -21
  110. package/build/build-esm/booking-wizard/components/message.d.ts +9 -9
  111. package/build/build-esm/booking-wizard/components/multi-range-filter.d.ts +11 -11
  112. package/build/build-esm/booking-wizard/components/print-offer-button.d.ts +17 -17
  113. package/build/build-esm/booking-wizard/components/product-card.d.ts +8 -8
  114. package/build/build-esm/booking-wizard/components/step-indicator.d.ts +6 -6
  115. package/build/build-esm/booking-wizard/components/step-route.d.ts +9 -9
  116. package/build/build-esm/booking-wizard/features/booking/api.d.ts +10 -29
  117. package/build/build-esm/booking-wizard/features/booking/booking-self-contained.d.ts +8 -8
  118. package/build/build-esm/booking-wizard/features/booking/booking-slice.d.ts +46 -177
  119. package/build/build-esm/booking-wizard/features/booking/booking.d.ts +8 -8
  120. package/build/build-esm/booking-wizard/features/booking/constants.d.ts +8 -15
  121. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +136 -308
  122. package/build/build-esm/booking-wizard/features/confirmation/confirmation.d.ts +5 -4
  123. package/build/build-esm/booking-wizard/features/error/error.d.ts +5 -4
  124. package/build/build-esm/booking-wizard/features/flight-options/flight-filter.d.ts +9 -9
  125. package/build/build-esm/booking-wizard/features/flight-options/flight-option-flight.d.ts +8 -8
  126. package/build/build-esm/booking-wizard/features/flight-options/flight-option-modal.d.ts +3 -3
  127. package/build/build-esm/booking-wizard/features/flight-options/flight-option.d.ts +10 -10
  128. package/build/build-esm/booking-wizard/features/flight-options/flight-utils.d.ts +6 -16
  129. package/build/build-esm/booking-wizard/features/flight-options/index.d.ts +5 -4
  130. package/build/build-esm/booking-wizard/features/price-details/price-details-api.d.ts +6 -15
  131. package/build/build-esm/booking-wizard/features/price-details/price-details-slice.d.ts +80 -121
  132. package/build/build-esm/booking-wizard/features/price-details/util.d.ts +2 -5
  133. package/build/build-esm/booking-wizard/features/product-options/no-options.d.ts +3 -3
  134. package/build/build-esm/booking-wizard/features/product-options/none-option.d.ts +9 -17
  135. package/build/build-esm/booking-wizard/features/product-options/option-booking-airline-group.d.ts +8 -17
  136. package/build/build-esm/booking-wizard/features/product-options/option-booking-group.d.ts +12 -18
  137. package/build/build-esm/booking-wizard/features/product-options/option-item.d.ts +11 -11
  138. package/build/build-esm/booking-wizard/features/product-options/option-pax-card.d.ts +10 -13
  139. package/build/build-esm/booking-wizard/features/product-options/option-pax-group.d.ts +13 -20
  140. package/build/build-esm/booking-wizard/features/product-options/option-room.d.ts +10 -18
  141. package/build/build-esm/booking-wizard/features/product-options/option-unit-group.d.ts +13 -20
  142. package/build/build-esm/booking-wizard/features/product-options/option-units-card.d.ts +9 -9
  143. package/build/build-esm/booking-wizard/features/product-options/options-form.d.ts +5 -4
  144. package/build/build-esm/booking-wizard/features/room-options/index.d.ts +5 -4
  145. package/build/build-esm/booking-wizard/features/room-options/room-utils.d.ts +9 -29
  146. package/build/build-esm/booking-wizard/features/room-options/room.d.ts +12 -15
  147. package/build/build-esm/booking-wizard/features/room-options/traveler-rooms.d.ts +9 -13
  148. package/build/build-esm/booking-wizard/features/sidebar/index.d.ts +7 -7
  149. package/build/build-esm/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -8
  150. package/build/build-esm/booking-wizard/features/sidebar/sidebar-util.d.ts +12 -31
  151. package/build/build-esm/booking-wizard/features/sidebar/sidebar.d.ts +25 -29
  152. package/build/build-esm/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -7
  153. package/build/build-esm/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -7
  154. package/build/build-esm/booking-wizard/features/summary/summary-flight.d.ts +8 -8
  155. package/build/build-esm/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +7 -10
  156. package/build/build-esm/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +7 -10
  157. package/build/build-esm/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +7 -10
  158. package/build/build-esm/booking-wizard/features/summary/summary-slice.d.ts +8 -14
  159. package/build/build-esm/booking-wizard/features/summary/summary.d.ts +5 -4
  160. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +49 -75
  161. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form.d.ts +5 -4
  162. package/build/build-esm/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -16
  163. package/build/build-esm/booking-wizard/features/travelers-form/validate-form.d.ts +4 -9
  164. package/build/build-esm/booking-wizard/index.d.ts +12 -12
  165. package/build/build-esm/booking-wizard/settings-context.d.ts +6 -5
  166. package/build/build-esm/booking-wizard/store.d.ts +24 -44
  167. package/build/build-esm/booking-wizard/types.d.ts +259 -253
  168. package/build/build-esm/booking-wizard/use-offer-printer.d.ts +13 -19
  169. package/build/build-esm/index.d.ts +3 -3
  170. package/build/build-esm/index.js +7427 -15924
  171. package/build/build-esm/shared/components/loader.d.ts +6 -6
  172. package/build/build-esm/shared/types.d.ts +4 -4
  173. package/build/build-esm/shared/utils/class-util.d.ts +1 -1
  174. package/build/build-esm/shared/utils/localization-util.d.ts +250 -248
  175. package/build/build-esm/shared/utils/query-string-util.d.ts +8 -29
  176. package/build/build-esm/shared/utils/tide-api-utils.d.ts +4 -6
  177. package/package.json +75 -75
  178. package/src/booking-wizard/components/print-offer-button.tsx +63 -63
  179. package/src/booking-wizard/features/booking/booking-self-contained.tsx +389 -389
  180. package/src/booking-wizard/features/booking/booking-slice.ts +663 -665
  181. package/src/booking-wizard/features/booking/booking.tsx +361 -361
  182. package/src/booking-wizard/features/flight-options/flight-utils.ts +522 -516
  183. package/src/booking-wizard/features/product-options/options-form.tsx +481 -481
  184. package/src/booking-wizard/features/sidebar/sidebar-util.ts +177 -177
  185. package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +25 -25
  186. package/src/booking-wizard/features/summary/summary.tsx +674 -674
  187. package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +164 -164
  188. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +888 -754
  189. package/src/booking-wizard/settings-context.ts +62 -62
  190. package/src/booking-wizard/types.ts +286 -279
  191. package/src/booking-wizard/use-offer-printer.ts +117 -117
  192. package/src/shared/translations/en-GB.json +239 -237
  193. package/src/shared/translations/fr-BE.json +239 -238
  194. package/src/shared/translations/nl-BE.json +239 -237
  195. package/src/shared/utils/tide-api-utils.ts +36 -36
  196. package/styles/booking-wizard-variables.scss +873 -873
  197. package/styles/components/_booking.scss +879 -879
  198. package/styles/components/_dropdown.scss +72 -72
  199. package/styles/components/_form.scss +1583 -1583
@@ -1,164 +1,164 @@
1
- import { PayloadAction, createSelector, createSlice } from "@reduxjs/toolkit";
2
- import { differenceInYears } from "date-fns";
3
-
4
- import { RootState } from "../../store";
5
- import { TravelersFormValues } from "../../types";
6
-
7
- export interface TravelersFormState {
8
- formValues?: TravelersFormValues;
9
- }
10
-
11
- export const CHILD_MAX_AGE = 17;
12
- const isDebug = false;
13
-
14
- const debugFormValues = {
15
- rooms: [
16
- {
17
- adults: [
18
- {
19
- id: 1,
20
- firstName: "Jan",
21
- lastName: "Jansens",
22
- birthDate: "1984-05-20",
23
- gender: "m",
24
- },
25
- {
26
- id: 2,
27
- firstName: "Leen",
28
- lastName: "Leenders",
29
- birthDate: "1986-08-09",
30
- gender: "f",
31
- },
32
- ],
33
- // children: [
34
- // {
35
- // id: "3",
36
- // firstName: "Jonas",
37
- // lastName: "Jansens",
38
- // birthDate: "2015-06-14",
39
- // gender: "m",
40
- // },
41
- // {
42
- // id: "4",
43
- // firstName: "Janne",
44
- // lastName: "Jansens",
45
- // birthDate: "2016-03-19",
46
- // gender: "f",
47
- // },
48
- // ],
49
- children: [],
50
- },
51
- {
52
- adults: [
53
- {
54
- id: 3,
55
- firstName: "Jan",
56
- lastName: "Jansens",
57
- birthDate: "1984-05-20",
58
- gender: "m",
59
- },
60
- {
61
- id: 4,
62
- firstName: "Leen",
63
- lastName: "Leenders",
64
- birthDate: "1986-08-09",
65
- gender: "f",
66
- },
67
- ],
68
- // children: [
69
- // {
70
- // id: "3",
71
- // firstName: "Jonas",
72
- // lastName: "Jansens",
73
- // birthDate: "2015-06-14",
74
- // gender: "m",
75
- // },
76
- // {
77
- // id: "4",
78
- // firstName: "Janne",
79
- // lastName: "Jansens",
80
- // birthDate: "2016-03-19",
81
- // gender: "f",
82
- // },
83
- // ],
84
- children: [],
85
- },
86
- ],
87
- mainBookerId: 1,
88
- street: "Nieuwstraat",
89
- houseNumber: "20",
90
- box: "A",
91
- zipCode: "9000",
92
- place: "Gent",
93
- country: "be",
94
- email: "staging@qite.be",
95
- emailConfirmation: "staging@qite.be",
96
- phone: "+32 471 12 34 56",
97
- travelAgentId: 0,
98
- travelAgentName: "",
99
- };
100
-
101
- const initialState: TravelersFormState = {
102
- formValues: isDebug ? debugFormValues : undefined,
103
- };
104
-
105
- const travelersFormSlice = createSlice({
106
- name: "travelersForm",
107
- initialState,
108
- reducers: {
109
- setFormValues(state, action: PayloadAction<TravelersFormValues>) {
110
- state.formValues = action.payload;
111
- },
112
- },
113
- });
114
-
115
- export const { setFormValues } = travelersFormSlice.actions;
116
-
117
- export const selectTravelersFormValues = (state: RootState) =>
118
- state.travelersForm.formValues;
119
-
120
- export const selectRooms = createSelector(
121
- selectTravelersFormValues,
122
- (formValues) => formValues?.rooms ?? []
123
- );
124
-
125
- export const selectAgentId = createSelector(
126
- selectTravelersFormValues,
127
- (formValues) => formValues?.travelAgentId
128
- );
129
-
130
- const selectRequestRooms = (state: RootState) =>
131
- state.booking.package?.options.find((x) => x.isSelected)?.requestRooms;
132
-
133
- export const selectFormRooms = createSelector(selectRequestRooms, (rooms) => {
134
- const formRooms: { adults: number[]; children: number[] }[] = [];
135
- if (rooms) {
136
- rooms.forEach((x) => {
137
- const formRoom: { adults: number[]; children: number[] } = {
138
- adults: [],
139
- children: [],
140
- };
141
-
142
- x.pax.forEach((p) => {
143
- if (p.age && p.age > CHILD_MAX_AGE) {
144
- formRoom.adults.push(p.id);
145
- } else if (p.age && p.age <= CHILD_MAX_AGE) {
146
- formRoom.children.push(p.id);
147
- } else if (p.dateOfBirth) {
148
- const diff = differenceInYears(new Date(), new Date(p.dateOfBirth));
149
-
150
- if (diff > CHILD_MAX_AGE) {
151
- formRoom.adults.push(p.id);
152
- } else {
153
- formRoom.children.push(p.id);
154
- }
155
- }
156
- });
157
-
158
- formRooms.push(formRoom);
159
- });
160
- }
161
- return formRooms;
162
- });
163
-
164
- export default travelersFormSlice.reducer;
1
+ import { PayloadAction, createSelector, createSlice } from "@reduxjs/toolkit";
2
+ import { differenceInYears } from "date-fns";
3
+
4
+ import { RootState } from "../../store";
5
+ import { TravelersFormValues, RoomTraveler } from "../../types";
6
+
7
+ export interface TravelersFormState {
8
+ formValues?: TravelersFormValues;
9
+ }
10
+
11
+ export const CHILD_MAX_AGE = 17;
12
+ const isDebug = false;
13
+
14
+ const debugFormValues = {
15
+ rooms: [
16
+ {
17
+ adults: [
18
+ {
19
+ id: 1,
20
+ firstName: "Jan",
21
+ lastName: "Jansens",
22
+ birthDate: "1984-05-20",
23
+ gender: "m",
24
+ },
25
+ {
26
+ id: 2,
27
+ firstName: "Leen",
28
+ lastName: "Leenders",
29
+ birthDate: "1986-08-09",
30
+ gender: "f",
31
+ },
32
+ ],
33
+ // children: [
34
+ // {
35
+ // id: "3",
36
+ // firstName: "Jonas",
37
+ // lastName: "Jansens",
38
+ // birthDate: "2015-06-14",
39
+ // gender: "m",
40
+ // },
41
+ // {
42
+ // id: "4",
43
+ // firstName: "Janne",
44
+ // lastName: "Jansens",
45
+ // birthDate: "2016-03-19",
46
+ // gender: "f",
47
+ // },
48
+ // ],
49
+ children: [],
50
+ },
51
+ {
52
+ adults: [
53
+ {
54
+ id: 3,
55
+ firstName: "Jan",
56
+ lastName: "Jansens",
57
+ birthDate: "1984-05-20",
58
+ gender: "m",
59
+ },
60
+ {
61
+ id: 4,
62
+ firstName: "Leen",
63
+ lastName: "Leenders",
64
+ birthDate: "1986-08-09",
65
+ gender: "f",
66
+ },
67
+ ],
68
+ // children: [
69
+ // {
70
+ // id: "3",
71
+ // firstName: "Jonas",
72
+ // lastName: "Jansens",
73
+ // birthDate: "2015-06-14",
74
+ // gender: "m",
75
+ // },
76
+ // {
77
+ // id: "4",
78
+ // firstName: "Janne",
79
+ // lastName: "Jansens",
80
+ // birthDate: "2016-03-19",
81
+ // gender: "f",
82
+ // },
83
+ // ],
84
+ children: [],
85
+ },
86
+ ],
87
+ mainBookerId: 1,
88
+ street: "Nieuwstraat",
89
+ houseNumber: "20",
90
+ box: "A",
91
+ zipCode: "9000",
92
+ place: "Gent",
93
+ country: "be",
94
+ email: "staging@qite.be",
95
+ emailConfirmation: "staging@qite.be",
96
+ phone: "+32 471 12 34 56",
97
+ travelAgentId: 0,
98
+ travelAgentName: "",
99
+ };
100
+
101
+ const initialState: TravelersFormState = {
102
+ formValues: isDebug ? debugFormValues : undefined,
103
+ };
104
+
105
+ const travelersFormSlice = createSlice({
106
+ name: "travelersForm",
107
+ initialState,
108
+ reducers: {
109
+ setFormValues(state, action: PayloadAction<TravelersFormValues>) {
110
+ state.formValues = action.payload;
111
+ },
112
+ },
113
+ });
114
+
115
+ export const { setFormValues } = travelersFormSlice.actions;
116
+
117
+ export const selectTravelersFormValues = (state: RootState) =>
118
+ state.travelersForm.formValues;
119
+
120
+ export const selectRooms = createSelector(
121
+ selectTravelersFormValues,
122
+ (formValues) => formValues?.rooms ?? []
123
+ );
124
+
125
+ export const selectAgentId = createSelector(
126
+ selectTravelersFormValues,
127
+ (formValues) => formValues?.travelAgentId
128
+ );
129
+
130
+ const selectRequestRooms = (state: RootState) =>
131
+ state.booking.package?.options.find((x) => x.isSelected)?.requestRooms;
132
+
133
+ export const selectFormRooms = createSelector(selectRequestRooms, (rooms) => {
134
+ const formRooms: { adults: RoomTraveler[]; children: RoomTraveler[] }[] = [];
135
+ if (rooms) {
136
+ rooms.forEach((x) => {
137
+ const formRoom: { adults: RoomTraveler[]; children: RoomTraveler[] } = {
138
+ adults: [],
139
+ children: [],
140
+ };
141
+
142
+ x.pax.forEach((p) => {
143
+ if (p.age && p.age > CHILD_MAX_AGE) {
144
+ formRoom.adults.push({ id: p.id, age: 30 });
145
+ } else if (p.age && p.age <= CHILD_MAX_AGE) {
146
+ formRoom.children.push({ id: p.id, age: p.age });
147
+ } else if (p.dateOfBirth) {
148
+ const age = differenceInYears(new Date(), new Date(p.dateOfBirth));
149
+
150
+ if (age > CHILD_MAX_AGE) {
151
+ formRoom.adults.push({ id: p.id, age: 30 });
152
+ } else {
153
+ formRoom.children.push({ id: p.id, age: age });
154
+ }
155
+ }
156
+ });
157
+
158
+ formRooms.push(formRoom);
159
+ });
160
+ }
161
+ return formRooms;
162
+ });
163
+
164
+ export default travelersFormSlice.reducer;