@roomstay/frontend 2.6.89-2 → 2.6.90

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 (1088) hide show
  1. package/dist/177.bundle.js +1 -1
  2. package/dist/279.bundle.js +1 -1
  3. package/dist/288.bundle.js +1 -1
  4. package/dist/370.bundle.js +1 -1
  5. package/dist/4.bundle.js +1 -0
  6. package/dist/430.bundle.js +1 -1
  7. package/dist/449.bundle.js +1 -1
  8. package/dist/537.bundle.js +1 -1
  9. package/dist/686.bundle.js +1 -1
  10. package/dist/873.bundle.js +1 -1
  11. package/dist/972.bundle.js +1 -1
  12. package/dist/978.bundle.js +1 -1
  13. package/dist/984.bundle.js +1 -0
  14. package/dist/e2e/canChangeCurrency.spec.js +1 -1
  15. package/dist/e2e/canChangeCurrency.spec.js.map +1 -1
  16. package/dist/e2e/canCheckout.spec.js +3 -3
  17. package/dist/e2e/canCheckout.spec.js.map +1 -1
  18. package/dist/e2e/canViewFindReservationsPage.spec.js +1 -1
  19. package/dist/e2e/canViewFindReservationsPage.spec.js.map +1 -1
  20. package/dist/e2e/canViewHotelnfoPage.spec.js +1 -1
  21. package/dist/e2e/canViewHotelnfoPage.spec.js.map +1 -1
  22. package/dist/e2e/goBackAndCheckoutAgain.spec.js +1 -1
  23. package/dist/e2e/goBackAndCheckoutAgain.spec.js.map +1 -1
  24. package/dist/e2e/helpers/checkoutHelpers.js +8 -9
  25. package/dist/e2e/helpers/checkoutHelpers.js.map +1 -1
  26. package/dist/e2e/helpers/playwrightHelpers.js +1 -2
  27. package/dist/e2e/helpers/playwrightHelpers.js.map +1 -1
  28. package/dist/e2e/price.spec.js +3 -3
  29. package/dist/e2e/price.spec.js.map +1 -1
  30. package/dist/main.bundle.js +1 -1
  31. package/dist/src/animations/AutoAutoHeight.d.ts +1 -1
  32. package/dist/src/animations/AutoAutoHeight.js +18 -8
  33. package/dist/src/animations/AutoAutoHeight.js.map +1 -1
  34. package/dist/src/animations/Fade.js +17 -7
  35. package/dist/src/animations/Fade.js.map +1 -1
  36. package/dist/src/api/AddonAPI.js +17 -7
  37. package/dist/src/api/AddonAPI.js.map +1 -1
  38. package/dist/src/api/AvailabilityAPI.d.ts +28 -6
  39. package/dist/src/api/AvailabilityAPI.js +214 -106
  40. package/dist/src/api/AvailabilityAPI.js.map +1 -1
  41. package/dist/src/api/BaseAPI.js +6 -6
  42. package/dist/src/api/BaseAPI.js.map +1 -1
  43. package/dist/src/api/ErrorAPI.js.map +1 -1
  44. package/dist/src/api/ExchangeRateAPI.js.map +1 -1
  45. package/dist/src/api/HotelAPI.d.ts +1 -1
  46. package/dist/src/api/HotelAPI.js.map +1 -1
  47. package/dist/src/api/MemberAPI.js +17 -7
  48. package/dist/src/api/MemberAPI.js.map +1 -1
  49. package/dist/src/api/ReservationAPI.d.ts +2 -3
  50. package/dist/src/api/ReservationAPI.js +21 -10
  51. package/dist/src/api/ReservationAPI.js.map +1 -1
  52. package/dist/src/api/SessionAPI.js +17 -7
  53. package/dist/src/api/SessionAPI.js.map +1 -1
  54. package/dist/src/api/TrueRewardsAPI.js.map +1 -1
  55. package/dist/src/api/events-service/EventsServiceAPI.js.map +1 -1
  56. package/dist/src/api/members-service/MembersServiceAPI.d.ts +1 -1
  57. package/dist/src/components/Event/EventCarouselContainer.js +17 -7
  58. package/dist/src/components/Event/EventCarouselContainer.js.map +1 -1
  59. package/dist/src/components/User/Forms/ForgotPasswordForm.d.ts +2 -1
  60. package/dist/src/components/User/Forms/ForgotPasswordForm.js +17 -7
  61. package/dist/src/components/User/Forms/ForgotPasswordForm.js.map +1 -1
  62. package/dist/src/components/User/Forms/SignInForm.js +17 -7
  63. package/dist/src/components/User/Forms/SignInForm.js.map +1 -1
  64. package/dist/src/components/User/Forms/SignUpForm.d.ts +2 -1
  65. package/dist/src/components/User/Forms/SignUpForm.js +17 -7
  66. package/dist/src/components/User/Forms/SignUpForm.js.map +1 -1
  67. package/dist/src/components/User/Forms/VerifyEmailForm.d.ts +2 -1
  68. package/dist/src/components/User/Forms/VerifyEmailForm.js +17 -7
  69. package/dist/src/components/User/Forms/VerifyEmailForm.js.map +1 -1
  70. package/dist/src/components/generic/AfterpayButton/AfterpayPaymentOption.js +17 -7
  71. package/dist/src/components/generic/AfterpayButton/AfterpayPaymentOption.js.map +1 -1
  72. package/dist/src/components/generic/AgedBetweenLabel/AgedBetweenLabel.d.ts +2 -1
  73. package/dist/src/components/generic/AgedBetweenLabel/AgedBetweenLabel.js +17 -7
  74. package/dist/src/components/generic/AgedBetweenLabel/AgedBetweenLabel.js.map +1 -1
  75. package/dist/src/components/generic/Alert.d.ts +2 -2
  76. package/dist/src/components/generic/Alert.js +3 -3
  77. package/dist/src/components/generic/Alert.js.map +1 -1
  78. package/dist/src/components/generic/BEButton.d.ts +2 -1
  79. package/dist/src/components/generic/BEButton.js +20 -9
  80. package/dist/src/components/generic/BEButton.js.map +1 -1
  81. package/dist/src/components/generic/BackButton.d.ts +2 -1
  82. package/dist/src/components/generic/BackButton.js +1 -1
  83. package/dist/src/components/generic/BackButton.js.map +1 -1
  84. package/dist/src/components/generic/BookNowPayLaterInfoBlock.js +18 -9
  85. package/dist/src/components/generic/BookNowPayLaterInfoBlock.js.map +1 -1
  86. package/dist/src/components/generic/BookingWizard/BookingWizard.d.ts +1 -2
  87. package/dist/src/components/generic/BookingWizard/BookingWizard.js +28 -46
  88. package/dist/src/components/generic/BookingWizard/BookingWizard.js.map +1 -1
  89. package/dist/src/components/generic/BookingWizard/BookingWizardBottomSheet/BookingWizardBottomSheet.d.ts +2 -2
  90. package/dist/src/components/generic/BookingWizard/BookingWizardContent.d.ts +5 -7
  91. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js +21 -43
  92. package/dist/src/components/generic/BookingWizard/BookingWizardContent.js.map +1 -1
  93. package/dist/src/components/generic/BookingWizard/BookingWizardContext.d.ts +0 -9
  94. package/dist/src/components/generic/BookingWizard/BookingWizardContext.js.map +1 -1
  95. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.d.ts +1 -2
  96. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js +19 -9
  97. package/dist/src/components/generic/BookingWizard/BookingWizardDateSelector/BookingWizardDateSelector.js.map +1 -1
  98. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.d.ts +5 -2
  99. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js +20 -10
  100. package/dist/src/components/generic/BookingWizard/BookingWizardGuestSelector/BookingWizardGuestSelector.js.map +1 -1
  101. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.d.ts +1 -1
  102. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js +21 -11
  103. package/dist/src/components/generic/BookingWizard/BookingWizardHotelSelector/BookingWizardHotelSelector.js.map +1 -1
  104. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js +17 -7
  105. package/dist/src/components/generic/BookingWizard/BookingWizardPromoCode/BookingWizardPromoCode.js.map +1 -1
  106. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.d.ts +2 -2
  107. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js +17 -7
  108. package/dist/src/components/generic/Card/IconNavCard/IconNavCard.js.map +1 -1
  109. package/dist/src/components/generic/Checkbox/Checkbox.js +17 -7
  110. package/dist/src/components/generic/Checkbox/Checkbox.js.map +1 -1
  111. package/dist/src/components/generic/Countdown.d.ts +2 -1
  112. package/dist/src/components/generic/Countdown.js +18 -8
  113. package/dist/src/components/generic/Countdown.js.map +1 -1
  114. package/dist/src/components/generic/Currency.d.ts +2 -1
  115. package/dist/src/components/generic/Currency.js +18 -8
  116. package/dist/src/components/generic/Currency.js.map +1 -1
  117. package/dist/src/components/generic/DateRangePicker/DateRangePicker.d.ts +2 -1
  118. package/dist/src/components/generic/DateRangePicker/DateRangePicker.js +18 -8
  119. package/dist/src/components/generic/DateRangePicker/DateRangePicker.js.map +1 -1
  120. package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.d.ts +2 -1
  121. package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js +19 -9
  122. package/dist/src/components/generic/DateRangePicker/DateRangePickerDay.js.map +1 -1
  123. package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.d.ts +2 -1
  124. package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js +18 -8
  125. package/dist/src/components/generic/DateRangePicker/DateRangePickerDays.js.map +1 -1
  126. package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.d.ts +2 -1
  127. package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js +18 -8
  128. package/dist/src/components/generic/DateRangePicker/DateRangePickerMonth.js.map +1 -1
  129. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js +17 -7
  130. package/dist/src/components/generic/DateRangePicker/FloatingDateRangePicker.js.map +1 -1
  131. package/dist/src/components/generic/Distance.d.ts +2 -1
  132. package/dist/src/components/generic/Distance.js +18 -8
  133. package/dist/src/components/generic/Distance.js.map +1 -1
  134. package/dist/src/components/generic/Event/EventCard.js +17 -7
  135. package/dist/src/components/generic/Event/EventCard.js.map +1 -1
  136. package/dist/src/components/generic/Event/EventCarousel.js +17 -7
  137. package/dist/src/components/generic/Event/EventCarousel.js.map +1 -1
  138. package/dist/src/components/generic/ForwardedSelect.js +17 -7
  139. package/dist/src/components/generic/ForwardedSelect.js.map +1 -1
  140. package/dist/src/components/generic/GroupedCheckInOutTimes/GroupedCheckInOutTimes.js.map +1 -1
  141. package/dist/src/components/generic/Headline.d.ts +1 -1
  142. package/dist/src/components/generic/Headline.js +1 -1
  143. package/dist/src/components/generic/Headline.js.map +1 -1
  144. package/dist/src/components/generic/HtmlContentViewer.d.ts +2 -1
  145. package/dist/src/components/generic/HtmlContentViewer.js +17 -7
  146. package/dist/src/components/generic/HtmlContentViewer.js.map +1 -1
  147. package/dist/src/components/generic/IconText/IconText.js +19 -9
  148. package/dist/src/components/generic/IconText/IconText.js.map +1 -1
  149. package/dist/src/components/generic/InputGroup/InputGroup.d.ts +2 -2
  150. package/dist/src/components/generic/InputGroup/InputGroup.js +1 -1
  151. package/dist/src/components/generic/InputGroup/InputGroup.js.map +1 -1
  152. package/dist/src/components/generic/LineBreak.d.ts +2 -1
  153. package/dist/src/components/generic/LineBreak.js +1 -1
  154. package/dist/src/components/generic/LineBreak.js.map +1 -1
  155. package/dist/src/components/generic/Notification.d.ts +1 -1
  156. package/dist/src/components/generic/Notification.js +18 -8
  157. package/dist/src/components/generic/Notification.js.map +1 -1
  158. package/dist/src/components/generic/NumberIncrement.d.ts +2 -1
  159. package/dist/src/components/generic/NumberIncrement.js +18 -8
  160. package/dist/src/components/generic/NumberIncrement.js.map +1 -1
  161. package/dist/src/components/generic/Overlay/Overlay.d.ts +2 -2
  162. package/dist/src/components/generic/Overlay/Overlay.js +17 -7
  163. package/dist/src/components/generic/Overlay/Overlay.js.map +1 -1
  164. package/dist/src/components/generic/PageTitle/index.d.ts +2 -1
  165. package/dist/src/components/generic/PageTitle/index.js.map +1 -1
  166. package/dist/src/components/generic/PasswordBox/PasswordBox.js +17 -7
  167. package/dist/src/components/generic/PasswordBox/PasswordBox.js.map +1 -1
  168. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js +19 -9
  169. package/dist/src/components/generic/PaymentCard/InlinePaymentOption.js.map +1 -1
  170. package/dist/src/components/generic/PaymentCard/PaymentCard.d.ts +2 -1
  171. package/dist/src/components/generic/PaymentCard/PaymentCardInput.js +17 -7
  172. package/dist/src/components/generic/PaymentCard/PaymentCardInput.js.map +1 -1
  173. package/dist/src/components/generic/Pill.d.ts +1 -1
  174. package/dist/src/components/generic/Pill.js +3 -3
  175. package/dist/src/components/generic/Pill.js.map +1 -1
  176. package/dist/src/components/generic/Placeholder.d.ts +2 -1
  177. package/dist/src/components/generic/Placeholder.js +1 -1
  178. package/dist/src/components/generic/Placeholder.js.map +1 -1
  179. package/dist/src/components/generic/PlanpayPrice/PlanpayPrice.js +17 -7
  180. package/dist/src/components/generic/PlanpayPrice/PlanpayPrice.js.map +1 -1
  181. package/dist/src/components/generic/PromoCodeInput.d.ts +4 -1
  182. package/dist/src/components/generic/PromoCodeInput.js +20 -12
  183. package/dist/src/components/generic/PromoCodeInput.js.map +1 -1
  184. package/dist/src/components/generic/RadioButtonGroup/RadioButton.js +17 -7
  185. package/dist/src/components/generic/RadioButtonGroup/RadioButton.js.map +1 -1
  186. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js +17 -7
  187. package/dist/src/components/generic/RadioButtonGroup/RadioButtonGroup.js.map +1 -1
  188. package/dist/src/components/generic/RecentSearchesCard.d.ts +2 -1
  189. package/dist/src/components/generic/RecentSearchesCard.js +17 -7
  190. package/dist/src/components/generic/RecentSearchesCard.js.map +1 -1
  191. package/dist/src/components/generic/RoomstayMark.d.ts +2 -1
  192. package/dist/src/components/generic/RoomstayMark.js +17 -7
  193. package/dist/src/components/generic/RoomstayMark.js.map +1 -1
  194. package/dist/src/components/generic/ScrollToTop.js.map +1 -1
  195. package/dist/src/components/generic/Select/InputSelect.js +18 -8
  196. package/dist/src/components/generic/Select/InputSelect.js.map +1 -1
  197. package/dist/src/components/generic/Select/Select.d.ts +2 -2
  198. package/dist/src/components/generic/Select/Select.js +17 -7
  199. package/dist/src/components/generic/Select/Select.js.map +1 -1
  200. package/dist/src/components/generic/Slider/Slider.d.ts +1 -1
  201. package/dist/src/components/generic/Slider/Slider.js +17 -7
  202. package/dist/src/components/generic/Slider/Slider.js.map +1 -1
  203. package/dist/src/components/generic/Tabs/ElementChildren.js +2 -3
  204. package/dist/src/components/generic/Tabs/ElementChildren.js.map +1 -1
  205. package/dist/src/components/generic/Tabs/TabContext.js +17 -7
  206. package/dist/src/components/generic/Tabs/TabContext.js.map +1 -1
  207. package/dist/src/components/generic/Tabs/TabLink.js +17 -7
  208. package/dist/src/components/generic/Tabs/TabLink.js.map +1 -1
  209. package/dist/src/components/generic/Tabs/TabRouteContainer.d.ts +2 -2
  210. package/dist/src/components/generic/Tabs/TabRouteContainer.js +18 -9
  211. package/dist/src/components/generic/Tabs/TabRouteContainer.js.map +1 -1
  212. package/dist/src/components/generic/Text.js +19 -9
  213. package/dist/src/components/generic/Text.js.map +1 -1
  214. package/dist/src/components/generic/TextArea.js +17 -7
  215. package/dist/src/components/generic/TextArea.js.map +1 -1
  216. package/dist/src/components/generic/TextBox.js +17 -7
  217. package/dist/src/components/generic/TextBox.js.map +1 -1
  218. package/dist/src/components/generic/Tooltip/Tooltip.d.ts +2 -2
  219. package/dist/src/components/generic/Tooltip/Tooltip.js +18 -8
  220. package/dist/src/components/generic/Tooltip/Tooltip.js.map +1 -1
  221. package/dist/src/components/generic/badging/SSLSecureBadge.d.ts +2 -1
  222. package/dist/src/components/generic/badging/SSLSecureBadge.js +1 -1
  223. package/dist/src/components/generic/badging/SSLSecureBadge.js.map +1 -1
  224. package/dist/src/components/generic/buttons/NextStepButton.d.ts +2 -1
  225. package/dist/src/components/generic/buttons/NextStepButton.js +18 -8
  226. package/dist/src/components/generic/buttons/NextStepButton.js.map +1 -1
  227. package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js +26 -14
  228. package/dist/src/components/generic/custom/EnhancedPhoneNumberField/EnhancedPhoneNumberField.js.map +1 -1
  229. package/dist/src/components/generic/date/DatePicker.d.ts +3 -2
  230. package/dist/src/components/generic/date/DatePicker.js +19 -9
  231. package/dist/src/components/generic/date/DatePicker.js.map +1 -1
  232. package/dist/src/components/generic/date/DatePickerDay.d.ts +2 -1
  233. package/dist/src/components/generic/date/DatePickerDay.js +19 -9
  234. package/dist/src/components/generic/date/DatePickerDay.js.map +1 -1
  235. package/dist/src/components/generic/date/DatePickerDays.d.ts +2 -1
  236. package/dist/src/components/generic/date/DatePickerDays.js +18 -8
  237. package/dist/src/components/generic/date/DatePickerDays.js.map +1 -1
  238. package/dist/src/components/generic/date/DatePickerMonth.d.ts +2 -1
  239. package/dist/src/components/generic/date/DatePickerMonth.js +18 -8
  240. package/dist/src/components/generic/date/DatePickerMonth.js.map +1 -1
  241. package/dist/src/components/generic/date/DatePickerWeek.d.ts +2 -1
  242. package/dist/src/components/generic/date/DatePickerWeek.js +21 -11
  243. package/dist/src/components/generic/date/DatePickerWeek.js.map +1 -1
  244. package/dist/src/components/generic/date/FloatingDatePicker.d.ts +1 -1
  245. package/dist/src/components/generic/date/FloatingDatePicker.js +19 -9
  246. package/dist/src/components/generic/date/FloatingDatePicker.js.map +1 -1
  247. package/dist/src/components/generic/date/WeekViewSkeleton.d.ts +2 -1
  248. package/dist/src/components/generic/date/WeekViewSkeleton.js +17 -7
  249. package/dist/src/components/generic/date/WeekViewSkeleton.js.map +1 -1
  250. package/dist/src/components/generic/loader/ImageLoader.d.ts +1 -1
  251. package/dist/src/components/generic/loader/ImageLoader.js +18 -8
  252. package/dist/src/components/generic/loader/ImageLoader.js.map +1 -1
  253. package/dist/src/components/generic/loader/LargeLoader.d.ts +2 -1
  254. package/dist/src/components/generic/loader/LargeLoader.js +1 -1
  255. package/dist/src/components/generic/loader/LargeLoader.js.map +1 -1
  256. package/dist/src/components/generic/loader/OverlayLoader.d.ts +2 -1
  257. package/dist/src/components/generic/loader/SmallSpinner.d.ts +2 -1
  258. package/dist/src/components/generic/loader/SmallSpinner.js +18 -8
  259. package/dist/src/components/generic/loader/SmallSpinner.js.map +1 -1
  260. package/dist/src/components/generic/map/HotelLocationMap.d.ts +2 -1
  261. package/dist/src/components/generic/map/HotelLocationMap.js +1 -1
  262. package/dist/src/components/generic/map/HotelLocationMap.js.map +1 -1
  263. package/dist/src/components/generic/modal/ConfirmationModal.d.ts +2 -1
  264. package/dist/src/components/generic/modal/ConfirmationModal.js +18 -8
  265. package/dist/src/components/generic/modal/ConfirmationModal.js.map +1 -1
  266. package/dist/src/components/generic/modal/ErrorModal.d.ts +1 -1
  267. package/dist/src/components/generic/modal/ErrorModal.js +18 -8
  268. package/dist/src/components/generic/modal/ErrorModal.js.map +1 -1
  269. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js +17 -7
  270. package/dist/src/components/generic/modal/SigninModal/AuthenticatedUserModal.js.map +1 -1
  271. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js +17 -7
  272. package/dist/src/components/generic/modal/SigninModal/FormContent/SignUpFormContent.js.map +1 -1
  273. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.d.ts +2 -1
  274. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js +18 -8
  275. package/dist/src/components/generic/modal/SigninModal/UnauthenticatedUserModal.js.map +1 -1
  276. package/dist/src/components/generic/modal/SimpleModal.d.ts +1 -1
  277. package/dist/src/components/generic/modal/SimpleModal.js +19 -9
  278. package/dist/src/components/generic/modal/SimpleModal.js.map +1 -1
  279. package/dist/src/components/generic/modal/TabbedModal.d.ts +1 -1
  280. package/dist/src/components/generic/modal/TabbedModal.js +18 -8
  281. package/dist/src/components/generic/modal/TabbedModal.js.map +1 -1
  282. package/dist/src/components/generic/radio/RadioFields.d.ts +2 -1
  283. package/dist/src/components/generic/radio/RadioFields.js +18 -8
  284. package/dist/src/components/generic/radio/RadioFields.js.map +1 -1
  285. package/dist/src/components/graphics/TravelerNotfound.d.ts +2 -1
  286. package/dist/src/components/graphics/TravelerNotfound.js +1 -1
  287. package/dist/src/components/graphics/TravelerNotfound.js.map +1 -1
  288. package/dist/src/components/iconComponents/BookNowPayLaterIcon.d.ts +2 -1
  289. package/dist/src/components/members/EditMyProfile.js +17 -7
  290. package/dist/src/components/members/EditMyProfile.js.map +1 -1
  291. package/dist/src/components/members/InlineSignUpSection.d.ts +3 -2
  292. package/dist/src/components/members/InlineSignUpSection.js +17 -7
  293. package/dist/src/components/members/InlineSignUpSection.js.map +1 -1
  294. package/dist/src/components/members/SignInModal/ExternalMemberModal.d.ts +2 -1
  295. package/dist/src/components/members/SignInModal/ExternalMemberModal.js +17 -7
  296. package/dist/src/components/members/SignInModal/ExternalMemberModal.js.map +1 -1
  297. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.d.ts +2 -1
  298. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js +19 -9
  299. package/dist/src/components/members/SignInModal/InternalMemberSignInModal.js.map +1 -1
  300. package/dist/src/components/members/SignInModal/MemberPortalSignInModal.d.ts +2 -1
  301. package/dist/src/components/members/SignInModal/MemberPortalSignInModal.js +18 -8
  302. package/dist/src/components/members/SignInModal/MemberPortalSignInModal.js.map +1 -1
  303. package/dist/src/components/members/SignInModal/MemberSignInModal.d.ts +2 -1
  304. package/dist/src/components/members/SignInModal/MemberSignInModal.js +17 -7
  305. package/dist/src/components/members/SignInModal/MemberSignInModal.js.map +1 -1
  306. package/dist/src/components/navigation/Header.d.ts +2 -1
  307. package/dist/src/components/navigation/Header.js +22 -8
  308. package/dist/src/components/navigation/Header.js.map +1 -1
  309. package/dist/src/components/navigation/StepSelector.d.ts +2 -1
  310. package/dist/src/components/navigation/StepSelector.js +18 -8
  311. package/dist/src/components/navigation/StepSelector.js.map +1 -1
  312. package/dist/src/components/navigation/StepSelectorModal.d.ts +2 -1
  313. package/dist/src/components/navigation/StepSelectorModal.js +18 -8
  314. package/dist/src/components/navigation/StepSelectorModal.js.map +1 -1
  315. package/dist/src/components/pages/Account/Card/MemberCardItem.d.ts +2 -1
  316. package/dist/src/components/pages/Account/Card/MemberCardItem.js +17 -7
  317. package/dist/src/components/pages/Account/Card/MemberCardItem.js.map +1 -1
  318. package/dist/src/components/pages/PageColorComponent.d.ts +2 -1
  319. package/dist/src/components/pages/PageColorComponent.js +17 -7
  320. package/dist/src/components/pages/PageColorComponent.js.map +1 -1
  321. package/dist/src/components/reservation/EmptyReservation.js +17 -7
  322. package/dist/src/components/reservation/EmptyReservation.js.map +1 -1
  323. package/dist/src/components/reservation/ReservationItem.d.ts +3 -1
  324. package/dist/src/components/reservation/ReservationItem.js +20 -10
  325. package/dist/src/components/reservation/ReservationItem.js.map +1 -1
  326. package/dist/src/components/reservation/ReservationList.d.ts +1 -0
  327. package/dist/src/components/reservation/ReservationList.js +2 -2
  328. package/dist/src/components/reservation/ReservationList.js.map +1 -1
  329. package/dist/src/components/steps/DaysSelectedInformer.d.ts +2 -1
  330. package/dist/src/components/steps/DaysSelectedInformer.js +18 -8
  331. package/dist/src/components/steps/DaysSelectedInformer.js.map +1 -1
  332. package/dist/src/components/steps/MinimumNightStayPill.d.ts +2 -1
  333. package/dist/src/components/steps/MinimumNightStayPill.js +18 -8
  334. package/dist/src/components/steps/MinimumNightStayPill.js.map +1 -1
  335. package/dist/src/components/steps/addons/AddonCard.d.ts +2 -1
  336. package/dist/src/components/steps/addons/AddonCard.js +25 -7
  337. package/dist/src/components/steps/addons/AddonCard.js.map +1 -1
  338. package/dist/src/components/steps/addons/AddonList.d.ts +2 -1
  339. package/dist/src/components/steps/addons/AddonList.js +17 -7
  340. package/dist/src/components/steps/addons/AddonList.js.map +1 -1
  341. package/dist/src/components/steps/addons/AddonsNotFoundBlock.d.ts +2 -1
  342. package/dist/src/components/steps/addons/AddonsNotFoundBlock.js +1 -1
  343. package/dist/src/components/steps/addons/AddonsNotFoundBlock.js.map +1 -1
  344. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.d.ts +3 -2
  345. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js +19 -9
  346. package/dist/src/components/steps/common/CommonAddonSummary/CommonAddonSummary.js.map +1 -1
  347. package/dist/src/components/steps/common/ItemisedFeesListing/ItemisedFeesListing.d.ts +2 -1
  348. package/dist/src/components/steps/common/ItemisedFeesListing/ItemisedFeesListing.js +17 -7
  349. package/dist/src/components/steps/common/ItemisedFeesListing/ItemisedFeesListing.js.map +1 -1
  350. package/dist/src/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary.d.ts +3 -2
  351. package/dist/src/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary.js +17 -7
  352. package/dist/src/components/steps/common/ItemisedFeesSummary/ItemisedFeesSummary.js.map +1 -1
  353. package/dist/src/components/steps/confirmation/AccountDetails.d.ts +2 -1
  354. package/dist/src/components/steps/confirmation/AccountDetails.js +18 -8
  355. package/dist/src/components/steps/confirmation/AccountDetails.js.map +1 -1
  356. package/dist/src/components/steps/confirmation/AdyenPaymentOption/AdyenPaymentOption.js +17 -7
  357. package/dist/src/components/steps/confirmation/AdyenPaymentOption/AdyenPaymentOption.js.map +1 -1
  358. package/dist/src/components/steps/confirmation/MastercardPaymentMethod.js +17 -7
  359. package/dist/src/components/steps/confirmation/MastercardPaymentMethod.js.map +1 -1
  360. package/dist/src/components/steps/confirmation/PaymentDetails/AcceptablePaymentCard.js.map +1 -1
  361. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.d.ts +2 -1
  362. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js +17 -7
  363. package/dist/src/components/steps/confirmation/PaymentDetails/ExistingCardPicker.js.map +1 -1
  364. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js +17 -7
  365. package/dist/src/components/steps/confirmation/PaymentDetails/StepConfirmationPaymentDetails.js.map +1 -1
  366. package/dist/src/components/steps/confirmation/PaymentInformation.d.ts +2 -1
  367. package/dist/src/components/steps/confirmation/PaymentInformation.js +17 -7
  368. package/dist/src/components/steps/confirmation/PaymentInformation.js.map +1 -1
  369. package/dist/src/components/steps/confirmation/PlanpayLabel.d.ts +2 -1
  370. package/dist/src/components/steps/confirmation/PlanpayLabel.js +17 -7
  371. package/dist/src/components/steps/confirmation/PlanpayLabel.js.map +1 -1
  372. package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js +17 -7
  373. package/dist/src/components/steps/confirmation/PlanpayPaymentMethod.js.map +1 -1
  374. package/dist/src/components/steps/confirmation/RoomContactDetails.js +18 -11
  375. package/dist/src/components/steps/confirmation/RoomContactDetails.js.map +1 -1
  376. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.d.ts +2 -1
  377. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js +28 -19
  378. package/dist/src/components/steps/confirmation/StepConfirmationAcknowledgement.js.map +1 -1
  379. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.d.ts +2 -1
  380. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js +18 -8
  381. package/dist/src/components/steps/confirmation/StepConfirmationCheckoutDifferencesModal.js.map +1 -1
  382. package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.d.ts +2 -1
  383. package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js +2 -2
  384. package/dist/src/components/steps/confirmation/StepConfirmationCommentsComponent.js.map +1 -1
  385. package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js +17 -7
  386. package/dist/src/components/steps/confirmation/StepConfirmationCountrySelector.js.map +1 -1
  387. package/dist/src/components/steps/confirmation/StepConfirmationForm.d.ts +2 -1
  388. package/dist/src/components/steps/confirmation/StepConfirmationForm.js +18 -8
  389. package/dist/src/components/steps/confirmation/StepConfirmationForm.js.map +1 -1
  390. package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.d.ts +2 -1
  391. package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.js +1 -1
  392. package/dist/src/components/steps/confirmation/StepConfirmationFormProvider.js.map +1 -1
  393. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.d.ts +2 -1
  394. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js +18 -8
  395. package/dist/src/components/steps/confirmation/StepConfirmationLimitedOffer.js.map +1 -1
  396. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.d.ts +2 -1
  397. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js +18 -8
  398. package/dist/src/components/steps/confirmation/StepConfirmationPoliciesSection.js.map +1 -1
  399. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.d.ts +2 -1
  400. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js +23 -12
  401. package/dist/src/components/steps/confirmation/StepConfirmationPolicyBlock.js.map +1 -1
  402. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.d.ts +2 -1
  403. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.js +26 -13
  404. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsLabel.js.map +1 -1
  405. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsModal.d.ts +2 -0
  406. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsModal.js +94 -0
  407. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsModal.js.map +1 -0
  408. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.d.ts +5 -1
  409. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.js +35 -13
  410. package/dist/src/components/steps/confirmation/TrueRewardsPaymentOption/TrueRewardsPaymentMethod.js.map +1 -1
  411. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.d.ts +2 -1
  412. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js +18 -8
  413. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffers.js.map +1 -1
  414. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.d.ts +2 -1
  415. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js +18 -8
  416. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersColumn.js.map +1 -1
  417. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.d.ts +2 -1
  418. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js +18 -8
  419. package/dist/src/components/steps/confirmation/additionalOffers/AdditionalOffersModal.js.map +1 -1
  420. package/dist/src/components/steps/date/OccupancyWarningBlock.d.ts +2 -1
  421. package/dist/src/components/steps/date/OccupancyWarningBlock.js +1 -1
  422. package/dist/src/components/steps/date/OccupancyWarningBlock.js.map +1 -1
  423. package/dist/src/components/steps/date/PeoplePicker.d.ts +2 -1
  424. package/dist/src/components/steps/date/PeoplePicker.js +20 -10
  425. package/dist/src/components/steps/date/PeoplePicker.js.map +1 -1
  426. package/dist/src/components/steps/date/PeoplePickerRow.d.ts +2 -1
  427. package/dist/src/components/steps/date/PeoplePickerRow.js +19 -9
  428. package/dist/src/components/steps/date/PeoplePickerRow.js.map +1 -1
  429. package/dist/src/components/steps/date/StepDatePricePerRoom.d.ts +2 -1
  430. package/dist/src/components/steps/date/StepDatePricePerRoom.js +18 -8
  431. package/dist/src/components/steps/date/StepDatePricePerRoom.js.map +1 -1
  432. package/dist/src/components/steps/date/StepOneDateRange.d.ts +2 -1
  433. package/dist/src/components/steps/date/StepOneDateRange.js +18 -8
  434. package/dist/src/components/steps/date/StepOneDateRange.js.map +1 -1
  435. package/dist/src/components/steps/date/StepOneDateRangePicker.d.ts +2 -1
  436. package/dist/src/components/steps/date/StepOneDateRangePicker.js +18 -8
  437. package/dist/src/components/steps/date/StepOneDateRangePicker.js.map +1 -1
  438. package/dist/src/components/steps/date/StepOneDateRangePickerLegend.d.ts +2 -1
  439. package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js +18 -8
  440. package/dist/src/components/steps/date/StepOneDateRangePickerLegend.js.map +1 -1
  441. package/dist/src/components/steps/date/StepOneNextStepButton.d.ts +2 -1
  442. package/dist/src/components/steps/date/StepOneNextStepButton.js +18 -8
  443. package/dist/src/components/steps/date/StepOneNextStepButton.js.map +1 -1
  444. package/dist/src/components/steps/date/StepOneStatusPeople.d.ts +2 -1
  445. package/dist/src/components/steps/date/StepOneStatusPeople.js +18 -8
  446. package/dist/src/components/steps/date/StepOneStatusPeople.js.map +1 -1
  447. package/dist/src/components/steps/hotel/HotelCard.d.ts +2 -1
  448. package/dist/src/components/steps/hotel/HotelCard.js +19 -9
  449. package/dist/src/components/steps/hotel/HotelCard.js.map +1 -1
  450. package/dist/src/components/steps/hotel/HotelCardList.d.ts +2 -1
  451. package/dist/src/components/steps/hotel/HotelCardList.js +1 -1
  452. package/dist/src/components/steps/hotel/HotelCardList.js.map +1 -1
  453. package/dist/src/components/steps/hotel/HotelCardModal.d.ts +2 -1
  454. package/dist/src/components/steps/hotel/HotelCardModal.js +17 -7
  455. package/dist/src/components/steps/hotel/HotelCardModal.js.map +1 -1
  456. package/dist/src/components/steps/hotel/HotelInfoPerksRow.d.ts +2 -1
  457. package/dist/src/components/steps/hotel/HotelInfoPerksRow.js +18 -8
  458. package/dist/src/components/steps/hotel/HotelInfoPerksRow.js.map +1 -1
  459. package/dist/src/components/steps/hotel/HotelSearchParameters.d.ts +2 -1
  460. package/dist/src/components/steps/hotel/HotelSearchParameters.js +22 -20
  461. package/dist/src/components/steps/hotel/HotelSearchParameters.js.map +1 -1
  462. package/dist/src/components/steps/hotel/NoHotelsAvailable.d.ts +2 -1
  463. package/dist/src/components/steps/hotel/NoHotelsAvailable.js +1 -1
  464. package/dist/src/components/steps/hotel/NoHotelsAvailable.js.map +1 -1
  465. package/dist/src/components/steps/room/AvailableUpgradesModal.js +118 -37
  466. package/dist/src/components/steps/room/AvailableUpgradesModal.js.map +1 -1
  467. package/dist/src/components/steps/room/ImageGallerySlider.d.ts +2 -1
  468. package/dist/src/components/steps/room/ImageGallerySlider.js +18 -8
  469. package/dist/src/components/steps/room/ImageGallerySlider.js.map +1 -1
  470. package/dist/src/components/steps/room/InactivityWindow.d.ts +2 -1
  471. package/dist/src/components/steps/room/InactivityWindow.js +17 -7
  472. package/dist/src/components/steps/room/InactivityWindow.js.map +1 -1
  473. package/dist/src/components/steps/room/LargeRateCard.d.ts +11 -0
  474. package/dist/src/components/steps/room/LargeRateCard.js +120 -0
  475. package/dist/src/components/steps/room/LargeRateCard.js.map +1 -0
  476. package/dist/src/components/steps/room/LargeRoomCard.d.ts +2 -1
  477. package/dist/src/components/steps/room/LargeRoomCard.js +26 -10
  478. package/dist/src/components/steps/room/LargeRoomCard.js.map +1 -1
  479. package/dist/src/components/steps/room/NoRoomsFoundBlock.d.ts +2 -1
  480. package/dist/src/components/steps/room/NoRoomsFoundBlock.js +18 -8
  481. package/dist/src/components/steps/room/NoRoomsFoundBlock.js.map +1 -1
  482. package/dist/src/components/steps/room/RatesNotFoundBlock.d.ts +2 -1
  483. package/dist/src/components/steps/room/RatesNotFoundBlock.js +1 -1
  484. package/dist/src/components/steps/room/RatesNotFoundBlock.js.map +1 -1
  485. package/dist/src/components/steps/room/RoomList.d.ts +2 -1
  486. package/dist/src/components/steps/room/RoomList.js +18 -8
  487. package/dist/src/components/steps/room/RoomList.js.map +1 -1
  488. package/dist/src/components/steps/room/RoomListAlert.js +17 -7
  489. package/dist/src/components/steps/room/RoomListAlert.js.map +1 -1
  490. package/dist/src/components/steps/room/RoomListCrossSellBlock.js +18 -8
  491. package/dist/src/components/steps/room/RoomListCrossSellBlock.js.map +1 -1
  492. package/dist/src/components/steps/room/RoomModal.d.ts +2 -1
  493. package/dist/src/components/steps/room/RoomModal.js +18 -8
  494. package/dist/src/components/steps/room/RoomModal.js.map +1 -1
  495. package/dist/src/components/steps/room/RoomModalPerkRow.d.ts +2 -1
  496. package/dist/src/components/steps/room/RoomModalPerkRow.js +18 -8
  497. package/dist/src/components/steps/room/RoomModalPerkRow.js.map +1 -1
  498. package/dist/src/components/steps/room/StepRoomAlertBlocks.d.ts +2 -1
  499. package/dist/src/components/steps/room/StepRoomAlertBlocks.js +18 -8
  500. package/dist/src/components/steps/room/StepRoomAlertBlocks.js.map +1 -1
  501. package/dist/src/components/steps/room/StepRoomBestRateAlert.d.ts +2 -1
  502. package/dist/src/components/steps/room/StepRoomBestRateAlert.js +18 -8
  503. package/dist/src/components/steps/room/StepRoomBestRateAlert.js.map +1 -1
  504. package/dist/src/components/steps/room/StepRoomErrorForm.d.ts +2 -1
  505. package/dist/src/components/steps/room/StepRoomErrorForm.js +17 -7
  506. package/dist/src/components/steps/room/StepRoomErrorForm.js.map +1 -1
  507. package/dist/src/components/steps/room/StepRoomHotelDetails.d.ts +2 -1
  508. package/dist/src/components/steps/room/StepRoomHotelDetails.js +18 -8
  509. package/dist/src/components/steps/room/StepRoomHotelDetails.js.map +1 -1
  510. package/dist/src/components/steps/room/StepRoomNextStepButton.js +18 -8
  511. package/dist/src/components/steps/room/StepRoomNextStepButton.js.map +1 -1
  512. package/dist/src/components/steps/room/StepRoomSortBy.d.ts +2 -1
  513. package/dist/src/components/steps/room/StepRoomSortBy.js +18 -8
  514. package/dist/src/components/steps/room/StepRoomSortBy.js.map +1 -1
  515. package/dist/src/components/steps/room/StepRoomSummaryAndButton.d.ts +2 -1
  516. package/dist/src/components/steps/room/StepRoomSummaryAndButton.js +18 -8
  517. package/dist/src/components/steps/room/StepRoomSummaryAndButton.js.map +1 -1
  518. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.d.ts +2 -1
  519. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js +17 -7
  520. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRoomList.js.map +1 -1
  521. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.d.ts +2 -1
  522. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js +17 -7
  523. package/dist/src/components/steps/room/TabGroupedRooms/TabGroupedRooms.js.map +1 -1
  524. package/dist/src/components/steps/room/TripteaseLodgingSearchSchema.d.ts +2 -1
  525. package/dist/src/components/steps/room/TripteaseLodgingSearchSchema.js +17 -7
  526. package/dist/src/components/steps/room/TripteaseLodgingSearchSchema.js.map +1 -1
  527. package/dist/src/components/steps/room/UserSearchSummary/PromoCodeVerificationAlert.d.ts +3 -2
  528. package/dist/src/components/steps/room/UserSearchSummary/PromoCodeVerificationAlert.js +19 -8
  529. package/dist/src/components/steps/room/UserSearchSummary/PromoCodeVerificationAlert.js.map +1 -1
  530. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummary.d.ts +2 -1
  531. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummary.js +17 -7
  532. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummary.js.map +1 -1
  533. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.d.ts +2 -1
  534. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.js +20 -20
  535. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryPromocodeInput.js.map +1 -1
  536. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.d.ts +2 -1
  537. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js +17 -7
  538. package/dist/src/components/steps/room/UserSearchSummary/UserSearchSummaryRow.js.map +1 -1
  539. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.d.ts +2 -1
  540. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js +1 -1
  541. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfAdultsPicker.js.map +1 -1
  542. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.d.ts +2 -1
  543. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js +1 -1
  544. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfChildrenPicker.js.map +1 -1
  545. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfInfantsPicker.d.ts +2 -1
  546. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfInfantsPicker.js +1 -1
  547. package/dist/src/components/steps/room/roomBuilderProgress/NumberOfInfantsPicker.js.map +1 -1
  548. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.d.ts +2 -1
  549. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js +18 -8
  550. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgress.js.map +1 -1
  551. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.d.ts +2 -1
  552. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js +23 -23
  553. package/dist/src/components/steps/room/roomBuilderProgress/RoomBuilderProgressRow.js.map +1 -1
  554. package/dist/src/components/steps/room/roomDetails/RoomDetails.d.ts +2 -1
  555. package/dist/src/components/steps/room/roomDetails/RoomDetails.js +18 -8
  556. package/dist/src/components/steps/room/roomDetails/RoomDetails.js.map +1 -1
  557. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.d.ts +2 -1
  558. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js +18 -9
  559. package/dist/src/components/steps/room/roomDetails/RoomDetailsBedsBlock.js.map +1 -1
  560. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.d.ts +2 -1
  561. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js +18 -9
  562. package/dist/src/components/steps/room/roomDetails/RoomDetailsPerkBlock.js.map +1 -1
  563. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.d.ts +2 -1
  564. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js +18 -8
  565. package/dist/src/components/steps/room/roomDetails/RoomDetailsPriceBlock.js.map +1 -1
  566. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js +17 -7
  567. package/dist/src/components/steps/room/roomDetails/RoomDetailsRetargeting.js.map +1 -1
  568. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.d.ts +2 -1
  569. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js +18 -8
  570. package/dist/src/components/steps/room/roomDetails/roomRates/BookNowButton.js.map +1 -1
  571. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.d.ts +2 -1
  572. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js +18 -8
  573. package/dist/src/components/steps/room/roomDetails/roomRates/MembersOnlyRow.js.map +1 -1
  574. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.d.ts +3 -2
  575. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js +20 -10
  576. package/dist/src/components/steps/room/roomDetails/roomRates/PriceBreakdownBlock.js.map +1 -1
  577. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.d.ts +2 -1
  578. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js +18 -8
  579. package/dist/src/components/steps/room/roomDetails/roomRates/ReadMoreRoomRateRow.js.map +1 -1
  580. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.d.ts +3 -2
  581. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js +20 -10
  582. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDescriptionTab.js.map +1 -1
  583. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.d.ts +2 -1
  584. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js +19 -9
  585. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateDetailsAndPriceBreakdownModal.js.map +1 -1
  586. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.d.ts +2 -1
  587. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js +17 -7
  588. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateListPromotion/RoomRateListPromotion.js.map +1 -1
  589. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.d.ts +2 -1
  590. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js +18 -8
  591. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRatePills.js.map +1 -1
  592. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.d.ts +2 -1
  593. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js +18 -8
  594. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRateRow.js.map +1 -1
  595. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.d.ts +2 -1
  596. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js +18 -8
  597. package/dist/src/components/steps/room/roomDetails/roomRates/RoomRates.js.map +1 -1
  598. package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.d.ts +2 -1
  599. package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.js +26 -12
  600. package/dist/src/components/steps/room/roomDetails/unavailableRoom/UnavailableRoom.js.map +1 -1
  601. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.d.ts +2 -1
  602. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js +18 -8
  603. package/dist/src/components/steps/room/roomFilter/AppliedFiltersBlock.js.map +1 -1
  604. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.d.ts +2 -1
  605. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js +18 -8
  606. package/dist/src/components/steps/room/roomFilter/RoomFilterOverlay.js.map +1 -1
  607. package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.d.ts +2 -1
  608. package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js +18 -8
  609. package/dist/src/components/steps/room/roomFilter/RoomFilterPriceSlider.js.map +1 -1
  610. package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.d.ts +2 -1
  611. package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js +18 -8
  612. package/dist/src/components/steps/room/roomFilter/RoomFilterRateType.js.map +1 -1
  613. package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.d.ts +2 -1
  614. package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js +18 -8
  615. package/dist/src/components/steps/room/roomFilter/RoomFilterRoomType.js.map +1 -1
  616. package/dist/src/components/summary/BEMapWidget.d.ts +0 -2
  617. package/dist/src/components/summary/BEMapWidget.js +17 -7
  618. package/dist/src/components/summary/BEMapWidget.js.map +1 -1
  619. package/dist/src/components/summary/BEMobileSummary.d.ts +2 -1
  620. package/dist/src/components/summary/BEMobileSummary.js +18 -8
  621. package/dist/src/components/summary/BEMobileSummary.js.map +1 -1
  622. package/dist/src/components/summary/BEMobileSummaryModal.d.ts +2 -1
  623. package/dist/src/components/summary/BEMobileSummaryModal.js +30 -19
  624. package/dist/src/components/summary/BEMobileSummaryModal.js.map +1 -1
  625. package/dist/src/components/summary/BESummary.d.ts +2 -1
  626. package/dist/src/components/summary/BESummary.js +24 -14
  627. package/dist/src/components/summary/BESummary.js.map +1 -1
  628. package/dist/src/components/summary/BESummaryAddonRow.d.ts +2 -1
  629. package/dist/src/components/summary/BESummaryAddonRow.js +30 -16
  630. package/dist/src/components/summary/BESummaryAddonRow.js.map +1 -1
  631. package/dist/src/components/summary/BESummaryPerkBlock.d.ts +2 -1
  632. package/dist/src/components/summary/BESummaryPerkBlock.js +19 -9
  633. package/dist/src/components/summary/BESummaryPerkBlock.js.map +1 -1
  634. package/dist/src/components/summary/BESummaryPrivacyPolicy.d.ts +2 -1
  635. package/dist/src/components/summary/BESummaryPrivacyPolicy.js +18 -8
  636. package/dist/src/components/summary/BESummaryPrivacyPolicy.js.map +1 -1
  637. package/dist/src/components/summary/BESummaryRoomRow.d.ts +2 -1
  638. package/dist/src/components/summary/BESummaryRoomRow.js +19 -9
  639. package/dist/src/components/summary/BESummaryRoomRow.js.map +1 -1
  640. package/dist/src/components/summary/TransportDistanceFromHotelBlock.d.ts +2 -1
  641. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js +18 -8
  642. package/dist/src/components/summary/TransportDistanceFromHotelBlock.js.map +1 -1
  643. package/dist/src/containers/PrivateRoute.js.map +1 -1
  644. package/dist/src/contexts/BasketContext/BasketContext.d.ts +0 -1
  645. package/dist/src/contexts/BasketContext/BasketContextType.d.ts +5 -4
  646. package/dist/src/contexts/BasketContext/BasketContextType.js.map +1 -1
  647. package/dist/src/contexts/BasketContext/BasketContextWrapper.d.ts +1 -1
  648. package/dist/src/contexts/BasketContext/BasketContextWrapper.js +248 -169
  649. package/dist/src/contexts/BasketContext/BasketContextWrapper.js.map +1 -1
  650. package/dist/src/contexts/BookingEngineContext/BookingEngineContext.d.ts +0 -1
  651. package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.d.ts +1 -1
  652. package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js +18 -9
  653. package/dist/src/contexts/BookingEngineContext/BookingEngineContextWrapper.js.map +1 -1
  654. package/dist/src/contexts/CompanyContext/CompanyContext.d.ts +0 -1
  655. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.d.ts +2 -2
  656. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js +24 -14
  657. package/dist/src/contexts/CompanyContext/CompanyContextWrapper.js.map +1 -1
  658. package/dist/src/contexts/ConfirmationFormContext.d.ts +1 -1
  659. package/dist/src/contexts/ConfirmationFormContext.js +19 -9
  660. package/dist/src/contexts/ConfirmationFormContext.js.map +1 -1
  661. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContext.d.ts +0 -1
  662. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextTypes.d.ts +2 -1
  663. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextTypes.js.map +1 -1
  664. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js +47 -25
  665. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepContextWrapper.js.map +1 -1
  666. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepErrorModal.d.ts +2 -1
  667. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepErrorModal.js +17 -7
  668. package/dist/src/contexts/ConfirmationStepContext/ConfirmationStepErrorModal.js.map +1 -1
  669. package/dist/src/contexts/ErrorContext.d.ts +1 -1
  670. package/dist/src/contexts/ErrorContext.js +19 -9
  671. package/dist/src/contexts/ErrorContext.js.map +1 -1
  672. package/dist/src/contexts/FullPageEngineContext/EngineBodyLayout.d.ts +2 -1
  673. package/dist/src/contexts/FullPageEngineContext/EngineBodyLayout.js +1 -2
  674. package/dist/src/contexts/FullPageEngineContext/EngineBodyLayout.js.map +1 -1
  675. package/dist/src/contexts/FullPageEngineContext/EnginePageLayout.d.ts +2 -1
  676. package/dist/src/contexts/FullPageEngineContext/EnginePageLayout.js +18 -9
  677. package/dist/src/contexts/FullPageEngineContext/EnginePageLayout.js.map +1 -1
  678. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContext.d.ts +0 -1
  679. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.d.ts +2 -1
  680. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js +25 -20
  681. package/dist/src/contexts/FullPageEngineContext/FullPageEngineContextWrapper.js.map +1 -1
  682. package/dist/src/contexts/HotelOverridesContext.d.ts +1 -1
  683. package/dist/src/contexts/HotelOverridesContext.js +17 -7
  684. package/dist/src/contexts/HotelOverridesContext.js.map +1 -1
  685. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.d.ts +1 -2
  686. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js +1 -1
  687. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContext.js.map +1 -1
  688. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js +40 -14
  689. package/dist/src/contexts/Members/AuthenticationContext/AuthenticationContextProvider.js.map +1 -1
  690. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContext.d.ts +0 -1
  691. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js +17 -7
  692. package/dist/src/contexts/Members/RoomstayMemberContext/RoomstayMemberContextProvider.js.map +1 -1
  693. package/dist/src/contexts/ModalContext.d.ts +1 -1
  694. package/dist/src/contexts/ModalContext.js +18 -9
  695. package/dist/src/contexts/ModalContext.js.map +1 -1
  696. package/dist/src/contexts/NotificationContext.d.ts +1 -1
  697. package/dist/src/contexts/NotificationContext.js +19 -9
  698. package/dist/src/contexts/NotificationContext.js.map +1 -1
  699. package/dist/src/engines/BaseEngine.js +1 -1
  700. package/dist/src/engines/BaseEngine.js.map +1 -1
  701. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.d.ts +1 -4
  702. package/dist/src/engines/BookingWizardEngine/BookingWizardEngine.js.map +1 -1
  703. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.d.ts +2 -1
  704. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js +1 -3
  705. package/dist/src/engines/BookingWizardEngine/BookingWizardEngineElement.js.map +1 -1
  706. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js +17 -7
  707. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngine.js.map +1 -1
  708. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.d.ts +2 -1
  709. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js +18 -8
  710. package/dist/src/engines/FullPageBookingEngine/FullPageBookingEngineElement.js.map +1 -1
  711. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.d.ts +21 -19
  712. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js +30 -34
  713. package/dist/src/engines/InlineRoomMiniEngine/InlineRoomMiniEngineElement.js.map +1 -1
  714. package/dist/src/engines/MemberPortalWidget/MemberPortalWidget.js.map +1 -1
  715. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.d.ts +2 -1
  716. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js +18 -8
  717. package/dist/src/engines/MemberPortalWidget/MemberPortalWidgetElement.js.map +1 -1
  718. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.d.ts +2 -1
  719. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js +17 -8
  720. package/dist/src/engines/RecentSearchesEngine/RecentSearchesEngineElement.js.map +1 -1
  721. package/dist/src/events/RoomstayEventManager.js +1 -1
  722. package/dist/src/events/RoomstayEventManager.js.map +1 -1
  723. package/dist/src/events/actions/PlacedBookingEvent.d.ts +1 -1
  724. package/dist/src/events/actions/PlacedBookingEvent.js.map +1 -1
  725. package/dist/src/events/views/CommittedBookingEvent.d.ts +1 -1
  726. package/dist/src/events/views/CommittedBookingEvent.js.map +1 -1
  727. package/dist/src/events/views/RolledBackBookingEvent.d.ts +1 -1
  728. package/dist/src/events/views/RolledBackBookingEvent.js.map +1 -1
  729. package/dist/src/handlers/BasketContextErrorHandler.d.ts +1 -1
  730. package/dist/src/handlers/BasketContextErrorHandler.js.map +1 -1
  731. package/dist/src/handlers/payment/AdyenPaymentHandler.js +17 -7
  732. package/dist/src/handlers/payment/AdyenPaymentHandler.js.map +1 -1
  733. package/dist/src/handlers/payment/PlanpayPaymentHandler.js +17 -7
  734. package/dist/src/handlers/payment/PlanpayPaymentHandler.js.map +1 -1
  735. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.js +8 -5
  736. package/dist/src/handlers/payment/TrueRewardsPaymentHandler.js.map +1 -1
  737. package/dist/src/handlers/payment/VGSMemberPaymentHandler.js.map +1 -1
  738. package/dist/src/handlers/payment/VGSPaymentHandler.js +19 -9
  739. package/dist/src/handlers/payment/VGSPaymentHandler.js.map +1 -1
  740. package/dist/src/hooks/AutoFocusOnSelect.d.ts +23 -2
  741. package/dist/src/hooks/AutoFocusOnSelect.js +3 -3
  742. package/dist/src/hooks/AutoFocusOnSelect.js.map +1 -1
  743. package/dist/src/hooks/BodyClickHook.js.map +1 -1
  744. package/dist/src/hooks/CombineState.d.ts +1 -1
  745. package/dist/src/hooks/ConfirmationQuery.d.ts +4 -0
  746. package/dist/src/hooks/ConfirmationQuery.js +12 -3
  747. package/dist/src/hooks/ConfirmationQuery.js.map +1 -1
  748. package/dist/src/hooks/Currency.js.map +1 -1
  749. package/dist/src/hooks/CurrentHotelHook.js.map +1 -1
  750. package/dist/src/hooks/ElementSortHook.js +17 -7
  751. package/dist/src/hooks/ElementSortHook.js.map +1 -1
  752. package/dist/src/hooks/HistoryConsistentPush.js +1 -2
  753. package/dist/src/hooks/HistoryConsistentPush.js.map +1 -1
  754. package/dist/src/hooks/KeyboardControlOnSelect.d.ts +2 -2
  755. package/dist/src/hooks/KeyboardControlOnSelect.js.map +1 -1
  756. package/dist/src/hooks/LoggedInUserHook.js.map +1 -1
  757. package/dist/src/hooks/Planpay.d.ts +1 -1
  758. package/dist/src/hooks/Query.js +2 -3
  759. package/dist/src/hooks/Query.js.map +1 -1
  760. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js +0 -1
  761. package/dist/src/hooks/RoomRateAvailabilityListFromApi.js.map +1 -1
  762. package/dist/src/hooks/UpdateQueryParameters.js +1 -2
  763. package/dist/src/hooks/UpdateQueryParameters.js.map +1 -1
  764. package/dist/src/hooks/VGSHooks.d.ts +0 -1
  765. package/dist/src/hooks/VGSHooks.js.map +1 -1
  766. package/dist/src/hooks/useCalendarNightStay.js +3 -3
  767. package/dist/src/hooks/useCalendarNightStay.js.map +1 -1
  768. package/dist/src/hooks/useNextStepAction.d.ts +2 -1
  769. package/dist/src/hooks/useNextStepAction.js +21 -11
  770. package/dist/src/hooks/useNextStepAction.js.map +1 -1
  771. package/dist/src/hooks/usePlanpayRawPrice.js.map +1 -1
  772. package/dist/src/hooks/useRateDetails.js.map +1 -1
  773. package/dist/src/hooks/useSearchScopeHook.d.ts +1 -1
  774. package/dist/src/hooks/useSearchScopeHook.js.map +1 -1
  775. package/dist/src/icons/Check.d.ts +2 -1
  776. package/dist/src/index.d.ts +1 -1
  777. package/dist/src/index.js.map +1 -1
  778. package/dist/src/mockApi/AddonAPI.js.map +1 -1
  779. package/dist/src/mockApi/MemberAPI.js +17 -7
  780. package/dist/src/mockApi/MemberAPI.js.map +1 -1
  781. package/dist/src/mockApi/MockAPI.js +5 -5
  782. package/dist/src/mockApi/MockAPI.js.map +1 -1
  783. package/dist/src/mockApi/ReservationAPI.d.ts +1 -1
  784. package/dist/src/mockApi/ReservationAPI.js +18 -8
  785. package/dist/src/mockApi/ReservationAPI.js.map +1 -1
  786. package/dist/src/models/Addon/Addon.d.ts +0 -24
  787. package/dist/src/models/Addon/Addon.js.map +1 -1
  788. package/dist/src/models/Api/HotelDTO.d.ts +3 -2
  789. package/dist/src/models/Api/HotelDTO.js +1 -1
  790. package/dist/src/models/Api/HotelDTO.js.map +1 -1
  791. package/dist/src/models/Api/IEventReservation.d.ts +5 -0
  792. package/dist/src/models/Api/IEventReservation.js.map +1 -1
  793. package/dist/src/models/AppQueryParameters.js +1 -1
  794. package/dist/src/models/AppQueryParameters.js.map +1 -1
  795. package/dist/src/models/BasketAddonRow.js +3 -5
  796. package/dist/src/models/BasketAddonRow.js.map +1 -1
  797. package/dist/src/models/BasketRow.d.ts +63 -9
  798. package/dist/src/models/BasketRow.js +77 -37
  799. package/dist/src/models/BasketRow.js.map +1 -1
  800. package/dist/src/models/BookingWizard/BookingWizardTypes.d.ts +0 -4
  801. package/dist/src/models/BookingWizard/BookingWizardTypes.js.map +1 -1
  802. package/dist/src/models/Client/Hotel/Company.d.ts +2 -0
  803. package/dist/src/models/Client/Hotel/Company.js.map +1 -1
  804. package/dist/src/models/Client/Hotel/DistanceUnitType.types.js +1 -1
  805. package/dist/src/models/Client/Hotel/DistanceUnitType.types.js.map +1 -1
  806. package/dist/src/models/Client/Hotel/Hotel.d.ts +4 -2
  807. package/dist/src/models/Client/Hotel/Hotel.js +1 -1
  808. package/dist/src/models/Client/Hotel/Hotel.js.map +1 -1
  809. package/dist/src/models/Client/Hotel/HotelDataSource.types.js +1 -1
  810. package/dist/src/models/Client/Hotel/HotelDataSource.types.js.map +1 -1
  811. package/dist/src/models/Client/Hotel/WeekdayStartsOn.types.js +1 -1
  812. package/dist/src/models/Client/Hotel/WeekdayStartsOn.types.js.map +1 -1
  813. package/dist/src/models/Confirmation.js +2 -2
  814. package/dist/src/models/Confirmation.js.map +1 -1
  815. package/dist/src/models/CountryCodesAndNumbers.js +3 -3
  816. package/dist/src/models/CountryCodesAndNumbers.js.map +1 -1
  817. package/dist/src/models/Fee.d.ts +1 -9
  818. package/dist/src/models/Fee.js +4 -5
  819. package/dist/src/models/Fee.js.map +1 -1
  820. package/dist/src/models/PaymentCard.js +1 -1
  821. package/dist/src/models/PaymentCard.js.map +1 -1
  822. package/dist/src/models/Room/Filters/BudgetFilter.js.map +1 -1
  823. package/dist/src/models/Room/Filters/RoomTypeFilter.js.map +1 -1
  824. package/dist/src/models/Room/Room.d.ts +2 -0
  825. package/dist/src/models/Room/Room.js.map +1 -1
  826. package/dist/src/models/Room/RoomRate.d.ts +12 -1
  827. package/dist/src/models/Room/RoomRate.js +29 -1
  828. package/dist/src/models/Room/RoomRate.js.map +1 -1
  829. package/dist/src/models/Room/RoomRateNight.d.ts +1 -1
  830. package/dist/src/models/Room/RoomRateNight.js.map +1 -1
  831. package/dist/src/models/RoomstaySession.d.ts +1 -3
  832. package/dist/src/models/RoomstaySession.js.map +1 -1
  833. package/dist/src/pages/account/AccountHome/AccountHomePage.d.ts +2 -1
  834. package/dist/src/pages/account/AccountHome/AccountHomePage.js +18 -8
  835. package/dist/src/pages/account/AccountHome/AccountHomePage.js.map +1 -1
  836. package/dist/src/pages/account/AccountOutlet.d.ts +1 -1
  837. package/dist/src/pages/account/AccountRouter.d.ts +2 -1
  838. package/dist/src/pages/account/AccountRoutes.d.ts +5 -0
  839. package/dist/src/pages/account/AccountRoutes.js +8 -2
  840. package/dist/src/pages/account/AccountRoutes.js.map +1 -1
  841. package/dist/src/pages/account/ChangePassword/AccountChangePasswordPage.d.ts +2 -1
  842. package/dist/src/pages/account/ChangePassword/AccountChangePasswordPage.js +17 -7
  843. package/dist/src/pages/account/ChangePassword/AccountChangePasswordPage.js.map +1 -1
  844. package/dist/src/pages/account/Details/AccountDetailsCardsPage.d.ts +2 -1
  845. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js +17 -7
  846. package/dist/src/pages/account/Details/AccountDetailsCardsPage.js.map +1 -1
  847. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js +17 -7
  848. package/dist/src/pages/account/Details/AccountDetailsNoCardsPage.js.map +1 -1
  849. package/dist/src/pages/account/Details/AccountDetailsProfilePage.d.ts +2 -1
  850. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js +17 -7
  851. package/dist/src/pages/account/Details/AccountDetailsProfilePage.js.map +1 -1
  852. package/dist/src/pages/account/Help/AccountHelpPage.d.ts +2 -1
  853. package/dist/src/pages/account/Help/AccountHelpPage.js +17 -7
  854. package/dist/src/pages/account/Help/AccountHelpPage.js.map +1 -1
  855. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.d.ts +2 -1
  856. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js +38 -13
  857. package/dist/src/pages/account/Reservations/AccountReservationSinglePage.js.map +1 -1
  858. package/dist/src/pages/account/Reservations/AccountReservationsPage.d.ts +2 -1
  859. package/dist/src/pages/account/Reservations/AccountReservationsPage.js +7 -7
  860. package/dist/src/pages/account/Reservations/AccountReservationsPage.js.map +1 -1
  861. package/dist/src/pages/findReservation/FindReservation.d.ts +2 -1
  862. package/dist/src/pages/findReservation/FindReservation.js +19 -9
  863. package/dist/src/pages/findReservation/FindReservation.js.map +1 -1
  864. package/dist/src/pages/findReservation/FindReservationResults.d.ts +2 -1
  865. package/dist/src/pages/findReservation/FindReservationResults.js +20 -10
  866. package/dist/src/pages/findReservation/FindReservationResults.js.map +1 -1
  867. package/dist/src/pages/findReservation/ReservationRow.d.ts +3 -2
  868. package/dist/src/pages/findReservation/ReservationRow.js +18 -8
  869. package/dist/src/pages/findReservation/ReservationRow.js.map +1 -1
  870. package/dist/src/pages/findReservation/ReservationRowModal.d.ts +3 -2
  871. package/dist/src/pages/findReservation/ReservationRowModal.js +18 -8
  872. package/dist/src/pages/findReservation/ReservationRowModal.js.map +1 -1
  873. package/dist/src/pages/hotel/HotelInfo.d.ts +2 -1
  874. package/dist/src/pages/hotel/HotelInfo.js +20 -10
  875. package/dist/src/pages/hotel/HotelInfo.js.map +1 -1
  876. package/dist/src/pages/hotel/HotelInfoPlaceholder.d.ts +2 -1
  877. package/dist/src/pages/hotel/HotelInfoPlaceholder.js +1 -1
  878. package/dist/src/pages/hotel/HotelInfoPlaceholder.js.map +1 -1
  879. package/dist/src/pages/steps/StepAddon/StepAddon.d.ts +1 -1
  880. package/dist/src/pages/steps/StepAddon/StepAddon.js.map +1 -1
  881. package/dist/src/pages/steps/StepAddon/StepAddonComponent.d.ts +2 -1
  882. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js +18 -8
  883. package/dist/src/pages/steps/StepAddon/StepAddonComponent.js.map +1 -1
  884. package/dist/src/pages/steps/StepAddon/StepAddonLoader.d.ts +2 -1
  885. package/dist/src/pages/steps/StepAddon/StepAddonLoader.js +17 -7
  886. package/dist/src/pages/steps/StepAddon/StepAddonLoader.js.map +1 -1
  887. package/dist/src/pages/steps/StepConfirmation/StepConfirmation.js.map +1 -1
  888. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.d.ts +2 -1
  889. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js +17 -7
  890. package/dist/src/pages/steps/StepConfirmation/StepConfirmationComponent.js.map +1 -1
  891. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.d.ts +2 -1
  892. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js +18 -8
  893. package/dist/src/pages/steps/StepConfirmation/StepConfirmationLoader.js.map +1 -1
  894. package/dist/src/pages/steps/StepConfirmation/StepConfirmationValidator.js.map +1 -1
  895. package/dist/src/pages/steps/StepDate/StepDate.d.ts +1 -1
  896. package/dist/src/pages/steps/StepDate/StepDate.js.map +1 -1
  897. package/dist/src/pages/steps/StepDate/StepDateComponent.d.ts +2 -1
  898. package/dist/src/pages/steps/StepDate/StepDateComponent.js +17 -7
  899. package/dist/src/pages/steps/StepDate/StepDateComponent.js.map +1 -1
  900. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoom.js.map +1 -1
  901. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.d.ts +2 -1
  902. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js +20 -7
  903. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomComponent.js.map +1 -1
  904. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomLoader.d.ts +2 -1
  905. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomLoader.js +18 -8
  906. package/dist/src/pages/steps/StepGroupedRoom/StepGroupedRoomLoader.js.map +1 -1
  907. package/dist/src/pages/steps/StepGuide.d.ts +1 -1
  908. package/dist/src/pages/steps/StepGuide.js +18 -8
  909. package/dist/src/pages/steps/StepGuide.js.map +1 -1
  910. package/dist/src/pages/steps/StepHotel/StepHotel.d.ts +1 -1
  911. package/dist/src/pages/steps/StepHotel/StepHotelComponent.d.ts +2 -1
  912. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js +17 -7
  913. package/dist/src/pages/steps/StepHotel/StepHotelComponent.js.map +1 -1
  914. package/dist/src/pages/steps/StepHotel/StepHotelLoader.d.ts +2 -1
  915. package/dist/src/pages/steps/StepHotel/StepHotelLoader.js +17 -7
  916. package/dist/src/pages/steps/StepHotel/StepHotelLoader.js.map +1 -1
  917. package/dist/src/pages/steps/StepRoom/StepRoom.js.map +1 -1
  918. package/dist/src/pages/steps/StepRoom/StepRoomComponent.d.ts +2 -1
  919. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js +17 -7
  920. package/dist/src/pages/steps/StepRoom/StepRoomComponent.js.map +1 -1
  921. package/dist/src/pages/steps/StepRoom/StepRoomFilters.js +17 -7
  922. package/dist/src/pages/steps/StepRoom/StepRoomFilters.js.map +1 -1
  923. package/dist/src/pages/steps/StepRoom/StepRoomLoader.d.ts +2 -1
  924. package/dist/src/pages/steps/StepRoom/StepRoomLoader.js +18 -8
  925. package/dist/src/pages/steps/StepRoom/StepRoomLoader.js.map +1 -1
  926. package/dist/src/pages/steps/StepRoom/StepRoomValidator.js.map +1 -1
  927. package/dist/src/pages/steps/StepThanks/StepThanks.js.map +1 -1
  928. package/dist/src/pages/steps/StepThanks/StepThanksComponent.d.ts +2 -1
  929. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js +25 -10
  930. package/dist/src/pages/steps/StepThanks/StepThanksComponent.js.map +1 -1
  931. package/dist/src/pages/steps/StepThanks/StepThanksValidator.js.map +1 -1
  932. package/dist/src/providers/CurrencyProvider.js +1 -1
  933. package/dist/src/providers/CurrencyProvider.js.map +1 -1
  934. package/dist/src/providers/DIProvider.d.ts +2 -1
  935. package/dist/src/providers/DIProvider.js +2 -3
  936. package/dist/src/providers/DIProvider.js.map +1 -1
  937. package/dist/src/providers/DistanceProvider.js.map +1 -1
  938. package/dist/src/providers/FeatureProvider.js +3 -1
  939. package/dist/src/providers/FeatureProvider.js.map +1 -1
  940. package/dist/src/providers/FilterProvider.d.ts +1 -1
  941. package/dist/src/providers/FilterProvider.js +3 -3
  942. package/dist/src/providers/FilterProvider.js.map +1 -1
  943. package/dist/src/providers/ImageProvider.js +1 -1
  944. package/dist/src/providers/ImageProvider.js.map +1 -1
  945. package/dist/src/providers/LanguageProvider.js +1 -1
  946. package/dist/src/providers/LanguageProvider.js.map +1 -1
  947. package/dist/src/providers/PromotionProvider.d.ts +1 -1
  948. package/dist/src/providers/PromotionProvider.js.map +1 -1
  949. package/dist/src/providers/RatePillProvider.js.map +1 -1
  950. package/dist/src/providers/RoomSortProvider.js +2 -2
  951. package/dist/src/providers/RoomSortProvider.js.map +1 -1
  952. package/dist/src/providers/RoomstayThemeEngine.js +18 -8
  953. package/dist/src/providers/RoomstayThemeEngine.js.map +1 -1
  954. package/dist/src/providers/feature/DerbysoftClickTrackingFeature.js.map +1 -1
  955. package/dist/src/providers/feature/Feature.d.ts +0 -2
  956. package/dist/src/providers/feature/Feature.js +0 -4
  957. package/dist/src/providers/feature/Feature.js.map +1 -1
  958. package/dist/src/providers/feature/GiftCardFeature.d.ts +13 -0
  959. package/dist/src/providers/feature/GiftCardFeature.js +14 -0
  960. package/dist/src/providers/feature/GiftCardFeature.js.map +1 -0
  961. package/dist/src/providers/feature/GuestTitleFieldFeature.js.map +1 -1
  962. package/dist/src/providers/feature/InlineAddonStepFeature.js.map +1 -1
  963. package/dist/src/providers/feature/MemberPortalFeature.js.map +1 -1
  964. package/dist/src/providers/feature/RoomUpsellFeature.d.ts +10 -0
  965. package/dist/src/providers/feature/RoomUpsellFeature.js +10 -0
  966. package/dist/src/providers/feature/RoomUpsellFeature.js.map +1 -1
  967. package/dist/src/providers/storage/SessionProvider.js +0 -2
  968. package/dist/src/providers/storage/SessionProvider.js.map +1 -1
  969. package/dist/src/providers/storage/StorageProvider.d.ts +1 -1
  970. package/dist/src/providers/storage/StorageProvider.js +17 -7
  971. package/dist/src/providers/storage/StorageProvider.js.map +1 -1
  972. package/dist/src/reducers/BasketReducer.js.map +1 -1
  973. package/dist/src/routes/NaturallyProgressedStepRoute.d.ts +2 -1
  974. package/dist/src/stories/BookingWizard.stories.d.ts +3 -3
  975. package/dist/src/stories/Card.stories.d.ts +3 -5
  976. package/dist/src/stories/CardTypeSelect.stories.d.ts +2 -1
  977. package/dist/src/stories/Checkbox.stories.d.ts +2 -1
  978. package/dist/src/stories/ConfirmationModal.stories.d.ts +2 -1
  979. package/dist/src/stories/ConfirmationModal.stories.js +17 -7
  980. package/dist/src/stories/ConfirmationModal.stories.js.map +1 -1
  981. package/dist/src/stories/DateRangePicker.stories.d.ts +5 -4
  982. package/dist/src/stories/DateRangePicker.stories.js +17 -7
  983. package/dist/src/stories/DateRangePicker.stories.js.map +1 -1
  984. package/dist/src/stories/EnhancedPhoneNumberField.stories.d.ts +2 -1
  985. package/dist/src/stories/ErrorModal.stories.d.ts +2 -1
  986. package/dist/src/stories/ErrorModal.stories.js +17 -7
  987. package/dist/src/stories/ErrorModal.stories.js.map +1 -1
  988. package/dist/src/stories/EventCarousel.stories.d.ts +4 -3
  989. package/dist/src/stories/FloatingDateRangePicker.stories.d.ts +4 -3
  990. package/dist/src/stories/FloatingDateRangePicker.stories.js +17 -7
  991. package/dist/src/stories/FloatingDateRangePicker.stories.js.map +1 -1
  992. package/dist/src/stories/ForwardedSelect.stories.d.ts +2 -1
  993. package/dist/src/stories/Icon.stories.js +17 -7
  994. package/dist/src/stories/Icon.stories.js.map +1 -1
  995. package/dist/src/stories/IconNavCard.stories.d.ts +7 -16
  996. package/dist/src/stories/IconText.stories.js +17 -7
  997. package/dist/src/stories/IconText.stories.js.map +1 -1
  998. package/dist/src/stories/NumberIncrement.stories.d.ts +2 -1
  999. package/dist/src/stories/NumberIncrement.stories.js +17 -7
  1000. package/dist/src/stories/NumberIncrement.stories.js.map +1 -1
  1001. package/dist/src/stories/PasswordBox.stories.d.ts +2 -1
  1002. package/dist/src/stories/PaymentCard.stories.d.ts +4 -2
  1003. package/dist/src/stories/PaymentCardInput.stories.d.ts +2 -1
  1004. package/dist/src/stories/PlanpayButton.stories.d.ts +2 -1
  1005. package/dist/src/stories/RadioButton.stories.d.ts +2 -1
  1006. package/dist/src/stories/RadioButtonGroup.stories.d.ts +5 -5
  1007. package/dist/src/stories/RadioButtonGroup.stories.js +17 -7
  1008. package/dist/src/stories/RadioButtonGroup.stories.js.map +1 -1
  1009. package/dist/src/stories/Select.stories.d.ts +5 -6
  1010. package/dist/src/stories/Select.stories.js +17 -7
  1011. package/dist/src/stories/Select.stories.js.map +1 -1
  1012. package/dist/src/stories/SimpleModal.stories.d.ts +2 -1
  1013. package/dist/src/stories/SimpleModal.stories.js +17 -7
  1014. package/dist/src/stories/SimpleModal.stories.js.map +1 -1
  1015. package/dist/src/stories/Slider.stories.d.ts +4 -8
  1016. package/dist/src/stories/Slider.stories.js +17 -7
  1017. package/dist/src/stories/Slider.stories.js.map +1 -1
  1018. package/dist/src/stories/TabbedModal.stories.d.ts +2 -1
  1019. package/dist/src/stories/TabbedModal.stories.js +17 -7
  1020. package/dist/src/stories/TabbedModal.stories.js.map +1 -1
  1021. package/dist/src/stories/Tabs.stories.d.ts +3 -2
  1022. package/dist/src/stories/Text.stories.d.ts +2 -1
  1023. package/dist/src/stories/TextArea.stories.d.ts +2 -1
  1024. package/dist/src/stories/TextBox.stories.d.ts +2 -1
  1025. package/dist/src/translations/Translation.d.ts +0 -2
  1026. package/dist/src/translations/Translation.js +2 -4
  1027. package/dist/src/translations/Translation.js.map +1 -1
  1028. package/dist/src/translations/languages/en-gb.js +0 -2
  1029. package/dist/src/translations/languages/en-gb.js.map +1 -1
  1030. package/dist/src/util/Analytics/Analytics.d.ts +36 -10
  1031. package/dist/src/util/Analytics/Analytics.js +30 -0
  1032. package/dist/src/util/Analytics/Analytics.js.map +1 -1
  1033. package/dist/src/util/Analytics/GoogleAnalytics4.d.ts +10 -3
  1034. package/dist/src/util/Analytics/GoogleAnalytics4.js +21 -4
  1035. package/dist/src/util/Analytics/GoogleAnalytics4.js.map +1 -1
  1036. package/dist/src/util/Analytics/UniversalAnalytics.d.ts +5 -23
  1037. package/dist/src/util/Analytics/UniversalAnalytics.js +24 -5
  1038. package/dist/src/util/Analytics/UniversalAnalytics.js.map +1 -1
  1039. package/dist/src/util/AsyncAuth.js +17 -7
  1040. package/dist/src/util/AsyncAuth.js.map +1 -1
  1041. package/dist/src/util/CalendarHelper.js +1 -1
  1042. package/dist/src/util/CalendarHelper.js.map +1 -1
  1043. package/dist/src/util/Color.d.ts +1 -1
  1044. package/dist/src/util/Color.js +1 -1
  1045. package/dist/src/util/Color.js.map +1 -1
  1046. package/dist/src/util/CurrencyHelper.js.map +1 -1
  1047. package/dist/src/util/DataLayer.d.ts +9 -3
  1048. package/dist/src/util/DataLayer.js +61 -26
  1049. package/dist/src/util/DataLayer.js.map +1 -1
  1050. package/dist/src/util/Debounce.js +2 -3
  1051. package/dist/src/util/Debounce.js.map +1 -1
  1052. package/dist/src/util/DefaultValueManager.js +1 -1
  1053. package/dist/src/util/DefaultValueManager.js.map +1 -1
  1054. package/dist/src/util/DerbysoftPixel.d.ts +1 -1
  1055. package/dist/src/util/DerbysoftPixel.js +2 -2
  1056. package/dist/src/util/DerbysoftPixel.js.map +1 -1
  1057. package/dist/src/util/EventsHelper.d.ts +2 -2
  1058. package/dist/src/util/EventsHelper.js.map +1 -1
  1059. package/dist/src/util/HotelPerkHelper.js +17 -7
  1060. package/dist/src/util/HotelPerkHelper.js.map +1 -1
  1061. package/dist/src/util/ObjectHelper.d.ts +1 -1
  1062. package/dist/src/util/ObjectHelper.js.map +1 -1
  1063. package/dist/src/util/PaymentCardHelper.js.map +1 -1
  1064. package/dist/src/util/RouteManager.js +1 -1
  1065. package/dist/src/util/RouteManager.js.map +1 -1
  1066. package/dist/src/util/StepManager.js +1 -1
  1067. package/dist/src/util/StepManager.js.map +1 -1
  1068. package/dist/src/util/StringHelper.js.map +1 -1
  1069. package/dist/src/util/TextAlignment.js +1 -1
  1070. package/dist/src/util/TextAlignment.js.map +1 -1
  1071. package/dist/src/util/TimeHelper.js.map +1 -1
  1072. package/dist/test.bundle.js +1 -1
  1073. package/dist/tests/offline/entry/config/hotelSpecDefault.d.ts +2 -1
  1074. package/dist/tests/offline/entry/config/hotelSpecDefault.js +0 -1
  1075. package/dist/tests/offline/entry/config/hotelSpecDefault.js.map +1 -1
  1076. package/dist/vendors.bundle.js +1 -1
  1077. package/package.json +13 -5
  1078. package/dist/380.bundle.js +0 -1
  1079. package/dist/456.bundle.js +0 -1
  1080. package/dist/src/components/generic/BookingWizard/BookingWizardRoomGroupSelector/BookingWizardRoomGroupSelector.d.ts +0 -15
  1081. package/dist/src/components/generic/BookingWizard/BookingWizardRoomGroupSelector/BookingWizardRoomGroupSelector.js +0 -135
  1082. package/dist/src/components/generic/BookingWizard/BookingWizardRoomGroupSelector/BookingWizardRoomGroupSelector.js.map +0 -1
  1083. package/dist/src/models/Api/ReservationsDTO.d.ts +0 -80
  1084. package/dist/src/models/Api/ReservationsDTO.js +0 -3
  1085. package/dist/src/models/Api/ReservationsDTO.js.map +0 -1
  1086. package/dist/src/util/TotalCalculator.d.ts +0 -24
  1087. package/dist/src/util/TotalCalculator.js +0 -157
  1088. package/dist/src/util/TotalCalculator.js.map +0 -1
