@qite/tide-booking-component 1.4.123 → 1.4.124

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 (706) hide show
  1. package/.claude/settings.local.json +11 -0
  2. package/.husky/pre-commit +22 -1
  3. package/.prettierignore +32 -0
  4. package/.prettierrc +9 -9
  5. package/.vs/ProjectSettings.json +3 -3
  6. package/.vs/VSWorkspaceState.json +5 -5
  7. package/MEMORY.md +97 -0
  8. package/NEXTSTEPS.md +94 -0
  9. package/README.md +26 -24
  10. package/package.json +10 -1
  11. package/rollup.config.js +16 -16
  12. package/src/booking-product/components/age-select.tsx +35 -35
  13. package/src/booking-product/components/amount-input.tsx +51 -51
  14. package/src/booking-product/components/date-range-picker/calendar-day.tsx +46 -46
  15. package/src/booking-product/components/date-range-picker/calendar.tsx +155 -155
  16. package/src/booking-product/components/date-range-picker/index.tsx +185 -185
  17. package/src/booking-product/components/dates.tsx +153 -153
  18. package/src/booking-product/components/footer.tsx +54 -54
  19. package/src/booking-product/components/header.tsx +58 -57
  20. package/src/booking-product/components/list-view.tsx +54 -54
  21. package/src/booking-product/components/product.tsx +447 -379
  22. package/src/booking-product/components/rating.tsx +21 -21
  23. package/src/booking-product/components/rooms.tsx +192 -171
  24. package/src/booking-product/constants.ts +1 -1
  25. package/src/booking-product/index.tsx +21 -21
  26. package/src/booking-product/settings-context.ts +16 -16
  27. package/src/booking-product/types.ts +68 -30
  28. package/src/booking-product/utils/api.ts +26 -26
  29. package/src/booking-product/utils/price.ts +28 -28
  30. package/src/booking-wizard/api-settings-slice.ts +24 -24
  31. package/src/booking-wizard/components/labeled-input.tsx +56 -56
  32. package/src/booking-wizard/components/labeled-select.tsx +54 -54
  33. package/src/booking-wizard/components/message.tsx +21 -21
  34. package/src/booking-wizard/components/multi-range-filter.tsx +99 -99
  35. package/src/booking-wizard/components/phone-input.tsx +146 -146
  36. package/src/booking-wizard/components/print-offer-button.tsx +53 -53
  37. package/src/booking-wizard/components/step-indicator.tsx +36 -36
  38. package/src/booking-wizard/components/step-route.tsx +51 -51
  39. package/src/booking-wizard/declarations.d.ts +4 -4
  40. package/src/booking-wizard/features/booking/api.ts +44 -44
  41. package/src/booking-wizard/features/booking/booking-self-contained.tsx +364 -318
  42. package/src/booking-wizard/features/booking/booking-slice.ts +634 -634
  43. package/src/booking-wizard/features/booking/booking.tsx +388 -344
  44. package/src/booking-wizard/features/booking/constants.ts +16 -16
  45. package/src/booking-wizard/features/booking/selectors.ts +411 -411
  46. package/src/booking-wizard/features/confirmation/confirmation.tsx +46 -46
  47. package/src/booking-wizard/features/error/error.tsx +71 -71
  48. package/src/booking-wizard/features/flight-options/flight-filter.tsx +371 -371
  49. package/src/booking-wizard/features/flight-options/flight-option-flight.tsx +354 -354
  50. package/src/booking-wizard/features/flight-options/flight-option-modal.tsx +211 -211
  51. package/src/booking-wizard/features/flight-options/flight-option.tsx +57 -57
  52. package/src/booking-wizard/features/flight-options/flight-utils.ts +423 -423
  53. package/src/booking-wizard/features/flight-options/index.tsx +170 -170
  54. package/src/booking-wizard/features/price-details/price-details-api.ts +20 -20
  55. package/src/booking-wizard/features/price-details/price-details-slice.ts +79 -79
  56. package/src/booking-wizard/features/price-details/selectors.ts +118 -118
  57. package/src/booking-wizard/features/price-details/util.ts +115 -115
  58. package/src/booking-wizard/features/product-options/no-options.tsx +18 -18
  59. package/src/booking-wizard/features/product-options/none-option.tsx +73 -73
  60. package/src/booking-wizard/features/product-options/option-booking-airline-group.tsx +53 -53
  61. package/src/booking-wizard/features/product-options/option-booking-group.tsx +152 -152
  62. package/src/booking-wizard/features/product-options/option-item.tsx +236 -236
  63. package/src/booking-wizard/features/product-options/option-pax-card.tsx +159 -159
  64. package/src/booking-wizard/features/product-options/option-pax-group.tsx +122 -122
  65. package/src/booking-wizard/features/product-options/option-room.tsx +226 -226
  66. package/src/booking-wizard/features/product-options/option-unit-group.tsx +138 -138
  67. package/src/booking-wizard/features/product-options/option-units-card.tsx +148 -148
  68. package/src/booking-wizard/features/product-options/options-form.tsx +382 -382
  69. package/src/booking-wizard/features/room-options/index.tsx +132 -132
  70. package/src/booking-wizard/features/room-options/room-utils.ts +154 -154
  71. package/src/booking-wizard/features/room-options/room.tsx +123 -123
  72. package/src/booking-wizard/features/room-options/traveler-rooms.tsx +64 -64
  73. package/src/booking-wizard/features/sidebar/index.tsx +89 -89
  74. package/src/booking-wizard/features/sidebar/sidebar-flight.tsx +66 -66
  75. package/src/booking-wizard/features/sidebar/sidebar-util.ts +143 -143
  76. package/src/booking-wizard/features/sidebar/sidebar.tsx +349 -349
  77. package/src/booking-wizard/features/summary/summary-booking-option-pax.tsx +23 -23
  78. package/src/booking-wizard/features/summary/summary-booking-option-unit.tsx +23 -23
  79. package/src/booking-wizard/features/summary/summary-flight.tsx +36 -36
  80. package/src/booking-wizard/features/summary/summary-per-booking-option-group.tsx +60 -60
  81. package/src/booking-wizard/features/summary/summary-per-pax-option-group.tsx +56 -56
  82. package/src/booking-wizard/features/summary/summary-per-unit-option-group.tsx +58 -58
  83. package/src/booking-wizard/features/summary/summary-slice.ts +27 -27
  84. package/src/booking-wizard/features/summary/summary.tsx +19 -3
  85. package/src/booking-wizard/features/travelers-form/controls/gender-control.tsx +60 -60
  86. package/src/booking-wizard/features/travelers-form/travelers-form-slice.ts +157 -157
  87. package/src/booking-wizard/features/travelers-form/travelers-form-util.ts +10 -10
  88. package/src/booking-wizard/features/travelers-form/travelers-form.tsx +181 -175
  89. package/src/booking-wizard/features/travelers-form/type-ahead-input.tsx +85 -85
  90. package/src/booking-wizard/features/travelers-form/validate-form.ts +178 -178
  91. package/src/booking-wizard/index.tsx +27 -27
  92. package/src/booking-wizard/settings-context.ts +64 -64
  93. package/src/booking-wizard/store.ts +26 -26
  94. package/src/booking-wizard/types.ts +17 -0
  95. package/src/booking-wizard/use-offer-printer.ts +108 -108
  96. package/src/content/components/LanguageSwitcher.tsx +158 -158
  97. package/src/content/components/accordion.tsx +30 -30
  98. package/src/content/components/breadcrumb.tsx +67 -67
  99. package/src/content/components/contact.tsx +210 -210
  100. package/src/content/components/faq.tsx +42 -42
  101. package/src/content/components/gallery.tsx +153 -153
  102. package/src/content/components/image-with-text.tsx +119 -119
  103. package/src/content/components/login.tsx +161 -161
  104. package/src/content/components/personal-contact-form.tsx +809 -809
  105. package/src/content/components/slider.tsx +237 -237
  106. package/src/content/error/error.tsx +27 -27
  107. package/src/content/featured-trips/featured-trip-card.tsx +48 -48
  108. package/src/content/featured-trips/index.tsx +19 -19
  109. package/src/content/featured-trips/types.ts +13 -13
  110. package/src/content/features/content-page/content-page-self-contained.tsx +895 -895
  111. package/src/content/footer/index.tsx +159 -159
  112. package/src/content/footer/types.ts +36 -36
  113. package/src/content/header/index.tsx +43 -43
  114. package/src/content/header/types.ts +26 -26
  115. package/src/content/image-card-grid/index.tsx +34 -34
  116. package/src/content/image-card-grid/types.ts +13 -13
  117. package/src/content/image-with-text-section/card.tsx +58 -58
  118. package/src/content/image-with-text-section/index.tsx +22 -22
  119. package/src/content/image-with-text-section/types.ts +20 -20
  120. package/src/content/login/confirm-component.tsx +149 -149
  121. package/src/content/login/index.tsx +70 -70
  122. package/src/content/login/login-component.tsx +159 -159
  123. package/src/content/login/login-services.ts +109 -109
  124. package/src/content/login/reset-password-component.tsx +191 -191
  125. package/src/content/login/types.ts +29 -29
  126. package/src/content/navbar/index.tsx +354 -354
  127. package/src/content/navbar/placeholderData.tsx +173 -173
  128. package/src/content/navbar/types.ts +43 -43
  129. package/src/index.ts +46 -46
  130. package/src/qsm/components/QSMContainer/qsm-container.tsx +671 -671
  131. package/src/qsm/components/date-picker/index.tsx +152 -152
  132. package/src/qsm/components/date-range-picker/calendar-day.tsx +49 -49
  133. package/src/qsm/components/date-range-picker/calendar.tsx +211 -211
  134. package/src/qsm/components/date-range-picker/index.tsx +404 -404
  135. package/src/qsm/components/double-search-input-group/index.tsx +78 -78
  136. package/src/qsm/components/item-picker/index.tsx +65 -65
  137. package/src/qsm/components/mobile-filter-modal/index.tsx +321 -321
  138. package/src/qsm/components/search-input/index.tsx +91 -91
  139. package/src/qsm/components/search-input-group/index.tsx +209 -209
  140. package/src/qsm/components/travel-class-picker/index.tsx +28 -28
  141. package/src/qsm/components/travel-input/index.tsx +241 -241
  142. package/src/qsm/components/travel-input-group/index.tsx +114 -114
  143. package/src/qsm/components/travel-nationality-picker/index.tsx +28 -28
  144. package/src/qsm/components/travel-type-picker/index.tsx +28 -28
  145. package/src/qsm/index.tsx +26 -26
  146. package/src/qsm/qsm-configuration-context.ts +31 -31
  147. package/src/qsm/store/qsm-slice.ts +282 -282
  148. package/src/qsm/store/qsm-store.ts +13 -13
  149. package/src/qsm/types.ts +110 -110
  150. package/src/search-results/components/book-packaging-entry/index.tsx +266 -266
  151. package/src/search-results/components/book-packaging-entry/wl-sidebar.tsx +173 -173
  152. package/src/search-results/components/excursions/day-by-day-excursions.tsx +168 -168
  153. package/src/search-results/components/excursions/excursion-details.tsx +340 -340
  154. package/src/search-results/components/excursions/excursion-results.tsx +186 -186
  155. package/src/search-results/components/filters/filters.tsx +229 -229
  156. package/src/search-results/components/filters/flight-filters.tsx +671 -671
  157. package/src/search-results/components/flight/flight-banner.tsx +35 -35
  158. package/src/search-results/components/flight/flight-card.tsx +38 -38
  159. package/src/search-results/components/flight/flight-leg.tsx +61 -61
  160. package/src/search-results/components/flight/flight-path.tsx +23 -23
  161. package/src/search-results/components/flight/flight-results.tsx +208 -208
  162. package/src/search-results/components/flight/flight-search-context/index.tsx +628 -628
  163. package/src/search-results/components/flight/flight-selection/independent-flight-option.tsx +168 -168
  164. package/src/search-results/components/flight/flight-selection/independent-flight-selection.tsx +184 -184
  165. package/src/search-results/components/flight/flight-selection/index.tsx +19 -19
  166. package/src/search-results/components/flight/flight-selection/paired-flight-option.tsx +255 -255
  167. package/src/search-results/components/flight/flight-selection/paired-flight-selection.tsx +38 -38
  168. package/src/search-results/components/group-tour/group-tour-card.tsx +105 -105
  169. package/src/search-results/components/group-tour/group-tour-results.tsx +62 -62
  170. package/src/search-results/components/hotel/hotel-accommodation-results.tsx +244 -244
  171. package/src/search-results/components/hotel/hotel-card.tsx +110 -110
  172. package/src/search-results/components/item-picker/index.tsx +81 -81
  173. package/src/search-results/components/itinerary/full-itinerary.tsx +374 -374
  174. package/src/search-results/components/itinerary/index.tsx +437 -437
  175. package/src/search-results/components/multi-range-filter.tsx +104 -104
  176. package/src/search-results/components/round-trip/round-trip-results.tsx +199 -199
  177. package/src/search-results/components/search-results-container/flight-search-results.tsx +137 -137
  178. package/src/search-results/components/search-results-container/search-results-container.tsx +1764 -1764
  179. package/src/search-results/components/spinner/spinner.tsx +24 -24
  180. package/src/search-results/components/tab-views/index.tsx +53 -53
  181. package/src/search-results/features/flights/flight-search-results-self-contained.tsx +294 -294
  182. package/src/search-results/features/hotels/hotel-flight-search-results-self-contained.tsx +143 -143
  183. package/src/search-results/features/hotels/hotel-search-results-self-contained.tsx +220 -220
  184. package/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.tsx +65 -65
  185. package/src/search-results/index.tsx +25 -25
  186. package/src/search-results/search-results-configuration-context.ts +6 -6
  187. package/src/search-results/store/search-results-selectors.ts +84 -84
  188. package/src/search-results/store/search-results-slice.ts +351 -351
  189. package/src/search-results/store/search-results-store.ts +13 -13
  190. package/src/search-results/types.ts +266 -266
  191. package/src/search-results/utils/flight-utils.ts +98 -98
  192. package/src/search-results/utils/packaging-utils.ts +75 -75
  193. package/src/search-results/utils/query-utils.ts +153 -153
  194. package/src/search-results/utils/search-results-utils.ts +538 -538
  195. package/src/shared/booking/booking-panel.tsx +25 -25
  196. package/src/shared/booking/product-card.tsx +23 -23
  197. package/src/shared/booking/shared-confirmation.tsx +105 -105
  198. package/src/shared/booking/shared-sidebar.tsx +432 -432
  199. package/src/shared/booking/step-indicators.tsx +30 -30
  200. package/src/shared/booking/summary.tsx +382 -382
  201. package/src/shared/booking/travelers-form.tsx +874 -874
  202. package/src/shared/components/flyin/accommodation-flyin.tsx +424 -424
  203. package/src/shared/components/flyin/flights-flyin.tsx +508 -508
  204. package/src/shared/components/flyin/flyin.tsx +241 -241
  205. package/src/shared/components/flyin/group-tour-flyin.tsx +294 -294
  206. package/src/shared/components/flyin/packaging-flights-flyin.tsx +171 -171
  207. package/src/shared/components/icon.tsx +1114 -1114
  208. package/src/shared/components/loader.tsx +16 -16
  209. package/src/shared/translations/ar-SA.json +398 -398
  210. package/src/shared/translations/da-DK.json +398 -398
  211. package/src/shared/translations/de-DE.json +398 -398
  212. package/src/shared/translations/en-GB.json +402 -402
  213. package/src/shared/translations/es-ES.json +398 -398
  214. package/src/shared/translations/fr-BE.json +402 -402
  215. package/src/shared/translations/fr-FR.json +398 -398
  216. package/src/shared/translations/is-IS.json +398 -398
  217. package/src/shared/translations/it-IT.json +398 -398
  218. package/src/shared/translations/ja-JP.json +398 -398
  219. package/src/shared/translations/nl-BE.json +402 -402
  220. package/src/shared/translations/nl-NL.json +398 -398
  221. package/src/shared/translations/no-NO.json +398 -398
  222. package/src/shared/translations/pl-PL.json +398 -398
  223. package/src/shared/translations/pt-PT.json +398 -398
  224. package/src/shared/translations/sv-SE.json +398 -398
  225. package/src/shared/types.ts +31 -31
  226. package/src/shared/utils/booking-summary.tsx +57 -57
  227. package/src/shared/utils/class-util.ts +7 -7
  228. package/src/shared/utils/localization-util.ts +316 -301
  229. package/src/shared/utils/query-string-util.ts +91 -91
  230. package/src/shared/utils/tide-api-utils.ts +42 -43
  231. package/src/shared/utils/use-media-query-util.ts +19 -19
  232. package/styles/abstracts/_mixins.scss +74 -74
  233. package/styles/abstracts/_variables.scss +57 -57
  234. package/styles/base/_fonts.scss +2 -2
  235. package/styles/base/_normalize.scss +227 -227
  236. package/styles/base/_typography.scss +35 -35
  237. package/styles/booking-joker-variables.scss +596 -596
  238. package/styles/booking-product-variables.scss +330 -330
  239. package/styles/booking-product.scss +438 -438
  240. package/styles/booking-qsm-variables.scss +501 -501
  241. package/styles/booking-qsm.scss +52 -52
  242. package/styles/booking-search-results-variables.scss +728 -728
  243. package/styles/booking-search-results.scss +53 -53
  244. package/styles/booking-wizard-variables.scss +603 -603
  245. package/styles/booking-wizard.scss +61 -61
  246. package/styles/components/_accordion.scss +67 -67
  247. package/styles/components/_animations.scss +39 -39
  248. package/styles/components/_base.scss +107 -107
  249. package/styles/components/_booking.scss +906 -906
  250. package/styles/components/_breadcrumb.scss +92 -92
  251. package/styles/components/_button.scss +238 -238
  252. package/styles/components/_checkbox.scss +230 -230
  253. package/styles/components/_contact.scss +255 -239
  254. package/styles/components/_content.scss +336 -336
  255. package/styles/components/_cta.scss +238 -238
  256. package/styles/components/_date-list.scss +41 -41
  257. package/styles/components/_date-range-picker.scss +223 -223
  258. package/styles/components/_decrement-increment.scss +35 -35
  259. package/styles/components/_dropdown.scss +77 -77
  260. package/styles/components/_error.scss +50 -50
  261. package/styles/components/_faq.scss +30 -30
  262. package/styles/components/_flight-option.scss +1432 -1432
  263. package/styles/components/_flyin.scss +830 -830
  264. package/styles/components/_footer.scss +135 -135
  265. package/styles/components/_form.scss +1693 -1693
  266. package/styles/components/_gallery.scss +317 -317
  267. package/styles/components/_header.scss +113 -113
  268. package/styles/components/_image-with-text.scss +206 -206
  269. package/styles/components/_img-slider.scss +175 -175
  270. package/styles/components/_info-message.scss +75 -75
  271. package/styles/components/_input.scss +35 -35
  272. package/styles/components/_list.scss +185 -185
  273. package/styles/components/_loader.scss +152 -152
  274. package/styles/components/_login.scss +140 -140
  275. package/styles/components/_mixins.scss +579 -579
  276. package/styles/components/_navbar.scss +765 -765
  277. package/styles/components/_passenger-picker.scss +306 -306
  278. package/styles/components/_phone-input.scss +8 -8
  279. package/styles/components/_placeholders.scss +165 -165
  280. package/styles/components/_pricing-summary.scss +163 -163
  281. package/styles/components/_qsm.scss +17 -17
  282. package/styles/components/_radiobutton.scss +170 -170
  283. package/styles/components/_search.scss +2089 -2089
  284. package/styles/components/_select-wrapper.scss +81 -81
  285. package/styles/components/_slider.scss +128 -128
  286. package/styles/components/_spinner.scss +29 -29
  287. package/styles/components/_step-indicators.scss +187 -187
  288. package/styles/components/_table.scss +81 -81
  289. package/styles/components/_tree.scss +648 -648
  290. package/styles/components/_typeahead.scss +275 -275
  291. package/styles/components/_variables.scss +89 -89
  292. package/styles/content-blocks-variables.scss +507 -507
  293. package/styles/content-blocks.scss +65 -65
  294. package/styles/font.scss +2 -2
  295. package/styles/qsm/_calendar.scss +274 -274
  296. package/styles/qsm/_qsm.scss +1097 -1097
  297. package/styles/search.scss +1200 -1200
  298. package/tsconfig.json +24 -24
  299. package/build/build-cjs/index.js +0 -57387
  300. package/build/build-cjs/src/booking-product/components/age-select.d.ts +0 -8
  301. package/build/build-cjs/src/booking-product/components/amount-input.d.ts +0 -10
  302. package/build/build-cjs/src/booking-product/components/date-range-picker/calendar-day.d.ts +0 -13
  303. package/build/build-cjs/src/booking-product/components/date-range-picker/calendar.d.ts +0 -19
  304. package/build/build-cjs/src/booking-product/components/date-range-picker/index.d.ts +0 -22
  305. package/build/build-cjs/src/booking-product/components/dates.d.ts +0 -14
  306. package/build/build-cjs/src/booking-product/components/footer.d.ts +0 -10
  307. package/build/build-cjs/src/booking-product/components/header.d.ts +0 -11
  308. package/build/build-cjs/src/booking-product/components/list-view.d.ts +0 -8
  309. package/build/build-cjs/src/booking-product/components/product.d.ts +0 -9
  310. package/build/build-cjs/src/booking-product/components/rating.d.ts +0 -6
  311. package/build/build-cjs/src/booking-product/components/rooms.d.ts +0 -10
  312. package/build/build-cjs/src/booking-product/constants.d.ts +0 -1
  313. package/build/build-cjs/src/booking-product/index.d.ts +0 -10
  314. package/build/build-cjs/src/booking-product/settings-context.d.ts +0 -5
  315. package/build/build-cjs/src/booking-product/types.d.ts +0 -27
  316. package/build/build-cjs/src/booking-product/utils/api.d.ts +0 -16
  317. package/build/build-cjs/src/booking-product/utils/price.d.ts +0 -10
  318. package/build/build-cjs/src/booking-wizard/api-settings-slice.d.ts +0 -5
  319. package/build/build-cjs/src/booking-wizard/components/labeled-input.d.ts +0 -18
  320. package/build/build-cjs/src/booking-wizard/components/labeled-select.d.ts +0 -21
  321. package/build/build-cjs/src/booking-wizard/components/message.d.ts +0 -9
  322. package/build/build-cjs/src/booking-wizard/components/multi-range-filter.d.ts +0 -11
  323. package/build/build-cjs/src/booking-wizard/components/phone-input.d.ts +0 -17
  324. package/build/build-cjs/src/booking-wizard/components/print-offer-button.d.ts +0 -17
  325. package/build/build-cjs/src/booking-wizard/components/step-indicator.d.ts +0 -6
  326. package/build/build-cjs/src/booking-wizard/components/step-route.d.ts +0 -8
  327. package/build/build-cjs/src/booking-wizard/features/booking/api.d.ts +0 -30
  328. package/build/build-cjs/src/booking-wizard/features/booking/booking-self-contained.d.ts +0 -8
  329. package/build/build-cjs/src/booking-wizard/features/booking/booking-slice.d.ts +0 -121
  330. package/build/build-cjs/src/booking-wizard/features/booking/booking.d.ts +0 -8
  331. package/build/build-cjs/src/booking-wizard/features/booking/constants.d.ts +0 -15
  332. package/build/build-cjs/src/booking-wizard/features/booking/selectors.d.ts +0 -803
  333. package/build/build-cjs/src/booking-wizard/features/confirmation/confirmation.d.ts +0 -4
  334. package/build/build-cjs/src/booking-wizard/features/error/error.d.ts +0 -4
  335. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-filter.d.ts +0 -9
  336. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +0 -8
  337. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option-modal.d.ts +0 -3
  338. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-option.d.ts +0 -10
  339. package/build/build-cjs/src/booking-wizard/features/flight-options/flight-utils.d.ts +0 -13
  340. package/build/build-cjs/src/booking-wizard/features/flight-options/index.d.ts +0 -4
  341. package/build/build-cjs/src/booking-wizard/features/price-details/price-details-api.d.ts +0 -11
  342. package/build/build-cjs/src/booking-wizard/features/price-details/price-details-slice.d.ts +0 -28
  343. package/build/build-cjs/src/booking-wizard/features/price-details/selectors.d.ts +0 -393
  344. package/build/build-cjs/src/booking-wizard/features/price-details/util.d.ts +0 -2
  345. package/build/build-cjs/src/booking-wizard/features/product-options/no-options.d.ts +0 -3
  346. package/build/build-cjs/src/booking-wizard/features/product-options/none-option.d.ts +0 -9
  347. package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +0 -8
  348. package/build/build-cjs/src/booking-wizard/features/product-options/option-booking-group.d.ts +0 -12
  349. package/build/build-cjs/src/booking-wizard/features/product-options/option-item.d.ts +0 -11
  350. package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-card.d.ts +0 -10
  351. package/build/build-cjs/src/booking-wizard/features/product-options/option-pax-group.d.ts +0 -13
  352. package/build/build-cjs/src/booking-wizard/features/product-options/option-room.d.ts +0 -11
  353. package/build/build-cjs/src/booking-wizard/features/product-options/option-unit-group.d.ts +0 -13
  354. package/build/build-cjs/src/booking-wizard/features/product-options/option-units-card.d.ts +0 -9
  355. package/build/build-cjs/src/booking-wizard/features/product-options/options-form.d.ts +0 -4
  356. package/build/build-cjs/src/booking-wizard/features/room-options/index.d.ts +0 -4
  357. package/build/build-cjs/src/booking-wizard/features/room-options/room-utils.d.ts +0 -22
  358. package/build/build-cjs/src/booking-wizard/features/room-options/room.d.ts +0 -12
  359. package/build/build-cjs/src/booking-wizard/features/room-options/traveler-rooms.d.ts +0 -9
  360. package/build/build-cjs/src/booking-wizard/features/sidebar/index.d.ts +0 -7
  361. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +0 -9
  362. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar-util.d.ts +0 -16
  363. package/build/build-cjs/src/booking-wizard/features/sidebar/sidebar.d.ts +0 -0
  364. package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +0 -7
  365. package/build/build-cjs/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +0 -7
  366. package/build/build-cjs/src/booking-wizard/features/summary/summary-flight.d.ts +0 -8
  367. package/build/build-cjs/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +0 -7
  368. package/build/build-cjs/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +0 -7
  369. package/build/build-cjs/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +0 -7
  370. package/build/build-cjs/src/booking-wizard/features/summary/summary-slice.d.ts +0 -8
  371. package/build/build-cjs/src/booking-wizard/features/summary/summary.d.ts +0 -4
  372. package/build/build-cjs/src/booking-wizard/features/travelers-form/controls/gender-control.d.ts +0 -5
  373. package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +0 -104
  374. package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +0 -7
  375. package/build/build-cjs/src/booking-wizard/features/travelers-form/travelers-form.d.ts +0 -3
  376. package/build/build-cjs/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +0 -16
  377. package/build/build-cjs/src/booking-wizard/features/travelers-form/validate-form.d.ts +0 -11
  378. package/build/build-cjs/src/booking-wizard/index.d.ts +0 -12
  379. package/build/build-cjs/src/booking-wizard/settings-context.d.ts +0 -5
  380. package/build/build-cjs/src/booking-wizard/store.d.ts +0 -44
  381. package/build/build-cjs/src/booking-wizard/types.d.ts +0 -301
  382. package/build/build-cjs/src/booking-wizard/use-offer-printer.d.ts +0 -13
  383. package/build/build-cjs/src/content/components/LanguageSwitcher.d.ts +0 -12
  384. package/build/build-cjs/src/content/components/accordion.d.ts +0 -9
  385. package/build/build-cjs/src/content/components/breadcrumb.d.ts +0 -14
  386. package/build/build-cjs/src/content/components/contact.d.ts +0 -3
  387. package/build/build-cjs/src/content/components/faq.d.ts +0 -11
  388. package/build/build-cjs/src/content/components/gallery.d.ts +0 -13
  389. package/build/build-cjs/src/content/components/image-with-text.d.ts +0 -29
  390. package/build/build-cjs/src/content/components/login.d.ts +0 -3
  391. package/build/build-cjs/src/content/components/personal-contact-form.d.ts +0 -3
  392. package/build/build-cjs/src/content/components/slider.d.ts +0 -10
  393. package/build/build-cjs/src/content/error/error.d.ts +0 -6
  394. package/build/build-cjs/src/content/featured-trips/featured-trip-card.d.ts +0 -4
  395. package/build/build-cjs/src/content/featured-trips/index.d.ts +0 -4
  396. package/build/build-cjs/src/content/featured-trips/types.d.ts +0 -12
  397. package/build/build-cjs/src/content/features/content-page/content-page-self-contained.d.ts +0 -6
  398. package/build/build-cjs/src/content/footer/index.d.ts +0 -4
  399. package/build/build-cjs/src/content/footer/types.d.ts +0 -27
  400. package/build/build-cjs/src/content/header/index.d.ts +0 -4
  401. package/build/build-cjs/src/content/header/types.d.ts +0 -25
  402. package/build/build-cjs/src/content/image-card-grid/index.d.ts +0 -4
  403. package/build/build-cjs/src/content/image-card-grid/types.d.ts +0 -12
  404. package/build/build-cjs/src/content/image-with-text-section/card.d.ts +0 -4
  405. package/build/build-cjs/src/content/image-with-text-section/index.d.ts +0 -4
  406. package/build/build-cjs/src/content/image-with-text-section/types.d.ts +0 -19
  407. package/build/build-cjs/src/content/login/confirm-component.d.ts +0 -4
  408. package/build/build-cjs/src/content/login/index.d.ts +0 -4
  409. package/build/build-cjs/src/content/login/login-component.d.ts +0 -4
  410. package/build/build-cjs/src/content/login/login-services.d.ts +0 -11
  411. package/build/build-cjs/src/content/login/reset-password-component.d.ts +0 -4
  412. package/build/build-cjs/src/content/login/types.d.ts +0 -24
  413. package/build/build-cjs/src/content/navbar/index.d.ts +0 -4
  414. package/build/build-cjs/src/content/navbar/placeholderData.d.ts +0 -12
  415. package/build/build-cjs/src/content/navbar/types.d.ts +0 -32
  416. package/build/build-cjs/src/index.d.ts +0 -44
  417. package/build/build-cjs/src/qsm/components/QSMContainer/qsm-container.d.ts +0 -3
  418. package/build/build-cjs/src/qsm/components/date-picker/index.d.ts +0 -3
  419. package/build/build-cjs/src/qsm/components/date-range-picker/calendar-day.d.ts +0 -12
  420. package/build/build-cjs/src/qsm/components/date-range-picker/calendar.d.ts +0 -24
  421. package/build/build-cjs/src/qsm/components/date-range-picker/index.d.ts +0 -10
  422. package/build/build-cjs/src/qsm/components/double-search-input-group/index.d.ts +0 -8
  423. package/build/build-cjs/src/qsm/components/item-picker/index.d.ts +0 -13
  424. package/build/build-cjs/src/qsm/components/mobile-filter-modal/index.d.ts +0 -3
  425. package/build/build-cjs/src/qsm/components/search-input/index.d.ts +0 -15
  426. package/build/build-cjs/src/qsm/components/search-input-group/index.d.ts +0 -13
  427. package/build/build-cjs/src/qsm/components/travel-class-picker/index.d.ts +0 -3
  428. package/build/build-cjs/src/qsm/components/travel-input/index.d.ts +0 -3
  429. package/build/build-cjs/src/qsm/components/travel-input-group/index.d.ts +0 -3
  430. package/build/build-cjs/src/qsm/components/travel-nationality-picker/index.d.ts +0 -3
  431. package/build/build-cjs/src/qsm/components/travel-type-picker/index.d.ts +0 -3
  432. package/build/build-cjs/src/qsm/index.d.ts +0 -7
  433. package/build/build-cjs/src/qsm/qsm-configuration-context.d.ts +0 -4
  434. package/build/build-cjs/src/qsm/store/qsm-slice.d.ts +0 -127
  435. package/build/build-cjs/src/qsm/store/qsm-store.d.ts +0 -23
  436. package/build/build-cjs/src/qsm/types.d.ts +0 -82
  437. package/build/build-cjs/src/search-results/components/book-packaging-entry/index.d.ts +0 -9
  438. package/build/build-cjs/src/search-results/components/book-packaging-entry/wl-sidebar.d.ts +0 -9
  439. package/build/build-cjs/src/search-results/components/excursions/day-by-day-excursions.d.ts +0 -4
  440. package/build/build-cjs/src/search-results/components/excursions/excursion-details.d.ts +0 -3
  441. package/build/build-cjs/src/search-results/components/excursions/excursion-results.d.ts +0 -8
  442. package/build/build-cjs/src/search-results/components/filters/filters.d.ts +0 -13
  443. package/build/build-cjs/src/search-results/components/filters/flight-filters.d.ts +0 -8
  444. package/build/build-cjs/src/search-results/components/flight/flight-banner.d.ts +0 -8
  445. package/build/build-cjs/src/search-results/components/flight/flight-card.d.ts +0 -7
  446. package/build/build-cjs/src/search-results/components/flight/flight-leg.d.ts +0 -7
  447. package/build/build-cjs/src/search-results/components/flight/flight-path.d.ts +0 -6
  448. package/build/build-cjs/src/search-results/components/flight/flight-results.d.ts +0 -8
  449. package/build/build-cjs/src/search-results/components/flight/flight-search-context/index.d.ts +0 -39
  450. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +0 -14
  451. package/build/build-cjs/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +0 -7
  452. package/build/build-cjs/src/search-results/components/flight/flight-selection/index.d.ts +0 -8
  453. package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +0 -7
  454. package/build/build-cjs/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +0 -7
  455. package/build/build-cjs/src/search-results/components/group-tour/group-tour-card.d.ts +0 -9
  456. package/build/build-cjs/src/search-results/components/group-tour/group-tour-results.d.ts +0 -6
  457. package/build/build-cjs/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -7
  458. package/build/build-cjs/src/search-results/components/hotel/hotel-card.d.ts +0 -8
  459. package/build/build-cjs/src/search-results/components/item-picker/index.d.ts +0 -15
  460. package/build/build-cjs/src/search-results/components/itinerary/full-itinerary.d.ts +0 -6
  461. package/build/build-cjs/src/search-results/components/itinerary/index.d.ts +0 -10
  462. package/build/build-cjs/src/search-results/components/multi-range-filter.d.ts +0 -11
  463. package/build/build-cjs/src/search-results/components/round-trip/round-trip-results.d.ts +0 -4
  464. package/build/build-cjs/src/search-results/components/search-results-container/flight-search-results.d.ts +0 -6
  465. package/build/build-cjs/src/search-results/components/search-results-container/search-results-container.d.ts +0 -6
  466. package/build/build-cjs/src/search-results/components/spinner/spinner.d.ts +0 -6
  467. package/build/build-cjs/src/search-results/components/tab-views/index.d.ts +0 -4
  468. package/build/build-cjs/src/search-results/features/flights/flight-search-results-self-contained.d.ts +0 -4
  469. package/build/build-cjs/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +0 -4
  470. package/build/build-cjs/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +0 -4
  471. package/build/build-cjs/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +0 -4
  472. package/build/build-cjs/src/search-results/index.d.ts +0 -8
  473. package/build/build-cjs/src/search-results/search-results-configuration-context.d.ts +0 -4
  474. package/build/build-cjs/src/search-results/store/search-results-selectors.d.ts +0 -546
  475. package/build/build-cjs/src/search-results/store/search-results-slice.d.ts +0 -138
  476. package/build/build-cjs/src/search-results/store/search-results-store.d.ts +0 -23
  477. package/build/build-cjs/src/search-results/types.d.ts +0 -211
  478. package/build/build-cjs/src/search-results/utils/flight-utils.d.ts +0 -16
  479. package/build/build-cjs/src/search-results/utils/packaging-utils.d.ts +0 -7
  480. package/build/build-cjs/src/search-results/utils/query-utils.d.ts +0 -12
  481. package/build/build-cjs/src/search-results/utils/search-results-utils.d.ts +0 -16
  482. package/build/build-cjs/src/shared/booking/booking-panel.d.ts +0 -13
  483. package/build/build-cjs/src/shared/booking/product-card.d.ts +0 -8
  484. package/build/build-cjs/src/shared/booking/shared-confirmation.d.ts +0 -25
  485. package/build/build-cjs/src/shared/booking/shared-sidebar.d.ts +0 -34
  486. package/build/build-cjs/src/shared/booking/step-indicators.d.ts +0 -7
  487. package/build/build-cjs/src/shared/booking/summary.d.ts +0 -44
  488. package/build/build-cjs/src/shared/booking/travelers-form.d.ts +0 -93
  489. package/build/build-cjs/src/shared/components/flyin/accommodation-flyin.d.ts +0 -7
  490. package/build/build-cjs/src/shared/components/flyin/flights-flyin.d.ts +0 -7
  491. package/build/build-cjs/src/shared/components/flyin/flyin.d.ts +0 -20
  492. package/build/build-cjs/src/shared/components/flyin/group-tour-flyin.d.ts +0 -8
  493. package/build/build-cjs/src/shared/components/flyin/packaging-flights-flyin.d.ts +0 -9
  494. package/build/build-cjs/src/shared/components/icon.d.ts +0 -11
  495. package/build/build-cjs/src/shared/components/loader.d.ts +0 -6
  496. package/build/build-cjs/src/shared/types.d.ts +0 -16
  497. package/build/build-cjs/src/shared/utils/booking-summary.d.ts +0 -2
  498. package/build/build-cjs/src/shared/utils/class-util.d.ts +0 -1
  499. package/build/build-cjs/src/shared/utils/localization-util.d.ts +0 -440
  500. package/build/build-cjs/src/shared/utils/query-string-util.d.ts +0 -8
  501. package/build/build-cjs/src/shared/utils/tide-api-utils.d.ts +0 -10
  502. package/build/build-cjs/src/shared/utils/use-media-query-util.d.ts +0 -2
  503. package/build/build-esm/index.js +0 -57137
  504. package/build/build-esm/src/booking-product/components/age-select.d.ts +0 -8
  505. package/build/build-esm/src/booking-product/components/amount-input.d.ts +0 -10
  506. package/build/build-esm/src/booking-product/components/date-range-picker/calendar-day.d.ts +0 -13
  507. package/build/build-esm/src/booking-product/components/date-range-picker/calendar.d.ts +0 -19
  508. package/build/build-esm/src/booking-product/components/date-range-picker/index.d.ts +0 -22
  509. package/build/build-esm/src/booking-product/components/dates.d.ts +0 -14
  510. package/build/build-esm/src/booking-product/components/footer.d.ts +0 -10
  511. package/build/build-esm/src/booking-product/components/header.d.ts +0 -11
  512. package/build/build-esm/src/booking-product/components/list-view.d.ts +0 -8
  513. package/build/build-esm/src/booking-product/components/product.d.ts +0 -9
  514. package/build/build-esm/src/booking-product/components/rating.d.ts +0 -6
  515. package/build/build-esm/src/booking-product/components/rooms.d.ts +0 -10
  516. package/build/build-esm/src/booking-product/constants.d.ts +0 -1
  517. package/build/build-esm/src/booking-product/index.d.ts +0 -10
  518. package/build/build-esm/src/booking-product/settings-context.d.ts +0 -5
  519. package/build/build-esm/src/booking-product/types.d.ts +0 -27
  520. package/build/build-esm/src/booking-product/utils/api.d.ts +0 -16
  521. package/build/build-esm/src/booking-product/utils/price.d.ts +0 -10
  522. package/build/build-esm/src/booking-wizard/api-settings-slice.d.ts +0 -5
  523. package/build/build-esm/src/booking-wizard/components/labeled-input.d.ts +0 -18
  524. package/build/build-esm/src/booking-wizard/components/labeled-select.d.ts +0 -21
  525. package/build/build-esm/src/booking-wizard/components/message.d.ts +0 -9
  526. package/build/build-esm/src/booking-wizard/components/multi-range-filter.d.ts +0 -11
  527. package/build/build-esm/src/booking-wizard/components/phone-input.d.ts +0 -17
  528. package/build/build-esm/src/booking-wizard/components/print-offer-button.d.ts +0 -17
  529. package/build/build-esm/src/booking-wizard/components/step-indicator.d.ts +0 -6
  530. package/build/build-esm/src/booking-wizard/components/step-route.d.ts +0 -8
  531. package/build/build-esm/src/booking-wizard/features/booking/api.d.ts +0 -30
  532. package/build/build-esm/src/booking-wizard/features/booking/booking-self-contained.d.ts +0 -8
  533. package/build/build-esm/src/booking-wizard/features/booking/booking-slice.d.ts +0 -121
  534. package/build/build-esm/src/booking-wizard/features/booking/booking.d.ts +0 -8
  535. package/build/build-esm/src/booking-wizard/features/booking/constants.d.ts +0 -15
  536. package/build/build-esm/src/booking-wizard/features/booking/selectors.d.ts +0 -803
  537. package/build/build-esm/src/booking-wizard/features/confirmation/confirmation.d.ts +0 -4
  538. package/build/build-esm/src/booking-wizard/features/error/error.d.ts +0 -4
  539. package/build/build-esm/src/booking-wizard/features/flight-options/flight-filter.d.ts +0 -9
  540. package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-flight.d.ts +0 -8
  541. package/build/build-esm/src/booking-wizard/features/flight-options/flight-option-modal.d.ts +0 -3
  542. package/build/build-esm/src/booking-wizard/features/flight-options/flight-option.d.ts +0 -10
  543. package/build/build-esm/src/booking-wizard/features/flight-options/flight-utils.d.ts +0 -13
  544. package/build/build-esm/src/booking-wizard/features/flight-options/index.d.ts +0 -4
  545. package/build/build-esm/src/booking-wizard/features/price-details/price-details-api.d.ts +0 -11
  546. package/build/build-esm/src/booking-wizard/features/price-details/price-details-slice.d.ts +0 -28
  547. package/build/build-esm/src/booking-wizard/features/price-details/selectors.d.ts +0 -393
  548. package/build/build-esm/src/booking-wizard/features/price-details/util.d.ts +0 -2
  549. package/build/build-esm/src/booking-wizard/features/product-options/no-options.d.ts +0 -3
  550. package/build/build-esm/src/booking-wizard/features/product-options/none-option.d.ts +0 -9
  551. package/build/build-esm/src/booking-wizard/features/product-options/option-booking-airline-group.d.ts +0 -8
  552. package/build/build-esm/src/booking-wizard/features/product-options/option-booking-group.d.ts +0 -12
  553. package/build/build-esm/src/booking-wizard/features/product-options/option-item.d.ts +0 -11
  554. package/build/build-esm/src/booking-wizard/features/product-options/option-pax-card.d.ts +0 -10
  555. package/build/build-esm/src/booking-wizard/features/product-options/option-pax-group.d.ts +0 -13
  556. package/build/build-esm/src/booking-wizard/features/product-options/option-room.d.ts +0 -11
  557. package/build/build-esm/src/booking-wizard/features/product-options/option-unit-group.d.ts +0 -13
  558. package/build/build-esm/src/booking-wizard/features/product-options/option-units-card.d.ts +0 -9
  559. package/build/build-esm/src/booking-wizard/features/product-options/options-form.d.ts +0 -4
  560. package/build/build-esm/src/booking-wizard/features/room-options/index.d.ts +0 -4
  561. package/build/build-esm/src/booking-wizard/features/room-options/room-utils.d.ts +0 -22
  562. package/build/build-esm/src/booking-wizard/features/room-options/room.d.ts +0 -12
  563. package/build/build-esm/src/booking-wizard/features/room-options/traveler-rooms.d.ts +0 -9
  564. package/build/build-esm/src/booking-wizard/features/sidebar/index.d.ts +0 -7
  565. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-flight.d.ts +0 -9
  566. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar-util.d.ts +0 -16
  567. package/build/build-esm/src/booking-wizard/features/sidebar/sidebar.d.ts +0 -0
  568. package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-pax.d.ts +0 -7
  569. package/build/build-esm/src/booking-wizard/features/summary/summary-booking-option-unit.d.ts +0 -7
  570. package/build/build-esm/src/booking-wizard/features/summary/summary-flight.d.ts +0 -8
  571. package/build/build-esm/src/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +0 -7
  572. package/build/build-esm/src/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +0 -7
  573. package/build/build-esm/src/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +0 -7
  574. package/build/build-esm/src/booking-wizard/features/summary/summary-slice.d.ts +0 -8
  575. package/build/build-esm/src/booking-wizard/features/summary/summary.d.ts +0 -4
  576. package/build/build-esm/src/booking-wizard/features/travelers-form/controls/gender-control.d.ts +0 -5
  577. package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +0 -104
  578. package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form-util.d.ts +0 -7
  579. package/build/build-esm/src/booking-wizard/features/travelers-form/travelers-form.d.ts +0 -3
  580. package/build/build-esm/src/booking-wizard/features/travelers-form/type-ahead-input.d.ts +0 -16
  581. package/build/build-esm/src/booking-wizard/features/travelers-form/validate-form.d.ts +0 -11
  582. package/build/build-esm/src/booking-wizard/index.d.ts +0 -12
  583. package/build/build-esm/src/booking-wizard/settings-context.d.ts +0 -5
  584. package/build/build-esm/src/booking-wizard/store.d.ts +0 -44
  585. package/build/build-esm/src/booking-wizard/types.d.ts +0 -301
  586. package/build/build-esm/src/booking-wizard/use-offer-printer.d.ts +0 -13
  587. package/build/build-esm/src/content/components/LanguageSwitcher.d.ts +0 -12
  588. package/build/build-esm/src/content/components/accordion.d.ts +0 -9
  589. package/build/build-esm/src/content/components/breadcrumb.d.ts +0 -14
  590. package/build/build-esm/src/content/components/contact.d.ts +0 -3
  591. package/build/build-esm/src/content/components/faq.d.ts +0 -11
  592. package/build/build-esm/src/content/components/gallery.d.ts +0 -13
  593. package/build/build-esm/src/content/components/image-with-text.d.ts +0 -29
  594. package/build/build-esm/src/content/components/login.d.ts +0 -3
  595. package/build/build-esm/src/content/components/personal-contact-form.d.ts +0 -3
  596. package/build/build-esm/src/content/components/slider.d.ts +0 -10
  597. package/build/build-esm/src/content/error/error.d.ts +0 -6
  598. package/build/build-esm/src/content/featured-trips/featured-trip-card.d.ts +0 -4
  599. package/build/build-esm/src/content/featured-trips/index.d.ts +0 -4
  600. package/build/build-esm/src/content/featured-trips/types.d.ts +0 -12
  601. package/build/build-esm/src/content/features/content-page/content-page-self-contained.d.ts +0 -6
  602. package/build/build-esm/src/content/footer/index.d.ts +0 -4
  603. package/build/build-esm/src/content/footer/types.d.ts +0 -27
  604. package/build/build-esm/src/content/header/index.d.ts +0 -4
  605. package/build/build-esm/src/content/header/types.d.ts +0 -25
  606. package/build/build-esm/src/content/image-card-grid/index.d.ts +0 -4
  607. package/build/build-esm/src/content/image-card-grid/types.d.ts +0 -12
  608. package/build/build-esm/src/content/image-with-text-section/card.d.ts +0 -4
  609. package/build/build-esm/src/content/image-with-text-section/index.d.ts +0 -4
  610. package/build/build-esm/src/content/image-with-text-section/types.d.ts +0 -19
  611. package/build/build-esm/src/content/login/confirm-component.d.ts +0 -4
  612. package/build/build-esm/src/content/login/index.d.ts +0 -4
  613. package/build/build-esm/src/content/login/login-component.d.ts +0 -4
  614. package/build/build-esm/src/content/login/login-services.d.ts +0 -11
  615. package/build/build-esm/src/content/login/reset-password-component.d.ts +0 -4
  616. package/build/build-esm/src/content/login/types.d.ts +0 -24
  617. package/build/build-esm/src/content/navbar/index.d.ts +0 -4
  618. package/build/build-esm/src/content/navbar/placeholderData.d.ts +0 -12
  619. package/build/build-esm/src/content/navbar/types.d.ts +0 -32
  620. package/build/build-esm/src/index.d.ts +0 -44
  621. package/build/build-esm/src/qsm/components/QSMContainer/qsm-container.d.ts +0 -3
  622. package/build/build-esm/src/qsm/components/date-picker/index.d.ts +0 -3
  623. package/build/build-esm/src/qsm/components/date-range-picker/calendar-day.d.ts +0 -12
  624. package/build/build-esm/src/qsm/components/date-range-picker/calendar.d.ts +0 -24
  625. package/build/build-esm/src/qsm/components/date-range-picker/index.d.ts +0 -10
  626. package/build/build-esm/src/qsm/components/double-search-input-group/index.d.ts +0 -8
  627. package/build/build-esm/src/qsm/components/item-picker/index.d.ts +0 -13
  628. package/build/build-esm/src/qsm/components/mobile-filter-modal/index.d.ts +0 -3
  629. package/build/build-esm/src/qsm/components/search-input/index.d.ts +0 -15
  630. package/build/build-esm/src/qsm/components/search-input-group/index.d.ts +0 -13
  631. package/build/build-esm/src/qsm/components/travel-class-picker/index.d.ts +0 -3
  632. package/build/build-esm/src/qsm/components/travel-input/index.d.ts +0 -3
  633. package/build/build-esm/src/qsm/components/travel-input-group/index.d.ts +0 -3
  634. package/build/build-esm/src/qsm/components/travel-nationality-picker/index.d.ts +0 -3
  635. package/build/build-esm/src/qsm/components/travel-type-picker/index.d.ts +0 -3
  636. package/build/build-esm/src/qsm/index.d.ts +0 -7
  637. package/build/build-esm/src/qsm/qsm-configuration-context.d.ts +0 -4
  638. package/build/build-esm/src/qsm/store/qsm-slice.d.ts +0 -127
  639. package/build/build-esm/src/qsm/store/qsm-store.d.ts +0 -23
  640. package/build/build-esm/src/qsm/types.d.ts +0 -82
  641. package/build/build-esm/src/search-results/components/book-packaging-entry/index.d.ts +0 -9
  642. package/build/build-esm/src/search-results/components/book-packaging-entry/wl-sidebar.d.ts +0 -9
  643. package/build/build-esm/src/search-results/components/excursions/day-by-day-excursions.d.ts +0 -4
  644. package/build/build-esm/src/search-results/components/excursions/excursion-details.d.ts +0 -3
  645. package/build/build-esm/src/search-results/components/excursions/excursion-results.d.ts +0 -8
  646. package/build/build-esm/src/search-results/components/filters/filters.d.ts +0 -13
  647. package/build/build-esm/src/search-results/components/filters/flight-filters.d.ts +0 -8
  648. package/build/build-esm/src/search-results/components/flight/flight-banner.d.ts +0 -8
  649. package/build/build-esm/src/search-results/components/flight/flight-card.d.ts +0 -7
  650. package/build/build-esm/src/search-results/components/flight/flight-leg.d.ts +0 -7
  651. package/build/build-esm/src/search-results/components/flight/flight-path.d.ts +0 -6
  652. package/build/build-esm/src/search-results/components/flight/flight-results.d.ts +0 -8
  653. package/build/build-esm/src/search-results/components/flight/flight-search-context/index.d.ts +0 -39
  654. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-option.d.ts +0 -14
  655. package/build/build-esm/src/search-results/components/flight/flight-selection/independent-flight-selection.d.ts +0 -7
  656. package/build/build-esm/src/search-results/components/flight/flight-selection/index.d.ts +0 -8
  657. package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-option.d.ts +0 -7
  658. package/build/build-esm/src/search-results/components/flight/flight-selection/paired-flight-selection.d.ts +0 -7
  659. package/build/build-esm/src/search-results/components/group-tour/group-tour-card.d.ts +0 -9
  660. package/build/build-esm/src/search-results/components/group-tour/group-tour-results.d.ts +0 -6
  661. package/build/build-esm/src/search-results/components/hotel/hotel-accommodation-results.d.ts +0 -7
  662. package/build/build-esm/src/search-results/components/hotel/hotel-card.d.ts +0 -8
  663. package/build/build-esm/src/search-results/components/item-picker/index.d.ts +0 -15
  664. package/build/build-esm/src/search-results/components/itinerary/full-itinerary.d.ts +0 -6
  665. package/build/build-esm/src/search-results/components/itinerary/index.d.ts +0 -10
  666. package/build/build-esm/src/search-results/components/multi-range-filter.d.ts +0 -11
  667. package/build/build-esm/src/search-results/components/round-trip/round-trip-results.d.ts +0 -4
  668. package/build/build-esm/src/search-results/components/search-results-container/flight-search-results.d.ts +0 -6
  669. package/build/build-esm/src/search-results/components/search-results-container/search-results-container.d.ts +0 -6
  670. package/build/build-esm/src/search-results/components/spinner/spinner.d.ts +0 -6
  671. package/build/build-esm/src/search-results/components/tab-views/index.d.ts +0 -4
  672. package/build/build-esm/src/search-results/features/flights/flight-search-results-self-contained.d.ts +0 -4
  673. package/build/build-esm/src/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +0 -4
  674. package/build/build-esm/src/search-results/features/hotels/hotel-search-results-self-contained.d.ts +0 -4
  675. package/build/build-esm/src/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +0 -4
  676. package/build/build-esm/src/search-results/index.d.ts +0 -8
  677. package/build/build-esm/src/search-results/search-results-configuration-context.d.ts +0 -4
  678. package/build/build-esm/src/search-results/store/search-results-selectors.d.ts +0 -546
  679. package/build/build-esm/src/search-results/store/search-results-slice.d.ts +0 -138
  680. package/build/build-esm/src/search-results/store/search-results-store.d.ts +0 -23
  681. package/build/build-esm/src/search-results/types.d.ts +0 -211
  682. package/build/build-esm/src/search-results/utils/flight-utils.d.ts +0 -16
  683. package/build/build-esm/src/search-results/utils/packaging-utils.d.ts +0 -7
  684. package/build/build-esm/src/search-results/utils/query-utils.d.ts +0 -12
  685. package/build/build-esm/src/search-results/utils/search-results-utils.d.ts +0 -16
  686. package/build/build-esm/src/shared/booking/booking-panel.d.ts +0 -13
  687. package/build/build-esm/src/shared/booking/product-card.d.ts +0 -8
  688. package/build/build-esm/src/shared/booking/shared-confirmation.d.ts +0 -25
  689. package/build/build-esm/src/shared/booking/shared-sidebar.d.ts +0 -34
  690. package/build/build-esm/src/shared/booking/step-indicators.d.ts +0 -7
  691. package/build/build-esm/src/shared/booking/summary.d.ts +0 -44
  692. package/build/build-esm/src/shared/booking/travelers-form.d.ts +0 -93
  693. package/build/build-esm/src/shared/components/flyin/accommodation-flyin.d.ts +0 -7
  694. package/build/build-esm/src/shared/components/flyin/flights-flyin.d.ts +0 -7
  695. package/build/build-esm/src/shared/components/flyin/flyin.d.ts +0 -20
  696. package/build/build-esm/src/shared/components/flyin/group-tour-flyin.d.ts +0 -8
  697. package/build/build-esm/src/shared/components/flyin/packaging-flights-flyin.d.ts +0 -9
  698. package/build/build-esm/src/shared/components/icon.d.ts +0 -11
  699. package/build/build-esm/src/shared/components/loader.d.ts +0 -6
  700. package/build/build-esm/src/shared/types.d.ts +0 -16
  701. package/build/build-esm/src/shared/utils/booking-summary.d.ts +0 -2
  702. package/build/build-esm/src/shared/utils/class-util.d.ts +0 -1
  703. package/build/build-esm/src/shared/utils/localization-util.d.ts +0 -440
  704. package/build/build-esm/src/shared/utils/query-string-util.d.ts +0 -8
  705. package/build/build-esm/src/shared/utils/tide-api-utils.d.ts +0 -10
  706. package/build/build-esm/src/shared/utils/use-media-query-util.d.ts +0 -2
