@qite/tide-booking-component 1.4.36 → 1.4.38

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 (329) hide show
  1. package/build/build-cjs/booking-product/components/age-select.d.ts +8 -8
  2. package/build/build-cjs/booking-product/components/amount-input.d.ts +10 -10
  3. package/build/build-cjs/booking-product/components/date-range-picker/calendar-day.d.ts +12 -12
  4. package/build/build-cjs/booking-product/components/date-range-picker/calendar.d.ts +19 -19
  5. package/build/build-cjs/booking-product/components/date-range-picker/index.d.ts +21 -24
  6. package/build/build-cjs/booking-product/components/dates.d.ts +14 -14
  7. package/build/build-cjs/booking-product/components/footer.d.ts +10 -10
  8. package/build/build-cjs/booking-product/components/header.d.ts +11 -11
  9. package/build/build-cjs/booking-product/components/icon.d.ts +10 -10
  10. package/build/build-cjs/booking-product/components/list-view.d.ts +8 -8
  11. package/build/build-cjs/booking-product/components/product.d.ts +9 -9
  12. package/build/build-cjs/booking-product/components/rating.d.ts +6 -6
  13. package/build/build-cjs/booking-product/components/rooms.d.ts +10 -10
  14. package/build/build-cjs/booking-product/constants.d.ts +1 -1
  15. package/build/build-cjs/booking-product/index.d.ts +10 -10
  16. package/build/build-cjs/booking-product/settings-context.d.ts +5 -6
  17. package/build/build-cjs/booking-product/types.d.ts +27 -27
  18. package/build/build-cjs/booking-product/utils/api.d.ts +16 -7
  19. package/build/build-cjs/booking-product/utils/price.d.ts +10 -1
  20. package/build/build-cjs/booking-wizard/api-settings-slice.d.ts +5 -4
  21. package/build/build-cjs/booking-wizard/components/icon.d.ts +10 -10
  22. package/build/build-cjs/booking-wizard/components/labeled-input.d.ts +18 -18
  23. package/build/build-cjs/booking-wizard/components/labeled-select.d.ts +21 -21
  24. package/build/build-cjs/booking-wizard/components/message.d.ts +9 -9
  25. package/build/build-cjs/booking-wizard/components/multi-range-filter.d.ts +11 -11
  26. package/build/build-cjs/booking-wizard/components/phone-input.d.ts +17 -17
  27. package/build/build-cjs/booking-wizard/components/print-offer-button.d.ts +17 -17
  28. package/build/build-cjs/booking-wizard/components/product-card.d.ts +8 -8
  29. package/build/build-cjs/booking-wizard/components/step-indicator.d.ts +6 -6
  30. package/build/build-cjs/booking-wizard/components/step-route.d.ts +9 -9
  31. package/build/build-cjs/booking-wizard/features/booking/api.d.ts +26 -10
  32. package/build/build-cjs/booking-wizard/features/booking/booking-self-contained.d.ts +8 -8
  33. package/build/build-cjs/booking-wizard/features/booking/booking-slice.d.ts +103 -50
  34. package/build/build-cjs/booking-wizard/features/booking/booking.d.ts +8 -8
  35. package/build/build-cjs/booking-wizard/features/booking/constants.d.ts +15 -8
  36. package/build/build-cjs/booking-wizard/features/booking/selectors.d.ts +283 -195
  37. package/build/build-cjs/booking-wizard/features/confirmation/confirmation.d.ts +4 -5
  38. package/build/build-cjs/booking-wizard/features/error/error.d.ts +4 -5
  39. package/build/build-cjs/booking-wizard/features/flight-options/flight-filter.d.ts +9 -9
  40. package/build/build-cjs/booking-wizard/features/flight-options/flight-option-flight.d.ts +8 -8
  41. package/build/build-cjs/booking-wizard/features/flight-options/flight-option-modal.d.ts +3 -3
  42. package/build/build-cjs/booking-wizard/features/flight-options/flight-option.d.ts +10 -10
  43. package/build/build-cjs/booking-wizard/features/flight-options/flight-utils.d.ts +13 -6
  44. package/build/build-cjs/booking-wizard/features/flight-options/index.d.ts +4 -5
  45. package/build/build-cjs/booking-wizard/features/price-details/price-details-api.d.ts +11 -6
  46. package/build/build-cjs/booking-wizard/features/price-details/price-details-slice.d.ts +105 -80
  47. package/build/build-cjs/booking-wizard/features/price-details/util.d.ts +2 -2
  48. package/build/build-cjs/booking-wizard/features/product-options/no-options.d.ts +3 -3
  49. package/build/build-cjs/booking-wizard/features/product-options/none-option.d.ts +9 -9
  50. package/build/build-cjs/booking-wizard/features/product-options/option-booking-airline-group.d.ts +8 -8
  51. package/build/build-cjs/booking-wizard/features/product-options/option-booking-group.d.ts +12 -12
  52. package/build/build-cjs/booking-wizard/features/product-options/option-item.d.ts +11 -11
  53. package/build/build-cjs/booking-wizard/features/product-options/option-pax-card.d.ts +10 -10
  54. package/build/build-cjs/booking-wizard/features/product-options/option-pax-group.d.ts +13 -13
  55. package/build/build-cjs/booking-wizard/features/product-options/option-room.d.ts +11 -11
  56. package/build/build-cjs/booking-wizard/features/product-options/option-unit-group.d.ts +13 -13
  57. package/build/build-cjs/booking-wizard/features/product-options/option-units-card.d.ts +9 -9
  58. package/build/build-cjs/booking-wizard/features/product-options/options-form.d.ts +4 -5
  59. package/build/build-cjs/booking-wizard/features/room-options/index.d.ts +4 -5
  60. package/build/build-cjs/booking-wizard/features/room-options/room-utils.d.ts +22 -9
  61. package/build/build-cjs/booking-wizard/features/room-options/room.d.ts +12 -12
  62. package/build/build-cjs/booking-wizard/features/room-options/traveler-rooms.d.ts +9 -9
  63. package/build/build-cjs/booking-wizard/features/sidebar/index.d.ts +7 -7
  64. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -8
  65. package/build/build-cjs/booking-wizard/features/sidebar/sidebar-util.d.ts +14 -12
  66. package/build/build-cjs/booking-wizard/features/sidebar/sidebar.d.ts +27 -27
  67. package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -7
  68. package/build/build-cjs/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -7
  69. package/build/build-cjs/booking-wizard/features/summary/summary-flight.d.ts +8 -8
  70. package/build/build-cjs/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +7 -7
  71. package/build/build-cjs/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +7 -7
  72. package/build/build-cjs/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +7 -7
  73. package/build/build-cjs/booking-wizard/features/summary/summary-slice.d.ts +8 -8
  74. package/build/build-cjs/booking-wizard/features/summary/summary.d.ts +4 -5
  75. package/build/build-cjs/booking-wizard/features/travelers-form/controls/gender-control.d.ts +5 -5
  76. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +62 -50
  77. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form-util.d.ts +7 -7
  78. package/build/build-cjs/booking-wizard/features/travelers-form/travelers-form.d.ts +4 -5
  79. package/build/build-cjs/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -16
  80. package/build/build-cjs/booking-wizard/features/travelers-form/validate-form.d.ts +11 -4
  81. package/build/build-cjs/booking-wizard/index.d.ts +12 -12
  82. package/build/build-cjs/booking-wizard/settings-context.d.ts +5 -6
  83. package/build/build-cjs/booking-wizard/store.d.ts +39 -24
  84. package/build/build-cjs/booking-wizard/types.d.ts +284 -284
  85. package/build/build-cjs/booking-wizard/use-offer-printer.d.ts +13 -13
  86. package/build/build-cjs/content/components/LanguageSwitcher.d.ts +12 -12
  87. package/build/build-cjs/content/components/accordion.d.ts +9 -9
  88. package/build/build-cjs/content/components/breadcrumb.d.ts +16 -16
  89. package/build/build-cjs/content/components/contact.d.ts +3 -3
  90. package/build/build-cjs/content/components/faq.d.ts +10 -10
  91. package/build/build-cjs/content/components/gallery.d.ts +12 -12
  92. package/build/build-cjs/content/components/icon.d.ts +10 -10
  93. package/build/build-cjs/content/components/image-with-text.d.ts +28 -28
  94. package/build/build-cjs/content/components/personal-contact-form.d.ts +3 -3
  95. package/build/build-cjs/content/components/slider.d.ts +10 -10
  96. package/build/build-cjs/content/features/content-page/content-page-self-contained.d.ts +6 -6
  97. package/build/build-cjs/content/footer/index.d.ts +4 -4
  98. package/build/build-cjs/content/footer/types.d.ts +27 -27
  99. package/build/build-cjs/content/header/index.d.ts +4 -4
  100. package/build/build-cjs/content/header/types.d.ts +25 -22
  101. package/build/build-cjs/content/navbar/index.d.ts +4 -4
  102. package/build/build-cjs/content/navbar/placeholderData.d.ts +10 -10
  103. package/build/build-cjs/content/navbar/types.d.ts +27 -27
  104. package/build/build-cjs/index.d.ts +8 -8
  105. package/build/build-cjs/index.js +33131 -21080
  106. package/build/build-cjs/qsm/components/QSMContainer/qsm-container.d.ts +3 -3
  107. package/build/build-cjs/qsm/components/date-picker/index.d.ts +3 -3
  108. package/build/build-cjs/qsm/components/date-range-picker/calendar-day.d.ts +12 -12
  109. package/build/build-cjs/qsm/components/date-range-picker/calendar.d.ts +24 -24
  110. package/build/build-cjs/qsm/components/date-range-picker/index.d.ts +10 -10
  111. package/build/build-cjs/qsm/components/double-search-input-group/index.d.ts +7 -7
  112. package/build/build-cjs/qsm/components/icon.d.ts +10 -10
  113. package/build/build-cjs/qsm/components/item-picker/index.d.ts +12 -12
  114. package/build/build-cjs/qsm/components/mobile-filter-modal/index.d.ts +3 -3
  115. package/build/build-cjs/qsm/components/search-input/index.d.ts +13 -13
  116. package/build/build-cjs/qsm/components/search-input-group/index.d.ts +11 -11
  117. package/build/build-cjs/qsm/components/travel-class-picker/index.d.ts +3 -3
  118. package/build/build-cjs/qsm/components/travel-input/index.d.ts +3 -3
  119. package/build/build-cjs/qsm/components/travel-input-group/index.d.ts +3 -3
  120. package/build/build-cjs/qsm/components/travel-nationality-picker/index.d.ts +3 -3
  121. package/build/build-cjs/qsm/components/travel-type-picker/index.d.ts +3 -3
  122. package/build/build-cjs/qsm/index.d.ts +7 -7
  123. package/build/build-cjs/qsm/qsm-configuration-context.d.ts +4 -4
  124. package/build/build-cjs/qsm/store/qsm-slice.d.ts +120 -70
  125. package/build/build-cjs/qsm/store/qsm-store.d.ts +18 -8
  126. package/build/build-cjs/qsm/types.d.ts +110 -109
  127. package/build/build-cjs/search-results/components/filters/filters.d.ts +11 -11
  128. package/build/build-cjs/search-results/components/filters/utility.d.ts +3 -3
  129. package/build/build-cjs/search-results/components/flight/flight-accommodation-results.d.ts +4 -5
  130. package/build/build-cjs/search-results/components/flight/flight-banner.d.ts +8 -8
  131. package/build/build-cjs/search-results/components/flight/flight-card.d.ts +7 -7
  132. package/build/build-cjs/search-results/components/flight/flight-leg.d.ts +7 -7
  133. package/build/build-cjs/search-results/components/flight/flight-path.d.ts +6 -6
  134. package/build/build-cjs/search-results/components/flight/flight-results.d.ts +8 -8
  135. package/build/build-cjs/search-results/components/hotel/hotel-accommodation-results.d.ts +8 -8
  136. package/build/build-cjs/search-results/components/hotel/hotel-card.d.ts +8 -8
  137. package/build/build-cjs/search-results/components/icon.d.ts +10 -10
  138. package/build/build-cjs/search-results/components/item-picker/index.d.ts +12 -12
  139. package/build/build-cjs/search-results/components/itinerary/index.d.ts +8 -8
  140. package/build/build-cjs/search-results/components/multi-range-filter.d.ts +11 -11
  141. package/build/build-cjs/search-results/components/round-trip/round-trip-results.d.ts +4 -5
  142. package/build/build-cjs/search-results/components/search-results-container/search-results-container.d.ts +3 -3
  143. package/build/build-cjs/search-results/components/spinner/spinner.d.ts +3 -3
  144. package/build/build-cjs/search-results/components/tab-views/index.d.ts +4 -5
  145. package/build/build-cjs/search-results/features/flights/flight-search-results-self-contained.d.ts +4 -5
  146. package/build/build-cjs/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +4 -5
  147. package/build/build-cjs/search-results/features/hotels/hotel-search-results-self-contained.d.ts +4 -5
  148. package/build/build-cjs/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +4 -5
  149. package/build/build-cjs/search-results/index.d.ts +7 -7
  150. package/build/build-cjs/search-results/search-results-configuration-context.d.ts +4 -4
  151. package/build/build-cjs/search-results/store/search-results-slice.d.ts +48 -25
  152. package/build/build-cjs/search-results/store/search-results-store.d.ts +18 -8
  153. package/build/build-cjs/search-results/types.d.ts +111 -110
  154. package/build/build-cjs/shared/components/loader.d.ts +6 -6
  155. package/build/build-cjs/shared/types.d.ts +4 -4
  156. package/build/build-cjs/shared/utils/class-util.d.ts +1 -1
  157. package/build/build-cjs/shared/utils/localization-util.d.ts +275 -275
  158. package/build/build-cjs/shared/utils/query-string-util.d.ts +8 -8
  159. package/build/build-cjs/shared/utils/tide-api-utils.d.ts +4 -4
  160. package/build/build-cjs/shared/utils/use-media-query-util.d.ts +2 -2
  161. package/build/build-esm/booking-product/components/age-select.d.ts +8 -8
  162. package/build/build-esm/booking-product/components/amount-input.d.ts +10 -10
  163. package/build/build-esm/booking-product/components/date-range-picker/calendar-day.d.ts +12 -12
  164. package/build/build-esm/booking-product/components/date-range-picker/calendar.d.ts +19 -19
  165. package/build/build-esm/booking-product/components/date-range-picker/index.d.ts +21 -24
  166. package/build/build-esm/booking-product/components/dates.d.ts +14 -14
  167. package/build/build-esm/booking-product/components/footer.d.ts +10 -10
  168. package/build/build-esm/booking-product/components/header.d.ts +11 -11
  169. package/build/build-esm/booking-product/components/icon.d.ts +10 -10
  170. package/build/build-esm/booking-product/components/list-view.d.ts +8 -8
  171. package/build/build-esm/booking-product/components/product.d.ts +9 -9
  172. package/build/build-esm/booking-product/components/rating.d.ts +6 -6
  173. package/build/build-esm/booking-product/components/rooms.d.ts +10 -10
  174. package/build/build-esm/booking-product/constants.d.ts +1 -1
  175. package/build/build-esm/booking-product/index.d.ts +10 -10
  176. package/build/build-esm/booking-product/settings-context.d.ts +5 -6
  177. package/build/build-esm/booking-product/types.d.ts +27 -27
  178. package/build/build-esm/booking-product/utils/api.d.ts +16 -7
  179. package/build/build-esm/booking-product/utils/price.d.ts +10 -1
  180. package/build/build-esm/booking-wizard/api-settings-slice.d.ts +5 -4
  181. package/build/build-esm/booking-wizard/components/icon.d.ts +10 -10
  182. package/build/build-esm/booking-wizard/components/labeled-input.d.ts +18 -18
  183. package/build/build-esm/booking-wizard/components/labeled-select.d.ts +21 -21
  184. package/build/build-esm/booking-wizard/components/message.d.ts +9 -9
  185. package/build/build-esm/booking-wizard/components/multi-range-filter.d.ts +11 -11
  186. package/build/build-esm/booking-wizard/components/phone-input.d.ts +17 -17
  187. package/build/build-esm/booking-wizard/components/print-offer-button.d.ts +17 -17
  188. package/build/build-esm/booking-wizard/components/product-card.d.ts +8 -8
  189. package/build/build-esm/booking-wizard/components/step-indicator.d.ts +6 -6
  190. package/build/build-esm/booking-wizard/components/step-route.d.ts +9 -9
  191. package/build/build-esm/booking-wizard/features/booking/api.d.ts +26 -10
  192. package/build/build-esm/booking-wizard/features/booking/booking-self-contained.d.ts +8 -8
  193. package/build/build-esm/booking-wizard/features/booking/booking-slice.d.ts +103 -50
  194. package/build/build-esm/booking-wizard/features/booking/booking.d.ts +8 -8
  195. package/build/build-esm/booking-wizard/features/booking/constants.d.ts +15 -8
  196. package/build/build-esm/booking-wizard/features/booking/selectors.d.ts +283 -195
  197. package/build/build-esm/booking-wizard/features/confirmation/confirmation.d.ts +4 -5
  198. package/build/build-esm/booking-wizard/features/error/error.d.ts +4 -5
  199. package/build/build-esm/booking-wizard/features/flight-options/flight-filter.d.ts +9 -9
  200. package/build/build-esm/booking-wizard/features/flight-options/flight-option-flight.d.ts +8 -8
  201. package/build/build-esm/booking-wizard/features/flight-options/flight-option-modal.d.ts +3 -3
  202. package/build/build-esm/booking-wizard/features/flight-options/flight-option.d.ts +10 -10
  203. package/build/build-esm/booking-wizard/features/flight-options/flight-utils.d.ts +13 -6
  204. package/build/build-esm/booking-wizard/features/flight-options/index.d.ts +4 -5
  205. package/build/build-esm/booking-wizard/features/price-details/price-details-api.d.ts +11 -6
  206. package/build/build-esm/booking-wizard/features/price-details/price-details-slice.d.ts +105 -80
  207. package/build/build-esm/booking-wizard/features/price-details/util.d.ts +2 -2
  208. package/build/build-esm/booking-wizard/features/product-options/no-options.d.ts +3 -3
  209. package/build/build-esm/booking-wizard/features/product-options/none-option.d.ts +9 -9
  210. package/build/build-esm/booking-wizard/features/product-options/option-booking-airline-group.d.ts +8 -8
  211. package/build/build-esm/booking-wizard/features/product-options/option-booking-group.d.ts +12 -12
  212. package/build/build-esm/booking-wizard/features/product-options/option-item.d.ts +11 -11
  213. package/build/build-esm/booking-wizard/features/product-options/option-pax-card.d.ts +10 -10
  214. package/build/build-esm/booking-wizard/features/product-options/option-pax-group.d.ts +13 -13
  215. package/build/build-esm/booking-wizard/features/product-options/option-room.d.ts +11 -11
  216. package/build/build-esm/booking-wizard/features/product-options/option-unit-group.d.ts +13 -13
  217. package/build/build-esm/booking-wizard/features/product-options/option-units-card.d.ts +9 -9
  218. package/build/build-esm/booking-wizard/features/product-options/options-form.d.ts +4 -5
  219. package/build/build-esm/booking-wizard/features/room-options/index.d.ts +4 -5
  220. package/build/build-esm/booking-wizard/features/room-options/room-utils.d.ts +22 -9
  221. package/build/build-esm/booking-wizard/features/room-options/room.d.ts +12 -12
  222. package/build/build-esm/booking-wizard/features/room-options/traveler-rooms.d.ts +9 -9
  223. package/build/build-esm/booking-wizard/features/sidebar/index.d.ts +7 -7
  224. package/build/build-esm/booking-wizard/features/sidebar/sidebar-flight.d.ts +8 -8
  225. package/build/build-esm/booking-wizard/features/sidebar/sidebar-util.d.ts +14 -12
  226. package/build/build-esm/booking-wizard/features/sidebar/sidebar.d.ts +27 -27
  227. package/build/build-esm/booking-wizard/features/summary/summary-booking-option-pax.d.ts +7 -7
  228. package/build/build-esm/booking-wizard/features/summary/summary-booking-option-unit.d.ts +7 -7
  229. package/build/build-esm/booking-wizard/features/summary/summary-flight.d.ts +8 -8
  230. package/build/build-esm/booking-wizard/features/summary/summary-per-booking-option-group.d.ts +7 -7
  231. package/build/build-esm/booking-wizard/features/summary/summary-per-pax-option-group.d.ts +7 -7
  232. package/build/build-esm/booking-wizard/features/summary/summary-per-unit-option-group.d.ts +7 -7
  233. package/build/build-esm/booking-wizard/features/summary/summary-slice.d.ts +8 -8
  234. package/build/build-esm/booking-wizard/features/summary/summary.d.ts +4 -5
  235. package/build/build-esm/booking-wizard/features/travelers-form/controls/gender-control.d.ts +5 -5
  236. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-slice.d.ts +62 -50
  237. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form-util.d.ts +7 -7
  238. package/build/build-esm/booking-wizard/features/travelers-form/travelers-form.d.ts +4 -5
  239. package/build/build-esm/booking-wizard/features/travelers-form/type-ahead-input.d.ts +16 -16
  240. package/build/build-esm/booking-wizard/features/travelers-form/validate-form.d.ts +11 -4
  241. package/build/build-esm/booking-wizard/index.d.ts +12 -12
  242. package/build/build-esm/booking-wizard/settings-context.d.ts +5 -6
  243. package/build/build-esm/booking-wizard/store.d.ts +39 -24
  244. package/build/build-esm/booking-wizard/types.d.ts +284 -284
  245. package/build/build-esm/booking-wizard/use-offer-printer.d.ts +13 -13
  246. package/build/build-esm/content/components/LanguageSwitcher.d.ts +12 -12
  247. package/build/build-esm/content/components/accordion.d.ts +9 -9
  248. package/build/build-esm/content/components/breadcrumb.d.ts +16 -16
  249. package/build/build-esm/content/components/contact.d.ts +3 -3
  250. package/build/build-esm/content/components/faq.d.ts +10 -10
  251. package/build/build-esm/content/components/gallery.d.ts +12 -12
  252. package/build/build-esm/content/components/icon.d.ts +10 -10
  253. package/build/build-esm/content/components/image-with-text.d.ts +28 -28
  254. package/build/build-esm/content/components/personal-contact-form.d.ts +3 -3
  255. package/build/build-esm/content/components/slider.d.ts +10 -10
  256. package/build/build-esm/content/features/content-page/content-page-self-contained.d.ts +6 -6
  257. package/build/build-esm/content/footer/index.d.ts +4 -4
  258. package/build/build-esm/content/footer/types.d.ts +27 -27
  259. package/build/build-esm/content/header/index.d.ts +4 -4
  260. package/build/build-esm/content/header/types.d.ts +25 -22
  261. package/build/build-esm/content/navbar/index.d.ts +4 -4
  262. package/build/build-esm/content/navbar/placeholderData.d.ts +10 -10
  263. package/build/build-esm/content/navbar/types.d.ts +27 -27
  264. package/build/build-esm/index.d.ts +8 -8
  265. package/build/build-esm/index.js +32791 -21076
  266. package/build/build-esm/qsm/components/QSMContainer/qsm-container.d.ts +3 -3
  267. package/build/build-esm/qsm/components/date-picker/index.d.ts +3 -3
  268. package/build/build-esm/qsm/components/date-range-picker/calendar-day.d.ts +12 -12
  269. package/build/build-esm/qsm/components/date-range-picker/calendar.d.ts +24 -24
  270. package/build/build-esm/qsm/components/date-range-picker/index.d.ts +10 -10
  271. package/build/build-esm/qsm/components/double-search-input-group/index.d.ts +7 -7
  272. package/build/build-esm/qsm/components/icon.d.ts +10 -10
  273. package/build/build-esm/qsm/components/item-picker/index.d.ts +12 -12
  274. package/build/build-esm/qsm/components/mobile-filter-modal/index.d.ts +3 -3
  275. package/build/build-esm/qsm/components/search-input/index.d.ts +13 -13
  276. package/build/build-esm/qsm/components/search-input-group/index.d.ts +11 -11
  277. package/build/build-esm/qsm/components/travel-class-picker/index.d.ts +3 -3
  278. package/build/build-esm/qsm/components/travel-input/index.d.ts +3 -3
  279. package/build/build-esm/qsm/components/travel-input-group/index.d.ts +3 -3
  280. package/build/build-esm/qsm/components/travel-nationality-picker/index.d.ts +3 -3
  281. package/build/build-esm/qsm/components/travel-type-picker/index.d.ts +3 -3
  282. package/build/build-esm/qsm/index.d.ts +7 -7
  283. package/build/build-esm/qsm/qsm-configuration-context.d.ts +4 -4
  284. package/build/build-esm/qsm/store/qsm-slice.d.ts +120 -70
  285. package/build/build-esm/qsm/store/qsm-store.d.ts +18 -8
  286. package/build/build-esm/qsm/types.d.ts +110 -109
  287. package/build/build-esm/search-results/components/filters/filters.d.ts +11 -11
  288. package/build/build-esm/search-results/components/filters/utility.d.ts +3 -3
  289. package/build/build-esm/search-results/components/flight/flight-accommodation-results.d.ts +4 -5
  290. package/build/build-esm/search-results/components/flight/flight-banner.d.ts +8 -8
  291. package/build/build-esm/search-results/components/flight/flight-card.d.ts +7 -7
  292. package/build/build-esm/search-results/components/flight/flight-leg.d.ts +7 -7
  293. package/build/build-esm/search-results/components/flight/flight-path.d.ts +6 -6
  294. package/build/build-esm/search-results/components/flight/flight-results.d.ts +8 -8
  295. package/build/build-esm/search-results/components/hotel/hotel-accommodation-results.d.ts +8 -8
  296. package/build/build-esm/search-results/components/hotel/hotel-card.d.ts +8 -8
  297. package/build/build-esm/search-results/components/icon.d.ts +10 -10
  298. package/build/build-esm/search-results/components/item-picker/index.d.ts +12 -12
  299. package/build/build-esm/search-results/components/itinerary/index.d.ts +8 -8
  300. package/build/build-esm/search-results/components/multi-range-filter.d.ts +11 -11
  301. package/build/build-esm/search-results/components/round-trip/round-trip-results.d.ts +4 -5
  302. package/build/build-esm/search-results/components/search-results-container/search-results-container.d.ts +3 -3
  303. package/build/build-esm/search-results/components/spinner/spinner.d.ts +3 -3
  304. package/build/build-esm/search-results/components/tab-views/index.d.ts +4 -5
  305. package/build/build-esm/search-results/features/flights/flight-search-results-self-contained.d.ts +4 -5
  306. package/build/build-esm/search-results/features/hotels/hotel-flight-search-results-self-contained.d.ts +4 -5
  307. package/build/build-esm/search-results/features/hotels/hotel-search-results-self-contained.d.ts +4 -5
  308. package/build/build-esm/search-results/features/roundtrips/roundtrip-search-results-self-contained.d.ts +4 -5
  309. package/build/build-esm/search-results/index.d.ts +7 -7
  310. package/build/build-esm/search-results/search-results-configuration-context.d.ts +4 -4
  311. package/build/build-esm/search-results/store/search-results-slice.d.ts +48 -25
  312. package/build/build-esm/search-results/store/search-results-store.d.ts +18 -8
  313. package/build/build-esm/search-results/types.d.ts +111 -110
  314. package/build/build-esm/shared/components/loader.d.ts +6 -6
  315. package/build/build-esm/shared/types.d.ts +4 -4
  316. package/build/build-esm/shared/utils/class-util.d.ts +1 -1
  317. package/build/build-esm/shared/utils/localization-util.d.ts +275 -275
  318. package/build/build-esm/shared/utils/query-string-util.d.ts +8 -8
  319. package/build/build-esm/shared/utils/tide-api-utils.d.ts +4 -4
  320. package/build/build-esm/shared/utils/use-media-query-util.d.ts +2 -2
  321. package/package.json +2 -2
  322. package/src/qsm/components/mobile-filter-modal/index.tsx +67 -42
  323. package/src/qsm/components/search-input/index.tsx +2 -1
  324. package/src/qsm/components/search-input-group/index.tsx +21 -4
  325. package/src/qsm/types.ts +1 -0
  326. package/src/search-results/components/flight/flight-results.tsx +115 -113
  327. package/src/search-results/components/hotel/hotel-accommodation-results.tsx +85 -0
  328. package/src/search-results/components/search-results-container/search-results-container.tsx +294 -146
  329. package/src/search-results/types.ts +1 -1