@@ -1,9 +1,12 @@
1
- import ReservationsDTO, { ReservationDTO } from '../../models/Api/ReservationsDTO';
1
+ import { ReservationDTO, ReservationsDTO } from '@roomstay/core';
2
2
  import BasketAddonRow from '../../models/BasketAddonRow';
3
3
  import BasketRow from '../../models/BasketRow';
4
4
  import { ConfigCompany } from '../../models/Client/Hotel/Company';
5
5
  import { Hotel } from '../../models/Client/Hotel/Hotel';
6
6
  import { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';
7
+ export interface IAnalyticMessageEvent extends Record<string, any> {
8
+ event: string;
9
+ }
7
10
  /**
8
11
  * Abstract class used to transform roomstay data into either GA4 or UA analytics events
9
12
  *
@@ -12,20 +15,43 @@ import { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';
12
15
  export declare abstract class Analytics {
13
16
  protected hotel?: Hotel;
14
17
  protected company?: ConfigCompany;
18
+ protected userId?: string;
15
19
  protected currency: {
16
20
  original: string;
17
21
  current: string;
18
22
  };
23
+ protected itemListName: string;
19
24
  initialise(company?: ConfigCompany, hotel?: Hotel): void;
25
+ setUserId(id?: string): void;
26
+ setItemListName(itemListName?: string): void;
27
+ private getUserData;
28
+ /**
29
+ * Merges the current user's data (user_id) into the provided input object.
30
+ * Ensures the resulting object always includes user_id when available.
31
+ */
32
+ withUserData: <T extends IAnalyticMessageEvent>(input: T) => T & Partial<{
33
+ user_id: string;
34
+ }>;
20
35
  updateCurrency(current: string, original: string): void;
21
36
  /** Assemble the message for a room impression post based on impressions added */
22
- abstract generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]): any;
23
- abstract generateProductClickMessageObject(product: GenericAnalyticsAccommodation): any;
24
- abstract generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number): any;
25
- abstract generateAddToCartMessageObject(product: GenericAnalyticsAccommodation): any;
26
- abstract generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): any;
27
- abstract generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation): any;
28
- abstract generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]): any;
29
- abstract generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): any[];
30
- abstract generateRefundMessageObject(reservation: ReservationDTO): any;
37
+ abstract generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]): IAnalyticMessageEvent;
38
+ abstract generateProductClickMessageObject(product: GenericAnalyticsAccommodation): IAnalyticMessageEvent;
39
+ abstract generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number): IAnalyticMessageEvent;
40
+ abstract generateAddToCartMessageObject(product: GenericAnalyticsAccommodation): IAnalyticMessageEvent;
41
+ abstract generateAddonsAddToCartMessageObject(product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>): IAnalyticMessageEvent;
42
+ abstract generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): IAnalyticMessageEvent | null;
43
+ abstract generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation): IAnalyticMessageEvent;
44
+ abstract generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]): IAnalyticMessageEvent;
45
+ abstract generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): IAnalyticMessageEvent[];
46
+ abstract generateRefundMessageObject(reservation: ReservationDTO): IAnalyticMessageEvent;
47
+ generateRefundMessageObjectByReservationNumber(reservationNumber: string): {
48
+ event: string;
49
+ ecommerce: {
50
+ refund: {
51
+ actionField: {
52
+ id: string;
53
+ };
54
+ };
55
+ };
56
+ };
31
57
  }