@@ -1,538 +1,538 @@
1
- import { BookingPackageItem, PackagingAccommodationResponse, PackagingFlightResponse } from '@qite/tide-client';
2
- import { Filter, SortByType, TideTag } from '../types';
3
- import { filter, flatMap, orderBy } from 'lodash';
4
- import { getArrivalSegment, getDepartureRangeName, getDepartureSegment, getNumberOfStops } from './flight-utils';
5
- import { DepartureRange } from '../../shared/types';
6
- import { durationInTicksInMinutes, rangeFromDateTimeInMinutes } from '../../shared/utils/localization-util';
7
-
8
- export const enrichFiltersWithResults = (results: BookingPackageItem[], filters: Filter[] | undefined, tags: TideTag[]): Filter[] => {
9
- if (!results || results.length === 0 || !filters) {
10
- return filters ?? [];
11
- }
12
-
13
- return filters.map((filter) => {
14
- let updatedFilter = { ...filter };
15
-
16
- if (filter.property === 'price' && (filter.min == null || filter.max == null)) {
17
- const prices = results.map((r) => r.price ?? 0).filter((p) => p > 0);
18
- if (prices.length > 0) {
19
- updatedFilter.min = Math.floor(Math.min(...prices));
20
- updatedFilter.max = Math.ceil(Math.max(...prices));
21
- }
22
- }
23
-
24
- if (filter.property === 'accommodation') {
25
- const map = new Map<string, { name?: string; code: string }>();
26
-
27
- results.forEach((r) => {
28
- if (r.accommodationCode) {
29
- map.set(r.accommodationCode, {
30
- name: r.accommodationName,
31
- code: r.accommodationCode
32
- });
33
- }
34
- });
35
-
36
- updatedFilter.options = Array.from(map.values()).map((accommodation) => ({
37
- label: accommodation.name ?? accommodation.code,
38
- value: accommodation.code,
39
- isChecked: false
40
- }));
41
- }
42
-
43
- if (filter.property === 'regime') {
44
- const map = new Map<string, { name?: string; code: string }>();
45
-
46
- results.forEach((r) => {
47
- if (r.regimeCode) {
48
- map.set(r.regimeCode, {
49
- name: r.regimeName,
50
- code: r.regimeCode
51
- });
52
- }
53
- });
54
-
55
- updatedFilter.options = Array.from(map.values()).map((regime) => ({
56
- label: regime.name ?? regime.code,
57
- value: regime.code,
58
- isChecked: false
59
- }));
60
- }
61
-
62
- if (filter.property === 'theme') {
63
- const map = new Map<number, { name: string; id: number }>();
64
-
65
- results.forEach((r) => {
66
- r.tagIds?.forEach((tagId) => {
67
- const tag = tags.find((t) => t.id === tagId);
68
- if (tag && tag.id != null && tag.name != null) {
69
- map.set(tag.id, { name: tag.name, id: tag.id });
70
- }
71
- });
72
- });
73
-
74
- updatedFilter.options = Array.from(map.values()).map((theme) => ({
75
- label: theme.name,
76
- value: theme.id,
77
- isChecked: false
78
- }));
79
- }
80
-
81
- return updatedFilter;
82
- });
83
- };
84
-
85
- export const enrichFiltersWithPackageAccoResults = (results: PackagingAccommodationResponse[], tags: TideTag[]): Filter[] => {
86
- const filters: Filter[] = [];
87
- if (!results || results.length === 0) {
88
- return filters;
89
- }
90
-
91
- const regimeFilter: Filter = {
92
- property: 'regime',
93
- label: 'Regime',
94
- type: 'checkbox',
95
- options: [],
96
- isFrontendFilter: true
97
- };
98
- const map = new Map<string, { name?: string; code: string }>();
99
-
100
- results.forEach((r) => {
101
- const rooms = flatMap(r.rooms);
102
- if (rooms) {
103
- rooms.map((room) => {
104
- room.options.map((option) => {
105
- if (option.regimeCode) {
106
- map.set(option.regimeCode, {
107
- name: option.regimeName,
108
- code: option.regimeCode
109
- });
110
- }
111
- });
112
- });
113
- }
114
- });
115
-
116
- regimeFilter.options = Array.from(map.values()).map((regime) => ({
117
- label: regime.name ?? regime.code,
118
- value: regime.code,
119
- isChecked: false
120
- }));
121
- filters.push(regimeFilter);
122
-
123
- const priceFilter: Filter = {
124
- property: 'price',
125
- label: 'Prijs',
126
- type: 'slider',
127
- isFrontendFilter: true
128
- };
129
- const prices = results.map((r) => r.price ?? 0).filter((p) => p > 0);
130
- priceFilter.min = Math.floor(Math.min(...prices));
131
- priceFilter.max = Math.ceil(Math.max(...prices));
132
-
133
- filters.push(priceFilter);
134
-
135
- const starsFilter: Filter = {
136
- property: 'rating',
137
- label: 'Stars',
138
- type: 'star-rating',
139
- options: [],
140
- isFrontendFilter: true
141
- };
142
- const ratingMap = new Map<string, { name?: string; value: number }>();
143
-
144
- results.forEach((r) => {
145
- const stars = r.stars;
146
- if (stars) {
147
- ratingMap.set(stars.toString(), {
148
- name: stars.toString(),
149
- value: stars
150
- });
151
- }
152
- });
153
-
154
- starsFilter.options = Array.from(ratingMap.values()).map((rating) => ({
155
- label: rating.name ?? rating.value.toString(),
156
- value: rating.value,
157
- isChecked: false
158
- }));
159
-
160
- filters.push(starsFilter);
161
-
162
- return filters;
163
- };
164
-
165
- export const enrichFiltersWithPackageFlightResults = (results: PackagingFlightResponse[], tags: TideTag[], translations: any): Filter[] => {
166
- const filters: Filter[] = [];
167
- if (!results || results.length === 0) {
168
- return filters;
169
- }
170
-
171
- // Airlines
172
- const airlinesFilter: Filter = {
173
- label: 'Airlines',
174
- property: 'airline',
175
- type: 'checkbox',
176
- isFrontendFilter: true,
177
- options: []
178
- };
179
- const airlinesFilterMap = new Map<string, { name?: string; code: string }>();
180
-
181
- results.map((r) => {
182
- const airlineCode = r.airlineCode;
183
- const airlineName = r.airlineName;
184
- if (airlineCode && airlineName) {
185
- airlinesFilterMap.set(airlineCode, {
186
- name: airlineName,
187
- code: airlineCode
188
- });
189
- }
190
- });
191
-
192
- airlinesFilter.options = Array.from(airlinesFilterMap.values()).map((airline) => ({
193
- label: airline.name ?? airline.code,
194
- value: airline.code,
195
- isChecked: false
196
- }));
197
-
198
- filters.push(airlinesFilter);
199
-
200
- // Number of stops
201
- const stopsFilter: Filter = {
202
- label: 'Number of Stops',
203
- property: 'numberOfStops',
204
- type: 'checkbox',
205
- isFrontendFilter: true,
206
- options: []
207
- };
208
- const stopsMap = new Map<number, { numberOfStops: number }>();
209
-
210
- results.map((result) => {
211
- let numberOfStops = getNumberOfStops(result.outward);
212
- if (!stopsMap.has(numberOfStops)) {
213
- stopsMap.set(numberOfStops, { numberOfStops });
214
- }
215
- });
216
-
217
- stopsFilter.options = Array.from(stopsMap.values()).map((stop) => ({
218
- label: `${stop.numberOfStops == 0 ? 'direct' : stop.numberOfStops + ` Stop${stop.numberOfStops !== 1 ? 's' : ''}`}`,
219
- value: stop.numberOfStops,
220
- isChecked: false
221
- }));
222
-
223
- filters.push(stopsFilter);
224
-
225
- // Departure range
226
- const departureRangeFilter: Filter = {
227
- label: 'Departure Range',
228
- property: 'departureRange',
229
- type: 'checkbox',
230
- isFrontendFilter: true,
231
- options: []
232
- };
233
- const departureRangeMap = new Map<DepartureRange, DepartureRange>();
234
- results.map((result) => {
235
- const departureRange = rangeFromDateTimeInMinutes(getDepartureSegment(result.outward)?.departureDateTime);
236
- if (!departureRangeMap.has(departureRange)) {
237
- departureRangeMap.set(departureRange, departureRange);
238
- }
239
- });
240
-
241
- departureRangeFilter.options = orderBy(Array.from(departureRangeMap.values()), ['id'], ['asc']).map((range) => ({
242
- label: getDepartureRangeName(translations, range),
243
- value: range,
244
- isChecked: false
245
- }));
246
-
247
- filters.push(departureRangeFilter);
248
-
249
- // Departure Airport
250
- const departureAirportFilter: Filter = {
251
- label: 'Departure Airport',
252
- property: 'departureAirport',
253
- type: 'checkbox',
254
- isFrontendFilter: true,
255
- options: []
256
- };
257
- const departureAirportsMap = new Map<string, { name?: string; code: string }>();
258
-
259
- results.map((result) => {
260
- const departureSegment = getDepartureSegment(result.outward);
261
- const departureAirport = departureSegment?.departureAirportCode;
262
- if (departureAirport && !departureAirportsMap.has(departureAirport)) {
263
- departureAirportsMap.set(departureAirport, {
264
- name: departureSegment?.departureAirportName + ' (' + departureAirport + ')',
265
- code: departureAirport
266
- });
267
- }
268
- });
269
-
270
- departureAirportFilter.options = Array.from(departureAirportsMap.values()).map((airport) => ({
271
- label: airport.name ?? airport.code,
272
- value: airport.code,
273
- isChecked: false
274
- }));
275
-
276
- filters.push(departureAirportFilter);
277
-
278
- // Arrival Airport
279
- const arrivalAirportFilter: Filter = {
280
- label: 'Arrival Airport',
281
- property: 'arrivalAirport',
282
- type: 'checkbox',
283
- isFrontendFilter: true,
284
- options: []
285
- };
286
- const arrivalAirportsMap = new Map<string, { name?: string; code: string }>();
287
-
288
- results.map((result) => {
289
- const arrivalSegment = getArrivalSegment(result.outward);
290
- const arrivalAirport = arrivalSegment?.arrivalAirportCode;
291
- if (arrivalAirport && !arrivalAirportsMap.has(arrivalAirport)) {
292
- arrivalAirportsMap.set(arrivalAirport, {
293
- name: arrivalSegment?.arrivalAirportName + ' (' + arrivalAirport + ')',
294
- code: arrivalAirport
295
- });
296
- }
297
- });
298
-
299
- arrivalAirportFilter.options = Array.from(arrivalAirportsMap.values()).map((airport) => ({
300
- label: airport.name ?? airport.code,
301
- value: airport.code,
302
- isChecked: false
303
- }));
304
-
305
- filters.push(arrivalAirportFilter);
306
-
307
- // Price
308
- const priceFilter: Filter = {
309
- label: 'Price',
310
- property: 'price',
311
- type: 'slider',
312
- isFrontendFilter: true
313
- };
314
-
315
- const prices = results.map((r) => r.price ?? 0).filter((p) => p > 0);
316
- if (prices.length > 0) {
317
- priceFilter.min = Math.floor(Math.min(...prices));
318
- priceFilter.max = Math.ceil(Math.max(...prices));
319
- }
320
-
321
- filters.push(priceFilter);
322
-
323
- // Travel duration
324
- const travelDurationFilter: Filter = {
325
- label: 'Travel Duration',
326
- property: 'travelDuration',
327
- type: 'slider',
328
- isFrontendFilter: true
329
- };
330
-
331
- const minTravelTimeDuration = Math.min(...results.map((result) => result.outward.durationInTicks));
332
- const maxTravelTimeDuration = Math.max(...results.map((result) => result.outward.durationInTicks));
333
- const minTravelTimeValue = durationInTicksInMinutes(minTravelTimeDuration);
334
- const maxTravelTimeValue = durationInTicksInMinutes(maxTravelTimeDuration);
335
- if (minTravelTimeValue != null && maxTravelTimeValue != null) {
336
- travelDurationFilter.min = minTravelTimeValue;
337
- travelDurationFilter.max = maxTravelTimeValue;
338
- }
339
-
340
- filters.push(travelDurationFilter);
341
-
342
- return filters;
343
- };
344
-
345
- export const applyFilters = (results: BookingPackageItem[], filters: Filter[], sortBy: SortByType | null) => {
346
- const filtered = results.filter((r) => {
347
- return filters.every((filter) => {
348
- if (!filter.isFrontendFilter) return true;
349
-
350
- // ACCOMMODATION
351
- if (filter.property === 'accommodation') {
352
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
353
- if (!selected || selected.length === 0) return true;
354
- return selected.includes(r.accommodationCode);
355
- }
356
-
357
- // REGIME
358
- if (filter.property === 'regime') {
359
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
360
- if (!selected || selected.length === 0) return true;
361
- if (!r.regimeCode) return false;
362
- return selected.includes(r.regimeCode);
363
- }
364
-
365
- // PRICE
366
- if (filter.property === 'price') {
367
- if (filter.selectedMin != null && r.price < filter.selectedMin) return false;
368
- if (filter.selectedMax != null && r.price > filter.selectedMax) return false;
369
- return true;
370
- }
371
-
372
- // THEME
373
- if (filter.property === 'theme') {
374
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
375
- if (!selected || selected.length === 0) return true;
376
-
377
- return r.tagIds?.some((tagId) => selected.includes(tagId));
378
- }
379
-
380
- return true;
381
- });
382
- });
383
-
384
- // SORTING
385
- if (!sortBy || sortBy.label === 'default') {
386
- return filtered;
387
- }
388
-
389
- return filtered.sort((a, b) => {
390
- if (sortBy.label === 'price') {
391
- return sortBy.direction === 'asc' ? a.price - b.price : b.price - a.price;
392
- }
393
-
394
- return 0;
395
- });
396
- };
397
-
398
- export const applyFiltersToPackageAccoResults = (results: PackagingAccommodationResponse[], filters: Filter[], sortBy: SortByType | null) => {
399
- const filtered = results.filter((r) => {
400
- return filters.every((filter) => {
401
- if (!filter.isFrontendFilter) return true;
402
-
403
- // ACCOMMODATION
404
- if (filter.property === 'accommodation') {
405
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
406
- if (!selected || selected.length === 0) return true;
407
- const roomOptions = r.rooms.flatMap((room) => room.options);
408
- return roomOptions.some((option) => selected.includes(option.accommodationCode));
409
- }
410
-
411
- // REGIME
412
- if (filter.property === 'regime') {
413
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
414
- if (!selected || selected.length === 0) return true;
415
- const roomOptions = r.rooms.flatMap((room) => room.options);
416
- return roomOptions.some((option) => selected.includes(option.regimeCode));
417
- }
418
-
419
- // PRICE
420
- if (filter.property === 'price') {
421
- if (filter.selectedMin != null && r.price < filter.selectedMin) return false;
422
- if (filter.selectedMax != null && r.price > filter.selectedMax) return false;
423
- return true;
424
- }
425
-
426
- // RATING
427
- // if (filter.property === 'rating') {
428
- // if (r.stars == null) return false;
429
- // if (filter.selectedRating != null && r.stars < filter.selectedRating) return false;
430
-
431
- // return true;
432
- // }
433
-
434
- return true;
435
- });
436
- });
437
-
438
- // SORTING
439
- if (!sortBy || sortBy.label === 'default') {
440
- return filtered;
441
- }
442
-
443
- return filtered.sort((a, b) => {
444
- if (sortBy.label === 'price') {
445
- return sortBy.direction === 'asc' ? a.price - b.price : b.price - a.price;
446
- }
447
-
448
- return 0;
449
- });
450
- };
451
-
452
- export const applyFiltersToPackageFlightResults = (results: PackagingFlightResponse[], filters: Filter[], sortBy: SortByType | null) => {
453
- const filtered = results.filter((result) => {
454
- return filters.every((filter) => {
455
- if (!filter.isFrontendFilter) return true;
456
-
457
- // Airline
458
- if (filter.property === 'airline') {
459
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
460
- if (!selected || selected.length === 0) return true;
461
- return selected.includes(result.airlineCode);
462
- }
463
-
464
- // Stops
465
- if (filter.property === 'numberOfStops') {
466
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
467
- if (!selected || selected.length === 0) return true;
468
- return selected.includes(getNumberOfStops(result.outward)) && selected.includes(getNumberOfStops(result.return));
469
- }
470
-
471
- // Departure range
472
- if (filter.property === 'departureRange') {
473
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
474
- if (!selected || selected.length === 0) return true;
475
- return selected.includes(rangeFromDateTimeInMinutes(getDepartureSegment(result.outward)?.departureDateTime));
476
- }
477
-
478
- // Departure airport
479
- if (filter.property === 'departureAirport') {
480
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
481
- if (!selected || selected.length === 0) return true;
482
-
483
- const departureAirportCode = getDepartureSegment(result.outward)?.departureAirportCode;
484
- if (!departureAirportCode) return false;
485
-
486
- return selected.includes(departureAirportCode);
487
- }
488
-
489
- // Arrival airport
490
- if (filter.property === 'arrivalAirport') {
491
- const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
492
- if (!selected || selected.length === 0) return true;
493
-
494
- const arrivalAirportCode = getArrivalSegment(result.outward)?.arrivalAirportCode;
495
- if (!arrivalAirportCode) return false;
496
-
497
- return selected.includes(arrivalAirportCode);
498
- }
499
-
500
- // PRICE
501
- if (filter.property === 'price') {
502
- if (filter.selectedMin != null && result.price < filter.selectedMin) return false;
503
- if (filter.selectedMax != null && result.price > filter.selectedMax) return false;
504
- return true;
505
- }
506
-
507
- // Travel times
508
- if (filter.property === 'travelDuration') {
509
- if (filter.selectedMin != null && durationInTicksInMinutes(result.outward?.durationInTicks) < filter.selectedMin) return false;
510
- if (filter.selectedMax != null && durationInTicksInMinutes(result.outward?.durationInTicks) > filter.selectedMax) return false;
511
- return true;
512
- }
513
-
514
- return true;
515
- });
516
- });
517
-
518
- // SORTING
519
- if (!sortBy || sortBy.label === 'default') {
520
- return filtered;
521
- }
522
-
523
- if (sortBy.label === 'departureTime') {
524
- return orderBy(
525
- results,
526
- [(result) => getDepartureSegment(result.outward)?.departureDateTime],
527
- [sortBy.direction] // or "desc"
528
- );
529
- } else if (sortBy.label === 'durationInTicks') {
530
- return orderBy(
531
- results,
532
- [(result) => durationInTicksInMinutes(result.outward?.durationInTicks ?? 0)],
533
- [sortBy.direction] // or "desc"
534
- );
535
- } else {
536
- return orderBy(results, [sortBy.label], [sortBy.direction]);
537
- }
538
- };
1
+ import { BookingPackageItem, PackagingAccommodationResponse, PackagingFlightResponse } from '@qite/tide-client';
2
+ import { Filter, SortByType, TideTag } from '../types';
3
+ import { filter, flatMap, orderBy } from 'lodash';
4
+ import { getArrivalSegment, getDepartureRangeName, getDepartureSegment, getNumberOfStops } from './flight-utils';
5
+ import { DepartureRange } from '../../shared/types';
6
+ import { durationInTicksInMinutes, rangeFromDateTimeInMinutes } from '../../shared/utils/localization-util';
7
+
8
+ export const enrichFiltersWithResults = (results: BookingPackageItem[], filters: Filter[] | undefined, tags: TideTag[]): Filter[] => {
9
+ if (!results || results.length === 0 || !filters) {
10
+ return filters ?? [];
11
+ }
12
+
13
+ return filters.map((filter) => {
14
+ let updatedFilter = { ...filter };
15
+
16
+ if (filter.property === 'price' && (filter.min == null || filter.max == null)) {
17
+ const prices = results.map((r) => r.price ?? 0).filter((p) => p > 0);
18
+ if (prices.length > 0) {
19
+ updatedFilter.min = Math.floor(Math.min(...prices));
20
+ updatedFilter.max = Math.ceil(Math.max(...prices));
21
+ }
22
+ }
23
+
24
+ if (filter.property === 'accommodation') {
25
+ const map = new Map<string, { name?: string; code: string }>();
26
+
27
+ results.forEach((r) => {
28
+ if (r.accommodationCode) {
29
+ map.set(r.accommodationCode, {
30
+ name: r.accommodationName,
31
+ code: r.accommodationCode
32
+ });
33
+ }
34
+ });
35
+
36
+ updatedFilter.options = Array.from(map.values()).map((accommodation) => ({
37
+ label: accommodation.name ?? accommodation.code,
38
+ value: accommodation.code,
39
+ isChecked: false
40
+ }));
41
+ }
42
+
43
+ if (filter.property === 'regime') {
44
+ const map = new Map<string, { name?: string; code: string }>();
45
+
46
+ results.forEach((r) => {
47
+ if (r.regimeCode) {
48
+ map.set(r.regimeCode, {
49
+ name: r.regimeName,
50
+ code: r.regimeCode
51
+ });
52
+ }
53
+ });
54
+
55
+ updatedFilter.options = Array.from(map.values()).map((regime) => ({
56
+ label: regime.name ?? regime.code,
57
+ value: regime.code,
58
+ isChecked: false
59
+ }));
60
+ }
61
+
62
+ if (filter.property === 'theme') {
63
+ const map = new Map<number, { name: string; id: number }>();
64
+
65
+ results.forEach((r) => {
66
+ r.tagIds?.forEach((tagId) => {
67
+ const tag = tags.find((t) => t.id === tagId);
68
+ if (tag && tag.id != null && tag.name != null) {
69
+ map.set(tag.id, { name: tag.name, id: tag.id });
70
+ }
71
+ });
72
+ });
73
+
74
+ updatedFilter.options = Array.from(map.values()).map((theme) => ({
75
+ label: theme.name,
76
+ value: theme.id,
77
+ isChecked: false
78
+ }));
79
+ }
80
+
81
+ return updatedFilter;
82
+ });
83
+ };
84
+
85
+ export const enrichFiltersWithPackageAccoResults = (results: PackagingAccommodationResponse[], tags: TideTag[]): Filter[] => {
86
+ const filters: Filter[] = [];
87
+ if (!results || results.length === 0) {
88
+ return filters;
89
+ }
90
+
91
+ const regimeFilter: Filter = {
92
+ property: 'regime',
93
+ label: 'Regime',
94
+ type: 'checkbox',
95
+ options: [],
96
+ isFrontendFilter: true
97
+ };
98
+ const map = new Map<string, { name?: string; code: string }>();
99
+
100
+ results.forEach((r) => {
101
+ const rooms = flatMap(r.rooms);
102
+ if (rooms) {
103
+ rooms.map((room) => {
104
+ room.options.map((option) => {
105
+ if (option.regimeCode) {
106
+ map.set(option.regimeCode, {
107
+ name: option.regimeName,
108
+ code: option.regimeCode
109
+ });
110
+ }
111
+ });
112
+ });
113
+ }
114
+ });
115
+
116
+ regimeFilter.options = Array.from(map.values()).map((regime) => ({
117
+ label: regime.name ?? regime.code,
118
+ value: regime.code,
119
+ isChecked: false
120
+ }));
121
+ filters.push(regimeFilter);
122
+
123
+ const priceFilter: Filter = {
124
+ property: 'price',
125
+ label: 'Prijs',
126
+ type: 'slider',
127
+ isFrontendFilter: true
128
+ };
129
+ const prices = results.map((r) => r.price ?? 0).filter((p) => p > 0);
130
+ priceFilter.min = Math.floor(Math.min(...prices));
131
+ priceFilter.max = Math.ceil(Math.max(...prices));
132
+
133
+ filters.push(priceFilter);
134
+
135
+ const starsFilter: Filter = {
136
+ property: 'rating',
137
+ label: 'Stars',
138
+ type: 'star-rating',
139
+ options: [],
140
+ isFrontendFilter: true
141
+ };
142
+ const ratingMap = new Map<string, { name?: string; value: number }>();
143
+
144
+ results.forEach((r) => {
145
+ const stars = r.stars;
146
+ if (stars) {
147
+ ratingMap.set(stars.toString(), {
148
+ name: stars.toString(),
149
+ value: stars
150
+ });
151
+ }
152
+ });
153
+
154
+ starsFilter.options = Array.from(ratingMap.values()).map((rating) => ({
155
+ label: rating.name ?? rating.value.toString(),
156
+ value: rating.value,
157
+ isChecked: false
158
+ }));
159
+
160
+ filters.push(starsFilter);
161
+
162
+ return filters;
163
+ };
164
+
165
+ export const enrichFiltersWithPackageFlightResults = (results: PackagingFlightResponse[], tags: TideTag[], translations: any): Filter[] => {
166
+ const filters: Filter[] = [];
167
+ if (!results || results.length === 0) {
168
+ return filters;
169
+ }
170
+
171
+ // Airlines
172
+ const airlinesFilter: Filter = {
173
+ label: 'Airlines',
174
+ property: 'airline',
175
+ type: 'checkbox',
176
+ isFrontendFilter: true,
177
+ options: []
178
+ };
179
+ const airlinesFilterMap = new Map<string, { name?: string; code: string }>();
180
+
181
+ results.map((r) => {
182
+ const airlineCode = r.airlineCode;
183
+ const airlineName = r.airlineName;
184
+ if (airlineCode && airlineName) {
185
+ airlinesFilterMap.set(airlineCode, {
186
+ name: airlineName,
187
+ code: airlineCode
188
+ });
189
+ }
190
+ });
191
+
192
+ airlinesFilter.options = Array.from(airlinesFilterMap.values()).map((airline) => ({
193
+ label: airline.name ?? airline.code,
194
+ value: airline.code,
195
+ isChecked: false
196
+ }));
197
+
198
+ filters.push(airlinesFilter);
199
+
200
+ // Number of stops
201
+ const stopsFilter: Filter = {
202
+ label: 'Number of Stops',
203
+ property: 'numberOfStops',
204
+ type: 'checkbox',
205
+ isFrontendFilter: true,
206
+ options: []
207
+ };
208
+ const stopsMap = new Map<number, { numberOfStops: number }>();
209
+
210
+ results.map((result) => {
211
+ let numberOfStops = getNumberOfStops(result.outward);
212
+ if (!stopsMap.has(numberOfStops)) {
213
+ stopsMap.set(numberOfStops, { numberOfStops });
214
+ }
215
+ });
216
+
217
+ stopsFilter.options = Array.from(stopsMap.values()).map((stop) => ({
218
+ label: `${stop.numberOfStops == 0 ? 'direct' : stop.numberOfStops + ` Stop${stop.numberOfStops !== 1 ? 's' : ''}`}`,
219
+ value: stop.numberOfStops,
220
+ isChecked: false
221
+ }));
222
+
223
+ filters.push(stopsFilter);
224
+
225
+ // Departure range
226
+ const departureRangeFilter: Filter = {
227
+ label: 'Departure Range',
228
+ property: 'departureRange',
229
+ type: 'checkbox',
230
+ isFrontendFilter: true,
231
+ options: []
232
+ };
233
+ const departureRangeMap = new Map<DepartureRange, DepartureRange>();
234
+ results.map((result) => {
235
+ const departureRange = rangeFromDateTimeInMinutes(getDepartureSegment(result.outward)?.departureDateTime);
236
+ if (!departureRangeMap.has(departureRange)) {
237
+ departureRangeMap.set(departureRange, departureRange);
238
+ }
239
+ });
240
+
241
+ departureRangeFilter.options = orderBy(Array.from(departureRangeMap.values()), ['id'], ['asc']).map((range) => ({
242
+ label: getDepartureRangeName(translations, range),
243
+ value: range,
244
+ isChecked: false
245
+ }));
246
+
247
+ filters.push(departureRangeFilter);
248
+
249
+ // Departure Airport
250
+ const departureAirportFilter: Filter = {
251
+ label: 'Departure Airport',
252
+ property: 'departureAirport',
253
+ type: 'checkbox',
254
+ isFrontendFilter: true,
255
+ options: []
256
+ };
257
+ const departureAirportsMap = new Map<string, { name?: string; code: string }>();
258
+
259
+ results.map((result) => {
260
+ const departureSegment = getDepartureSegment(result.outward);
261
+ const departureAirport = departureSegment?.departureAirportCode;
262
+ if (departureAirport && !departureAirportsMap.has(departureAirport)) {
263
+ departureAirportsMap.set(departureAirport, {
264
+ name: departureSegment?.departureAirportName + ' (' + departureAirport + ')',
265
+ code: departureAirport
266
+ });
267
+ }
268
+ });
269
+
270
+ departureAirportFilter.options = Array.from(departureAirportsMap.values()).map((airport) => ({
271
+ label: airport.name ?? airport.code,
272
+ value: airport.code,
273
+ isChecked: false
274
+ }));
275
+
276
+ filters.push(departureAirportFilter);
277
+
278
+ // Arrival Airport
279
+ const arrivalAirportFilter: Filter = {
280
+ label: 'Arrival Airport',
281
+ property: 'arrivalAirport',
282
+ type: 'checkbox',
283
+ isFrontendFilter: true,
284
+ options: []
285
+ };
286
+ const arrivalAirportsMap = new Map<string, { name?: string; code: string }>();
287
+
288
+ results.map((result) => {
289
+ const arrivalSegment = getArrivalSegment(result.outward);
290
+ const arrivalAirport = arrivalSegment?.arrivalAirportCode;
291
+ if (arrivalAirport && !arrivalAirportsMap.has(arrivalAirport)) {
292
+ arrivalAirportsMap.set(arrivalAirport, {
293
+ name: arrivalSegment?.arrivalAirportName + ' (' + arrivalAirport + ')',
294
+ code: arrivalAirport
295
+ });
296
+ }
297
+ });
298
+
299
+ arrivalAirportFilter.options = Array.from(arrivalAirportsMap.values()).map((airport) => ({
300
+ label: airport.name ?? airport.code,
301
+ value: airport.code,
302
+ isChecked: false
303
+ }));
304
+
305
+ filters.push(arrivalAirportFilter);
306
+
307
+ // Price
308
+ const priceFilter: Filter = {
309
+ label: 'Price',
310
+ property: 'price',
311
+ type: 'slider',
312
+ isFrontendFilter: true
313
+ };
314
+
315
+ const prices = results.map((r) => r.price ?? 0).filter((p) => p > 0);
316
+ if (prices.length > 0) {
317
+ priceFilter.min = Math.floor(Math.min(...prices));
318
+ priceFilter.max = Math.ceil(Math.max(...prices));
319
+ }
320
+
321
+ filters.push(priceFilter);
322
+
323
+ // Travel duration
324
+ const travelDurationFilter: Filter = {
325
+ label: 'Travel Duration',
326
+ property: 'travelDuration',
327
+ type: 'slider',
328
+ isFrontendFilter: true
329
+ };
330
+
331
+ const minTravelTimeDuration = Math.min(...results.map((result) => result.outward.durationInTicks));
332
+ const maxTravelTimeDuration = Math.max(...results.map((result) => result.outward.durationInTicks));
333
+ const minTravelTimeValue = durationInTicksInMinutes(minTravelTimeDuration);
334
+ const maxTravelTimeValue = durationInTicksInMinutes(maxTravelTimeDuration);
335
+ if (minTravelTimeValue != null && maxTravelTimeValue != null) {
336
+ travelDurationFilter.min = minTravelTimeValue;
337
+ travelDurationFilter.max = maxTravelTimeValue;
338
+ }
339
+
340
+ filters.push(travelDurationFilter);
341
+
342
+ return filters;
343
+ };
344
+
345
+ export const applyFilters = (results: BookingPackageItem[], filters: Filter[], sortBy: SortByType | null) => {
346
+ const filtered = results.filter((r) => {
347
+ return filters.every((filter) => {
348
+ if (!filter.isFrontendFilter) return true;
349
+
350
+ // ACCOMMODATION
351
+ if (filter.property === 'accommodation') {
352
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
353
+ if (!selected || selected.length === 0) return true;
354
+ return selected.includes(r.accommodationCode);
355
+ }
356
+
357
+ // REGIME
358
+ if (filter.property === 'regime') {
359
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
360
+ if (!selected || selected.length === 0) return true;
361
+ if (!r.regimeCode) return false;
362
+ return selected.includes(r.regimeCode);
363
+ }
364
+
365
+ // PRICE
366
+ if (filter.property === 'price') {
367
+ if (filter.selectedMin != null && r.price < filter.selectedMin) return false;
368
+ if (filter.selectedMax != null && r.price > filter.selectedMax) return false;
369
+ return true;
370
+ }
371
+
372
+ // THEME
373
+ if (filter.property === 'theme') {
374
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
375
+ if (!selected || selected.length === 0) return true;
376
+
377
+ return r.tagIds?.some((tagId) => selected.includes(tagId));
378
+ }
379
+
380
+ return true;
381
+ });
382
+ });
383
+
384
+ // SORTING
385
+ if (!sortBy || sortBy.label === 'default') {
386
+ return filtered;
387
+ }
388
+
389
+ return filtered.sort((a, b) => {
390
+ if (sortBy.label === 'price') {
391
+ return sortBy.direction === 'asc' ? a.price - b.price : b.price - a.price;
392
+ }
393
+
394
+ return 0;
395
+ });
396
+ };
397
+
398
+ export const applyFiltersToPackageAccoResults = (results: PackagingAccommodationResponse[], filters: Filter[], sortBy: SortByType | null) => {
399
+ const filtered = results.filter((r) => {
400
+ return filters.every((filter) => {
401
+ if (!filter.isFrontendFilter) return true;
402
+
403
+ // ACCOMMODATION
404
+ if (filter.property === 'accommodation') {
405
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
406
+ if (!selected || selected.length === 0) return true;
407
+ const roomOptions = r.rooms.flatMap((room) => room.options);
408
+ return roomOptions.some((option) => selected.includes(option.accommodationCode));
409
+ }
410
+
411
+ // REGIME
412
+ if (filter.property === 'regime') {
413
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
414
+ if (!selected || selected.length === 0) return true;
415
+ const roomOptions = r.rooms.flatMap((room) => room.options);
416
+ return roomOptions.some((option) => selected.includes(option.regimeCode));
417
+ }
418
+
419
+ // PRICE
420
+ if (filter.property === 'price') {
421
+ if (filter.selectedMin != null && r.price < filter.selectedMin) return false;
422
+ if (filter.selectedMax != null && r.price > filter.selectedMax) return false;
423
+ return true;
424
+ }
425
+
426
+ // RATING
427
+ // if (filter.property === 'rating') {
428
+ // if (r.stars == null) return false;
429
+ // if (filter.selectedRating != null && r.stars < filter.selectedRating) return false;
430
+
431
+ // return true;
432
+ // }
433
+
434
+ return true;
435
+ });
436
+ });
437
+
438
+ // SORTING
439
+ if (!sortBy || sortBy.label === 'default') {
440
+ return filtered;
441
+ }
442
+
443
+ return filtered.sort((a, b) => {
444
+ if (sortBy.label === 'price') {
445
+ return sortBy.direction === 'asc' ? a.price - b.price : b.price - a.price;
446
+ }
447
+
448
+ return 0;
449
+ });
450
+ };
451
+
452
+ export const applyFiltersToPackageFlightResults = (results: PackagingFlightResponse[], filters: Filter[], sortBy: SortByType | null) => {
453
+ const filtered = results.filter((result) => {
454
+ return filters.every((filter) => {
455
+ if (!filter.isFrontendFilter) return true;
456
+
457
+ // Airline
458
+ if (filter.property === 'airline') {
459
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
460
+ if (!selected || selected.length === 0) return true;
461
+ return selected.includes(result.airlineCode);
462
+ }
463
+
464
+ // Stops
465
+ if (filter.property === 'numberOfStops') {
466
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
467
+ if (!selected || selected.length === 0) return true;
468
+ return selected.includes(getNumberOfStops(result.outward)) && selected.includes(getNumberOfStops(result.return));
469
+ }
470
+
471
+ // Departure range
472
+ if (filter.property === 'departureRange') {
473
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
474
+ if (!selected || selected.length === 0) return true;
475
+ return selected.includes(rangeFromDateTimeInMinutes(getDepartureSegment(result.outward)?.departureDateTime));
476
+ }
477
+
478
+ // Departure airport
479
+ if (filter.property === 'departureAirport') {
480
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
481
+ if (!selected || selected.length === 0) return true;
482
+
483
+ const departureAirportCode = getDepartureSegment(result.outward)?.departureAirportCode;
484
+ if (!departureAirportCode) return false;
485
+
486
+ return selected.includes(departureAirportCode);
487
+ }
488
+
489
+ // Arrival airport
490
+ if (filter.property === 'arrivalAirport') {
491
+ const selected = filter.options?.filter((o) => o.isChecked).map((o) => o.value);
492
+ if (!selected || selected.length === 0) return true;
493
+
494
+ const arrivalAirportCode = getArrivalSegment(result.outward)?.arrivalAirportCode;
495
+ if (!arrivalAirportCode) return false;
496
+
497
+ return selected.includes(arrivalAirportCode);
498
+ }
499
+
500
+ // PRICE
501
+ if (filter.property === 'price') {
502
+ if (filter.selectedMin != null && result.price < filter.selectedMin) return false;
503
+ if (filter.selectedMax != null && result.price > filter.selectedMax) return false;
504
+ return true;
505
+ }
506
+
507
+ // Travel times
508
+ if (filter.property === 'travelDuration') {
509
+ if (filter.selectedMin != null && durationInTicksInMinutes(result.outward?.durationInTicks) < filter.selectedMin) return false;
510
+ if (filter.selectedMax != null && durationInTicksInMinutes(result.outward?.durationInTicks) > filter.selectedMax) return false;
511
+ return true;
512
+ }
513
+
514
+ return true;
515
+ });
516
+ });
517
+
518
+ // SORTING
519
+ if (!sortBy || sortBy.label === 'default') {
520
+ return filtered;
521
+ }
522
+
523
+ if (sortBy.label === 'departureTime') {
524
+ return orderBy(
525
+ results,
526
+ [(result) => getDepartureSegment(result.outward)?.departureDateTime],
527
+ [sortBy.direction] // or "desc"
528
+ );
529
+ } else if (sortBy.label === 'durationInTicks') {
530
+ return orderBy(
531
+ results,
532
+ [(result) => durationInTicksInMinutes(result.outward?.durationInTicks ?? 0)],
533
+ [sortBy.direction] // or "desc"
534
+ );
535
+ } else {
536
+ return orderBy(results, [sortBy.label], [sortBy.direction]);
537
+ }
538
+ };