@@ -1,4 +1,4 @@
1
- import React, { useContext, useEffect, useRef, useState } from 'react';
1
+ import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
2
2
  import { useDispatch, useSelector } from 'react-redux';
3
3
  import {
4
4
  closeMobileFilter,
@@ -6,7 +6,8 @@ import {
6
6
  setFieldValue,
7
7
  setFromDate,
8
8
  setToDate,
9
- setSearchResults as setSearchResultsAction
9
+ setSearchResults as setSearchResultsAction,
10
+ setSearchResults
10
11
  } from '../../store/qsm-slice';
11
12
  import { QSMRootState } from '../../store/qsm-store';
12
13
  import SearchInput from '../search-input';
@@ -14,18 +15,16 @@ import DateRangePicker from '../date-range-picker';
14
15
  import TravelInput from '../travel-input';
15
16
  import { format } from 'date-fns';
16
17
  import QSMConfigurationContext from '../../qsm-configuration-context';
17
- import { TypeaheadOption } from '../../types';
18
+ import { BaseFieldConfig, FieldConfig, TypeaheadOption } from '../../types';
18
19
  import { getTranslations } from '../../../shared/utils/localization-util';
19
20
 
20
21
  const MobileFilterModal: React.FC = () => {
21
- const { datesIcon, languageCode } = useContext(QSMConfigurationContext);
22
+ const { datesIcon, languageCode, searchFields } = useContext(QSMConfigurationContext);
22
23
  const translations = getTranslations(languageCode ?? 'en-GB');
23
24
  const dispatch = useDispatch();
24
- const { mobileFilterType, mobileDatePickerMode, activeSearchFieldProps, fromDate, toDate } = useSelector((state: QSMRootState) => state.qsm);
25
+ const { mobileFilterType, mobileDatePickerMode, activeSearchFieldProps, fromDate, toDate, searchResults } = useSelector((state: QSMRootState) => state.qsm);
25
26
 
26
27
  const [inputValue, setInputValue] = useState('');
27
- const [searchResultsLocal, setSearchResultsLocal] = useState<TypeaheadOption[]>([]);
28
- const hasTypedRef = useRef(false);
29
28
 
30
29
  /* ---------------------------------------------------------------- */
31
30
  /* Sync local state when a new field is opened */
@@ -33,8 +32,8 @@ const MobileFilterModal: React.FC = () => {
33
32
  useEffect(() => {
34
33
  if (activeSearchFieldProps) {
35
34
  setInputValue(activeSearchFieldProps.value || '');
36
- setSearchResultsLocal([]);
37
- hasTypedRef.current = false;
35
+ // setSearchResultsLocal([]);
36
+ // hasTypedRef.current = false;
38
37
  }
39
38
  }, [activeSearchFieldProps]);
40
39
 
@@ -42,45 +41,69 @@ const MobileFilterModal: React.FC = () => {
42
41
  /* Helpers */
43
42
  /* ---------------------------------------------------------------- */
44
43
  const closeModal = () => {
45
- hasTypedRef.current = false;
44
+ // hasTypedRef.current = false;
46
45
  dispatch(closeMobileFilter());
47
46
  };
48
47
 
49
- // const handleLocationChange = (val: string) => {
50
- // setInputValue(val);
51
- // hasTypedRef.current = true;
48
+ const findConfig = (all: FieldConfig[], key: string): BaseFieldConfig | undefined => {
49
+ for (const config of all) {
50
+ if (config.type === 'single' && config.fieldKey === key) {
51
+ return config;
52
+ }
53
+ if (config.type === 'double') {
54
+ const field = config.fields.find((x) => x.fieldKey === key);
55
+ if (field) return field;
56
+ }
57
+ }
58
+ return undefined;
59
+ };
52
60
 
53
- // if (val.trim() !== '' && activeSearchFieldProps) {
54
- // const filtered = activeSearchFieldProps.options.filter((loc) => loc.value.toLowerCase().includes(val.toLowerCase())).map((loc) => loc.value);
55
- // setSearchResultsLocal(filtered);
56
- // } else {
57
- // setSearchResultsLocal([]);
58
- // }
59
- // };
61
+ const config = useMemo<BaseFieldConfig | undefined>(() => {
62
+ if (!activeSearchFieldProps) return undefined;
60
63
 
61
- const handleLocationChange = (val: string) => {
62
- setInputValue(val);
63
- hasTypedRef.current = true;
64
+ return findConfig(searchFields, activeSearchFieldProps.fieldKey);
65
+ }, [searchFields, activeSearchFieldProps]);
64
66
 
65
- if (val.trim() !== '' && activeSearchFieldProps) {
66
- const filtered = activeSearchFieldProps.options.filter((option) => option.value.toLowerCase().includes(val.toLowerCase()));
67
+ const match = useCallback(
68
+ (input: string) => {
69
+ if (!input) {
70
+ return [];
71
+ }
67
72
 
68
- setSearchResultsLocal(filtered);
69
- } else {
70
- setSearchResultsLocal([]);
71
- }
72
- };
73
+ const lowered = input.toLowerCase();
74
+ return activeSearchFieldProps?.options.filter(
75
+ (option) => option.value.toLowerCase().includes(lowered) || option.iataCode?.toLowerCase().includes(lowered)
76
+ );
77
+ },
78
+ [activeSearchFieldProps?.options]
79
+ );
80
+
81
+ const handleInputChange = useCallback(
82
+ (input: string) => {
83
+ setInputValue(input);
84
+ if (!activeSearchFieldProps) return;
73
85
 
74
- // const handleLocationSelect = (val: string) => {
75
- // if (activeSearchFieldProps) {
76
- // const { fieldKey } = activeSearchFieldProps;
77
- // dispatch(setFieldValue({ fieldKey, value: val }));
78
- // dispatch(setSearchResultsAction([]));
79
- // dispatch(setActiveSearchField(null));
80
- // }
86
+ dispatch(setFieldValue({ fieldKey: activeSearchFieldProps.fieldKey, value: input }));
87
+ dispatch(setSearchResults([]));
88
+ dispatch(setActiveSearchField(activeSearchFieldProps.fieldKey));
89
+
90
+ if (config?.onChange) {
91
+ config.onChange(input);
92
+ return;
93
+ }
94
+
95
+ const filtered = match(input) ?? [];
96
+ dispatch(setSearchResults(filtered));
97
+ },
98
+ [dispatch, activeSearchFieldProps, match]
99
+ );
100
+
101
+ useEffect(() => {
102
+ if (!activeSearchFieldProps) return;
103
+ if (!inputValue) return;
81
104
 
82
- // dispatch(closeMobileFilter());
83
- // };
105
+ dispatch(setSearchResults(match(inputValue) ?? []));
106
+ }, [activeSearchFieldProps?.options]);
84
107
 
85
108
  const handleLocationSelect = (option: TypeaheadOption) => {
86
109
  if (activeSearchFieldProps) {
@@ -202,13 +225,15 @@ const MobileFilterModal: React.FC = () => {
202
225
  type="text"
203
226
  id="search"
204
227
  value={inputValue}
205
- onChange={(e) => handleLocationChange(e.target.value)}
228
+ onClick={(e) => e.stopPropagation()}
229
+ onChange={(e) => handleInputChange(e.target.value)}
230
+ // onChange={(e) => handleLocationChange(e.target.value)}
206
231
  className="qsm__input qsm__input--modal qsm__from-to u-ps-2"
207
232
  placeholder={activeSearchFieldProps.placeholder}
208
233
  />
209
234
  <SearchInput
210
- onChange={handleLocationChange}
211
- searchResults={searchResultsLocal}
235
+ onChange={handleInputChange}
236
+ searchResults={searchResults}
212
237
  onOptionSelect={handleLocationSelect}
213
238
  highlightTarget={inputValue}
214
239
  label={activeSearchFieldProps.label}
@@ -55,7 +55,8 @@ const SearchInput: React.FC<SearchInputProps> = ({ searchResults, onOptionSelect
55
55
  role="option"
56
56
  aria-selected={false}>
57
57
  <div className="qsm__double-input-option-content">
58
- <Icon name={option.type == 'hotel' ? 'ui-hotel' : 'ui-location'} height={16} />
58
+ <Icon name={option.type === 'hotel' ? 'ui-hotel' : option.type === 'airport' ? 'ui-flight' : 'ui-location'} height={16} />
59
+
59
60
  <div className="qsm__double-input-option-content-text">
60
61
  {highlightMatch(option, highlightTarget)}
61
62
  {option.country && <span className="qsm__double-input-option-content-country">{option.country}</span>}
@@ -6,7 +6,7 @@ import QSMConfigurationContext from '../../qsm-configuration-context';
6
6
  import useMediaQuery from '../../../shared/utils/use-media-query-util';
7
7
  import SearchInput from '../search-input';
8
8
  import Icon from '../icon';
9
- import { FieldConfig, BaseFieldConfig, DoubleFieldConfig, TypeaheadOption } from '../../types';
9
+ import { FieldConfig, BaseFieldConfig, DoubleFieldConfig, TypeaheadOption, OptionType } from '../../types';
10
10
 
11
11
  const findConfig = (all: FieldConfig[], key: string): BaseFieldConfig | undefined => {
12
12
  for (const config of all) {
@@ -55,6 +55,9 @@ const SearchInputGroup: React.FC<Props> = ({
55
55
  const value = useSelector(selector);
56
56
  const { searchResults, activeSearchField } = useSelector((state: QSMRootState) => state.qsm);
57
57
 
58
+ const selectedOption = options.find((option) => option.value === value);
59
+ const typeOfSelectedOption: OptionType = selectedOption?.type ?? 'other';
60
+
58
61
  const match = useCallback(
59
62
  (input: string) => {
60
63
  if (!input) {
@@ -62,7 +65,7 @@ const SearchInputGroup: React.FC<Props> = ({
62
65
  }
63
66
 
64
67
  const lowered = input.toLowerCase();
65
- return options.filter((option) => option.value.toLowerCase().includes(lowered));
68
+ return options.filter((option) => option.value.toLowerCase().includes(lowered) || option.iataCode?.toLowerCase().includes(lowered));
66
69
  },
67
70
  [options]
68
71
  );
@@ -75,11 +78,25 @@ const SearchInputGroup: React.FC<Props> = ({
75
78
  if (small) return;
76
79
 
77
80
  dispatch(setActiveSearchField(fieldKey));
81
+
82
+ // if field has custom onChange (API search)
83
+ if (config.onChange) {
84
+ config.onChange(input);
85
+ return;
86
+ }
87
+
88
+ // fallback to local filtering
78
89
  dispatch(setSearchResults(match(input)));
79
90
  },
80
- [dispatch, fieldKey, small, match, options]
91
+ [dispatch, fieldKey, small, match, config]
81
92
  );
82
93
 
94
+ useEffect(() => {
95
+ if (!value || activeSearchField !== fieldKey) return;
96
+
97
+ dispatch(setSearchResults(match(value)));
98
+ }, [options, value, activeSearchField, config, fieldKey]);
99
+
83
100
  const handleKeyDown = useCallback(
84
101
  (e: React.KeyboardEvent<HTMLInputElement>) => {
85
102
  if (!['Tab', 'Enter'].includes(e.key)) return;
@@ -151,7 +168,7 @@ const SearchInputGroup: React.FC<Props> = ({
151
168
 
152
169
  return (
153
170
  <label className="qsm__single-input-wrapper" ref={ref}>
154
- <Icon name="ui-location" height={16} />
171
+ <Icon name={typeOfSelectedOption === 'hotel' ? 'ui-hotel' : typeOfSelectedOption === 'airport' ? 'ui-flight' : 'ui-location'} height={16} />
155
172
 
156
173
  <span className={`qsm__label${isSecondInput ? ' qsm__label--second-input-label qsm__label--splittable' : ''}`}>{label}</span>
157
174
 
package/src/qsm/types.ts CHANGED
@@ -64,6 +64,7 @@ export interface BaseFieldConfig {
64
64
  placeholder: string;
65
65
  options: TypeaheadOption[];
66
66
  autoComplete?: boolean;
67
+ onChange?: (data: any) => void;
67
68
  }
68
69
 
69
70
  export interface TypeaheadOption {
@@ -8,7 +8,7 @@ import { getTranslations } from '../../../shared/utils/localization-util';
8
8
  import SearchResultsConfigurationContext from '../../search-results-configuration-context';
9
9
 
10
10
  interface FlightResultsProps {
11
- flights: BookingPackageFlight[];
11
+ flights?: BookingPackageFlight[];
12
12
  isDeparture?: boolean;
13
13
  }
14
14
 
@@ -55,145 +55,147 @@ const FlightResults: React.FC<FlightResultsProps> = ({ flights, isDeparture }) =
55
55
  </div>
56
56
  </div>
57
57
 
58
- <div className="search__results__cards search__results__cards--extended">
59
- {flights.map((flight, index) => {
60
- const lines = flight.flightMetaData.flightLines;
61
- const firstLine = lines[0];
62
- const lastLine = lines[lines.length - 1];
63
- const stops = lines.length - 1;
64
-
65
- return (
66
- <div className="flight" key={`flight-${flight.flightId}-${index}`}>
67
- <div className="flight__option">
68
- <div className="flight__content">
69
- <div className="flight__flights">
70
- {/* HEADER */}
71
- <div className="flight__flight">
72
- <div className="flight__flight__header">
73
- <div className="flight__status__container" />
74
- <div className="flight__price">
75
- <span className="price">€ {flight.price.toFixed(2)}</span>
76
-
77
- <button
78
- type="button"
79
- className={`cta ${flight.isSelected ? 'cta--selected' : 'cta--select'}`}
80
- onClick={() => dispatch(selectFlight({ flightOptionId: flight.flightOptionId, isDeparture: !!isDeparture }))}>
81
- {flight.isSelected ? 'Selected' : 'Select'}
82
- </button>
58
+ {flights && flights.length > 0 && (
59
+ <div className="search__results__cards search__results__cards--extended">
60
+ {flights.map((flight, index) => {
61
+ const lines = flight.flightMetaData.flightLines;
62
+ const firstLine = lines[0];
63
+ const lastLine = lines[lines.length - 1];
64
+ const stops = lines.length - 1;
65
+
66
+ return (
67
+ <div className="flight" key={`flight-${flight.flightId}-${index}`}>
68
+ <div className="flight__option">
69
+ <div className="flight__content">
70
+ <div className="flight__flights">
71
+ {/* HEADER */}
72
+ <div className="flight__flight">
73
+ <div className="flight__flight__header">
74
+ <div className="flight__status__container" />
75
+ <div className="flight__price">
76
+ <span className="price">€ {flight.price.toFixed(2)}</span>
77
+
78
+ <button
79
+ type="button"
80
+ className={`cta ${flight.isSelected ? 'cta--selected' : 'cta--select'}`}
81
+ onClick={() => dispatch(selectFlight({ flightOptionId: flight.flightOptionId, isDeparture: !!isDeparture }))}>
82
+ {flight.isSelected ? 'Selected' : 'Select'}
83
+ </button>
84
+ </div>
83
85
  </div>
84
86
  </div>
85
- </div>
86
-
87
- {/* SUMMARY */}
88
- <div className="flight__flight">
89
- <div className="flight__flight__container">
90
- <div className="flight__flight__wrapper">
91
- <div className="flight__logo__wrapper">
92
- <img
93
- src={`https://media.tidesoftware.be/media/shared/Airlines/${firstLine.airlineCode}.png?height=256`}
94
- alt={flight.airlineDescription}
95
- className="flight__logo"
96
- />
97
- <span>{flight.airlineDescription}</span>
98
- </div>
99
87
 
100
- <div className="flight__info">
101
- <div className="flight__info__times">
102
- <strong>
103
- {firstLine.departureTime} {firstLine.departureAirport}
104
- </strong>
105
- <p>{format(parseISO(firstLine.departureDate), 'EEE dd MMM yyyy')}</p>
88
+ {/* SUMMARY */}
89
+ <div className="flight__flight">
90
+ <div className="flight__flight__container">
91
+ <div className="flight__flight__wrapper">
92
+ <div className="flight__logo__wrapper">
93
+ <img
94
+ src={`https://media.tidesoftware.be/media/shared/Airlines/${firstLine.airlineCode}.png?height=256`}
95
+ alt={flight.airlineDescription}
96
+ className="flight__logo"
97
+ />
98
+ <span>{flight.airlineDescription}</span>
106
99
  </div>
107
100
 
108
- <div className="flight__info__duration">
109
- <p>{formatDuration(flight.flightMetaData.durationInTicks)}</p>
101
+ <div className="flight__info">
102
+ <div className="flight__info__times">
103
+ <strong>
104
+ {firstLine.departureTime} {firstLine.departureAirport}
105
+ </strong>
106
+ <p>{format(parseISO(firstLine.departureDate), 'EEE dd MMM yyyy')}</p>
107
+ </div>
110
108
 
111
- <div className="flight__info__duration__stops">{stops > 0 && <div className="flight__info__duration__stop" />}</div>
109
+ <div className="flight__info__duration">
110
+ <p>{formatDuration(flight.flightMetaData.durationInTicks)}</p>
112
111
 
113
- <span>{stops === 0 ? translations.SRP.DIRECT : `${stops} ${translations.SRP.STOP}${stops > 1 ? 's' : ''}`}</span>
114
- </div>
112
+ <div className="flight__info__duration__stops">{stops > 0 && <div className="flight__info__duration__stop" />}</div>
113
+
114
+ <span>{stops === 0 ? translations.SRP.DIRECT : `${stops} ${translations.SRP.STOP}${stops > 1 ? 's' : ''}`}</span>
115
+ </div>
115
116
 
116
- <div className="flight__info__times flight__info__times--arrival">
117
- <strong>
118
- {lastLine.arrivalTime} {lastLine.arrivalAirport}
119
- </strong>
120
- <p>{format(parseISO(lastLine.arrivalDate), 'EEE dd MMM yyyy')}</p>
117
+ <div className="flight__info__times flight__info__times--arrival">
118
+ <strong>
119
+ {lastLine.arrivalTime} {lastLine.arrivalAirport}
120
+ </strong>
121
+ <p>{format(parseISO(lastLine.arrivalDate), 'EEE dd MMM yyyy')}</p>
122
+ </div>
121
123
  </div>
122
124
  </div>
123
- </div>
124
125
 
125
- <div className="flight__detail__btn__wrapper">
126
- <div
127
- className={`flight__detail__btn ${activeDetailId === flight.flightOptionId ? 'flight__detail__btn--active' : ''}`}
128
- onClick={() => handleDetailClick(flight.flightOptionId)}>
129
- <Icon name="ui-chevron" className="flight__detail__btn__arrow" width={16} height={16} />
126
+ <div className="flight__detail__btn__wrapper">
127
+ <div
128
+ className={`flight__detail__btn ${activeDetailId === flight.flightOptionId ? 'flight__detail__btn--active' : ''}`}
129
+ onClick={() => handleDetailClick(flight.flightOptionId)}>
130
+ <Icon name="ui-chevron" className="flight__detail__btn__arrow" width={16} height={16} />
131
+ </div>
130
132
  </div>
131
133
  </div>
132
- </div>
133
134
 
134
- {/* DETAILS */}
135
- <div className={`flight__detail ${activeDetailId === flight.flightOptionId ? 'flight__detail--active' : ''}`}>
136
- {lines.map((line, index) => {
137
- const nextLine = lines[index + 1];
138
-
139
- return (
140
- <React.Fragment key={index}>
141
- {/* Flight line */}
142
- <div className="flight__info">
143
- <div className="flight__info__times__wrapper">
144
- <div className="flight__info__times">
145
- <p>{line.departureTime}</p>
146
- <strong>{line.departureAirport}</strong>
147
- <p>{format(parseISO(line.departureDate), 'EEE dd MMM yyyy')}</p>
148
- </div>
135
+ {/* DETAILS */}
136
+ <div className={`flight__detail ${activeDetailId === flight.flightOptionId ? 'flight__detail--active' : ''}`}>
137
+ {lines.map((line, index) => {
138
+ const nextLine = lines[index + 1];
149
139
 
150
- <Icon name="ui-plane-depart" width={30} height={20} />
151
- </div>
140
+ return (
141
+ <React.Fragment key={index}>
142
+ {/* Flight line */}
143
+ <div className="flight__info">
144
+ <div className="flight__info__times__wrapper">
145
+ <div className="flight__info__times">
146
+ <p>{line.departureTime}</p>
147
+ <strong>{line.departureAirport}</strong>
148
+ <p>{format(parseISO(line.departureDate), 'EEE dd MMM yyyy')}</p>
149
+ </div>
152
150
 
153
- <div className="flight__info__duration">
154
- <p>{formatDuration(line.durationInTicks)}</p>
155
- <span>
156
- {line.airline} {line.number}
157
- </span>
158
- </div>
151
+ <Icon name="ui-plane-depart" width={30} height={20} />
152
+ </div>
159
153
 
160
- <div className="flight__info__times__wrapper flight__info__times__wrapper--arrival">
161
- <Icon name="ui-plane-arrive" width={30} height={20} />
162
- <div className="flight__info__times flight__info__times--arrival">
163
- <p>{line.arrivalTime}</p>
164
- <strong>{line.arrivalAirport}</strong>
165
- <p>{format(parseISO(line.arrivalDate), 'EEE dd MMM yyyy')}</p>
154
+ <div className="flight__info__duration">
155
+ <p>{formatDuration(line.durationInTicks)}</p>
156
+ <span>
157
+ {line.airline} {line.number}
158
+ </span>
166
159
  </div>
167
- </div>
168
- </div>
169
160
 
170
- {nextLine && (
171
- <div className="flight__info">
172
- <div className="flight__info__duration flight__info__duration--waittime">
173
- <div className="flight__info__duration__stops flight__info__duration__stops--stoptime">
174
- <Icon name="ui-clock" width={24} height={24} />
175
- </div>
176
- <div className="flight__info__duration__stoptime">
177
- <span>{translations.SRP.STOP_TIME}</span>
178
- <strong>{formatDuration(parseISO(nextLine.departureDate).getTime() - parseISO(line.arrivalDate).getTime())}</strong>
161
+ <div className="flight__info__times__wrapper flight__info__times__wrapper--arrival">
162
+ <Icon name="ui-plane-arrive" width={30} height={20} />
163
+ <div className="flight__info__times flight__info__times--arrival">
164
+ <p>{line.arrivalTime}</p>
165
+ <strong>{line.arrivalAirport}</strong>
166
+ <p>{format(parseISO(line.arrivalDate), 'EEE dd MMM yyyy')}</p>
179
167
  </div>
180
168
  </div>
181
169
  </div>
182
- )}
183
- </React.Fragment>
184
- );
185
- })}
170
+
171
+ {nextLine && (
172
+ <div className="flight__info">
173
+ <div className="flight__info__duration flight__info__duration--waittime">
174
+ <div className="flight__info__duration__stops flight__info__duration__stops--stoptime">
175
+ <Icon name="ui-clock" width={24} height={24} />
176
+ </div>
177
+ <div className="flight__info__duration__stoptime">
178
+ <span>{translations.SRP.STOP_TIME}</span>
179
+ <strong>{formatDuration(parseISO(nextLine.departureDate).getTime() - parseISO(line.arrivalDate).getTime())}</strong>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ )}
184
+ </React.Fragment>
185
+ );
186
+ })}
187
+ </div>
186
188
  </div>
187
189
  </div>
188
- </div>
189
190
 
190
- <div className="flight__rate" />
191
+ <div className="flight__rate" />
192
+ </div>
191
193
  </div>
192
194
  </div>
193
- </div>
194
- );
195
- })}
196
- </div>
195
+ );
196
+ })}
197
+ </div>
198
+ )}
197
199
 
198
200
  {/* <div className="search__results__options">
199
201
  <p>There are more transports at your disposal</p>
@@ -63,6 +63,10 @@ const calculateNights = (fromDate: Date, toDate: Date, translations?: any): stri
63
63
  };
64
64
 
65
65
  const HotelAccommodationResults: React.FC<HotelAccommodationResultsProps> = ({ isLoading, context }) => {
66
+ if (context.showMockup) {
67
+ return showMocukups(context);
68
+ }
69
+
66
70
  const translations = getTranslations(context?.languageCode ?? 'en-GB');
67
71
 
68
72
  if (isLoading) {
@@ -109,3 +113,84 @@ const HotelAccommodationResults: React.FC<HotelAccommodationResultsProps> = ({ i
109
113
  };
110
114
 
111
115
  export default HotelAccommodationResults;
116
+
117
+ const showMocukups = (context: any) => {
118
+ const mockedHotelResults = [
119
+ {
120
+ type: 'hotel',
121
+ id: 2,
122
+ title: 'HTFSWILLCARL',
123
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
124
+ description: '2 persoons kamer',
125
+ location: 'Tenerif, Spanje',
126
+ price: '$2244',
127
+ ctaText: 'Bekijk details',
128
+ days: '7 nights',
129
+ flightInfo: null,
130
+ accommodation: 'Hotel XYZ',
131
+ regime: 'All-inclusive',
132
+ stars: 5
133
+ } as HotelResult,
134
+ {
135
+ type: 'hotel',
136
+ id: 3,
137
+ title: 'HTFSSOFTROCK',
138
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
139
+ description: '3 persoons kamer',
140
+ location: 'Tenerif, Spanje',
141
+ price: '$2244',
142
+ ctaText: 'Bekijk details',
143
+ days: '7 nights',
144
+ flightInfo: null,
145
+ accommodation: 'Hotel ABC',
146
+ regime: 'Half-board',
147
+ stars: 4
148
+ } as HotelResult,
149
+ {
150
+ type: 'hotel',
151
+ id: 4,
152
+ title: 'HTFSROYGAR',
153
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
154
+ description: '4 persoons kamer',
155
+ location: 'Tenerif, Spanje',
156
+ price: '$2496',
157
+ ctaText: 'Bekijk details',
158
+ days: '7 nights',
159
+ flightInfo: null,
160
+ accommodation: 'Hotel DEF',
161
+ regime: 'Full-board',
162
+ stars: 5
163
+ } as HotelResult,
164
+ {
165
+ type: 'hotel',
166
+ id: 5,
167
+ title: 'HTFSCONBEL',
168
+ image: 'https://images.unsplash.com/photo-1573790387438-4da905039392?q=80&w=1925&auto=format&fit=crop',
169
+ description: '5 persoons kamer',
170
+ location: 'Tenerif, Spanje',
171
+ price: '$6784.8',
172
+ ctaText: 'Bekijk details',
173
+ days: '7 nights',
174
+ flightInfo: null,
175
+ accommodation: 'Hotel GHI',
176
+ regime: 'All-inclusive',
177
+ stars: 5
178
+ } as HotelResult
179
+ ] as HotelResult[];
180
+ return <>{renderMockupResults(mockedHotelResults, context)}</>;
181
+ };
182
+
183
+ const renderMockupResults = (results: any[], context: any) => {
184
+ const renderedResults = results.map((result, index) => {
185
+ if (context?.showCustomCards && context?.customCardRenderer) {
186
+ return (
187
+ <div key={`${result.id}-${index}`} className="search__result-card">
188
+ {context.customCardRenderer(result)}
189
+ </div>
190
+ );
191
+ }
192
+ return <HotelCard key={`${result.id}-${index}`} result={result} />;
193
+ });
194
+
195
+ return <div className="search__results__cards">{renderedResults}</div>;
196
+ };