@@ -9,14 +9,44 @@ exports.Analytics = void 0;
9
9
  class Analytics {
10
10
  constructor() {
11
11
  this.currency = { original: '', current: '' };
12
+ this.itemListName = '';
13
+ /**
14
+ * Merges the current user's data (user_id) into the provided input object.
15
+ * Ensures the resulting object always includes user_id when available.
16
+ */
17
+ this.withUserData = (input) => {
18
+ return Object.assign(Object.assign({}, input), (('ecommerce' in input || input.event === 'login') && Object.assign({}, this.getUserData())));
19
+ };
12
20
  }
13
21
  initialise(company, hotel) {
14
22
  this.company = company;
15
23
  this.hotel = hotel;
16
24
  }
25
+ setUserId(id) {
26
+ this.userId = id;
27
+ }
28
+ setItemListName(itemListName) {
29
+ this.itemListName = itemListName || '';
30
+ }
31
+ // Returns an object containing the current user_id if available.
32
+ getUserData() {
33
+ return this.userId ? { user_id: this.userId } : {};
34
+ }
17
35
  updateCurrency(current, original) {
18
36
  this.currency = { current, original };
19
37
  }
38
+ generateRefundMessageObjectByReservationNumber(reservationNumber) {
39
+ return {
40
+ event: 'refund',
41
+ ecommerce: {
42
+ refund: {
43
+ actionField: {
44
+ id: reservationNumber,
45
+ },
46
+ },
47
+ },
48
+ };
49
+ }
20
50
  }
21
51
  exports.Analytics = Analytics;
22
52
  //# sourceMappingURL=Analytics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Analytics.js","sourceRoot":"/","sources":["src/util/Analytics/Analytics.ts"],"names":[],"mappings":";;;AAQA;;;;GAIG;AACH,MAAsB,SAAS;IAA/B;QAIc,aAAQ,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAyBvD,CAAC;IAvBU,UAAU,CAAC,OAAuB,EAAE,KAAa;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,cAAc,CAAC,OAAe,EAAE,QAAgB;QACnD,IAAI,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;CAgBJ;AA7BD,8BA6BC","sourcesContent":["import ReservationsDTO, { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport BasketAddonRow from '@/models/BasketAddonRow';\nimport BasketRow from '@/models/BasketRow';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\n\nimport { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';\n\n/**\n * Abstract class used to transform roomstay data into either GA4 or UA analytics events\n *\n * All logging still happens from the {@link DataLayer} class.\n */\nexport abstract class Analytics {\n protected hotel?: Hotel;\n protected company?: ConfigCompany;\n\n protected currency = { original: '', current: '' };\n\n public initialise(company?: ConfigCompany, hotel?: Hotel) {\n this.company = company;\n this.hotel = hotel;\n }\n\n public updateCurrency(current: string, original: string) {\n this.currency = { current, original };\n }\n\n /** Assemble the message for a room impression post based on impressions added */\n public abstract generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]): any;\n\n public abstract generateProductClickMessageObject(product: GenericAnalyticsAccommodation): any;\n public abstract generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number): any;\n\n public abstract generateAddToCartMessageObject(product: GenericAnalyticsAccommodation): any;\n public abstract generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): any;\n\n public abstract generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation): any;\n\n public abstract generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]): any;\n public abstract generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): any[];\n public abstract generateRefundMessageObject(reservation: ReservationDTO): any;\n}\n"]}
1
+ {"version":3,"file":"Analytics.js","sourceRoot":"/","sources":["src/util/Analytics/Analytics.ts"],"names":[],"mappings":";;;AAWA;;;;GAIG;AACH,MAAsB,SAAS;IAA/B;QAKc,aAAQ,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzC,iBAAY,GAAG,EAAE,CAAC;QAoB5B;;;WAGG;QACI,iBAAY,GAAG,CAAkC,KAAQ,EAAoC,EAAE;YAClG,uCACO,KAAK,GACL,CAAC,CAAC,WAAW,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,sBAC9C,IAAI,CAAC,WAAW,EAAE,CACxB,CAAC,EACJ;QACN,CAAC,CAAC;IAoCN,CAAC;IAjEU,UAAU,CAAC,OAAuB,EAAE,KAAa;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,EAAW;QACxB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,eAAe,CAAC,YAAqB;QACxC,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,iEAAiE;IACzD,WAAW;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;IAeM,cAAc,CAAC,OAAe,EAAE,QAAgB;QACnD,IAAI,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAoBM,8CAA8C,CAAC,iBAAyB;QAC3E,OAAO;YACH,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE;gBACP,MAAM,EAAE;oBACJ,WAAW,EAAE;wBACT,EAAE,EAAE,iBAAiB;qBACxB;iBACJ;aACJ;SACJ,CAAC;IACN,CAAC;CACJ;AAzED,8BAyEC","sourcesContent":["import { ReservationDTO, ReservationsDTO } from '@roomstay/core';\n\nimport BasketAddonRow from '@/models/BasketAddonRow';\nimport BasketRow from '@/models/BasketRow';\nimport { ConfigCompany } from '@/models/Client/Hotel/Company';\nimport { Hotel } from '@/models/Client/Hotel/Hotel';\n\nimport { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';\nexport interface IAnalyticMessageEvent extends Record<string, any> {\n event: string;\n}\n/**\n * Abstract class used to transform roomstay data into either GA4 or UA analytics events\n *\n * All logging still happens from the {@link DataLayer} class.\n */\nexport abstract class Analytics {\n protected hotel?: Hotel;\n protected company?: ConfigCompany;\n protected userId?: string; // logged user id\n\n protected currency = { original: '', current: '' };\n protected itemListName = '';\n\n public initialise(company?: ConfigCompany, hotel?: Hotel) {\n this.company = company;\n this.hotel = hotel;\n }\n\n public setUserId(id?: string) {\n this.userId = id;\n }\n\n public setItemListName(itemListName?: string) {\n this.itemListName = itemListName || '';\n }\n\n // Returns an object containing the current user_id if available.\n private getUserData(): Partial<{ user_id: string }> {\n return this.userId ? { user_id: this.userId } : {};\n }\n\n /**\n * Merges the current user's data (user_id) into the provided input object.\n * Ensures the resulting object always includes user_id when available.\n */\n public withUserData = <T extends IAnalyticMessageEvent>(input: T): T & Partial<{ user_id: string }> => {\n return {\n ...input,\n ...(('ecommerce' in input || input.event === 'login') && {\n ...this.getUserData(),\n }),\n };\n };\n\n public updateCurrency(current: string, original: string) {\n this.currency = { current, original };\n }\n\n /** Assemble the message for a room impression post based on impressions added */\n public abstract generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]): IAnalyticMessageEvent;\n\n public abstract generateProductClickMessageObject(product: GenericAnalyticsAccommodation): IAnalyticMessageEvent;\n public abstract generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number): IAnalyticMessageEvent;\n\n public abstract generateAddToCartMessageObject(product: GenericAnalyticsAccommodation): IAnalyticMessageEvent;\n public abstract generateAddonsAddToCartMessageObject(\n product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>\n ): IAnalyticMessageEvent;\n public abstract generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): IAnalyticMessageEvent | null;\n\n public abstract generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation): IAnalyticMessageEvent;\n\n public abstract generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]): IAnalyticMessageEvent;\n public abstract generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): IAnalyticMessageEvent[];\n public abstract generateRefundMessageObject(reservation: ReservationDTO): IAnalyticMessageEvent;\n\n public generateRefundMessageObjectByReservationNumber(reservationNumber: string) {\n return {\n event: 'refund',\n ecommerce: {\n refund: {\n actionField: {\n id: reservationNumber,\n },\n },\n },\n };\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
- import ReservationsDTO, { ReservationDTO } from '../../models/Api/ReservationsDTO';
1
+ import { ReservationDTO, ReservationsDTO } from '@roomstay/core';
2
2
  import BasketAddonRow from '../../models/BasketAddonRow';
3
3
  import BasketRow from '../../models/BasketRow';
4
- import { DateRange, GenericAnalyticsAccommodation as GenericAnalyticsAccommodation } from '../DataLayer';
5
- import { Analytics } from './Analytics';
4
+ import { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';
5
+ import { Analytics, IAnalyticMessageEvent } from './Analytics';
6
6
  interface GA4Item {
7
7
  item_name: string;
8
8
  item_id: string;
@@ -58,6 +58,7 @@ declare class GoogleAnalytics4 extends Analytics {
58
58
  items: GA4Item[];
59
59
  };
60
60
  };
61
+ generateAddonsAddToCartMessageObject(product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>): IAnalyticMessageEvent;
61
62
  generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): {
62
63
  event: string;
63
64
  ecommerce: {
@@ -95,6 +96,12 @@ declare class GoogleAnalytics4 extends Analytics {
95
96
  page_type: string;
96
97
  items: GA4Item[];
97
98
  };
99
+ user_data: {
100
+ email: string;
101
+ phone_number: string | undefined;
102
+ first_name: string;
103
+ last_name: string;
104
+ };
98
105
  }[];
99
106
  generateRefundMessageObject(reservation: ReservationDTO): {
100
107
  event: string;
@@ -39,7 +39,7 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
39
39
  item_category2: (rate === null || rate === void 0 ? void 0 : rate.name) || undefined,
40
40
  item_category3: room.name,
41
41
  item_category5: ((_e = this.hotel) === null || _e === void 0 ? void 0 : _e.name) + ' Room',
42
- item_list_name: 'BE List',
42
+ item_list_name: this.itemListName,
43
43
  coupon,
44
44
  discount,
45
45
  index: listPosition || 0,
@@ -64,7 +64,7 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
64
64
  item_category2: undefined,
65
65
  item_category3: room.getAddon().name,
66
66
  item_category5: ((_d = this.hotel) === null || _d === void 0 ? void 0 : _d.name) + ' Addon',
67
- item_list_name: 'BE List',
67
+ item_list_name: this.itemListName,
68
68
  coupon: undefined,
69
69
  discount: 0,
70
70
  index: listPosition || 0,
@@ -92,7 +92,7 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
92
92
  event: 'select_item',
93
93
  ecommerce: {
94
94
  currency: this.currency.original,
95
- item_list_name: 'BE List',
95
+ item_list_name: this.itemListName,
96
96
  items: [this.generateRoomRateProductInfo(product.room, product.dateRange, undefined, undefined, product.quantity, product.promoCode)],
97
97
  },
98
98
  };
@@ -119,6 +119,15 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
119
119
  },
120
120
  };
121
121
  }
122
+ generateAddonsAddToCartMessageObject(product) {
123
+ return {
124
+ event: 'add_to_cart',
125
+ ecommerce: {
126
+ currencyCode: this.currency.original,
127
+ items: [this.generateAddonProductInfo(product.basketAddonRow)],
128
+ },
129
+ };
130
+ }
122
131
  generateUpsellConfirmedMessageObject(oldProduct, newProduct) {
123
132
  return {
124
133
  event: 'upsell_confirmed',
@@ -162,6 +171,7 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
162
171
  };
163
172
  }
164
173
  generateRoomPurchaseMessageObject(basketRows, addonRows, reservations) {
174
+ var _a;
165
175
  const productItems = basketRows.map((row, index) => {
166
176
  var _a;
167
177
  return this.generateRoomRateProductInfo(row.getRoom(), { to: row.getStartDate(), from: row.getEndDate() }, (_a = row.getRate()) !== null && _a !== void 0 ? _a : undefined, index, 1, row.getPromoCode(), {
@@ -171,6 +181,7 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
171
181
  addonRows === null || addonRows === void 0 ? void 0 : addonRows.forEach((row, index) => {
172
182
  productItems.push(this.generateAddonProductInfo(row, index));
173
183
  });
184
+ const guest = (_a = reservations.reservations[0]) === null || _a === void 0 ? void 0 : _a.guest;
174
185
  return [
175
186
  {
176
187
  event: 'purchase',
@@ -184,6 +195,12 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
184
195
  page_type: 'conversion',
185
196
  items: productItems,
186
197
  },
198
+ user_data: {
199
+ email: guest === null || guest === void 0 ? void 0 : guest.email,
200
+ phone_number: (guest === null || guest === void 0 ? void 0 : guest.phone) ? `+${guest.phone}` : undefined,
201
+ first_name: guest === null || guest === void 0 ? void 0 : guest.firstName,
202
+ last_name: guest === null || guest === void 0 ? void 0 : guest.lastName,
203
+ },
187
204
  },
188
205
  ];
189
206
  }
@@ -212,7 +229,7 @@ class GoogleAnalytics4 extends Analytics_1.Analytics {
212
229
  item_category2: reservation.rate,
213
230
  item_category3: reservation.roomType,
214
231
  item_category5: ((_d = this.hotel) === null || _d === void 0 ? void 0 : _d.name) + ' Room',
215
- item_list_name: 'BE List',
232
+ item_list_name: this.itemListName,
216
233
  coupon: undefined,
217
234
  discount,
218
235
  index: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleAnalytics4.js","sourceRoot":"/","sources":["src/util/Analytics/GoogleAnalytics4.ts"],"names":[],"mappings":"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","sourcesContent":["import dayjs from 'dayjs';\n\nimport ReservationsDTO, { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport BasketAddonRow from '@/models/BasketAddonRow';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\n\nimport { DateRange, GenericAnalyticsAccommodation as GenericAnalyticsAccommodation } from '../DataLayer';\nimport { Analytics } from './Analytics';\n\ninterface GA4Item {\n item_name: string;\n item_id: string;\n item_brand: string;\n item_category: string;\n item_category2?: string;\n item_category3?: string;\n item_category5?: string;\n item_list_name: string;\n coupon?: string;\n discount?: number;\n index: number;\n price: number;\n quantity: number;\n selected_dates?: string;\n upgrade?: string;\n upgrade_price_dif?: number;\n}\n\nconst DATALAYER_DATE_FORMAT = 'YYYY-M-D';\n\nclass GoogleAnalytics4 extends Analytics {\n private formatDateRange(dateRange?: DateRange): string {\n if (!dateRange) return '';\n return `ci:${dateRange.from.format('YYYY-MM-DD')} co:${dateRange.to.format('YYYY-MM-DD')}`;\n }\n\n private generateRoomRateProductInfo(\n room: Room,\n dateRange: DateRange,\n rate?: RoomRate,\n listPosition?: number,\n quantity?: number,\n coupon?: string,\n extra?: { upsell?: { originalRoomRate?: RoomRate } }\n ): GA4Item {\n const providerId = this.hotel?.providerHotelID;\n\n // For some reason GA4 seems to require pricing to be displayed as a whole, not per night.\n const price = rate ? rate.getTotalPrice() : room.getLowestTotalPrice();\n const discount = rate ? rate.getTotalDiscount() : 0;\n\n const idParts = [providerId, room.code];\n if (rate) {\n idParts.push(rate.code);\n }\n\n let upgrade = undefined;\n let upgrade_price_dif = undefined;\n\n if (extra?.upsell?.originalRoomRate) {\n const oldRate = extra.upsell.originalRoomRate;\n\n upgrade = `${room.name} to ${oldRate.name}`;\n const oldPrice = oldRate ? oldRate.getTotalPrice() : room.getLowestTotalPrice();\n upgrade_price_dif = Math.abs(price - oldPrice); // We're assuming that old is always cheaper, since Upsell is trying to make you spend more\n }\n\n return {\n item_name: this.company?.brandSuffix + ' Accommodation',\n item_id: idParts.join(' - '),\n item_brand: [this.hotel?.name, providerId].filter(Boolean).join(' - '),\n item_category: 'Room',\n item_category2: rate?.name || undefined,\n item_category3: room.name,\n item_category5: this.hotel?.name + ' Room',\n item_list_name: 'BE List',\n coupon,\n discount,\n index: listPosition || 0,\n price,\n quantity: quantity || 1,\n selected_dates: this.formatDateRange({ from: dateRange.from, to: dateRange.to }) ?? undefined,\n upgrade,\n upgrade_price_dif,\n };\n }\n\n private generateAddonProductInfo(room: BasketAddonRow, listPosition?: number): GA4Item {\n const providerId = this.hotel?.providerHotelID;\n\n const price = room.getTotalPrice();\n\n const idParts = [providerId, room.getAddon().code];\n\n return {\n // This is still accommodation as it's part of a greater category.\n item_name: this.company?.brandSuffix + ' Accommodation',\n item_id: idParts.join(' - '),\n item_brand: [this.hotel?.name, providerId].filter(Boolean).join(' - '),\n item_category: 'addon',\n item_category2: undefined,\n item_category3: room.getAddon().name,\n item_category5: this.hotel?.name + ' Addon',\n item_list_name: 'BE List',\n coupon: undefined,\n discount: 0,\n index: listPosition || 0,\n price,\n quantity: room.getQuantity() || 1,\n selected_dates: undefined,\n upgrade: undefined,\n upgrade_price_dif: undefined,\n };\n }\n\n public generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]) {\n return {\n event: 'view_item_list',\n currency: this.currency.original,\n ecommerce: {\n items: impressions.map((item, index) => {\n const { room, rate, quantity, promoCode, dateRange } = item;\n return this.generateRoomRateProductInfo(room, dateRange, rate, index, quantity, promoCode);\n }),\n },\n };\n }\n\n public generateProductClickMessageObject(product: GenericAnalyticsAccommodation) {\n return {\n event: 'select_item',\n ecommerce: {\n currency: this.currency.original,\n item_list_name: 'BE List',\n items: [this.generateRoomRateProductInfo(product.room, product.dateRange, undefined, undefined, product.quantity, product.promoCode)],\n },\n };\n }\n\n public generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number | undefined) {\n return {\n event: 'select_dates',\n ecommerce: {\n currency: this.currency.original,\n arrival_date: dateRange.from.format(DATALAYER_DATE_FORMAT),\n departure_date: dateRange.to.format(DATALAYER_DATE_FORMAT),\n adult_count: adults,\n child_count: children,\n infant_count: infants || 0,\n },\n };\n }\n\n public generateAddToCartMessageObject(product: GenericAnalyticsAccommodation) {\n return {\n event: 'add_to_cart',\n ecommerce: {\n currency: this.currency.original,\n items: [this.generateRoomRateProductInfo(product.room, product.dateRange, product.rate, undefined, product.quantity, product.promoCode)],\n },\n };\n }\n\n public generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation) {\n return {\n event: 'upsell_confirmed',\n ecommerce: {\n currency: this.currency.original,\n items: {\n old: this.generateRoomRateProductInfo(oldProduct.room, oldProduct.dateRange, oldProduct.rate, undefined, oldProduct.quantity, oldProduct.promoCode),\n new: this.generateRoomRateProductInfo(newProduct.room, newProduct.dateRange, newProduct.rate, undefined, newProduct.quantity, newProduct.promoCode, {\n upsell: { originalRoomRate: oldProduct.rate },\n }),\n },\n },\n };\n }\n\n public generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation) {\n return {\n event: 'upsell_cancelled',\n ecommerce: {\n currency: this.currency.original,\n items: [this.generateRoomRateProductInfo(product.room, product.dateRange, product.rate, undefined, product.quantity, product.promoCode)],\n },\n };\n }\n\n public generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]) {\n const productItems = basketRows.map((row, index) => {\n return this.generateRoomRateProductInfo(row.getRoom(), { to: row.getStartDate(), from: row.getEndDate() }, row.getRate() ?? undefined, index, 1, row.getPromoCode(), {\n upsell: { originalRoomRate: row.getPreUpsellRoomRate() },\n });\n });\n\n addonRows?.forEach((row, index) => {\n productItems.push(this.generateAddonProductInfo(row, index));\n });\n\n return {\n event: 'begin_checkout',\n ecommerce: {\n currency: this.currency.original,\n items: productItems,\n page_type: 'conversionintent',\n },\n };\n }\n\n public generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO) {\n const productItems = basketRows.map((row, index) => {\n return this.generateRoomRateProductInfo(row.getRoom(), { to: row.getStartDate(), from: row.getEndDate() }, row.getRate() ?? undefined, index, 1, row.getPromoCode(), {\n upsell: { originalRoomRate: row.getPreUpsellRoomRate() },\n });\n });\n\n addonRows?.forEach((row, index) => {\n productItems.push(this.generateAddonProductInfo(row, index));\n });\n\n return [\n {\n event: 'purchase',\n ecommerce: {\n currency: this.currency.original,\n transaction_id: reservations.itineraryNumber,\n value: reservations.total,\n tax: 0,\n coupon: undefined,\n payment_type: reservations.reservations[0].paymentMethod,\n page_type: 'conversion',\n\n items: productItems,\n },\n },\n ];\n }\n\n public generateRefundMessageObject(reservation: ReservationDTO) {\n const providerId = this.hotel?.providerHotelID;\n\n const nightKeys = Object.keys(reservation.nights);\n\n const startDate = dayjs(nightKeys[0]);\n const endDate = dayjs(nightKeys[nightKeys.length - 1]);\n\n const discount = nightKeys.reduce((acc, key) => {\n return acc + Number(reservation.nights[key].discount);\n });\n\n const idParts = [providerId, reservation.roomCode, reservation.rate];\n\n return {\n event: 'refund',\n ecommerce: {\n currency: this.currency.original,\n transaction_id: reservation.reservationNumber,\n value: reservation.total.afterTax,\n items: [\n {\n item_name: this.company?.brandSuffix + ' Accommodation',\n item_id: idParts.join('-'),\n item_brand: [this.hotel?.name, providerId].filter(Boolean).join(' - '),\n item_category: 'Room',\n item_category2: reservation.rate,\n item_category3: reservation.roomType,\n item_category5: this.hotel?.name + ' Room',\n item_list_name: 'BE List',\n coupon: undefined,\n discount,\n index: 0,\n price: reservation.total.afterTax,\n quantity: 1,\n selected_dates: this.formatDateRange({ from: startDate, to: endDate }) ?? undefined,\n upgrade: undefined,\n upgrade_price_dif: undefined,\n },\n ],\n },\n };\n }\n}\n\nconst ga4 = new GoogleAnalytics4();\n\nexport { ga4 as GoogleAnalytics4 };\n"]}
1
+ {"version":3,"file":"GoogleAnalytics4.js","sourceRoot":"/","sources":["src/util/Analytics/GoogleAnalytics4.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReservationDTO, ReservationsDTO } from '@roomstay/core';\nimport dayjs from 'dayjs';\n\nimport BasketAddonRow from '@/models/BasketAddonRow';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\n\nimport { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';\nimport { Analytics, IAnalyticMessageEvent } from './Analytics';\n\ninterface GA4Item {\n item_name: string;\n item_id: string;\n item_brand: string;\n item_category: string;\n item_category2?: string;\n item_category3?: string;\n item_category5?: string;\n item_list_name: string;\n coupon?: string;\n discount?: number;\n index: number;\n price: number;\n quantity: number;\n selected_dates?: string;\n upgrade?: string;\n upgrade_price_dif?: number;\n}\n\nconst DATALAYER_DATE_FORMAT = 'YYYY-M-D';\n\nclass GoogleAnalytics4 extends Analytics {\n private formatDateRange(dateRange?: DateRange): string {\n if (!dateRange) return '';\n return `ci:${dateRange.from.format('YYYY-MM-DD')} co:${dateRange.to.format('YYYY-MM-DD')}`;\n }\n\n private generateRoomRateProductInfo(\n room: Room,\n dateRange: DateRange,\n rate?: RoomRate,\n listPosition?: number,\n quantity?: number,\n coupon?: string,\n extra?: { upsell?: { originalRoomRate?: RoomRate } }\n ): GA4Item {\n const providerId = this.hotel?.providerHotelID;\n\n // For some reason GA4 seems to require pricing to be displayed as a whole, not per night.\n const price = rate ? rate.getTotalPrice() : room.getLowestTotalPrice();\n const discount = rate ? rate.getTotalDiscount() : 0;\n const idParts = [providerId, room.code];\n\n if (rate) {\n idParts.push(rate.code);\n }\n\n let upgrade = undefined;\n let upgrade_price_dif = undefined;\n\n if (extra?.upsell?.originalRoomRate) {\n const oldRate = extra.upsell.originalRoomRate;\n\n upgrade = `${room.name} to ${oldRate.name}`;\n const oldPrice = oldRate ? oldRate.getTotalPrice() : room.getLowestTotalPrice();\n upgrade_price_dif = Math.abs(price - oldPrice); // We're assuming that old is always cheaper, since Upsell is trying to make you spend more\n }\n\n return {\n item_name: this.company?.brandSuffix + ' Accommodation',\n item_id: idParts.join(' - '),\n item_brand: [this.hotel?.name, providerId].filter(Boolean).join(' - '),\n item_category: 'Room',\n item_category2: rate?.name || undefined,\n item_category3: room.name,\n item_category5: this.hotel?.name + ' Room',\n item_list_name: this.itemListName,\n coupon,\n discount,\n index: listPosition || 0,\n price,\n quantity: quantity || 1,\n selected_dates: this.formatDateRange({ from: dateRange.from, to: dateRange.to }) ?? undefined,\n upgrade,\n upgrade_price_dif,\n };\n }\n\n private generateAddonProductInfo(room: BasketAddonRow, listPosition?: number): GA4Item {\n const providerId = this.hotel?.providerHotelID;\n\n const price = room.getTotalPrice();\n\n const idParts = [providerId, room.getAddon().code];\n\n return {\n // This is still accommodation as it's part of a greater category.\n item_name: this.company?.brandSuffix + ' Accommodation',\n item_id: idParts.join(' - '),\n item_brand: [this.hotel?.name, providerId].filter(Boolean).join(' - '),\n item_category: 'addon',\n item_category2: undefined,\n item_category3: room.getAddon().name,\n item_category5: this.hotel?.name + ' Addon',\n item_list_name: this.itemListName,\n coupon: undefined,\n discount: 0,\n index: listPosition || 0,\n price,\n quantity: room.getQuantity() || 1,\n selected_dates: undefined,\n upgrade: undefined,\n upgrade_price_dif: undefined,\n };\n }\n\n public generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]) {\n return {\n event: 'view_item_list',\n currency: this.currency.original,\n ecommerce: {\n items: impressions.map((item, index) => {\n const { room, rate, quantity, promoCode, dateRange } = item;\n return this.generateRoomRateProductInfo(room, dateRange, rate, index, quantity, promoCode);\n }),\n },\n };\n }\n\n public generateProductClickMessageObject(product: GenericAnalyticsAccommodation) {\n return {\n event: 'select_item',\n ecommerce: {\n currency: this.currency.original,\n item_list_name: this.itemListName,\n items: [this.generateRoomRateProductInfo(product.room, product.dateRange, undefined, undefined, product.quantity, product.promoCode)],\n },\n };\n }\n\n public generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number | undefined) {\n return {\n event: 'select_dates',\n ecommerce: {\n currency: this.currency.original,\n arrival_date: dateRange.from.format(DATALAYER_DATE_FORMAT),\n departure_date: dateRange.to.format(DATALAYER_DATE_FORMAT),\n adult_count: adults,\n child_count: children,\n infant_count: infants || 0,\n },\n };\n }\n\n public generateAddToCartMessageObject(product: GenericAnalyticsAccommodation) {\n return {\n event: 'add_to_cart',\n ecommerce: {\n currency: this.currency.original,\n items: [this.generateRoomRateProductInfo(product.room, product.dateRange, product.rate, undefined, product.quantity, product.promoCode)],\n },\n };\n }\n\n public generateAddonsAddToCartMessageObject(product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>): IAnalyticMessageEvent {\n return {\n event: 'add_to_cart',\n ecommerce: {\n currencyCode: this.currency.original,\n items: [this.generateAddonProductInfo(product.basketAddonRow)],\n },\n };\n }\n\n public generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation) {\n return {\n event: 'upsell_confirmed',\n ecommerce: {\n currency: this.currency.original,\n items: {\n old: this.generateRoomRateProductInfo(oldProduct.room, oldProduct.dateRange, oldProduct.rate, undefined, oldProduct.quantity, oldProduct.promoCode),\n new: this.generateRoomRateProductInfo(newProduct.room, newProduct.dateRange, newProduct.rate, undefined, newProduct.quantity, newProduct.promoCode, {\n upsell: { originalRoomRate: oldProduct.rate },\n }),\n },\n },\n };\n }\n\n public generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation) {\n return {\n event: 'upsell_cancelled',\n ecommerce: {\n currency: this.currency.original,\n items: [this.generateRoomRateProductInfo(product.room, product.dateRange, product.rate, undefined, product.quantity, product.promoCode)],\n },\n };\n }\n\n public generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]) {\n const productItems = basketRows.map((row, index) => {\n return this.generateRoomRateProductInfo(row.getRoom(), { to: row.getStartDate(), from: row.getEndDate() }, row.getRate() ?? undefined, index, 1, row.getPromoCode(), {\n upsell: { originalRoomRate: row.getPreUpsellRoomRate() },\n });\n });\n\n addonRows?.forEach((row, index) => {\n productItems.push(this.generateAddonProductInfo(row, index));\n });\n\n return {\n event: 'begin_checkout',\n ecommerce: {\n currency: this.currency.original,\n items: productItems,\n page_type: 'conversionintent',\n },\n };\n }\n\n public generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO) {\n const productItems = basketRows.map((row, index) => {\n return this.generateRoomRateProductInfo(row.getRoom(), { to: row.getStartDate(), from: row.getEndDate() }, row.getRate() ?? undefined, index, 1, row.getPromoCode(), {\n upsell: { originalRoomRate: row.getPreUpsellRoomRate() },\n });\n });\n\n addonRows?.forEach((row, index) => {\n productItems.push(this.generateAddonProductInfo(row, index));\n });\n const guest = reservations.reservations[0]?.guest;\n\n return [\n {\n event: 'purchase',\n ecommerce: {\n currency: this.currency.original,\n transaction_id: reservations.itineraryNumber,\n value: reservations.total,\n tax: 0,\n coupon: undefined,\n payment_type: reservations.reservations[0].paymentMethod,\n page_type: 'conversion',\n\n items: productItems,\n },\n user_data: {\n email: guest?.email,\n phone_number: guest?.phone ? `+${guest.phone}` : undefined,\n first_name: guest?.firstName,\n last_name: guest?.lastName,\n },\n },\n ];\n }\n\n public generateRefundMessageObject(reservation: ReservationDTO) {\n const providerId = this.hotel?.providerHotelID;\n\n const nightKeys = Object.keys(reservation.nights);\n\n const startDate = dayjs(nightKeys[0]);\n const endDate = dayjs(nightKeys[nightKeys.length - 1]);\n\n const discount = nightKeys.reduce((acc, key) => {\n return acc + Number(reservation.nights[key].discount);\n });\n\n const idParts = [providerId, reservation.roomCode, reservation.rate];\n\n return {\n event: 'refund',\n ecommerce: {\n currency: this.currency.original,\n transaction_id: reservation.reservationNumber,\n value: reservation.total.afterTax,\n items: [\n {\n item_name: this.company?.brandSuffix + ' Accommodation',\n item_id: idParts.join('-'),\n item_brand: [this.hotel?.name, providerId].filter(Boolean).join(' - '),\n item_category: 'Room',\n item_category2: reservation.rate,\n item_category3: reservation.roomType,\n item_category5: this.hotel?.name + ' Room',\n item_list_name: this.itemListName,\n coupon: undefined,\n discount,\n index: 0,\n price: reservation.total.afterTax,\n quantity: 1,\n selected_dates: this.formatDateRange({ from: startDate, to: endDate }) ?? undefined,\n upgrade: undefined,\n upgrade_price_dif: undefined,\n },\n ],\n },\n };\n }\n}\n\nconst ga4 = new GoogleAnalytics4();\n\nexport { ga4 as GoogleAnalytics4 };\n"]}
@@ -1,8 +1,8 @@
1
- import ReservationsDTO, { ReservationDTO } from '../../models/Api/ReservationsDTO';
1
+ import { ReservationDTO, ReservationsDTO } from '@roomstay/core';
2
2
  import BasketAddonRow from '../../models/BasketAddonRow';
3
3
  import BasketRow from '../../models/BasketRow';
4
4
  import { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';
5
- import { Analytics } from './Analytics';
5
+ import { Analytics, IAnalyticMessageEvent } from './Analytics';
6
6
  declare class UniversalAnalytics extends Analytics {
7
7
  private getProductInfo;
8
8
  private generateAddonProductInfo;
@@ -43,6 +43,7 @@ declare class UniversalAnalytics extends Analytics {
43
43
  EndDate: string;
44
44
  };
45
45
  };
46
+ generateAddonsAddToCartMessageObject(product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>): IAnalyticMessageEvent;
46
47
  generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation): {
47
48
  event: string;
48
49
  priceDifference: number;
@@ -72,27 +73,7 @@ declare class UniversalAnalytics extends Analytics {
72
73
  PageType: string;
73
74
  };
74
75
  };
75
- generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): ({
76
- event: string;
77
- ecommerce: {
78
- checkoutUpsell?: any;
79
- currencyCode: string;
80
- purchase: {
81
- actionField: {
82
- id: string;
83
- revenue: number;
84
- tax: number;
85
- coupon: string;
86
- };
87
- products: Product[];
88
- };
89
- StartDate: string;
90
- EndDate: string;
91
- BookingDate: string;
92
- PageType: string;
93
- paymentType: import("@roomstay/core").EBookingPaymentMethod | undefined;
94
- };
95
- } | undefined)[];
76
+ generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO): IAnalyticMessageEvent[];
96
77
  generateRefundMessageObject(reservation: ReservationDTO): any;
97
78
  }
98
79
  declare const ua: UniversalAnalytics;
@@ -103,6 +84,7 @@ type Product = {
103
84
  price: number;
104
85
  brand: string;
105
86
  category: string;
87
+ category2: 'Addons' | 'Rooms';
106
88
  variant?: string;
107
89
  list?: string;
108
90
  position?: number;
@@ -24,12 +24,13 @@ class UniversalAnalytics extends Analytics_1.Analytics {
24
24
  price: price,
25
25
  brand: [(_b = this.hotel) === null || _b === void 0 ? void 0 : _b.name, providerId, (_c = this.company) === null || _c === void 0 ? void 0 : _c.brandSuffix].filter(Boolean).join(' - '),
26
26
  category: room.name,
27
+ category2: 'Rooms',
27
28
  };
28
29
  if (rate) {
29
30
  product.variant = rate.name;
30
31
  }
31
32
  if (listPosition !== undefined) {
32
- product.list = 'BE List';
33
+ product.list = this.itemListName;
33
34
  product.position = listPosition;
34
35
  }
35
36
  if (quantity !== undefined) {
@@ -46,6 +47,7 @@ class UniversalAnalytics extends Analytics_1.Analytics {
46
47
  price: addonRow.getTotalPrice(),
47
48
  brand: [(_a = this.hotel) === null || _a === void 0 ? void 0 : _a.name, (_b = this.hotel) === null || _b === void 0 ? void 0 : _b.providerHotelID, (_c = this.company) === null || _c === void 0 ? void 0 : _c.brandSuffix].filter(Boolean).join(' - '),
48
49
  category: addon.category,
50
+ category2: 'Addons',
49
51
  quantity: addonRow.getTotalQuantity(),
50
52
  };
51
53
  }
@@ -99,6 +101,19 @@ class UniversalAnalytics extends Analytics_1.Analytics {
99
101
  },
100
102
  };
101
103
  }
104
+ generateAddonsAddToCartMessageObject(product) {
105
+ return {
106
+ event: 'addToCart',
107
+ ecommerce: {
108
+ currencyCode: this.currency.original,
109
+ add: {
110
+ products: [this.generateAddonProductInfo(product.basketAddonRow)],
111
+ },
112
+ StartDate: product.dateRange.from.format(DATALAYER_DATE_FORMAT),
113
+ EndDate: product.dateRange.to.format(DATALAYER_DATE_FORMAT),
114
+ },
115
+ };
116
+ }
102
117
  generateUpsellConfirmedMessageObject(oldProduct, newProduct) {
103
118
  const newRate = newProduct.rate;
104
119
  const oldRate = oldProduct.rate;
@@ -154,7 +169,8 @@ class UniversalAnalytics extends Analytics_1.Analytics {
154
169
  }
155
170
  generateRoomPurchaseMessageObject(basketRows, addonRows, reservations) {
156
171
  let i = 0;
157
- return basketRows.map((row) => {
172
+ return basketRows
173
+ .map((row) => {
158
174
  var _a;
159
175
  const products = [this.getProductInfo(row.getRoom(), row.getRate(), undefined, row.getNumberOfDays())];
160
176
  if (i === 0) {
@@ -187,10 +203,13 @@ class UniversalAnalytics extends Analytics_1.Analytics {
187
203
  };
188
204
  }
189
205
  catch (e) {
190
- // test
206
+ return undefined;
191
207
  }
192
- i++;
193
- });
208
+ finally {
209
+ i++;
210
+ }
211
+ })
212
+ .filter((tmp) => tmp !== undefined);
194
213
  }
195
214
  generateRefundMessageObject(reservation) {
196
215
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalAnalytics.js","sourceRoot":"/","sources":["src/util/Analytics/UniversalAnalytics.ts"],"names":[],"mappings":"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","sourcesContent":["import dayjs, { Dayjs } from 'dayjs';\n\nimport ReservationsDTO, { ReservationDTO } from '@/models/Api/ReservationsDTO';\nimport BasketAddonRow from '@/models/BasketAddonRow';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\n\nimport { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';\nimport { Analytics } from './Analytics';\n\nconst DATALAYER_DATE_FORMAT = 'YYYY-M-D';\n\nclass UniversalAnalytics extends Analytics {\n private getProductInfo(room: Room, rate?: RoomRate, listPosition?: number, quantity?: number): Product {\n const providerId = this.hotel?.providerHotelID;\n\n const price = rate ? rate.getAveragePrice() : room.getLowestPrice();\n const nameParts = [room.name];\n const idParts = [providerId, room.code];\n if (rate) {\n nameParts.push(rate.name);\n idParts.push(rate.code);\n }\n\n const product: Product = {\n name: nameParts.join(' - '),\n id: idParts.join(' - '),\n price: price,\n brand: [this.hotel?.name, providerId, this.company?.brandSuffix].filter(Boolean).join(' - '),\n category: room.name as string,\n };\n\n if (rate) {\n product.variant = rate.name;\n }\n\n if (listPosition !== undefined) {\n product.list = 'BE List';\n product.position = listPosition;\n }\n\n if (quantity !== undefined) {\n product.quantity = quantity;\n }\n\n return product;\n }\n\n private generateAddonProductInfo(addonRow: BasketAddonRow): Product {\n const addon = addonRow.getAddon();\n return {\n name: addon.name,\n id: addon.code,\n price: addonRow.getTotalPrice(),\n brand: [this.hotel?.name, this.hotel?.providerHotelID, this.company?.brandSuffix].filter(Boolean).join(' - '),\n category: addon.category,\n quantity: addonRow.getTotalQuantity(),\n };\n }\n\n public generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]) {\n return {\n event: 'Product impressions',\n ecommerce: {\n currencyCode: this.currency.original,\n impressions: impressions.map((item, index) => {\n const { room, quantity } = item;\n return this.getProductInfo(room, undefined, index, quantity);\n }),\n },\n };\n }\n\n public generateProductClickMessageObject(product: GenericAnalyticsAccommodation) {\n const { room, rate, quantity } = product;\n return {\n event: 'productClick',\n ecommerce: {\n currencyCode: this.currency.original,\n click: {\n products: [this.getProductInfo(room, rate, undefined, quantity)],\n },\n StartDate: product.dateRange.from.format(DATALAYER_DATE_FORMAT),\n EndDate: product.dateRange.to.format(DATALAYER_DATE_FORMAT),\n },\n };\n }\n\n public generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number | undefined) {\n return {\n event: 'dateSelection',\n arrivalDate: dateRange.from.format(DATALAYER_DATE_FORMAT),\n departureDate: dateRange.to.format(DATALAYER_DATE_FORMAT),\n adultQty: Number.isInteger(adults) ? `${adults}` : null,\n childQty: Number.isInteger(children) ? `${children}` : null,\n infantQty: Number.isInteger(infants) ? `${infants}` : null,\n };\n }\n\n public generateAddToCartMessageObject(product: GenericAnalyticsAccommodation) {\n const productInfo = this.getProductInfo(product.room, product.rate, undefined, product.quantity);\n\n return {\n event: 'addToCart',\n ecommerce: {\n currencyCode: this.currency.original,\n add: {\n products: [productInfo],\n },\n StartDate: product.dateRange.from.format(DATALAYER_DATE_FORMAT),\n EndDate: product.dateRange.to.format(DATALAYER_DATE_FORMAT),\n },\n };\n }\n\n public generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation) {\n const newRate = newProduct.rate;\n const oldRate = oldProduct.rate;\n\n if (!newRate || !oldRate) {\n return null;\n }\n\n const oldConvertedProduct = this.getProductInfo(oldRate.getRoom(), oldRate);\n const newConvertedProduct = this.getProductInfo(newRate.getRoom(), newRate);\n\n return {\n event: 'upsellConfirmed',\n priceDifference: newRate.getTotalPrice() - oldRate.getTotalPrice(),\n old: {\n products: [oldConvertedProduct],\n },\n new: {\n products: [newConvertedProduct],\n },\n };\n }\n\n public generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation) {\n const { room, rate, quantity } = product;\n\n const productInfo = this.getProductInfo(room, rate, undefined, quantity);\n\n return {\n event: 'upsellCancelled',\n item: [productInfo],\n };\n }\n\n public generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]) {\n const products: Product[] = [];\n\n let startDate: Dayjs | undefined = undefined;\n let endDate: Dayjs | undefined = undefined;\n\n basketRows.forEach((row) => {\n startDate = row.getStartDate();\n endDate = row.getEndDate();\n products.push(this.getProductInfo(row.getRoom(), row.getRate() as RoomRate, undefined, row.getNumberOfDays()));\n });\n\n addonRows.forEach((row) => {\n products.push(this.generateAddonProductInfo(row));\n });\n\n return {\n event: 'checkout',\n ecommerce: {\n currencyCode: this.currency.original,\n checkout: {\n actionField: { step: 1 },\n products,\n },\n StartDate: (startDate as Dayjs | undefined)?.format(DATALAYER_DATE_FORMAT),\n EndDate: (endDate as Dayjs | undefined)?.format(DATALAYER_DATE_FORMAT),\n PageType: 'conversionintent',\n },\n };\n }\n\n public generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO) {\n let i = 0;\n return basketRows.map((row) => {\n const products = [this.getProductInfo(row.getRoom(), row.getRate() as RoomRate, undefined, row.getNumberOfDays())];\n\n if (i === 0) {\n addonRows.forEach((addonRow) => {\n products.push(this.generateAddonProductInfo(addonRow));\n });\n }\n\n try {\n const upsellPrevRoom = row.getPreUpsellRoomRate();\n\n const extraData: { checkoutUpsell?: any } = {};\n if (upsellPrevRoom) {\n extraData.checkoutUpsell = {\n active: true,\n oldRoom: upsellPrevRoom.getRoom().code,\n newRoom: row.getRoom().code,\n priceDifference: (row.getRate()?.getTotalPrice() || 0) - (upsellPrevRoom.getTotalPrice() || 0),\n };\n }\n\n return {\n event: 'roomPurchase',\n ecommerce: {\n currencyCode: this.currency.original,\n purchase: {\n actionField: {\n id: reservations.reservations[i].reservationNumber,\n revenue: reservations.reservations[i].total.afterTax,\n tax: reservations.reservations[i].total.afterTax - reservations.reservations[i].total.beforeTax,\n coupon: row.getPromoCode(),\n },\n products,\n },\n StartDate: row.getStartDate().format(DATALAYER_DATE_FORMAT),\n EndDate: row.getEndDate().format(DATALAYER_DATE_FORMAT),\n BookingDate: dayjs().format(DATALAYER_DATE_FORMAT),\n PageType: 'conversion',\n paymentType: reservations.reservations[i].paymentMethod,\n ...extraData,\n },\n };\n } catch (e) {\n // test\n }\n\n i++;\n });\n }\n\n public generateRefundMessageObject(reservation: ReservationDTO): any {\n return {\n event: 'refund',\n ecommerce: {\n refund: {\n actionField: {\n id: reservation.reservationNumber,\n },\n },\n },\n };\n }\n}\n\nconst ua = new UniversalAnalytics();\n\nexport { ua as UniversalAnalytics };\n\ntype Product = {\n name: string; // <Put the Room Variant here example - ‘BAE - Best Available Everyday - Superoo’>\n id: string; // <Put the SKU for Room variant here example - ‘62991 - VEK - 04BAE’>\n price: number; // <Put the PER DAY price of room>\n brand: string; // <Put the hotel brand here example - ‘Australia - Ovolo Woolloomooloo - 62991’>\n category: string; // <Put the Category of room here example - ‘Superoo’>\n variant?: string; // <Put the Variant of room here example - ‘BAE - Best Available Everyday - Prepaid Rate’>\n list?: string; // <Put ‘BE List’ if shown in Booking Engine else put ‘Hotel List’>\n position?: number; // <Put the position of hotel in the list here example 1’>\n quantity?: number; // <Put the rooms X nights>\n};\n"]}
1
+ {"version":3,"file":"UniversalAnalytics.js","sourceRoot":"/","sources":["src/util/Analytics/UniversalAnalytics.ts"],"names":[],"mappings":"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","sourcesContent":["import { ReservationDTO, ReservationsDTO } from '@roomstay/core';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport BasketAddonRow from '@/models/BasketAddonRow';\nimport BasketRow from '@/models/BasketRow';\nimport { Room } from '@/models/Room/Room';\nimport { RoomRate } from '@/models/Room/RoomRate';\n\nimport { DateRange, GenericAnalyticsAccommodation } from '../DataLayer';\nimport { Analytics, IAnalyticMessageEvent } from './Analytics';\n\nconst DATALAYER_DATE_FORMAT = 'YYYY-M-D';\n\nclass UniversalAnalytics extends Analytics {\n private getProductInfo(room: Room, rate?: RoomRate, listPosition?: number, quantity?: number): Product {\n const providerId = this.hotel?.providerHotelID;\n\n const price = rate ? rate.getAveragePrice() : room.getLowestPrice();\n const nameParts = [room.name];\n const idParts = [providerId, room.code];\n if (rate) {\n nameParts.push(rate.name);\n idParts.push(rate.code);\n }\n\n const product: Product = {\n name: nameParts.join(' - '),\n id: idParts.join(' - '),\n price: price,\n brand: [this.hotel?.name, providerId, this.company?.brandSuffix].filter(Boolean).join(' - '),\n category: room.name as string,\n category2: 'Rooms',\n };\n\n if (rate) {\n product.variant = rate.name;\n }\n\n if (listPosition !== undefined) {\n product.list = this.itemListName;\n product.position = listPosition;\n }\n\n if (quantity !== undefined) {\n product.quantity = quantity;\n }\n\n return product;\n }\n\n private generateAddonProductInfo(addonRow: BasketAddonRow): Product {\n const addon = addonRow.getAddon();\n return {\n name: addon.name,\n id: addon.code,\n price: addonRow.getTotalPrice(),\n brand: [this.hotel?.name, this.hotel?.providerHotelID, this.company?.brandSuffix].filter(Boolean).join(' - '),\n category: addon.category,\n category2: 'Addons',\n quantity: addonRow.getTotalQuantity(),\n };\n }\n\n public generateRoomImpressionMessageObject(impressions: GenericAnalyticsAccommodation[]) {\n return {\n event: 'Product impressions',\n ecommerce: {\n currencyCode: this.currency.original,\n impressions: impressions.map((item, index) => {\n const { room, quantity } = item;\n return this.getProductInfo(room, undefined, index, quantity);\n }),\n },\n };\n }\n\n public generateProductClickMessageObject(product: GenericAnalyticsAccommodation) {\n const { room, rate, quantity } = product;\n return {\n event: 'productClick',\n ecommerce: {\n currencyCode: this.currency.original,\n click: {\n products: [this.getProductInfo(room, rate, undefined, quantity)],\n },\n StartDate: product.dateRange.from.format(DATALAYER_DATE_FORMAT),\n EndDate: product.dateRange.to.format(DATALAYER_DATE_FORMAT),\n },\n };\n }\n\n public generateDateSelectionMessageObject(dateRange: DateRange, adults: number, children: number, infants?: number | undefined) {\n return {\n event: 'dateSelection',\n arrivalDate: dateRange.from.format(DATALAYER_DATE_FORMAT),\n departureDate: dateRange.to.format(DATALAYER_DATE_FORMAT),\n adultQty: Number.isInteger(adults) ? `${adults}` : null,\n childQty: Number.isInteger(children) ? `${children}` : null,\n infantQty: Number.isInteger(infants) ? `${infants}` : null,\n };\n }\n\n public generateAddToCartMessageObject(product: GenericAnalyticsAccommodation) {\n const productInfo = this.getProductInfo(product.room, product.rate, undefined, product.quantity);\n\n return {\n event: 'addToCart',\n ecommerce: {\n currencyCode: this.currency.original,\n add: {\n products: [productInfo],\n },\n StartDate: product.dateRange.from.format(DATALAYER_DATE_FORMAT),\n EndDate: product.dateRange.to.format(DATALAYER_DATE_FORMAT),\n },\n };\n }\n\n public generateAddonsAddToCartMessageObject(product: Required<Pick<GenericAnalyticsAccommodation, 'quantity' | 'dateRange' | 'basketAddonRow'>>): IAnalyticMessageEvent {\n return {\n event: 'addToCart',\n ecommerce: {\n currencyCode: this.currency.original,\n add: {\n products: [this.generateAddonProductInfo(product.basketAddonRow!)],\n },\n StartDate: product.dateRange.from.format(DATALAYER_DATE_FORMAT),\n EndDate: product.dateRange.to.format(DATALAYER_DATE_FORMAT),\n },\n };\n }\n\n public generateUpsellConfirmedMessageObject(oldProduct: GenericAnalyticsAccommodation, newProduct: GenericAnalyticsAccommodation) {\n const newRate = newProduct.rate;\n const oldRate = oldProduct.rate;\n\n if (!newRate || !oldRate) {\n return null;\n }\n\n const oldConvertedProduct = this.getProductInfo(oldRate.getRoom(), oldRate);\n const newConvertedProduct = this.getProductInfo(newRate.getRoom(), newRate);\n\n return {\n event: 'upsellConfirmed',\n priceDifference: newRate.getTotalPrice() - oldRate.getTotalPrice(),\n old: {\n products: [oldConvertedProduct],\n },\n new: {\n products: [newConvertedProduct],\n },\n };\n }\n\n public generateUpsellCancelledMessageObject(product: GenericAnalyticsAccommodation) {\n const { room, rate, quantity } = product;\n\n const productInfo = this.getProductInfo(room, rate, undefined, quantity);\n\n return {\n event: 'upsellCancelled',\n item: [productInfo],\n };\n }\n\n public generateCheckoutViewMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[]) {\n const products: Product[] = [];\n\n let startDate: Dayjs | undefined = undefined;\n let endDate: Dayjs | undefined = undefined;\n\n basketRows.forEach((row) => {\n startDate = row.getStartDate();\n endDate = row.getEndDate();\n products.push(this.getProductInfo(row.getRoom(), row.getRate() as RoomRate, undefined, row.getNumberOfDays()));\n });\n\n addonRows.forEach((row) => {\n products.push(this.generateAddonProductInfo(row));\n });\n\n return {\n event: 'checkout',\n ecommerce: {\n currencyCode: this.currency.original,\n checkout: {\n actionField: { step: 1 },\n products,\n },\n StartDate: (startDate as Dayjs | undefined)?.format(DATALAYER_DATE_FORMAT),\n EndDate: (endDate as Dayjs | undefined)?.format(DATALAYER_DATE_FORMAT),\n PageType: 'conversionintent',\n },\n };\n }\n\n public generateRoomPurchaseMessageObject(basketRows: BasketRow[], addonRows: BasketAddonRow[], reservations: ReservationsDTO) {\n let i = 0;\n return basketRows\n .map((row) => {\n const products = [this.getProductInfo(row.getRoom(), row.getRate() as RoomRate, undefined, row.getNumberOfDays())];\n\n if (i === 0) {\n addonRows.forEach((addonRow) => {\n products.push(this.generateAddonProductInfo(addonRow));\n });\n }\n\n try {\n const upsellPrevRoom = row.getPreUpsellRoomRate();\n\n const extraData: { checkoutUpsell?: any } = {};\n if (upsellPrevRoom) {\n extraData.checkoutUpsell = {\n active: true,\n oldRoom: upsellPrevRoom.getRoom().code,\n newRoom: row.getRoom().code,\n priceDifference: (row.getRate()?.getTotalPrice() || 0) - (upsellPrevRoom.getTotalPrice() || 0),\n };\n }\n return {\n event: 'roomPurchase',\n ecommerce: {\n currencyCode: this.currency.original,\n purchase: {\n actionField: {\n id: reservations.reservations[i].reservationNumber,\n revenue: reservations.reservations[i].total.afterTax,\n tax: reservations.reservations[i].total.afterTax - reservations.reservations[i].total.beforeTax,\n coupon: row.getPromoCode(),\n },\n products,\n },\n StartDate: row.getStartDate().format(DATALAYER_DATE_FORMAT),\n EndDate: row.getEndDate().format(DATALAYER_DATE_FORMAT),\n BookingDate: dayjs().format(DATALAYER_DATE_FORMAT),\n PageType: 'conversion',\n paymentType: reservations.reservations[i].paymentMethod,\n ...extraData,\n },\n } as IAnalyticMessageEvent;\n } catch (e) {\n return undefined;\n } finally {\n i++;\n }\n })\n .filter((tmp): tmp is IAnalyticMessageEvent => tmp !== undefined);\n }\n\n public generateRefundMessageObject(reservation: ReservationDTO): any {\n return {\n event: 'refund',\n ecommerce: {\n refund: {\n actionField: {\n id: reservation.reservationNumber,\n },\n },\n },\n };\n }\n}\n\nconst ua = new UniversalAnalytics();\n\nexport { ua as UniversalAnalytics };\n\ntype Product = {\n name: string; // <Put the Room Variant here example - ‘BAE - Best Available Everyday - Superoo’>\n id: string; // <Put the SKU for Room variant here example - ‘62991 - VEK - 04BAE’>\n price: number; // <Put the PER DAY price of room>\n brand: string; // <Put the hotel brand here example - ‘Australia - Ovolo Woolloomooloo - 62991’>\n category: string; // <Put the Category of room here example - ‘Superoo’>\n category2: 'Addons' | 'Rooms';\n variant?: string; // <Put the Variant of room here example - ‘BAE - Best Available Everyday - Prepaid Rate’>\n list?: string; // <Put ‘BE List’ if shown in Booking Engine else put ‘Hotel List’>\n position?: number; // <Put the position of hotel in the list here example 1’>\n quantity?: number; // <Put the rooms X nights>\n};\n"]}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncAuth.js","sourceRoot":"/","sources":["src/util/AsyncAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;GAEG;AACI,MAAM,OAAO,GAAG,GAA6B,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA,CAAC;AAHW,QAAA,OAAO,WAGlB","sourcesContent":["import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';\n\n/**\n * Async import Auth to split bundle code\n */\nexport const getAuth = async (): Promise<AuthClass> => {\n const { Auth } = await import('@aws-amplify/auth');\n return Auth;\n};\n"]}
1
+ {"version":3,"file":"AsyncAuth.js","sourceRoot":"/","sources":["src/util/AsyncAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;GAEG;AACI,MAAM,OAAO,GAAG,GAA6B,EAAE;IAClD,MAAM,EAAE,IAAI,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA,CAAC;AAHW,QAAA,OAAO,WAGlB","sourcesContent":["import { AuthClass } from '@aws-amplify/auth/lib-esm/Auth';\n\n/**\n * Async import Auth to split bundle code\n */\nexport const getAuth = async (): Promise<AuthClass> => {\n const { Auth } = await import('@aws-amplify/auth');\n return Auth;\n};\n"]}
@@ -16,7 +16,6 @@ const getLetterDaysOfWeek = (startsWeekOnDay) => {
16
16
  exports.getLetterDaysOfWeek = getLetterDaysOfWeek;
17
17
  class CalendarHelper {
18
18
  }
19
- exports.default = CalendarHelper;
20
19
  /**
21
20
  * Returns an array always divisible by 7,
22
21
  *
@@ -84,6 +83,7 @@ CalendarHelper.getDaysBetween = (startDate, endDate) => {
84
83
  }
85
84
  return days;
86
85
  };
86
+ exports.default = CalendarHelper;
87
87
  const getQueryParamFromHash = (param) => {
88
88
  const currentUrl = window.location.href;
89
89
  const hashIndex = currentUrl.indexOf('#');